Pada sebuah form pembelian, form order, pemesanan ataupun berbagai form layanan seperti submit tiket support, biasanya memerlukan nomer invoice, bisa juga nomer tiket. Nomer invoice ini berfungsi untuk mempermudah melacak order yang mana atau record yang mana yang akan ditindak lanjuti baik oleh admin (pemilik situs maupun yang berwenang menangani hasil post) ataupun oleh user sendiri.
Contoh kasus, user membeli barang semisal handphone samsung J1 lalu ia memesan atau membeli di sebuah web toko online, dengan sistem pembelian/pemesanan. Ia selesai melakukan pemesanan. Beberapa Jam Kemudian, Ia memutuskan untuk membeli aksesoris Tempered Glass untuk Handphonenya tersebut, maka ia kembali melakukan transaksi pembelian/pemesanan di toko online yang sama.
Dari contoh di atas, ada dua transaksi yang telah masuk ke dalam database toko online pada hari yang sama, bagaimana Si User ini mengkonfirmasi pembayarannya? sedangkan ada dua transaksi yang harus dibayar. Di database toko onlinepun terdapat mungkin ratusan transaksi milik user-user lain yang akan melakukan pembayaran. Nah, di sinilah fungsi nomer invoice, dengan adanya nomer invoice, maka user, sistem, dan admin akan mudah mengidentifikasi transaksi mana yang akan dibayar. Tinggal dicari/dipanggil data dengan nama user tersebut dan dengan invoce tertentu. Karena jika tidak menggunakan nomer invoice dan berpatokan pada user id (username, dan sebagainya) maka akan terjadi kesalahan, transaksi pembelian yang manakah yang akan dilunasi/dibayar? user tersebut di database bisa saja telah melakukan beberapa kali transaksi, jika dipanggil datanya maka akan muncul semua transaksi dan total item yang dibayar pasti tidak sesuai karena semua transaksi dengan nama user tersebut akan ditmpilkan semua.
Dengan demikian, maka nomer invoce memiliki fungsi yang sangat penting untuk menandai data transaksi tertentu, selain mungkin user id (username, dsb). Karena berfungsi untuk menandai transaksi tertentu, maka nomer invoice pun tidak boleh sama dengan nomer transaksi lainnya, harus berbeda atau unik.
Nah kali ini kita akan belajar membuat script form pemesanan dengan nomer invoice. Seperti telah disebutkan, bahwa nomer invoice harus unik tidak boleh sama dengan data transaksi lainnya, maka salah satu cara membuat nomer invoice adalah dengan membuat angka unik dari beberapa pilihan sebagai berikut:
- Membuat angka acak atau random dengan sejumlah digit tertentu, jadi misalnya dengan membuat angka random 5 digit, untuk setiap transaksi. Karena random, bisa jadi angkanya sama, walaupun demikian kemungkinan sama tersebut sangat kecil. Bisa juga menggunakan random angka dan huruf acak untuk semakin memeperkecil kemungkinan nomer invoice yang sama.
- Membuat angka acak dengan kombinasi username, tanggal, jam,menit, dan detik. Dengan demikian, jika ada ratusan user belanja pada hari yang sama, maka kemungkinan mempunyai nomer invoice yang sama sangatlah kecil sekali atau tidak mungkin apalagi jika menggunakan kombinasi username juga.
- Membuat invoce dengan kombinasi angka dan alphabet acak, dengan demikian invoice menjadi semakin unik dan kemungkinan terjadinya kesamaan nomer invoice akan sangat-sangat kecil
Saya akan membuat contoh script php invoice dengan menggunakan kombinasi angka dan alpahabet.
Code php untuk angka acak adalah sebagai berikut:
$invoice = mt_rand(100,999);
perhatikan mt_rand(100,999); adalah fungsi untuk mengacak angka 0 sampai 9 dengan jumlah karakter 3 digit. Jika sobat ingin menggunakan 5 digit, maka codenya sebagai berikut:
$invoice = mt_rand(10000,99999);
Sobat tinggal memasukan code tersebut dalam script php, sesuai kebutuhan, dengan echo $invoice nya.
Sedangkan code php untuk mengacak alphabet adalah sebagai berikut:
function random($len) {function random($len){ $result = ""; $chars = "abcdefghijklmnopqrstuvwxyz0123456789"; $charArray = str_split($chars); for($i = 0; $i < $len; $i++){ $randItem = array_rand($charArray); $result .= "".$charArray[$randItem]; } return $result;} $invoice1 = random(4);
untuk menampilkan alphabet acak di atas, tinggal echo $invoice1. Script di atas menghasilkan alphabet huruf acak sebanyak 4 digit. Jika ingin menambah menjadi 7 digit alphabet, tinggal merubah menjadi $invoice1 = random(7);
Nah, sekarang tinggal mengkombinasikan angka danhuruf secara acak, tinggal menggabungkan saja, jadi scriptnya akan seperti ini.
function random($len) {function random($len){ $result = ""; $chars = "abcdefghijklmnopqrstuvwxyz0123456789"; $charArray = str_split($chars); for($i = 0; $i < $len; $i++){ $randItem = array_rand($charArray); $result .= "".$charArray[$randItem]; } return $result;} $invoice1 = random(4); $invoice = mt_rand(100,999); echo"$invoice$invoice1";
yang akan menghasilkan kombinasi acak huruf dan angka seperti: 914wsi1
Contoh penggunaan dalam form sebagai seperti terlihat dalam gambar di bawah ini:
hasil post dari form tersebut seperti dibawah dengan menunjukan angka invoice acak:
Terimakasih sudah sharing.
Terimakasih buat coding2 nya, buat referensi untuk TA ?
sama-sama, semoga sukses untuk TA nya