bab iii pembahasan...nota rangkap 3 yang telah dibuat oleh bagian pelayanan, sj (surat jalan) yang...

55
28 BAB III PEMBAHASAN 3.1. Tinjauan Perusahaan Dalam pelaksanaan kegiatan rutin di PD Family Purwasari terdapat aturan yang ditentukan dalam hal ini struktur organisasi yang menggambarkan garis perintah dan penerimaan perintah serta fungsi-fungsi pelaksanaan tersebut sehingga semua menjadi lancar. Berikut merupakan tinjauan perusahaan dari yang telah penulis teliti mengenai PD Family Purwasari. 3.1.1. Sejarah Perusahaan PD Family Purwasari merupakan salah satu toko bahan bangunan yang bergerak dibidang penjualan material atau bahan bangunan. PD Family Purwasari didirikan beralamat di Jl. Babakan Cengkong RT. 003/003 Desa Sukasari Kecamatan Purwasari Kabupaten karawang pada tahun 2010 dengan menyediakan dan menjual produk bahan-bahan bangunan dan buka setiap hari dari jam 07:00 WIB hingga pukul 17:00 WIB. Letaknya yang cukup sterategis memudahkan pembeli untuk datang. Dengan tujuan dapat melayani konsumen dengan semaksimal mungkin. Berbagai inovasi dan konsep yang berbeda dengan toko bahan bangunan yang lainnya dicoba diterapkan pada PD Family Purwasari, misalnya hadir dengan menggunakan sistem pemesanan via telepon dan delivery. Ternyata konsep yang di tawarkan oleh PD Family Purwasari berbuah respon masyarakat yang sangat baik. Konsumen merasa dimudahkan untuk membeli produk bahan-bahan bangunan yang mereka butuhkan tanpa mengurangi dan mengganggu aktivitas pekerjaan mereka.

Upload: others

Post on 18-Dec-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

28

BAB III

PEMBAHASAN

3.1. Tinjauan Perusahaan

Dalam pelaksanaan kegiatan rutin di PD Family Purwasari terdapat aturan yang

ditentukan dalam hal ini struktur organisasi yang menggambarkan garis perintah dan

penerimaan perintah serta fungsi-fungsi pelaksanaan tersebut sehingga semua

menjadi lancar. Berikut merupakan tinjauan perusahaan dari yang telah penulis teliti

mengenai PD Family Purwasari.

3.1.1. Sejarah Perusahaan

PD Family Purwasari merupakan salah satu toko bahan bangunan yang

bergerak dibidang penjualan material atau bahan bangunan. PD Family Purwasari

didirikan beralamat di Jl. Babakan Cengkong RT. 003/003 Desa Sukasari Kecamatan

Purwasari Kabupaten karawang pada tahun 2010 dengan menyediakan dan menjual

produk bahan-bahan bangunan dan buka setiap hari dari jam 07:00 WIB hingga

pukul 17:00 WIB. Letaknya yang cukup sterategis memudahkan pembeli untuk

datang. Dengan tujuan dapat melayani konsumen dengan semaksimal mungkin.

Berbagai inovasi dan konsep yang berbeda dengan toko bahan bangunan yang

lainnya dicoba diterapkan pada PD Family Purwasari, misalnya hadir dengan

menggunakan sistem pemesanan via telepon dan delivery. Ternyata konsep yang di

tawarkan oleh PD Family Purwasari berbuah respon masyarakat yang sangat baik.

Konsumen merasa dimudahkan untuk membeli produk bahan-bahan bangunan yang

mereka butuhkan tanpa mengurangi dan mengganggu aktivitas pekerjaan mereka.

Page 2: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

29

Adapun produk bahan bangunan yang di jual berupa besi, pasir, semen, cat, keramik,

paku, kayu, serta berbagai macam kebutuhan bahan bangunan lainnya.

3.1.2. Struktur Organisasi dan Fungsi

Struktur organisasi PD Family Purwasari Karawang dibuat dengan tujuan

memudahkan koordinasi antar bagian, sehingga menjalankan kegiatannya sudah

menerapkan sistem pembagian kerja yang standar.

Berikut gambar struktur organisasi PD Family Purwasari Karawang:

Sumber : Struktur Organisasi PD Family Purwasari Karawang (2019)

Gambar III.1

Struktur Organisasi PD Family Purwasari Karawang

Untuk melengkapi struktur organisasi suatu perusahaan, diperlukan uraian

tugas yang akan menjelaskan tentang wewenang dan tanggung jawab masing-masing

fungsi dalam perusahaan. Uraian jabatan pada PD Family adalah sebagai berikut:

Page 3: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

30

1. Pemilik

a. Memimpin kegiatan usaha secara keseluruhan

b. Mengatur keuangan toko

c. Mengatur gaji karyawan

2. Bagian Kasir

a. Melayani pembayaran

b. Mengelola transaksi penjualan

c. Berpakaian rapi, berpenampilan baik, dan renda hati

d. Bertanggung jawab penuh dan jujur

e. Disiplin dan selalu bekerja sama dengan sesama karyawan

3. Bagian Pelayanan

a. Melayani pembelian konsumen secara langsung

b. Murah senyum, ramah, sopan, dan pandai berkomunikasi

c. Teliti, rapih dan cekatan

4. Bagian Gudang

a. Mengatur penyimpanan barang

b. Mengawasi dan mengontrol semua barang yang masuk dan keluar

c. Memastikan ketersediaan barang sesuai dengan kebutuhan

5. Bagian Pengantar Barang/Supir

a. Mengantar pesanan barang kepada pelanggan

3.2. Tinjauan Kasus

Dalam kasus ini penulis memperoleh langsung dari informasi bagian

pemasaran serta dari data laporan penjualan pada PD Family Purwasari Karawang.

Page 4: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

31

3.2.1. Proses Bisnis Sistem Berjalan

Tahapan-tahapan kegiatan yang dilakukan oleh perusahaan dalam melakukan

aktifitas dan rutinitas dari PD Family dengan prosedur sistem berjalan.

Adapun prosedur sistem berjalan untuk penjualan tunai yang diterapkan pada

PD Family Purwasari Karawang terdiri dari:

1. Proses penjualan barang

Konsumen datang ke toko menanyakan barang yang konsumen mau melalui

bagian pelayanan, kemudian bagian pelayanan menulis barang apa saja yang

dibutuhkan oleh konsumen di kertas kosong, lalu bagian pelayanan memberikan

kertas itu ke bagian gudang. Bagian gudang mengecek pesanan barang yang

dibutuhkan, Jika barang yang dibutuhkan tersedia atau tidak. Kemudian bagian

gudang balik lagi ke bagian pelayanan. Jika barang nya tersedia maka bagian

pelayanan mencatat ke dalam Nota 3 rangkap.

2. Proses Pembayaran

Kemudian setelah dicatat oleh bagian pelayanan, Nota di berikan ke bagian

kasir. Lalu konsumen membayar semua total harga yang ada di nota, kemudian

nota pink untuk di toko sebagai arsip, dan bukti transaksi yang putih untuk

konsumen.

3. Proses Pengiriman

Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang

diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang

yang akan dikirim berdasarkan SJ. Kemudian bagian gudang memerintahkan

kepada bagian pengiriman mengirim barang yang disertai SJ kepada konsumen

jika ada barang yang tidak sesuai, maka konsumen tidak akan menandatangani

SJ tersebut. Jika sesuai maka SJ akan ditandatangani konsumen.

Page 5: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

32

3.2.2. Activity Diagram

Activity diagram adalah diagram yang menggambarkan proses alur kerja

(workflow) dari sebuah sistem. Activity diagram menguraikan proses bisnis sistem

berjalan yang sedang dipelajari berdasarkan urutan waktu aktifitasnya. Berikut

adalah activity diagram dari prosedur penjualan tunai pada PD Family:

1. Activity Diagram Prosedur penjualan barang

Sumber: PD Family Purwasari

Gambar III.2

Activity Diagram Prosedur Penjualan Barang

Page 6: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

33

2. Activity Diagram Prosedur Pembayaran

Sumber: PD Family Purwasari

Gambar III.3

Activity Diagram Prosedur Pembayaran

3. Activity Diagram Prosedur Pengiriman

Sumber: PD Family Purwasari

Gambar III.4

Activity Diagram Prosedur Pengiriman

Page 7: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

34

3.2.3. Dokumen Masukan

Dokumen Masukan adalah segala bentuk dokumen yang berasal dari

lingkungan luar sistem yang berupa dokumen-dokumen akan diolah dalam suatu

proses. Adapun dokumen-dokumen masukan tersebut adalah sebagai berikut:

1. Nama dokumen : Nota Rangkap 2

Fungsi : Sebagai Bukti Transaksi

Sumber : Konsumen

Tujuan : Admin

Media : Kertas

Jumlah : 1 Lembar

Frekuensi : Setiap Administrasi Melakukan Pencatatan Laporan

Format : Lampiran A.1

3.2.4. Dokumen Keluaran

Dokumen keluaran adalah segala bentuk dokumen yang akan mendukung

kegiatan manajemen serta merupakan dokumen dari hasil catatan laporan. Adapun

dokumen keluaran yang digunakan adalah sebagai berikut:

1. Nama Dokumen : Nota Rangkap 1

Fungsi : Sebagai Bukti Pembayaran

Sumber : Admin

Tujuan : Konsumen

Media : Kertas

Jumlah : 1 Lembar

Frekuensi : Setiap Konsumen Melakukan Pembayaran

Format : Lampiran B.1

Page 8: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

35

2. Nama Dokumen : Nota Rangkap 3

Fungsi : Sebagai bukti pengirim barang

Sumber : Admin

Tujuan : Konsumen

Media : Kertas

Jumlah : 1 Lembar

Frekuensi : Setiap Ada Pengiriman barang

Format : Lampiran B.2

3.2.5. Permasalahan Pokok

Berdasarkan pengamatan penulis, permasalahan yang ada di PD Family

Purwasari yaitu:

1. Konsumen memesan barang melalui telepon yang mengakibatkan tidak sesuai

pencatatan barang yang dipesan dan barang yang dikirm.

2. Tidak adanya pencatatan laporan penjualan, sehingga tidak mengetahui berapa

laba atau rugi perusahaan.

3. Tidak ada pencatatan stok barang oleh bagian gudang yang mengakibatkan tidak

efektifnya kegiatan dalam pengelolaan data penjualan.

3.2.6. Pemecahan Masalah

Berdasarkan pengamatan penulis, pemecahan masalah untuk PD Family

Purwasari yaitu:

1. Perlu di rancang sebuah sistem yang dapat menangani pencatatan transaksi pada

saat melakukan pembayaran.

Page 9: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

36

2. Pembayaran seharusnya dilakukan melalui transfer untuk menanggulangi

terjadinya kehilangan dan memberikan kwitansi sebagai bukti pembayaran.

3. Diperlukan ada nya pencatatan laporan penjualan agar lebih efektif laba atau rugi

perusahaan nya.

3.3. Analisa Kebutuhan Software

Kebutuhan akan pengembangan sistem atau perbaikan pada sistem yang

berlaku akan mutlak diperlukan. Hal ini disebabkan karena imbas dari perkembangan

teknologi yang terus maju. Berikut adalah kebutuhan-kebutuhan yang diperlukan

pada sistem penjualan tunai pada PD Family Purwasari.

3.3.1. Analisa Kebutuhan

Analisa kebutuhan dilakukan untuk mengetahui hal apa saja yang diperlukan

dalam pengembangan sistem yang ada. Kebutuhan fungsional adalah kebutuhan-

kebutuhan yang memiliki keterkaitan langsung dengan proses yang dilakukan

pengguna (user). Berikut analisa kebutuhan fungsional yang diusulkan:

A. Pemilik

A.1. Pemilik berhak melakukan login.

A.2. Pemilik berhak mengakses laporan penjualan.

A.3. Pemilik berhak mengakses laporan jurnal

B. Admin

B.1. Admin berhak melakukan login

B.2. Admin berhak mengelola data barang

B.3. Admin berhak mengelola penjualan.

B.4. Admin berhak mengakses detail penjualan

Page 10: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

37

B.5. Admin berhak mengelola laporan penjualan.

B.6. Admin berhak mengelola laporan jurnal.

3.3.2. Use Case Diagram

Use case diagram digunakan untuk menggambarkan interaksi yang terjadi

antara aktor inisiator dari interaksi sistem itu sendiri dengan sistem yang ada. Berikut

adalah use case diagramsistem usulan dari aktor yang berperan dalam penjualan

tunai di PD Family.

Gambar III.5

Use Case Diagram Usulan

Page 11: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

38

Tabel III.1 Deskripsi Use case Halaman Admin

Use Case Narative Halaman Admin

Tujuan Admin dapat melihat data yang ada di dalam sistem halaman admin

Deskripsi Sistem ini memungkinkan Admin untuk masuk ke halaman admin

yang di dalamnya dapat mengelola data barang, data penjualan, dan

laporan jurnal

Skenario Utama

Aktor Admin

Kondisi Awal Aktor membuka aplikasi halaman Admin

Aksi Aktor Reaksi Sistem

1. Aktor memilih menu

master_akun

2. Aktor memilih menu

Barang

Sistem akan menampilkan informasi menu master

_akun

Sistem akan menampilkan informasi menu barang

Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan

sesuai keinginan

Tabel III.2 Deskripsi Use case Halaman Pemilik

Use Case Narative Halaman Pemilik

Tujuan Pemilik dapat melihat data yang ada di dalam sistem halaman

pemilik

Deskripsi Sistem ini memungkinkan pemilik untuk masuk ke halaman pemilik

yang di dalamnya dapat mengakses laporan penjualan, dan laporan

jurnal

Skenario Utama

Aktor Pemilik

Kondisi Awal Aktor membuka aplikasi halaman Pemilik

Aksi Aktor Reaksi Sistem

1. Aktor memilih menu

laporan penjualan

2. Aktor memilih menu

laporan jurnal

Sistem akan menampilkan informasi menu laporan

penjualan

Sistem akan menampilkan informasi menu laporan

jurnal

Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan

sesuai keinginan

Page 12: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

39

3.3.3. Activity Diagram Usulan

1. Activity Diagram Usulan Pemilik Melakukan Login

Gambar III.6

Activity Diagram Usulan Pemilik Melakukan Login

2. Activity Diagram Usulan Admin Melakukan Login

Gambar III.7

Activity Diagram Usulan Admin Melakukan Login

Page 13: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

40

3. Activity Diagram Usulan Admin Mengelola Data Barang

Gambar III.8

Activity Diagram Usulan Admin Mengelola Data Barang

Page 14: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

41

4. Activity Diagram Usulan Admin Mengelola Transaksi Penjualan

Gambar III.9

Activity Diargam Usulan Admin Mengelola Transaksi Penjualan

Page 15: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

42

5. Activity Diagram Usulan Admin Membuat Laporan Penjualan

Gambar III.10

Activity Diagram Usulan Admin Membuat Laporan Penjualan

Page 16: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

43

6. Activity Diagram Usulan Admin Membuat Laporan Jurnal

Gambar III.11

Activity Diagram Usulan Admin Membuat Laporan Jurnal

Page 17: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

44

3.4. Desain

Desain merupakan suatu perencanaan atau gambar yang dibuat untuk

menunjukkan tampilan dan fungsi atau cara kerja suatu bangunan, pakaian, atau

benda lain sebelum dibuat.

3.4.1. Entity Relationship Diagram Usulan (ERD)

Gambar III.12

Entity Relationship Diagram Usulan (ERD)

Page 18: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

45

3.4.2. Logical Record Structure Usulan (LRS)

Gambar III.13

Logical Record Structure Usulan (LRS)

Page 19: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

46

3.4.3. Spesifikasi File

Program ini menggunakan database dengan nama penjualan dan di dalam nya

terdapat tabel-tabel sebagai berikut:

1. Spesifikasi Admin

Nama Data base : penjualan

Nama File : Admin

Tipe File : Master

Akses File : Random

Panjang Record : 36 Karakter

Field Key : id_admin

Software : My SQL

Tabel III.3

Spesifikasi Admin

No Elemen Data Akronim Tipe Panjang Keterangan

1. Idadmin id_admin Int 11 Primary Key

2. Username user_name Varchar 5

3. Password Password Varchar 5

4. Hakakses hak_akses Varchar 15

2. Spesifikasi File Barang

Nama Data base : penjualan

Nama File : barang

Tipe File : Master

Akses File : Random

Panjang Record : 63 Karakter

Field Key : id_barang

Page 20: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

47

Software : My SQL

Tabel III.4

Spesifikasi File Barang

No Elemen Data Akronim Tipe Panjang Keterangan

1. Kode barang id_barang Varchar 10 Primary Key

2. Nama barang nama_barang Varchar 15

3. Satuan Satuan Varchar 15

4. Stok Stok Int 8

5. Harga Harga Int 15

3. Spesifikasi File Penjualan

Nama Data base : penjualan

Nama File : detail_penjualan

Tipe File : Transaksi

Akses File : Random

Panjang Record : 64 Karakter

Field Key : Id_detail

Software :My SQL

Tabel III.5

Spesifikasi File Penjualan

No Elemen Data Akronim Tipe Panjang Keterangan

1. id detail id_detail Int 11 Primary Key

2. id transaksi id_transaksi Varchar 10

3. id barang id_barang Varchar 10

4. Harga Harga Int 11

5. Jumlah Jumlah Int 11

6. Total Total Int 11

Page 21: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

48

4. Spesifikasi Jurnal

Nama Data base : penjualan

Nama File : jurnal

Tipe File : Jurnal

Akses File : Random

Panjang Record : 118 Karakter

Field Key : No_jurnal

Software : My SQL

Tabel III.6

Spesifikasi Jurnal

No Elemen Data

Akronim Tipe Panjang Keterangan

1. no jurnal no_jurnal Varchar 11 Primary key

2. id transaksi id_transaksi Varchar 15

3. Debet Debet Int 11

4. Kredit Kredit Int 11

5. Keterangan Keterangan Varchar 25

6. kode akun kode_akun Varchar 15

7. Tanggal Tanggal Varchar 15

8. nama akun Nama_akun Varchar 15

5. Spesifikasi File Master_Akun

Nama Data base : penjualan

Nama File : master_akun

Tipe File : Master

Akses File : Random

Panjang Record : 75 Karakter

Field Key : kode_akun

Software : My SQL

Page 22: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

49

Tabel III.7

Spesifikasi File Master_Akun

No Elemen Data Akronim Tipe Panjang Keterangan

1. kode akun kode_akun Varchar 15 Primary Key

2. nama akun nama_akun Varchar 35

3. jenis akun jenis_akun Varchar 25

6. Spesifikasi Transaksi

Nama Data base : penjualan

Nama File : transaksi

Tipe File : transaksi

Akses File : Random

Panjang Record : 37 Karakter

Field Key : id_transaksi

Software : My SQL

Tabel III.8

Spesifikasi File Transaksi

No Elemen Data Akronim Tipe Panjang Keterangan

1. Idtransaksi id_transaksi Varchar 11 Primary Key

2. Tanggal Tanggal Varchar 15

3. id admin id_admin Int 11

Page 23: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

50

3.4.4. Sequance Diagram Usulan

Gambar III.14

Sequance Diagram Usulan

Page 24: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

51

3.4.5. Deployment Diagram Usulan

Gambar III.15

Deployment Diagram usulan

3.4.6. User Interface

1.User Interface Login

Gambar III.16

User Interface Login

Page 25: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

52

2. User Interface Menu Utama

Gambar III.17

User Interface Menu Utama

3. User Interface Master Akun

Gambar III.18

User Interface Master Akun

Page 26: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

53

4. User Interface Barang

Gambar III.19

User Interface Barang

5. User Interface Transaksi Penjualan

Gambar III.20

User Interface Transaksi Penjualan

Page 27: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

54

6. User Interface Data Penjualan

Gambar III.21

User Interface Data Penjualan

7. User Interface Jurnal

Gambar III.22

User Interface Jurnal

Page 28: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

55

8. User Interface Laporan penjualan

Gambar III.23

User Interface Laporan Penjualan

9. User Interface Laporan Jurnal

Gambar III.24

User Interface Laporan Jurnal

Page 29: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

56

3.5. Implementasi

Implementasi merupakan pelaksanaan tindak oleh individu, pejabat, intansi

