Pembaca yang budiman. Ada pertanyaan melalui email kepada saya tentang bagaimana membuat pagination di Codeigniter. Sebetulnya gampang alias mudah, karena Codeigniter 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 :
$autoload['libraries'] = array('database, pagination');
berguna untuk melakukan setting auto database library.
Dan juga lakukan load helper untuk mengakses class uri segment berfungsi untuk pagination nya.
$autoload['helper'] = array('url');
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. dan semoga juga bermanfaat untuk anda semua. :)
Nama: Rizky Anggawiguna T
Kelas : XI RPL 2

mas, apa anda copy paste di website tutorialwebdesign.com ? kok sama tutorialnya :(
ReplyDelete