Post on 25-Nov-2020
19
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Travolt terletak di Jl. Keadilan Raya No.8, Rt02/ Rw03, Abadijaya,
Kec.Sukmajaya, Kota Depok, Jawa Barat 16418 merupakan salah satu perusahaan
bergerak dibidang penjualan dan jasa. Travolt dalam pelayanan selalu memberikan
pelayanan yang terbaik.
3.1.1. Sejarah Perusahaan
CV. Rumah Cetak Tombo adalah usaha bisnis yang berjalan dalam salah satu
perusahaan manufaktur yang bergerak sebagai pencetak pakaian dan sebagai induk
perusahaan dari Travolt. CV. Rumah Cetak Tombo ini berdiri sejak Juni 2015 yang
dipimpin oleh Fajar Achmad Juniardi menempatkan produknya dalam fashion yang
berharga dalam negeri dimana para pelanggannya menyukai desain santai atau
formal fashion .
Sebagai pemilik perusahaan, Fajar Achmad Juniardi mendaftarkan
perusahaan dengan NPWP : 31.199.667.2-412.000. Perusahaan yang sudah berjalan
lebih dari 2 tahun ini telah memberikan pelayanan yang baik dengan terus
berkembangnya dunia industri saat ini, CV.
20
3.1.2. Struktur Organisasi dan Fungsi
Struktur organisasi yang terdapat pada Distro Travolt dapat dilihat pada gambar
berikut :
Gambar III.1
Struktur Organisasi dan Fungsi
Fungsi dan wewenang dari struktur organisasi diatas dapat diuraikan sebagai
berikut :
1. Pemilik
Melakukan pengawasan atas jalannya perkembangan Distro Travolt.
Menerapkan dan mengesahkan kebijakan yang menyangkut Distro Travot.
Melakukan pemasaran melalui media seperti Instagram, Whatssapp, dll.
2. Bagian Keuangan
Membuat laporan penjualan
Memverifikasi Transaksi yang masuk dan keluar.
3. Bagian Gudang
Membuat perencanaan pengadaan barang.
Mengawasi dan mengontrol operasional gudang.
Melaporkan semua barang keluar masuk gudang.
21
Menyiapkan pesanan customer.
4. Admin
Menginput data penjualan tunai dan kredit
Membuat laporan persediaan barang
Menginput data barang
5. Pramuniaga
Memajang barang dengan pengelompokannya.
Melayani pembeli.
3.2. Tinjauan Kasus
Distro Travolt dalam bagian pengolahan data dalam penjualan tunai dan kredit
masih manual seperti dicatat dan bukti tanda tangan, sehingga dalam pelayanan
penjualan masih bisa terdapat salah catat nominal dan membuang lebih banyak
waktu jika ada customer memesan, nota yang disimpan akan hilang atau rusak
sehingga kurang efektif dan efisien.
Maka Distro Travolt membutuhkan program aplikasi yang dapat memberikan
kemudahan yang dimulai dari proses customer membeli, proses transaksi, proses
pelunasan, penyimpanan data, dan pembuatan laporan penjualan.
3.2.1. Proses Bisnis Sistem Berjalan
Sistem berjalan dimulai dari pelanggan datang dan mimilih barang yang ingin
dibeli atau dipesan kepada pramuniaga. Pramuniaga akan melayani barang yang
pesan pelanggan kemudian admin menerima barang yang dipilih customer. Jika tunai
pelanggan akan langsung menghadap admin untuk membayar kemudian admin akan
mencatat transaksi penjualan (nota) d customer menerima bukti transaksi dan barang,
admin membuat rekapan transaksi penjualan tunai dan barang keluar untuk
22
diserahkan kepada bagian keuangan kemudian bagian keuangan memverifikasi
semua transaksi dan laporan stok barang setelah itu bagian keuangan membuat
laporan penjualan dan pemilik toko menerima laporan penjualan dan barang.
Jika Kredit admin mencatat pengajuan kredit, jika barang yang dipesan ada
admin menerima DP dari pelanggan, kemudian admin akan melaporkan pesanan
pelanggan kebagian gudang, kemudian bagian gudang mengecek pesanan pelanggan,
jika stok barang ada bagian gudang akan menyiapkan pesanan pelanggan, jika barang
yang dipesan tidak ada maka pesanan pelanggan batal, kemudian admin
memberitahukan kepada pelanggan melalui via pengiriman atau tidak, jika pelanggan
memilih tidak memakai kurir maka bagian gudang menyerahkan barang yang
dipesan kepada admin dan admin mencatat pembayaran kredit kemudian admin
menyerahkan barang dan bukti transaksi kepada pelanggan, jika memakai kurir
bagian gudang akan memberikan barang ke kurir.
Bagian gudang menerima resi dan melaporkan barang yang keluar kemudian
bagian gudang menyerahkan resi kepada admin kemudian admin melakukan
pencatatan transaksi kredit dan mencatat laporan barang keluar, setelah itu pelanggan
menerima bukti transaksi dan barang, kemudian pelanggan dapat melakukan
pelunasan kredit, admin menerima uang pelunasan dan bukti pembayaran dari
pelanggan kemudian admin membuat bukti pelunasan kredit, bagian keuangan
menerima semua bukti transaksi kemudian bagian keuangan memverifikasi semua
transaksi dan laporan data barang setelah itu bagian keuangan membuat laporan
penjualan dan pemilik toko menerima laporan penjualan dana barang.
23
3.2.2. Activity Diagram
24
Gambar III.2
Activity Diagram Berjalan
25
3.2.3. Dokumen Masukan
Dokumen masukan merupakan proses awal dari kegiatan pengiriman barang
pada Distro Travolt. Adapun bentuk dokumen masukan tersebut adalah sebagai
berikut :
1. Nama Dokumen : Laporan Stok Barang
Fungsi : sebagai bukti transaksi
Sumber : Bagian Gudang
Tujuan : Pemilik toko
Media : Kertas
Jumlah : 1
Frekuesnsi : setiap ada barang masuk dan keluar
Bentuk : Lampiran A-01
2. Nama Dokumen : Laporan Penjualan harian
Fungsi : Sebagai bukti penjualan
Sumber : Bagian keuangan
Tujuan : Pemilik toko
Media : Kertas
Jumlah : 2 lembar
Frekuesnsi : setiap ada transaksi
Bentuk : Lampiran A-02
3.2.4. Dokumen Keluaran
Dokumen keluaran merupakan terdiri dari proses pemesanan barang, pengiriman
dan pembayaran. Adapun bentuk dokumen keluaran tersebut adalah sebagai berikut :
1. Nama Dokumen : Invoice Tunai
26
Fungsi : Sebagai bukti transaksi penjualan
Sumber : Admin
Tujuan : Pelanggan
Media : Kertas
Jumlah : 1 Lembar
Frekuesnsi : Setiap ada penjualan
Bentuk : Lampiran B-01
2. Nama Dokumen : Invoice Kredit
Fungsi : Sebagai bukti transaksi penjualan
Sumber : Admin
Tujuan : Pelanggan
Media : Kertas
Jumlah : 1
Frekuesnsi : Setiap ada penjualan
Bentuk : Lampiran B-02
3. Nama Dokumen : Resi Pengiriman Barang
Fungsi : Sebagai bukti pengiriman barang
Sumber : Bagian Gudang
Tujuan : Admin
Media : Kertas
Jumlah : 1 Lembar
Frekuesnsi : Setiap ada pengiriman barang
Bentuk : Lampiran B-03
4. Nama Dokumen : Bukti Transfer
Fungsi : Sebagai bukti transaksi pembayaran kredit
27
Sumber : Pelanggan
Tujuan : Bagian keuangan
Media : Elektronik
Jumlah : 1
Frekuesnsi : setiap ada pelunasan transaksi
Bentuk : Lampiran B-04
3.2.5. Permasalahan Pokok
Distro Travolt menjalani proses penjualan masih dicatat dengan menggunakan
excel sehingga menimbulkan berbagai masalah, sebagai berikut :
1. Manual Entry, setiap data yang ingin dicatat diketik secara manual sehingga
berisiko salah ketik, pengeditan data yang membutuhkan banyak waktu jika
terjadi perubahan dan terhapusnya data.
2. Tidak ada pemberitahuan berupa jika ada pelanggan yang telat melakukan
pelunasan penjualan kredit.
3. Jika pemilik meminta laporan penjualan dan laporan stok barang untuk
dibutuhkan kapanpun kepada bagian keuangan itu mesti mengumpulkan semua
bukti transaksi dan memverivikasi dahulu sehingga membuang waktu dan
pekerjaan menjadi kurang efisien.
3.2.6. Pemecahan Masalah
Setelah mengetahui masalah yang dihadapi oleh Distro Travolt, maka penulis
bermaksud ingin memberikan saran dengan harapan dapat membantu kelancaran
kegiatan penjualan di Distro Travolt, diantaranya dengan Sistem Informasi
Akuntansi Penjualan Tunai dan Kredit Berbasis Dekstop, maka dapat langsung untuk
28
membuat laporan dengan menggunakan sistem tersebut. Sehingga dapat tersusun rapi
dan menghemat waktu.
Berikut pemecahan masalah yang dibutuhkan:
1. Penyimpanan file output dengan menggunakan box file tidak dibutuhkan lagi
karena data sudah tersiman didatabase dalam segingga memudahkan pencarian
data mengedit, menambah dan menghapus.
2. Sistem dapat memberitahu jika ada pelanggan yang telat melakukan pelunasan
kredit.
3. Pembuatan laporan penjualan dan laporan stok barang menjadi menghemat waktu
karena aplikasi yang dibuat sudah otomatis membuatkan laporan dalam setiap
terjadi transaksi.
3.3. Analisis Kebutuhan Software
3.3.1. Analisis Kebutuhan
Berikut ini spesifikasi kebutuhan dari Aplikasi Sistem Informasi Akuntansi
Penjualan Tunai dan Kredit di Distro Travolt Depok :
A1. Admin dan Bagian Keuangan melakukan login
A2. Admin dapat mengelola data master
A.2.1. Mengelola Customer
A.2.2. Mengelola Barang
A3. Admin dapat mengelola transaksi
A.3.1. Mengelola penjualan tunai dan kredit
A4. Bagian Keuangan mengakses menu laporan
A.2.1. Mengelola master akun
A.2.2. Mengelola laporan jurnal umum, buku besar, dan neraca saldo.
29
3.3.2. Use Case Diagram
Gambar III.3
Use Case Diagram
30
Tabel III.1
Deskripsi Use Case Diagram Bagian Halaman Admin
Use Case narative Menu Utama
Tujuan
Admin dapat melakukan pengolahan data yang ada
di form custsomer, form barang, stok barang, barang
terjual dan form transaksi tunai maupun kredit.
Deskripsi
Sistem ini memungkinkan aktor untuk mengelola
sistem pencatatan penjualan tunai dan kredit dimulai
dari input data sampai terbuatnya laporan.
Skenario Utama
1. Aktor Admin
Kondisi Awal
Admin membukan dan melakukan login pada
aplikasi penjualan tunai dan kredit.
Aksi Aktor Reaksi Sistem
1. Aktor memilih tombol
form customer
Sistem akan menampilkan data customer.dan
penambahan data customer baru
2. Aktor memilih tombol
Stok barang
Sistem akan menampilkan data barang dan
penambahan data barang
3. Aktor memilih tombol
laporan persediaan barang
Sistem akan menampilkan data sisa barang yang
tersedia.
4. Aktor memilih tombol
barang terjual
Sistem akan menampilkan data barang yang terjual.
4. Aktor memilih tombol
form penjualan tunai
Sistem akan menampilkan form penjualan tunai
kemudian akan masuk kedalam laporan barang
terjual.
5. Aktor memilih tombol
form pengajuan kredit
Sistem akan menampilkan form pengajuan kredit
beserta data customer yang mau kredit.
6. Aktor memilih tombol
form pelunasan kredit
Sistem akan menampilkan form pelunasan kredit
beserta dengan data cicilan customer
Kondisi akhir Jika perintah sesuai maka sistem akan menampilkan
seperti yang diinginkan oleh aktor.
31
Tabel III.2
Deskripsi Use Case Diagram Bagian Halaman Bagian Keuangan
Use Case narative Menu Keduta
Tujuan Bagian keuangan dapat melakukan pengolahan
laporan yang ada di menu laporan.
Deskripsi Sistem ini memungkinkan aktor untuk mengelola
laporan penjulan tunai dan kredit melihat laporan
sampai mencetak.
Skenario Kedua
Aktor Bagian Keuangan
Kondisi Awal Bagian keuangan membuka dan melakukan login
pada aplikasi penjualan tunai dan kredit.
Aksi Aktor Reaksi Sistem
1. Aktor memilih tombol
master akun
Sistem akan menampilkan submenu master akun.
2. Aktor memilih tombol
laporan
Sistem akan menampilkan submenu laporan seperti
laporan penjualan tunai, laporan penjualan kredit,
laporan pelunasan kredit, laporan jurnal umum,
laporan buku besar, dan laporan neraca.
3. Kondisi akhir Jika perintah sesuai maka sistem akan menampilkan
seperti yang diinginkan oleh aktor.
32
3.3.3. Activity Diagram
Gambar III.4
Activity Diagram Halaman Menu Utama Admin.
33
Gambar III.5
Activity Diagram Halaman Utama Bagian Keuangan.
34
Gambar III.6
Activity Diagram Customer
35
Gambar III.7
Activity Diagram Barang
36
Gambar III.8
Activity Diagram Penjualan Tunai
37
Gambar III.9
Activity Diagram Pengajuan kredit
38
Gambar III. 10
Activity Diagram Pelunasan Kredit
39
Gambar III.11
Activity Diagram Master Akun
40
Gambar III.12
Activity Diagram Menu Laporan
41
Gambar III.13
Activity Diagram Laporan Barang Terjual
42
Gambar III.14
Activity Diagram Laporan Stok Barang
43
3.4. Desain
3.4.1. Entity Relationship Diagram (ERD)
Gambar III.15
Entity Relationship Diagram (ERD)
44
3.4.2. Logical Record Structure (LRS)
Gambar III.16
Logical Record Structure (LRS)
3.4.3. Spesifikasi File
1. Spesifikasi File User Login
Nama Database : dbtravolt
45
Nama File : userlogin
Tipe File : Master Data
Akses File : Random
Panjang Record : 125
Field Key : kodeUser
Tabel III.3
Spesifikasi File Tabel User Login
2. Spesifikasi File Data Customer
Nama Database : dbtravolt
Nama File : customer
Tipe File : Master Data
Akses File : Admin
Panjang Record : 255
Field Key : idCustomer
Tabel III.4
Spesifikasi File Tabel Customer
3. Spesifikasi File Data Barang
Nama Database : dbtravolt
Nama File : barang
Tipe File : Master Data
46
Akses File : Admin
Panjang Record : 192
Field Key : kodeBarang
Tabel III.5
Spesifikasi File Tabel Barang
4. Spesifikasi File Data Transaksi Tunai
Nama Database : dbtravolt
Nama File : transaksitunai
Tipe File : Transaksi
Akses File : Admin
Panjang Record : 272
Field Key : nomorTransaksiTunai
Tabel III.6
Spesifikasi File Tabel Transaksi Tunai
5. Spesifikasi File Data Transaksi Tunai Detail
Nama Database : dbtravolt
Nama File : transaksitunaidetail
47
Tipe File : Transaksi
Akses File : Admin
Panjang Record : 62
Field Key : -
Tabel III.7
Spesifikasi File Tabel Transaksi Tunai Detail
6. Spesifikasi File Data Transaksi Kredit
Nama Database : dbtravolt
Nama File : transaksikredit
Tipe File : Transaksi
Akses File : Admin
Panjang Record : 329
Field Key : nomorTransaksiKredit
Tabel III.8
Spesifikasi File Tabel Transaksi Kredit
48
7. Spesifikasi File Data Transaksi Kredit Detail
Nama Database : dbtravolt
Nama File : transaksikreditdetail
Tipe File : Transaksi
Akses File : Admin
Panjang Record : 62
Field Key : -
Tabel III.9
Spesifikasi File Tabel Transaksi Kredit Detail
8. Spesifikasi File Data Pelunasan Kredit
Nama Database : dbtravolt
Nama File : pelunasankredit
Tipe File : Transaksi
Akses File : Admin
Panjang Record : 81
Field Key : nomorPelunasanKredit
Tabel III.10
Spesifikasi File Tabel Pelunasan Kredit
49
9. Spesifikasi File Data Jurnal Umum
Nama Database : dbtravolt
Nama File : jurnalumum
Tipe File : Laporan
Akses File : Bagian Keuangan
Panjang Record : 60
Field Key : nomorBuktiTransaksi
Tabel III.11
Spesifikasi File Tabel Jurnal Umum
10. Spesifikasi File Data Jurnal Umum Detail
Nama Database : dbtravolt
Nama File : jurnalumumdetail
Tipe File : Laporan
Akses File : Bagian Keuangan
Panjang Record : 62
Field Key : -
Tabel III.12
Spesifikasi File Tabel Jurnal Umum Detail
11. Spesifikasi File Data Master Akun
Nama Database : dbtravolt
Nama File : masterakun
Tipe File : Master Data
50
Akses File : Bagian Keuangan
Panjang Record : 92
Field Key : kodeAkun
Tabel III.13
Spesifikasi File Tabel Master Akun
12. Spesifikasi File Data Keranjang Belanja
Nama Database : dbtravolt
Nama File : keranjangbelanja
Tipe File : Transaksi
Akses File : Admin
Panjang Record : 93
Field Key : kodeBarang
Tabel III.14
Spesifikasi File Tabel Keranjang Belanja
13. Spesifikasi File Data Pengiriman
Nama Database : dbtravolt
Nama File : pengiriman
Tipe File : Master Data
Akses File : Admin
Panjang Record : 121
51
Field Key : idPengiriman
Tabel III.15
Spesifikasi File Tabel Pengiriman
3.4.4. Sequence Diagram
Gambar III.17
Sequence Diagram
52
3.4.5. Deployment Diagram
Gambar III.18
Deployment Diagram
53
3.4.6. User Interface
Gambar III.19
User Interface Login
Gambar III.20
User Interface Menu Utama Admin
54
Gambar III.21
User Interface Menu Utama Bagian Keuangan
Gambar III.22
User Interface Form Customer
55
Gambar III.23
User Interface Form Barang
Gambar III.24
User Interface Form Transaksi Tunai
56
Gambar III.25
User Interface Form Transaksi Tunai
Gambar III.26
User Interface Form Transaksi Pengajuan Kredit
57
Gambar III.27
User Interface Form Transaksi Pengajuan Kredit
Gambar III.28
User Interface Form Transaksi Pelunasan Kredit
58
Gambar III.29
Bukti Transaksi Pelunasan Kredit
Gambar III.30
Laporan Stok Barang
59
Gambar III.31
Laporan Barang Terjual
60
Gambar III.32
Laporan Jurnal Umum
61
Gambar III.33
Laporan Buku Besar
62
63
Gambar III.34
Laporan Neraca Saldo
64
Gambar III.35
Laporan Penjualan Tunai
Gambar III.36
Laporan Pengajuan Kredit
65
Gambar III.37
Laporan Pelunasan Kredit
3.5. Implementasi
Implementasi dalam Sistem Informasi Akuntansi Penjualan Tunai dan Kredit
pada Distro Travolt Kota Depok ini tentunya memerlukan beberapa spesifikasi
komputer agar sistem yang telah dibuat mampu berjalan dengan baik. Spesifikasi
komputer yang mendukung dalam aplikasi berbasis dekstop ini sebagai berikut :
3.5.1. Code Generation
package travolt_app;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.awt.event.KeyEvent;
66
import java.util.HashMap;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
/**
*
* @author User
*/
public class formTransaksiTunai extends javax.swing.JFrame {
/**
* Creates new form formTransaksiTunai
*/
filter f = new filter();
koneksi kon = new koneksi();
private Object[][] dataSementara = null;
private String[] labelSementara = {"Kode Barang", "Nama Barang",
"Harga", "Jumlah Barang", "Sub Total"};
public Date date = new Date();
public SimpleDateFormat noFormat = new SimpleDateFormat("dd-MM-
yyyy");
public SimpleDateFormat noformatTransaksi = new
SimpleDateFormat("yyMMdd");
67
public String kodeUser;
public String kodeBarang;
public String namaBarang;
public String stok;
public String hargaBarang;
public String subTotal;
public String idPengiriman;
public String kota;
public String kecamatan;
public String hargaOngkir;
public String metodePembayaran;
public int totalPenjualan;
public formTransaksiTunai() {
initComponents();
kon.setKoneksi();
setTanggal();
hapusTabelKeranjangBelanja();
lTotal.setText(Integer.toString(0));
}
68
void setTanggal() {
java.util.Date tanggalSekarang = new java.util.Date();
java.text.SimpleDateFormat a = new
java.text.SimpleDateFormat("yyyy-MM-dd");
tfTanggal.setText(a.format(tanggalSekarang));
}
public String nomorTransaksiOtomatis() {
String urutan = null;
try {
kon.rs = kon.st.executeQuery("SELECT
RIGHT(nomorTransaksiTunai,3)+1 FROM transaksitunai AS
nomorTransaksiTunai ORDER BY nomorTransaksiTunai DESC");
if (kon.rs.next()) {
urutan = kon.rs.getString(1);
while (urutan.length() < 3) {
urutan = "0" + urutan;
}
urutan = "TN-" + noformatTransaksi.format(date) + urutan;
} else {
urutan = "TN-" + noformatTransaksi.format(date) + "001";
}
tfNomorTransaksi.setText(urutan);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
69
}
return urutan;
}
private void tampilTabelKeranjangBelanja() {
try {
String sql = "SELECT * FROM keranjangbelanja ORDER BY
kodeBarang";
kon.rs = kon.st.executeQuery(sql);
ResultSetMetaData m = kon.rs.getMetaData();
int kolom = m.getColumnCount();
int baris = 0;
while (kon.rs.next()) {
baris = kon.rs.getRow();
}
dataSementara = new Object[baris][kolom];
int x = 0;
kon.rs.beforeFirst();
while (kon.rs.next()) {
dataSementara[x][0] = kon.rs.getString("kodeBarang");
dataSementara[x][1] = kon.rs.getString("nama");
dataSementara[x][2] = kon.rs.getString("harga");
dataSementara[x][3] = kon.rs.getString("jumlah");
dataSementara[x][4] = kon.rs.getString("subTotal");
70
x++;
}
jTable1.setModel(new DefaultTableModel(dataSementara,
labelSementara));
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
private void simpanKeranjangBelanja() {
try {
String sql = "INSERT INTO keranjangbelanja VALUES('"
+ kodeBarang + "','"
+ namaBarang + "','"
+ hargaBarang + "','"
+ tfJumlah.getText() + "','"
+ subTotal + "')";
kon.st.executeUpdate(sql);
tampilTabelKeranjangBelanja();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
71
}
private void hapusIsiKeranjangBelanja() {
int row = jTable1.getSelectedRow();
int subTotal2;
int total = Integer.parseInt(lTotal.getText());
subTotal2 = Integer.parseInt((String) jTable1.getValueAt(row, 4));
total = total - subTotal2;
lTotal.setText(Integer.toString(total));
try {
String sql = "DELETE FROM keranjangbelanja WHERE
kodeBarang = '" + (String) jTable1.getValueAt(row, 0) + "'";
kon.st.executeUpdate(sql);
tampilTabelKeranjangBelanja();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
private void simpanTransaksi() {
try {
String sql = "INSERT INTO transaksitunai VALUES('"
+ tfNomorTransaksi.getText() + "','"
+ tfTanggal.getText() + "','"
72
+ lKodeUser.getText() + "','"
+ idPengiriman + "','"
+ tfAlamat.getText() + "','"
+ tfBiayaPengiriman.getText() + "','"
+ lTotal.getText() + "','"
+ metodePembayaran + "')";
kon.st.executeUpdate(sql);
simpanTransaksiDetail();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error Simpan Transaksi
Tunai : " + e);
}
}
private void simpanTransaksiDetail() {
try {
String detail = "INSERT transaksitunaidetail SELECT '" +
tfNomorTransaksi.getText() + "', "
+ "kodeBarang,jumlah,subTotal FROM keranjangbelanja";
kon.st.executeUpdate(detail);
simpanJurnalUmum();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error Simpan Transaksi
Tunai Detail : " + e);
}
73
}
private void simpanJurnalUmum() {
jurnal ju = new jurnal();
try {
//Simpan Jurnal Umum
ju.setNomorBuktiTransaksi(tfNomorTransaksi.getText());
ju.setTanggal(tfTanggal.getText());
ju.setKeterangan("Penjualan Tunai");
ju.simpanJurnalUmum();
try {
if (jRadioButton1.isSelected()) {
//Simpan Kas
ju.setKodeAkun("1-1100");
ju.setDebit(lTotal.getText());
ju.setKredit("0");
ju.simpanJurnalDetail();
updateSaldoKas();
} else if (jRadioButton2.isSelected()) {
//Simpan Bank
ju.setKodeAkun("1-1200");
ju.setDebit(lTotal.getText());
ju.setKredit("0");
ju.simpanJurnalDetail();
74
updateSaldoBank();
}
try {
//Simpan Biaya Angkut Penjualan
if (idPengiriman != "0") {
ju.setKodeAkun("4-2000");
ju.setDebit("0");
ju.setKredit(tfBiayaPengiriman.getText());
ju.simpanJurnalDetail();
updateSaldoBiayaAngkut();
}
try {
//Simpan Penjualan
int total, biayaPengiriman;
total = Integer.parseInt(lTotal.getText());
biayaPengiriman =
Integer.parseInt(tfBiayaPengiriman.getText());
totalPenjualan = total - biayaPengiriman;
ju.setKodeAkun("4-1000");
ju.setDebit("0");
ju.setKredit(Integer.toString(totalPenjualan));
ju.simpanJurnalDetail();
75
updateSaldoPenjualan();
//End of Jurnal~~~~~~~
JOptionPane.showMessageDialog(this, "Data Berhasil
Disimpan", "Informasi", JOptionPane.INFORMATION_MESSAGE);
updateStokBarang();
cetakStruk();
hapusTabelKeranjangBelanja();
tampilTabelKeranjangBelanja();
tfBayar.setEnabled(false);
namaBarang = null;
hargaBarang = null;
tfNama.setText("");
tfHarga.setText("");
tfJumlah.setText("");
idPengiriman = null;
kota = null;
kecamatan = null;
hargaOngkir = null;
tfAlamat.setText("");
lTotal.setText(Integer.toString(0));
//tfBiayaPengiriman.setText("0");
76
tfBayar.setText("");
tfKembali.setText("");
tfBayar.setEnabled(true);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error Simpan
Penjualan: " + e);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error Simpan Biaya
Angkut Penjualan : " + e);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error Simpan Kas/Bank :
" + e);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error Simpan Jurnal Umum
: " + e);
}
}
77
private void updateSaldoKas() {
try {
String masterakun = "UPDATE masterakun set debit = debit + '" +
lTotal.getText() + "' WHERE kodeAkun = '1-1100' ";
kon.st.executeUpdate(masterakun);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
private void updateSaldoBank() {
try {
String masterakun = "UPDATE masterakun set debit = debit + '" +
lTotal.getText() + "' WHERE kodeAkun = '1-1200' ";
kon.st.executeUpdate(masterakun);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
private void updateSaldoBiayaAngkut() {
try {
String masterakun = "UPDATE masterakun set kredit = kredit + '" +
tfBiayaPengiriman.getText() + "' WHERE kodeAkun = '4-2000' ";
78
kon.st.executeUpdate(masterakun);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
private void updateSaldoPenjualan() {
try {
String masterakun = "UPDATE masterakun set kredit = kredit + '" +
totalPenjualan + "' WHERE kodeAkun = '4-1000' ";
kon.st.executeUpdate(masterakun);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
private void updateStokBarang() {
try {
String detail = "UPDATE `barang` t1 INNER JOIN
`keranjangbelanja` t2 ON (t2.kodeBarang=t1.kodeBarang) SET t1.stok = t1.stok -
t2.jumlah";
kon.st.executeUpdate(detail);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
79
}
private void hapusTabelKeranjangBelanja() {
try {
String sql = "DELETE FROM keranjangbelanja";
kon.st.executeUpdate(sql);
tampilTabelKeranjangBelanja();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
private void cetakStruk() {
try {
String file = "src/travolt_app/strukTunai.jasper";
HashMap parameter = new HashMap();
parameter.put("nomorTransaksiTunai",
tfNomorTransaksi.getText());
parameter.put("bayar", Integer.parseInt(tfBayar.getText()));
parameter.put("kembali", Integer.parseInt(tfKembali.getText()));
JasperPrint print = JasperFillManager.fillReport(file, parameter,
kon.setKoneksi());
JasperViewer.viewReport(print, false);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
80
}
}
private void hitungTotal() {
int total, biayaPengiriman;
total = Integer.parseInt(lTotal.getText());
biayaPengiriman = Integer.parseInt(tfBiayaPengiriman.getText());
total = total + biayaPengiriman;
lTotal.setText(Integer.toString(total));
}
private void btBarangActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_btBarangActionPerformed
boolean closeable = true;
dataBarang dataBarang = new dataBarang(null, closeable);
dataBarang.formTransaksiTunai = this;
dataBarang.setVisible(true);
dataBarang.setResizable(true);
}//GEN-LAST:event_btBarangActionPerformed
private void btBatalActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_btBatalActionPerformed
hapusTabelKeranjangBelanja();
dispose();
}//GEN-LAST:event_btBatalActionPerformed
81
private void formWindowActivated(java.awt.event.WindowEvent evt)
{//GEN-FIRST:event_formWindowActivated
nomorTransaksiOtomatis();
lKodeUser.setText(kodeUser);
tfNama.setText(namaBarang);
tfHarga.setText(hargaBarang);
tampilTabelKeranjangBelanja();
tfKota.setText(kota);
tfKecamatan.setText(kecamatan);
if (idPengiriman != null) {
tfBiayaPengiriman.setText(hargaOngkir);
} else {
tfBiayaPengiriman.setText("0");
}
//tfBayar.setEnabled(false);
}//GEN-LAST:event_formWindowActivated
private void tfJumlahActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_tfJumlahActionPerformed
try {
int harga, jumlah, total;
harga = Integer.parseInt(tfHarga.getText());
jumlah = Integer.parseInt(tfJumlah.getText());
82
int stokBarangSaatIni;
String sql = "SELECT * FROM barang WHERE kodeBarang = '" +
kodeBarang + "' ";
kon.rs = kon.st.executeQuery(sql);
if (kon.rs.next()) {
stokBarangSaatIni = kon.rs.getInt("stok");
if (jumlah > stokBarangSaatIni) {
JOptionPane.showMessageDialog(null, "Stok Barang Tidak
Cukup");
} else {
total = harga * jumlah;
subTotal = Integer.toString(total);
simpanKeranjangBelanja();
tampilTabelKeranjangBelanja();
int ttl = 0;
for (int a = 0; a < jTable1.getRowCount(); a++) {
int sub = Integer.parseInt((String) jTable1.getValueAt(a, 4));
ttl += sub;
}
lTotal.setText(Integer.toString(ttl));
tfJumlah.setText("");
83
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error : " + e);
}
/*namaBarang = null;
hargaBarang = null;
tfNama.setText("");
tfHarga.setText("");
*/
}//GEN-LAST:event_tfJumlahActionPerformed
private void jTable1KeyPressed(java.awt.event.KeyEvent evt) {//GEN-
FIRST:event_jTable1KeyPressed
if (evt.getKeyCode() == KeyEvent.VK_BACK_SPACE) {
hapusIsiKeranjangBelanja();
}
}//GEN-LAST:event_jTable1KeyPressed
private void btSimpanActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_btSimpanActionPerformed
//Cek Metode Pembayaran
if (jRadioButton1.isSelected()) {
metodePembayaran = "Cash";
84
} else if (jRadioButton2.isSelected()) {
metodePembayaran = "Bank";
}
//Cek ID Pengiriman
if (idPengiriman == null) {
idPengiriman = "0";
}
//Validasi
if (namaBarang == null) {
JOptionPane.showMessageDialog(null, "Silahkan Pilih Barang");
} else if (tfKembali.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Silahkan Isi Uang Bayar");
} else {
simpanTransaksi();
}
}//GEN-LAST:event_btSimpanActionPerformed
private void tfBayarActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_tfBayarActionPerformed
int total, bayar, kembali;
total = Integer.parseInt(lTotal.getText());
bayar = Integer.parseInt(tfBayar.getText());
if (bayar < total) {
85
JOptionPane.showMessageDialog(null, "Silahkan isi uang bayar
sesuai Total Harga");
} else {
kembali = bayar - total;
tfKembali.setText(Integer.toString(kembali));
tfBayar.setEnabled(false);
}
}//GEN-LAST:event_tfBayarActionPerformed
private void btKotaActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_btKotaActionPerformed
boolean closeable = true;
formPengiriman formPengiriman = new formPengiriman(null,
closeable);
formPengiriman.formTransaksiTunai = this;
formPengiriman.setVisible(true);
formPengiriman.setResizable(true);
}//GEN-LAST:event_btKotaActionPerformed
private void jTable1MouseClicked(java.awt.event.MouseEvent evt)
{//GEN-FIRST:event_jTable1MouseClicked
// TODO add your handling code here:
}//GEN-LAST:event_jTable1MouseClicked
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_jButton1ActionPerformed
86
hapusTabelKeranjangBelanja();
lTotal.setText(Integer.toString(0));
}//GEN-LAST:event_jButton1ActionPerformed
private void
tfBiayaPengirimanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_tfBiayaPengirimanActionPerformed
int total, biayaPengiriman;
total = Integer.parseInt(lTotal.getText());
biayaPengiriman = Integer.parseInt(tfBiayaPengiriman.getText());
total = total + biayaPengiriman;
lTotal.setText(Integer.toString(total));
tfBayar.setEnabled(true);
tfBayar.requestFocus();
}//GEN-LAST:event_tfBiayaPengirimanActionPerformed
private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent
evt) {//GEN-FIRST:event_jRadioButton1ActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_jRadioButton1ActionPerformed
private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent
evt) {//GEN-FIRST:event_jRadioButton2ActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_jRadioButton2ActionPerformed
private void tfJumlahKeyTyped(java.awt.event.KeyEvent evt) {//GEN-
FIRST:event_tfJumlahKeyTyped
f.angka(evt);
87
}//GEN-LAST:event_tfJumlahKeyTyped
private void tfBayarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-
FIRST:event_tfBayarKeyTyped
f.angka(evt);
}//GEN-LAST:event_tfBayarKeyTyped
3.5.2. Blackbox Testing
Tabel III.16
Hasil Pengujian Black Box Testing Form Login
No. Skenario
Pengujian Test Case
Hasil yang
Diharapkan
Hasil
Pengujian Kesimpulan
1
Kode User
dan Password
tidak sesuai
dengan
database
Kode User : K-
02 (benar)
Password:
qwerty (salah)
Sistem
menampilkan
pesan "Login
Gagal"
kemudian
kembali ke
halaman
login.
Sesuai
Harapan Valid
2
Kode User
dan Password
sesuai dengan
database
Kode User : K-
01 (benar)
Password: a
(benar)
Sistem
menampilkan
pesan "Login
Berhasil"
kemudian
sistem
menampilkan
menu utama
sesuai dengan
hak akses.
Sesuai
Harapan Valid
88
Tabel III.17
Hasil Pengujian Black Box Testing Form Customer
No. Skenario
Pengujian Test Case
Hasil yang
Diharapkan
Hasil
Pengujian Kesimpulan
1
Mengosongkan
data lalu
menekan
tombol simpan
Nama
Customer:
(kosong)
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan "Data
tidak boleh
kosong"
Sesuai
Harapan Valid
2
Mengisi nama
customer
menggunakan
angka
Nama
Customer:
12345
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan "Error,
tidak bisa
diinput
menggunakan
angka"
Sesuai
Harapan Valid
3
Mengisi nomor
HP dan nomor
KTP
menggunakan
huruf
Nomor KTP:
abc
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan "Error,
tidak bisa
diinput
menggunakan
huruf"
Sesuai
Harapan Valid
4
Mengisi semua
data dengan
lengkap dan
benar
Field: (Terisi
Semua)
Sistem
menampilkan
pesan "Data
Berhasil
Disimpan"
Sesuai
Harapan Valid
89
Tabel III.18
Hasil Pengujian Black Box Testing Form Akun
No. Skenario
Pengujian Test Case
Hasil yang
Diharapkan
Hasil
Pengujian Kesimpulan
1
Mengosongkan
data lalu
menekan
tombol simpan
Nomor Akun:
(kosong)
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan "Data
tidak boleh
kosong"
Sesuai
Harapan Valid
2
Mengisi nomor
akun atau
saldo akun
menggunakan
huruf
Nomor Akun:
abcd
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan "Error,
tidak bisa
diinput
menggunakan
huruf"
Sesuai
Harapan Valid
3
Mengisi nomor
nama akun
menggunakan
angka
Nama Akun:
123
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan "Error,
tidak bisa
diinput
menggunakan
angka"
Sesuai
Harapan Valid
4
Mengisi semua
data dengan
lengkap dan
benar
Field: (Terisi
Semua)
Sistem
menampilkan
pesan "Data
Berhasil
Disimpan"
Sesuai
Harapan Valid
90
Tabel III.19
Hasil Pengujian Black Box Testing Form Pengajuan Kredit
No. Skenario
Pengujian Test Case
Hasil yang
Diharapkan
Hasil
Pengujian Kesimpulan
1
Mengosongkan
data lalu
menekan
tombol simpan
Nama Barang:
(kosong)
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan "Data
tidak boleh
kosong"
Sesuai
Harapan Valid
2
Mengisi uang
bayar
menggunakan
huruf
Uang Bayar:
abcd
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan "Error,
tidak bisa
diinput
menggunakan
huruf"
Sesuai
Harapan Valid
3
Mengisi
jumlah barang
yang dibeli
oleh customer
lebih besar dari
stok barang
Jumlah beli:
100 (Stok 20)
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan "Stok
barang tidak
cukup"
Sesuai
Harapan Valid
4
Mengisi
jumlah barang
yang dibeli
oleh customer
kurang dari 1
lusin barang
yang sama
Jumlah beli:
10
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan
"Minimal
Pembelian 12
Barang yang
Sama"
Sesuai
Harapan Valid
5
Mengisi uang
bayar lebih
sedikti dari DP
Uang Bayar:
800.000 (DP:
1.000.000)
Sistem
menolak
proses
transaksi
Sesuai
Harapan Valid
91
kemudian
menampilkan
pesan
"Silahkan isi
uang bayar
sesuai DP"
6
Mengisi semua
data dengan
lengkap dan
benar
Field: (Terisi
Semua)
Sistem
menampilkan
pesan "Data
Berhasil
Disimpan"
Sesuai
Harapan Valid
Tabel III.20
Hasil Pengujian Black Box Testing Form Penjualan Tunai
No. Skenario
Pengujian Test Case
Hasil yang
Diharapkan
Hasil
Pengujian Kesimpulan
1
Mengosongkan
data lalu
menekan
tombol simpan
Nama Barang:
(kosong)
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan "Data
tidak boleh
kosong"
Sesuai
Harapan Valid
2
Mengisi uang
bayar
menggunakan
huruf
Uang Bayar:
abcd
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan "Error,
tidak bisa
diinput
menggunakan
huruf"
Sesuai
Harapan Valid
3
Mengisi
jumlah barang
yang dibeli
oleh customer
lebih besar dari
stok barang
Jumlah beli: 5
(Stok 2)
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan "Stok
barang tidak
cukup"
Sesuai
Harapan Valid
4 Mengisi uang
bayar lebih
Uang Bayar:
50.000 (Total:
Sistem
menolak
Sesuai
Harapan Valid
92
sedikti dari
Total
100.000) proses
transaksi
kemudian
menampilkan
pesan
"Silahkan isi
uang bayar
sesuai total
harga"
5
Mengisi semua
data dengan
lengkap dan
benar
Field: (Terisi
Semua)
Sistem
menampilkan
pesan "Data
Berhasil
Disimpan"
Sesuai
Harapan Valid
Tabel III.21
Hasil Pengujian Black Box Testing Form Pelunasan Kredit
No. Skenario
Pengujian Test Case
Hasil yang
Diharapkan
Hasil
Pengujian Kesimpulan
1
Mengosongkan
data lalu
menekan
tombol simpan
Nama Barang:
(kosong)
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan "Data
tidak boleh
kosong"
Sesuai
Harapan Valid
2
Mengisi stok
dan harga
barang
menggunakan
huruf
Harga barang:
abc
Sistem
menolak
proses
transaksi
kemudian
menampilkan
pesan "Error,
tidak bisa
diinput
menggunakan
huruf"
Sesuai
Harapan Valid
3
Mengisi semua
data dengan
lengkap dan
benar
Field: (Terisi
Semua)
Sistem
menampilkan
pesan "Data
Berhasil
Disimpan"
Sesuai
Harapan Valid
93
3.5.3. Spesifikasi Hardware dan Software
Spesifikasi perangkat keras dan perangkat lunak yang diusulkan penulis sebagai
berikut :
Tabel III.22
Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Windows 7
Processor Intel(R) Core(TM) i3
RAM 2 GB
Monitor 14"
Software
Java jdk1.8.0, XAMPP, Web
Browser