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 :
$detail
didapatkan 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 ๐
14 replies on “Membuat Pagination dalam CodeIgniter”
Makasih gan tutorialnya sangat membantu
gan tu url pake htaccess.
kalo mau bkin caranya
1. buat file dengan nama .htaccess
2. taruh file di folder root
3. buka application -> config -> config.php ntar disitu ada pengaturan $config[‘index_page’] = ‘index’;
4. hilangkan index –> $config[‘index_page’] = ”;
5. jalankan….
Moga Berhasil.
isi file .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
numpang tanya kalau gga tampil angka paginationnya itu kenapa?? tampilnya seperti ini <last tidak tampil <234
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 ๐
kalo query nya pake web service gimana cara munculin di pagingnya ya?
outputnya kan masih tag2 xml gitu..
Terima kasih banyak, Mas, tutorialnya sangat bermanfaat. Paging saya berhasil. (yahoo) (yahoo) (yahoo) (smileydance) (smileydance) (rock) (rock) (rock) (smileydance)
mas saya dah buat, tapi qo pas di klik halaman 2, muncul
404 Page Not Found
The page you requested was not found.
klo data nya di bagi dengan kategori gmn?
ditambahkan “where id_kategori = ‘$id_kat'”
kok g jadi pagingnya ahaha x(
untuk controller di simpan dengan nama buku_con aja yah,tanpa extensi php gan??
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
jeww..xjadi pn..what the hell??errr.. X-(