Membuat Pagination dalam CodeIgniter

Pagination Class

CodeIgniter pagination digunakan untuk membuat paging yaitu menampilkan data secara bertahap.

Maksudnya jika kita punya data 200 record maka kita bisa membuat pagingnya dengan menampilkan perhalaman hanya 20 record saja.

Contoh Kasus:

Diketahui:

  • Saya mempunyai satu controller bernama Informasi serta satu fungsi didalamnya yang bernama listnilai.
  • Saya mempunyai satu model bernama MInformasi serta satu fungsi didalamnya yang bernama ambilNilai.
  • Saya mempunyai satu view bernama lisnilai.
  • Saya mempunyai tabel siswa dimana tabelnya seperti berikut ini:
No. Nama Siswa Nilai Matematika Nilai Bahasa Inggris
1 Fahmi Basya Kartapura 7 9
2 Sahidatina 9 6
3 Kamil Huzaimah 7 7
3 Muhammad Arsy 9 9
5 Rani 7 8
6 Muhammad Yasin 7 6
7 Muhammad Rusdi 6 6
8 Yandi 8 6
9 Ani 7 7

Saya ingin membuat agar masing-masing halaman hanya muncul 3 record saja jadi untuk tabel diatas bisa menjadi 3 halaman.

Kronologis:

  • Saya punya menu bernama Lihat Nilai Siswa
  • Saat saya mengklik menu Lihat Nilai Siswa ini maka akan muncul satu halaman yang berisi 3 data siswa saja
  • Untuk melihat data siswa lainnya maka diperlukan link pada setiap halaman untuk menuju ke halaman berikutnya atau ke halaman sebelumnya yang biasa disebut paginasi.

Pertanyaan:

Bagaimana saya membuatnya dengan menggunakan paginasi dalam CodeIgniter … ?

Jawaban:

1. Membuat Controller yang bernama Informasi

class Informasi extends CI_Controller {

function __construct()
{

parent::__construct();

}

function listnilai(){

$this->load->library(‘pagination’);
$config[‘base_url’] = base_url().’index.php/informasi/listnilai/’;
$config[‘total_rows’] = $this->db->count_all(‘siswa’);
$config[‘per_page’] =3;
$config[‘next_link’] = ‘Selanjutnya’;
$config[‘prev_link’] = ‘Sebelumnya’;

$config[‘uri_segment’] = 3;
$this->pagination->initialize($config);
$offset=$this->uri->segment(3);

if(empty($offset)){

$offset=0;

}

$data[‘nilai’]=$this->MInformasi->ambilNilai($config[‘per_page’], $offset);

$this-> load-> view(‘listnilai’,$data);

}

}

Keterangan:

  • $this->load->library(‘pagination’); kode ini untuk meload library dari pagination CodeIgniter.
  • $config[‘base_url’] Kode ini harus berisi controller dan fungsi dimana skrip paginasimu berada. Dimana pada kode diatas kode ini menuju ke Controller informasi dan ke sebuah fungsi bernama listnilai.
  • $config[‘total_rows’] kode ini berisi total baris dari query yang dihasilkan dari $this->db->count_all(‘siswa’);
  • $this->db->count_all(‘siswa’) Kode ini digunakan untuk menghitung jumlah baris dari tabel siswa.
  • $config[‘per_page’] =3; Kode ini digunakan untuk menampilkan 3 baris record per halaman.
  • $config[‘next_link’] = ‘Selanjutnya’; Digunakan untuk membuat link ke halaman berikutnya.
  • $config[‘prev_link’] = ‘Sebelumnya’; Digunakan untuk membuat link ke halaman sebelumnya.
  • $config[‘uri_segment’] = 3; Digunakan untuk menentukan segment URI yang berisi nomor halaman.
  • $this->pagination->initialize($config);  Kode ini digunakan untuk menyimpan konfigurasi dari array $config.
  • $offset=$this->uri->segment(3); Kode ini digunakan untuk mengambil segment ketiga dari URI dan nilainya diberikan ke variabel $offset.
  • if(empty($offset)){ $offset=0;} kode ini digunakan apabila saat pertama kali saya mengklik menu Lihat Nilai Siswa dan jika segment ketiga dari URI itu tidak ada  maka $offset=0.

2. Membuat Model bernama MInformasi

class MInformasi extends CI_Model{
function __construct(){

parent::__construct;

}

function ambilNilai($page,$offset){
$data
=array();
$sql=“select nama_siswa,nilai_matematika,nilai_bahasa_inggris  from siswa desc limit $page,$offset“;
$Q=$this->db->query($sql);
if ($Q->num_rows() > 0){
foreach ($Q->result_array() as $row){
$data[] = $row;

}
$Q->free_result();
return $data;

}

}

}

3. Membuat View listnilai

<table  border=”1″>
<tr>
<td>No. </td>
<td>Nama Siswa</td>
<td>Nilai Matematika</td>
<td>Nilai Bahasa Inggris</td>
</tr>
<?php
$no=1;
foreach($nilai as $key=>$list){
echo “<tr>”;
echo “<td>$no</td><td>$list[nama_siswa]</td><td>$list[nilai_matematika]</td><td>$list[nilai_bahasa_inggris]</td>”;
echo “</tr>”;
$no++;
}

?>
</table>
<?php
echo “<p>”.$this->pagination->create_links().”</p>”;
?>

Keterangan:

$this->pagination->create_links() digunakan untuk membuat link paginasi seperti gambar berikut ini:

paginasi

 

Jika Tutorial ini bermanfaat silahkan katakan ‘Terima Kasih Fahmi Basya Kartapura’.

You may also like...

1 Response

  1. ayahnya fais says:

    trims buat sharing knowledge.. sukses selalu..

Leave a Reply

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