Pada artikel kali ini kita kan belajar membuat sebuah kode otomatis menggunakan PHP. Kode otomatis yang dimaksud merupakan sebuah sistem penomoran dengan format tertentu. Contohnya jika kita akan membuat sebuah kode transaksi dengan format tanggal dan nomor urut seperti 20210901001 atau kode barang BRG001, BRG002 dan sebagainya. Dengan adanya fungsi ini, maka setiap data yang kita inputkan ke database akan memiliki kode transaksi yang berberda.
Membuat Kode Transaksi Otomatis dengan PHP
Tutorial membuat kode transaksi otomatis ini kita akan menggunakan database mysql sebagai contohnya. Buatlah database bernama toko dengan tabel barang.
CREATE DATABASE toko;
USE toko;
CREATE TABLE barang(
kd_barang VARCHAR(25) PRIMARY KEY NOT NULL,
nama_barang VARCHAR(250),
qty INT,
harga INT
)
Selanjutnya membuat koneksi database dengan PHP. Buatlah file koneksi.php di directory xampp htdocs.
<?php
$koneksi = mysqli_connect('localhost','root','','toko');
?>
Buat file index.php untuk proses pembuatan kode otomatis
<?php
//memanggil file koneksi.php
include "koneksi.php";
//ambil data terbesar
$char = 'BRG';
$query=mysqli_query($koneksi,"SELECT max(kd_barang) as max_kode FROM barang
WHERE kd_barang LIKE '{$char}%' ORDER BY kd_barang DESC LIMIT 1");
$data = mysqli_fetch_array($query);
$kodeBarang = $data['max_kode'];
//mengambil data menggunakan fungsi subtr,
//misal data BRG001 akan diambil 001
$no = substr($kodeBarang, -3, 3);
//setelah substring bilangan diambil lantas dicasting menjadi integer
$no = (int) $no;
//bilangan yang diambil akan ditambah 1 untuk menentukan nomor urut berikutnya
$no += 1;
//perintah sprintf("%03s", $no) berguna untuk membuat string menjadi 3 karakter
$newKodeBarang = $char . sprintf("%03s", $no);
//nomor urut baru
echo $newKodeBarang;
?>
Jika file index.php dijalankan akan menghasilkan kode barang seperti gambar dibawah ini.
Membuat proses input data melalui form, buatlah file contoh1.php
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form method="POST">
<table>
<tr>
<td>Nama Barang</td>
<td><input type="text" name="nama_barang" /></td>
</tr>
<tr>
<td>qty</td>
<td><input type="text" name="qty" /></td>
</tr>
<tr>
<td>harga</td>
<td><input type="text" name="harga" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="simpan" value="Simpan" /></td>
</tr>
</table>
</form>
<?php if (isset($_POST['simpan'])) {
# code...
include 'koneksi.php';
//proses pembuatan kode otomatis
$char = 'BRG';
$query=mysqli_query($koneksi,"SELECT max(kd_barang) as max_kode FROM barang
WHERE kd_barang LIKE '{$char}%' ORDER BY kd_barang DESC LIMIT 1");
$data = mysqli_fetch_array($query);
$kodeBarang = $data['max_kode'];
$no = substr($kodeBarang, -3, 3);
$no = (int) $no;
$no += 1;
$newKodeBarang = $char . sprintf("%03s", $no);
$namaBarang=$_POST['nama_barang'];
$qty=$_POST['qty'];
$harga=$_POST['harga'];
//insert kedalam tabel barang
$insert=mysqli_query($koneksi,"INSERT INTO barang(kd_barang, nama_barang, qty, harga)
VALUES('$newKodeBarang', '$namaBarang', '$qty', '$harga')");
if ($insert) {
# code...
echo "Data barang berhasil disimpan!";
}
}
?>
</body>
</html>
Tampilan form barang jika dijalankan seperti dibawah ini.
Contoh data barang yang sudah masuk kedalam tabel barang.
Untuk contoh membuat kode transaksi menggunakan format tanggal dan nomor urut, teman-teman bisa membuat satu tabel lagi bernama penjualan.
Proses pembuatan kode transaksi otomatis seperti dibawah ini.
<?php
//memanggil file koneksi.php
include "koneksi.php";
//ambil data terbesar
$char = date("Ymd");
$query=mysqli_query($koneksi,"SELECT max(kd_transaksi) as max_kode FROM penjualan
WHERE kd_transaksi LIKE '{$char}%' ORDER BY kd_transaksi DESC LIMIT 1");
$data = mysqli_fetch_array($query);
$kodeTransaksi = $data['max_kode'];
//mengambil data menggunakan fungsi subtr,
//misal data 20211114001 akan diambil 001
//20211114 merupakan tanggal 14 november 2021
$no = substr($kodeTransaksi, -3, 3);
//setelah substring bilangan diambil lantas dicasting menjadi integer
$no = (int) $no;
//bilangan yang diambil akan ditambah 1 untuk menentukan nomor urut berikutnya
$no += 1;
//perintah sprintf("%03s", $no) berguna untuk membuat string menjadi 3 karakter
$newKodeTransaksi = $char . sprintf("%03s", $no);
//nomor urut baru
echo $newKodeTransaksi;
?>