fixmint
ID

UUID v4 atau v7: mana yang harus dipakai, dan mengapa itu penting

Oleh · · diperbarui 8 November 2026 · Dibaca 5 menit

Gunakan UUID v4 jika Anda hanya memerlukan pengenal acak. Gunakan UUID v7 jika pengenal itu akan menjadi kunci database, atau jika Anda ingin ID terurut berdasarkan waktu pembuatan. Keduanya berukuran 128 bit dan ditulis dalam format 36 karakter yang sama, jadi perbedaannya terletak pada susunan bit-nya. Generator UUID di bawah ini membuat salah satu versi tersebut, satu sampai 500 sekaligus, langsung di browser Anda.

Generator UUIDButuh ID unik untuk kode sayaPakai gratis

Seperti apa bentuk UUID

UUID, singkatan dari universally unique identifier (pengenal unik universal), adalah angka 128 bit yang ditulis sebagai 32 digit heksadesimal dalam lima kelompok: 8, 4, 4, 4, dan 12 digit, dipisahkan tanda hubung. Contohnya adalah 3f2b8c1e-6d4a-4f7b-9c2e-8a1d5e0b7f63.

Ada dua bagian dari angka tersebut yang tetap. Empat bit menyimpan versi, sehingga kelompok ketiga dimulai dengan 4 untuk v4 atau 7 untuk v7. Dua bit menyimpan varian, sehingga kelompok keempat dimulai dengan 8, 9, a, atau b. Sisanya berisi pengenal itu sendiri. Bit varian dan versi itulah sebabnya UUID v4 hanya memiliki 122 bit acak, bukan 128.

UUID v4: acak

UUID v4 bersifat acak, kecuali bit tetap tadi. Dengan 122 bit acak, kemungkinan terjadinya pengulangan sangat kecil. Misalkan Anda membuat satu miliar UUID v4. Peluang dua di antaranya sama kira-kira sebesar n kuadrat dibagi dua kali jumlah nilai yang mungkin, yang hasilnya sekitar 10 pangkat -19. Dengan kata lain, tabrakan bukanlah sesuatu yang perlu Anda antisipasi dalam desain.

Perkiraan ini mengasumsikan generator mengambil bit-nya dari sumber acak kriptografis. Generator yang dapat diprediksi akan merusak perkiraan tersebut. Alat ini menggunakan sumber acak kriptografis milik browser, melalui crypto.randomUUID atau crypto.getRandomValues.

UUID v7: waktu dulu

RFC 9562 mendefinisikan v7. 48 bit pertamanya menyimpan waktu Unix dalam milidetik, sehingga ID yang dibuat lebih belakangan memiliki bagian pertama yang lebih besar daripada ID yang dibuat lebih dulu. Setelah itu datang bit versi, lalu bit acak, bit varian, dan bit acak lainnya. Sebagian ruang acak dapat berisi penghitung, yang menjaga ID tetap berurutan ketika beberapa ID dibuat dalam milidetik yang sama.

Karena waktu berada di depan, mengurutkan ID v7 sebagai teks, dalam satu huruf besar-kecil yang konsisten, akan mengurutkannya berdasarkan waktu pembuatan hingga ketelitian milidetik. Hal ini berhasil karena digit heksadesimal memiliki lebar yang tetap dan waktunya berada di karakter-karakter awal.

Waktu juga terlihat. Siapa pun yang membaca UUID v7 dapat melihat kira-kira kapan UUID itu dibuat. Anda bisa memeriksanya sendiri dengan kolom Periksa di generator UUID, yang mengubah 48 bit pertama kembali menjadi tanggal dan jam.

Mengapa v7 cocok untuk indeks database

Indeks database biasanya berupa B-tree, yaitu struktur yang disimpan dalam urutan kunci. Ketika kuncinya acak, seperti pada v4, setiap baris baru masuk ke tempat yang acak di dalam indeks. Database kemudian harus menulis ke banyak bagian indeks yang berbeda, yang menyebabkan lebih banyak pemisahan halaman (page split) dan lebih banyak cache miss. Pada tabel besar, beban kerja ini menumpuk.

Kunci v7 lebih besar daripada hampir semua kunci yang sudah ada di indeks, karena bagian waktunya terus bertambah. Baris baru ditambahkan dekat bagian akhir indeks, mirip dengan angka yang bertambah otomatis. Halaman indeks terbaru tetap berada di memori, dan penulisan pun lebih rapi. Perbedaannya paling terasa pada tabel besar yang terus bertumbuh, dan hampir tidak terlihat pada tabel kecil.

