Dewaweb

Membuat Fungsi Kode Otomatis yang Dinamis dan Tidak Habis dengan PHP

Selamat pagi menjelang siang pembaca semua, hari ini kita akan mempelajari sedikit mengenai penomoran Otomatis. Yang mana merupakan Penemuan Logika saya pribadi alias "ORIGINAL". Biasanya para pembuat kode mengandalkan fitur "Auto Increment" pada MySQL database. Hanya saja, nomor tersebut akan terus berlanjut dan semakin besar bilangan/nominalnya. Nah, bagaimana caranya membuat penomoran otomatis yang dinamis? dan tentunya tidak terbatas?. Mari simak penjelasan berikut.
  • Buat Database dan Tabelnya terlebih dahulu (misal: db_test dan tbl_nomor).
  • 1:  create database db_test;  
    2:  create table tbl_nomor (id_nomor varchar(12) primary key);  
    
  • Buat file koneksi untuk menghubungkan antara file dengan databasenya (misal: koneksi.php)
  • 1:  <?php  
    2:  $server  = "localhost";  
    3:  $username = "root";  
    4:  $password = "password";  
    5:  $database = "db_test";  
    6:  $koneksi = new mysqli($server,$username,$password,$database);  
    7:  if($koneksi->connect_errno){  
    8:   echo "Failed to connect to MySQL: (" . $koneksi->connect_errno . ") " . $koneksi->connect_error;  
    9:  }  
    10:  ?>  
    
  • Buatlah file fungsi untuk membuat nomor otomatis. (misal: function.php)
  • 1:  <?php  
    2:  #baris koneksi dengan mysqli  
    3:  include ("koneksi.php");  
    4:  #Baris fungsi nomor otomatis  
    5:  function AutoNumber($tabel,$order,$akr){  
    6:   $tgl = date("ym",time());  
    7:   $ambil_data = $koneksi->query("SELECT * from ". $tabel ." order by ". $order ." desc");  
    8:   $urutan   = $ambil_data->fetch_row();  
    9:   if($urutan[0] == ""){  
    10:    $idAuto="$akr.".$tgl.".001";  
    11:   }else  
    12:   if($urutan[0] <> ""){  
    13:   $data_akhir = $koneksi->query("SELECT * from ". $tabel ." order by ". $order ." desc limit 0,1");  
    14:   $urutan2 = $data_akhir->fetch_row();  
    15:    if(substr($urutan2[0],0,8) <> "$akr.".$tgl){  
    16:     $idAuto="$akr.".$tgl.".001";  
    17:    }else{  
    18:     $Counter=substr($urutan2[0],9,3)+1;  
    19:     if($Counter < 10){  
    20:     $idAuto="$akr.".$tgl. ".00" .$Counter;  
    21:     }else  
    22:     if($Counter < 100){  
    23:     $idAuto="$akr.".$tgl. ".0" .$Counter;  
    24:     }else  
    25:     if($Counter < 1000){  
    26:     $idAuto="$akr.".$tgl. "." .$Counter;  
    27:     }  
    28:    }  
    29:   }#akhir auto number  
    30:   return $idAuto;  
    31:  }  
    32:  ?>  
    
  • Buatlah file index.php yang berisi form untuk melakukan proses penambahan nilai,dan menampilkan nilai.
  • 1:  <!DOCTYPE html>  
    2:  <html>  
    3:  <head>  
    4:   <meta charset="utf-8">  
    5:   <meta http-equiv="X-UA-Compatible" content="IE=edge">  
    6:   <title>Nomor Otomatis</title>  
    7:   <link rel="stylesheet" href="">  
    8:  </head>  
    9:  <bod>  
    10:   <form action="" method="post" accept-charset="utf-8">  
    11:   <input type="submit" name="proses" value="Proses">  
    12:   </form>  
    13:   <?php  
    14:   if(isset($_POST['proses'])){  
    15:   include("koneksi.php");  
    16:   include("function.php");  
    17:   $idAutoNumber = AutoNumber('tbl_nomor','id_nomor','NUM');  
    18:   $input_nomor = $koneksi->query("INSERT into tbl_nomor values('$idAutoNumber')");  
    19:   $ambil_nomor = $koneksi->query("SELECT * from tbl_nomor order by id_nomor DESC");  
    20:   while($hasil_nomor = $ambil_nomor->fetch_object()){  
    21:    echo $hasil_nomor->id_nomor;  
    22:    echo "<br>";  
    23:   }  
    24:   }  
    25:   ?>  
    26:  </body>  
    27:  </html>  
    
  • Kemudian coba jalankan dan klik tombol Proses, dan hasilnya akan seperti ini.

  • Mudah bukan... Nah, untuk penjelasannya sebagai berikut:
    • Setiap kode dipisah dengan tanda titik (bisa juga sih dengan tanda yang lain :D )
    • NUM : merupakan Akronim, terdiri dari 3 karakter (huruf) dan bisa ditentukan sendiri pada saat pemanggilannya. $idAutoNumber = AutoNumber('tbl_nomor','id_nomor','NUM').NUM disini saya artikan NUMBER, Anda bisa membuat yang lain (misal: PRD alias PRODUK)
    • Angka 1508 menunjukkan tahun 2015 dan bulan 08
    • Angka 001,002,003...,dst menunjukkan no urut. Nah, katanya tidak terbatas??? Itu kan hanya mentok di 999. Bagaimana ini...!!!!. Don't be panic...(sok inggris :D). Angka-angka tersebut akan kembali ke 001 apabila Tahun atau Bulannya berubah. Beress... 
    Download Code Lengkap disini
    Demo Program disini

1 Response to " Membuat Fungsi Kode Otomatis yang Dinamis dan Tidak Habis dengan PHP "

  1. How to get to the 'gambling hall' at MGM National Harbor - Jet
    You need a ticket to your Las Vegas hotel. The only way to get to 천안 출장안마 the “Gambling 충청남도 출장샵 Hall” 전주 출장마사지 is 용인 출장안마 through the MGM National Harbor entrance. 양주 출장샵

    ReplyDelete