pemerintah maupun perintah dengan tujuan untuk menggapai cita-cita yang telah

digariskan dalam keputusan tertentu. Berikut ini implementasi pada aplikasi

penjualan bahan bangunan pada PD family.

3.5.1. Code Generation

package penjualan;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.GraphicsEnvironment;

import java.awt.Point;

import java.awt.event.KeyEvent;

import java.io.File;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JOptionPane;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.HashMap;

import javax.swing.table.DefaultTableModel;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JasperCompileManager;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.JasperReport;

import net.sf.jasperreports.engine.design.JasperDesign;

import net.sf.jasperreports.engine.xml.JRXmlLoader;

import net.sf.jasperreports.view.JasperViewer;

/**

*

* @author ferafentika

*/

Page 30: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

57

public class Frmtransaksi extends javax.swing.JDialog {

koneksi conn= new koneksi();

String kode,tanggal, penerima,keterangan, ubah;

int jml;

Date tgl;

ResultSet resultSet;

java.sql.Statement statement;

DefaultTableModel tb;

* Creates new form Frmmaster_barang

* @param parent

* @param modal

penjualan.PetugasSession PetugasSession = new penjualan.PetugasSession();

penjualan.koneksi1 konek = new penjualan.koneksi1();

public Frmtransaksi(java.awt.Frame parent, boolean modal) {

super(parent, modal);

initComponents();

initUI();

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

Calendar cal = Calendar.getInstance();

txttgl.setText(dateFormat.format(cal.getTime()));

txtnm_petugas.setText(PetugasSession.getU_username());

txtid_petugas.setText(Integer.toString(PetugasSession.getU_id()));

setkode();

jTextField1.hide();

txtotal.hide();

kredit.hide();

SelectPelanggan();

txtkode_barang.hide();

lblnama_barang.hide();

no_jurnal.hide();

takun.hide();

takun1.hide();

kas.hide();

keter.hide();

TxtEmpty();

}

Frmtransaksi() {

throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods,

choose Tools | Templates.

}

private void initUI(){

getContentPane().setBackground(new Color(245, 245, 245));

Dimension windowSize = getSize();

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();

Page 31: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

58

Point centerPoint = ge.getCenterPoint();

int dx = centerPoint.x - windowSize.width / 2;

int dy = centerPoint.y - windowSize.height / 2;

setLocation(dx, dy);

}

private void SelectPelanggan(){

try {

Connection conn = konek.openkoneksi();

java.sql.Statement stm = conn.createStatement();

java.sql.ResultSet rs = stm.executeQuery("SELECT * FROM barang");

cmbid_pelanggan.addItem("Pilih");

while(rs.next()){

cmbid_pelanggan.addItem(rs.getString("id_barang") + " " + rs.getString("nama_barang"));

}

konek.closekoneksi();

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, "Error " + e);

} catch (ClassNotFoundException ex) {

Logger.getLogger(barang.class.getName()).log(Level.SEVERE, null, ex);

}

}

private void TxtEmpty(){

TableEmpty();

BtnEnabled(false);

lblnama_barang.setText("-");

txtid_selected.setText("");

txtid_petugas.hide();

txtid_barang.hide();

txtjumlah_barang_max.hide();

}

private void TableEmpty(){

DefaultTableModel model = (DefaultTableModel) datatable.getModel();

int rowCount = model.getRowCount();

for (int i = rowCount - 1; i >= 0; i--) {

model.removeRow(i);

}

}

private void BtnEnabled(boolean x){

btnDelRow.setEnabled(x);

}

private void GetData_View(){

String row = Integer.toString(datatable.getSelectedRow());

txtid_selected.setText(row);

Page 32: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

59

BtnEnabled(true);

}

public final void auto_sum(){

int total =0;

for (int i =0; i< datatable.getRowCount(); i++){

int amount = Integer.parseInt((String)datatable.getValueAt(i, 4));

total += amount;

}

txtsubtotal.setText(""+total);

}

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

jLabel5 = new javax.swing.JLabel();

jPanel1 = new javax.swing.JPanel();

jLabel8 = new javax.swing.JLabel();

jPanel3 = new javax.swing.JPanel();

jLabel4 = new javax.swing.JLabel();

jLabel6 = new javax.swing.JLabel();

txtjumlah_barang = new javax.swing.JTextField();

btnok = new javax.swing.JButton();

jScrollPane1 = new javax.swing.JScrollPane();

datatable = new javax.swing.JTable(){

public boolean isCellEditable(int rowIndex, int colIndex) {

return false;

}

};

btnTableEmpty = new javax.swing.JButton();

lblnama_barang = new javax.swing.JLabel();

txtkode_barang = new javax.swing.JTextField();

txtid_barang = new javax.swing.JTextField();

txtjumlah_barang_max = new javax.swing.JTextField();

btnDelRow = new javax.swing.JButton();

txtid_selected = new javax.swing.JTextField();

txtotal = new javax.swing.JTextField();

txtharga = new javax.swing.JTextField();

cmbid_pelanggan = new javax.swing.JComboBox<>();

jLabel12 = new javax.swing.JLabel();

jLabel1 = new javax.swing.JLabel();

txttgl = new javax.swing.JTextField();

jLabel2 = new javax.swing.JLabel();

txtnm_petugas = new javax.swing.JTextField();

btnsave = new javax.swing.JButton();

txtid_petugas = new javax.swing.JTextField();

Page 33: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

60

jLabel7 = new javax.swing.JLabel();

txtsubtotal = new javax.swing.JTextField();

jLabel9 = new javax.swing.JLabel();

jTextField1 = new javax.swing.JTextField();

takun = new javax.swing.JTextField();

no_jurnal = new javax.swing.JTextField();

kredit = new javax.swing.JTextField();

ket = new javax.swing.JTextField();

jLabel3 = new javax.swing.JLabel();

jButton1 = new javax.swing.JButton();

jLabel10 = new javax.swing.JLabel();

ubay = new javax.swing.JTextField();

ukem = new javax.swing.JTextField();

jLabel11 = new javax.swing.JLabel();

takun1 = new javax.swing.JTextField();

kas = new javax.swing.JTextField();

keter = new javax.swing.JTextField();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

setTitle("Inventori Barang :: Transaksi Barang Masuk");

jLabel5.setFont(new java.awt.Font("Lucida Grande", 0, 24)); // NOI18N

jPanel1.setBackground(new java.awt.Color(51, 153, 255));

jLabel8.setFont(new java.awt.Font("Lucida Grande", 0, 22)); // NOI18N

jLabel8.setForeground(new java.awt.Color(182, 229, 251));

jLabel8.setText("Transaksi Penjualan");

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(18, 18, 18)

.addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 285,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jLabel8)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

);

jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(""));

jPanel3.setForeground(new java.awt.Color(245, 245, 245));

jLabel4.setText("Nama Barang");

Page 34: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

61

