Paging juga dikenal dengan sebutan pagination ( paginate ), previous-next, tampilan per halaman, page navigator, halaman 1..2..3, dst. Apapun namanya, intinya paging merupakan suatu teknik data yang akan ditampilkan dalam suatu halaman web. Biasanya paging digunakan untuk menampilkan data yang banyak dan ...

Membuat Paging dengan PHP

Paging  juga dikenal dengan sebutan pagination ( paginate ), previous-next, tampilan per halaman, page navigator, halaman 1..2..3, dst. Apapun namanya, intinya paging merupakan suatu teknik data yang akan ditampilkan dalam suatu halaman web.

Biasanya paging digunakan untuk menampilkan data yang banyak dan hampir disetiap aplikasi web si paging selalu ada. Oleh karena itu, paging merupakan kurikulum wajib dalam menampilkan data.

1. Tiga langkah mudah  Menerapkan Paging

Ya, anda tidak salah baca dengan judul, karena hanya diperlukan tiga langkah saja untuk menerapkan paging pada suatu skrip yang belum ada pagingnya. Berikut jabaran dari langkah-langkahnya :

  1. Tentukan limit/batas, lalu cek pada halaman dan posisi berapa pada saat skrip itu dijalankan
  2. Seusaikan QUERY ( SQL ) dengan limit (batas ) dan posisi.
  3. Hitung total data dan halaman serta tampilan link  untuk navigasi halaman.

Ok....kita langsung saja praktek, ini skripnya

<?php
// membuat koneksi dengan database
$con = mysqli_connect("localhost","root","","blogspot");

// Langkah 1. Tentukan batas, cek halaman dan 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
$paging = mysqli_query($con,"select * from paging limit $posisi,$batas");

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

$no = 1+$posisi;
while($r=mysqli_fetch_array($paging)){
	echo"<tr>
	<td>$no</td>
	<td>$r[nama]</td>
	<td>$r[alamat]</td>
	</tr>";
	$no++;
}
echo"</table>";

// Langkah 3 : Hitung Total data dan halaman serta link 1,2,3..
$paging2 = mysqli_query($con,"select * from paging");
$jmldata = mysqli_num_rows($paging2);
$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>";
?>

2. Logika skrip :

  1.   Saat skrip pertama kali dijalankan , maka akan dicek terlebih dahulu apakah $halaman kosong ( empty ).
  2.   Apabila halaman masih kosong, maka di set $halaman = 1 dan $posisi = 0. Sedangkan apabila 4halaman tidak kosong, maka berlaku rumus untuk menentukan  nilai posisi, yaitu : $posisi = ( $halaman - 1 ) * $batas. Misal berada di halaman 3, maka posisi = ( 3-1)*5 =10, jadi nilai $posisi = 10.
  3.   Pada langka 3 ada skrip ceil( $jmldata/$batas). Fungsi ceil berguna untuk menghasilkan  bilangan bulat, dimana apabila hasilnyapecahan, maka akan dibulatkan keatas( tidak perdulli pecahan diatas koma atau dibawah koma ). Misalnya $jmldata =36 dibagi $batas = 5, hasilnya 7,1. Dengan fungsi ceil(36/5) hasilnya 8, maka ada 8 halaman

sumber : www.sks122.blogspot.com


About Author

Roziqin Widodo

Saat ini saya masih aktif sebagai mahasiswa diperguruan tinggi semarang, aku orangnya humoris, baik hati, dan tidak sombong untuk tutorial lebih lengkap kunjungi blog saya di www.sks122.blogspot.com


Comment & Discussions

  • Arshad Sidiq
    mas mau nanya untuk kode pagingnya disisipin dimana biar hasilnya tidak panjang kebawah (datanya lebih dari 100)


    <?php
    $query = "SELECT [NoSuratJalan],[NoPEB],convert(varchar(10), [TglSuratJalan], 111) as [TglSuratJalan],[NoTrucking],[NoInvoice] FROM [Final].[dbo].[PEBH]";
    $result = $VinDB->query($query);
    if ($VinDB->num_rows($result) != 0)
    {
    while ($lineOption = $VinDB->fetch_array($result))
    {
    echo "<tr>";
    echo "<td align='center'><a href='#' onclick='loadData(\"".$lineOption["NoPEB"]."\");'>".$lineOption["NoPEB"]."</a></td>";
    echo "<td align='center'>".$lineOption["NoSuratJalan"]."</td>";
    echo "<td align='center'>".$lineOption["TglSuratJalan"]."</td>";
    echo "<td align='center'>".$lineOption["NoTrucking"]."</td>";
    echo "<td align='center'>".$lineOption["NoInvoice"]."</td>";
    }
    }
    ?>

  • Roziqin Widodo
    sory gan, jarang aktif disini
    kunjungi aja ini http://sks122.blogspot.com/2015/11/membuat-paging-dengan-php-ala-google.html

  • Please LOGIN before if you want to give the comment.