Pada percobaan kali ini saya membuat aplikasi untuk CRUD *Create, Read, Update, Delete* pada Java dengan menggunakan JTable. untuk editor bisa menggunakan editor GUI seperti netBeans, atau editor text misalnya Notepad++, Sublime, eclipse, dll.
Langsung saja, berikut adalah kode lengkap nya :
import javax.swing.*; import javax.swing.table.*; import java.sql.*; import java.awt.event.*; public class CRUD extends JFrame implements ActionListener, MouseListener{ //Membentuk Komponen JButton bt1 = new JButton("Simpan"); JButton bt2 = new JButton("New"); JButton bt3 = new JButton("Edit"); JButton bt4 = new JButton("Hapus"); JButton bt5 = new JButton("Reset"); JLabel lb1 = new JLabel("NIS"); JLabel lb2 = new JLabel("Nama"); JLabel lb3 = new JLabel("Alamat"); JScrollPane sp1 = new JScrollPane(); JTable tabel1 = new JTable(); JTextField tf1 = new JTextField(""); JTextField tf2 = new JTextField(""); JTextField tf3 = new JTextField(""); Connection con = null; Statement stm; ResultSet rs; String sql; Object obj[][]; int jumlah = 0; /** Constructor */ public CRUD() { //Mengatur Form setSize(435, 400); setTitle(":: Form Inputan Data ::"); setLayout(null); setDefaultCloseOperation(EXIT_ON_CLOSE); setResizable(false); lb1.setBounds(10, 30, 40, 14); add(lb1); tf1.setBounds(50, 30, 160, 20); add(tf1); lb2.setBounds(10, 50, 40, 14); add(lb2); tf2.setBounds(50, 50, 160, 20); add(tf2); lb3.setBounds(10, 70, 40, 14); add(lb3); tf3.setBounds(50, 70, 160, 20); add(tf3); bt1.setBounds(10, 120, 90, 23); bt1.addActionListener(this); add(bt1); bt5.setBounds(310, 120, 80, 23); bt5.addActionListener(this); add(bt5); //tabel1.setCellSelectionEnabled(false); tabel1.setModel(new DefaultTableModel( new Object [][] { {null, null, null} }, new String [] { "NIS", "Nama", "Alamat" } )); tabel1.addMouseListener(this); sp1.setBounds(10, 150, 380, 160); sp1.setViewportView(tabel1); add(sp1); bt2.setBounds(100, 120, 70, 23); add(bt2); bt2.addActionListener(this); bt3.setBounds(170, 120, 60, 23); bt3.addActionListener(this); add(bt3); bt4.setBounds(230, 120, 80, 23); bt4.addActionListener(this); add(bt4); tampil(); bt1.setEnabled(true); bt2.setEnabled(false); bt3.setEnabled(false); bt4.setEnabled(false); bt5.setEnabled(true); } public void actionPerformed(ActionEvent ev){ String aksi = ev.getActionCommand(); if(aksi.equals("Simpan")){ if(!tf1.getText().equals("") && !tf2.getText().equals("") && !tf3.getText().equals("")){ simpan(); tampil(); bersih(); }else{ JOptionPane.showMessageDialog(null, "Data tidak boleh ada yang kosong !!"); } }else if(aksi.equals("New")){ bt1.setEnabled(true); bt2.setEnabled(false); bt3.setEnabled(false); bt4.setEnabled(false); bt5.setEnabled(true); bersih(); }else if(aksi.equals("Edit")){ if(!tf1.getText().equals("")){ edit(); tampil(); bersih(); bt1.setEnabled(true); bt2.setEnabled(false); bt3.setEnabled(false); bt4.setEnabled(false); bt5.setEnabled(true); } }else if(aksi.equals("Hapus")){ if(tf1.getText().equals("")){ JOptionPane.showMessageDialog(null, "Pilih dulu data yang akan di hapus !!"); }else if(JOptionPane.showConfirmDialog(null, "Apakah mau di hapus?", "Konfirmasi", JOptionPane.OK_CANCEL_OPTION) == 0){ hapus(); tampil(); bersih(); } }else if(aksi.equals("Reset")){ bersih(); } } public void mouseClicked(MouseEvent ev) { tf1.setText(tabel1.getValueAt(tabel1.getSelectedRow(), 0).toString()); tf2.setText(tabel1.getValueAt(tabel1.getSelectedRow(), 1).toString()); tf3.setText(tabel1.getValueAt(tabel1.getSelectedRow(), 2).toString()); tf1.setEnabled(false); bt1.setEnabled(false); bt2.setEnabled(true); bt3.setEnabled(true); bt4.setEnabled(true); bt5.setEnabled(false); } public void mouseExited(MouseEvent ev){} public void mouseEntered(MouseEvent ev){} public void mouseReleased(MouseEvent ev){} public void mousePressed(MouseEvent ev){} public void bersih(){ tf1.setText(""); tf2.setText(""); tf3.setText(""); tf1.setEnabled(true); } public void koneksi(){ String db = "crud"; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/"+db, "root", ""); //JOptionPane.showMessageDialog(null, "Koneksi ke db : "+db+" berhasil "); }catch(Exception ex){ JOptionPane.showMessageDialog(null, "Koneksi gagal karena "+ex.getMessage()); } } public void tampil(){ koneksi(); try{ sql = "SELECT count(*) FROM siswa"; stm = con.createStatement(); rs = stm.executeQuery(sql); while(rs.next()){ jumlah = rs.getInt(1); } obj = new Object[jumlah][3]; sql = "SELECT * FROM siswa ORDER BY nis ASC"; stm = con.createStatement(); rs = stm.executeQuery(sql); int a = 0; while(rs.next()){ obj[a][0] = rs.getString(1); obj[a][1] = rs.getString(2); obj[a][2] = rs.getString(3); a++; } tabel1.setModel(new DefaultTableModel( obj, new String [] { "NIS", "Nama", "Alamat" } )); }catch(Exception ex){ JOptionPane.showMessageDialog(null, "View gagal karena "+ex.getMessage()); } } public void simpan(){ koneksi(); try{ sql = "INSERT INTO siswa VALUES('"+tf1.getText()+"', '"+tf2.getText()+"', '"+tf3.getText()+"')"; stm = con.createStatement(); stm.executeUpdate(sql); }catch(Exception ex){ JOptionPane.showMessageDialog(null, "Save gagal karena "+ex.getMessage()); } } public void edit(){ koneksi(); try{ sql = "UPDATE siswa SET nama = '"+tf2.getText()+"', alamat = '"+tf3.getText()+"' WHERE nis = '"+tf1.getText()+"'"; stm = con.createStatement(); stm.executeUpdate(sql); }catch(Exception ex){ JOptionPane.showMessageDialog(null, "Gagal update karena "+ex.getMessage()); } } public void hapus(){ koneksi(); try{ sql = "DELETE FROM siswa WHERE nis = '"+tf1.getText()+"'"; stm = con.createStatement(); stm.executeUpdate(sql); }catch(Exception ex){ JOptionPane.showMessageDialog(null, "Gagal delete karena "+ex.getMessage()); } } public static void main(String args[]) { new CRUD().setVisible(true); } }Baris 1 – 4 merupakan import untuk memanggil beberapa method yang dibutuhkan :
import javax.swing.*; import javax.swing.table.*; import java.sql.*; import java.awt.event.*;Baris 6 merupakan deklarasi class bernama CRUD, baris 7 – 26 untuk deklarasi awal komponen yang akan di tambahkan ke form :
... public class CRUD extends JFrame implements ActionListener, MouseListener{ //Membentuk Komponen JButton bt1 = new JButton("Simpan"); JButton bt2 = new JButton("New"); JButton bt3 = new JButton("Edit"); JButton bt4 = new JButton("Hapus"); JButton bt5 = new JButton("Reset"); JLabel lb1 = new JLabel("NIS"); JLabel lb2 = new JLabel("Nama"); JLabel lb3 = new JLabel("Alamat"); JScrollPane sp1 = new JScrollPane(); JTable tabel1 = new JTable(); JTextField tf1 = new JTextField(""); JTextField tf2 = new JTextField(""); JTextField tf3 = new JTextField(""); Connection con = null; Statement stm; ResultSet rs; String sql; Object obj[][]; int jumlah = 0; ...Baris 29 – 97 adalah Constructor dari Class CRUD :
..... /** Constructor */ public CRUD() { //Mengatur Form setSize(435, 400); setTitle(":: Form Inputan Data ::"); setLayout(null); setDefaultCloseOperation(EXIT_ON_CLOSE); setResizable(false); lb1.setBounds(10, 30, 40, 14); add(lb1);</pre> tf1.setBounds(50, 30, 160, 20); add(tf1); lb2.setBounds(10, 50, 40, 14); add(lb2); tf2.setBounds(50, 50, 160, 20); add(tf2); lb3.setBounds(10, 70, 40, 14); add(lb3); tf3.setBounds(50, 70, 160, 20); add(tf3); bt1.setBounds(10, 120, 90, 23); bt1.addActionListener(this); add(bt1); bt5.setBounds(310, 120, 80, 23); bt5.addActionListener(this); add(bt5); //tabel1.setCellSelectionEnabled(false); tabel1.setModel(new DefaultTableModel( new Object [][] { {null, null, null} }, new String [] { "NIS", "Nama", "Alamat" } )); tabel1.addMouseListener(this); sp1.setBounds(10, 150, 380, 160); sp1.setViewportView(tabel1); add(sp1); bt2.setBounds(100, 120, 70, 23); add(bt2); bt2.addActionListener(this); bt3.setBounds(170, 120, 60, 23); bt3.addActionListener(this); add(bt3); bt4.setBounds(230, 120, 80, 23); bt4.addActionListener(this); add(bt4); tampil(); bt1.setEnabled(true); bt2.setEnabled(false); bt3.setEnabled(false); bt4.setEnabled(false); bt5.setEnabled(true); } .....Baris 99 – 140 merupakan event tombol untuk melakukan Tambah, Baru, Edit, Hapus, Reset :
..... public void actionPerformed(ActionEvent ev){ String aksi = ev.getActionCommand(); if(aksi.equals("Simpan")){ if(!tf1.getText().equals("") && !tf2.getText().equals("") && !tf3.getText().equals("")){ simpan(); tampil(); bersih(); }else{ JOptionPane.showMessageDialog(null, "Data tidak boleh ada yang kosong !!"); } }else if(aksi.equals("New")){ bt1.setEnabled(true); bt2.setEnabled(false); bt3.setEnabled(false); bt4.setEnabled(false); bt5.setEnabled(true); bersih(); }else if(aksi.equals("Edit")){ if(!tf1.getText().equals("")){ edit(); tampil(); bersih(); bt1.setEnabled(true); bt2.setEnabled(false); bt3.setEnabled(false); bt4.setEnabled(false); bt5.setEnabled(true); } }else if(aksi.equals("Hapus")){ if(tf1.getText().equals("")){ JOptionPane.showMessageDialog(null, "Pilih dulu data yang akan di hapus !!"); }else if(JOptionPane.showConfirmDialog(null, "Apakah mau di hapus?", "Konfirmasi", JOptionPane.OK_CANCEL_OPTION) == 0){ hapus(); tampil(); bersih(); } }else if(aksi.equals("Reset")){ bersih(); } } .....Berikut adalah source code lengkap nya yang bisa di download :
pada file tersebut terdapat 2 file antara lain “CRUD.java” dan “crud.sql”. crud.sql merupakan database MySQL silahkan import ke database dengan nama “crud”. cara menjalankanya silahkan compile crud.java kemudian run dengan perintah java.