Cara Mudah Membuat Pagination dengan PHP dan MySQL

img-responsive
Dalam tutorial kali ini, saya akan membahas bagaimana cara membuat pagination dengan PHP. Apa itu pagination? Pagination atau yang lebih dikenal dengan istilah “Paging” adalah salah satu cara untuk menampilkan data yang sangat banyak dengan cara membagi-baginya menjadi beberapa halaman. Bingung? saya kasih contoh kasus saja. Misalkan saya mempunyai 1000 data di database. Kalau kita tidak menggunakan yang namanya “Pagination”, berarti 1000 data tersebut akan kita tampilkan semuanya dalam 1 halaman website benar? dan saya jamin akan memakan waktu untuk men-load semua data tersebut. Disinilah “Pagination” akan benar-benar bermanfaat, karena kalau kita menggunakan pagination terhadap 1000 data tadi. Kita bisa membagi-baginya ke dalam beberapa halaman. Misalkan kita bagi per halamannya 100 data, berarti jumlah halamannya ada 10 halaman benar?. Otomatis waktu untuk men-load data pun akan berkurang, karena data yang diload hanya 100 data, tidak semuanya. Kurang lebih begitu mengenai pagination.
Masih kurang jelas juga dengan penjelasan saya diatas? Dibawah ini saya kasih gambar contoh pagination itu seperti apa.
 Contoh Pagination - Cara Mudah Membuat Pagination dengan PHP - My Notes Code
Ya, kurang lebih seperti gambar diatas penampakan dari yang namanya “Pagination”. Mungkin setelah melihat penampakanya, pasti tidak asing kan? hehe. Oke tidak usah banyak basa-basi lagi, langsung saja ikutin step by step nya berikut ini.

DEMOSebelum masuk ke tutorialnya. Mungkin ada yang mau lihat demonya terlebih dahulu. Silahkan klik link berikut untuk melihat demonya : Lihat Demo.

STEP 1 – PERSIAPAN
Berikut ini adalah hal-hal yang harus dipersiapkan :
  1. Download Bootstrap, klik link berikut : Download. Sebenarnya untuk membuat pagination tidak memerlukan bootstrap, tapi dalam tutorial ini kenapa saya gunakan bootstrap hanya untuk desain tampilan dari paginationnya.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  2. Buat sebuah folder baru dengan nama pagination, lalu simpan pada folder xampp/htdocs/.
  3. Buat sebuah folder dengan nama css, lalu simpan pada folder xampp/htdocs/pagination/.
  4. Esktrak file bootstrap.7z yang telah didownload tadi.
  5. Copy and paste folder fonts dari folder bootstrap yang telah diekstrak tadi ke folder xampp/htdocs/pagination/.
  6. Copy and paste file bootstrap.min.css dari folder bootstrap/css/ yang telah diekstrak tadi ke folder xampp/htdocs/pagination/css/.

STEP 2 – DATABASE
Pada step ini, kita akan membuat databasenya. ikuti langkah-langkah berikut ini :
  1. Buat sebuah database dengan nama mynotescode.
  2. Buat sebuah tabel dengan nama siswa. Struktur tabelnya sebagai berikut :
    Struktur Tabel - Cara Mudah Membuat Pagination dengan PHP
    1. CREATE TABLE IF NOT EXISTS `siswa` (
    2. `nis` varchar(11) NOT NULL,
    3. `nama` varchar(50) NOT NULL,
    4. `jenis_kelamin` varchar(10) NOT NULL,
    5. `telp` varchar(15) NOT NULL,
    6. `alamat` text NOT NULL,
    7. PRIMARY KEY (`nis`)
    8. )

STEP 3 – KONEKSI DATABASE
Pada step ini, kita akan membuat file koneksi.php yang berfungsi untuk menghubungkan dengan database MySQL. Silahkan buat file koneksi.php, lalu simpan di folder xampp/htdocs/pagination/. Berikut ini kodenya :
  1. <?php
  2. $host = 'localhost'; // Nama hostnya
  3. $username = 'root'; // Username
  4. $password = ''; // Password (Isi jika menggunakan password)
  5. $database = 'mynotescode'; // Nama databasenya
  6. // Koneksi ke MySQL dengan PDO
  7. $pdo = new PDO('mysql:host='.$host.';dbname='.$database, $username, $password);
  8. ?>

