Selasa, 04 November 2014

ComboBox dengan Database pada Java

java
ComboBox adalah komponen GUI Swing pada Java yang digunakan untuk menampilkan suatu item dalam bentuk menu kebawah atau drop down list. Item yang terdapat pada ComboBox bisa kita tambahkan secara hard coding, yaitu kita ketik manual pada saat kita melakukan coding. Misal :
ataupun itemnya dinamis berasal dari database.
Pada tutorial ini saya ingin berbagi tentang teknik meload data dari database untuk dimasukkan sebagai item pada combobox. Aplikasi yang akan saya buat cukup menggunakan plain Jdbc, tidak menggunakan ORM seperti Hibernate dengan tujuan agar pembaca pemula pun bisa memahami teknik tersebut.
Hasil akhir dari tutorial ini adalah seperti nampak pada gambar berikut:
ss aplikasi
Setiap kali item pada ComboBox diubah maka nama yang muncul pada textbox pun akan menyesuaikan sesuai dengan data yang berada pada item ComboBox.

Untuk tutorial ini saya menggunakan sebuah table dengan nama mahasiswa yang memiliki struktur sebagai berikut:
Silahkan buat table tersebut dan tambahkan beberapa data untuk mengisi tabel diatas.
Langkah selanjutnya adalah menciptakan projek pada Netbeans dengan nama ComboBoxDB. Tambahkan beberapa package sehingga susunannya menjadi seperti gambar berikut:
struktur package
Berikutnya adalah menambahkan library Mysql JDBC Driver dengan cara klik kanan pada node Libraries kemudian pilih Add Library > MySQL JDBC Driver dan tampilan pada struktur project kita kali ini akan tampak menjadi seperti gambar dibawah ini:
struktur libraries
Tambahkan sebuah kelas domain yang merepresentasikan data yang ada pada database pada package comboboxdb.model, beri nama kelas sebagai Mahasiswa. Ketikkan kode berikut pada kelas tadi.
Setelah kelas domain model tercipta sekarang saatnya membuat kelas service pada package comboboxdb.service. Beri nama MahasiswaService lalu ketikkan kode dibawah ini
Kelas service seringnya digunakan untuk melakukan operasi-operasi untuk memanipulasi data pada tabel database. Akan tetapi untuk kesederhanaan tutorial ini maka saya hanya membuat method untuk operasi mengambil data dari database.
Buat juga kelas untuk menangani koneksi ke database. Buat kelas ini pada package comboboxdb.util dan beri nama Koneksi:
Konfigurasi yang berhubungan dengan database seperti username, password, server database dan nama database terdapat pada kelas ini.
Pada tahap ini kia telah menciptakan kelas-kelas pendukung aplikasi. Next step adalah membuat kelas utama kita yang berupa tampilan form menggunakan Java Swing. Buatlah kelas JFrame pada package comboboxdb.ui dengan nama FrameMain yang berisi JComboBox, JLabel, JTextField dan JButton.Desainlah tampilannya seperti pada gambar aplikasi yang sudah jadi diatas tadi.
Kita menginginkan pada saat aplikasi berjalan untuk pertama kali maka data dari database sudah masuk pada item di ComboBox. Untuk mencapainya maka kita perlu menambahkan kode pada constructor di kelas FramMain. Ubah menjadi seperti dibawah ini dan tambahkan juga method load() yang berguna meload data dari database dan kemdudian dimuat sebagai item pada ComboBox:
Kamu yang teliti pasti akan bertanya apa kegunaan dari statement ini
Fungsinya adalah supaya ComboBox kita merespon perubahan item dengan menampilkan nama mahasiswa sesuai item Nim yang dipilih pada ComboBox. Implementasinya terdapat pada kelas private yang bernama ComboBoxListener. Buatlah private kelas didalam kelas FrameMain dengan nama ComboBoxListener.
Dari coding diatas terlihat bahwa text field nama akan berisi nama mahasiswa sesuai item pada ComboBox.
Struktur akhir projek adalah seperti berikut:
struktur akhir
Coba running FrameMain. Jika tidak ada kesalahn seharusnya aplikasi berjalan dengan lancar.
ss aplikasi
test
Untuk mengetes apakah datanya benar, kita coba cocokkan dengan data yang berada di database
1
2
3
4
5
6
7
8
9
10
mysql> select * from mahasiswa;
+-----------+----------------+
| nim       | nama           |
+-----------+----------------+
| L2F008002 | Agung Setiawan |
| L2F008034 | Fakkar Robi    |
| L2F008098 | Yosua Alvin    |
| L2F008100 | Yuli Syarif    |
+-----------+----------------+
4 rows in set (0.00 sec)

Tidak ada komentar:

Posting Komentar