Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

Cara Membuat Pagination pada CodeIgniter

Tentu, ini artikel tentang cara membuat pagination di CodeIgniter.

 

Pagination adalah fitur penting untuk mengelola tampilan data dalam jumlah besar pada sebuah website. Dengan pagination, data dibagi ke dalam beberapa halaman, sehingga website tidak perlu memuat semua data sekaligus dan performanya tetap optimal. Framework CodeIgniter menyediakan library bawaan yang mempermudah proses ini.


 

Langkah 1: Persiapan Awal

 

Pastikan Anda memiliki hal-hal berikut:

  1. Proyek CodeIgniter yang sudah terinstal dan berjalan.
  2. Koneksi database yang sudah dikonfigurasi.
  3. Sebuah tabel dengan banyak data. Contohnya, kita akan menggunakan tabel mahasiswa.

 

Langkah 2: Konfigurasi dan Pemanggilan Library Pagination

 

CodeIgniter memiliki library pagination yang perlu dimuat dan dikonfigurasi. Anda bisa memuatnya di konstruktor controller atau langsung di method yang memerlukan pagination.

PHP

// di dalam controller
$this->load->library('pagination');

// Array konfigurasi untuk pagination
$config['base_url'] = base_url('mahasiswa/index');
$config['total_rows'] = 200; // Contoh: total 200 data
$config['per_page'] = 10; // Jumlah data per halaman

Beberapa opsi konfigurasi penting:

  • $config['base_url']: URL dasar untuk link pagination Anda.
  • $config['total_rows']: Total data yang ada di tabel.
  • $config['per_page']: Jumlah data yang ingin Anda tampilkan di setiap halaman.

 

Langkah 3: Mengambil Data dari Database

 

Untuk menampilkan data per halaman, Anda perlu menambahkan limit dan offset pada query database Anda. limit adalah jumlah data per halaman (per_page), dan offset adalah posisi awal data yang akan diambil.

Anggaplah kita punya sebuah Model (M_mahasiswa) dengan fungsi untuk mengambil data.

application/models/M_mahasiswa.php

PHP

<?php
class M_mahasiswa extends CI_Model{

    function get_mahasiswa($limit, $start){
        $this->db->limit($limit, $start);
        $query = $this->db->get('mahasiswa');
        return $query->result();
    }
}

 

Langkah 4: Menggabungkan di Controller

 

Sekarang, kita gabungkan semua logika di dalam controller. Kita akan membuat controller Mahasiswa.

application/controllers/Mahasiswa.php

PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Mahasiswa extends CI_Controller {

    public function __construct(){
        parent::__construct();
        $this->load->model('m_mahasiswa');
        $this->load->library('pagination');
        $this->load->helper('url');
    }

    public function index($start = 0){
        // Menghitung total data
        $total_rows = $this->db->get('mahasiswa')->num_rows();

        // Konfigurasi Pagination
        $config['base_url'] = base_url('mahasiswa/index');
        $config['total_rows'] = $total_rows;
        $config['per_page'] = 10;
        $config['uri_segment'] = 3;

        // Inisialisasi Pagination
        $this->pagination->initialize($config);

        // Mengambil data untuk halaman saat ini
        $data['mahasiswa'] = $this->m_mahasiswa->get_mahasiswa($config['per_page'], $start);
        $data['pagination_links'] = $this->pagination->create_links();

        // Memuat view dan mengirim data
        $this->load->view('v_mahasiswa', $data);
    }
}
  • $start: Parameter ini akan berisi nilai offset dari URL (segmen ke-3).
  • $this->db->get('mahasiswa')->num_rows(): Cara sederhana untuk mendapatkan total baris data.
  • $data['pagination_links']: Berisi kode HTML untuk link pagination yang dihasilkan oleh library.

 

Langkah 5: Menampilkan di View

 

Terakhir, kita tampilkan data dan link pagination di view.

application/views/v_mahasiswa.php

PHP

<!DOCTYPE html>
<html>
<head>
    <title>Daftar Mahasiswa</title>
</head>
<body>
    <center><h3>Daftar Mahasiswa</h3></center>
    <table border="1" style="width: 80%; margin: auto;">
        <thead>
            <tr>
                <th>No</th>
                <th>Nama</th>
                <th>NIM</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach($mahasiswa as $m) { ?>
            <tr>
                <td><?php echo $m->id; ?></td>
                <td><?php echo $m->nama; ?></td>
                <td><?php echo $m->nim; ?></td>
            </tr>
            <?php } ?>
        </tbody>
    </table>
    <center>
        <div class="pagination">
            <?php echo $pagination_links; ?>
        </div>
    </center>
</body>
</html>

 

Kesimpulan

 

Membuat pagination di CodeIgniter sangatlah mudah berkat library bawaan yang powerful. Anda hanya perlu mengkonfigurasi beberapa parameter dan library akan menangani sisanya, termasuk menghasilkan link HTML yang dinamis. Dengan begitu, website Anda akan lebih efisien dan ramah pengguna, terutama saat mengelola data dalam jumlah besar.

Apakah Anda ingin melihat contoh tampilan kustom untuk pagination atau membuat fitur pencarian dengan pagination?

Wawasan Terbaru

Gemini_Generated_Image_wfw5uwwfw5uwwfw5
Mengenal Dunia Grafis: Dari Piksel Hingga Vektor, Kekuatan Visual di Era Digital
Gemini_Generated_Image_b6dimfb6dimfb6di
Mengenal Foundation: Kerangka Kerja Front-End Profesional untuk Web Responsif
Gemini_Generated_Image_sx3ztpsx3ztpsx3z
CSS
Mempercantik Website dengan CSS: Seniman di Balik Tampilan Web 🎨
Gemini_Generated_Image_e013qke013qke013
Mengenal HTML: Fondasi dari Setiap Halaman Website 🌐
Gemini_Generated_Image_ldki4nldki4nldki
Menyelami Dunia Coding: Seni Berbicara dengan Komputer
Gemini_Generated_Image_dpvliydpvliydpvl
Menguasai GIT: Fondasi Penting dalam Dunia Pengembangan Perangkat Lunak
Gemini_Generated_Image_sqcib9sqcib9sqci
Tutorial Python #12: Mengenal Jenis-jenis Operator dalam Python
Gemini_Generated_Image_o1bw3do1bw3do1bw
Memahami Tipe Data Dictionary dalam Python
Gemini_Generated_Image_ko4ixfko4ixfko4i
Mengenal Tipe Data Set dalam Python
Gemini_Generated_Image_1xop7m1xop7m1xop
Tuple dalam Python: Pengenalan dan Tutorial

Wawasan Serupa

Gemini_Generated_Image_ursc84ursc84ursc
ef5c8286-b6c4-4e25-b155-697374d570dc
Gemini_Generated_Image_m1hsycm1hsycm1hs
Gemini_Generated_Image_jxblqjxblqjxblqj

Ceritakan Detail Proyekmu

Mulai dari 30K aja, solusi IT kamu langsung jalan tanpa drama.

Kata Mereka Tentang Solusi Coding

Dipercaya oleh lebih dari 200++ client untuk menyelesaikan proyeknya dengan total 250++ proyek dari berbagai jenis proyek