Assalamu'alaikum?, selamat pagi semua, selamat pagi Indonesia, apa kabar Anda hari ini?. semoga semuanya baik-baik saja, pada pagi hari ini saya akan mencoa berbagi sebuah coding java yang telah saya pelajari pada praktikum minggu kemarin, coding ini berisikan tombol edit, hapus dan menampilkan data dari database. baik lah kita tidak akan berlama-lama disini, lansung saja ke TKP, berikut codingnya selamat menyimak:


package pbo.praktikum.gui;
import javax.swing.*;


import java.sql.*;
import java.awt.*;


import javax.swing.table.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.text.*;
public class ValidasiGabungan extends JFrame{
JScrollPane jScrollPane1 = new JScrollPane();
JTable tabel = new JTable();
DefaultTableModel tabMode;
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel4 = new JLabel();
JLabel jLabel5 = new JLabel();
JTextField textKode = new JTextField();
JTextField textNama = new JTextField();
JTextField textAlmt = new JTextField();
JLabel jLabel3 = new JLabel();
Choice pilihKelas = new Choice();
Button button1 = new Button();
Button rubah = new Button();
Button hapus = new Button();
JTextPane caraPengguna = new JTextPane();
Connection konek;

public static void main (String args[]){
ValidasiGabungan ValidasiGabungan = new ValidasiGabungan();
ValidasiGabungan.setSize(400,460);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
int lebar = (screen.width - ValidasiGabungan.getSize().width)/2;
int tinggi = (screen.height - ValidasiGabungan.getSize().height)/2;

ValidasiGabungan.setTitle("Form Mahasiswa Teknik Informatika");
ValidasiGabungan.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ValidasiGabungan.setLocation(lebar,tinggi);
ValidasiGabungan.setResizable(false);
ValidasiGabungan.setVisible(true);
}

public ValidasiGabungan(){
tabel.setToolTipText("");
tabel.setVerifyInputWhenFocusTarget(false);
Object[] row = {"NIM","Nama Mahasiswa","Alamat","Kelas"};
tabMode = new DefaultTableModel(null,row);
jScrollPane1.setBounds(new Rectangle(13,195,365,100));
tabel.setModel(tabMode);
// Menambahkan MouseListener pada Tabel
tabel.addMouseListener(new java.awt.event.MouseAdapter(){
//Proses saat Tabel di klik
public void mouseClicked(MouseEvent e){
dapatData_dari_Tabel();
}
});
jLabel1.setHorizontalAlignment(SwingConstants.LEFT);
jLabel1.setText("NIM ");
jLabel1.setBounds(new Rectangle(10,13,120,15));
this.getContentPane().setLayout(null);
jLabel2.setBounds(new Rectangle(10,43,120,15));
jLabel2.setHorizontalAlignment(SwingConstants.LEFT);
jLabel2.setText("Nama Mahasiswa ");
jLabel4.setBounds(new Rectangle(10,73,120,15));
jLabel4.setHorizontalAlignment(SwingConstants.LEFT);
jLabel4.setText("Alamat ");
jLabel5.setBounds(new Rectangle(10,103,120,15));
jLabel5.setHorizontalAlignment(SwingConstants.LEFT);
jLabel5.setText("Kelas ");
textKode.setText(null);
textKode.setBounds(new Rectangle(130,13,187,21));
textKode.setDocument(new batasInput((byte)10).getFilter());
textNama.setText(null);
textNama.setBounds(new Rectangle(130,43,187,21));
textAlmt.setText(null);
textAlmt.setBounds(new Rectangle(130,73,187,21));
pilihKelas.setEnabled(true);
pilihKelas.setBounds(new Rectangle(130,103,121,22));
pilihKelas.addItem("IFA");
pilihKelas.addItem("IFB");
pilihKelas.addItem("IFC");
pilihKelas.addItem("IFD");
jLabel3.setText("Daftar para Mahasiswa yang telah tersimpan sebelumnya");
jLabel3.setBounds(new Rectangle(29,169,343,15));
button1.setLabel("Simpan");
button1.setBounds(new Rectangle(30,137,93,24));
//Menambahkan Actin Listener
button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//Method yang dipanggil saat tombol ditekan
cekAndSaveData(e);
}
});
rubah.setActionCommand("");
rubah.setEnabled(false);
rubah.setLabel("Rubah");
rubah.setBounds(new Rectangle(140,137,93,24));
// Menambahkan Actin Listener pada tombol RUBAH
rubah.addActionListener(new java.awt.event.ActionListener(){
//Proses saat tombol RUBAH diklik
public void actionPerformed(ActionEvent e){
proses_RubahData();
}
});
hapus.setActionCommand("");
hapus.setEnabled(false);
hapus.setLabel("Hapus");
hapus.setBounds(new Rectangle(250,137,93,24));
// Menambahkan Action Listener pada tombol HAPUS
hapus.addActionListener(new java.awt.event.ActionListener(){
// Proses saat tombol HAPUS di klik
public void actionPerformed(ActionEvent e){
proses_hapusData();
}
});
caraPengguna.setEditable(false);
caraPengguna.setText("Cara Menggunakan :\n" +
"1. Masukkan string, lalu klik tombol 'Simpan' untuk menyimpan data ke database.\n" +
"2. Klik tombol 'Rubah', jika ingin merubah isi record.\n" +
"3. Klik tombol 'Hapus', jika ingin menghapus isi record.");
caraPengguna.setBounds(new Rectangle(13,300,367,110));
this.getContentPane().add(jScrollPane1, null);
jScrollPane1.getViewport().add(tabel, null);
this.getContentPane().add(jLabel1,null);
this.getContentPane().add(jLabel2,null);
this.getContentPane().add(jLabel4,null);
this.getContentPane().add(jLabel5,null);
this.getContentPane().add(textKode,null);
this.getContentPane().add(textNama,null);
this.getContentPane().add(textAlmt,null);
this.getContentPane().add(jLabel3,null);
this.getContentPane().add(pilihKelas, null);
this.getContentPane().add(button1,null);
this.getContentPane().add(rubah, null);
this.getContentPane().add(hapus, null);
this.getContentPane().add(caraPengguna, null);
//Memanggil method untuk koneksi database dan daftar kode yang telah tersimpan
koneksiDatabase();
daftarKode();
}
/**
*Method koneksiDatabase
*Untuk melakukan koneksi dengan Database Server
*/
public void koneksiDatabase() {
//Mencoba memanggil Driver JDBC
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("Sukses Driver JDBC ditemukan...");
//Mencoba melakukan koneksi dengan database
try {
String db = "mahasiswa";
String url = "jdbc:mysql://localhost/" + db;
String user = "root";
String pass = "";
konek = DriverManager.getConnection(url,user,pass);
System.out.println("Sukses Koneksi...");
}
//Gagal Koneksi dengan database
catch (SQLException se){
System.out.println("Koneksi Gagal= "+se);
}
}
//Gagal Memanggil Driver JDBC
catch (ClassNotFoundException cnfe){
System.out.println("Class tidak ditemukan..Error: "+cnfe);
}
}//Akhir method koneksiDarabase()
/**
* Method daftarKode()
* Untuk menampilkan daftar kode dan nama siswa yang telah tersimpan di database
*/
public void daftarKode() {
hapusTabel();
//Mencoba mengirim Statement SQL
try {
String sql = "Select NIM,NAMA,Alamat,Kelas from data";
Statement stat = konek.createStatement();
ResultSet set = stat.executeQuery(sql);
while (set.next()){
String nim = set.getString("nim");
String nama_mahasiswa = set.getString("nama_mahasiswa");
String alamat = set.getString("alamat");
String kelas = set.getString("kelas");
String[] data = {nim, nama_mahasiswa, alamat, kelas};
tabMode.addRow(data);
}
stat.close();
}
//Kesalahan pengiriman Statement SQL
catch (SQLException se){
System.out.println("SQL salah = "+se);
}
catch (Exception e){
System.out.println("Pesan Error = "+e);
}
}//Akhir method daftarKode()
/**
* Method hapusTabel
* Untuk menghapus semua data yang terdapat pada tabel
*/
public void hapusTabel(){
int row = tabMode.getRowCount();
for (int i=0; i<row; i++){
tabMode.removeRow(0);
}
}
/**
* Method cekAndSaveData(ActinEvent e)
* Untuk melakukan pemeriksaan apakah data yang dimasukkan valid atau tidak-
* Jika valid, data tersebut disimpan
* tetapi jika tidak valid maka menampilkan pesan kesalahan
* @param e: Actin Event
*/
void cekAndSaveData(ActionEvent e){
//Mencoba Mengirim Statement SQL
try {
PreparedStatement stat = konek.prepareStatement(
"Insert Into data values(?,?,?,?)");
try {
stat.setString(1, textKode.getText());
stat.setString(2, textNama.getText());
stat.setString(3, textAlmt.getText());
stat.setString(4, pilihKelas.getSelectedItem());
stat.executeUpdate();
}
//Gagal Mengirim Statement SQL (Data tidak valid)
catch (SQLException se){
System.out.println("Gagal Menyimpan..Pesan Error="+se);
JOptionPane.showMessageDialog(null, "Kode yang Anda masukkan telah ada sebelumnya \nGagal disimpan.. Coba Lagi\nPesan Error :\n" +
"<html><font color=#FF0000>"+se+"</font></html>");
textKode.setFocusable(true);
}
daftarKode();
stat.close();
}
catch(Exception er) {
System.out.println("Pesan Error ="+er);
}
}//Akhir Method cekAndSaveData(ActiontEvent e)
/**
* Membuat Kelas Untuk membatasi Input yang masuk
*/
class batasInput {
byte length;
PlainDocument filter;
public batasInput(byte length) {
this.length = length;
}
public PlainDocument getFilter() {
filter = new javax.swing.text.PlainDocument() {
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
int ab = textKode.getText().length();
if (ab < length) {
super.insertString(offs, str, a);
}
}
};
return filter;
}
}
void dapatData_dari_Tabel() {
int row = tabel.getSelectedRow();
// Mengambil data-data yang dipilih pada TABEL
String Nim = tabMode.getValueAt(row, 0).toString();
String Nama_Mahasiswa = tabMode.getValueAt(row, 1).toString();
String Alamat = tabMode.getValueAt(row, 2).toString();
String Kelas = tabMode.getValueAt(row, 3).toString();
textKode.setText(Nim);
textNama.setText(Nama_Mahasiswa);
textAlmt.setText(Alamat);
pilihKelas.select(Kelas);
// Apabila data tidak dipilih
if (textKode.getText().equals("")){
rubah.setEnabled(false);
hapus.setEnabled(false);
textKode.setEnabled(false);
textNama.setEnabled(false);
textAlmt.setEnabled(false);
pilihKelas.setEnabled(false);
}
// Apabila data dipilih
else {
rubah.setEnabled(true);
hapus.setEnabled(true);
textKode.setEnabled(false);
textNama.setEnabled(true);
textAlmt.setEnabled(true);
pilihKelas.setEnabled(true);
textNama.requestFocus();
}
}
/**
* Method proses_RubahData()
* Untuk melakukan modifikasi data
*/
public void proses_RubahData(){
// Konfirmasi sebelum melakukan perubahan data
int ok = JOptionPane.showConfirmDialog(null, "Anda Yakin Ingin Memodifikasi Data\nDengan Kode = "+textKode.getText()+"", "Konfirmasi Memodifikasi Data", JOptionPane.YES_NO_OPTION);
// Apabila tombol OK ditekan
if (ok == 0){
try{
String sql = "UPDATE data SET nama_mahasiswa = ?, alamat = ?, kelas = ? WHERE nim = "+ textKode.getText()+"";
PreparedStatement stat = konek.prepareStatement(sql);
try{
stat.setString(1, textNama.getText());
stat.setString(2, textAlmt.getText());
stat.setString(3, pilihKelas.getSelectedItem());
stat.executeUpdate();
daftarKode();
textKode.setText("");
textNama.setText("");
textAlmt.setText("");
rubah.setEnabled(false);
textKode.setEnabled(true);
textNama.setEnabled(true);
textAlmt.setEnabled(true);
pilihKelas.setEnabled(true);
}
catch(SQLException se){}
}
catch(SQLException se){}
}
}
/**
* Method proses_hapusData()
* Untuk melakukan modifikasi data
*/
public void proses_hapusData(){
// Konfirmasi sebelum melakukan penghapusan data
int ok = JOptionPane.showConfirmDialog(null,"Anda Yakin Ingin Menghapus Data\nDengan NIM = " + textKode.getText() + "","Konfirmasi Menghapus Data", JOptionPane.YES_NO_OPTION);
// Apabila tombol OK ditekan
if (ok == 0){
try {
String sql = "DELETE FROM data WHERE nim = " +
textKode.getText() + "";
PreparedStatement stat = konek.prepareStatement(sql);
stat.executeUpdate();
daftarKode();
textKode.setText("");
textNama.setText("");
textAlmt.setText("");
hapus.setEnabled(false);
}
catch (SQLException se){
System.out.println("Gagal Hapus.. Pesan Error = " + se);
JOptionPane.showMessageDialog(null, "Gagal Hapus Data.. Coba Lagi\nPesan Error :\n"
+ "<html><font color=#FF0000>" + se + "</font></html>");
textKode.setFocusable(true);
}
}
}

}//Akhir Kelas ValidasiPrimaryKey

Baiklah mungkin itu saja yang bisa saya sampaikan pada kesempatan kali ini semoga bisa bermanfa'at untuk sobat-sobat pembaca semuanya.
Terima Kasih. Wassalamu'alaikum Wr Wb.

Sumber Referensi : Praktikum Pemrograman Berorientasi Objek