Anda di halaman 1dari 18

BAB VII

ASES DATABASE DENGAN MySQL

7.1 Tujuan instruksional


Setelah mempelajari bab ini mahasiswa diharapkan dapat memahami dan mampu
melakukan koneksi database menggunakan My-SQL. Diharapkan juga mahasiswa mampu
membuat antar muka yang lebih kompleks, misalnya untuk aplikasi data barang dapat melakukan
proses edit data, proses validasi data dan proses database yang melibatkan lebih dari satu tabel
data.

7.2 Materi pembelajaran


Materi pembelajaran dalam bab ini akan membahasa antara lain :
- Koneksi dengan MySQL
- Mengupdate Data
- Program MultiForm

7.3 Koneksi dengan MySQL


Salah satu layanan mySQL yang mudah adalah dengan meng-install XAMPP yang
menyediakan secara terpadu Apache (untuk mengedit database), mySQL, FileZila, Mercury dan
Tomcat. Untuk peragaan yang kta perlukan untuk diaktifkan hanyalah MySQL dan Apache untuk
membuat struktur database dan menyiapkan data awalnya. Untuk membuat peragaan koneksi
dengan MySQL mula-mula kita membuat database rentalcd dengan satu Table, yaitu : anggota.
Struktur database sebagaimana gambar 7.1.

Gambar 7.1 Struktur Tabel rentalcd

Isikan 3 record sebagai data, Gambar 7.2 berikut ini jika di-browse :

Gambar 7.2 Struktur Tabel rentalcd

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

Gambar 7.3 Memasang Driver MySQL JDBC Driver :

Gambar 7.4 Memilih Driver

Gambar 7.5 Library Setelah dipasang Driver

Program 7.1 Kode program dari class JavaMySQL_1

package javamysql;
import java.sql.*;

public class JavaMySQL_1 {

private static Connection con=null;

public static void main(String[] args) {


BuatKoneksiDatabase();
TampilkanIsitabel();
}
… disini definisi : BuatKoneksiDatabase()
… disini definisi : TampilkanIsitabel()
Bab VII : Ases Database dengan MySQL 93

}//akhir

Adapun program untuk membuat koneksi database dan menampilkan isi tabel adalah seperti
berikut ini.

Program 7.2 Kode program Method BuatKoneksiDatabase()

private static void BuatKoneksiDatabase(){


try {
Class.forName("com.mysql.jdbc.Driver");
}
catch (java.lang.ClassNotFoundException e){
System.err.println("Driver Tidak ditemukan... " +e);
}

//Untuk koneksi ke MySQL


String userid = "root";
String password = "";
//silahkan digant url-nya, tapi tergantung nama databasenya
//formatnya: “jdbc:tipeDatabase://server:port/namaDatabase”
String url = "jdbc:mysql://localhost:3306/rentalcd";
try {
con = DriverManager.getConnection(url, userid,password);
}catch(SQLException e) {
System.err.println("DataBase Gak Ada, atau ID/Password gagal " +
e.getMessage());
}
}

Program 7.3 Kode program Method TampilkanIsitabel()

private static void TampilkanIsitabel()


{
try{
Statement stat = con.createStatement();
ResultSet rSet = stat.executeQuery("Select * from anggota ");

System.out.println("ISI TABEL anggota :");


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");
System.out.print(id+spasi(id,4)+nama+spasi(nama,10));
System.out.print(alamat+spasi(alamat,18)+telp+spasi(telp,10));
System.out.println(tglh+spasi(tglh,12));
}
stat.close();
}
catch (SQLException se) { System.out.println("SQL salah" + se);}
catch (Exception e){System.out.println("Pesan error " + e); }
}
private static String spasi(String s, int n)
{int m=n-s.length(); String sp="";
for(int i=0;i<m;i++)sp+=" ";
return sp;
94 Modul Praktikum Pemrograman Antar Muka Grafis

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.

Program 7.4 Kode program Atur spasi

private static String spasi(String s, int n)


{int m=n-s.length(); String sp="";
for(int i=0;i<m;i++)sp+=" ";
return sp;
}

Selanjutnya jika Project di BUILD dan RUN, tetapi drivernya dihapus akan muncul hasil :

Gambar 7.6 Error Jika Driver Belum Dipasang

Gambar 7.7 Error Jika MySQL Belum Diaktifkan

Jika driver JDBC dipasang kembali , hasilnya berhasil membaca database rentalcd tabel anggota,
sebagai gambar 7.8 berikut ini.

Gambar 7.8 Tampilan Data pelanggan

7.4 Mengupdate Data


Pada bab sebelumnya telah dibahas bagaimana membaca record, menambah record dan
menghapus record. Pada bab ini akan diberi contoh bagaimana mengupdate data. Mengupdate
data dirancang menggunakan GUI yang mellibatkan beberapa TextField untuk menangkap data
dan Table untuk menyajikan data dan button untuk kendali antar muka (Gambar 7.9).
Data yang digunakan adalah seperti pada contoh sebelumnya yaitu database rentallcd
dengan tabel anggota. Pengguna memasukkan Id ke dalam field Id dan jika tombol edit di kllik
maka data diambi dari tabel dan ditampilkan (Gambar 7.10). Selanjutnya pengguna mengetikkan
data yang akan diralat pada field yang akan diedit (misal nama dan alamat, Gambar 7.11).
Bab VII : Ases Database dengan MySQL 95

Gambar 7.9 Desain Form Edit Table

Gambar 7.10 Field Id diisi 33 dan klik tombol Edit


96 Modul Praktikum Pemrograman Antar Muka Grafis

Gambar 7.11 Setelah data di edit dan kllik tombol Simpan

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.

Program 7.5 Kode program untuk Edit (menampilkan data ke field)

private void tbEditActionPerformed(java.awt.event.ActionEvent evt) {


try{
Statement stat = (Statement) con.createStatement();
String ss=tfId.getText().trim();
ss="select * from anggota where id="+ss;
ResultSet rSet = stat.executeQuery(ss);
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");
tfNama.setText(nama);
tfAlamat.setText(alamat);
tfTelpon.setText(telp);
tfTglLhr.setText(tglh);
}
stat.close();
}
catch (SQLException se) { System.out.println("SQL salah" + se);}
catch (Exception e){System.out.println("Pesan error " + e); }
}
Bab VII : Ases Database dengan MySQL 97

