dbm
package dbm;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class dbm {
private static final String URL = "jdbc:mysql://localhost:3306/dbm";
private static final String USER = "root";
private static final String PASSWORD = "";
public static void main(String[] args) {
JFrame frame = new JFrame("Form Mahasiswa - Bloomberg Style");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 450);
frame.setLayout(new BorderLayout());
frame.getContentPane().setBackground(Color.decode("#000000")); // Black
// Panel input
JPanel inputPanel = new JPanel(new GridLayout(5, 2, 8, 8));
inputPanel.setBackground(Color.decode("#000000"));
// Warna-warna
Color labelColor = Color.decode("#00FF41"); // Green Matrix
Color buttonColor = Color.decode("#222222");
Font font = new Font("Monospaced", Font.BOLD, 14);
JLabel nameLabel = new JLabel("Nama:");
nameLabel.setForeground(labelColor);
nameLabel.setFont(font);
JTextField nameField = new JTextField();
JLabel nimLabel = new JLabel("NIM:");
nimLabel.setForeground(labelColor);
nimLabel.setFont(font);
JTextField nimField = new JTextField();
JLabel classLabel = new JLabel("Kelas:");
classLabel.setForeground(labelColor);
classLabel.setFont(font);
JTextField classField = new JTextField();
// Tombol-tombol
JButton submitButton = new JButton("Submit");
JButton editButton = new JButton("Edit");
JButton updateButton = new JButton("Update");
JButton deleteButton = new JButton("Delete");
for (JButton btn : new JButton[]{submitButton, editButton, updateButton, deleteButton}) {
btn.setFont(font);
btn.setBackground(buttonColor);
btn.setForeground(labelColor);
}
inputPanel.add(nameLabel);
inputPanel.add(nameField);
inputPanel.add(nimLabel);
inputPanel.add(nimField);
inputPanel.add(classLabel);
inputPanel.add(classField);
inputPanel.add(submitButton);
inputPanel.add(editButton);
inputPanel.add(updateButton);
inputPanel.add(deleteButton);
// Tabel
String[] columnNames = {"Nama", "NIM", "Kelas"};
DefaultTableModel tableModel = new DefaultTableModel(columnNames, 0);
JTable table = new JTable(tableModel);
table.setBackground(Color.decode("#111111"));
table.setForeground(labelColor);
table.setFont(font);
table.setGridColor(Color.darkGray);
table.setRowHeight(22);
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.getViewport().setBackground(Color.decode("#111111"));
frame.add(inputPanel, BorderLayout.NORTH);
frame.add(scrollPane, BorderLayout.CENTER);
loadData(tableModel);
// Submit
submitButton.addActionListener(e -> {
String name = nameField.getText();
String nim = nimField.getText();
String studentClass = classField.getText();
if (!name.isEmpty() && !nim.isEmpty() && !studentClass.isEmpty()) {
if (insertData(name, nim, studentClass)) {
tableModel.setRowCount(0);
loadData(tableModel);
nameField.setText("");
nimField.setText("");
classField.setText("");
JOptionPane.showMessageDialog(frame, "Data berhasil disimpan!", "Sukses", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(frame, "Gagal menyimpan data!", "Error", JOptionPane.ERROR_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(frame, "Harap isi semua kolom!", "Peringatan", JOptionPane.WARNING_MESSAGE);
}
});
// Edit
editButton.addActionListener(e -> {
int selectedRow = table.getSelectedRow();
if (selectedRow != -1) {
nameField.setText(tableModel.getValueAt(selectedRow, 0).toString());
nimField.setText(tableModel.getValueAt(selectedRow, 1).toString());
classField.setText(tableModel.getValueAt(selectedRow, 2).toString());
nimField.setEnabled(false);
} else {
JOptionPane.showMessageDialog(frame, "Pilih data yang ingin diedit!", "Peringatan", JOptionPane.WARNING_MESSAGE);
}
});
// Update
updateButton.addActionListener(e -> {
String name = nameField.getText();
String nim = nimField.getText();
String studentClass = classField.getText();
if (!name.isEmpty() && !nim.isEmpty() && !studentClass.isEmpty()) {
if (updateData(name, nim, studentClass)) {
tableModel.setRowCount(0);
loadData(tableModel);
nameField.setText("");
nimField.setText("");
nimField.setEnabled(true);
classField.setText("");
JOptionPane.showMessageDialog(frame, "Data berhasil diperbarui!", "Sukses", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(frame, "Gagal memperbarui data!", "Error", JOptionPane.ERROR_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(frame, "Harap isi semua kolom!", "Peringatan", JOptionPane.WARNING_MESSAGE);
}
});
// Delete
deleteButton.addActionListener(e -> {
int selectedRow = table.getSelectedRow();
if (selectedRow != -1) {
String nim = tableModel.getValueAt(selectedRow, 1).toString();
int confirm = JOptionPane.showConfirmDialog(frame, "Yakin ingin menghapus data dengan NIM " + nim + "?", "Konfirmasi", JOptionPane.YES_NO_OPTION);
if (confirm == JOptionPane.YES_OPTION) {
if (deleteData(nim)) {
tableModel.setRowCount(0);
loadData(tableModel);
nameField.setText("");
nimField.setText("");
classField.setText("");
nimField.setEnabled(true);
JOptionPane.showMessageDialog(frame, "Data berhasil dihapus!", "Sukses", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(frame, "Gagal menghapus data!", "Error", JOptionPane.ERROR_MESSAGE);
}
}
} else {
JOptionPane.showMessageDialog(frame, "Pilih data yang ingin dihapus!", "Peringatan", JOptionPane.WARNING_MESSAGE);
}
});
frame.setVisible(true);
}
private static boolean insertData(String name, String nim, String studentClass) {
String query = "INSERT INTO mahasiswa (nama, nim, kelas) VALUES (?, ?, ?)";
try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
PreparedStatement stmt = conn.prepareStatement(query)) {
stmt.setString(1, name);
stmt.setString(2, nim);
stmt.setString(3, studentClass);
return stmt.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
private static boolean updateData(String name, String nim, String studentClass) {
String query = "UPDATE mahasiswa SET nama = ?, kelas = ? WHERE nim = ?";
try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
PreparedStatement stmt = conn.prepareStatement(query)) {
stmt.setString(1, name);
stmt.setString(2, studentClass);
stmt.setString(3, nim);
return stmt.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
private static boolean deleteData(String nim) {
String query = "DELETE FROM mahasiswa WHERE nim = ?";
try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
PreparedStatement stmt = conn.prepareStatement(query)) {
stmt.setString(1, nim);
return stmt.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
private static void loadData(DefaultTableModel tableModel) {
String query = "SELECT nama, nim, kelas FROM mahasiswa";
try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query)) {
while (rs.next()) {
tableModel.addRow(new Object[]{rs.getString("nama"), rs.getString("nim"), rs.getString("kelas")});
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}