Faber Nainggolan Blog's

Artikel, Tutorial Pemrograman, Tutorial database, PHP dan Framework

LightBlog

Pada sebuah form input php, pasti kita tidak lepas dari input file atau input gambar untuk mendukung sebuah artikel kita. Maka dari itu saya...

Memulai Project CodeIgniter : Part 9 Upload File

Pada sebuah form input php, pasti kita tidak lepas dari input file atau input gambar untuk mendukung sebuah artikel kita. Maka dari itu saya akan share skrip upload files pada codeigniter. Karena itu masih dalam seri Memulai Project Codeigniter saya sarankan agar membaca artikel sebelumnya dan core codeigniternya saya dari artikel sebelumnya.

Pada codeigniter librari upload sendiri sudah tersedia tanpa kita harus membuat librari baru lagi. Pada codeigniter kita tinggal memanggil $this->load->library('upload') pada contoller atau supaya otamatis bisa dipanggil pada setiap controller tambahkan library upload pada autoload.php untuk mempersingkat waktu mari kita mulai implementasinya.

Langkah 1 : Setting

Agar file berhasil disimpan buat folder ./assets/uploads karna path folder uploadnya saya buat seperti itu agan bisa ubah sesuai dengan selera agan

Setting pada config/routes.php agar langsung otomatis mengakses controller upload ketika url diakses di browser
$route['default_controller'] = "upload";

Setting pada config/autoload.php agar terload otomatis
$autoload['libraries'] = array('database','session','form_validation','pagination','upload');

Kemudian pada models pada autoload tambahkan model mupload
$autoload['model'] = array('mbarang','mupload');

Langkah 2 : Tabel database

CREATE TABLE `tb_uploadimage` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `nm_gbr` varchar(35) DEFAULT NULL,
  `tipe_gbr` varchar(10) DEFAULT NULL,
  `ket_gbr` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1

Langkah 3 : Views

Pada kasus kali, yang akan kita buat adalah proses upload untuk file gambar, pertama buat view untuk tampilan awalnya dimana semua data yang ada didatabase ditampilkan beri nama vupload.php simpan di folder ./application/views/upload/

<section>
<div class="container"> 
 <h1>Data File Gambar</h1>
  <a href="<?php echo base_url();?>upload/tambah" class="button">Tambah</a>
  <div class="pesan-sukses"><?php echo $this->session->flashdata("pesan");?></div> 
 
  <table class="table">
   <tr>
    <th style="width: 5%;">No</th>
    <th>Keterangan File</th>
    <th>Tipe File</th>
    <th>Gambar File</th>
    <th></th>
 
   </tr>
   <?php if(!$queryupload){?>
    <tr><td colspan="9">Data Masih Kosong</td> </tr>
   <?php }else{
     $no =0; 
     foreach ($queryupload as $rstupld) {$no++;
   ?>
   <tr>
    <td><?php echo $no;?></td>
    <td><?php echo $rstupld->ket_gbr;?></td>
    <td><?php echo $rstupld->tipe_gbr;?></td>
    <td><img style="width: 200px;"> src="<?php echo base_url();?>assets/uploads/<?php echo $rstupld->nm_gbr;?>"></td> 
    <td><a href="<?php echo base_url()?>upload/edit/?id=<?php echo $rstupld->id;?>" class="button3 button-sm">EDIT</a>
     <a onclick="return KonfirmasiHapus()" href="<?php echo base_url()?>upload/hapus/?id=<? echo $rstupld->id;?>" class="button4 button-sm">HAPUS</a>
    </td>
   </tr>
   <?php }}?>
  </table>
 
</div>
</section>
<script type="text/javascript">
function KonfirmasiHapus() {
  return confirm("Apa anda yakin akan menghapus data ini?");
}
</script>
 

Kemudian untuk view form nya simpan dengan nama vformupload.php dan simpan juga di ./application/views/upload/

<?php 
if($aksi=='aksi_tambah'){
 $kode = "";
 $filegambar = "";
 $keterangan = @$aket;
}elseif($aksi=='aksi_edit'){
 $kode = $row->id;
 $filegambar = $row->nm_gbr;
  $keterangan = $row->ket_gbr;
}
?>
<section>
<div class="container"> 
 <h1>Form Upload Gambar</h1>
  <div class="form">
  <div class="pesan-error"><?php echo $this->session->flashdata("pesan");?></div> 
 <form method="post" enctype="multipart/form-data" action="<?php echo base_url()?>upload/<?php echo $aksi?>"> 
  <label>Keterangan</label>
    <textarea name="keterangan"><?php echo $keterangan;?></textarea>

  <label>File Gambar</label>
    <input type="file" name="gambar" class="w1">
    <input type="hidden" name="gambarold" value="<?php echo $filegambar;?>"> 
    
    <input type="submit" class="button" name="simpan" value="Simpan">
    <a href="<?php echo base_url();?>upload" class="button2">Kembali</a>
    <input type="hidden" name="kode" value="<?php echo $kode;?>">

   </form>
   
  </div>
</div>
</section>

Langkah 4 : Controllers

buat file controller beri nama Upload.php dan simpan difolder application/controllers

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Upload extends CI_Controller {
/******************************************************
  | Upload
  | controller Upload view, create, update, delete
  | by gTech
  *****************************************************/
  public function __construct() {
    parent::__construct();
  }
  
    //fungsi awal ketika kita panggil controller gambar
    public function index(){
      $data['judul'] = 'Upload Gambar'; //judul title      
      $data['queryupload'] = $this->mupload->getallimage(); //model semua file 
      
      //template views
      $this->load->view('header',$data); //load header
      $this->load->view('upload/vupload',$data); //load views
      $this->load->view('footer',$data); //load footer
    }
     
    //fungsi form tambah ketika kita panggil pada link 
    public function tambah(){     
      $data['judul'] = 'Tambah Gambar';
      $data['aksi'] = 'aksi_tambah';

      //template views
      $this->load->view('header',$data);
      $this->load->view('upload/vformupload',$data);
      $this->load->view('footer',$data);
    }
    //fungsi form edit ketika kita panggil pada link
    public function edit(){
      $id = $this->input->get('id');
      $data['row'] = $this->mupload->getbyid($id);
      $data['judul'] = 'Edit Gambar';
      $data['aksi']  = 'aksi_edit';

      //template views
      $this->load->view('header',$data);
      $this->load->view('upload/vformupload',$data);
      $this->load->view('footer',$data);
    }
    //fungsi untuk menangani pemanggilan aksi tambah ketika form di submit
    public function aksi_tambah(){
        //deklarasikan variabel dari form
        $nama     = addslashes($this->input->post('nama'));
        $keterangan    = addslashes($this->input->post('keterangan'));
 
        //validasi 
        $this->form_validation->set_rules('gambar', 'File Gambar', 'trim|xss_clean'); //file gambar

        //configurasi upload
        $nmfile = "file_".time(); //nama file saya beri nama langsung dan diikuti fungsi time
        $config['upload_path'] = './assets/uploads/'; //path folder
        $config['allowed_types'] = 'gif|jpg|png|jpeg|bmp'; //type yang dapat diakses bisa anda sesuaikan
        $config['max_size'] = '2048'; //maksimum besar file 2M
        $config['max_width']  = '1288'; //lebar maksimum 1288 px
        $config['max_height']  = '768'; //tinggi maksimu 768 px
        $config['file_name'] = $nmfile; //nama yang terupload nantinya
        $this->upload->initialize($config);

        if ($this->form_validation->run() == TRUE) {
            if ($this->upload->do_upload('gambar')){
                $gbr = $this->upload->data();
                $data = array(
                  'nm_gbr'  => $gbr['file_name'],
                  'tipe_gbr' => $gbr['file_type'],
                  'ket_gbr'=> $keterangan
                );
                $this->mupload->getinsert($data); //model insert data
                $this->session->set_flashdata("pesan", "Data berhasil di insert"); //pesan yang tampil setalah berhasil di insert
                redirect('upload');
            }else{
              $info = array(
                'aket'=>$keterangan,
                'judul' => 'Tambah Gambar',
                'aksi' => 'aksi_tambah'
              );
              $err = $this->upload->display_errors(); //error upload
              $this->session->set_flashdata("pesan", "Data Gagal di insert
".$err);
              //ketika error terjadi halaman akan tetap di form 
              $this->load->view('header',$info); 
              $this->load->view('upload/vformupload',$info);
              $this->load->view('footer',$info); 

            }
        }else{
          //ini berfungsi agar field form tidak menjadi kosong, dibuat dalam array
          //variabel akan tetap dibawa jika error terjadi pada saat validasi
          $info = array(
            'aket'=>$keterangan,
            'judul' => 'Tambah Gambar',
            'aksi' => 'aksi_tambah'
          );
          $err = validation_errors(); //error validasi akan dimunculkan pada pesan

          $this->session->set_flashdata("pesan", "Data Gagal di insert
".$err);

          //ketika error terjadi halaman akan tetap di form barang
          $this->load->view('header',$info); 
          $this->load->view('upload/vformupload',$info);
          $this->load->view('footer',$info); 
        }
      }
}

/* End of file Upload.php */
/* Location: ./application/controllers/Upload.php */

Pada skrip saya sudah buatkan keterangannya agar lebih mudah dipahami, kemudian saya juga.

Langkah 5 : Model

Kemudian selanjutnya kita buat skrip untuk modelnya, beri nama Mupload.php simpan di folder ./application/models/

<?php class Mupload extends CI_Model {
    var $tabel = 'tb_uploadimage'; //buat variabel tabel 

    //fungsi untuk menampilkan semua data dari tabel database
    function getallimage() {
        $this->db->from($this->tabel);
        $query = $this->db->get();

        //cek apakah ada data
        if ($query->num_rows() > 0) {
            return $query->result();
        }
    }
    //query untuk satu data dari tabel
    function getbyid($id) {
        $this->db->from($this->tabel);
        $this->db->where('id', $id);

        $query = $this->db->get();
        if ($query->num_rows() == 1) {
            return $query->row();
        }
    }
    //query insert ke database
    function getinsert($data){
       $this->db->insert($this->tabel, $data);
       return TRUE;
    }
}
?>

Output


Gambar tampilan upload

gambar tampilan form upload

gambar tampilan hasil upload berhasil 


sampai disini kita sudah berhasil mengupload gambar dan menyimpannya ke dalam database, untuk edit dan hapus file upload akan kita bahas pada artikel selanjutnya. Tetap ikut
Sekian dan terimakasih

Bersambung

0 comments:

Fungsi helper sangat membantu kita dalam menangani berbagai macam yang akan diterapkan di tampilan akhir. Pada codeigniter sudah disediakan ...

Memulai Project CodeIgniter : Part 8 Membuat Helper

Fungsi helper sangat membantu kita dalam menangani berbagai macam yang akan diterapkan di tampilan akhir. Pada codeigniter sudah disediakan helper fungsi yang dapat membantu kita dalam menangani berbagai macam masalah.


Pada kesempatan ini kita akan membuat fungsi helper buatan kita sendiri dan dapat diterapkan pada aplikasi yang kita bangun.

  1. Dalam membuat fungsi helper yang mesti kita ingat adalah ini membantu dalam penangan masalah di codeigniter (hanya pembantu) bukan menjadi penanganan utama. Kalo utama buat aja di contollernya.
  2. Kemudian penamaan helper bisanya dimulai dengan namahelper kemudian diakhiri dengan _helper.php
  3. Kita dapat menyimpan helper kita ini di folder /application/helpers/
  4. Helper dapat kita buat untuk menangani penggantian jenis kelamin contoh laki-laki dan perempuan yang dimana di database kita simpan dengan nilai value 0 atau 1
  5. Helper bisa juga kita buat untuk menagani pergantian status, contoh aktif, noaktif, pending dan lain sebagainya

Baik pada artikel sebelum sebelumnya saya sudah pernah menambah sebuah artikel tentang fungsi tanggal indonesia di php dan codeigniter ini bisa kita gabungkan menjadi helper buatan kita. Jika belum dibaca silakan dibuka pada link dibawah :
Fungsi PHP format tanggal Indonesia
Membuat Fungsi konversi mata uang Rupiah pada PHP

Mari kita buat beberapa contoh fungsi, dan kita buat dalam satu helper, beri nama file ini dengan nama fungsi_helper.php dan simpan sesuai keterangan diatas

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

//function tanggal indonesia yang berformat yyyy-mm-dd dan akan menghasilkan output 12 Juni 2017
 function tgl_indo($tgl){
    $ubah = gmdate($tgl, time()+60*60*8);
 $pecah = explode("-",$ubah);
 $tanggal = $pecah[2];
 $bulan = bulan($pecah[1]);
 $tahun = $pecah[0];
 return $tanggal.' '.$bulan.' '.$tahun;
} 
//function tanggal yang berformat timestamp yang diubah menjadi seperti ini 12 Jun 2017
 function tgldikit($tgl){

     $inttime=date('Y-m-d H:i:s',$tgl);

     $arr_bulan=array("","Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des");
      $tglBaru=explode(" ",$inttime);
      $tglBaru1=$tglBaru[0];$tglBaru2=$tglBaru[1];
      $tglBarua=explode("-",$tglBaru1);
      $tgl=$tglBarua[2]; $bln=$tglBarua[1]; $thn=$tglBarua[0];
      if(substr($bln,0,1)=="0") $bln=substr($bln,1,1);
      $bln=substr($arr_bulan[$bln],0,10);
      $ubahTanggal="$tgl $bln $thn";

  return $ubahTanggal;
}

 //fungsi untuk mengubah nilai integer menjadi format rupiah dengan fungsi number_format diphp
 function rupiah($nilai, $pecahan = 0){
   return number_format($nilai, $pecahan, ',', '.');
} 

//fungsi untuk mengubah nilai integer menjadi format rupiah dengan strlen (penghitungan karakter) kemudian dipisah berdasarkan ratusan ribuan dan seterusnya
 function rupiah2($harga)
{
 $a=(string)$harga; //membuat $harga menjadi string
 $len=strlen($a); //menghitung panjang string $a

 if ( $len <=18 )
 {
  $ratril=$len-3-1;
  $ramil=$len-6-1;
  $rajut=$len-9-1; //untuk mengecek apakah ada nilai ratusan juta (9angka dari belakang)
  $juta=$len-12-1; //untuk mengecek apakah ada nilai jutaan (6angka belakang)
  $ribu=$len-15-1; //untuk mengecek apakah ada nilai ribuan (3angka belakang)

  $angka='';
  for ($i=0;$i<$len;$i++)
  {
   if ( $i == $ratril )
   {
    $angka=$angka.$a[$i].".";
   }
   else if ($i == $ramil )
   {
    $angka=$angka.$a[$i].".";
   }
   else if ( $i == $rajut )
   {
    $angka=$angka.$a[$i]."."; //meletakkan tanda titik setelah 3angka dari depan
   }
   else if ( $i == $juta )
   {
    $angka=$angka.$a[$i]."."; //meletakkan tanda titik setelah 6angka dari depan
   }
   else if ( $i == $ribu )
   {
    $angka=$angka.$a[$i]."."; //meletakkan tanda titik setelah 9angka dari depan
   }
   else
   {
    $angka=$angka.$a[$i];
   }
  }
 }
 return $angka.",-";
 }

untuk menjalankan tinggal helper nya di load kemudian panggil nama fungsi nya di controller atau view. Mari kita coba implementasikan ke project kita sebelumnya yaitu crud.
Pertama load helper fungsi di autoload atau bisa juga dload pada controller, saya akan load di autoload, tambahkan pada bagian seperti dibawah
$autoload['helper'] = array('url','form','fungsi');

kemudian pada views vbarang.php ubah menjadi seperti dibawah ini
<section>
<div class="container"> 
 <h1>Data Barang</h1>
  <a href="<?php echo base_url();?>barang/tambah" class="button">Tambah</a>
  <div class="pesan-sukses"><?php echo $this->session->flashdata("pesan");?></div> 
 <form action="<?php echo base_url();?>barang/cari/">
 <div class="inputgroup">
     <input name="key" value="" class="formcontrol" placeholder="Search" type="text" >
     <span class="input-group-btn">
        <button class="btn-default" type="submit">Cari</button>
     </span>
     <div class="clear"></div>
</div>
</form>
  <table class="table">
   <tr>
    <th>No</th>
    <th>Kode</th>
    <th>Barcode</th>
    <th>Nama Barang</th>
    <th>Harga </th>
    <th>Jenis </th>
    <th>Satuan </th>
    <th>Stok </th>
    <th style="width: 30%;">Keterangan </th>
    <th></th>
   </tr>
   <?php if(!$querybarang){?>
    <tr><td colspan="9">Data Masih Kosong</td> </tr>
   <?php }else{
     $no =$jlhpage; 
     foreach ($querybarang as $rstbrg) {$no++;
   ?>
   <tr>
    <td><?php echo $no;?></td>
    <td>#<?php echo $rstbrg->kode_brg;?></td>
    <td><?php echo $rstbrg->barcode;?></td>
    <td><?php echo $rstbrg->nama_brg;?></td>
    <td><?php echo rupiah($rstbrg->harga_brg);?></td>
    <td><?php echo $rstbrg->jenis;?></td>
    <td><?php echo $rstbrg->satuan;?></td>
    <td><?php echo $rstbrg->stok_brg;?></td>
    <td><?php echo $rstbrg->keterangan;?></td>
    <td><a href="<?php echo base_url()?>barang/edit/?id=<? echo $rstbrg->kode_brg;?>">Edit</a>
     <a href="<?php echo base_url()?>barang/detail/?id=<? echo $rstbrg->kode_brg;?>">Detail</a>
     <a onclick="return KonfirmasiHapus()" href="<?php echo base_url()?>barang/hapus/?id=<? echo $rstbrg->kode_brg;?>">Hapus</a>
    </td>
   </tr>
   <?php }}?>
  </table>
  <div class="pagination">
   <span class="pagination-btns">
          <?=$page_halaman?>
          <div class="clear"></div>
      </span>
        </div> 
</div>
</section>
<script type="text/javascript">
function KonfirmasiHapus() {
  return confirm("Apa anda yakin akan menghapus data ini?");
}
</script>
  
pada baris ke-39 saya panggil fungsi rupiah() sebelum variabel.

dan berikut tampilan nya jika lihat di browser
terlihat harga dirubah menjadi format rupiah

Demikian tutorial kali semoga bermanfaat
mungkin yang mau nambah fungsi bisa dibuat komentar biar saya naikkan pada artikel ini


0 comments:

Melanjutkan tutorial Memulai Project CodeIgniter : Part 6 CRUD bagian 2 kali ini saya akan membagikan tutorial untuk membuat paging dan sea...

Memulai Project CodeIgniter : Part 7 Paging dan Pencarian

Melanjutkan tutorial Memulai Project CodeIgniter : Part 6 CRUD bagian 2 kali ini saya akan membagikan tutorial untuk membuat paging dan searching pada CRUD yang telah kita buat.

Oke saya anggap untuk proses awal nya sudah harus dilakukan dan ini merupakan tutorial lanjutan. Saya harapkan tahap demi tahap diperhatikan agar penyisipan skripnya berjalan dengan baik : jika belum dibaca silakan di klik Label CodeIgnter untuk melihat artikel mengenai codeigniter sebelumnya.

1. Config

pada file autoload.php pada folder ./application/config/ tambahkan library pagination buat seperti berikut
$autoload['libraries'] = array('database','session','form_validation','pagination');

2. Controller


buka controller Barang.php pada folder aplication/controllers dan pada baris public function index() tambahkan script untuk paging, ubah skrip sebelumnya menjadi seperti dibawah ini :

public function index(){
      $data['judul'] = 'CRUD CodeIgniter Studi Kasus Barang'; //judul title
      
      //pagination
      $page=$this->input->get('per_page');
      $batas=1; //jlh data yang ditampilkan per halaman
      if(!$page)://jika page bernilai kosong maka batas akhir akan di set 0
        $offset = 0;
      else:
        $offset = $page; // jika tidak kosong maka nilai batas akhir nya akan diset nilai page terakhir
      endif;

      $config['page_query_string'] = TRUE; //mengaktifkan pengambilan method get pada url default
      $config['base_url'] = base_url().'barang?';   //url yang muncul ketika tombol pada paging diklik
      $config['total_rows'] = $this->mbarang->countbarang(); // jlh total barang
      $config['per_page'] = $batas; //batas sesuai dengan variabel batas
      $config['uri_segment'] = $page; //merupakan posisi pagination dalam url pada kesempatan ini saya menggunakan method get untuk menentukan posisi pada url yaitu per_page
      $config['full_tag_open'] = '<ul class="pagination">';
      $config['full_tag_close'] = '</ul>';
      $config['first_link'] = '&laquo; First';
      $config['first_tag_open'] = '<li class="prev page">';
      $config['first_tag_close'] = '</li>';
      $config['last_link'] = 'Last &raquo;';
      $config['last_tag_open'] = '<li class="next page">';
      $config['last_tag_close'] = '</li>';
      $config['next_link'] = 'Next &rarr;';
      $config['next_tag_open'] = '<li class="next page">';
      $config['next_tag_close'] = '</li>';
      $config['prev_link'] = '&larr; Prev';
      $config['prev_tag_open'] = '<li class="prev page">';
      $config['prev_tag_close'] = '</li>';
      $config['cur_tag_open'] = '<li class="active"><a href="">';
      $config['cur_tag_close'] = '</a></li>';

      $config['num_tag_open'] = '<li class="page">';
      $config['num_tag_close'] = '</li>';
      $this->pagination->initialize($config);
      $data['page_halaman']=$this->pagination->create_links();
      $data['jlhpage']=$page;

      $data['querybarang'] = $this->mbarang->getallbarang($batas,$offset); //model semua barang
      
      //template views
      $this->load->view('header',$data);
      $this->load->view('barang/vbarang',$data); //load views vbarang
      $this->load->view('footer',$data);
    }

Penjelasan

  1. pada baris $config['total_rows'] total diambil memalui query yang ditambahkan pada model
  2. pada baris $data['querybarang'] getallbarang berisi variabel $batas dan $offset untuk membatasi jumlah per halaman yang ditangani melalui query di model


Masih pada controller Barang.php selanjutnya tambahkan sebuah function cari() untuk menangani pencarian nantinya dan buat seperti dibawah ini :

public function cari(){
        $key= $this->input->get('key'); //method get key
        $page=$this->input->get('per_page');  //method get per_page

        $search=array(
            'nama_brg'=> $key,
            'barcode'=> $key
        ); //array pencarian yang akan dibawa ke model

        $batas=5; //jlh data yang ditampilkan per halaman
        if(!$page): //jika page bernilai kosong maka batas akhirna akan di set 0
           $offset = 0;
        else:
           $offset = $page; // jika tidak kosong maka nilai batas akhir nya akan diset nilai page terakhir
        endif;

        $config['page_query_string'] = TRUE; //mengaktifkan pengambilan method get pada url default
        $config['base_url'] = base_url().'barang/?key='.$key;   //url yang muncul ketika tombol pada paging diklik
        $config['total_rows'] = $this->mbarang->countbarangsearch($search); // jlh total barang
        $config['per_page'] = $batas; //batas sesuai dengan variabel batas
        $config['uri_segment'] = $page; //merupakan posisi pagination dalam url pada kesempatan ini saya menggunakan method get untuk menentukan posisi pada url yaitu per_page
        $config['full_tag_open'] = '<ul class="pagination">';
        $config['full_tag_close'] = '</ul>';
        $config['first_link'] = '&laquo; First';
        $config['first_tag_open'] = '<li class="prev page">';
        $config['first_tag_close'] = '</li>';
        $config['last_link'] = 'Last &raquo;';
        $config['last_tag_open'] = '<li class="next page">';
        $config['last_tag_close'] = '</li>';
        $config['next_link'] = 'Next &rarr;';
        $config['next_tag_open'] = '<li class="next page">';
        $config['next_tag_close'] = '</li>';
        $config['prev_link'] = '&larr; Prev';
        $config['prev_tag_open'] = '<li class="prev page">';
        $config['prev_tag_close'] = '</li>';
        $config['cur_tag_open'] = '<li class="active"><a href="">';
        $config['cur_tag_close'] = '</a></li>';
        $config['num_tag_open'] = '<li class="page">';
        $config['num_tag_close'] = '</li>';
        $this->pagination->initialize($config);
        $data['page_halaman']=$this->pagination->create_links();
        $data['jlhpage']=$page;

        $data['judul'] = 'CRUD CodeIgniter Studi Pencarian Kasus Barang'; //judul title
        $data['querybarang'] = $this->mbarang->getallbarang($batas,$offset,$search); //query model semua barang

        //template views
        $this->load->view('header',$data);
        $this->load->view('barang/vbarang',$data); //load views vbarang
        $this->load->view('footer',$data);
    }



3. Model

Buka model Mbarang.php pada folder aplication/models dan pada function getallbarang() ubah skrip seperti dibawah ini :

function getallbarang($batas =null,$offset=null,$key=null) {
    $this->db->from($this->tabel);
    if($batas != null){
       $this->db->limit($batas,$offset);
    }
    if ($key != null) {
       $this->db->or_like($key);
    }
    $query = $this->db->get();

    //cek apakah ada barang
    if ($query->num_rows() > 0) {
        return $query->result();
    }
}

kemudian tambahkan sebuah function untuk menangani jumlah total field barang seperti dibawah ini :

function countbarang(){
    $query = $this->db->get($this->tabel)->num_rows();
    return $query;
}

selanjutnya buat sebuah function kembali untuk menangani jumlah total pencarian

function  countbarangsearch($orlike) {
    $this->db->or_like($orlike);
    $query = $this->db->get($this->tabel);

    return $query->num_rows();
}

3. Views

selanjutnya kita beralih ke tampilanya buka file vbarang.php pada folder application/views dan buat seperti dibawah ini :

<section>
<div class="container"> 
 <h1>Data Barang</h1>
  <a href="<?php echo base_url();?>barang/tambah" class="button">Tambah</a>
  <div class="pesan-sukses"><?php echo $this->session->flashdata("pesan");?></div>	
 <form action="<?php echo base_url();?>barang/cari/">
 <div class="inputgroup">
     <input name="key" value="" class="formcontrol" placeholder="Search" type="text" >
     <span class="input-group-btn">
        <button class="btn-default" type="submit">Cari</button>
     </span>
     <div class="clear"></div>
</div>
</form>
  <table class="table">
  	<tr>
  		<th>No</th>
  		<th>Kode</th>
  		<th>Barcode</th>
  		<th>Nama Barang</th>
  		<th>Harga </th>
  		<th>Jenis </th>
  		<th>Satuan </th>
  		<th>Stok </th>
  		<th>Keterangan </th>
  		<th></th>
  	</tr>
  	<?php if(!$querybarang){?>
  	 <tr><td colspan="9">Data Masih Kosong</td>	</tr>
  	<?php }else{
  	  $no =$jlhpage;	
  	  foreach ($querybarang as $rstbrg) {$no++;
  	?>
  	<tr>
  		<td><?php echo $no;?></td>
  		<td>#<?php echo $rstbrg->kode_brg;?></td>
  		<td><?php echo $rstbrg->barcode;?></td>
  		<td><?php echo $rstbrg->nama_brg;?></td>
  		<td><?php echo $rstbrg->harga_brg;?></td>
  		<td><?php echo $rstbrg->jenis;?></td>
  		<td><?php echo $rstbrg->satuan;?></td>
  		<td><?php echo $rstbrg->stok_brg;?></td>
  		<td><?php echo $rstbrg->keterangan;?></td>
  		<td><a href="<?php echo base_url()?>barang/edit/?id=<? echo $rstbrg->kode_brg;?>">Edit</a>
  			<a href="<?php echo base_url()?>barang/detail/?id=<? echo $rstbrg->kode_brg;?>">Detail</a>
  			<a onclick="return KonfirmasiHapus()" href="<?php echo base_url()?>barang/hapus/?id=<? echo $rstbrg->kode_brg;?>">Hapus</a>
  		</td>
  	</tr>
  	<?php }}?>
  </table>
  <div class="pagination">
  	<span class="pagination-btns">
          <?=$page_halaman?>
          <div class="clear"></div>
      </span>
        </div> 
</div>
</section>
<script type="text/javascript">
function KonfirmasiHapus() {
  return confirm("Apa anda yakin akan menghapus data ini?");
}
</script>


pada skrip vbarang.php saya tambahkan sebuah form untuk pencarian dan pada bagian panel-footer saya tambahkan variabel untuk paging nya.


4. Output

pada hasil akhirnya akan tampil seperti berikut


Tampilan halaman setelah di terapkan script diatas




Paging halaman 2


Pencarian dengan key meja


Demikian tutorial kali ini semoga bermanfaat.
Tetap ikuti artikel mengenani codeigniter di blog saya

0 comments: