Apa Itu UUID?
UUID (Universally Unique Identifier) adalah angka 128-bit yang dipakai untuk menandai hal-hal seperti baris database, file, permintaan API, dan perangkat tanpa perlu meminta ID kosong berikutnya ke server pusat. UUID ditulis sebagai 32 digit heksadesimal dalam lima kelompok, 8-4-4-4-12, misalnya f47ac10b-58cc-4372-a567-0e02b2c3d479.
UUID didefinisikan dalam RFC 9562 (2024), yang menggantikan RFC 4122 yang lebih lama dan menambahkan versi 6, 7, dan 8. Digit heksadesimal pertama pada kelompok ketiga menunjukkan versi (angka 4 pada 4372 di atas), dan digit pertama pada kelompok keempat menunjukkan varian (8, 9, a, atau b untuk UUID standar).

Penjelasan Versi UUID
Setiap versi mengisi 128 bit yang sama dengan cara berbeda. Inilah versi-versi yang benar-benar akan Anda jumpai:
122 bit acak. Tidak ada makna di dalamnya, tidak ada yang bisa bocor. Bawaan di sebagian besar bahasa pemrograman (crypto.randomUUID(), uuid.uuid4(), Guid.NewGuid()).
Timestamp Unix 48-bit dalam milidetik yang diikuti bit acak, sehingga ID baru terurut setelah ID lama. RFC 9562 merekomendasikannya dibanding v1 dan v6.
Timestamp 60-bit, clock sequence, dan ID node 48-bit yang awalnya berupa alamat MAC komputer. Generator kami memakai node acak sebagai gantinya.
UUID namespace ditambah sebuah nama, di-hash dengan SHA-1 (v5) atau MD5 (v3). Input yang sama selalu menghasilkan UUID yang sama. Utamakan v5.
Field versi 1 yang disusun ulang agar ID terurut berdasarkan waktu. Sebagian besar dipakai sebagai jembatan bagi sistem yang sudah memakai v1.
Semua nol (00000000-0000-0000-0000-000000000000) atau semua f. Dipakai sebagai placeholder untuk "tidak ada nilai" atau "akhir rentang".
Advertisement
Cara Membuat UUID
v4 untuk ID acak, v7 jika ID masuk ke indeks database atau harus terurut berdasarkan waktu pembuatan, v5 jika nama yang sama harus selalu dipetakan ke UUID yang sama.
Buat 1, 10, 100, atau hingga 1.000 sekaligus. Masing-masing berasal dari generator acak browser yang aman secara kriptografis.
Huruf kecil standar, {kurung kurawal} dan huruf besar untuk GUID gaya Windows, 32 karakter tanpa tanda hubung, atau URN urn:uuid:.
Salin satu UUID atau seluruh daftar, atau unduh sebagai file .txt. Alamat halaman menyimpan pengaturan Anda, sehingga Anda bisa mem-bookmark-nya.
UUID vs GUID: Apakah Ada Bedanya?
GUID (Globally Unique Identifier) adalah nama dari Microsoft untuk hal yang sama. GUID yang dibuat oleh Guid.NewGuid() di .NET atau New-Guid di PowerShell adalah UUID versi 4 standar.
Perbedaan yang terlihat ada pada cara penulisannya: alat Windows sering menampilkan GUID dalam huruf besar dan diapit kurung kurawal, seperti {F47AC10B-58CC-4372-A567-0E02B2C3D479}. Atur format ke GUID dengan kurung kurawal dan centang Huruf besar untuk mendapatkan hasil persis seperti itu. Di balik layar, Windows dan .NET menyimpan tiga kelompok pertama dalam urutan byte little-endian, sehingga 16 byte mentahnya berbeda dari urutan byte UUID meskipun teksnya identik. Beberapa GUID COM yang sangat lama memakai bit varian milik Microsoft sendiri, yang diberi label oleh decoder di atas.
Advertisement
UUID v4 vs v7: Mana yang Sebaiknya Dipakai?
Keduanya aman dipakai sebagai ID unik. Bedanya terlihat saat Anda menyimpan jutaan UUID di indeks database.
Gunakan v7 untuk primary key. Karena setiap UUID v7 baru lebih besar dari yang sebelumnya, insert masuk di ujung indeks B-tree, bukan di tempat acak, sehingga indeks tetap ringkas dan insert tetap cepat di PostgreSQL dan MySQL. SQL Server adalah pengecualian: SQL Server mengurutkan nilai
uniqueidentifierberdasarkan enam byte terakhirnya terlebih dahulu, sehingga v7 tidak memberi manfaat tersebut di sana.Gunakan v4 jika ID tidak boleh mengungkap apa pun. UUID v7 berisi waktu pembuatannya hingga ke milidetik; siapa pun yang melihatnya bisa membaca waktu itu dengan decoder di atas.
Gunakan v5 untuk ID stabil dari nama, misalnya satu UUID per nama domain atau URL, sehingga setiap sistem menghitung nilai yang sama tanpa berbagi tabel.
Hindari v1 untuk pekerjaan baru. v1 klasik menyematkan alamat MAC mesin dan waktu pembuatan; RFC 9562 merekomendasikan v7 sebagai gantinya.
Bisakah Dua UUID Sama Persis?
Secara teori bisa, dalam praktik tidak. UUID versi 4 memiliki 122 bit acak, sekitar 5,3 × 10^36 kemungkinan nilai. Anda perlu membuat sekitar 2,7 kuintiliun (2,7 × 10^18) UUID sebelum ada peluang 50% untuk satu duplikat saja. Itu setara dengan satu miliar UUID setiap detik selama sekitar 86 tahun.
Risiko sebenarnya adalah generator angka acak yang rusak, bukan matematikanya. Alat ini memakai crypto.getRandomValues(), sumber acak browser yang aman secara kriptografis, dan v7 menyimpan counter sehingga UUID yang dibuat dalam milidetik yang sama tetap terurut dengan benar dan tidak pernah berulang.
Advertisement
Decode UUID: Versi, Varian, dan Timestamp
Buka tab Decode dan tempel satu atau beberapa UUID, satu per baris, dalam bentuk standar, berkurung kurawal, urn:uuid:, atau 32 karakter. Untuk masing-masing UUID, Anda akan melihat apakah UUID itu valid, versi dan variannya, serta untuk v1, v6, dan v7, tanggal dan waktu pembuatannya.
Untuk UUID v1 dan v6, decoder juga menampilkan ID node dan apakah node itu tampak seperti alamat MAC asli atau nilai acak. Itu cara cepat untuk memeriksa apakah ID lama di sistem Anda membocorkan alamat perangkat keras.
Membuat UUID dalam Kode
Sebagian besar bahasa pemrograman dan database utama bisa membuat UUID tanpa paket tambahan. Dukungan versi 7 masih lebih baru: Python 3.14, PostgreSQL 18, .NET 9, dan Go 1.27 telah menambahkannya.
crypto.randomUUID()
// 'f47ac10b-58cc-4372-a567-0e02b2c3d479' (versi 4)import uuid
uuid.uuid4() # acak
uuid.uuid5(uuid.NAMESPACE_DNS, 'example.com') # berbasis nama, selalu sama
uuid.uuid7() # Python 3.14+SELECT gen_random_uuid(); -- versi 4 (PostgreSQL 13+)
SELECT uuidv7(); -- versi 7 (PostgreSQL 18+)Guid.NewGuid() // versi 4
Guid.CreateVersion7() // versi 7 (.NET 9+)
# PowerShell
New-Guiduuidgen # UUID acak (macOS mencetak huruf besar)
uuidgen --time # versi 1 (util-linux)
cat /proc/sys/kernel/random/uuid # kernel LinuxUUID.randomUUID() // Java, versi 4
uuid.NewV4() // library standar Go 1.27+, versi 4
uuid.NewV7() // Go 1.27+, versi 7
// Go versi lama: github.com/google/uuid (uuid.New, uuid.NewV7)Advertisement
Alat Developer Lainnya
Alat gratis lain untuk developer dan admin sistem, semuanya berjalan di browser Anda: