Menampilkan Field dari Tabel MySQL pada Combo Box Netbeans

Reaksi: 
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, 
  • 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

      Jhohannes H Purba Coding Sederhana Friday, December 02, 2011

      28 comments:

      1. Replies
        1. Maaf kang lebih lengkapnya item ini diambil dari satu field database ya.??
          terus apabila isi field tersebut di hapus apakah langsung terhapus juga di commbobox.??

          Delete
        2. tepat sekali kang...

          itulah 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

          Delete
      2. mantappp... !!!

        ReplyDelete
      3. bagaimana kalo berlaku sebaliknya...dari combobox ke mysql ???

        ReplyDelete
      4. pertama buat dahulu method untuk insert, kemudian ambil masing2 field yang ada pada combox dengan cara mengambil masing2 item yang ada pada combobox..

        combobox.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

        ReplyDelete
      5. Langsung Ku coba, terimakasih sobat
        www.sayacatat.blogspot.com

        ReplyDelete
      6. gan gmana kalau pakek access TA ku pakek access gan

        ReplyDelete
      7. Gan Kalau pakek access gmana gan..

        ReplyDelete
        Replies
        1. saya belum coba gan, tapi kl menurut saya, sama aja gan dari sisi coding...
          yang 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

          Delete
      8. Untuk coding yg ini tepatnya diletakkan di mana y?
        Mohon 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());
        }

        }

        ReplyDelete
        Replies
        1. tempatkan di bagian source nya gan,,,
          saat agan membuat form baru untuk menampilkan combobox, itu berada di bagian design...
          coba buka bagian source, dan ketikkan coding di atas...

          Delete
        2. 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 :
          public class minuman extends javax.swing.JFrame {
          //Tulis kodenya di sini
          }

          atau dibagian lainnya?
          Maaf gan msih Newbie nihh.... ^_^
          Trims atas bantuannya gan...

          Delete
        3. ok.., untuk pertama, saran saya agan belajar method, baik itu fungsi maupun prosedur, karena itu penting sekali.. :D

          strukturnya 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

          Delete
      9. Alhamdulillaah da bisa... ^_^
        Trims 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());
        }
        }

        ReplyDelete
        Replies
        1. 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

          tetap smangat belajar javanya... :D

          Delete
        2. oke dehhh.... java is the best dahhh........ :D

          Delete
      10. gan klo data sudah tampil di combobox tapi klo mw nampilin di textfieldnya gmna yah..?
        misalkan 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..

        ReplyDelete
        Replies
        1. klik kanan pada combonya, trus setonclik....

          kemudian akan beralih ke method dari combo, kemudian code berikut

          textFieldData.settext(combo.getSelectedItem().tostring());

          Delete
      11. terima kasih untuk codingnya...
        bermanfaat sekali...

        ReplyDelete
      12. Tutorial 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.

        ReplyDelete
        Replies
        1. tampilkan seperti biasa aja gan, tetapi nanti di querynya lakukan tambahin sql = ... WHERE field='+combo.getSelectedItem().toString()+' .....

          Delete
      13. makasih gan,,tutorialnya sangat membantu :) sukses slalu gan...

        ReplyDelete