Tutorial PHP : #26 Membuat Paging Dengan HTML, PHP dan MySQL

Paging merupakan suatu teknik untuk menampilkan data dalam beberapa halaman yang berbeda, paging digunakan karena dalam menampilkan banyak data dalam halaman tidaklah efektif, hal ini selain dapat membuat load data  dari database semakin besar dan dapat membuat user merasa bosan karena harus scroll halaman yang begitu banyak.

Teknik paging menjadi salah satu solusi yang paling tepat untuk memecahkan masalah ini, karena data yang kita tampilkan dalam beberapa halaman dan jumlah data yang kita tampilkan juga dibatasi, misalkan kita akan menampilkan 10 data dalam setiap halaman paging.

Langkah 1

Pada tahap pertama kita buat dulu databasenya, disini kita menggunakan MySql, pada tutorial kali ini akan membuat database tentang ‘perpustakaan‘.

  • Membuat Database perpustakaan
    create database penjualan;
  • Membuat Tabel tbl_buku
    create table tbl_buku (
       idbuku varchar(20) not null primary key,
       judul varchar(100) not null,
       pengarang varchar(50) not null,
       penerbit varchar(50) not null
    );
  • Insert contoh data ke Tabel tbl_buku
    INSERT INTO tbl_buku(idbuku,judul,pengarang,penerbit) 
    VALUES ('MAT001','Matematika 1','Ahmad Rozak','RPL Production'),
           ('MAT002','Matematika 2','Ahmad Rozak','RPL Production'),
           ('MAT003','Matematika 3','Ahmad Rozak','RPL Production'),
           ('MAT004','Matematika 4','Ahmad Rozak','RPL Production'),
           ('MAT005','Matematika 5','Ahmad Rozak','RPL Production'),
           ('MAT006','Matematika 6','Ahmad Rozak','RPL Production'),
           ('MAT007','Matematika 7','Ahmad Rozak','RPL Production'),
           ('MAT008','Matematika 8','Ahmad Rozak','RPL Production'),
           ('MAT009','Matematika 9','Ahmad Rozak','RPL Production'),
           ('MAT010','Matematika 10','Ahmad Rozak','RPL Production'),
           ('FIS001','Fisika 1','Asep Hadi','RPL Production'),
           ('FIS002','Fisika 2','Asep Hadi','RPL Production'),
           ('FIS003','Fisika 3','Asep Hadi','RPL Production'),
           ('FIS004','Fisika 4','Asep Hadi','RPL Production'),
           ('FIS005','Fisika 5','Asep Hadi','RPL Production'),
           ('FIS006','Fisika 6','Asep Hadi','RPL Production'),
           ('FIS007','Fisika 7','Asep Hadi','RPL Production'),
           ('FIS008','Fisika 8','Asep Hadi','RPL Production'),
           ('FIS009','Fisika 9','Asep Hadi','RPL Production'),
           ('FIS010','Fisika 10','Asep Hadi','RPL Production'),
           ('KIM001','Kimia 1','Rose Rihana','RPL Production'),
           ('KIM002','Kimia 2','Rose Rihana','RPL Production'),
           ('KIM003','Kimia 3','Rose Rihana','RPL Production'),
           ('KIM004','Kimia 4','Rose Rihana','RPL Production'),
           ('KIM005','Kimia 5','Rose Rihana','RPL Production'),
           ('KIM006','Kimia 6','Rose Rihana','RPL Production'),
           ('KIM007','Kimia 7','Rose Rihana','RPL Production'),
           ('KIM008','Kimia 8','Rose Rihana','RPL Production'),
           ('KIM009','Kimia 9','Rose Rihana','RPL Production'),
           ('KIM010','Kimia 10','Rose Rihana','RPL Production')
    ;

Langkah 2

Tahap kedua kita membuat file untuk menghubungkan/koneksi, antara file PHP yang akan kita buat dengan database di MySql. Kita buat dulu folder project di dalam htdocs misal dengan nama folder perpustakaan, selanjutnya kita buat file dengan nama koneksi.php dalam folder perpustakaan tersebut dengan sintak seperti berikut :

<?php
    $host       = "localhost";
    $user       = "root";
    $password   = "";
    $dbname     = "perpustakaan";

    $sambung=mysqli_connect($host,$user,$password,$dbname);
?>

Untuk menghubungkan dari php ke database menggunakan fungsi mysqli_connect dengan membawa parameter host, user, password yang digunakan di database dan database apa yang akan dikoneksikan. Disini kita akan koneksikan dengan database perpustakaan yang telah kita buat sebelumnya.

Baca Juga  Tutorial Jetstream Laravel #2 : Authentication

Langkah 3

Membuat halaman dengan paging, buat file dengan nama paging.php di dalam folder perpustakaan, dengan sintak seperti berikut :b

