JAVA SWING - MYSQL
Persiapan Lingkungan
1. Instalasi XAMPP
1. Download XAMPP → install.
2. Buka XAMPP Control Panel → Start:
o Apache (opsional)
o MySQL (wajib)
2. Membuat Database & Tabel
1. Buka phpMyAdmin:
[Link]
2. Buat database:
3. db_mahasiswa
4. Buat tabel:
CREATE TABLE mahasiswa (
nim VARCHAR(10) PRIMARY KEY,
nama VARCHAR(100),
prodi VARCHAR(50),
alamat VARCHAR(255)
);
Persiapan Eclipse & Library MySQL JDBC
1. Buat Project Baru
• File → New → Java Project
• Nama: CRUD_Mahasiswa
2. Tambahkan Library MySQL JDBC
1. Download MySQL Connector/J (.jar)
o [Link]
2. Di Eclipse:
o Klik kanan project → Build Path → Add External Archives
o Masukkan file:
[Link]
Membuat Koneksi Database (Class Koneksi)
Buat package:
src/koneksi/
Buat file: [Link]
package koneksi;
import [Link];
import [Link];
import [Link];
public class Koneksi {
private static Connection conn;
public static Connection getKoneksi() {
if (conn == null) {
try {
String url = "jdbc:mysql://localhost:3306/db_mahasiswa";
String user = "root";
String pass = "";
conn = [Link](url, user, pass);
[Link]("Koneksi Berhasil!");
} catch (SQLException e) {
[Link]("Koneksi Gagal: " + [Link]());
}
}
return conn;
}
}
Membuat Model/Entity Mahasiswa
Buat package:
src/model/ → [Link]
package model;
public class Mahasiswa {
private String nim;
private String nama;
private String prodi;
private String alamat;
public Mahasiswa(String nim, String nama, String prodi, String alamat) {
[Link] = nim;
[Link] = nama;
[Link] = prodi;
[Link] = alamat;
}
// Getter & Setter
public String getNim() { return nim; }
public void setNim(String nim) { [Link] = nim; }
public String getNama() { return nama; }
public void setNama(String nama) { [Link] = nama; }
public String getProdi() { return prodi; }
public void setProdi(String prodi) { [Link] = prodi; }
public String getAlamat() { return alamat; }
public void setAlamat(String alamat) { [Link] = alamat; }
}
Membuat DAO (Data Access Object)
Buat package:
src/dao/ → [Link]
package dao;
import [Link].*;
import [Link];
import [Link];
import [Link];
import [Link];
public class MahasiswaDAO {
public static void insert(Mahasiswa m) {
String sql = "INSERT INTO mahasiswa (nim, nama, prodi, alamat) VALUES
(?,?,?,?)";
try {
PreparedStatement ps =
[Link]().prepareStatement(sql);
[Link](1, [Link]());
[Link](2, [Link]());
[Link](3, [Link]());
[Link](4, [Link]());
[Link]();
} catch (SQLException e) {
[Link]();
}
}
public static List<Mahasiswa> getAll() {
List<Mahasiswa> list = new ArrayList<>();
String sql = "SELECT * FROM mahasiswa";
try {
Statement st = [Link]().createStatement();
ResultSet rs = [Link](sql);
while ([Link]()) {
[Link](new Mahasiswa(
[Link]("nim"),
[Link]("nama"),
[Link]("prodi"),
[Link]("alamat")
));
}
} catch (SQLException e) {
[Link]();
}
return list;
}
public static void update(Mahasiswa m) {
String sql = "UPDATE mahasiswa SET nama=?, prodi=?, alamat=? WHERE
nim=?";
try {
PreparedStatement ps =
[Link]().prepareStatement(sql);
[Link](1, [Link]());
[Link](2, [Link]());
[Link](3, [Link]());
[Link](4, [Link]());
[Link]();
} catch (SQLException e) {
[Link]();
}
}
public static void delete(String nim) {
String sql = "DELETE FROM mahasiswa WHERE nim=?";
try {
PreparedStatement ps =
[Link]().prepareStatement(sql);
[Link](1, nim);
[Link]();
} catch (SQLException e) {
[Link]();
}
}
}
Membuat GUI Java Swing (Form CRUD)
Buat package:
src/view/ → [Link]
package view;
import [Link].*;
import [Link];
import [Link];
import [Link];
import [Link].*;
import [Link];
public class FormMahasiswa extends JFrame {
JTextField txtNim, txtNama, txtProdi, txtAlamat;
JTable table;
DefaultTableModel model;
public FormMahasiswa() {
setTitle("Aplikasi CRUD Mahasiswa");
setSize(600, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(null);
JLabel lblNim = new JLabel("NIM");
[Link](20,20,100,25);
add(lblNim);
txtNim = new JTextField();
[Link](120,20,200,25);
add(txtNim);
JLabel lblNama = new JLabel("Nama");
[Link](20,60,100,25);
add(lblNama);
txtNama = new JTextField();
[Link](120,60,200,25);
add(txtNama);
JLabel lblProdi = new JLabel("Prodi");
[Link](20,100,100,25);
add(lblProdi);
txtProdi = new JTextField();
[Link](120,100,200,25);
add(txtProdi);
JLabel lblAlamat = new JLabel("Alamat");
[Link](20,140,100,25);
add(lblAlamat);
txtAlamat = new JTextField();
[Link](120,140,200,25);
add(txtAlamat);
JButton btnSimpan = new JButton("Simpan");
[Link](350,20,100,30);
add(btnSimpan);
JButton btnUpdate = new JButton("Update");
[Link](350,60,100,30);
add(btnUpdate);
JButton btnDelete = new JButton("Delete");
[Link](350,100,100,30);
add(btnDelete);
model = new DefaultTableModel(new
String[]{"NIM","Nama","Prodi","Alamat"},0);
table = new JTable(model);
JScrollPane sp = new JScrollPane(table);
[Link](20,190,540,150);
add(sp);
loadData();
// ⬇ Event Simpan
[Link](e -> {
Mahasiswa m = new Mahasiswa(
[Link](),
[Link](),
[Link](),
[Link]()
);
[Link](m);
loadData();
clearForm();
});
// ⬇ Event Update
[Link](e -> {
Mahasiswa m = new Mahasiswa(
[Link](),
[Link](),
[Link](),
[Link]()
);
[Link](m);
loadData();
clearForm();
});
// ⬇ Event Table Click
[Link](new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int row = [Link]();
[Link]([Link](row,0).toString());
[Link]([Link](row,1).toString());
[Link]([Link](row,2).toString());
[Link]([Link](row,3).toString());
}
});
// ⬇ Event Delete
[Link](e -> {
[Link]([Link]());
loadData();
clearForm();
});
}
private void loadData() {
[Link](0);
List<Mahasiswa> list = [Link]();
for (Mahasiswa m : list)
[Link](new Object[]{[Link](), [Link](), [Link](),
[Link]()});
}
private void clearForm() {
[Link]("");
[Link]("");
[Link]("");
[Link]("");
}
public static void main(String[] args) {
new FormMahasiswa().setVisible(true);
}
}