Back to blog
Backend

UUID vs Auto Increment: Cara Memilih ID Database yang Tepat

Apakah kamu masih menggunakan ID angka berurutan 1, 2, 3 untuk data pesanan? Hati-hati, kompetitormu bisa menebak jumlah penjualanmu dengan mudah!

super admin·20 Juni 2026·2 min read
UUID vs Auto Increment: Cara Memilih ID Database yang Tepat
Article Content

Bahayanya Menggunakan ID Berurutan

Sebagai Backend Developer pemula, saat membuat tabel *Database* SQL, kamu pasti mengatur Primary Key (ID) menggunakan fitur Auto Increment. Data pertama mendapat ID 1, data kedua ID 2, dan seterusnya. Format ini sangat cepat dan gampang dibaca. Tapi apakah aman untuk aplikasi yang sudah rilis (Production)?

Misalnya, URL pesanan *e-commerce* milikmu adalah: toko.com/pesanan/150.

  • Bahaya Insecure Direct Object Reference (IDOR): Hacker pemula cukup mengubah angka 150 menjadi 151 di URL. Jika API-mu tidak mengecek hak akses (Authorization) dengan ketat, *hacker* bisa melihat data pesanan orang lain!
  • Bocornya Rahasia Bisnis: Jika hari ini seseorang mendaftar dan mendapat ID 100, lalu bulan depan ia membuat akun lagi dan mendapat ID 150, ia akan tahu bahwa tokomu hanya mendapat 50 pelanggan dalam sebulan. Kompetitor bisa membaca seberapa laku bisnismu!

Solusi Kelas Enterprise: UUID (Universally Unique Identifier)

Untuk mengatasi masalah tersebut, perusahaan besar menggunakan UUID. UUID adalah deretan 36 karakter acak (kombinasi angka dan huruf) yang dijamin 100% unik di seluruh dunia, bahkan jika dibuat secara bersamaan di server yang berbeda.

Contoh UUID: 550e8400-e29b-41d4-a716-446655440000.

Kelebihan dan Kekurangan UUID

  • Kelebihan: Mustahil ditebak oleh *hacker*. Tidak membocorkan jumlah data di *database*. Sangat aman untuk URL Publik (seperti link Reset Password atau Tracking Resi).
  • Kelemahan: Sangat berat dan lambat jika dijadikan Primary Key utama yang sering di-JOIN, karena ukurannya memakan memori 4 kali lipat lebih besar dibanding angka biasa. URL juga menjadi sangat panjang dan jelek jika harus diketik manual.

Strategi Terbaik (Hybrid)

Bagaimana cara mendapatkan kecepatan *Auto Increment* sekaligus keamanan *UUID*? Gunakan keduanya!

Di dalam *Database*, tetap gunakan Auto Increment (ID Angka) sebagai *Primary Key* internal untuk berelasi antar tabel (JOIN) agar *query* tetap super cepat. TAPI, tambahkan satu kolom baru bernama uuid. Saat Frontend mengambil data via REST API, jangan pernah mengekspos ID angka tersebut ke luar server, kirimkan dan gunakan kolom UUID-nya sebagai pengenal di URL.

Mau langsung pakai template?

Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.

Browse Templates