Isikan 3 record sebagai data, Gambar 7.2 berikut ini jika di-browse :
Selanjutnya sebelum menjalankan project java yang mengakses database tersebut perlu
menambahkan driver JDBC dengan ming-klik kanan pada jendela projects pada folder library :
92 Modul Praktikum Pemrograman Antar Muka Grafis
package javamysql;
import java.sql.*;
}//akhir
Adapun program untuk membuat koneksi database dan menampilkan isi tabel adalah seperti
berikut ini.
Dalam kode 7.3 ada method spasi(string, int) yang digunakan agar tampilan dapat rapi tidak
terpengaruh panjang nama. Method spasi(string,int) didefinisikan untuk menambah spasi
yang banyaknya disesuaikan dengan panjang string. Adapun kodenya adalah sebagai berikut.
Selanjutnya jika Project di BUILD dan RUN, tetapi drivernya dihapus akan muncul hasil :
Jika driver JDBC dipasang kembali , hasilnya berhasil membaca database rentalcd tabel anggota,
sebagai gambar 7.8 berikut ini.
Berikut ini adalah kode untuk tombol Edit. Kode ini membaca dari tabel dengan sebelumnya
menyiapkan statemen melalui : “select * from anggota where id=”+ss sedangkan ss dibaca dari
textField Id. Selanjunya hasil select ditampilkan dalam TextField-textField yang bersesuaian
(gambar 7.10). Proses berikutnya adalah proses edit data yang akan diubah, seperti pada Program
7.5.
Porgram 7.6 berikut untuk menyimpan perubahan pada Field-field yang telah diedit kita mendesain
kode pada tombol Simpan sebagai berikut :
Untuk method TampilkanKeTabel() yang dikodekan untuk menampilkan isi Tabel anggota ke
dalam tabel dalam Form. Program 7.7 berikut ini adalah kodenya:
while (rSet.next()) {
String id =rSet.getString("id") ;
String nama=rSet.getString("nama");
String alamat=rSet.getString("alamat") ;
String telp= rSet.getString("Telp") ;
String tglh= rSet.getString("hari_lahir");
//tampilkan ke tabel
Tabel.setValueAt(rSet.getString("id"),brs,0);
Tabel.setValueAt(rSet.getString("nama"),brs,1);
Tabel.setValueAt(rSet.getString("alamat"),brs,2);
Tabel.setValueAt(rSet.getString("telp"),brs,3);
Tabel.setValueAt(rSet.getString("hari_lahir"),brs,4);
brs++;
}
stat.close();
}
catch (SQLException se) { System.out.println("SQL salah" + se);}
catch (Exception e){System.out.println("Pesan error " + e); }
}
98 Modul Praktikum Pemrograman Antar Muka Grafis
Pada aplikasi database yang melibatkan banyak tabel dan banyak transaksi sangat
kompleks maka apliaksi yang dibuat akan menuntut penggunaan banyak Form. Pengelolaan yang
paling mudah dalam masalah ini adalah mengemas program dalam bentuk menu-menu dan
mengemas antar muka dalam bentuk form-form yang dikendalikan melalui menu.
Program berikut memberikan contoh untuk membuat antar muka grafis program data
barang yang akan disimpan dalam gudang, yang melibatkan 3 buah tabel yaitu Barang, pegawai
dan transaksi, yang masing-masing dibuat untuk menyimpan data stok barang, data pegawai yang
menambahkan data barang dan pencatatan transaksi penambahan barang. Untuk itu dibuat
database : barang dengan My-SQL dengan struktur sebagai berikut :
Untuk menyiapkan Form dengan nama form Utama, kita buat suatu Form dengan nama Utama.
Selanjutnya kita pasang komponen MenuBar pada Form (gambar 7.16). Caranya dari pallete pilih
SwingMenu dan pilih ikon MenuBar kemudian kita drag ke dalam Form kita.
Setelah MenuBar dipasang selanjutnya kita lakukan penyesuaian untuk nama-nama menu utama
dan penambahan MenuItem pada tiap-tiap menu utama. Berikut ini adalah penggantian nama
menu edit dengan Transaksi dan penambahan Menu Laporan dan Help pada menu utama (menu
bar), caranya dengan men-drag komponen Menu dan kemudian mengubah namanya disesuaikan
dengan yang kita inginkan (Gambar 7.17).
Selanjutnya adalah menambahkan menu-item dari setiap menu utama. Caranya dengan men-drag
MenuItem ke dlam menu utama yang kita inginkan. Berikut ini kita tambahkan Menu Item barang,
Pegawai dan Exit pada menu File.
Untuk mengatur apa yang akan dikerjakan jika Menu-Item Barang di pilih caranya adalah dengan
mendefinisikan ActionPerform pada MenuItem yang dimaksud.
Selanjutnya setelah ActionPerfom untuk Menu-Item (misalnya menu item Barang, yaitu tindakan
yang dikerjakan jika subMenu Barang dari menu File di klik didefinisikan). Gambar 7.19
memberikan langkah mendefinisikan ActionPerform, yaitu klik pada menu-item Barang, kemudian
pilih Properties pada tab Events dan pilih ActionPerformed. Selanjutnya klik button Add dan
ketikkan nama method ActionPerform-nya pada Add Handler, misalnya nama handlernya adalah
bukaFormBarang. Selanjutnya kita harus mendefinisikan isi dari Handler dari ActionPerform
tersebut. Untuk bukaFormBarang() isi dari method itu adalah :
Terlihat bahwa pada menu-item Barang aksinya hanya berisi membuka Form frmBarang yang
bernama fb untuk input data barang. Statemen if digunakan untuk mengatur agar form frmBarang
yang bernama fb hanya dibuka sekali saja pada saat pertama dipilih, selanjutnya pada pembukaan
yang berikutnya digunakan pengaturan setVisible(true) atau setVisible(false). Dalam form
frmBarang yang desainnya adalah seperti gambar 7.20 berisi kode untuk konSelanjutnya kita
dapat “menghiasi” Form dari menu-utama sebagai berikut :
Pada konstruktor untuk class frmBarang kita tuliskan method-method untuk membuat koneksi ke
database gudang, mengakses file barang dan menampilkan dalam tabel. Method-method itu
adalah :
Bab VII : Ases Database dengan MySQL 101
BuatKoneksiDatabase();
TampilkanKeTabel();
Untuk method Buat KoneksiDatabase() definisinya sama dengan kode program 7.2 kecuali pada
baris nama database rentallcd diganti dengan database gudang, sehingga url menjadi :
Sedangkan untuk method TampilkanKeTabel() yang berguna untuk menampilkan data dalam tabel
Barang ke dalam objek Table dalam Form frmbarang. Kkodenya hampir sama dengan program 7.7
kecual nama tabel dan field-field yang berbeda.
while (rSet.next()) {
String kb =rSet.getString("kb") ;
String namaBrg=rSet.getString("namaBrg");
String stok=rSet.getString("stok") ;
Tabel.setValueAt(kb,brs,0);
Tabel.setValueAt(namaBrg,brs,1);
Tabel.setValueAt(stok,brs,2);
brs++;
}
stat.close();
}
catch (SQLException se) { System.out.println("SQL salah" + se);}
catch (Exception e){System.out.println("Pesan errorNYE " + e); }
}
Pada form terdapat button Keluar (untuk kembali ke Form Utama) yang berisi kode :
this.setVisible(false); yaitu kode untuk menyembunyikan Form (bukan menutup form).
Pada Form frmBarang juga terdapat button Simpan yang berisi kode untuk menyimpan data ke
dalam tabel Barang dan mengupdate ulanga tabel dalam form. Isi kode tombol simpan adalah :
}
catch (SQLException se){
JOptionPane.showMessageDialog(null, "Data tidak disimpan...Entry
Ulang\nPesan Error : \n"+ se);
}
stat.close();
}
catch (Exception er){
System.out.println("Pesan Error-E = "+ er);
}
}
Untuk form frmPegawai memiliki dua button seperti pada frmBarang, yaitu button Simpan dan
Keluar. Untuk button Keluar berisi kode untuk me”nyembunyikan” Form, sedangkan untuk button
Simpan berisi hampir sama dengan barang, yaitu method TambahRecord() dan
tampilkanKetabel(). Berikut ini adalah kode lengkapnya :
}
}
while (rSet.next()) {
String kp =rSet.getString("kp") ;
String nama=rSet.getString("namaPeg");
Tabel.setValueAt(kp,brs,0);
Tabel.setValueAt(nama,brs,1);
brs++;
}
stat.close();
}
catch (SQLException se) { System.out.println("SQL salah" + se);}
catch (Exception e){System.out.println("Pesan errorNYE " + e); }
}
Form dalam gambar 7.22 berikut untuk menambah data stok oleh pegawai. Dalam form transaksi
ini terdapat dua komponen combox untuk menampilkan nama barang dan nama pegawai yang
menginputkan barang. Jika barang dipilih dari combobox maka otomatis kode akan ditampilkan
dalam field Kode barang dan stok barang akan ditampilkan dalam field stok lama. Demikian juga
ketika nama pegawai dipilih maka kode pegawai akan muncul otomatis dalam field kode pegawai.
Selanjutnya pengguna tinggal memasukkan kode transaksi, jumlah barang dan tanggal transaksi.
Jika tombol simpan di klik maka data transaksi akan disimpan dalam tabel transaksi dan data stok
baru akan diupdate, nilai stok baru akan ditampilkan dalam field stok baru.
Gambar 7.22 Desain Form untuk Input data Transaksi tambah brang
Jika comboBox cbKP dipilih maka kita mendefinisikan dalam properti itemStateChange :method
tampilkanKP() untuk menampilkan kode barang dan stok lama barang.
Dalam dua method di atas terdapat array string KB[] dan KP yang merupakan array untuk
menyimpan data Kode Barang dan Kode Pegawai ketika tahap Inisialisasi. Pada tahap inisialisasi
juga diisikan nilai array stokLama[] yang diambilkan dari tabel barang.
Adapun kode untuk inisialisasi adalah sebagai berikut ;
while (rSet.next()) {
String kp =rSet.getString("kp") ;
String nama=rSet.getString("namaPeg");
cbKP.addItem(nama) ; KP[brs]=kp;
brs++;
}
stat.close();
while (rSet.next()) {
String kb =rSet.getString("kb") ;
String nama=rSet.getString("namaBrg"); int STL=rSet.getInt("stok");
cbKB.addItem(nama) ; KB[brs]=kb; stokLama[brs]=STL;
brs++;
}
stat.close();
}
catch (SQLException se) { System.out.println("SQL salah" + se);}
catch (Exception e){System.out.println("Pesan errorNYE " + e); }
}
Untuk menyimpan data dalam tabel ketika tombol Simpan di klik, berikut ini adalah kodenya :
try{
PreparedStatement stat =con.prepareStatement("update barang set stok=?
where kb=?");
try{
stat.setInt(1, STL+tambahBrg );
stat.setString(2,kodeBrgedit);
stat.executeUpdate();
stkBaru.setText(new Integer(STL+tambahBrg).toString());
}
catch (SQLException se){
JOptionPane.showMessageDialog(null, "Data tidak disimpan...Entry
Ulang\nPesan Error : \n"+ se);
}
stat.close();
}
catch (Exception er){
System.out.println("Pesan Error = "+ er);
}
}
106 Modul Praktikum Pemrograman Antar Muka
Grafis
Program ini membutuhkan Form sebanyak 5 buah Form, yaitu Utama, frmBarang, frmPegawai,
frmTransaksi dan frmAbout seperti dalam gambar 7.23 berikut :
Dalam form Utama didefinisikan Menu dan MenuItem seperti daftar objek berikut ini :
frmPegawai fp=null;
frmBarang fb=null;
frmTransaksi frmTransaksi=null;
// Variables declaration - do not modify
private javax.swing.JMenuItem itemAbout;
private javax.swing.JMenuItem itemBarang;
private javax.swing.JMenuItem itemExit;
private javax.swing.JMenuItem itemHelp;
private javax.swing.JMenuItem itemPegawai;
private javax.swing.JMenuItem itemTransaksi;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
Bab VII : Ases Database dengan MySQL 107
7.6 Latihan
Sempurnakan program Gudang tersebut dengan menambahkan menu item Jual Barang (gambar
7.25) untuk penjualan barang dengan membuat satu tambahan tabel yaitu tabel Pelanggan dan
formulir input data dpelanggan dengan frmPelanggan (gambar 7.26) dan satu tambahan form
yaitu frmTransaksiJual (gambar 7.27). Jika proses transaksi penjualan selesai maka Stok dalam
Barang akan berkurang sebanyak nilai transaksinya. Jika stok barang tidak cukup, atau jumlah
penjualan melebihi stok barang maka akan ada pesan seperti pada gambar 7.28