Tutorial PHP : Membatasai Jumlah Pagination yang Ditampilkan

Membatasi jumlah pagination halaman php

Dalam kondisi tertentu mungkin kita akan sering menggunakan atau menerapkan teknik pagination untuk membagi konten menjadi beberapa bagian/halaman. Pembagian dan penomoran halaman dilakukan dengan cara sederhana dengan melakukan perulangan sesuai jumlah halaman yang ingin dibagi.

Jadi saya tidak akan membahasnya dari awal, saya asumsikan Anda sudah pernah membuat atau menerapkan teknik pagination halaman seperti yang sudah saya jelaskan pada postingan tentang Cara membuat Pagination Dengan PHP.

Permasalahan

JIka menggunakan teknik atau perulangan biasa saat membuat penomoran untuk link ke halaman konten - konten selanjutnya tentu ini akan sedikit terlihat kacau pada website/aplikasi php yang anda buat. Masalahnya ketika jumlah nomor halaman semakin besar nilainya maka nomor halaman semakin panjang.

Contoh Kasus

Misalnya anda punya 500 konten didatabase, kemudian anda bagi 20 pertampil halamannya maka 500/20 = 25 nomor halaman yang akan dihasilkan, jika Anda punya 1000 konten maka akan ada 50 nomor halaman yang ditampilkan, dan ini tentu saja sangat buruk karena terlalu panjang jika harus ditampilkan, oleh karena itu kita perlu mengakalinya dengan cara membatasi jumlah pagination yang ditampilkan

Contoh penyelesaian : 

Untuk menyelesaikan permasalahan ini, kita perlu melompati bilangan atau menambahkan kondisi pencacah pada saat melakukan perulangan. Sehingga perulangan akan dibatasi berdasarkan kondisi tertentu yang kita definisikan didalam perulangan.

Contoh Kode Pagination I


<?php

$total = 500; # jumlah konten yang ada di database
$tampil = 20; # konten yang ditampilkan perhalaman
$get = 6; # rubah ini sesuai jumlah halaman yang dibagi jumpage untuk menemukan perubahan
$jumpage = ceil($total/$tampil); # ini akan menghasilkan 25 
for($page=1; $page<=$jumpage; $page++)
{
	
	if(($page>=$get-2)&&($page<=$get+2))
	{
		echo '<a href="?page='.$page.'">'.$page.'</a>';
	}

	
}

?>




Keterangan :

  • ($page>=$get -2) adalah ketika nilai page(perulangan) misal bernilai 6 maka 6 -2 = 4; maka perulangan akan dimulai dari 4; kondisi pertama ini akan membuat nilai $page lebih kecil dari halaman aktifnya yaitu 6 lalu ketika kondisi lebih kecil terpenuhi maka :
    ($page<=$get+2) adalah 6+2 = 8, sehingga perulangan akan dimulai dari rentang 4,5,6,7,8.
  • Angka 2 merupakan jarak pengurangan dan penambahan antar halaman atau kondisi pencacah untuk menaikan bilangan atau menurunkan bilangan saat perulangan terjadi.
  • Kondisi pencacah pertama ($page>=$get-2) mengurangi
  • Kondisi pencacah kedua ($page<=$get+2) menambah
  • atau Ketika misal halaman aktif $get bernilai 8 maka 8 - 2 = 6; maka perulangan akan dimulai dari 6; selanjutnya kondisi yang sama ketika itu adalah ketika nilainya 8 maka 8+2 = 10; sehingga perulangan akan dimulai dari 6,7,8,9,10

Contoh Kode Pagination II

Pada contoh pertama ada kondisi yang belum terpenuhi yang mungkin hasilnya tidak sesuai dengan gambar diatas, yaitu kondisi nomor halaman pertama dan nomor halaman terakhir yang belum ditampilkan, maka dari itu Anda dapat menampilkannya dengan kondisi seperti berikut :



<?php


$total = 500; # jumlah konten yang ada di database
$tampil = 20; # konten yang ditampilkan perhalaman
$get = 6; # rubah ini sesuai jumlah halaman yang dibagi jumpage untuk menemukan perubahan
$jumpage = ceil($total/$tampil); # ini akan menghasilkan 25 

if(($page>=$get-2)&&($page<=$get+2) || ($page==1) || ($page==$jumpage))
		{
			echo '<a href="?page='.$page.'">'.$page.'</a>';
		}
?>

Keterangan 

Ketika ($page==1) halaman bernilai 1 dan ketika ($page==$jumpage) nilainya sama dengan jumlah halaman / nilai terakhir dari hasil bagi, maka for perlu menampilkan nilai pertama dan nilai terakhir dari perulangan



Related Posts :

2 Responses to "Tutorial PHP : Membatasai Jumlah Pagination yang Ditampilkan"

  1. Kalau pegen nambah title di Meta Titlenya gimana ya?
    Misalnya nih, pagination 1 (Judul Artikel - Page 1)
    Lalu ketika di pagination 2 (Judul Artikel - Page 2)

    ReplyDelete
    Replies
    1. Kalau di php yah tinggal get aja data, atau query ke db,

      Delete

Silahkan untuk meninggalkan komentar, santai saja dan mulailah berkomentar...