Selasa, 10 Juli 2012

Dasar Pagination Dengan CI

Pagination adalah istilah yang digunakan untuk menampilkan data dengan cara sebagian-sebagian, dengan menyajikan halaman demi halaman. Dalam aplikasi web, maka menampilkan sebagian data dilakukan menampilkan dalam satu halaman browser web; pagination mengacu pada penyajian data dalam halaman web.

Jika kita memiliki data yang banyak, maka data disajikan tidak langsung seluruhnya, tetapi sebagian-sebagian saja. Mengapa? Karena jika seluruhnya langsung ditampilkan, maka bisa jadi data hanya sebagian yang dapat ditampilkan oleh browser web, karena terputusnya hubungan dengan server.

Setiap server web memiliki waktu tanggap (response time) yang berbeda-beda untuk melayani suatu request dari penggunanya. Dengan keterbatasan waktu tanggap ini, maka jika server sedang sibuk, banyak melayani permintaan dari pengunjung, maka data akan dikirimkan sebagian-sebagian; pada saat waktu tanggap mencapai batas, maka koneksi untuk menanggapi permintaan akan diputus secara otomatis. Akibatnya? Hanya sebagian data saja yang akan terkirim.

Belum lagi jika koneksi sedang lambat, karena server web akan memberikan tanggapan atas permintaan akan dilakukan secara sebagian-sebagian. Setiap bagian setelah diterima akan dikonfirmasikan kepada server terlebih dahulu, sebelum kemudian server memberikan data berikutnya. Jika koneksi lambat, maka kita akan mendapatkan waktu yang tidak mencukupi, karena waktu tanggap yang disetel untuk server tersebut.

Untuk itu, untuk menjamin data dapat disajikan secara sebagian-sebagian, maka kita akan melakukan pembatasan akan data yang dikirimkan. Untuk mendapatkan data berikutnya, kita harus menyediakan link untuk menampilkannya. Link-link ini dapat disajikan dengan menggunakan nomor halaman. Nomor halaman akan disajikan sesuai dengan kelipatan dari jumlah data yang ditampilkan pada halaman tersebut.

CodeIgniter menyediakan librari class pagination, yang akan menampilkan link berupa nomor halaman untuk menampilkan data yang belum atau tidak ditampilkan.

Librari class ini akan secara otomatis menampilkan link untuk data berikutnya atau sebelumnya, dengan nomor halaman yang sedang ditampilkan dibedakan, dengan tidak dapat diklik; seperti ditunjukkan gambar berikut:

Contoh di atas menunjukkan pagination.

Kita dapat membuatnya dengan mudah, dengan melakukan pemuatan librari class terlebih dahulu, kemudian memasukkan parameter untuk menghitung jumlah halaman dan menampilkan link untuk menuju nomor halaman data yang belum ditampilkan.

Berikut adalah contoh untuk membuat link pagination seperti ditunjukkan di atas:

<?php
$this->load->library('pagination');

$config['base_url'] =site_url( 'controller/fungsi');
$config['total_rows'] = 200;
$config['per_page'] = 20; 

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

echo $this->pagination->create_links();


?>

Setelah pemuatan librari class pagination, maka berikutnya kita mendefinisikan controller yang akan menampilkan data. Item total_rows diisi dengan jumlah data total, dari data yang akan ditampilkan. Item per_page diisi dengan jumlah data dalam setiap halamannya.

Item total_rows biasanya dihasilkan dari hasil counting data dari database, dengan menggunakan fungsi aggregat SQL count() , dari suatu query yang dilakukan untuk mendapatkan data dari database.

Librari class akan melakukan perhitungan akan ada berapa halaman data, untuk menampilkan link berupa nomor halaman, yang dilakukan pada saat fungsi initialize($config) dieksekusi. Hasil berupa link nomor halaman akan ditampilkan dengan menggunakan perintah echo untuk fungsi create_links().

Pemuatan librari class pagination dilakukan di dalam fungsi dari controller, hasil link bisa disimpan dalam variabel kemudian ditampilkan di dalam view.

Tidak ada komentar:

Posting Komentar