Membuat Paging dengan PHP ala GOOGLE, Apabila kita mempunyai data yang sangat banyak misalnya ribuan bahkan jutaan seperti hasil pencarian di google, maka pagingnya tentu sangat banyak yang akan ditampilkan dalam beberapa baris. Tentu paging seperti gambar diatas kurang efektif dan cukup mengganggu tampilan, untuk mengatasi hal tersebut, kita ...

Membuat Paging Ala Google

Apabila kita mempunyai data yang sangat banyak misalnya ribuan bahkan jutaan seperti hasil pencarian di google, maka pagingnya tentu sangat banyak yang akan ditampilkan dalam beberapa baris.

Tentu paging seperti gambar diatas kurang efektif dan cukup mengganggu tampilan, untuk mengatasi hal tersebut, kita hanaya akan menampilkan tiga angka apabila berada dihalaman pertama, halaman kedua dan halaman terakhir, seperti contohnya  1 2 3 ... 8  dan lima paging untuk halaman lainnya ( dua halaman angka sebelum dan sesudah halaman aktif), misalnya halaman aktif adalah halaman 3, maka pagingnya 1 2 3 4 5 ... 8.jadi yang diubah hanya pada bagian menampilkan halaman angka saja.

oh iya, untuk artikel kali ini saya pakai OOP yang akan kita bungkus menjadi class (function) dalam sebuah file tersendiri, sehingga apabila kita memerlukan paging, kita tinggal include saja filenya tanpa harus menulis ulang dalam setiap file tampil data yang memerlukan paging

1. yang pertama kita akan membuat class paging yang berisi fungsi fungsi untuk mengelola paging

<?php
class Paging{
	function cariPosisi($batas){
		$halaman = @$_GET['halaman'];
		if(empty($halaman)){
			$position = 0;
			$halaman = 1;
		}else{
			$position = ($halaman - 1) * $batas;
		}
		return $position;
	}
	
	function jmlHalaman($jmlData,$batas){
		$jmlHal = ceil($jmlData/$batas);
		return $jmlHal;
	}
	
	Function linkHal($halamanAktif,$jumlahHalaman){
		$link_halaman = "";
		$file = $_SERVER['PHP_SELF'];
		
		// Link First dan Previous
		$prev = $halamanAktif-1;
		if($halamanAktif < 2){
			$link_halaman .= "First &nbsp; Prev  ";
		}else{
			$link_halaman .= "<a href='$file?halaman=1'>FIRST</a> &nbsp; <a href='$file?halaman=$prev'>PREV</a> &nbsp; ";
		}
		
		// link halaman 1,2,3,...
		// Angka awal
		$angka = ($halamanAktif > 3 ? "... &nbsp; " : " ");
		for($i=$halamanAktif-2;$i<$halamanAktif;$i++){
			if ($i < 1 )continue;
			$angka .= "<a href='$file?halaman=$i'>$i</a> &nbsp; ";
		}
		
		// Angka tengah
		$angka .= "<b>$halamanAktif</b> &nbsp; ";
		for($i=$halamanAktif+1;$i<($halamanAktif+3);$i++){
			if($i > $jumlahHalaman) break;
			$angka .= "<a href='$file?halaman=$i'>$i</a> &nbsp;";
		}
		
		// ANgka Akhir
		$angka .= ($halamanAktif+2<$jumlahHalaman ? " ... &nbsp; <a href='$file?halaman=$jumlahHalaman'>$jumlahHalaman</a> &nbsp;" : "");
		
		$link_halaman .= $angka;
		
		// Link Next dan Last
		if($halamanAktif < $jumlahHalaman){
			$next = $halamanAktif+1;
			$link_halaman .= "<a href='$file?halaman=$next'>Next</a> &nbsp; <a href='$file?halaman=$jumlahHalaman'>Last</a> &nbsp;";
		}else{
			$link_halaman .="Next &nbsp; Last &nbsp;";
		}
		return $link_halaman;
	}
}
?>

2.  untuk tahap yang terakhir, kita membuat view untuk pagingnnya dengan database nya

<?php
$con = mysqli_connect("localhost","root","","dboop");
include"fungsi_paging.php";

$p = new Paging();
$batas = 10;
$posisi = $p->cariPosisi($batas);

$anggota = mysqli_query($con,"select * from anggota order by nama asc limit $posisi, $batas");
$anggota1 = mysqli_query($con,"select * from anggota");
if(mysqli_num_rows($anggota1)){
	echo"<table border=1 cellspacing='0'>";
	echo"<tr bgcolor='3300CC'>
	<th width='20' align='center'>No</th>
	<th width='150' align='center'>Nama</th>
	<th width='150' align='center'>Alamat</th>
	</tr>";
	$no = 1+$posisi;
	while($r=mysqli_fetch_array($anggota)){
		echo"<tr>
		<td align='center'>$no</td>
		<td width='200'>$r[nama]</td>
		<td width='200'>$r[alamat]</td>
		</tr>";
		$no++;
	}
	echo"<table>";
	
	$jumlahData = mysqli_num_rows($anggota1);
	$jml_halaman = $p->jmlHalaman($jumlahData,$batas);
	$link = $p->linkHal(@$_GET['halaman'],$jml_halaman);
	
	echo"<br \>Hal : $link";
	
}

?>

jika kalian mengikuti langkah-langkah diatas, anda pasti akan berhasil. dan untuk tutorial yang lebih lengkap tentang pemrogaramn web dengan menggunakan bahasa pemrograman PHP anda bisa kunjungi di sks122.blogspot.com. semoga artikel yang saya berikan bisa memberi solusi pada temen temen yang sedang belajar membuat paging.

#

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

  • Adi Byte
    gan maaf gan salah masuk saya mungkin ya.. saya mau nanya misalnya saya ada 1 tabel mahasiswa terus fieldnya nim nama dan foto, nah saya mau menyimpan data beberapa gambar untuk satu nim misalnya 001 kemudian fotonya ada 4 sekaligus dimasukkan atau satu2 juga bisa. terus nampilin 4 foto itu gimana ya gan kodingnya ? maaf gan mengganggu terima kasih.

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