Lompat ke konten Lompat ke sidebar Lompat ke footer

Membuat Aplikasi CRUD dengan Java dan MySQL Berbasis GUI Menggunakan Netbeans 2

Membuat Aplikasi CRUD dengan Java dan MySQL Berbasis GUI Menggunakan Netbeans 2 - Sebelumnya telah dijabarkan mengenai tutorial untuk membuat database, project pada java, mengkoneksikan database, hingga membuat desain interface aplikasi CRUD (Create, Read, Update, Delete) sederhana berbasis java menggunakan netbeans. Bagi anda yang belum mengikuti dari awal silahkan untuk membaca mulai dari step pertama terlebih dahulu pada postingan tentang Membuat Aplikasi CRUD dengan Java dan MySQL Berbasis GUI Menggunakan Netbeans 1.


Kelas Informatika - Membuat Aplikasi CRUD Berbasis Java dan MySQL Menggunakan Netbeans IDE


Baiklah setelah selesai membuat database hingga form pada postingan sebelumnya, langkah berikutnya adalah menambahkan aksi-aksi database seperti load data, menambahkan data, mengubah dan menghapus data.

Menambahkan Aksi Load Data

Load data merupakan aksi pertama yang dibutuhkan aplikasi, karena pertama kali yang harus dilakukan ketika aplikasi berjalan adalah mengambil seluruh data yang terdapat pada tabel mahasiswa. Hal tersebut dilakukan agar form aplikasi dapat menampilkan data ke dalam tabel yang ada pada form.

Langkah awal untuk membuat aksi load adalah dengan membuat sebuah metode. Silahkan beri nama sesuai dengan keinginan, dalam hal ini, saya beri nama “loadData()”. Metode ini dibuat dalam kelas form dan dalam metode tersebut berisi proses load dari database.

