Sebelum membuat ComboBox, yang isinya diambil dari database, sebaiknya dicoba dahulu membuat Combo Box dengan cara sederhana berikut.
Ikutilah petunjuk berikut :
- Buat sebuah JFrame Form, beri nama FormMinuman
- Drag sebuah Combox ke Form, lalu ganti variabelnya menjadi comboMerkMinuman
- Klik Kanan ComboBox - Propertis - pada Model ketikkan Aqua, SanaQua, SiniQua, SituQua, ManaQua
- Coba run program, maka akan muncul tampilan seperti berikut ini
Jika cara yang diatas digunakan, saat kita ingin menambah field baru, misalnya ada tambah merk minuman, maka kita harus membongkar ulang programnya. Untuk mengatasinya, kita bisa menggunakan combo box dengan isinya kita ambil dari database, sehingga suatu saat kita ingin menambah item yang baru, kita tinggal tambah ke database saja tanpa mengganggu program.
Cara Mengisi Combo box dengan field dari database MySQL:
- Buat database pada MySQL buatlah,
- Database : db_minuman
- Tabel : tabel_minuman.
- Buatlah koneksi antara Netbean dan MySQL
Untuk membuat database pada MySQL dan mengatur koneksi silahkan buka Create, Insert, Update, Delete (CRUID) Data Pada Java Menggunakan Netbean dan MySQL - Part 1 - Buat sebuah class, beri nama KoneksiDatabase, lalu ketikkan source code 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 31
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author www.codingsederhana.blogspot.com */ public class KoneksiDatabase { private Connection koneksiDatabase; public Connection getKoneksiDatabase(){ if(koneksiDatabase == null){ try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("Driver Ditemukan"); try { koneksiDatabase = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_minuman", "root", ""); System.out.println("Koneksi Database Ditemukan"); } catch (SQLException ex) { System.out.println("Koneksi Database Tidak Ditemukan : \nDengan Pesan :" + ex.toString()); } } catch (ClassNotFoundException ex) { System.out.print("Class Driver Database Tidak Ditemukan : \n Dengan pesan Error " + ex.toString()); } } return koneksiDatabase; } }
- Buat Jframe Form dan Drag sebuah Combobox pada Form dan buat nama Variabelnya comboMerkMinuman (sama seperti sebelumnya)
- Lalu buka Source, dan ketikkan source code berikut di dalam class
KoneksiDatabase koneksiDatabase = new KoneksiDatabase(); public tes() { initComponents(); tampilComboProduk(); } public void tampilComboProduk(){ try { Connection koneksiTabelMinuman = koneksiDatabase.getKoneksiDatabase(); Statement statementComboMerkMinuman = (Statement) koneksiTabelMinuman.createStatement(); String sql = "SELECT * FROM tabel_minuman"; ResultSet resultSetComboMerkMinuman = statementComboMerkMinuman.executeQuery(sql); while(resultSetComboMerkMinuman.next()){ comboMerkMinuman.addItem(resultSetComboMerkMinuman.getString("merkminuman")); } resultSetComboMerkMinuman.close(); statementComboMerkMinuman.close(); System.out.println("Tampil Merk Minuman Berhasil"); } catch (SQLException ex) { System.out.println("Tampil Merk Minuman Gagal \n Pesan :" + ex.toString()); } }
- Selanjutnya Coba jalankan Form Anda, maka akan muncul Tampilan seperti berikut
Hasil untuk cara pertama dan cara kedua sama saja, tetapi yang pertama nama item dimasukkan secara manual di netbean, sedangkan cara kedua nama dimasukkan dari database...
Semoga Membantu.. :D
Semoga Membantu.. :D
terima kasih... :D
ReplyDeleteMaaf kang lebih lengkapnya item ini diambil dari satu field database ya.??
Deleteterus apabila isi field tersebut di hapus apakah langsung terhapus juga di commbobox.??
tepat sekali kang...
Deleteitulah tujuannya saya buat tutorial ini, sehingga saat kita ingin menambah field di combobox, kita tidak perlu lagi repot2 membongkar combobox, cukup dengan memasukkan ke dalam database..
berarti kl mau hapus, cukup hapus aja dari database, nanti otomatis terhapus juga di combobox... :D
mantappp... !!!
ReplyDeletebagaimana kalo berlaku sebaliknya...dari combobox ke mysql ???
ReplyDeleteini maksudnya nyimpen dari combo box ke database ?
Deletepertama buat dahulu method untuk insert, kemudian ambil masing2 field yang ada pada combox dengan cara mengambil masing2 item yang ada pada combobox..
ReplyDeletecombobox.getSelectedItem();
secara umum ini jarang dilakukan karena untuk menambah field pada combobox, harus buka combobox lagi, tetapi jika dengan cara di atas, cukup dengan menambah isi di tabel saja.. :D
Langsung Ku coba, terimakasih sobat
ReplyDeletewww.sayacatat.blogspot.com
Terima Kasih. .. :D
ReplyDeletesama2 sobat.. :D
ReplyDeletegan gmana kalau pakek access TA ku pakek access gan
ReplyDeleteGan Kalau pakek access gmana gan..
ReplyDeletesaya belum coba gan, tapi kl menurut saya, sama aja gan dari sisi coding...
Deleteyang membedakan hanya class koneksinya saja.. :D
kl mysql, dia menggunakan seperti berikut :
Class.forName("com.mysql.jdbc.Driver");
koneksiDatabase = DriverManager.getConnection( "jdbc:mysql://localhost:3306/db_minuman", "root", "");
intinya, agan harus buat dahulu bagaimana cara mengkoneksikan acces dengan netbean, kemudian bisa dicoba source codenya gan,.. :D
bisa gan, sama aja !!! ane udah coba.
DeleteUntuk coding yg ini tepatnya diletakkan di mana y?
ReplyDeleteMohon petunjuknya yg jelas. Trims...
Lalu buka Source, dan ketikkan source code berikut di dalam class
KoneksiDatabase koneksiDatabase = new KoneksiDatabase();
public tes() {
initComponents();
tampilComboProduk();
}
public void tampilComboProduk(){
try {
Connection koneksiTabelMinuman = koneksiDatabase.getKoneksiDatabase();
Statement statementComboMerkMinuman = (Statement) koneksiTabelMinuman.createStatement();
String sql = "SELECT * FROM tabel_minuman";
ResultSet resultSetComboMerkMinuman = statementComboMerkMinuman.executeQuery(sql);
while(resultSetComboMerkMinuman.next()){
comboMerkMinuman.addItem(resultSetComboMerkMinuman.getString("merkminuman"));
}
resultSetComboMerkMinuman.close();
statementComboMerkMinuman.close();
System.out.println("Tampil Merk Minuman Berhasil");
} catch (SQLException ex) {
System.out.println("Tampil Merk Minuman Gagal \n Pesan :" + ex.toString());
}
}
tempatkan di bagian source nya gan,,,
Deletesaat agan membuat form baru untuk menampilkan combobox, itu berada di bagian design...
coba buka bagian source, dan ketikkan coding di atas...
Klo bagian sourcenya sya da mngerti, mksud sya di bagian sourcenya kan sdah ada coding yg sdah dibuatkan oleh Netbeansnya. Apkah diletakkan didlam tnda kurung kurawal class :
Deletepublic class minuman extends javax.swing.JFrame {
//Tulis kodenya di sini
}
atau dibagian lainnya?
Maaf gan msih Newbie nihh.... ^_^
Trims atas bantuannya gan...
ok.., untuk pertama, saran saya agan belajar method, baik itu fungsi maupun prosedur, karena itu penting sekali.. :D
Deletestrukturnya seperti ini gan..
public class minuman extends javax.swing.JFrame { //nama class
public minuman(){} //konstruktor
public void setComboProduk(){} //method prosedur
public int getComboProduk(){Return var} //method Fungsi
}
Semoga membantu.. :D
Alhamdulillaah da bisa... ^_^
ReplyDeleteTrims atas artikelnya gan....
tpi saya ad sdkit masukan buat Coding Sederhana, tlong jng menuliskan "Lalu buka Source, dan ketikkan source code berikut di dalam class", krena tdak smw hrus diketikkan, ad bbrapa Syntak yg sdah dibuatkan oleh Netbeans sprti yg pernah sy blang wktu itu. Coding lebih jelasnya sperti ini:
public class FormMinuman extends javax.swing.JFrame { //tidak perlu diketik
KoneksiDatabase koneksiDatabase = new KoneksiDatabase(); //harus diketik
/** Creates new form FormMinuman */
public FormMinuman() throws SQLException {
initComponents(); //tidak perlu diketik
tampilComboProduk(); //harus diketik sampai akhir syntak ini.
}
public void tampilComboProduk() throws SQLException{
try {
Connection koneksiTabelMinuman = koneksiDatabase.getKoneksiDatabase();
Statement statementComboMerkMinuman = (Statement) koneksiTabelMinuman.createStatement();
String sql = "SELECT * FROM tabel_minuman";
ResultSet resultSetComboMerkMinuman = statementComboMerkMinuman.executeQuery(sql);
while(resultSetComboMerkMinuman.next()){
comboMerkMinuman.addItem(resultSetComboMerkMinuman.getString("merkminuman"));
}
resultSetComboMerkMinuman.close();
statementComboMerkMinuman.close();
System.out.println("Tampil Merk Minuman Berhasil");
} catch (SQLException ex) {
System.out.println("Tampil Merk Minuman Gagal \n Pesan :" + ex.toString());
}
}
sebenarnya awal blog ini hanya untuk mengingatkan diri sendiri gan, sehingga saya hanya buat seperti yang saya pahami, tapi terima kasih atas sarannya gan, untuk kedepan saya akan coba perhatikan dari sisi pembaca.. heheh...:D
Deletetetap smangat belajar javanya... :D
oke dehhh.... java is the best dahhh........ :D
Deletegan klo data sudah tampil di combobox tapi klo mw nampilin di textfieldnya gmna yah..?
ReplyDeletemisalkan kode barang diambil dari tabel barang nah untuk menamilkan kode barang pada form transaksi sudah tampil tetapi ketika dipilih kode barang tersebut harga tampil namun hanya pada satu kode barang aja..
ni codingnya:
//koding isi dari combobox
public void isi_edisi(){
cmbedisi.removeAllItems();
try {
connetc koneksi=new connetc();
st = (Statement) koneksi.getConnection().createStatement();
String sql="select* from edisi";
rs=st.executeQuery(sql);
while(rs.next()){
String a=rs.getString("kd_edisi");
cmbedisi.addItem(a);
}
rs.close();
st.close();
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"gagal"+e);
}
}
//coding untuk nampilin data dari combobox yang dipilih
public void tampil_diskon(){
try {
con.setkoneksi();
String sql="select* from edisi where kd_edisi='"+cmbedisi.getSelectedItem().toString()+"'";
con.rs=con.st.executeQuery(sql);
if(con.rs.next()){
thargaawl.setText(con.rs.getString("harga"));
}
else{
thargaawl.setText("");
}
} catch (Exception e) {
}
}
mohon bantuanya gan trm kasih..
klik kanan pada combonya, trus setonclik....
Deletekemudian akan beralih ke method dari combo, kemudian code berikut
textFieldData.settext(combo.getSelectedItem().tostring());
coba gan upload source code nya trimakasih
Deleteterima kasih untuk codingnya...
ReplyDeletebermanfaat sekali...
sama-sama gan... :)
DeleteTutorial yang bagus gan, ane mau tanya ni gan, pertanyaanya hampir sama dengan Mas.Syaiful Bahcri cuman pengambilan datanya dari database yang sama dalam satu tabel tapi beda kolom. Gimana ya mas codingnya? terimakasih untuk jawabanya.
ReplyDeletetampilkan seperti biasa aja gan, tetapi nanti di querynya lakukan tambahin sql = ... WHERE field='+combo.getSelectedItem().toString()+' .....
Deletemakasih gan,,tutorialnya sangat membantu :) sukses slalu gan...
ReplyDeletesama-sama gan.. :)
Deleteapa ada yang bisa memberitahu saya mengenai joint table
ReplyDeleteAda banyak macam join table. cek sini gan, banyak tutorialnya : http://www.w3schools.com/sql/
Deletekeren mas tutornya
ReplyDeletetapi kalo boleh tanya,inikan comboboxnya berdsarkan databse nah gmana kalo pas pilih combobox di textfield mucul nama atau yg lain sesuai table yg ada di databse
terima kasih banyak mas