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'] = '« First';
$config['first_tag_open'] = '<li class="prev page">';
$config['first_tag_close'] = '</li>';
$config['last_link'] = 'Last »';
$config['last_tag_open'] = '<li class="next page">';
$config['last_tag_close'] = '</li>';
$config['next_link'] = 'Next →';
$config['next_tag_open'] = '<li class="next page">';
$config['next_tag_close'] = '</li>';
$config['prev_link'] = '← 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
- pada baris $config['total_rows'] total diambil memalui query yang ditambahkan pada model
- 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'] = '« First';
$config['first_tag_open'] = '<li class="prev page">';
$config['first_tag_close'] = '</li>';
$config['last_link'] = 'Last »';
$config['last_tag_open'] = '<li class="next page">';
$config['last_tag_close'] = '</li>';
$config['next_link'] = 'Next →';
$config['next_tag_open'] = '<li class="next page">';
$config['next_tag_close'] = '</li>';
$config['prev_link'] = '← 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: