Java Membuat Pagination/Paging pada JTable

JTable Pagination

JTable bisa dikatakan primadona di Java Swing karena sebagai komponen yang bertugas untuk menampilkan data di database dalam bentuk tabel maka dia akan sering digunakan. Selain itu, penggunaannya yang relatif lebih sulit dibandingkan komponen lain membuatnya memiliki perhatian tersendiri. Kali ini kita akan bermain-main dengan JTable supaya bisa mendukung fitur pagination.

Pagination atau kadang disebut juga paging adalah teknik untuk menampilkan data yang dibuat berhalaman-halaman, jadi tidak semua data yang ada ditumpahkan blek pada satu halaman. Ada beberapa alasan kenapa diterapkannya teknik tersebut, setidaknya ada 3 alasan bagi saya

1. Jika jumlah data besar, katakanlah 300 data maka akan tidak efisien jika semuanya ditampilkan dalam satu halaman. User akan malas dan kesulitan jika harus scroll terus kebawah.
2. Jika data sangat besar dan terus bertambah dan untuk menampilkan data kita taruh terlebih dahulu di memory maka cepat atau lambat akan mengalami OOM (Out of Memory) karena memory tidak mampu lagi menampung data yang besar tersebut.
3. Alasan ketiga agak tidak mutu jadi bolehlah dikesampingkan yaitu jika menggunakan pagination akan terlihat keren dan canggih.

Untuk memudahkan mengikuti tutorial ini maka saya sertakan stuktur proyek pada Netbeans sebagai berikut
project stucture

Struktur Database

Berikut adalah struktur dari tabel pelanggan yang digunakan sebagai contoh

Kelas Domain

Kita buat kelas domain untuk tabel pelanggan diatas seperti dibawah ini

file : src/main/java/com/agungsetiawan/jtablepagination/domain/Pelanggan.java

Kelas Service

Untuk proses menarik data dari database perlu kita buat sebuah kelas tersendiri untuk menanganinya. Disini kita membuat sebuah kelas dengan nama PelangganService untuk menangani penarikan data tersebut.
Ketikkan kode dibawah ini

file : src/main/java/com/agungsetiawan/jtablepagination/service/PelangganService.java

Terdapat 2 method pada kelas diatas. Method pertama digunakan untuk mengambil data dari database dengan menggunakan query limit untuk membatasi jumlah data yang diambil. Method kedua berfungsi menghitung jumlah data yang ada pada tabel pelanggan.

Table Model

Langkah selanjutnya kita buat sebuah table model sebagai model data untuk JTable yang akan kita gunakan nanti. Buat sebuah kelas PelangganTableModel

file : src/main/java/com/agungsetiawan/tablemodel/SiswaTableModel.java

Desain Form

Desain Form sesuka hati, kalau saya mendesain seperti pada gambar dibawah
form design

Untuk mengetahui komponen apa saja yang ada serta nama variabelnya berikut keterangannya
komponen

Kelas Form

Modifikasi kode pada kelas FormPelanggan. Tambahkan beberapa variabel serta ubah constructor seperti pada kode dibawah ini.

initPagination() adalah private method, dibawah ini adalah body-nya

Tambahkan aksi klik pada keempat tombol navigasi

Kelas Launcher

Kelas App kita gunakan sebagai launcher yaitu kelas yang pertama dijalankan untuk menampilkan menu utama program. Karena bertindak sebagai launcher maka kita harus menuliskan method main disini, dan berikut ini adalah isi dari kelas App.

file : src/main/java/com/agungsetiawan/jtablepagination/App.java

Screenshot

Eksekusi kelas App dan berikut adalah screenshot dari proyek yang kita buat.

running application

halaman 3

halaman terakhir

15

Penutup

Jika ada kesulitan mengikuti tutorial ini dan atau jika kode diatas masih ada kekurangan yok diskusikan bersama melalui fitur komentar 🙂

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

3 thoughts on “Java Membuat Pagination/Paging pada JTable

  1. Maaf mas agung saya ada kendala saat mengikuti tutorial ini, kalo untuk membuat project baru emang si berhasil mengikuti tutorial ini.. tapi masalahnya, saya sudah punya service dan juga CRUD’nya sendiri, dan kendala saya adalah saat ingin menerapkan paging ini di internalframe yg saya punya, error, ga bisa dipanggil internalframe’nya kira-kira masalahnya dimana ya.. udah 3 hari ni mas, tolong di bantu mas agung. terima kasih sebelumnya..

Leave a Reply

Your email address will not be published. Required fields are marked *