Codeigniter Tutorial: Cara membuat pagination

Oleh: Admin - Tue, 25 September, 2018

Cara mudah membuat paging dengan codeigniter

yooo.., balik lagi nih. Kenyang sob abis makan ikan bakar, hahhahaa. Alhamdulillah rezekinya sob, dapet nasi kotak isinya ikan bakar. Dari kemaren mau nulis ga sempet terus, sibuk sob hahahaa :D (padahal mah molor).

Langsung aja nih, kali ini gw mau share yang abis gw coba kemaren nih. Jadi, gw mau share cara bikin pagination dengan codeigniter. Nah pagination ini bisa dipake bukan cuma buat tabel aja loh, tapi konten yang bentuknya artikel juga bisa kita pake fitur pagination ini.

1. Load library pagination Codeigniter

/**
 * undocumented function
 *
 * @return void
 * @author
 **/
function index() {
    $this->load->library('pagination');
}

2. Tentukan limit dan offset untuk pagingnya

/**
 * undocumented function
 *
 * @param $offset Int
 * @return void
 * @author
 **/
function index($offset = 0) {
    $this->load->library('pagination');
    $limit = 5;
}

3. Siapkan data (model) untuk menampilkan data yang akan di limit & belum di limit (all), dan perhatikan juga untuk nilai $offset kita ubah menjadi sebagai berikut

/**
 * undocumented function
 *
 * @param $offset Int
 * @return void
 * @author
 **/
function index($offset = 0) {
    $this->load->library('pagination');
    $limit = 5;
    $offset = $offset > 0 ? (($offset - 1) * $limit) : $offset;

    $all = $this->blog->blogposts(); // query all data
    $blogs = $this->blog->blogposts($limit, $offset); // limit data
    $total = sizeof($all); // total all data

}

4. Selanjutnya kita tambahkan configurasi untuk pagination tersebut untuk kemudian kita load pada library pagination codeigniter, dan generate pagination link -nya.

/**
 * undocumented function
 *
 * @param $offset Int
 * @return void
 * @author
 **/
function index($offset = 0) {
    $this->load->library('pagination');
    $limit = 5;
    $offset = $offset > 0 ? (($offset - 1) * $limit) : $offset;

    $all = $this->blog->blogposts(); // query all data
    $blogs = $this->blog->blogposts($limit, $offset); // limit data
    $total = sizeof($all); // total all data

    $config = [];
    $config['base_url'] = base_url('blog/index');
    $config['total_rows'] = sizeof($total);
    $config['per_page'] = $limit;
    $config['first_link'] = 'Pertama';
    $config['last_link'] = 'Terakhir';
    $config['prev_link'] = '<span aria-hidden="true">«</span><span class="sr-only">Sebelumnya</span>';
    $config['next_link'] = '<span aria-hidden="true">»</span><span class="sr-only">Berikutnya</span>';
    $config['use_page_numbers'] = TRUE;
    $config['num_links'] = 3;
    $config['full_tag_open'] = '<nav aria-label="Blog Post Pagination"><ul class="pagination">';
    $config['full_tag_close'] = '</ul></nav>';
    $config['num_tag_open'] = '<li class="page-item">';
    $config['num_tag_close'] = '</li>';
    $config['cur_tag_open'] = '<li class="page-item active"><a class="page-link" href="#" aria-label="Previous">';
    $config['cur_tag_close'] = '</a></li>';
    $config['next_tag_open'] = '<li class="page-item">';
    $config['next_tag_close'] = '</li>';
    $config['prev_tag_open'] = '<li class="page-item">';
    $config['prev_tag_close'] = '</li>';
    $config['attributes'] = array('class' => 'page-link');
    
    $this->pagination->initialize($config); // initialize $config into pagination class
    $links = $this->pagination->create_links(); // create pagination links
}

5. Oke, sampe sini kita udah bisa menampilkan pagingnya. Lebih lengkapnya bisa perhatikan kode berikut.