Graphic User Interface (GUI) adalah pemrograman dengan bahasa Java yang dibuat menggunakan aplikasi yang berbasiskan GUI. Tujuannya adalah menambahkan beberapa komponen yang tidak bisa dibuat dalam basis text.
Komponen-konponen tersebut bisa berupa tombol, gambar, dll. Tujuannya adalah untuk memudahkan user menggunakan program yang dibuat tersebut.
Kalau dilihat pengertian tentang GUI secara umum adalah Interaksi yang dapat dilaksanakan oleh user melalui menu dan icon yang diperlihatkan dalam modus grafik. Contoh implementasi GUI-based shell ini adalah pada sistem operasi Microsoft Windows.
Komponen-konponen tersebut bisa berupa tombol, gambar, dll. Tujuannya adalah untuk memudahkan user menggunakan program yang dibuat tersebut.
Kalau dilihat pengertian tentang GUI secara umum adalah Interaksi yang dapat dilaksanakan oleh user melalui menu dan icon yang diperlihatkan dalam modus grafik. Contoh implementasi GUI-based shell ini adalah pada sistem operasi Microsoft Windows.

lalu klik “Save”
Oke database sudah terisi, saatnya kita masuk ke coding.
Buka Netbeans -> New Project -> Java Application -> Masukan Nama Projek (Finish)

Setelah Project berhasil dibuat, Kita buat sebuah Class yang berfungsi untuk mengkoneksikan program ke database.Oke database sudah terisi, saatnya kita masuk ke coding.
Buka Netbeans -> New Project -> Java Application -> Masukan Nama Projek (Finish)



Klik Finish, nah class KoneksiDB telah sukses dibuat. selanjutnya untuk mengkoneksikan Program ke Database MySQL itu membutuhkan sebuah Library Tambahan, cara menambahkan library yaitu klik Kanan pada folder “Libraries” dalam projek anda.

setelah itu pilih library “MySQL JDBC Driver”

