Tutorial membuat kode barang otomatis ini adalah lanjutan dari Membuat Kode Barang Otomatis di PHP MySQL, bedanya tutorial tersebut tanpa framework, kali ini kita menggunakan CodeIgniter 3 (lebih tepatnya CodeIgniter 3.1.10).

Sebelum memulai tutorial ini, buat database baru dengan nama barang, lalu ubah di konfigurasinya di CodeIgniter pada file application/config/database.php

'hostname' => 'localhost',
'username' => 'userci',
'password' => 'JEjRdoLFExcJxUxkpn7j',
'database' => 'barang',
'dbdriver' => 'mysqli',

Database

Database yang akan kita gunakan sama dengan tutorial sebelumnya barang.sql

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`);
 
ALTER TABLE `barang`
  MODIFY `ID` INT(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
COMMIT;

Model

Buat file baru dengan nama Barang_model.php (application/models/Barang_model.php) yang isinya

<?php
class Barang_model extends CI_Model {
 
        public $kode_barang;
        public $nama_barang;
 
    public function __construct()
    {
        $this->load->database();
    }
 
    public function cekkodebarang()
    {
        $query = $this->db->query("SELECT MAX(kode_barang) as kodebarang from barang");
        $hasil = $query->row();
        return $hasil->kodebarang;
    }
 
    public function simpan()
    {
        $this->kode_barang    = $_POST['kodebarang'];
        $this->nama_barang  = $_POST['namabarang'];
        $this->db->insert('barang', $this);
    }
}

Controller

Buat satu file controller baru beri nama Barang.php (application/controllers/Barang.php)

<?php
class Barang extends CI_Controller {
 
    public function __construct()
    {
        parent::__construct();
        $this->load->helper("url");
        $this->load->model('barang_model');
    }
 
    public function index()
    {
        $dariDB = $this->barang_model->cekkodebarang();
        // contoh JRD0004, angka 3 adalah awal pengambilan angka, dan 4 jumlah angka yang diambil
        $nourut = substr($dariDB, 3, 4);
        $kodeBarangSekarang = $nourut + 1;
        $data = array('kode_barang' => $kodeBarangSekarang);
        $this->load->view("barang", $data);
    }
 
    public function simpan()
    {
        $this->barang_model->simpan();
        redirect('Barang/index');
    }
}

View

Buat satu file view baru dengan nama barang.php (application/views/barang.php)

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
 
    <title>Tutorial CodeIgniter - JARANGUDA.COM</title>
  </head>
  <body>
    <div class="container">
      <hr>
      <h3>KODE BARANG</h3>
      <hr>
      <form action="/Barang/simpan" method="POST" >
        <div class="form-group">
          <label for="cari">Kode Barang</label>
          <input type="text" class="form-control" id="kodebarang" name="kodebarang" value="JRD<?php echo sprintf("%04s", $kode_barang) ?>" readonly>
        </div>
        <div class="form-group">
          <label for="cari">Nama Barang</label>
          <input type="text" class="form-control" id="namabarang" name="namabarang">
        </div>
        <input class="btn btn-primary" type="submit" value="Simpan">
        <input class="btn btn-primary" type="reset" value="Reset">
      </form>
    </div>
    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
  </body>
</html>

Testing

Jalankan CodeIgniter, buka URL /Barang/index (http://localhost/Barang/index)
kode barang otomatis codeigniter 3

dari screenshot diatas Kode Barang sudah langsung jadi JRD0005, coba isi random di Nama Barang lalu klik Simpan. Halaman /Barang/index akan dibuka dan kode barang jadi JRD0006
kode barang otomatis bertambah codeigniter 3

Join the Conversation

1 Comment

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

  1. punten, saya dpt error undefined index:kodebarang . padahal saya sudah memberikan nilai pada atribute name pada inputnya menjadi kodebarang. mohon bantuannya