Aplikasi CRUD (Create, Read, Update, Delete) dengan Java Netbeans dan MySQL

Aplikasi crud merupakan dasar pemgraman atau dasar sebuah aplikasi yang digunakan dalam aplikasi proses input dan output dalam hal pengisian formulir dan kemudian akan muncul sebuah laporan. Dengan menguasai aplikasi crud ini maka akan memudahkan dalam hal pembuatan aplikasi lainnya misalkan membuat aplikasi perkantoran sudah tentu didalamnya terkumpul kumpulan crud yang menjadi beberapa inputan.

Pada pembahasan kali ini kita akan membahas cara membuat aplikasi crud dengan menggunakan java beserta software idenya yaitu netbeans dan program database untuk menyimpan data yaitu mysql. untuk aplikasi netbeans bisa didapatkan di Netbeans selanjutnya aplikasi mysql bisa didapatkan di MySQL selanjutnya anda perlu membuat database pada mysql console dengan nama database basisdata dan nama tabelnya crud beserta fieldnya yaitu: kode, nama, tgl, jk dan alamat.

CREATE DATABASE IF NOT EXISTS `basisdata` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `basisdata`;

CREATE TABLE IF NOT EXISTS `crud` (
  `kode` int(5) NOT NULL,
  `nama` varchar(45) NOT NULL,
  `tgl` varchar(30) NOT NULL,
  `jk` varchar(20) NOT NULL,
  `alamat` text NOT NULL,
  PRIMARY KEY (`kode`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `crud` (`kode`, `nama`, `tgl`, `jk`, `alamat`) VALUES
(677, 'As', 'Tue Jan 07 14:43:06 WIT 2014', 'Perempuan', 'jenewa'),
(3423, 'Ghazali', 'Thu Jan 09 19:53:58 WIT 2014', 'Laki-laki', 'baroh'),
(6577, 'Annisa', 'Tue Jan 11 14:27:07 WIT 2000', 'Perempuan', 'Padang Tiji');

Kemudian buatlah sebuah project baru pada netbeans dengan klik new project -> pilih java aplication -> klik next -> buat nama aplikasi dengan nama AplikasiCRUD hilangkan conteng pada create main class. kemudian buahlah file koneksinya untuk koneksi dari database mysql kepada aplikasi java dengan klik pada package kemudian klik kanan -> pilih new -> pilih java class berinama koneksi makan jadi dengan nama koneksi.php.

public class koneksi {
    private Connection koneksi;
    public Connection connect(){
        try {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("Berhasil Koneksi");
        } catch (ClassNotFoundException ex) {
            System.out.println("Gagal Koneksi "+ex);
        }
        String url = "jdbc:mysql://localhost:3306/basisdata";
        try {
            koneksi = DriverManager.getConnection(url, "root", "kodokijo");
            System.out.println("Berhasil Koneksi Database");
        } catch (SQLException ex) {
            System.out.println("Gagal Koneksi Database "+ex);
        }
        return koneksi;
    }
    
}

Buatlah file baru dengan klik kanan pada package -> pilih new -> pilih jframeform kemudian berinama sesuka hati atau disini penulis menggunakan nama jframeform dengan nama formcrud akan menjadi formcrud.java dan desain seperti gambar dibawah ini.

formcrud-452016
Selanjutnya klik source dan isi didalam public class formcrud extends javax.swing.JFrame dengan deklarasi class untuk memanggil koneksi database yang dibawah ini.

private Connection conn = new koneksi().connect();
private DefaultTableModel tabmode;

Buatlah class untuk form yang mana akan digunakan untuk pengaktifan, non_aktifkan dan kosongkan pada form agar tidak langsung terbuka demi menjaga data agar tidak dihapus sembarangan.

protected void non_aktif(){
        jTextArea1.setEnabled(false);
        jTextField1.setEnabled(false);
        jTextField2.setEnabled(false);
        jRadioButton1.setEnabled(false);
        jRadioButton2.setEnabled(false);
        jDateChooser1.setEnabled(false);
    }
    protected void aktif(){
        jTextArea1.setEnabled(true);
        jTextField1.setEnabled(true);
        jTextField2.setEnabled(true);
        jRadioButton1.setEnabled(true);
        jRadioButton2.setEnabled(true);
        jDateChooser1.setEnabled(true);
        jTextField1.requestFocus();
    }
    protected void kosong(){
        jTextArea1.setText("");
        jTextField1.setText("");
        jTextField2.setText("");
    }

Untuk menampilkan data dari database mysql server kedalam tabel yang kita desain pada form maka kopas syntax javanya ada dibawah ini.

protected void datatabel(){
        Object[] Baris ={"Kode","Nama","Lahir","Kelamin","Alamat"};
        tabmode = new DefaultTableModel(null, Baris);
        jTable1.setModel(tabmode);
        String sql = "select * from crud";
        try {
            Statement stat = conn.createStatement();
            ResultSet hasil = stat.executeQuery(sql);
            while(hasil.next()){
                String kode = hasil.getString("kode");
                String nama = hasil.getString("nama");
                String tgl = hasil.getString("tgl");
                String jk = hasil.getString("jk");
                String alamat = hasil.getString("alamat");
                String[] data={kode,nama,tgl,jk,alamat};
                tabmode.addRow(data);
            }
        } catch (Exception e) {
        }
    }

Setelah itu baru untuk bisa dijalankan class class yang ada diatas maka yang diperlukan memanggil class dalam konstruktor java formcruid tadi.

public formcrud() {
        initComponents();
        non_aktif();
        datatabel();
}

Selanjutnya kita akan buat button button untuk berfungsi mulai button simpan, update, hapus dan bersih dengan klik kanan pada button -> pilih event -> pilih actions -> pilih actionperformated seperti dibawah ini.

button simpan

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        String resa;
        if(jRadioButton1.isSelected()){
            resa = jRadioButton1.getText();
        } else{
            resa = jRadioButton2.getText();
        }
        String sql = "insert into crud values(?,?,?,?,?)";
        try {
            PreparedStatement stat = conn.prepareStatement(sql);
            stat.setString(1, jTextField1.getText());
            stat.setString(2, jTextField2.getText());
            stat.setString(3, jDateChooser1.getDate().toString());
            stat.setString(4, resa);
            stat.setString(5, jTextArea1.getText());
            stat.executeUpdate();
            JOptionPane.showMessageDialog(null, "Data Berhasil Disimpan");
            kosong();
            jTextField1.requestFocus();
            datatabel();
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Data Gagal Disimpan "+e);
        }
    }

klik tabel dengan klik kanan pada tabel pilih event -> pilih mouse -> pilih mouseclicked

private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {                                     
        // TODO add your handling code here:
        int bar = jTable1.getSelectedRow();
        String a = tabmode.getValueAt(bar, 0).toString();
        String b = tabmode.getValueAt(bar, 1).toString();
        String c = tabmode.getValueAt(bar, 2).toString();
        String d = tabmode.getValueAt(bar, 3).toString();
        String e = tabmode.getValueAt(bar, 4).toString();
        jTextField1.setText(a);
        jTextField2.setText(b);
        jTextArea1.setText(e);
    }

button update

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        String resa;
        if(jRadioButton1.isSelected()){
            resa = jRadioButton1.getText();
        } else{
            resa = jRadioButton2.getText();
        }
        String sql = "update crud set nama=?, tgl=?, jk=?, alamat=? where kode='"+jTextField1.getText()+"'";
        try {
            PreparedStatement stat = conn.prepareStatement(sql);
            stat.setString(1, jTextField2.getText());
            stat.setString(2, jDateChooser1.getDate().toString());
            stat.setString(3, resa);
            stat.setString(4, jTextArea1.getText());
            stat.executeUpdate();
            JOptionPane.showMessageDialog(null, "Data Berhasil Diupdate");
            kosong();
            jTextField1.requestFocus();
            datatabel();
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Data Gagal Diupdate "+e);
        }
    }

button hapus

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        int ok = JOptionPane.showConfirmDialog(null, "Apakah anda yakin ingin menghapus data", "Konfirmasi Dialog", JOptionPane.YES_NO_OPTION);
        if(ok==0){
        String sql = "delete from crud where kode='"+jTextField1.getText()+"'";
        try {
            PreparedStatement stat = conn.prepareStatement(sql);
            stat.executeUpdate();
            JOptionPane.showMessageDialog(null, "Data Berhasil Dihapus");
            kosong();
            jTextField1.requestFocus();
            datatabel();
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Data Gagal Dihapus "+e);
        }
        }
    }

Sekian yang dapat saya sampaikan kalau ada kekurangan tolong diberitahukan agar penulis dapat memperbaiki kekurangan tersebut. hasilnya seperti dibawah ini.

aplikasicrud-452016