Disusun Oleh:
Dinda Ayu Muthia
Akademi Manajemen Informatika & Komputer
Bina Sarana Informatika
KATA PENGANTAR
Puji syukur penulis panjatkan kehadirat Allah SWT, yang telah memberikan rahmat
dan hidayahnya sehingga modul Pemrograman Berorientasi Objek II ini dapat terselesaikan
dengan baik. Selanjutnya modul ini disusun untuk memberikan gambaran bagi mahasiswa
yang mempelajari program Netbeans IDE 7.0.1. Dengan menggunakan metode “Belajar
Cepat Dan Menyenangkan” karena modul ini disertai contoh kasus, sehingga lebih
memudahkan anda dalam memahami bahasa pemrograman Java menggunakan program
Netbeans IDE 7.0.1.
Tak lupa penulis mengucapkan banyak terima kasih kepada semua pihak yang
telah membantu dengan tenaga dan pikirannya, terima kasih juga kepada rekan–rekan
instruktur, dosen dan semuanya yang tidak bisa disebutkan satu persatu, yang selalu
mendukung penulis sehingga modul ini sehingga dapat selesai sesuai yang kita inginkan
semua.
Penulis menyadari masih banyak kekurangan dalam penyusunan modul ini. Untuk
itu saran dan kritik yang membangun sangat penulis harapkan guna perbaikan dan
pengembangan modul ini kedepan.
Akhir kata penulis berharap semoga modul Pemrograman Berorientasi Objek II ini
dapat dipergunakan sebaik-baiknya dan dapat dijadikan referensi untuk mahasiswa umum
yang ingin mempelajari bahasa pemrograman Java menggunakan program Netbeasn IDE 7.0.1.
DAFTAR ISI
Cover ... 1
Kata Pengantar ... 2
Daftar Isi ... 3
Pertemuan 1 Instalasi software, penjelasan tugas dan penentuan kelompok presentasi ... 4
Pertemuan 2 Pembuatan database pada Phpmyadmin ... 6
Pertemuan 3 & 4 Pembuatan form master barang ... 8
Pertemuan 5 & 6 Pembuatan form master user ... 16
Pertemuan 7 & 8 Pembuatan form transaksi ... 23
Pertemuan 9 & 10 Pembuatan laporan dan form laporan ... 30
Pertemuan 11 Pembuatan menu utama ... 43
Pertemuan 12 Pembuatan form log in ... 46
Pertemuan 1
Instalasi Software, Penjelasan Tugas dan
Penentuan Kelompok Presentasi
1.
Software yang Digunakan
a. Apache2Triad/Xampp
b. Netbeans IDE 7.0.1
c. iReport 4.0.1
2.
Penjelasan Tugas
a. Mahasiswa diminta untuk membuat project berupa program bisnis menggunakan Netbeans
IDE.
b. Project dikerjakan secara berkelompok
c. Project akan dipresentasikan setelah UTS dan nilainya akan menjadi nilai UAS
d. Penilaian project dilihat dari presentasi dan jalannya program.
e. Penilaian diambil secara individu dan kelompok.
3.
Kriteria Penilaian
a. Penilaian secara kelompok:
1) Penilaian database = 10% (Pembuatan database, tabel, index)
2) Penilaian form, coding dan report = 60% (Pembuatan form, penggunaan objek dan
properties, koneksi database, sintaks program dan prosedur, logika program)
3) Penilaian testing, presentasi = 30% (Eksekusi program, kesesuaian tampilan, cara
presentasi)
b. Penilaian secara individu:
1) Range nilai: 0-100
2) Nilai individu diketahui pada saat tanya jawab, ketika kelompok mereka melakukan
presentasi.
3) Nilai rata-rata per individu=(total nilai kelompok + nilai individu) / 2.
4) Nilai rata-rata per individu yang diinput di web sebagai nilai UAS.
4.
Contoh Penilaian
Database
: 10% x 100 =10
Form. Coding, report
: 60% x 100 = 60
Testing, Presentasi
: 30% x 100 = 30
TOTAL NILAI KELOMPOK
:
100
NILAI INDIVIDU
: 100
Nilai rata-rata per individu: (100+100)/2 =100
Nilai UAS mahasiswa tersebut = 100
5.
Project Program
a. Pembayaran
b. Simpan-pinjam
c. Pembelian
d. Penggajian
e. Peminjaman – pengembalian
f. Penerimaan karyawan
g. Absensi pegawai
h. Persedian barang
i. kunjungan pasien
j. perpustakaan
Pertemuan 2
Pembuatan Database pada Phpmyadmin
1.
Membuat Database
Database: nim_penjualan
a. Tabel
: Barang
Field
Type
Length Keterangan
KodeBarang
Varchar 5
Primary Key
NamaBarang Varchar 20
Harga
Double
Stok
Int
b. Tabel
: User
Field
Type
Length Keterangan
KodeUser
Varchar 3
Primary Key
NamaUser Varchar 20
Password
Varchar 10
HakAkses Varchar 5
Isikan data melalui menu Insert:
KodeUser NamaUser Password HakAkses
DAM
Dinda
a1d2m3
Admin
IDD
Ida
u4s5r6
User
c. Tabel
: Transaksi
Field
Type
Length Keterangan
NoTrans Varchar 10
Primary Key
Tanggal
Date
d. Tabel
: Sementara
Field
Type
Length Keterangan
KodeBarang
Varchar 5
Foreign Key
NamaBarang Varchar 20
Harga
Double
Qty
Int
Pertemuan 3 & 4
Pembuatan Form Master Barang
1.
Pembuatan Form Barang
a. Buatlah folder C:/nim_penjualan
b. File New Project
c. Next
d. Project Name: AppPenjualan
e. Finish
g. Class Name: FormBarang & Package: Penjualan
h. Finish
i. Pada form klik kanan Set Layout Absolute Layout
j. Klik form Properties defaultCloseOperation: DISPOSE
k. Buatlah tampilan form sebagai berikut:
l. Tambahkan Library dengan cara klik kanan pada Libraries Add Library MySQL
JDBC Driver Add Library
m. Di bawah package Penjualan, ketikkan script berikut:
Catatan: yang dicetak tebal tidak perlu diketik
package Penjualan;
import javax.swing.JOptionPane; import java.sql.*;
import javax.swing.JTable;
public class FormBarang extends javax.swing.JFrame {
String user="root"; String pwd="password";
String url="jdbc:mysql://localhost/12061479_penjualan"; Boolean isi=true;
/** Creates new form FormBarang */ public FormBarang() { initComponents(); } void aktif(){ namaTF.setEnabled(true); hargaTF.setEnabled(true); stokTF.setEnabled(true); } void nonaktif(){ kodeTF.setEnabled(false); namaTF.setEnabled(false); hargaTF.setEnabled(false); stokTF.setEnabled(false); } void bersih(){ kodeTF.setText(""); namaTF.setText(""); hargaTF.setText(""); stokTF.setText(""); cariTF.setText(""); }
void otomatis(){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
String sql = "Select right(KodeBarang,3)+1 from Barang"; ResultSet rs = st.executeQuery(sql);
if (rs.next()){ rs.last();
String kode = rs.getString(1); while (kode.length()<3){ kode="0"+kode; kodeTF.setText("BR"+kode); } }else{ kodeTF.setText("BR001"); }
}catch (Exception e){ }
}
void simpan(){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
String sql = "insert into Barang values
('"+kodeTF.getText()+"','"+namaTF.getText()+"','"+hargaTF.getText() +"','"+stokTF.getText()+"')" st.executeUpdate(sql); JOptionPane.showMessageDialog(this,"Data Berhasil disimpan","informasi", JOptionPane.INFORMATION_MESSAGE); }catch(SQLException e){
System.out.println("koneksi gagal"+ e.toString()); }
formWindowActivated(null); }
void update(){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
String sql = "update Barang set NamaBarang='"+namaTF.getText()+"', Harga='"+hargaTF.getText()+"', stok='"+stokTF.getText()+"' where KodeBarang='"+kodeTF.getText()+"'";
st.executeUpdate(sql);
JOptionPane.showMessageDialog(this,"Data Berhasil diupdate","informasi", JOptionPane.INFORMATION_MESSAGE); }catch(SQLException e){
System.out.println("koneksi gagal"+ e.toString()); }
formWindowActivated(null); }
try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
String sql = "delete from Barang where KodeBarang='"+kodeTF.getText()+"'"; st.executeUpdate(sql);
JOptionPane.showMessageDialog(this,"Data Berhasil dihapus","informasi", JOptionPane.INFORMATION_MESSAGE); }catch(SQLException e){
System.out.println("koneksi gagal"+ e.toString()); }
formWindowActivated(null); }
void cari(){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
ResultSet rs = st.executeQuery("Select * from Barang where KodeBarang= '"+cariTF.getText()+"'"); if (rs.next()){ kodeTF.setText(rs.getString("KodeBarang")); namaTF.setText(rs.getString("NamaBarang")); hargaTF.setText(rs.getString("harga")); stokTF.setText(rs.getString("stok")); }
}catch (SQLException e){
System.out.println("koneksi gagal"+e.toString()); } editBT.setEnabled(true); deleteBT.setEnabled(true); addBT.setEnabled(false); }
private Object[][] getData(){ Object[][] data1= null; try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
ResultSet rs = st.executeQuery("Select * from Barang"); rs.last();
int rowCount= rs.getRow(); rs.beforeFirst();
data1= new Object[rowCount][4]; int no=-1; while (rs.next()) { no=no+1; data1[no][0]=rs.getString("KodeBarang"); data1[no][1]=rs.getString("NamaBarang"); data1[no][2]=rs.getString("Harga"); data1[no][3]=rs.getString("Stok"); }
}catch (SQLException e){
}
return data1; }
void tampil(){
String[] columnNames= {"Kode Barang","Nama Barang","Harga","Stok"}; JTable table = new JTable(getData(), columnNames);
table.setEnabled(false);
jScrollPane1.setViewportView(table); }
n. Klik kanan pada form Events Window windowActivated
private void formWindowActivated(java.awt.event.WindowEvent evt) {
nonaktif(); bersih(); tampil(); addBT.setEnabled(true); saveBT.setEnabled(false); cancelBT.setEnabled(false); editBT.setEnabled(false); deleteBT.setEnabled(false); }
private void saveBTActionPerformed(java.awt.event.ActionEvent evt) {
if (isi==true) simpan(); else
update();
}
private void addBTActionPerformed(java.awt.event.ActionEvent evt) {
aktif(); otomatis(); namaTF.grabFocus(); addBT.setEnabled(false); saveBT.setEnabled(true); cancelBT.setEnabled(true); }
private void cancelBTActionPerformed(java.awt.event.ActionEvent evt) {
formWindowActivated(null);
}
private void closeBTActionPerformed(java.awt.event.ActionEvent evt) {
dispose();
}
private void editBTActionPerformed(java.awt.event.ActionEvent evt) {
isi=false; aktif(); editBT.setEnabled(false); addBT.setEnabled(false); saveBT.setEnabled(true); cancelBT.setEnabled(true); }
private void searchBTActionPerformed(java.awt.event.ActionEvent evt) {
cari();
}
private void deleteBTActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showConfirmDialog(this,"Yakin mau dihapus","konfirmasi",JOptionPane.YES_NO_OPTION); if((JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ delete(); formWindowActivated(null); } }
o. Isikan data berikut melalui form yang sudah di-running:
Kode Barang Nama Barang
Harga
Stok
BR001
Monitor
1000000 10
BR002
Keyboard
100000
20
BR003
Mouse
30000
30
BR004
Flash Disk
50000
40
Pertemuan 5 & 6
Pembuatan Form Master User
1.
Pembuatan Form User
a. Klik kanan pada AppPenjualan New Jframe Form
b. Class Name: FormUser & Package: Penjualan
c. Finish
d. Pada form klik kanan Set Layout Absolute Layout
e. Klik form Properties defaultCloseOperation: DISPOSE
f. AksesCB berisikan “Admin”dan “User”
g. Di bawah package Penjualan, ketikkan script berikut:
Catatan: yang dicetak tebal tidak perlu diketik
package Penjualan;
import javax.swing.JOptionPane; import java.sql.*;
import javax.swing.JTable; import java.awt.event.KeyEvent;
public class FormUser extends javax.swing.JFrame {
String user="root"; String pwd="password";
String url="jdbc:mysql://localhost/12061479_penjualan"; Boolean isi=true;
/** Creates new form FormUser */ public FormUser() { initComponents(); } void aktif(){ kodeTF.setEnabled(true); namaTF.setEnabled(true); passwordTF.setEnabled(true); aksesCB.setEnabled(true); } void nonaktif(){ kodeTF.setEnabled(false); namaTF.setEnabled(false); passwordTF.setEnabled(false); aksesCB.setEnabled(false); } void bersih(){ kodeTF.setText(""); namaTF.setText(""); passwordTF.setText(""); aksesCB.setSelectedIndex(0); cariTF.setText(""); } void simpan(){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
String sql = "insert into User values ('"+kodeTF.getText()+"','"+namaTF.getText()+"','"+passwordTF.getText()+"' ,'"+aksesCB.getSelectedItem()+"')"; st.executeUpdate(sql); JOptionPane.showMessageDialog(this,"Data Berhasil disimpan","informasi", JOptionPane.INFORMATION_MESSAGE); }catch(SQLException e){
System.out.println("koneksi gagal"+ e.toString()); }
formWindowActivated(null); }
void update(){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
String sql = "update User set NamaUser='"+namaTF.getText()+"', Password='"+passwordTF.getText()+"',HakAkses='"+aksesCB.getSelectedItem() +"' where KodeUser='"+kodeTF.getText()+"'"; st.executeUpdate(sql); JOptionPane.showMessageDialog(this,"Data Berhasil diupdate","informasi", JOptionPane.INFORMATION_MESSAGE); }catch(SQLException e){
System.out.println("koneksi gagal"+ e.toString()); }
formWindowActivated(null); }
void delete(){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
String sql = "delete from User where
KodeUser='"+kodeTF.getText()+"'"; st.executeUpdate(sql);
JOptionPane.showMessageDialog(this,"Data Berhasil dihapus","informasi", JOptionPane.INFORMATION_MESSAGE);
}catch(SQLException e){
System.out.println("koneksi gagal"+ e.toString()); }
formWindowActivated(null); }
void cari(){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
ResultSet rs = st.executeQuery("Select * from User where KodeUser= '"+cariTF.getText()+"'"); if (rs.next()){ kodeTF.setText(rs.getString("KodeUser")); namaTF.setText(rs.getString("NamaUser")); passwordTF.setText(rs.getString("Password")); if(rs.getString("HakAkses")=="Admin"){ aksesCB.setSelectedIndex(0); }else{ aksesCB.setSelectedIndex(1); } }
}catch (SQLException e){
System.out.println("koneksi gagal"+e.toString()); } editBT.setEnabled(true); deleteBT.setEnabled(true); addBT.setEnabled(false); }
private Object[][] getData(){ Object[][] data1= null; try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
ResultSet rs = st.executeQuery("Select * from User"); rs.last();
int rowCount= rs.getRow(); rs.beforeFirst();
data1= new Object[rowCount][4]; int no=-1;
while (rs.next()) { no=no+1; data1[no][0]=rs.getString("KodeUser"); data1[no][1]=rs.getString("NamaUser"); data1[no][2]=rs.getString("Password"); data1[no][3]=rs.getString("HakAkses"); }
}catch (SQLException e){
System.out.println("koneksi gagal"+e.toString()); }
return data1; }
void tampil(){
String[] columnNames = {"Kode User", "Nama User","Password","Hak Akses"};
JTable table = new JTable(getData(), columnNames); table.setEnabled(false);
jScrollPane1.setViewportView(table); }
h. Klik kanan pada kodeTF Events Key keyPressed
private void kodeTFKeyPressed(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode()==KeyEvent.VK_ENTER){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
ResultSet rs = st.executeQuery("Select * from User where KodeUser= '"+kodeTF.getText()+"'");
if (rs.next()){
JOptionPane.showMessageDialog(this, "Kode User Sudah Ada","Informasi",JOptionPane.INFORMATION_MESSAGE);
}
}catch (SQLException e){
System.out.println("koneksi gagal"+e.toString()); }
}
private void formWindowActivated(java.awt.event.WindowEvent evt) { nonaktif(); bersih(); tampil(); addBT.setEnabled(true); saveBT.setEnabled(false); cancelBT.setEnabled(false); editBT.setEnabled(false); deleteBT.setEnabled(false); }
private void saveBTActionPerformed(java.awt.event.ActionEvent evt) {
if (isi==true) simpan(); else
update();
}
private void addBTActionPerformed(java.awt.event.ActionEvent evt) {
aktif(); kodeTF.grabFocus(); addBT.setEnabled(false); saveBT.setEnabled(true); cancelBT.setEnabled(true); }
private void cancelBTActionPerformed(java.awt.event.ActionEvent evt) {
formWindowActivated(null);
}
private void editBTActionPerformed(java.awt.event.ActionEvent evt) {
isi=false; aktif(); editBT.setEnabled(false); addBT.setEnabled(false); saveBT.setEnabled(true); cancelBT.setEnabled(true); }
private void deleteBTActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showConfirmDialog(this,"Yakin mau dihapus","konfirmasi",JOptionPane.YES_NO_OPTION); if((JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ delete(); formWindowActivated(null); } }
private void closeBTActionPerformed(java.awt.event.ActionEvent evt) {
dispose();
}
private void searchBTActionPerformed(java.awt.event.ActionEvent evt) {
cari();
i. Isikan data berikut:
Kode User Nama User Password Hak Akses
RJO
Rio
u4s5r6
User
RNR
Retno
u4s5r6
User
Pertemuan 7 & 8
Pembuatan Form Transaksi
1.
Pembuatan Form Transaksi
a. Klik kanan pada AppPenjualan New Jframe Form
b. Class Name: FormTransaksi & Package: Penjualan
c. Finish
d. Pada form klik kanan Set Layout Absolute Layout
e. Klik form Properties defaultCloseOperation: DISPOSE
f. Klik kanan pada table Table Contents Isikan pada tab Columns Close
g. Ketikkan script berikut ini:
package Penjualan; import java.awt.event.KeyEvent; import javax.swing.JOptionPane; import java.sql.*; import javax.swing.JTable; import java.text.SimpleDateFormat; import java.util.Calendar;
public class FormTransaksi extends javax.swing.JFrame {
String user="root"; String pwd="password";
double total=0;
/** Creates new form FormTransaksi */ public FormTransaksi() { initComponents(); } void aktif(){ kodeCB.setEnabled(true); qtyTF.setEnabled(true); bayarTF.setEnabled(true); } void nonaktif(){ noTF.setEnabled(false); tglTF.setEnabled(false); namaTF.setEnabled(false); hargaTF.setEnabled(false); subtotalTF.setEnabled(false); totalTF.setEnabled(false); kembaliTF.setEnabled(false); kodeCB.setEnabled(false); qtyTF.setEnabled(false); bayarTF.setEnabled(false); } void bersih(){ kodeCB.setSelectedIndex(0); qtyTF.setText("0"); bayarTF.setText("0"); noTF.setText(""); tglTF.setText(""); namaTF.setText(""); hargaTF.setText("0"); subtotalTF.setText("0"); totalTF.setText(""); kembaliTF.setText("0"); } void isiKode(){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
ResultSet rs = st.executeQuery("select * from Barang"); while (rs.next()){
kodeCB.addItem(rs.getString("KodeBarang")); }
}catch(SQLException e){
System.out.println("Koneksi Gagal"+ e.toString()); }
}
void otomatis(){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
ResultSet rs = st.executeQuery(sql); if (rs.next()){ rs.last(); String no = rs.getString(1); while (no.length()<3){ no="0"+no; noTF.setText("TR"+no); } }else{ noTF.setText("TR001"); }
}catch (Exception e){ }
}
void simpan(){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
String sql = "insert into Transaksi values ('"+noTF.getText()+"','"+tglTF.getText()+"','"+totalTF.getText()+"')"; st.executeUpdate(sql);
JOptionPane.showMessageDialog(this,"Transaksi sukses","Informasi", JOptionPane.INFORMATION_MESSAGE); }catch(SQLException e){
System.out.println("koneksi gagal"+ e.toString()); }
formWindowActivated(null); }
private Object[][] getData(){ Object[][] data1= null; try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
ResultSet rs = st.executeQuery("Select * from Sementara"); rs.last();
int rowCount= rs.getRow(); rs.beforeFirst();
data1= new Object[rowCount][5]; int no=-1; while (rs.next()) { no=no+1; data1[no][0]=rs.getString("KodeBarang"); data1[no][1]=rs.getString("NamaBarang"); data1[no][2]=rs.getString("Harga"); data1[no][3]=rs.getString("Qty"); data1[no][4]=rs.getString("Subtotal"); }
}catch (SQLException e){
System.out.println("koneksi gagal"+e.toString()); }
return data1; }
void masukGrid(){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
String sql = "insert into Sementara values ('"+kodeCB.getSelectedItem()+"','"+namaTF.getText()+"','"+hargaTF.getText ()+"','"+qtyTF.getText()+"','"+subtotalTF.getText()+"')";
st.executeUpdate(sql); }catch(SQLException e){
System.out.println("koneksi gagal"+ e.toString()); }
}
void tampilGrid(){
String[] columnNames = {"Kode Barang", "Nama Barang","Harga","Qty","Subtotal"};
JTable table = new JTable(getData(), columnNames); table.setEnabled(false);
jScrollPane1.setViewportView(table); }
void hapusGrid(){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
String sql = "delete from Sementara"; st.executeUpdate(sql);
}catch(SQLException e){
System.out.println("koneksi gagal"+ e.toString()); }
}
void penguranganStok(){ try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
String sql = "update Barang set stok=stok-'"+qtyTF.getText()+"' where KodeBarang='"+kodeCB.getSelectedItem()+"'"; st.executeUpdate(sql);
}catch(SQLException e){
System.out.println("koneksi gagal"+ e.toString()); }
}
private void formWindowActivated(java.awt.event.WindowEvent evt){
kodeCB.removeAllItems(); nonaktif();
isiKode(); bersih();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); Calendar cal=Calendar.getInstance();
tglTF.setText(sdf.format(cal.getTime())); addBT.setEnabled(true);
beliBT.setEnabled(false);
}
private void addBTActionPerformed(java.awt.event.ActionEvent evt) {
aktif(); otomatis(); kodeCB.grabFocus(); beliBT.setEnabled(true); saveBT.setEnabled(true); addBT.setEnabled(false); }
private void kodeCBActionPerformed(java.awt.event.ActionEvent evt) {
try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
ResultSet rs = st.executeQuery("Select * from Barang where kodebarang= '"+kodeCB.getSelectedItem()+"'"); if (rs.next()){ namaTF.setText(rs.getString("NamaBarang")); hargaTF.setText(rs.getString("Harga")); qtyTF.grabFocus(); }
}catch (SQLException e){
System.out.println("koneksi gagal"+e.toString()); }
}
private void closeBTActionPerformed(java.awt.event.ActionEvent evt) {
dispose();
}
private void beliBTActionPerformed(java.awt.event.ActionEvent evt) {
int qty=Integer.parseInt(qtyTF.getText()); int harga=Integer.parseInt(hargaTF.getText()); double subtotal; subtotal=harga*qty; subtotalTF.setText(Double.toString(subtotal)); total=subtotal+total; totalTF.setText(Double.toString(total)); masukGrid(); tampilGrid(); penguranganStok(); }
private void saveBTActionPerformed(java.awt.event.ActionEvent evt) {
simpan(); hapusGrid(); tampilGrid(); addBT.setEnabled(true); saveBT.setEnabled(false); }
private void bayarTFKeyPressed(java.awt.event.KeyEvent evt) {
total = Double.parseDouble(totalTF.getText());
double bayar = Double.parseDouble(bayarTF.getText()); double kembali;
kembali=bayar-total;
kembaliTF.setText(Double.toString(kembali)); }
Pertemuan 9 & 10
Pembuatan Laporan dan Form Laporan
1.
Pembuatan Laporan
a. Buatlah folder baru pada project AppPenjualan. Klik kanan pada AppPenjualan New
Other
b. Categories: Other File Types: Folder Next
d. Buka software iReport
f. Report Name: reportBarang
g. Location: C:\12061479_penjualan\AppPenjualan\report
h. Next
j. Password: password jika menggunakan Apache2Triad
k. Jika menggunakan Xamp, maka password dikosongkan
l. Klik Test
m. Jika sukses, klik Save
n. Klik Design Query
o. Drag and drop table barang ke kotak abu-abu sebelah kanan OK Next
p. Klik tombol >> untuk memindahkan field Next
r. Tampilan desain laporan awal yang terbentuk otomatis:
t. Untuk melihat hasilnya, klik tombol Preview
u. Ulangi langkah-langkah di atas untuk pembuatan Laporan User dan Transaksi
v. Beri nama reportUser dan reportTransaksi
x. Untuk reportTransaksi, tambahkan Grand Total
y. Menambahkan GrandTotal dengan cara klik kanan pada Variables di sebelah kiri Add
Variable muncul variable 1 klik kanan renamegrandtotalpada properties
z. Double klik pada transaksi_Total, klik OK. Pilih Label dari palette sebelah kanan, berikan
Text = Grand Total, tarik variabel grandtotal di sebelah kiri ke laporan.
Hasil akhir:
2.
Pembuatan Form Laporan
a. Kembali ke Netbeans IDE pada project AppPenjualan. Setelah mendesain laporan, langkah
selanjutnya adalah memasukkan library iReport, diantaranya:
1) Jasperreports-4.0.1.jar
2) Commons-logging-1.1.jar
3) Commons-javaflow-20060411.jar
4) Commons-digester-1.7.jar
5) Commons-collections-3.2.1.jar
6) Commons-beanutils-1.8.2.jar
*Catatan: semua library tergantung pada versi iReports
b. Klik kanan pada Libraries AppPenjualan Add JAR/Folder
c. C:\Program Files\Jaspersoft\iReport-4.0.1\ireport\modules\ext. Pilih 6 library yang sudah
disebutkan di atas.
d. Klik Open
e. Buat form baru dengan nama FormLaporan
f. Finish
h. Ketikkan script berikut:
package Penjualan; import java.sql.*; import java.io.File; import java.util.HashMap; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.view.JasperViewer;public class FormLaporan extends javax.swing.JFrame {
String user="root"; String pwd="password";
String url="jdbc:mysql://localhost/12061479_penjualan";
/** Creates new form FormLaporan */ public FormLaporan() {
initComponents(); }
private void barangBTActionPerformed(java.awt.event.ActionEvent evt){
try{
Connection conn = DriverManager.getConnection(url,user,pwd); File file = new File("");
String sourcefilename=file.getAbsolutePath()+ "\\report\\reportBarang.jasper";
JasperPrint cetak=JasperFillManager.fillReport(sourcefilename, new HashMap() ,conn);
JasperViewer viewer=new JasperViewer(cetak,false); viewer.setFitPageZoomRatio(); viewer.setVisible(true); }catch(Exception e){ e.printStackTrace(); } }
private void userBTActionPerformed(java.awt.event.ActionEvent evt) {
try{
Connection conn = DriverManager.getConnection(url,user,pwd); File file = new File("");
String sourcefilename=file.getAbsolutePath()+ "\\report\\reportUser.jasper";
JasperPrint cetak=JasperFillManager.fillReport(sourcefilename, new HashMap() ,conn);
JasperViewer viewer=new JasperViewer(cetak,false); viewer.setFitPageZoomRatio(); viewer.setVisible(true); }catch(Exception e){ e.printStackTrace(); } }
private void transaksiBTActionPerformed(java.awt.event.ActionEvent evt) {
Connection conn = DriverManager.getConnection(url,user,pwd); File file = new File("");
String sourcefilename=file.getAbsolutePath()+ "\\report\\reportTransaksi.jasper";
JasperPrint cetak=JasperFillManager.fillReport(sourcefilename, new HashMap() ,conn);
JasperViewer viewer=new JasperViewer(cetak,false); viewer.setFitPageZoomRatio(); viewer.setVisible(true); }catch(Exception e){ e.printStackTrace(); } }
Pertemuan 11
Pembuatan Menu Utama
1.
Pembuatan Menu Utama
a. Klik kanan pada AppPenjualan New JFrame Form
b. Class Name: MenuUtama & Package: penjualan
c. Finish
d. Klik kanan pada form Set Layout Absolute Layout
e. Tarik Menu Bar yang ada di Palette sebelah kanan ke Form
f. Edit text pada File menjadi Master. Change variable name menjadi masterMN
g. Edit text pada Edit menjadi Transaksi. Change variable name menjadi transaksiMN
h. Klik kanan pada menu Add Menu
i. Tambahkan menu Laporan. Change variable name menjadi laporanMN
j. Tambahkan menu Log Out. Change variable name menjadi logoutMN
k. Untuk menu Master dibuat submenu yang terdiri dari Barang dan User
l. Klik kanan pada menu Master Add Form Palette Menu Item
m. Edit text menjadi Barang, change variable name menjadi barangMN
n. Tambahkan submenu untuk User. Change variable name menjadi userMN
o. Transaksi mempunyai submenu yaitu Penjualan. Change variable name: penjualanMN
p. Laporan mempunyai submenu yaitu Form Laporan. Change variable name:
formLaporanMN
q. Klik form properties minimumSize Width: 1000, Height: 600
r. Klik kanan pada submenu Barang Events Action actionPerformed
s. Ketikkan script berikut untuk menu dan submenu:
private void barangMNActionPerformed(java.awt.event.ActionEvent evt) {
FormBarang fBarang=new FormBarang(); fBarang.setLocationRelativeTo(null); fBarang.setVisible(true);
}
private void userMNActionPerformed(java.awt.event.ActionEvent evt) {
FormUser fUser=new FormUser(); fUser.setLocationRelativeTo(null); fUser.setVisible(true);
}
private void penjualanMNActionPerformed(java.awt.event.ActionEvent evt) {
fTransaksi.setLocationRelativeTo(null); fTransaksi.setVisible(true);
}
private void formLaporanMNActionPerformed(java.awt.event.ActionEvent evt) {
FormLaporan fLaporan=new FormLaporan(); fLaporan.setLocationRelativeTo(null); fLaporan.setVisible(true);
}
t. Menu Log Out akan memanggil form Log In, karena form Log In belum dibuat, maka
buatlah form tersebut agar bisa dipanggil dalam form Menu utama.
u. Klik kanan pada AppPenjualan New JFrameForm
Class Name: FormLogIn
Package: Penjualan
v. Kembali ke form Menu utama. Klik kanan pada menu Log Out Events Menu
menuSelected
w. Ketikkan script berikut:
private void logoutMNMenuSelected(javax.swing.event.MenuEvent evt) {
this.dispose();
FormLogIn fLogIn=new FormLogIn(); fLogIn.setLocationRelativeTo(null); fLogIn.setVisible(true);
}
Pertemuan 12
Pembuatan Form Log In
1.
Pembuatan Form Log In
a. Buka FormLogIn yang sudah dibuat sebelumnya
b. Klik kanan pada form Set Layout Absolute Layout
c. Ketikkan script berikut:
package Penjualan;
import java.sql.*;
import javax.swing.JOptionPane;
public class FormLogIn extends javax.swing.JFrame {
String user="root"; String pwd="password";
String url="jdbc:mysql://localhost/12061479_penjualan";
/** Creates new form FormLogIn */ public FormLogIn() { initComponents(); } void bersih(){ kodeTF.setText(""); passwordTF.setText(""); }
private void logInBTActionPerformed(java.awt.event.ActionEvent evt){
try{
Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement();
ResultSet rs = st.executeQuery("select * from User where KodeUser='"+kodeTF.getText().trim()+"' and
Password='"+passwordTF.getText().trim()+"'"); if(rs.next()){
String nama=rs.getString("NamaUser");
JOptionPane.showMessageDialog(this, "Selamat datang, "+nama+"","Welcome",JOptionPane.INFORMATION_MESSAGE);
MenuUtama menu=new MenuUtama(); menu.setLocationRelativeTo(null); menu.setVisible(true);
}else{
JOptionPane.showMessageDialog(this, "User tidak ditemukan","Informasi",JOptionPane.INFORMATION_MESSAGE);
}
}catch(SQLException e){
System.out.println("Koneksi Gagal"+ e.toString()); }
}
private void formWindowActivated(java.awt.event.WindowEvent evt) {
bersih();