30 Juli 2009

Java Lat-10

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

public class lat10 extends JFrame {
private Choice pilihKolom = new Choice();
private JtextField paramCari = new JTextField();
private JScrollPane jScrollPane1 = new JScrollPane();
private JTable tabel = new JTable();
DefaultTableModel tabMode;
private Button tombolCari = new Button();
private JLabel jLabel1 = new JLabel();
private JLabel jLabel2 = new JLabel();
Connection konek;
private JLabel jLabel3 = new JLabel();

/**
* Methode main
* @param args = arguments

public static void main(String[] args) {
lat10 Data = new lat10();
Data.setSize(400, 350);
Dimension sreen = 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.setResizable(false);
Data.setVisible(true);
}

/**
* Konstuktor
* Methode ini berisikan pembuatan komponen dan penambahan Listener
*/

public lat10() {
this.getContentPane().setLayout(null);
this.setTitle("Proses Mencari Data");

pilihKolom.add("--Plih Salah Satu--");  
pilihKolom.addItem("Semua");
pilihKolom.addItem("Kode");
pilihKolom.addItem("Nama");
pilihKolom.addItem("Alamat");
pilihKolom.addItem("Kelas");
pilihKolom.setBounds(new Rectangle(11, 30, 136, 22));
// Menambahkan Item Listener
pilihKolom.addItemListener(new ItemListener() {
// Proses saat kotak pilihan dipilih
public void itemStateChanged(ItemEvent e) {
prosesPilihKolom();
}
});

tombolCari.setBackground(Color.cyan);
tombolCari.setLabel("CARI");
tombolCari.setEnabled(false);
tombolCari.setBounds(new Rectangle(313, 30, 69, 24));
// Menambahkan Action Listener
tombolCari.addActionListener(new ActionListener() {
// Proses saat tombol CARI ditekan
public void actionPerformed(ActionEvent e) {
prosesTombolCari();
}
});

paramCari.setEnabled(false);
paramCari.setBounds(new Rectangle(161, 30, 140, 22));

// Membuat Tabel
jScrollPane1.setBounds(new Rectangle(11, 101, 372, 195));
Object[] row = {"Kode Siswa", "Nama Siswa", "Alamat", "Kelas"};
tabMode = new DefaultTableMode(null, row);
tabel.setMode(tabMode);

jLabel1.setText("NamaKolom :");
jLabel1.setBounds(new Rectangle(12, 8, 123, 19));
jLabel2.setText("Data yang dicari :");
jLabel2.setBounds(new Rectangle(161, 10, 142, 19));
jLabel3.setText("Hasil Pencarian :");
jLabel3.setBounds(new Rectangle(12, 75, 370, 23));
this.getContentPane().add(jScrollPane1, null);  
this.getContentPane().add(pilihKolom, null);
this.getContentPane().add(tombolCari, null);
this.getContentPane().add(jLabel1, null);
this.getContentPane().add(paramCari, null);
this.getContentPane().add(jLabel2, null);
this.getContentPane().add(jLabel3, null);
jScrollPane1.getViewport().add(tabel, null);

// Memanggil Methode koneksiDatabase()
koneksiDatabase();
}

/**
* Methode koneksiDatabase
* Untuk melakukan koneksi dengan Database Server
* Database Server = MySQL
*/
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 = "sunardi";
String pass = "1234";
konek = DriverManager.getConnection(url,user,pass);
System.out.println(Sukses Koneksi...");
}
// Gagal Koneksi dengan Databasecatch (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 prosesPilihKolom
* Untuk melakukan proses saat memilih pilihan kolom
*/
public void prosesPilihKolom() {
// Pilihan kolom belum dipilih
if (pilihKolom.getSelectedItem().equalsIgnoreCase("--Pilih Salah Satu--")) {
tombolCari.setEnabled(false);
paramCari.setEnabled(false);
}
// Pilihan kolom dipilih
else {
// jika memilih semua kolom
if (pilihKolom.getSelectedItem().equalsIgnoreCase("Semua")) {
tombolCari.setEnabled(false);
paramCari.setEnabled(false);
tombolCari.set requestFocus();
}
// jika memilih salah satu kolom
else {
tombolCari.setEnabled(false);
paramCari.setEnabled(false);
tombolCari.set requestFocus();
}
}
}
/**
* Methode prosesTombolCari
* Untuk melakukan proses saat tombol Cari ditekan
*/
public void prosesTombolCari() {
// jika memilih semua kolom
if (paramCari.isEnabled() == true) {
// Apabila kondisi pencarian belum dimasukkan
if (paramCari.getText().equals("")) { 
JOptionPane.showMessageDialg(null,
"Parameter Data yang akan dicari belum dimasukkan");
}
// Semua data valid
else {
String kolom = pilihKolom.getSelectedItem();
String kondisi = paramCari.getText();
proses_cariData("SELECT*FROM data_siswa WHERE"+kolom+"+""+kondisi+"");
}
}
// Jika memilih semua kolom
else {
proses_cariData("SELECT*FROM data_siswa");
}
}
/**
* Methode prosesCari
* Untuk melakukan proses pencarian Data
* @param sql = statement SQL
*/
public void proses_cariData(String sql) {
hapusTabel();
try {
Statement stat = konek.createStatement();
ResultSet set = stat.executeQuery(sql);
while (set.next()) {
String kode = set.getString("kode"); 
Strig nama = set.getString("nama"); 
String alamat = set.getString("alamat");
String kelas = set.getString("kelas");
String[] data = {kode, nama, alamat, kelas};
tabMode.addRow(data);
}
stat.close();
}
catch (Exception e) {}
}

/**
* Methode hapusTabel
* Untuk menghapus semua data yang ada pada Tabel 
*/
 public void hapusTabel() {
int row = tabMode.getRowCount();
for (int i = 0; itabMode.removeRow(0);
}
}
} // Akhir Kelas cariData