Tutorial Membuat Pagination di PHP dan MySQLi

Tutorial Membuat Pagination di PHP dan MySQLi – Halo sobat, pada kesempatan kali ini saya akan berbagi tutorial tentang cara membuat pagination di PHP dan MYSQLi. Dimana, teknik ini biasa digunakan untuk memecah data dalam jumlah banyak ke dalam beberapa halaman.

Lalu, apa sebenarnya teknik paging atau pagination di PHP yang akan kita bahas pada tutorial kali ini? Berikut ulasannya.

Apa itu pagination di PHP?

Paging atau juga dikenal dengan pagination merupakan sebuah teknik yang digunakan untuk membagi atau memecah data dalam jumlah banyak ke dalam beberapa halaman. Hal ini bertujuan agar pengguna tidak terbebani dengan banyaknya jumlah data dalam satu halaman.

Bayangkan saja apabila kita memiliki data sebesar 100 data dalam satu halaman, maka tentu saja hal ini akan membebani pengguna dan aplikasi buatan kita sendiri. Lebih efektif jika data tersebut dipecah ke dalam beberapa halaman seperti 100 data setiap 1 halaman dan seterusnya.

Persiapan Bahan

Sebelum melanjutkan ke tutorial cara membuat pagination di PHP dan MySQLi, terlebih dahulu kita menyiapkan beberapa file yang akan kita gunakan sepanjang tutorial ini sebagai berikut.

  • connect.php digunakan untuk berkomunikasi dengan database MySQLi.
  • index.php digunakan untuk menampilkan data pagination.
  • pagination.php digunakan untuk membuat function pagination.

Agar lebih memudahkan Anda dalam tutorial kali ini, saya telah menyiapkan file SQL yang siap Anda import ke dalam phpMyAdmin. File SQL tersebut dapat diunduh di sini secara gratis. Pastikan sebelum import, buatlah terlebih dahulu database kampus.

Membuat Pagination di PHP dan MySQLi

Apabila semua bahan tutorial membuat pagination di PHP dan MySQLi sudah siap, maka selanjutnya silahkan simak langkah-langkah pembuatannya berikut ini.

Step #1: Membuat Koneksi Database

Pada langkah pertama ini, silahkan copy dan pastekan kode berikut ke dalam file connect.php yang telah dibuat sebelumnya lalu save.

<?php
ini_set('display_errors', 0);

$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db_name = 'kampus';

$connect = new mysqli($db_host, $db_user, $db_pass, $db_name);
if($connect->errno) {
  echo $connect->error;
  exit;
}

$page   = isset($_GET['page']) ? intval($_GET['page']) : 1;
$limit  = ($page - 1) * 10;
?>

Pastikan agar detail database yang telah dibuat agar dimasukkan ke dalam bagian baris ke-4 hingga baris ke-7. Khusus pada baris ke-15 dan baris ke-16 tidak perlu Anda ubah dan biarkan agar tetap bernilai default.

Step #2: Membuat Function Pagination

Agar pagination dapat berfungsi, saya telah menyiapkan sebuah function yang akan digunakan untuk memecah data ke dalam beberapa halaman. Silahkan copy dan pastekan kode berikut ke dalam file pagination.php yang telah dibuat sebelumnya lalu save.

<?php
function paging($all, $page, $num, $url) {
  $total = ceil($all / $num);

  if($page != 1) {
		$pervpage = ' <a href= "'.$url.'page='.($page - 1).'">&#171; </a>';
	} else {
		$pervpage = '&#171; ';
	}

  if($page != $total) {
		$nextpage = ' <a href="'.$url.'page='.($page + 1).'"> &#187;</a>';
	} else {
		$nextpage = ' &#187;';
	}

  if($page - 4 > 0) {
		$first = '<a href="'.$url.'page=1">1</a>...';
	}
	
	if($page + 4 <= $total) {
		$last = '...<a href="'.$url.'page='.$total.'">'.$total.'</a>';
	}
	
	if($page - 2 > 0) {
		$page2left = ' <a href= "'.$url.'page='.($page - 2).'">'.($page - 2).'</a> ';
	}
	
	if($page - 1 > 0) {
		$page1left = '<a href= "'.$url.'page='.($page - 1).'">'.($page - 1).'</a> ';
	}
		
	if($page + 2 <= $total) {
		$page2right = ' <a href= "'.$url.'page='.($page + 2).'">'.($page + 2).'</a>';
	}
	
	if($page + 1 <= $total) {
		$page1right = ' <a href="'.$url.'page='.($page + 1).'">'.($page + 1).'</a>';
	}

  return $pervpage.$first.$page2left.$page1left.'['.$page.']'.$page1right.$page2right.$last.$nextpage;
}
?>

Pada kode function pagination() terdapat 4 parameter yang wajib digunakan. Dimana parameter $all, harus diisi dengan jumlah total data sedangkan parameter $page diisi dengan jumlah halaman aktif yang sedang berjalan.

Kemudian parameter $num, harus diisi dengan jumlah data yang dibagi per halaman dan parameter terakhir $url digunakan untuk menampilkan url yang sedang aktif seperti /?page=1 dan seterusnya.

Step #3: Menampilkan Data

Pada langkah terakhir, kita akan menampilkan data yang telah Anda unduh dan import ke phpMyAdmin dengan cara copy dan pastekan kode berikut lalu masukkan ke dalam file index.php yang telah dibuat sebelumnya.

<?php
require_once 'connect.php';
require_once 'pagination.php';

$q = $connect->query('SELECT * FROM mahasiswa ORDER BY `id` DESC LIMIT '.$limit.', 10');
if($q->num_rows > 0) {
  $all = $connect->query('SELECT * FROM mahasiswa')->num_rows;
  $i   = 1;

  foreach($q as $data) {
    echo $i.'. '.$data['nama'].' (<b>'.$data['nim'].'</b>)<br/>';
    $i++;
  }

  echo '<br/>';
  echo paging($all, $page, 10, '/?');
} else {
  echo 'Tidak ada data!';
}
?>

Dalam tutorial ini, kita mencoba untuk menampilkan data sebanyak 30 data mahasiswa yang dibagi ke dalam 3 halaman. Dimana, setiap halaman terdiri dari 10 data mahasiswa. Jika berhasil, maka akan tampil seperti gambar berikut.

Tutorial Membuat Pagination di PHP dan MySQLi

Penutup

Teknik pagination atau paging ini sangat berguna untuk menampilkan data yang jumlahnya besar ke dalam beberapa halaman. Meskipun bisa memakai library pihak ketiga, tidak ada salahnya untuk membuat pagination di PHP secara manual.

Demikian artikel pada kesempatan kali ini mengenai cara membuat pagination di PHP dan MySQLi dengan mudah, selamat mencoba dan semoga bermanfaat.

Bagikan Ke

Leave a Reply

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *