Pagination di Codeigniter

Codeigniter Pagination

Pagination, adalah sebuah fitur yang digunakan untuk membatasi tampilan data agar tidak terlalu panjang dan  lebih rapi. Seperti dilihat pada ilustrasi di depan artikel ini. Penggunaan pagination lazim digunakan untuk menampilkan data dalam jumlah banyak, sehingga dapat dipisah / dipilih berapa data yang akan ditampilkan terlebih dahulu.

Bagi yang menggunakan codeigniter framework, tidak terlalu sulit untuk menerapkan library pagination yang ada pada Codeigniter,caranya pun sudah cukup jelas apa bila dilihat pada user guide yang sudah ada. 

Pada controller ditambahkan code untuk mengakses library pagination dan database serta table dan n url form . Yang syntaxnya sebagai berikut :

$this->load->library('table');
 $this->load->library('pagination');
 $this->load->helper('form');
 $this->load->helper('url');
 $this->load->database(); //load library database

Kemudian kita konfigurasi untuk settingan pagination yang akan dibuat seperti kode di bawah ini

$config['base_url'] = base_url().'index.php/welcome/index';
 $config['total_rows'] = 5;
 $config['per_page'] = 2;
 $config['num_links'] = 5;
 $config['use_page_numbers'] = TRUE;
 $this->pagination->initialize($config);

Selanjutnya adalah kode untuk mengambil data dari database dan ditampilkan sesuai offset dan aturan per halaman yang ditentukan. Tidak lupa untuk menyetting table yang digunakan untuk menampolkan data tadi

$data['records']=$this->db->get('daily', $config['per_page'],$offset);//mengambilecord dari tabel daily
 $header = array('ID', 'Date', 'Name', 'Amount'); //membuat header tabel
 $this->table->set_heading($header);//menerapkan heading dengan header yang sudah dibuat
 $this->load->view('welcome_message',$data); //meload view dengan isi data yang diambil dari tabel daily

Potongan script di atas, digabungkan dalam satu function yang saya beri nama index, dengan parameter offset. Sehingga controller kita menjadi sebaga berikut

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller{
 function __construct(){
 parent::__construct();
 }

function index($offset = 0){
 $this->load->library('table');
 $this->load->library('pagination');
 $this->load->helper('form');
 $this->load->helper('url');
 $this->load->database(); //load library database

// Config setup
 $config['base_url'] = base_url().'index.php/welcome/index';
 $config['total_rows'] = 5;
 $config['per_page'] = 2;
 $config['num_links'] = 5;
 $config['use_page_numbers'] = TRUE;
 $this->pagination->initialize($config);

$data['records']=$this->db->get('daily', $config['per_page'],$offset);//mengambil seluruh record dari tabel daily
 $header = array('ID', 'Date', 'Name', 'Amount'); //membuat header tabel
 $this->table->set_heading($header);//menerapkan heading dengan header yang sudah dibuat
 $this->load->view('welcome_message',$data); //meload view dengan isi data yang diambil dari tabel daily
 }

}

Sedangkan untuk view tinggal kita tampilkan tabel dan link pagination nya

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>Welcome to CodeIgniter</title>

</head>
<body>

<div id="container">
 <h1>Welcome to CodeIgniter!</h1>

<div id="body">

 <?php echo $this->table->generate($records); ?>
 <?php echo $this->pagination->create_links(); ?>
 </div>

<p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds</p>
</div>

</body>
</html>

Semoga bermanfaat..

  • Silo

    Permisi Mas, numpang belajar ya,
    terima kasih sudah membuat blog mengenai CodeIgniter.

    Silo

    • dwijonarko

      sama-sama, senang bisa membantu

      • vicky

        itu $this->load->library(‘pagination’);

        isinya apa ya gan ?

  • Sobarieasnawie

    asslamualaikum.. mas boleh nanya..
    tentang codeigniter saya belumpaham logika nya

    • dwijonarko

      silahkan 🙂

  • bobby

    kalo untuk modelnya gimana mas?? nga dicantumin yaaaa

    • dwijonarko

      kalo ga perlu pake model ya ga usah 🙂

  • vicky

    $this->load->library(‘pagination’);

    isinya apa ya gan?

  • tinggal di copas aja mas