Membuat Nomor Transaksi Otomatis Dengan PHP

3
Jika kita membuat aplikasi yang berhubungan dengan proses transaksi maka akan membuat penomoran secara otomatis yang format nomornya terdiri dari beberapa angka sesuai urutan transaksinya. Nomor transaksi biasanya diawali dari angka terkecil yaitu satu tapi ditampilkan dalam digit angka ratusan atau ribuan. Misal untuk transaksi no 1 maka akan ditampilkan dengan angka 001 atau 0001. Sebenarnya sistem penomoran seperti saya jelaskan diatas, tidak ada bedanya dengan penomoran biasanya hanya saja dengan cara ini nomor transaksi akan tampil lebih konsisten karena jumlah digit yang digunakan memiliki panjang sama. Dari susunan tabel penyimpanannya juga tidak ada perbedaan, jadi semuanya memang murni tampilanya saja. Misal untuk filed/kolom nomor bisa menggunakan tipe int atau long untuk jumlah transaksi yang lebih banyak. Secara logika proses pembuatan nomor transaksi dengan cara yang saya bahas ini tidak jauh beda dengan biasanya hanya saja sebelum ditampilkan, nomor yang diperoleh dari database di konversi dulu dengan format khusus. Misal kita punya tabel transaksi dengan struktur seperti berikut : 1. nomor - tipe data int dengan atribut primary auto increment

description

Tutorial PHP

Transcript of Membuat Nomor Transaksi Otomatis Dengan PHP

Page 1: Membuat Nomor Transaksi Otomatis Dengan PHP

Jika kita membuat aplikasi yang berhubungan dengan proses transaksi maka akan membuat penomoran secara otomatis yang format nomornya terdiri dari beberapa angka sesuai urutan transaksinya. Nomor transaksi biasanya diawali dari angka terkecil yaitu satu tapi ditampilkan dalam digit angka ratusan atau ribuan. Misal untuk transaksi no 1 maka akan ditampilkan dengan angka 001 atau 0001.

Sebenarnya sistem penomoran seperti saya jelaskan diatas, tidak ada bedanya dengan penomoran biasanya hanya saja dengan cara ini nomor transaksi akan tampil lebih konsisten karena jumlah digit yang digunakan memiliki panjang sama.

Dari susunan tabel penyimpanannya juga tidak ada perbedaan, jadi semuanya memang murni tampilanya saja. Misal untuk filed/kolom nomor bisa menggunakan tipe int atau long untuk jumlah transaksi yang lebih banyak.

Secara logika proses pembuatan nomor transaksi dengan cara yang saya bahas ini tidak jauh beda dengan biasanya hanya saja sebelum ditampilkan, nomor yang diperoleh dari database di konversi dulu dengan format khusus.

Misal kita punya tabel transaksi dengan struktur seperti berikut :

1. nomor - tipe data int dengan atribut primary auto increment2. tanggal - tipe data date

3. dst disesuaikan dengan kasus

Asumsi data transaksi masih kosong sehingga jika ada transaksi baru maka nomor akan diberi nilai 1.

Jika kita mengambil nomor transaksi dengan cara biasa seperti cara berikut :

function getLastTrans(){ $querycount="SELECT MAX(ID) AS LastID FROM tb_trans"; $result=mysql_query($querycount) or die(mysql_error());

Page 2: Membuat Nomor Transaksi Otomatis Dengan PHP

$row=mysql_fetch_array($result, MYSQL_ASSOC); return $row['LastID'];}

Fungsi diatas akan mengembalikan nilai ID transaksi terakhir dengan cara :

$LastID=getLastTrans();

Misal ketemu ID transaksi terakhir adalah 0 karena tabel transaksi masih kosong. Nilai 0 adalah nomor terakhir, berarti untuk transaksi berikutnya adalah 1. Jika ketemu 1, maka transaksi berikutnya 2, dst.

ID terakhir tersebut kemudian harus kita manipulasi agar bisa ditampilkan dalam bentuk 0001. Untuk memanipulasi ID tersebut kita bisa gunakan fungsi berikut :

function FormatNoTrans($num){ $num=$num+1; switch (strlen($num)) {    case 1 : $NoTrans = "0000".$num; break;    case 2 : $NoTrans = "000".$num; break;    case 3 : $NoTrans = "00".$num; break;    case 4 : $NoTrans = "0".$num; break;    default: $NoTrans = $num;       }          return $NoTrans;}

Secara logika kita cuman melakukan pengecekan panjang angka yang dikirimkan kepada fungsi FormatNoTrans. Misal jika dikirimkan 1 maka outpunya adalah 00001, jika dikirimkan dalam ratusan seperti 221 maka outpunya 00221 dst.

Jika kita gabungkan kedua fungsi yang sudah dibuat maka kita bisa memanggilanya dengan cara :

$LastID=FormatNoTrans(getLastTrans());

Semoga bermanfaat dan selamat mencoba. Jika ada yang kurang jelas silahkan ditanyakan dan jika ada yang salah silahkan dikoreksi.