Sabtu, 12 November 2016

Membuat Barcode pada Codeigniter



Hello sobat programer khususnya Develoepr Codeigniter hari ini saya akan berbagi ilmu bagaimana cara membuat barcode di coiginter, sebelum memulai tutorial ga ada salahnya kita pahami dulu apa itu barcode.  Sebuah kode batang atau kode palang yang sering dikenal barcode dalam bahasa inggris  adalah suatu kumpulan data optik yang dibaca mesin. Sebenarnya, kode batang ini mengumpulkan data dalam lebar (garis) dan spasi garis paralel dan dapat disebut sebagai kode batang atau simbologi linear atau 1D (1 dimensi). Tetapi juga memiliki bentuk persegi, titik, heksagon dan bentuk geometri lainnya di dalam gambar yang disebut kode matriks atau simbologi 2D (2 dimensi). Selain tak ada garis, sistem 2D sering juga disebut sebagai kode batang. jadi banyak para perusahan membuat barcode dan ditempelkan pada alat atau benda sebagai ID atau petunjuk dari benda tersebut. jika para developer memiliki project membuat barcode pas sekali disini caranya. Untuk membuat barcode pada Codeigniter kita memerlukan Libraries dari Zend framework dan itu compatible buat Codeigniter.

Bahan yang perlu disiapkan
    Libraries Zend Barcode
    Framework Codeigniter v 3.1.0

1. Buatlah sebuah database dan buat sebuah tabel dengan nama barcode.

CREATE TABLE IF NOT EXISTS `barcode` (
  `id` varchar(50) NOT NULL,
  `namaProduk` varchar(250) NOT NULL,
  `total` varchar(100) NOT NULL,
  `image` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
2. Ekstak Libraries Zend barcode di folder libraries.

3. Buatlah controller dengan nama Barcode dan ketikan script dibawah ini.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Barcode extends CI_Controller {

    public function __construct(){
        parent::__construct();
        $this->load->model('m_barcode');
        $this->load->library('zend','database'); 
        $this->load->helper('url','form');   
 }
 
 public function index() {
  $data=array('list_barcode' => $this->m_barcode->getId());  
  $this->load->view('v_tampil', $data); 
 }

 public function insert() {  
  $this->zend->load('Zend/Barcode'); 
  $barcode = $this->input->post('id'); //nomor id barcode
  $imageResource = Zend_Barcode::factory('code128', 'image', array('text'=>$barcode), array())->draw();
  $imageName = $barcode.'.jpg';
  $imagePath = 'barcode/'; // penyimpanan file barcode
   imagejpeg($imageResource, $imagePath.$imageName); 
  $pathBarcode = $imagePath.$imageName; //Menyimpan path image bardcode kedatabase
  
  $data=array('id' => $this->input->post('id'),
     'namaProduk' => $this->input->post('namaProduk'),
     'total' => $this->input->post('total'),
     'image' => $pathBarcode);
  $this->m_barcode->insert_barcode($data); 
  redirect(base_url());  
 }
 
}
4. Buatlah sebuah Model dengan nama M_barcode dan ketikan script berikut.

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class M_barcode extends CI_Model {
 
    public function __construct(){
        parent::__construct();
   
    } 
 
 function getId() {
  $this->db->order_by('id','ASC');
  $query = $this->db->get('barcode');  
  return $query->result();     
 }

 function insert_barcode($data){
       $this->db->insert('barcode', $data);  
    }
} 
?>


5.  Buat lah tampilan v_tampil.php pada views, ketikan script berikut:

<table id="barcode" class="table table-bordered table-hover table-striped">
  <thead>
     <tr>
        <th align="center">No</th>
 <th align="center">Kode barcode</th>
 <th align="center">Barcode</th>
     </tr>
   </thead>
   <tbody>
      <?php
          $no = 1;
          if ($list_barcode == null){
       echo "<td colspan='3'><div class='alert alert-danger' align='center' role='alert'>Tidak ada barcode</div></td>";   
   }
     foreach ($list_barcode as $row) {

 ?>
 <tr>
    <td align="center"><?php echo $no; ?></td>
    <td><?php echo $row->kode_barcode; ?></td>
    <td align="center"><a href="<?php echo base_url().$row->image; ?>" download><img src="<?php echo base_url().$row->image; ?>" style="width:30%; height:80px;" /></a></td> 
          <?php $no++; } ?>
       </tr>
   </tbody>
</table>


6. Jika sudah selesai silahkan dicoba input data.
7. Jika berhasil maka image barcode akan tampil seperti gambar dibawah.


Selesai jika terjadi kesalahan silahkan check library atau helper yang belum di load, jika masih ada masalah silahkan tinggalkan komengg...
Demo


Semoga bermanfaat.


Previous Post
Next Post

18 komentar:

  1. maaf gan, itu view v_tampil nbelum ada ya? terimaksih

    BalasHapus
    Balasan
    1. ya tidak saya buat view nya, tapi untuk tampilin barcode nya tinggal panggil aja link lokasi barcode berdasarkan ID nya

      Hapus
    2. terimakasih min. akhirnya bisa

      Hapus
    3. contohnya bagaimana gan?

      Hapus
    4. gan, kok gak ada barcodenya ya di saya, data nya sudah masuk semua ke database,

      Hapus
  2. mas inikan untuk generate barcodenya, kalau mau diprint bagaimana ya?
    printernya pakai printer khusus untuk cetak label

    BalasHapus
    Balasan
    1. diset saja ukuran barcodenya sesuai printernya...

      Hapus
  3. Mas saya lg coba mau barcode Ean13...itu bisa gak yah

    BalasHapus
  4. saya mau tanya mas, saya dapat error ketika submit di form.
    error nya : "Message: Class 'Zend_Barcode' not found"

    error nya ada di "$imageResource = Zend_Barcode::factory('code128', 'image', array('text'=>$barcode), array())->draw();

    kalo di tutor mas, ini ada di public function insert()

    mohon bantuan nya mas terima kasih

    BalasHapus
    Balasan
    1. apakah folder Libraries Zend Barcode sudah disimpan di file library CI nya???

      Hapus
  5. Puede seguir el tutorial y funciona de acuerdo con la demostraciĆ³n, ¿tiene problemas con el tutorial ... :)

    BalasHapus
  6. gan, untuk source code v_tampilnya mna??

    BalasHapus
  7. Gan Gimana Cara Jalankannya
    saya Jalankan Di Localhost Kok Gak Bisa.?

    BalasHapus
  8. gan link demonya saya gak bsa akses,
    trus itukan saya ga ada view input, ane dah bikin inputannya trus pas input error begitu.
    Use of undefined constant EXT - assumed 'EXT'

    BalasHapus