Apa Itu Alat Ini?
Derangemen adalah konsep matematika tertentu: permutasi (pengurutan ulang) dari suatu himpunan di mana tidak ada elemen yang berakhir pada posisi aslinya. Diterapkan pada tukar kado, itu berarti mengacak nama semua orang ke urutan baru sedemikian rupa sehingga tidak ada yang berpasangan dengan dirinya sendiri — tepat batasan yang dibutuhkan undian Secret Santa yang adil, dan tepat apa yang TIDAK dijamin dengan sendirinya oleh pengacakan naif `array.sort(() => Math.random() - 0.5)`.
Alat ini menghasilkan derangemen dengan berulang kali mengacak daftar menggunakan algoritma acak dan memeriksa batasan tidak-menempati-diri-sendiri, menggunakan `crypto.getRandomValues()` untuk keacakan yang mendasarinya alih-alih `Math.random()` — sumber yang aman secara kriptografis yang sama yang digunakan oleh [Generator Kata Sandi](/password-generator/) dan [Generator Huruf Acak](/random-letter-generator/) di situs ini.
Desain tombol ungkap menyelesaikan masalah terpisah yang sangat praktis dalam mengundi nama secara berkelompok: menampilkan semua pasangan di layar sekaligus akan merusak kejutan bagi semua orang pada saat yang sama. Menyembunyikan hasil setiap orang di balik tombolnya sendiri memungkinkan satu perangkat dioper (atau layar dibagikan) sehingga setiap orang hanya memeriksa namanya sendiri.
Mengapa Menggunakannya?
- Malam arisan keluarga besar sudah dimulai dan seseorang baru mengusulkan tukar kado dadakan — buka alat ini di HP, ketik 12 nama sepupu, dan undian selesai sebelum kue kedua habis.
- Grup WhatsApp kantor sudah menyepakati Secret Santa tapi tidak ada yang mau jadi "panitia" yang tahu semua pasangan — jalankan undian di satu HP lalu edarkan agar setiap orang sentuh tombol ungkap sendiri-sendiri, jadi tidak ada yang jadi penjaga rahasia.
- Kamu pernah kena masalah undian manual dulu — ada yang menulis namanya sendiri lalu diam-diam menukar kertas — dan sekarang ingin cara yang benar-benar tidak bisa dicurangi maupun kebetulan menempatkan orang pada dirinya sendiri.
- Dua hari sebelum acara, ada anggota keluarga yang mendadak batal ikut — cukup hapus namanya dari daftar dan undi ulang dalam hitungan detik, tanpa perlu bikin ulang grup atau daftar dari nol.
- Kamu mengorganisir tukar kado untuk komunitas hobi yang anggotanya tidak saling kenal dekat dan ingin memastikan prosesnya adil tanpa harus menjelaskan rumus matematika ke semua orang.
- Semua data hanya ada di browser saat itu juga — begitu tab ditutup, tidak ada daftar nama atau pasangan yang tersimpan di server mana pun.
Cara Menggunakan
- Ketik nama setiap peserta pada barisnya sendiri — minimal 3 nama yang berbeda.
- Klik "Undi pasangan" — alat ini menghitung derangemen yang valid sehingga tidak ada yang berpasangan dengan dirinya sendiri.
- Baris setiap peserta menampilkan namanya dengan hasil tersembunyi — oper perangkat atau bagikan layar, dan minta setiap orang mengklik tombol "Sentuh untuk mengungkap" miliknya sendiri untuk melihat kepada siapa mereka memberi kado.
- Klik ungkap lagi untuk menyembunyikannya setelah seseorang memeriksa hasilnya, menjaga layar tetap siap untuk orang berikutnya.
Contoh
Input
Alice, Bob, Carol, DaveOutput
Alice → Carol, Bob → Dave, Carol → Bob, Dave → AliceSetiap kali dijalankan menghasilkan derangemen valid yang berbeda — ini adalah satu contoh hasil. Perhatikan tidak ada yang mendapat dirinya sendiri, yang merupakan satu-satunya batasan mutlak yang dibutuhkan undian Secret Santa sungguhan dan tidak dijamin oleh pengacakan biasa.
Derangemen vs. pengacakan biasa
Pengacakan biasa dan derangemen terlihat mirip, tetapi hanya salah satunya yang benar-benar aman untuk tukar kado.
| Metode | Bisakah menempatkan seseorang pada dirinya sendiri? | Adilkah mengundi ulang sampai "terlihat benar"? |
|---|---|---|
| Pengacakan biasa | Ya — kemungkinan nyata, terutama pada kelompok kecil | Tidak — menolak hasil buruk secara manual membuat hasilnya bias |
| Derangemen (alat ini) | Tidak — dikecualikan secara matematis berdasarkan konstruksinya | Tidak berlaku — setiap hasil valid sudah memenuhi batasan tersebut |
Alat terkait
Untuk undian dan generator acak lainnya, coba alat-alat ini.
→ Generator Nama Fantasi · Generator Angka Acak · Generator Huruf Acak
Cara memakainya untuk acara tukar kado yang lancar
- Tetapkan batas anggaran kado sebelum mengundi, bukan sesudahnya — begitu pasangan ditentukan, terlalu terlambat untuk mengubah kesepakatan tanpa ada yang merasa tidak adil.
- Untuk acara kantor atau komunitas besar, undi di depan semua orang lewat satu HP yang diedarkan — ini justru membuat proses terasa lebih transparan dibanding satu orang mengundi sendirian di belakang layar lalu mengabari lewat chat pribadi.
- Jika acara berlangsung online lewat video call, bagikan layar saat mengundi tapi minta setiap peserta menyebutkan giliran mereka untuk sentuh tombol ungkap secara bergantian lewat kontrol jarak jauh atau screen-share bergilir.
- Simpan tangkapan layar hasil undian hanya jika benar-benar perlu sebagai cadangan panitia — karena tujuan tombol ungkap adalah menjaga kejutan, screenshot penuh bisa membocorkan semua pasangan sekaligus.
Pertanyaan yang Sering Diajukan
Apa yang terjadi jika sebuah nama dimasukkan dua kali?
Alat ini mewajibkan setiap nama unik sebelum melakukan undian — jika mendeteksi baris duplikat, alat ini akan meminta Anda memperbaiki daftar terlebih dahulu, karena dua peserta dengan nama yang identik akan membuatnya mustahil membedakan hasil mereka.
Bisakah seseorang mendapatkan namanya sendiri?
Tidak — alat ini secara khusus menghitung derangemen, pengacakan dengan sifat matematis bahwa tidak ada elemen (orang) yang berakhir dipetakan ke posisi aslinya sendiri. Jaminan itu ditegakkan oleh algoritma, bukan diserahkan pada kebetulan seperti pengacakan biasa.
Berapa jumlah minimum orang yang dibutuhkan?
Tiga. Dengan hanya dua orang, derangemen mustahil terjadi tanpa mereka hanya saling ditempatkan satu sama lain setiap kali, yang tidak benar-benar acak, sehingga alat ini mewajibkan minimal tiga peserta.
Bagaimana kami menjaga hasil tetap privat jika kami semua melihat layar yang sama?
Hasil setiap peserta disembunyikan di balik tombol "Sentuh untuk mengungkap" miliknya sendiri, bukan ditampilkan sekaligus. Oper perangkat (atau bagikan layar) ke setiap orang secara bergiliran, biarkan mereka mengungkap dan mencatat hanya barisnya sendiri, lalu klik lagi untuk menyembunyikannya sebelum dioper ke orang berikutnya.
Apakah nama atau hasil undian dikirim ke server?
Tidak. Semuanya — membaca nama, menghitung derangemen, dan menampilkan tombol ungkap — terjadi sepenuhnya di browser Anda. Tidak ada yang diunggah, dan menutup tab akan menghapus semuanya, sehingga tidak ada riwayat undian yang tersisa di mana pun yang bisa secara tidak sengaja merusak kejutan.
Bisakah saya mengecualikan pasangan tertentu, misalnya suami-istri agar tidak saling dapat?
Alat ini saat ini hanya menjamin batasan derangemen dasar (tidak ada yang dapat dirinya sendiri), bukan pengecualian pasangan khusus. Jika hasil undian menempatkan pasangan suami-istri berhadapan, cara paling praktis adalah klik "Undi pasangan" lagi untuk mendapat hasil derangemen baru sampai kombinasi yang kamu inginkan muncul.
Apakah hasil undian berubah setiap kali saya klik tombol undi ulang?
Ya — setiap klik menghasilkan derangemen baru yang dihitung ulang dari nol menggunakan keacakan kriptografis, jadi kamu bisa mengundi berkali-kali sampai puas, dan setiap hasil tetap sama-sama valid secara matematis (tidak ada yang dapat dirinya sendiri).
Apakah saya perlu memasukkan nama lengkap, atau nama panggilan saja cukup?
Nama panggilan atau nama depan saja sudah cukup selama setiap nama di daftar berbeda satu sama lain — alat ini hanya butuh string unik untuk membedakan setiap peserta, tidak memvalidasi apakah itu nama asli.
Bagaimana jika grup kami sangat besar, misalnya 30 orang kantor?
Tidak ada batas atas jumlah nama yang bisa dimasukkan — algoritma derangemen tetap bekerja sama cepatnya baik untuk 3 orang maupun 30 orang, karena semua perhitungan dilakukan instan di browser tanpa perlu round-trip ke server.