jLabel6.setText("Jumlah");

txtjumlah_barang.addKeyListener(new java.awt.event.KeyAdapter() {

public void keyTyped(java.awt.event.KeyEvent evt) {

txtjumlah_barangKeyTyped(evt);

}

});

btnok.setText("OK");

btnok.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnokActionPerformed(evt);

}

});

datatable.setModel(new javax.swing.table.DefaultTableModel(

new Object [][] {

},

new String [] {

"ID", "Nama Barang", "Jumlah", "Harga", "Total"

}

));

datatable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);

datatable.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseReleased(java.awt.event.MouseEvent evt) {

datatableMouseReleased(evt);

}

public void mouseClicked(java.awt.event.MouseEvent evt) {

datatableMouseClicked(evt);

}

});

datatable.addKeyListener(new java.awt.event.KeyAdapter() {

public void keyReleased(java.awt.event.KeyEvent evt) {

datatableKeyReleased(evt);

}

});

jScrollPane1.setViewportView(datatable);

btnTableEmpty.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N

btnTableEmpty.setText("Hapus Semua");

btnTableEmpty.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnTableEmptyActionPerformed(evt);

}

});

lblnama_barang.setText("id barang");

txtkode_barang.addFocusListener(new java.awt.event.FocusAdapter() {

public void focusLost(java.awt.event.FocusEvent evt) {

Page 35: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

62

txtkode_barangFocusLost(evt);

}

});

btnDelRow.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N

btnDelRow.setText("Hapus Yang Terpilih");

btnDelRow.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnDelRowActionPerformed(evt);

}

});

txtid_selected.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N

txtid_selected.setEnabled(false);

txtotal.setText("jTextField1");

txtharga.setEditable(false);

txtharga.setText("Harga");

cmbid_pelanggan.addItemListener(new java.awt.event.ItemListener() {

public void itemStateChanged(java.awt.event.ItemEvent evt) {

cmbid_pelangganItemStateChanged(evt);

}

});

jLabel12.setText("Harga : ");

javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);

jPanel3.setLayout(jPanel3Layout);

jPanel3Layout.setHorizontalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel3Layout.createSequentialGroup()

.addGap(14, 14, 14)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jScrollPane1)

.addGroup(jPanel3Layout.createSequentialGroup()

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,

false)

.addGroup(jPanel3Layout.createSequentialGroup()

.addComponent(btnTableEmpty)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(btnDelRow)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(txtid_selected, javax.swing.GroupLayout.PREFERRED_SIZE, 50,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel3Layout.createSequentialGroup()

.addComponent(jLabel4)

Page 36: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

63

.addGap(18, 18, 18)

.addComponent(cmbid_pelanggan, 0, 153, Short.MAX_VALUE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel12)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(txtharga, javax.swing.GroupLayout.PREFERRED_SIZE, 98,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(lblnama_barang)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(txtkode_barang, javax.swing.GroupLayout.PREFERRED_SIZE, 36,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(txtotal, javax.swing.GroupLayout.PREFERRED_SIZE, 23,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(txtid_barang, javax.swing.GroupLayout.PREFERRED_SIZE, 24,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(2, 2, 2)

.addComponent(txtjumlah_barang_max, javax.swing.GroupLayout.PREFERRED_SIZE, 21,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel6)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(txtjumlah_barang, javax.swing.GroupLayout.PREFERRED_SIZE, 58,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(btnok, javax.swing.GroupLayout.PREFERRED_SIZE, 58,

javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGap(0, 1, Short.MAX_VALUE)))

.addContainerGap())

);

jPanel3Layout.setVerticalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel3Layout.createSequentialGroup()

.addContainerGap()

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel4)

.addComponent(jLabel6)

.addComponent(txtjumlah_barang, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(btnok)

Page 37: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

64

.addComponent(txtkode_barang, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(txtid_barang, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(txtjumlah_barang_max, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(txtotal, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(lblnama_barang))

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(cmbid_pelanggan)

.addComponent(txtharga, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel12)))

.addGap(11, 11, 11)

.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 258,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(btnTableEmpty)

.addComponent(btnDelRow)

.addComponent(txtid_selected, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

);

jLabel1.setText("Tanggal");

txttgl.setEnabled(false);

jLabel2.setText("Nama Admin");

txtnm_petugas.setEnabled(false);

btnsave.setBackground(new java.awt.Color(43, 152, 240));

btnsave.setFont(new java.awt.Font("Lucida Grande", 0, 15)); // NOI18N

btnsave.setForeground(new java.awt.Color(255, 255, 255));

btnsave.setText("Simpan ");

btnsave.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnsaveActionPerformed(evt);

}

});

jLabel7.setText("Bersihkan inputan transaksi");

jLabel7.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseClicked(java.awt.event.MouseEvent evt) {

jLabel7MouseClicked(evt);

}

});

Page 38: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

65

txtsubtotal.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

jLabel9.setText("Total Bayar :");

takun.setText("1-1110");

no_jurnal.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

no_jurnalActionPerformed(evt);

}

});

kredit.setEditable(false);

kredit.setText("0");

ket.setEditable(false);

ket.setText("Penjualan");

ket.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

ketActionPerformed(evt);

}

});

jLabel3.setText("Kode Akun");

jButton1.setBackground(new java.awt.Color(43, 152, 240));

jButton1.setForeground(new java.awt.Color(255, 255, 255));

jButton1.setText("CETAK");

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt);

}

});

jLabel10.setText("Uang Bayar :");

ubay.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI

ubay.addFocusListener(new java.awt.event.FocusAdapter() {

public void focusLost(java.awt.event.FocusEvent evt) {

ubayFocusLost(evt);

}

});

ukem.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N

jLabel11.setText("Uang Kembali :");

takun1.setText("1-1200");

kas.setText("Kas");

keter.setText("Penjualan Barang");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

Page 39: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

66

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabel5)

.addComponent(jLabel7))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()

.addComponent(btnsave, javax.swing.GroupLayout.PREFERRED_SIZE, 147,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 142,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()

.addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 96,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(txtsubtotal, javax.swing.GroupLayout.PREFERRED_SIZE, 301,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(layout.createSequentialGroup()

.addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 96,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(ubay, javax.swing.GroupLayout.PREFERRED_SIZE, 301,

javax.swing.GroupLayout.PREFERRED_SIZE))))

.addGroup(layout.createSequentialGroup()

.addGap(11, 11, 11)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabel2)

.addComponent(jLabel3))

.addGap(26, 26, 26)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

.addComponent(ket)

