25
BAB III
PEMBAHASAN
3.1.Tinjauan Perusahaan
Sebuah organisasi atau perusahaan tentu mempunyai struktur dengan fungsi yang
jelas, hal ini bertujuan agar kegiatan rutin yang berjalan di dalamnya dapat terlaksana
dengan baik.
Pada tahap ini penulis akan memaparkan sejarah perusahaan, struktur organisasi
dan proses bisnis berjalan yang berlaku pada perusahaan ini.
3.1.1.Sejarah Perusahaan
PT. SR12 Herbal Perkasa adalah perusahaan yang didirikan oleh seorang
Apoteker bernama Toni Firmansyah. Perusahaan yang bergerak di bidang herbal dan
perawatan kulit sejak tahun 2016 tersebut kini sudah memiliki ratusan Distributor
Utama yang tersebar di berbagai provinsi Indonesia. Salah satunya, Distributor Utama
Karawang yang terletak di Perumahan Kotabaru Permai 2 Blok K5 No.2, Kecamatan
Kotabaru, Kabupaten Karawang.
Sumber: PT. SR12 Herbal Perkasa Distributor Utama Karawang
Gambar III.1
Logo Perusahaan
26
Perusahaan ini juga memiliki visi dan misi yang dijadikan sebagai landasan, yaitu
sebagai berikut:
a.
Visi
Menjadi perusahaan kosmetik yang menghasilkan produk herbal berkualitas.
b.
Misi
1.
Menjaga kualitas produk secara berkesinambungan.
2.
Memberikan pelayanan yang berkualitas dan tepat waktu.
3.
Menjalin kerjasama atau hubungan dengan dan melalui kepemimpinan
yang efektif dan berintegritas.
4.
Memacu kualitas sumber daya manusia yang berintegritas, taat dengan
landasan iman dan taqwa.
5.
Menjaga bertumbuhnya perusahaan dengan keuntungan dan menggapai
pangsa pasar yang tinggi.
3.1.2.Struktur Organisasi dan Fungsi
Sebuah struktur organisasi yang mengatur pembagian tanggung jawab sangat
diperlukan oleh perusahaan. Tujuannya adalah untuk menempatkan orang-orang yang
tepat pada posisi unit kerja yang membutuhkan. Selain itu, kejelasan uraian tugas juga
mempermudah pemimpin dalam mengendalikan perusahaannya. Sehingga dengan
adanya struktur organisasi tersebut diharapkan kegiatan perusahaan dapat berjalan
sesuai dengan prosedur yang telah dibuat.
Adapun struktur organisasi pada PT. SR12 Herbal Perkasa Distributor Utama
Karawang dapat penulis tunjukkan melalui gambar berikut:
Sumber: PT. SR12 Herbal Perkasa Distributor Utama Karawang
Gambar III.2
Struktur Organisasi Perusahaan
Deskripsi fungsi serta tanggung jawab dari masing-masing bagian dalam struktur
adalah sebagai berikut:
a.
Distributor Utama
1. Memutuskan dan menentukan peraturan serta kebijakan perusahaan.
2. Bertanggung jawab dalam memimpin dan menjalankan perusahaan.
3. Memilih, menentukan dan mengawasi pekerjaan karyawan.
4. Mengangkat dan memberhentikan karyawan.
5. Mengambil keputusan penting mengenai keuangan yang berhubungan
dengan perusahaan.
6. Melakukan seluruh kegiatan pencatatan akuntansi perusahaan.
b.
Admin Penjualan
1. Menerima pesanan dari Customer.
2. Mengelola data transaksi dan arsip perusahaan.
3. Menerbitkan faktur penjualan.
28
5. Memberi daftar pesanan yang harus diproses kepada Admin Packing.
c.
Admin Packing
1. Menerima, membongkar dan menerima barang yang datang dari pusat.
2. Merapihkan persediaan barang ke dalam rak barang.
3. Memerika produk yang akan dikirim berdasarkan Faktur Penjualan.
4. Mengemas pesanan Customer.
5. Mengirimkan pesanan Customer melalui ekspedisi.
d.
Customer Service
1. Mengelola media sosial perusahaan.
2. Membuat konten foto dan video untuk keperluan promosi.
3. Mempromosikan produk-produk perusahaan di berbagai platform penjualan.
4. Mengatasi komplain dari Customer.
3.2. Tinjauan Kasus
3.2.1.Proses Bisnis Sistem Berjalan
Pada proses penjualan tunai yang berjalan di PT. SR12 Herbal Perkasa
Distributor Karawang, pertama-tama Customer akan mengisi format order melalui
aplikasi Whatsapp terlebih dahulu. Kemudian, Admin Penjualan mencatat pesanan
Customer pada data transaksi di Microsoft Excel. Berlanjut dengan Admin Penjualan
menerbitkan faktur penjualan melalui Microsoft Excel. Selanjutnya, faktur penjualan
tersebut dikirim oleh Admin Penjualan kepada Customer berupa foto melalui aplikasi
Whatsapp. Setelah Customer menerima Faktur Penjualan, Customer pun mengirim
bukti pembayaran berupa foto melalui aplikasi Whatsapp kepada Admin Penjualan.
Kemudian, bukti pembayaran diperiksa oleh Admin Penjualan. Apabila bukti
pembayaran yang diterima valid maka Admin Penjualan akan mencetak faktur
penjualan untuk keperluan arsip perusahaan. Lalu, Admin Packing akan mengemas
pesanan berdasarkan faktur penjualan yang telah dicetak. Setelah semua prosedur telah
dijalankan, pesanan pun akan dikirim oleh Admin Packing.
3.2.2. Activity Diagram Penjualan Tunai
Gambar III.3
30
3.2.3.Dokumen Masukkan
a.
Nama Dokumen: Format Order
Fungsi
: Mencatat pesanan yang akan dibeli Customer
Sumber
: Customer
Tujuan
: Admin Penjualan
Frekuensi
: Setiap terjadi transaksi
Media
: Aplikasi Whatsapp
Jumlah
: 1
Lampiran
: A-1
b.
Nama Dokumen : Bukti Pembayaran / Bukti Transfer
Fungsi
: Mengonfirmasi pembelian agar pesanan dapat diproses
Sumber
: Customer
Tujuan
: Admin Penjualan
Frekuensi
: Setiap terjadi transaksi
Media
: Foto
Jumlah
: 1
Lampiran
: A-2
3.2.4.Dokumen Keluaran
a.
Nama Dokumen : Data Transaksi
Fungsi
: Rekapitulasi data penjualan dan omset selama satu bulan
Sumber
: Admin Penjualan
Tujuan
: Distributor Utama
Frekuensi
: Satu bulan sekali
Media
: Microsoft Excel
Jumlah
: 1
Lampiran
: B-1
b.
Nama Dokumen : Faktur Penjualan
Fungsi
: Arsip perusahaan
Sumber
: Admin Penjualan
Tujuan
: Admin Packing
Frekuensi
: Setiap terjadi transaksi
Media
: Kertas
Jumlah
: 1 Lembar
Lampiran
: B-2
3.2.5.Permasalahan Pokok
Pada tahap ini, penulis mencoba mengidentifikasi masalah untuk mengetahui hal
apa saja yang perlu diperbaiki di tahap berikutnya. Menurut analisa penulis, sistem
penjualan tunai yang digunakan Distributor Utama Karawang dapat dikatakan telah
berjalan cukup baik, hanya saja proses pengolahan datanya masih dilakukan secara
manual menggunakan Microsoft Excel sehingga beberapa kali terjadi kesalahan seperti
berikut:
1.
Jumlah penjualan bulanan di data transaksi tidak sesuai karna ternyata ada
kesalahan dalam pengetikkan dan juga terdapat beberapa rumus yang tidak
sengaja terhapus.
2.
Bagi pelanggan yang membeli secara online melalui aplikasi Whatsapp, terdapat
kemudahan untuk menukar barang ketika terjadi kesalahan karna memiliki bukti
berupa riwayat percakapan. Namun, pelanggan yang membeli secara offline
akan sulit untuk menukar barang apabila terjadi kesalahan karna tidak disediakan
bukti pembelian.
3.2.6.Pemecahan Masalah
Dari kedua permasalahan pokok yang telah disebutkan, berikut adalah solusi
yang dapat penulis berikan:
1.
Membaharui sistem yang awalnya manual menjadi sistem penjualan
terkomputerisasi berbasis desktop agar dapat mempermudah proses pengolahan
data penjualan serta memberikan gambaran keuangan yang lebih baik.
2.
Menyediakan nota bukti pembelanjaan untuk diberikan kepada customer yang
datang ke toko agar memudahkan pemeriksaan ketika terdapat kesalahan.
Sehingga, barang yang tertukar atau lupa dimasukkan dapat diklaim oleh
pelanggan.
3.3.Analisa Kebutuhan Software
3.3.1. Analisa Kebutuhan
Pada bagian ini penulis menganalisa kebutuhan software rancangan program
penjualan tunai pada PT. SR12 Herbal Perkasa Distributor Utama Karawang, yaitu:
A.
Admin Penjualan
A.1. Admin Penjualan dapat melakukan login.
A.2. Admin Penjualan dapat mengelola menu barang.
A.3. Admin Penjualan dapat mengelola menu Customer.
A.4. Admin Penjualan dapat mengelola menu purchase order.
A.5. Admin Penjualan dapat mengelola menu pembayaran.
A.6. Admin Penjualan dapat mengelola menu perkiraan.
A.7. Admin Penjualan dapat mengelola menu jurnal umum.
A.8. Admin Penjualan dapat mengakses menu laporan jurnal umum.
A.9. Admin Penjualan dapat mengakses menu laporan purchase order.
B.
Distributor Utama
B.1. Distributor Utama dapat melakukan menu login.
B.2. Distributor Utama dapat mengelola menu admin.
B.3. Distributor Utama dapat mengelola menu laporan jurnal umum.
B.4. Distributor Utama dapat mengelola menu laporan purchase order.
3.3.2. Use Case Diagram
1.
Use Case Diagram Admin Penjualan
Gambar III.4
Tabel III.1
Deskripsi Use Case Diagram A1
Use Case Narative Halaman Admin Penjualan
Kebutuhan A1
Deskripsi Sistem ini mengizinkan Admin Penjualan untuk login ke dalam program aplikasi.
Skenario Utama
Aktor Admin Penjualan
Aksi Aktor Reaksi Sistem
Admin Penjualan melakukan login. Sistem ini menampilkan tampilan login, Admin Penjualan harus memasukkan username dan password didalamnya.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa yang diinginkan.
Tabel III.2
Deskripsi Use Case Diagram A2
Use Case Narative Halaman Admin Penjualan
Kebutuhan A2
Deskripsi Sistem ini mengizinkan Admin Penjualan untuk mengolah data master.
Skenario Utama
Aktor Admin Penjualan
Aksi Aktor Reaksi Sistem
Admin Penjualan mengelola barang. Sistem ini menampilkan daftar barang yang telah dimasukkan ke dalam sistem serta tampilan form untuk menambah data barang baru.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa yang diinginkan.
Tabel III.3
Deskripsi Use Case Diagram A3
Use Case Narative Halaman Admin Penjualan
Kebutuhan A3
Deskripsi Sistem ini mengizinkan Admin Penjualan untuk mengolah data master.
Skenario Utama
Aktor Admin Penjualan
Aksi Aktor Reaksi Sistem
Admin Penjualan mengelola customer. Sistem ini menampilkan daftar customer yang telah dimasukkan ke dalam sistem serta tampilan form untuk menambah data customer baru.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa yang diinginkan.
Tabel III.4
Deskripsi Use Case Diagram A4
Use Case Narative Halaman Admin Penjualan
Kebutuhan A4
Deskripsi Sistem ini mengizinkan Admin Penjualan untuk mengolah data transaksi.
Skenario Utama
Aktor Admin Penjualan
Aksi Aktor Reaksi Sistem
Admin Penjualan mengelola purchase order. Sistem ini menampilkan tampilan form untuk menambah data transaksi.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa yang diinginkan.
Tabel III.5
Deskripsi Use Case Diagram A5
Use Case Narative Halaman Admin Penjualan
Kebutuhan A5
Deskripsi Sistem ini mengizinkan Admin Penjualan untuk mengolah data transaksi.
Skenario Utama
Aktor Admin Penjualan
Aksi Aktor Reaksi Sistem
Admin Penjualan mengelola pembayaran. Sistem ini menampilkan tampilan form untuk menambah data pembayaran.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa yang diinginkan.
Tabel III.6
Deskripsi Use Case Diagram A6
Use Case Narative Halaman Admin Penjualan
Kebutuhan A6
Deskripsi Sistem ini mengizinkan Admin Penjualan untuk mengolah data master.
Skenario Utama
Aktor Admin Penjualan
Aksi Aktor Reaksi Sistem
Admin Penjualan mengelola perkiraan. Sistem ini menampilkan tampilan form untuk menambah data perkiraan.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa yang diinginkan.
36
Tabel III.7
Deskripsi Use Case Diagram A7
Use Case Narative Halaman Admin Penjualan
Kebutuhan A7
Deskripsi Sistem ini mengizinkan Admin Penjualan untuk mengolah data transaksi.
Skenario Utama
Aktor Admin Penjualan
Aksi Aktor Reaksi Sistem
Admin Penjualan mengelola jurnal umum. Sistem ini menampilkan tampilan form untuk menambah data jurnal umum.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa yang diinginkan.
Tabel III.8
Deskripsi Use Case Diagram A8
Use Case Narative Halaman Admin Penjualan
Kebutuhan A8
Deskripsi Sistem ini mengizinkan Admin Penjualan untuk mengakses seluruh laporan yang dihasilkan sistem.
Skenario Utama
Aktor Admin Penjualan
Aksi Aktor Reaksi Sistem
Admin Penjualan mengakses laporan jurnal umum.
Sistem ini menampilkan data-data jurnal umum yang telah dibuat di menu jurnal umum.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa yang diinginkan.
Tabel III.9
Deskripsi Use Case Diagram A9
Use Case Narative Halaman Admin Penjualan
Kebutuhan A9
Deskripsi Sistem ini mengizinkan Admin Penjualan untuk mengakses seluruh laporan yang dihasilkan sistem.
Skenario Utama
Aktor Admin Penjualan
Aksi Aktor Reaksi Sistem
Admin Penjualan mengakses laporan purchase order.
Sistem ini menampilkan data-data purchase order yang telah dibuat di menu purchase order.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa yang diinginkan.
2.
Use Case Diagram Distributor Utama
Gambar III.5
Use Case Diagram Distributor Utama
Tabel III.10
Deskripsi Use Case Diagram B1
Use Case Narative Halaman
Distributor Utama
Kebutuhan
B1
Deskripsi
Sistem ini mengizinkan Distributor Utama
untuk login ke dalam program aplikasi
Skenario Utama
Aktor
Distributor Utama
Aksi Aktor
Reaksi Sistem
Distributor Utama melakukan login.
Sistem ini menampilkan tampilan login,
Distributor Utama harus memasukkan
username dan password didalamnya.
Kondisi Akhir
Jika perintah sesuai maka sistem akan
Tabel III.11
Deskripsi Use Case Diagram B2
Use Case Narative Halaman
Distributor Utama
Kebutuhan
B2
Deskripsi
Sistem ini mengizinkan Distributor Utama
untuk mengolah data master.
Skenario Utama
Aktor
Distributor Utama
Aksi Aktor
Reaksi Sistem
Distributor Utama mengelola admin.
Sistem ini menampilkan daftar admin yang
telah dimasukkan ke dalam sistem serta
tampilan form untuk menambah data admin
baru.
Kondisi Akhir
Jika perintah sesuai maka sistem akan
menampilkan apa yang diinginkan.
Tabel III.12
Deskripsi Use Case Diagram B3
Use Case Narative Halaman
Distributor Utama
Kebutuhan
B3
Deskripsi
Sistem ini mengizinkan Distributor Utama
untuk mengelola seluruh laporan yang
dihasilkan sistem.
Skenario Utama
Aktor
Distributor Utama
Aksi Aktor
Reaksi Sistem
Distributor Utama mengakses laporan
jurnal umum.
Sistem ini menampilkan data-data jurnal
umum yang telah dibuat di menu jurnal
umum.
Kondisi Akhir
Jika perintah sesuai maka sistem akan
Tabel III.13
Deskripsi Use Case Diagram B4
Use Case Narative Halaman
Distributor Utama
Kebutuhan
B4
Deskripsi
Sistem ini mengizinkan Distributor Utama
untuk mengelola seluruh laporan yang
dihasilkan sistem.
Skenario Utama
Aktor
Distributor Utama
Aksi Aktor
Reaksi Sistem
Distributor Utama mengakses laporan
purchase order.
Sistem ini menampilkan data-data purchase
order yang telah dibuat di menu purchase
order.
Kondisi Akhir
Jika perintah sesuai maka sistem akan
menampilkan apa yang diinginkan.
3.3.3. Activity Diagram
1.
Activity Diagram Melakukan Login
Gambar III.6
40
2.
Activity Diagram Mengelola Barang
Gambar III.7
Activity Diagram Mengelola Barang
Berhubung aliran data pada menu barang, admin dan customer memiliki aktivitas
yang sama, maka activity diagram dapat dilihat dari gambar diatas.
3.
Activity Diagram Mengelola Purchase Order
Gambar III.8
Activity Diagram Mengelola Purchase Order
Berhubung aliran data pada menu purchase order dan pembayaran memiliki
aktivitas yang sama, maka activity diagram dapat dilihat dari gambar diatas.
4.
Activity Diagram Mengelola Jurnal Umum
Gambar III.9
5.
Activity Diagram Perkiraan
Gambar III.10
Activity Diagram Mengelola Perkiraan
6.
Activity Diagram Laporan Purchase Order
Gambar III.11
Berhubung aliran data pada menu laporan purchase order dan laporan jurnal
umum memiliki aktivitas yang sama, maka activity diagram dapat dilihat dari gambar
diatas.
3.4. Desain
3.4.1. Entity Relationship Diagram (ERD)
Berikut adalah entity relationship diagram dari rancangan program aplikasi
penjualan tunai SR12:
Gambar III.12
3.4.2. Logical Record Structure (LRS)
Berikut adalah logical record structure dari rancangan program aplikasi
penjualan tunai SR12:
Gambar III.13
3.4.3. Spesifikasi File
Agar program dapat menyimpan data masukan serta mengolah data, maka
penulis membuat sebuah database dengan nama penjualan_tunai. Berikut adalah
spesifikasi file dalam Sistem Penjualan Tunai pada PT. SR12 Herbal Perkasa
Distributor Utama Karawang:
a.
Spesifikasi File Barang
Nama Database : penjualan_tunai
Nama File
: barang
Tipe File
: File Master
Akses File
: Random
Panjang Record : 82
Kunci Field
: kd_barang
Tabel III.14
Spesifikasi File Barang
No.
Elemen Data
Nama Field
Type
Panjang
Keterangan
1
Kode Barang
kd_barang
Varchar
8
Primary Key
2
Nama Barang
nm_barang
Varchar
50
Foreign Key
3
Stok
Stok
Int
5
4
Harga
Harga
Int
9
Foreign Key
5
Status
Status
Varchar
10
b.
Spesifikasi File Customer
Nama Database: penjualan_tunai
Nama File
: customer
Tipe File
: File Master
Akses File
: Random
Panjang Record : 112
Kunci Field
: id_customer
Tabel III.15
Spesifikasi File Customer
No.
Elemen Data
Nama Field
Type
Panjang
Keterangan
1
Id Customer
id_customer
Varchar
8
Primary Key
2
Nama Customer
nm_customer
Varchar
50
Foreign Key
3
Alamat
alamat
Text
4
Nomor Telpon
no_hp
Varchar
14
5
Varchar
40
c.
Admin
Nama Database : penjualan_tunai
Nama File
: admin
Tipe File
: File Master
Akses File
: Random
Panjang Record : 168
Kunci Field
: id_admin
Tabel III.16
Spesifikasi File Admin
No.
Elemen Data
Nama Field
Type
Panjang
Keterangan
1
Id Admin
id_admin
Varchar
8
Primary Key
2
Nama Admin
nm_admin
varchar
50
3
Username
Username
varchar
50
4
Password
Password
varchar
40
d.
Purchase Order
Nama Database : penjualan_tunai
Nama File
: purchase_order
Tipe File
: File Transaksi
Akses File
: Random
Panjang Record : 197
Kunci Field
: nomor
Tabel III.17
Spesifikasi File Purchase Order
No.
Elemen Data
Nama Field
Type
Panjang
Keterangan
1
Nomor Pesanan
Nomor
Int
5
Primary Key
2
Kode Jual
kd_jual
varchar
9
Foreign Key
3
Tanggal Transaksi
tgl_jual
date
4
Id Customer
id_customer
varchar
9
Foreign Key
5
Nama Customer
nm_customer
varchar
40
Foreign Key
6
Kode Barang
kd_brg
varchar
9
Foreign Key
7
Nama Barang
nm_brg
varchar
40
Foreign Key
8
Harga Satuan
hrg_satuan
Int
10
Foreign Key
9
Jumlah Beli
jml_beli
Int
5
10
Total Transaksi
Total
Int
10
e.
Pembayaran
Nama Database : penjualan_tunai
Nama File
: pembayaran
Tipe File
: File Transaksi
Akses File
: Random
Panjang Record : 128
Kunci Field
: kd_byr
Tabel III.18
Spesifikasi File Pembayaran
No.
Elemen Data
Nama Field
Type
Panjang
Keterangan
1
Kode Pembayaran
kd_byr
varchar
8
Primary Key
2
Tanggal Pembayaran
tgl_byr
varchar
12
3
Kode Transaksi
kd_jual
varchar
8
Foreign Key
4
Nama Customer
nm_cost
varchar
40
Foreign Key
5
Jumlah Pembelian
jml_bayar
Int
10
6
Kemitraan
kemitraan
varchar
30
7
Diskon Pembelian
diskon
Int
10
8
Total Bayar
total
Int
10
f.
Perkiraan
Nama Database : penjualan_tunai
Nama File
: perkiraan
Tipe File
: File Master
Akses File
: Random
Panjang Record : 58
Kunci Field
: kode_akun
Tabel III.19
Spesifikasi File Perkiraan
No.
Elemen Data
Nama Field
Type
Panjang
Keterangan
1
Kode Akun
kode_akun
Varchar
8
Primary Key
2
Nama Akun
nama_akun
Varchar
50
Foreign Key
g.
Jurnal
Nama Database : penjualan_tunai
Nama File
: jurnal
Akses File
: Random
Panjang Record : 172
Kunci Field
: nomor
Tabel III.20
Spesifikasi File Jurnal
No.
Elemen Data
Nama Field
Type
Panjang
Keterangan
1
Nomor Pesanan
Nomor
Int
11
Primary Key
2
Kode Pembayaran
kd_byr
varchar
8
Foreign Key
3
Nama Customer
nm_customer
varchar
8
Foreign Key
4
Nomor Jurnal
no_jurnal
varchar
11
5
Tanggal Jurnal
tanggal_jurnal varchar
12
6
Kode Akun
kode_akun
Int
12
Foreign Key
7
Nama Akun
nama_akun
varchar
20
Foreign Key
8
Debet
Debet
Int
20
9
Kredit
Kredit
Int
20
10
Keterangan
keterangan
varchar
50
3.4.4. Deployment Diagram
Gambar III.14
3.4.5. User Interface
1.
Form Login
Gambar III.15
User Interface Form Login
2.
Halaman Utama
Gambar III.16
3.
Form Barang
Gambar III.17
User Interface Form Barang
4.
Form Customer
Gambar III.18
5.
Form Admin
Gambar III.19
User Interface Form Admin
6.
Form Purchase Order
Gambar III.20
7.
Form Pembayaran
Gambar III.21
User Interface Form Pembayaran
8.
Form Perkiraan
Gambar III.22
9.
Form Jurnal Umum
Gambar III.23
User Interface Form Jurnal Umum
10. Form Laporan Jurnal Umum
Gambar III.24
11. Form Laporan Purchase Order
Gambar III.25
User Interface Form Laporan Purchase Order
3.5. Implementasi
3.5.1. Code Generation
1.
Coding Form Purchase Order
import Database.KoneksiDatabase; import Database.ResultSetTable; import java.awt.event.KeyEvent; import java.io.File; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.util.JRLoader; import net.sf.jasperreports.view.JasperViewer;
public class form_PO extends javax.swing.JInternalFrame { ResultSet rs; KoneksiDatabase con; String idCS; String idBR; /**
* Creates new form form_beranda */
public form_PO() {
con = new KoneksiDatabase(new Database.Parameter().HOST_DB, new Database.Parameter().USERNAME_DB, new Database.Parameter().PASSWORD_DB); initComponents();
setTitle("Form Purchase Order"); loadtabel1(); nonaktif(); kd_jual.setEnabled(false); jDateChooser1.setEnabled(false); titik.setEnabled(false); titik.setEnabled(false); titik2.setEnabled(false); tambah.setEnabled(true); batal.setEnabled(false); simpan.setEnabled(false); jml_beli.setEnabled(false); id_cs.setEnabled(false); }
private String id() { String no = null; try {
con.koneksiDatabase();
String sql = "Select right(kd_jual,4)+1 from purchase_order "; ResultSet rs = con.eksekusiQuery(sql); if (rs.next()) { rs.last(); no = rs.getString(1); while (no.length() < 4) { no = "000" + no; no = "P" + no; kd_jual.setText(no); } } else { no = "P0001"; kd_jual.setText(no); } } catch (Exception e) { } return no; }
public void itemTerpilih() {
data_kostumer FAD = new data_kostumer(); FAD.FPR = this;
id_cs.setText(idCS); ambildata(); }
public void itemTerpilih1() {
data_barang FAA = new data_barang(); FAA.FPP = this;
kd_brg.setText(idBR); ambildata1();
}
private void ambildata() {
String st = (String) id_cs.getText();
ResultSet rst = con.querySelectAll("kostumer", "id_kostumer='" + st + "'"); try {
while (rst.next()) {
this.nm_cs.setText(rst.getString("nm_kostumer")); }
} catch (SQLException ex) {
Logger.getLogger(form_PO.class.getName()).log(Level.SEVERE, null, ex); }
} /**
* This method is called from within the constructor to initialize the form. * WARNINGp: 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() {
jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jSeparator1 = new javax.swing.JSeparator(); kd_jual = new javax.swing.JTextField();
jDateChooser1 = new com.toedter.calendar.JDateChooser(); id_cs = new javax.swing.JTextField();
titik = new javax.swing.JButton(); nm_cs = new javax.swing.JTextField(); jLabel6 = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel(); jSeparator2 = new javax.swing.JSeparator(); jLabel7 = new javax.swing.JLabel(); jSeparator3 = new javax.swing.JSeparator(); jLabel11 = new javax.swing.JLabel(); jLabel12 = new javax.swing.JLabel(); jLabel13 = new javax.swing.JLabel(); jLabel14 = new javax.swing.JLabel(); kd_brg = new javax.swing.JTextField();
nm_brg = new javax.swing.JTextField(); titik2 = new javax.swing.JButton(); jLabel15 = new javax.swing.JLabel(); jLabel16 = new javax.swing.JLabel(); jLabel17 = new javax.swing.JLabel(); jLabel18 = new javax.swing.JLabel(); stok_t = new javax.swing.JTextField(); harga = new javax.swing.JTextField(); jLabel19 = new javax.swing.JLabel(); jLabel20 = new javax.swing.JLabel(); jLabel21 = new javax.swing.JLabel(); jLabel22 = new javax.swing.JLabel(); jml_beli = new javax.swing.JTextField(); total = new javax.swing.JTextField(); jPanel2 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane(); table = new javax.swing.JTable();
jLabel23 = new javax.swing.JLabel(); jLabel24 = new javax.swing.JLabel(); t_cari = new javax.swing.JTextField(); cari = new javax.swing.JButton(); reload = new javax.swing.JButton(); stok_b = new javax.swing.JTextField(); jSeparator4 = new javax.swing.JSeparator(); tambah = new javax.swing.JButton(); simpan = new javax.swing.JButton(); batal = new javax.swing.JButton(); jLabel25 = new javax.swing.JLabel();
jPanel1.setBackground(new java.awt.Color(255, 255, 255)); jPanel1.setBorder(new
javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED)); jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel1.setFont(new java.awt.Font("Times New Roman", 0, 24)); // NOI18N jLabel1.setText("Form Purchase Order");
jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 10, -1, 40)); jLabel3.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel3.setText("Kode Penjualan");
jPanel1.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 70, -1, -1)); jLabel9.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel9.setText(":");
jPanel1.add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 70, 10, -1)); jLabel4.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel4.setText("Tanggal Penjualan");
jPanel1.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 70, -1, -1)); jLabel2.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel2.setText(":");
jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(430, 70, 10, -1)); jLabel5.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(570, 70, -1, -1)); jLabel8.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel8.setText(":");
jPanel1.add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(650, 70, 10, -1)); jPanel1.add(jSeparator1, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 50, 410,
-1));
jPanel1.add(kd_jual, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 90, 140, -1)); jPanel1.add(jDateChooser1, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 90,
160, -1));
jPanel1.add(id_cs, new org.netbeans.lib.awtextra.AbsoluteConstraints(570, 90, 100, -1)); titik.setText("....");
titik.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { titikActionPerformed(evt);
} });
jPanel1.add(titik, new org.netbeans.lib.awtextra.AbsoluteConstraints(690, 70, -1, 40)); jPanel1.add(nm_cs, new org.netbeans.lib.awtextra.AbsoluteConstraints(810, 90, 170, -1)); jLabel6.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel6.setText("Nama Costumer");
jPanel1.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(810, 70, -1, -1)); jLabel10.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel10.setText(":");
jPanel1.add(jLabel10, new org.netbeans.lib.awtextra.AbsoluteConstraints(910, 70, 10, -1)); jPanel1.add(jSeparator2, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 120, 1070,
-1));
jLabel7.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N jLabel7.setText("Pilih Barang");
jPanel1.add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 140, -1, 40)); jPanel1.add(jSeparator3, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 180, 130,
-1));
jLabel11.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N jLabel11.setText("Kode Barang");
jPanel1.add(jLabel11, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 200, -1, -1)); jLabel12.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel12.setText(":");
jPanel1.add(jLabel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 200, 10, -1));
jLabel13.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N jLabel13.setText("Nama Barang");
jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 250, -1, -1)); jLabel14.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel14.setText(":");
jPanel1.add(jLabel14, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 250, 10, -1));
jPanel1.add(nm_brg, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 250, 160, -1));
titik2.setText("....");
titik2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { titik2ActionPerformed(evt);
} });
jPanel1.add(titik2, new org.netbeans.lib.awtextra.AbsoluteConstraints(250, 200, -1, -1)); jLabel15.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel15.setText("Stok tersedia");
jPanel1.add(jLabel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(430, 200, -1, -1)); jLabel16.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel16.setText(":");
jPanel1.add(jLabel16, new org.netbeans.lib.awtextra.AbsoluteConstraints(500, 200, 10, -1));
jLabel17.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N jLabel17.setText("Harga Satuan");
jPanel1.add(jLabel17, new org.netbeans.lib.awtextra.AbsoluteConstraints(430, 250, -1, -1)); jLabel18.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel18.setText(":");
jPanel1.add(jLabel18, new org.netbeans.lib.awtextra.AbsoluteConstraints(500, 250, 10, -1));
jPanel1.add(stok_t, new org.netbeans.lib.awtextra.AbsoluteConstraints(510, 200, 50, -1)); jPanel1.add(harga, new org.netbeans.lib.awtextra.AbsoluteConstraints(510, 250, 140, -1)); jLabel19.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel19.setText("Jumlah Beli");
jPanel1.add(jLabel19, new org.netbeans.lib.awtextra.AbsoluteConstraints(770, 200, -1, -1)); jLabel20.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel20.setText(":");
jPanel1.add(jLabel20, new org.netbeans.lib.awtextra.AbsoluteConstraints(840, 200, 10, -1));
jLabel21.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N jLabel21.setText("Total");
jPanel1.add(jLabel21, new org.netbeans.lib.awtextra.AbsoluteConstraints(770, 250, -1, -1)); jLabel22.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel22.setText(":");
jPanel1.add(jLabel22, new org.netbeans.lib.awtextra.AbsoluteConstraints(840, 250, 10, -1));
jml_beli.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { jml_beliKeyPressed(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) { jml_beliKeyTyped(evt);
});
jPanel1.add(jml_beli, new org.netbeans.lib.awtextra.AbsoluteConstraints(860, 200, 40, -1)); jPanel1.add(total, new org.netbeans.lib.awtextra.AbsoluteConstraints(860, 250, 150, -1));
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFacto ry.createLineBorder(new java.awt.Color(0, 0, 0)), "Data Transaksi", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Times New Roman", 0, 12))); // NOI18N
jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); table.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null, null, null, null, null, null}, {null, null, null, null, null, null, null, null, null, null}, {null, null, null, null, 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", "Title 5", "Title 6", "Title 7", "Title 8", "Title 9", "Title 10"
} ));
jScrollPane1.setViewportView(table);
jPanel2.add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 70, 1060, 130));
jLabel23.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N jLabel23.setText("Cari Data Transaksi");
jPanel2.add(jLabel23, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 40, -1, -1)); jLabel24.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jLabel24.setText(":");
jPanel2.add(jLabel24, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 40, 10, -1)); jPanel2.add(t_cari, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 40, 310, -1)); cari.setText("Cari");
cari.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cariActionPerformed(evt);
} });
jPanel2.add(cari, new org.netbeans.lib.awtextra.AbsoluteConstraints(570, 40, 70, -1)); reload.setText("Reload");
reload.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { reloadActionPerformed(evt);
} });
jPanel2.add(reload, new org.netbeans.lib.awtextra.AbsoluteConstraints(650, 40, 70, -1)); jPanel2.add(stok_b, new org.netbeans.lib.awtextra.AbsoluteConstraints(700, 70, 50, -1));
jPanel1.add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 340, 1080, 210));
jPanel1.add(jSeparator4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 280, 1080, -1));
tambah.setText("Tambah");
tambah.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { tambahActionPerformed(evt);
} });
jPanel1.add(tambah, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 290, 210, 40));
simpan.setText("Simpan");
simpan.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { simpanActionPerformed(evt);
} });
jPanel1.add(simpan, new org.netbeans.lib.awtextra.AbsoluteConstraints(400, 290, 240, 40));
batal.setText("Batal");
batal.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { batalActionPerformed(evt);
} });
jPanel1.add(batal, new org.netbeans.lib.awtextra.AbsoluteConstraints(720, 290, 260, 40)); jLabel25.setText("(Enter Untuk Menghitung)");
jPanel1.add(jLabel25, new org.netbeans.lib.awtextra.AbsoluteConstraints(910, 200, -1, 20));
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.PREFERRED_SIZE, 1100, javax.swing.GroupLayout.PREFERRED_SIZE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 562, javax.swing.GroupLayout.PREFERRED_SIZE) ); pack(); }// </editor-fold>
private void titik2ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
data_barang FAA = new data_barang(); FAA.FPP = this;
FAA.setResizable(false); }
private void titikActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
data_kostumer FAD = new data_kostumer(); FAD.FPR = this;
FAD.setVisible(true); FAD.setResizable(false); }
private void jml_beliKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here:
hitungtotal(); }
private void tambahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
id(); id_cs.setEnabled(false); jDateChooser1.setEnabled(true); titik.setEnabled(true); titik2.setEnabled(true); tambah.setEnabled(false); simpan.setEnabled(true); batal.setEnabled(true); jml_beli.setEnabled(true); }
private void simpanActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
try {
if (!kd_brg.getText().isEmpty() && !nm_brg.getText().isEmpty() && !id_cs.getText().isEmpty()
&& !harga.getText().isEmpty() && !jml_beli.getText().isEmpty() && !total.getText().isEmpty()
&& !kd_jual.getText().isEmpty() && !nm_cs.getText().isEmpty()) {
if (JOptionPane.showConfirmDialog(this, "transaksi berhasil,ingin menambah transaksi?",
"Peringatan", JOptionPane.YES_NO_OPTION) == JOptionPane.OK_OPTION) {
//isi data disini hitungtotal(); update_brg(); simpan(); jDateChooser1.setEnabled(false); id_cs.setEnabled(false); clear(); jml_beli.setText(""); total.setText(""); loadtabel1(); stok_b.setText(""); } else {
JOptionPane.showMessageDialog(this, "terimakasih, kwitansi belanja sedang dicetak"); hitungtotal(); update_brg(); simpan(); cetak(); loadtabel1(); nonaktif(); kd_jual.setEnabled(false); jDateChooser1.setEnabled(false); titik.setEnabled(false); tambah.setEnabled(true); batal.setEnabled(false); simpan.setEnabled(false); jml_beli.setEnabled(false); id_cs.setText(""); kd_jual.setText(""); nm_cs.setText(""); clear(); total.setText("0"); stok_b.setText(""); } } else {
JOptionPane.showMessageDialog(this, "Data isian ada yang kosong"); }
} catch (Exception e) { }
}
private void batalActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
batal.setEnabled(false); simpan.setEnabled(false); tambah.setEnabled(true); jml_beli.setEnabled(false); loadtabel1(); clear(); kd_jual.setText(""); id_cs.setText(""); jDateChooser1.setEnabled(false); titik.setEnabled(false); titik2.setEnabled(false); id_cs.setEnabled(false); total.setText("0"); }
private void cariActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
try {
if (!t_cari.getText().isEmpty()) {
rs = con.querySelectAll("purchase_order", "kd_jual LIKE '%" + t_cari.getText() + "%' OR nm_cost LIKE '%" + t_cari.getText() +
"%' OR tgl_jual LIKE '%" + t_cari.getText() +"%'"); JOptionPane.showMessageDialog(this, "isi data pencarian"); t_cari.requestFocus();
}
} catch (Exception e) { }
}
private void reloadActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
t_cari.setText(""); loadtabel1();
}
private void jml_beliKeyTyped(java.awt.event.KeyEvent evt) { // TODO add your handling code here:
if (!Character.isDigit(evt.getKeyChar())) { evt.consume();
}
}
// Variables declaration - do not modify private javax.swing.JButton batal;
private javax.swing.JButton cari; private javax.swing.JTextField harga; private javax.swing.JTextField id_cs;
private com.toedter.calendar.JDateChooser jDateChooser1; private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel14; private javax.swing.JLabel jLabel15; private javax.swing.JLabel jLabel16; private javax.swing.JLabel jLabel17; private javax.swing.JLabel jLabel18; private javax.swing.JLabel jLabel19; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel20; private javax.swing.JLabel jLabel21; private javax.swing.JLabel jLabel22; private javax.swing.JLabel jLabel23; private javax.swing.JLabel jLabel24; private javax.swing.JLabel jLabel25; 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; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1; private javax.swing.JSeparator jSeparator1;
table.setModel(new Database.ResultSetTable(rs)); } else {
private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator3; private javax.swing.JSeparator jSeparator4; private javax.swing.JTextField jml_beli; private javax.swing.JTextField kd_brg; private javax.swing.JTextField kd_jual; private javax.swing.JTextField nm_brg; private javax.swing.JTextField nm_cs; private javax.swing.JButton reload; private javax.swing.JButton simpan; private javax.swing.JTextField stok_b; private javax.swing.JTextField stok_t; private javax.swing.JTextField t_cari; private javax.swing.JTable table; private javax.swing.JButton tambah; private javax.swing.JButton titik; private javax.swing.JButton titik2; private javax.swing.JTextField total; // End of variables declaration private void loadtabel1() {
String namaKolom[] = {"kd_jual", "tgl_jual", "id_cost",
"nm_cost", "kd_brg", "nm_brg", "hrg_satuan", "jml_beli", "total"}; rs = con.querySelect(namaKolom, "purchase_order");
table.setModel(new ResultSetTable(rs)); }
private void ambildata1() {
String st = (String) kd_brg.getText();
ResultSet rst = con.querySelectAll("barang", "kd_barang='" + st + "'OR nm_barang ='" + st + "'"); try { while (rst.next()) { this.nm_brg.setText(rst.getString("nm_barang")); this.harga.setText(rst.getString("harga")); this.stok_t.setText(rst.getString("stok")); }
} catch (SQLException ex) {
Logger.getLogger(form_PO.class.getName()).log(Level.SEVERE, null, ex); }
}
private void clear() { kd_brg.setText(""); nm_brg.setText(""); stok_t.setText(""); harga.setText(""); jml_beli.setText(""); }
private void nonaktif() { kd_brg.setEnabled(false); nm_brg.setEnabled(false); harga.setEnabled(false); stok_t.setEnabled(false); total.setEnabled(false); id_cs.setEnabled(false);
nm_cs.setEnabled(false); }
private void aktif() { kd_brg.setEnabled(false); nm_brg.setEnabled(false); harga.setEnabled(false); stok_t.setEnabled(false); total.setEnabled(false); id_cs.setEnabled(false); }
private void hitungtotal() {
int ttl1 = Integer.parseInt(harga.getText()); // harga di pars ke integer
int ttl2 = Integer.parseInt(jml_beli.getText()); // jml_beli baru di pars ke integer int ttl3 = ttl1 * ttl2; // mencari total
String a = Integer.toString(ttl3); total.setText(a);
int stok1 = Integer.parseInt(stok_t.getText()); // stok di pars ke integer
int stok2 = Integer.parseInt(jml_beli.getText()); // stok baru di pars ke integer int stok3 = stok1 - stok2; // mencari total
String c = Integer.toString(stok3); stok_b.setText(c);
}
private void simpan() { try {
if (!kd_brg.getText().isEmpty() && !nm_brg.getText().isEmpty() && !id_cs.getText().isEmpty()
&& !harga.getText().isEmpty() && !jml_beli.getText().isEmpty() && !total.getText().isEmpty()
&& !kd_jual.getText().isEmpty()) {
String kolom[] = {"kd_jual", "tgl_jual", "id_cost", "nm_cost", "kd_brg", "nm_brg", "hrg_satuan", "jml_beli", "total"};
java.util.Date tgl = (java.util.Date) this.jDateChooser1.getDate();
String isi[] = {kd_jual.getText(), new java.sql.Date(tgl.getTime()).toString(),
id_cs.getText(), nm_cs.getText(), kd_brg.getText(), nm_brg.getText(), harga.getText(), jml_beli.getText(), total.getText()};
System.out.println(con.queryInsert("purchase_order", kolom, isi)); loadtabel1(); } else { } } catch (Exception e) { System.out.println("salah"); } }
String kolom[] = {"kd_barang", "stok"};
String isi[] = {kd_brg.getText(), stok_b.getText()};
con.queryUpdate("barang", kolom, isi, "kd_barang='" + String.valueOf(kd_brg.getText()) + "'");
}
private void cetak() { try {
String NamaFile = "src/laporan/kwitansi_po.jasper"; Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection koneksi =
DriverManager.getConnection("jdbc:mysql://localhost/penjualan_tunai", "root", ""); HashMap hash = new HashMap();
//Mengambil parameter dari ireport hash.put("kode", kd_jual.getText()); File file = new File(NamaFile);
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(file.getPath()); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hash, koneksi); JasperViewer.viewReport(jasperPrint);
} catch (Exception ex) {
javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage()); }
} }
2.
Coding Form Pembayaran
import Database.KoneksiDatabase; import Database.ResultSetTable; import java.sql.ResultSet; import javax.swing.JOptionPane; import javax.swing.table.TableModel;
public class data_pembayaran extends javax.swing.JFrame {
ResultSet rs;
KoneksiDatabase con;
public form_jurnal FPR = null; /**
* Creates new form data_transaksi */
public data_pembayaran() {
con = new KoneksiDatabase(new Database.Parameter().HOST_DB, new Database.Parameter().USERNAME_DB,
new Database.Parameter().PASSWORD_DB); initComponents();
setTitle("Form Data Pembayaran"); loadtabel();
total_b.setEnabled(false); table.setEnabled(false); }
private void loadtabel() {
String namaKolom[] = {"kd_byr", "tgl_byr", "kd_jual", "nm_cost", "jml_bayar", "kemitraan", "diskon", "total"};
table.setModel(new ResultSetTable(rs)); }
private void auto_sum() {
int jumlahBaris = table.getRowCount(); int totalBiaya = 0;
int jumlahBarang; TableModel tabelModel; tabelModel = table.getModel(); for (int i = 0; i < jumlahBaris; i++) {
jumlahBarang = Integer.parseInt(tabelModel.getValueAt(i, 7).toString()); totalBiaya = totalBiaya + (jumlahBarang);
}
total_b.setText(String.valueOf(totalBiaya)); }
/**
* 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() {
jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jSeparator1 = new javax.swing.JSeparator(); jScrollPane1 = new javax.swing.JScrollPane(); table = new javax.swing.JTable();
jLabel12 = new javax.swing.JLabel(); jLabel13 = new javax.swing.JLabel(); t_cari = new javax.swing.JTextField(); cari = new javax.swing.JButton(); total_b = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); jLabel14 = new javax.swing.JLabel(); load = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel1.setFont(new java.awt.Font("Times New Roman", 0, 24)); // NOI18N jLabel1.setText("Data Pembayaran");
jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 10, -1, -1)); jPanel1.add(jSeparator1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 40, 830, -1));
table.setModel(new javax.swing.table.DefaultTableModel( new Object [][] {
{null, null, null, null, null, null, null, null}, {null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null}, {null, null, null, null, null, null, null, null} },
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4", "Title 5", "Title 6", "Title 7", "Title 8" }
));
table.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { tableMouseClicked(evt);
} });
jScrollPane1.setViewportView(table);
jPanel1.add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 130, 830, 120));
jLabel12.setText("Cari Kode Pembayaran");
jPanel1.add(jLabel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 70, -1, -1)); jLabel13.setText(":");
jPanel1.add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 70, 10, -1)); t_cari.setBackground(new java.awt.Color(204, 204, 255));
jPanel1.add(t_cari, new org.netbeans.lib.awtextra.AbsoluteConstraints(250, 70, 220, -1)); cari.setText("Cari");
cari.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cariActionPerformed(evt);
} });
jPanel1.add(cari, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 70, -1, -1)); total_b.setBackground(new java.awt.Color(204, 204, 255));
jPanel1.add(total_b, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 270, 90, -1)); jLabel2.setFont(new java.awt.Font("Microsoft YaHei UI Light", 0, 24)); // NOI18N jLabel2.setText("Total Belanja Rp.");
jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 260, -1, -1)); jLabel14.setText(":");
jPanel1.add(jLabel14, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 70, 10, -1)); load.setText("Load Tabel");
load.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { loadActionPerformed(evt);
} });
jPanel1.add(load, new org.netbeans.lib.awtextra.AbsoluteConstraints(550, 70, -1, -1)); getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 850, 310));
}// </editor-fold>
private void cariActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
try {
if (!t_cari.getText().isEmpty()) {
rs = con.querySelectAll("pembayaran", "kd_byr LIKE '%" + t_cari.getText() + "%' OR nm_cost LIKE '%" + t_cari.getText()
+ "%' OR kd_jual LIKE '%" + t_cari.getText() + "%'"); table.setModel(new Database.ResultSetTable(rs));
auto_sum(); } else {
JOptionPane.showMessageDialog(this, "isi data pencarian"); t_cari.requestFocus(); } } catch (Exception e) { } table.setEnabled(true); }
private void tableMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:
String totalP = total_b.getText();
int tabelKostumer = table.getSelectedRow();
FPR.jualID = table.getValueAt(tabelKostumer, 0).toString(); FPR.totalP = total_b.getText();
FPR.itemTerpilih(); this.dispose(); }
private void loadActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
loadtabel(); t_cari.setText(""); t_cari.requestFocus(); table.setEnabled(false); } /**
* @param args the command line arguments */
// Variables declaration - do not modify private javax.swing.JButton cari;
private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel14; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1; private javax.swing.JSeparator jSeparator1; private javax.swing.JButton load;