MERANCANG DATABASE PENJUALAN Sebagai tempat studi kasus dari aplikasi yang akan dibuat adalah penjualan barang . Dengan adanya aplikasi ini, diharapkan dapat mempermudah dalam pengecekan stok barang dan transaksi barang masuk dan penjualan barang. Dari gambaran di atas, yang perlu anda buat adalah sebuah aplikasi yang dapat membantu untuk pencatatan setiap transaksi yang dilakukan, mulai dari data jenis barang, data barang, data petugas, data distributor, data barang masuk dan data penjualan barang.
Membuat Database dan Tabel Pada gambaran sebelumnya, sekarang anda perlu memikirkan seberapa besar database yang akan diperlukan. Dari hasil pemikiran tersebut anda akan mengira-ira berapa dan apa tabel yang akan digunaka sebagai media penyimpanan datanya.
Membuat Database Dari analisis kami, untuk membuat aplikasi ini kita membutuhkan 6 tabel. Terdiri atas 4 tabel master dan 2 tabel transaksi. keenam tabe tersebut berada di dalam nama database dbretail. C:\Documents and Setting> mysql –uroot -p; Enter Password:masukkan password anda Mysql> CREATE DATABASE dbretail; Query OK, 1 row affected (0.00 sec) Selanjutnya, aktifkanlah database yang terbuat dengan perintah berikut: Mysql> USE dbretail; Database changed Pernyataan “Database changed” di atas menandakan anda sekarang telah aktif di dalam database dbretail. Membuat Tabel tbljenis Tabel Jenis Barang digunakan untuk merekam data semua jenis barang. Dengan cara ini, kita dapat mengelompokkan jenis barang.Berikut desain tabelnya. Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
1
Tabel 1.1 Struktur Tabel tbljenis Kolom kodejenis * jenis
Tipe Data Char Varchar
Panjang 4 60
Dari desain tabel di atas, anda dapat membuat dalam MySQL menggunakan perintah berikut: mysql> create table tbljenis( kodejenis char(4) not null primary key, jenis varchar(60) ); Setelah perintah membuat tabel di atas dijalankan, sekarang anda telah memiliki tabel baru bernama tbljenis.
Membuat Tabel tblpetugas Tabel petugas digunakan untuk merekam data semua petugas. Dengan cara ini, kita dapat mengetahui petugas jaga parkir.Berikut desain tabelnya. Tabel 1.2 Struktur Tabel tblpetugas Kolom idpetugas * namapetugas alamat email telpon
Tipe Data Char Varchar Varchar Varchar Char
Panjang 6 80 100 80 15
Dari desain tabel di atas, anda dapat membuat dalam MySQL menggunakan perintah berikut: mysql> create table tblpetugas( idpetugas char(6) not null primary key, namapetugas varchar(80), alamat varchar(100), email varchar(80), telpon char(10) ); Setelah perintah membuat tabel di atas dijalankan, sekarang anda telah memiliki tabel baru bernama tblpetugas. Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
2
Membuat Tabel tbldistributor Tabel distributor digunakan untuk merekam data semua distributor. Dengan cara ini, kita dapat mengetahui distributor pemasok barang.Berikut desain tabelnya. Tabel 1.3 Struktur Tabel tbldistributor Kolom iddistributor * namadistributor alamat kotaasal email telpon
Tipe Data Char Varchar Varchar Varchar Varchar Char
Panjang 6 80 100 80 80 15
Dari desain tabel di atas, anda dapat membuat dalam MySQL menggunakan perintah berikut: mysql> create table tbldistributor( iddistributor char(6) not null primary key, namadistributor varchar(80), alamat varchar(100), kotasal varchar(80), email varchar(80), telpon char(10) ); Setelah perintah membuat tabel di atas dijalankan, sekarang anda telah memiliki tabel baru bernama tbldistributor.
Membuat Tabel tblbarang Tabel Barang digunakan untuk merekam semua data barang Dengan cara ini, kita dapat mengetahui semua data barang yang ada digudang. Berikut desain tabelnya. Tabel 1.4 Struktur Tabel tblbarang Kolom kodebarang * namabarang kodejenis ** Harganet Hargajual stok
Tipe Data Char Varchar Char Double Double Smallint
Panjang 4 100 4 4
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
3
Dari desain tabel di atas, anda dapat membuat dalam MySQL menggunakan perintah berikut: mysql> create table tblbarang( kodebarang char(4) not null primary key, namabarang varchar(100), kodejenis char(4), harganet double, hargajual double, stok smallint(20) ); Setelah perintah membuat tabel di atas dijalankan, sekarang anda telah memiliki tabel baru bernama tblbarang.
Membuat Tabel tblbrgmasuk Tabel Barang masuk digunakan untuk merekam semua data barang masuk Dengan cara ini, kita dapat mengetahui semua data barang masuk yang ada digudang. Berikut desain tabelnya. Tabel 1.5 Struktur Tabel tblbrgmasuk Kolom nonota * tglmasuk iddistributor ** Idpetugas** total
Tipe Data Char Varchar Char Char Double
Panjang 10 30 6 6 -
Dari desain tabel di atas, anda dapat membuat dalam MySQL menggunakan perintah berikut: mysql> create table tblbrgmasuk( nonota char(10) not null primary key, tglmasuk varchar(30), iddistributor char(6), idpetugas char(6), total double); Setelah perintah membuat tabel di atas dijalankan, sekarang anda telah memiliki tabel baru bernama tblbrgmasuk.
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
4
Membuat Tabel tbldetailbrgmasuk Tabel Detail Barang Masuk digunakan untuk merekam jumlah data barang masuk, Dengan cara ini, kita dapat mengetahui semua data barang yang baru diorder. Berikut desain tabelnya. Tabel 1.6 Struktur Tabel tbldetailbrgmasuk Kolom nonota ** Kodebarang** jumlah subtotal
Tipe Data Char Char Smallint Double
Panjang 10 4 4 -
Dari desain tabel di atas, anda dapat membuat dalam MySQL menggunakan perintah berikut: mysql> create table tbldetailbrgmasuk( nonota char(10) not null, kodebarang char(4) not null, jumlah smallint(4), subtotal double); Setelah perintah membuat tabel di atas dijalankan, sekarang anda telah memiliki tabel baru bernama tbldetailbrgmasuk.
Membuat Tabel tblpenjualan Tabel Penjualan digunakan untuk merekam semua transaksi penjualan Dengan cara ini, kita dapat mengetahui semua data barang yang sudah terjual atau belum terjual. Berikut desain tabelnya. Tabel 1.7 Struktur Tabel tblpenjualan Kolom nofaktur * Tglpenjualan idpetugas ** bayar sisa total
Tipe Data Char Varchar Char Double Double Double
Panjang 10 30 6 -
Dari desain tabel di atas, anda dapat membuat dalam MySQL menggunakan perintah berikut:
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
5
mysql> create table tblpenjualan( nofaktur char(10) not null primary key, tglpenjualan varchar(30), idpetugas char(6), bayar double, sisa double, total double); Setelah perintah membuat tabel di atas dijalankan, sekarang anda telah memiliki tabel baru bernama tblpenjualan.
Membuat Tabel tbldetailpenjualan Tabel Detail Penjualan digunakan untuk merekam jumlah data barang terjual, Dengan cara ini, kita dapat mengetahui semua data barang yang sudah atau belum terjual. Berikut desain tabelnya. Tabel 1.8 Struktur Tabel tbldetailpenjualan Kolom nofaktur ** Kodebarang** jumlah subtotal
Tipe Data Char Char Smallint Double
Panjang 10 4 4 -
Dari desain tabel di atas, anda dapat membuat dalam MySQL menggunakan perintah berikut: mysql> create table tbldetailpenjualan( nofaktur char(10) not null, kodebarang char(4) not null, jumlah smallint(4), subtotal double); Setelah perintah membuat tabel di atas dijalankan, sekarang anda telah memiliki tabel baru bernama tbldetailpenjualan.
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
6
Relasi Antar Tabel
TblDetailBrgMasuk NoNota KodeBarang Jumlah Subtotal
PK TblJenis PK
TblDistributor
TblBrgMasuk NoNota
PK
NamaDistributor Alamat KotaAsal Email Telpon
TglMasuk IDDistributor IDPetugas Total
KodeJenis Jenis TblBarang PK
IDDistributor
KodeBarang NamaBarang KodeJenis HargaNet HargaJual Stok
TblPetugas PK TblPenjualan PK
TblDetailPenjualan NoFaktur KodeBarang Jumlah Subtotal
NoFaktur
IDPetugas NamaPetugas Alamat Emali Telpon
TglPenjualan IDPetugas Bayar Sisa Total
Gambar 1.1 Hubungan Antar Tabel pada dbretail
Tanda (PK) menunjukkan kunci utama, sedangkan (FK) adalah kunci tamu dengan diwujudkan arah panahnya. Berikut bebarapa penjelasan relasi tabel tersebut.
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
7
MEMBUAT APLIKASI PENJUALAN BARANG Mulai dari bab ini kami akan membimbing anda untuk membuat proyek lengkap, yaitu dengan objek kasus pada penjualan barang. Pada aplikasi yang dibuat, akan terjadi proses transaksi barang masuk dan transaksi penjualan barang. Tentunya ada proses perhitungan pembelian dan penjualan barang. Dalam bonus CD buku ini, juga telah disertakan hasil studi kasus dan komponen pendukung untuk pembuatan aplikasi yang dibahas pada bab ini. Anda bisa membaca bab ini sebagai penjelasan lengkap dan langkah pembuatannya.
Dependency Dependency ata ketergantungan adalah sebuah syarat ketersediaan sebuah tool berupa modul terpisah maupun aplikasi lain agar bisa menjalankan aplikasi yang dimaksud. Dalam hal ini setidaknya anda harus memasang Netbeans 6.0 Tentunya untuk bisa memasangnya juga harus anda penuhi system requirement dari aplikasi tersebut. Untuk sistem operasi tentunya anda bisa menggunakan Windows/Linux. Dalam hal ini kami menggunakan Windows XP untuk uji coba. Adapun tool yang lain, yang mesti anda pasang adalah sebagai berikut. Ketergantungan Mesin
Sistem Opersai Windows/Linux Netbeans 6.0 Jasper Report 2.0.4 MySQL(AppServ2.10.3 boleh menggunakan versi lain)
Ketergantungan Module/com objek maupun resource lain mysql-connector-java-5.1.6-bin untuk objek database yang siap dipakai Komponen untuk membuat laporan yang sudah disertakan dalam CD Persiapan Instalasi dan Folder Program Kami sarankan pembaca mengikuti langkah-langkah yang ada dalam buku ini agar tidak mengalami kesulitan/salah jalan. Kalau tidak mengikuti petunjuk ini, dikhawatirkan anda bisa tersesat sejauh-jauhnya. Catatan: Anda tidak harus mengikuti langkah-langkah instalasi jika sudah memiliki versi yang sama. Dalam buku tidak terlalu banyak memberikan hal-hal yang dasar, bukan keharusan tetapi sangat dianjurkan bagi anda membaca buku edisi sebelumnya. 1. Instal netbeans 6 nama file installer-nya netbeans-6.0.1-ml-javase-windows.exe. klik ganda kemudian lanjutkan dialognya sampai selesai. 2. Instal MySQL dan tool admin lewat Browser Client. Nama filenya appserv-win322.5.10.exe. ikuti petunjuk dan jangan lupa untuk menyimpan nama password atau userMembuat Program Aplikasi Penjualan Barang Menggunakan JAVA
8
nya agar Anda bisa mengakses halaman admin. Jika sampai lupa, anda selamanya tidak bisa membuka database anda sendiri. 3. Siapkan folder khusus untuk membuat kode. Misalnya kami membuat folder D:\Aplikasi Penjualan Barang.
Membuat Koneksi Database.ini database.ini digunakan untuk menghubungkan database MySQL dengan JAVA, database.ini dibuat menggunakan Notepade. Berikut langkah membuat koneksi database.ini: 1. Buatlah folder dengan nama folder lib pada direktori D:\Aplikasi Penjualan Barang\AplikasiPenjualan\lib. 2. Buatlah koneksi database.ini menggunakan notepade kemudian simapan dengan nama database.ini. Syntax Database.ini # Setting JDBC # getDriver JDBC DBDriver=com.mysql.jdbc.Driver # getDatabase DBDatabase=jdbc:mysql://localhost/dbretail # Setting username DBUsername=root # Setting password DBPassword=Sesuaikan dengan password anda Membuat Project Berikut langkah membuat projek baru : 1. Bukalah editor Netbeans, lalu buat project beru melalui menu File –> New Project, sehingga muncul sebuah jendela New Project. 2. Pada kolom Categories pilih Java. Selanjutnya pada kolom projects pilih Java Application, kemudian tekan tombol Next untuk melanjutkan.
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
9
Gambar 1.2 Jendela New Project 3. Isilah Project Name (sebagai nama proyek), Project Location (folder atau lokasi program), Application Class (nama file atau kelas), dan nama kelas utama seperti berikut ini.
Gambar 1.3 Penambahan File Project Dari gambar di atas, perhatikan isian Application Class yang terisi otomatis ketika anda memberikan nilai pada nama Project name: “AplikasiPenjualan”. Netbeans secara default Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
10
menyiapkan paket bernama AplikasiPenjualan dan kelas utama Main.java. Berarti kita membuat kelas AplikasiPenjualan berada dalam paket AplikasiPenjualan. 4. Pada kolom Choose Application Shell pilih Basic Application, anda bisa menyesuaikan foldernya dengan computer anda. 5. Jiksa sudah, klik tombol Finish.
Gambar 1.4 Tampilan Pertama Project Baru
Memasang File Jar(Setting Class Path) Memasang file jar ke dalam aplikasi adalah pekerjaan yang sangat penting, karena dengan begitu integritas dan fleksibilitas untuk pengembangan program sangat mudah. Mungkin anda pernah memahami bagaimana file dll dalam windows bekerja. Dengan adanya sebuah dll tertentu, bisa dipakai secara bersama-sama oleh aplikasi lain. Dalam aplikasi ini, kita akan memasang distribusi file sebagai komponen penghubung database. Buatlah susunan folder program dan setingan file jar yang sudah disiapkan: Buatlah folder lib pada folder D:\Apliksi Penjualan Barang\AplikasiPenjualan\kemudian kopi file mysql-connector-java-5.1.6-bin.
6. Langkah selanjutnya kita akan membuat Database.java dengan cara klik kanan New -> Java Class , kemudian masukkan kode program seperti dibawah ini.
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
11
Gambar 1.5 Membuat Java Class File package penjualan; import java.io.FileInputStream; import java.util.Properties; import javax.swing.JOptionPane; /** * * @author REVOLPER */ public class Database { public Properties mypanel, myLanguage; private String strNamePanel; public Database(){ } public String SettingPanel(String nmPanel){ try { mypanel = new Properties(); mypanel.load(new FileInputStream("lib/database.ini")); strNamePanel = mypanel.getProperty(nmPanel); } catch (Exception e) { JOptionPane.showMessageDialog(null,"Tidak ada koneksi","Error", JOptionPane.INFORMATION_MESSAGE); System.err.println(e.getMessage()); System.exit(0); } return strNamePanel; } }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
12
Memasang Driver MySQL Untuk bisa melakukan hubungan atau koneksi dengan database MySQL, Anda harus memasang driver-nya. Caranya adalah: 1. Dari jendela Project pilih Libraries kemudian klik kanan pilih Add JAR/Folder… kemudian klik Open.
Gambar 1.6 Penentuan File Driver MySQL sendiri
Membuat Desain Form Data Jenis Barang Sekarang saatnya membuat form data jenis barang agar petugas dapat mengetahu dan menginput jenis barang. Lakukan beberapa langkah berikut ini: 1. Buatlah file baru dalam paket AplikasiPenjualan, dengan cara klik kanan paket AplikasiPenjualan, Pilih New -> JFrame Form....
Gambar 1.7 Membuat Objek Baru Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
13
2. Pada jendela New JFrame Form, isikan FrmJenis pada kotak isian Class Name, dan Package pilih aplikasipenjualan, lalu tekan tombol Finish untuk mengakhiri.
Gambar 1.8 Menentukan Nama Form JFrame Form
Gambar 1.9 Desain Form Baru Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
14
3. Desainlah form yang baru anda ciptakan seperti gambar dibawah ini:
Gambar 1.10 Desain Form Jenis Barang Keterangan : Tabel 1.9 Daftar Propertis yang digunakan Pallete Label1 Label2 Text Field1 Text Field2 Button1 Button2 Button3 Button4 Button5 Button6 Table
Edit Text Kode Jenis Jenis Barang KodeJenis Jenis Add New Save Update Delete Cancel Close -
Propertis Change Variable Name jLabel1 jLabel2 KodeJenis Jenis AddNew Save Update Delete Cancel Close Table
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
15
Syntax Program 1.
Pada bagian import tambahkan dibawah baris package penjuaan sepeti kode berikut:
package penjualan; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; 2.
Pada bagian public class FrmJenis extends javax.swing.JFrame tambahkan kode berikut:
public class FrmJenis extends javax.swing.JFrame { Database dbsetting; String driver,database,user,pass; private Object tabel; /** Creates new form FrmJenis */ public FrmJenis() { initComponents(); Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize=this.getSize(); if(frameSize.height > screenSize.height){ frameSize.height=screenSize.height; } if(frameSize.width > screenSize.width){ frameSize.width=screenSize.width; } this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height = screenSize.height) / 4); dbsetting = new Database(); driver = dbsetting.SettingPanel("DBDriver"); database = dbsetting.SettingPanel("DBDatabase"); user = dbsetting.SettingPanel("DBUsername"); pass = dbsetting.SettingPanel("DBPassword"); table.setModel(tableModel); Tabel(table, new int[]{90,370}); setDefaultTable(); SetEditOff(); } 3.
Buatlah kode program diatas // Variables declaration - do not modify untuk menampilkan data pada tabel seperti berikut:
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
16
Private javax.swing.table.DefaultTableModel tableModel=getDefaultTabelModel(); private void Tabel(javax.swing.JTable tb, int lebar[] ) { tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); int kolom=tb.getColumnCount(); for(int i=0;i < kolom;i++) { javax.swing.table.TableColumn tbc=tb.getColumnModel().getColumn(i); tbc.setPreferredWidth(lebar[i]); tb.setRowHeight(17); } } private javax.swing.table.DefaultTableModel getDefaultTabelModel() { return new javax.swing.table.DefaultTableModel( new Object[][] {}, new String [] {"Kode Jenis","Jenis Barang"} ){ boolean[] canEdit = new boolean[]{ false, false, false, false }; public boolean isCellEditable(int rowIndex, int columnIndex){ return canEdit[columnIndex]; } }; } String data[]=new String[2]; private void setDefaultTable() { String stat =""; try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "SELECT * FROM tbljenis"; ResultSet res = stt.executeQuery(SQL); while(res.next()){ data[0] = res.getString(1); data[1] = res.getString(2); tableModel.addRow(data); } res.close(); stt.close(); kon.close(); } catch (Exception ex) {
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
17
System.err.println(ex.getMessage()); } } 4.
Buatlah kode program untuk menampilkan data yang sudah tersimpan di database, letakkan disembarang tempat yang memiliki space kosong seperti berikut ini:
int row = 0; public void Tampil(){ row = table.getSelectedRow(); KodeJenis.setText(tableModel.getValueAt(row, 0).toString()); Jenis.setText(tableModel.getValueAt(row, 1).toString()); Save.setEnabled(false); Update.setEnabled(true); Delete.setEnabled(true); SetEditOn(); } 5.
Buatlah perintah BersihData,SetEditOff, dan SetEditON disembarang tempat yang memiliki space kosong seperti berikut ini: public void BersihData(){ KodeJenis.setText(""); Jenis.setText(""); } public void SetEditOff(){ KodeJenis.setEnabled(false); Jenis.setEnabled(false); } public void SetEditOn(){ KodeJenis.setEnabled(true); Jenis.setEnabled(true); }
6.
Buatlah kode program AddNew dengan mengklik kanan button AddNew ->evens -> action -> ActionPerformed. private void AddNewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: BersihData(); KodeJenis.requestFocus(); Save.setEnabled(true); Update.setEnabled(false); Delete.setEnabled(false); SetEditOn(); }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
18
7.
Buatlah kode program save dengan mengklik kanan button save ->evens -> action -> ActionPerformed. private void SaveActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String KJ=KodeJenis.getText(); String J=Jenis.getText(); if ((KJ.isEmpty()) | (J.isEmpty())) {JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); KodeJenis.requestFocus(); }else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "insert into tbljenis values(' "+KodeJenis.getText()+" ' , "+ " ' "+Jenis.getText()+"')"; stt.executeUpdate(SQL); data[0] = KodeJenis.getText(); data[1] = Jenis.getText(); tableModel.insertRow(0, data); stt.close(); kon.close(); BersihData(); Save.setEnabled(false); SetEditOff(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } }
8.
Buatlah kode program even Click MouseClicked.
dengan mengklik kanan table(grid) ->evens -> Mouse ->
private void tableMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: if (evt.getClickCount()==1) { Tampil(); } }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
19
9.
Buatlah kode program Update dengan mengklik kanan button Update ->evens -> action -> ActionPerformed. private void UpdateActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String KJ=KodeJenis.getText(); String J=Jenis.getText(); if ((KJ.isEmpty()) | (J.isEmpty())) {JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); KodeJenis.requestFocus(); }else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "Update tbljenis set jenis=' "+Jenis.getText()+" ' "+ "Where kodejenis=' "+KodeJenis.getText()+" ' "; stt.executeUpdate(SQL); data[0] = KodeJenis.getText(); data[1] = Jenis.getText(); tableModel.removeRow(row); tableModel.insertRow(row,data); stt.close(); kon.close(); BersihData(); Save.setEnabled(false); SetEditOff(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } }
10. Buatlah kode program Delete dengan mengklik kanan button Delete ->evens -> action -> ActionPerformed. private void DeleteActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String KJ=KodeJenis.getText(); String J=Jenis.getText(); if ((KJ.isEmpty()) | (J.isEmpty())) {JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); KodeJenis.requestFocus();
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
20
}else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "Delete From tbljenis Where kodejenis='"+KodeJenis.getText().toString()+"'"; stt.executeUpdate(SQL); data[0] = KodeJenis.getText(); data[1] = Jenis.getText(); tableModel.removeRow(row); stt.close(); kon.close(); BersihData(); Save.setEnabled(false); SetEditOff(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } } 11. Buatlah kode program Close dengan mengklik kanan button Close ->evens -> action -> ActionPerformed. private void CloseActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(JOptionPane.showConfirmDialog(null,"This application will be close \n if you press button OK", "Information",JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION) this.dispose(); }
12. Buatlah kode program Cancel dengan mengklik kanan button Cancel ->evens -> action -> ActionPerformed. private void CancelActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: BersihData(); SetEditOff(); }
13. Jalankan Program kemudian klik menu Data Jenis Barang maka akan tampil seperti berikut:
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
21
Gambar 1.11 Tampilan Program Data Jenis Barang
Membuat Desain Form Data Barang 1. Buatlah file baru dalam paket AplikasiPenjualan, dengan cara klik kanan paket Penjualan, Pilih New -> JFrame Form…, sehingga muncul jendela New File.
Gambar 1.12 Membuat Objek Baru
2. Pada jendela New JFrame Form, isikan FrmBarang pada kotak isian Class Name, dan Package pilih aplikasipenjualan, lalu tekan tombol Finish untuk mengakhiri.
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
22
Gambar 1.13 Menentukan Nama Form JFrame Form
Gambar 1.14 Desain Form Baru 3. Desainlah form yang baru anda ciptakan seperti gambar dibawah ini:
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
23
Gambar 1.15 Desain Form Data Barang
Keterangan : Tabel 1.9 Daftar Propertis yang digunakan Pallete Label1 Label2 Label3 Label4 Label5 Label6 Label7 Label8 Label9 TextField1 Text Field2 ComboBox1 TextField3 TextField4
Edit Text Kode Barang Nama Barang Kode Jenis Barang Jenis Barang Harga Net Harga Jual Stok Rp Rp -
Propertis Change Variable Name jLabel1 jLabel2 jLabel3 jLabel4 jLabel5 jLabel6 jLabel7 jLabel8 jLabel9 KodeBarang NamaBarang KodeJenis Jenis HargaNet
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
24
TextField5 TextField6 Button1 Button2 Button3 Button4 Button5 Button6 Table
Add New Save Update Delete Cancel Close -
HargaJual Stok AddNew Save Update Delete Cancel Close table
Syntax Program 1. Pada bagian import tambahkan dibawah baris package aplikasipenjualan sepeti kode berikut: package penjualan; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*;
2. Pada bagian public class FrmBarang extends javax.swing.JFrame tambahkan kode berikut: public class FrmBarang extends javax.swing.JFrame { Database dbsetting; String driver,database,user,pass,userLogin; private Object tabel; /** Creates new form FrmBarang */ public FrmBarang() { initComponents(); Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize=this.getSize(); if(frameSize.height > screenSize.height){ frameSize.height=screenSize.height; } if(frameSize.width > screenSize.width){ frameSize.width=screenSize.width; } this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height = screenSize.height) / 6); //setting untuk memanggil koneksi Database.ini Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
25
dbsetting = new Database(); driver = dbsetting.SettingPanel("DBDriver"); database = dbsetting.SettingPanel("DBDatabase"); user = dbsetting.SettingPanel("DBUsername"); pass = dbsetting.SettingPanel("DBPassword"); table.setModel(tableModel); Tabel(table, new int[]{90,300,90,90,90,70}); setDefaultTable(); SetEditOff(); TampilComboJenis(); } 3. Buatlah kode program diatas // Variables declaration - do not modify untuk menampilkan data pada tabel seperti berikut: private javax.swing.table.DefaultTableModel tableModel=getDefaultTabelModel(); private void Tabel(javax.swing.JTable tb, int lebar[] ) { tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); int kolom=tb.getColumnCount(); for(int i=0;i < kolom;i++) { javax.swing.table.TableColumn tbc=tb.getColumnModel().getColumn(i); tbc.setPreferredWidth(lebar[i]); tb.setRowHeight(17); } } private javax.swing.table.DefaultTableModel getDefaultTabelModel() { return new javax.swing.table.DefaultTableModel( new Object[][] {}, new String [] {"Kode Barang","Nama Barang","Kode Jenis","Harga NET","Harga Jual","Stok"} ){ boolean[] canEdit = new boolean[]{ false, false, false, false }; public boolean isCellEditable(int rowIndex, int columnIndex){ return canEdit[columnIndex]; } }; } Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
26
String data[]=new String[6]; private void setDefaultTable() { String stat =""; try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "SELECT * FROM tblbarang"; ResultSet res = stt.executeQuery(SQL); while(res.next()){ data[0] = res.getString(1); data[1] = res.getString(2); data[2] = res.getString(3); data[3] = res.getString(4); data[4] = res.getString(5); data[5] = res.getString(6); tableModel.addRow(data); } res.close(); stt.close(); kon.close(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } 4. Buatlah kode program untuk menampilkan data yang sudah tersimpan di database, letakkan disembarang tempat yang memiliki space kosong seperti berikut ini: int row = 0; public void Tampil(){ row = table.getSelectedRow(); KodeBarang.setText(tableModel.getValueAt(row, 0).toString()); NamaBarang.setText(tableModel.getValueAt(row, 1).toString()); KodeJenis.setSelectedItem(tableModel.getValueAt(row, 2).toString()); HargaNet.setText(tableModel.getValueAt(row, 3).toString()); HargaJual.setText(tableModel.getValueAt(row, 4).toString()); Stok.setText(tableModel.getValueAt(row, 5).toString()); Save.setEnabled(false); Update.setEnabled(true); Delete.setEnabled(true); SetEditOn(); }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
27
5.
Buatlah perintah BersihData,SetEditOff, dan SetEditON disembarang tempat yang memiliki space kosong seperti berikut ini:
public void BersihData(){ KodeBarang.setText(""); NamaBarang.setText(""); KodeJenis.setSelectedIndex(0); Jenis.setText(""); HargaNet.setText(""); HargaJual.setText(""); Stok.setText("0"); } public void SetEditOff(){ KodeBarang.setEnabled(false); NamaBarang.setEnabled(false); KodeJenis.setEnabled(false); HargaNet.setEnabled(false); HargaJual.setEnabled(false); Stok.setEnabled(false); } public void SetEditOn(){ KodeBarang.setEnabled(true); NamaBarang.setEnabled(true); KodeJenis.setEnabled(true); HargaNet.setEnabled(true); HargaJual.setEnabled(true); Stok.setEnabled(true); } 6.
Buatlah kode program AddNew dengan mengklik kanan button AddNew ->evens -> action -> ActionPerformed.
private void AddNewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: BersihData(); KodeBarang.requestFocus(); Save.setEnabled(true); Update.setEnabled(false); Delete.setEnabled(false); SetEditOn(); } Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
28
7.
Buatlah perintah untuk menampilkan data pada kombo jenis dengan mengklik kanan kombojenis -> events -> item -> itemStateChange.
private void KodeJenisItemStateChanged(java.awt.event.ItemEvent evt) { // TODO add your handling code here: try { Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); String SQL = "SELECT * FROM tbljenis where kodejenis='"+ KodeJenis.getSelectedItem().toString()+"'"; ResultSet res = stt.executeQuery(SQL); res.absolute(1); Jenis.setText(res.getString("jenis")); } catch (SQLException ex) { } } 8.
Butlah kode program tambahan untuk menampilkan data pada kombo kodejenis dengan membuat private baru seperti berikut.
public void TampilComboJenis(){ try { Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); String SQL = "SELECT * FROM tbljenis"; ResultSet res = stt.executeQuery(SQL); while(res.next()){ KodeJenis.addItem(res.getString("kodejenis")); } } catch (SQLException ex) { } } 9.
Buatlah kode program save dengan mengklik kanan button save ->events -> action -> ActionPerformed.
private void SaveActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String KB=KodeBarang.getText(); String NB=NamaBarang.getText(); String KJ=KodeJenis.getSelectedItem().toString(); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
29
String HN=HargaNet.getText(); String HJ=HargaJual.getText(); String ST=Stok.getText(); if ((KB.isEmpty()) | (NB.isEmpty()) |(KJ.isEmpty()) |(HN.isEmpty())|(HJ.isEmpty())|(ST.isEmpty())) { JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); KodeBarang.requestFocus(); }else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "insert into tblbarang values('"+KodeBarang.getText()+"',"+ "'"+NamaBarang.getText()+"',"+ "'"+KodeJenis.getSelectedItem()+"',"+ "'"+HargaNet.getText()+"',"+ "'"+HargaJual.getText()+"',"+ "'"+Stok.getText()+"')"; stt.executeUpdate(SQL); data[0] = KodeBarang.getText(); data[1] = NamaBarang.getText(); data[2] = KodeJenis.getSelectedItem().toString(); data[3] = HargaNet.getText(); data[4] = HargaJual.getText(); data[5] = Stok.getText(); tableModel.insertRow(0, data); stt.close(); kon.close(); BersihData(); Save.setEnabled(false); SetEditOff(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } } 10. Buatlah kode program even Click MouseClicked.
dengan mengklik kanan table(grid) ->evens -> Mouse ->
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
30
private void tableMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: if (evt.getClickCount()==1) { Tampil(); } } 11. Buatlah kode program Update dengan mengklik kanan button Update ->evens -> action -> ActionPerformed.
private void UpdateActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String KB=KodeBarang.getText(); String NB=NamaBarang.getText(); String KJ=KodeJenis.getSelectedItem().toString(); String HN=HargaNet.getText(); String HJ=HargaJual.getText(); String ST=Stok.getText(); if ((KB.isEmpty()) | (NB.isEmpty()) |(KJ.isEmpty()) |(HN.isEmpty())|(HJ.isEmpty())|(ST.isEmpty())) { JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); KodeBarang.requestFocus(); }else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "Update tblbarang Set namabarang='"+NamaBarang.getText()+"',"+ "kodejenis='"+KodeJenis.getSelectedItem()+"',"+ "harganet='"+HargaNet.getText()+"',"+ "hargajual='"+HargaJual.getText()+"',"+ "stok='"+Stok.getText()+"'"+ "Where kodebarang='"+KodeBarang.getText()+"'"; stt.executeUpdate(SQL); data[0] = KodeBarang.getText(); data[1] = NamaBarang.getText(); data[2] = KodeJenis.getSelectedItem().toString(); data[3] = HargaNet.getText(); data[4] = HargaJual.getText(); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
31
data[5] = Stok.getText(); tableModel.removeRow(row); tableModel.insertRow(row,data); stt.close(); kon.close(); BersihData(); Save.setEnabled(false); SetEditOff(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } } 12. Buatlah kode program Delete dengan mengklik kanan button Delete ->evens -> action -> ActionPerformed.
private void DeleteActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String KB=KodeBarang.getText(); String NB=NamaBarang.getText(); String KJ=KodeJenis.getSelectedItem().toString(); String HN=HargaNet.getText(); String HJ=HargaJual.getText(); String ST=Stok.getText(); if ((KB.isEmpty()) | (NB.isEmpty()) |(KJ.isEmpty()) |(HN.isEmpty())|(HJ.isEmpty())|(ST.isEmpty())) { JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); KodeBarang.requestFocus(); }else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "Delete From tblbarang Where kodebarang='"+KodeBarang.getText().toString()+"'"; stt.executeUpdate(SQL); data[0] = KodeBarang.getText(); data[1] = NamaBarang.getText(); data[2] = KodeJenis.getSelectedItem().toString(); data[3] = HargaNet.getText(); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
32
data[4] = HargaJual.getText(); data[5] = Stok.getText(); tableModel.removeRow(row); stt.close(); kon.close(); BersihData(); Save.setEnabled(false); SetEditOff(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } }
13. Buatlah kode program Close dengan mengklik kanan button Close ->evens -> action -> ActionPerformed.
private void CloseActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(JOptionPane.showConfirmDialog(null,"This application will be close \n if you press button OK","Information", JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTI ON) this.dispose(); } 14. Buatlah kode program Cancel dengan mengklik kanan button Cancel -> events -> Action -> ActionPerformed.
private void CancelActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: BersihData(); SetEditOff(); } 15. Jalankan Program kemudian klik menu Data Barang maka akan tampil seperti berikut:
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
33
Gambar 1.16 Tampilan Data Barang
Membuat Desain Form Data Petugas
1. Buatlah file baru dalam paket AplikasiPenjualan, dengan cara klik kanan paket Penjualan, Pilih New -> JFrame Form…, sehingga muncul jendela New File.
Gambar 1.17 Membuat Objek Baru Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
34
2. Pada jendela New JFrame Form, isikan FrmPetugas pada kotak isian Class Name, dan Package pilih aplikasipenjualan, lalu tekan tombol Finish untuk mengakhiri.
Gambar 1.18 Menentukan Nama Form JFrame Form
Gambar 1.19 Desain Form Baru Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
35
3. Desainlah form yang baru anda ciptakan seperti gambar dibawah ini:
Gambar 1.20 Desain Form Data Petugas
Keterangan : Tabel 1.10 Daftar Propertis yang digunakan Pallete Label1 Label2 Label3 Label4 Label5 TextField1 Text Field2 TextArea1 TextField3
Edit Text ID Petugas Nama Petugas Alamat Petugas E-Mail Telpon -
Propertis Change Variable Name jLabel1 jLabel2 jLabel3 jLabel4 jLabel5 IDPetugas NamaPetugas Alamat Email
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
36
TextField4 Button1 Button2 Button3 Button4 Button5 Button6 Table
Add New Save Update Delete Cancel Close -
Telpon AddNew Save Update Delete Cancel Close table
Syntax Program 1. Pada bagian import tambahkan dibawah baris package aplikasipenjualan sepeti kode berikut: package penjualan; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*;
2. Pada bagian public class FrmPetugas extends javax.swing.JFrame tambahkan kode berikut: public class Frmpetugas extends javax.swing.JFrame { Database dbsetting; String driver,database,user,pass,userLogin; private Object tabel; /** Creates new form Frmpetugas */ public Frmpetugas() { initComponents(); Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize=this.getSize(); if(frameSize.height > screenSize.height){ frameSize.height=screenSize.height; } if(frameSize.width > screenSize.width){ frameSize.width=screenSize.width; } this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height = screenSize.height) / 6); //setting untuk memanggil koneksi Database.ini dbsetting = new Database(); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
37
driver = dbsetting.SettingPanel("DBDriver"); database = dbsetting.SettingPanel("DBDatabase"); user = dbsetting.SettingPanel("DBUsername"); pass = dbsetting.SettingPanel("DBPassword"); table.setModel(tableModel); Tabel(table, new int[]{90,300,340,260,100}); setDefaultTable(); SetEditOff(); } 3. Buatlah kode program diatas // Variables declaration - do not modify untuk menampilkan data pada tabel seperti berikut: private javax.swing.table.DefaultTableModel tableModel=getDefaultTabelModel(); private void Tabel(javax.swing.JTable tb, int lebar[] ) { tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); int kolom=tb.getColumnCount(); for(int i=0;i < kolom;i++) { javax.swing.table.TableColumn tbc=tb.getColumnModel().getColumn(i); tbc.setPreferredWidth(lebar[i]); tb.setRowHeight(17); } } private javax.swing.table.DefaultTableModel getDefaultTabelModel() { return new javax.swing.table.DefaultTableModel( new Object[][] {}, new String [] {"ID Petugas","Nama Petugas","Alamat Petugas","Alamat E-Mail","Telpon"} ){ boolean[] canEdit = new boolean[]{ false, false, false, false }; public boolean isCellEditable(int rowIndex, int columnIndex){ return canEdit[columnIndex]; } }; }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
38
String data[]=new String[5]; private void setDefaultTable() { String stat =""; try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "SELECT * FROM tblpetugas"; ResultSet res = stt.executeQuery(SQL); while(res.next()){ data[0] = res.getString(1); data[1] = res.getString(2); data[2] = res.getString(3); data[3] = res.getString(4); data[4] = res.getString(5); tableModel.addRow(data); } res.close(); stt.close(); kon.close(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } 4. Buatlah kode program untuk menampilkan data yang sudah tersimpan di database, letakkan disembarang tempat yang memiliki space kosong seperti berikut ini: int row = 0; public void Tampil(){ row = table.getSelectedRow(); IDPetugas.setText(tableModel.getValueAt(row, 0).toString()); NamaPetugas.setText(tableModel.getValueAt(row, 1).toString()); Alamat.setText(tableModel.getValueAt(row, 2).toString()); Email.setText(tableModel.getValueAt(row, 3).toString()); Telpon.setText(tableModel.getValueAt(row, 4).toString()); Save.setEnabled(false); Update.setEnabled(true); Delete.setEnabled(true); SetEditOn(); } Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
39
5.
Buatlah perintah BersihData,SetEditOff, dan SetEditON disembarang tempat yang memiliki space kosong seperti berikut ini:
public void BersihData(){ IDPetugas.setText(""); NamaPetugas.setText(""); Alamat.setText(""); Email.setText(""); Telpon.setText(""); } public void SetEditOff(){ IDPetugas.setEnabled(false); NamaPetugas.setEnabled(false); Alamat.setEnabled(false); Email.setEnabled(false); Telpon.setEnabled(false); } public void SetEditOn(){ IDPetugas.setEnabled(true); NamaPetugas.setEnabled(true); Alamat.setEnabled(true); Email.setEnabled(true); Telpon.setEnabled(true); }
6.
Buatlah kode program AddNew dengan mengklik kanan button AddNew ->evens -> action -> ActionPerformed.
private void AddNewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: BersihData(); IDPetugas.requestFocus(); Save.setEnabled(true); Update.setEnabled(false); Delete.setEnabled(false); SetEditOn(); }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
40
7.
Buatlah kode program save dengan mengklik kanan button save ->events -> action -> ActionPerformed.
private void SaveActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String ID=IDPetugas.getText(); String NM=NamaPetugas.getText(); String AM=Alamat.getText(); String EM=Email.getText(); String TP=Telpon.getText(); if ((ID.isEmpty()) | (NM.isEmpty()) |(AM.isEmpty()) |(EM.isEmpty())|(TP.isEmpty())) { JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); IDPetugas.requestFocus(); }else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "insert into tblpetugas values('"+IDPetugas.getText()+"',"+ "'"+NamaPetugas.getText()+"',"+ "'"+Alamat.getText()+"',"+ "'"+Email.getText()+"',"+ "'"+Telpon.getText()+"')"; stt.executeUpdate(SQL); data[0] = IDPetugas.getText(); data[1] = NamaPetugas.getText(); data[2] = Alamat.getText(); data[3] = Email.getText(); data[4] = Telpon.getText(); tableModel.insertRow(0, data); stt.close(); kon.close(); BersihData(); Save.setEnabled(false); SetEditOff(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } } Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
41
8.
Buatlah kode program even Click dengan mengklik kanan table(grid) ->evens -> Mouse -> MouseClicked.
private void tableMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: if (evt.getClickCount()==1) { Tampil(); } } 9.
Buatlah kode program Update dengan mengklik kanan button Update ->evens -> action -> ActionPerformed.
private void UpdateActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String ID=IDPetugas.getText(); String NM=NamaPetugas.getText(); String AM=Alamat.getText(); String EM=Email.getText(); String TP=Telpon.getText(); if ((ID.isEmpty()) | (NM.isEmpty()) |(AM.isEmpty()) |(EM.isEmpty())|(TP.isEmpty())) { JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); IDPetugas.requestFocus(); }else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "Update tblpetugas set namapetugas='"+NamaPetugas.getText()+"',"+ "alamat='"+Alamat.getText()+"',"+ "email='"+Email.getText()+"',"+ "telpon='"+Telpon.getText()+"'"+ "Where idpetugas='"+IDPetugas.getText()+"'"; stt.executeUpdate(SQL); data[0] = IDPetugas.getText(); data[1] = NamaPetugas.getText(); data[2] = Alamat.getText(); data[3] = Email.getText(); data[4] = Telpon.getText(); tableModel.removeRow(row); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
42
tableModel.insertRow(row,data); stt.close(); kon.close(); BersihData(); Save.setEnabled(false); SetEditOff(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } } 10. Buatlah kode program Delete dengan mengklik kanan button Delete ->evens -> action -> ActionPerformed.
private void DeleteActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String ID=IDPetugas.getText(); String NM=NamaPetugas.getText(); String AM=Alamat.getText(); String EM=Email.getText(); String TP=Telpon.getText(); if ((ID.isEmpty()) | (NM.isEmpty()) |(AM.isEmpty()) |(EM.isEmpty())|(TP.isEmpty())) { JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); IDPetugas.requestFocus(); }else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "Delete From tblpetugas Where idpetugas='"+IDPetugas.getText().toString()+"'"; stt.executeUpdate(SQL); data[0] = IDPetugas.getText(); data[1] = NamaPetugas.getText(); data[2] = Alamat.getText(); data[3] = Email.getText(); data[4] = Telpon.getText(); tableModel.removeRow(row); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
43
stt.close(); kon.close(); BersihData(); Save.setEnabled(false); SetEditOff(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } } 11. Buatlah kode program Close dengan mengklik kanan button Close ->evens -> action -> ActionPerformed.
private void CloseActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(JOptionPane.showConfirmDialog(null,"This application will be close \n if you press button OK","Information", JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTI ON) this.dispose(); } 12. Buatlah kode program Cancel dengan mengklik kanan button Cancel -> events -> Action -> ActionPerformed.
private void CancelActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: BersihData(); SetEditOff(); } 13. Jalankan Program kemudian klik menu Data Petugas maka akan tampil seperti berikut:
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
44
Gambar 1.21 Tampilan Form Data Petugas
Membuat Desain Form Data Distributor 1. Buatlah file baru dalam paket AplikasiPenjualan, dengan cara klik kanan paket Penjualan, Pilih New -> JFrame Form…, sehingga muncul jendela New File.
Gambar 1.22 Membuat Objek Baru 2. Pada jendela New JFrame Form, isikan FrmDistributor pada kotak isian Class Name, dan Package pilih aplikasipenjualan, lalu tekan tombol Finish untuk mengakhiri.
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
45
Gambar 1.23 Menentukan Nama Form JFrame Form
Gambar 1.24 Desain Form Baru
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
46
3. Desainlah form yang baru anda ciptakan seperti gambar dibawah ini:
Gambar 1.25 Desain Form Data Distributor
Keterangan : Tabel 1.11 Daftar Propertis yang digunakan Pallete Label1 Label2 Label3 Label4 Label5 Label6 TextField1 TextField2 TextArea1 TextField3
Edit Text ID Distributor Nama Distributor Alamat Distributor Kota Asal E-Mail Telpon -
Propertis Change Variable Name jLabel1 jLabel2 jLabel3 jLabel4 jLabel5 jLabel6 IDDistributor NamaDistributor Alamat KotaAsal
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
47
TextField4 TextField5 Button1 Button2 Button3 Button4 Button5 Button6 Table
Add New Save Update Delete Cancel Close -
Email Telpon AddNew Save Update Delete Cancel Close table
Syntax Program 1. Pada bagian import tambahkan dibawah baris package aplikasipenjualan sepeti kode berikut: package penjualan; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*;
2. Pada bagian public class FrmDistributor extends javax.swing.JFrame tambahkan kode berikut: public class Frmdistributor extends javax.swing.JFrame { Database dbsetting; String driver,database,user,pass,userLogin; private Object tabel; /** Creates new form Frmdistributor */ public Frmdistributor() { initComponents(); Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize=this.getSize(); if(frameSize.height > screenSize.height){ frameSize.height=screenSize.height; } if(frameSize.width > screenSize.width){ frameSize.width=screenSize.width; } this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height = screenSize.height) / 6); //setting untuk memanggil koneksi Database.ini Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
48
dbsetting = new Database(); driver = dbsetting.SettingPanel("DBDriver"); database = dbsetting.SettingPanel("DBDatabase"); user = dbsetting.SettingPanel("DBUsername"); pass = dbsetting.SettingPanel("DBPassword"); table.setModel(tableModel); Tabel(table, new int[]{90,300,340,260,260,100}); setDefaultTable(); SetEditOff(); }
3. Buatlah kode program diatas // Variables declaration - do not modify untuk menampilkan data pada tabel seperti berikut: private javax.swing.table.DefaultTableModel tableModel=getDefaultTabelModel(); private void Tabel(javax.swing.JTable tb, int lebar[] ) { tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); int kolom=tb.getColumnCount(); for(int i=0;i < kolom;i++) { javax.swing.table.TableColumn tbc=tb.getColumnModel().getColumn(i); tbc.setPreferredWidth(lebar[i]); tb.setRowHeight(17); } } private javax.swing.table.DefaultTableModel getDefaultTabelModel() { return new javax.swing.table.DefaultTableModel( new Object[][] {}, new String [] {"ID Distributor","Nama Distributor","Alamat Distributor","Kota Asal", "Alamat E-Mail","Telpon"} ){ boolean[] canEdit = new boolean[]{ false, false, false, false }; public boolean isCellEditable(int rowIndex, int columnIndex){ return canEdit[columnIndex]; } }; } Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
49
String data[]=new String[6]; private void setDefaultTable() { String stat =""; try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "SELECT * FROM tbldistributor"; ResultSet res = stt.executeQuery(SQL); while(res.next()){ data[0] = res.getString(1); data[1] = res.getString(2); data[2] = res.getString(3); data[3] = res.getString(4); data[4] = res.getString(5); data[5] = res.getString(6); tableModel.addRow(data); } res.close(); stt.close(); kon.close(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } 4. Buatlah kode program untuk menampilkan data yang sudah tersimpan di database, letakkan disembarang tempat yang memiliki space kosong seperti berikut ini: int row = 0; public void Tampil(){ row = table.getSelectedRow(); IDDistributor.setText(tableModel.getValueAt(row, 0).toString()); NamaDistributor.setText(tableModel.getValueAt(row, 1).toString()); Alamat.setText(tableModel.getValueAt(row, 2).toString()); KotaAsal.setText(tableModel.getValueAt(row, 3).toString()); Email.setText(tableModel.getValueAt(row, 4).toString()); Telpon.setText(tableModel.getValueAt(row, 5).toString()); Save.setEnabled(false); Update.setEnabled(true); Delete.setEnabled(true); SetEditOn(); }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
50
5.
Buatlah perintah BersihData,SetEditOff, dan SetEditON disembarang tempat yang memiliki space kosong seperti berikut ini:
public void BersihData(){ IDDistributor.setText(""); NamaDistributor.setText(""); Alamat.setText(""); KotaAsal.setText(""); Email.setText(""); Telpon.setText(""); } public void SetEditOff(){ IDDistributor.setEnabled(false); NamaDistributor.setEnabled(false); Alamat.setEnabled(false); KotaAsal.setEnabled(false); Email.setEnabled(false); Telpon.setEnabled(false); } public void SetEditOn(){ IDDistributor.setEnabled(true); NamaDistributor.setEnabled(true); Alamat.setEnabled(true); KotaAsal.setEnabled(true); Email.setEnabled(true); Telpon.setEnabled(true); } 6.
Buatlah kode program AddNew dengan mengklik kanan button AddNew ->evens -> action -> ActionPerformed.
private void AddNewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: BersihData(); IDDistributor.requestFocus(); Save.setEnabled(true); Update.setEnabled(false); Delete.setEnabled(false); SetEditOn(); } Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
51
7.
Buatlah kode program save dengan mengklik kanan button save ->events -> action -> ActionPerformed.
private void SaveActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String ID=IDDistributor.getText(); String ND=NamaDistributor.getText(); String AM=Alamat.getText(); String KA=KotaAsal.getText(); String EM=Email.getText(); String TP=Telpon.getText(); if ((ID.isEmpty()) | (ND.isEmpty()) |(AM.isEmpty()) |(KA.isEmpty())|(EM.isEmpty())|(TP.isEmpty())) { JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); IDDistributor.requestFocus(); }else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "insert into tbldistributor values('"+IDDistributor.getText()+"',"+ "'"+NamaDistributor.getText()+"',"+ "'"+Alamat.getText()+"',"+ "'"+KotaAsal.getText()+"',"+ "'"+Email.getText()+"',"+ "'"+Telpon.getText()+"')"; stt.executeUpdate(SQL); data[0] = IDDistributor.getText(); data[1] = NamaDistributor.getText(); data[2] = Alamat.getText(); data[3] = KotaAsal.getText(); data[4] = Email.getText(); data[5] = Telpon.getText(); tableModel.insertRow(0, data); stt.close(); kon.close(); BersihData(); Save.setEnabled(false); SetEditOff(); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
52
} catch (Exception ex) { System.err.println(ex.getMessage()); } } } 8.
Buatlah kode program even Click dengan mengklik kanan table(grid) ->evens -> Mouse -> MouseClicked.
private void tableMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: if (evt.getClickCount()==1) { Tampil(); } } 9.
Buatlah kode program Update dengan mengklik kanan button Update ->evens -> action -> ActionPerformed.
private void UpdateActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String ID=IDDistributor.getText(); String ND=NamaDistributor.getText(); String AM=Alamat.getText(); String KA=KotaAsal.getText(); String EM=Email.getText(); String TP=Telpon.getText(); if ((ID.isEmpty()) | (ND.isEmpty()) |(AM.isEmpty()) |(KA.isEmpty())|(EM.isEmpty())|(TP.isEmpty())) { JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); IDDistributor.requestFocus(); }else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "Update tbldistributor Set namadistributor='"+NamaDistributor.getText()+"',"+ "alamat='"+Alamat.getText()+"',"+ "kotaasal='"+KotaAsal.getText()+"',"+ Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
53
"email='"+Email.getText()+"',"+ "telpon='"+Telpon.getText()+"'"+ "Where iddistributor='"+IDDistributor.getText()+"'"; stt.executeUpdate(SQL); data[0] = IDDistributor.getText(); data[1] = NamaDistributor.getText(); data[2] = Alamat.getText(); data[3] = KotaAsal.getText(); data[4] = Email.getText(); data[5] = Telpon.getText(); tableModel.removeRow(row); tableModel.insertRow(row,data); stt.close(); kon.close(); BersihData(); Save.setEnabled(false); SetEditOff(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } } 10. Buatlah kode program Delete dengan mengklik kanan button Delete ->evens -> action -> ActionPerformed.
private void DeleteActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String ID=IDDistributor.getText(); String ND=NamaDistributor.getText(); String AM=Alamat.getText(); String KA=KotaAsal.getText(); String EM=Email.getText(); String TP=Telpon.getText(); if ((ID.isEmpty()) | (ND.isEmpty()) |(AM.isEmpty()) |(KA.isEmpty())|(EM.isEmpty())|(TP.isEmpty())) { JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); IDDistributor.requestFocus(); }else { Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
54
try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "Delete From tbldistributor Where iddistributor='"+IDDistributor.getText().toString()+"'"; stt.executeUpdate(SQL); data[0] = IDDistributor.getText(); data[1] = NamaDistributor.getText(); data[2] = Alamat.getText(); data[3] = KotaAsal.getText(); data[4] = Email.getText(); data[5] = Telpon.getText(); tableModel.removeRow(row); stt.close(); kon.close(); BersihData(); Save.setEnabled(false); SetEditOff(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } } 11. Buatlah kode program Close dengan mengklik kanan button Close ->evens -> action -> ActionPerformed.
private void CloseActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(JOptionPane.showConfirmDialog(null,"This application will be close \n if you press button OK","Information", JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTI ON) this.dispose(); } 12. Buatlah kode program Cancel dengan mengklik kanan button Cancel -> events -> Action -> ActionPerformed.
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
55
private void CancelActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: BersihData(); SetEditOff(); } 13. Jalankan Program kemudian klik menu Data Distributor maka akan tampil seperti berikut:
Gambar 1.26 Tampilan Form Data Distributor
Membuat Desain Form Data Barang Masuk 1. Buatlah file baru dalam paket AplikasiPenjualan, dengan cara klik kanan paket Penjualan, Pilih New -> JFrame Form…, sehingga muncul jendela New File.
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
56
Gambar 1.27 Membuat Objek Baru 2. Pada jendela New JFrame Form, isikan FrmBrgMasuk pada kotak isian Class Name, dan Package pilih aplikasipenjualan, lalu tekan tombol Finish untuk mengakhiri.
Gambar 1.28 Menentukan Nama Form JFrame Form
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
57
Gambar 1.29 Desain Form Baru
3. Desainlah form yang baru anda ciptakan seperti gambar dibawah ini:
Gambar 1.30 Desain Form Data Barang Masuk Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
58
Keterangan : Tabel 1.11 Daftar Propertis yang digunakan Pallete Label1 Label2 Label3 Label4 Label5 Label6 Label7 Label8 Label9 Label10 Label11 Label12 Label13 Label14 TextField1 TextField2 ComboBox1 TextField3 ComboBox2 TextField4 TextField5 ComboBox3 TextField6 TextField7 TextField8 TextField9 TextField10 TextField11 Button1 Button2 Button3 Button4 Button5 Button6 Table
Edit Text Tanggal Barang Masuk No.Nota ID Petugas Nama Petugas ID Distributor Nama Distributor Kota Asal Kode Barang Nama Barang Harga Jual Stok Jumlah Sub Total Rp Total Rp Cari Data Hitung Add Item Add New Save Transaction Close -
Propertis Change Variable Name jLabel1 jLabel2 jLabel3 jLabel4 jLabel5 jLabel6 jLabel7 jLabel8 jLabel9 jLabel10 jLabel11 jLabel12 jLabel13 jLabel14 TglMasuk NoNota IDPetugas NamaPetugas IDDistributor NamaDistributor KotaAsal KodeBarang NamaBarang HargaJual Stok Jumlah SubTotal Total CariData Hitung AddItem AddNew SaveTransaction Close table
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
59
Syntax Program 1. Pada bagian import tambahkan dibawah baris package aplikasipenjualan sepeti kode berikut: package penjualan; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*;
2. Pada bagian public class FrmBrgMasuk extends javax.swing.JFrame tambahkan kode berikut: public class FrmBrgMasuk extends javax.swing.JFrame { Database dbsetting; String driver,database,user,pass,userLogin; private Object tabel; /** Creates new form FrmBrgMasuk */ public FrmBrgMasuk() { initComponents(); Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize=this.getSize(); if(frameSize.height > screenSize.height){ frameSize.height=screenSize.height; } if(frameSize.width > screenSize.width){ frameSize.width=screenSize.width; } this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height = screenSize.height) / 10); //setting untuk memanggil koneksi Database.ini dbsetting = new Database(); driver = dbsetting.SettingPanel("DBDriver"); database = dbsetting.SettingPanel("DBDatabase"); user = dbsetting.SettingPanel("DBUsername"); pass = dbsetting.SettingPanel("DBPassword"); table.setModel(tableModel); Tabel(table, new int[]{90,300,90,60,60,90}); setDefaultTable(); SetEditOff(); TanggalOtomatis(); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
60
TampilComboBarang(); TampilComboPetugas(); TampilComboDistributor(); }
3. Buatlah kode program diatas // Variables declaration - do not modify untuk menampilkan data pada tabel seperti berikut: private javax.swing.table.DefaultTableModel tableModel=getDefaultTabelModel(); private void Tabel(javax.swing.JTable tb, int lebar[] ) { tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); int kolom=tb.getColumnCount(); for(int i=0;i < kolom;i++) { javax.swing.table.TableColumn tbc=tb.getColumnModel().getColumn(i); tbc.setPreferredWidth(lebar[i]); tb.setRowHeight(17); } } private javax.swing.table.DefaultTableModel getDefaultTabelModel() { return new javax.swing.table.DefaultTableModel( new Object[][] {}, new String [] {"Kode Barang","Nama Barang","Harga Jual","Stok","Jumlah","Sub Total"} ){ boolean[] canEdit = new boolean[]{ false, false, false, false }; public boolean isCellEditable(int rowIndex, int columnIndex){ return canEdit[columnIndex]; } }; }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
61
String data[]=new String[6]; private void setDefaultTable() { String stat =""; try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "SELECT tblbarang.kodebarang,tblbarang.namabarang,tblbarang.hargajual," + "tblbarang.stok,tbldetailbrgmasuk.jumlah,tbldetailbrgmasuk.subtotal,tblbrgmasuk.nonota " + "FROM tblbarang,tbldetailbrgmasuk,tblbrgmasuk WHERE tblbarang.kodebarang=tbldetailbrgmasuk.kodebarang " + "AND tblbrgmasuk.nonota=tbldetailbrgmasuk.nonota" + "AND tbldetailbrgmasuk.nonota='"+NoNota.getText()+"'"; ResultSet res = stt.executeQuery(SQL); while(res.next()){ data[0] = res.getString(1); data[1] = res.getString(2); data[2] = res.getString(3); data[3] = res.getString(4); data[4] = res.getString(5); data[5] = res.getString(6); tableModel.addRow(data); } res.close(); stt.close(); kon.close(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } 4. Buatlah private baru TampilGridDetail kemudian buat kode program seperti berikut: private void TampilGridDetail(){ String stat =""; try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "SELECT tblbarang.kodebarang,tblbarang.namabarang,tblbarang.hargajual," + "tblbarang.stok,tbldetailbrgmasuk.jumlah,tbldetailbrgmasuk.subtotal,tblbrgmasuk.nonota " + Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
62
"FROM tblbarang,tbldetailbrgmasuk,tblbrgmasuk WHERE tblbarang.kodebarang=tbldetailbrgmasuk.kodebarang " + "AND tblbrgmasuk.nonota=tbldetailbrgmasuk.nonota " + "AND tbldetailbrgmasuk.nonota='"+NoNota.getText().toString()+"'"; ResultSet res = stt.executeQuery(SQL); while(res.next()){ data[0] = res.getString(1); data[1] = res.getString(2); data[2] = res.getString(3); data[3] = res.getString(4); data[4] = res.getString(5); data[5] = res.getString(6); tableModel.addRow(data); } res.close(); stt.close(); kon.close(); } catch (Exception ex) { System.err.println(ex.getMessage()); } }
5.
Buatlah perintah BersihData,BersihDetail,SetEditOff, dan SetEditON disembarang tempat yang memiliki space kosong seperti berikut ini:
public void BersihData(){ tableModel.setRowCount(0); NoNota.setText(""); IDDistributor.setSelectedIndex(0); NamaPetugas.setText(""); IDPetugas.setSelectedIndex(0); NamaDistributor.setText(""); KotaAsal.setText(""); KodeBarang.setSelectedIndex(0); NamaBarang.setText(""); HargaJual.setText(""); Jumlah.setText(""); Stok.setText(""); SubTotal.setText("0"); Total.setText("0"); } Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
63
public void BersihDetail(){ KodeBarang.setSelectedIndex(0); NamaBarang.setText(""); HargaJual.setText(""); Stok.setText(""); Jumlah.setText(""); SubTotal.setText("0"); } public void SetEditOff(){ NoNota.setEnabled(false); TglMasuk.setEnabled(false); IDDistributor.setEnabled(false); IDPetugas.setEnabled(false); KodeBarang.setEnabled(false); Jumlah.setEnabled(false); Hitung.setEnabled(false); CariData.setEnabled(false); AddItem.setEnabled(false); } public void SetEditOn(){ NoNota.setEnabled(true); TglMasuk.setEnabled(true); IDDistributor.setEnabled(true); IDPetugas.setEnabled(true); KodeBarang.setEnabled(true); Jumlah.setEnabled(true); SaveTransaction.setEnabled(true); CariData.setEnabled(true); Hitung.setEnabled(true); AddItem.setEnabled(true); } 6.
Buatlah kode program pada kombobox idpetugas dengan cara klik kanan pilih events -> item -> itemStatChanged.
private void IDPetugasItemStateChanged(java.awt.event.ItemEvent evt) { // TODO add your handling code here: try { Connection kon = DriverManager.getConnection(database,user,pass); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
64
Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); String SQL = "SELECT * FROM tblpetugas where idpetugas='"+ IDPetugas.getSelectedItem().toString()+"'"; ResultSet res = stt.executeQuery(SQL); res.absolute(1); NamaPetugas.setText(res.getString("namapetugas")); } catch (SQLException ex) { } } 7.
Buatlah private baru untuk menampilakn data pada kombobox idpetugas seperti berikut:
public void TampilComboPetugas(){ try { Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); String SQL = "SELECT * FROM tblpetugas"; ResultSet res = stt.executeQuery(SQL); while(res.next()){ IDPetugas.addItem(res.getString("idpetugas")); } } catch (SQLException ex) { } } 8.
Buatlah kode program pada kombobox iddistributor dengan cara klik kanan pilih events -> item -> itemStatChanged.
private void IDDistributorItemStateChanged(java.awt.event.ItemEvent evt) { // TODO add your handling code here: try { Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); String SQL = "SELECT * FROM tbldistributor where iddistributor='"+ IDDistributor.getSelectedItem().toString()+"'"; ResultSet res = stt.executeQuery(SQL); res.absolute(1); NamaDistributor.setText(res.getString("namadistributor")); KotaAsal.setText(res.getString("kotaasal")); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
65
} catch (SQLException ex) { } } 9.
Buatlah private baru untuk menampilakn data pada kombobox iddistributor seperti berikut:
public void TampilComboDistributor(){ try { Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); String SQL = "SELECT * FROM tbldistributor"; ResultSet res = stt.executeQuery(SQL); while(res.next()){ IDDistributor.addItem(res.getString("iddistributor")); } } catch (SQLException ex) { } } 10. Buatlah kode program pada kombobox kodebarang dengan cara klik kanan pilih events -> item -> itemStatChanged.
private void KodeBarangItemStateChanged(java.awt.event.ItemEvent evt) { // TODO add your handling code here: try { Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); String SQL = "SELECT * FROM tblbarang where kodebarang='"+ KodeBarang.getSelectedItem().toString()+"'"; ResultSet res = stt.executeQuery(SQL); res.absolute(1); NamaBarang.setText(res.getString("namabarang")); HargaJual.setText(res.getString("hargajual")); Stok.setText(res.getString("stok")); } catch (SQLException ex) { } Jumlah.requestFocus(); AddItem.setEnabled(true); }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
66
11. Buatlah private baru untuk menampilakn data pada kombobox iddistributor seperti berikut:
public void TampilComboBarang(){ try { Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); String SQL = "SELECT * FROM tblbarang"; ResultSet res = stt.executeQuery(SQL); while(res.next()){ KodeBarang.addItem(res.getString("kodebarang")); } } catch (SQLException ex) { } } 12. Buatlah private baru untuk menampilkan tanggal otomatis seperti berikut:
public void TanggalOtomatis(){ Date tanggal = new Date(); TglMasuk.setText(""+ (String.format("%1$td:%1$tb:%1$tY",tanggal))); } 13. Buatlah kode program untuk menampilkan perhitungan subtotal dengan mengkilik button hitung -> events -> action -> ActionPerformed.
private void HitungActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int a; int b; double c; a = Integer.parseInt(HargaJual.getText()); b = Integer.parseInt(Jumlah.getText()); c = a * b; SubTotal.setText(String.valueOf(c)); } 14. Buatlah kode program untuk menampilkan total dengan cara klik kanan textfield subtotal -> events -> charet -> charetUpdate.
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
67
private void SubTotalCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: double d, e; d = Double.parseDouble(SubTotal.getText()); e = Double.parseDouble(Total.getText()); e = e+d; Total.setText(String.valueOf(e)); } 15. Buatlah kode program AddNew dengan mengklik kanan button AddNew ->events -> action -> ActionPerformed.
private void AddNewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: SetEditOn(); NoNota.requestFocus(); BersihData(); } 16. Buatlah kode program Add Item dengan mengklik kanan button save ->events -> action -> ActionPerformed.
private void AddItemActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String NM=NoNota.getText(); String KB=KodeBarang.getSelectedItem().toString(); String JM=Jumlah.getText(); if ((NM.isEmpty()) | (KB.isEmpty()) |(JM.isEmpty())) { JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); KodeBarang.requestFocus(); }else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "insert into tbldetailbrgmasuk values('"+NoNota.getText()+"',"+ "'"+KodeBarang.getSelectedItem()+"',"+ "'"+Jumlah.getText()+"',"+ "'"+SubTotal.getText()+"')"; stt.executeUpdate(SQL); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
68
Class.forName(driver); Connection kon1 = DriverManager.getConnection(database,user,pass); Statement stt1 = kon.createStatement(); String SQL1 = "Update tblbarang Set stok=stok + '"+Jumlah.getText()+"'" + "Where kodebarang='"+KodeBarang.getSelectedItem().toString()+"'"; stt1.executeUpdate(SQL1); data[0] = KodeBarang.getSelectedItem().toString(); data[1] = NamaBarang.getText(); data[2] = HargaJual.getText(); data[3] = Stok.getText(); data[4] = Jumlah.getText(); data[5] = SubTotal.getText(); tableModel.insertRow(0, data); stt.close(); kon.close(); KodeBarang.requestFocus(); AddItem.setEnabled(false); BersihDetail(); //TampilGrid(); KodeBarang.requestFocus(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
69
17. Buatlah kode program SaveTransaction dengan mengklik kanan button save ->events -> action -> ActionPerformed.
private void SaveTransactionActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String NM=NoNota.getText(); if ((NM.isEmpty())) { JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); NoNota.requestFocus(); }else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "insert into tblbrgmasuk values('"+NoNota.getText()+"',"+ "'"+TglMasuk.getText()+"',"+ "'"+IDDistributor.getSelectedItem()+"',"+ "'"+IDPetugas.getSelectedItem()+"',"+ "'"+Total.getText()+"')";
stt.executeUpdate(SQL); stt.close(); kon.close(); BersihData(); SetEditOff(); SaveTransaction.setEnabled(false); } catch (Exception ex) { System.err.println(ex.getMessage()); } } }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
70
18. Buatlah kode program Close dengan mengklik kanan button Close ->evens -> action -> ActionPerformed.
private void CloseActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(JOptionPane.showConfirmDialog(null,"This application will be close \n if you press button OK","Information", JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTI ON) this.dispose(); } 19. Buatlah kode program Cari Data dengan mengklik kanan button Cancel -> events -> Action -> ActionPerformed.
private void CariDataActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try { Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); String SQL = "SELECT * FROM tblbrgmasuk where nonota='"+NoNota.getText().toString()+"'"; ResultSet res = stt.executeQuery(SQL); res.absolute(1); TglMasuk.setText(res.getString("tglmasuk")); IDPetugas.setSelectedItem(res.getString("idpetugas")); IDDistributor.setSelectedItem(res.getString("iddistributor")); Total.setText(res.getString("total")); TampilGridDetail(); SaveTransaction.setEnabled(false); NoNota.setEnabled(false); CariData.setEnabled(false); } catch (SQLException ex) { } }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
71
20. Jalankan Program kemudian klik menu Data Barang Masuk maka akan tampil seperti berikut:
Gambar 1.31 Tampilan Form Data Barang Masuk
Membuat Desain Form Data Penjualan
1. Buatlah file baru dalam paket AplikasiPenjualan, dengan cara klik kanan paket Penjualan, Pilih New -> JFrame Form…, sehingga muncul jendela New File.
Gambar 1.32 Membuat Objek Baru Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
72
2. Pada jendela New JFrame Form, isikan FrmPenjualan pada kotak isian Class Name, dan Package pilih aplikasipenjualan, lalu tekan tombol Finish untuk mengakhiri.
Gambar 1.33 Menentukan Nama Form JFrame Form
Gambar 1.34 Desain Form Baru Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
73
3. Desainlah form yang baru anda ciptakan seperti gambar dibawah ini:
Gambar 1.35 Desain Form Data Penjualan Barang
Keterangan : Tabel 1.12 Daftar Propertis yang digunakan Pallete Label1 Label2 Label3 Label4 Label5 Label6 Label7 Label8 Label9 Label10 Label11 TextField1 TextField2 ComboBox1 TextField3 ComboBox2
Edit Text Tanggal Penjualan No.Faktur ID Petugas Nama Petugas Kode Barang Nama Barang Harga Jual Stok Jumlah Sub Total Rp Total Rp -
Propertis Change Variable Name jLabel1 jLabel2 jLabel3 jLabel4 jLabel8 jLabel9 jLabel10 jLabel11 jLabel12 jLabel13 jLabel14 TglPenjualan NoFaktur IDPetugas NamaPetugas KodeBarang
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
74
TextField4 TextField5 TextField6 TextField7 TextField8 TextField9 Button1 Button2 Button3 Button4 Button5 Button6 Table
Cari Data Hitung Add Item Add New Save Transaction Close -
NamaBarang HargaJual Stok Jumlah SubTotal Total CariData Hitung AddItem AddNew SaveTransaction Close table
Syntax Program 1. Pada bagian import tambahkan dibawah baris package aplikasipenjualan sepeti kode berikut: package penjualan; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*;
2. Pada bagian public class FrmBrgMasuk extends javax.swing.JFrame tambahkan kode berikut: public class FrmPenjualan extends javax.swing.JFrame { Database dbsetting; String driver,database,user,pass,userLogin; private Object tabel; /** Creates new form FrmPenjualan */ public FrmPenjualan() { initComponents(); Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize=this.getSize(); if(frameSize.height > screenSize.height){ frameSize.height=screenSize.height; } if(frameSize.width > screenSize.width){ frameSize.width=screenSize.width; } Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
75
this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height = screenSize.height) / 10); //setting untuk memanggil koneksi Database.ini dbsetting = new Database(); driver = dbsetting.SettingPanel("DBDriver"); database = dbsetting.SettingPanel("DBDatabase"); user = dbsetting.SettingPanel("DBUsername"); pass = dbsetting.SettingPanel("DBPassword"); table.setModel(tableModel); Tabel(table, new int[]{90,300,90,60,60,90}); setDefaultTable(); TanggalOtomatis(); SetEditOff(); TampilComboBarang(); TampilComboPetugas(); } 3. Buatlah kode program diatas // Variables declaration - do not modify untuk menampilkan data pada tabel seperti berikut: private javax.swing.table.DefaultTableModel tableModel=getDefaultTabelModel(); private void Tabel(javax.swing.JTable tb, int lebar[] ) { tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); int kolom=tb.getColumnCount(); for(int i=0;i < kolom;i++) { javax.swing.table.TableColumn tbc=tb.getColumnModel().getColumn(i); tbc.setPreferredWidth(lebar[i]); tb.setRowHeight(17); } } private javax.swing.table.DefaultTableModel getDefaultTabelModel() { return new javax.swing.table.DefaultTableModel( new Object[][] {}, new String [] {"Kode Barang","Nama Barang","Harga Jual","Stok","Jumlah","Sub Total"} ){ boolean[] canEdit = new boolean[]{ false, false, false, false }; public boolean isCellEditable(int rowIndex, int columnIndex){ Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
76
return canEdit[columnIndex]; } }; }
String data[]=new String[6]; private void setDefaultTable() { String stat =""; try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "SELECT tblbarang.kodebarang,tblbarang.namabarang,tblbarang.hargajual," + "tblbarang.stok,tbldetailpenjualan.jumlah,tbldetailpenjualan.subtotal,tblpenjualan.nofaktur " + "FROM tblbarang,tbldetailpenjualan,tblpenjualan WHERE tblbarang.kodebarang=tbldetailpenjualan.kodebarang " + "AND tblpenjualan.nofaktur=tbldetailpenjualan.nofaktur" + "AND tbldetailpenjualan.nofaktur='"+NoFaktur.getText()+"'"; ResultSet res = stt.executeQuery(SQL); while(res.next()){ data[0] = res.getString(1); data[1] = res.getString(2); data[2] = res.getString(3); data[3] = res.getString(4); data[4] = res.getString(5); data[5] = res.getString(6); tableModel.addRow(data); } res.close(); stt.close(); kon.close(); } catch (Exception ex) { System.err.println(ex.getMessage()); } }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
77
4. Buatlah private baru TampilGridDetail kemudian buat kode program seperti berikut: private void TampilGridDetail(){ String stat =""; try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "SELECT tblbarang.kodebarang,tblbarang.namabarang,tblbarang.hargajual," +"tblbarang.stok,tbldetailpenjualan.jumlah,tbldetailpenjualan.subtotal,tblpenjualan.nofaktur " + "FROM tblbarang, tbldetailpenjualan, tblpenjualan " + "WHERE tblbarang.kodebarang=tbldetailpenjualan.kodebarang " + "AND tblpenjualan.nofaktur=tbldetailpenjualan.nofaktur " + "AND tbldetailpenjualan.nofaktur='" + NoFaktur.getText().toString() + "'"; ResultSet res = stt.executeQuery(SQL); while(res.next()){ data[0] = res.getString(1); data[1] = res.getString(2); data[2] = res.getString(3); data[3] = res.getString(4); data[4] = res.getString(5); data[5] = res.getString(6); tableModel.addRow(data); } res.close(); stt.close(); kon.close(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } 5.
Buatlah perintah BersihData,BersihDetail,SetEditOff, dan SetEditON disembarang tempat yang memiliki space kosong seperti berikut ini:
public void BersihData(){ tableModel.setRowCount(0); NoFaktur.setText(""); NamaPetugas.setText(""); IDPetugas.setSelectedIndex(0); KodeBarang.setSelectedIndex(0); NamaBarang.setText(""); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
78
HargaJual.setText(""); Jumlah.setText(""); Stok.setText(""); Bayar.setText("0"); Sisa.setText("0"); Total.setText("0"); SubTotal.setText("0"); } public void BersihDetail(){ KodeBarang.setSelectedIndex(0); NamaBarang.setText(""); HargaJual.setText(""); Stok.setText(""); Jumlah.setText(""); SubTotal.setText("0"); } public void SetEditOff(){ NoFaktur.setEnabled(false); TglPenjualan.setEnabled(false); IDPetugas.setEnabled(false); KodeBarang.setEnabled(false); Jumlah.setEnabled(false); Hitung.setEnabled(false); CariData.setEnabled(false); AddItem.setEnabled(false); } public void SetEditOn(){ NoFaktur.setEnabled(true); TglPenjualan.setEnabled(true); IDPetugas.setEnabled(true); KodeBarang.setEnabled(true); Jumlah.setEnabled(true); SaveTransaction.setEnabled(true); CariData.setEnabled(true); Hitung.setEnabled(true); AddItem.setEnabled(true); }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
79
6.
Buatlah kode program pada kombobox idpetugas dengan cara klik kanan pilih events -> item -> itemStatChanged.
private void IDPetugasItemStateChanged(java.awt.event.ItemEvent evt) { // TODO add your handling code here: try { Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); String SQL = "SELECT * FROM tblpetugas where idpetugas='"+ IDPetugas.getSelectedItem().toString()+"'"; ResultSet res = stt.executeQuery(SQL); res.absolute(1); NamaPetugas.setText(res.getString("namapetugas")); } catch (SQLException ex) { } } 7.
Buatlah private baru untuk menampilakn data pada kombobox idpetugas seperti berikut:
public void TampilComboPetugas(){ try { Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); String SQL = "SELECT * FROM tblpetugas"; ResultSet res = stt.executeQuery(SQL); while(res.next()){ IDPetugas.addItem(res.getString("idpetugas")); } } catch (SQLException ex) { } } 8.
Buatlah kode program pada kombobox kodebarang dengan cara klik kanan pilih events -> item -> itemStatChanged.
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
80
private void KodeBarangItemStateChanged(java.awt.event.ItemEvent evt) { // TODO add your handling code here: try { Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); String SQL = "SELECT * FROM tblbarang where kodebarang='"+ KodeBarang.getSelectedItem().toString()+"'"; ResultSet res = stt.executeQuery(SQL); res.absolute(1); NamaBarang.setText(res.getString("namabarang")); HargaJual.setText(res.getString("hargajual")); Stok.setText(res.getString("stok")); } catch (SQLException ex) { } Jumlah.requestFocus(); AddItem.setEnabled(true); } 9.
Buatlah private baru untuk menampilakn data pada kombobox iddistributor seperti berikut:
public void TampilComboBarang(){ try { Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); String SQL = "SELECT * FROM tblbarang"; ResultSet res = stt.executeQuery(SQL); while(res.next()){ KodeBarang.addItem(res.getString("kodebarang")); } } catch (SQLException ex) { } } 10. Buatlah private baru untuk menampilkan tanggal otomatis seperti berikut:
public void TanggalOtomatis(){ Date tanggal = new Date(); TglPenjualan.setText(""+ (String.format("%1$td:%1$tb:%1$tY",tanggal))); } Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
81
11. Buatlah kode program untuk menampilkan perhitungan subtotal dengan mengkilik button hitung -> events -> action -> ActionPerformed.
private void HitungActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int a; int b; double c; a = Integer.parseInt(HargaJual.getText()); b = Integer.parseInt(Jumlah.getText()); c = a * b; SubTotal.setText(String.valueOf(c)); } 12. Buatlah kode program untuk menampilkan total dengan cara klik kanan textfield subtotal -> events -> charet -> charetUpdate.
private void SubTotalCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: double d, e; d = Double.parseDouble(SubTotal.getText()); e = Double.parseDouble(Total.getText()); e = e+d; Total.setText(String.valueOf(e)); } 13. Buatlah kode program untuk menampilkan perhitungan sisa bayar dengan cara klik kanan textfield bayar > events -> charet -> charetUpdate. private void BayarCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: double a; double b; double c; a = Double.parseDouble(Bayar.getText()); b = Double.parseDouble(Total.getText()); c = a - b; Sisa.setText(String.valueOf(c)); }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
82
14. Buatlah kode program AddNew dengan mengklik kanan button AddNew ->events -> action -> ActionPerformed.
private void AddNewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: SetEditOn(); NoFaktur.requestFocus(); BersihData(); } 15. Buatlah kode program Add Item dengan mengklik kanan button save ->events -> action -> ActionPerformed.
private void AddItemActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String NM=NoFaktur.getText(); String KB=KodeBarang.getSelectedItem().toString(); String JM=Jumlah.getText(); if ((NM.isEmpty()) | (KB.isEmpty()) |(JM.isEmpty())) { JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); KodeBarang.requestFocus(); }else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "insert into tbldetailpenjualan values('"+NoFaktur.getText()+"',"+ "'"+KodeBarang.getSelectedItem()+"',"+ "'"+Jumlah.getText()+"',"+ "'"+SubTotal.getText()+"')"; stt.executeUpdate(SQL); Class.forName(driver); Connection kon1 = DriverManager.getConnection(database,user,pass); Statement stt1 = kon.createStatement(); String SQL1 = "Update tblbarang Set stok=stok - '"+Jumlah.getText()+"'" + "Where kodebarang='"+KodeBarang.getSelectedItem().toString()+"'"; stt1.executeUpdate(SQL1); data[0] = KodeBarang.getSelectedItem().toString(); data[1] = NamaBarang.getText(); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
83
data[2] = HargaJual.getText(); data[3] = Stok.getText(); data[4] = Jumlah.getText(); data[5] = SubTotal.getText(); tableModel.insertRow(0, data); stt.close(); kon.close(); KodeBarang.requestFocus(); AddItem.setEnabled(false); BersihDetail(); KodeBarang.requestFocus(); } catch (Exception ex) { System.err.println(ex.getMessage()); } } }
16. Buatlah kode program SaveTransaction dengan mengklik kanan button save ->events -> action -> ActionPerformed.
private void SaveTransactionActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String NM=NoFaktur.getText(); if ((NM.isEmpty())) { JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); NoFaktur.requestFocus(); }else { try { Class.forName(driver); Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(); String SQL = "insert into tblpenjualan values('"+NoFaktur.getText()+"',"+ "'"+TglPenjualan.getText()+"',"+ "'"+IDPetugas.getSelectedItem()+"',"+ "'"+Bayar.getText()+"',"+ "'"+Sisa.getText()+"',"+ "'"+Total.getText()+"')"; stt.executeUpdate(SQL); stt.close(); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
84
kon.close(); BersihData(); SetEditOff(); SaveTransaction.setEnabled(false); } catch (Exception ex) { System.err.println(ex.getMessage()); } } } 17. Buatlah kode program Close dengan mengklik kanan button Close ->evens -> action -> ActionPerformed.
private void CloseActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(JOptionPane.showConfirmDialog(null,"This application will be close \n if you press button OK","Information", JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTI ON) this.dispose(); } 18. Buatlah kode program Cari Data dengan mengklik kanan button Cancel -> events -> Action -> ActionPerformed.
private void CariDataActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try { Connection kon = DriverManager.getConnection(database,user,pass); Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); String SQL = "SELECT * FROM tblpenjualan where nofaktur='"+NoFaktur.getText().toString()+"'"; ResultSet res = stt.executeQuery(SQL); res.absolute(1); TampilGridDetail(); TglPenjualan.setText(res.getString("tglpenjualan")); IDPetugas.setSelectedItem(res.getString("idpetugas")); Bayar.setText(res.getString("bayar")); Sisa.setText(res.getString("sisa")); Total.setText(res.getString("total")); SaveTransaction.setEnabled(false); NoFaktur.setEnabled(false); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
85
CariData.setEnabled(false); } catch (SQLException ex) { } }
19. Buatlah kode program Cancel dengan mengklik kanan button Cancel -> events -> Action -> ActionPerformed.
private void CancelActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: BersihData(); SetEditOff(); } 20. Jalankan Program kemudian klik menu DataBarang Masuk maka akan tampil seperti berikut:
Gambar 1.36 Tampilan Form Data Penjualan Barang
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
86
Membuat Menu Utama 1. Buatlah file baru dalam paket AplikasiPenjualan, dengan cara klik kanan paket Penjualan, Pilih New -> JFrame Form…, sehingga muncul jendela New File.
Gambar 1.37 Membuat Objek Baru 2. Pada jendela New JFrame Form, isikan FrmDistributor pada kotak isian Class Name, dan Package pilih aplikasipenjualan, lalu tekan tombol Finish untuk mengakhiri.
Gambar 1.38 Menentukan Nama Form JFrame Form
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
87
Gambar 1.39 Desain Form Baru
3. Untuk membuat menu anda pilih Pallete pilih Swing Menus ->MenuBar kemudian anda drag kedalam form yang sudah anda persiapkan.
Gambar 1.40 Tampilan Palette Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
88
Gambar 1.41 Tampilan Menu Bar yang sudah diletakkan di dalam form 1. Pada Swing Menus pilihlah MenuItem kemudian anda drag ke dalam Menu Bar File
Gambar 1.42 Tampilan Menu Item pada saat di drag
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
89
Gambar 1.43 Tampilan Menu Item Setelah diletakkan pada menu file 2. Setelah anda paham buatlah menu seperti gambar dibawah ini: Menu File
Gambar 1.44 Tampilan Menu File Menu Transaksi
Gambar 1.45 Tampilan Menu Transaksi Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
90
Menu Report
Gambar 1.46 Tampilan Menu Report
Keterangan : Tabel 1.12 Daftar Propertis yang digunakan Pallete
Propertis Change Variable Name jMenu1 MenuJenisBarang MenuBarang MenuDistributor MenuPetugas MenuExit
Menu Bar1 Menu Item1 Menu Item2 Menu Item3 Menu Item4 Menu Item5
Edit Text File Data Jenis Barang Data Barang Data Distributor Data Petugas Exit
Menu Bar2 Menu Item1 Menu Item2
Transaksi Data Barang Masuk Data Penjualan Barang
jMenu2 MenuBarangMasuk MenuPenjualan
Menu Bar3 Menu Item1
Report Daftar Report
jMenu3 Daftar Report
Syntax Program 1. Buatlah kode program untuk sub menu data jenis barang dengan cara klik kanan sub menu data jenis barang ->events ->Action -> ActionPerformed. private void MenuJenisBarangActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: new FrmJenis().setVisible(true); }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
91
2. Buatlah kode program untuk sub menu data jenis barang dengan cara klik kanan sub menu data barang ->events ->Action -> ActionPerformed. private void MenuBarangActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: new FrmBarang().setVisible(true); }
3. Buatlah kode program untuk sub menu data jenis barang dengan cara klik kanan sub menu data distributor ->events ->Action -> ActionPerformed. private void MenuDistributorActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: new Frmdistributor().setVisible(true); }
4. Buatlah kode program untuk sub menu data jenis barang dengan cara klik kanan sub menu data petugas ->events ->Action -> ActionPerformed. private void MenuPetugasActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: new Frmpetugas().setVisible(true); }
5. Buatlah kode program untuk sub menu data jenis barang dengan cara klik kanan sub menu data barang masuk ->events ->Action -> ActionPerformed. private void MenuBarangMasukActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: new FrmBrgMasuk().setVisible(true); }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
92
6. Buatlah kode program untuk sub menu data jenis barang dengan cara klik kanan sub menu data penjualan barang ->events ->Action -> ActionPerformed. private void MenuPenjualanActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: new FrmPenjualan().setVisible(true); }
MEMBUAT LAPORAN Jika program aplikasi sudah selesai dibuat, kini giliran kita membuat halaman laporan dari semua data yang ada. Berikut selengkapnya.
Mengenal JasperReport JasperReport adalah sebuah tool yang sangat powerfull untuk membuat laporan dalam bentuk PDF,HTML,XLS,RTF,ODT,CSV,TXT dan XML. Dengan kemampuan dan fleksibilitasnya yang sangat tinggi, anda bisa membuat berbagai laporan berbentuk Chart, Crosstabs, Subreport, dan kemampuan lain yang anda butuhkan.
Komponen yang Digunakan Untuk Membuat Report : Silahkan klik kanan Libraries pilih Add JAR/Folder maka akan tampil seperti berikut:
Gambar 1.47 direktory Add JAR/Folder
Adapun file-file Jasper Report Engine yang harus dipilih adalah sebagai berikut: Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
93
Jasperreport-2.0.5.jar pada direktori d:\Aplikasi Penjualan\AplikasiPenjualan\lib Commons-beanutils-1.7.jar pada direktori d:\ Aplikasi Penjualan \AplikasiPenjualan\lib Commons-collections-2.1.jar pada direktori d:\ Aplikasi Penjualan \AplikasiPenjualan\lib Commons-digester-1.7.jar pada direktori d:\ Aplikasi Penjualan \AplikasiPenjualan\lib Commons-logging-1.0.2.jar pada direktori d:\ Aplikasi Penjualan \AplikasiPenjualan\lib Commons-logging-api-1.0.2.jar pada direktori d:\ Aplikasi Penjualan \AplikasiPenjualan\lib Commons-javaflow-20060411.jar pada direktori d:\ Aplikasi Penjualan \AplikasiPenjualan\lib Jdt-compiler-3.1.1.jar pada direktori d:\ Aplikasi Penjualan \AplikasiPenjualan\lib
Setelah anda mengambil semua file yang dibutuhkan seperti diatas maka langkah selanjutnya anda harus melakukan pengidentifikasian berkas jrxml pada NetBeans dengan cara berikut: Buka menu tools -> Options, sehingga muncul jendela Options. Pada jendela tersebut klik Advanced Option, sehingga muncul jendela Advanced Options. Dalam jendela Advanced Options, perhatikan sebelah kiri, pilih pada node IDE Configuration -> System -> Object Types -> XML Objects. Masih pada jendela Advanced Options, lihat jendela bagian kanan. Ada properti Extensions anda MIME Types, tekan pada tombol… yang ada di sampingnya, sehingga muncul jendela XML Object – Extensions and MIME Types. Pada kotak isian item, masukkan jrxml, kemudian tean Add, sehingga jrxml tersebut masuk dalam daftar item List, lalu klik tombol OK. Dan tutup jendela-jendela Options tersebut.
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
94
Gambar 1.48 Berkas yang Dikenali Editor NetBeans
Mengenal IReports IReport adalah sebuah tool yang digunakan untuk membuat desain laporan pada JasperReports. Artinya, dengan fasilitas ini anda bisa membuat report dengan drag and drop, bahkan secara otomatis (wizard). Sama dengan JasperReports, program ini lagi-lagi open source. Pembuat program ini adalah Giulio Toffoli pada tahun 2005. Anda bisa mendapatkan informasi dan distribusi filenya pada alamat http://ireport.sourceforget.net.
Instalasi IReport dan Konfigurasi Databasenya Untuk menginstal IReport sebelumnya anda harus mempunya file install JasperReport, jika sudah ada silahkan klik ganda file IReport-nb-0.9.1-windows-installer.exe. ini adalah distribusi yang mendukung NetBeans. Jadi, sangat memudahkan pengguna NetBeans.
Gambar 1.49 Jendela Permulaan Pemasangan IReport
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
95
Gambar 1.50 Jendela Lisensi IReport
Gambar 1.51 Jendela Pemilihan Feature IReport
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
96
Gambar 1.52 Jendela Lokasi Program File IReport Silahkan anda lanjutkan dengan mengklik tombol Next dan ikuti semua dialognya sampai selesai. Jalankan program iReport dengan cara masuk ke dalam Start menu Windows. Pilih JasperSoft > iReport-nb-0.9.1 -> iReport-nb-0.9.1, sehingga muncul jendela pembuka seperti pada gambar berkut diikuti dengan halaman utama
Gambar 1.53 Jendela Splash Screen IReport
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
97
Gambar 1.54 Tampilan IReport Setelah tampil jendela menu iReport anda harus memanggil koneksi mysql-connector-java5.1.6-bin dengan cara klik Tools -> Options -> classpath klik tombol Add JAR silahkan anda ambil komponen mysql-connector-java-5.1.6-bin seperti gambar berikut:
Gambar 1.55 Tampilan Add JAR/Path to the classpath
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
98
Gambar 1.56 Tampilan Komponen yang sudah dipanggil
Gambar di atas adalah jendela iReport pertama kali. Sebelum membuat laporan, buatlah dulu sebuah koneksi agar bisa membuka database anda. Dengan cara: pilih menu Tool -> Report Datasource, sehingga muncul jendela seperti gambar berkut.
Gambar 1.57 Jendela Daftar Konfigurasi Koneksi
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
99
Selanjutnya tekan tombol New pada sebelah kanan, sehingga muncul jendela seperti gambar berikut.
Gambar 1.58 Pemilihan JDBC Selanjutnya, pilih Database JDBC dan klik tombol Next, Sehingga muncul jendela seperti pada gambar berikut.
Gambar 1.59 Pengisian Konfigurasi Database Untuk memastikan hasil dari koneksi database yang sudah dibuat klik tombol Test jika benar maka akan tampil seperti gambar dibawah: Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
100
Gambar 1.60 Testing Koneksi Database
Membuat Laporan Setelah anda selesai membuat koneksi database langkah selanjutnya silahkan anda membuat laporan seperti berikut 1. Klik File -> Report Wizard maka akan tampil seperti gambar dibawah :
Gambar 1.61 Tampilan New Report 2. Ubahlah Report Name dan Location untuk menentukan dimana anda akan meletakkan laporan. 3. Kemudian Klik tombol Next untuk melanjutkan perintah seperti gambar dibawah:
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
101
Gambar 1.62 Tampilan New Report steps 2 4. Ubahlah Connection / Data Source sesuai dengan koneksi yang anda buat , kemudian silahkan anda is Query seperti gambar dibawah ini:
Gambar 1.63 Tampilan Query 5. Klik tombol Next maka akan tampil seperti gambar dibawah ini:
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
102
Gambar 1.64 Tampilan Hasil Query 6. Klik tombol Next seperti Gambar dibawah :
Gambar 1.65 Tampilan Hasil Query
7. Klik tombol Next maka akan tampil pilihan Layout/jenis report yang anda inginkan seperti gambar dibawah ini:
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
103
Gambar 1.66 Tampilan Layout Report
Gambar 1.67 Tampilan Report 8. Untuk melihat hasil tekan Preview maka akan tampil seperti gambar dibawah ini:
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
104
Gambar 1.68 Tampilan Report Preview 9. Sebagai latihan silahkan anda buat report barang masuk dan report penjualan
Membuat Desain Form Report 1. Buatlah file baru dalam paket AplikasiPenjualan, dengan cara klik kanan paket Penjualan, Pilih New -> JFrame Form…, sehingga muncul jendela New File.
Gambar 1.69 Membuat Objek Baru 2. Pada jendela New JFrame Form, isikan FrmDaftarReport pada kotak isian Class Name, dan Package pilih aplikasipenjualan, lalu tekan tombol Finish untuk mengakhiri.
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
105
Gambar 1.70 Menentukan Nama Form JFrame Form
Gambar 1.71 Desain Form Baru
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
106
3. Desainlah form yang baru anda ciptakan seperti gambar dibawah ini:
Gambar 1.72 Desain Form Daftar Report
Keterangan : Tabel 1.11 Daftar Propertis yang digunakan Pallete Label1 TextField1 Button1 Button2 Button3 Button4 Button6
Propertis Edit Text No.Faktur Cetak Report Barang Cetak Report Barang Masuk Cetak Report Penjualan Cetak Close
Change Variable Name jLabel1 NoFaktur CariData Hitung AddItem AddNew Close
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
107
Syntax Program 1. Pada bagian import tambahkan dibawah baris package AplikasiPenjualan sepeti kode berikut: package penjualan; import javax.swing.JOptionPane; import java.util.HashMap; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.util.JRLoader; import net.sf.jasperreports.view.JasperViewer; import java.io.File; import java.sql.Connection; import java.sql.DriverManager; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.JOptionPane; 2. Pada bagian public class FrmDaftarReport extends javax.swing.JFrame tambahkan kode berikut: public class FrmDaftarReport extends javax.swing.JFrame { Database dbsetting; String driver,database,user,pass,userLogin; private Object tabel; /** Creates new form FrmDaftarReport */ public FrmDaftarReport() { initComponents(); Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize=this.getSize(); if(frameSize.height > screenSize.height){ frameSize.height=screenSize.height; } if(frameSize.width > screenSize.width){ frameSize.width=screenSize.width; } this.setLocation((screenSize.width - frameSize.width) / 2, Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
108
(screenSize.height = screenSize.height) / 6); //setting untuk memanggil koneksi Database.ini dbsetting = new Database(); driver = dbsetting.SettingPanel("DBDriver"); database = dbsetting.SettingPanel("DBDatabase"); user = dbsetting.SettingPanel("DBUsername"); pass = dbsetting.SettingPanel("DBPassword"); } 3.
Buatlah kode program CetakBarang dengan mengklik kanan button AddNew ->evens -> action -> ActionPerformed.
private void CetakBarangActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try{ String NamaFile="src/report/RptBarang.jasper"; HashMap parameter = new HashMap(); Class.forName(driver); Connection con = DriverManager.getConnection(database,user,pass); File reportfile = new File(NamaFile); JasperReport jasperReport =(JasperReport)JRLoader.loadObject(reportfile.getPath()); JasperPrint jasperPrint =JasperFillManager.fillReport(jasperReport, parameter, con); JasperViewer.viewReport(jasperPrint,false); JasperViewer.setDefaultLookAndFeelDecorated(true); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Data tidak dapat dicetak !", "Cetak Data",JOptionPane.ERROR_MESSAGE); } } 4.
Buatlah kode program CetakBarangMasuk dengan mengklik kanan button AddNew ->evens -> action -> ActionPerformed.
private void CetakBarangMasukActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try{ String NamaFile="src/report/RptBrgMasuk.jasper"; HashMap parameter = new HashMap(); Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
109
Class.forName(driver); Connection con = DriverManager.getConnection(database,user,pass); File reportfile = new File(NamaFile); JasperReport jasperReport =(JasperReport)JRLoader.loadObject(reportfile.getPath()); JasperPrint jasperPrint =JasperFillManager.fillReport(jasperReport, parameter, con); JasperViewer.viewReport(jasperPrint,false); JasperViewer.setDefaultLookAndFeelDecorated(true); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Data tidak dapat dicetak !", "Cetak Data",JOptionPane.ERROR_MESSAGE); } } 5.
Buatlah kode program CetakPenjualanALL dengan mengklik kanan button AddNew ->evens -> action -> ActionPerformed.
private void CetakPenjualanAllActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try{ String NamaFile="src/report/RptPenjualan.jasper"; HashMap parameter = new HashMap(); Class.forName(driver); Connection con = DriverManager.getConnection(database,user,pass); File reportfile = new File(NamaFile); JasperReport jasperReport =(JasperReport)JRLoader.loadObject(reportfile.getPath()); JasperPrint jasperPrint =JasperFillManager.fillReport(jasperReport, parameter, con); JasperViewer.viewReport(jasperPrint,false); JasperViewer.setDefaultLookAndFeelDecorated(true); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Data tidak dapat dicetak !", "Cetak Data",JOptionPane.ERROR_MESSAGE); } }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
110
6.
Buatlah kode program CetakPenjualanKode dengan mengklik kanan button AddNew ->evens -> action -> ActionPerformed.
private void CetakActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try{ String NamaFile="src/report/RptPenjualanKode1.jasper"; HashMap parameter = new HashMap(); parameter.put("NoFaktur",NoFaktur.getText()); Class.forName(driver); Connection con = DriverManager.getConnection(database,user,pass); File reportfile = new File(NamaFile); JasperReport jasperReport =(JasperReport)JRLoader.loadObject(reportfile.getPath()); JasperPrint jasperPrint =JasperFillManager.fillReport(jasperReport, parameter, con); JasperViewer.viewReport(jasperPrint,false); JasperViewer.setDefaultLookAndFeelDecorated(true); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Data tidak dapat dicetak !", "Cetak Data",JOptionPane.ERROR_MESSAGE); } }
7.
Buatlah kode program Close dengan mengklik kanan button AddNew ->evens -> action -> ActionPerformed.
private void CloseActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(JOptionPane.showConfirmDialog(null,"This application will be close \n if you press button OK","Information",JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE)= =JOptionPane.OK_OPTION) this.dispose(); }
Membuat Program Aplikasi Penjualan Barang Menggunakan JAVA
111