Studi Kasus : Membuat Pagination dalam CodeIgniter
Kebutuhan : Webserver Package, already installed. CodeIgniter Bundle.
Jika anda tidak familiar dengan istilah “pagination”, pagination merujuk pada link yang berguna untuk navigasi dari page ke page, seperti gambar dibawah ini,
![]()
Pagination dalam CI sangat mudah digunakan, tutorial ini akan memberikan contoh membuat pagination dalam aplikasi CI.
Okay then, prepare for a cup of tea
Step 1 : Konfigurasi CI
- Buka file config.php yang berada dalam folder system-application-config-config.php
- Ubah base url, sesuaikan dengan lokasi dimana folder CI-mu berada (tempat ekstrak-an tadi). Contoh : Folder CI anda berada dalam folder www/ci
maka ubah baris$config['base_url']="http://example.com/";
dengan
$config['base_url'] = "http://localhost/ci/"; - Setting database. Buka file database.php yang berada dalam folder yang sama dengan config.php. Ubah hostname, username, password, dan nama database. Sesuaikan dengan pengaturan mysql anda. Contoh :
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "db_tutorial";
Step 2 : Siapkan Database
- Buat database dengan nama db_tutorial (via phpmyadmin)
- Siapkan tabel dengan nama tb_book (untuk strukturnya, lihat gambar dibawah ini)

- Insertkan beberapa sample data, sebagai contoh insertkan data seperti tabel dibawah ini.

- Ok, we’re done with database !
Step 3 : Membuat Controller
- Ketikkan script berikut,
<?php
class Buku_con extends Controller {
public function Buku_con()
{
parent::__construct();
$this->load->model('buku_model');
$this->load->library('pagination'); //call pagination library
}
function getBuku() {
//count the total rows of tb_book
$this->db->select('*');
$this->db->from('tb_book');
$getData = $this->db->get('');
$a = $getData->num_rows();
$config['base_url'] = base_url().'index.php/Buku_con/getBuku/'; //set the base url for pagination
$config['total_rows'] = $a; //total rows
$config['per_page'] = '2'; //the number of per page for pagination
$config['uri_segment'] = 3; //see from base_url. 3 for this case
$config['full_tag_open'] = '<p>';
$config['full_tag_close'] = '</p>';
$this->pagination->initialize($config); //initialize pagination
$data['title'] = 'menampilkan isi buku';
$data['detail'] = $this->buku_model->getBuku($config['per_page'],$this->uri->segment(3));
$this->load->view('buku_view', $data);
}
}
?> - Simpan dengan nama buku_con dalam folder system-application-controllers
- Penjelasan : function
getBuku()akan mengambil isi dari tb_book via model. Dalam controller ini, pagination diinisialisasi dan diatur settingannya seperti pada script diatas (lihat komentar pada script untuk keterangannya).
Step 4 : Membuat Model
- Ketikkan script berikut,
<?php
class Buku_model extends Model {
function Buku_model()
{
parent::Model();
}
function getBuku($perPage,$uri) { //to get all data in tb_book
$this->db->select('*');
$this->db->from('tb_book');
$this->db->order_by('id','DESC');
$getData = $this->db->get('', $perPage, $uri);
if($getData->num_rows() > 0)
return $getData->result_array();
else
return null;
}
}
?> - Simpan dalam folder system-application-models, dengan nama buku_model.php
Step 5 : Membuat View
- Ketikkan script berikut,
<h4>Book Data</h4>
<?php if(count($detail) > 0) { ?>
<table border="1">
<tr>
<th>ID</th>
<th>Title</th>
<th>Author</th>
</tr>
<?php
foreach($detail as $rows) {
echo "<tr>";
echo "
<td>". $rows['id']."</td>
<td>". $rows['title'] ."</td>
<td>". $rows['author'] ."</td>
"; } ?>
</table>
<?php } ?>
<div> <?php echo $this->pagination->create_links(); ?> </div> - Simpan dalam folder system-application-views, dengan nama buku_view.php
- Penjelasan :
$detaildidapatkan dari controller, variabel ini berisi data dari tb_book (hasil dari model). Kemudian data ditampilkan dalam bentuk arrays.
Step 6 : Testing Code
- Buka browser, pergi ke http://localhost/namaFolderCIKamu/buku_con/getBuku
- Anda akan melihat tampilan seperti berikut,

- Klik pada link pagination ke halaman 2, maka anda akan melihat tampilan seperti dibawah

So easy right?
Silahkan mencoba, and… happy coding ![]()
Hal yang juga menarik:
Hak Cipta
Semua skrip dan teknik dalam artikel di itx.web.id boleh digunakan sebagaimana kehendakmu tanpa perlu mencantumkan sumber. Kamu tidak boleh mengkopi seluruh artikel, dalam Bahasa Indonesia ataupun diterjemahkan ke dalam bahasa lain.
This post is also available in: English
English
Indonesia
jeww..xjadi pn..what the hell??errr.. X-(
mas, aku baru belajar pakek CI, aku dah coba yang diatas tapi kok ga jadi ya, keluarnya gini
404 Page Not Found
The page you requested was not found.
itu kenapa ya mas, mhm pencerahannya (eyeroll)
file .htaccess isinya sprti apa?
yup, mungkin karena URL di CI kamu belum diatur (hubungannya dengan htacess)
coba akses dengan URL ini –> http://localhost/namaFolderCIKamu/index.php/buku_con/getBuku
kalo bisa diakses dengan alamat diatas, no problem dengan script berarti
untuk controller di simpan dengan nama buku_con aja yah,tanpa extensi php gan??
kok g jadi pagingnya ahaha x(
klo data nya di bagi dengan kategori gmn?
ditambahkan “where id_kategori = ‘$id_kat’”
mas saya dah buat, tapi qo pas di klik halaman 2, muncul
404 Page Not Found
The page you requested was not found.
Terima kasih banyak, Mas, tutorialnya sangat bermanfaat. Paging saya berhasil. (yahoo) (yahoo) (yahoo) (smileydance) (smileydance) (rock) (rock) (rock) (smileydance)
kalo query nya pake web service gimana cara munculin di pagingnya ya?
outputnya kan masih tag2 xml gitu..
mas ko pagination nya jadi aneh..
kalo aku akses ‘/getBuku/4′ munculnya halaman 3
kalo akses /getBuku/3′ munculnya halaman 2.
benerin nya bagaimana mas?
terimakasih