UUID v4 adalah 128-bit yang dibuat dari angka acak murni — paling umum digunakan karena tidak mengandung informasi apapun tentang waktu atau mesin. UUID v1 berbasis waktu (timestamp) ditambah node identifier — bisa diurutkan secara kronologis tapi berpotensi mengekspos informasi waktu pembuatan. UUID v5 bersifat deterministik — input yang sama (namespace + nama) selalu menghasilkan UUID yang sama, berguna untuk membuat ID yang konsisten dari data tertentu.
ULID (Universally Unique Lexicographically Sortable Identifier) adalah alternatif UUID yang bisa diurutkan secara kronologis karena 48 bit pertamanya adalah timestamp. Keunggulan ULID: sortable sehingga index database lebih efisien, lebih compact (26 karakter vs 36 UUID), dan URL-safe. Gunakan ULID sebagai primary key database jika kamu butuh performa index yang lebih baik dari UUID v4 acak.
NanoID adalah generator ID compact yang URL-safe dengan panjang dan alphabet yang bisa dikustomisasi. Default NanoID 21 karakter sudah memiliki collision probability yang setara dengan UUID v4. Keunggulannya: lebih pendek, lebih mudah dibaca manusia, dan bisa disesuaikan alphabetnya — misalnya hanya huruf kecil, hanya angka, atau karakter khusus. Cocok untuk URL slug, kode referral, atau ID yang perlu ditampilkan ke user.
UUID v5 menggunakan algoritma SHA-1 untuk menghasilkan UUID dari kombinasi namespace + nama. Namespace adalah UUID khusus yang mendefinisikan "konteks" — tersedia namespace standar: URL (untuk URL web), DNS (untuk domain), OID, dan X.500. Contoh: UUID v5 dengan namespace URL + "https://kakalvin.com" akan selalu menghasilkan UUID yang sama di manapun digenerate. Berguna untuk membuat ID yang deterministic dan reproducible.
Secara matematis, UUID v4 memiliki 2^122 kemungkinan nilai (~5.3 × 10^36). Probabilitas collision baru signifikan setelah menggenerate sekitar 2.7 × 10^18 UUID — angka yang mustahil dicapai dalam praktik. Untuk konteks database aplikasi biasa, UUID v4 bisa dianggap unik secara absolut. Jika collision benar-benar tidak bisa ditoleransi, tambahkan unique constraint di level database sebagai safety net.
Tool ini mendukung 5 format output untuk UUID: lowercase standar (8-4-4-4-12), UPPERCASE, tanpa tanda hubung (no-hyphens), dengan kurung kurawal {braces} seperti di Windows Registry, dan format URN (urn:uuid:) untuk keperluan URI. Format bisa dipilih sebelum generate atau mengubah format hasil yang sudah ada.
UUID v4 aman dari sisi keunikan, tapi performanya sebagai primary key UUID v4 di database relasional (MySQL, PostgreSQL) bisa kurang optimal karena sifatnya yang acak menyebabkan index fragmentation. Alternatif yang lebih baik untuk primary key: gunakan ULID (sudah tersedia di tool ini) atau UUID v7 — keduanya time-ordered sehingga index database lebih efisien dan performa INSERT lebih baik.