Membuat Paginasi dengan Codeigniter

Masih melanjutkan dari project dan database dari postingan Mengenal dan Membuat Program dengan Framework Codeigniter . Nah sekarang postingan untuk membuat paginasi untuk artikelnya.

Paginasi biasa dibuat untuk mengurangi beban memory di server jika jumlah data sudah terlalu banyak. Jadi, misalkan ada 1000 artikel, kita tidak bisa menampilkan seluruhnya artikel tersebut di dalam satu halaman. Tentu itu akan memberatkan server juga proses meload datanya pun akan membutuhkan waktu yang sangat lama. Masih bagus kalo loadnya selesai, kalo keberatan, mungkin loadnya ngga bakalan selesai sampai besok :p

Ada berbagai macam bentuk paginasi, ini bentuk umumnya:

Contoh Paginasi

Contoh Paginasi

Nah sekarang, kita langsung aja ya ke cara membuatnya🙂

1) Pertama, buka controller artikel.php, ubah fungsi index, menjadi seperti ini

public function index($page=NULL){
	$this->load->library('pagination');
	$this->load->model('model_artikel');

	$config['base_url'] 		= 'http://localhost/latihan_ci/index.php/artikel/index';
	$config['total_rows'] 		= $this->model_artikel->get()->num_rows();
	$config['per_page'] 		= 3;
	$config['use_page_numbers'] = TRUE;
	$this->pagination->initialize($config);

	if($page > 0){
		$offset = $page * $config['per_page'] - $config['per_page'];
	}else{
		$offset = 0;
	}
	$data['artikel'] 	= $this->model_artikel->get($config['per_page'],$offset)->result_array();
	$data['pagination']	= $this->pagination->create_links();
	$this->load->view('list',$data);
}

Penjelasan:

line-1 : menambahkan parameter $page, sebagai parameter masukan untuk mengambil halaman ke berapa yang sedang dibuka.

line-2 : meload library Pagination bawaan dari codeigniter

line-5 : konfigurasi url paginasi

line-6 : konfigurasi jumlah artikel keseluruhan, ini digunakan untuk mengenerate link paginasi yang muncul

line-7 : konfigurasi jumlah artikel yang ditampilkan per halaman

line-8 : konfigurasi, menggunakan atau memfungsikan link pada paginasi atau tidak. Jika ini tidak dikonfigurasi, link page pada paginasi akan muncul dengan angka yang salah.

line-9  : generate pagination dengan konfigurasi yang sudah ditentukan sebelumnya.

line-11 s/d 15 : mengatur offset untuk query artikel.

line-17 : memberi data paginasi ke variable $data

2) Selanjutnya, buka model model_artikel.php, dan ubah fungsi get menjadi seperti ini:

function get($limit=NULL,$offset=NULL) {
	if($limit != NULL){
		$this->db->limit($limit,$offset);
	}
	return $this->db->get('artikel');
}

Penjelasan:

line-1 : menambahkan parameter limit dan offset.

line-2 : pengkondisian, jika parameter limit tidak NULL atau tidak kosong, maka eksekusi statement  $this->db->limit($limit,$offset); dengan nilai limit dan offset yang sudah diberikan dari controller artikel.

line-5 : return query get dari artikel.

3)  Dan yang terakhir, tambahkan satu line berikut di view list.php:

<?=$pagination?>

Untuk menampilkan link-link paginasi.

Naaah selesai sudah, tiga langkah untuk membuat paginasi dengan codeigniter. Mudah kan?😀

Ini tampilannya:

Paginasi Halaman awal

Paginasi Halaman awal

paginasi-2

Paginasi Halaman kedua (setelah klik link 2)

paginasi-3

Paginasi Halaman ketiga (setelah klik link 3)

Karena data artikelnya hanya berjumlah 7, maka linknya hanya sedikit. Namun jika jumlah artikel makin banyak, maka link-link paginasi akan semakin banyak dan disertai dengan link First dan Last.

Berikut link-link terkait yang pastinya akan membantu🙂

Pagination Class

Limit and Offset SQL Pagination

Use Page Number

4 thoughts on “Membuat Paginasi dengan Codeigniter

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s