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
)
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
punten, saya dpt error undefined index:kodebarang . padahal saya sudah memberikan nilai pada atribute name pada inputnya menjadi kodebarang. mohon bantuannya