Anda di halaman 1dari 48

Modul Pemrograman Berorientasi Objek II [D.

III]

1
















Disusun Oleh:
Tim Penyusun Modul Pemrograman Berorientasi Objek II [D.III]


Akademi Manajemen Informatika & Komputer
Bina Sarana Informatika
Jakarta
2013
Modul Pemrograman Berorientasi Objek II [D.III]

2

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 ke depan.

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.

Jakarta, Juli 2013



Penulis






Modul Pemrograman Berorientasi Objek II [D.III]

3

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

DAFTAR PUSTAKA















Modul Pemrograman Berorientasi Objek II [D.III]

4

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.
Modul Pemrograman Berorientasi Objek II [D.III]

5

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







Modul Pemrograman Berorientasi Objek II [D.III]

6

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






Modul Pemrograman Berorientasi Objek II [D.III]

7

c. Tabel : Transaksi
Field Type Length Keterangan
NoTrans Varchar 10 Primary Key
Tanggal Date
Total Double

d. Tabel : Sementara























Field Type Length Keterangan
KodeBarang Varchar 5 Foreign Key
NamaBarang Varchar 20
Harga Double
Qty Int
Subtotal Double
Modul Pemrograman Berorientasi Objek II [D.III]

8

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


Modul Pemrograman Berorientasi Objek II [D.III]

9

f. Klik kanan pada AppPenjualan pada window Projects  New  JFrameForm

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:










Modul Pemrograman Berorientasi Objek II [D.III]

10














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";
Modul Pemrograman Berorientasi Objek II [D.III]

11

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()+"')"
Modul Pemrograman Berorientasi Objek II [D.III]

12

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

void delete(){
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());
Modul Pemrograman Berorientasi Objek II [D.III]

13

}
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){
System.out.println("koneksi gagal"+e.toString());
}
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

Modul Pemrograman Berorientasi Objek II [D.III]

14

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);
}
}
Modul Pemrograman Berorientasi Objek II [D.III]

15

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
BR005 Laptop Soft Case 100000 10























Modul Pemrograman Berorientasi Objek II [D.III]

16

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
Modul Pemrograman Berorientasi Objek II [D.III]

17


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 */
Modul Pemrograman Berorientasi Objek II [D.III]

18

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);
Modul Pemrograman Berorientasi Objek II [D.III]

19

}

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()) {
Modul Pemrograman Berorientasi Objek II [D.III]

20

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) {
Modul Pemrograman Berorientasi Objek II [D.III]

21

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:
Modul Pemrograman Berorientasi Objek II [D.III]

22

Kode User Nama User Password Hak Akses
RJO Rio u4s5r6 User
RNR Retno u4s5r6 User
RYL Ratih u4s5r6 User


























Modul Pemrograman Berorientasi Objek II [D.III]

23

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
Modul Pemrograman Berorientasi Objek II [D.III]

24


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";
String url="jdbc:mysql://localhost/12061479_penjualan";
double total=0;
Modul Pemrograman Berorientasi Objek II [D.III]

25

/** 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();
String sql = "Select right(notrans,3)+1 from Transaksi";
ResultSet rs = st.executeQuery(sql);
Modul Pemrograman Berorientasi Objek II [D.III]

26

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

Modul Pemrograman Berorientasi Objek II [D.III]

27

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);
saveBT.setEnabled(false);
beliBT.setEnabled(false);
Modul Pemrograman Berorientasi Objek II [D.III]

28

}

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) {
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
total = Double.parseDouble(totalTF.getText());
Modul Pemrograman Berorientasi Objek II [D.III]

29

double bayar = Double.parseDouble(bayarTF.getText());
double kembali;
kembali=bayar-total;
kembaliTF.setText(Double.toString(kembali));
}
}



























Modul Pemrograman Berorientasi Objek II [D.III]

30

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







Modul Pemrograman Berorientasi Objek II [D.III]

31

c. Folder Name: report  Finish

d. Buka software iReport

e. Pilih Layout: Cherry  Launch Report Wizard
Modul Pemrograman Berorientasi Objek II [D.III]

32


f. Report Name: reportBarang
g. Location: C:\12061479_penjualan\AppPenjualan\report

h. Next
i. Klik New  Database JDBC Connection  Next
Modul Pemrograman Berorientasi Objek II [D.III]

33


j. Password: password jika menggunakan Apache2Triad
k. Jika menggunakan Xamp, maka password dikosongkan

l. Klik Test
m. Jika sukses, klik Save




Modul Pemrograman Berorientasi Objek II [D.III]

34

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

Modul Pemrograman Berorientasi Objek II [D.III]

35

q. Klik Next  Finish

r. Tampilan desain laporan awal yang terbentuk otomatis:







Modul Pemrograman Berorientasi Objek II [D.III]

36

s. Ubahlah tampilan laporan menjadi seperti dibawah ini:

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
w. Untuk reportUser, field password tidak ditampilkan ke dalam laporan



Modul Pemrograman Berorientasi Objek II [D.III]

37


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  rename  grandtotal  pada
properties  Calculation  Sum

Modul Pemrograman Berorientasi Objek II [D.III]

38

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.








Modul Pemrograman Berorientasi Objek II [D.III]

39

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

Modul Pemrograman Berorientasi Objek II [D.III]

40

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







Modul Pemrograman Berorientasi Objek II [D.III]

41

g. Klik form Properties  defaultCloseOperation: DISPOSE
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();
}
}



Modul Pemrograman Berorientasi Objek II [D.III]

42

private void transaksiBTActionPerformed(java.awt.event.ActionEvent evt)
{
try{
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();
}
}





















Modul Pemrograman Berorientasi Objek II [D.III]

43

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
Modul Pemrograman Berorientasi Objek II [D.III]

44

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)
{
FormTransaksi fTransaksi=new FormTransaksi();
Modul Pemrograman Berorientasi Objek II [D.III]

45

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);
}
x. This.dispose() digunakan untuk menghilangkan tampilan menu utama






Modul Pemrograman Berorientasi Objek II [D.III]

46

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()){
Modul Pemrograman Berorientasi Objek II [D.III]

47

String nama=rs.getString("NamaUser");
JOptionPane.showMessageDialog(this, "Selamat datang,
"+nama+"","Welcome",JOptionPane.INFORMATION_MESSAGE);
this.dispose();
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();
}




















Modul Pemrograman Berorientasi Objek II [D.III]

48

DAFTAR PUSTAKA

Gata, Windu, & Gata, Grace. 2013. Sukses Membangun Aplikasi Penjualan dengan Java.
Jakarta: PT. Elex Media Komputindo.

Gamaliel, Fritz. 2013. Membuat Program Akuntansi Manufaktur dengan Java & MySQL.
Jakarta: PT. Elex Media Komputindo.

Supardi, Yuniar. 2009. Belajar Semua Edisi Java2 untuk Segala Tingkat. Jakarta: PT Elex
Media Komputindo.