Pemahaman Paging Sederhana pada Web PHP

بسم الله الرحمن الرحيم

Assalamu 'Aalaikum Wr. Wb.,

Alhamdulillah, pada kesempatan ini saya mau berbagi tentang tutorial pemrograman PHP. Pada posting ini, saya akan sedikit menjelaskan bagaimana membuat paging sederhana pada PHP.


Paging atau pembagian halaman pada halaman web sangatlah penting, untuk membatasi data yang tampil. Karena data yang banyak, jika ditampilkan keseluruhan akan membuat user kesulitan dalam membaca data pada halaman web.
Berikut adalah algoritma dan skrip pembuatan paging otomatis sederhana pada PHP.


Jumlah data yang ada 10 record
Batas data yang tampil pada setiap halaman  3 record
Misalkan terdapat data sepeti di bawah ini:
No
NIS
Nama Siswa
1
001
Siswanto
2
002
Ana Az-Zahra
3
003
Wahyudi
4
004
Ahmad Khairul Insan
5
005
Deny Riswan Kholid
6
006
Uswatun Hasanah
7
007
Muhammad Hamdan Naima
8
008
Salim Zikri Robbi
9
009
Dedi Fajrinnur
10
010
Nurillail
Akan ditampilkan 3 record dalam setiap halaman, maka secara logika halaman yang tampil ada 4 halaman, seperti rincian di bawah in:
Halaman
Data yang tampil (record ke-)
Sintaks Sql
1
1-3
SELECT * FROM t_siswa LIMIT 0,3
2
4-6
SELECT * FROM t_siswa LIMIT 3,3
3
7-9
SELECT * FROM t_siswa LIMIT 6,3
4
10
SELECT * FROM t_siswa LIMIT 9,3
Untuk menampilkan data pada setiap halaman sesuai posisi data tampil dan sesuai batas data yang ditampilkan, skrip php yang dapat digunakan adalah sebagai berikut:
$batas = 3;
$pg = isset($_GET['pg']) ? $_GET['pg'] : null;
echo "<table width = '500' style = 'border-collapse:collapse;border:1px solid;'>

<tr>
                <th style = 'background:#94939d;border-bottom:2px solid black'>Id</th>

                <th style = 'background:#94939d;border-bottom:2px solid black'>Catatan</th>

</tr>";
if (!isset($pg)) {
                $postampil = 0;
                $mysqlstr = "select * from t_cat_pengajian limit $postampil,$batas";     
}
else {
                $postampil = ($pg*$batas)-$batas;
                $mysqlstr = "select * from t_cat_pengajian limit $postampil,$batas";     
}
$mysqlq = mysql_query($mysqlstr);      
$baris = 1;
while ($adadata = mysql_fetch_row($mysqlq)){
                list($id_catatan,$catatan) = $adadata;
                if (($baris % 2) == 0) {
                                $warna = '#6657f7';                        
                                $teks = 'white';
                }
                else {
                                $warna = 'none';             
                                $teks = 'none';                 
                }
                echo "<tr>
                                <td style = 'background:$warna;color:$teks;border-bottom:1px solid black;text-align:center'>$id_catatan</td>

                                <td style = 'background:$warna;color:$teks;border-bottom:1px solid black;text-align:justify'>$catatan</td>
                </tr> 

                ";
                $baris = $baris +1;
                }
echo "
<hr> 


";
Sedangkan untuk membagi halaman secara otomatis berdasarkan jumlah data yang akan tampil pada setiap halaman, dapat dilihat pada kode di bawah ini:
$posisi = 0;
$halaman = 0;
do {
                $mysqlstr = "select * from t_cat_pengajian limit $posisi,$batas";
                $mysqlq = mysql_query($mysqlstr);
                $adadata = mysql_fetch_row($mysqlq);
                if ($adadata) {
                                $posisi = $posisi + $batas;
                                $halaman = $halaman +1;                            
                                if (!isset($pg) && ($halaman == 1)){
                                                echo "<b>$halaman</b>";
                                }
                                elseif ($pg == $halaman) {
                                                echo "<b>$halaman</b>";
                                }
                                else {
                                                echo "<a href='?pg=$halaman'>$halaman</a> ";
                                }
                }
}while($adadata = mysql_fetch_row($mysqlq));

Skrip lengkap dari paging cara di atas adalah:
<?php
include_once('koneksi_db.php');

$batas = 3;
$pg = isset($_GET['pg']) ? $_GET['pg'] : null;
echo "<table width = '500' style = 'border-collapse:collapse;border:1px solid;'>

<tr>
                <th style = 'background:#94939d;border-bottom:2px solid black'>Id</th>

                <th style = 'background:#94939d;border-bottom:2px solid black'>Catatan</th>

</tr>";
if (!isset($pg)) {
                $postampil = 0;
                $mysqlstr = "select * from t_cat_pengajian limit $postampil,$batas";     
}
else {
                $postampil = ($pg*$batas)-$batas;
                $mysqlstr = "select * from t_cat_pengajian limit $postampil,$batas";     
}
$mysqlq = mysql_query($mysqlstr);      
$baris = 1;
while ($adadata = mysql_fetch_row($mysqlq)){
                list($id_catatan,$catatan) = $adadata;
                if (($baris % 2) == 0) {
                                $warna = '#6657f7';                        
                                $teks = 'white';
                }
                else {
                                $warna = 'none';             
                                $teks = 'none';                 
                }
                echo "<tr>
                                <td style = 'background:$warna;color:$teks;border-bottom:1px solid black;text-align:center'>$id_catatan</td>

                                <td style = 'background:$warna;color:$teks;border-bottom:1px solid black;text-align:justify'>$catatan</td>
                </tr> 

                ";
                $baris = $baris +1;
                }
echo "
<hr>
";

$posisi = 0;
$halaman = 0;
do {
                $mysqlstr = "select * from t_cat_pengajian limit $posisi,$batas";
                $mysqlq = mysql_query($mysqlstr);
                $adadata = mysql_fetch_row($mysqlq);
                if ($adadata) {
                                $posisi = $posisi + $batas;
                                $halaman = $halaman +1;                            
                                if (!isset($pg) && ($halaman == 1)){
                                                echo "<b>$halaman</b>";
                                }
                                elseif ($pg == $halaman) {
                                                echo "<b>$halaman</b>";
                                }
                                else {
                                                echo "<a href='?pg=$halaman'>$halaman</a> ";
                                }
                }
}while($adadata = mysql_fetch_row($mysqlq));
?>
Selain cara di atas, masih banyak teknik-teknik paging, teknik di atas hanya teknik sederhana berdasarkan algoritma yang saya pahami. Semoga bermanfaat bagi kita semua, aamiin ya Allah. Silahkan demonya download di sini.
Mohon kritik dan saran dari pengunjung  terhormat,
Wassalamu 'Alaikum Wr. Wb.,

Comments

Popular posts from this blog

Pencarian String Menggunakan Delphi

Membuat Aplikasi Delphi Perhitungan Selisih Waktu