Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
18
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Dalam tinjauan perusahaan ini berisi tentang sejarah perusahaan, struktur
organisasi serta uraian tugas tanggung jawab dari masing-masing bagian yang ada
dalam perusahaan tersebut.
3.1.1. Sejarah Perusahaan
Cahaya VIQ-H Pusat Laundry Kiloan Bekasi merupakan perusahaan yang
bergerak dibidang jasa Cuci dan Setrika Pakaian. Cahaya VIQ-H Pusat Laundry
Kiloan Bekasi ini didirikan oleh ibu Hj. Usnawati pada tahun 2014. Pada Cahaya
VIQ-H Pusat Laundry Kiloan Bekasi ini memiliki nomor Surat Izin Usaha
Perdagangan (SIUP) tetapi untuk sementara telah memiliki Surat Keterangan
Domisili Usaha (SKUD) yang diterbitkan oleh kelurahan setempat dengan nomer :
503/434-KEC BU.
Cahaya VIQ-H Pusat Laundry Kiloan Bekasi berlokasi di Jl. Kp. Bungur,
Seroja Harapan Jaya Bekasi Utara. Cahaya VIQ-H Pusat Laundry Kiloan Bekasi ini
masih belum memiliki cabang.
Cahaya VIQ-H Pusat Laundry Kiloan Bekasi merupakan salah satu usaha
jasa cuci dan setrika pakaian yang mulai berkembang di tengah ramainya usaha jasa
cuci dan setrika pakaian. Dengan dedikasinya kepada masyarakat, Cahaya VIQ-H
19
Pusat Laundry Kiloan Bekasi senantiasa mengembangkan dan meningkatkan kualitas
layanan demi mencapai kepuasan konsumen.
1. Visi Pada Cahaya VIQ-H Pusat Laundry Kiloan Bekasi
Menjadi perusahaan besar dibidang jasa cuci dan setrika pakaian yang
berorientasi pada kepuasan pelanggan serta menghasilkan sumber daya Manusia
yang handal dengan implementasi manajemen modern.
2. Misi Pada Cahaya VIQ-H Pusat Laundry Kiloan Bekasi
Mendirikan, menjalankan, mengembangkan usaha pelayanan jasa Laundry
Cahaya VIQ-H Pusat Laundry Kiloan Bekasi di seluruh Indonesia.
3.1.2. Struktur Organisasi dan Fungsi
Struktur organisasi yang terdapat di dalam Cahaya VIQ-H Pusat Laundry
Kiloan Bekasi adalah susunan dari bagian-bagian pengelola yang didasarkan pada
perbedaan kewenangan dan tanggung jawab serta dilengkapi dengan penjelasan
tentang hubungan antar bagian tersebut. Struktur organisasi merupakan saran yang
sangat penting untuk menjalankan fungsinya.
Adapun struktur organisasi ini sendiri dapat dikatakan sebagai suatu kerangka
yang mewujudkan suatu pola tetapi dari hubungan antara kedudukan dan peranan
dalam suatu kerjasama.
Bentuk struktur organisasi yang dimiliki Cahaya VIQ-H Pusat Laundry
Kiloan Bekasi adalah sebagai berikut:
20
Sumber : Cahaya VIQ-H Pusat Laundry Kiloan Bekasi (2017)
Gambar III.1.Struktur Organisasi
Fungsi dari tiap-tiap bagian sebagai berikut:
1. Pemilik (Owner)
Pemilik (Owner) mempunyai wewenang yang besar dan bertanggung jawab
atas jalannya usaha laundry, seta mengecek langsung jalannya transaksi
pelayanan jasa laundry.
2. Bagian Administrasi (kasir)
Bertugas menerima pakaian yang akan dicuci dan disetrika, menimbang dan
membuat nota pembayaran, dan menangani seluruh kegiatan transaksi yang
berkaitan dengan keuangan, seperti membuat dan memberikan laporan berupa
laporan transaksi perbulan kepada pemilik.
3. Bagian Operasional
Bertugas mencuci dan menyetrika pakaian. Setelah pakaian telah dicuci dan
disetrika. Kemudian bertugas mengemasi pakaian tersebut sesuai bon
pesanannya dan total harga bayarnya.
Ibu Hj. Usnawati
Owner (Pemilik)
Bag. Administrasi Bag. Operasional
21
3.2. Tinjauan Kasus
Dalam penulisan Tugas Akhir ini, penulis hanya membahas tentang
Perancangan Sistem Informasi Pelayanan Jasa Laundry pada Cahaya VIQ-H Pusat
Laundry Kiloan Bekasi. Permasalahan yang ada pada Cahaya VIQ-H Pusat Laundry
Kiloan Bekasi yaitu masih banyaknya kesalahan dalam pencatatan sistem keuangan,
pelayanan laundry yang tidak maksimal, penyimpanan bukti yang sering hilang, dan
penyimpanan barang laundry yang rusak dalam pengambilan barangnya terlalu lama.
Batasan dari penulisan jasa laundry ini dimulai dari proses input data jenis laundry,
proses input pengambilan, proses input data item, proses input transaksi dan proses
input laporan.
3.2.1. Proses Bisnis Sistem Berjalan
Prosedur sistem berjalan tentang proses Pelayanan Jasa Laundry pada Cahaya
VIQ-H Pusat Laundry Kiloan Bekasi adalah:
Konsumen datang ke tempat laundry dengan membawa barang yang akan
dicuci ke bagian administrasi, bagian administrasi menghitung dan menyortir barang
cucian berdasarkan jenis barangnya dan mencatat data barang kedalam nota
sebanyak dua rangkap yang diserahkan kepada konsumen yaitu berupa nota pink dan
nota putih disimpan diarsip. Admin akan menimbang barang cucian tersebut. Setelah
penimbangan selesai admin akan menyebutkan jumlah yang harus dibayar oleh
konsumen. Admin juga memberikan estimasi berapa lama barang cucian tersebut
akan selesai. Apabila barang telah selesai di cuci maka admin menginformasikannya
kepada konsumen. Sebelum barang cucian diberikan konsumen memberikan nota
pink yang akan diperiksa administrasi lalu konsumen memberikan uang sejumlah
22
harga pembayaran. Admin akan memberikan bukti berupa nota pelunasan laundry.
Kemudian cucian tersebut diberikan kepada konsumen dan nota pink disimpan oleh
admin pada untuk diarsipkan. Lalu bagian Administrasi membuatkan laporan
berdasarkan nota pink transaksi bulanan yang diberikan kepada pemilik. Kemudian
laporan bulanan disimpan diarsip laporan.
23
3.2.2. Activity Diagram
act Proses Sistem Berjalan
PemilikAdminKonsumen
Mulai
Menanyakan
Informasi Laundry
Melayani Konsumen
Menyerahkan Pakaian
Mencatat Data
Konsumen
Menghitung Barang
Cucian
Mencatat Data Barang
ke Nota Pink dan Nota
Putih
Menyimpan Nota Putih
Untuk Diarsipkan
Menimbang Barang
Laundry
Menginformasikan
Harga dan Estimasi
Waktu Laundry
Menerima Nota Pink
Melakukan Proses
Laundry
Menginformasikan
Kepada Konsumen
Memberikan Nota
Pink
Memeriksa Nota Pink
Melakukan
Pembayaran
Membuat Nota Lunas
Menerima Pakaian
Membuat Laporan Dari
Nota Pink
Menerima Laporan
Selesai
Belum
Selesai
Selesai
Sumber : Penulis (2019)
Gambar III.2. Activity Diagram
24
3.2.3. Dokumen Masukkan
A.1 Dokumen Masukan
Nama Dokumen : Nota Putih
Fungsi : Bukti Pembayaran Lunas
Sumber : Bagian Kasir/Admin
Tujuan : Arsip
Media : Kertas
Frekuensi : Setiap ada Konsumen
Jumlah : 1 Lembar
Bentuk : Lampiran A.1
3.2.4. Dokumen Keluaran
B.1 Nama Dokumen : Nota Pink
Fungsi : Bukti Pembayaran Lunas
Sumber : Bagian Kasir/Admin
Tujuan : Pemilik
Media : Kertas
Frekuensi : Setiap Bulan
Bentuk : Lampiran B.1
B.2 Nama Dokumen : Laporan Transaksi Bulanan
Fungsi : Untuk Laporan Kepada Pemilik
Sumber : Karyawan
Tujuan : Pemilik
Media : Kertas
25
Frekuensi : Setiap Bulan
Jumlah : 1 Lembar
Bentuk : Lampiran B.2
3.2.5. Permasalahan Pokok
Permasalahan pokok dalam jasa Laundry ini adalah sering mendapatkan
masalah dalam hal pelayanan serta penyimpanan dokumen dan pembuatan laporan
yang masih ditulis dibuku besar atau dikertas folio, penyimpanan bukti dokumen
transaksi masih tidak rapih dan pengerjaaan transaksi belum menggunakan
komputer, yang menjadi permasalahan belum adanya sistem yang memadai untuk
mengatasi hal tersebut terlebih pada saat akan melakukan laporan yang dibuat
perbulan maupun pertahun. Dengan banyaknya bukti ataupun dokumen yang masuk
pada saat proses bisnis, maka akan sulit untuk mencari dokumen laporan secara cepat
apabila masih menggunakan sistem manual dan dengan begitu kemungkinan data
atau dokumen hilang akan sangat besar. Serta pelayanan laundry mengalami kinerja
yang tidak efisien.
3.2.6. Pemecahan Masalah
Berdasarkan permasalahan-permasalahan pada sistem jasa Laundry yang ada
pada Cahaya VIQ-H Pusat Laundry Kiloan Bekasi, maka diperlukan beberapa
alternatif pemecahan masalah untuk memperhatikan ketelitian dalam hal pencatatan
untuk mengurangi tingkat kesalahan dalam pencatatan, penyimpanan dokumen harus
disusun dengan rapih dan dibuatkan tanggal dokumen agar lebih mudah dalam
pencarian data, diperlukan suatu pengolahan data yang menggunakan program
dengan sistem yang sudah terkomputerisasi sistem jasa laundry ini dapat langsung
26
diproses dengan sistem yang sudah terkomputerisasi yaitu dengan dibuatkan nya
sistem yang dibangun berupa aplikasi berbasis Dekstop dengan bahasa pemrograman
Java yang dapat dijalankan langsung pada komputer dengan sistem operasi Windows
dikembangkan dengan menggunakan basis data MySQL sebagai media penyimpanan
datanya. Dengan demikian informasi mengenai jasa laundry akan lebih cepat, efektif
dan efisien. Serta penyimpanan data yang lebih aman dari hilangnya data dan backup
data dan laporan yang dihasilkan bisa lebih cepat karena sudah menggunakan sistem
yang terkomputerisasi pada Cahaya VIQ-H Pusat Laundry Kiloan Bekasi, untuk
mempermudah menginput data pelanggan dan data pencatatan laporan agar
penyimpanan data tidak mudah hilang.
3.3. Analisa Kebutuhan Software
3.3.1. Analisa Kebutuhan
Analisa kebutuhan perangkat lunak (software) Pada Perancangan Sistem
Informasi Pelayanan Jasa Laundry Pada Cahaya VIQ-H Pusat Laundry Kiloan
mempunyai halaman-halaman sebagai berikut:
Halaman Admin:
A.1. Admin melakukan Login
A.2. Admin mengakses menu utama
A.3. Admin mengakses Pakaian
A.4. Admin dapat mengelola data Item
A.5. Admin dapat mengelola data Jenis Laundry
A.6. Admin mengakses Transaksi
A.7. Admin dapat mengelola data Transaksi
27
A.8. Admin dapat mengelola data Pengambilan
A.9. Admin dapat mengelola data Konsumen
A.10. Admin mengakses Laporan
A.11. Admin dapat mencetak data Laporan Transaksi Lunas
A.12. Admin dapat mencetak data Laporan Transaksi Per-periode
A.13. Admin melakukan Logout
Halaman Owner:
B.1. Owner melakukan Login
B.2. Owner mengakses menu utama
B.3. Owner mengakses data master
B.4. Owner Mengakses data Laporan
B.5. Owner dapat mencetak data Laporan Transaksi Lunas
B.6. Owner dapat mencetak data Laporan Transaksi Per-periode
B.7. Owner dapat mengelola data user
B.8. Owner dapat mengubah password
B.9. Owner melakukan Logout
28
3.3.2. Use Case Diagram
A. Use Case Diagram Jasa Laundry Berbasis Dekstop, Halaman Admin
1. Use Case Diagram Admin Mengakses Menu Utama
uc usecaseadmin
Admin
Admin
melakukan Login
Admin mengakses
pakaian
Admin dapat
mengelola data
item
Admin dapat
mengelola data
jenis laundry
Admin mengakses
transaksi
Admin dapat
mengelola data
transaksi
Admin dapat
mengelola data
pengambilan
Admin dapat
mengelola data
konsumen
Admin mengakses
laporan
Admin melakukan
LogoutAdmin dapat
mencetak data
laporan transaksi
lunasadmin dapat
mencetak data
laporan transaksi
per-periode
masukkan
username
masukkan
password
admin mengakses
menu utama
keluar aplikasi anda berhasil
logout
«extend»
«extend»
«extend»
«extend»
«extend»
«include»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«include»
Sumber : Penulis (2019)
Gambar III.3. Use Case Menu utama Admin
Tabel III.1.
Deskripsi Gambar Menu Utama Admin
Use Case Narative Menu Utama
Tujuan Admin dapat melakukan pengolahan data yang ada di
menu pakaian, menu transaksi, menu laporan
Deskripsi Sistem ini memungkinkan aktor untuk mengelola
29
sistem mulai dari melihat data item, jenis laundry,
transaksi, pengambilan dan konsumen, mengakses data
pakaian, transaksi dan laporan, sampai dengan
mencetak laporan
Skenario Utama
Aktor Admin
Kondisi Awal Aktor Membuka Aplikasi Sistem dan Masuk ke Menu
Utama
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
tombol Menu
Pakaian
2. Aktor Memilih
tombol Menu
Transaksi
3. Aktor Memilih
tombol Menu
Laporan
Sistem akan menampilkan submenu mengelola data
item, mengelola data jenis laundry
Sistem akan menampilkan submenu mengelola data
transaksi, mengelola data pengambilan, mengelola data
konsumen
Sistem akan menampilkan submenu laporan bisa
mencetak data Laporan lunas dan per-periode
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan
seperti yang diinginkan oleh si Aktor
Sumber : Penulis (2019)
30
B. Menu Utama Owner
uc usecase owner
owner
Owner melakukan
Login
Owner melakukan
Logout
Owner dapat
mengelola data
user
Owner
mengakses data
laporan
Owner dapat
mengubah
password
owner dapat
mencetak data
laporan transaksi
lunas
owner dapat
mencetak data
laporan transaksi
per-periode
masukkan
userrname
masukkan
password
owner
mengakses
menu utama
owner
mengakses data
master
keluar aplikasianda berhasil
logout
«include»
«extend»
«include»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
Sumber : Penulis (2019)
Gambar III.4. Use Case Menu Utama Owner
Tabel III.2.
Deskripsi Gambar Menu Utama Owner
Use Case Narative Menu Utama
Tujuan
Owner dapat mengakses laporan yang ada di menu laporan
transaksi lunas dan laporan transaksi per periode
Deskripsi Sistem ini memungkinkan aktor untuk mengakses sistem
31
laporan transaksi mulai dari laporan transaksi lunas dan
laporan transaksi per periode, mengelola data user dan
mengubah password
Skenario Utama
Aktor Owner
Kondisi Awal Aktor Membuka Menu Utama
Aksi Aktor Reaksi Sistem
1. Aktor
Memilih
tombol Menu
Master
Sistem akan menampilkan submenu data laporan, mengakses
data laporan, mengelola data user, mengubah password
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan seperti
yang diinginkan oleh si aktor
Sumber : Penulis (2019)
32
3.3.3. Activity Diagram
A. Activity Diagram Jasa Laundry Berbasis Dekstop, Halaman Admin
1. Activity Diagram Admin melakukan Login
act Login Admin
SistemAdmin
Mulai
Melakukan Login
Mengecheck Username
dan Password
Berhasil masuk
kedalam menu
pengguna
Menampilkan Pesan
Gagal LoginSelesai
Memasukkan
Username dan
Password
Tidak Valid
Valid
Sumber : Penulis (2019)
Gambar III.5. Activity Diagram Login Admin
33
2. Activity Diagram Admin mengakses Menu Utama
act Menu Utama Admin
SistemAdmin
Mulai
Masuk kedalam
Sistem
Menampilkan Menu
Utama
Menu
Transaksi
Menu Laporan Logout
Keluar Sistem
Selesai
Menu Pakaian
Sumber : Penulis (2019)
Gambar III.6. Activity Diagram Menu Utama Admin
34
3. Activity Diagram Admin mengelola Data Pakaian
act Pakaian
Admin Sistem
Mulai
Masuk kedalam
Sistem
Menampilkan Menu
Utama
Data Jenis
Laundry
Keluar Sistem
Selesai
Data Item
Memilih Menu
Pakaian
Menampilkan Menu
Pakaian
Sumber : Penulis (2019)
35
Gambar III.7. Activity Diagram Pakaian Admin
4. Activity Diagram Admin mengelola Data Item
act Data Item
Admin Sistem
Mulai
Pilih Menu Pakaian
Pilih Menu Data Item
Mengelola Data Item
Menampilkan Status
Data ItemTelah dihapus
atau diperbarui
Pilih Keluar
Keluar dari menu Data
Item
Selesai
Tambah Data
Item
Perbaharui
Data
Pilih Tambah Data
Item
Menampilkan Status
Berhasil Menambahkan
Data Jenis Item
Perbarui Data Hapus Data
Menampilkan Form
Data Jenis Item
Mengisi Form Data
Jenis Item
Hapus Data
Isi Jenis Laundry,
Nama Item, Tarif
Pilih Simpan
Pilih Simpan
Sumber : Penulis (2019)
Gambar III.8. Activity Diagram Data Item
36
5. Activity Diagram Admin mengelola Data Jenis Laundry
act Data Jenis Laundry
SistemAdmin
Mulai
Pilih Menu Pakaian
Pilih Menu Data Jenis
Laundry
Mengelola Data Jenis
Laundry
Menampilkan Status
Data Jenis Laundry
Telah dihapus atau
diperbarui
Pilih Keluar
Keluar dari menu Data
Jenis Laundry
Selesai
Tambah Data
Laundry
Perbaharui Data
Pilih Tambah Data
Laundry
Menampilkan Status
Berhasil Menambahkan
Data Jenis Laundry
Perbarui Data Hapus Data
Menampilkan Form Data
Jenis Laundry
Mengisi Form Data
Jenis Laundry
Hapus Data
Isi Form Data Jenis
Laundry
Pilih Simpan
Pilih Simpan
Sumber : Penulis (2019)
Gambar III.9. Activity Diagram Data Jenis Laundry
37
6. Activity Diagram Admin Mengelola Data Transaksi
act Transaksi
SistemAdmin
Mulai
Masuk kedalam
Sistem
Menampilkan Menu
Utama
Data
Pengambilan
Keluar Sistem
Selesai
Data
Transaksi
Memilih Menu
Transaksi
Menampilkan Menu
Transaksi
Konsumen
Sumber : Penulis (2019)
Gambar III.10. Activity Diagram Transaksi Admin
38
7. Activity Diagram Admin Mengelola Data Transaksi
act Menu Data Transaksi
SistemAdmin
Mulai
Pilih Menu Transaksi
Mengisi Form
Transaksi
Kode
Konsumen
Nama
Jenis
Laundry
Jenis
ItemNama
Item
Tarif Jumlah Diskon Tanggal
Selesai
Tambah Hapus Semua
Menampilkan Data
Transaksi Laundry
Sisa Kembali
Pilih SimpanMenampilkan Data
Transaksi Laundry
Pilih Cetak Transaksi
Keluar Dari Menu
Transaksi
Selesai
Pilih Data Transaksi
Menampilkan Data
Transaksi
Pilih Simpan
Mengisi Jumlah
Pembayaran
Menampilkan Nota
Cetak Transaksi
Laundry
Pilih Keluar
Sumber : Penulis (2019)
Gambar III.11. Activity Diagram Data Transaksi
39
8. Activity Diagram Admin Mengelola Data Pengambilan
act Menu Data Pengambilan
SistemAdmin
Mulai
Pilih Menu Pakaian
Pilih Menu Data
Pengambilan
Pilih Pengambilan
Menampilkan Status
Data Pengambilan
Telah dihapus atau
diperbarui
Pilih Keluar
Keluar dari menu Data
Pengambilan
Selesai
Menampilkan Data
Pengambilan
Mengelola Data
Pengambilan
Isi Pembayaran
Mengganti Status
Pembayaran
Menampilkan Sisa
Pembayaran dan
Kembalian
Berhasil
Menampilkan Status
Pembayaran
Pilih Bayar
Pilih Tanggal
Pengambilan
Cetak Data
Pengambilan
Menampilkan Cetak
Data Pengambilan
Belum
Lunas
Sudah Lunas
Sumber : Penulis (2019)
Gambar III.12. Activity Diagram Data Pengambilan
40
9. Activity Diagram Admin mengelola Data Konsumen
act Data Konsumen
SistemAdmin
Mulai
Pilih Menu Transaksi
Tambah
Konsumen
Perbaharui
Data
Hapus Cetak
Pilih Tambah
Konsumen
Menampilkan Status
Berhasil
Menambahkan Data
Konsumen
Perbaharui
Data
Hapus Data
Menampilkan Status
Berhasil Mengubah dan
Menghapus Data
Konsumen
Pilih Cetak
Keluar Dari Menu
Data Konsumen
Selesai
Mengelola Data
Konsumen
Pilih Data Konsumen
Menampilkan Form
Data Konsumen
Mengisi Form Data
Konsumen
Isi Nama, Alamat, dan
No Telpon Konsumen
Pilih Simpan
Pilih Simpan
Menampilkan Cetak
Kartu
Anggota/Konsumen
Pilih Keluar
Sumber : Penulis (2019)
Gambar III.13. Activity Diagram Data Konsumen
41
10. Activity Diagram Admin Mengakses Data Laporan
act Business Process Model
Admin Sistem
Mulai
Masuk Kedalam
Sistem
Menampilkan Menu
Utama
Memilih Data Laporan
Menampilkan Data
Laporan
Laporan Transaksi
Lunas
Laporan Transaksi
Per-periode
Keluar Dari Sistem
Selesai
Sumber : Penulis (2019)
Gambar III.14. Activity Diagram Menu Mengakses Data Laporan
42
11. Activity Diagram Admin Mencetak Laporan Transaksi Lunas
act Laporan Transaksi Lunas
Admin Sistem
Mulai
Masuk Kedalam
Sistem
Menampilkan Menu
Utama
Memilih Data Laporan
Memilih Data Laporan
Transaksi Lunas
Pilih Laporan
Menampilkan Laporan
Menampilkan Data
Laporan Transaksi Lunas
Mencetak Laporan
Transaksi Lunas
Laporan Transaksi Lunas
Telah Tercetak
Pilih Keluar
Mengisi Tanggal
Transaksi Laporan
Lunas
Keluar Dari Sistem
Selesai
Sumber : Penulis (2019)
Gambar III.15. Activity Diagram Menu Mencetak Laporan Transaksi Lunas
43
12. Activity Diagram Admin Mencetak Laporan Transaksi Per Periode
act Laporan Transaksi Per-periode
Admin Sistem
Mulai
Masuk Kedalam
Sistem
Menampilkan Menu
Utama
Memilih Data Laporan
Memilih Data Laporan
Transaksi Per-periode
Pilih Laporan
Menampilkan Laporan
Menampilkan Data
Laporan Transaksi Per-
periode
Mencetak Laporan
Transaksi Lunas
Laporan Transaksi Per-
periode Telah Tercetak
Pilih Keluar
Mengisi Tanggal
Transaksi Laporan Per-
Periode
Keluar Dari Sistem
Selesai
Sumber : Penulis (2019)
Gambar III.16. Activity Diagram Menu Mencetak Laporan Transaksi Per
Periode
44
13. Activity Diagram Admin melakukan Logout
act Logout Admin
SistemAdmin
Mulai
Masuk Kedalam
Sistem
Menampilkan Menu
Utama
Memilih Logout
Keluar Dari Sistem
Laundry
Selesai
Sumber : Penulis (2019)
Gambar III.17. Activity Diagram Menu Logout Admin
45
B. Activity Diagram Jasa Laundry Berbasis Dekstop, Halaman Owner
1. Activity Diagram Owner melakukan Login
act Login Owner
SistemOwner
Mulai
Melakukan Login
Mengecheck Username
dan Password
Berhasil masuk
kedalam menu
pengguna
Menampilkan Pesan
Gaga Melakukanl LoginSelesai
Memasukkan
Username dan
Password
Valid
Tidak Valid
Sumber : Penulis (2019)
Gambar III.18. Activity Diagram Menu Login Owner
46
2. Activity Diagram Owner Mengakses Menu Utama
act Menu Utama Owner
SistemOwner
Mulai
Masuk Kedalam
Sistem
Menampilkan Menu
Utama
Menu Master Logout
Keluar Dari Sistem
Selesai
Sumber : Penulis (2019)
Gambar III.19. Activity Diagram Menu Utama Owner
47
3. Activity Diagram Owner Mengakses Menu Master
act Menu Master
SistemOwner
Mulai
Masuk Kedalam
Sistem
Menampilkan Menu
Utama
Pilih Menu Master
Menampilkan Menu
Master
Laporan Data User Ubah
Password
Keluar Dari Sistem
Selesai
Sumber : Penulis (2019)
Gambar III.20. Activity Diagram Menu Master Owner
48
4. Activity Diagram Owner Mengakses Menu Data Laporan
act Laporan
SistemOwner
Mulai
Masuk Kedalam
Sistem
Menampilkan Menu
Utama
Memilih Data Laporan
Menampilkan Data
Laporan
Laporan Transaksi
Lunas
Laporan Transaksi
Per-periode
Keluar Dari Sistem
Selesai
Pilih Menu Master
Menampilkan Menu
Master
Sumber : Penulis (2019)
Gambar III.21. Activity Diagram Mengakses Menu Data Laporan
49
5. Activity Diagram Owner Mengelola Laporan Transaksi Lunas
act Laporan Transaksi Lunas
SistemOwner
Mulai
Masuk Kedalam
Sistem
Menampilkan Menu
Utama
Memilih Data Laporan
Memilih Data Laporan
Transaksi Lunas
Menampilkan Menu
Master
Memilih Menu Master
Menampilkan Data
Laporan Transaksi
Lunas
Mencetak Laporan
Transaksi Lunas
Laporan Transaksi
Lunas Telah Tercetak
Pilih Keluar
Keluar Dari Sistem
Selesai
Sumber : Penulis (2019)
Gambar III.22. Activity Diagram Menu Laporan Transaksi Lunas
50
6. Activity Diagram Owner Mengelola Laporan Transaksi Per-periode
act Laporan Transaksi Per-periode
Owner Sistem
Mulai
Masuk Kedalam
Sistem
Menampilkan Menu
Utama
Memilih Data Laporan
Memilih Data Laporan
Transaksi Per-periode
Pilih Menu Master
Menampilkan Menu
Master
Menampilkan Data
Laporan Transaksi Per-
periode
Mencetak Laporan
Transaksi Lunas
Laporan Transaksi Per-
periode Telah Tercetak
Pilih Keluar
Mengisi Tanggal
Transaksi Laporan Per-
Periode
Keluar Dari Sistem
Selesai
Sumber : Penulis (2019)
Gambar III.23. Activity Diagram Menu Laporan Transaksi Per-periode
51
7. Activity Diagram Owner mengelola Data User
act Data User
SistemOwner
Mulai
Masuk kedalam
Sistem
Menampilkan Menu
Utama
Pilih Menu Master
Menampilkan Menu
Master
Pilih Data User
Menampilkan Form
Data User
Memasukkan Kode
User
Perbaharui
Data
Hapus Data
Menampilkan Status
Telah Berhasil
Mengubah dan
Menghapus Data User
Pilih Keluar
Keluar Dari Sistem
Data User
Selesai
Sumber : Penulis (2019)
Gambar III.24. Activity Diagram Data User Owner
52
8. Activity Diagram Owner mengubah Password
act Mengubah Password
SistemOwner
Mulai
Masuk Kedalam
Sistem
Menampilkan Menu
Utama
Pilih Menu Master
Menampilkan Menu
Master
Pilih Ubah Password
Menampilkan Form
Ubah Password
Masukkan
Password Baru
Konfirmasi Ulang
Password Baru
Mengisi Form Ubah
Password
Pilih Simpan Menampilkan Status
Berhasil Mengubah
Password
Pilih Keluar
Keluar Dari Sistem
Ubah Password
Selesai
Sumber : Penulis (2019)
Gambar III.25. Activity Diagram mengubah Password Owner
53
9. Activity Diagram Owner melakukan Logout
act Logout Owner
SistemOwner
Mulai
Masuk Kedalam
Sistem
Menampilkan Menu
Utama
Memilih Logout
Keluar Dari Sistem
Laundry
Selesai
Sumber : Penulis (2019)
Gambar III.26. Activity Diagram Menu Logout Owner
54
3.4. Desain
3.4.1. Entity Relationship Diagram (ERD)
erd Entity Relationship Diagram
user
Username
Password
Type
User
transaksi
NoTransaksi
NmKonsumen
IDRincian
IDJenisLaundry
jenislaundry
NmJenisLaundryIDJenisLaundry
Diskon
Total
Tarif
NmJenisLaundry
Jumlah
NmJenisPakaian
itemJenisLaundry
IDItem
NmPakaian Tarif
konsumen
detail_transaksi
KodeKonsumen NmKonsumen
TelpKonsumen
AlmKonsumen
TglSelesai
TglTransaksi
tglPengembalian
IDRincian
Bayar_sisa
Status_pembayaran
Kembalian
Bayar
Total_bayar
Status_pengembalian
m
1
1
m
m
1
1
1
m
Nama
User
IDItem
Username
KodeKonsumen
m
m
me
ng
inp
ut
me
milik
i
me
milik
i
me
milik
i
mengelola
Sumber : Penulis (2019)
Gambar III.27. Entity Relationship Diagram
55
3.4.2. Logical Record Struktur (LRS)
Sumber : Penulis (2019)
Gambar III.28. Logical Record Struktur
56
3.4.3. Spesifikasi File
1. Spesifokasi File Tabel User
Nama Database : User
Nama File : User
Tipe File : Master
Akses File : Random
Panjang Record : 96 Karakter
Field Key : Username
Tabel III.3.
Spesifikasi File User
No Elemen Data Nama
Field
Tipe Panjang Keterangan
1 User Name Username Varchar 30 Primary Key
2 Password Password Varchar 16
3 Nama User Nama_User Varchar 40
4 Type User TypeUser Varchar 10
Sumber : Penulis (2019)
2. Spesifikasi File Tabel Jenis Laundry
Nama Database : jenislaundry
Nama File : Jenis Laundry
Tipe File : Master
Akses File : Random
Panjang Record : 55 Karakter
Field Key : IDJenisLaundry
57
Tabel III.4.
Spesifikasi File Jenis Laundry
No Elmen Data Nama Field Tipe Panjang Keterangan
1 ID Jenis
Laundry
IDJenisLaundry Varchar 5 Primary Key
2 Nama Jenis
Laundry
NmJenisLaundry Varchar 50
Sumber : Penulis (2019)
3. Spesifikasi File Tabel Konsumen
Nama Database : konsumen
Nama File : Konsumen
Tipe File : Transaksi
Akses File : Random
Panjang Record : 125 Karakter
Field Key : KodeKonsumen
Tabel III.5.
Spesifikasi File Konsumen
No Elemen Data Nama Field Tipe Panjang Keterangan
1 Kode Konsumen KodeKonsumen Varchar 5 Primary Key
2 Nama Konsumen NmKonsumen Varchar 50
3 Alamat Konsumen AlmKonsumen Varchar 50
4 Telepon
Konsumen
TelpKonsumen Varchar 20
Sumber : Penulis (2019)
58
4. Spesifikasi File Tabel Detail Transaksi
Nama Database : detail_transaksi
Nama File : Detail Transaksi
Tipe File : Transaksi
Akses File : Random
Panjang Record : 49 Karakter
Field Key : IDRincian
Tabel III.6.
Spesifikasi File Detail Transaksi
No Elemen Data Nama Field Tipe Panjang Keterangan
1 ID Rincian IDRincian Interger 5 Primary Key
3 Tanggal
Transaksi
TglTransaksi Date
4 Tanggal Selesai TglSelesai Date
5 Tanggal
Pengambilan
tglPengambilan Date
6 Total bayar Total_bayar Interger 11
7 Bayar Bayar Interger 11
8 Bayar sisa Bayar_sisa Interger 11
9 Kembalian Kembalian Interger 11
10 Status
pembayaran
Status_pembayaran Enum
(Belum
lunas,
lunas)
11 Status
pengambilan
Status_pengambilan Enum
(Belum,
sudah)
Sumber : Penulis (2019)
59
5. Spesifikasi File Tabel Transaksi
Nama Database : transaksi
Nama File : Transaksi
Tipe File : Transaksi
Akses File : Random
Panjang Record : 276 Karakter
Field Key : NoTransaksi
Tabel III.7.
Spesifikasi File Transaksi
No Elemen Data Nama Field Tipe Panjang Keterangan
1 Nomor Transaksi NoTransaksi Interger 11 Primary Key
2 ID Rincian IDRincian Interger 11 Foreign Key
3 Kode Konsumen KodeKonsumen Varchar 11 Foreign Key
4 Nama Konsumen NmKonsumen Varchar 50
5 ID JenisLaundry IDJenisLaundry Varchar 5 Foreign Key
6 Nama Jenis
Laundry
NmJenisLaundry Varchar 50
7 ID Item IDItem Varchar 5 Foreign Key
8 Nama Pakaian NmPakaian Varchar 50
9 Jumlah Jumlah Interger 11
60
10 Tarif Tarif Interger 11
11 Total Total Interger 11
12 Diskon Diskon Float
13 User Name Username Varchar 50
Sumber : Penulis (2019)
6. Spesifikasi File Tabel Item
Nama Database : Item
Nama File : Item
Tipe File : Master
Akses File : Random
Panjang Record : 121 Karakter
Field Key : IDItem
Tabel III.8.
Spesifikasi File Item
No Elemen Data Nama Field Tipe Panjang Keterangan
1 ID Item IDItem Varchar 10 Primary Key
2 Jenis Laundry JenisLaundry Varchar 50
3 Nama
Pakaian
NmPakaian Varchar 50
4 Tarif Tarif Interger 11
Sumber : Penulis (2019
61
3.4.4. Sequence Diagram
1. Sequence Diagram Admin mengelola Data Transaksi
sd Transaksi
Admin
Form Data
Transaksi
Control Data
Transaksi
Data Konsumen Data Jenis Laundry Data Item Data Transaksi
pesan berhasil simpan data
transaksi()
tarif()
cetak struk transaksi()
alamat()
data transaksi()
data transaksi()
tgl_selesai()
nama konsumen()
get (jenis item)
pesan berhasil simpan data
transaksi()
data transaksi()
simpan()
jenis item()
get (kode konsumen)
hitung()
kode konsumen()
set
(data_transaksi)
input jenis item()
jenis laundry()
get (data
transaksi)
tambah data transaksi()
nama item()
input kode konsumen()
input diskon()
cetak()
input jenis laundry()
kiloan()
set (data
transaksi)
input jumlah()
get (jenis laundry)
total()
telepon()
Sumber : Penulis (2019)
Gambar III.29. Sequence Diagram Admin mengelola Data Transaksi
62
2. Sequence Diagram Admin Mengelola Data Pengambilan
sd Pengambilan
Admin
Form Pengambilan Control
Pengambilan
Data Pengambilan
no_transaksi()
set (data pengambilan)
pil ih bayar()
data transaksi()
get (no_transaksi)
pesan berhasil
pengambilan pakaian()
input no_transaksi
pengambilan()
data pengambilan()
isi data pembayaran()
Sumber : Penulis (2019)
Gambar III.30. Sequence Diagram Admin mengelola Data Pengambilan
63
3.4.5. Deployment Diagram
deployment Deployment Diagram
<<Main>>
<<Activ eXControl>>
Netbeans IDE 8.1
«device»
Database
<<DBMS>>
MySQL
<<Database>>
«device»
<<Application>>
Program Sistem Jasa Laundry
laundry
Sumber : Penulis (2019)
Gambar III.31. Deployment Diagram
64
3.4.6. User Interface
1. Admin melakukan Login
Gambar III.32. User Interface Login
2. Menu Utama Admin
Gambar III.33. User Interface Menu Utama
65
3. Admin mengelola Data Item
Gambar III.34. User Interface Data Item
Gambar III.35. User Interface Pesan Pemberitahuan Data Item
Berhasil Ditambahkan dan Berhasil Diperbaharui
66
4. Admin Mengelola Jenis Laundry
Gambar III.36. User Interface Data Jenis Laundry
Gambar III.37. User Interface Pesan Pemberitahuan Data Jenis Laundry
Berhasil Ditambahkan dan Berhasil Diperbaharui
67
5. Admin mengelola Data Transaksi
Gambar III.38. User Interface Data Transaksi
Gambar III.39. User Interface Pesan Pemberitahuan Data Transaksi Berhasil
Gambar III.40. User Interface Tampil Cetak Transaksi
68
6. Admin mengelola Data Pengambilan
Gambar III.41. User Interface Data Pengambilan
Gambar III.42. User Interface Pesan Pemberitahuan Data Pengambilan
Berhasil Dibayar dan Mengubah Status Pengambilan
69
Gambar III.43. User Interface Tampil Cetak Pengambilan
7. Admin mengelola Data Konsumen
Gambar III.44. User Interface Data Konsumen
70
Gambar III.45. User Interface Pesan Pemberitahuan Data Konsumen
Berhasil Ditambahkan dan Berhasil Diperbaharui
Gambar III.45. User Interface Tampil Cetak Konsumen
8. Admin mengakses Data Laporan
Gambar III.46. User Interface Data Laporan
71
9. Admin mencetak Data Laporan Lunas
Gambar III.47. User Interface Tampil Cetak Data Laporan Lunas
10. Admin mengakses Data Laporan Periode
Gambar III.48. User Interface Laporan Periode
72
11. Admin mencetak Data Laporan Periode
Gambar III.49. User Interface Tampil Cetak Data Laporan Periode
12. Admin melakukan Logout
Gambar III.50. User Interface Logout
73
13. Owner melakukan Login
Gambar III.51. User Interface Owner
14. Owner mengakses Menu Utama
Gambar III.52. User Interface Menu Utama Owner
74
15. Owner mengakses Data Laporan
Gambar III.53. User Interface Menu Data Laporan
16. Owner mencetak Data Laporan Lunas
Gambar III.54. User Interface Tampil Cetak Data Laporan Lunas
75
17. Owner mengakses Data Laporan Periode
Gambar III.55. User Interface Laporan Periode
18. Owner mencetak Data Laporan Periode
Gambar III.56. User Interface Tampil Cetak Data Laporan Periode
76
19. Owner mengelola Ubah Password User
Gambar III.57. User Interface Ubah Password User
Gambar III.58. User Interface Pesan Pemberitahuan Berhasil Mengubah Data
User
20. Owner mengelola Data User
Gambar III.59. User Interface Mengelola Data User
77
21. Owner melakukan pemeriksaan History Data Laundry
Gambar III.60. History Data Laundry
22. Owner melakukan Logout
Gambar III.61. User Interface Logout
78
3.5. Implementasi
3.5.1. Code Generation
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package Interface;
import Koding.Database;
import Koding.KodingRincianTransaksi;
import Koding.KodingTransaksi;
import static java.lang.Integer.parseInt;
import javax.swing.JOptionPane;
import java.sql.*;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import javax.swing.DefaultComboBoxModel;
import javax.swing.table.DefaultTableModel;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
/**
*
* @author GITA
*/
public class formTransaksi extends javax.swing.JFrame {
private Statement st;
private ResultSet rs;
private String query;
79
private void current(){
java.util.Date date = new java.util.Date();
tglTransaksi.setDate(date);
tglTransaksi.setEnabled(false);
}
private void Bersih(){
cmbKonsumen.setSelectedItem("-Pilih-");
txtNamaKonsumen.setText("");
txtAlamatKonsumen.setText("");
txtTelpKonsumen.setText("");
cmbJenisPakaian.setSelectedItem("-Pilih-");
cmbJenisLaundry.setSelectedItem("-Pilih-");
txtNamaJenisLaundry.setText("");
txtNamaPakaian.setText("");
txtTarif.setText("0");
txtJumlahPakaian.setText("0");
txtDiskon.setText("0");
tglSelesai.setDate(null);
txtTotal.setText("0");
txtBayar.setText("0");
TampilNoTransaksi();
}
public void TampilNoTransaksi(){
int nilai = 0;
try{
Connection Conn = new Database().Sambung();
query = "select IDRincian from transaksi ORDER BY IDRincian DESC LIMIT 1;";
st = Conn.createStatement();
rs = st.executeQuery(query);
while(rs.next()){
int id = parseInt(rs.getString("IDRincian"));
80
nilai = id + 1;
String NoTrans = String.valueOf(nilai);
txtNoTransaksi.setText(NoTrans);
txtNoTransaksi.setEnabled(false);
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
private void TampilKonsumen(){
DefaultComboBoxModel cmbK = new DefaultComboBoxModel();
cmbK.addElement("-Pilih-");
try{
Connection Conn = new Database().Sambung();
query = "SELECT * FROM konsumen";
st = Conn.createStatement();
rs = st.executeQuery(query);
while(rs.next()){
cmbK.addElement(rs.getString(1));
}
cmbKonsumen.setModel(cmbK);
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
public void TampilJenisPakaian(){
DefaultComboBoxModel cmbK = new DefaultComboBoxModel();
cmbK.addElement("-Pilih-");
try{
81
Connection Conn = new Database().Sambung();
query = "SELECT * FROM item WHERE
JenisLaundry='"+txtNamaJenisLaundry.getText()+"'";
st = Conn.createStatement();
rs = st.executeQuery(query);
while(rs.next()){
cmbK.addElement(rs.getString(1));
}
cmbJenisPakaian.setModel(cmbK);
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
private void TampilJenisLaundry(){
DefaultComboBoxModel cmbK = new DefaultComboBoxModel();
cmbK.addElement("-Pilih-");
try{
Connection Conn = new Database().Sambung();
query = "SELECT * FROM jenislaundry";
st = Conn.createStatement();
rs = st.executeQuery(query);
while(rs.next()){
cmbK.addElement(rs.getString(1));
}
cmbJenisLaundry.setModel(cmbK);
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
private void TampilTable(){
82
tTable.setModel(mdl);
}
/**
* Creates new form formHome
*/
public formTransaksi() {
initComponents();
TampilKonsumen();
TampilJenisPakaian();
TampilJenisLaundry();
TampilTable();
TampilNoTransaksi();
current();
}
/**
* 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();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
txtNoTransaksi = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
tglTransaksi = new com.toedter.calendar.JDateChooser();
lblStatus = new javax.swing.JLabel();
bRefresh = new javax.swing.JButton();
jToolBar1 = new javax.swing.JToolBar();
83
jLabel5 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel20 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel23 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jLabel7 = new javax.swing.JLabel();
cmbKonsumen = new javax.swing.JComboBox<String>();
txtNamaKonsumen = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
txtAlamatKonsumen = new javax.swing.JTextField();
jLabel10 = new javax.swing.JLabel();
txtTelpKonsumen = new javax.swing.JTextField();
jLabel11 = new javax.swing.JLabel();
jPanel4 = new javax.swing.JPanel();
jLabel8 = new javax.swing.JLabel();
cmbJenisPakaian = new javax.swing.JComboBox<String>();
jLabel12 = new javax.swing.JLabel();
txtNamaPakaian = new javax.swing.JTextField();
jLabel13 = new javax.swing.JLabel();
txtTarif = new javax.swing.JTextField();
jLabel14 = new javax.swing.JLabel();
cmbJenisLaundry = new javax.swing.JComboBox<String>();
txtJumlahPakaian = new javax.swing.JTextField();
jLabel15 = new javax.swing.JLabel();
txtDiskon = new javax.swing.JTextField();
jLabel16 = new javax.swing.JLabel();
bTambahPakaian = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
tTable = new javax.swing.JTable();
84
txtTotal = new javax.swing.JTextField();
txtBayar = new javax.swing.JTextField();
jLabel19 = new javax.swing.JLabel();
jLabel21 = new javax.swing.JLabel();
bSimpan = new javax.swing.JButton();
txtNamaJenisLaundry = new javax.swing.JTextField();
jLabel17 = new javax.swing.JLabel();
jLabel18 = new javax.swing.JLabel();
tglSelesai = new com.toedter.calendar.JDateChooser();
jLabel22 = new javax.swing.JLabel();
txtKembali = new javax.swing.JTextField();
txtBayar1 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jLabel24 = new javax.swing.JLabel();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu3 = new javax.swing.JMenu();
jMenuItem2 = new javax.swing.JMenuItem();
jMenuItem3 = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
jMenuItem4 = new javax.swing.JMenuItem();
jMenuItem5 = new javax.swing.JMenuItem();
jMenuItem7 = new javax.swing.JMenuItem();
jMenu4 = new javax.swing.JMenu();
jMenuItem6 = new javax.swing.JMenuItem();
jMenu1 = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
formWindowClosing(evt);
85
}
});
jPanel1.setBackground(new java.awt.Color(255, 153, 153));
jPanel2.setBackground(new java.awt.Color(255, 153, 153));
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Transaksi",
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new
java.awt.Color(255, 255, 255))); // NOI18N
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel1.setText("No. Transaksi:");
jLabel2.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel2.setText("Tanggal Transaksi:");
lblStatus.setForeground(new java.awt.Color(0, 204, 204));
bRefresh.setBackground(new java.awt.
Color(204, 255, 255));
bRefresh.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Gambar/ic_hospital_refresh.png"))); // NOI18N
bRefresh.setText(" Refresh");
bRefresh.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
bRefresh.setFocusable(false);
bRefresh.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
bRefresh.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
bRefresh.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bRefreshActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
86
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(txtNoTransaksi, javax.swing.GroupLayout.PREFERRED_SIZE, 126,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)
.addComponent(bRefresh)
.addGap(27, 27, 27)
.addComponent(lblStatus)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(tglTransaksi, javax.swing.GroupLayout.PREFERRED_SIZE, 175,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jLabel2)
.addComponent(lblStatus))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(txtNoTransaksi, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tglTransaksi, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(bRefresh, javax.swing.GroupLayout.PREFERRED_SIZE, 75,
javax.swing.GroupLayout.PREFERRED_SIZE))
87
.addContainerGap(22, Short.MAX_VALUE))
);
jToolBar1.setBackground(new java.awt.Color(204, 255, 255));
jToolBar1.setRollover(true);
jLabel5.setForeground(new java.awt.Color(204, 255, 255));
jLabel5.setText("aaaa");
jToolBar1.add(jLabel5);
jLabel3.setForeground(new java.awt.Color(204, 255, 255));
jLabel3.setText("aaaa");
jToolBar1.add(jLabel3);
jLabel4.setForeground(new java.awt.Color(204, 255, 255));
jLabel4.setText("aaaa");
jToolBar1.add(jLabel4);
jLabel20.setForeground(new java.awt.Color(204, 255, 255));
jLabel20.setText("aaaa");
jToolBar1.add(jLabel20);
jLabel6.setForeground(new java.awt.Color(204, 255, 255));
jLabel6.setText("aaaa");
jToolBar1.add(jLabel6);
jLabel23.setForeground(new java.awt.Color(204, 255, 255));
jLabel23.setText("aaaa");
jToolBar1.add(jLabel23);
jPanel3.setBackground(new java.awt.Color(255, 255, 153));
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Data Konsumen",
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new
java.awt.Color(255, 255, 255))); // NOI18N
jLabel7.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel7.setText("Kode Konsumen:");
cmbKonsumen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmbKonsumenActionPerformed(evt);
88
}
});
txtNamaKonsumen.setEnabled(false);
jLabel9.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel9.setText("Nama Konsumen:");
txtAlamatKonsumen.setEnabled(false);
jLabel10.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel10.setText("Alamat:");
txtTelpKonsumen.setEnabled(false);
jLabel11.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel11.setText("Telpon:");
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel7)
.addComponent(cmbKonsumen, javax.swing.GroupLayout.PREFERRED_SIZE, 127,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel9)
.addComponent(txtNamaKonsumen, javax.swing.GroupLayout.PREFERRED_SIZE,
162, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel10)
.addComponent(txtAlamatKonsumen, javax.swing.GroupLayout.PREFERRED_SIZE,
201, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel11)
89
.addComponent(txtTelpKonsumen, javax.swing.GroupLayout.PREFERRED_SIZE, 138,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cmbKonsumen, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(jLabel9)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtNamaKonsumen, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(jLabel10)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtAlamatKonsumen, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(jLabel11)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtTelpKonsumen, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
);
jPanel4.setBackground(new java.awt.Color(255, 153, 153));
jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Data Laundry",
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new
java.awt.Color(255, 255, 255))); // NOI18N
jLabel8.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel8.setText("Jenis Pakaian:");
90
cmbJenisPakaian.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1",
"Item 2", "Item 3", "Item 4" }));
cmbJenisPakaian.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmbJenisPakaianActionPerformed(evt);
}
});
jLabel12.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel12.setText("Jenis Laundry:");
txtNamaPakaian.setEnabled(false);
jLabel13.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel13.setText("Nama Pakaian:");
txtTarif.setText("0");
txtTarif.setEnabled(false);
jLabel14.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel14.setText("Tarif:");
cmbJenisLaundry.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1",
"Item 2", "Item 3", "Item 4" }));
cmbJenisLaundry.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmbJenisLaundryActionPerformed(evt);
}
});
txtJumlahPakaian.setText("0");
jLabel15.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel15.setText("Jumlah:");
txtDiskon.setText("0");
jLabel16.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel16.setText("Diskon:");
bTambahPakaian.setBackground(new java.awt.Color(0, 204, 204));
bTambahPakaian.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Gambar/ic_add_box_24.png"))); // NOI18N
91
bTambahPakaian.setText("Tambah Pakaian");
bTambahPakaian.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
bTambahPakaian.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bTambahPakaianActionPerformed(evt);
}
});
tTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
tTable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tTableMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tTable);
txtTotal.setText("0");
txtTotal.setEnabled(false);
txtBayar.setText("0");
jLabel19.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel19.setText("Total:");
jLabel21.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel21.setText("Bayar:");
92
bSimpan.setBackground(new java.awt.Color(0, 204, 204));
bSimpan.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
bSimpan.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Gambar/ic_border_color_24.png"))); // NOI18N
bSimpan.setText("SIMPAN");
bSimpan.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
bSimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bSimpanActionPerformed(evt);
}
});
txtNamaJenisLaundry.setEnabled(false);
jLabel17.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel17.setText("Nama Jenis Laundry:");
jLabel18.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel18.setText("Tanggal Selesai");
jLabel22.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel22.setText("Sisa :");
txtKembali.setText("0");
txtKembali.setEnabled(false);
txtBayar1.setText("0");
txtBayar1.setEnabled(false);
txtBayar1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtBayar1ActionPerformed(evt);
}
});
jButton1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Gambar/ic_add_box_24.png"))); // NOI18N
jButton1.setText("Hitung");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
93
jButton1ActionPerformed(evt);
}
});
jButton2.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Gambar/ic_local_print_shop_24.png"))); // NOI18N
jButton2.setText("Cetak");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jLabel24.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel24.setText("Kembali:");
javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(747, 747, 747)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addComponent(jLabel19)
.addGap(21, 21, 21)
.addComponent(txtTotal, javax.swing.GroupLayout.PREFERRED_SIZE, 166,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel4Layout.createSequentialGroup()
.addComponent(jLabel21)
.addGap(18, 18, 18)
94
.addComponent(txtBayar, javax.swing.GroupLayout.PREFERRED_SIZE, 166,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 22,
Short.MAX_VALUE)
.addComponent(jLabel24)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(txtKembali, javax.swing.GroupLayout.PREFERRED_SIZE, 166,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(6, 6, 6)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel4Layout.createSequentialGroup()
.addComponent(bTambahPakaian,
javax.swing.GroupLayout.PREFERRED_SIZE, 151, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(226, 226, 226))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel4Layout.createSequentialGroup()
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(cmbJenisLaundry,
javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel12))
.addGap(18, 18, 18)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel17)
.addComponent(txtNamaJenisLaundry,
javax.swing.GroupLayout.PREFERRED_SIZE, 208,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)))
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(cmbJenisPakaian, javax.swing.GroupLayout.PREFERRED_SIZE,
127, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel8))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel13)
95
.addComponent(txtNamaPakaian, javax.swing.GroupLayout.PREFERRED_SIZE,
160, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel14)
.addComponent(txtTarif, javax.swing.GroupLayout.PREFERRED_SIZE, 128,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel15)
.addComponent(txtJumlahPakaian, javax.swing.GroupLayout.PREFERRED_SIZE,
78, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtDiskon, javax.swing.GroupLayout.PREFERRED_SIZE, 99,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel16))
.addGap(18, 18, 18)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addComponent(jLabel18)
.addGap(0, 0, Short.MAX_VALUE))
.addComponent(tglSelesai, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel4Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel4Layout.createSequentialGroup()
.addComponent(jLabel22)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(txtBayar1, javax.swing.GroupLayout.PREFERRED_SIZE, 166,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel4Layout.createSequentialGroup()
96
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(29, 29, 29)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 104,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(bSimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 114,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(8, 8, 8)))))
.addContainerGap())
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(11, 11, 11)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel17)
.addComponent(jLabel12))
.addComponent(jLabel8))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtNamaJenisLaundry,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmbJenisPakaian, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmbJenisLaundry)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel4Layout.createSequentialGroup()
.addComponent(jLabel13)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
97
.addComponent(txtNamaPakaian, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel4Layout.createSequentialGroup()
.addComponent(jLabel14)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtTarif, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel4Layout.createSequentialGroup()
.addComponent(jLabel15)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtJumlahPakaian, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel4Layout.createSequentialGroup()
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel18, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel16))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(txtDiskon, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tglSelesai, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bTambahPakaian)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 209,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtBayar1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
98
.addComponent(txtTotal, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel22))
.addComponent(jLabel19))
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(txtKembali, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel4Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 11,
Short.MAX_VALUE)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtBayar, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel21, javax.swing.GroupLayout.PREFERRED_SIZE, 20,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel24))
.addGap(21, 21, 21)))
.addGap(3, 3, 3)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(bSimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 43,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
99
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel3, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
100
.addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jMenu3.setText("Pakaian");
jMenuItem2.setText("Data Pakaian");
jMenuItem2.setActionCommand("Data Item");
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem2ActionPerformed(evt);
}
});
jMenu3.add(jMenuItem2);
jMenuItem3.setText("Data Jenis Laundry");
jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem3ActionPerformed(evt);
}
});
jMenu3.add(jMenuItem3);
jMenuBar1.add(jMenu3);
101
jMenu2.setText("Transaksi");
jMenuItem4.setText("Data Transaksi");
jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem4ActionPerformed(evt);
}
});
jMenu2.add(jMenuItem4);
jMenuItem5.setText("Data Pengambilan");
jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem5ActionPerformed(evt);
}
});
jMenu2.add(jMenuItem5);
jMenuItem7.setText("Data Konsumen");
jMenuItem7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem7ActionPerformed(evt);
}
});
jMenu2.add(jMenuItem7);
jMenuBar1.add(jMenu2);
jMenu4.setText("Laporan");
jMenuItem6.setText("Data Laporan");
jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem6ActionPerformed(evt);
}
});
jMenu4.add(jMenuItem6);
102
jMenuBar1.add(jMenu4);
jMenu1.setText("Logout");
jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1,
java.awt.event.InputEvent.ALT_MASK));
jMenuItem1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Gambar/ic_exit_to_app_24.png"))); // NOI18N
jMenuItem1.setText("Keluar");
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem1ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem1);
jMenuBar1.add(jMenu1);
setJMenuBar(jMenuBar1);
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)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
pack();
setLocationRelativeTo(null);
}// </editor-fold>
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int Pilih;
103
if((Pilih = JOptionPane.showConfirmDialog(null, "Keluar aplikasi?", "Perhatian",
JOptionPane.OK_CANCEL_OPTION))==0){
this.dispose();
new formLogin().show();
JOptionPane.showMessageDialog(null, "Good Bye!");
}
}
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new formDataPakaian().show();
}
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new formJenisLaundry().show();
}
private void cmbKonsumenActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
Connection Conn = new Database().Sambung();
query = "SELECT * FROM konsumen WHERE
KodeKonsumen='"+cmbKonsumen.getSelectedItem().toString()+"'";
st = Conn.createStatement();
rs = st.executeQuery(query);
while(rs.next()){
txtNamaKonsumen.setText(rs.getString(2));
txtAlamatKonsumen.setText(rs.getString(3));
txtTelpKonsumen.setText(rs.getString(4));
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
104
}
private void cmbJenisPakaianActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
Connection Conn = new Database().Sambung();
query = "SELECT * FROM item WHERE
IDItem='"+cmbJenisPakaian.getSelectedItem().toString()+"' AND
JenisLaundry='"+txtNamaJenisLaundry.getText()+"'";
st = Conn.createStatement();
rs = st.executeQuery(query);
while(rs.next()){
txtNamaPakaian.setText(rs.getString(3));
txtTarif.setText(rs.getString(4));
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
private void cmbJenisLaundryActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
Connection Conn = new Database().Sambung();
query = "SELECT * FROM jenislaundry WHERE
IDJenisLaundry='"+cmbJenisLaundry.getSelectedItem().toString()+"'";
st = Conn.createStatement();
rs = st.executeQuery(query);
while(rs.next()){
txtNamaJenisLaundry.setText(rs.getString(2));
}
TampilJenisPakaian();
}
105
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
private void bTambahPakaianActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String IDtrans = txtNoTransaksi.getText();
String IDKonsumen = cmbKonsumen.getSelectedItem().toString();
String NamaKonsumen = txtNamaKonsumen.getText();
int Tarif = Integer.parseInt(txtTarif.getText());
int Jumlah = Integer.parseInt(txtJumlahPakaian.getText());
float Diskon = Float.parseFloat(txtDiskon.getText())/100;
String IDJenis = cmbJenisPakaian.getSelectedItem().toString();
String IDJenisLaundry = cmbJenisLaundry.getSelectedItem().toString();
String NamaJenisLaundry = txtNamaJenisLaundry.getText();
String NamaPakaian = txtNamaPakaian.getText();
if(IDtrans.equals("") || IDKonsumen.equals("") || NamaKonsumen.equals("") || IDJenis.equals("")
|| IDJenisLaundry.equals("") || NamaJenisLaundry.equals("") || NamaPakaian.equals("") ){
JOptionPane.showMessageDialog(null, "Data belum lengkap!");
}
else{
if (Jumlah > 0){
if(txtDiskon.getText().equalsIgnoreCase("0")){
int TotalAwal = Tarif*Jumlah;
int txtTotalAwal = Integer.parseInt(txtTotal.getText());
int TotalAkhir = txtTotalAwal+TotalAwal;
txtTotal.setText(String.valueOf(TotalAkhir));
KodingRincianTransaksi krt = new KodingRincianTransaksi();
krt.TambahRincianTransaksi(IDtrans, IDKonsumen, NamaKonsumen, IDJenisLaundry,
NamaJenisLaundry, IDJenis,NamaPakaian, Jumlah, Tarif, TotalAwal, Diskon);
JOptionPane.showMessageDialog(null, "Transaksi Tersimpan");
}
106
else{
float TotalAwall = (Tarif*Jumlah) * Diskon;
int txtTotalAwal = Integer.parseInt(txtTotal.getText());
int TotalAkhir = (int) (txtTotalAwal+TotalAwall);
txtTotal.setText(String.valueOf(TotalAkhir));
int TotalAwal = (int) (TotalAwall);
KodingRincianTransaksi krt = new KodingRincianTransaksi();
krt.TambahRincianTransaksi(IDtrans, IDKonsumen, NamaKonsumen, IDJenisLaundry,
NamaJenisLaundry, IDJenis,NamaPakaian, Jumlah, Tarif,TotalAwal, Diskon);
JOptionPane.showMessageDialog(null, "Transaksi Tersimpan");
}
mdl.addRow(new Object[]{
txtNamaPakaian.getText(),
txtNamaJenisLaundry.getText(),
txtTarif.getText(),
txtJumlahPakaian.getText(),
txtDiskon.getText(),
});
} else {
JOptionPane.showMessageDialog(null, "Isi Jumlah Terlebih Dahulu");
}
}
}
private void tTableMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
}
private void bSimpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int TotalAkhir = Integer.parseInt(txtTotal.getText());
int Bayar = Integer.parseInt(txtBayar.getText());
int Sisa = Integer.parseInt(txtBayar1.getText());
int kembali = Integer.parseInt(txtKembali.getText());
107
int ID = Integer.parseInt(txtNoTransaksi.getText());
int Jumlah = Integer.parseInt(txtJumlahPakaian.getText());
String Tampilan = "yyyy/MM/dd";
SimpleDateFormat sdf = new SimpleDateFormat(Tampilan);
String TglTrans = sdf.format(tglTransaksi.getDate());
String TglSelesai = sdf.format(tglSelesai.getDate());
int pilih;
if((pilih=JOptionPane.showConfirmDialog(null, "Transaksi?", "Perhatian",
JOptionPane.OK_CANCEL_OPTION))==0){
if(txtNoTransaksi.getText().equals("") || tglTransaksi.getDate().equals(null) ||
tglSelesai.getDate().equals(null) || txtTotal.getText().equals("") || txtBayar.getText().equals("") ){
JOptionPane.showMessageDialog(null, "Data belum lengkap!");
}
else{
KodingTransaksi kt = new KodingTransaksi();
kt.TambahTransaksi(ID, TglTrans, TglSelesai, TotalAkhir, Bayar, Sisa, kembali);
JOptionPane.showMessageDialog(null, "Transaksi Tersimpan");
}
}
}
private void formWindowClosing(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
this.dispose();
}
private void bRefreshActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
TampilKonsumen();
TampilJenisPakaian();
TampilJenisLaundry();
TampilTable();
TampilNoTransaksi();
mdl.getDataVector().removeAllElements();
108
mdl.fireTableDataChanged();
txtTotal.setText("0");
Bersih();
}
private void txtBayar1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int TotalAkhir = Integer.parseInt(txtTotal.getText());
int Bayar = Integer.parseInt(txtBayar.getText());
int Sisa = Bayar - TotalAkhir;
if (TotalAkhir >= 0){
if(Sisa >= 0){
txtBayar1.setText("0");
txtKembali.setText(String.valueOf(Sisa));
} else {
txtKembali.setText("0");
txtBayar1.setText(String.valueOf(Sisa));
}
} else {
JOptionPane.showMessageDialog(rootPane, "Sub Total Masih Kosong ^_^");
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
String NamaFile= "./src/transaksi.jasper";
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection koneksi =
DriverManager.getConnection("jdbc:mysql://localhost/laundry","root","");
HashMap param = new HashMap();
109
param.put("NoID",parseInt(txtNoTransaksi.getText()));
JasperPrint JPrint = JasperFillManager.fillReport(NamaFile,param,
koneksi);
JasperViewer.viewReport(JPrint, false);
} catch(Exception e){
JOptionPane.showMessageDialog(null,e);
}
}
private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new formLaporan().show();
}
private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new formTransaksi().show();
}
private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new formPengambilan().show();
}
private void jMenuItem7ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new formKonsumen().show();
}
/**
* @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.
110
* 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 ("Windows".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(formTransaksi.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(formTransaksi.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(formTransaksi.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(formTransaksi.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
}
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
/* Create and display the form */
111
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new formTransaksi().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton bRefresh;
private javax.swing.JButton bSimpan;
private javax.swing.JButton bTambahPakaian;
private javax.swing.JComboBox<String> cmbJenisLaundry;
private javax.swing.JComboBox<String> cmbJenisPakaian;
private javax.swing.JComboBox<String> cmbKonsumen;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
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;
112
private javax.swing.JLabel jLabel24;
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.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenu jMenu3;
private javax.swing.JMenu jMenu4;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JMenuItem jMenuItem3;
private javax.swing.JMenuItem jMenuItem4;
private javax.swing.JMenuItem jMenuItem5;
private javax.swing.JMenuItem jMenuItem6;
private javax.swing.JMenuItem jMenuItem7;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JToolBar jToolBar1;
public static javax.swing.JLabel lblStatus;
private javax.swing.JTable tTable;
private com.toedter.calendar.JDateChooser tglSelesai;
private com.toedter.calendar.JDateChooser tglTransaksi;
private javax.swing.JTextField txtAlamatKonsumen;
113
private javax.swing.JTextField txtBayar;
private javax.swing.JTextField txtBayar1;
private javax.swing.JTextField txtDiskon;
private javax.swing.JTextField txtJumlahPakaian;
private javax.swing.JTextField txtKembali;
private javax.swing.JTextField txtNamaJenisLaundry;
private javax.swing.JTextField txtNamaKonsumen;
private javax.swing.JTextField txtNamaPakaian;
private javax.swing.JTextField txtNoTransaksi;
private javax.swing.JTextField txtTarif;
private javax.swing.JTextField txtTelpKonsumen;
private javax.swing.JTextField txtTotal;
// End of variables declaration
int Baris = 0;
static Object Kolom[] = {"Nama Pakaian", "Jenis Laundry", "Tarif", "Jumlah", "Diskon"};
DefaultTableModel mdl = new DefaultTableModel(Kolom, Baris);
}
3.5.2. Blackbox Testing
1. Form Login Admin
Tabel III.9.
114
Blackbox Testing Form Login Admin
No
.
Skenario
Penulisan
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1. Nama user dan
Password tidak
diisi kemudian
klik tombol login
Nama user:
(kosong)
Password:
(kosong)
Sistem akan
menolak
akses dan
menampilkan
pesan
“Silahkan
Masukkan
Username
dan
Password”
Sesuai
harapan
Valid
2. Mengetikkan
Nama user dan
Password tidak
diisi atau kosong
kemudian klik
tombol login
Nama user:
admin
Password:
(kosong)
Sistem akan
menolak
akses dan
menampilkan
pesan
“Password
Tidak Boleh
Kosong”
Sesuai
harapan
Valid
3. Nama user tidak
diisi (kosong) dan
Password diisi
kemudian klik
tombol login
Nama user:
(kosong)
Password:
123
Sistem akan
menolak
akses dan
menampilkan
pesan
“Username
Tidak Boleh
Kosong”
Sesuai
harapan
Valid
4. Mengetikkan
salah satu kondisi
salah pada Nama
user atau
Password
kemudian klik
tombol login
Nama user:
admin
(benar)
Password:
admin
(salah)
Sistem akan
menolak
akses dan
menampilkan
pesan
“Username
atau
Password
Salah”
Sesuai
harapan
Valid
5. Mengetikkan
Nama user dan
Password dengan
Nama user:
admin
Sistem akan
menerima
akses login
Sesuai
harapan
Valid
115
data yang benar
kemudian klik
tombol login
(benar)
Password:
123
(benar)
dan akan
menampilkan
pesan
“Berhasil
Login”
Sumber : Penulis (2019)
2. Form Data Item
Tabel III.10
Blackbox Testing Form Data Item
No
.
Skenario
Penulisan
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1. ID Jenis
Item, Jenis
Laundry, Nama
Item, Tarif tidak
di isi lalu
kemudian klik
tombol tambah
data Item
ID Jenis
Item:
(kosong)
Jenis
Laundry:
(Kosong)
Nama Item:
(Kosong)
Tarif:
(Kosong)
Sistem akan
Menolak dan
tidak bisa
melakukan
penambahan
data Item
Sesuai
harapan
Valid
2. Mengisi ID Jenis
Item, Jenis
Laundry, Nama
Item, Tarif tidak
di isi lalu
kemudian klik
tombol tambah
data Item
ID Jenis
Item: 01
Jenis
Laundry:
(Kosong)
Nama Item:
(Kosong)
Tarif:
(Kosong)
Sistem akan
Menolak dan
tidak bisa
melakukan
penambahan
data Item
Sesuai
harapan
Valid
3. Mengisi ID Jenis
Item, Mengisi
Jenis Laundry,
Nama Item, Tarif
tidak di isi lalu
ID Jenis
Item: 01
Jenis
Laundry:
Sistem akan
Menolak dan
tidak bisa
melakukan
penambahan
Sesuai
harapan
Valid
116
kemudian klik
tombol tambah
data Item
Satuan
Nama Item:
(Kosong)
Tarif:
(Kosong)
data Item
4. Mengisi ID Jenis
Item, Mengisi
Jenis Laundry,
Mengisi Nama
Item, Tarif tidak
di isi lalu
kemudian klik
tombol tambah
data Item
ID Jenis
Item: 01
Jenis
Laundry:
Satuan
Nama Item:
Bed Cover
Tarif:
(Kosong)
Sistem akan
Menolak dan
tidak bisa
melakukan
penambahan
data Item
Sesuai
harapan
Valid
5. ID Jenis
Item, Jenis
Laundry, Nama
Item, Tarif di isi
semua lalu
kemudian klik
tombol tambah
data Item
ID Jenis
Item: 01
Jenis
Laundry:
Satuan
Nama Item:
Bed Cover
Tarif: 14000
Sistem akan
menerima
dan
menyimpan
data
jenis Item
dengan
menampilkan
“Data
berhasil
ditambahkan!
”
Sesuai
harapan
Valid
6. Pencarian Data
Item Berdasarkan
ID tidak di isi lalu
kemudian klik
tombol Cari
Cari
berdasarkan
ID:
(Kosong)
Sistem akan
Menolak dan
tidak bisa
melakukan
Pencarian
jenis Item
berdasarkan
ID
Sesuai
harapan
Valid
7. Mengisi
Pencarian Data
Item Berdasarkan
ID tidak di isi lalu
kemudian klik
tombol Cari
Cari
berdasarkan
ID:
1
Sistem akan
menerima
dan
menampilkan
jenis Item
dengan ID
yang telah
disimpan
Sesuai
harapan
Valid
117
Sumber : Penulis (2019)
3. Form Data Jenis Laundry
Tabel III.11
Blackbox Testing Form Data Jenis Laundry
No
.
Skenario
Penulisan
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1. ID Jenis Laundry,
Nama Jenis
Laundry tidak di
isi lalu kemudian
klik tombol
tambah data Jenis
Laundry
ID Jenis
Laundry:
(kosong)
Nama Jenis
Laundry:
(Kosong)
Sistem akan
Menolak dan
tidak bisa
melakukan
penambahan
data jenis
Laundry dan
menampilkan
“Data Belum
Lengkap!”
Sesuai
harapan
Valid
2. Mengisi ID Jenis
Laundry, Nama
Jenis Laundry
tidak di isi lalu
kemudian klik
tombol tambah
data Jenis
Laundry
ID Jenis
Laundry:
1
Nama Jenis
Laundry:
(Kosong)
Sistem akan
Menolak dan
tidak bisa
melakukan
penambahan
data jenis
Laundry dan
menampilkan
“Data Belum
Lengkap!”
Sesuai
harapan
Valid
3. Mengisi ID Jenis
Laundry dan
Nama Jenis
Laundry lalu
kemudian klik
tombol tambah
data Jenis
Laundry
ID Jenis
Laundry:
1
Nama Jenis
Laundry:
Kiloan
Sistem akan
menerima
dan
menyimpan
data
Jenis
Laundry
dengan
menampilkan
“Data
berhasil
ditambahkan!
”
Sesuai
harapan
Valid
4. Pencarian Data Cari Sistem akan Sesuai Valid
118
Jenis Laundry
Berdasarkan ID
tidak di isi lalu
kemudian klik
tombol Cari
berdasarkan
ID:
(Kosong)
Menolak dan
tidak bisa
melakukan
Pencarian
Jenis
Laundry
berdasarkan
ID
harapan
5. Mengisi
Pencarian Data
Jenis Laundry
Pakaian
Berdasarkan ID
tidak di isi lalu
kemudian klik
tombol Cari
Cari
berdasarkan
ID:
1
Sistem akan
menerima
dan
menampilkan
Jenis
Laundry
dengan ID
yang telah
disimpan
Sesuai
harapan
Valid
Sumber : Penulis (2019)
4. Form Data Konsumen
Tabel III.12
Blackbox Testing Form Data Konsumen
No
.
Skenario
Penulisan
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1. Kode Konsumen,
nama Konsumen,
Alamat, Telpon
tidak di isi lalu
kemudian klik
tombol Tambah
Konsumen
Kode
Konsumen:
(kosong)
Nama
Konsumen:
(Kosong)
Alamat:
(Kosong)
Telpon:
(Kosong)
Sistem akan
Menolak dan
tidak bisa
melakukan
penambahan
data
Konsumen
dan
menampilkan
“Data Belum
Lengkap!”
Sesuai
harapan
Valid
2. Mengisi Kode
Konsumen, nama
Konsumen,
Alamat, Telpon
tidak di isi lalu
kemudian klik
tombol Tambah
Konsumen
Kode
Konsumen:
01
Nama
Konsumen:
(Kosong)
Alamat:
Sistem akan
Menolak dan
tidak bisa
melakukan
penambahan
data
Konsumen
dan
Sesuai
harapan
Valid
119
(Kosong)
Telpon:
(Kosong)
menampilkan
“Data Belum
Lengkap!”
3. Mengisi Kode
Konsumen,
mengisi nama
Konsumen,
Alamat, Telpon
tidak di isi lalu
kemudian klik
tombol Tambah
Konsumen
Kode
Konsumen:
01
Nama
Konsumen:
Dewi Sagita
Alamat:
(Kosong)
Telpon:
(Kosong)
Sistem akan
Menolak dan
tidak bisa
melakukan
penambahan
data
Konsumen
dan
menampilkan
“Data Belum
Lengkap!”
Sesuai
harapan
Valid
4. Mengisi Kode
Konsumen,
mengisi nama
Konsumen,
mengisi Alamat,
Telpon tidak di
isi lalu kemudian
klik tombol
Tambah
Konsumen
Kode
Konsumen:
01
Nama
Konsumen:
Dewi Sagita
Alamat:
Perum Villa
Mutiara
Jaya
Telpon:
(Kosong)
Sistem akan
Menolak dan
tidak bisa
melakukan
penambahan
data
Konsumen
dan
menampilkan
“Data Belum
Lengkap!”
Sesuai
harapan
Valid
5. Mengisi semua
field Kode
Konsumen,
mengisi nama
Konsumen,
mengisi Alamat,
Telpon lalu
kemudian klik
tombol Tambah
Konsumen
Kode
Konsumen:
01
Nama
Konsumen:
Dewi Sagita
Alamat:
Perum Villa
Mutiara
Jaya
Telpon:
0891918298
Sistem akan
menerima
dan
menyimpan
data
Konsumen
dengan
menampilkan
“Data
berhasil
ditambahkan!
”
Sesuai
harapan
Valid
120
6. Pencarian Data
Konsumen
Berdasarkan ID
tidak di isi lalu
kemudian klik
tombol Cari
Cari
berdasarkan
ID:
(Kosong)
Sistem akan
Menolak dan
tidak bisa
melakukan
Pencarian
Konsumen
berdasarkan
ID
Sesuai
harapan
Valid
7. Mengisi
Pencarian Data
Konsumen
Berdasarkan ID
tidak di isi lalu
kemudian klik
tombol Cari
Cari
berdasarkan
ID:
1
Sistem akan
menerima
dan
menampilkan
Konsumen
dengan ID
yang telah
disimpan
Sesuai
harapan
Valid
Sumber : Penulis (2019)
5. Form Data Transaksi
Tabel III.13
Blackbox Testing Form Data Transaksi
No
.
Skenario
Penulisan
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1. Kode Konsumen,
Jenis Laundry,
Jumlah, Diskon,
Tanggal Selesai
tidak di isi lalu
kemudian klik
tombol Tambah
Transaksi
Kode
Konsumen:
(kosong)
Jenis
Laundry:
(Kosong)
Jumlah:
(Kosong)
Diskon:
(Kosong)
Tanggal
Selesai:
(Kosong)
Sistem akan
Menolak dan
tidak bisa
melakukan
penambahan
data
Transaksi dan
menampilkan
“Data Belum
Lengkap!”
Sesuai
harapan
Valid
2. Mengisi Kode
Konsumen, Jenis
Laundry, Jumlah,
Kode
Konsumen:
1
Sistem akan
Menolak dan
tidak bisa
Sesuai
harapan
Valid
121
Diskon, Tanggal
Selesai tidak di
isi lalu kemudian
klik tombol
Tambah
Transaksi
Jenis
Laundry:
(Kosong)
Jumlah:
(Kosong)
Diskon:
(Kosong)
Tanggal
Selesai:
(Kosong)
melakukan
penambahan
data
Transaksi dan
menampilkan
“Data Belum
Lengkap!”
3. Mengisi Kode
Konsumen,
Mengisi Jenis
Laundry, Jumlah,
Diskon, Tanggal
Selesai tidak di
isi lalu kemudian
klik tombol
Tambah
Transaksi
Kode
Konsumen:
1
Jenis
Laundry: 1,
Satuan
Jumlah:
(Kosong)
Diskon:
(Kosong)
Tanggal
Selesai:
(Kosong)
Sistem akan
Menolak dan
tidak bisa
melakukan
penambahan
data
Transaksi dan
menampilkan
“Data Belum
Lengkap!”
Sesuai
harapan
Valid
4. Mengisi Kode
Konsumen,
Mengisi Jenis
Laundry, Mengisi
Jumlah, Diskon,
Tanggal Selesai
tidak di isi lalu
kemudian klik
tombol Tambah
Transaksi
Kode
Konsumen:
1
Jenis
Laundry: 1,
Satuan
Jumlah: 4
Diskon:
(Kosong)
Tanggal
Selesai:
(Kosong)
Sistem akan
Menolak dan
tidak bisa
melakukan
penambahan
data
Transaksi dan
menampilkan
“Data Belum
Lengkap!”
Sesuai
harapan
Valid
5. Mengisi Kode
Konsumen,
Mengisi Jenis
Kode
Konsumen:
Sistem akan
Menolak dan
tidak bisa
Sesuai
harapan
Valid
122
Laundry, Mengisi
Jumlah, Menisi
Diskon, Tanggal
Selesai tidak di
isi lalu kemudian
klik tombol
Tambah
Transaksi
1
Jenis
Laundry: 1,
Satuan
Jumlah: 4
Diskon:
10%
Tanggal
Selesai:
(Kosong)
melakukan
penambahan
data
Transaksi dan
menampilkan
“Data Belum
Lengkap!”
6. Mengisi Kode
Konsumen, Jenis
Laundry, Jumlah,
Diskon, Tanggal
Selesai lalu
kemudian klik
tombol Tambah
Transaksi
Kode
Konsumen:
1
Jenis
Laundry: 1,
Satuan
Jumlah: 4
Diskon:
10%
Tanggal
Selesai: 12
Mei 2019
Sistem akan
menerima
dan
menyimpan
data
Transaksi
dengan
menampilkan
“Data
berhasil
ditambahkan!
”
Sesuai
harapan
Valid
Sumber : Penulis (2019)
123
3.5.3. Spesifikasi Hardware dan Software
Tabel III.13.
Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Operasi Microsoft Windows 7 Home Premium
Processor Intel Inside Core i3
RAM 4 GB
Harddisk 500 GB Serial ATA 5400 RPM
Monitor 14.0” HD TrueLife Display
Keyboard Standar
Printer Laser Jet
Mouse Standard
Software
Kebutuhan menjalankan aplikasi secara local:
Bahasa script programming : JAVA 8.1
Web Server : Xampp
Framework : Netbeans IDE 8.1
DBMS : MySQL
Sumber : Penulis (2019)