• Tidak ada hasil yang ditemukan

BAB III PEMBAHASAN. dan proses bisnis berjalan yang berlaku pada perusahaan ini.

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III PEMBAHASAN. dan proses bisnis berjalan yang berlaku pada perusahaan ini."

Copied!
52
0
0

Teks penuh

(1)

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

(2)

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:

(3)

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.

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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.

(9)

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

(10)

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.

(11)

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.

(12)

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.

(13)

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

(14)

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

(15)

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

(16)

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.

(17)

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.

(18)

4.

Activity Diagram Mengelola Jurnal Umum

Gambar III.9

(19)

5.

Activity Diagram Perkiraan

Gambar III.10

Activity Diagram Mengelola Perkiraan

6.

Activity Diagram Laporan Purchase Order

Gambar III.11

(20)

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

(21)

3.4.2. Logical Record Structure (LRS)

Berikut adalah logical record structure dari rancangan program aplikasi

penjualan tunai SR12:

Gambar III.13

(22)

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

(23)

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

e-Mail

email

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

(24)

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

(25)

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

(26)

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

(27)

3.4.5. User Interface

1.

Form Login

Gambar III.15

User Interface Form Login

2.

Halaman Utama

Gambar III.16

(28)

3.

Form Barang

Gambar III.17

User Interface Form Barang

4.

Form Customer

Gambar III.18

(29)

5.

Form Admin

Gambar III.19

User Interface Form Admin

6.

Form Purchase Order

Gambar III.20

(30)

7.

Form Pembayaran

Gambar III.21

User Interface Form Pembayaran

8.

Form Perkiraan

Gambar III.22

(31)

9.

Form Jurnal Umum

Gambar III.23

User Interface Form Jurnal Umum

10. Form Laporan Jurnal Umum

Gambar III.24

(32)

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;

(33)

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;

(34)

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();

(35)

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

(36)

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));

(37)

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);

(38)

});

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));

(39)

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;

(40)

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 {

(41)

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();

(42)

}

} 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 {

(43)

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);

(44)

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"); } }

(45)

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"};

(46)

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},

(47)

{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));

(48)

}// </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;

Gambar

Gambar III.3
Gambar III.4
Tabel III.1
Tabel III.4
+7

Referensi

Dokumen terkait

Isi ini harus sesuai dengan judul penelitian yang dilakukan, sehingga sangat bermanfaat untuk pembahasan hasil penelitian, dengan demikian Tinjauan Pustaka bukan hanya

Bab IV Analisis terhadap masalah yang diangkat dalam penelitian ini, yaitu Perlindungan hukum bagi Wakif, Nazhir dan Penerima Wakaf tunai di Indonesia, dan pemanfaatan wakaf

Campuran senyawa atraktan protein (olahan limbah kakao/ OLK) dan metil eugenol (ME sintetis dan ekstrak selasih) dapat meningkatkan daya tarik lalat buah, karena

Teori kontrak sosial – yang lebih beresensikan upaya menemukan dasar pembenar yang rasional bagi eksistensi negara dan hak-hak warganegara (daripada merupakan upaya

Purpose – This study aims to examine whether gender, fashion innovativeness and opinion leadership, and need for touch have effects on consumers’ multi-channel choice

Model sistem deteksi terdistribusi pada jaringan sensor nirkabel yang dipengaruhi kanal fading, dengan topologi paralel dapat dilihat pada gambar.. Dari gambar tersebut terdapat

Berdasarkan hasil penelitian dan pembahasan yang telah dilakukan, maka dapat ditarik kesimpulan bahwa penerapan Analisis Cost Volume Profit sebagai dasar perencanaan penetapan

Berikut merupakan tabel nilai Z sambungan geser ganda 4 jenis kayu yang diteliti.Tabel 5-8 memperlihatkan bahwa standar Amerika (Forest Products Laboratory, 1999)