Saat ini kita akan belajar membuat CRUD Java Desktop menggunakan Netbeans, database yang akan digunakan adalah mysql pada artikel berikut terdapat beberapa tahap yang akan kita lakukan diantaranya adalah :
- Membuat Database
- Membuat Project
- Membuat Koneksi Database
- Membuat Design Windows Form
- Membuat Proses Tampil Data (Read)
- Membuat Proses Simpan Data (Create)
- Membuat Proses Ubah Data (Update)
- Membuat Proses Hapus Data (Delete)
Membuat Database
CREATE DATABASE pos;
use pos;
CREATE TABLE barang (
kode_barang varchar(20) PRIMARY KEY,
nama_barang varchar(200) DEFAULT NULL,
harga double NOT NULL,
satuan varchar(20) DEFAULT NULL,
stok double NOT NULL
);
Membuat Project
Membuat Koneksi Database
untuk membuat koneksi tambahkan terlebih dahulu sebuah package dengan nama Konfigurasi setelah itu buatlah sebuah class baru dengan nama Koneksi.java masukan code berikut agar aplikasi yang kita buat dapat terkoneksi ke database :
package Konfigurasi;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author Jajang Nurjaman
*/
public class Koneksi {
public static Connection getConnection() {
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/pos";
String user = "root";
String password = "";
try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
System.out.println(e);
}
return conn;
}
public static void main(String[] args) {
try {
Connection c = Koneksi.getConnection();
System.out.println(String.format("Connected to database %s " + "successfully.", c.getCatalog()));
} catch (SQLException e) {
System.out.println(e);
}
}
}
Jika sudah sekarang coba tes koneksi yang telah dibuat dengan menekan tombol Shift+F6 atau bisa melalui menu Run – Run File hasilnya harus seperti berikut :
Membuat Design Windows Form
- jTextField_kode_barang
- jTextField_nama_barang
- jTextField_harga
- jTextField_satuan
- jTextField_stok
- jTable_barang
- jButton_baru
- jButton_simpan
- jButton_edit
- jButton_hapus
Membuat Proses Tampil Data (Read)
untuk menampilkan data kita akan membuat fungsi agar dapat dipanggil secara berulang – ulang dan namun sebelum membuatnya kita perlu menambahkan/menyesuaikan header untuk pemanggilan library yang digunakan, berikut adalah header yang akan kita buat :
package Form;
import Konfigurasi.Koneksi;
import java.sql.Connection;
import java.sql.SQLException;
import javax.swing.table.DefaultTableModel;
Selanjutnya tambahkan deklarasi variabel dan fungsi Tampil_data seperti berikut :
private DefaultTableModel DftTblModel_barang;
private String SQL;
public void TampilData() {
DftTblModel_barang = new DefaultTableModel();
DftTblModel_barang.addColumn("KODE BARANG");
DftTblModel_barang.addColumn("NAMA BARANG");
DftTblModel_barang.addColumn("HARGA");
DftTblModel_barang.addColumn("SATUAN");
DftTblModel_barang.addColumn("STOK");
jTable_barang.setModel(DftTblModel_barang);
Connection conn = Koneksi.getConnection();
try {
java.sql.Statement stmt = conn.createStatement();
SQL = "select * from barang";
java.sql.ResultSet res = stmt.executeQuery(SQL);
while (res.next()) {
DftTblModel_barang.addRow(new Object[]{
res.getString("kode_barang"),
res.getString("nama_barang"),
res.getString("harga"),
res.getString("satuan"),
res.getString("stok")
});
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
jangan lupa tambahkan library MySQL JDBC Driver agar project yang kita buat dapat terkoneksi kedatabase dengan cara klik kanan Libraries->Add Library->MySQL JDBC Driver
public form_barang() {
initComponents();
this.TampilData();
}
Sebelum dilakukan pengetesan tambahkan beberapa baris record kedalam tabel barang, agar ketika dijalankan jika berhasil maka data akan tampil. hasil setelah dijalankan seperti berikut :
Membuat Simpan Data
Untuk melakukan penyimpanan data tambahkan coding berikut pada event tombol simpan dengan cara klik kanan tombol simpan – Events – Action – ActionPerformed kemudian masukan coding berikut :
try {
Connection conn = Koneksi.getConnection();
PreparedStatement stmt = conn.prepareStatement("insert into barang(kode_barang, nama_barang, harga, satuan, stok) values(?,?,?,?,?)");
stmt.setString(1, jTextField_kode_barang.getText());
stmt.setString(2, jTextField_nama_barang.getText());
stmt.setString(3, jTextField_harga.getText());
stmt.setString(4, jTextField_satuan.getText());
stmt.setString(5, jTextField_stok.getText());
stmt.executeUpdate();
JOptionPane.showMessageDialog(null, "Data berhasil disimpan", "Pesan", JOptionPane.INFORMATION_MESSAGE);
TampilData();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
Membuat Edit Data
Sebelum melakukan edit data kita perlu memilih data mana yang akan diedit, untuk itu kita perlu menambahkan coding pada event table saat diklik agar muncul pada textfield berikut cara memberikan event pada saat table diklik : klik kanan table – Mouse – mouse click kemudian masukan coding berikut :
int baris = jTable_barang.getSelectedRow();
jTextField_kode_barang.setText(DftTblModel_barang.getValueAt(baris, 0).toString());
jTextField_nama_barang.setText(DftTblModel_barang.getValueAt(baris, 1).toString());
jTextField_harga.setText(DftTblModel_barang.getValueAt(baris, 2).toString());
jTextField_satuan.setText(DftTblModel_barang.getValueAt(baris, 3).toString());
jTextField_stok.setText(DftTblModel_barang.getValueAt(baris, 4).toString());
selanjutnya Untuk melakukan edit data tambahkan coding berikut pada event tombol edit dengan cara klik kanan tombol Edit – Events – Action – ActionPerformed kemudian masukan coding berikut :
try {
Connection conn = Koneksi.getConnection();
PreparedStatement stmt = conn.prepareStatement("update barang set nama_barang=?, harga=?, satuan=?, stok=? where kode_barang=?");
stmt.setString(1, jTextField_nama_barang.getText());
stmt.setString(2, jTextField_harga.getText());
stmt.setString(3, jTextField_satuan.getText());
stmt.setString(4, jTextField_stok.getText());
stmt.setString(5, jTextField_kode_barang.getText());
stmt.executeUpdate();
JOptionPane.showMessageDialog(null, "Data berhasil diubah", "Pesan", JOptionPane.INFORMATION_MESSAGE);
TampilData();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
Membuat Hapus Data
Sama halnya seperti edit data kita perlu melakukan pemilihan data mana yang akan dihapus, tapi karena sebelumnya kita telah menambahkan coding pilih data maka kita tidak perlu menambahkan coding lagi, langsung saja untuk melakukan penyimpanan data tambahkan coding berikut pada event tombol hapus dengan cara klik kanan tombol Hapus – Events – Action – ActionPerformed kemudian masukan coding berikut :
Connection conn = Koneksi.getConnection();
int confirm = JOptionPane.showConfirmDialog(null, "Apakah anda yakin ingin menghapus data tersebut?", "Konfirmasi", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (confirm == 0) {
try {
java.sql.PreparedStatement stmt = conn.prepareStatement("delete from barang where kode_barang ='" + jTextField_kode_barang.getText() + "'");
stmt.executeUpdate();
JOptionPane.showMessageDialog(null, "Data berhasil dihapus", "Pesan", JOptionPane.INFORMATION_MESSAGE);
TampilData();
jTextField_kode_barang.setText("");
jTextField_nama_barang.setText("");
jTextField_harga.setText("");
jTextField_satuan.setText("");
jTextField_stok.setText("");
jTextField_kode_barang.requestFocus();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal di hapus" + e.getMessage(), "Pesan", JOptionPane.ERROR_MESSAGE);
}
}