STEP 4 – VIEW & PAGINATION
Langkah terakhir, kita akan membuat file utama. Buat sebuah file dengan nama index.php, lalu simpan pada folder xampp/htdocs/pagination/. Berikut tampilan dan kodenya :
View - Cara Mudah Membuat Pagination dengan PHP
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <title>Pagination dengan PHP</title>
  8. <!-- Load File bootstrap.min.css yang ada difolder css -->
  9. <link href="css/bootstrap.min.css" rel="stylesheet">
  10. <style>
  11. .align-middle{
  12. vertical-align: middle !important;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <!-- Membuat Menu Header / Navbar -->
  18. <nav class="navbar navbar-inverse" role="navigation">
  19. <div class="container-fluid">
  20. <div class="navbar-header">
  21. <a class="navbar-brand" href="#" style="color: white;"><b>Pagination dengan PHP</b></a>
  22. </div>
  23. <p class="navbar-text navbar-right hidden-xs" style="color: white;padding-right: 10px;">
  24. FOLLOW US ON
  25. <a target="_blank" style="background: #3b5998; padding: 0 5px; border-radius: 4px; color: #f7f7f7; text-decoration: none;" href="https://www.facebook.com/mynotescode">Facebook</a>
  26. <a target="_blank" style="background: #00aced; padding: 0 5px; border-radius: 4px; color: #ffffff; text-decoration: none;" href="https://twitter.com/mynotescode">Twitter</a>
  27. <a target="_blank" style="background: #d34836; padding: 0 5px; border-radius: 4px; color: #ffffff; text-decoration: none;" href="https://plus.google.com/118319575543333993544">Google+</a>
  28. <a target="_blank" style="background: #fff; padding: 0 5px; border-radius: 4px; color: #d34836; text-decoration: none;" href="https://www.youtube.com/channel/UCO394itv-u7Tn4CgI3bMYIg">YouTube</a>
  29. </p>
  30. </div>
  31. </nav>
  32. <div style="padding: 0 15px;">
  33. <div class="table-responsive">
  34. <table class="table table-bordered">
  35. <tr>
  36. <th class="text-center">NO</th>
  37. <th>NIS</th>
  38. <th>NAMA</th>
  39. <th>JENIS KELAMIN</th>
  40. <th>TELP</th>
  41. <th>ALAMAT</th>
  42. </tr>
  43. <?php
  44. // Include / load file koneksi.php
  45. include "koneksi.php";
  46. // Cek apakah terdapat data page pada URL
  47. $page = (isset($_GET['page']))? $_GET['page'] : 1;
  48. $limit = 5; // Jumlah data per halamannya
  49. // Untuk menentukan dari data ke berapa yang akan ditampilkan pada tabel yang ada di database
  50. $limit_start = ($page - 1) * $limit;
  51. // Buat query untuk menampilkan data siswa sesuai limit yang ditentukan
  52. $sql = $pdo->prepare("SELECT * FROM siswa LIMIT ".$limit_start.",".$limit);
  53. $sql->execute(); // Eksekusi querynya
  54. $no = $limit_start + 1; // Untuk penomoran tabel
  55. while($data = $sql->fetch()){ // Ambil semua data dari hasil eksekusi $sql
  56. ?>
  57. <tr>
  58. <td class="align-middle text-center"><?php echo $no; ?></td>
  59. <td class="align-middle"><?php echo $data['nis']; ?></td>
  60. <td class="align-middle"><?php echo $data['nama']; ?></td>
  61. <td class="align-middle"><?php echo $data['jenis_kelamin']; ?></td>
  62. <td class="align-middle"><?php echo $data['telp']; ?></td>
  63. <td class="align-middle"><?php echo $data['alamat']; ?></td>
  64. </tr>
  65. <?php
  66. $no++; // Tambah 1 setiap kali looping
  67. }
  68. ?>
  69. </table>
  70. </div>
  71. <!--
  72. -- Buat Paginationnya
  73. -- Dengan bootstrap, kita jadi dimudahkan untuk membuat tombol-tombol pagination dengan design yang bagus tentunya
  74. -->
  75. <ul class="pagination">
  76. <!-- LINK FIRST AND PREV -->
  77. <?php
  78. if($page == 1){ // Jika page adalah page ke 1, maka disable link PREV
  79. ?>
  80. <li class="disabled"><a href="#">First</a></li>
  81. <li class="disabled"><a href="#">&laquo;</a></li>
  82. <?php
  83. }else{ // Jika page bukan page ke 1
  84. $link_prev = ($page > 1)? $page - 1 : 1;
  85. ?>
  86. <li><a href="index.php?page=1">First</a></li>
  87. <li><a href="index.php?page=<?php echo $link_prev; ?>">&laquo;</a></li>
  88. <?php
  89. }
  90. ?>
  91. <!-- LINK NUMBER -->
  92. <?php
  93. // Buat query untuk menghitung semua jumlah data
  94. $sql2 = $pdo->prepare("SELECT COUNT(*) AS jumlah FROM siswa");
  95. $sql2->execute(); // Eksekusi querynya
  96. $get_jumlah = $sql2->fetch();
  97. $jumlah_page = ceil($get_jumlah['jumlah'] / $limit); // Hitung jumlah halamannya
  98. $jumlah_number = 3; // Tentukan jumlah link number sebelum dan sesudah page yang aktif
  99. $start_number = ($page > $jumlah_number)? $page - $jumlah_number : 1; // Untuk awal link number
  100. $end_number = ($page < ($jumlah_page - $jumlah_number))? $page + $jumlah_number : $jumlah_page; // Untuk akhir link number
  101. for($i = $start_number; $i <= $end_number; $i++){
  102. $link_active = ($page == $i)? ' class="active"' : '';
  103. ?>
  104. <li<?php echo $link_active; ?>><a href="index.php?page=<?php echo $i; ?>"><?php echo $i; ?></a></li>
  105. <?php
  106. }
  107. ?>
  108. <!-- LINK NEXT AND LAST -->
  109. <?php
  110. // Jika page sama dengan jumlah page, maka disable link NEXT nya
  111. // Artinya page tersebut adalah page terakhir
  112. if($page == $jumlah_page){ // Jika page terakhir
  113. ?>
  114. <li class="disabled"><a href="#">&raquo;</a></li>
  115. <li class="disabled"><a href="#">Last</a></li>
  116. <?php
  117. }else{ // Jika Bukan page terakhir
  118. $link_next = ($page < $jumlah_page)? $page + 1 : $jumlah_page;
  119. ?>
  120. <li><a href="index.php?page=<?php echo $link_next; ?>">&raquo;</a></li>
  121. <li><a href="index.php?page=<?php echo $jumlah_page; ?>">Last</a></li>
  122. <?php
  123. }
  124. ?>
  125. </ul>
  126. </div>
  127. </body>
  128. </html>
Penjelasan tambahan dari skrip diatas :
include “koneksi.php”;Kode tersebut berfungsi untuk me-load file koneksi.php.
$sql = $pdo->prepare(“SELECT * FROM siswa LIMIT “.$limit_start.”,”.$limit);
$sql->execute();Untuk menampilkan semua data siswa sesuai limit yang kita telah tentukan ($limit_start, $limit).
$data = $sql->fetch()Kode tersebut berfungsi untuk mengambil semua data hasil query dan menampung data-data tersebut di dalam sebuah array lalu menyimpannya ke dalam variabel $data. Kode tersebut saya simpan di dalam sebuah kode while(….) yang berfungsi untuk melakukan proses perulangan sampai data terkahir dengan tujuan agar kita bisa menampilkan datanya satu per satu.
  1. <tr>
  2. <td class="align-middle text-center"><?php echo $no; ?></td>
  3. <td class="align-middle"><?php echo $data['nis']; ?></td>
  4. <td class="align-middle"><?php echo $data['nama']; ?></td>
  5. <td class="align-middle"><?php echo $data['jenis_kelamin']; ?></td>
  6. <td class="align-middle"><?php echo $data['telp']; ?></td>
  7. <td class="align-middle"><?php echo $data['alamat']; ?></td>
  8. </tr>
Pada kode diatas terdapat variabel $data digunakan untuk mengambil isi dari field-field yang ada pada tabel siswa di database mynotescode. Pada kode diatas juga ada kode yang berada pada tanda [‘……’], kode tersebut harus sama dengan nama field yang ada pada tabel siswa.
$jumlah_page = ceil($get_jumlah[‘jumlah’] / $limit);Untuk menghitung jumlah halaman. Perhitungan ini diambil berdasarkan jumlah_semua_data dibagi dengan limit_per_halaman yang telah ditentukan.
$jumlah_number = 3;Untuk menentukan jumlah link number sebelum dan sesudah page yang aktif. Bingung? lihat gambar dibawah ini :
Penjelasan - Cara Mudah Membuat Pagination dengan PHP
Pada gambar diatas, yang saya beri garis warna merah. itu lah yang saya maksud dengan “Link Number sebelum dan sesudah” page yang aktif.
Mungkin sekian penjelasan tambahannya, selebihnya sudah saya jelaskan per masing-masing kode.

Sekian untuk catatan kali ini. Semoga catatan ini bisa bermanfaat. Apabila ada yang ingin ditanyakan, langsung tanyakan saja lewat form komentar dibawah ini. Jangan lupa LIKE & SHARE nya hehe. Terimakasih.

SOURCE CODE
Untuk mengunduh source code nya, klik salah satu link dibawah ini
– Download versi PDO : Link download yang sesuai tutorial ini yakni menggunakan fungsi PDO untuk query ke databasenya
– Download versi MySQLi : Link download untuk Anda yang ingin source code versi MySQLi dari tutorial ini
Bingung cara downloadnya? klik disini untuk melihat caranya.

SUMBER & REFERENSIDokumentasi Style Pagination  : http://getbootstrap.com/components/#pagination
Tutorial membuat pagination dengan PHP, Tutorial membuat pagging dengan PHP, Cara Mudah Membuat paging dengan PHP, Tutorial step by step membuat pagination dengan PHP, Tutorial step by step membuat paging dengan PHP, Source code pagination dengan PHP

Pagination

(Total : 27,547 viewers, 14 viewers today)

Komentar

Postingan populer dari blog ini

Login, Session, dan Logout

Cara Membuat File Setup / Installer Aplikasi Sendiri dengan Inno Setup Compiler