Skip to main content
bedanya sprintf dan ngga

Format Kode Otomatis di PHP MySQL

Contoh kasus, kita akan membuat kode barang berurutan secara otomatis, formatnya adalah JRD0000 dimana JRD adalah kode perusahaan dan 0000 empat angka ini adalah no urutan barang.

Buat database contoh sebagai berikut

CREATE TABLE IF NOT EXISTS `barang` (
`ID` int(11) NOT NULL,
`kode_barang` varchar(20) NOT NULL,
`nama_barang` varchar(255) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
 
 
INSERT INTO `barang` (`ID`, `kode_barang`, `nama_barang`) VALUES
(1, 'JRD0001', 'Susu Ultra'),
(2, 'JRD0002', 'Kacang Ijo'),
(3, 'JRD0003', 'Ultramilk'),
(4, 'JRD0004', 'Shampoo Ini');
 
 
ALTER TABLE `barang`
ADD PRIMARY KEY (`ID`);

buat file php dengan nama nourut.php, isinya sebagai berikut

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
$hostname = 'localhost'; // server mysql
$username = 'root'; // user mysql
$password = 'password'; // pasword mysql
$database = 'databaseku'; // nama database
try
{
$dbh = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
 
}
catch(PDOException $e)
{
echo $e->getMessage();
}
$query = $dbh->query('SELECT MAX(kode_barang) as kodex  FROM  barang'); // mengambil nilai kode_barang terbesar
$data = $query->fetch();
$kode = $data['kodex']; // kode_barang dengan angka terbesar
$nourut = substr($kode, 3, 4); // contoh JRD0004, angka 3 adalah awal pengambilan angka, dan 4 jumlah angka yang diambil
$nourut++; 
echo sprintf("%04s", $nourut) ; // mencetak no urut dengan 4 angka, lihat bedanya jika hanya menggunakan echo $nourut;

baris 18-21 adalah bagian yang berguna untuk membuat urutan kode barang tersebut. Baris 19 berguna untuk memecah kode barang JRD0004 menjadi JRD dan 0004.

Jalankan script diatas di browser hasilnya adalah 0005, karena data yang ada di database baru ada 4 baris.
hasil no urut

Keuntungan menggunakan sprintf("%04s") adalah format yang kita gunakan akan tetap dalam format 4 angka, bila angkanya masih dibawah 10000, contoh
bedanya sprintf dan ngga
Bila diatas 1000 hasilnya sama saja
diatas 10000

tommy

Adi bekasta encari e, ja pe la lit renggetna.

Leave a Reply

Your email address will not be published. Required fields are marked *