Pagination adalah proses membagi konten web dan menampilkannya pada halaman terpisah. Tidak terlalu sulit untuk membuat pagination di Codeigniter karena Codeigniter sendiri sudah menyediakan library untuk melakukan / membuat halaman pada sebuah view data yang kita ambil dari database. Berikut adalah cara membuat pagination secara simple ala saya (cara saya sendiri :) ).
Oke buatlah sebuah database di sistem MySQL anda, misalkan saya buat dengan nama db_gaji.
CREATE DATABASE db_gaji;
Kemudian buat tabel karyawan yang nantinya akan kita gunakan sebagai sumber data dari tutorial kita.
CREATE TABLE IF NOT EXISTS `tbl_karyawan` ( `nik` int(15) NOT NULL AUTO_INCREMENT, `nama_lengkap` varchar(100) NOT NULL, `jenkel` enum(‘L’,’P’) DEFAULT NULL, `tanggal_lahir` date NOT NULL, `gapok` int(11) NOT NULL, PRIMARY KEY (`nik`) )
dan isi tabel karyawan dengan data berikut :
INSERT INTO `tbl_karyawan` (`nik`, `nama_lengkap`, `jenkel`, `tanggal_lahir`, `gapok`) VALUES (1001, 'Lilin Herlina', 'P', '1988-03-23', 420000), (1002, 'Agung H', 'L', '1986-01-20', 530000), (1003, 'Dwi Ratna', 'P', '1987-11-11', 50000), (1004, 'Via Vallent', 'P', '1990-12-25', 700000), (1005, 'Sodiq', 'L', '1975-08-17', 900000), (1006, 'Gerry Mahesa', 'L', '1985-08-27', 900000), (1007, 'Mella Barbie', 'P', '1988-09-27', 800000), (1009, 'Dimas Edubuntu Samid', 'L', '1945-11-01', 1500000), (1010, 'Brodien', 'L', '1975-05-09', 785000);
Setelah membuat table langkah berikutnya adalah kita lakukan setting koneksi ke database kita, caranya bukalah file application/config/database.php, pada baris kurang lebih 51 anda akan menemukan skrip berikut :
$db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'root'; $db['default']['password'] = 'admin'; $db['default']['database'] = 'db_gaji'; $db['default']['dbdriver'] = 'mysql';
Ubah juga file pada direktori application/config/autoload.php seperti ini :
[php]$autoload[‘libraries’] = array(‘database, pagination’);[/php]
berguna untuk melakukan setting auto database library.
Dan juga lakukan load helper untuk mengakses class uri segment berfungsi untuk pagination nya.
[php]$autoload[‘helper’] = array(‘url’);[/php]
Membuat Model
Setelah semuanya siap saatnya kita membuat model, saya beri nama m_karyawan.php. Apa fungsinya ? fungsinya adalah mengambil dari database record yang kita butuhkan untuk ditampilkan pada layar browser melalui file pada direktori view. Buat seperti ini :
<?php if(!defined('BASEPATH')) exit('Keluar dari sistem'); class M_karyawan extends CI_Model { public function __construct() { parent::__construct(); } public function ambil_karyawan($num, $offset) { $this->db->order_by('nama_lengkap', 'ASC'); $data = $this->db->get('tbl_karyawan', $num, $offset); return $data->result(); } } ?>
Membuat Controller
Kemudian buat controller dan beri nama karyawan.php, berikut listing scriptnya :
<?php if(!defined('BASEPATH')) exit('Keluar dari sistem'); class Karyawan extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('m_karyawan'); } public function index($id=NULL) { $jml = $this->db->get('tbl_karyawan'); //pengaturan pagination $config['base_url'] = base_url().'karyawan/index'; $config['total_rows'] = $jml->num_rows(); $config['per_page'] = '5'; $config['first_page'] = 'Awal'; $config['last_page'] = 'Akhir'; $config['next_page'] = '«'; $config['prev_page'] = '»'; //inisialisasi config $this->pagination->initialize($config); //buat pagination $data['halaman'] = $this->pagination->create_links(); //tamplikan data $data['query'] = $this->m_karyawan->ambil_karyawan($config['per_page'], $id); $this->load->view('karyawan_view', $data); } } ?>
Membuat View
Terakhir buatlah file view untuk menampilkan data dari database, simpan dengan nama karyawan_view.php.
<html> <head> <title>DATA KARYAWAN PT. DIMASEDU MANDIRI JAYA</title> <style> body { font-family:arial; background:#FFF7E7; } .t_data { border-collapse:collapse; } .t_data tr th { font-size:12px; font-weight:bold; background:#A46D07; color:#FFFF00; padding:4px; } .t_data tr td { font-size:12px; padding:4px; } .t_data tr:hover { background:#C8FABF; } .halaman { margin:10px; font-size:11px; } .halaman a { padding:3px; background:#990000; -moz-border-radius:5px; -webkit-border-radius:5px; border:1px solid #FFA500; font-size:10px; font-weight:bold; color:#FFF; text-decoration:none; } </style> </head> <body> <h2>Data Karyawan</h2> <table class="t_data" border="1"> <tr> <th>No.</th> <th>NIK</th> <th>Nama Karyawan</th> <th>Gender</th> <th>Tanggal Lahir</th> <th>Gapok</th> </tr> <?php //kalo data tidak ada didatabase if(empty($query)) { echo "<tr><td colspan=\"6\">Data tidak tersedia</td></tr>"; }else { $no = 1; foreach($query as $row) { ?> <tr> <td><?php echo $no;?></td> <td><?php echo $row->nik;?></td> <td><?php echo $row->nama_lengkap;?></td> <td><?php echo $row->jenkel;?></td> <td><?php echo $row->tanggal_lahir;?></td> <td><?php echo $row->gapok;?></td> </tr> <?php $no++; }} ?> </table> <div class="halaman">Halaman : <?php echo $halaman;?></div> </body> </html>
Setelah semuanya siap. Sobat tinggal menampilkannya dalam browser. Buka browser kemudian ketikan http://localhost/tutorial/karyawan, seharusnya mendapatkan tampilan seperti berikut :
Demikian tutorial tentang pagination semoga dapat menjawab pertanyaan yang diajukan. Saya berharap kode ini akan berguna dalam proyek PHP Anda. Semoga berhasil!