Porgram 7.6 berikut untuk menyimpan perubahan pada Field-field yang telah diedit kita mendesain
kode pada tombol Simpan sebagai berikut :

Program 7.6 Kode program untuk Simpan

private void tbSimpanActionPerformed(java.awt.event.ActionEvent evt) {


try{
PreparedStatement stat = con.prepareStatement("update anggota set
nama=?, alamat=?,telp=?, hari_lahir=? where id=?");
try{
stat.setString(1,tfNama.getText().trim() );
stat.setString(2,tfAlamat.getText().trim());
stat.setString(3,tfTelpon.getText().trim());
stat.setString(4,tfTglLhr.getText().trim());
stat.setString(5,tfId.getText().trim()) ;
stat.executeUpdate();
}
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);
}
TampilkanKeTabel();
}

Untuk method TampilkanKeTabel() yang dikodekan untuk menampilkan isi Tabel anggota ke
dalam tabel dalam Form. Program 7.7 berikut ini adalah kodenya:

Program 7.7 Kode program untuk TampilkanKeTabel()

private void TampilkanKeTabel(){


try{
Statement stat = (Statement) con.createStatement();
ResultSet rSet = stat.executeQuery("Select * from anggota ");
int brs=0;

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

7.5 Program GUI dengan MultiForm

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 :

Gambar 7.12 Tabel-tabel dalam database gudang

. Gambar 7.13 Struktur dan record Tabel : barang

Gambar 7.14 Struktur dan record Tabel : Pegawai

Gambar 7.15 Struktur dan record Tabel : transaksi


Bab VII : Ases Database dengan MySQL 99

Menyiapkan Form Utama dan Form input data

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.

Gambar 7.16 Form sebelum dan setelah dipasang MenuBar

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).

Gambar 7.17 Penggantian nama-nama Menu Utama

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.

Gambar 7.18 Penambahan Menu Item pada menu File


100 Modul Praktikum Pemrograman Antar Muka
Grafis

Input Data Barang dengan Form frmBarang

Untuk mengatur apa yang akan dikerjakan jika Menu-Item Barang di pilih caranya adalah dengan
mendefinisikan ActionPerform pada MenuItem yang dimaksud.

Gambar 7.19 Mendefinisikan ActionPerform untuk Menu Barang

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 :

private void bukaFormBarang(java.awt.event.ActionEvent evt) {


if (fb==null) fb=new frmBarang();
fb.setVisible(true);
}

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 :

Gambar 7.20 Desain Form Barang

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 :

String url = "jdbc:mysql://localhost:3306/gudang";

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.

Program 7.8 Kode program untuk TampilkanKeTabel()

private void TampilkanKeTabel(){


try{
Statement stat = (Statement) con.createStatement();
ResultSet rSet = stat.executeQuery("Select * from barang ");
int brs=0;

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 :

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {


TambahRecord();
TampilkanKeTabel();
}

Adapun tambahRecord adalah sebagai berikut :

Program 7.9 Kode program untuk tambah record Barang

private void TambahRecord()


{ try{
PreparedStatement stat = con.prepareStatement("Insert into
barang(kb,namaBrg,stok) values(?,?,?)");
try{
stat.setInt(1, Integer.parseInt(Kode.getText().trim()) );
stat.setString(2, Nama.getText().trim());
stat.setInt(3, Integer.parseInt(Stok.getText().trim()));
stat.executeUpdate();
102 Modul Praktikum Pemrograman Antar Muka
Grafis

}
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);
}
}

Input Data Pegawai dengan Form frmPegawai

Form data untuk input Pegawai adalah seperti gambar 7.21 :

Gambar 7.21 Desain Form untuk Input data Pegawai

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 :

Program 7.10 Kode program untuk tambah record Pegawai

private void TambahRecord()


{ try{
PreparedStatement stat = con.prepareStatement("Insert into
pegawai(kp,namaPeg) values(?,?)");
try{
stat.setInt(1, Integer.parseInt(Kode.getText().trim()) );
stat.setString(2, Nama.getText().trim());
stat.executeUpdate();
}
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);
Bab VII : Ases Database dengan MySQL 103

}
}

Program 7.10 Kode program untuk taampilkan ke tabel data Pegawai

private void TampilkanKeTabel(){


try{
Statement stat = (Statement) con.createStatement();
ResultSet rSet = stat.executeQuery("Select * from pegawai ");
int brs=0;

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); }
}

Input Data Transaksi Tambah Stok Barang oleh Pegawai

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

Beberapa kode yang diperlukan adalah :


Jika comboBox cbKB dipilih maka kita mendefinisikan dalam properti itemStateChange :method
tampilkanKB() untuk menampilkan kode barang dan stok lama barang.
104 Modul Praktikum Pemrograman Antar Muka
Grafis

private void tampilkanKB(java.awt.event.ItemEvent evt) {


kdBRG.setText(KB[cbKB.getSelectedIndex()]);
stkLama.setText(new Integer
(stokLama[cbKB.getSelectedIndex()]).toString());
}

Jika comboBox cbKP dipilih maka kita mendefinisikan dalam properti itemStateChange :method
tampilkanKP() untuk menampilkan kode barang dan stok lama barang.

private void tampilkanKP(java.awt.event.ItemEvent evt) {


kdPGW.setText(KP[cbKP.getSelectedIndex()]);
}

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 ;

Program 7.10 Kode program untuk Inisialisasi data form

private void Inisialisasi(){


// baca data pegawai--------------------------------
try{
Statement stat = (Statement) con.createStatement();
ResultSet rSet = stat.executeQuery("Select * from pegawai ");
int brs=0;

while (rSet.next()) {
String kp =rSet.getString("kp") ;
String nama=rSet.getString("namaPeg");
cbKP.addItem(nama) ; KP[brs]=kp;
brs++;
}
stat.close();

// untuk barangnya ---------------------------------


stat = (Statement) con.createStatement();
rSet = stat.executeQuery("Select * from barang ");
brs=0;

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 :

Program 7.11 Kode program untuk menyimpan data transaksi

private void SimpanRecord()


{ //simpan ke tabel transaksi
try{
Bab VII : Ases Database dengan MySQL 105

PreparedStatement stat = con.prepareStatement("insert into


transaksi(kt,kbb,kpb,Jumlah,TglBeli) values(?,?,?,?,?)");
try{
stat.setInt(1, Integer.parseInt(kdTRAN.getText().trim()) );
stat.setInt(2, Integer.parseInt(kdBRG.getText().trim()));
stat.setInt(3, Integer.parseInt(kdPGW.getText().trim()));
stat.setInt(4, Integer.parseInt(jumBRG.getText().trim()));
stat.setString(5, tglTRAN.getText().trim());
stat.executeUpdate();
}
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);
}
//--------------------------- ralat STOK dalam tabel barang -----------
//
String kodeBrgedit=kdBRG.getText().trim();
int tambahBrg=Integer.parseInt(jumBRG.getText().trim());
String stk=""; int STL=0;
try{
Statement stat = (Statement) con.createStatement();
ResultSet rSet = stat.executeQuery("Select * from barang where
kb="+kodeBrgedit);
int brs=0;
while (rSet.next()) {
String kdb =rSet.getString("kb") ;
stk=rSet.getString("stok"); STL=Integer.parseInt(stk);
}
stat.close();
}
catch (SQLException se) { System.out.println("SQL salah" + se);}
catch (Exception e){System.out.println("Pesan errorNYE " + e); }

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

Form Utama dan Program Utama

Program ini membutuhkan Form sebanyak 5 buah Form, yaitu Utama, frmBarang, frmPegawai,
frmTransaksi dan frmAbout seperti dalam gambar 7.23 berikut :

Gambar 7.23 Form-form yang diperlukan

Form Utama adlah seperti gambar 7.24 berikut :

Gambar 7.24 Form program utama

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

private javax.swing.JLabel jLabel3;


private javax.swing.JLabel jLabel4;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenu menuFile;
private javax.swing.JMenu menuHelp;
private javax.swing.JMenu menuLaporan;
private javax.swing.JMenu menuTransaksi;
// End of variables declaration

Selanjutnya untuk project lengkapnya dapat didownload dari http://amir.dosen.akprind.ac.id

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

Gambar 7.25 Tambahan menu Item Jual Barang

Gambar 7.26 Form Input Data Pelanggan


108 Modul Praktikum Pemrograman Antar Muka
Grafis

Gambar 7.27 Form Input Data Transaksi Penjualan

Gambar 7.28 Pesan Stok Tidak Cukup

Anda mungkin juga menyukai