Memilih antara v4 dan v7

  • Primary key database, atau tabel apa pun yang terus bertumbuh: v7. Indeksnya tetap teratur.
  • Log, peristiwa, atau pesan yang sering Anda urutkan berdasarkan waktu: v7, karena ID itu sendiri membawa urutannya.
  • ID publik yang waktu pembuatannya sebaiknya tetap rahasia: v4. ID v7 mengungkap kapan ID itu dibuat.
  • Banyak perangkat dengan jam yang tidak andal: v4 maupun v7 tetap unik, karena bit acak yang melakukan tugas itu. Hanya urutan pengurutan v7 yang bergantung pada jam yang akurat.

Kedua versi merupakan standar, tetapi pustaka yang lebih lama mungkin hanya mengenal v4. RFC 4122 mendeskripsikan versi 1 sampai 5 selama bertahun-tahun. RFC 9562 diterbitkan pada Mei 2024, menggantikan RFC 4122, dan mendefinisikan versi 6, 7, dan 8. Pastikan versi pustaka Anda mendukung v7 sebelum Anda mengandalkannya.

Menyimpan UUID

UUID yang ditulis sebagai teks memakan 36 karakter. 16 byte-nya dapat disimpan dalam bentuk biner, yang jauh lebih hemat ruang. Banyak database memiliki tipe UUID bawaan atau kolom biner 16 byte untuk keperluan ini, dan perbandingannya lebih cepat daripada teks.

Pilih satu format dan konsisten dengannya. Huruf besar, huruf kecil, tanda hubung, dan kurung kurawal adalah UUID yang sama bagi manusia, tetapi database atau perbandingan string dapat memperlakukannya sebagai nilai yang berbeda. Opsi huruf besar, tanpa tanda hubung, dan kurung kurawal pada generator tersedia untuk sistem yang memerlukan bentuk-bentuk tersebut.

Jangan pernah memakai UUID sebagai rahasia

UUID adalah pengenal, bukan password, token sesi, atau kunci akses. UUID dirancang agar unik, bukan agar sulit ditebak. UUID v7 juga membawa waktu pembuatannya. Selain itu, pengenal sering ditempel ke tautan, log, email, dan tangkapan layar, sehingga siapa pun yang melihatnya bisa menggunakannya kembali.

Kontrol akses harus berada di server. Orang yang mengetahui sebuah ID tidak otomatis boleh melihat atau mengubah data yang ditunjuk ID tersebut. Untuk password, frasa sandi, atau token, gunakan generator yang dibuat khusus untuk rahasia. Generator password membuat password acak atau frasa sandi kata di perangkat Anda dengan keacakan yang aman, dan memperkirakan kekuatannya. Untuk latar belakang mengapa panjang dan keacakan itu penting, baca kata sandi kuat dan entropi.

Cara menggunakan alat ini

  1. Pilih versi 4 untuk ID acak, atau versi 7 untuk ID yang terurut berdasarkan waktu.
  2. Atur jumlahnya, dari 1 sampai 500 sekaligus.
  3. Centang huruf besar, tanpa tanda hubung atau kurung kurawal jika kode Anda memerlukan format tertentu.
  4. Salin semuanya, atau unduh daftarnya sebagai file .txt.
  5. Tempelkan UUID apa pun di kolom Periksa untuk membaca versinya, variannya, dan, untuk v7, waktu yang tertanam di dalamnya.

Jawaban singkat

Apakah UUID v4 unik? Dalam praktiknya, ya. Dengan 122 bit acak, pengulangannya sangat tidak mungkin sehingga Anda tidak perlu memeriksanya.

Haruskah saya memakai v7 untuk semuanya? Tidak selalu. Gunakan v7 untuk kunci database dan apa pun yang diurutkan berdasarkan waktu. Gunakan v4 jika waktu pembuatan sebaiknya tetap tersembunyi.

Bisakah saya memakai UUID sebagai password? Tidak. UUID adalah pengenal. Gunakan generator password untuk apa pun yang harus tetap rahasia.

Apakah alat ini mengirim ID ke suatu tempat? Tidak. ID dibuat dan ditampilkan di browser Anda, dan tidak dikirim ke server.

Diterjemahkan dari Asli dalam bahasa Inggris dengan bantuan AI.

Komentar

    Belum ada komentar. Jadilah yang pertama.

    Penilaian Anda (opsional)

    Email Anda tidak pernah ditampilkan atau disimpan.

    Sampul Open Data for AGI - Why Public, Free, and Open Datasets MatterOpen Data for AGI - Why Public, Free, and Open Datasets Matter

    Mengapa dataset publik, gratis, dan terbuka akan membentuk kecerdasan umum buatan (AGI) sama besarnya dengan algoritma dan komputasi.

    $4.99Beli di GumroadDalam bahasa Inggris