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

d3 Bsi Modul Pbo2

  • Upload
    hendy-

  • View
    166

  • Download
    38

Embed Size (px)

DESCRIPTION

Java netbean

Citation preview

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.