Tutorial Membuat Pagination dengan PHP dan MySQLi (Source Code)

print this page Print this page
Tutorial Membuat Pagination dengan PHP dan MySQLi-Paging atau dikenal juga dengan sebutan pagination (paginate), previous-next, page navigator, halaman 1..2..3,dst. Apapun namanya, intinya paging adalah suatu teknik untuk membatasi data yang akan ditampilkan dalam suatu halaman website.
Umunya Paging digunakan untuk menampilkan data yang banyak dan hampir selalu muncul di aplikasi website. Oleh karena itu paging wajib di implementasikan dalam suatu website agar memudahkan user atau viewer memperoleh suatu informasi.
Contoh dari paging sendiri misalnya pada home suatu blog, dalam home suatu blog biasanya terdapat 5-10 artikel yang di tampilkan, bukan berarti memang blog tersebut hanya mempunyai 5-10 halaman, tapi blog tersebut menggunakan teknik pagination, gunanya agar user atau visitor tidak berat saat membuka blog tersebut, bayangkan saja jika blog tersebut mempunyau 500 artikel, maka akan sangat berat jika semua artikel di load secara bersamaan.


gambar di atas menunjukan script yang belum memakai teknik paging, itu hanya 18 data bagaimana jika ada 500 data atau lebih , menurut saya membuat kurang nyaman dan efektif, isn't?

ada beberapa langkah untuk menerapkan paging
  1. Tentukan limit/batas, lalu cek pada posisi dan halaman berapa saat script dijalankan.
  2. Sesuaikan Query (SQL) dengan limit (batas) dan posisi.
  3. Hitung total data dan halaman serta tampilkan link untuk navigasi halaman.
untuk menerapkannya akan saya coba pada script paging
script paging.php

<html>
<title>Data Paging</title>
<link href="style.css" rel="stylesheet" type="text/css">
<body>

<?php
$konek = mysqli_connect("localhost","root","","paging");

// Langkah 1. Tentukan batas,cek halaman & posisi data
$batas   = 5;
$halaman = @$_GET['halaman'];
if(empty($halaman)){
$posisi  = 0;
$halaman = 1;
}
else{ 
  $posisi  = ($halaman-1) * $batas; 
}

// Langkah 2. Sesuaikan query dengan posisi dan batas
$query  = "SELECT * FROM anggota LIMIT $posisi,$batas";
$tampil = mysqli_query($konek, $query);

echo "<table>
      <tr><th>No</th><th>Nama</th><th>Alamat</th></tr>";

$no = $posisi+1;
while ($data=mysqli_fetch_array($tampil)){
  echo "<tr>
          <td>$no</td>
          <td>$data[nama]</td>
          <td>$data[alamat]</td>
        </tr>";
  $no++;

echo "</table>";
// Langkah 3: Hitung total data dan halaman serta link 1,2,3 
$query2     = mysqli_query($konek, "select * from anggota");
$jmldata    = mysqli_num_rows($query2);
$jmlhalaman = ceil($jmldata/$batas);

echo "<br> Halaman : ";

for($i=1;$i<=$jmlhalaman;$i++)
if ($i != $halaman){
echo " <a href=\"paging.php?halaman=$i\">$i</a> | ";
}
else{ 
echo " <b>$i</b> | "; 
}
echo "<p>Total anggota : <b>$jmldata</b> orang</p>";
?>
</body>
</html>

buat juga script CSSnya untuk mempercantik tampilan dari tablenya

script style.css

table { border-collapse: collapse; }
th {
  background-color: #2e6ab1;
  padding-left: 14px;
  padding-right: 8px;
  border: 1px solid #cccccc;
  text-align:left;
  color:#ffffff;
}
td {
  font-size: 11pt; 
  background-color: #F0F0F0;
  padding-left: 8px;
  padding-right: 8px;
  padding-top: 5px;
  padding-bottom: 5px;
  border: 1px solid #cccccc;
}
input,select { font-size: 10pt; }

setelah dijalankan maka hasilnya seperti ini:


Hmm bagaimana saya rasa tidak teralu susah kan?
ok semoga dapat bermanfaat

Download

Share on Google Plus

About kodekidi

KodeKidi.com Situs Tutorial Pemograman Berbahasa Indonesia
    Blogger Comment
    Facebook Comment

10 comments:

  1. Wahh,, berhasil!
    Trima kasih gan sangat bermanfaat ^_^

    ReplyDelete
  2. sangat membantu, terima kasih ..

    ReplyDelete
  3. mantap tutornya simple tapi work keren gan, ditunggu tutorial selanjutnya

    ReplyDelete
  4. Terima kasih, sangat memmbantu .... :D

    ReplyDelete
  5. misal kita punya 500 data menampilkan 5 data dalam 1 halaman, paggingnya berarti 100 ?
    kalo mau kasi batasnya gimana iya

    ReplyDelete
  6. MANTAP GAN.
    3 HARI INI GUE BEGADANGIN BUAT PAGINATION DATA INNER JOIN GUE.
    SETELAH KETEMU BLOG INI, JADI BISA.
    ITS WORK. SEMOGA TAMBAH SUKSES GAN.
    :)

    ReplyDelete
  7. Terimakasih Gan semoga sehat selalu sukses

    ReplyDelete