.addComponent(txtnm_petugas, javax.swing.GroupLayout.DEFAULT_SIZE, 154,

Short.MAX_VALUE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(txtid_petugas, javax.swing.GroupLayout.PREFERRED_SIZE, 22,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

Page 40: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

67

.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 31,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addComponent(takun, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(no_jurnal, javax.swing.GroupLayout.PREFERRED_SIZE, 57,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(kredit, javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(25, 25, 25)

.addComponent(jLabel1)

.addGap(18, 18, 18)

.addComponent(txttgl, javax.swing.GroupLayout.PREFERRED_SIZE, 160,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(layout.createSequentialGroup()

.addComponent(takun1, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(kas, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(keter, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(0, 0, Short.MAX_VALUE))))

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()

.addGap(0, 0, Short.MAX_VALUE)

.addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 96,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(ukem, javax.swing.GroupLayout.PREFERRED_SIZE, 301,

javax.swing.GroupLayout.PREFERRED_SIZE)))

.addContainerGap())

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

Page 41: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

68

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel1)

.addComponent(txttgl, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel2)

.addComponent(txtnm_petugas, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(txtid_petugas, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(takun, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(no_jurnal, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(kredit, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(ket, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel3)

.addComponent(takun1, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(kas, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(keter, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(1, 1, 1)

.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabel7)

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(txtsubtotal, javax.swing.GroupLayout.PREFERRED_SIZE, 36,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 20,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

Page 42: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

69

.addComponent(ubay, javax.swing.GroupLayout.PREFERRED_SIZE, 36,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 20,

javax.swing.GroupLayout.PREFERRED_SIZE))))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(ukem, javax.swing.GroupLayout.PREFERRED_SIZE, 36,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 20,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addGap(46, 46, 46)

.addComponent(jLabel5)

.addGap(0, 27, Short.MAX_VALUE))

.addGroup(layout.createSequentialGroup()

.addGap(0, 0, Short.MAX_VALUE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

.addComponent(btnsave, javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

.addContainerGap())))

);

pack();

}// </editor-fold>

private void btnokActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

if (cmbid_pelanggan.getSelectedItem().equals("")||txtjumlah_barang.getText().equals("")) {

JOptionPane.showMessageDialog(this,"Nama Barang Harus Di Isi");

}

else{

int nilai1;

int nilai2;

int nilai3;

String Hasil;

nilai1=Integer.valueOf(txtharga.getText());

nilai2=Integer.valueOf(txtjumlah_barang.getText());

Page 43: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

70

nilai3=nilai1*nilai2;

Hasil=String.valueOf(nilai3);

txtotal.setText(Hasil);

String data1 = lblnama_barang.getText();

String data3 = txtid_barang.getText();

String data4 = txtjumlah_barang.getText();

String data5 = txtharga.getText();

String data6 = txtotal.getText();

if(!(data1.equals("")) && !(data3.equals("")) && !(data4.equals("")) && !(data5.equals("")) &&

!(data6.equals(""))){

int jumlah = Integer.parseInt(data4);

int jumlah_max = Integer.parseInt(txtjumlah_barang_max.getText());

if(jumlah <= jumlah_max){

Object[] row = { data1, data3, data4, data5 , data6 };

DefaultTableModel model = (DefaultTableModel) datatable.getModel();

model.addRow(row);

txtid_barang.setText("");

txtkode_barang.setText("");

lblnama_barang.setText("-");

txtjumlah_barang.setText("");

txtjumlah_barang_max.setText("");

txtharga.setText("");

txtotal.setText("");

cmbid_pelanggan.setSelectedItem("Pilih");

txtkode_barang.requestFocus();

}else{

JOptionPane.showMessageDialog(null, "Jumlah melebihi stok barang.");

}

}else{

JOptionPane.showMessageDialog(null, "Terdapat inputan yang kosong.");

}

}

auto_sum();

}

private void txtkode_barangFocusLost(java.awt.event.FocusEvent evt) {

// TODO add your handling code here:

String kode = txtkode_barang.getText();

if(!kode.equals("")){

//--------- Cek In jtable

Integer same_kode = 0;

DefaultTableModel model = (DefaultTableModel) datatable.getModel();

int rowCount = model.getRowCount();

for (int i = 0; i < rowCount; i++) {

if(kode.equals(datatable.getModel().getValueAt(i, 0).toString())){

Page 44: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

71

same_kode = 1;

}

}

if(same_kode == 0){

try {

Connection conn = konek.openkoneksi();

java.sql.Statement stm = conn.createStatement();

java.sql.ResultSet sql = stm.executeQuery("SELECT * FROM barang WHERE nama_barang='"+kode+"'");

if(sql.next()){

txtid_barang.setText(sql.getString("Nama_barang"));

lblnama_barang.setText(sql.getString("id_barang"));

txtjumlah_barang_max.setText(sql.getString("stok"));

txtharga.setText(sql.getString("harga"));

}else{

JOptionPane.showMessageDialog(null, "Nama Barang Tidak Ditemukan.");

txtid_barang.setText("");

lblnama_barang.setText("-");

txtkode_barang.setText("");

txtjumlah_barang_max.setText("");

txtharga.setText("");

txtotal.setText("");

}

konek.closekoneksi();

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, "Error " + e);

} catch (ClassNotFoundException ex) {

Logger.getLogger(Frmtransaksi.class.getName()).log(Level.SEVERE, null, ex);

}

}else{

JOptionPane.showMessageDialog(null, "id barang sudah pernah ditambah.");

txtkode_barang.setText("");

}

}else{

txtid_barang.setText("");

lblnama_barang.setText("-");

txtjumlah_barang_max.setText("");

}

}

private void btnsaveActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

String row_tgl = txttgl.getText();

String row_idpetugas = txtid_petugas.getText();

Page 45: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

72

String row_no = no_jurnal.getText();

String row_id = jTextField1.getText();

String row_kredit =kredit.getText();

String row_ket = ket.getText();

String row_akun = takun.getText();

String row_sub =txtsubtotal.getText();

String id, kode;

Integer id_barang_keluar = 0, jumlah, harga, total, stok, not_found, empty = 0;

DefaultTableModel model = (DefaultTableModel) datatable.getModel();

int rowCount = model.getRowCount();

if(rowCount > 0 && !"".equals(row_tgl) && !"".equals(row_idpetugas)){

//------- Memasukan pada tabel transaksi lihat [trbarang_] dan mengeluarkan id terakhir

try {

Connection conn = konek.openkoneksi();

java.sql.Statement stm = conn.createStatement();

stm.executeUpdate("INSERT INTO transaksi(id_transaksi,tanggal, id_admin) VALUES ('" + row_id + "','" +

row_tgl + "', '" + row_idpetugas + "')");

konek.closekoneksi();

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, "Error " + e);

} catch (ClassNotFoundException ex) {

Logger.getLogger(barang.class.getName()).log(Level.SEVERE, null, ex);

}

try {

Connection conn = konek.openkoneksi();

java.sql.Statement stm = conn.createStatement();

stm.executeUpdate("INSERT INTO jurnal(id_transaksi,debet,kredit,keterangan,kode_akun,tanggal,nama_akun)

VALUES ('" + row_id + "', '" + row_sub + "', '" + row_kredit + "', '" + keter.getText() + "', '" + takun1.getText() +

"', '" + row_tgl + "', '" + kas.getText() + "')");

konek.closekoneksi();

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, "Error " + e);

} catch (ClassNotFoundException ex) {

Logger.getLogger(barang.class.getName()).log(Level.SEVERE, null, ex);

}

try {

Connection conn = konek.openkoneksi();

java.sql.Statement stm = conn.createStatement();

stm.executeUpdate("INSERT INTO

jurnal(id_transaksi,debet,kredit,keterangan,kode_akun,tanggal,nama_akun) VALUES ('" + row_id + "', '" +

row_kredit + "', '" + row_sub + "', '" + keter.getText() + "', '" + row_akun + "', '" + row_tgl + "', '" + row_ket +

"')");

konek.closekoneksi();

Page 46: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

73

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, "Error " + e);

} catch (ClassNotFoundException ex) {

Logger.getLogger(barang.class.getName()).log(Level.SEVERE, null, ex);

}

for (int i = 0; i < rowCount; i++) {

not_found = 0;

stok = 0;

id = (datatable.getModel().getValueAt(i, 0).toString());

jumlah = Integer.parseInt((String) datatable.getModel().getValueAt(i, 2));

harga = Integer.parseInt((String) datatable.getModel().getValueAt(i, 3));

total = Integer.parseInt((String) datatable.getModel().getValueAt(i, 4));

//------- Mengurangi stok dengan data jumlah

try {

Connection conn = konek.openkoneksi();

java.sql.Statement stm = conn.createStatement();

java.sql.ResultSet sql = stm.executeQuery("SELECT stok FROM barang WHERE id_barang = '" + id + "'");

sql.next();

sql.last();

if (sql.getRow() == 1){

stok = (sql.getInt("stok") - jumlah);

} else {

not_found = 1;

}

konek.closekoneksi();

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, "Error " + e);

} catch (ClassNotFoundException ex) {

Logger.getLogger(data_akun.class.getName()).log(Level.SEVERE, null, ex);

}

if(not_found == 0){

//------- Mengupdate jumlah stok barang

try {

Connection conn = konek.openkoneksi();

java.sql.Statement stm = conn.createStatement();

stm.executeUpdate("UPDATE barang SET stok='" + stok + "' WHERE id_barang = '" + id + "'");

konek.closekoneksi();

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, "Error " + e);

} catch (ClassNotFoundException ex) {

Logger.getLogger(data_akun.class.getName()).log(Level.SEVERE, null, ex);

}

//------- Memasukan pada table transaksi detail

try {

Page 47: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

74

Connection conn = konek.openkoneksi();

java.sql.Statement stm = conn.createStatement();

stm.executeUpdate("INSERT INTO detail_penjualan (id_transaksi, id_barang, harga, jumlah, total) VALUES ('"

+ row_id + "', '" + id + "', '" + jumlah + "', '" + harga + "', '" + total + "')"); empty = 1;

konek.closekoneksi();

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, "Error " + e);

} catch (ClassNotFoundException ex) {

Logger.getLogger(data_akun .class.getName()).log(Level.SEVERE, null, ex);

}

}else{

JOptionPane.showMessageDialog(null, "Sistem tidak menemukan barang dengan kode = " + id , "Barang " + id +

" Gagal Disimpan", JOptionPane.ERROR_MESSAGE);

}

//------- Opsi jika terdapat barang yang belum satupun di masukan

if(empty == 0){

try {

Connection conn = konek.openkoneksi();

java.sql.Statement stm = conn.createStatement();

stm.executeUpdate("DELETE FROM transaksi WHERE id_transaksi = '" + row_id + "'");

konek.closekoneksi();

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, "Error " + e);

} catch (ClassNotFoundException ex) {

Logger.getLogger(data_akun.class.getName()).log(Level.SEVERE, null, ex);

}

}else{

}

}

