Belajar PHP MySQLi #7 : Membuat Halaman/Pagging Sederhana pada PHP

Posted on

Belajar PHP MySQLi Membuat Pagging Halaman dengan PHP,  Pada sesi belajar PHP kali ini kita akan membahas bagaimana cara membuat pagging halaman sederhana dengan PHP yang tentunya pagging ini sangat berguna jika kita memiliki data yang banyak, sehingga aplikasi tidak terlalu berat untuk menampilkannya sekaligus.

Saya sarankan silahkan baca dan ikuti sesi belajar PHP sebelumnya, karena sesi ini merupakan sesi lanjutan dari tutorial dibawah ini:

  1. Mempersiapkan Local Server XAMPP, MAMP, LAMP,
  2. Membuat Database, Koneksi ke Database MySQLi dan MySQL
  3. Menampilkan Data & Detail Data dari Database pada Tabel Cara Menambahkan (Insert) Data Ke Database.
  4. Update Data dalam Database dengan PHP
  5. Hapus/Delete Data pada Database dengan PHP
Selanjutnya pada tahap ini, kita akan melakukan perubahan data pada file index.php, akan ada beberapa baris code yang ditambahkan kedalamnya. Untuk itu silahkan perhatikan dan ikuti tutorial ini sampai baris terakhir.

Membuat Pagging Halaman PHP

Silahkan tambahkan script PHP berikut ini pada file index.php yang berfungsi untuk membuat Pagging sederhana pada Halaman PHP,

      // cek apakah nilai halaman ada atau tidak
if (isset($_GET['hal'])) {
// jika ada, ambil nilai halaman
$halaman = $_GET['hal'];
} else {
// jika tidak, set nilai halaman jadi 1
$halaman = 1;
}
// total data per halaman
$perHalaman = 5;
// cek apakah jumlah halaman lebih besar dari 1
if ($halaman > 1) {
// jika iya, maka set nilai awal halaman
$start = ($halaman * $perHalaman) - $perHalaman;
} else {
// jika tidak set nilai awal dengan 0
$start = 0;
}
// hitung total baris data dari database
$totalRow = mysqli_num_rows($biodata);
// set nilai total halaman dari baris database
$TotalHalaman = ceil($totalRow/$perHalaman);
// ambil data dibatasi sesuai halaman awal dan jumlah per halaman
$sqlHal = mysqli_query($conn,"SELECT * FROM tbl_biodata ORDER BY id DESC LIMIT $start, $perHalaman");
// variable nomor urut
$nomor = $start+1;

Dan untuk menampilkan link urutan halaman, tambahkan code php berikut dibawah table biodata pada file yang sama index.php

      // buat link untuk menampilkan halaman
for ($i=1; $i <= $TotalHalaman ; $i++) {
$strTbl .= "<a href='?hal=".$i."'>$i</a>";
}

Sehingga, full source code untuk file index.php kita setelah diupdate dan ditambahkan fungsi pagging menjadi seperti dibawah ini

index.php

<?php
// defenisikan koneksi
require('koneksi.php');
?>
<!DOCTYPE html>
<html lang="id" dir="ltr">
<head>
<title>kodeajaib[dot]com</title>
</head>
<body>
<h2>Selamat Datang di KodeAjaib.com</h2>
<h3>Tabel Biodata</h3>
<p><a href="tambah.php">Tambah Bioadata</a></p>
<?php
// query SQL menampilkan data dari table tbl_biodata
$sql = "SELECT * FROM tbl_biodata ORDER BY id DESC";
// tampung data (dalam array) kedalam variable $biodata
$biodata = mysqli_query($conn, $sql);

// cek apakah nilai halaman ada atau tidak
if (isset($_GET['hal'])) {
// jika ada, ambil nilai halaman
$halaman = $_GET['hal'];
} else {
// jika tidak, set nilai halaman jadi 1
$halaman = 1;
}
// total data per halaman
$perHalaman = 5;
// cek apakah jumlah halaman lebih besar dari 1
if ($halaman > 1) {
// jika iya, maka set nilai awal halaman
$start = ($halaman * $perHalaman) - $perHalaman;
} else {
// jika tidak set nilai awal dengan 0
$start = 0;
}
// hitung total baris data dari database
$totalRow = mysqli_num_rows($biodata);
// set nilai total halaman dari baris database
$TotalHalaman = ceil($totalRow/$perHalaman);
// ambil data dibatasi sesuai halaman awal dan jumlah per halaman
$sqlHal = mysqli_query($conn,"SELECT * FROM tbl_biodata ORDER BY id DESC LIMIT $start, $perHalaman");
// variable nomor urut
$nomor = $start+1;

// variable untuk membuat tabel HTML
$strTbl = "";
$strTbl .= "<table border='1'>";
$strTbl .= "<tr>";
$strTbl .= "<th>No</th>";
$strTbl .= "<th>Nama</th>";
$strTbl .= "<th>Alamat</th>";
$strTbl .= "<th>Aksi</th>";
$strTbl .= "</tr>";

// cek apakah $biodata nilai kosong atau tidak
if (mysqli_num_rows($sqlHal) > 0) {
// jika ada looping untuk membaca seluruh data
// dan tampilkan kedalam tabel
while ($data = mysqli_fetch_assoc($sqlHal)) {
// tampilkan data kedalam table
$strTbl .= "<tr>";
$strTbl .= "<td>". $nomor."</td>";
$strTbl .= "<td>". $data['nama_depan'] ." ".$data['nama_belakang'] ."</td>";
$strTbl .= "<td>". $data['alamat'] ."</td>";
$strTbl .= "<td><a href='detail.php?id=".$data['id']."'>Lihat Detail</a>
<a href='update.php?id=".$data['id']."'>Edit</a>
<a href='javascript:hapusData(".$data['id'].")'>Hapus Data</a>
</td>";
$strTbl .= "</tr>";
$nomor++;
}
} else {
// jika data kosong, tampilkan pesan didalam tabel
$strTbl .="<tr><td colspan='4'>Ooouppsss... Maaf, data masih kosong, tambahkan data dari Database terlebih dahulu</td></tr>";
}
$strTbl .= "</table>";
// buat link untuk menampilkan halaman
for ($i=1; $i <= $TotalHalaman ; $i++) {
$strTbl .= "<a href='?hal=".$i."'>$i</a>";
}
// tampilkan tabel dan pagging pada halaman
print($strTbl);
?>
<p>Copyright @ Localhost</p>
<!-- // script konfirmasi hapus data -->
<script language="JavaScript" type="text/javascript">
function hapusData(id){
if (confirm("Apakah anda yakin akan menghapus data ini?")){
window.location.href = 'hapus.php?id=' + id;
}
}
</script>
</body>
</html>

Jika semuanya sudah selesai, silahkan akses kembali project anda pada alamat http://localhost/todo/index.php. Maka anda akan melihat pagging lengkap dengan link yang menuju halaman-halaman lainnya jika data lebih besar dari 5.

Sesi belajar PHP dan Database MySQLi ini akan terus di Update, jangan sampai ketinggalan dengan cara berlangganan melalui Email dan Follow juga sosial media kode ajaib.

See you next lessons and happy coding ….

Leave a Reply

Your email address will not be published. Required fields are marked *