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
-
Masuk ke MySQL menggunakan terminal atau phpMyAdmin.
Jika Anda menggunakan terminal, jalankan perintah berikut:
mysql -u root -p
-
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, sepertibase_url
(URL dasar untuk pagination),total_rows
(jumlah total data produk), danper_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.
-
Buka browser dan akses aplikasi Anda. Misalnya, jika Anda mengonfigurasi aplikasi di localhost, akses aplikasi di URL berikut:
http://localhost/ci3pagination/product
-
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.
ID | Nama | Deskripsi | Harga |
---|---|---|---|
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.