Cara membuat aplikasi CRUD atau Create, Read, Update, Delete dengan Java di Netbeans sangatlah mudah. Dalam panduan ini, kita akan belajar cara membuat aplikasi CRUD dasar dengan menggunakan bahasa pemrograman Java dan MySQL sebagai basis data. Tujuan dari aplikasi CRUD ini adalah untuk memungkinkan pengguna untuk memasukkan data baru ke dalam sistem, melihat data yang sudah ada, memperbarui data yang ada dan menghapus data dari sistem.
Langkah Pertama: Membuat Tabel pada Basis Data
Langkah pertama dalam membuat aplikasi CRUD adalah membuat tabel pada basis data. Sebelum kita bisa memulai, pastikan bahwa MySQL sudah terinstal di komputer anda dan juga pastikan bahwa anda memiliki aplikasi Netbeans yang terinstal.
Buka aplikasi MySQL dan buat basis data baru dengan nama “crud_db”. Setelah itu, buat tabel baru dengan nama “mahasiswa”. Berikut ini adalah skema tabel untuk tabel tersebut:
Nama Kolom | Tipe Data | Ukuran |
---|---|---|
id | INT | 11 |
nama | VARCHAR | 100 |
jurusan | VARCHAR | 100 |
alamat | TEXT | – |
Setelah tabel sudah dibuat, pastikan bahwa MySQL sudah berjalan dan tabel sudah tersedia.
Langkah Kedua: Membuat Koneksi ke Basis Data
Langkah kedua dalam membuat aplikasi CRUD adalah membuat koneksi ke basis data MySQL. Kita akan membuat kelas baru dengan nama “Koneksi.java” dan kita akan menambahkan kode koneksi ke dalamnya. Berikut ini adalah kode untuk koneksi ke basis data MySQL:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Koneksi
private static Connection koneksi;
public static Connection getKoneksi()
if (koneksi == null)
try
String url = "jdbc:mysql://localhost/crud_db";
String user = "root";
String pass = "";
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
koneksi = DriverManager.getConnection(url, user, pass);
catch (SQLException e)
System.out.println("Koneksi ke basis data gagal: " + e.getMessage());
return koneksi;
Setelah kelas Koneksi sudah dibuat, kita bisa memanggil metode getKoneksi() untuk mendapatkan koneksi ke basis data MySQL.
Langkah Ketiga: Membuat Kelas Model
Langkah ketiga dalam membuat aplikasi CRUD adalah membuat kelas Model. Kelas Model ini akan berfungsi untuk mewakili data yang akan dimasukkan ke dalam sistem dan akan digunakan untuk melakukan operasi CRUD pada tabel. Berikut ini adalah kode untuk kelas Model:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class MahasiswaModel
private int id;
private String nama;
private String jurusan;
private String alamat;
public MahasiswaModel()
public MahasiswaModel(int id, String nama, String jurusan, String alamat)
this.id = id;
this.nama = nama;
this.jurusan = jurusan;
this.alamat = alamat;
public int getId()
return id;
public void setId(int id)
this.id = id;
public String getNama()
return nama;
public void setNama(String nama)
this.nama = nama;
public String getJurusan()
return jurusan;
public void setJurusan(String jurusan)
this.jurusan = jurusan;
public String getAlamat()
return alamat;
public void setAlamat(String alamat)
this.alamat = alamat;
public ArrayList<MahasiswaModel> getAll()
ArrayList<MahasiswaModel> list = new ArrayList<>();
String query = "SELECT * FROM `mahasiswa`";
Connection koneksi = Koneksi.getKoneksi();
try
PreparedStatement ps = koneksi.prepareStatement(query);
ResultSet rs = ps.executeQuery();
while (rs.next())
MahasiswaModel mahasiswa = new MahasiswaModel(
rs.getInt("id"),
rs.getString("nama"),
rs.getString("jurusan"),
rs.getString("alamat")
);
list.add(mahasiswa);
ps.close();
rs.close();
catch (SQLException e)
System.out.println("Terjadi kesalahan saat mengambil data mahasiswa: " + e.getMessage());
return list;
public boolean insert()
String query = "INSERT INTO `mahasiswa` (`nama`, `jurusan`, `alamat`) VALUES (?, ?, ?)";
Connection koneksi = Koneksi.getKoneksi();
try
PreparedStatement ps = koneksi.prepareStatement(query);
ps.setString(1, nama);
ps.setString(2, jurusan);
ps.setString(3, alamat);
ps.execute();
ps.close();
return true;
catch (SQLException e)
System.out.println("Terjadi kesalahan saat memasukkan data mahasiswa: " + e.getMessage());
return false;
public boolean update()
String query = "UPDATE `mahasiswa` SET `nama` = ?, `jurusan` = ?, `alamat` = ? WHERE `id` = ?";
Connection koneksi = Koneksi.getKoneksi();
try
PreparedStatement ps = koneksi.prepareStatement(query);
ps.setString(1, nama);
ps.setString(2, jurusan);
ps.setString(3, alamat);
ps.setInt(4, id);
ps.execute();
ps.close();
return true;
catch (SQLException e)
System.out.println("Terjadi kesalahan saat mengupdate data mahasiswa: " + e.getMessage());
return false;
public boolean delete()
String query = "DELETE FROM `mahasiswa` WHERE `id` = ?";
Connection koneksi = Koneksi.getKoneksi();
try
PreparedStatement ps = koneksi.prepareStatement(query);
ps.setInt(1, id);
ps.execute();
ps.close();
return true;
catch (SQLException e)
System.out.println("Terjadi kesalahan saat menghapus data mahasiswa: " + e.getMessage());
return false;
Setelah kelas Model sudah dibuat, kita bisa menggunakan kelas ini untuk memasukkan data mahasiswa baru ke dalam basis data, untuk mendapatkan semua data mahasiswa yang sudah ada dari basis data, untuk mengupdate data mahasiswa yang sudah ada di dalam basis data dan untuk menghapus data mahasiswa yang sudah ada di dalam basis data.
Langkah Keempat: Membuat Kelas Controller
Langkah keempat dalam membuat aplikasi CRUD adalah membuat kelas Controller. Kelas Controller ini akan berfungsi untuk mengatur bagaimana data akan diproses dan ditampilkan pada tampilan pengguna. Berikut ini adalah kode untuk kelas Controller:
import java.util.ArrayList;
public class MahasiswaController
private MahasiswaView view;
private MahasiswaModel model;
public MahasiswaController(MahasiswaView view, MahasiswaModel model)
this.view = view;
this.model = model;
this.view.setController(this);
this.view.setVisible(true);
this.updateTable();
public void insert(String nama, String jurusan, String alamat)
model.setNama(nama);
model.setJurusan(jurusan);
model.setAlamat(alamat);
boolean hasil = model.insert();
if (hasil)
view.showMessage("Data berhasil ditambahkan ke dalam basis data!");
view.clearForm();
updateTable();
else
view.showMessage("Terjadi kesalahan saat menambahkan data ke dalam basis data!");
public void update(int id, String nama, String jurusan, String alamat)
model.setId(id);
model.setNama(nama);
model.setJurusan(jurusan);
model.setAlamat(alamat);
boolean hasil = model.update();
if (hasil)
view.showMessage("Data berhasil diupdate di dalam basis data!");
view.clearForm();
updateTable();
else
view.showMessage("Terjadi kesalahan saat mengupdate data di dalam basis data!");
public void delete(int id)
model.setId(id);
boolean hasil = model.delete();
if (hasil)
view.showMessage("Data berhasil dihapus dari dalam basis data!");
view.clearForm();
updateTable();
else
view.showMessage("Terjadi kesalahan saat menghapus data dari dalam basis data!");
public void updateTable()
ArrayList<MahasiswaModel> hasil = model.getAll();
view.updateTable(hasil);
Setelah kelas Controller sudah dibuat, kita bisa menggunakannya untuk memproses data pada aplikasi CRUD yang kita buat.
Langkah Kelima: Membuat Tampilan Pengguna
Langkah kelima dalam membuat aplikasi CRUD adalah membuat tampilan pengguna. Untuk membuat tampilan pengguna, kita bisa menggunakan Swing API yang sudah disediakan oleh Java. Berikut ini adalah kode untuk tampilan pengguna:
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
public class MahasiswaView extends JFrame
private JTable tabelMahasiswa;
private DefaultTableModel modelTabel;
private JButton btnTambah;
private JButton btnUpdate;
private JButton btnHapus;
private JLabel lblNama;
private JLabel lblJurusan;
private JLabel lblAlamat;
private JTextField txtNama;
private JTextField txtJurusan;
private JTextField txtAlamat;
private MahasiswaController controller;
public MahasiswaView()
this.setSize(640, 480);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setLayout(new BorderLayout());
this.setTitle("Aplikasi CRUD dengan Java di Netbeans");
modelTabel = new DefaultTableModel();
modelTabel.addColumn("No.");
modelTabel.addColumn("Nama");
modelTabel.addColumn("Jurusan");
modelTabel.addColumn("Alamat");
tabelMahasiswa = new JTable(modelTabel);
JPanel panelTombol = new JPanel(new FlowLayout());
btnTambah = new JButton("Tambah");
btnUpdate = new JButton("Update");
btnHapus = new JButton("Hapus");
panelTombol.add(btnTambah);
panelTombol.add(btnUpdate);
panelTombol.add(btnHapus);
JPanel panelInput = new JPanel(new GridLayout(3, 2));
lblNama = new JLabel("Nama:");
lblJurusan = new JLabel("Jurusan:");
lblAlamat = new JLabel("Alamat:");
txtNama = new JTextField();
txtJurusan = new JTextField();
txtAlamat = new JTextField();
panelInput.add(lblNama);
panelInput.add(txtNama);
panelInput.add(lblJurusan);
panelInput.add(txtJurusan);
panelInput.add(lblAlamat);
panelInput.add(txtAlamat);
JScrollPane scrollPane = new JScrollPane(tabelMahasiswa);
this.add(scrollPane, BorderLayout.NORTH);
this.add(panelInput, BorderLayout.CENTER);
this.add(panelTombol, BorderLayout.SOUTH);
public void setController(MahasiswaController controller)
this.controller = controller;
btnTambah.addActionListener(new ActionListener()
@Override
public void actionPerformed(ActionEvent e)
controller.insert(txtNama.getText(), txtJurusan.getText(), txtAlamat.getText());
);
btnUpdate.addActionListener(new ActionListener()
@Override
public void actionPerformed(ActionEvent e)
int row = tabelMahasiswa.getSelectedRow();
if (row == -1)
showMessage("Silahkan pilih data yang akan diupdate!");
else
int id = (int) modelTabel.getValueAt(row, 0);
String nama = (String) modelTabel.getValueAt(row, 1);
String jurusan = (String) modelTabel.getValueAt(row, 2);
String alamat = (String) modelTabel.getValueAt(row, 3);
controller.update(id, nama, jurusan, alamat);
);
btnHapus.addActionListener(new ActionListener()
@Override
public void actionPerformed(ActionEvent e)
int row = tabelMahasiswa.getSelectedRow();
if (row == -1)
showMessage("Silahkan pilih data yang akan dihapus!");
else
int id = (int) modelTabel.getValueAt(row, 0);
int jawaban = JOptionPane.showConfirmDialog(MahasiswaView.this, "Anda yakin ingin menghapus data ini?", "Konfirmasi", JOptionPane.YES_NO_OPTION);
if (jawaban == JOptionPane.YES_OPTION)
controller.delete(id);
else
showMessage("Hapus data dibatalkan!");
);
tabelMahasiswa.getSelectionModel().addListSelectionListener(event ->
int row = tabelMahasiswa.getSelectedRow();
if (row != -1)
txtNama.setText((String) modelTabel.getValueAt(row, 1));
txtJurusan.setText((String) modelTabel.getValueAt(row, 2));
txtAlamat.setText((String) modelTabel.getValueAt(row, 3));
else
txtNama.setText("");
txtJurusan.setText("");
txtAlamat.setText("");
);
public void updateTable(ArrayList<MahasiswaModel> model)
int rowNumber = 1;
for (MahasiswaModel m : model)
modelTabel.addRow(new Object[] rowNumber, m.getNama(), m.getJurusan(), m.getAlamat() );
rowNumber++;
public void showMessage(String message)
JOptionPane.showMessageDialog(this, message);
public void clearForm()
txtNama.setText("");
txtJurusan.setText("");
txtAlamat.setText("");
Setelah tampilan pengguna sudah dibuat, kita bisa menjalankan aplikasi CRUD yang kita buat dengan memanggil kelas MahasiswaController dan mengirimkan tampilan pengguna dan model sebagai parameter.
FAQ
Pertanyaan 1: Apa itu aplikasi CRUD?
Jawaban: Aplikasi CRUD adalah aplikasi yang memungkinkan pengguna untuk memasukkan data baru ke dalam sistem, melihat data yang sudah ada, memperbarui data yang ada dan menghapus data dari sistem.
Pertanyaan 2: Apa saja teknologi yang digunakan dalam membuat aplikasi CRUD?
Jawaban: Untuk membuat aplikasi CRUD, kita memerlukan bahasa pemrogram