author Ahmad Muhardian

Membuat Generator id Unik seperti id Video YouTube di PHP


Dalam sebuah tabel di database, seringkali kita membuat kolom bernama id sebagai primary key. Kadang kolom tersebut kita berikan fungsi auto increment agar otomatis terisi dengan angka. Namun, kali ini kita coba menggunakan karakter yang di-generate dari nilai waktu per milidetik.

1. Mengambil Niali Unik dari Fungsi Waktu

Kita dapat menggunakan fungsi microtime() atau fungsi time() untuk mendapatkan nilai unik. Nilai ini, senantiasa akan berubah terus, seiring dengan perubahan waktu.

Dari percobaan di atas, fungsi microtime() mengembalikan nilai unik setiap kali dipanggil. Sementara itu, fungsi time() akan mengembalikan nilai unik setiap detik.

Saya sarankan menggunakan fungsi microtime(), karena fungsi ini mengembalikan nilai unik per milidetik.

2. Konversi Nilai Unik

Sebenarnya, kita bisa saja menggunakan nilai kembalian dari microtime() dan time() untuk membuat id unik. Tapi, karena kita ingin membuat id serpeti YouTube, maka kita harus lakukan konversi ke dalam bentuk lain. Kita bisa menggunakan fungsi base_convert() untuk membuatnya.
Fungsi base_convert() Sebenarnya untuk mengubah basis dari sebuah nilai. Pada contoh di atas, parameter angka 10 merupakan panjang nilai yang dihasilkan. Sedangkan angka 36 adalah basisnya.

Contoh lain, panjang 8 dengan basis 16 (bilangan heksadesimal):

3. Kode Generator

Kita sudah dapat apa yang kita inginkan, sekarang kita buat kode generatornya. Pada generator ini kita gunakan basis 36 dengan panjang 10.
<?php
$id = base_convert(microtime(false), 10, 36);
?>
Kita bisa manfaatkan variabel tersebut untuk penyimpanan ke tabel database. Contoh:
<?php
$id = base_convert(microtime(false), 10, 36);

mysqli_query($koneksi, “INSERT INTO video (id, judul, url) VALUE (’$id’,‘Petani Kode - Intro’,‘petani-kode.mp4’)”);
?>
Basis 36 maksudnya: ‘abcdefghijklmnopqrstuvwxyz0123456789’ = 36 karater.

Kesimpulan

Id unik untuk primary key seperti YouTube dibuat dari konversi nilai unik dari fungsi microtime() atau time() ke dalam bentuk basis 36. Konversi basis dari sebuah nilai menggunakan fungsi base_convert().

Referensi: Stack Overflow

Baca Juga ini

Konfigurasi Server Apache PHP di Linux agar bisa Upload File

Konfigurasi Server Apache PHP di Linux agar bisa Upload File

Saya berencana akan melakukan instal ulang dalam waktu dekat ini. Karena ada beberapa kerusakan yang saya temukan di Distro Linux yang sedang saya pakai. Sebelum melakukan itu, ada baiknya mencatat dulu konfigurasi server yang sedang berjalan. Supaya nanti mudah mengonfigurasi lagi. Server Apache dan PHP di Linux tidak seperti server XAMPP di Windows. Server Apache dan PHP di linux memiliki hak akses direktori yang harus dipatuhi.

Membuat Project PHP dengan Composer

Membuat Project PHP dengan Composer

Sebanarnya untuk memulai belajar pemrograman PHP, kita tidak butuh banyak alat. Cukup dengan 4 alat ini...

Belajar PHP: Memahami 4 Jenis Perulangan dalam Pemrograman PHP

Belajar PHP: Memahami 4 Jenis Perulangan dalam Pemrograman PHP

Perulangan adalah hal dasar yang harus dipelajari dalam pemrograman PHP. Pada artikel ini, kita akan belajar jenis perulangan di PHP.

Belajar PHP: Menggunakan Percabangan untuk Membuat Logika Program

Belajar PHP: Menggunakan Percabangan untuk Membuat Logika Program

Pemahaman tentang percabangan akan sangat membantumu belajar ke tahap berikutnya. Karena dengan percabangan kita bisa membuat logika program. Pada tulisan ini kita akan belajar tentang percabangan di PHP dengan contoh

Belajar PHP: 7 Jenis Operator dalam PHP yang Harus diketahui

Belajar PHP: 7 Jenis Operator dalam PHP yang Harus diketahui

Pada tutorial ini, kita akan belajar tentang operator dalam PHP. Operator merupakan simbol yang digunakan untuk melakukan operasi dalam program. Ada tujuah macam operator di PHP yang harus kamu ketahui...