JOptionPane.showMessageDialog(null, "Berhasil menyimpan data transaksi");

}else{

JOptionPane.showMessageDialog(null, "Terdapat inputan yang kosong.");

}

}

private void jLabel7MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

TxtEmpty();

}

private void btnTableEmptyActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

int ok = JOptionPane.showConfirmDialog(null, "Anda yakin ingin menghapus semua baris ini?",

"Konfirmasi", JOptionPane.OK_CANCEL_OPTION);

if(ok==0) {

TableEmpty();

Page 48: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

75

}

}

private void datatableMouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

GetData_View();

}

private void btnDelRowActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

int ok = JOptionPane.showConfirmDialog(null, "Anda yakin ingin menghapus baris ini?", "Konfirmasi",

JOptionPane.OK_CANCEL_OPTION);

if(ok==0) {

int row = Integer.parseInt(txtid_selected.getText());

DefaultTableModel model = (DefaultTableModel) datatable.getModel();

model.removeRow(row);

BtnEnabled(false);

}

}

private void datatableMouseReleased(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

GetData_View();

}

private void datatableKeyReleased(java.awt.event.KeyEvent evt) {

// TODO add your handling code here:

GetData_View();

}

private void txtjumlah_barangKeyTyped(java.awt.event.KeyEvent evt) {

// TODO add your handling code here:

char c = evt.getKeyChar();

if(!(Character.isDigit(c)) && !(c == KeyEvent.VK_BACK_SPACE)){

JOptionPane.showMessageDialog(null, "Inputan hanya boleh angka", "Ilegal Input",

JOptionPane.ERROR_MESSAGE);

evt.consume();

}

}

private void no_jurnalActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

private void ketActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

Page 49: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

76

// TODO add your handling code here:

try {

HashMap hash = new HashMap();

hash.put("id", jTextField1.getText());

hash.put("ubay", ubay.getText());

hash.put("ukem", ukem.getText());

File file = new File("src/Laporan/bukti_trans.jrxml");

JasperDesign jasperDesign = JRXmlLoader.load(file);

JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hash, konek.openkoneksi());

JasperViewer.viewReport(jasperPrint, false);

}catch (ClassNotFoundException | JRException e) {

JOptionPane.showMessageDialog(null, "Error " + e);

}

this.hide();

}

private void ubayFocusLost(java.awt.event.FocusEvent evt) {

// TODO add your handling code here:

int nilai1;

int nilai2;

int nilai3;

String total;

nilai1=Integer.valueOf(txtsubtotal.getText());

nilai2=Integer.valueOf(ubay.getText());

nilai3=nilai2-nilai1;

total=String.valueOf(nilai3);

ukem.setText(total);

}

