RSS
 

Teknik Paginasi pada PHP

22 Nov

Assalamualaikum wr, wb.

Hallo apa kabar kawan2 semua, kali ini saya akan berbagi sedikit tentang teknik Pagination pada PHP atau teknik untuk memilah-milah tampilan data dari database ke dalam halaman-halaman disesuaikan dengan jumlah record yang ingin ditampilkan.

Yah, begitulah. Bagi pengembang Website, Jika menggunakan Web Editor semacam Macromedia Dreamweaver, sebenarnya sudah disediakan sendiri fasilitas untuk membuat Paginasi Data secara otomatis. Namun cara ini kurang efektif, jika kita ingin mengembangka sebuah aplikasi website yang lebih rumit. Apalagi dengan Teknik paginasi yang lebih beragam.

Khusus pada artikel ini, saya akan berbagi bagaimana teknik membuat paginasi halaman dengan dua cara :

1. Simple Pagination (Pref & Next)

2. Number Pagination (Menggunakan nomor halaman)

Pada latihan ini, siapkan sebuah database bernama tutorial dan sebuah tabel, berinama “tbldata”. Untuk keterangan field

1. id int auto increment

2. judul varchar 125

3. isi text

4. tanggal date

Kita mulai dengan yang pertama dulu.

1. Simple Pagination (Pref & Next)

- Buat satu file config.php untuk menyimpan konfigurasi database.

<?php
$hostname_db = “localhost”;
$database_db = “tutorial”;
$username_db = “root”;
$password_db = “pwdku”;
$con_db = mysql_pconnect($hostname_db, $username_db, $password_db) or trigger_error(mysql_error(),E_USER_ERROR);
?>

- Buat lagi satu file view.php untuk menampilkan data dari database.

<?php
require_once(’config.php’);
mysql_select_db($database_db, $con_db);

$query = “select * from tbldata”;
$Result = mysql_query($query, $con_db) or die(mysql_error());
$row_count = mysql_num_rows($Result);
$page_row = 2;
$start = $_GET['start'];
$start = ($start == ”) ? ‘0′ : $start;
if ($start >= $row_count)
{
$start = 0;
$prev = 0;
$next = $page_row;
} elseif ($start >= 0)
{
$start = $start;
$prev = $start – $page_row;
$next = $start + $page_row;
} else {
$start = 0;
$prev = 0;
$next = $page_row;
}
$query = “select * from tbldata limit $start, $page_row”;
$Result = mysql_query($query, $con_db) or die(mysql_error());
?>
<html>
<head><title>Simple Pagination</title></head>
<body>
<?php
$num = $start;
while ($row_result = mysql_fetch_row($Result)){

echo ++$num.” <b>”.$row_result[1].”</b> “;
echo “(”.$row_result[3].”)<br>”;
echo “”.$row_result[2].”<br><br>”;
}
?>
<table border=”0″>
<tr>
<td><a href=”view.php?start=<?php echo $pref?>”>Pref</a></td>
<td><a href=”view.php?start=<?php echo $next?>”>Next</a></td>
</tr>
</table>
</body>
</html>

- Di bahas ga ya, hueheheh……. Di bahas deh dikit……..

$query = “select * from tbldata”;
$Result = mysql_query($query, $con_db) or die(mysql_error()); // Mengambil semua data dari tabel
$row_count = mysql_num_rows($Result); // Menghitung jumlah data keseluruhan
$page_row = 2; // Jumlah data yang diinginkan pada tiap halaman, ubah sesuai keinginan
$start = $_GET['start']; // Membaca get variable, untuk membaca titik awal data yang akan ditampilkan
$start = ($start == ”) ? ‘0′ : $start;  // Jika data kosong, makan akan diisi dengan angka 0
if ($start >= $row_count)  // Jika nilai awal lebih dari jumlah keseluruhan data
{
$start = 0; // Set nilai strat menjadi 0
$prev = 0; // Set nilai pref menjadi 0
$next = $page_row; // Set nilai next sama dengan nilai jumlah data tiap halaman
} elseif ($start >= 0)
{
$start = $start;
$prev = $start – $page_row;
$next = $start + $page_row;
} else {
$start = 0;
$prev = 0;
$next = $page_row;
}

Yang lain artikan sendiri

Selanjutnya, yang terpentin dari source code ini disini,

<table border=”0″>
<tr>
<td><a href=”view.php?start=<?php echo $pref?>”>Pref</a></td>
<td><a href=”view.php?start=<?php echo $next?>”>Next</a></td>
</tr>
</table>

Pada kode ini akan dibuat link untuk navigasinya….. huehehehe……. Nex…….

2. Number Pagination (Menggunakan nomor halaman)

- Sama dengan diatas, buat satu file dengan nama config.php

Isinya sama dengan diatas

- Selanjutnya buat satu file lagi dengan nama view.php

<?php
require_once(’config.php’);
mysql_select_db($database_db, $con_db);

$query = “select * from tbldata”;
$Result = mysql_query($query, $con_db) or die(mysql_error());
$row_count = mysql_num_rows($Result);
$page_row = 2;
$start = $_GET['start'];
$start = ($start == ”) ? ‘0′ : $start;
if ($start >= $row_count)
{
$start = 0;
$prev = 0;
$next = $page_row;
} elseif ($start >= 0)
{
$start = $start;
$prev = $start – $page_row;
$next = $start + $page_row;
} else {
$start = 0;
$prev = 0;
$next = $page_row;
}
$query = “select * from tbldata limit $start, $page_row”;
$Result = mysql_query($query, $con_db) or die(mysql_error());
?>
<html>
<head><title>Number Pagination</title></head>
<body>
<?php
$num = $start;
while ($row_result = mysql_fetch_row($Result)){

echo ++$num.” <b>”.$row_result[1].”</b> “;
echo “(”.$row_result[3].”)<br>”;
echo “”.$row_result[2].”<br><br>”;
}
?>
<table border=”0″>
<tr>
<td><a href=”view.php?start=<?php echo $pref?>”>Pref</a></td>
<?php
for($i = 0; $i < (round($row_count / $page_row)); $i++)
echo “<td><a href=\”view.php?start=”.($i * $page_row).”\”>”.($i  + 1).”</a></td>”;
?>
<td><a href=”view.php?start=<?php echo $next?>”>Next</a></td>
</tr>
</table>
</body>
</html>

Tidak jauh beda dengan kode sebelumnya, hanya yang membedakan pada tampilan paginasinya.

<?php
for($i = 0; $i < (round($row_count / $page_row)); $i++)
echo “<td><a href=\”view.php?start=”.($i * $page_row).”\”>”.($i  + 1).”</a></td>”;
?>

Pada kode ini akan diload sebanyak jumlah data dibagi jumlah data yang akan ditampilkan pada tiap halaman. Lalu di tampilkan tiap angkanya menjadi paginasi dalam bentuk angka. Ya begitulah, ntar baca2 sendiri aja. N dicoba… Sengaja ga aku tampilin gambar hasilnya biar penasaran dan silahkan dicoba….

Oia, file latihannya silahkan di download disini http://agoesdoubleb.i-bego.com/arsip/php-data-pagination/

Ok, terima kasih telah menyempatkan membaca tutorial saya yang singkat ini. Dan moga berguna untuk kamu-kamu dan aku-aku semua…. huehehehe….

Akhir kata, bla bla bla Wassalamualaikum wr, wb…..

 
 

Leave a Reply

 
 
  1. farid hidayat

    August 8, 2010 at 20:21

    http://www.anggoor.co.cc

    mantaf tutorialnya om!