Populate JCombobox With Key and Value
Ditulis oleh
mrjj

HashMap
HashMapmerupakan sebuah class yang tersedia dalam bahasa pemrograman java sebagai kelas turunan dari class abstract map dan merupakan imlementasi dari class Mapp, berikut urutan class HashMap
Class KoneksiDengan menggunakan HashMap memungkinkan kita dapat menyimpan data value dan key secara sekaligus, ketika akan menggunakan HashMap kita perlu mengimpor header :
import java.util.HashMap;
setelah itu kita deklarasikan sebuah object baru dari class tersebut sebagai berikut :
HashMap map = new HashMap();
dekalrasi diatas berarti tipe data string untuk value dan tipe data integer untuk key. cara mengisi nilai pada object yang sudah dideklarasikan kita bisa menggunakan put misalnya :
map.put("key","value")
Implementasi pada JCombobox
Saatnya menjelaskan bagaimana implementasi HashMap pada JCombobox untuk aplikasi basis data artinya kita akan menampilkan data dari tabel dosen yang terdiri dari kolom kode_dosen dan nama_dosen, yang ingin kita tampilkan adalah nama_dosen sebagai value dan kode_dosen sebagi key. langkah pertama adalah membuat class DBKoneksi sebagai berikut :
Class DBKoneksi
package konfigurasi;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBKoneksi {
public Connection koneksi;
public Connection connect() {
//koneksi ke driver mysql
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Berhasil Koneksi Ke JDBC Driver MySQL");
} catch (ClassNotFoundException ex) {
System.out.println("Tidak Berhasil Koneksi Ke JDBC Driver MySQL");
}
//koneksi ke database
try {
String url = "jdbc:mysql://localhost:3306/datamhs";
koneksi = DriverManager.getConnection(url, "root", "");
System.out.println("Berhasil Koneksi Ke Database");
} catch (SQLException e) {
System.out.println("Tidak Berhasil Koneksi Ke Database");
}
return koneksi;
}
public static void main(String[] args) {
java.sql.Connection conn = new DBKoneksi().connect();
}
}
Langkah selanjutnya adalah membuat class DBQuery yang akan digunakan untuk menampilkan data dari tabel dosen, serta mendeklarasikan object HashMap
codingclass DBQuery, selanjutnya mengisi DosenItem kedalam object HashMap, berikut adalah coding dari DBQuery dan DosenItem:
Class DBQuery
package konfigurasi;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Jajang Nurjaman
*/
public class DBQuery {
public HashMap< string integer=""> populateCombo() {
HashMap< string integer=""> map = new HashMap< string integer="">();
Connection con = new DBKoneksi().connect();
Statement st;
ResultSet rs;
try {
st = con.createStatement();
rs = st.executeQuery("SELECT kode_dosen, nama_dosen FROM dosen");
DosenItem dosenItem;
while (rs.next()) {
dosenItem = new DosenItem(rs.getInt(1), rs.getString(2));
map.put(dosenItem.getNama_dosen(), dosenItem.getKode_dosen());
}
} catch (SQLException ex) {
Logger.getLogger(DBKoneksi.class.getName()).log(Level.SEVERE, null, ex);
}
return map;
}
}
Class DosenItem
package konfigurasi;
/**
*
* @author Jajang Nurjaman
*/
public class DosenItem {
private int kode_dosen;
private String nama_dosen;
public DosenItem(int kode_dosen, String nama_dosen) {
this.kode_dosen = kode_dosen;
this.nama_dosen = nama_dosen;
}
public int getKode_dosen() {
return kode_dosen;
}
public void setKode_dosen(int kode_dosen) {
this.kode_dosen = kode_dosen;
}
public String getNama_dosen() {
return nama_dosen;
}
public void setNama_dosen(String nama_dosen) {
this.nama_dosen = nama_dosen;
}
}
Selanjutnya adalah menambahkan prosedur BindCombo (Penamaan bebas tidak perlu sama). yang akan digunakan untuk memanggil prosedur yang telah kita buat pada class DBQuery pada Form Utama (formkrs).
public void BindCombo() {
DBQuery dq = new DBQuery();
HashMap< string integer=""> map = dq.populateCombo();
for ( String s : map.keySet()) {
jComboBox_dosen.addItem(s);
}
}
Panggil Fungsi BindCombo pada Constructor letakan dibawah initComponents();
public formkrs() {
initComponents();
BindCombo();
}
Menambahkan event pada jCombobox (jComboBox_dosen) untuk menampilkan nama dan kode dosen pada jLabel.
private void jComboBox_dosenActionPerformed(java.awt.event.ActionEvent evt) {
DBQuery dq = new DBQuery();
HashMap< string integer=""> map = dq.populateCombo();
jLabel_nama.setText(jComboBox_dosen.getSelectedItem().toString());
jLabel_kode.setText(map.get(jComboBox_dosen.getSelectedItem().toString()).toString());
}
Sekian artikel mengenai
Populate JCombobox With Key and Value, moga bermanfaat.