Klik Add Library, oke semua kebutuhan sudah siap. Buka class KoneksiDB.java lalu tambahkan Coding ini di bawah Kode “package testcrud;”
import com.mysql.jdbc.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
Kode diatas adalah coding untuk mengimport library-library yang dibutuhkan program. Selanjutnya tambahkan fungsi koneksi ini didalam constructor (public class KoneksiDB {} )
public static Connection setKoneksi() {
String konString = “jdbc:mysql://localhost:3306/db_testkoneksi”;
Connection koneksi = null;
try {
Class.forName(“com.mysql.jdbc.Driver”);
koneksi = (Connection) DriverManager.getConnection(konString,”root”,””);
System.out.println(“Koneksi Berhasil”);
} catch (ClassNotFoundException ex) {
Logger.getLogger(KoneksiDB.class.getName()).log(Level.SEVERE, null, ex);
System.out.println(“Koneksi Gagal”);
} catch (SQLException ex) {
Logger.getLogger(KoneksiDB.class.getName()).log(Level.SEVERE, null, ex);
System.out.println(“Koneksi Gagal”);
}
return koneksi;
}
tambahkan juga dibawah fungsi koneksi, yaitu fungsi untuk execute insert, update, delete
public static int execute(String SQL) {
int status = 0;
Connection koneksi = setKoneksi();
try {
Statement st = koneksi.createStatement();
status = st.executeUpdate(SQL);
} catch (SQLException ex) {
Logger.getLogger(KoneksiDB.class.getName()).log(Level.SEVERE, null, ex);
}
return status;
}
setelah itu juga kita buat fungsi untuk select data dengan perintah executeQuery
public static ResultSet executeQuery(String SQL) {
ResultSet rs = null;
Connection koneksi = setKoneksi();
try {
Statement st = koneksi.createStatement();
rs = st.executeQuery(SQL);
} catch (SQLException ex) {
Logger.getLogger(KoneksiDB.class.getName()).log(Level.SEVERE, null, ex);
}
return rs;
}
oke, selanjutnya kita buat sebuah Form dengan cara klik kanan di package aplikasi anda -> New -> JFrame Form.
import com.mysql.jdbc.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
Kode diatas adalah coding untuk mengimport library-library yang dibutuhkan program. Selanjutnya tambahkan fungsi koneksi ini didalam constructor (public class KoneksiDB {} )
public static Connection setKoneksi() {
String konString = “jdbc:mysql://localhost:3306/db_testkoneksi”;
Connection koneksi = null;
try {
Class.forName(“com.mysql.jdbc.Driver”);
koneksi = (Connection) DriverManager.getConnection(konString,”root”,””);
System.out.println(“Koneksi Berhasil”);
} catch (ClassNotFoundException ex) {
Logger.getLogger(KoneksiDB.class.getName()).log(Level.SEVERE, null, ex);
System.out.println(“Koneksi Gagal”);
} catch (SQLException ex) {
Logger.getLogger(KoneksiDB.class.getName()).log(Level.SEVERE, null, ex);
System.out.println(“Koneksi Gagal”);
}
return koneksi;
}
tambahkan juga dibawah fungsi koneksi, yaitu fungsi untuk execute insert, update, delete
public static int execute(String SQL) {
int status = 0;
Connection koneksi = setKoneksi();
try {
Statement st = koneksi.createStatement();
status = st.executeUpdate(SQL);
} catch (SQLException ex) {
Logger.getLogger(KoneksiDB.class.getName()).log(Level.SEVERE, null, ex);
}
return status;
}
setelah itu juga kita buat fungsi untuk select data dengan perintah executeQuery
public static ResultSet executeQuery(String SQL) {
ResultSet rs = null;
Connection koneksi = setKoneksi();
try {
Statement st = koneksi.createStatement();
rs = st.executeQuery(SQL);
} catch (SQLException ex) {
Logger.getLogger(KoneksiDB.class.getName()).log(Level.SEVERE, null, ex);
}
return rs;
}
oke, selanjutnya kita buat sebuah Form dengan cara klik kanan di package aplikasi anda -> New -> JFrame Form.
masukan nama Form, saya berinama “frmMain” lalu klik Finish. dan akan muncul tampilan seperti ini.
selanjutnya kita ganti nama setiap objek dengan cari klik kanan di objeknya -> Change Variable Name -> Masukan nama objek (contoh: txtNIS,tblData,btnAdd,dll)
setelah semua objek sudah diganti namanya kita buka bagian Source dari frmMain.java
pertama kita akan buat prosedur untuk mengambil data (select) dari database, masukan coding ini dibawah constructor (public frmMain() {})
public void selectData() {
String kolom[] = {“NIS”,”Nama”,”Jenis Kelamin”,”Kelas”,”Alamat”};
DefaultTableModel dtm = new DefaultTableModel(null, kolom);
String SQL = “SELECT * FROM t_siswa”;
ResultSet rs = KoneksiDB.executeQuery(SQL);
try {
while(rs.next()) {
String NIS = rs.getString(1);
String Nama = rs.getString(2);
String JK = “”;
if (“L”.equals(rs.getString(3))) {
JK = “Laki-Laki”;
} else {
JK = “Perempuan”;
}
String Kelas = rs.getString(4);
String Alamat = rs.getString(5);
String data[] = {NIS,Nama,JK,Kelas,Alamat};
dtm.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmMain.class.getName()).log(Level.SEVERE, null, ex);
}
tblData.setModel(dtm);
}
Penjelasan :
Line 1 – Membuat Prosedur dengan Nama selectData()
Line 2 – Membuat Nama-Nama Kolom Table dengan Variabel Array kolom[]
Line 3 – Meninstansiasi DefaultTableModel dengan parameter (baris, kolom) karena baris diambil dari database maka parameter pertama diisi null
Line 4 – Query SQL untuk mengambil data
Line 5 – Mengexecute query sql dengan fungsi executeQuery yang sudah dibuat pada class KoneksiDB
Line 7 – Looping saat data didapatkan
Line (8-17) – Mengambil data yang didapatkan dari Database ke variabel
Line 18 – Memasukkan semua variabel kedalam satu array (row)
Line 24 – Memasukkan data dari DefaultTableModel ke tblData/JTable (objek tabel yang ada di form)
Silahkan di run.
Masih kosong ya? ya karena kita belum memasukkan sebuah data ke table t_siswa.
Sekarang kita coba buat fungsi untuk Insert data ke database, klik 2x objek button Add dan tambahkan coding ini didalamnya
if (“”.equals(txtNIS.getText()) || “”.equals(txtAlamat.getText()) ||
“”.equals(txtKelas.getText()) || “”.equals(txtNama.getText())) {
JOptionPane.showMessageDialog(this, “Harap Lengkapi Data”, “Error”, JOptionPane.WARNING_MESSAGE);
} else {
String JK = “”;
if (rdLaki.isSelected()) {
JK = “L”;
} else {
JK = “P”;
}
String SQL = “INSERT INTO t_siswa (NIS,NamaSiswa,JenisKelamin,Kelas,Alamat) ”
+ “VALUES(‘”+txtNIS.getText()+”‘,'”+txtNama.getText()+”‘,'”+JK+”‘,”
+ “‘”+txtKelas.getText()+”‘,'”+txtAlamat.getText()+”‘)”;
int status = KoneksiDB.execute(SQL);
if (status == 1) {
JOptionPane.showMessageDialog(this, “Data berhasil ditambahkan”, “Sukses”, JOptionPane.INFORMATION_MESSAGE);
selectData();
} else {
JOptionPane.showMessageDialog(this, “Data gagal ditambahkan”, “Sukses”, JOptionPane.WARNING_MESSAGE);
}
}
Penjelasan :
Line (1-4) – Validasi jika inputan masih kosong
Line (6-11) – Pengecekan Radio button yang diselect
Line (12 – 14) – Query Insert
Line (15-17) – Jika Berhasil tampilkan pesan sukses
Line 18 – Refresh data di table
Line (19 – 21) – Jika gagal munculkan pesan gagal
Nah, sekarang coba di run lagi dan tambahkan sebuah data ke database

Yee, data berhasil masuk ke database.
sekarang kita buat fungsi untuk refresh, klik 2x button refresh dan didalamnya masukkan coding
selectData();
untuk load ulang data di table dari database.
oke Insert dan Refresh sudah berhasil, selanjutnya kita buat fungsi untuk delete.
Klik 2x button delete dan masukkan coding ini didalamnya
int baris = tblData.getSelectedRow();
if (baris != -1) {
String NIS = tblData.getValueAt(baris, 0).toString();
String SQL = “DELETE FROM t_siswa WHERE NIS='”+NIS+”‘”;
int status = KoneksiDB.execute(SQL);
if (status==1) {
JOptionPane.showMessageDialog(this, “Data berhasil dihapus”, “Sukses”, JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(this, “Data gagal dihapus”, “Gagal”, JOptionPane.WARNING_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(this, “Pilih Baris Data Terlebih dahulu”, “Error”, JOptionPane.WARNING_MESSAGE);
}
Penjelasan :
Line 1 – Mengambil Index baris tabel yang di pilih user
Line (2-5) – Validasi jika user memilih data selanjutnya ambil Index atau Primary dari data di kasus ini adalah NIS dengan mengambil selectedRow dan index kolom pertama (0)
Line (6-8) – Jika Sukses tampilkan pesan
Line (9 – 11) – Jika gagal tampilkan pesan
Line (13-15) – Jika user belum memilih baris tampilkan pesan

setelah semua objek sudah diganti namanya kita buka bagian Source dari frmMain.java
pertama kita akan buat prosedur untuk mengambil data (select) dari database, masukan coding ini dibawah constructor (public frmMain() {})
public void selectData() {
String kolom[] = {“NIS”,”Nama”,”Jenis Kelamin”,”Kelas”,”Alamat”};
DefaultTableModel dtm = new DefaultTableModel(null, kolom);
String SQL = “SELECT * FROM t_siswa”;
ResultSet rs = KoneksiDB.executeQuery(SQL);
try {
while(rs.next()) {
String NIS = rs.getString(1);
String Nama = rs.getString(2);
String JK = “”;
if (“L”.equals(rs.getString(3))) {
JK = “Laki-Laki”;
} else {
JK = “Perempuan”;
}
String Kelas = rs.getString(4);
String Alamat = rs.getString(5);
String data[] = {NIS,Nama,JK,Kelas,Alamat};
dtm.addRow(data);
}
} catch (SQLException ex) {
Logger.getLogger(frmMain.class.getName()).log(Level.SEVERE, null, ex);
}
tblData.setModel(dtm);
}
Penjelasan :
Line 1 – Membuat Prosedur dengan Nama selectData()
Line 2 – Membuat Nama-Nama Kolom Table dengan Variabel Array kolom[]
Line 3 – Meninstansiasi DefaultTableModel dengan parameter (baris, kolom) karena baris diambil dari database maka parameter pertama diisi null
Line 4 – Query SQL untuk mengambil data
Line 5 – Mengexecute query sql dengan fungsi executeQuery yang sudah dibuat pada class KoneksiDB
Line 7 – Looping saat data didapatkan
Line (8-17) – Mengambil data yang didapatkan dari Database ke variabel
Line 18 – Memasukkan semua variabel kedalam satu array (row)
Line 24 – Memasukkan data dari DefaultTableModel ke tblData/JTable (objek tabel yang ada di form)
Silahkan di run.
Masih kosong ya? ya karena kita belum memasukkan sebuah data ke table t_siswa.
Sekarang kita coba buat fungsi untuk Insert data ke database, klik 2x objek button Add dan tambahkan coding ini didalamnya
if (“”.equals(txtNIS.getText()) || “”.equals(txtAlamat.getText()) ||
“”.equals(txtKelas.getText()) || “”.equals(txtNama.getText())) {
JOptionPane.showMessageDialog(this, “Harap Lengkapi Data”, “Error”, JOptionPane.WARNING_MESSAGE);
} else {
String JK = “”;
if (rdLaki.isSelected()) {
JK = “L”;
} else {
JK = “P”;
}
String SQL = “INSERT INTO t_siswa (NIS,NamaSiswa,JenisKelamin,Kelas,Alamat) ”
+ “VALUES(‘”+txtNIS.getText()+”‘,'”+txtNama.getText()+”‘,'”+JK+”‘,”
+ “‘”+txtKelas.getText()+”‘,'”+txtAlamat.getText()+”‘)”;
int status = KoneksiDB.execute(SQL);
if (status == 1) {
JOptionPane.showMessageDialog(this, “Data berhasil ditambahkan”, “Sukses”, JOptionPane.INFORMATION_MESSAGE);
selectData();
} else {
JOptionPane.showMessageDialog(this, “Data gagal ditambahkan”, “Sukses”, JOptionPane.WARNING_MESSAGE);
}
}
Penjelasan :
Line (1-4) – Validasi jika inputan masih kosong
Line (6-11) – Pengecekan Radio button yang diselect
Line (12 – 14) – Query Insert
Line (15-17) – Jika Berhasil tampilkan pesan sukses
Line 18 – Refresh data di table
Line (19 – 21) – Jika gagal munculkan pesan gagal
Nah, sekarang coba di run lagi dan tambahkan sebuah data ke database

Yee, data berhasil masuk ke database.
sekarang kita buat fungsi untuk refresh, klik 2x button refresh dan didalamnya masukkan coding
selectData();
untuk load ulang data di table dari database.
oke Insert dan Refresh sudah berhasil, selanjutnya kita buat fungsi untuk delete.
Klik 2x button delete dan masukkan coding ini didalamnya
int baris = tblData.getSelectedRow();
if (baris != -1) {
String NIS = tblData.getValueAt(baris, 0).toString();
String SQL = “DELETE FROM t_siswa WHERE NIS='”+NIS+”‘”;
int status = KoneksiDB.execute(SQL);
if (status==1) {
JOptionPane.showMessageDialog(this, “Data berhasil dihapus”, “Sukses”, JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(this, “Data gagal dihapus”, “Gagal”, JOptionPane.WARNING_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(this, “Pilih Baris Data Terlebih dahulu”, “Error”, JOptionPane.WARNING_MESSAGE);
}
Penjelasan :
Line 1 – Mengambil Index baris tabel yang di pilih user
Line (2-5) – Validasi jika user memilih data selanjutnya ambil Index atau Primary dari data di kasus ini adalah NIS dengan mengambil selectedRow dan index kolom pertama (0)
Line (6-8) – Jika Sukses tampilkan pesan
Line (9 – 11) – Jika gagal tampilkan pesan
Line (13-15) – Jika user belum memilih baris tampilkan pesan
