bab iii pembahasan...14 bab iii pembahasan 3.1. tinjauan perusahaan proses penjualan dalam suatu...
TRANSCRIPT
14
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Proses penjualan dalam suatu perdagangan secara garis besar ditentukan
oleh adanya permintaan dari pasar dan tersedianya barang yang siap dijual.
Seiring dengan perkembangan jaman, proses penjualan ini semakin rumit dengan
adanya peraturan-peraturan baru dalam perdagangan itu sendiri.
Satria Celuller adalah perusahaan yang bergerak dalam bidang pengisian
pulsa yang aman, tercepat dan terpercaya. Selain itu, Satrial Celuller juga menjual
aksesoris handphone. karyawan yang bekerja di kounter ini dapat dikatakan
sebagai tenaga profesional, layanan customer services yang responsif sehingga
terjalin komunikasi yang baik dengan pelanggan maupun dengan rekan bisnis
yang memanfaatkan jasa layanan perusahaan ini. Dalam perjalanannya Satria
Celuller ini selalu menerima saran dan kritik dari para konsumen agar perusahaan
ini menjadi lebih baik lagi.
Untuk itulah terlebih dahulu akan membahas mengenai tinjauan perusahaan
sejarah, tentang berdirinya perusahaan serta strtuktur organisasi perusahaan ini
sebagai berikut.
15
3.1.1. Sejarah Perusahaan
Satria celuller didirikan pada tahun 2018 oleh Agung yang beralamat di kp.
Kalioyod, Wancimekar, Kecamatan Kotabaru, Kabupaten Karawang, Jawa Barat
41374. Satria Celuller ini bergerak dalam bidang penjualan pulsa, kouta dan kartu
perdana. Rentang waktu dari tahun 2018 hingga sekarang, Satria Celuller telah
mempunyai 8 cabang yang tersebar di sekitaran wilayah Cikampek, sedangkan
kantor pusatnya berada di jalan kp. Kalioyod wancimekar, Kec. Kotabaru, Kab.
Karawang.
Adapun pemilihan perusahaan ini dilihat dari segi lokasi, perusahaan ini
menempati lokasi yang strategis sehingga para pelanggan dapat dengan nyaman
melalukan aktivitas jual beli. Sistem kerjanya terdapat jam kerja bagi para
karyawannya yaitu dimulai dari jam 09.00-22.00, lalu terdapat pertukaran jam
kerja bagi para karyawan sehingga yang bertugas menjaga kounter bergantian.
Adapun Visi dan Misi dari perusahaan Satria Celuller sebagai berikut;
1. Visi
Menuju konter yang dapat memberikan manfaat kepada manusia melalui
teknologi komunikasi dan menjadikan pusat penjualan jasa komunikasi
yang unggul, terpercaya dan amanah.
2. Misi
a. Memberikan pelayanan kepada konsumen Satria Celuller secara mudah,
harga terjangkau, cepat dan terpecaya sehingga masyarakat dapat
melalukan transaksi pembelian maupun pelayanan jasa yang
memuaskan
16
b. Segera menindaklanjuti konsumen yang komplen terhadap pembelian
aksesori handphone yang pernah dibeli di Satria Celuller
c. Berkomitmen untuk mengembangkan produk agar usaha kamis sukses
dan berkembang pesat.
3.1.2. Struktur Organisasi dan Fungsi
Struktur organisasi merupakan salah satu alat untuk mencapai tujuan secara
efektif, struktur organisasi yang baik akan memudahkan kordinasi dan komunikasi
atas semua aktivitas untuk mencapai tujuan. Struktur organisasi merupakan
hubungan yang teratur diantara berbagai sektor atau fungsi yang perlu untuk
mencapai tujuan dan tanggung jawab serta wewenang dalam suatu organisasi.
Dengan tersusunya struktur secara fleksibel dan tegas maka setiap bagian dan
seksi yang ada pada usaha tersebut, melalukan tugas dan wewenangnya masing-
masing. Satria Celuller sebagai suatu organisasi usaha dan kegiatannya telah
merumuskan tentang pembagian tugas, wewenang dan tanggungjawab dalam
setiap bidangnya dan juga lebih mengutamakan spesialisasi pekerjaan agar lebih
eknomis. Untuk lebih jelasnya dapat dilihat pada struktur organisasi yang terdapat
pada Satria Celuller sebagai berikut:
17
Struktur organisasi Satria Celuller
Sumber organisasi Satria Celuller
Gambar III.1 Struktur Organisasi Satria Celluler
Fungsi dari tiap-tiap bagian adalah sebagai berikut;
1. Pemilik Kounter
Tugas dan tanggungjawab:
a. Melakukan pengawasan menyeluruh terhadap kegiatan aktivitas
penjualan di kounter.
b. Memberikan penugasan yang layak kepada bagian di bawahnya sesuai
dengan bidang pekerjaan masing-masing.
c. Melakukan pemantauan.
d. Merencanakan dan mengembangkan sumber-sumber pendapatan serta
pembelanjaan.
e. Memutuskan kebijakan tertinggi usaha ponsel tersebut.
f. Bertanggungjawab terhadap keuntungan dan kerugian yang terjadi
g. Memberhentikan karyawan
Pemilik Kounter
Keuangan
ADM dan kasir
kepala bagian konter
bagian penjualan
18
2. Keuangan
Tugas dan tanggungjawab
a. Melakukan penilaian dan evaluasi secara terus menerus mengenai
kinerja karyawan.
b. Mengelola dan mengatur penggajian untuk memastikan keakuratan
waktu dan efesiensi distribusi penggajian karywan.
c. Mengarsip seluruh dokumen transaksi untuk menjaga ketertiban
administrasi dan memudahkan penelusuran dokumen .
d. Melakukan stok opname setiap akhir bulan untuk melihat ada atau
tidaknya selisih jumlah barang dan catatan dikeuangan
3. Bagian Administrasi dan Kasir
Tugas dan tanggungjawab
a. Bertanggungjawa terhadap aktivitas penjualan
b. Mengupayakan pelayanan yang optimal kepada konsumen
c. Melakukan perhitungan uang kas setiap hari
d. Mencatat barang-barang yang habis dan barang return
e. Melakukan pemeliharaan barang-barang yang ada di kounter
f. Bertanggungjawab atas kebersihan, kenyamanan, kerapian dan tata
letak aksesoris hp yang baik dan menarik.
4. Kepala Bagian Konter
Tugas dan tanggungjawab
a. Bertugas sebagai pemimpin team penjualan, mengkoordinir tim
penjualan agar dapat meningkatkan tingkat penjualan dan apakah
penjualan sesuai target.
19
5. Bagian Penjualan
Tugas dan tanggungjawab
a. Merupakan bagian yang melayani konsumen, maka tugas bagian
penjualan yang paling utama adalah melakukan proses penjualan.
3.2. Tinjauan Kasus
3.2.1. Proses Bisnis Berjalan
Proses diawali dengan konsumen memilih pesanan barang kepada bagian
penjualan, setelah bagian penjualan menerima informasi terkait barang yang
dipesan, bagian penjualan akan megecek ketersediaan barang. Apabila barang
yang dipesan tidak ada maka akan diberitahukan kepada konsumen bahwa barang
pesanan tidak ada dan konsumen membatalkan pesanan, jika barang pesanan ada
maka bagian penjualan akan memproses pesanan dan memberitahukan terkait
informasi harga pesanan kepada konsumen. Seteleah konsumen mengetahui harga
pesanan konsumen akan membayar biaya secara tunai kepada bagian penjualan,
setelah bagian penjualan menerima pembayaran dari konsumen, bagian penjualan
akan menyerahkan pesanan kepada konsumen, kemudian mecatat transaksi
tersebut untuk dibuatkan laporan yang akan di serahkan kepada kepala karyawan
di bagian konter tersebut. Setelah kepala karyawan menerima laporan penjualan,
maka akan mencatat stok barang yang ada di konter tersebut, dan kepala karyawan
akan memberikan laporan penjualan serta laporan stok barang kepada bagian
keuangan. Setelah bagian keuangan menerima laporan tersebut selanjutnya akan
mencatat hasil penjualan dan sisa barang yang kemudian akan diserahkan kepada
pemilik konter.
21
3.2.3. Dokumen Masukan
3.2.4. Dokumen Keluaran
1. Laporan Penjualan
Nama Dokumen : Laporan Penjualan
Fungsi : Sebagai bukti penjualan barang
Sumber : bagian penjualan
Tujuan : Bagian keuangan
Frekuensi : 1 Hari penjualan
Media : Kertas
Jumlah Rangkap : 1 Lembar
Bentuk : Lampiran A-1
1. Laporan keuangan
Nama Dokumen : Laporan Keuangan
Fungsi : Sebagai bukti pendapatan
Sumber : Bagian keuangan
Tujuan : Pemilik konter
Frekuensi : 1 Bulan
Media : Kertas
Jumlah Rangkap : 1 Lembar :
22
3.2.5. Permasalahan pokok
Sistem penjualan yang telah berjalan pada Satria Celluler umumnya telah
berjalan dengan baik. Dalam proses penjualan, layanan, dan prmbuatan laporan.
Tetapi penulis melihat adanya kelemahan di sistem tersebut.
Adapun kekurangan tersebut adalah sebagai berikut :
1. Sering terjadi selisih dalam masalah stock barang di konter dikarenakan
terkadang lupa potong stock.
2. Sering keliru dalam menulis laporan, dikarenakan dalam 1 laporan terdapat
semua penjualan.
3. Laporan penjualan terkadang hilang atau rusak terkena air, sehingga
karyawan harus menghitung ulang semua penjualan di hari tersebut.
3.2.6. Pemecahan Masalah
1. Karyawan atau karyawati yang bertugas di bagian penjualan harus
memotong stok setiap barang keluar.
2. Karyawan atau karyawati harus lebih teliti dalam menulis laporan penjualan.
3. Dibuatnya laporan yang berbeda-beda dari setiap penjualan.
4. Ditambahkan karyawan bagian gudang.
5. Dibuatnya sistem penjualan yang sudah terkomputer, agar kinerja bisa lebih
mudah dalam melaporkan penjualan dan penyimpanan data dalam
penjualan.
23
3.3. Analisa Kebutuhan Software
Analisa kebutuhan software merupakan langkah awal untuk menentukan
perangkat lunak seperti apa yang akan dihasilkan, ketika melaksanakan sebuah
proyek pembuatan prangkat lunak. Dalam melakukan analisis kebutuhan
menentukan keberhasilan atas terciptanya perangkat lunak yang baik serta sesuai
dengan kebutuhan pengguna.
3.3.1. Analisa Kebutuhan
A. Halaman pemilik
A.1. Pemilik dapat melakukan login
A.2. Pemilik dapat mengelola data pengguna.
A.3. Pemilik dapat mengganti kata sandi.
A.4. Pemilik dapat mengelola data barang
A.5. Pemilik dapat mengelola data penjualan
A.6. Pemilik dapat mengelola data pembelian
A.7. Pemilik dapat melakukan logout.
B. Halaman bagian kasir
B.1. Kasir dapat melakukan login
B.2. Kasir dapat melakukan transaksi penjualan
B.3. Kasir dapat mencetak laporan penjualan
B.4. Kasir dapat mengganti kata sandi
B.5. Kasir dapat melakukan logout
C. Halaman bagian persediaan
C.1. Persediaan dapat melakukan login
C.2. Persediaan dapat melihat halaman data barang
24
C.3. Persediaan dapat menambah data barang
C.4. Persediaan dapat melihat halaman supplier
C.5. Persediaan dapat menambah data supplier
C.6. Persediaan dapat mencetak laporan barang
C.7. Persediaan dapat mencetak laporan pembelian
C.8. Persediaan dapat mengganti kata sandi
C.9. Persediaan dapat melakukan logout
25
3.3.2. Use Case Diagram
1. Use Case Halaman Pemilik
Gambar III.3 Use Case Diagram Halaman Pemilik
26
Tabel III.1
Deskripsi Halaman Pemilik
Use Case Narative Halaman Pemilik
Tujuan Pemilik dapat melihat data yang ada
dalam sistem halaman Pemilik.
Deskripsi Sistem ini memungkinkan aktor
untuk masuk ke halaman pemilik
yang di dalamnya ada data user, data
pembelian, data penjualan, dan data
barang
Skenario Utama
Aktor Pemilik
Kondisi Awal Pemilik telah melakukan login
Aksi Aktor Reaksi Sitem
1. Aktor akan memilih data
pengguna
sistem ini akan menampilkan data
pengguna
2. Aktor akan memilih data
pengguna
sistem ini akan menampilkan data
pengguna
3. Aktor akan memilih ganti
password
sistem ini akan mengganti data
pengguna
4. Aktor akan memilih data barang sistem ini akan menampilkan data barang
5. Aktor akan memilih data penjualan sistem ini akan menampilkan data penjualan
6. Aktor akan memilih data pembelian sistem ini akan menampilkan data pembelian
7. Aktor akan memilih logout sistem ini akan keluar ke menu login
28
Tabel III.2
Deskripsi Halaman Kasir
Use Case Narative Halaman Kasir
Tujuan Kasir dapat melihat data yang ada dalam sistem halaman kasir
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke halaman kasir yang didalamnya ada data penjualan
Skenario Utama
Aktor Kasir
Kondisi Awal Kasir telah melakukan login
Aksi Aktor Reaksi Sistem
1. Aktor akan memilih penjualan sistem ini akan menampilkan
penjualan
2. Aktor akan mencetak penjualan sistem ini akan menampilkan data
penjualan
3. Aktor akan memilih ganti
password
sistem ini akan mengganti data
pengguna
4. Aktor akan memilih logout sistem ini akan keluar ke menu login
30
Tabel III.3
Deskripsi Halaman Persediaan
Use Case Narative Halaman Persediaan
Tujuan Persediaan dapat melihat data yang
ada dalam sistem halaman persediaan
Deskripsi Sistem ini memungkinkan aktor
untuk masuk ke halaman persediaan
yang didalamnya ada data barang,
dan data supplier
Skenario Utama
Aktor persediaan
Kondisi Awal persediaan telah melakukan login
Aksi Aktor Reaksi Sistem
1. Aktor akan memilih data barang sistem ini akan menampilkan data
barang
2. Aktor akan memilih menambah
barang
sistem ini akan menampilkan
pembelian barang
3, Aktor akan memilih supplier sistem ini akan menampilkan data
supplier dan menambah supplier
4. Aktor akan memilih pembelian sistem ini akan menampilkan
pembelian
5. aktor akan mencetak data
pembelian
sistem ini akan menampilkan data
pembelian barang
6. Aktor akan memilih ganti sandi sistem ini akan mengganti data
pengguna
7. Aktor akan memilih logout sistem ini akan keluar ke menu login
31
3.3.3. Activity Diagram
1. Activity Diagram Halaman Pemilik
Gambar III.5 Activity Diagram Halaman Pemilik
47
3.4. Desain
3.4.1. Entity Relationship Diagram (ERD)
username
user
nama
noid
hakakses
password
mengelola
penjualan
noid
notrans
tgl
pembeli
kdbrngnmbrng
jumlah
total
harga
pembelian
barang
mengelola
mengelola
noid
notrans tgl nmsupplier
kdbrng nmbrng hbeli
jumlah
total
kdbrng
nmbrng hjualjenis
stock
hakakses kdbrng
Gambar III.21 Entity Relationship Diagram
48
3.4.2. Logical Record Structure (LRS)
Notrans
Tgl
Nmsupplier
Kdbrng
Nmbrng
hbeli
Jumlah
total
pembelian
Noid
Username
Nama
Password
hakakses
user
Kdbrng
Nmbrng
Jenis
Hjual
stock
barang
Notrans
Tgl
pembeli
Kdbrng
Nmbrng
harga
Jumlah
total
penjualan
Gambar III.22 Logical Record Structure (LRS)
3.4.3. Spesifikasi File
Untuk dapat menyimpan data masukan dan membantu pengolahan data,
maka digunakan database dengan nama satriacell. Berikut adalah spesifikasi file
dalam sistem penjualan pada satria celluler.
a. Spesifikasi File User
Nama Database : satriacell
Nama File : tbuser
Tipe File : file master
Akses File : random
49
Panjang Record : 60 karakter
Kunci File : noid
Tabel III.4
Spesifikasi File Tabel User
No Elemen Data Akronim Tipe Panjang Keterangan
1 Noid noid varchar 10 Primary Key
2 Username username varchar 30
3 Nama nama varchar 20
4 Password password varchar 10
5 Hakakses hakakses enum "Pemilik"
"Kasir" "Persediaan"
b. Spesifikasi File penjualan
Nama Database : satriacell
Nama File : tbjual
Tipe File : file master
Akses File : random
Panjang Record : 142 karakter
Kunci File : notrans
Tabel III.5
Spesifikasi File Tabel User
No Elemen Data Akronim Tipe Panjang Keterangan
1 No Transaksi notrans varchar 8 Primary Key
2 Tanggal tgl date
3 Pembeli pembeli varchar 20
4 Kode Barang kdbrng varchar 8
5 Nama Barang nmbrng varchar 40
6 Harga harga int 11
7 Jumlah jumlah int 11
8 Total total int 11
c. Spesifikasi File pembelian
Nama Database : satriacell
50
Nama File : tbbeli
Tipe File : file master
Akses File : random
Panjang Record : 120 karakter
Kunci File : notrans
Tabel III.6
Spesifikasi File Tabel User
No Elemen Data Akronim Tipe Panjang Keterangan
1 No Transaksi notrans varchar 8 Primary Key
2 Tanggal tgl date
3 Nama
Supplier nmsupplier varchar 20
4 Kode Barang kdbrng varchar 8
5 Nama Barang nmbrng varchar 40
6 Harga Beli hbeli int 11
7 Jumlah jumlah int 11
8 Total total int 11
d. Spesifikasi File barang
Nama Database : satriacell
Nama File : kdbrng
Tipe File : file master
Akses File : random
Panjang Record : 80 karakter
Kunci File : kdbrng
51
Tabel III.7
Spesifikasi File Tabel User
No Elemen Data Akronim Tipe Panjang Keterangan
1 Kode Barang kdbrng varchar 8 Primary Key
2 Nama Barang nmbrng varchar 40
3 Jenis jenis varchar 10
4 Harga Jual hjual int 11
5 Stok stock int 11
3.4.4. Sequence Diagram
Gambar III.19 Sequence Diagram Penjualan
52
3.4.5. Deployment Diagram
Gambar III. 20 Deployment Diagram Program
3.4.6. User Interface
1. Halaman Login
Gambar III. 21 Halaman Login
57
6. Halaman Supplier
Gambar III. 26 Halaman Supplier
7. Halaman Laporan Barang
Gambar III. 27 Halaman Laporan Barang
58
8. Halaman Laporan Pembelian
Gambar III. 28 Halaman Laporan Pembelian
9. Halaman Laporan Penjualan
Gambar III. 29 Halaman Laporan Penjualan
59
10. Halaman Data pengguna
Gambar III. 30 Halaman Data pengguna
11. Halaman Ganti Password
Gambar III. 31 Halaman Ganti Password
60
3.5.Implementasi
3.5.1. Code Generation
Form Menu Penjualan
package GUI;
import java.awt.event.KeyEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
public class Penjualan extends javax.swing.JFrame {
private DefaultTableModel TabModel;
61
Connection conn;
Statement st;
ResultSet rs;
/**
* Creates new form Penjualan
*/
public Penjualan() {
initComponents();
siapIsi(false);
tombolNormal();
stockTF.setVisible(false);
subtotTF.setVisible(false);
Object header[]={"Kode Barang","Nama Barang","Harga
Jual","Jumlah","Subtotal"};
TabModel=new DefaultTableModel(null, header);
}
private void bersih(){
noTF.setText("");
pembeliTF.setText("");
kodeTF.setText("");
namaTF.setText("");
62
hjualTF.setText("");
jumlahTF.setText("");
subtotTF.setText("0");
totalTF.setText("0");
ubayTF.setText("0");
ukemTF.setText("0");
}
private void siapIsi(boolean a){;
noTF.setEnabled(a);
pembeliTF.setEnabled(a);
kodeTF.setEnabled(a);
namaTF.setEnabled(a);
hjualTF.setEnabled(a);
jumlahTF.setEnabled(a);
totalTF.setEnabled(a);
ubayTF.setEnabled(a);
ukemTF.setEnabled(a);
}
private void tombolNormal(){
tambahBT.setEnabled(true);
simpanBT.setEnabled(false);
tbhBrgBT.setEnabled(false);
63
krgBrgBT.setEnabled(false);
cariBrgBT.setEnabled(false);
}
private void otomatis(){
try {
setKoneksi();
String sql="select right (notrans,2)+1 from tbjual";
ResultSet rs=st.executeQuery(sql);
if(rs.next()){
rs.last();
String no=rs.getString(1);
while (no.length()<3){
no="0"+no;
noTF.setText("S"+no);}
}
else
{
noTF.setText("S001");
}
} catch (Exception e)
{
}
}
64
public void ambildata() {
try {
jTable1.setModel(TabModel);
String kolom1 = kodeTF.getText();
String kolom2 = namaTF.getText();
String kolom3 = hjualTF.getText();
String kolom4 = jumlahTF.getText();
String kolom5 = subtotTF.getText();
String[] kolom = {kolom1, kolom2, kolom3, kolom4, kolom5};
TabModel.addRow(kolom);
}
catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Data gagal disimpan");
}
}
private void simpan(){
setKoneksi();
try {
Date skrg=new Date();
SimpleDateFormat frm=new SimpleDateFormat("yyyy-MM-dd");
String tgl=frm.format(skrg);
65
int t = jTable1.getRowCount();
for(int i=0;i<t;i++)
{
String kdbrng=jTable1.getValueAt(i, 0).toString();
String nmbrng=jTable1.getValueAt(i, 1).toString();
int harga= Integer.parseInt(jTable1.getValueAt(i, 2).toString());
int jml= Integer.parseInt(jTable1.getValueAt(i, 3).toString());
int subtot= Integer.parseInt(jTable1.getValueAt(i, 4).toString());
String sql ="insert into tbjual
values('"+noTF.getText()+"','"+tgl+"','"+pembeliTF.getText()+"','"
+kdbrng+"','"+nmbrng+"','"+harga+"','"+jml+"','"+subtot+"','"+totalTF.getText()+
"','"+ubayTF.getText()+"','"+ukemTF.getText()+"')";
st.executeUpdate(sql);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Simpan transaksi penjualan
gagal");
}
}
private void hapusdatadaritabel() {
66
int a = jTable1.getSelectedRow();
if(a == -1){
}TabModel.removeRow(a);
}
private void tampilBarang(){
Object header[]={"Kode Barang","Nama Barang","Jenis","Harga
Jual","Stock"};
DefaultTableModel data=new DefaultTableModel(null,header);
jTable2.setModel(data);
setKoneksi();
String sql="select*from tbbrng";
try {
ResultSet rs=st.executeQuery(sql);
while (rs.next())
{
String kolom1=rs.getString(1);
String kolom2=rs.getString(2);
String kolom3=rs.getString(3);
String kolom4=rs.getString(4);
String kolom5=rs.getString(5);
String kolom[]={kolom1,kolom2,kolom3,kolom4,kolom5};
data.addRow(kolom);
67
}
} catch (Exception e) {
}
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jDialog1 = new javax.swing.JDialog();
jPanel3 = new javax.swing.JPanel();
jScrollPane3 = new javax.swing.JScrollPane();
jTable2 = new javax.swing.JTable();
jPanel5 = new javax.swing.JPanel();
jLabel14 = new javax.swing.JLabel();
jPanel6 = new javax.swing.JPanel();
68
cariTF = new javax.swing.JTextField();
jButton7 = new javax.swing.JButton();
jPanel1 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
noTF = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
pembeliTF = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
kodeTF = new javax.swing.JTextField();
namaTF = new javax.swing.JTextField();
hjualTF = new javax.swing.JTextField();
cariBrgBT = new javax.swing.JButton();
krgBrgBT = new javax.swing.JButton();
tbhBrgBT = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jumlahTF = new javax.swing.JTextField();
simpanBT = new javax.swing.JButton();
tambahBT = new javax.swing.JButton();
69
ukemTF = new javax.swing.JTextField();
totalTF = new javax.swing.JTextField();
ubayTF = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
tglTF = new com.toedter.calendar.JDateChooser();
subtotTF = new javax.swing.JTextField();
stockTF = new javax.swing.JTextField();
jDialog1.setMinimumSize(new java.awt.Dimension(460, 386));
jDialog1.setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MOD
AL);
jDialog1.setResizable(false);
jDialog1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jDialog1MouseClicked(evt);
}
});
jTable2.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
70
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jTable2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTable2MouseClicked(evt);
}
});
jScrollPane3.setViewportView(jTable2);
jPanel5.setBackground(new java.awt.Color(255, 255, 255));
jPanel5.setBorder(javax.swing.BorderFactory.createLineBorder(new
java.awt.Color(0, 0, 0)));
jLabel14.setFont(new java.awt.Font("Tahoma", 1, 20)); // NOI18N
jLabel14.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel14.setText("Data Barang");
71
javax.swing.GroupLayout jPanel5Layout = new
javax.swing.GroupLayout(jPanel5);
jPanel5.setLayout(jPanel5Layout);
jPanel5Layout.setHorizontalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addComponent(jLabel14, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addComponent(jLabel14, javax.swing.GroupLayout.DEFAULT_SIZE,
35, Short.MAX_VALUE)
);
jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(null,
"Ketikan Kriteria Pencarian",
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_POSITION, new
java.awt.Font("Tahoma", 1, 12))); // NOI18N
72
cariTF.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
cariTFKeyPressed(evt);
}
});
jButton7.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jButton7.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Gambar/Pilih.gif"))); // NOI18N
jButton7.setText("Cari");
jButton7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton7ActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel6Layout = new
javax.swing.GroupLayout(jPanel6);
jPanel6.setLayout(jPanel6Layout);
jPanel6Layout.setHorizontalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
73
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel6Layout.createSequentialGroup()
.addComponent(cariTF)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton7,
javax.swing.GroupLayout.PREFERRED_SIZE, 85,
javax.swing.GroupLayout.PREFERRED_SIZE))
);
jPanel6Layout.setVerticalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel6Layout.createSequentialGroup()
.addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.BASELINE)
.addComponent(cariTF,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton7,
javax.swing.GroupLayout.PREFERRED_SIZE, 24,
javax.swing.GroupLayout.PREFERRED_SIZE))
74
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
javax.swing.GroupLayout jPanel3Layout = new
javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane3,
javax.swing.GroupLayout.DEFAULT_SIZE, 397, Short.MAX_VALUE)
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel3Layout.createSequentialGroup()
75
.addComponent(jPanel5,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane3,
javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel6,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
);
javax.swing.GroupLayout jDialog1Layout = new
javax.swing.GroupLayout(jDialog1.getContentPane());
jDialog1.getContentPane().setLayout(jDialog1Layout);
jDialog1Layout.setHorizontalGroup(
jDialog1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD
ING)
76
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
jDialog1Layout.setVerticalGroup(
jDialog1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD
ING)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOS
E);
setResizable(false);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
public void windowOpened(java.awt.event.WindowEvent evt) {
formWindowOpened(evt);
}
});
77
jPanel1.setBackground(new java.awt.Color(255, 255, 255));
jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanel2.setBackground(new java.awt.Color(0, 153, 255));
jPanel2.setBorder(javax.swing.BorderFactory.createLineBorder(new
java.awt.Color(0, 153, 255)));
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
jLabel1.setForeground(new java.awt.Color(255, 255, 255));
jLabel1.setText("Transaksi Jual Barang");
javax.swing.GroupLayout jPanel2Layout = new
javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1,
javax.swing.GroupLayout.PREFERRED_SIZE, 296,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(352, Short.MAX_VALUE))
78
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addComponent(jLabel1,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, 48, Short.MAX_VALUE)
);
jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0,
660, -1));
jLabel2.setText("No. Trans");
jLabel2.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(20,
71, 61, -1));
noTF.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
noTF.setDisabledTextColor(new java.awt.Color(51, 51, 255));
jPanel1.add(noTF, new org.netbeans.lib.awtextra.AbsoluteConstraints(91,
68, 113, -1));
jLabel3.setText("Pembeli");
79
jLabel3.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
jPanel1.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(20,
106, 61, -1));
pembeliTF.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
pembeliTFKeyTyped(evt);
}
});
jPanel1.add(pembeliTF, new
org.netbeans.lib.awtextra.AbsoluteConstraints(91, 106, 270, -1));
jLabel5.setText("Kode Barang");
jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(20,
151, -1, -1));
jLabel6.setText("Nama Barang");
jPanel1.add(jLabel6, new
org.netbeans.lib.awtextra.AbsoluteConstraints(150, 150, 110, -1));
jLabel7.setText("Harga Jual");
jPanel1.add(jLabel7, new
org.netbeans.lib.awtextra.AbsoluteConstraints(370, 150, 90, -1));
80
jLabel8.setText("Jumlah");
jPanel1.add(jLabel8, new
org.netbeans.lib.awtextra.AbsoluteConstraints(480, 150, 50, -1));
jPanel1.add(kodeTF, new org.netbeans.lib.awtextra.AbsoluteConstraints(20,
170, 90, -1));
jPanel1.add(namaTF, new
org.netbeans.lib.awtextra.AbsoluteConstraints(150, 170, 210, 20));
hjualTF.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
hjualTFKeyTyped(evt);
}
});
jPanel1.add(hjualTF, new
org.netbeans.lib.awtextra.AbsoluteConstraints(370, 170, 103, -1));
cariBrgBT.setText("...");
cariBrgBT.setToolTipText("Cari barang");
cariBrgBT.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cariBrgBTActionPerformed(evt);
}
});
81
jPanel1.add(cariBrgBT, new
org.netbeans.lib.awtextra.AbsoluteConstraints(110, 170, 30, 20));
krgBrgBT.setText("-");
krgBrgBT.setToolTipText("Kurangi transaksi");
krgBrgBT.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
krgBrgBTActionPerformed(evt);
}
});
jPanel1.add(krgBrgBT, new
org.netbeans.lib.awtextra.AbsoluteConstraints(590, 170, 40, 20));
tbhBrgBT.setText("+");
tbhBrgBT.setToolTipText("Tambah transaksi");
tbhBrgBT.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tbhBrgBTActionPerformed(evt);
}
});
jPanel1.add(tbhBrgBT, new
org.netbeans.lib.awtextra.AbsoluteConstraints(550, 170, 40, 20));
jTable1.setModel(new javax.swing.table.DefaultTableModel(
82
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTable1MouseClicked(evt);
}
});
jScrollPane1.setViewportView(jTable1);
jPanel1.add(jScrollPane1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 210, 623, 180));
jumlahTF.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jumlahTFActionPerformed(evt);
}
83
});
jumlahTF.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
jumlahTFKeyTyped(evt);
}
});
jPanel1.add(jumlahTF, new
org.netbeans.lib.awtextra.AbsoluteConstraints(480, 170, 70, -1));
simpanBT.setText("Simpan");
simpanBT.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
simpanBTActionPerformed(evt);
}
});
jPanel1.add(simpanBT, new
org.netbeans.lib.awtextra.AbsoluteConstraints(120, 450, 100, -1));
tambahBT.setText("Tambah");
tambahBT.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tambahBTActionPerformed(evt);
}
});
84
jPanel1.add(tambahBT, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 450, 100, -1));
ukemTF.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
ukemTF.setForeground(new java.awt.Color(255, 0, 0));
ukemTF.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
ukemTFKeyTyped(evt);
}
});
jPanel1.add(ukemTF, new
org.netbeans.lib.awtextra.AbsoluteConstraints(500, 460, 140, -1));
totalTF.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
totalTF.setForeground(new java.awt.Color(255, 0, 0));
totalTF.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
totalTFKeyTyped(evt);
}
});
jPanel1.add(totalTF, new org.netbeans.lib.awtextra.AbsoluteConstraints(500,
400, 140, -1));
ubayTF.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
85
ubayTF.setForeground(new java.awt.Color(255, 0, 0));
ubayTF.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
ubayTFKeyPressed(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) {
ubayTFKeyTyped(evt);
}
});
jPanel1.add(ubayTF, new
org.netbeans.lib.awtextra.AbsoluteConstraints(500, 430, 140, -1));
jLabel4.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jLabel4.setForeground(new java.awt.Color(255, 0, 0));
jLabel4.setText(" Kembali");
jPanel1.add(jLabel4, new
org.netbeans.lib.awtextra.AbsoluteConstraints(440, 460, 60, 20));
jLabel9.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jLabel9.setForeground(new java.awt.Color(255, 0, 0));
jLabel9.setText("Total");
jPanel1.add(jLabel9, new
org.netbeans.lib.awtextra.AbsoluteConstraints(450, 400, 50, 20));
86
jLabel10.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jLabel10.setForeground(new java.awt.Color(255, 0, 0));
jLabel10.setText("Bayar");
jPanel1.add(jLabel10, new
org.netbeans.lib.awtextra.AbsoluteConstraints(450, 430, 50, 20));
jLabel11.setText("Tanggal");
jPanel1.add(jLabel11, new
org.netbeans.lib.awtextra.AbsoluteConstraints(440, 70, -1, -1));
tglTF.setToolTipText("");
tglTF.setDateFormatString("dd MMMM yyyy");
jPanel1.add(tglTF, new org.netbeans.lib.awtextra.AbsoluteConstraints(490,
70, 150, -1));
jPanel1.add(subtotTF, new
org.netbeans.lib.awtextra.AbsoluteConstraints(550, 110, 60, -1));
jPanel1.add(stockTF, new
org.netbeans.lib.awtextra.AbsoluteConstraints(490, 110, 60, -1));
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
87
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
501, Short.MAX_VALUE)
);
pack();
setLocationRelativeTo(null);
}// </editor-fold>
private void cariBrgBTActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jDialog1.setLocationRelativeTo(null);
tampilBarang();
jDialog1.setVisible(true);
cariTF.setText("");
}
88
private void formWindowActivated(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
Date date = new Date();
tglTF.setDate(date);
}
private void jumlahTFActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void simpanBTActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(noTF.getText().equals("") || pembeliTF.getText().equals("") ||
ubayTF.getText().equals("0") || ukemTF.getText().equals("0")){
JOptionPane.showMessageDialog(null, "Lengkapi inputan penjualan
barang");
} else{
simpan();
int pesan=JOptionPane.showConfirmDialog(null, "Cetak Kwitansi
Nota","Cetak",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MES
SAGE);
if(pesan==JOptionPane.YES_OPTION){
cetak_nota();
89
}else {
JOptionPane.showMessageDialog(null, "Simpan Transaksi Berhasil");
}
bersih();
}
}
private void tambahBTActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(tambahBT.getText().equalsIgnoreCase("tambah")){
tambahBT.setText("Batal");
siapIsi(true);
bersih();
otomatis();
pembeliTF.requestFocus();
noTF.setEnabled(false);
simpanBT.setEnabled(true);
tbhBrgBT.setEnabled(true);
krgBrgBT.setEnabled(true);
cariBrgBT.setEnabled(true);
}else{
bersih();
siapIsi(false);
tambahBT.setText("Tambah");
90
TabModel.getDataVector().removeAllElements();
TabModel.fireTableDataChanged();
tombolNormal();
}
}
private void tbhBrgBTActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int harga=Integer.parseInt(hjualTF.getText());
int jml=Integer.parseInt(jumlahTF.getText());
int stok=Integer.parseInt(stockTF.getText());
int total=Integer.parseInt(totalTF.getText());
if(jml>stok){
JOptionPane.showMessageDialog(null, "Stok barang tidak mencukupi");
}else{
int subtot=harga*jml;
subtotTF.setText(Integer.toString(subtot));
int totbay=total+(harga*jml);
totalTF.setText(Integer.toString(totbay));
ambildata();
91
kodeTF.setText("");
namaTF.setText("");
hjualTF.setText("");
jumlahTF.setText("");
}
}
private void jDialog1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int baris = jTable2.getSelectedRow();
kodeTF.setText(jTable2.getModel().getValueAt(baris, 0).toString());
namaTF.setText(jTable2.getModel().getValueAt(baris, 1).toString());
hjualTF.setText(jTable2.getModel().getValueAt(baris, 3).toString());
stockTF.setText(jTable2.getModel().getValueAt(baris, 4).toString());
jDialog1.dispose();
}
private void krgBrgBTActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int baris = jTable1.getSelectedRow();
int qty=Integer.parseInt(jTable1.getModel().getValueAt(baris, 3).toString());
int total=Integer.parseInt(totalTF.getText());
92
int harga=Integer.parseInt(jTable1.getModel().getValueAt(baris,
2).toString());
int totbay=total-(harga*qty);
totalTF.setText(Integer.toString(totbay));
hapusdatadaritabel();
}
private void jTable2MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int baris = jTable2.getSelectedRow();
kodeTF.setText(jTable2.getModel().getValueAt(baris, 0).toString());
namaTF.setText(jTable2.getModel().getValueAt(baris, 1).toString());
hjualTF.setText(jTable2.getModel().getValueAt(baris, 3).toString());
stockTF.setText(jTable2.getModel().getValueAt(baris, 4).toString());
jDialog1.dispose();
}
private void cariTFKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
Object header[]={"Kode Barang","Nama Barang","Jenis","Harga
Jual","Stock"};
DefaultTableModel data=new DefaultTableModel(null,header);
93
jTable2.setModel(data);
setKoneksi();
String sql="Select * from tbbrng where kdbrng like '%" + cariTF.getText() +
"%'" + "or nmbrng like '%" + cariTF.getText()+ "%'";
try {
ResultSet rs=st.executeQuery(sql);
while (rs.next())
{
String kolom1=rs.getString(1);
String kolom2=rs.getString(2);
String kolom3=rs.getString(3);
String kolom4=rs.getString(4);
String kolom5=rs.getString(5);
String kolom[]={kolom1,kolom2,kolom3,kolom4,kolom5};
data.addRow(kolom);
}
} catch (Exception e) {
}
}
}
private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
94
Object header[]={"Kode Barang","Nama Barang","Jenis","Harga
Jual","Stock"};
DefaultTableModel data=new DefaultTableModel(null,header);
jTable2.setModel(data);
setKoneksi();
String sql="Select * from tbbrng where kdbrng like '%" + cariTF.getText() +
"%'" + "or nmbrng like '%" + cariTF.getText()+ "%'";
try {
ResultSet rs=st.executeQuery(sql);
while (rs.next())
{
String kolom1=rs.getString(1);
String kolom2=rs.getString(2);
String kolom3=rs.getString(3);
String kolom4=rs.getString(4);
String kolom5=rs.getString(5);
String kolom[]={kolom1,kolom2,kolom3,kolom4,kolom5};
data.addRow(kolom);
}
} catch (Exception e) {
}
}
private void formWindowOpened(java.awt.event.WindowEvent evt) {
95
// TODO add your handling code here:
ImageIcon img = new ImageIcon("src/gambar/kredit.png");
setIconImage(img.getImage());
}
private void ubayTFKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
int total=Integer.parseInt(totalTF.getText());
int bayar=Integer.parseInt(ubayTF.getText());
if(bayar<total){
JOptionPane.showMessageDialog(null, "Jumlah bayar tidak
mencukupi");
ubayTF.requestFocus();
} else{
int kembali=bayar-total;
ukemTF.setText(Integer.toString(kembali));
}
}
}
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jTable1.setRowSelectionAllowed(true);
96
int a = jTable1.getSelectedRow();
String kolom1 = jTable1.getValueAt(a,0).toString();
String kolom2 = jTable1.getValueAt(a,1).toString();
String kolom3 = jTable1.getValueAt(a,2).toString();
String kolom4 = jTable1.getValueAt(a,3).toString();
String kolom5 = jTable1.getValueAt(a,4).toString();
}
private void jumlahTFKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
//validasi data harus angka atau tombol backspace
char karakter = evt.getKeyChar();
if (!(Character.isDigit(karakter) ||
karakter==KeyEvent.VK_BACK_SPACE))
{
evt.consume();
}
}
private void totalTFKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
//validasi data harus angka atau tombol backspace
char karakter = evt.getKeyChar();
97
if (!(Character.isDigit(karakter) ||
karakter==KeyEvent.VK_BACK_SPACE))
{
evt.consume();
}
}
private void ukemTFKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
//validasi data harus angka atau tombol backspace
char karakter = evt.getKeyChar();
if (!(Character.isDigit(karakter) ||
karakter==KeyEvent.VK_BACK_SPACE))
{
evt.consume();
}
}
private void pembeliTFKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
}
private void ubayTFKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
98
//validasi data harus angka atau tombol backspace
char karakter = evt.getKeyChar();
if (!(Character.isDigit(karakter) || karakter==KeyEvent.VK_BACK_SPACE
|| karakter==KeyEvent.VK_ENTER))
{
evt.consume();
}
}
private void hjualTFKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
char karakter = evt.getKeyChar();
if (!(Character.isDigit(karakter) ||
karakter==KeyEvent.VK_BACK_SPACE))
{
evt.consume();
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/*
99
* Set the Nimbus look and feel
*/
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Penjualan().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton cariBrgBT;
private javax.swing.JTextField cariTF;
private javax.swing.JTextField hjualTF;
private javax.swing.JButton jButton7;
private javax.swing.JDialog jDialog1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
100
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JTable jTable1;
private javax.swing.JTable jTable2;
private javax.swing.JTextField jumlahTF;
private javax.swing.JTextField kodeTF;
private javax.swing.JButton krgBrgBT;
private javax.swing.JTextField namaTF;
private javax.swing.JTextField noTF;
private javax.swing.JTextField pembeliTF;
private javax.swing.JButton simpanBT;
private javax.swing.JTextField stockTF;
private javax.swing.JTextField subtotTF;
private javax.swing.JButton tambahBT;
private javax.swing.JButton tbhBrgBT;
101
private com.toedter.calendar.JDateChooser tglTF;
private javax.swing.JTextField totalTF;
private javax.swing.JTextField ubayTF;
private javax.swing.JTextField ukemTF;
// End of variables declaration
public Connection setKoneksi(){
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/satriacell","root","");
st=conn.createStatement();
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Koneksi Gagal :" +e);
}
return conn;
}
void cetak_nota(){
try {
String NamaFile = "src/Report/notaJual.jasper";
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection koneksi =
DriverManager.getConnection("jdbc:mysql://localhost/satriacell","root","");
102
HashMap param = new HashMap();
param.put("ptrans",noTF.getText());
JasperPrint JPrint = JasperFillManager.fillReport(NamaFile, param,
koneksi);
JasperViewer.viewReport(JPrint, false);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Data tidak dapat dicetak!","Cetak
Data",JOptionPane.ERROR_MESSAGE);
}
}
}
103
3.5.2. Blackbox Testing
Form Login Pemilik
Tabel III.14
Hasil Pengujian Black Box Testing Form Login
3.5.3. Spesifikasi Hardware dan Software
Kebutuhan : Keterangan
Sistem : Windows 7 64-bit
Processor : AMD E-1 -6010 (1.35 GHz)
RAM : 2GB
Plasdisk : 8GB
Monitor : 14LED
Keyboard : 86 Key
Printer : Dot Matrix
Mouse : Standard
Software : Kebutuhan menjalankan aplikasi secara
local
Bahasa script programming : JAVA 7.1
Web Server : Apache 3.2
DBSM : MySQL
No Skenario Pengujian Test Case Hasil Pengujian Hasil Pengujian Kesimpulan
Sesuai harapan valid
mengetikan sala satu
kondisi salah pada nama
user atau password
kemudian klik login
4
Nama user:
(kosong)
password:
pemilik
Sistem akan menolak akses
dan akan menampilkan
pesan “lengkapi inputan
login”
mengetikan nama user dan
password dengan data
yang benar kemudian klik
tombol togin
5
Nama user:
pemilik (benar)
password:
pemlik (benar)
sistem akan menerima akses
login dan akan menampilkan
menu utama
3
nama usertidak di isi dan
password di isi kemudian
klik login
Nama user:
pemilik (benar)
password:
pemlk (salah)
Sistem akan menolak akses
dan akan menampilkan
pesan “lengkapi inputan
login”
Sesuai harapan valid
Sesuai harapan valid
2
mengetikan nama user dan
password tidak di isi atau
kosong kemudian klik
tombol login
Nama user:
pemilik
Password:
(Kosong)
Sistem akan menolak akses
dan akan menampilkan
pesan “lengkapi inputan
login”
sesuai harapan valid
Nama user dan Password
tidak diisi kemudian klik
tombol login
Nama user: (isi)
Password:
(Kosong)
Sistem akan menolak akses
dan akan menampilkan
pesan “lengkapi inputan
login”
Sesuai harapan valid1