• Tidak ada hasil yang ditemukan

Modul Pemrograman Berorientasi Objek II [D.III] Disusun Oleh: Dinda Ayu Muthia

N/A
N/A
Protected

Academic year: 2021

Membagikan "Modul Pemrograman Berorientasi Objek II [D.III] Disusun Oleh: Dinda Ayu Muthia"

Copied!
47
0
0

Teks penuh

(1)

Disusun Oleh:

Dinda Ayu Muthia

Akademi Manajemen Informatika & Komputer

Bina Sarana Informatika

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

(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

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

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

(5)

d. Penggajian

e. Peminjaman – pengembalian

f. Penerimaan karyawan

g. Absensi pegawai

h. Persedian barang

i. kunjungan pasien

j. perpustakaan

(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

c. Tabel

: Transaksi

Field

Type

Length Keterangan

NoTrans Varchar 10

Primary Key

Tanggal

Date

(7)

d. Tabel

: Sementara

Field

Type

Length Keterangan

KodeBarang

Varchar 5

Foreign Key

NamaBarang Varchar 20

Harga

Double

Qty

Int

(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

(9)

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:

(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";

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

(11)

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

(12)

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

(13)

}

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

(14)

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

(15)

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

(16)

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;

(17)

/** 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()); }

(18)

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;

(19)

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

}

(20)

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

(21)

i. Isikan data berikut:

Kode User Nama User Password Hak Akses

RJO

Rio

u4s5r6

User

RNR

Retno

u4s5r6

User

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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

(28)

total = Double.parseDouble(totalTF.getText());

double bayar = Double.parseDouble(bayarTF.getText()); double kembali;

kembali=bayar-total;

kembaliTF.setText(Double.toString(kembali)); }

(29)

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

(30)

d. Buka software iReport

(31)

f. Report Name: reportBarang

g. Location: C:\12061479_penjualan\AppPenjualan\report

h. Next

(32)

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

(33)

o. Drag and drop table barang ke kotak abu-abu sebelah kanan  OK  Next

p. Klik tombol >> untuk memindahkan field  Next

(34)

r. Tampilan desain laporan awal yang terbentuk otomatis:

(35)

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

(36)

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

(37)

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.

(38)

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.

(39)

d. Klik Open

e. Buat form baru dengan nama FormLaporan

f. Finish

(40)

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

(41)

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

(42)

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

(43)

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

(44)

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

}

(45)

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

(46)

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

(47)

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.

Referensi

Dokumen terkait

Dari tabel 7 dan 8 diatas dapat dikatakan bahwa pada setiap proses assembly untuk semua bagian konstruksi kapal, tenaga kerja organik PT PAL mempunyai jo/CGT

Berdasarkan permasalahan diatas, penelitian ini bertujuan untuk merekomendasikan sistem aplikasi pembayaran tagihan listrik berbasis web dengan harapan mampu

Sesuai dengan proposal yang diajukan oleh lembaga, kami siap untuk menjadi menyelenggarakan program Pendidikan Kewirausahaan Masyarakat dan menggunakan dana bantuan penyelenggaraan

dalam mempersentasikannya Kriteria penilaian yang dirumuskan oleh UUI - Kehadiran - UTS - UAS - Tugas/Quiz - Etika Absensi Nilai Nilai Nilai Prilaku, dsb 10 % 25 %

Dengan demikian, Blue Ocean Strategy (BOS) atau strategi Blue Ocean merupakan serangkaian strategi bisnis untuk menciptakan pangsa pasar baru tanpa harus menjadi

Disaster Recovery Center (DRC) – fasilitas pengganti pada saat Pusat Data (Data Center) mengalami gangguan atau tidak dapat berfungsi antara lain karena tidak adanya

Berdasarkan data yang diolah menggunakan alat perhitungan diketahui bahwa prediksi penggunaan KB di Kecamatan Kemiling selama lima tahun kedepan (2008-2012) untuk penggunaan

Tujuan dari penelitian ini adalah untuk mengetahui perbedaan hasil belajar pada materi hidrokarbon antara siswa yang diberi pembelajaran menggunakan model