Cara membuat kode barang otomatis dengan PHP dan MySQL

Belajar PHP - Membuat kode barang otomatis dengan PHP dan MySQL

Belajar PHP - Hai, berjumpa kembali diblog sederhana ini, kali ini kita akan membuat kode barang otomatis berdasarkan jenis barang yang dipilih.

Semisalkan terdapat kode jenis "MKN" dan kemudian kita melakukan penambahan data barang dengan kode jenis tersebut maka akan menghasilkan output "MKN0001".

Dan jika terdapat barang dengan jenis yang sama, maka nomor pada kode akan bertambah satu (+1) menjadi "MKN0002", "MKN0003", dst.

Langsung saja kita buat file-filenya.

Database

Pertama kita buat dulu databasenya, ikuti langkah-langkah berikut:
  1. Buka phpmyadmin
  2. Pilih menu SQL
  3. Lalu pastekan seluruh kode dibawah ini
--
-- Database: `penjualan`
--

CREATE DATABASE `penjualan`;
USE `penjualan`;

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_barang`
--

CREATE TABLE `tb_barang` (
  `kd_barang` varchar(20) NOT NULL PRIMARY KEY,
  `nm_barang` varchar(30) NOT NULL,
  `kd_jenis` varchar(5) NOT NULL
);

--
-- Dumping data untuk tabel `tb_barang`
--

INSERT INTO `tb_barang` (`kd_barang`, `nm_barang`, `kd_jenis`) VALUES
('MKN0001', 'Ayam Geprek', 'MKN'),
('MNM0001', 'Ale-ale', 'MNM'),
('MNM0002', 'Orson', 'MNM');

-- --------------------------------------------------------

--
-- Struktur dari tabel `tb_jenis`
--

CREATE TABLE `tb_jenis` (
  `kd_jenis` varchar(5) NOT NULL PRIMARY KEY,
  `jenis` varchar(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data untuk tabel `tb_jenis`
--

INSERT INTO `tb_jenis` (`kd_jenis`, `jenis`) VALUES
('MKN', 'Makanan'),
('MNM', 'Minuman');

-- --------------------------------------------------------

index.php

File ini digunakan untuk memanggil file yang dibutuhkan, karena kita akan membuatnya sesederhana mungkin.
<?php
try {
 $conn = new mysqli('localhost', 'root', '', 'penjualan');
} catch (Exception $e) {
 echo $e->getMessage();
}
?>

<!DOCTYPE html>
<html>
<head>
 <title>Membuat Kode Barang Otomatis</title>
 <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>


 <div class="container">
  <h1>Membuat Kode Barang Otomatis</h1>
  <div class="nav">
   <ul>
    <li>
     <a href="?p=data-barang">Data Barang</a>
    </li>
    <li> | </li>
    <li>
     <a href="?p=jenis">Jenis</a>
    </li>
   </ul>
  </div>
  
  <div class="content">
   
   <?php
   if(isset($_GET['p'])) {
    if ($_GET['p'] == 'jenis') {
     require_once 'jenis.php';
    } else {
     require_once 'data-barang.php';
    }
   }
   ?>   

  </div>
 </div>

</body>
</html>

Output:
Belajar PHP - Output halaman index

jenis.php

<?php

if (isset($_POST['submit'])) {
 $kd_jenis = strtoupper($_POST['kd_jenis']);
 $jenis = ucwords($_POST['jenis']);

 // cek kode jenis
 $sql = "SELECT * FROM tb_jenis WHERE kd_jenis = '$kd_jenis' OR jenis = '$jenis'";
 $q = $conn->query($sql);

 if ($q->num_rows > 0) {
  echo "<script>alert('Jenis sudah ada'); window.location.href='?p=jenis';</script>";
 } else {
  $sql = "INSERT INTO tb_jenis VALUES ('$kd_jenis', '$jenis')";
  $q = $conn->query($sql);

  if ($q) {
   echo "<script>alert('Jenis ditambahkan'); window.location.href='?p=jenis';</script>";
  } else {
   echo "<script>alert('Jenis gagal ditambahkan'); window.location.href='?p=jenis';</script>";
  }
 }
}

$sql = "SELECT * FROM tb_jenis";
$q = $conn->query($sql);
?>

<h3>Jenis</h3>

<div class="form-input">
 <form method="POST" action="">
  <label>Kode Jenis</label>
  <input type="text" name="kd_jenis" placeholder="Contoh. MKN" required>
  <label>Jenis</label>
  <input type="text" name="jenis" placeholder="Contoh. Makanan" required>
  <button class="btn-submit" type="submit" name="submit">Simpan</button>
 </form>
</div>

<br/>

<table>
 <tr>
  <th>#</th>
  <th>Kode Jenis</th>
  <th>Jenis</th>
 </tr>

 <?php 
 $no = 1;
 while ($row = $q->fetch_assoc()) : 
 ?>
  
 <tr>
  <td><?= $no++; ?></td>
  <td><?= $row['kd_jenis']; ?></td>
  <td><?= $row['jenis']; ?></td>
 </tr>

 <?php endwhile; ?>

</table>

Penjelasan:
// cek kode jenis
 $sql = "SELECT * FROM tb_jenis WHERE kd_jenis = '$kd_jenis' OR jenis = '$jenis'";
 $q = $conn->query($sql);

 if ($q->num_rows > 0) {
  echo "<script>alert('Jenis sudah ada'); window.location.href='?p=jenis';</script>";
 } else {
  $sql = "INSERT INTO tb_jenis VALUES ('$kd_jenis', '$jenis')";
  $q = $conn->query($sql);

  if ($q) {
   echo "<script>alert('Jenis ditambahkan'); window.location.href='?p=jenis';</script>";
  } else {
   echo "<script>alert('Jenis gagal ditambahkan'); window.location.href='?p=jenis';</script>";
  }
 }

Pada baris kode diatas kita melakukan pengecekan kode jenis dan nama jenis yang ada dalam database.

Jika kode jenis atau nama jenis sudah ada maka akan muncul peringatan, sebaliknya apabila kode jenis dan nama jenis belum ada maka akan lanjut disimpan ke database.

Output:
Belajar PHP - Output halaman jenis

data-barang.php

<?php

if (isset($_POST['submit'])) {
 $nm_barang = ucwords($_POST['nm_barang']);
 $kd_jenis = $_POST['jenis'];

 // cek kode barang
 $sql = "SELECT max(right(kd_barang, 4)) AS kode_barang FROM tb_barang WHERE kd_jenis = '$kd_jenis'";
 $q = $conn->query($sql);

 if ($q->num_rows > 0) {
  foreach ($q as $qq) {
   $no = ((int)$qq['kode_barang'])+1;
   $kd = sprintf("%04s", $no);
  }
 } else {
  $kd = "0001";
 }

 $kode = $kd_jenis.$kd;

 // simpan data
 $sql = "INSERT INTO tb_barang VALUES ('$kode', '$nm_barang', '$kd_jenis')";
 $q = $conn->query($sql);

 if ($q) {
  echo "<script>alert('Data barang ditambahkan'; windows.location.href = '?p=data-barang';</script>";
 } else {
  echo "<script>alert('Data barang gagal ditambahkan'; windows.location.href = '?p=data-barang';</script>";
 }
}

?>

<h3>Data Barang</h3>

<div class="form-input">
 <form method="POST" action="">
  <label>Nama Barang</label>
  <input type="text" name="nm_barang">
  <label>Jenis</label>
  <select name="jenis">
   
   <?php 
   $query = $conn->query("SELECT * FROM tb_jenis");
   while($row = $query->fetch_assoc()) :
   ?>
    
   <option value="<?= $row['kd_jenis']; ?>"><?= $row['jenis']; ?></option>
   
   <?php endwhile; ?>

  </select>
  <button type="submit" name="submit">Simpan</button>
 </form>
</div>

<br/>

<table>
 <tr>
  <th>#</th>
  <th>Kode Barang</th>
  <th>Nama Barang</th>
  <th>Jenis</th>
 </tr>

 <?php 
 $sql = "SELECT * FROM tb_barang LEFT JOIN tb_jenis ON tb_barang.kd_jenis = tb_jenis.kd_jenis";
 $q = $conn->query($sql);
 
 $no = 1;
 while ($data = $q->fetch_assoc()) : 
 ?>

 <tr>
  <td><?= $no++; ?></td>
  <td><?= $data['kd_barang']; ?></td>
  <td><?= $data['nm_barang']; ?></td>
  <td><?= $data['jenis']; ?></td>
 </tr>

 <?php endwhile; ?>

</table>

Penjelasan:
// cek kode barang
 $sql = "SELECT max(right(kd_barang, 4)) AS kode_barang FROM tb_barang WHERE kd_jenis = '$kd_jenis'";
 $q = $conn->query($sql);

 if ($q->num_rows > 0) {
  foreach ($q as $qq) {
   $no = ((int)$qq['kode_barang'])+1;
   $kd = sprintf("%04s", $no);
  }
 } else {
  $kd = "0001";
 }

 $kode = $kd_jenis.$kd;

Pada baris kode diatas kita melakukan pengecekan kode barang, jika kita menambahkan kode barang yang kode jenisnya baru, maka nomor pada kode barang "0001" dan menjadi "MKN0001".

Dan jika terdapat kode jenis yang sama maka nomor pada kode barang akan bertambah 1 (+1) menjadi "MKN0002", "MKN0003", dst.

Output:
Belajar PHP - Output halaman data barang

style.css

body {
 font-family: arial;
 padding: 0;
 margin: 0;
}

.container {
 width: 100%;
 text-align: center;
}

h1, h3 {
 color: #0B8383;
}

ul {
 padding-inline-start: unset;
}

ul li {
 display: inline-block;
}

ul li a {
 color: #000;
 text-decoration: none;
}

ul li a:hover {
 color: #0B8383;
}

div.form-input {
 border: thin solid #999;
    min-width: 608px;
    max-width: 618px;
    padding: 15px;
    border-radius: 4px;
    margin: 0 auto;
}

input[type="text"] {
 width: 200px;
 height: 28px;
}

select {
 width: 200px;
 height: 34px;
}

button {
 height: 34px;
 cursor: pointer;
}

table {
 width: 600px;
 margin: 0 auto;
 border-collapse: collapse;
}

th, td {
 border: thin solid #999;
 padding: 6px;
}

Posting Komentar

0 Komentar