Paging adalah teknik saat menampilkan data kedalam halaman halaman yang berbeda. Teknik ini digunakan jika data yang ada sangat banyak sehingga tidak mungkin tampil dalam satu halaman. Alasan yang lain, dengan paging, loading halaman lebih cepat karena php hanya meminta sebagian data saja. Contoh paging yang anda pakai tiap hari(namun jarang diperhatikan) adalah hasil pencarian Google.

Untuk memberikan gambaran yang lebih real tentang paging, kita akan membahas teknik paging dengan cara yang mudah dan sederhana. Dalam tutorial kali ini, saya akan menampilkan data negara didunia. Data SQL saya ambil dari http://27.org/isocountrylist/.

Langkah utama membuat paging halaman di PHP adalah sebagai berikut:
1. Membuat script koneksi
2. Menentukan total data yang akan ditampilkan pada tiap halaman dan menentukan posisi halaman
3. Membuat skrip SQL sesuai dengan posisi halaman yang diminta dan menampilkannya
4. Menampilkan nomor paging di bagian bawah tabel.

1. Membuat script Koneksi

<?php
	
	define('db_host','localhost');
	define('db_user','root'); //usename mysql
	define('db_pass',''); //password mysql jika ada
       //nama database dinama tabel country berada
	define('db_name','candralabdb');

	mysql_connect(db_host,db_user,db_pass);
	mysql_select_db(db_name);
	
?>

2. Menentukan total data yang akan ditampilkan pada tiap halaman dan menentukan posisi halaman
Script selanjutnya dari langkah 2 sampai langkah empat ada disatu file dengan nama country.php


//2). Menentukan total data yang akan 
//=== ditampilkan pada tiap halaman dan menentukan posisi halaman

//variabel dan kode awal untuk menentukan posisi halaman saat ini
//dipakai untuk melimit quiery
	$batas=10; //satu halaman menampilkan 10 baris
$halaman=$_GET['halaman'];
$posisi=null;
if(empty($halaman)){
	$posisi=0;
	$halaman=1;
}else{
	$posisi=($halaman-1)* $batas;
}

//3). melakukan query dan menampilkan data
//query data menggunakan limit $posisi dan batas
$query="select * from country limit $posisi,$batas ";

$result=mysql_query($query) or die(mysql_error());
$no=1;

while($rows=mysql_fetch_object($result)){
?>

			<tr>
				<td><?php echo $posisi+$no
				?></td>
				<td><?php	echo $rows -> iso;?></td>
				<td><?php	echo $rows -> name;?></td>
				<td><?php	echo $rows -> printable_name;?></td>
			</tr>
			<?php		$no++;
			}?>
		</table>
		<br>
		<?php		
		
// 4). code untuk Menampilkan nomor paging di bagian bawah tabel.
			$sql_paging = mysql_query("select iso  from country");
			$jmldata = mysql_num_rows($sql_paging);
			$jumlah_halaman = ceil($jmldata / $batas);

			echo "Halaman :";
			for($i = 1; $i <= $jumlah_halaman; $i++)
				if($i != $halaman) {
					echo "<a href=country.php?halaman=$i>$i</a>|";
				} else {
					echo "<b>$i</b>|";
				}
			mysql_close();?>
		<br>
		Jumlah data :<?php echo $jmldata;?>

Hasil dari program diatas akan tampak seperti gambar dibawah ini

hasil Tampilan Paging menggunakan PHP

Jika anda tertarik mencoba, lihat demonya disini atau silahkan download kodenya disini

Categories: PHP

Candra Adi Putra

Candra Adi Putra S.Kom adalah Alumni STMIK AKAKOM Yogyakarta. hubungi saya di candraadiputra (at) gmail (dot) com

22 Comments

Irfan · 13 August , 2016 at 9:34 pm

Min kenapa punya saya kalo di klik ke halaman lainnya di pagination ini selalu muncul halaman home?

kak dolop · 20 March , 2016 at 12:53 pm

mas kalau mau membatasi nmor pagingny gimana ya?

aliciafree · 20 September , 2015 at 7:30 pm

Om, mau tanya cara membatasi nomor yang dibawah bagaimana?
contohnya ane mau buat seperti ini :
[1][2][3][4][5]…[10.][101][101][102]

anggun · 17 September , 2015 at 3:46 pm

it’s work..thanks :)

tri budi · 27 August , 2015 at 12:25 pm

matur suwun mas..

lsaputra · 2 February , 2015 at 5:32 pm

gan,

masih ada error ini :
Notice: Undefined index: halaman in C:\xampp\htdocs\pagingphpmysql\country.php on line 16

mohon pencerahannya

    Candra Adi Putra · 3 February , 2015 at 7:14 pm

    tambahkan baris error_reporting(0); di baris kedua file index.php

Agus M. S · 31 October , 2014 at 4:13 pm

Mas Chandra,

Bila page nya kenapa kalau di klik halaman selanjutnya tidak mau tampil datanya

giripranata · 28 October , 2014 at 7:43 pm

terimakasih mas,, saya barusan download,, mau saya pelajari

Anonymous · 4 August , 2014 at 4:31 pm

klo pake prev dan next gimana gan?

Anonymous · 4 August , 2014 at 2:31 pm

kurang di atas

ienjoy · 11 June , 2014 at 12:59 am

pak, demo-nya kok ga diedit di mysql_connect(); jadi error tuh.. :D

    Candra Adi Putra · 23 June , 2014 at 9:50 pm

    iya..kemarin pindahan server, sebagian scriptnya tidak terupdate

jumadi madi · 18 March , 2014 at 1:52 pm

Mantap gan Tutorial pagingnya…

Sukses Full….

Medi · 14 February , 2014 at 4:45 pm

Bagus gan,
Kalau mau buat backgorund nomor halamanya gimana gan?

Alief Alghifari · 26 December , 2013 at 6:03 pm

bang candra, pas di country.php ada Notice: Undefined index: halaman in C:\xampp\htdocs\pagingphpmysql\country.php on line 16, mohon bantuannya bang…

Adam · 26 June , 2013 at 10:52 am

ada tipsnya supaya yg muncul seperti ini?

1 …5 6 7 8 9 … 15

    ienjoy · 11 June , 2014 at 12:56 am

    pakai if else mungkin bisa

Ngrambe Ngawi Jawa Timur · 10 June , 2013 at 9:04 pm

MAbtap gan.. langsung di unduh untuk dicoba.. kalo ada eror saya akan kembali kesini :mrgreen:

    Candra Adi Putra · 11 June , 2013 at 1:52 pm

    silahkan, semoga sukses

Candra Adi Putra · 24 March , 2013 at 10:46 am

oh iya, udah aq benerin kodenya, itu cuman ganti baris
echo $no
menjadi echo $posisi+$no;

netter · 24 March , 2013 at 10:24 am

itu nomor dihalaman 2 dan selanjutnya kok sama ya? 1 – 10 terus.. :P
oiya klu halaman pagingnya jadi ky gini gimana gan kodingnya

<>

Comments are closed.