Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
28
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Dalam pelaksanaan kegiatan rutin di PD Family Purwasari terdapat aturan yang
ditentukan dalam hal ini struktur organisasi yang menggambarkan garis perintah dan
penerimaan perintah serta fungsi-fungsi pelaksanaan tersebut sehingga semua
menjadi lancar. Berikut merupakan tinjauan perusahaan dari yang telah penulis teliti
mengenai PD Family Purwasari.
3.1.1. Sejarah Perusahaan
PD Family Purwasari merupakan salah satu toko bahan bangunan yang
bergerak dibidang penjualan material atau bahan bangunan. PD Family Purwasari
didirikan beralamat di Jl. Babakan Cengkong RT. 003/003 Desa Sukasari Kecamatan
Purwasari Kabupaten karawang pada tahun 2010 dengan menyediakan dan menjual
produk bahan-bahan bangunan dan buka setiap hari dari jam 07:00 WIB hingga
pukul 17:00 WIB. Letaknya yang cukup sterategis memudahkan pembeli untuk
datang. Dengan tujuan dapat melayani konsumen dengan semaksimal mungkin.
Berbagai inovasi dan konsep yang berbeda dengan toko bahan bangunan yang
lainnya dicoba diterapkan pada PD Family Purwasari, misalnya hadir dengan
menggunakan sistem pemesanan via telepon dan delivery. Ternyata konsep yang di
tawarkan oleh PD Family Purwasari berbuah respon masyarakat yang sangat baik.
Konsumen merasa dimudahkan untuk membeli produk bahan-bahan bangunan yang
mereka butuhkan tanpa mengurangi dan mengganggu aktivitas pekerjaan mereka.
29
Adapun produk bahan bangunan yang di jual berupa besi, pasir, semen, cat, keramik,
paku, kayu, serta berbagai macam kebutuhan bahan bangunan lainnya.
3.1.2. Struktur Organisasi dan Fungsi
Struktur organisasi PD Family Purwasari Karawang dibuat dengan tujuan
memudahkan koordinasi antar bagian, sehingga menjalankan kegiatannya sudah
menerapkan sistem pembagian kerja yang standar.
Berikut gambar struktur organisasi PD Family Purwasari Karawang:
Sumber : Struktur Organisasi PD Family Purwasari Karawang (2019)
Gambar III.1
Struktur Organisasi PD Family Purwasari Karawang
Untuk melengkapi struktur organisasi suatu perusahaan, diperlukan uraian
tugas yang akan menjelaskan tentang wewenang dan tanggung jawab masing-masing
fungsi dalam perusahaan. Uraian jabatan pada PD Family adalah sebagai berikut:
30
1. Pemilik
a. Memimpin kegiatan usaha secara keseluruhan
b. Mengatur keuangan toko
c. Mengatur gaji karyawan
2. Bagian Kasir
a. Melayani pembayaran
b. Mengelola transaksi penjualan
c. Berpakaian rapi, berpenampilan baik, dan renda hati
d. Bertanggung jawab penuh dan jujur
e. Disiplin dan selalu bekerja sama dengan sesama karyawan
3. Bagian Pelayanan
a. Melayani pembelian konsumen secara langsung
b. Murah senyum, ramah, sopan, dan pandai berkomunikasi
c. Teliti, rapih dan cekatan
4. Bagian Gudang
a. Mengatur penyimpanan barang
b. Mengawasi dan mengontrol semua barang yang masuk dan keluar
c. Memastikan ketersediaan barang sesuai dengan kebutuhan
5. Bagian Pengantar Barang/Supir
a. Mengantar pesanan barang kepada pelanggan
3.2. Tinjauan Kasus
Dalam kasus ini penulis memperoleh langsung dari informasi bagian
pemasaran serta dari data laporan penjualan pada PD Family Purwasari Karawang.
31
3.2.1. Proses Bisnis Sistem Berjalan
Tahapan-tahapan kegiatan yang dilakukan oleh perusahaan dalam melakukan
aktifitas dan rutinitas dari PD Family dengan prosedur sistem berjalan.
Adapun prosedur sistem berjalan untuk penjualan tunai yang diterapkan pada
PD Family Purwasari Karawang terdiri dari:
1. Proses penjualan barang
Konsumen datang ke toko menanyakan barang yang konsumen mau melalui
bagian pelayanan, kemudian bagian pelayanan menulis barang apa saja yang
dibutuhkan oleh konsumen di kertas kosong, lalu bagian pelayanan memberikan
kertas itu ke bagian gudang. Bagian gudang mengecek pesanan barang yang
dibutuhkan, Jika barang yang dibutuhkan tersedia atau tidak. Kemudian bagian
gudang balik lagi ke bagian pelayanan. Jika barang nya tersedia maka bagian
pelayanan mencatat ke dalam Nota 3 rangkap.
2. Proses Pembayaran
Kemudian setelah dicatat oleh bagian pelayanan, Nota di berikan ke bagian
kasir. Lalu konsumen membayar semua total harga yang ada di nota, kemudian
nota pink untuk di toko sebagai arsip, dan bukti transaksi yang putih untuk
konsumen.
3. Proses Pengiriman
Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang
diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang
yang akan dikirim berdasarkan SJ. Kemudian bagian gudang memerintahkan
kepada bagian pengiriman mengirim barang yang disertai SJ kepada konsumen
jika ada barang yang tidak sesuai, maka konsumen tidak akan menandatangani
SJ tersebut. Jika sesuai maka SJ akan ditandatangani konsumen.
32
3.2.2. Activity Diagram
Activity diagram adalah diagram yang menggambarkan proses alur kerja
(workflow) dari sebuah sistem. Activity diagram menguraikan proses bisnis sistem
berjalan yang sedang dipelajari berdasarkan urutan waktu aktifitasnya. Berikut
adalah activity diagram dari prosedur penjualan tunai pada PD Family:
1. Activity Diagram Prosedur penjualan barang
Sumber: PD Family Purwasari
Gambar III.2
Activity Diagram Prosedur Penjualan Barang
33
2. Activity Diagram Prosedur Pembayaran
Sumber: PD Family Purwasari
Gambar III.3
Activity Diagram Prosedur Pembayaran
3. Activity Diagram Prosedur Pengiriman
Sumber: PD Family Purwasari
Gambar III.4
Activity Diagram Prosedur Pengiriman
34
3.2.3. Dokumen Masukan
Dokumen Masukan adalah segala bentuk dokumen yang berasal dari
lingkungan luar sistem yang berupa dokumen-dokumen akan diolah dalam suatu
proses. Adapun dokumen-dokumen masukan tersebut adalah sebagai berikut:
1. Nama dokumen : Nota Rangkap 2
Fungsi : Sebagai Bukti Transaksi
Sumber : Konsumen
Tujuan : Admin
Media : Kertas
Jumlah : 1 Lembar
Frekuensi : Setiap Administrasi Melakukan Pencatatan Laporan
Format : Lampiran A.1
3.2.4. Dokumen Keluaran
Dokumen keluaran adalah segala bentuk dokumen yang akan mendukung
kegiatan manajemen serta merupakan dokumen dari hasil catatan laporan. Adapun
dokumen keluaran yang digunakan adalah sebagai berikut:
1. Nama Dokumen : Nota Rangkap 1
Fungsi : Sebagai Bukti Pembayaran
Sumber : Admin
Tujuan : Konsumen
Media : Kertas
Jumlah : 1 Lembar
Frekuensi : Setiap Konsumen Melakukan Pembayaran
Format : Lampiran B.1
35
2. Nama Dokumen : Nota Rangkap 3
Fungsi : Sebagai bukti pengirim barang
Sumber : Admin
Tujuan : Konsumen
Media : Kertas
Jumlah : 1 Lembar
Frekuensi : Setiap Ada Pengiriman barang
Format : Lampiran B.2
3.2.5. Permasalahan Pokok
Berdasarkan pengamatan penulis, permasalahan yang ada di PD Family
Purwasari yaitu:
1. Konsumen memesan barang melalui telepon yang mengakibatkan tidak sesuai
pencatatan barang yang dipesan dan barang yang dikirm.
2. Tidak adanya pencatatan laporan penjualan, sehingga tidak mengetahui berapa
laba atau rugi perusahaan.
3. Tidak ada pencatatan stok barang oleh bagian gudang yang mengakibatkan tidak
efektifnya kegiatan dalam pengelolaan data penjualan.
3.2.6. Pemecahan Masalah
Berdasarkan pengamatan penulis, pemecahan masalah untuk PD Family
Purwasari yaitu:
1. Perlu di rancang sebuah sistem yang dapat menangani pencatatan transaksi pada
saat melakukan pembayaran.
36
2. Pembayaran seharusnya dilakukan melalui transfer untuk menanggulangi
terjadinya kehilangan dan memberikan kwitansi sebagai bukti pembayaran.
3. Diperlukan ada nya pencatatan laporan penjualan agar lebih efektif laba atau rugi
perusahaan nya.
3.3. Analisa Kebutuhan Software
Kebutuhan akan pengembangan sistem atau perbaikan pada sistem yang
berlaku akan mutlak diperlukan. Hal ini disebabkan karena imbas dari perkembangan
teknologi yang terus maju. Berikut adalah kebutuhan-kebutuhan yang diperlukan
pada sistem penjualan tunai pada PD Family Purwasari.
3.3.1. Analisa Kebutuhan
Analisa kebutuhan dilakukan untuk mengetahui hal apa saja yang diperlukan
dalam pengembangan sistem yang ada. Kebutuhan fungsional adalah kebutuhan-
kebutuhan yang memiliki keterkaitan langsung dengan proses yang dilakukan
pengguna (user). Berikut analisa kebutuhan fungsional yang diusulkan:
A. Pemilik
A.1. Pemilik berhak melakukan login.
A.2. Pemilik berhak mengakses laporan penjualan.
A.3. Pemilik berhak mengakses laporan jurnal
B. Admin
B.1. Admin berhak melakukan login
B.2. Admin berhak mengelola data barang
B.3. Admin berhak mengelola penjualan.
B.4. Admin berhak mengakses detail penjualan
37
B.5. Admin berhak mengelola laporan penjualan.
B.6. Admin berhak mengelola laporan jurnal.
3.3.2. Use Case Diagram
Use case diagram digunakan untuk menggambarkan interaksi yang terjadi
antara aktor inisiator dari interaksi sistem itu sendiri dengan sistem yang ada. Berikut
adalah use case diagramsistem usulan dari aktor yang berperan dalam penjualan
tunai di PD Family.
Gambar III.5
Use Case Diagram Usulan
38
Tabel III.1 Deskripsi Use case Halaman Admin
Use Case Narative Halaman Admin
Tujuan Admin dapat melihat data yang ada di dalam sistem halaman admin
Deskripsi Sistem ini memungkinkan Admin untuk masuk ke halaman admin
yang di dalamnya dapat mengelola data barang, data penjualan, dan
laporan jurnal
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka aplikasi halaman Admin
Aksi Aktor Reaksi Sistem
1. Aktor memilih menu
master_akun
2. Aktor memilih menu
Barang
Sistem akan menampilkan informasi menu master
_akun
Sistem akan menampilkan informasi menu barang
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan
sesuai keinginan
Tabel III.2 Deskripsi Use case Halaman Pemilik
Use Case Narative Halaman Pemilik
Tujuan Pemilik dapat melihat data yang ada di dalam sistem halaman
pemilik
Deskripsi Sistem ini memungkinkan pemilik untuk masuk ke halaman pemilik
yang di dalamnya dapat mengakses laporan penjualan, dan laporan
jurnal
Skenario Utama
Aktor Pemilik
Kondisi Awal Aktor membuka aplikasi halaman Pemilik
Aksi Aktor Reaksi Sistem
1. Aktor memilih menu
laporan penjualan
2. Aktor memilih menu
laporan jurnal
Sistem akan menampilkan informasi menu laporan
penjualan
Sistem akan menampilkan informasi menu laporan
jurnal
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan
sesuai keinginan
39
3.3.3. Activity Diagram Usulan
1. Activity Diagram Usulan Pemilik Melakukan Login
Gambar III.6
Activity Diagram Usulan Pemilik Melakukan Login
2. Activity Diagram Usulan Admin Melakukan Login
Gambar III.7
Activity Diagram Usulan Admin Melakukan Login
40
3. Activity Diagram Usulan Admin Mengelola Data Barang
Gambar III.8
Activity Diagram Usulan Admin Mengelola Data Barang
41
4. Activity Diagram Usulan Admin Mengelola Transaksi Penjualan
Gambar III.9
Activity Diargam Usulan Admin Mengelola Transaksi Penjualan
42
5. Activity Diagram Usulan Admin Membuat Laporan Penjualan
Gambar III.10
Activity Diagram Usulan Admin Membuat Laporan Penjualan
43
6. Activity Diagram Usulan Admin Membuat Laporan Jurnal
Gambar III.11
Activity Diagram Usulan Admin Membuat Laporan Jurnal
44
3.4. Desain
Desain merupakan suatu perencanaan atau gambar yang dibuat untuk
menunjukkan tampilan dan fungsi atau cara kerja suatu bangunan, pakaian, atau
benda lain sebelum dibuat.
3.4.1. Entity Relationship Diagram Usulan (ERD)
Gambar III.12
Entity Relationship Diagram Usulan (ERD)
45
3.4.2. Logical Record Structure Usulan (LRS)
Gambar III.13
Logical Record Structure Usulan (LRS)
46
3.4.3. Spesifikasi File
Program ini menggunakan database dengan nama penjualan dan di dalam nya
terdapat tabel-tabel sebagai berikut:
1. Spesifikasi Admin
Nama Data base : penjualan
Nama File : Admin
Tipe File : Master
Akses File : Random
Panjang Record : 36 Karakter
Field Key : id_admin
Software : My SQL
Tabel III.3
Spesifikasi Admin
No Elemen Data Akronim Tipe Panjang Keterangan
1. Idadmin id_admin Int 11 Primary Key
2. Username user_name Varchar 5
3. Password Password Varchar 5
4. Hakakses hak_akses Varchar 15
2. Spesifikasi File Barang
Nama Data base : penjualan
Nama File : barang
Tipe File : Master
Akses File : Random
Panjang Record : 63 Karakter
Field Key : id_barang
47
Software : My SQL
Tabel III.4
Spesifikasi File Barang
No Elemen Data Akronim Tipe Panjang Keterangan
1. Kode barang id_barang Varchar 10 Primary Key
2. Nama barang nama_barang Varchar 15
3. Satuan Satuan Varchar 15
4. Stok Stok Int 8
5. Harga Harga Int 15
3. Spesifikasi File Penjualan
Nama Data base : penjualan
Nama File : detail_penjualan
Tipe File : Transaksi
Akses File : Random
Panjang Record : 64 Karakter
Field Key : Id_detail
Software :My SQL
Tabel III.5
Spesifikasi File Penjualan
No Elemen Data Akronim Tipe Panjang Keterangan
1. id detail id_detail Int 11 Primary Key
2. id transaksi id_transaksi Varchar 10
3. id barang id_barang Varchar 10
4. Harga Harga Int 11
5. Jumlah Jumlah Int 11
6. Total Total Int 11
48
4. Spesifikasi Jurnal
Nama Data base : penjualan
Nama File : jurnal
Tipe File : Jurnal
Akses File : Random
Panjang Record : 118 Karakter
Field Key : No_jurnal
Software : My SQL
Tabel III.6
Spesifikasi Jurnal
No Elemen Data
Akronim Tipe Panjang Keterangan
1. no jurnal no_jurnal Varchar 11 Primary key
2. id transaksi id_transaksi Varchar 15
3. Debet Debet Int 11
4. Kredit Kredit Int 11
5. Keterangan Keterangan Varchar 25
6. kode akun kode_akun Varchar 15
7. Tanggal Tanggal Varchar 15
8. nama akun Nama_akun Varchar 15
5. Spesifikasi File Master_Akun
Nama Data base : penjualan
Nama File : master_akun
Tipe File : Master
Akses File : Random
Panjang Record : 75 Karakter
Field Key : kode_akun
Software : My SQL
49
Tabel III.7
Spesifikasi File Master_Akun
No Elemen Data Akronim Tipe Panjang Keterangan
1. kode akun kode_akun Varchar 15 Primary Key
2. nama akun nama_akun Varchar 35
3. jenis akun jenis_akun Varchar 25
6. Spesifikasi Transaksi
Nama Data base : penjualan
Nama File : transaksi
Tipe File : transaksi
Akses File : Random
Panjang Record : 37 Karakter
Field Key : id_transaksi
Software : My SQL
Tabel III.8
Spesifikasi File Transaksi
No Elemen Data Akronim Tipe Panjang Keterangan
1. Idtransaksi id_transaksi Varchar 11 Primary Key
2. Tanggal Tanggal Varchar 15
3. id admin id_admin Int 11
50
3.4.4. Sequance Diagram Usulan
Gambar III.14
Sequance Diagram Usulan
51
3.4.5. Deployment Diagram Usulan
Gambar III.15
Deployment Diagram usulan
3.4.6. User Interface
1.User Interface Login
Gambar III.16
User Interface Login
52
2. User Interface Menu Utama
Gambar III.17
User Interface Menu Utama
3. User Interface Master Akun
Gambar III.18
User Interface Master Akun
53
4. User Interface Barang
Gambar III.19
User Interface Barang
5. User Interface Transaksi Penjualan
Gambar III.20
User Interface Transaksi Penjualan
54
6. User Interface Data Penjualan
Gambar III.21
User Interface Data Penjualan
7. User Interface Jurnal
Gambar III.22
User Interface Jurnal
55
8. User Interface Laporan penjualan
Gambar III.23
User Interface Laporan Penjualan
9. User Interface Laporan Jurnal
Gambar III.24
User Interface Laporan Jurnal
56
3.5. Implementasi
Implementasi merupakan pelaksanaan tindak oleh individu, pejabat, intansi
pemerintah maupun perintah dengan tujuan untuk menggapai cita-cita yang telah
digariskan dalam keputusan tertentu. Berikut ini implementasi pada aplikasi
penjualan bahan bangunan pada PD family.
3.5.1. Code Generation
package penjualan;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GraphicsEnvironment;
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.io.File;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import javax.swing.table.DefaultTableModel;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
/**
*
* @author ferafentika
*/
57
public class Frmtransaksi extends javax.swing.JDialog {
koneksi conn= new koneksi();
String kode,tanggal, penerima,keterangan, ubah;
int jml;
Date tgl;
ResultSet resultSet;
java.sql.Statement statement;
DefaultTableModel tb;
* Creates new form Frmmaster_barang
* @param parent
* @param modal
penjualan.PetugasSession PetugasSession = new penjualan.PetugasSession();
penjualan.koneksi1 konek = new penjualan.koneksi1();
public Frmtransaksi(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
initUI();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
txttgl.setText(dateFormat.format(cal.getTime()));
txtnm_petugas.setText(PetugasSession.getU_username());
txtid_petugas.setText(Integer.toString(PetugasSession.getU_id()));
setkode();
jTextField1.hide();
txtotal.hide();
kredit.hide();
SelectPelanggan();
txtkode_barang.hide();
lblnama_barang.hide();
no_jurnal.hide();
takun.hide();
takun1.hide();
kas.hide();
keter.hide();
TxtEmpty();
}
Frmtransaksi() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods,
choose Tools | Templates.
}
private void initUI(){
getContentPane().setBackground(new Color(245, 245, 245));
Dimension windowSize = getSize();
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
58
Point centerPoint = ge.getCenterPoint();
int dx = centerPoint.x - windowSize.width / 2;
int dy = centerPoint.y - windowSize.height / 2;
setLocation(dx, dy);
}
private void SelectPelanggan(){
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet rs = stm.executeQuery("SELECT * FROM barang");
cmbid_pelanggan.addItem("Pilih");
while(rs.next()){
cmbid_pelanggan.addItem(rs.getString("id_barang") + " " + rs.getString("nama_barang"));
}
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(barang.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void TxtEmpty(){
TableEmpty();
BtnEnabled(false);
lblnama_barang.setText("-");
txtid_selected.setText("");
txtid_petugas.hide();
txtid_barang.hide();
txtjumlah_barang_max.hide();
}
private void TableEmpty(){
DefaultTableModel model = (DefaultTableModel) datatable.getModel();
int rowCount = model.getRowCount();
for (int i = rowCount - 1; i >= 0; i--) {
model.removeRow(i);
}
}
private void BtnEnabled(boolean x){
btnDelRow.setEnabled(x);
}
private void GetData_View(){
String row = Integer.toString(datatable.getSelectedRow());
txtid_selected.setText(row);
59
BtnEnabled(true);
}
public final void auto_sum(){
int total =0;
for (int i =0; i< datatable.getRowCount(); i++){
int amount = Integer.parseInt((String)datatable.getValueAt(i, 4));
total += amount;
}
txtsubtotal.setText(""+total);
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel5 = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
jLabel8 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
txtjumlah_barang = new javax.swing.JTextField();
btnok = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
datatable = new javax.swing.JTable(){
public boolean isCellEditable(int rowIndex, int colIndex) {
return false;
}
};
btnTableEmpty = new javax.swing.JButton();
lblnama_barang = new javax.swing.JLabel();
txtkode_barang = new javax.swing.JTextField();
txtid_barang = new javax.swing.JTextField();
txtjumlah_barang_max = new javax.swing.JTextField();
btnDelRow = new javax.swing.JButton();
txtid_selected = new javax.swing.JTextField();
txtotal = new javax.swing.JTextField();
txtharga = new javax.swing.JTextField();
cmbid_pelanggan = new javax.swing.JComboBox<>();
jLabel12 = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
txttgl = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
txtnm_petugas = new javax.swing.JTextField();
btnsave = new javax.swing.JButton();
txtid_petugas = new javax.swing.JTextField();
60
jLabel7 = new javax.swing.JLabel();
txtsubtotal = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
takun = new javax.swing.JTextField();
no_jurnal = new javax.swing.JTextField();
kredit = new javax.swing.JTextField();
ket = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jLabel10 = new javax.swing.JLabel();
ubay = new javax.swing.JTextField();
ukem = new javax.swing.JTextField();
jLabel11 = new javax.swing.JLabel();
takun1 = new javax.swing.JTextField();
kas = new javax.swing.JTextField();
keter = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Inventori Barang :: Transaksi Barang Masuk");
jLabel5.setFont(new java.awt.Font("Lucida Grande", 0, 24)); // NOI18N
jPanel1.setBackground(new java.awt.Color(51, 153, 255));
jLabel8.setFont(new java.awt.Font("Lucida Grande", 0, 22)); // NOI18N
jLabel8.setForeground(new java.awt.Color(182, 229, 251));
jLabel8.setText("Transaksi Penjualan");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 285,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel8)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
jPanel3.setForeground(new java.awt.Color(245, 245, 245));
jLabel4.setText("Nama Barang");
61
jLabel6.setText("Jumlah");
txtjumlah_barang.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
txtjumlah_barangKeyTyped(evt);
}
});
btnok.setText("OK");
btnok.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnokActionPerformed(evt);
}
});
datatable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"ID", "Nama Barang", "Jumlah", "Harga", "Total"
}
));
datatable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
datatable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
datatableMouseReleased(evt);
}
public void mouseClicked(java.awt.event.MouseEvent evt) {
datatableMouseClicked(evt);
}
});
datatable.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
datatableKeyReleased(evt);
}
});
jScrollPane1.setViewportView(datatable);
btnTableEmpty.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
btnTableEmpty.setText("Hapus Semua");
btnTableEmpty.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnTableEmptyActionPerformed(evt);
}
});
lblnama_barang.setText("id barang");
txtkode_barang.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
62
txtkode_barangFocusLost(evt);
}
});
btnDelRow.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
btnDelRow.setText("Hapus Yang Terpilih");
btnDelRow.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnDelRowActionPerformed(evt);
}
});
txtid_selected.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
txtid_selected.setEnabled(false);
txtotal.setText("jTextField1");
txtharga.setEditable(false);
txtharga.setText("Harga");
cmbid_pelanggan.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
cmbid_pelangganItemStateChanged(evt);
}
});
jLabel12.setText("Harga : ");
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(14, 14, 14)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,
false)
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(btnTableEmpty)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnDelRow)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(txtid_selected, javax.swing.GroupLayout.PREFERRED_SIZE, 50,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(jLabel4)
63
.addGap(18, 18, 18)
.addComponent(cmbid_pelanggan, 0, 153, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel12)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtharga, javax.swing.GroupLayout.PREFERRED_SIZE, 98,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(lblnama_barang)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtkode_barang, javax.swing.GroupLayout.PREFERRED_SIZE, 36,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtotal, javax.swing.GroupLayout.PREFERRED_SIZE, 23,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtid_barang, javax.swing.GroupLayout.PREFERRED_SIZE, 24,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(2, 2, 2)
.addComponent(txtjumlah_barang_max, javax.swing.GroupLayout.PREFERRED_SIZE, 21,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtjumlah_barang, javax.swing.GroupLayout.PREFERRED_SIZE, 58,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnok, javax.swing.GroupLayout.PREFERRED_SIZE, 58,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(0, 1, Short.MAX_VALUE)))
.addContainerGap())
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jLabel6)
.addComponent(txtjumlah_barang, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnok)
64
.addComponent(txtkode_barang, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtid_barang, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtjumlah_barang_max, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtotal, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblnama_barang))
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cmbid_pelanggan)
.addComponent(txtharga, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel12)))
.addGap(11, 11, 11)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 258,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnTableEmpty)
.addComponent(btnDelRow)
.addComponent(txtid_selected, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jLabel1.setText("Tanggal");
txttgl.setEnabled(false);
jLabel2.setText("Nama Admin");
txtnm_petugas.setEnabled(false);
btnsave.setBackground(new java.awt.Color(43, 152, 240));
btnsave.setFont(new java.awt.Font("Lucida Grande", 0, 15)); // NOI18N
btnsave.setForeground(new java.awt.Color(255, 255, 255));
btnsave.setText("Simpan ");
btnsave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnsaveActionPerformed(evt);
}
});
jLabel7.setText("Bersihkan inputan transaksi");
jLabel7.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jLabel7MouseClicked(evt);
}
});
65
txtsubtotal.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
jLabel9.setText("Total Bayar :");
takun.setText("1-1110");
no_jurnal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
no_jurnalActionPerformed(evt);
}
});
kredit.setEditable(false);
kredit.setText("0");
ket.setEditable(false);
ket.setText("Penjualan");
ket.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ketActionPerformed(evt);
}
});
jLabel3.setText("Kode Akun");
jButton1.setBackground(new java.awt.Color(43, 152, 240));
jButton1.setForeground(new java.awt.Color(255, 255, 255));
jButton1.setText("CETAK");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jLabel10.setText("Uang Bayar :");
ubay.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI
ubay.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
ubayFocusLost(evt);
}
});
ukem.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
jLabel11.setText("Uang Kembali :");
takun1.setText("1-1200");
kas.setText("Kas");
keter.setText("Penjualan Barang");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
66
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel5)
.addComponent(jLabel7))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(btnsave, javax.swing.GroupLayout.PREFERRED_SIZE, 147,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 142,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 96,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(txtsubtotal, javax.swing.GroupLayout.PREFERRED_SIZE, 301,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 96,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(ubay, javax.swing.GroupLayout.PREFERRED_SIZE, 301,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(layout.createSequentialGroup()
.addGap(11, 11, 11)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(jLabel3))
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(ket)
.addComponent(txtnm_petugas, javax.swing.GroupLayout.DEFAULT_SIZE, 154,
Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtid_petugas, javax.swing.GroupLayout.PREFERRED_SIZE, 22,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
67
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(takun, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(no_jurnal, javax.swing.GroupLayout.PREFERRED_SIZE, 57,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(kredit, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(25, 25, 25)
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addComponent(txttgl, javax.swing.GroupLayout.PREFERRED_SIZE, 160,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(takun1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(kas, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(keter, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 96,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(ukem, javax.swing.GroupLayout.PREFERRED_SIZE, 301,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
68
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(txttgl, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2)
.addComponent(txtnm_petugas, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtid_petugas, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(takun, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(no_jurnal, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(kredit, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ket, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3)
.addComponent(takun1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(kas, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(keter, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(1, 1, 1)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel7)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtsubtotal, javax.swing.GroupLayout.PREFERRED_SIZE, 36,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 20,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
69
.addComponent(ubay, javax.swing.GroupLayout.PREFERRED_SIZE, 36,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 20,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ukem, javax.swing.GroupLayout.PREFERRED_SIZE, 36,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 20,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(46, 46, 46)
.addComponent(jLabel5)
.addGap(0, 27, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(btnsave, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())))
);
pack();
}// </editor-fold>
private void btnokActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (cmbid_pelanggan.getSelectedItem().equals("")||txtjumlah_barang.getText().equals("")) {
JOptionPane.showMessageDialog(this,"Nama Barang Harus Di Isi");
}
else{
int nilai1;
int nilai2;
int nilai3;
String Hasil;
nilai1=Integer.valueOf(txtharga.getText());
nilai2=Integer.valueOf(txtjumlah_barang.getText());
70
nilai3=nilai1*nilai2;
Hasil=String.valueOf(nilai3);
txtotal.setText(Hasil);
String data1 = lblnama_barang.getText();
String data3 = txtid_barang.getText();
String data4 = txtjumlah_barang.getText();
String data5 = txtharga.getText();
String data6 = txtotal.getText();
if(!(data1.equals("")) && !(data3.equals("")) && !(data4.equals("")) && !(data5.equals("")) &&
!(data6.equals(""))){
int jumlah = Integer.parseInt(data4);
int jumlah_max = Integer.parseInt(txtjumlah_barang_max.getText());
if(jumlah <= jumlah_max){
Object[] row = { data1, data3, data4, data5 , data6 };
DefaultTableModel model = (DefaultTableModel) datatable.getModel();
model.addRow(row);
txtid_barang.setText("");
txtkode_barang.setText("");
lblnama_barang.setText("-");
txtjumlah_barang.setText("");
txtjumlah_barang_max.setText("");
txtharga.setText("");
txtotal.setText("");
cmbid_pelanggan.setSelectedItem("Pilih");
txtkode_barang.requestFocus();
}else{
JOptionPane.showMessageDialog(null, "Jumlah melebihi stok barang.");
}
}else{
JOptionPane.showMessageDialog(null, "Terdapat inputan yang kosong.");
}
}
auto_sum();
}
private void txtkode_barangFocusLost(java.awt.event.FocusEvent evt) {
// TODO add your handling code here:
String kode = txtkode_barang.getText();
if(!kode.equals("")){
//--------- Cek In jtable
Integer same_kode = 0;
DefaultTableModel model = (DefaultTableModel) datatable.getModel();
int rowCount = model.getRowCount();
for (int i = 0; i < rowCount; i++) {
if(kode.equals(datatable.getModel().getValueAt(i, 0).toString())){
71
same_kode = 1;
}
}
if(same_kode == 0){
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet sql = stm.executeQuery("SELECT * FROM barang WHERE nama_barang='"+kode+"'");
if(sql.next()){
txtid_barang.setText(sql.getString("Nama_barang"));
lblnama_barang.setText(sql.getString("id_barang"));
txtjumlah_barang_max.setText(sql.getString("stok"));
txtharga.setText(sql.getString("harga"));
}else{
JOptionPane.showMessageDialog(null, "Nama Barang Tidak Ditemukan.");
txtid_barang.setText("");
lblnama_barang.setText("-");
txtkode_barang.setText("");
txtjumlah_barang_max.setText("");
txtharga.setText("");
txtotal.setText("");
}
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Frmtransaksi.class.getName()).log(Level.SEVERE, null, ex);
}
}else{
JOptionPane.showMessageDialog(null, "id barang sudah pernah ditambah.");
txtkode_barang.setText("");
}
}else{
txtid_barang.setText("");
lblnama_barang.setText("-");
txtjumlah_barang_max.setText("");
}
}
private void btnsaveActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String row_tgl = txttgl.getText();
String row_idpetugas = txtid_petugas.getText();
72
String row_no = no_jurnal.getText();
String row_id = jTextField1.getText();
String row_kredit =kredit.getText();
String row_ket = ket.getText();
String row_akun = takun.getText();
String row_sub =txtsubtotal.getText();
String id, kode;
Integer id_barang_keluar = 0, jumlah, harga, total, stok, not_found, empty = 0;
DefaultTableModel model = (DefaultTableModel) datatable.getModel();
int rowCount = model.getRowCount();
if(rowCount > 0 && !"".equals(row_tgl) && !"".equals(row_idpetugas)){
//------- Memasukan pada tabel transaksi lihat [trbarang_] dan mengeluarkan id terakhir
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
stm.executeUpdate("INSERT INTO transaksi(id_transaksi,tanggal, id_admin) VALUES ('" + row_id + "','" +
row_tgl + "', '" + row_idpetugas + "')");
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(barang.class.getName()).log(Level.SEVERE, null, ex);
}
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
stm.executeUpdate("INSERT INTO jurnal(id_transaksi,debet,kredit,keterangan,kode_akun,tanggal,nama_akun)
VALUES ('" + row_id + "', '" + row_sub + "', '" + row_kredit + "', '" + keter.getText() + "', '" + takun1.getText() +
"', '" + row_tgl + "', '" + kas.getText() + "')");
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(barang.class.getName()).log(Level.SEVERE, null, ex);
}
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
stm.executeUpdate("INSERT INTO
jurnal(id_transaksi,debet,kredit,keterangan,kode_akun,tanggal,nama_akun) VALUES ('" + row_id + "', '" +
row_kredit + "', '" + row_sub + "', '" + keter.getText() + "', '" + row_akun + "', '" + row_tgl + "', '" + row_ket +
"')");
konek.closekoneksi();
73
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(barang.class.getName()).log(Level.SEVERE, null, ex);
}
for (int i = 0; i < rowCount; i++) {
not_found = 0;
stok = 0;
id = (datatable.getModel().getValueAt(i, 0).toString());
jumlah = Integer.parseInt((String) datatable.getModel().getValueAt(i, 2));
harga = Integer.parseInt((String) datatable.getModel().getValueAt(i, 3));
total = Integer.parseInt((String) datatable.getModel().getValueAt(i, 4));
//------- Mengurangi stok dengan data jumlah
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet sql = stm.executeQuery("SELECT stok FROM barang WHERE id_barang = '" + id + "'");
sql.next();
sql.last();
if (sql.getRow() == 1){
stok = (sql.getInt("stok") - jumlah);
} else {
not_found = 1;
}
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(data_akun.class.getName()).log(Level.SEVERE, null, ex);
}
if(not_found == 0){
//------- Mengupdate jumlah stok barang
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
stm.executeUpdate("UPDATE barang SET stok='" + stok + "' WHERE id_barang = '" + id + "'");
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(data_akun.class.getName()).log(Level.SEVERE, null, ex);
}
//------- Memasukan pada table transaksi detail
try {
74
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
stm.executeUpdate("INSERT INTO detail_penjualan (id_transaksi, id_barang, harga, jumlah, total) VALUES ('"
+ row_id + "', '" + id + "', '" + jumlah + "', '" + harga + "', '" + total + "')"); empty = 1;
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(data_akun .class.getName()).log(Level.SEVERE, null, ex);
}
}else{
JOptionPane.showMessageDialog(null, "Sistem tidak menemukan barang dengan kode = " + id , "Barang " + id +
" Gagal Disimpan", JOptionPane.ERROR_MESSAGE);
}
//------- Opsi jika terdapat barang yang belum satupun di masukan
if(empty == 0){
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
stm.executeUpdate("DELETE FROM transaksi WHERE id_transaksi = '" + row_id + "'");
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(data_akun.class.getName()).log(Level.SEVERE, null, ex);
}
}else{
}
}
JOptionPane.showMessageDialog(null, "Berhasil menyimpan data transaksi");
}else{
JOptionPane.showMessageDialog(null, "Terdapat inputan yang kosong.");
}
}
private void jLabel7MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
TxtEmpty();
}
private void btnTableEmptyActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int ok = JOptionPane.showConfirmDialog(null, "Anda yakin ingin menghapus semua baris ini?",
"Konfirmasi", JOptionPane.OK_CANCEL_OPTION);
if(ok==0) {
TableEmpty();
75
}
}
private void datatableMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
GetData_View();
}
private void btnDelRowActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int ok = JOptionPane.showConfirmDialog(null, "Anda yakin ingin menghapus baris ini?", "Konfirmasi",
JOptionPane.OK_CANCEL_OPTION);
if(ok==0) {
int row = Integer.parseInt(txtid_selected.getText());
DefaultTableModel model = (DefaultTableModel) datatable.getModel();
model.removeRow(row);
BtnEnabled(false);
}
}
private void datatableMouseReleased(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
GetData_View();
}
private void datatableKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
GetData_View();
}
private void txtjumlah_barangKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
char c = evt.getKeyChar();
if(!(Character.isDigit(c)) && !(c == KeyEvent.VK_BACK_SPACE)){
JOptionPane.showMessageDialog(null, "Inputan hanya boleh angka", "Ilegal Input",
JOptionPane.ERROR_MESSAGE);
evt.consume();
}
}
private void no_jurnalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void ketActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
76
// TODO add your handling code here:
try {
HashMap hash = new HashMap();
hash.put("id", jTextField1.getText());
hash.put("ubay", ubay.getText());
hash.put("ukem", ukem.getText());
File file = new File("src/Laporan/bukti_trans.jrxml");
JasperDesign jasperDesign = JRXmlLoader.load(file);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hash, konek.openkoneksi());
JasperViewer.viewReport(jasperPrint, false);
}catch (ClassNotFoundException | JRException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
}
this.hide();
}
private void ubayFocusLost(java.awt.event.FocusEvent evt) {
// TODO add your handling code here:
int nilai1;
int nilai2;
int nilai3;
String total;
nilai1=Integer.valueOf(txtsubtotal.getText());
nilai2=Integer.valueOf(ubay.getText());
nilai3=nilai2-nilai1;
total=String.valueOf(nilai3);
ukem.setText(total);
}
private void cmbid_pelangganItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
String[] nama_kategori = cmbid_pelanggan.getSelectedItem().toString().split("\\s+");
String kode = nama_kategori[0];
if(!kode.equals("Pilih")){
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet sql = stm.executeQuery("SELECT * FROM barang WHERE
id_barang='"+kode+"'");
if(sql.next()){
txtharga.setText(sql.getString("harga"));
txtjumlah_barang_max.setText(sql.getString("stok"));
txtid_barang.setText(sql.getString("nama_barang"));
lblnama_barang.setText(sql.getString("id_barang"));
}
77
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(barang.class.getName()).log(Level.SEVERE, null, ex);
}
}else{
lblnama_barang.setText("");
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Frmtransaksi.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Frmtransaksi.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Frmtransaksi.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Frmtransaksi.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
}
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
78
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
/* Create and display the dialog */
java.awt.EventQueue.invokeLater(() -> {
Frmtransaksi dialog = new Frmtransaksi(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
});
}
// Variables declaration - do not modify
private javax.swing.JButton btnDelRow;
private javax.swing.JButton btnTableEmpty;
private javax.swing.JButton btnok;
private javax.swing.JButton btnsave;
private javax.swing.JComboBox<String> cmbid_pelanggan;
private javax.swing.JTable datatable;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
79
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField kas;
private javax.swing.JTextField ket;
private javax.swing.JTextField keter;
private javax.swing.JTextField kredit;
private javax.swing.JLabel lblnama_barang;
private javax.swing.JTextField no_jurnal;
private javax.swing.JTextField takun;
private javax.swing.JTextField takun1;
private javax.swing.JTextField txtharga;
private javax.swing.JTextField txtid_barang;
private javax.swing.JTextField txtid_petugas;
private javax.swing.JTextField txtid_selected;
private javax.swing.JTextField txtjumlah_barang;
private javax.swing.JTextField txtjumlah_barang_max;
private javax.swing.JTextField txtkode_barang;
private javax.swing.JTextField txtnm_petugas;
private javax.swing.JTextField txtotal;
private javax.swing.JTextField txtsubtotal;
private javax.swing.JTextField txttgl;
private javax.swing.JTextField ubay;
private javax.swing.JTextField ukem;
// End of variables declaration
void setkode(){
try {
ResultSet res = conn.ambilData("select * from transaksi order by id_transaksi desc");
if (res.next()) {
String nofak = res.getString("id_transaksi").substring(3);
String AN = "" + (Integer.parseInt(nofak) + 1);
String Nol = "";
if(AN.length()==1)
{Nol = "000";}
else if(AN.length()==2)
{Nol = "00";}
else if(AN.length()==3)
{Nol = "0";}
else if(AN.length()==4)
{Nol = "";}
jTextField1.setText("TRS" + Nol + AN);
80
} else {
jTextField1.setText("TRS0001");
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
}
3.5.2. Blackbox Testing
1. Form Login
Tabel III.9
Hasil Pengujian Blackbox Testing Form Login
No Skenario
Pengujian
Test Case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1 Mengetikkan
Username di isi dan
password tidak di
isi atau kosong
kemudian klik
tombol login
Username:
(Admin)
Password:
(kosong)
Sistem akan
menolak
akses dan
menampilkan
pesan
“password
harus di isi“
Sesuai harapan Valid
2 Mengetikkan
Username dan
password dengan
data yang benar
kemudian klik
tombol login
Username:
Admin
Password:
(12345)
Sistem akan
menerima
dan masuk
kehalaman
menu utama
Sesuai harapan Valid
81
2. Form transaksi
Tabel III.10
Hasil Pengujian Blackbox Testing Form transaksi
No Skenario
Pengujian
Test Case Hasil ysng di
harapkan
Hasil
pengujian
Kesimpulan
1 nama barang
tidak diisi klik
oke
nama barang
(Kosong)
Sistem akan
menolak dan
menampilkan
“nama barang
harus diisi”
Sesuai
harapan
Valid
2 Data tidak diisi
klik simpan
nama barang
(Kosong)
Jumlah
(Kosong)
Sistem akan
menolak dan
menampilkan
pesan
“terdapat
inputan yang
ksosong”
Sesuai
harapan
Valid
3 Nama barang
dan jumlah
diisi semua
klik simpan
nama barang
(BRG0001)
Jumlah
(2)
Sistem akan
menerima
dan
menyimpan
data lalu
menampilkan
bukti
penjualan
Sesuai
harapan
Valid
4 Id barang dan
jumlah diisi
semua klik
simpan dan
Cetak
Id barang
(BRG0001)
Jumlah
(2)
Total bayar
(20)
Uang bayar
(100)
Uang kembali
(80)
Sistem akan
menerima
dan
menyimpan
data lalu
menampilkan
bukti
penjualan
Sesuai
harapasn
Valid
82
3.5.3. Spesifikasi Hardware dan Software
Tabel 111.11
Spesifikasi Hardware dan Software
Kebutuhan Keterangan Sistem Windows 32 bit
Processor Intel(R), Celeron (R). CPU 1007U @1.50GHz 150
GHz.
RAM 2Gb
Harddisk 400 GB
Monitor 14 “LED
Printer Inject
Keyboard 108 key
Mouse Standar
Software Kebutuhan menjalankan aplikasi secara local Bahasa
Script programming : Netbeans 8.1
Web Server : XAMPP Control Panel v3.2.1
DBMS : MySQL
Web Browser : Google Chrome