<?php
    //koneksi ke database melalui file koneksi.php
    include "koneksi.php";

    //menentukan banyak nya data yang akan ditampilkan dalam 1 halaman
    $batas   = 10; 
    $halaman = isset($_GET['halaman']) ? (int)$_GET['halaman'] : 1;
    $mulai  = ($halaman > 1) ? ($halaman * $batas) - $batas : 0;
    
    //ambil data dari tabel tbl_buku
    $ambildata1     = mysqli_query($sambung,"SELECT * FROM tbl_buku LIMIT $mulai, $batas");
    $ambildata2     = mysqli_query($sambung,"SELECT * FROM tbl_buku");
    $jumlahdata     = mysqli_num_rows($ambildata2);
    $jumlahhalaman  = ceil($jumlahdata / $batas);
    for ($i = 1; $i <= $jumlahhalaman; $i++) { 
?>
        <a href="?halaman=<?php echo $i; ?>"><?php echo $i; ?></a>

<?php 
    }
?>

Penjelasan :

$halaman = isset($_GET['halaman'])? (int)$_GET["halaman"]:1;

Sintak tersebut fungsinya untuk membuat url halaman, misalkan kita mau tampil halaman maka (int)$_GET[“halaman”] akan di fungsikan, sedangkan 1 itu fungsinya untuk default. Berikut url dari fungsi sintak di atas :

http://localhost/perpustakaan/paging.php?halaman=5

 

$mulai = ($halaman>1) ? ($halaman * $batas) - $batas : 0

Sintak ini merupakan perhitungan yang akan kita lakukan untuk halaman.

 

$ambildata = mysqli_query("select * from tbl_buku LIMIT $mulai, $batas");

Sintak ini digunakan untuk menampilkan data dari database dengan membatasi perpage nya.

 

$jumlahhalaman = ceil($jumlahdata/$batas);

Sintak ini fungsinya akan menentukan jumlah halaman, fungsi ceil digunakan untuk membulatkan hasil dari total jumlah halaman.

Berikut tampilan dari sintak di atas :

 

Langkah 4

Selanjutnya kita akan mengimplementasikan sintak pada langkah 3, contoh kasus menampilkan data buku dari tabel tbl_buku pada database perpustakaan dan kita memisahkan data yang akan tampil 10 data per halaman. File paging.php di dalam folder perpustakaan kita ubah dengan sintak seperti berikut :

<!DOCTYPE html>
<html>
    <head>
        <title>Membuat Halaman dengan Pagination</title>
    </head>

    <body>
        <h2><center>Daftar Buku Perpustakaan</center></h2>
        <h2><center>SMK Negeri 1 Cimahi</center></h2>

        <table align="center" border="1">
            <tr>
                <th width="30">No</th>
                <th width="60">ID Buku</th>
                <th width="100">Judul</th>
                <th width="100">Pengarang</th>
                <th width="200">Penerbit</th>
                <th width="100">Aksi</th>
            </tr>
            
                <?php
                    //koneksi ke database melalui file koneksi.php
                    include "koneksi.php";

                    //menentukan banyak nya data yang akan ditampilkan dalam 1 halaman
                    $batas   = 10; 
                    $halaman = isset($_GET['halaman']) ? (int)$_GET['halaman'] : 1;
                    $mulai  = ($halaman > 1) ? ($halaman * $batas) - $batas : 0;
                    
                    //ambil data dari tabel tbl_buku
                    $ambildata1     = mysqli_query($sambung,"SELECT * FROM tbl_buku LIMIT $mulai, $batas");
                    $ambildata2     = mysqli_query($sambung,"SELECT * FROM tbl_buku");
                    $jumlahdata     = mysqli_num_rows($ambildata2);
                    $jumlahhalaman  = ceil($jumlahdata / $batas);
                    $nomor =$mulai+1;
                    
                    while ($tampildata = mysqli_fetch_array($ambildata1)) {
                ?>
                    <!--awal menampilkan data dari tabel buku ke halaman web-->
                    <tr>
                        <td> <?php echo $nomor++; ?> </td>
                        <td> <?php echo $tampildata['idbuku']; ?> </td>
                        <td> <?php echo $tampildata['judul']; ?> </td>
                        <td> <?php echo $tampildata['pengarang']; ?> </td>
                        <td> <?php echo $tampildata['penerbit']; ?> </td>
                        <td> Edit | Delete </td>
                    </tr>
                    <!--akhir menampilkan data dari tabel buku ke halaman web-->

                <?php
                    }
                ?>
        </table>

        <p>


        <?php 
            for ($i=1; $i<=$jumlahhalaman; $i++) 
            { 
        ?>

            <a href="?halaman=<?php echo $i; ?>">
                <?php echo $i;?>
            </a>

        <?php 
            }
        ?>
    </body>
</html>

Dan hasilnya seperti berikut ini :

Baca Juga  Tutorial Jetstream Laravel #1 : Pengertian dan Instalasi Jetstream Laravel

Demikian tutorial Membuat Paging dengan HTML, PHP dan MySQL, jika ada pertanyaan silahkan tulis di kolom komentar. Selamat mencoba, semoga bermanfaat.

Related Post

1 Trackback / Pingback

  1. Membuat Pagination di PHP dengan MySQL dan Boostrap - agussuratna.net

Leave a Reply

Your email address will not be published.


*


error: Ga bisa dicopy