Site icon agussuratna.net

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‘.

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.

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 :

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

Exit mobile version