
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 :
- JDK
- Netbeans / Editor Lainnya
- 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

dengan detail fieldnya

lalu klik "Save"
Oke database sudah terisi, saatnya kita masuk ke coding.
Buka Netbeans -> New Project -> Java Application -> Masukan Nama Projek (Finish)

Setelah Project berhasil dibuat, Kita buat sebuah Class yang berfungsi untuk mengkoneksikan program ke database

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

setelah itu pilih library “MySQL JDBC Driver”

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

masukan nama Form, saya berinama "frmMain" lalu klik Finish. dan akan muncul tampilan seperti ini

oke selanjutnya kita desain form nya

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

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

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

Silahkan Download Source Codenya
disini
Komentar
Posting Komentar