//ValidasiGabungan.java
package LatihanUbahData;
import javax.swing.*;
import java.sql.*;
import java.awt.*;
import javax.swing.table.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.text.*;
public class ValidasiGabungan extends JFrame{
JScrollPane jScrollPane1 = new JScrollPane();
JTable tabel = new JTable();
DefaultTableModel tabMode;
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel4 = new JLabel();
JLabel jLabel5 = new JLabel();
JTextField textKode = new JTextField();
JTextField textNama = new JTextField();
JTextField textAlmt = new JTextField();
JLabel jLabel3 = new JLabel();
Choice pilihKelas = new Choice();
Button button1 = new Button();
Button rubah = new Button();
Button hapus = new Button();
JTextPane caraPengguna = new JTextPane();
Connection konek;
public static void main (String args[]){
ValidasiGabungan ValidasiGabungan = new ValidasiGabungan();
ValidasiGabungan.setSize(400,460);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
int lebar = (screen.width - ValidasiGabungan.getSize().width)/2;
int tinggi = (screen.height - ValidasiGabungan.getSize().height)/2;
ValidasiGabungan.setTitle("Form Mahasiswa Teknik Informatika");
ValidasiGabungan.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ValidasiGabungan.setLocation(lebar,tinggi);
ValidasiGabungan.setResizable(false);
ValidasiGabungan.setVisible(true);
}
public ValidasiGabungan(){
tabel.setToolTipText("");
tabel.setVerifyInputWhenFocusTarget(false);
Object[] row = {"NIM","Nama Mahasiswa","Alamat","Kelas"};
tabMode = new DefaultTableModel(null,row);
jScrollPane1.setBounds(new Rectangle(13,195,365,100));
tabel.setModel(tabMode);
// Menambahkan MouseListenet pada Tabel
tabel.addMouseListener(new java.awt.event.MouseAdapter(){
//Proses saat Tabel di klik
public void mouseClicked(MouseEvent e){
dapatData_dari_Tabel();
}
});
jLabel1.setHorizontalAlignment(SwingConstants.LEFT);
jLabel1.setText("NIM ");
jLabel1.setBounds(new Rectangle(10,13,120,15));
this.getContentPane().setLayout(null);
jLabel2.setBounds(new Rectangle(10,43,120,15));
jLabel2.setHorizontalAlignment(SwingConstants.LEFT);
jLabel2.setText("Nama Mahasiswa ");
jLabel4.setBounds(new Rectangle(10,73,120,15));
jLabel4.setHorizontalAlignment(SwingConstants.LEFT);
jLabel4.setText("Alamat ");
jLabel5.setBounds(new Rectangle(10,103,120,15));
jLabel5.setHorizontalAlignment(SwingConstants.LEFT);
jLabel5.setText("Kelas ");
textKode.setText(null);
textKode.setBounds(new Rectangle(130,13,187,21));
textKode.setDocument(new batasInput((byte)10).getFilter());
textNama.setText(null);
textNama.setBounds(new Rectangle(130,43,187,21));
textAlmt.setText(null);
textAlmt.setBounds(new Rectangle(130,73,187,21));
pilihKelas.setEnabled(true);
pilihKelas.setBounds(new Rectangle(130,103,121,22));
pilihKelas.addItem("IFA");
pilihKelas.addItem("IFB");
pilihKelas.addItem("IFC");
pilihKelas.addItem("IFD");
jLabel3.setText("Daftar para Mahasiswa yang telah tersimpan sebelumnya");
jLabel3.setBounds(new Rectangle(29,169,343,15));
button1.setLabel("Simpan");
button1.setBounds(new Rectangle(30,137,93,24));
//Menambahkan Actin Listener
button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//Method yang dipanggil saat tombol ditekan
cekAndSaveData(e);
}
});
rubah.setActionCommand("");
rubah.setEnabled(false);
rubah.setLabel("Rubah");
rubah.setBounds(new Rectangle(140,137,93,24));
// Menambahkan Actin Listener pada tombol RUBAH
rubah.addActionListener(new java.awt.event.ActionListener(){
//Proses saat tombol RUBAH diklik
public void actionPerformed(ActionEvent e){
proses_RubahData();
}
});
hapus.setActionCommand("");
hapus.setEnabled(false);
hapus.setLabel("Hapus");
hapus.setBounds(new Rectangle(250,137,93,24));
// Menambahkan Action Listener pada tombol HAPUS
hapus.addActionListener(new java.awt.event.ActionListener(){
// Proses saat tombol HAPUS di klik
public void actionPerformed(ActionEvent e){
proses_hapusData();
}
});
caraPengguna.setEditable(false);
caraPengguna.setText("Cara Menggunakan :\n" +
"1. Masukkan string, lalu klik tombol 'Simpan' untuk menyimpan data ke database.\n" +
"2. Klik tombol 'Rubah', jika ingin merubah isi record.\n" +
"3. Klik tombol 'Hapus', jika ingin menghapus isi record.");
caraPengguna.setBounds(new Rectangle(13,300,367,110));
this.getContentPane().add(jScrollPane1, null);
jScrollPane1.getViewport().add(tabel, null);
this.getContentPane().add(jLabel1,null);
this.getContentPane().add(jLabel2,null);
this.getContentPane().add(jLabel4,null);
this.getContentPane().add(jLabel5,null);
this.getContentPane().add(textKode,null);
this.getContentPane().add(textNama,null);
this.getContentPane().add(textAlmt,null);
this.getContentPane().add(jLabel3,null);
this.getContentPane().add(pilihKelas, null);
this.getContentPane().add(button1,null);
this.getContentPane().add(rubah, null);
this.getContentPane().add(hapus, null);
this.getContentPane().add(caraPengguna, null);
//Memanggil method untuk koneksi database dan daftar kode yang telah tersimpan
koneksiDatabase();
daftarKode();
}
/**
*Method koneksiDatabase
*Untuk melakukan koneksi dengan Database Server
*/
public void koneksiDatabase() {
//Mencoba memanggil Driver JDBC
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("Sukses Driver JDBC ditemukan...");
//Mencoba melakukan koneksi dengan database
try {
String db = "mahasiswa";
String url = "jdbc:mysql://localhost/" + db;
String user = "root";
String pass = "";
konek = DriverManager.getConnection(url,user,pass);
System.out.println("Sukses Koneksi...");
}
//Gagal Koneksi dengan database
catch (SQLException se){
System.out.println("Koneksi Gagal= "+se);
}
}
//Gagal Memanggil Driver JDBC
catch (ClassNotFoundException cnfe){
System.out.println("Class tidak ditemukan..Error: "+cnfe);
}
}//Akhir method koneksiDarabase()
/**
* Method daftarKode()
* Untuk menampilkan daftar kode dan nama siswa yang telah tersimpan di database
*/
public void daftarKode() {
hapusTabel();
//Mencoba mengirim Statement SQL
try {
String sql = "Select * from data ORDER BY NIM ASC";
Statement stat = konek.createStatement();
ResultSet set = stat.executeQuery(sql);
while (set.next()){
String nim = set.getString("NIM");
String nama_mahasiswa = set.getString("Nama_Mahasiswa");
String alamat = set.getString("Alamat");
String kelas = set.getString("Kelas");
String[] data = {nim, nama_mahasiswa, alamat, kelas};
tabMode.addRow(data);
}
stat.close();
}
//Kesalahan pengiriman Statement SQL
catch (SQLException se){
System.out.println("SQL salah = "+se);
}
catch (Exception e){
System.out.println("Pesan Error = "+e);
}
}//Akhir method daftarKode()
/**
* Method hapusTabel
* Untuk menghapus semua data yang terdapat pada tabel
*/
public void hapusTabel(){
int row = tabMode.getRowCount();
for (int i=0; i<row; i++){
tabMode.removeRow(0);
}
}
/**
* Method cekAndSaveData(ActinEvent e)
* Untuk melakukan pemeriksaan apakah data yang dimasukkan valid atau tidak-
* Jika valid, data tersebut disimpan
* tetapi jika tidak valid maka menampilkan pesan kesalahan
* @param e: Actin Event
*/
void cekAndSaveData(ActionEvent e){
//Mencoba Mengirim Statement SQL
try {
PreparedStatement stat = konek.prepareStatement(
"Insert Into data values(?,?,?,?)");
try {
stat.setString(1, textKode.getText());
stat.setString(2, textNama.getText());
stat.setString(3, textAlmt.getText());
stat.setString(4, pilihKelas.getSelectedItem());
stat.executeUpdate();
}
//Gagal Mengirim Statement SQL (Data tidak valid)
catch (SQLException se){
System.out.println("Gagal Menyimpan..Pesan Error="+se);
JOptionPane.showMessageDialog(null, "Kode yang Anda masukkan telah ada sebelumnya \nGagal disimpan.. Coba Lagi\nPesan Error :\n" +
"<html><font color=#66ffff>"+se+"</font></html>");
textKode.setFocusable(true);
}
daftarKode();
stat.close();
}
catch(Exception er) {
System.out.println("Pesan Error ="+er);
}
}//Akhir Method cekAndSaveData(ActiontEvent e)
/**
* Membuat Kelas Untuk membatasi Input yang masuk
*/
class batasInput {
byte length;
PlainDocument filter;
public batasInput(byte length) {
this.length = length;
}
public PlainDocument getFilter() {
filter = new javax.swing.text.PlainDocument() {
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
int ab = textKode.getText().length();
if (ab < length) {
super.insertString(offs, str, a);
}
}
};
return filter;
}
}
void dapatData_dari_Tabel() {
int row = tabel.getSelectedRow();
// Mengambil data-data yang dipilih pada TABEL
String Nim = tabMode.getValueAt(row, 0).toString();
String Nama_Mahasiswa = tabMode.getValueAt(row, 1).toString();
String Alamat = tabMode.getValueAt(row, 2).toString();
String Kelas = tabMode.getValueAt(row, 3).toString();
textKode.setText(Nim);
textNama.setText(Nama_Mahasiswa);
textAlmt.setText(Alamat);
pilihKelas.select(Kelas);
// Apabila data tidak dipilih
if (textKode.getText().equals("")){
rubah.setEnabled(false);
hapus.setEnabled(false);
textKode.setEnabled(false);
textNama.setEnabled(false);
textAlmt.setEnabled(false);
pilihKelas.setEnabled(false);
}
// Apabila data dipilih
else {
rubah.setEnabled(true);
hapus.setEnabled(true);
textKode.setEnabled(false);
textNama.setEnabled(true);
textAlmt.setEnabled(true);
pilihKelas.setEnabled(true);
textNama.requestFocus();
}
}
/**
* Method proses_RubahData()
* Untuk melakukan modifikasi data
*/
public void proses_RubahData(){
// Konfirmasi sebelum melakukan perubahan data
int ok = JOptionPane.showConfirmDialog(null, "Anda Yakin Ingin Memodifikasi Data\nDengan Kode = "+textKode.getText()+"", "Konfirmasi Memodifikasi Data", JOptionPane.YES_NO_OPTION);
// Apabila tombol OK ditekan
if (ok == 0){
try{
String sql = "UPDATE data SET Nama_Mahasiswa = ?, Alamat = ?, Kelas = ? WHERE NIM = "+ textKode.getText()+"";
PreparedStatement stat = konek.prepareStatement(sql);
try{
stat.setString(1, textNama.getText());
stat.setString(2, textAlmt.getText());
stat.setString(3, pilihKelas.getSelectedItem());
stat.executeUpdate();
daftarKode();
textKode.setText("");
textNama.setText("");
textAlmt.setText("");
rubah.setEnabled(false);
textKode.setEnabled(true);
textNama.setEnabled(true);
textAlmt.setEnabled(true);
pilihKelas.setEnabled(true);
}
catch(SQLException se){}
}
catch(SQLException se){}
}
}
/**
* Method proses_hapusData()
* Untuk melakukan modifikasi data
*/
public void proses_hapusData(){
// Konfirmasi sebelum melakukan penghapusan data
int ok = JOptionPane.showConfirmDialog(null,"Anda Yakin Ingin Menghapus Data\nDengan NIM = " + textKode.getText() + "","Konfirmasi Menghapus Data", JOptionPane.YES_NO_OPTION);
// Apabila tombol OK ditekan
if (ok == 0){
try {
String sql = "DELETE FROM data WHERE NIM = " +
textKode.getText() + "";
PreparedStatement stat = konek.prepareStatement(sql);
stat.executeUpdate();
daftarKode();
textKode.setText("");
textNama.setText("");
textAlmt.setText("");
hapus.setEnabled(false);
}
catch (SQLException se){
System.out.println("Gagal Hapus.. Pesan Error = " + se);
JOptionPane.showMessageDialog(null, "Gagal Hapus Data.. Coba Lagi\nPesan Error :\n"
+ "<html><font color=#FF0000>" + se + "</font></html>");
textKode.setFocusable(true);
}
}
}
}//Akhir Kelas ValidasiPrimaryKey
// utama_Perpustakaan
package LatihanUbahData;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class utama_Perpustakaan extends JFrame{
JMenuBar menuBar = new JMenuBar();
JMenu menu_file = new JMenu();
JMenuItem file_keluar = new JMenuItem();
JMenu menu_input = new JMenu();
JMenu menu_proses = new JMenu();
JMenuItem input_buku = new JMenuItem();
JMenuItem proses_pinjam = new JMenuItem();
JMenuItem proses_kembali = new JMenuItem();
JDesktopPane desk = new JDesktopPane();
public static void main(String args []){
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch(Exception Ignored){
}
new utama_Perpustakaan();
}
public utama_Perpustakaan() {
super("Aplikasi");
setJMenuBar(menuBar);
setContentPane(desk);
tampilanGUI();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
setSize(screen.width, screen.height - 40);
setVisible(true);
prosesMenu();
}
void tampilanGUI(){
menu_file.setText("file");
file_keluar.setText("keluar");
menu_input.setText("Input Data");
menu_proses.setText("Proses Data");
input_buku.setText("Input Data Mahasiswa");
proses_pinjam.setText("Edit Data Mahasiswa");
proses_kembali.setText("Hapus Data Mahasiswa");
// Menambahkan menu pada menu bar
menuBar.add(menu_file);
menuBar.add(menu_input);
menuBar.add(menu_proses);
//Menambahkan sub menu dan separator pada menu
menu_file.addSeparator();
menu_file.add(file_keluar);
menu_file.addSeparator();
menu_input.addSeparator();
menu_input.add(input_buku);
menu_input.addSeparator();
menu_input.addSeparator();
menu_proses.addSeparator();
menu_proses.add(proses_pinjam);
menu_proses.addSeparator();
menu_proses.add(proses_kembali);
menu_proses.addSeparator();
}
public void prosesMenu() {
file_keluar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int tutup = JOptionPane.showConfirmDialog(null, "Apakah Anda ingin menutup Aplikasi ini???", "Exit", JOptionPane.YES_NO_OPTION);
if(tutup == 0) {
System.exit(0);
}
}
});
input_buku.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
desk.removeAll();
repaint();
ValidasiGabungan input_buku = new ValidasiGabungan();
input_buku.setSize(desk.getSize().width, desk.getSize().height);
input_buku.show();
desk.add(input_buku);
}
});
proses_pinjam.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
desk.removeAll();
repaint();
ValidasiGabungan proses_pinjam = new ValidasiGabungan();
proses_pinjam.setSize(desk.getSize().width, desk.getSize().height);
proses_pinjam.show();
desk.add(proses_pinjam);
}
});
proses_kembali.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
desk.removeAll();
repaint();
ValidasiGabungan proses_kembali = new ValidasiGabungan();
proses_kembali.setSize(desk.getSize().width, desk.getSize().height);
proses_kembali.show();
desk.add(proses_kembali);
}
});
}
}
Data Base nya Gan :