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.

7 komentar:

  1. mo nanya...q bikin table di access dan formnya,tanpa bikin query,ada proses perkalian dan pengurangan,di form bisa tampil, tapi tidak bisa menyimpan di tabel, gmn solusinya? help me....

    trima kasih....maklum di pedalaman kalteng, jd susah info....
    tolong di email ke yudo_ot@yahoo.com

    BalasHapus
  2. @ anomin

    tanpa query bisa kok.

    bubuhkan textbox untuk hasil perkalian pada form.

    jika
    text1= data angka pertama
    text2=data angka kedua
    text3= hasil perkalian

    ketika di text3 :
    "text3= text1 * text2"

    kalo hasil kali tersebut ingin bisa disimpan ke tabel, maka klik code pada menu view kode : dan bubuhkan kode :

    MSQL = " INSERT INTO...." DST.

    tanpa kode tersebut, ya gak bisa lah.

    BalasHapus
  3. saya suka sulit menentukan primary key nya. Tlg kasih tip utk menentukannya donk.. Trims

    BalasHapus
  4. Saya sudah buat database karyawan, yang saya tanya bagaimana membuat rumus untuk mengetahui jumlah keseluruhan karyawan ? Sesudahnya saya ucapkan terima kasih.

    BalasHapus
  5. sy hanya bisa membaca,belum sanggup mengomentari

    BalasHapus
  6. mo nanya juga.
    ketik perintah tu dimana ya.
    makasih Gan

    BalasHapus