Pagination merupakan suatu metoda untuk menampilkan data ke dalam beberapa halaman. Pagination pada website, sama halnya seperti buku yang disajikan dalam bentuk halaman demi halaman. Isi seluruh buku tidak disajikan di dalam selembar kertas yang sangat panjang, melainkan dibagi-bagi ke dalam ratusan halaman sehingga mudah untuk dibaca. Pagination diperlukan pada suatu database yang memiliki jumlah data yang luar biasa banyak. Halaman website juga memiliki keterbatasan ruang sehingga tidak mungkin menampilkan seluruh ribuan data di dalam satu halaman saja. Namun data-data tersebut harus dipecah menjadi bagian-bagian kecil untuk ditampilkan pada halaman website. Jika anda berusaha memaksakan untuk menampilkan data dengan jumlah yang sangat banyak hanya pada satu halaman, pengaruh yang langsung dirasakan adalah pada browser itu sendiri. Saat awal load, browser akan menampilkan data satu persatu dengan normal. Namun akhirnya akan melambat sampai akhirnya berhenti membeku karena sudah tidak mampu lagi menampilkan data pada layar (macet). Efek yang dirasakan pengguna adalah browser terasa lambat merespon saat menampilkan data, belum lagi data yang ditampikan begitu banyak sehingga hanya membingungkan pengguna. Dan ini adalah contoh buruk yang harus dihindari. Pada tutorial kali ini saya akan menjelaskan bagimana cara membuat pagination pada kumpulan data dan membaginya ke dalam bagian-bagian yang lebih kecil. Kemudian menampilkannya menjadi beberapa buah halaman. Membuat Database MysqlDatabase sendiri adalah kumpulan dari tabel data. Database berfungsi sebagai induk (naungan) dari tabel yang akan dibuat. Untuk membuat database, silahkan aktifkan xampp ataupun wamp server. Kemudian untuk mengakses phpMyadmin silahkan ketik pada browser localhost/phpmyadmin → New. Lalu pada tab Databases ketik nama database (kali ini saya menggunakan nama 'sample') → kemudian tekan Create Kemudian langkah berikutnya adalah membuat tablenya. Table kali ini berisi data tentang mahasiswa meliputi id, NIM, nama mahasiswa dan jenis kelamin. Silahkan masuk pada database yang sudah dibuat lalu klik pada tab COMMAND SQL, kemudian salin kode berikut tanpa harus mengetikkan secara manual : 1 CREATE TABLE `data_mahasiswa` ( Kemudian langkah terakhir adalah memasukkan datanya satu persatu. Anda boleh menyalin kode berikut dan jalankan pada COMMAND SQL tab tanpa harus mengetikkannya secara manual. 1 INSERT INTO `data_mahasiswa` VALUES (1, '001', 'Tommy', 'Laki-laki'); Database beserta data tablenya sudah siap. Kemudian hal yang perlu dilakukan adalah mengakses data tersebut pada server. Untuk itu perlu disiapkan koneksi sebagai jembatan antara PHP dan Mysql. 1
} ?> Jika dijalankan akan menampilkan data secara keseluruhan dan tanpa pagination. Pembagian seluruh data kemudian menampilkannya halaman demi halaman, maka data tersebut perlu dipecah. Caranya dengan menggunakan parameter posisi halaman dan batas (jumlah) data yang akan ditampilkan. Posisi halaman diperlukan sebagai acuan sebagai halaman aktif yang nantinya digunakan sebagai acuan untuk menuju halaman lain, halaman sebelumnya serta halaman sesudahnya. 1
} /*pagination*/ $sebelumnya = $page - 1; $berikutnya = $page + 1; echo " ";
if($page > 2){ $back=$page-1; echo " } if($page==1){ for($i=$page-1; $i<=$page+3; $i++){ if($i<1){continue;} if($i>$jmlpage){break;} if($i == $page){ echo " }else{ echo " } } }else if($page==$jmlpage){ for($i=$page-3; $i<=$page; $i++){ if($i<1){continue;} if($i>$jmlpage){break;} if($i == $page){ echo " }else{ echo " } } }else if($page==$jmlpage-1){ for($i=$page-2; $i<=$page+1; $i++){ if($i<1){continue;} if($i>$jmlpage){break;} if($i == $page){ echo " }else{ echo " } } }else{ for($i=$page-1; $i<=$page+2; $i++){ if($i<1){continue;} if($i>$jmlpage){break;} if($i == $page){ echo " }else{ echo " } } } if($page < $jmlpage-1){ $next=$page+1; echo " } echo " echo ""; ?> Tampilan saat data pada halaman pertama : Tampilan saat data pada halaman ke-3 : Penjelasan : Metode menampilkan halaman, data perlu disaring terlebih dahulu. Jika datanya ada maka data dapat ditampilkan jika tak ada maka tidak ditampilkan (baris ke-34). Cara menampilkan data melalui mysql dengan memberikan pembatasan melalui limit $posisi, $batas (baris ke-37). Pembatasan cara menampilkan ini bertumpu pada halaman yang saat ini aktif dengan metode $_GET['page']. Data kemudian diolah oleh beberapa perhitungan manual via PHP, seperti $jmlpage untuk mendapatkan jumlah total halaman, $posisi untuk mendapatkan titik awal data yang harus ditampilkan. Metode tampilan pagination-nya sendiri menggunakan daftar list (
Source Code Silahkan download source code beserta file pendukung pada tutorial ini. Download Source Code Demikian tutorial bagaimana cara membuat paginasi sederhna dengan database myswl pada PHP, semoga bermanfaat . |