Hal yang perlu diperhatikan sebelum melakukan load data adalah menghapus atau membersihkan seluruh isi baris yang ada pada tabel yang terdapat pada form. Ini penting karena saat akan melakukan load ulang data, tabel masih merekam tampilan sebelumnya sehingga perlu dikosongkan terlebih dahulu. Berikut source code yang dapat digunakan untuk menghapus isi tabel.
public void loadData() { 
// menghapus seluruh data 
model.getDataVector().removeAllElements(); 
// memberi tahu bahwa data telah kosong 
model.fireTableDataChanged(); 
}
Setelah tabel telah dikosongkan barulah dapat dilakukan load data. Proses load akan mengambil data dari database dimana pada proses ini membutuhkan connection yang terdapat dalam kelas KoneksiDatabase yang telah dibuat sebelumnya. Kemudian membuat Statement dan ResultSet seperti pada source code berikut.
public void loadData() { 
// menghapus seluruh data 
model.getDataVector().removeAllElements(); 
// memberi tahu bahwa data telah kosong 
model.fireTableDataChanged(); 

try{ 
Connection c = KoneksiDatabase.getKoneksi 
Statement s = c.createStatement(); 

String sql = "SELECT * FROM MAHASISWA"; 
ResultSet r = s.executeQuery(sql); 

while (r.next()) { 
// lakukan penelusuran baris 
} 

r.close(); 
s.close(); 
} catch(SQLException e) { 
System.out.println("Terjadi Kesalahan"); 
} 
}
Ketika melakukan proses penelusuran data menggunakan ResultSet, maka data dapat ditambahkan ke dalam tabel yang terdapat pada form. Agar dapat menambahkan sebuah baris kedalam tabel, kita harus menambahkannya ke DefaultTableModel dengan metode addRow(Object[]). Berikut source code untuk menerapkan fungsi tersebut.
while(r.next()) { 
// lakukan penelusuran baris 
Object[] o = New Object[5]; 
o[0] = r.getString("NIM"); 
o[0] = r.getString("NAMA"); 
o[0] = r.getString("TANGGAL LAHIR"); 
o[0] = r.getString("JURUSAN"); 
o[0] = r.getString("ALAMAT"); 
model.addRow(o);
Silahkan cek kembali, nantinya seluruh source code yang terdapat pada metode loadData() akan seperti pada kode dibawah ini.
public void loadData() { 
// menghapus seluruh data 
model.getDataVector().removeAllElements(); 
// memberi tahu bahwa data telah kosong 
model.fireTableDataChanged(); 
 
try{ 
Connection c = KoneksiDatabase.getKoneksi 
Statement s = c.createStatement(); 

String sql = "SELECT * FROM MAHASISWA"; 
ResultSet r = s.executeQuery(sql); 
 
while (r.next()) { 
// lakukan penelusuran baris 
Object[] o = New Object[5]; 
o[0] = r.getString("NIM"); 
o[0] = r.getString("NAMA"); 
o[0] = r.getString("TANGGAL LAHIR"); 
o[0] = r.getString("JURUSAN"); 
o[0] = r.getString("ALAMAT"); 
model.addRow(o); 
} 
r.close(); 
s.close(); 
} catch(SQLException e) { 
System.out.println("Terjadi Kesalahan"); 
} 
}
Terakhir kita panggil metode loadData() dalam konstruktor Form. Fungsinya adalah agar metode loadData() dapat dipanggil ketika aplikasi dijalankan.


Kelas Informatika - Menambahkan Metode Load Data

Menambahkan Aksi Tombol Tambah

Selanjutnya adalah menambahkan aksi tombol tambah, dimana aksi tombol itu akan berjalan ketika tombol tambah di klik. Langkah awal yang perlu dilakukan adalah masuk ke bagian desain, setelah itu klik kanan pada tombol tambah. Kemudian pilih menu Events >> Action >> action Performed. Nantinya netbeans IDE akan membuatkan metode baru untuk aksi tombol tambah secara otomatis.

Kelas Informatika - Metode Action Performed untuk Aksi Tombol Tambah

Fungsi untuk melakukan penambahan data ke dalam database akan di tanamkan dalam metode tersebut. Untuk menambahkan data ke dalam tabel Mahasiswa, otomatis kita membutuhkan data input dari user. Untuk mendapatkan data tulisan dari Text Field dan Text Area, maka kita dapat menggunakan metode getText(). Sedangkan untuk mendapatkan tanggal dari Formatted Field dapat menggunakan metode getValue(). Perlu diketahui bahwa metode getValue() menghasilkan object, sedangkan format data dalam aplikasi adalah dalam bentuk tanggal. Oleh karena itu, perlu dilakukan konversi dari object ke tanggal. Berikut source code untuk mengkonversi data dari object ke tanggal.
String nim = inputNim.getText(); 
String nama = inputNama.getText(); 
java.util.Date tanggalLahir = (java.util.Date) inputTanggalLahir.getValue(); 
String jurusan = inputJurusan.getText(); 
String alamat = inputAlamat.getText(); 
Setelah data dapat diambil dari input, langkah selanjutnya adalah menyimpannya ke dalam database MySQL. Caranya adalah dengan membuat connection dari kelas koneksiDatabase. Kemudian membuat PrepareStatement untuk menyimpan datanya. Berikut source code yang digunakan.
String nim = inputNim.getText(); 
String nama = inputNama.getText(); 
java.util.Date tanggalLahir = (java.util.Date) inputTanggalLahir.getValue(); 
String jurusan = inputJurusan.getText(); 
String alamat = inputAlamat.getText(); 

try{ 
Connection c = KoneksiDatabase.getKoneksi(); 
String sql = "INSERT INTO MAHASISWA VALUES (?, ?, ?, ?, ?)"; 
PreparedStatement p = c.preparedStatement(sql); 
p.setString(1, nim); 
p.setString(2, nama); 
p.setDate(3, new java.sql.Date(tanggalLahir.getTime())); 
p.setString(4, jurusan); 
p.setString(5, alamat); 
p.excecuteUpdate(); 
p.close(); 
} catch(SQLException e) { 
System.out.println("Terjadi Kesalahan"); 
} finally { 
loadData(); 
}
Pada blok finally kita perlu memanggil metode loadData(), hal ini bertujuan agar setelah proses penyimpanan data ke database, data dapat dimuat ulang ke tabel yang terdapat dalam form.

Menambahkan Aksi Tombol Ubah

Secara fungsi, tombol ubah memiliki fungsi yang sama dengan tombol edit dan update. Untuk menambahkan aksi tombol tersebut, ada sedikit perbedaan jika dibandingkan dengan aksi tombol tambah. Perbedaannya pada saat pertama aplikasi harus dapat mendeteksi baris yang sedang di klik oleh user, setelah itu barulah dapat dilakukan pengubahan data yang di klik dengan data baru yang ada dalam form input.

Menambahkan aksi tombol ubah dapat dilakukan dengan cara yang hampir sama dengan tombol ubah, yaitu dengan klik kanan tombol ubah, lalu pilih Events >> Action >> actionPerformed.


Kelas Informatika - Metode Action Performed untuk Aksi Tombol Ubah

Selanjutnya kita harus mendapatkan baris yang terseleksi pada tabel, sedangkan jika tidak ada baris yang terseleksi maka proses perubahan data akan dibatalkan. Untuk mendapatkan baris yang terseleksi dapat menggunakan metode getSelectedRow() milik table, apabila returnnya -1 artinya tidak ada baris yang terseleksi. Lebih jelasnya lihat pada source code berikut.
int i = tabelMahasiswa.getSelectedRow(); 
if(i == -1) { 
// tidak ada baris terseleksi 
return; 
} 
 
// ambil nim yang terseleksi 
String nim = (String) model.getValueAt(i, 0); 
String nama = inputNama.getText(); 
java.util.Date tanggalLahir = (java.util.Date) inputTanggalLahir.getValue(); 
String jurusan = inputJurusan.getText(); 
String alamat = inputAlamat.getText();
Kemudian setelah mengambil data NIM yang terseleksi dan data pelengkap lainnya dari form input, barulah dapat dilakukan proses pengubahan data yang terdapat dalam database berdasarkan NIM yang telah terseleksi tadi. Berikut source code selengkapnya.
int i = tabelMahasiswa.getSelectedRow(); 
if(i == -1) { 
// tidak ada baris terseleksi 
return; 
} 

// ambil nim yang terseleksi 
String nim = (String model.getValueAt(i, 0); 
String nama = inputNama.getText(); 
java.util.Date tanggalLahir = (java.util.Date) inputTanggalLahir.getValue(); 
String jurusan = inputJurusan.getText(); 
String alamat = inputAlamat.getText(); 
 
try{ 
Connection c = KoneksiDatabase.getKoneksi(); 
String sql = "UPDATE MAHASISWA SET NAMA = ?, TANGGAL_LAHIR = ?, JURUSAN = ?, ALAMAT = ? WHERE NIM = ?"; 

PreparedStatement p = c.prepareStatement(sql); 
p.setString(1, nama); 
p.setDate(2, new java.sql.Date(tanggalLahir.getTime())); 
p.setString(3, jurusan); 
p.setString(4, alamat); 
p.setString(5, nim); 
p.executeUpdate(); 
p.close(); 
} catch(SQLException e) { 
System.out.println("Terjadi Kesalahan"); 
} finally { 
loadData(); 
}

Menambahkan Aksi Tombol Hapus

Untuk menambahkan aksi tombol hapus tidak perlu menggunakan input Form, yang diperlukan hanyalah baris yang terseleksi. Proses penghapusan data tidak akan dapat dilakukan apabila tidak ada baris yang terseleksi. Menambahkan aksi tombol hapus dapat dilakukan dengan cara yang sama seperti menambahkan aksi tombol tambah dan ubah. Caranya adalah dengan klik kanan tombol hapus, lalu pilih menu Events >> Action >> actionPeformed.

Kelas Informatika - Metode Action Performed untuk Aksi Tombol Hapus

Selanjutnya kita cek terlebih dahulu apakah ada baris terseleksi atau tidak. Jika ada ambil NIM yang terseleksi, jika tidak ada maka proses penghapusan akan dibatalkan. Berikut source code yang dapat digunakan.
int i = tabelMahasiswa.getSelectedRow(); 
if(i == -1) { 
// tidak ada baris terseleksi 
return; 
} 
 
// ambil nim yang terseleksi 
String nim = (String) model.getValueAt(i, 0);
Kemudian barulah dapat dilakukan proses penghapusan data dari database berdasarkan data baris yang telah terseleksi tadi. Berikut source code untuk menjalankan fungsi tersebut.
int i = tabelMahasiswa.getSelectedRow(); 
if(i == -1) { 
// tidak ada baris terseleksi 
return; 
} 

// ambil nim yang terseleksi 
String nim = (String) model.getValueAt(i, 0); 

try{ 
Connection c = KoneksiDatabase.getKoneksi(); 
String sql = "DELETE FROM MAHASISWA WHERE NIM = ?"; 
PreparedStatement p = c.prepareStatement(sql); 

p.setString(1, nim); 
p.executeUpdate(); 
p.close(); 
} catch(SQLException e) { 
System.err.println("Terjadi Kesalahan"); 
} finally { 
loadData(); 
} 

Menambahkan Aksi Baris Terseleksi

Aksi ketika baris tabel terseleksi merupakan aksi terakhir yang perlu ditambahkan. Maksudnya adalah ketika baris pertama terseleksi maka aplikasi akan menampilkan data tersebut pada form. Hal ini bertujuan agar proses pengubahan data dapat dilakukan dengan lebih mudah oleh pengguna, karena kita tidak perlu lagi memasukkan seluruh data ke dalam form.

Menambahkan aksi baris terseleksi dapat dilakukan dengan menggunakan aksi Mouse Click, yaitu aksi yang akan dijalankan apabila pengguna mengklik mouse. Caranya adalah dengan klik kanan komponen table pada form, lalu pilih menu Events >> Mouse >> mouseClicked.

Kelas Informatika - Metode Action Performed untuk Aksi Baris Terseleksi

Setelah itu kita harus melakukan pengecekan apakah ada baris yang terseleksi. Apabila ada maka ambil data yang terseleksi dari DefaultTableModel untuk ditampilkan pada form. Namun jika tidak ada baris yang terseleksi, maka proses akan dibatalkan. Berikut ini merupakan source code untuk menjalankan fungsi tersebut.
int i = tabelMahasiswa.getSelectedRow(); 
if(i == -1) { 
// tidak ada baris terseleksi 
return; 
} 

String nim = (String) model.getValueAt(i, 0); 
inputNim.setText(nim); 
String nama = (String) model.getValueAt(i, 1); 
inputNama.setText(nama); 
java.util.Date tanggalLahir = (java.util.Date) model.getValueAt(i, 2); 
inputTanggalLahir.setValue(tanggalLahir); 
String jurusan = (String) model.getValueAt(i, 3); 
inputJurusan.setText(jurusan); 
String alamat = (String) model.getValueAt(i, 4); 
inputAlamat.setText(alamat);

Menjalankan Aplikasi

Proses pembuatan aplikasi telah selesai. Kini saatnya mencoba menjalankan aplikasi. Langkah pertama yang harus dilakukan adalah menentukan terlebih dahulu kelas yang akan digunakan sebagai aplikasi, dimana pada project yang telah kita buat, kelas aplikasi adalah kelas form.
Selanjutnya untuk megubah kelas aplikasi menjadi kelas form, caranya adalah dengan klik kanan pada project lalu pillih properties, kemudian akan menampilkan kotak dialog project properties.

Kelas Informatika - Tampilan Project Properties

Pada kotak dialog tersebut, di bagian categories pilih menu run untuk mengubah kelas yang akan dijalankan sebagai kelas aplikasi.

Kelas Informatika - Mengubah Kelas pada Menu Run

Pada input main class klik tombol browse untuk menampilkan daftar kelas yang dapat dijadikan sebagai kelas utama aplikasi. Nantinya akan tampil kotak dialog browse main class.

Kelas Informatika - Kotak Dialog Memilih Main Class

Kemudian silahkan pilih kelas form yang telah dibuat tadi. Setelah itu klik tombol select main class dan klik OK untuk mengkonfirmasi perubahan. Nah, sekarang kelas form akan menjadi kelas utama (main class) yang akan dijalankan ketika aplikasi dijalankan.

Menjalankan aplikasi dapat dilakukan dengan cara klik kanan pada project yang telah kita buat, lalu pilih menu Run. Nantinya aplikasi akan dijalankan secara otomatis oleh netbeans IDE.

Kelas Informatika - Tampilan Aplikasi

Baiklah.. sekian tutorial membuat aplikasi CRUD (Create, Read, Update, Delete) sederhana berbasis java menggunakan tools netbeans IDE. Semoga bermanfaat. Salam ðŸ˜Š

3 komentar untuk "Membuat Aplikasi CRUD dengan Java dan MySQL Berbasis GUI Menggunakan Netbeans 2"

  1. Buset tuh ngasal aja yak banyak yg kurang dah gt scrip Button ga lu tulis malah method di taro buat Button wkwkw salah kaprah lu ngoding

    BalasHapus
    Balasan
    1. Terimakasih koreksinya. Btw terkait method yang ditaruh untuk button, itu auto compose ketika menambahkan button melalui GUI builder

      Hapus