Cara Membuat Pagination CodeIgniter 3 dengan MySQL

 

Pagination (paginasi) adalah salah satu fitur penting dalam pengembangan aplikasi web, terutama saat kita bekerja dengan data dalam jumlah besar. Fitur pagination memungkinkan data ditampilkan dalam beberapa halaman, yang membantu pengguna untuk menjelajahi informasi dengan cara yang lebih efisien dan nyaman. Pada artikel ini, kita akan membahas cara membuat pagination pada aplikasi CodeIgniter 3 dengan menggunakan MySQL sebagai database.

1. Persiapan Lingkungan Pengembangan

Sebelum memulai, pastikan Anda telah menginstal dan mengonfigurasi hal-hal berikut:

  • CodeIgniter 3: Pastikan Anda sudah mengunduh dan menginstal CodeIgniter versi 3.
  • MySQL: Database MySQL yang berfungsi untuk menyimpan data.
  • PHP: Versi PHP yang kompatibel dengan CodeIgniter 3 (minimal PHP 5.6).

Jika Anda belum menginstal CodeIgniter, Anda bisa mengunduhnya di situs resmi CodeIgniter. Ikuti instruksi instalasi untuk menyiapkan aplikasi pertama Anda dengan CodeIgniter.

2. Membuat Database dan Tabel

Sebelum kita membahas implementasi pagination, kita perlu menyiapkan database dan tabel yang akan digunakan. Misalnya, kita ingin membuat sebuah aplikasi yang menampilkan daftar produk dari tabel products.

2.1. Membuat Database dan Tabel

  1. Masuk ke MySQL menggunakan terminal atau phpMyAdmin.

    Jika Anda menggunakan terminal, jalankan perintah berikut:

    mysql -u root -p
    
  2. Buat database dan tabel untuk aplikasi produk:

    CREATE DATABASE product_db;
    USE product_db;
    
    CREATE TABLE products (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(100) NOT NULL,
        description TEXT,
        price DECIMAL(10, 2) NOT NULL
    );
    
    INSERT INTO products (name, description, price) VALUES
    ('Product 1', 'Description of product 1', 100.00),
    ('Product 2', 'Description of product 2', 150.00),
    ('Product 3', 'Description of product 3', 200.00),
    ('Product 4', 'Description of product 4', 250.00),
    ('Product 5', 'Description of product 5', 300.00),
    ('Product 6', 'Description of product 6', 350.00),
    ('Product 7', 'Description of product 7', 400.00),
    ('Product 8', 'Description of product 8', 450.00),
    ('Product 9', 'Description of product 9', 500.00),
    ('Product 10', 'Description of product 10', 550.00);
    

Dengan ini, Anda memiliki tabel products dengan data produk yang bisa digunakan untuk latihan pagination.

3. Mengonfigurasi CodeIgniter

Setelah database dan tabel siap, langkah berikutnya adalah mengonfigurasi aplikasi CodeIgniter untuk terhubung ke MySQL.

3.1. Mengonfigurasi Database

Buka file application/config/database.php dan ubah pengaturannya menjadi seperti berikut:

$db['default'] = array(
    'dsn' => '',
    'hostname' => 'localhost',
    'username' => 'root', // Ganti dengan username MySQL Anda
    'password' => '', // Ganti dengan password MySQL Anda
    'database' => 'product_db', // Nama database yang telah Anda buat
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

Pastikan Anda telah mengonfigurasi username, password, dan nama database dengan benar sesuai dengan pengaturan MySQL Anda.

4. Membuat Model untuk Mengambil Data

Di CodeIgniter, data biasanya diambil melalui Model. Model berfungsi untuk mengakses database dan mengolah data yang diperlukan oleh controller.

Buat file model baru di application/models/Product_model.php:

db->limit($limit, $start);
        $query = $this->db->get('products');
        return $query->result();
    }

    // Fungsi untuk menghitung jumlah total produk
    public function get_total_products() {
        return $this->db->count_all('products');
    }
}

Penjelasan:

  • get_products($limit, $start): Mengambil data produk berdasarkan jumlah data yang ingin ditampilkan per halaman ($limit) dan data yang dimulai dari halaman tertentu ($start).
  • get_total_products(): Menghitung jumlah total produk yang ada di database untuk menghitung total halaman yang diperlukan untuk pagination.

5. Membuat Controller untuk Pagination

Selanjutnya, kita akan membuat controller yang akan menghubungkan model dengan tampilan dan menangani logika pagination.

Buat file controller baru di application/controllers/Product.php:

load->model('Product_model');
        $this->load->library('pagination');
    }

    // Fungsi untuk menampilkan data produk dengan pagination
    public function index() {
        $config = array();
        $config['base_url'] = base_url('product/index');
        $config['total_rows'] = $this->Product_model->get_total_products();
        $config['per_page'] = 5; // Menentukan jumlah data per halaman

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

        $page = $this->uri->segment(3); // Mendapatkan nomor halaman dari URL
        if (!$page) {
            $page = 0;
        }

        // Mengambil data produk untuk halaman yang sesuai
        $data['products'] = $this->Product_model->get_products($config['per_page'], $page);

        // Menyediakan pagination links
        $data['pagination_links'] = $this->pagination->create_links();

        // Memuat tampilan
        $this->load->view('product/index', $data);
    }
}

