Saat ini saya sedang menulis skripsi tentang sistem informasi manajemen dengan bahasa pemrograman PHP, karena lagi pemula, saya kesulitan saat membuat paging ala Google , jadi kalo ada data yang banyaaak sekali dapat tertampil berdasarkan halaman, dan nomer halaman yang tertampil disana hanya 5 buah, tampilan di bawah menjadi :

First Previous   1 2 3 4 5   Next Last

Kalo di Link Next di klik, akan loncat ke halaman 6 jadi seperti di bawah ini:

First Previous   2 3 4 5 6  Next Last

Kalo di klik Last, maka akan segera loncat ke data di halaman terkahir, begitu juga kalo di klik First, akan segera loncat ke halaman pertama …

Mau tau caranya …???

Bikin dulu databasenya dengan nama primes, lalu masukkan query di bawah, untuk membuat tabel dengan spesifikasinya:

CREATE TABLE IF NOT EXISTS `primes` (
`number` int(10) unsigned NOT NULL,
PRIMARY KEY  (`number`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Skrip PHPnya terdiri dari 3 buah, yaitu prima.php, terbilang.php, dan paging.php:

prima.php digunakan untuk membuat fungsi bilangan prima kurang dari 10.000 , isinya seperti dibawah:

<?php
function is_prime($n)
{
if($n==2) return true;
if($n==3) return true;
if($n<2) return false;
$f = floor(sqrt($n));
for ($i=2;$i<=$f;$i++)
{
if ($n%$i==0) return false;
}
return true;
}

?>

terbilang.php digunakan untuk mengisi database dengan nama primes dan tabel primes dengan bilangan prima kurang dari 10.000 , isinya seperti dibawah:

<?php
include (“prima.php”);
mysql_connect($DB_HOST,$DB_USER,$DB_PASS);
mysql_select_db($DB_DB);
for ($i=2;$i<10000;$i++)
{
if (is_prime($i))
mysql_query(“INSERT IGNORE INTO `primes` VALUE ‘$i”);
}
?>

paging.php adalah file PHP untuk menampilkan data yang ada di database dengan sistem paging atau halaman mirip Google, coba anda bayangkan kalo datanya itu terdiri dari ribuan record yang harus ditampilkan tanpa menggunakan paging….(capeknya)

<?php
//paging.php
$DB_HOST=”localhost”;
$DB_DB=”primes”;
$DB_USER=”user_database”;
$DB_PASS=”password_user_database”;
$PAGE_DEFAULT = 1;
$PAGESIZE_DEFAULT = 25;
$PAGESIZE_LOWER_LIMIT = 10;
$PAGESIZE_UPPER_LIMIT = 100;
$page=$_GET['page'];
include (“terbilang.php”);
echo “<h1>Demo Paging</h1>”;
mysql_connect($DB_HOST,$DB_USER,$DB_PASS);
mysql_select_db($DB_DB);
if (!isset($page)) $page = $PAGE_DEFAULT;
if ($page < 1 && $page != -1) $page = 1;
if (!isset($pagesize)) $pagesize = $PAGE_DEFAULT;
if ($pagesize < $PAGESIZE_LOWER_LIMIT) $pagesize = $PAGESIZE_LOWER_LIMIT;
if ($pagesize > $PAGESIZE_UPPER_LIMIT) $pagesize = $PAGESIZE_UPPER_LIMIT;
$res = mysql_query(“SELECT COUNT(*) FROM primes;”);
list($total_rows) = mysql_fetch_row($res);
if ($page == -1)
{
$count=$pagesize;
$offset=$total_rows-$pagesize;
}
else
{
$count=$pagesize;
$offset=($page-1)*$pagesize;
}
$last_page=ceil($total_rows/$pagesize);
$adjacent_pages_links=($page > 6 ? “…” : ” “);
for ($i=$page-5; $i<$page;$i++)
{
if ($i<1) continue;
$adjacent_page_links.=” “.”<a href=$PHP_SELF?page=$i>$i</a>”;
}
$adjacent_pages_links.= “<b>$page</b>”;
for ($i=$page+1; $i<($page+6);$i++)
{
if($i>$last_page) break;
$adjacent_pages_links.=” “.”<a href=$PHP_SELF?page=$i>$i</a>”;
}
$adjacent_pages_links.=($page+5<$last_page?” …”: ” “);
$navigasi=”
<table bgcolor=#ccccff border=0 width=100%>
<tr>”.
“<td>”.($page==1?”First”:”<a href=$PHP_SELF?page=1>First</a>”).”</td>”.
“<td>”.($page==1?”Prev”:”<a href=$PHP_SELF?page=”.($page-1).”>Prev</a>”).”</td>”.
“<td align=middle width=100%>$adjacent_page_links</td>”.
“<td align=right>”.($page==$last_page?”Next”:”<a href=$PHP_SELF?page=”.($page+1).”>Next</a>”).”</td>”.
“<td align=right>”.($page==$last_page?”Last”:”<a href=$PHP_SELF?page=$last_page>Last</a>”).”</td>”.
“</tr>
</table>”;
echo $navigasi;
echo “<table width=100% border=1 cellpadding=5>
<tr bgcolor=#cccccc>
<td>Urutan</td>
<td>Angka</td>
<td>Terbilang</td>
</tr>”;
$res=mysql_query(“SELECT * FROM `primes` LIMIT $offset,$count;”);
$i=$offset+1;
while ($row=mysql_fetch_array($res))
{
echo “<tr bgcolor=$”,($i%2?”fff0f0″:”fff8f8″),”>
<td>$i</td>
<td>$row[number]</td>
<td>”,($row['number']),”</td>
</tr>”;
$i++;
}
echo “</table>”;
echo $navigasi;
?>

Silakan mencoba dan dimodifikasi sendiri sesuai dengan kebutuhan …

Note: Skrip ini diambil dari salah satu resep dari Buku PHP, KumpulanResep-resep Pemrograman karangan Steven Haryanto terbitan Dian Rakyat, didalamnya terdapat resep-resep lain yang menarik, silakan membeli dan mencobanya …he he he (promosi nih ….)