Membuat CRUD / Select, Insert, Update, Delete dengan Java

JavaBlog Oke melanjutkan artikel saya sebelumnya yaitu Koneksi Database dengan Java , sekarang saya akan menjelasakan cara untuk melakukan operasi Select, Insert, Update, Delete database MySQL menggunakan Java. Seperti biasanya kita persiapkan alat tempurnya :
  1. JDK
  2. Netbeans / Editor Lainnya
  3. XAMPP / MySQL Service
oke setelah itu kita buat sebuah database atau melanjutkan database yang sudah dibuat dari artikel saya sebelumnya . lanjut kita buat sebuah tabel dengan nama t_siswa dengan 5 field Make Tabel   dengan detail fieldnya Make Field   lalu klik "Save" Oke database sudah terisi, saatnya kita masuk ke coding. Buka Netbeans -> New Project -> Java Application -> Masukan Nama Projek (Finish) Nama Projek   Setelah Project berhasil dibuat, Kita buat sebuah Class yang berfungsi untuk mengkoneksikan program ke database New Class KoneksiDBClass Klik Finish, nah class KoneksiDB telah sukses dibuat. selanjutnya untuk mengkoneksikan Program ke Database MySQL itu membutuhkan sebuah Library Tambahan, cara menambahkan library yaitu klik Kanan pada folder “Libraries” dalam projek anda Libraries             setelah itu pilih library “MySQL JDBC Driver” mysqljdbc                         Klik Add Library, oke semua kebutuhan sudah siap. Buka class KoneksiDB.java lalu tambahkan Coding ini di bawah Kode “package testcrud;”
import com.mysql.jdbc.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.logging.Level; import java.util.logging.Logger;
Kode diatas adalah coding untuk mengimport library-library yang dibutuhkan program. Selanjutnya tambahkan fungsi koneksi ini didalam constructor (public class KoneksiDB {} )
public static Connection setKoneksi() { String konString = "jdbc:mysql://localhost:3306/db_testkoneksi"; Connection koneksi = null; try { Class.forName("com.mysql.jdbc.Driver"); koneksi = (Connection) DriverManager.getConnection(konString,"root",""); System.out.println("Koneksi Berhasil"); } catch (ClassNotFoundException ex) { Logger.getLogger(KoneksiDB.class.getName()).log(Level.SEVERE, null, ex); System.out.println("Koneksi Gagal"); } catch (SQLException ex) { Logger.getLogger(KoneksiDB.class.getName()).log(Level.SEVERE, null, ex); System.out.println("Koneksi Gagal"); } return koneksi; }
tambahkan juga dibawah fungsi koneksi, yaitu fungsi untuk execute insert, update, delete
public static int execute(String SQL) { int status = 0; Connection koneksi = setKoneksi(); try { Statement st = koneksi.createStatement(); status = st.executeUpdate(SQL); } catch (SQLException ex) { Logger.getLogger(KoneksiDB.class.getName()).log(Level.SEVERE, null, ex); } return status; }
setelah itu juga kita buat fungsi untuk select data dengan perintah executeQuery
public static ResultSet executeQuery(String SQL) { ResultSet rs = null; Connection koneksi = setKoneksi(); try { Statement st = koneksi.createStatement(); rs = st.executeQuery(SQL); } catch (SQLException ex) { Logger.getLogger(KoneksiDB.class.getName()).log(Level.SEVERE, null, ex); } return rs; }
oke, selanjutnya kita buat sebuah Form dengan cara klik kanan di package aplikasi anda -> New -> JFrame Form New JFrame   masukan nama Form, saya berinama "frmMain" lalu klik Finish. dan akan muncul tampilan seperti ini JFrame   oke selanjutnya kita desain form nya Desain JFrame   selanjutnya kita ganti nama setiap objek dengan cari klik kanan di objeknya -> Change Variable Name -> Masukan nama objek (contoh: txtNIS,tblData,btnAdd,dll) setelah semua objek sudah diganti namanya kita buka bagian Source dari frmMain.java pertama kita akan buat prosedur untuk mengambil data (select) dari database, masukan coding ini dibawah constructor (public frmMain() {})
public void selectData() { String kolom[] = {"NIS","Nama","Jenis Kelamin","Kelas","Alamat"}; DefaultTableModel dtm = new DefaultTableModel(null, kolom); String SQL = "SELECT * FROM t_siswa"; ResultSet rs = KoneksiDB.executeQuery(SQL); try { while(rs.next()) { String NIS = rs.getString(1); String Nama = rs.getString(2); String JK = ""; if ("L".equals(rs.getString(3))) { JK = "Laki-Laki"; } else { JK = "Perempuan"; } String Kelas = rs.getString(4); String Alamat = rs.getString(5); String data[] = {NIS,Nama,JK,Kelas,Alamat}; dtm.addRow(data); } } catch (SQLException ex) { Logger.getLogger(frmMain.class.getName()).log(Level.SEVERE, null, ex); } tblData.setModel(dtm); }
Penjelasan : Line 1 - Membuat Prosedur dengan Nama selectData() Line 2 - Membuat Nama-Nama Kolom Table dengan Variabel Array kolom[] Line 3 - Meninstansiasi DefaultTableModel dengan parameter (baris, kolom) karena baris diambil dari database maka parameter pertama diisi null Line 4 - Query SQL untuk mengambil data Line 5 - Mengexecute query sql dengan fungsi executeQuery yang sudah dibuat pada class KoneksiDB Line 7 - Looping saat data didapatkan Line (8-17) - Mengambil data yang didapatkan dari Database ke variabel Line 18 - Memasukkan semua variabel kedalam satu array (row) Line 24 - Memasukkan data dari DefaultTableModel ke tblData/JTable (objek tabel yang ada di form) Silahkan di run. Masih kosong ya? ya karena kita belum memasukkan sebuah data ke table t_siswa. Sekarang kita coba buat fungsi untuk Insert data ke database, klik 2x objek button Add dan tambahkan coding ini didalamnya
if ("".equals(txtNIS.getText()) || "".equals(txtAlamat.getText()) || "".equals(txtKelas.getText()) || "".equals(txtNama.getText())) { JOptionPane.showMessageDialog(this, "Harap Lengkapi Data", "Error", JOptionPane.WARNING_MESSAGE); } else { String JK = ""; if (rdLaki.isSelected()) { JK = "L"; } else { JK = "P"; } String SQL = "INSERT INTO t_siswa (NIS,NamaSiswa,JenisKelamin,Kelas,Alamat) " + "VALUES('"+txtNIS.getText()+"','"+txtNama.getText()+"','"+JK+"'," + "'"+txtKelas.getText()+"','"+txtAlamat.getText()+"')"; int status = KoneksiDB.execute(SQL); if (status == 1) { JOptionPane.showMessageDialog(this, "Data berhasil ditambahkan", "Sukses", JOptionPane.INFORMATION_MESSAGE); selectData(); } else { JOptionPane.showMessageDialog(this, "Data gagal ditambahkan", "Sukses", JOptionPane.WARNING_MESSAGE); } }
Penjelasan : Line (1-4) - Validasi jika inputan masih kosong Line (6-11) - Pengecekan Radio button yang diselect Line (12 - 14) - Query Insert Line (15-17) - Jika Berhasil tampilkan pesan sukses Line 18 - Refresh data di table Line (19 - 21) - Jika gagal munculkan pesan gagal Nah, sekarang coba di run lagi dan tambahkan sebuah data ke database SuksesinsertData   Yee, data berhasil masuk ke database. sekarang kita buat fungsi untuk refresh, klik 2x button refresh dan didalamnya masukkan coding
selectData();
untuk load ulang data di table dari database. oke Insert dan Refresh sudah berhasil, selanjutnya kita buat fungsi untuk delete. Klik 2x button delete dan masukkan coding ini didalamnya
int baris = tblData.getSelectedRow(); if (baris != -1) { String NIS = tblData.getValueAt(baris, 0).toString(); String SQL = "DELETE FROM t_siswa WHERE NIS='"+NIS+"'"; int status = KoneksiDB.execute(SQL); if (status==1) { JOptionPane.showMessageDialog(this, "Data berhasil dihapus", "Sukses", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(this, "Data gagal dihapus", "Gagal", JOptionPane.WARNING_MESSAGE); } } else { JOptionPane.showMessageDialog(this, "Pilih Baris Data Terlebih dahulu", "Error", JOptionPane.WARNING_MESSAGE); }
Penjelasan : Line 1 - Mengambil Index baris tabel yang di pilih user Line (2-5) - Validasi jika user memilih data selanjutnya ambil Index atau Primary dari data di kasus ini adalah NIS dengan mengambil selectedRow dan index kolom pertama (0) Line (6-8) - Jika Sukses tampilkan pesan Line (9 - 11) - Jika gagal tampilkan pesan Line (13-15) - Jika user belum memilih baris tampilkan pesan Coba run, dan hasilnya Form   dan yang terakhir kita buat fungsi edit. tapi sebelum nya kita tambahkan dulu event handler untuk table jika salah satu data row ada yang ingin diedit, dengan cara klik kanan di Table Objek anda -> Events -> Mouse -> mouseClicked setelah itu akan masuk ke bagian source dari Table mouseClicked handler, didalamnya tambahkan coding ini
int baris = tblData.getSelectedRow(); if (baris != -1) { txtNIS.setText(tblData.getValueAt(baris, 0).toString()); txtNama.setText(tblData.getValueAt(baris, 1).toString()); if ("Laki-Laki".equals(tblData.getValueAt(baris, 2).toString())) { rdLaki.setSelected(true); } else { rdPerempuan.setSelected(true); } txtKelas.setText(tblData.getValueAt(baris, 3).toString()); txtAlamat.setText(tblData.getValueAt(baris, 4).toString()); }
Penjelasan : Line 1 - Mengambil Index baris tabel yang di pilih user Line (2-4) - Jika user memilih data, ambil data dan masukkan ke textfield sesuai dengan baris dan kolomnya Line (5-6) - jika value Jenis Kelamin = "Laki-Laki" set radioButton laki (rdLaki) menjadi true Line (7-8) - sebaliknya jika Jenis Kelamin = "Perempuan" set radioButton perempuan (rdPerempuan) menjadi true Line (9-10) - set data kelas dan alamat ke textfield masing-masing setelah itu coba di run, dan klik salah satu data pada tabel. dan data - data tersebut akan muncul di data sebelah. nah terakhir kita buat fungsi untuk edit data. Klik 2x button edit, dan tambahkan coding ini didalamnya
if ("".equals(txtNIS.getText()) || "".equals(txtAlamat.getText()) || "".equals(txtKelas.getText()) || "".equals(txtNama.getText())) { JOptionPane.showMessageDialog(this, "Harap Lengkapi Data", "Error", JOptionPane.WARNING_MESSAGE); } else { String JK = ""; if (rdLaki.isSelected()) { JK = "L"; } else { JK = "P"; } String SQL = "UPDATE t_siswa SET " + "NamaSiswa='"+txtNama.getText()+"'," + "JenisKelamin='"+JK+"',Kelas='"+txtKelas.getText()+"'," + "Alamat='"+txtAlamat.getText()+"' " + "WHERE NIS='"+txtNIS.getText()+"'"; int status = KoneksiDB.execute(SQL); if (status == 1) { JOptionPane.showMessageDialog(this, "Data berhasil diupdate", "Sukses", JOptionPane.INFORMATION_MESSAGE); selectData(); } else { JOptionPane.showMessageDialog(this, "Data gagal diupdate", "Sukses", JOptionPane.WARNING_MESSAGE); } }
Penjelasan : Line (1-4) - Validasi jika inputan masih kosong Line (6-11) - Pengecekan Radio button yang diselect Line (12 - 14) - Query Update Line (15-17) - Jika Berhasil tampilkan pesan sukses Line 18 - Refresh data di table Line (19 - 21) - Jika gagal munculkan pesan gagal Dan jika coba run aplikasinya, Tadaaa updateSukses Silahkan Download Source Codenya disini

Komentar

Postingan populer dari blog ini

Pilih Native atau Hybrid?