import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.awt.event.*;
import javax.swing.table.*;
public class lat13 extends JFrame {
private Choice pilihKolom = new Choice();
private JScrollPane jScrollPane1 = new JScrollPane();
private JTable tabel = new JTable();
DefaultTableModel tabMode;
private Button tombolUrut = new Button();
private JLabel jLabel1=new JLabel();
Connection konek;
private JLabel jLabel3=new JLabel();
private CheckboxGroup checkboxGroup = new CheckboxGroup();
private Checkbox dariAZ = new Checkbox();
private Checkbox dariZA = new Checkbox();
/**
*Methode Main
*@param args: arguments
*/
public static void main(String args[]) {
lat13 Data = new lat13();
Data.setSize(400,350);
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 lat13() {
this.getContentPane().setLayout(null);
this.setTitle("Proses Mencari Data");
dariAZ.setCheckboxGroup(checkboxGroup);
dariAZ.setLabel("Urutkan dari A ke Z");
dariAZ.setBounds(new Rectangle(154, 23, 141, 23));
dariZA.setCheckboxGroup(checkboxGroup);
dariZA.setLabel("Urutkan dari Z ke A");
dariZA.setBounds(new Rectangle(154, 42, 136, 23));
checkboxGroup.setSelectedCheckbox(dariAZ);
pilihKolom.add("-- Pilih Salah Satu --");
pilihKolom.addItem("Kode");
pilihKolom.addItem("Nama");
pilihKolom.addItem("Alamat");
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();
}
});
tombolUrut.setBackground(Color.cyan);
tombolUrut.setLabel("URUTKAN");
tombolUrut.setEnabled(false);
tombolUrut.setBounds(new Rectangle(294, 30, 88, 24));
//Menambahkan Action Listener
tombolUrut.addActionListener(new ActionListener() {
//Proses saat tombol URUTKAN di klik
public void actionPerformed(ActionEvent e) {
prosesTombolUrutkan();
}
});
//Membuat Tabel
jScrollPane1.setBounds(new Rectangle(11, 101, 372, 195));
Object[] row = {"Kode Siswa", "Nama Siswa", "Alamat", "Kelas"};
tabMode = new DefaultTableModel(null, row);
tabel.setModel(tabMode);
jLabel1.setBounds(new Rectangle(12,8,259,19));
jLabel1.setText("Nama Kolom yang diurutkan : ");
jLabel3.setText("Hasil Pengurutan Data : ");
jLabel3.setBounds(new Rectangle(12,75,370,23));
this.getContentPane().add(jScrollPane1, null);
jScrollPane1.getViewport().add(tabel, null);
this.getContentPane().add(jLabel1, null);
this.getContentPane().add(tombolUrut, null);
this.getContentPane().add(pilihKolom, null);
this.getContentPane().add(jLabel3, null);
this.getContentPane().add(dariAZ, null);
this.getContentPane().add(dariZA, null);
//Memanggil 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; i
}
}
/**
*Methode prosesPilihKolom
*Untuk melakukan proses saat memilih pilihan kolom
*/
void prosesPilihKolom() {
//Apabila pilihan belum dipilih
if (pilihKolom.getSelectedItem().equalsIgnoreCase("-- Pilih Salah Satu --")) {
tombolUrut.setEnabled(false);
}
//Apabila pilihan sudah dipilih
else {
tombolUrut.setEnabled(true);
}
}
/**
*Methode prosesTombolUrutkan
*Untuk melakukan proses saat tombol URUTKAN ditekan
*/
void prosesTombolUrutkan() {
//Apabila memilih pilihan Mengurutkan dari A sampai Z
if (checkboxGroup.getSelectedCheckbox().getLabel().endsWith("Z")) {
prosesUrutkan("ASC");
}
//Apabila memilih pilihan Mengurutkan dari Z sampai A
else {
prosesUrutkan("DESC");
}
}
/**
*Methode prosesCari
*Untuk melakukan proses pengurutan Data
*@param urut = nilai kondisi ORDER BY
*/
public void prosesUrutkan(String urut) {
hapusTabel();
try {
String sql = "SELECT *FROM data_siswa ORDER BY" +
pilihKolom.getSelectedItem() + " " + urut;
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);
}
stat.close();
}
catch (Exception e) {}
}
}