bab iii pembahasan - repository.bsi.ac.id...pekerjaan untuk semua bagian. 34 c. mengacc gaji...
Post on 08-Nov-2020
0 Views
Preview:
TRANSCRIPT
31
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Tinjauan perusahaan ini berisi tentang sejarah perusahaan, visi misi, struktur
organisasi serta fungsi dari masing-masing bagian yang ada dalam perusahaan tersebut.
Selain itu juga akan membahas mengenai permasalahan yang terjadi dan sistem
organisasi yang berjalan.
3.1.1. Sejarah Perusahaan
PT. Fakta Jabar Mediatama lahir sebagai perusahan media yang pada mulanya
menyajikan media cetak dan online sebagai bisnis utama. Dalam kurun waktu kurang
dari satu tahun telah melahirkan media cetak lokal di beberapa daerah di Jawa Barat,
seperti : Fakta Bekasi, Fakta Purwakarta, Fakta Subang, Fakta Garut, Fakta Tasik, Fakta
Ciamis, Fakta Banjar dan Fakta Bandung. Telah menempatkan Fakta Jabar Mediatama
sebagai salah satu jaringan media cetak terbesar di Jawa Barat.
Pertumbuhan bisnis yang kian pesat diwilayah karawang, Bekasi, Bandung dan
sekitarnya, serta kepercayaan publik yang semakin menguat kepada perusahaan kami,
menuntut PT. Fakta Jabar Mediatama yang lahir sejak 26 November 2012 Fakta Jabar
telah memperluas usahanya yakni dalam bidang jasa konsultan, event organizer (EO),
advertising serta beberapa bidang lainnya.
Dengan demikian, dengan hadirnya PT. Fakta Jabar Mediatama dapat menjadi One Stop
Service yang terpercaya untuk dapat melayani berbagai kebutuhan pelaku usaha,
pemerintah maupun elemen lainnya.
32
Visi :
PT. Fakta Jabar Mediatama menjadi perusahaan media, adversiting, event
organizer dan konsultan yang terpercaya, progresif dan terkuat di Jawa Barat.
Misi :
Menyajikan pelayanan terpadu untuk event organizer, adversiting, promosi
produk, media cetak dan penyajian informasi publik lainnya. Membangun sinergitas
produktif anatara masyarakat, pemerintah dan instansi bisnis.
3.1.2. Struktur Organisasi Perusahaan dan Fungsi
A. Struktur Organisasi
Sumber: PT. Fakta Jabar Mediatama
Gambar III.1
Struktur Organisasi
33
B. Fungsi dan Jabatan dari Struktur Organisasi
Untuk lebih jelasnya tugas, wewenang, serta tanggung jawab maupun fungsinya
diuraikan sebagai berikut :
1. CEO
Bertugas memimpin perusahaan dengan menerbitkan kebijakan-kebijakan
perusahaan, menetapkan, mengawasi, juga bertugas menyetujui anggaran tahunan
perusahaan.
2. Pimpinan Redaksi
a. Menentukan layak tidaknya suatu berita, foto, dan desain untuk sebuah
penerbitan.
b. Mengadakan koordinasi dengan bagian lain seperti Pemimpin Perusahaan untuk
mensinergikan jalannya roda perusahaan.
c. Menjalin lobi-lobi dengan nara sumber penting di pemerintahan, dunia usaha,
dan berbagai instansi.
d. Bertanggung jawab terhadap pihak lain, yang karena merasa dirugikan atas
pemberitaan yang telah dimuat, sehingga pihak lain melakukan somasi, tuntutan
hukum, atau menggugat ke pengadilan. Sesuai aturan, tanggung jawab oleh
Pemimpin Redaksi bila dilimpahkan kepada pihak lain yang dianggap melakukan
kesalahan tersebut.
3. Personalia
a. Menjadi penghubung antara karyawan dengan perusahaan .
b. Menjaga strutur kerja dengan memperbaharui persyaratan kerja dan deskripsi
pekerjaan untuk semua bagian.
34
c. MengACC gaji karyawan.
4. Redaktur
a. Bertanggung jawab terhadap mekanisme kerja redaksi sehari-hari.
b. Memimpin rapat perencanaan, rapat cecking, dan rapat terakhir sidang redaksi.
c. Membuat perencanaan isi untuk setiap penerbitan.
d. Bertanggung jawab terhadap isi redaksi penerbitan dan foto.
e. Mengkoordinasi kerja para redaktur atau penanggungjawab rubrik/desk.
f. Mengkoordinasikan alur perjalanan naskah dari para redaktur ke bagian setting
atau lay out.
g. Mengkoordinator alur perjalanan naskah dari bagian setting atau lay out ke
percetakan
h. Mewakili Pemred dalam berbagai acara baik ditugaskan atau acara mendadak.
5. Koor Liputan
a. Memantau dan mengagendakan jadwal berbagai acara: seminar, press
conference, acara DPR dll.
b. Membuat mekanisme kerja komunikasi antara redaktur dan reporter.
c. Memberikan lembar penugasan kepada reporter/wartawan dan fotografer.
d. Mengadministrasikan tugas-tugas yang diberikan kepada setiap reporter.
e. Memantau tugas-tugas harian para wartawan/reporter.
f. Melakukan komunikasi setiap saat kepada para redaktur, reporter/wartawan, dan
fotografer.
g. Memberikan penilaian kepada reporter/wartawan secara kuantitas maupun
kualitas.
35
h. Mengarahkan dan membina reporter dalam mencari berita dan mengejar sumber
berita.
6. Reporter
a. Mencari dan mewawancarai sumber berita yang ditugaskan redaktur atau atasan.
b. Menulis hasil wawancara, investasi, laporan kepada redaktur atau atasannya.
c. Memberikan usulan berita kepada redaktur atau atasannya terhadap suatu
informasi yang dianggap penting untuk diterbitkan.
d. Membina dan menjalin lobi dengan sumber-sumber penting di berbagai instansi.
e. Menghadiri acara press conferensi yang ditunjuk redaktur, atasannya, atau atas
inisiatif sendiri.
7. Keuangan
a. Mencatat pengeluaran dan pemasukan perusahaan .
b. Mencatat absendi pegawai.
c. Melaporkan gaji karyawan keapda personalia.
3.2. Tinjaun Kasus
3.2.1. Proses Bisnis Sistem Berjalan
Proses bisnis sistem berjalan pendapatan jasa pada PT Fakta Jabar Mediatama
adalah sebagai berikut :
1. Prosedur Pengajuan jasa
Pada PT. Fakta Jabar Mediatama memiliki 3 jenis jasa yaitu, jasa pembuatan iklan
(adversiting), jasa EO (Event Organizer), dan jasa consultan. Dari semua jasa
tersebut permintaan pengajuan jasa dapat dilakukan dengan cara Customer
menghubungi PIC masing-masing jasa atau customer dapat langsung datang ke
36
kantor untuk mengajukan pembuatan jasa, lalu PIC akan menawarkan berbagai
macam jenis jasa beserta dengan harganya. Jika sudah sepakat maka customer dapat
mengisi formulir permintaan jasa dan melakukan pembayaran uang muka.
Kemudian PIC akan memproses permintaan pengajuan jasa sesuai dengan formulir
permintaan jasa. Lalu PIC akan memvalidasi bukti penyelesaian jasa kepada bagian
keuangan untuk dibuatkan invoice, dan kwitansi nota kosong yang sudah di stempel
tiga rangkap warna kuning, biru dan putih.
2. Prosedur Pembayaran
Bagian PIC akan membawa bukti penyelesaian jasa dan data invoice yang telah
dibuatkan oleh bagian keuangan kepada customer, lalu customer melakukan
pelunasan kepada PIC dan menandatangani nota yang diberikan. Kemudian PIC
akan membuatkan nota sebanyak 3 rangkap yaitu warna putih untuk diberikan
kepada customer, warna biru untuk PIC dan warna kuning untuk diarsipkan oleh
bagian keuangan. Setelah itu PIC akan menyetorkan uang yang telah diterima dan
memberikan nota berwarna kuning kepada bagian keuangan. Dan bagian keuangan
akan mengarsipkan nota dan melakukan perekapan pembayaran dalam Microsoft
Excel.
3. Prosedur Pembuatan Laporan
Bagian keuangan membuat laporan pendapatan jasa berdasarkan nota pendapatan
yang telah direkap setiap hari dan akan diarsipkan setiap bulan untuk dijadikan
laporan keuangan dan diberikan kepada CEO.
37
3.2.2. Aktivity Diagram
1. Activity Diagram Prosedur Pengajuan Jasa
Gambar III.2.
Activity Diagram Prosedur Pengajuan Jasa
39
3. Activity Diagram Prosedur Pembuatan Laporan
Gambar III.4.
Activity Diagram Prosedur Pembuatan Laporan
3.2.3. Dokumen Masukan
Dokumen masukan adalah sebagai bentuk dokumen masukan yang akan diolah
dalam suatu proses agar dpat menghasilkan keluaran yang diinginkan. Adapun dokumen
masukan tersebut :
1. FPJ
Nama Dokumen : Formulir Permintaan Jasa
40
Fungsi : Data Permintaan Jasa
Sumber : Customer
Tujuan : PIC
Media : Kertas
Jumlah : Satu Lembar
Frekuensi : Setiap customer melakukan permintaan
Bentuk : Lampiran A-1
2. Nota R2
Nama Dokumen : Nota Rangkap 2
Fungsi : Bukti Pembayaran Jasa
Sumber : Customer
Tujuan : Bagian Keuangan
Media : Kertas
Jumlah : Satu Rangkap
Frekuensi : Setiap terjadi pembayaran
Bentuk : Lampiran A-2
3. Rekapan Pendapatan jasa
Nama Dokumen : Rekapan Pendapatan Jasa
Fungsi : Rekapan Pembayaran
Sumber : Nota
Tujuan : Pembuatan Laporan Bulanan
Media : Ms.Excel
Jumlah : Satu File
41
Frekuensi : Setiap ada Nota
Bentuk : Lampiran A-3
3.2.4. Dokumen Keluaran
Dokumen keluaran adalah segala bentuk dokumen dari hasil proses pengolahan
dokumen masukan yang terjadi pada suatu sistem. Adapun dokumen keluaran tersebut
adalah :
1. BPJ
Nama Dokumen : Bukti Penyelesaian Jasa
Fungsi : Bukti jasa telah dikerjakan
Sumber : PIC
Tujuan : Customer
Media : Kertas
Jumlah : Satu lembar
Frekuensi : Setiap jasa telah dikerjakan
Bentuk : Lampiran B-1
2. Data Invoice
Nama Dokumen : Invoice
Fungsi : Informasi jumlah penagihan
Sumber : Bagian Keuangan
Tujuan : Customer
Media : Kertas
Jumlah : Satu Lembar
Frekuensi : Setiap melakukan penagihan
42
Bentuk : Lampiran B-2
3. Nota R1
Nama Dokumen : Nota Rangkap 1
Fungsi : Bukti Pembayaran Jasa
Sumber : Bagian Keuangan
Tujuan : Customer
Media : Kertas
Jumlah : Satu Rangkap
Frekuensi : Setiap terjadi pembayaran
Bentuk : Lampiran B-3
4. Laporan
Nama Dokumen : Laporan
Fungsi : Catatan Laporan Pendapatan jasa
Sumber : Bagian Keuangan
Tujuan : CEO
Media : Kertas
Jumlah : 1 File
Frekuensi : 1 Bulan Sekali
Bentuk : Lampiran B-4
3.2.5. Permasalahan Pokok
Setelah penulis mempelajari dan mengamati bagaimana sistem pengelolaan
keuangan yang terdapat pada PT. Fakta Jabar Mediatama, ternyata sistem tersebut
memiliki beberapa masalah yang dihadapi, diantaranya :
43
1. Sistem pengolahan data pendapatan jasa pada PT Fakta Jabar Mediatama saat ini
masih dilakukan dengan semi komputerisasi menggunakan Microsoft Excel, dan data
pendapatan jasa-jasa masih tergabung menjadi satu dalam satu worksheet.
2. Sistem pengolahan data pendapatan jasa pada PT Fakta Jabar Mediatama dirasa
masih kurang maksimal karena masih sederhana dengan Microsoft Excel, data belum
terdatabase dan belum terintegrasi, dimana proses penginputan tidak terjadi setiap
hari, hal ini dapat menyebabkan proses pendataan menjadi lama dan pengolahan data
tidak akurat.
3. Membutuhkan tempat untuk pengarsipan data, memungkinkan adanya kerusakan
hingga kehilangan data, arsip harus disusun rapi secara manual agar pada saat ada
permintaan data laporan dapat diperiksa dengan cepat.
4. Dalam proses pencatatan pendapatan, menggunakan komputer kantor yang belum
menggunakan password sehingga memungkinkan data pendapatan dapat dilihat oleh
siapa saja.
3.2.6. Pemecahan Masalah
Atas permasalahan - permasalahan yang dibahas pada sub-bab sebelumnya,
maka dari itu penulis mengusulkan beberapa alternatif dalam mengatasi masalah,
alternatif masalah yang penulis ajukan adalah :
1. Membuat sebuah rancangan sistem pendapatan masing-masing jasa pun dipisah
dengan begitu akan mempermudah bagian keuangan membuat rekapan jasa sesuai
dengan jenis jasa tersebut.
2. Dengan menggunakan sistem yang terkomputerisasi, sehingga penyimpanan data
penjualan dapat dilihat dari file penjualan sehingga akan lebih akurat dan efisien,
44
dapat dilihat dari file dan tidak perlu mencari arsip karena akan membutuhkan waktu
yang cukup lama dan dalam penghitungan pendapatan atas pendapatan sehingga
dapat mempercepat dalam pembuatan laporan. Baik laporan pendapatan keseluruhan
maupun pendapatan sesuai jenis jasa masing-masing.
3. Dengan adanya sistem dapat membuat data hanya dapat diakses oleh admin dan CEO
sehingga tidak dapat semua orang dapat mengakses.
3.3. Analisa Kebutuhan Software
3.3.1. Analisa Kebutuhan
A. Bagian Keuangan
A.1. Bagian Keuangan Berhak Login
A.2. Bagian Keuangan Berhak Mengelola Data Pelanggan
A.3. Bagian Keuangan Berhak Mengelola Data Iklan
A.4. Bagian Keuangan Berhak Mengelola Data Even Organizer
A.5. Bagian Keuangan Berhak Mengelola Data Konsultan
A.6. Bagian Keuangan Berhak Mengelola Transaksi
A.7. Bagian Keuangan Berhak Mengelola Laporan
B. CEO
B.1. CEO Berhak Login
B.2. CEO Berhak Mengakses Laporan
45
3.3.2. Use Case Diagram
A. Use Case Diagram Bagian Keuangan
Gambar III.5.
Use Case Diagram Log Bag Keuangan
Tabel III.1.
Deskripsi Use Case Diagram Bag Keuangan
Use Case Narrative Bendahara
Tujuan Mengelola data Pelanggan, Mengelola jenis Jasa ( Iklan,
Event Organizer, Consultan) Mengelola Transaksi
mengelola Laporan Junal dan Mengelola Laporan
Pendapatan
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke halaman
utama yang di dalamnya ada pelanggan, jenis jasa,
transaksi dan Laporan
46
Skenario Utama
Aktor Bagian Keuangan
Kondisi Awal Aktor membuka aplikasi pendapatan.
Aksi Aktor Reaksi Sistem
1. Aktor Memilih Login Sistem akan menampilkan menu utama setelah aktor
memasukkan username, dan password.
2. Aktor Memilih Data
Pelanggan
Sistem akan menampilkan form data Pelanggan.
3. Aktor Memilih Data Jenis
Jasa
Sistem akan menampilkan form data iklan
4. Aktor Memilih Data Jenis
Jasa
Sistem akan menampilkan form data Even Organizer
5. Aktor Memilih Data Jenis
Jasa
Sistem akan menampilkan form data Konsultan
6. Aktor Memilih Data
Transaksi
Sistem akan menampilkan form data transaksi
7. Aktor Memilih Data
Laporan Jurnal
Sistem akan menampilkan form Laporan Jurnal
8. Aktor Memilih Data
Laporan Pendapatan
Sistem akan menampilkan form Laporan Pendapatan
9. Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan sesuai
permintaan.
47
B. Use Case Diagram CEO
Gambar III.6.
Use Case Diagram CEO
Tabel III.2.
Deskripsi Use Case Diagram Login CEO
Use Case Narrative Kepala Sekolah
Tujuan Mengelola Data Admin, Melihat Laporan Jurnal dan
Melihat Laporan Pendapatan
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke halaman
utama yang di dalamnya laporan.
Skenario Utama
Aktor CEO
Kondisi Awal Aktor membuka aplikasi pendapatan.
Aksi Aktor Reaksi Sistem
1. Aktor Memilih Login Sistem akan menampilkan menu utama setelah aktor
memasukkan username, dan password.
2. Aktor Memilih Admin Sistem akan menampilkan Form Admin
3. Aktor Memilih Laporan
Pendapatan
Sistem akan menampilkan laporan Pendapatan
48
4. Aktor Memilih Laporan
Jurnal
Sistem akan menampilkan laporan jurnal.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan
sesuai permintaan.
3.3.3. Activity Diagram
A. Activity Diagram Bagian Keuangan
A.1. Activity Diagram Bag keuangan Login
Gambar III.7.
Activity Diagram Login Bag Keuangan
49
A.2. Activity Diagram Mengelola Data Pelanggan
Gambar III.8.
Activity Diagram Mengelola Data Pelanggan
52
A.7. Activity Diagram Mengelola Laporan Pendapatan
Gambar III.11.
Activity Diagram Mengelola Laporan Pendapatan
53
A.8. Activity Diagram Mengelola Laporan Jurnal
Gambar III.12.
Activity Diagram Mengelola Laporan Jurnal
54
B. Activity Diagram CEO
B.1. Activity Diagram CEO Login
Gambar III.13.
Activity Diagram Login CEO
55
B.1. Activity Diagram CEO Mengelola Data Admin
Gambar III.14.
Activity Diagram Mengelola Data Admin
56
B.2. Activity Diagram CEO Mengakses Laporan Jurnal
Gambar III.15.
Activity Diagram Mengakses Laporan Jurnal
57
B.2. Activity Diagram CEO Mengakses Laporan Pendapatan
Gambar III.16.
Activity Diagram Mengakses Laporan Pendapatan
59
3.4.2. Logical Record Structure (LRS)
Gambar III.18.
Logical Record Structure
3.4.3. Spesifikasi File
Dalam program ini menggunakan database dengan nama fakta_jabar dan
didalamnya terdapat tabel-tabel sebagai entitas. Table-tabel tersebut sebagai berikut:
a. Spesifikasi File Tabel Admin
Nama Database : admin
Nama File : Data Admin
Tipe File : Master Data
60
Akses File : Random
Panjang Record : 55 Karakter
Field Key : kode_adm
Tabel III.3.
Spesifikasi File Tabel Admin
No Elemen Data Akronim Tipe Panjang Keterangan
1. Kode Admin kode_adm Varchar 5 Primary Key
2. Nama Admin nm_adm Varchar 10
3. Nomor hp Admin nohp_adm Varchar 12
4. Jabatan Jabatan Varchar 8
5. Sandi Admin sandi_adm Varchar 10
2. Hak Akses hak_akses Varchar 10
b. Spesifikasi File Tabel Data Pelanggan
Nama Database : pelanggan
Nama File : Data Pelanggan
Tipe File : Master Data
Akses File : Random
Panjang Record : 44 Karakter
Field Key : kode_plg
Tabel III.4.
Spesifikasi File Tabel Data Pelanggan
No Elemen Data Akronim Tipe Panjang Keterangan
1. Kode Pelanggan kode_plg Char 7 Primary Key
2. Nama Pelanggan nm_plg Char 15
3. Nam Perusahaan nm_perusahaan Varchar 20
61
4. Alamat Pelanggan alamat_plg Text
5. No Tlp notlp_plg Varchar 12
c. Spesifikasi File Tabel Jenis Jasa
Nama Database : jasa
Nama File : Jenis Jasa
Tipe File : Master Data
Akses File : Random
Panjang Record : 41 Karakter
Field Key : kode_jasa
Tabel III.5.
Spesifikasi File Tabel Jenis
No Elemen Data Akronim Tipe Panjang Keterangan
1. Kode Jasa kode_jasa Char 6 Primary Key
2. Nama Jasa nm_jasa Varchar 35
3. Harga hrg_jasa Double
d. Spesifikasi File Tabel Transaksi
Nama Database : transaksi
Nama File : Transaksi
Tipe File : Master Data
Akses File : Random
Panjang Record :159 Karakter
Field Key : kode_trans
62
Tabel III.6.
Spesifikasi File Tabel Transaksi
No Elemen Data Akronim Tipe Panjang Keterangan
1. Kode Transaksi kode_trans Char 12 Primary Key
2. Tanggal Transaksi tgl_trans Date
3. Kode Admin kode_adm Varchar 15 Foreign Key
4. Kode Pelanggan kode_plg Char 7 Foreign Key
5. Cara Bayar gran_total Double 30
6. Nomor Bukti no_bukti Varchar 20
7. Nama Bank nm_bank Varchar 20
8. Nomor Rekening no_rekening Varchar 20
9. Nama Pemilik
Rekening
Nm_pemilik_
rekening
Varchar 35
10. Total grand_total Double
e. Spesifikasi File Tabel Detail Transaksi
Nama Database : detail transaksi
Nama File : Detail Transaksi
Tipe File : Transaksi
Akses File : Random
Panjang Record : 18 Karakter
Field Key : -
Tabel III.7.
Spesifikasi File Tabel Detail Transaksi
No Elemen Data Akronim Tipe Panjang Keterangan
1. Kode Transaksi kode_trans Char 12 Foreign Key
2. Kode Jasa kode_jasa Char 6 Foreign Key
3. Harga Jasa hrg_jasa Double
63
f. Spesifikasi File Tabel Jurnal
Nama Database : jurnal
Nama File : Data Jurnal
Tipe File : Laporan
Akses File : Random
Panjang Record : 18 Karakter
Field Key : kode_jur
Tabel III.8.
Spesifikasi File Tabel Jurnal
No Elemen Data Akronim Tipe Panjang Keterangan
1. Kode Jurnal kode_jurnal Char 8 Primary Key
2. Tanggal Jurnal tgl_jurnl Date
3. Nomor Referensi no_reff Char 5 Foreign Key
4. Keterangan keterangan Text
5. Kode Admin kode_adm Varchar 5 Foreign Key
g. Spesifikasi File Tabel Detail Jurnal
Nama Database : Det_jur
Nama File : Transaksi
Tipe File : Master Data
Akses File : Random
Panjang Record : 33 Karakter
Field Key : -
64
Tabel III.9.
Spesifikasi File Tabel Detail Jurnal
No Elemen Data Akronim Tipe Panjang Keterangan
1. Kode Jurnal kode_jurnal Char 8 Foreign Key
2. Kode Akun kode_akun Char 5
3. Nama Akun nama_akun Char 20
4. Debet Debet Double
5. Kredit Kredit Doubel
3.4.4. Sequance Diagram
Gambar III.19.
Sequance Diagram
65
3.4.5. Deployment Diagram
Gambar III.20.
Deployment Diagram
3.4.6. User Interface
A. Halaman Form Login
Gambar III.21.
User Interface form Login
66
B. Halaman Form Menu Utama
Gambar III.22.
User Interface Form Menu Utama
C. Halaman Form Transaksi
Gambar III.23.
User Interface Form Transaksi
67
D. Halaman Form Pelanggan
Gambar III.24.
User Interface Form Pelanggan
E. Halaman Form Data Jasa
Gambar III.25.
User Interface Form Data Jasa
68
F. Halaman Form Data Admin
Gambar III.26.
User Interface Form Data Admin
G. Halaman Form Laporan Jurnal Umum
Gambar III.27.
User Interface Form Lap Jurnal Umum
69
H. Halaman Form Laporan Pendapatan Jasa
Gambar III.28.
User Interface Form Lap Pendapatan Jasa
3.5. Implementasi
3.5.1. Code Generation
package forms;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.util.List;
import java.util.ListIterator;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import model.Pelanggan;
import faktajabar.FaktaJabar;
70
import java.awt.CardLayout;
import java.awt.event.KeyEvent;
import java.io.InputStream;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import javax.swing.JDialog;
import javax.swing.JFrame;
import model.DetailJurnal;
import model.DetailTransaksi;
import model.Jasa;
import model.Jurnal;
import model.Transaksi;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
public class FormTransaksi extends javax.swing.JFrame {
String KodeTransaksi = "";
String Status = "";
NumberFormat number = new DecimalFormat("#00");
71
Transaksi transaksi = new Transaksi();
DetailTransaksi detail = new DetailTransaksi();
Jasa jasa = new Jasa();
Pelanggan pelanggan = new Pelanggan();
Jurnal jurnal = new Jurnal();
DetailJurnal detail_jurnal = new DetailJurnal();
double total = 0;
DefaultTableModel modelTransaksi = null, modelDetail = null;
Dimension d;
int x, y;
public FormTransaksi() {
initComponents();
Toolkit tk = Toolkit.getDefaultToolkit();
d = tk.getScreenSize();
x = (int) ((d.getWidth() - getSize().width) / 2);
y = (int) ((d.getHeight() - getSize().height) / 2);
setLocation(x, y);
modelTransaksi = (DefaultTableModel) tblpelanggan.getModel();
modelDetail = (DefaultTableModel) tbldetail.getModel();
tblpelanggan.getTableHeader().setFont(new Font("BellGothic BT", 1, 16));
tblpelanggan.setRowHeight(30);
tbldetail.getTableHeader().setFont(new Font("BellGothic BT", 1, 16));
tbldetail.setRowHeight(30);
72
daftarTransaksi();
aktif();
tabs.setSelectedIndex(1);}
@SuppressWarnings("unchecked")
private void initComponents() {
tabs = new javax.swing.JTabbedPane();
jPanel1 = new javax.swing.JPanel();
tnm_pelanggan = new javax.swing.JTextField();
lbidpengguna = new javax.swing.JLabel();
lbnamapengguna = new javax.swing.JLabel();
tkode_plg = new javax.swing.JTextField();
tkode_trans = new javax.swing.JTextField();
lbnamapengguna1 = new javax.swing.JLabel();
ttgl_trans = new javax.swing.JTextField();
lbnamapengguna2 = new javax.swing.JLabel();
lbnamapengguna7 = new javax.swing.JLabel();
lbidpengguna1 = new javax.swing.JLabel();
tkode_jasa = new javax.swing.JTextField();
tnm_jasa = new javax.swing.JTextField();
lbidpengguna2 = new javax.swing.JLabel();
thrg_jasa = new javax.swing.JTextField();
lbidpengguna3 = new javax.swing.JLabel();
jScrollPane3 = new javax.swing.JScrollPane();
73
tbldetail = new javax.swing.JTable();
lbidpengguna4 = new javax.swing.JLabel();
jSeparator1 = new javax.swing.JSeparator();
lbidpengguna5 = new javax.swing.JLabel();
lbnamapengguna3 = new javax.swing.JLabel();
lbnamapengguna4 = new javax.swing.JLabel();
tno_bukti = new javax.swing.JTextField();
tnm_bank = new javax.swing.JTextField();
lbnamapengguna5 = new javax.swing.JLabel();
tno_rekening = new javax.swing.JTextField();
lbnamapengguna6 = new javax.swing.JLabel();
lbnamapengguna8 = new javax.swing.JLabel();
tnama_pemilik = new javax.swing.JTextField();
tcara_bayar = new javax.swing.JComboBox<>();
btcari_pelanggan = new javax.swing.JButton();
btcari_jasa = new javax.swing.JButton();
lbnamapengguna9 = new javax.swing.JLabel();
ttotal = new javax.swing.JTextField();
jPanel2 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
tblpelanggan = new javax.swing.JTable();
tcari = new javax.swing.JTextField();
btcari = new javax.swing.JButton();
74
btcetak = new javax.swing.JButton();
jPanel3 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jToolBar1 = new javax.swing.JToolBar();
bttambah = new javax.swing.JButton();
btsimpan = new javax.swing.JButton();
btbatal = new javax.swing.JButton();
bttutup = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_
CLOSE);
tabs.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
tnm_pelanggan.setEditable(false);
tnm_pelanggan.setBackground(new java.awt.Color(255, 255, 255));
tnm_pelanggan.setFont(new java.awt.Font("BellGothic BT", 0, 16)); //
NOI18N
tnm_pelanggan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tnm_pelangganActionPerformed(evt); }});
lbidpengguna.setFont(new java.awt.Font("BellGothic BT", 0, 16)); //
NOI18N
lbidpengguna.setText("Kode Pelanggan");
lbnamapengguna.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
lbnamapengguna.setText("Nama Pelanggan");
75
tkode_plg.setEditable(false);
tkode_plg.setBackground(new java.awt.Color(255, 255, 255));
tkode_plg.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
tkode_trans.setEditable(false);
tkode_trans.setBackground(new java.awt.Color(255, 255, 255));
tkode_trans.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
tkode_trans.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tkode_transActionPerformed(evt);
} });
lbnamapengguna1.setFont(new java.awt.Font("BellGothic BT", 0, 16)); //
NOI18N
lbnamapengguna1.setText("Kode Transaksi");
ttgl_trans.setEditable(false);
ttgl_trans.setBackground(new java.awt.Color(255, 255, 255));
ttgl_trans.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
public void actionPerformed(java.awt.event.ActionEvent evt) {
ttgl_transActionPerformed(evt);
}});
lbnamapengguna2.setFont(new java.awt.Font("BellGothic BT", 0, 16)); //
NOI18N
lbnamapengguna2.setText("Tanggal Transaksi");
lbnamapengguna7.setFont
76
(new java.awt.Font("BellGothic BT", 1, 24)); // NOI18N
lbnamapengguna7.setText("Jasa ");
lbidpengguna1.setFont(new java.awt.Font("BellGothic BT", 0, 16)); //
NOI18N
lbidpengguna1.setText("Kode Jasa");
tkode_jasa.setEditable(false);
tkode_jasa.setBackground(new java.awt.Color(255, 255, 255));
tkode_jasa.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
tnm_jasa.setEditable(false);
tnm_jasa.setBackground(new java.awt.Color(255, 255, 255));
tnm_jasa.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
lbidpengguna2.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
lbidpengguna2.setText("Nama Jasa");
thrg_jasa.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
thrg_jasa.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
thrg_jasaKeyPressed(evt);} });
lbidpengguna3.setFont(new java.awt.Font("BellGothic BT", 0, 16)); //
NOI18N
lbidpengguna3.setText("Harga Jasa");
jScrollPane3.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
tbldetail.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
tbldetail.setModel(new javax.swing.table.DefaultTableModel(
77
new Object [][] {
{null, null, null},{null, null, null},{null, null, null},{null, null, null} },
new String [] {
"Kode Jasa", "Nama Jasa", "Harga Jasa" } ) {
boolean[] canEdit = new boolean [] {
false, false, false };
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex]; });
tbldetail.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
tbldetailKeyPressed(evt); }
public void keyReleased(java.awt.event.KeyEvent evt) {
tbldetailKeyReleased(evt);} });
jScrollPane3.setViewportView(tbldetail);
lbidpengguna4.setFont(new java.awt.Font("BellGothic BT", 1, 18)); // NOI18N
lbidpengguna4.setText("[ Delete ] Untuk Menghapus")
lbidpengguna5.setFont(new java.awt.Font("BellGothic BT", 1, 18)); // NOI18N
lbidpengguna5.setText("Tekan [ Enter ] kolom harga untuk menambahkan jasa");
lbnamapengguna3.setFont(new java.awt.Font("BellGothic BT", 0, 16)); //
NOI18N
lbnamapengguna3.setText("Cara Bayar")
lbnamapengguna4.setFont(new java.awt.Font("BellGothic BT", 0, 16)); //
NOI18N
78
lbnamapengguna4.setText("No Bukti");
tno_bukti.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
tno_bukti.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tno_buktiActionPerformed(evt); } });
tnm_bank.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
tnm_bank.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tnm_bankActionPerformed(evt);} });
lbnamapengguna5.setFont(new java.awt.Font("BellGothic BT", 0, 16)); //
NOI18N
lbnamapengguna5.setText("Nama Bank");
tno_rekening.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
tno_rekening.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tno_rekeningActionPerformed(evt);} });
lbnamapengguna6.setFont(new java.awt.Font("BellGothic BT", 0, 16)); //
NOI18N
lbnamapengguna6.setText("No Rekening");
lbnamapengguna8.setFont(new java.awt.Font("BellGothic BT", 0, 16)); //
NOI18N
lbnamapengguna8.setText("Nama Pemilik");
tnama_pemilik.setFont(new java.awt.Font("BellGothic BT",0,16)); // NOI18N
79
tnama_pemilik.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tnama_pemilikActionPerformed(evt);}});
tcara_bayar.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
tcara_bayar.setModel(new javax.swing.DefaultComboBoxModel<>(new String[]
{ "Cash", "Transfer Bank" }));
tcara_bayar.addItemListener(new java.awt.event.ItemListener() {
tcara_bayarItemStateChanged(evt); } })
btcari_pelanggan.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
btcari_pelanggan.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/cari.png"))); // NOI18N
btcari_pelanggan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { } });
btcari_jasa.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
btcari_jasa.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/cari.png"))); // NOI18N
btcari_jasa.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btcari_jasaActionPerformed(evt);}});
lbnamapengguna9.setFont(new java.awt.Font("BellGothic BT", 0, 18)); //
NOI18N
lbnamapengguna9.setText("Total");
ttotal.setEditable(false);
80
ttotal.setBackground(new java.awt.Color(255, 255, 255));
ttotal.setFont(new java.awt.Font("BellGothic BT", 1, 18)); // NOI18N
ttotal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ttotalActionPerformed(evt);}});
javax.swing.GroupLayout jPanel1Layout = new
javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addComponent(lbidpengguna)
.addComponent(lbnamapengguna)
.addComponent(lbnamapengguna2)
.addComponent(lbnamapengguna1)
.addComponent(lbidpengguna1)
81
.addComponent(lbidpengguna2)
.addComponent(lbidpengguna3))
.addGap(32, 32, 32)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(tkode_jasa, javax.swing.GroupLayout.PREFERRED_SIZE,129,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btcari_jasa))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(tkode_plg, javax.swing.GroupLayout.PREFERRED_SIZE,129,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btcari_pelanggan))
.addComponent(ttgl_trans, javax.swing.GroupLayout.PREFERRED_SIZE,237,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tkode_trans, javax.swing.GroupLayout.PREFERRED_SIZE,186,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tnm_pelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE,266,
javax.swing.GroupLayout.PREFERRED_SIZE)
82
.addComponent(tnm_jasa, javax.swing.GroupLayout.PREFERRED_SIZE,301,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(thrg_jasa, javax.swing.GroupLayout.PREFERRED_SIZE,213,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(lbnamapengguna7)
.addGap(18, 18, 18)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE,383,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(lbidpengguna5))
.addGap(28, 28, 28)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addComponent(lbnamapengguna3)
.addComponent(lbnamapengguna5)
.addComponent(lbnamapengguna6)
.addComponent(lbnamapengguna4)
83
.addComponent(lbnamapengguna8)
.addComponent(lbnamapengguna9))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addComponent(tnm_bank, javax.swing.GroupLayout.PREFERRED_SIZE,186,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tcara_bayar, javax.swing.GroupLayout.PREFERRED_SIZE,116,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tno_bukti, javax.swing.GroupLayout.PREFERRED_SIZE,237,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tnama_pemilik,
javax.swing.GroupLayout.PREFERRED_SIZE,219,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tno_rekening,
javax.swing.GroupLayout.PREFERRED_SIZE,186,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(ttotal, javax.swing.GroupLayout.PREFERRED_SIZE,219,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(lbidpengguna4))
.addGap(0, 0, Short.MAX_VALUE))
.addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 537,
Short.MAX_VALUE))
84
.addContainerGap()));
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG).addGroup(jPanel1Layout.createSequentialGroup().addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.BASELINE)
.addComponent(tkode_trans, javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbnamapengguna1,
javax.swing.GroupLayout.PREFERRED_SIZE,30,javax.swing.GroupLayout.PRE
FERRED_SIZE).addComponent(lbnamapengguna3,
javax.swing.GroupLayout.PREFERRED_SIZE,30,javax.swing.GroupLayout.PRE
FERRED_SIZE)
.addComponent(tcara_bayar, javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.CENTER)
.addComponent(tno_bukti, javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbnamapengguna4,javax.swing.GroupLayout.PREFERRED_SIZE
,30, javax.swing.GroupLayout.PREFERRED_SIZE))
85
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.CENTER)
.addComponent(tnm_bank, javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbnamapengguna5,
javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.CENTER)
.addComponent(tno_rekening, javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbnamapengguna6,
javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(8, 8, 8)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.CENTER)
.addComponent(lbnamapengguna8,
javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
86
.addComponent(tnama_pemilik,
javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(8, 8, 8)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.CENTER)
.addComponent(lbnamapengguna9,
javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(ttotal, javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.CENTER)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE,10,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbnamapengguna7,javax.swing.GroupLayout.PREFERRED_SIZE
,30, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
87
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addComponent(tkode_jasa,javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbidpengguna1,javax.swing.GroupLayout.PREFERRED_SIZE,30
, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btcari_jasa, javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addComponent(tnm_jasa, javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
addComponent(lbidpengguna2,javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addComponent(thrg_jasa, javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbidpengguna3,javax.swing.GroupLayout.PREFERRED_SIZE,30
, javax.swing.GroupLayout.PREFERRED_SIZE))
88
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(lbidpengguna5,javax.swing.GroupLayout.PREFERRED_SIZE,30
, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
addComponent(lbidpengguna4,javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE,125,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(29, 29, 29)).addGroup(jPanel1Layout.createSequentialGroup()
.addGap(47, 47, 47)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.BASELINE)
.addComponent(ttgl_trans, javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbnamapengguna2,javax.swing.GroupLayout.PREFERRED_SIZE
,30, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.BASELINE)
89
.addComponent(tkode_plg, javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbidpengguna, javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btcari_pelanggan,javax.swing.GroupLayout.PREFERRED_SIZE,
30, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.BASELINE)
.addComponent(tnm_pelanggan,javax.swing.GroupLayout.PREFERRED_SIZE,3
0, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbnamapengguna,
javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(288, 288, 288)));
tabs.addTab("Input", jPanel1);
tblpelanggan.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
tblpelanggan.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null},{null, null, null, null, null},
{null, null, null, null, null},{null, null, null, null, null} },
new String [] {
90
"Kode Transaksi", "Tanggal Transaksi", "Kode Pelanggan", "Nama Pelanggan",
"Total Transaksi" }
) {boolean[] canEdit = new boolean [] {true, false, false, false, false };
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex]; }});
tblpelanggan.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tblpelangganMouseClicked(evt);}});
jScrollPane1.setViewportView(tblpelanggan);
tcari.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
btcari.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
btcari.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/cari.png"))); // NOI18N
btcari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btcariActionPerformed(evt);}});
javax.swing.ImageIcon(getClass().getResource("/images/cetak.png"))); // NOI18N
btcetak.setText("Cetak");
btcetak.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btcetakActionPerformed(evt);}});
javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
91
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup().addGap(11, 11, 11)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 1017,
Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(tcari, javax.swing.GroupLayout.PREFERRED_SIZE,301,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btcari)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btcetak)))
.addContainerGap()) );
jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup
(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup().addContainerGap()
92
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.CENTER)
.addComponent(btcari, javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
addComponent(tcari, javax.swing.GroupLayout.PREFERRED_SIZE,30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btcetak))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,314,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
tabs.addTab("Data", jPanel2);
jPanel3.setBackground(new java.awt.Color(0, 126, 195));
jLabel1.setFont(new java.awt.Font("BellGothic BT", 1, 36)); // NOI18N
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText("Form Transaksi");
javax.swing.GroupLayout jPanel3Layout = new
javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
93
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel3Layout.createSequentialGroup().addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap()));
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel3Layout.createSequentialGroup().addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE,51,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jToolBar1.setRollover(true);
bttambah.setFont(new java.awt.Font("BellGothic BT", 0, 16));
bttambah.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/tambah.png")));
bttambah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bttambahActionPerformed(evt);
} });
jToolBar1.add(bttambah);
94
btsimpan.setFont(new java.awt.Font("BellGothic BT", 0, 16));
btsimpan.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/simpan.png")));
btsimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btsimpanActionPerformed(evt);
}});
jToolBar1.add(btsimpan);
btbatal.setFont(new java.awt.Font("Andalus", 0, 16)); // NOI18N
btbatal.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/batal.png"))); // NOI18N
btbatal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btbatalActionPerformed(evt);
}});
jToolBar1.add(btbatal);
bttutup.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
javax.swing.ImageIcon(getClass().getResource("/images/tutup.png")));
bttutup.setText("Tutup");
bttutup.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bttutupActionPerformed(evt);
} });
95
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup().addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING).addComponent(tabs)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE) .addComponent(bttutup)))
.addContainerGap()) );
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
96
.addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE,49,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(tabs, javax.swing.GroupLayout.PREFERRED_SIZE,471,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
addComponent(bttutup, javax.swing.GroupLayout.PREFERRED_SIZE,43,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(16, Short.MAX_VALUE)) );
pack(); }
private void aktif() {
bttambah.setEnabled("".equals(this.Status));
btbatal.setEnabled(!"".equals(this.Status));
btsimpan.setEnabled(!"".equals(this.Status));
btcetak.setEnabled("".equals(this.Status) &&
!"".equalsIgnoreCase(this.KodeTransaksi));
tno_bukti.setEditable(!tcara_bayar.getSelectedItem().toString().equals("Cash"));
tno_rekening.setEditable(!tcara_bayar.getSelectedItem().toString().equals("Cash")
);
tnm_bank.setEditable(!tcara_bayar.getSelectedItem().toString().equals("Cash"));
tnama_pemilik.setEditable(!tcara_bayar.getSelectedItem().toString().equals("Cash
"));
tabs.setEnabledAt(0, !"".equals(this.Status));
97
tabs.setEnabledAt(1, "".equals(this.Status));}
private void bersihForm() {
tkode_plg.setText("");
tnm_pelanggan.setText("");
tkode_trans.setText("");
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
ttgl_trans.setText(sdf.format(new java.util.Date()));
tno_bukti.setText("");
tnm_bank.setText("");
tno_rekening.setText("");
tnama_pemilik.setText("");
ttotal.setText("");
tkode_jasa.setText("");
tnm_jasa.setText("");
thrg_jasa.setText(""); }
private void bersihJasa() {
tkode_jasa.setText("");
tnm_jasa.setText("");
thrg_jasa.setText("");}
private void cariPelanggan() {
pelanggan = pelanggan.cariKodePelanggan(tkode_plg.getText());
if (pelanggan.getNama_plg() != null) {
tkode_plg.setText(pelanggan.getKode_plg());
98
tnm_pelanggan.setText(pelanggan.getNama_plg());
} else {
tkode_plg.setText("");
tnm_pelanggan.setText("");}}
private void cariJasa() {
jasa = jasa.cariKodeJasa(tkode_jasa.getText());
if (jasa.getNm_jasa() != null) {
tnm_jasa.setText(jasa.getNm_jasa());
thrg_jasa.setText(number.format(jasa.getHrg_jasa()));
thrg_jasa.requestFocus();
} else {
tkode_jasa.setText("");
tnm_jasa.setText("");
thrg_jasa.setText("");} }
private void setData() {
transaksi.setKode_trans(tkode_trans.getText());
transaksi.setKode_plg(tkode_plg.getText());
transaksi.setTgl_trans(new java.sql.Date(new java.util.Date().getTime()));
transaksi.setKode_adm(FaktaJabar.kode_admin);
transaksi.setCara_bayar(tcara_bayar.getSelectedItem().toString());
transaksi.setNo_bukti(tno_bukti.getText());
transaksi.setNm_bank(tnm_bank.getText());
transaksi.setNo_rekening(tno_rekening.getText());
99
transaksi.setNm_pemilik(tnama_pemilik.getText());
transaksi.setGrand_total(total);}
private void daftarTransaksi() {
List<Transaksi> lp = transaksi.daftarTransaksi();
ListIterator<Transaksi> lip = lp.listIterator();
modelTransaksi.setRowCount(0);
tblpelanggan.repaint();
while (lip.hasNext()) {
transaksi = lip.next();
pelanggan = pelanggan.cariKodePelanggan(transaksi.getKode_plg());
Object[] data = {
transaksi.getKode_trans(),
transaksi.getTgl_trans(),
transaksi.getKode_plg(),
pelanggan.getNama_plg(),
transaksi.getGrand_total()};
modelTransaksi.addRow(data);} }
private void daftarTransaksi(String Nama) {
List<Transaksi> lp = transaksi.cariTransaksiByNama(Nama);
ListIterator<Transaksi> lip = lp.listIterator();
modelTransaksi.setRowCount(0);
tblpelanggan.repaint();
while (lip.hasNext()) {
100
transaksi = lip.next();
pelanggan = pelanggan.cariKodePelanggan(transaksi.getKode_plg());
Object[] data = {
transaksi.getKode_trans(),
transaksi.getTgl_trans(),
transaksi.getKode_plg(),
pelanggan.getNama_plg(),
transaksi.getGrand_total()};
modelTransaksi.addRow(data); }}
private void hitungTotal() {
total = 0;
for (int i = 0; i <= modelDetail.getRowCount() - 1; i++) {
total += (double) modelDetail.getValueAt(i, 2);} }
private void tambahItemJasa() {
for (int i = 0; i <= modelDetail.getRowCount() - 1; i++) {
String kode = modelDetail.getValueAt(i, 0).toString();
if (kode.equalsIgnoreCase(tkode_jasa.getText())) {
modelDetail.removeRow(i);
break; } }
Object[] data = {
tkode_jasa.getText(),
tnm_jasa.getText(),
Double.parseDouble(thrg_jasa.getText()) };
101
modelDetail.addRow(data);
tbldetail.revalidate(); }
private void tnm_pelangganActionPerformed(java.awt.event.ActionEvent evt) {}
private void bttambahActionPerformed(java.awt.event.ActionEvent evt) {
this.Status = "Tambah";
this.KodeTransaksi = "";
bersihForm();
modelDetail.setRowCount(0);
tkode_trans.setText(transaksi.kodeTransaksiAuto());
aktif();
tabs.setSelectedIndex(0);}
private void btbatalActionPerformed(java.awt.event.ActionEvent evt) {
this.Status = "";
this.KodeTransaksi = "";
bersihForm();
daftarTransaksi();
aktif();
tabs.setSelectedIndex(1);}
private void bttutupActionPerformed(java.awt.event.ActionEvent evt) {
dispose();}
private void tblpelangganMouseClicked(java.awt.event.MouseEvent evt) {
int row = tblpelanggan.getSelectedRow();
this.KodeTransaksi = (String) modelTransaksi.getValueAt(row, 0);
102
aktif();}
private void btsimpanActionPerformed(java.awt.event.ActionEvent evt) {
if ("".equals(tkode_plg.getText())
|| "".equals(tnm_pelanggan.getText())
|| "".equals(tkode_trans.getText())
|| "".equals(tno_bukti.getText())
|| "".equals(tno_rekening.getText())
|| "".equals(tnm_bank.getText())
|| "".equals(tnama_pemilik.getText())
|| "".equals(ttgl_trans.getText())) {
JOptionPane.showMessageDialog(rootPane, "Mohon isi data dulu", "info",
JOptionPane.ERROR_MESSAGE);
return;}
if (modelDetail.getRowCount() == 0) {
JOptionPane.showMessageDialog(rootPane, "Maaf, Anda belum memilih
1 jasa pun", "info", JOptionPane.ERROR_MESSAGE);
return;}
setData();
if ("Tambah".equals(Status)) {
if (transaksi.tambahTransaksi() > 0) {
for (int i = 0; i <= modelDetail.getRowCount() - 1; i++) {
String kode = modelDetail.getValueAt(i, 0).toString();
double harga = (double) modelDetail.getValueAt(i, 2);
103
detail.setKode_trans(tkode_trans.getText());
detail.setKode_jasa(kode);
detail.setHrg_jasa(harga);
detail.tambahDetailTransaksi();}
//Jurnal
String KodeJurnal = jurnal.kodeJurnalAuto();
jurnal.setKode_jurnal(KodeJurnal);
jurnal.setTgl_jurnal(new java.sql.Date(new java.util.Date().getTime()));
jurnal.setNo_reff(tkode_trans.getText());
jurnal.setKeterangan("Pembayaran atas transaksi kode : " +
tkode_trans.getText());
jurnal.setKode_adm(FaktaJabar.kode_admin);
jurnal.tambahJurnal();
detail_jurnal.setKode_jurnal(KodeJurnal);
if ("Cash".equalsIgnoreCase(tcara_bayar.getSelectedItem().toString())) {
detail_jurnal.setKode_akun("10001");
detail_jurnal.setNama_akun("Kas");
} else {
detail_jurnal.setKode_akun("10002");
detail_jurnal.setNama_akun("Kas Di Bank");}
detail_jurnal.setDebet(total);
detail_jurnal.setKredit(0.0);
detail_jurnal.tambahDetailJurnal();
104
detail_jurnal.setKode_akun("40001");
detail_jurnal.setNama_akun("Pendapatan Jasa");
detail_jurnal.setDebet(0.0);
detail_jurnal.setKredit(total);
detail_jurnal.tambahDetailJurnal();
//JOptionPane.showMessageDialog(rootPane, "Data berhasil disimpan", "info",
JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(rootPane, "Data gagal disimpan\n" +
pelanggan.getPesanError(), "info", JOptionPane.ERROR_MESSAGE);} }
this.KodeTransaksi = "";
this.Status = "";
daftarTransaksi();
bersihForm();
aktif();
tabs.setSelectedIndex(1);}
private void btcariActionPerformed(java.awt.event.ActionEvent evt) {
this.KodeTransaksi = "";
if ("".equals(tcari.getText())) {
daftarTransaksi();
} else {
daftarTransaksi(tcari.getText()); }
aktif();}
105
private void tkode_transActionPerformed(java.awt.event.ActionEvent evt) {}
private void ttgl_transActionPerformed(java.awt.event.ActionEvent evt) {}
private void tbldetailKeyReleased(java.awt.event.KeyEvent evt) {}
private void tbldetailKeyPressed(java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == KeyEvent.VK_DELETE) {
int row = tbldetail.getSelectedRow();
modelDetail.removeRow(row);
hitungTotal();
ttotal.setText(number.format(total));} }
private void thrg_jasaKeyPressed(java.awt.event.KeyEvent evt) {
if (tnm_jasa.getText().equals("")) {
JOptionPane.showMessageDialog(rootPane, "Pilih jasa dahulu!", "Error",
JOptionPane.ERROR_MESSAGE);
return;}
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
if (!FaktaJabar.validasi(thrg_jasa.getText(), "^[0-9]{2,10}$")) {
JOptionPane.showMessageDialog(rootPane, "Harga jasa hanya boleh berupa
angka!", "Error", JOptionPane.ERROR_MESSAGE);
return; }
tambahItemJasa();
bersihJasa();
hitungTotal();
ttotal.setText(number.format(total));
106
tkode_jasa.requestFocus();} }
private void tno_buktiActionPerformed(java.awt.event.ActionEvent evt) {}
private void tnm_bankActionPerformed(java.awt.event.ActionEvent evt) { }
private void tno_rekeningActionPerformed(java.awt.event.ActionEvent evt) {}
privatevoid btcari_pelangganActionPerformed(java.awt.event.ActionEvent evt) {
tkode_plg.setText(new FormCariPelanggan(this, true).cariPelanggan());
cariPelanggan();}
private void btcari_jasaActionPerformed(java.awt.event.ActionEvent evt) {
tkode_jasa.setText(new FormCariJasa(this, true).cariJasa());
cariJasa();}
private void tcara_bayarItemStateChanged(java.awt.event.ItemEvent evt) {
try {
if ("Cash".equalsIgnoreCase(tcara_bayar.getSelectedItem().toString())) {
tno_bukti.setText("-");
tno_rekening.setText("-");
tnm_bank.setText("-");
tnama_pemilik.setText("-");
} else {
tno_bukti.setText("");
tno_rekening.setText("");
tnm_bank.setText("");
tnama_pemilik.setText("");
}aktif();
107
} catch (Exception ex) {} }
private void tnama_pemilikActionPerformed(java.awt.event.ActionEvent evt) {}
private void ttotalActionPerformed(java.awt.event.ActionEvent evt) {}
private void btcetakActionPerformed(java.awt.event.ActionEvent evt) {
try {
transaksi = transaksi.cariKodeTransaksi(this.KodeTransaksi);
String terbilang = FaktaJabar.konversiAngkaKeTeks(transaksi.getGrand_total()) +
" Rupiah";
InputStream file =
ClassLoader.getSystemResourceAsStream("laporan/Kwitansi.jasper");
HashMap parameter = new HashMap();
parameter.put("KodeTransaksi", this.KodeTransaksi);
parameter.put("Terbilang", terbilang);
JasperReport jr = (JasperReport) JRLoader.loadObject(file);
JasperPrint jrp = JasperFillManager.fillReport(jr, parameter, new
Jurnal().getkoneksi());
JasperViewer viewer = new JasperViewer(jrp);
JFrame view = new JFrame("Kwitansi");
view.setContentPane(viewer.getContentPane());
view.setLayout(new CardLayout());
view.setSize(this.getSize());
view.setLocation(x, y);
view.setVisible(true);
108
this.KodeTransaksi = "";
} catch (Exception ex) {
//JOptionPane.showMessageDialog(rootPane,
ex.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);}}
public static void main(String args[]) {
try {for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Metal".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break; }}
} catch (ClassNotFoundException | InstantiationException | }
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() { new FormTransaksi().setVisible(true); }});}
private javax.swing.JButton btbatal;
private javax.swing.JButton btcari;
private javax.swing.JButton btcari_jasa;
private javax.swing.JButton btcari_pelanggan;
private javax.swing.JButton btcetak;
private javax.swing.JButton btsimpan;
private javax.swing.JButton bttambah;
private javax.swing.JButton bttutup;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
109
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JToolBar jToolBar1;
private javax.swing.JLabel lbidpengguna;
private javax.swing.JLabel lbidpengguna1;
private javax.swing.JLabel lbidpengguna2;
private javax.swing.JLabel lbidpengguna3;
private javax.swing.JLabel lbidpengguna4;
private javax.swing.JLabel lbidpengguna5;
private javax.swing.JLabel lbnamapengguna;
private javax.swing.JLabel lbnamapengguna1;
private javax.swing.JLabel lbnamapengguna2;
private javax.swing.JLabel lbnamapengguna3;
private javax.swing.JLabel lbnamapengguna4;
private javax.swing.JLabel lbnamapengguna5;
private javax.swing.JLabel lbnamapengguna6;
private javax.swing.JLabel lbnamapengguna7;
private javax.swing.JLabel lbnamapengguna8;
private javax.swing.JLabel lbnamapengguna9;
private javax.swing.JTabbedPane tabs;
110
private javax.swing.JTable tbldetail;
private javax.swing.JTable tblpelanggan;
private javax.swing.JComboBox<String> tcara_bayar;
private javax.swing.JTextField tcari;
private javax.swing.JTextField thrg_jasa;
private javax.swing.JTextField tkode_jasa;
private javax.swing.JTextField tkode_plg;
private javax.swing.JTextField tkode_trans;
private javax.swing.JTextField tnama_pemilik;
private javax.swing.JTextField tnm_bank;
private javax.swing.JTextField tnm_jasa;
private javax.swing.JTextField tnm_pelanggan;
private javax.swing.JTextField tno_bukti;
private javax.swing.JTextField tno_rekening;
private javax.swing.JTextField ttgl_trans;
private javax.swing.JTextField ttotal;
}
111
3.5.2. Blackbox Testing
A. Form Login
Tabel III.10.
Blackbox Testing Form Login
Kelas Uji Skenario Uji Hasil yang diharapkan Kesimpulan
Login Benar Masuk username dan
password benar.
Masuk kedalam sistem,
login berhasil. Sesuai
Login Salah Masuk username dan
password salah.
Tidak masuk kedalam
sistem, login salah. Sesuai
Logout Memilih logout. Keluar dari sistem. Sesuai
Data
Pelanggan
Memilih menu data
pelanggan, kemudian
dapat menambahkan,
menyimpan, mencari,
mengedit menghapus
dan tutup
Menampilkan Form data
pelanggan kemudian
dapat menambahkan,
menyimpan, mencari,
mengedit menghapus dan
tutup
Sesuai
Data Jenis Memilih menu data
jenis, kemudian dapat
menambahkan,
menyimpan, mencari,
mengedit menghapus
dan tutup
Menampilkan Form data jenis kemudian dapat
menambahkan, menyimpan, mencari,
mengedit menghapus dan tutup
Sesuai
Data
Transaksi
Memilih menu data transaksi, kemudian dapat menambah,
menyimpan, mencetak dan tutup
Menampilkan form menu
data transaksi, kemudian
dapat menambah,
menyimpan mencetak
dan tutup
Sesuai
Data
Admin
Memilih menu data jenis, kemudian dapat
menambahkan, menyimpan, mencari, mengedit menghapus
dan tutup
Menampilkan Form data
jenis kemudian dapat
menambahkan,
menyimpan, mencari,
mengedit menghapus
dan tutup
Sesuai
Cetak Laporan Jurnal
Memilih menu laporan jurnal, kemudian pilih tanggal periode
jurnal, melihat dan mencetak laporan
Menampilkan menu
laporan jurnal, kemudian
pilih tanggal periode
jurnal, melihat dan
mencetak laporan
Sesuai
112
Cetak
Laporan
Pendapatan
Memilih menu laporan pendapatan,
kemudian pilih tanggal periode
jurnal, melihat dan mencetak laporan
Menampilkan menu laporan pendapatan,
kemudian pilih tanggal periode jurnal, melihat dan mencetak laporan
Sesuai
3.5.3. Spesifikasi Hardware dan Software
Tabel III.11.
Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Windows 7 Ultimate 64-bit
Processor Intel (R) Cor (TM) i3 CPU M350 @ 2.27 GHz
RAM 3072 MB
Harddisk 2141 MB
Monitor 12” Generic PnP Monitor
Keyboard Asus
Printer HP 2130
Mouse Asus
Software
Kebutuhan menjalankan aplikasi secara lokal:
Bahasa Script Programming : Java 8.2
Web Server : Apache 3.2
DBMS : MySQL
top related