30 Juli 2009

Java Lat-12

//Nama Program :lat12.java

import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.util.*;

public class lat12 extends JFrame {
//Deklarasi Komponen
JLabel jLabel4 = new JLabel();
JScrollPane jScrollPane1 = new JScrollPane();
JTable tabel = new JTable();
DefaultTableModel tabMode;
Connection konek;
JLabel jLabel1=new JLabel();
JLabel jLabel2=new JLabel();
JLabel jLabel3=new JLabel();
JTextField dataAlamat=new JTextField();
JTextField dataKode=new JTextField();
Button rubah= new Button();
JTextField dataNama=new JTextField();
JLabel jLabel5=new JLabel();
JTextField dataKelas=new JTextField();
JTextPane caraPengguna=new JTextPane();
Choice pilihKelas = new Choice();

/**
*Methode Main
*@param args: Arguments
*/
public static void main(String args[]) {
  lat12 Data = new lat12();
  Data.setSize(400,500); 
  Dimension screen =Toolkit.getDefaultToolkit().getScreenSize();
  int lebar=(screen.width-Data.getSize().width)/2;
  int tinggi=(screen.height-Data.getSize().height)/2;

  Data.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  Data.setLocation(lebar,tinggi);  
  Data.setVisible(true); 
  Data.setResizable(false);  
}
/**
*Konstruktor
*Methode ini berisikan pembuatan komponen dan penambahan Action Listener
*/
public lat12() {
  this.getContentPane().setLayout(null);
  tabel.setToolTipText(" ");
  tabel.setVerifyInputWhenFocusTarget(false);
  jLabel4.setText("Daftar Data yang telah tersimpan di dalam database");
  jLabel4.setBounds(new Rectangle(15, 9, 362, 19));
   
//Membuat Tabel
jScrollPane1.setBounds(new Rectangle(13, 31, 365, 167));
Object[] row = {"Kode Siswa", "Nama Siswa", "Alamat", "Kelas"};
tabMode = new DefaultTableModel(null, row);
tabel.setModel(tabMode);
//Menambahkan Mouse Listener pada Tabel
tabel.addMouseListener(new MouseAdapter() {
//Proses saat TABEL di klik
public void mouseClicked(MouseEvent e) {
dapatData_dari_Tabel();
}
});

  jLabel2.setBounds(new Rectangle(18,334,89,23));
  jLabel2.setHorizontalAlignment(SwingConstants.RIGHT);
  jLabel2.setText("Nama Siswa : ");
  jLabel2.setRequestFocusEnabled(true);
  jLabel1.setBounds(new Rectangle(15,309,92,23));
  jLabel1.setHorizontalAlignment(SwingConstants.RIGHT);
  jLabel1.setText("Kode Siswa : ");
  jLabel1.setRequestFocusEnabled(true);
  jLabel3.setText("Alamat Siswa : ");
  jLabel3.setBounds(new Rectangle(18,363,89,23));
  jLabel3.setHorizontalAlignment(SwingConstants.RIGHT);
  jLabel3.setRequestFocusEnabled(true);
  jLabel5.setText("Kelas : ");
  jLabel5.setBounds(new Rectangle(18,393,89,23));
  jLabel5.setHorizontalAlignment(SwingConstants.RIGHT);
  jLabel5.setRequestFocusEnabled(true);  

  dataAlamat.setEnabled(false);
  dataAlamat.setBounds(new Rectangle(109,366,177,22));
  dataKode.setEnabled(false);
  dataKode.setBounds(new Rectangle(109,309,91,22));
  dataNama.setEnabled(false);
  dataNama.setBounds(new Rectangle(109,336,176,22));
  rubah.setEnabled(false);
  rubah.setLabel("RUBAH ");
  rubah.setBounds(new Rectangle(123,441,93,26));
  rubah.setBackground(SystemColor.inactiveCaption);
  caraPengguna.setEditable(false);
  caraPengguna.setText(
  "Cara Menggunakan :\nKlik data yang ingin dihapus pada TABEL, kemudian " + 
  "Memodifikasi data yang Anda inginkan pada kotak teks di bawah ini " +
  "dan klik tombol RUBAH untuk melakukan proses modifikasi atau perubahan data");
  caraPengguna.setBounds(new Rectangle(13, 210, 367, 87));
  pilihKelas.setEnabled(false);
  pilihKelas.setBounds(new Rectangle(110, 397, 121, 22));
  pilihKelas.addItem("Kelas 1");
  pilihKelas.addItem("Kelas 2");
  pilihKelas.addItem("Kelas 3");

//Menambahkan Action Listener pada tombol RUBAH
rubah.addActionListener(new java.awt.event.ActionListener() {
//Proses saat tombol RUBAH diklik
  public void actionPerformed(ActionEvent e) {
  proses_rubahData();
}
});

this.getContentPane().add(jScrollPane1, null);
jScrollPane1.getViewport().add(tabel, null);
this.getContentPane().add(jLabel4, null);
this.getContentPane().add(jLabel1, null);
this.getContentPane().add(jLabel2, null);
this.getContentPane().add(dataAlamat, null);
this.getContentPane().add(dataKode, null);
this.getContentPane().add(rubah, null);
this.getContentPane().add(dataNama, null);
this.getContentPane().add(jLabel3, null);
this.getContentPane().add(pilihKelas, null);
this.getContentPane().add(caraPengguna, null);
this.getContentPane().add(jLabel5, null);
this.getContentPane().add(rubah, null);

//Methode KoneksiDatabase() untuk koneksi database
koneksiDatabase();
//Memanggil methode tampilDataTabel() untuk menampilkan data pada tabel
tampilDataKeTabel();

}
/**
*Methode koneksiDatabase
*Untuk melakukan koneksi dengan Database Server
*Database Server = MySQL
*getConnection yang digunakan adalah getConnection(url, properties)
*/
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 url = "jdbc:odbc:Database";
String user = " ";
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 methode koneksiDatabase()
/**
*Methode tampilDataKeTabel
*Untuk menampilkan data yang telah tersimpan pada Database ke tabel
*/
public void tampilDataKeTabel() {
hapusTabel();
try {
String sql = "Select * from data_siswa";
Statement stat = konek.createStatement();
ResultSet set = stat.executeQuery(sql);
while (set.next()) {
String kode = set.getString("kode");
String nama = set.getString("nama");
String alamat = set.getString("alamat");
String kelas = set.getString("kelas");
String[] data = {kode, nama, alamat, kelas};
tabMode.addRow(data);
}
}
catch (Exception e) {}
}
/**
*Methode hapusTabel
*Untuk menghapus semua data yang terdapat pada tabel
*/
public void hapusTabel() {
int row = tabMode.getRowCount();
for (int i =0; itabMode.removeRow(0);
}
}
/**
*Methode dapatData_dari_Tabel
*Untuk mengambil data yang dipilih pada TABEL (data yang akan dirubah)
*/
void dapatData_dari_Tabel() {
int row = tabel.getSelectedRow();
//Mengambil data-data yang dipilih pada TABEL
String Kode = tabMode.getValueAt(row, 0).toString();
String Nama = tabMode.getValueAt(row, 1).toString();
String Alamat = tabMode.getValueAt(row, 2).toString();
String Kelas = tabMode.getValueAt(row, 3).toString();
dataKode.setText(Kode);
dataNama.setText(Nama);
dataAlamat.setText(Alamat);
dataKelas.setText(Kelas);
//Apabila data tidak dipilih
if (dataKode.getText().equals(" ")) {
  rubah.setEnabled(false);
  dataKode.setEnabled(false);
  dataNama.setEnabled(false);
  dataAlamat.setEnabled(false);
  pilihKelas.setEnabled(false);

}
//Apabila data dipilih
else {
  rubah.setEnabled(true);
  dataKode.setEnabled(false);
  dataNama.setEnabled(true);
  dataAlamat.setEnabled(true);
  pilihKelas.setEnabled(true);
dataNama.requestFocus();
}
}
/**
*Methode proses_rubahData()
*Untuk melakukan modifikasi data
*/
public void proses_rubahData() {
//Konfirmasi sebelum melakukan penghapusan data
int ok = JOptionPane.showConfirmDialog(null, "Anda Yakin ingin Menghapus Data\nDengan Kode = ' " + dataKode.getText() + " ' ", "Konfirmasi Modifikasi Data", 
JOptionPane.YES_NO_OPTION);
//Apabila tombol OK ditekan
if (ok == 0) {
try {
String sql = "UPDATE data_siswa SET nama = ?, alamat = ?, kelas = ? WHERE kode = ' " + dataKode.getText() + " ' ";
PreparedStatement stat = konek.prepareStatement(sql);
try {
stat.setString(1, dataNama.getText());
stat.setString(2, dataAlamat.getText());
stat.setString(3, pilihKelas.getSelectedItem());
stat.executeUpdate();
tampilDataKeTabel();
dataKode.setText(" ");
dataNama.setText(" ");
dataAlamat.setText(" ");
dataKelas.setText(" ");
rubah.setEnabled(false);
dataNama.setEnabled(false);
dataAlamat.setEnabled(false);
pilihKelas.setEnabled(false);
}
catch (SQLException se) {}
}
catch (SQLException se) {}
}
}
} //Akhir Kelas