Penjelasan:

  • Pada fungsi index(), kita mengatur konfigurasi pagination, seperti base_url (URL dasar untuk pagination), total_rows (jumlah total data produk), dan per_page (jumlah produk yang ditampilkan per halaman).
  • Fungsi get_products($limit, $start) dipanggil untuk mengambil data produk yang sesuai dengan halaman saat ini.
  • Fungsi create_links() digunakan untuk menghasilkan link pagination yang akan ditampilkan di halaman.

6. Membuat Tampilan untuk Menampilkan Data

Buat file tampilan di application/views/product/index.php untuk menampilkan data produk dan link pagination.

Pagination Example

Daftar Produk

 

Pada file tampilan ini, kita menampilkan data produk dalam bentuk tabel dan menambahkan link pagination di bawah tabel. Link pagination dihasilkan oleh create_links() yang telah dipanggil di controller.

7. Menjalankan Aplikasi

Sekarang aplikasi siap dijalankan. Pastikan Anda telah mengonfigurasi web server (misalnya Apache) dengan benar dan pastikan CodeIgniter dapat diakses melalui browser.

  1. Buka browser dan akses aplikasi Anda. Misalnya, jika Anda mengonfigurasi aplikasi di localhost, akses aplikasi di URL berikut:

    http://localhost/ci3pagination/product
    
  2. Anda akan melihat daftar produk yang dibagi dalam beberapa halaman, dengan link pagination di bawah tabel yang memungkinkan Anda untuk berpindah antar halaman.

8. Kesimpulan

Dengan mengikuti langkah-langkah di atas, Anda telah berhasil membuat fitur pagination di aplikasi CodeIgniter 3 menggunakan MySQL. Pagination sangat penting ketika bekerja dengan data dalam jumlah besar, karena dapat meningkatkan performa dan kenyamanan pengguna saat menavigasi data.

Anda bisa menyesuaikan jumlah data per halaman (per_page), menambahkan fitur pencarian atau filter, atau mempercantik tampilan pagination dengan CSS untuk membuatnya lebih user-friendly. Pagination juga dapat dengan mudah dikombinasikan dengan fitur lain seperti sorting dan searching untuk aplikasi yang lebih kompleks.

 

 

IDNamaDeskripsiHarga
       

Dadang Heksa

Itaque quidem optio quia voluptatibus dolorem dolor. Modi eum sed possimus accusantium. Quas repellat voluptatem officia numquam sint aspernatur voluptas. Esse et accusantium ut unde voluptas.

8 Comments

Georgia Reader Reply

Et rerum totam nisi. Molestiae vel quam dolorum vel voluptatem et et. Est ad aut sapiente quis molestiae est qui cum soluta. Vero aut rerum vel. Rerum quos laboriosam placeat ex qui. Sint qui facilis et.

Aron Alvarado Reply

Ipsam tempora sequi voluptatem quis sapiente non. Autem itaque eveniet saepe. Officiis illo ut beatae.

Lynda Small Reply

Enim ipsa eum fugiat fuga repellat. Commodi quo quo dicta. Est ullam aspernatur ut vitae quia mollitia id non. Qui ad quas nostrum rerum sed necessitatibus aut est. Eum officiis sed repellat maxime vero nisi natus. Amet nesciunt nesciunt qui illum omnis est et dolor recusandae. Recusandae sit ad aut impedit et. Ipsa labore dolor impedit et natus in porro aut. Magnam qui cum. Illo similique occaecati nihil modi eligendi. Pariatur distinctio labore omnis incidunt et illum. Expedita et dignissimos distinctio laborum minima fugiat. Libero corporis qui. Nam illo odio beatae enim ducimus. Harum reiciendis error dolorum non autem quisquam vero rerum neque.

Sianna Ramsay Reply

Et dignissimos impedit nulla et quo distinctio ex nemo. Omnis quia dolores cupiditate et. Ut unde qui eligendi sapiente omnis ullam. Placeat porro est commodi est officiis voluptas repellat quisquam possimus. Perferendis id consectetur necessitatibus.

Nolan Davidson Reply

Distinctio nesciunt rerum reprehenderit sed. Iste omnis eius repellendus quia nihil ut accusantium tempore. Nesciunt expedita id dolor exercitationem aspernatur aut quam ut. Voluptatem est accusamus iste at. Non aut et et esse qui sit modi neque. Exercitationem et eos aspernatur. Ea est consequuntur officia beatae ea aut eos soluta. Non qui dolorum voluptatibus et optio veniam. Quam officia sit nostrum dolorem.

Kay Duggan Reply

Dolorem atque aut. Omnis doloremque blanditiis quia eum porro quis ut velit tempore. Cumque sed quia ut maxime. Est ad aut cum. Ut exercitationem non in fugiat.

Leave a Reply

Your email address will not be published. Required fields are marked *