private void cmbid_pelangganItemStateChanged(java.awt.event.ItemEvent evt) {

// TODO add your handling code here:

String[] nama_kategori = cmbid_pelanggan.getSelectedItem().toString().split("\\s+");

String kode = nama_kategori[0];

if(!kode.equals("Pilih")){

try {

Connection conn = konek.openkoneksi();

java.sql.Statement stm = conn.createStatement();

java.sql.ResultSet sql = stm.executeQuery("SELECT * FROM barang WHERE

id_barang='"+kode+"'");

if(sql.next()){

txtharga.setText(sql.getString("harga"));

txtjumlah_barang_max.setText(sql.getString("stok"));

txtid_barang.setText(sql.getString("nama_barang"));

lblnama_barang.setText(sql.getString("id_barang"));

}

Page 50: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

77

konek.closekoneksi();

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, "Error " + e);

} catch (ClassNotFoundException ex) {

Logger.getLogger(barang.class.getName()).log(Level.SEVERE, null, ex);

}

}else{

lblnama_barang.setText("");

}

}

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

/* Set the Nimbus look and feel */

//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">

/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/

try {

for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {

if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());

break;

}

}

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(Frmtransaksi.class.getName()).log(java.util.logging.Level.SEVERE,

null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(Frmtransaksi.class.getName()).log(java.util.logging.Level.SEVERE,

null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(Frmtransaksi.class.getName()).log(java.util.logging.Level.SEVERE,

null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(Frmtransaksi.class.getName()).log(java.util.logging.Level.SEVERE,

null, ex);

}

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

Page 51: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

78

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

/* Create and display the dialog */

java.awt.EventQueue.invokeLater(() -> {

Frmtransaksi dialog = new Frmtransaksi(new javax.swing.JFrame(), true);

dialog.addWindowListener(new java.awt.event.WindowAdapter() {

@Override

public void windowClosing(java.awt.event.WindowEvent e) {

System.exit(0);

}

});

dialog.setVisible(true);

});

}

// Variables declaration - do not modify

private javax.swing.JButton btnDelRow;

private javax.swing.JButton btnTableEmpty;

private javax.swing.JButton btnok;

private javax.swing.JButton btnsave;

private javax.swing.JComboBox<String> cmbid_pelanggan;

private javax.swing.JTable datatable;

private javax.swing.JButton jButton1;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel10;

private javax.swing.JLabel jLabel11;

private javax.swing.JLabel jLabel12;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JLabel jLabel5;

private javax.swing.JLabel jLabel6;

private javax.swing.JLabel jLabel7;

private javax.swing.JLabel jLabel8;

private javax.swing.JLabel jLabel9;

Page 52: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

79

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel3;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JTextField jTextField1;

private javax.swing.JTextField kas;

private javax.swing.JTextField ket;

private javax.swing.JTextField keter;

private javax.swing.JTextField kredit;

private javax.swing.JLabel lblnama_barang;

private javax.swing.JTextField no_jurnal;

private javax.swing.JTextField takun;

private javax.swing.JTextField takun1;

private javax.swing.JTextField txtharga;

private javax.swing.JTextField txtid_barang;

private javax.swing.JTextField txtid_petugas;

private javax.swing.JTextField txtid_selected;

private javax.swing.JTextField txtjumlah_barang;

private javax.swing.JTextField txtjumlah_barang_max;

private javax.swing.JTextField txtkode_barang;

private javax.swing.JTextField txtnm_petugas;

private javax.swing.JTextField txtotal;

private javax.swing.JTextField txtsubtotal;

private javax.swing.JTextField txttgl;

private javax.swing.JTextField ubay;

private javax.swing.JTextField ukem;

// End of variables declaration

void setkode(){

try {

ResultSet res = conn.ambilData("select * from transaksi order by id_transaksi desc");

if (res.next()) {

String nofak = res.getString("id_transaksi").substring(3);

String AN = "" + (Integer.parseInt(nofak) + 1);

String Nol = "";

if(AN.length()==1)

{Nol = "000";}

else if(AN.length()==2)

{Nol = "00";}

else if(AN.length()==3)

{Nol = "0";}

else if(AN.length()==4)

{Nol = "";}

jTextField1.setText("TRS" + Nol + AN);

Page 53: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

80

} else {

jTextField1.setText("TRS0001");

}

}catch(Exception e){

JOptionPane.showMessageDialog(null, e);

}

}

}

3.5.2. Blackbox Testing

1. Form Login

Tabel III.9

Hasil Pengujian Blackbox Testing Form Login

No Skenario

Pengujian

Test Case Hasil yang

diharapkan

Hasil

pengujian

Kesimpulan

1 Mengetikkan

Username di isi dan

password tidak di

isi atau kosong

kemudian klik

tombol login

Username:

(Admin)

Password:

(kosong)

Sistem akan

menolak

akses dan

menampilkan

pesan

“password

harus di isi“

Sesuai harapan Valid

2 Mengetikkan

Username dan

password dengan

data yang benar

kemudian klik

tombol login

Username:

Admin

Password:

(12345)

Sistem akan

menerima

dan masuk

kehalaman

menu utama

Sesuai harapan Valid

Page 54: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

81

2. Form transaksi

Tabel III.10

Hasil Pengujian Blackbox Testing Form transaksi

No Skenario

Pengujian

Test Case Hasil ysng di

harapkan

Hasil

pengujian

Kesimpulan

1 nama barang

tidak diisi klik

oke

nama barang

(Kosong)

Sistem akan

menolak dan

menampilkan

“nama barang

harus diisi”

Sesuai

harapan

Valid

2 Data tidak diisi

klik simpan

nama barang

(Kosong)

Jumlah

(Kosong)

Sistem akan

menolak dan

menampilkan

pesan

“terdapat

inputan yang

ksosong”

Sesuai

harapan

Valid

3 Nama barang

dan jumlah

diisi semua

klik simpan

nama barang

(BRG0001)

Jumlah

(2)

Sistem akan

menerima

dan

menyimpan

data lalu

menampilkan

bukti

penjualan

Sesuai

harapan

Valid

4 Id barang dan

jumlah diisi

semua klik

simpan dan

Cetak

Id barang

(BRG0001)

Jumlah

(2)

Total bayar

(20)

Uang bayar

(100)

Uang kembali

(80)

Sistem akan

menerima

dan

menyimpan

data lalu

menampilkan

bukti

penjualan

Sesuai

harapasn

Valid

Page 55: BAB III PEMBAHASAN...Nota rangkap 3 yang telah dibuat oleh bagian pelayanan, SJ (Surat jalan) yang diberikan untuk bagian gudang, kemudian bagian gudang menyiapkan barang yang akan

82

3.5.3. Spesifikasi Hardware dan Software

Tabel 111.11

Spesifikasi Hardware dan Software

Kebutuhan Keterangan Sistem Windows 32 bit

Processor Intel(R), Celeron (R). CPU 1007U @1.50GHz 150

GHz.

RAM 2Gb

Harddisk 400 GB

Monitor 14 “LED

Printer Inject

Keyboard 108 key

Mouse Standar

Software Kebutuhan menjalankan aplikasi secara local Bahasa

Script programming : Netbeans 8.1

Web Server : XAMPP Control Panel v3.2.1

DBMS : MySQL

Web Browser : Google Chrome