Artikel kali ini akan saya isi tentang pemrograman GUI pada Java menggunakan library Swing.
Walaupun makin kesini era aplikasi web makin mendominasi yang menyebabkan kepopuleran aplikasi desktop menjadi menurun tetapi tidak ada salahnya kita belajar sedikit aplikasi desktop.
Khususnya di Indonesia ini aplikasi desktop untuk skala kecil menengah masih lumayan banyak digunakanlah.
Orang bahasa VB6 yang sudah usang aja masih ada yang menggunakan 😛
Bahkan buku-bukunya sampai sekarang masih diterbitkan 😐
Pada artikel ini saya batasi hanya membahas tentang teknik menampilkan data dari database ke JTable.
Untuk teknik lain gampang menyusul nanti hehee.. 😀
Langsung ke contoh kasus ya
Misal kita punya sebuah tabel dengan struktur sebagai berikut ini:
1 2 3 4 5 6 7 8 |
+---------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+-------------+------+-----+---------+-------+ | nim | varchar(20) | NO | PRI | NULL | | | nama | varchar(50) | NO | | NULL | | | jenis_kelamin | varchar(20) | NO | | NULL | | | alamat | varchar(50) | NO | | NULL | | +---------------+-------------+------+-----+---------+-------+ |
Langah pertama yang kita buat adalah membuat kelas entity yang merepresentasikan struktur tabel diatas.
Berarti kita buat kelas dengan nama Mahasiswa yang memiliki 4 properti.
Letak package bisa kalian sesuaikan sendiri
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
package crudsederhana.entity; public class Mahasiswa { private String nim; private String nama; private String jenisKelamin; private String alamat; public String getNim() { return nim; } public void setNim(String nim) { this.nim = nim; } public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } public String getJenisKelamin() { return jenisKelamin; } public void setJenisKelamin(String jenisKelamin) { this.jenisKelamin = jenisKelamin; } public String getAlamat() { return alamat; } public void setAlamat(String alamat) { this.alamat = alamat; } } |
Langkah selanjutnya adalah membuat sebuah tabel model.
JTable bekerja dengan cara menampilkan data yang berada pada sebuah tabel model, untuk itu kita perlu membuat tabel model dan mengisinya dengan data yang berada pada database.
Untuk membuat sebuah tabel model kita manfaatkan kelas AbstractTableModel untuk kita buat sub kelasnya.
Perhatikan kode berikut
[sociallocker]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
package crudsederhana.tablemodel; import crudsederhana.entity.Mahasiswa; import java.util.ArrayList; import java.util.List; import javax.swing.table.AbstractTableModel; /** * * @author Agung Awan */ public class MahasiswaTableModel extends AbstractTableModel{ List<Mahasiswa> mahasiswas=new ArrayList<Mahasiswa>(); /*** Nama Kolom ***/ private final String HEADER[]={"Nim","Nama","Jenis Kelamin","Alamat"}; /*** Memasukkan data awal dari database ke tabel model ***/ public MahasiswaTableModel(List<Mahasiswa> mahasiswas){ this.mahasiswas=mahasiswas; } /*** Menambahkan sebuah data ke tabel model ***/ public void saveMahasiswa(Mahasiswa mahasiswa){ mahasiswas.add(mahasiswa); fireTableRowsInserted(getRowCount()-1, getRowCount()-1); } /*** Melakukan perubahan data yang ada pada tabel model ***/ public void updateMahasiswa(int index, Mahasiswa mahasiswa){ mahasiswas.set(index, mahasiswa); fireTableRowsUpdated(index, index); } /*** Menghapus data pada tabel model ***/ public void deleteMahasiswa(int index){ mahasiswas.remove(index); fireTableRowsDeleted(index, index); } /*** Mendapatkan data pada tabel model ***/ public Mahasiswa getMahasiswa(int index){ return mahasiswas.get(index); } /*** Mendapatkan banyak data ***/ @Override public int getRowCount() { return mahasiswas.size(); } /*** Mendapatkan jumlah kolom ***/ @Override public int getColumnCount() { return HEADER.length; } /*** Mendapatkan nama kolom ***/ @Override public String getColumnName(int column){ return HEADER[column]; } /*** Mendapatkan sebuah nilai pada kolom dan baris tertentu ***/ @Override public Object getValueAt(int rowIndex, int columnIndex) { Mahasiswa mahasiswa=mahasiswas.get(rowIndex); switch(columnIndex){ case 0: return mahasiswa.getNim(); case 1: return mahasiswa.getNama(); case 2: return mahasiswa.getJenisKelamin(); case 3: return mahasiswa.getAlamat(); default: return null; } } } |
[/sociallocker]
Kode diatas cukup panjang juga tapi tenang untuk meload dari database pada tutorial kali ini yang perlu diperhatikan adalah kode berikut ini
1 2 3 4 |
/*** Memasukkan data awal dari database ke tabel model ***/ public MahasiswaTableModel(List<Mahasiswa> mahasiswas){ this.mahasiswas=mahasiswas; } |
Selanjutnya buat JFrame dan tambahkan JTabel didalamnya seperti pada gambar
Untuk menyederhanakan contoh, kode untuk mengakses database kita buat harcode sadja ya 😀
tanpa pattern tanpa aturan best practice hahaa
Ubah bagian constructor menjadi seperti berikut
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
public MahasiswaTabel() { initComponents(); MysqlDataSource dataSource=new MysqlDataSource(); dataSource.setUser("root"); dataSource.setPassword(""); dataSource.setDatabaseName("aplikasidatabase"); dataSource.setServerName("localhost"); List<Mahasiswa> mahasiswas=new ArrayList<Mahasiswa>(); try{ PreparedStatement ps=dataSource.getConnection().prepareStatement("SELECT * FROM mahasiswa"); ResultSet rs=ps.executeQuery(); while(rs.next()){ Mahasiswa mahasiswa=new Mahasiswa(); mahasiswa.setNim(rs.getString("nim")); mahasiswa.setNama(rs.getString("nama")); mahasiswa.setJenisKelamin(rs.getString("jenis_kelamin")); mahasiswa.setAlamat(rs.getString("alamat")); mahasiswas.add(mahasiswa); } MahasiswaTableModel tabelmodel=new MahasiswaTableModel(mahasiswas); jTableMahasiswa.setModel(tabelmodel); }catch(SQLException ex){ } } |
Isikan terlebih dahulu beberapa sampel data pada database
kemudian jalankan JFrame tadi
dan
nikmati hasilnya
Semoga bermanfaat
🙂
kalo misal kan buat pencarian gimana pak
Tinggal pakai Sql LIKE saja di query-nya, selebihnya sama cara ngisi data ke JTable-nya
Terima kasih atas bantunya Mas Agung
Nice Gan…
Thanks…. 😉
Kalau misalnya di menu ada 2 Pilihan. Laki-laki dan Perempuan. Nah apabila di klik Perempuan maka data yang muncul di tabel tersebut adalah perempuan. Itu gimana ya gan? Terimakasih.
http://latihanbasisdata.blogspot.com/2016/06/cara-menampilkan-data-dari-database-ke-tabel-java.html
Cara Menampilkan Data Dari Database ke Tabel Java
MysqlDataSource
MysqlDataSource itu kelas apa ya ?
tidak tertera di penjelasan, mohon penjelasannya
newbi nyimak dulu kang,, masih bingung .. he he he…
pesan error pada ,add ,size,set,remove dan MahasiswaTableModel “tabelmodel”=new MahasiswaTableModel(mahasiswas);
jTableMahasiswa.setModel(tabelmodel); mohon batuan nya
saya coba coba dlu pak
ini oop yah mas agung ?
mas aku mau nanya donk ketika aku buat model di java spring udah urut tapi kenapa ketika di run hasil di mysql field fieldnya tidak urut,,bagaimana cara agar bisa urut mas gak berantakan.terimakasih