Insert, Update, dan Delete Data Menggunakan Java dan MySQL

Pada kesempatan ini, saya contohkan insert, update, dan delete data barang. Berikut langkah-langkah untuk membuatnya:

  1. Buat database dengan nama “minimarket”, dan buat 2 tabel dengan nama “barang” dan “kategori”. Berikut adalah struktur dari 2 tabel yang akan dibuat:1
  2. Buat koneksi Java ke database MySQL: Klik disini!
  3. Buat 2 Design Interface yaitu: “KategoriBarang” dan “DaftarBarang” seperti pada gambar dibawah ini:11
  4. Tambahkan code dibawah ini pada “KategoriBarang”.
    • Dibawah ini digunakan untuk import komponen-komponen yang dibutuhkan.
    • /*
       * To change this template, choose Tools | Templates
       * and open the template in the editor.
       */
      package MiniMarket;
      
      import java.sql.ResultSet;
      import java.sql.Statement;
      import javax.swing.JOptionPane;
      import static javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE;
      import javax.swing.table.DefaultTableModel;
      
    • Dibawah ini digunakan untuk membuat variabel Koneksi, Statement, dan ResultSet serta memanggil Koneksi.java.
    • /**
       *
       * @author AdhityaBEe
       */
      public class KategoriBarang extends javax.swing.JFrame {
      
          Koneksi k;
          Statement statement;
          ResultSet resultset;
      
          /**
           * Creates new form KategoriBarang
           */
          public KategoriBarang() {
              initComponents();
      
              k = new Koneksi();
              View();
      
              this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
          }
      
    • Dibawah ini digunakan untuk menampilkan data pada tabel.
    •     public void View() {
              DefaultTableModel isitable = new DefaultTableModel();
              isitable.addColumn("Kategori");
              isitable.addColumn("Deskripsi");
              String sql = "SELECT * FROM kategori ORDER BY kategori ASC";
              try {
                  statement = k.conn.createStatement();
                  resultset = statement.executeQuery(sql);
                  while (resultset.next()) {
                      isitable.addRow(new Object[]{resultset.getString(1), resultset.getString(2)});
                  }
                  tblKategori.setModel(isitable);
              } catch (Exception e) {
                  System.out.println("Terjadi kesalahan, karena " + e.getMessage());
                  JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena " + e.getMessage());
              }
          }
      
    • Dibawah ini digunakan untuk Insert data ke tabel kategori.
    •     private void InsertData() {
              String kategori = txtKategori.getText();
              String deskripsi = txtDeskripsi.getText();
              String sql = "INSERT INTO kategori VALUES ('" + kategori + "','" + deskripsi + "')";
              try {
                  statement = k.conn.createStatement();
                  statement.executeUpdate(sql);
              } catch (Exception e) {
                  System.out.println("Terjadi kesalahan, karena " + e.getMessage());
                  JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena " + e.getMessage());
              }
          }
      
    • Dibawah ini digunakan untuk Delete data pada tabel kategori.
    •     private void DeleteData() {
              String kategori = txtKategori.getText();
              String sql = "DELETE FROM kategori WHERE kategori='" + kategori + "'";
              try {
                  statement = k.conn.createStatement();
                  statement.executeUpdate(sql);
              } catch (Exception e) {
                  System.out.println("Terjadi kesalahan, karena " + e.getMessage());
                  JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena " + e.getMessage());
              }
          }
      
    • Dibawah ini digunakan untuk menghapus isi tulisan yang ada pada TextField pada saat event dijalankan.
    •     public void Clear() {
              txtKategori.setText(null);
              txtDeskripsi.setText(null);
          }
      
    • Dibawah ini digunakan untuk Event dari button Insert.
    •     private void btnInsertActionPerformed(java.awt.event.ActionEvent evt) {                                          
              // TODO add your handling code here:
              if (txtKategori.getText().equals("") || txtDeskripsi.getText().equals("")) {
                  JOptionPane.showMessageDialog(null, "Maaf, Data yang Anda masukkan kurang lengkap!");
              } else {
                  InsertData();
                  View();
                  Clear();
              }
          }
      
    • Dibawah ini digunakan untuk Event dari button Cancel.
    •     private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {                                          
              // TODO add your handling code here:
              Clear();
          }
      
    • Dibawah ini digunakan untuk Event dari button Delete.
    •     private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {                                          
              // TODO add your handling code here:
              String kategori = txtKategori.getText();
              if (txtKategori.getText().equals("") || txtDeskripsi.getText().equals("")) {
                  JOptionPane.showMessageDialog(null, "Pilih terlebih dahulu, data yang akan dihapus!");
              } else {
                  int hasil = JOptionPane.showConfirmDialog(null, "Apakah Anda yakin akan menghapus data dengan kategori " + kategori, null, JOptionPane.YES_NO_OPTION);
                  if (hasil == JOptionPane.YES_OPTION) {
                      DeleteData();
                      View();
                      Clear();
                      JOptionPane.showMessageDialog(null, "Data telah berhasil dihapus!");
                  } else if (hasil == JOptionPane.NO_OPTION) {
                      Clear();
                  }
              }
          }
      
    • Dibawah ini digunakan untuk Event MouseClicked pada tabel kategori.
    •     private void tblKategoriMouseClicked(java.awt.event.MouseEvent evt) {                                         
              // TODO add your handling code here:
              txtKategori.setText(tblKategori.getValueAt(tblKategori.getSelectedRow(), 0).toString());
              txtDeskripsi.setText(tblKategori.getValueAt(tblKategori.getSelectedRow(), 1).toString());
          }
      
    • Dibawah ini digunakan untuk Event dari button Close dimana jika diklik maka akan menutup tampilan KategoriBarang dan menampilkan MainMenu (sementara belum dibuat).
    •     private void btnCloseActionPerformed(java.awt.event.ActionEvent evt) {                                         
              // TODO add your handling code here:
              new MainMenu(MainMenu.kondisiLogin).setVisible(true);
              this.dispose();
          }
      
  5. Tambahkan code dibawah ini pada “DaftarBarang”.
    • Dibawah ini digunakan untuk import komponen-komponen yang dibutuhkan.
    • /*
       * To change this template, choose Tools | Templates
       * and open the template in the editor.
       */
      package MiniMarket;
      
      import java.sql.ResultSet;
      import java.sql.Statement;
      import javax.swing.JOptionPane;
      import javax.swing.table.DefaultTableModel;
      
    • Dibawah ini digunakan untuk membuat variabel Koneksi, Statement, dan ResultSet serta memanggil Koneksi.java.
    • /**
       *
       * @author AdhityaBEe
       */
      public class DaftarBarang extends javax.swing.JFrame {
      
          Koneksi k;
          Statement statement;
          ResultSet resultset;
      
          /**
           * Creates new form KategoriBarang
           */
          public DaftarBarang() {
              initComponents();
      
              k = new Koneksi();
              View();
              PanggilKategori();
      
              this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
          }
      
    • Dibawah ini digunakan untuk Menampilkan data ke tabel barang.
    •     public void View() {
              DefaultTableModel isitable = new DefaultTableModel();
              isitable.addColumn("ID Barang");
              isitable.addColumn("Kategori");
              isitable.addColumn("Nama Barang");
              isitable.addColumn("Stok Barang");
              isitable.addColumn("Harga Jual");
              String sql = "SELECT * FROM barang ORDER BY id_barang ASC";
              try {
                  statement = k.conn.createStatement();
                  resultset = statement.executeQuery(sql);
                  while (resultset.next()) {
                      isitable.addRow(new Object[]{resultset.getString(1), resultset.getString(2), resultset.getString(3), resultset.getString(4), resultset.getString(5)});
                  }
                  tblBarang.setModel(isitable);
              } catch (Exception e) {
                  System.out.println("Terjadi kesalahan, karena " + e.getMessage());
                  JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena " + e.getMessage());
              }
          }
      
    • Dibawah ini digunakan untuk Insert data ke tabel barang.
    •     private void InsertData() {
              String idBarang = txtIDBarang.getText();
              String kategori = cbKategori.getSelectedItem().toString();
              String namaBarang = txtNamaBarang.getText();
              String sql = "INSERT INTO barang VALUES ('" + idBarang + "','" + kategori + "','" + namaBarang + "','0','0')";
              try {
                  statement = k.conn.createStatement();
                  statement.executeUpdate(sql);
              } catch (Exception e) {
                  System.out.println("Terjadi kesalahan, karena " + e.getMessage());
                  JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena " + e.getMessage());
              }
          }
      
    • Dibawah ini digunakan untuk Update data pada tabel barang.
    •     private void UpdateData() {
              String idBarang = txtIDBarang.getText();
              String kategori = cbKategori.getSelectedItem().toString();
              String namaBarang = txtNamaBarang.getText();
              String sql = "UPDATE barang SET kategori='" + kategori + "',nama_barang='" + namaBarang + "'WHERE id_barang='" + idBarang + "'";
              try {
                  statement = k.conn.createStatement();
                  statement.executeUpdate(sql);
              } catch (Exception e) {
                  System.out.println("Terjadi kesalahan, karena " + e.getMessage());
                  JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena " + e.getMessage());
              }
          }
      
    • Dibawah ini digunakan untuk Delete data pada tabel barang.
    •     private void DeleteData() {
              String idBarang = txtIDBarang.getText();
              String sql = "DELETE FROM barang WHERE id_barang='" + idBarang + "'";
              try {
                  statement = k.conn.createStatement();
                  statement.executeUpdate(sql);
              } catch (Exception e) {
                  System.out.println("Terjadi kesalahan, karena " + e.getMessage());
                  JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena " + e.getMessage());
              }
          }
      
    • Dibawah ini digunakan untuk Menampilkan kategori pada tabel kategori.
    •     private void PanggilKategori() {
              try {
                  cbKategori.removeAllItems();
                  String sql = "SELECT kategori FROM kategori ORDER BY kategori ASC";
                  resultset = statement.executeQuery(sql);
                  cbKategori.addItem("-- Pilih Kategori --");
                  while (resultset.next()) {
                      cbKategori.addItem(resultset.getString(1));
                  }
              } catch (Exception e) {
                  System.out.println("Terjadi kesalahan, karena " + e.getMessage());
                  JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena " + e.getMessage());
              }
          }
      
    • Dibawah ini digunakan untuk menghapus isi tulisan yang ada pada TextField pada saat event dijalankan.
    •     public void Clear() {
              txtIDBarang.setText(null);
              txtNamaBarang.setText(null);
          }
      
    • Dibawah ini digunakan untuk Event dari button Insert.
    •     private void btnInsertActionPerformed(java.awt.event.ActionEvent evt) {                                          
              // TODO add your handling code here:
              if (txtIDBarang.getText().equals("") || txtNamaBarang.getText().equals("")) {
                  JOptionPane.showMessageDialog(null, "Maaf, Data yang Anda masukkan kurang lengkap!");
              } else {
                  InsertData();
                  View();
                  Clear();
              }
          }
      
    • Dibawah ini digunakan untuk Event dari button Edit.
    •     private void btnEditActionPerformed(java.awt.event.ActionEvent evt) {                                        
              // TODO add your handling code here:
              if (txtIDBarang.getText().equals("") || txtNamaBarang.getText().equals("")) {
                  JOptionPane.showMessageDialog(null, "Pilih terlebih dahulu, data yang akan diedit!");
              } else {
                  UpdateData();
                  View();
                  Clear();
                  JOptionPane.showMessageDialog(null, "Data telah berhasil diedit!");
              }
          }
      
    • Dibawah ini digunakan untuk Event dari button Delete.
    •     private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {                                          
              // TODO add your handling code here:
              String idBarang = txtIDBarang.getText();
              if (txtIDBarang.getText().equals("") || txtNamaBarang.getText().equals("")) {
                  JOptionPane.showMessageDialog(null, "Pilih terlebih dahulu, data yang akan dihapus!");
              } else {
                  int hasil = JOptionPane.showConfirmDialog(null, "Apakah Anda yakin akan menghapus data dengan id barang " + idBarang, null, JOptionPane.YES_NO_OPTION);
                  if (hasil == JOptionPane.YES_OPTION) {
                      DeleteData();
                      View();
                      Clear();
                      JOptionPane.showMessageDialog(null, "Data telah berhasil dihapus!");
                  } else if (hasil == JOptionPane.NO_OPTION) {
                      Clear();
                  }
              }
          }
      
    • Dibawah ini digunakan untuk Event dari button Cancel.
    •     private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {                                          
              // TODO add your handling code here:
              Clear();
          }
      
    • Dibawah ini digunakan untuk Event MouseClicked pada tabel barang.
    •     private void tblBarangMouseClicked(java.awt.event.MouseEvent evt) {                                       
              // TODO add your handling code here:
              txtIDBarang.setText(tblBarang.getValueAt(tblBarang.getSelectedRow(), 0).toString());
              cbKategori.setSelectedItem(tblBarang.getValueAt(tblBarang.getSelectedRow(), 1).toString());
              txtNamaBarang.setText(tblBarang.getValueAt(tblBarang.getSelectedRow(), 2).toString());
          }
      
    • Dibawah ini digunakan untuk Event dari button Close dimana jika diklik maka akan menutup tampilan DaftarBarang dan menampilkan MainMenu (sementara belum dibuat).
    •     private void btnCloseActionPerformed(java.awt.event.ActionEvent evt) {                                         
              // TODO add your handling code here:
              new MainMenu(MainMenu.kondisiLogin).setVisible(true);
              this.dispose();
          }
      
  6. Beri event pada tiap-tiap komponen seperti: Button, TextField, dan ComboBox.
  7. Jalankan program, jika berhasil maka akan tampil seperti pada gambar dibawah ini:11
  8. Selesai… :) jika masih gagal maka cek kembali code pada kedua class, atau mungkin cek XAMPP sudah aktif atau belum. Selamat Mencoba!!!
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s