Koneksi MySQL dengan Java (Bagian Awal 2)

Kembali lagi Wong Jowo Back to JAVA. Di pagi yang cerah ini mo nulis lagi tentang koneksi database MySQL ke JAVA. Kalau postingan bagian awal 1 kemarin aku udah ngebahas tentang koneksi yang dalam mode text hanya untuk membuktikan terkoneksi dan menginsert data sekarang aku coba nulis tentang koneksi database MySQL ke JAVA dalam mode GUI. 😀

Nah, langkah demi langkahnya akan aku bahas satu per satu, doakan saja tidak ada hambatan. Kalau mau silahkan baca terus, kalau udah bosan ya… makan aja dulu 😀

  • Langkah pertama buatlah koneksi pada service, serta jangan lupa buat tabel (dalam contoh ini database dengan nama person dan tabelnya dengan nama tsiswa)
    tabelsiswa

  • Langkah selanjutnya buatlah project misalnya dengan nama koneksiMySQL. Setelah project terbuat kemudian tambahkan library JDBC MySQL dengan cara klik kanan pada project bagian Library kemudian pilih Add Library maka muncul seperti gambar di bawah ini pilihlah MySQL JDBC Driver (kalau tidak ada silahkan download sendiri di website MySQL).


  • addlibrary

  • Nah kalau udah beres sekarang kita bikin tampilannya aja dulu dengan menggunakan JFrameForm buat design sedemikian rupa ya… kurang lebih seperti ini dech :

  • formsiswa

    Ketentuan sebgai berikut :
    * Teks NIM => txtNim (JTextField)
    * Teks Nama => txtNama (JTextField)
    * Teks Tempat Lahir => txtTempatLahir (JTextField)
    * Teks Tanggal Lahir => txtTanggalLahir (JFormatted Field)
    * Teks Alamat => txtAlamat (JTextField)
    * Button New => btnNew (JButton)
    * Button Save => btnSave (JButton)
    * Button Delete => btnDelete (JButton)
    * Button Close => btnClose (JButton)

  • Langkah selanjutnya buatlah sebuah class dengan nama siswa. Class ini digunakan untuk mengatur getter and setter form ke database.

  • /*
     * Sourcecode berikut terbuka untuk umum
     * Semua orang diperkenankan memanfaatkan kode ini
     * Tanpa dipungut biaya apapun alias gratis
     * Akan tetapi segala resiko tanggung sendiri
     * Happy coding...
     */
    
    package siswa;
    
    import java.sql.Date;
    
    /**
     *
     * @author farazinux
     */
    public class siswa {
    
        private int nis;
        private String nama;
        private String tempatLahir;
        private Date tanggalLahir;
        private String Alamat;
    
        public siswa() {
        }
    
        // getter dan setter
    
        public String getAlamat() {
            return Alamat;
        }
    
        public void setAlamat(String Alamat) {
            this.Alamat = Alamat;
        }
    
        public String getNama() {
            return nama;
        }
    
        public void setNama(String nama) {
            this.nama = nama;
        }
    
        public int getNis() {
            return nis;
        }
    
        public void setNis(int nis) {
            this.nis = nis;
        }
    
        public Date getTanggalLahir() {
            return tanggalLahir;
        }
    
        public void setTanggalLahir(Date tanggalLahir) {
            this.tanggalLahir = tanggalLahir;
        }
    
        public String getTempatLahir() {
            return tempatLahir;
        }
    
        public void setTempatLahir(String tempatLahir) {
            this.tempatLahir = tempatLahir;
        }
    
    }
    
  • Kalau sudah bikin Class lagi misalnya dengan nama SiswaKonek kemudian ubah source code nya seperti di bawah ini (kurang lebih dech… sesuaikan dengan keinginan juga boleh.. :D)

  • /*
     * Sourcecode berikut terbuka untuk umum
     * Semua orang diperkenankan memanfaatkan kode ini
     * Tanpa dipungut biaya apapun alias gratis
     * Akan tetapi segala resiko tanggung sendiri
     * Happy coding...
     */
    
    package siswa;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     *
     * @author farazinux
     */
    public class SiswaKonek {
        Connection con = null;
        Statement st = null;
        String url = "jdbc:mysql://localhost:3306/person";
        String user = "root";
        String pass = "";
    
        /**
         * Create of a new instance SiswaKonek
         */
    
        public SiswaKonek() {
            try {
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                con = DriverManager.getConnection(url, user, pass);
                st = con.createStatement();
            } catch (Exception ex){
                ex.printStackTrace();
            }
        }
    
        public List
            getSiswaq() {
            ResultSet rs = null;
            List
                    siswaq = new ArrayList();
            try {
              rs = st.executeQuery("SELECT NIS, NAMA, TEMPATLAHIR, TANGGALLAHIR, ALAMAT FROM tsiswa");
              while(rs.next()){
                  siswa s = new siswa();
                  s.setNis(rs.getInt(1));
                  s.setNama(rs.getString(2));
                  s.setTempatLahir(rs.getString(3));
                  s.setTanggalLahir(rs.getDate(4));
                  s.setAlamat(rs.getString(5));
                  siswaq.add(s);
              }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return siswaq;
        }
    
        public int insert (siswa s){
            int result = 0;
            try {
                result = st.executeUpdate("INSERT INTO tsiswa(nis, nama, tempatLahir, tanggalLahir, alamat)" + "VALUES ("+ s.getNis()+", '"+s.getNama()+"', '"+s.getTempatLahir()+"', '"+s.getTanggalLahir()+"', '"+s.getAlamat()+"')");
            } catch (Exception ex){
                ex.printStackTrace();
            }
            return result;
        }
    
        public int delete(siswa s){
            int result = 0;
            try {
                result = st.executeUpdate("DELETE FROM tsiswa WHERE nis = "+s.getNis()+"");
            } catch (Exception ex){
                ex.printStackTrace();
            }
            return result;
        }
    }
    
  • Nah, kalau sudah kembali lagi ke JFrame yang telah kita buat tadi (FrameSiswa) kemudian kita tambahkan variable berikut

  • SiswaKonek sk = new SiswaKonek();
    List <siswa> siswaq = new ArrayList <siswa>();
    int currentRow = 0;
    
  • Tambahkan juga 2 method berikut ke dalam sourcecode FrameSiswa

  • private void loadData(){
            siswaq = sk.getSiswaq();
        }
    
        private void bindData(){
            if (siswaq.size()>0){
                siswa s = siswaq.get(currentRow);
                txtNis.setText(s.getNis()+"");
                txtNama.setText(s.getNama());
                txtTempatLahir.setText(s.getTempatLahir());
                txtTanggalLahir.setText(s.getTanggalLahir()+"");
                txtAlamat.setText(s.getAlamat());
            }
        }
    
  • Jangan lupa ubah constructor Class FrameSiswa seperti berikut ini :

  • public FrameSiswa() {
            initComponents();
            loadData();
            bindData();
    }
    
  • Nah, sekarang kita tinggal setting aksi pada JButton yang telah kita buat. Pertama kita akan memberi aksi pada BtnNew, cara menambahkannya tinggal click kanan btnNew — > Events — > Action — > actionPerformed, terus ubah dech kodenya seperti berikut :

  • private void btnNewActionPerformed(java.awt.event.ActionEvent evt) {                                       
         txtNis.setText("");
         txtNama.setText("");
         txtTempatLahir.setText("");
         txtTanggalLahir.setText("");
         txtAlamat.setText("");
         btnSave.setEnabled(true);
         btnNew.setEnabled(false);
    }
    
  • Nah, kalau sudah sekarang kita coba btnSave dengan kode seperti di bawah ini :

  • private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {                                        
            //aksi untuk menyimpan data
            siswa s = new siswa();
            s.setNis(Integer.parseInt(txtNis.getText()));
            s.setNama(txtNama.getText());
            s.setTempatLahir(txtTempatLahir.getText());
            s.setTanggalLahir(Date.valueOf(txtTanggalLahir.getText()));
            s.setAlamat(txtAlamat.getText());
            if(sk.insert(s)>0){
                loadData();
                currentRow = siswaq.size()-1;
                bindData();
                JOptionPane.showMessageDialog(this, "Data Berhasil Disimpan dengan aman", "information", JOptionPane.INFORMATION_MESSAGE);
                txtNis.setEditable(false);
                txtNama.setEditable(false);
                txtTempatLahir.setEditable(false);
                txtTanggalLahir.setEditable(false);
                txtAlamat.setEditable(false);
                btnSave.setEnabled(false);
                btnNew.setEnabled(true);
            } else {
                JOptionPane.showMessageDialog(this, "Maaf masih ada yang tidak beres nich...", "Information", JOptionPane.INFORMATION_MESSAGE);
            }
        }
    
  • Untuk btnDelete dengan kode seperti di bawah ini :

  • private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {                                          
            // perintah hapus data
            siswa s = siswaq.get(currentRow);
            if (sk.delete(s)>0){
                loadData();
                currentRow = currentRow -1;
                bindData();
                JOptionPane.showMessageDialog(this, "Data berhasil dihapus", "Informasi", JOptionPane.INFORMATION_MESSAGE);
            } else {
                JOptionPane.showMessageDialog(this, "Data gagal dihapus", "Informasi", JOptionPane.INFORMATION_MESSAGE);
            }
    }
    
  • Nah, yang terakhir btnClose ubah aja dengan kode seperti di bawah ini :

  • private void btnCloseActionPerformed(java.awt.event.ActionEvent evt) {                                         
           this.dispose();
    }
    
  • Nah, sampai di situ dulu dech, coba Clean and Build dulu, setelah itu running file FrameSiswa jangan lupa databsenya harus udah diaktifkan dan dibuat dengan benar lhooo…. 😀 Happy Coding with Netbeans

Iklan

5 comments on “Koneksi MySQL dengan Java (Bagian Awal 2)

  1. agar ip, user dan password database tidak di hacking sama orang lain bagaimana mas caranya kalau menggunakan 2 komputer?

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s