Membuat nomor transaksi diawali 0000

membuat nomor transaksi dalam 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 increment
  2. 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());
   $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());

Notes :
Untuk beberapa kasus anda bisa kombinasikan nomor tersebut dengan huruf seperti A001, atau bisa juga dengan kombinasi angka seperti tahun atau bulan. Akan tetapi untuk kasus seperti ini anda harus menyediakan field baru agar nomor transaksinya bisa disimpan secara terpisah, contoh dengan susunan tabel seperti berikut :

  1. nomor - tipe data int dengan atribut primary auto increment
  2. kode - tipe char sesuai panjang yang diperlukan
  3. tanggal - tipe data date
  4. dst disesuaikan dengan kasus

Jika perlu kombinasi seperti diatas anda bisa gunakan cara :

$LastID="A".FormatNoTrans(getLastTrans()); //Untuk kombinasi dengan huruf
$LastID=year("Y").FormatNoTrans(getLastTrans()); //Untuk kombinasi dengan tahun

Pada saat menyimpan ke tabel anda tinggal simpan hasil kode ke field kode yang sudah kita buat.

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

Zainal Hakim

** Bebas disunting dengan menyebutkan sumber **

Komentar

Halaman Lainya

  • Cara upload file dengan PHP Script
    Php memiliki fasilitas untuk mengirimkan file dari komputer pengguna melalui browser ke server sehingga kita tidak perlu lagi aplikasi khusus seperti ftp atau login ke panel hosting hanya untuk sekedar upload file biasa, dokumen, maupun gambar.
  • Perintah php mysql
    PHP telah menyediakan banyak perintah fungsi bawaan yang bisa kita gunakan dalam membuat aplikasi web. Fungsi-fungsi tersebut juga sangat beragam dari pengolahan string, pengolahan dan manipulasi gambar, sampai melakukan komunikasi dengan database. PHP juga mendukung banyak database tidak terkecuali MySql. Apa saja perintah php mysql?
  • Cara mudah mengirim email dari PHP dengan PHPMailer
    Untuk mengirim email dengan php biasanya bisa dilakukan dengan cara sederhana yaitu dengan fungsi mail. Cara ini cukup ampuh untuk mengirim email dengan format text/pesan tanpa ada pengaturan tampilan.
  • Mengatur format tanggal dalam php
    PHP telah menyediakan fungsi untuk menampilkan tanggal dalam berbagai format yang dituliskan dalam bahasa inggris. Bagaimana jika kita perlu menampilkan tanggal dalam format indonesia? Artikel berikut akan menjelaskan beberapa format tanggal dalam php dan cara menampilkannya. SIlahkan anda simak.
  • Membuat form kontak dengan html dan php
    Form kontak adalah salah satu bagian penting yang harus ada dalam sebuah website. Anda bisa lihat website-website yang pernah anda kunjungi, semuanya pasti menyediakan form kontak ini.

Kiriman terbaru