03 Desember 2008

Ms Access Pagination dengan JSP

Tadinya saya pikir untuk membuat pagination menggunakan Ms Access bisa langsung me-limit query-nya. Ternyata kita tidak bisa langsung me-limit query karena di Ms Access tidak ada operator untuk limit.
Oleh karena itu yang bisa dilakukan adalah dengan membagi data yang ingin kita tampilkan. Ide dasarnya yaitu:
  1. Dapatkan jumlah semua baris.
  2. Input halaman berapa yang ingin ditampilkan.
  3. Hitung batas awal dan akhir data yang ingin ditampilkan.
  4. Cek, hanya data di antara awal dan akhir yang akan ditampilkan.
Misalnya kita mempunyai table dengan jumlah total record ada 20 dan tiap halaman kita ingin tampil cuma 3 data. Maka caranya adalah seperti ini:
rs.last();
int total = rs.getRow();
rs.beforeFirst();
    
int awal = batas*halaman - (batas - 1);
int akhir = batas*halaman;

Nah untuk variabel halaman yaitu variabel yang menyatakan halaman berapa, bisa kita inputkan melalui url aja. Jadi misal tampil.jsp?halaman=2. Sedangkan variabel batas adalah batas berapa data yang ingin kita tampilkan dalam satu halaman.

Kemudian kita lakukan pengecekan pada saat menampilkan hasilnya.
while(rs.next()){
   if(rs.getRow()>=awal && rs.getRow()<=akhir){
      //tampilkan data
   }
}
Nah untuk mendapatkan jumlah halamannya ada berapa. Kita gunakan variabel total yang dibagi dengan batas.
total_halaman = total / batas; //bulatkan keatas.
Ok? ada yang belum jelas? silakan tanya di kolom komentar saja ya. Maaf postingnya rada berantakan. Buru-buru soalnya. Thx All.