Menampilkan Daftar Barang Dari Tabel Database
1. Andaikan anda punya tabel barang dengan struktur seperti berikut.
+---------+-------------+------+-----+
| Field | Type | Null | Key |
+---------+-------------+------+-----+
| kodebrg | char(5) | NO | PRI |
| nama | varchar(40) | YES | |
| harga | int(11) | YES | |
| stok | int(11) | YES | |
+---------+-------------+------+-----+
2. Isilah tabel barang dengan sejumlah record, misalnya seperti berikut.
+---------+------------------------+-------+------+
| kodebrg | nama | harga | stok |
+---------+------------------------+-------+------+
| 01001 | Buku Tulis Kiky 30 lbr | 2500 | 12 |
| 01002 | Buku Tulis Kiky 52 lbr | 3500 | 24 |
| 01003 | Buku Tulis Sidu 30 lbr | 2500 | 30 |
| 02001 | Pensil 2B Kenko | 1000 | 50 |
| 02002 | Pensil Mekanik Joyko | 4500 | 50 |
| 03001 | Kertas HVS A4 70 gr | 3000 | 10 |
+---------+------------------------+-------+------+
3. Buat kelas Barang yang dipakai untuk mengakses tabel barang, seperti berikut.
package halo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Vector;
public class Barang {
// field
private String kodeBrg; // 5 karakter
private String nama; // 40 karakter
private int harga;
private int stok; // jumlah (stok) barang
// koneksi
private Connection con;
private Statement st;
private int hasil;
private String sql;
private ResultSet rs;
private String error;
private Vector daftarBarang;
private Vector baris;
// getter dan setter field
public String getKodeBrg() {
return kodeBrg;
}
public void setKodeBrg(String kodeBrg) {
this.kodeBrg = kodeBrg;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public int getHarga() {
return harga;
}
public void setHarga(int harga) {
this.nama = nama;
}
public int getStok() {
return stok;
}
public void setStok(int stok) {
this.stok = stok;
}
public String getSql() {
return sql;
}
public String getError() {
return error;
}
// kosongkan properti
public void kosongkan(){
setKodeBrg("");
setKodeBrg("");
setNama("");
setHarga(0);
setStok(0);
}
// baca dari tabel barang
private Vector baca(String where, String order){
error = null;
String select;
if(daftarBarang == null)
daftarBarang = new Vector();
else
daftarBarang.clear();
try {
con = Mysql.getConnection();
st = con.createStatement();
if(where.isEmpty()){
select = "select * from barang ";
sql = select.concat(" order by ").concat(order);
}else{
select = "select * from barang where ";
sql = select.concat(where).concat(" order by
").concat(order);
}
System.out.println("SQL: "+sql+"\n");
rs = st.executeQuery(sql);
while(rs.next()){
// ciptakan sebuah baris sebagai objek Vector
baris = new Vector();
//masukkan ke satu baris data
baris.addElement(rs.getString("kodebrg"));
baris.addElement(rs.getString("nama"));
baris.addElement(rs.getString("harga"));
baris.addElement(rs.getString("stok"));
// tambahkan baris ini ke objek daftarBarang
daftarBarang.addElement(baris);
}
st.close(); // close statement
rs.close(); // close result set
con.close(); // close database Connection
} catch (Exception e) {
error = "gagal baca tabel";
}
return daftarBarang;
}
// baca semua record dengan urut berdasar field
public Vector getSemua(String orderField){
return baca("", orderField);
}
public Vector getSemua(String where, String orderField){
return baca(where, orderField);
}
4. Buat kelas DialogBarang dari JDialog, seperti berikut.
Desain dialog.
btnTutu
p
btnUrutKode btnUrutNama
tableBarang
Kelas:
package halo;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.util.Vector;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
public class DialogBarang extends javax.swing.JDialog {
private Barang barang;
public DialogBarang(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
barang = new Barang();
getContentPane().setBackground(Color.PINK);
setPosisiTengah();
setResizable(false);
//nonAktifButton();
}
// set frame ke tengah layar
public void setPosisiTengah(){
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screenSize = tk.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;
int width = getWidth();
int height = getHeight();
int w2 = (screenWidth - width ) /2;
int h2 = (screenHeight - height) / 2;
setLocation(w2, h2);
}
public void tampilBarang(String field){
TableColumn kolom = null;
Vector namaKolom = new Vector();
namaKolom.addElement("Kode Barang");
namaKolom.addElement("Nama");
namaKolom.addElement("Harga");
namaKolom.addElement("Stok");
// mengambil data barang dari tabel barang urut berdasar field
Vector data = barang.getSemua(field);
// menciptakan model diisi dengan data barang
// semua field tdk dapat diedit
DefaultTableModel model =
new DefaultTableModel(data, namaKolom){
@Override
public boolean isCellEditable(int row, int column) {
//all cells false
return false;
}
};
tableBarang.setModel(model);
// seting ukuran kolom
kolom = tableBarang.getColumn("Kode Barang");
kolom.setPreferredWidth(45);
kolom = tableBarang.getColumn("Nama");
kolom.setPreferredWidth(200);
// kolom 3-4 dibuat rata kanan
DefaultTableCellRenderer rightRenderer = new
DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
for(int i=2; i<=3; i++){
tableBarang.getColumnModel().getColumn(i).setCellRenderer(rightRenderer);
}
}
private void formWindowActivated(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
tampilBarang("kodebrg");
}
private void btnTutupActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}
private void btnUrutKodeActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
tampilBarang("kodebrg");
}
private void btnUrutNamaActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
tampilBarang("nama");
}
// Variables declaration - do not modify
private javax.swing.JButton btnTutup;
private javax.swing.JButton btnUrutKode;
private javax.swing.JButton btnUrutNama;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable tableBarang;
// End of variables declaration
}
5. Panggil DialogBarang dalam Utama
btnDaftarBarang
Kode pada actionPerformed:
private void btnDaftarBarangActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
DialogBarang dialog = new DialogBarang(this, true);
dialog.setVisible(true);
}