63
20 BAB III PEMBAHASAN 3.1. Tinjauan Perusahaan Dalam pembahasan tinjauan perusahaan, penulis akan membahas sejarah dan struktur organisasi serta fungsinya dari PT Bywi Jaya Sejahtera. 3.1.1. Sejarah Perusahaan PT Bywi Jaya Sejahtera adalah perusahaan yang bergerak usaha di bidang usaha penyewaan lapangan futsal. PT Bywi Jaya Sejahtera didirikan oleh Bapak Suroto yang berizin usaha dengan nomor SKDP: 13/27.1BU/31.73.08.1003/- 071.56/e/2017. Sejarah berdirinya PT Bywi Jaya Sejahtera berawal pada tanggal 13 Oktober 2011 oleh bapak Suroto selaku pemilik tempat futsal, dan mulai beroperasi sejak 31 Maret 2012 yang bertempat di Jalan Meruya Selatan Nomor 111, Kembangan, Jakarta Barat, dan hingga saat ini masih beroperasi. Tempat futsal ini menawarkan banyak fasilitas seperti adanya dua jenis lapangan yakni lapangan rumput dan lapangan vinyl, toilet, tempat ganti pakaian, tempat parkir untuk mobil dan motor, tribun penonton, dan juga ada kantin. Tempat ini buka setiap hari, berikut adalah list daftar harga lapangan meliputi: hari, jam dan harga sewa yang terdapat pada PT Bywi Jaya Sejahtera :

BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

20

BAB III

PEMBAHASAN

3.1. Tinjauan Perusahaan

Dalam pembahasan tinjauan perusahaan, penulis akan membahas sejarah

dan struktur organisasi serta fungsinya dari PT Bywi Jaya Sejahtera.

3.1.1. Sejarah Perusahaan

PT Bywi Jaya Sejahtera adalah perusahaan yang bergerak usaha di bidang

usaha penyewaan lapangan futsal. PT Bywi Jaya Sejahtera didirikan oleh Bapak

Suroto yang berizin usaha dengan nomor SKDP: 13/27.1BU/31.73.08.1003/-

071.56/e/2017.

Sejarah berdirinya PT Bywi Jaya Sejahtera berawal pada tanggal 13

Oktober 2011 oleh bapak Suroto selaku pemilik tempat futsal, dan mulai

beroperasi sejak 31 Maret 2012 yang bertempat di Jalan Meruya Selatan Nomor

111, Kembangan, Jakarta Barat, dan hingga saat ini masih beroperasi. Tempat

futsal ini menawarkan banyak fasilitas seperti adanya dua jenis lapangan yakni

lapangan rumput dan lapangan vinyl, toilet, tempat ganti pakaian, tempat parkir

untuk mobil dan motor, tribun penonton, dan juga ada kantin.

Tempat ini buka setiap hari, berikut adalah list daftar harga lapangan

meliputi: hari, jam dan harga sewa yang terdapat pada PT Bywi Jaya Sejahtera :

Page 2: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

21

Tabel. III.1.

List Daftar Harga Lapangan

Sumber: Bagian Kasir PT. Bywi Jaya Sejahtera

3.1.2. Struktur Organisasi dan Fungsi

Sumber: (PT Bywi Jaya Sejahtera, 2012)

Gambar III.1. Struktur Organisasi

Berikut ini adalah fungsi dari setiap komponen organisasi adalah:

1. Pemilik : Orang yang memiliki perusahaan, bertanggung jawab dalam

pengambilan keputusan.

2. Kasir : Orang yang bertugas menjalankan proses penyewaan

lapangan.

3. Security : Orang yang bertugas untuk menjaga keamanan perusahaan.

4. Office Boy : Orang yang bertugas untuk menjaga kebersihan sekitar

lapangan

Senin s/d Minggu Reguler

Jam Rumput Vinyl

06.00 – 15.00 Rp. 80.000 Rp. 90.000

15.00 – 18.00 Rp. 105.000 Rp. 115.000

18.00 – 24.00 Rp. 160.000 Rp. 170.000

Member 10%

Hari Libur

Penambahan sebesar Rp. 200.000

Pemilik

Kasir Security Office Boy

Page 3: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

22

3.2. Tinjauan Kasus

3.2.1. Proses Bisnis Sistem Berjalan

Proses bisnis sistem berjalan pada PT Bywi Jaya Sejahtera adalah sebagai

berikut:

Pelanggan yang ingin melakukan pemesanan sewa lapangan futsal, bisa

melalui via whatsapp atau datang langsung ke Bywi Futsal. Kemudian kasir akan

memberitahukan list daftar harga lapangan. Apabila pelanggan telah menentukkan

jenis lapangan yang dipesan maka kasir akan mengecek ketersediaan lapangan

dengan melihat di Form Penyewaan. Jika lapangan yang ingin dipesan tersedia,

maka pelanggan memberitahukan identitas (nama dan nomor handphone) kepada

kasir sebagai kelengkapan data Penyewaan. Lalu identitas pelanggan dicatat oleh

kasir. Apabila pelanggan telah selesai melakukan pemesanan maka pelanggan

dapat melakukan pembayaran secara lunas maupun DP. Jika pelanggan membayar

secara lunas maka pelanggan akan mendapatkan Kwitansi Pembayaran sebagai

bukti pembayaran. Kwitansi Pembayaran ini terdiri dari rangkap 2, dimana

rangkap asli diberikan kepada pelanggan dan rangkap coppy sebagai arsip

pembayaran. Sedangkan jika pelanggan membayar DP, maka pelanggan wajib

melakukan pembayaran minimal 50% dari harga lapangan yang dipesan.

Kemudian pelanggan akan diberikan Kwitansi Pembayaran rangkap asli sebagai

bukti pembayaran awal dan rangkap coppy di arsip oleh kasir. Pelunasan

pembayaran dapat dilakukan maksimal pada saat pelanggan telah selesai bermain

futsal dengan membawa Kwitansi Pembayaran rangkap asli yang telah diberikan

oleh kasir pada saat pembayaran awal. Tetapi jika pelanggan melakukan

pembatalan, maka kasir akan mencatat pembatalan dan update data Penyewaan.

Page 4: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

23

Pembuatan laporan pemesanan lapangan ini diambil dari data Penyewaan yang

nantinya akan diserahkan kepada Pemilik.

3.2.2. Activity Diagram

Gambar III.2.

Activity Diagram Proses Bisnis Sistem Berjalan

3.2.3. Dokumen Masukkan

Dokumen masukan merupakan dokumen yang akan diolah untuk

memperoleh informasi yang dibutuhkan. Bentuk dokumen masukan dalam sistem

yang sedang berjalan pada PT Bywi Jaya Sejahtera adalah sebagai berikut :

act Activ ity Diagram

PemilikKasirPelanggan

Mulai

Melakukan Pemesanan Memberitahukan list daftar harga lapangan

Memilih jenis lapangan

Memberitahukan jenis lapangan yang dipilih Mengecek ketersediaan lapangan

Memberitahukan ketersediaan lapanganMenerima informasi ketersediaan lapangan

Menyetujui pemesanan lapangan dan

memberitahukan identitas (nama & no hp)Mencatat identitas pelanggan di Form Penyewaan

Memberitahukan jenis pembayaranMemilih jenis pembayaran

Melakukan

pembayaran

secara DPMenerima pembayaran secara DP

Membuat Kwitansi Pembayaran Dan

Menyimpan Kwitansi Pembayaran coppy

Menyerahkan Kwitansi Pembayaran asliMenerima Kwitansi Pembayaran asli

Melakukan pembatalan Mencatat pembatalan dan update Form Penyewaan

Uang DP Hangus

Selesai

Menunjukkan Kwitansi

Pembayaran DP asli

Bermain Futsal

Melakukan pembayaran

secara lunas Menerima Pembayaran secara lunas

Membuat Kwitansi Pembayaran serta

Menyimpan Kwitansi Pembayaran coppy

Menyerahkan Kwitansi

Pembayaran asli

Menerima Kwitansi

Pembayaran asli

Selesai

Bermain futsal Membuat Laporan Penyewaan

Menyerahkan Laporan Penyewaan Menerima Laporan Penyewaan

Selesai

ya

batal

DP

lanjut

Lunas

tidak

Page 5: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

24

Nama Dokumen : Form Penyewaan

Fungsi : Untuk mengetahui identitas pelanggan yang telah

melakukan pemesanan dan pembayaran dari

pelanggan

Sumber : Pelanggan

Tujuan : Kasir

Media : Kertas

Jumlah : Satu Lembar

Frekuensi : Setiap Hari

Format : Lampiran A.1

3.2.4. Dokumen Keluaran

Dokumen keluaran merupakan proses akhir dari proses penyewaan

lapangan futsal. Adapun dokumen keluaran tersebut adalah sebagai berikut :

1. Nama Dokumen : Kwitansi Pembayaran

Fungsi : Sebagai Bukti Pembayaran Dari Pelanggan

Sumber : Kasir

Tujuan : Pelanggan

Media : Kertas

Jumlah : Dua Lembar

Frekuensi : Setiap Terjadinya Pembayaran DP dan Lunas

Sewa Lapangan Futsal

Format : Lampiran B.1

Page 6: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

25

2. Nama Dokumen : Laporan Penyewaan

Fungsi : Untuk Mengetahui Rincian Penyewaan

Sumber : Kasir

Tujuan : Pemilik

Media : Kertas

Jumlah : Dua Lembar

Frekuensi : Setiap Hari

Format : Lampiran B.2

3.2.5. Permasalahan Pokok

Ada beberapa permasalahan yang terjadi pada sistem penyewaan lapangan

futsal pada PT Bywi Jaya Sejahtera Jakarta, untuk lebih jelasnya maka penulis

akan merumuskan beberapa permasalahan yang ada adalah sebagai berikut:

1. Dalam mengolah data, pengisian data-data penyewaan yang masih manual,

sehingga kemungkinan resiko terjadinya kehilangan dan kerusakan pada

semua data-data karena masih disimpan dalam buku catatan.

2. Setiap adanya pembayaran DP (uang muka) dan pelunasan pelanggan tidak

diberikan kwitansi oleh kasir, hanya dicatat dalam form penyewaan saja,

terkecuali pelanggan tersebut meminta untuk dibuatkan kwitansi. Sehingga

jika suatu hari terjadi kehilangan pada catatan manual, sedangkan arsip

kwitansi tidak lengkap, maka itu akan merugikan perusahaan. Karena kasir

tidak mempunyai backup data secara lengkap.

3. Untuk perhitungan diskon tidak ada pendataan khusus pelanggan, hanya

dilihat dari transaksi-transaksi sebelumnya saja.

Page 7: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

26

3.2.6. Pemecahan Masalah

Sebagai alternatif pemecahan dari permasalahan diatas, maka penulis akan

memberikan solusinya sebagai berikut:

1. Mengubah sistem manual menjadi sistem yang sudah terkomputerisasi

sehingga dalam pengarsipan data sampai pembuatan laporan penyewaan akan

lebih akurat dan lebih cepat, sehingga mempermudah dalam proses

penyewaan lapangan futsal.

2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap

pelanggan yang telah melakukan pemesanan maka kasir bisa langsung

mencetak kwitansi pembayaran DP maupun pelunasan, dan kasir tidak perlu

repot-repot untuk membuat kwitansi secara manual lagi.

3. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap

pelanggan yang sudah pernah bermain futsal atau langganan, maka akan

secara otomatis mendapat diskon 10%.

3.3. Analisis Kebutuhan Software

3.3.1. Analisis Kebutuhan

Berdasarkan proses penyewaan lapangan futsal sistem berjalan pada Bywi

Futsal, maka tahapan berikutnya adalah analisis kebutuhan. Berikut ini spesifikasi

kebutuhan (System Requirement) dari sistem penyewaan lapangan futsal pada

Bywi Futsal.

A. Halaman Kasir

A.1. Kasir Melakukan Login

A.2. Kasir Mengelola Menu Utama

Page 8: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

27

A.3. Kasir Mengelola Menu Master

A.3.1. Kasir Mengelola Data Pelanggan

A.3.2. Kasir Mengelola Data Lapangan

A.3.3. Kasir Mengelola Data Perkiraan

A.4. Kasir Mengelola Menu Transaksi

A.4.1. Kasir Mengelola Booking

A.4.2. Kasir Mengelola Penyewaan

A.4.3. Kasir Mengelola Jurnal

A.5. Kasir Mengelola Menu Laporan

A.5.1. Kasir Mengelola Laporan Penyewaan

A.5.2. Kasir Mengelola Laporan Penerimaan Kas

A.6. Kasir Kasir Mengelola Menu Utility

A.6.1. Kasir Mengelola Back Up

A.7. Kasir Logout

B. Halaman Pemilik

B.1. Pemilik Melakukan Login

B.2. Pemilik Mengelola Menu Utama

B.3 Pemilik Mengelola Menu Master

B.3.1. Pemilik Mengelola Data User

B.4. Pemilik Mengelola Menu Laporan Pemilik

B.4.1. Pemilik Mengelola Laporan Penyewaan

B.4.2. Pemilik Mengelola Laporan Penerimaan Kas

B.4. Pemilik Logout

Page 9: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

28

3.3.2. Use Case Diagram

1. Use Case Halaman Kasir

Gambar III.3.

Use Case Diagram Halaman Kasir

Tabel III.2 Deskripsi Use case Halaman Kasir

Use Case Narative Halaman Kasir

Tujuan Kasir dapat mengolah/melihat data yang ada di dalam

sistem halaman kasir

Deskripsi Sistem ini memungkinkan aktor untuk masuk ke

halaman kasir yang di dalamnya ada data pelanggan,

data lapangan, data perkiraan, booking, penyewaan,

jurnal, laporan penyewaan, dan laporan penerimaan kas.

Skenario Utama

Aktor Kasir

Kondisi Awal Aktor membuka Aplikasi halaman kasir

Aksi Aktor Reaksi Sistem

1. Aktor memilih Sistem ini akan menampilkan informasi data pelanggan

uc Use Case Halaman Kasir

Kasir

Login

PasswordKode User

Menu Utama Menu Master

Data

PelangganData

Lapangan

Data

Perkiraan

Menu

Transaksi

Penyewaan

Jurnal

Menu Laporan

Laporan

Penyewaan

Laporan

Penerimaan

Kas

Menu Utility

Back Up

Logout

Booking

«include»

«extend»

«include»

«extend»

«extend»

«extend»

«extend»

«extend»

«extend»

«extend»

«extend»

«extend»

«extend»

«extend»

«extend»

«extend»

«extend»

Page 10: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

29

data pelanggan

2. Aktor memilih

data lapangan

3. Aktor memilih

data perkiraan

4. Aktor memilih

booking

5. Aktor memilih

penyewaan

6. Aktor memilih

jurnal

7. Aktor memilih

laporan

penyewaan

8. Aktor memilih

laporan

penerimaan kas

9. Aktor memilih

back up

Sistem ini akan menampilkan informasi data lapangan

Sistem ini akan menampilkan informasi data perkiraan

Sistem ini akan menampilkan informasi booking

Sistem ini akan menampilkan informasi penyewaan

Sistem ini akan menampilkan informasi jurnal

Sistem ini akan menampilkan informasi laporan

penyewaan

Sistem ini akan menampilkan informasi laporan

penerimaan kas

Sistem ini akan menampilkan back up

Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa

yang diinginkan

2. Use Case Halaman Pemilik

Gambar III.4.

Use Case Diagram Halaman Pemilik

uc Use Case Halaman Pemilik

Login

PasswordKode User

Menu Utama Menu Master

Logout

Pemilik

Data User

Menu Laporan

Laporan

Penyewaan

Laporan

Penerimaan

Kas

«extend»«extend»

«extend»

«include» «include»

«extend»

«extend»

«extend»

«extend»

Page 11: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

30

Tabel III.3 Deskripsi Use case Halaman Pemilik

Use Case Narative Halaman Pemilik

Tujuan Pemilik dapat mengolah dan melihat data yang ada di

dalam sistem halaman pemilik

Deskripsi Sistem ini memungkinkan aktor untuk masuk ke

halaman pemilik yang di dalamnya ada data user,

laporan penyewaan, dan laporan penerimaan kas.

Skenario Utama

Aktor Pemilik

Kondisi Awal Aktor membuka Aplikasi halaman pemilik

Aksi Aktor Reaksi Sistem

1. Aktor memilih

data user

2. Aktor memilih

laporan

penyewaan

3. Aktor memilih

laporan

penerimaan kas

Sistem ini akan menampilkan informasi data user

Sistem ini akan menampilkan informasi laporan

penyewaan

Sistem ini akan menampilkan informasi laporan

penerimaan kas

Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa

yang diinginkan

3.3.3. Activity Diagram

1. Activity Diagram Halaman Kasir

Page 12: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

31

Gambar III.5.

Activity Diagram Halaman Kasir

act Activ ity Usulan Kasir

SistemKasir

Mulai

Melakukan Login Tampil Form Login

Input Kode User dan Password

Klik Tombol Login

Menampilkan Pesan Validasi

Selamat datang, ....

Kode User tidak

ditemukan!

Menu Master Menu Transaksi Menu Laporan Logout

Tampil Menu Utama

Tampil Menu Master

Data Pelanggan Data Lapanggan Data Perkiraan

Pilih Data Pelanggan

Tampil Form Data Pelanggan

Klik Cari

Cari Data

Data Belum AdaData Sudah Ada

Klik Tambah

Menampilkan Pesan Validasi

Data Berhasil Disimpan

Data Tidak Valid

TersimpanPilih Menu Transaksi Tampil Menu Transaksi

Penyewaan Jurnal

Pilih Transaksi

Input Nama Pelanggan, No Hp dan Alamat

Klik Simpan

Booking

Input Kode Pelanggan, Tgl

Pakai, Jam Masuk, Jam

Keluar, Kode Lapangan,

Uang DP

Klik Simpan

Menampilkan Pesan Validasi

Data Belum Lengkap Berhasil Disimpan

Tersimpan

Booking Tampil Form Booking

Penyewaan Tampil Form Penyewaan

Input Nomor Booking dan

Uang Bayar

Klik Simpan

Menampilkan Pesan Validasi

Berhasil Disimpan

TersimpanJurnal

Data Belum Lengkap

Menampilkan Form Jurnal

Masukkan Tanggal

Transaksi, Nomor

Transaksi Nama

Perkiraan

Klik Simpan

Menampilkan Pesan Validasi

Berhasil Disimpan

Tersimpan

Gagal Simpan

Utility

Pilih Menu Master

Selesai

Klik Tambah

Klik Tambah

Klik Tambah

Gagal Berhasil

Ada

Gagal

Salah

TidakAda

Benar

Gagal

Gagal

Berhasil

Berhasil

Berhasil

Page 13: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

32

2. Activity Diagram Halaman Pemilik

Gambar III.6.

Activity Diagram Halaman Pemilik

3.4. Desain

3.4.1. Entity Relationship Diagram (ERD)

act Activ ity Usulan Pemilik

Pemilik Sistem

Mulai

Melakukan Login Tampil Form Login

Input Kode User dan Password

Klik Tombol Login

Menampilkan Pesan Validasi

Selamat datang, ....Kode User tidak

ditemukan!

Menu Laporan

Laporan Penyewaan Laporan Penerimaan Kas

Pilih Laporan

Tampil Form Laporan

Pilih Periode

Cetak

Tampil Menu Utama Pemilik

Menu Master

Pilih Menu Master Tampil Menu Master

Data User

Tampil Form Data User

Pilih Data User

Klik Cari

Cari Data User

Data Tidak AdaData Sudah Ada

Klik Tambah

Input Kode User, Nama

User, Hak Akses, dan

Password

Klik Simpan

Menampilkan Pesan Validasi

Data Berhasil Disimpan

Data Tidak Valid

Pilih Menu Laporan Tampil Menu Laporan

Menampilkan Printout Laporan

Selesai

Selesai

Selesai

Gagal

Benar

Berhasil

Tidak Ada

Salah

Ada

Page 14: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

33

Gambar III.7.

Entity Relationship Diagram (ERD)

3.4.2. Logical Record Structure (LRS)

Gambar III.8.

Logical Record Structure (LRS)

erd ERD Usulan

data_lapangan

kd_pelanggannm_pelanggan

alamatno_hp

data_lapangan

kd_lap nm_lap

jenis_lap

data_user

kd_user nm_user

hak_akses password

penyewaan

kd_booking

kd_lap

jam_sewa_masuk

jam_sewa_keluarlama_sewa

hari_libur

diskon_sewa

total_sewa

uang_byr

kd_user

no_trans

tgl_sewa

kd_pelanggan

Jurnal

no_jurnal tgl_junal

no_trans

jurnal_detail

id

no_jurnaltgl_jurnal

kreditdebet

data_perkiraan

kd_perkiraan nm_perkiraan

jenis_perkiraan

booking

kd_booking

tgl_booking kd_pelanggan

tgl_pakai

jam_masuk

jam_keluardiskon

hari_libur

kd_lapuang_dp

kd_user

1

menginput

M

1terdapat

M

1

memiliki

1

1membuat

1

M

mengecek

1

1

membayar

M

1Sewa

M

class LRS

data_pelanggan

- alamat

- kd_pelanggan PK

- nm_pelanggan

- no_hp

data_lapangan

- jenis_lap

- kd_lap PK

- nm_lap

data_user

- hak_akses

- kd_user PK

- nm_user

- password

booking

- diskon

- jam_keluar

- jam_masuk

- kd_booking PK

- kd_lap

- kd_pelanggan

- kd_user

- tgl_booking

- tgl_pakai

penyewaan

- diskon_sewa

- hari_libur

- jam_sewa_keluar

- jam_sewa_masuk

- kd_booking

- kd_lap

- kd_pelanggan

- kd_user

- lama_sewa

- no_trans PK

- tgl_sewa

- total_sewa

- uang_byr

jurnal

- no_jurnal PK

- no_trans

- tgl_jurnal

jurnal_detail

- debet

- id PK

- kd_perkiraan

- kredit

- no_jurnal

data_perkiraan

- jenis_perkiraan

- kd_perkiraan PK

- nm_perkiraan

1:M

1:M

1:M

1:1

M:1

1:M

1:1

Page 15: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

34

3.4.3. Spesifikasi File

Spesifikasi file yang digunakan dalam rancang bangun sistem penyewaan

lapangan futsal pada PT. Bywi Jaya Sejahtera terdiri dari :

1. Spesfikasi File Data Pelanggan

Nama Database : futsaldb

Nama File : Data Pelanggan

Tipe File : Master

Akses File : Random

Panjang Record : 173 Karakter

Field Key : kd_pelanggan

Tabel III.4.

Spesifikasi File Data Pelanggan

No Elemen Data Akronim Tipe Panjang Keterangan

1 Kode Pelanggan kd_pelanggan varchar 8 Primary Key

2 Nama Pelanggan nm_pelanggan varchar 50

3 Alamat alamat varchar 100

4 no hp no_hp varchar 15

2. Spesfikasi File Data Lapangan

Nama Database : futsaldb

Nama File : Data Lapangan

Tipe File : Master

Akses File : Random

Panjang Record : 13 Karakter

Field Key : kd_lap

Page 16: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

35

Tabel III.5.

Spesifikasi File Data Lapangan

No Elemen Data Akronim Tipe Panjang Keterangan

1 Kode Lapangan kd_lap varchar 7 Primary Key

2 Jenis Lapangan jenis_lap varchar 6

3 Tarif Tarif double

3. Spesfikasi File Data Perkiraan

Nama Database : futsaldb

Nama File : Data Perkiraan

Tipe File : Master

Akses File : Random

Panjang Record : 38 Karakter

Field Key : kd_perkiraan

Tabel III.6.

Spesifikasi File Data Perkiraan

No Elemen Data Akronim Tipe Panjang Keterangan

1 Kode Perkiraan kd_perkiraan varchar 8 Primary Key

2 Nama Perkiraan nm_perkiraan varchar 20

3 Jenis Perkiraan jenis_perkiraan varchar 10

4. Spesfikasi File Data User

Nama Database : futsaldb

Nama File : Data User

Tipe File : Master

Page 17: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

36

Akses File : Random

Panjang Record : 85 Karakter

Field Key : kd_user

Tabel III.7.

Spesifikasi File Data User

No Elemen Data Akronim Tipe Panjang Keterangan

1 Kode User kd_user varchar 8 Primary Key

2 Nama User nm_user varchar 50

3 Hak Akses hak_akses varchar 7

4 Password password varchar 20

5. Spesfikasi File Booking

Nama Database : futsaldb

Nama File : Booking

Tipe File : Transaksi

Akses File : Random

Panjang Record : 31 Karakter

Field Key : kd_booking

Page 18: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

37

Tabel III.8.

Spesifikasi File Booking

No Elemen Data Akronim Tipe Panjang Keterangan

1 Kode Booking kd_booking varchar 8 Primary Key

2 Tgl Booking tgl_booking date

3 Kode Pelanggan kd_pelanggan varchar 8

4 Tgl Pakai tgl_pakai time

5 Jam Masuk jam_msk time

6 Jam Keluar jam_keluar time

7 Diskon Diskon double

8 Kode Lapangan kd_lap varchar 7

9 Hari Libur hari_libur double

10 Uang DP uang_dp double

11 Kode User kd_user varchar 8

6. Spesfikasi File Penyewaan

Nama Database : futsaldb

Nama File : Penyewaan

Tipe File : Transaksi

Akses File : Random

Panjang Record : 39 Karakter

Field Key : no_trans

Page 19: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

38

Tabel III.9.

Spesifikasi File Penyewaan

No Elemen Data Akronim Tipe Panjang Keterangan

1 Nomor Transaksi no_trans varchar 9 Primary Key

2 Tgl Sewa tgl_sewa Date

3 Kode Pelanggan kd_pelanggan varchar 8

4 Kode Booking kd_booking varchar 8

5 Kode Lapangan kd_lap varchar 7

6 Jam Sewa Masuk jam_sewa_masuk Time

7 Jam Sewa Keluar jam_sewa_keluar Time

8 Lama Sewa lama_sewa Double

9 Hari Libur hari_libur Double

10 Diskon Sewa diskon_sewa double

11 Total Sewa total_sewa double

12 Uang Bayar uang_byr double

13 Kode User kd_user varchar 8

7. Spesfikasi File Jurnal

Nama Database : futsaldb

Nama File : Jurnal

Tipe File : Transaksi

Akses File : Random

Panjang Record : 19 Karakter

Field Key : kd_jurnal

Page 20: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

39

Tabel III.10.

Spesifikasi File Jurnal

No Elemen Data Akronim Tipe Panjang Keterangan

1 Nomor jurnal no_jurnal varchar 10 Primary Key

2 Tgl jurnal tgl_jurnal Date

3 Nomor Transaksi no_trans varchar 9

8. Spesfikasi File Jurnal Detail

Nama Database : futsaldb

Nama File : Jurnal

Tipe File : Transaksi

Akses File : Random

Panjang Record : 29 Karakter

Field Key : id

Tabel III.11.

Spesifikasi File Jurnal Detail

No Elemen Data Akronim Tipe Panjang Keterangan

1 Id Id Int 11 Primary Key

2 Nomor Jurnal no_jurnal Varchar 10

3 Kode Perkiraan kd_perkiraan Varchar 8

4 Debet Debet Double

5 Kredit Kredit double

Page 21: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

40

3.4.4. Squence Diagram

A. Sequence Diagram Login

Gambar III.9.

Sequence Diagram Login

B. Sequence Diagram Data Pelanggan

Gambar III.10.

Sequence Diagram Data Pelanggan

sd Login

Kasir

Login Proses Kasir Menu Utama

alt

Display()

Password salah()

Set Kode User dan Password()

Kode User tidak ditemukan()

Input kode User dan Password()

Pesan Validasi ()

Get Kode User dan Password()

sd Data Pelanggan

Kasir

Menu Utama Menu Master Data Pelanggan Proses Data Pelanggan

alt

Data Tidak Valid()

Display kd_pelanggan()

Data Berhasil Disimpan()

Display()

Set Save kd_pelanggan,

nm_pelanggan, no_hp, alamat()

Pilih()

Save()

Display()

Display alamat()

Pesan Validasi()

Display no_hp()

Set Save kd_pelanggan,

nm_pelanggan, no_hp, alamat()

Get kd_pelanggan()

Display nm_pelanggan()

Get kd_pelanggan()

Page 22: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

41

C. Sequence Diagram Booking

Gambar III.11.

Sequence Diagram Booking

sd Transaksi Booking

Kasir

Menu Utama Menu Transaksi Transaksi Booking Proses Data Pelanggan Data Lapangan Transaksi Booking

alt

Pilih()

Display nm_lap()

Set kd_pelanggan()

Display tgl_booking()

Data Belum Lengkap()

Set kd_lapangan()

Get kd_booking()

Display kd_pelanggan()

Pesan Validasi()

Display kd_lap()

Get kd_booking()

Get kd_pelanggan()

Set tgl_pakai()

Set uang_dp()

Set tgl_pakai()

Set uang_dp()

Set jam_masuk()

Set jam_masuk()

Display()

Display no_hp()

Display tarif()

Display()

Berhasil Disimpan()

Get kd_lap()

Display kd_user()

Set kd_lap()

Display kd_booking()

Display nm_pelanggan()

Set Save kd_booking, tgl_booking,

kd_user, kd_pelanggan, tgl_pakai,

jam_masuk, jam_keluar, kd_lap,

uang_dp()

Set jam_keluar()

Set Save kd_booking, tgl_booking,

kd_user, kd_pelanggan, tgl_pakai,

jam_masuk, jam_keluar, kd_lap,

uang_dp()

Set jam_keluar()

Display alamat()

Save()

Set kd_pelanggan()

Page 23: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

42

D. Sequence Diagram Penyewaan

Gambar III.12.

Sequence Diagram Penyewaan

sd Transaksi Penyewaan

Kasir

Menu Utama Menu Transaksi Transaksi

Penyewaan

Proses Transaksi Booking Transaksi

Penyewaan

alt

Display kd_lap()

Display()

Display tgl_sewa()

Set uang_byr()

Display jam_masuk()

Set kd_booking()

Set kd_booking()

Pilih()

Get kd_booking()

Get no_trans()

Display jam_keluar()

Save()

Display kd_pelanggan()

Data Belum Lengkap()

Display tgl_booking()

Set uang_byr()

Display tgl_pakai()

Pesan Validasi()

Display no_trans()

Get no_trans()

Berhasil Disimpan()

Set Save no_trans, tgl_sewa,

kd_booking, uang_byr()

Display total_sewa()

Display lama_sewa()

Set Save no_trans, tgl_sewa,

kd_booking, uang_byr()

Display()

Display kd_user()

Page 24: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

43

3.4.5. Deployment Diagram

Gambar III.13.

Deployment Diagram Sistem Penyewaan Futsal

deployment Diagram

Main

«device»

database

<<DBMS>>

MY SQL

futsal_db

«device»

<<Application>>

FutsalProject

NetBeans IDE 8.2

Page 25: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

44

3.4.6. User Interface

Gambar III.14.

User Interface Form Login Kasir

Gambar III.15.

User Interface Form Menu Utama Kasir

Page 26: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

45

Gambar III.16.

User Interface Form Data Pelanggan

Gambar III.17.

User Interface Form Data Lapangan

Page 27: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

46

Gambar III.18.

User Interface Form Data Perkiraan

Gambar III.19.

User Interface Form Booking

Page 28: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

47

Gambar III.20.

User Interface Form Penyewaan

Gambar III.21.

User Interface Form Jurnal

Page 29: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

48

Gambar III.22.

User Interface Laporan Penyewaan Kasir

Gambar III.23.

User Interface Laporan Penerimaan Kas Kasir

Page 30: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

49

Gambar III.24.

User Interface Back Up

Gambar III.25.

User Interface Form Login Pemilik

Page 31: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

50

Gambar III.26.

User Interface Form Menu Utama Pemilik

Gambar III.27.

User Interface Form Data User

Page 32: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

51

Gambar III.28.

User Interface Laporan Penyewaan Pemilik

Gambar III.29.

User Interface Laporan Penerimaan Kas Pemilik

Page 33: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

52

3.5. Implementasi

3.5.1. Code Generation

A. Booking

package futsalproject.form;

import futsalproject.FutsalProject;

import futsalproject.controller.BookingController;

import futsalproject.data.Booking;

import futsalproject.data.DataUser;

import java.awt.Component;

import java.awt.Font;

import java.awt.event.KeyEvent;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.List;

import java.util.Locale;

import javax.swing.JDesktopPane;

import javax.swing.JOptionPane;

import javax.swing.JTable;

import javax.swing.table.DefaultTableCellRenderer;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableCellRenderer;

public class FormBooking extends javax.swing.JInternalFrame {

DataUser userLogin = new DataUser();

Booking booking = new Booking();

BookingController bCont = new BookingController(FutsalProject.emf);

DefaultTableModel model;

boolean update;

/**

* Creates new form FormBooking

*/

public FormBooking(DataUser user) {

initComponents();

((javax.swing.plaf.basic.BasicInternalFrameUI)this.getUI()).setNorthPane(null);

this.setBorder(null);

model = new DefaultTableModel(){

@Override

public boolean isCellEditable(int row, int column) {

return false;

}

};

model.addColumn("Kode Booking");

model.addColumn("Tgl. Booking");

model.addColumn("Kode Pelanggan");

model.addColumn("Nama Pelanggan");

model.addColumn("Kode Lapangan");

model.addColumn("Tgl. Pakai");

model.addColumn("Jam Masuk");

model.addColumn("Jam Keluar");

tableBooking.getTableHeader().setFont(new Font("Tahoma Plain", Font.BOLD, 11));

showTableNotExistInPenyewaan(null);

renderTableTgl();

Page 34: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

53

renderTableJam();

userLogin = user;

}

private void showTableNotExistInPenyewaan(Date tgl){

model.getDataVector().removeAllElements();

model.fireTableDataChanged();

List<Object[]> list = bCont.findAllBookingNotExistsInPenyewaan(tgl);

for(Object[] obj : list){

model.addRow(obj);

}

tableBooking.setModel(model);

}

private void showTableExistInPenyewaan(Date tgl){

model.getDataVector().removeAllElements();

model.fireTableDataChanged();

List<Object[]> list = bCont.findAllBookingIsExistInPenyewaan(tgl);

for(Object[] obj : list){

model.addRow(obj);

}

tableBooking.setModel(model);

}

private void showTableAllBooking(Date tgl){

model.getDataVector().removeAllElements();

model.fireTableDataChanged();

List<Object[]> list = bCont.findAllBooking(tgl);

for(Object[] obj : list){

model.addRow(obj);

}

tableBooking.setModel(model);

}

private void cariTable(String cari){

List<Object[]> listUser = bCont.searchBooking(cari);

if(listUser.size() == 0){

JOptionPane.showMessageDialog(null, "Data tidak ditemukan!");

}else{

if(cari.isEmpty()){

showTableNotExistInPenyewaan(null);

}else{

model.getDataVector().removeAllElements();

model.fireTableDataChanged();

for(Object[] obj : listUser){

model.addRow(obj);

}

tableBooking.setModel(model);

}

}

}

private void renderTableTgl(){

TableCellRenderer tbr = new DefaultTableCellRenderer(){

SimpleDateFormat sdf=new SimpleDateFormat("dd MMMM yyyy",

Locale.forLanguageTag("in-ID"));

public Component getTableCellRendererComponent(JTable table,

Page 35: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

54

Object value, boolean isSelected, boolean hasFocus,

int row, int column){

if(value instanceof Date){

value = sdf.format(value);

}

return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row,

column);

}

};

tableBooking.getColumnModel().getColumn(1).setCellRenderer(tbr);

tableBooking.getColumnModel().getColumn(5).setCellRenderer(tbr);

}

private void renderTableJam(){

TableCellRenderer tbr = new DefaultTableCellRenderer(){

SimpleDateFormat sdf=new SimpleDateFormat("kk:mm", Locale.forLanguageTag("in-

ID"));

public Component getTableCellRendererComponent(JTable table,

Object value, boolean isSelected, boolean hasFocus,

int row, int column){

if(value instanceof Date){

value = sdf.format(value);

}

return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row,

column);

}

};

tableBooking.getColumnModel().getColumn(6).setCellRenderer(tbr);

tableBooking.getColumnModel().getColumn(7).setCellRenderer(tbr);

}

/**

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

btnTambah = new javax.swing.JButton();

btnUpdate = new javax.swing.JButton();

btnDetail = new javax.swing.JButton();

jLabel5 = new javax.swing.JLabel();

jSeparator1 = new javax.swing.JSeparator();

jLabel6 = new javax.swing.JLabel();

jScrollPane1 = new javax.swing.JScrollPane();

tableBooking = new javax.swing.JTable();

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

jLabel7 = new javax.swing.JLabel();

jdcTanggal = new com.toedter.calendar.JDateChooser();

btnCari = new javax.swing.JButton();

jPanel1.setBackground(new java.awt.Color(0, 184, 148));

jPanel2.setBackground(new java.awt.Color(255, 255, 255));

Page 36: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

55

jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2,

javax.swing.BoxLayout.LINE_AXIS));

btnTambah.setFont(new java.awt.Font("Segoe UI", 0, 12)); // NOI18N

btnTambah.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Plus

Math_20px.png"))); // NOI18N

btnTambah.setText("Tambah");

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

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

btnTambahActionPerformed(evt);

}

});

jPanel2.add(btnTambah);

btnUpdate.setFont(new java.awt.Font("Segoe UI", 0, 12)); // NOI18N

btnUpdate.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Edit

File_20px.png"))); // NOI18N

btnUpdate.setText("Update");

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

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

btnUpdateActionPerformed(evt);

}

});

jPanel2.add(btnUpdate);

btnDetail.setFont(new java.awt.Font("Segoe UI", 0, 12)); // NOI18N

btnDetail.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Check

File_20px_5.png"))); // NOI18N

btnDetail.setText("Lihat Detail");

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

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

btnDetailActionPerformed(evt);

}

});

jPanel2.add(btnDetail);

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

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

jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel5.setText("Form Booking");

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

jLabel6.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel6.setText("Tampilkan:");

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

new Object [][] {

},

new String [] {

"Kode Booking", "Tgl. Bookingr", "Kode Pelanggan", "Nama Pelanggan", "Kode

Lapangan", "tgl. Pakai", "Jam Masuk", "Jam Keluar"

}

));

jScrollPane1.setViewportView(tableBooking);

Page 37: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

56

cmbTampil.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

cmbTampil.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "DP

belum lunas", "Sudah lunas", "Semua booking" }));

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

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

cmbTampilActionPerformed(evt);

}

});

jLabel7.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel7.setText("Tanggal Pakai:");

jdcTanggal.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

btnCari.setFont(new java.awt.Font("Segoe UI", 0, 12)); // NOI18N

btnCari.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/images/Search_20px.png"))); // NOI18N

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

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

btnCariActionPerformed(evt);

}

});

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

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

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

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

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

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

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

.addComponent(jSeparator1)

.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 864,

Short.MAX_VALUE)

.addGroup(jPanel1Layout.createSequentialGroup()

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

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

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

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

.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 78,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

.addComponent(cmbTampil, javax.swing.GroupLayout.PREFERRED_SIZE, 141,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 92,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

.addComponent(jdcTanggal, javax.swing.GroupLayout.PREFERRED_SIZE, 154,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

.addComponent(btnCari, javax.swing.GroupLayout.PREFERRED_SIZE, 33,

javax.swing.GroupLayout.PREFERRED_SIZE)))

Page 38: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

57

.addContainerGap())

);

jPanel1Layout.setVerticalGroup(

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

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

jPanel1Layout.createSequentialGroup()

.addComponent(jLabel5)

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

.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

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

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

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

.addGroup(jPanel1Layout.createSequentialGroup()

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

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

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

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

.addComponent(jLabel6)

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

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

.addComponent(jLabel7)))

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

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(0, 0, Short.MAX_VALUE)

.addComponent(btnCari)))

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

.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 470,

Short.MAX_VALUE)

.addContainerGap())

);

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

}// </editor-fold>

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

int baris = tableBooking.getSelectedRow();

if(baris == -1){

JOptionPane.showMessageDialog(null, "Pilih data yang mau dilihat!");

}else{

booking = bCont.findOneBooking(tableBooking.getValueAt(baris, 0).toString());

Page 39: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

58

update = false;

FormBookingTambah fbt = new FormBookingTambah(userLogin, booking, update);

JDesktopPane desktopPane = getDesktopPane();

desktopPane.add(fbt);

fbt.setVisible(true);

this.dispose();

}

}

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

booking = null;

update = false;

FormBookingTambah fbt = new FormBookingTambah(userLogin, booking, update);

JDesktopPane desktopPane = getDesktopPane();

desktopPane.add(fbt);

fbt.setVisible(true);

this.dispose();

}

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

String filter = cmbTampil.getSelectedItem().toString();

if(filter.equalsIgnoreCase("DP belum lunas")){

showTableNotExistInPenyewaan(jdcTanggal.getDate());

}else if(filter.equalsIgnoreCase("Sudah lunas")){

showTableExistInPenyewaan(jdcTanggal.getDate());

}else if(filter.equalsIgnoreCase("Semua booking")){

showTableAllBooking(jdcTanggal.getDate());

}

}

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

String filter = cmbTampil.getSelectedItem().toString();

if(filter.equalsIgnoreCase("DP belum lunas")){

showTableNotExistInPenyewaan(null);

}else if(filter.equalsIgnoreCase("Sudah lunas")){

showTableExistInPenyewaan(null);

}else if(filter.equalsIgnoreCase("Semua booking")){

showTableAllBooking(null);

}

}

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

int baris = tableBooking.getSelectedRow();

if(baris == -1){

JOptionPane.showMessageDialog(null, "Pilih data yang mau diupdate!");

}else{

booking = bCont.findOneBookingIsExistInPenyewaan(tableBooking.getValueAt(baris,

0).toString());

if(booking == null){

booking = bCont.findOneBooking(tableBooking.getValueAt(baris, 0).toString());

update = true;

FormBookingTambah fbt = new FormBookingTambah(userLogin, booking, update);

JDesktopPane desktopPane = getDesktopPane();

desktopPane.add(fbt);

fbt.setVisible(true);

this.dispose();

}else{

Page 40: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

59

JOptionPane.showMessageDialog(null, "Update tidak berlaku, booking ini telah

lunas!");

}

}

}

// Variables declaration - do not modify

private javax.swing.JButton btnCari;

private javax.swing.JButton btnDetail;

private javax.swing.JButton btnTambah;

private javax.swing.JButton btnUpdate;

private javax.swing.JComboBox<String> cmbTampil;

private javax.swing.JLabel jLabel5;

private javax.swing.JLabel jLabel6;

private javax.swing.JLabel jLabel7;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JSeparator jSeparator1;

private com.toedter.calendar.JDateChooser jdcTanggal;

private javax.swing.JTable tableBooking;

// End of variables declaration

}

B. Penyewaan

package futsalproject.form;

import futsalproject.FutsalProject;

import futsalproject.controller.BookingController;

import futsalproject.controller.DataLapanganController;

import futsalproject.controller.DataPelangganController;

import futsalproject.controller.LaporanController;

import futsalproject.controller.PenyewaanController;

import futsalproject.data.Booking;

import futsalproject.data.DataLapangan;

import futsalproject.data.DataPelanggan;

import futsalproject.data.Penyewaan;

import java.awt.event.KeyEvent;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import java.util.Locale;

import javax.swing.DefaultComboBoxModel;

import javax.swing.JDesktopPane;

import javax.swing.JOptionPane;

public class FormSewa extends javax.swing.JInternalFrame {

Penyewaan penyewaan = new Penyewaan();

Booking booking = new Booking();

DataPelanggan pelanggan = new DataPelanggan();

DataLapangan lapangan = new DataLapangan();

BookingController bCont = new BookingController(FutsalProject.emf);

Page 41: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

60

PenyewaanController sewaCont = new PenyewaanController(FutsalProject.emf);

DataPelangganController pCont = new DataPelangganController(FutsalProject.emf);

DataLapanganController lCont = new DataLapanganController(FutsalProject.emf);

LaporanController lapCont = new LaporanController(FutsalProject.emf);

SimpleDateFormat sdf = new SimpleDateFormat("dd MMMM yyyy",

Locale.forLanguageTag("id-ID"));

DateFormat df = new SimpleDateFormat("HH:mm");

double totalTarif, totalJam;

long hargaMalam;

long hargaSore;

long jamMalam;

long jamSore;

double diskon;

/**

* Creates new form FormSewa

*/

public FormSewa(Penyewaan penyewaan) {

initComponents();

((javax.swing.plaf.basic.BasicInternalFrameUI)this.getUI()).setNorthPane(null);

this.setBorder(null);

this.penyewaan = penyewaan;

tidakAktif();

comboBoking();

validasiSewa();

}

private void tidakAktif(){

txtNoTrans.setEnabled(false);

cmbKodeBooking.setEnabled(false);

txtTglBooking.setEnabled(false);

txtTglSewa.setEnabled(false);

txtKodeLapangan.setEnabled(false);

txtKodePelanggan.setEnabled(false);

txtNamaPelanggan.setEnabled(false);

txtJenisLapangan.setEnabled(false);

txtJamMasuk.setEnabled(false);

txtJamKeluar.setEnabled(false);

txtLamaSewa.setEnabled(false);

txtDiskonSewa.setEnabled(false);

txtHariLibur.setEnabled(false);

txtTotalSewa.setEnabled(false);

txtUangDp.setEnabled(false);

txtSisaSewa.setEnabled(false);

txtUangBayar.setEnabled(false);

}

private void validasiSewa(){

if(penyewaan == null){

txtUangBayar.setEnabled(true);

txtNoTrans.setText(sewaCont.kodeOtomatis());

txtTglSewa.setText(sdf.format(new Date()));

cmbKodeBooking.setEnabled(true);

btnCetak.setVisible(false);

}else{

btnSimpan.setEnabled(false);

Page 42: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

61

txtNoTrans.setText(penyewaan.getNoTrans());

txtTglSewa.setText(sdf.format(penyewaan.getTglSewa()));

dataBooking();

validasiTarifLapangan();

txtLamaSewa.setText(String.valueOf(totalJam));

txtTotalSewa.setText(String.valueOf(totalTarif - diskonMember()));

double dp = Double.parseDouble(txtUangDp.getText());

txtSisaSewa.setText(String.valueOf(totalTarif - dp));

txtUangBayar.setText(String.valueOf(penyewaan.getUangByr()));

}

}

private void comboBoking(){

if(penyewaan == null){

List<Object[]> listBooking = bCont.findAllBooking(null);

List<Object> listKode = new ArrayList<>();

for(Object[] obj : listBooking){

listKode.add(obj[0]);

}

cmbKodeBooking.setModel(new DefaultComboBoxModel(listKode.toArray()));

}else{

Object[] obj = {penyewaan.getKdBooking()};

cmbKodeBooking.setModel(new DefaultComboBoxModel(obj));

}

}

private void dataBooking(){

if(penyewaan == null){

booking = bCont.findOneBooking(cmbKodeBooking.getSelectedItem().toString());

}else{

booking = bCont.findOneBooking(penyewaan.getKdBooking());

}

pelanggan = pCont.findOneDataPelanggan(booking.getKdPelanggan());

lapangan = lCont.findOneDataLapangan(booking.getKdLap());

txtTglBooking.setText(sdf.format(booking.getTglBooking()));

txtKodePelanggan.setText(booking.getKdPelanggan());

txtNamaPelanggan.setText(pelanggan.getNmPelanggan());

txtKodeLapangan.setText(booking.getKdLap());

txtJenisLapangan.setText(lapangan.getJenisLap());

txtJamMasuk.setText(df.format(booking.getJamMasuk()));

txtJamKeluar.setText(df.format(booking.getJamKeluar()));

txtHariLibur.setText(String.valueOf(booking.getHariLibur()));

txtUangDp.setText(String.valueOf(booking.getUangDp()));

}

private void validasiTarifLapangan(){

try{

SimpleDateFormat hr = new SimpleDateFormat("HH:mm");

DateFormat df = new SimpleDateFormat("HH:mm");

Date jamMasuk = df.parse(txtJamMasuk.getText());

Date jamKeluar = df.parse(txtJamKeluar.getText());

Date jam6=(hr.parse("06:00"));

Date jam15=(hr.parse("15:00"));

Date jam18=(hr.parse("18:00"));

Date jam24=(hr.parse("24:00"));

hargaMalam = 80000;

Page 43: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

62

hargaSore = 25000;

jamMalam = 0;

jamSore = 0;

// jam malam 18:00 - 24:00

if(jamMasuk.compareTo(jam18) == 0 || jamMasuk.compareTo(jam18) == 1){

if(jamKeluar.compareTo(jam24) == -1 || jamKeluar.compareTo(jam24) == 0){

jamMalam = (jamKeluar.getTime() - jamMasuk.getTime()) / (60*60*1000);

hargaMalam += lapangan.getTarif();

totalTarif = hargaMalam * jamMalam;

totalJam = jamMalam;

}

return;

// jam sore 15:00 - 18:00

}else if(jamMasuk.compareTo(jam15) == 0 || jamMasuk.compareTo(jam15) == 1){

if(jamKeluar.compareTo(jam18) == -1 || jamKeluar.compareTo(jam18) == 0){

jamSore = (jamKeluar.getTime() - jamMasuk.getTime()) / (60*60*1000);

hargaSore += lapangan.getTarif();

totalTarif = hargaSore * jamSore;

totalJam = jamSore;

}

else if(jamKeluar.compareTo(jam24) == -1 || jamKeluar.compareTo(jam24) == 0){

jamSore = (jam18.getTime() - jamMasuk.getTime()) / (60*60*1000);

jamMalam = (jamKeluar.getTime() - jam18.getTime()) / (60*60*1000);

hargaSore += lapangan.getTarif() * jamSore;

hargaMalam += lapangan.getTarif() * jamMalam;

totalTarif = hargaSore + hargaMalam;

totalJam = jamSore + jamMalam ;

}

return;

// jam pagi 06:00 - 15:00

}if(jamMasuk.compareTo(jam6) == 0 || jamMasuk.compareTo(jam6) == 1){

if(jamKeluar.compareTo(jam15) == -1 || jamKeluar.compareTo(jam15) == 0){

long x = (jamKeluar.getTime() - jamMasuk.getTime()) / (60*60*1000);

totalJam = x;

totalTarif = lapangan.getTarif() * x;

}

else if(jamKeluar.compareTo(jam18) == -1 || jamKeluar.compareTo(jam18) == 0){

long x = (jam15.getTime() - jamMasuk.getTime()) / (60*60*1000);

jamSore = (jamKeluar.getTime() - jam15.getTime()) / (60*60*1000);

totalJam = x + jamSore;

x *= lapangan.getTarif();

hargaSore += lapangan.getTarif() * jamSore;

totalTarif = x + hargaSore;

}

else if(jamKeluar.compareTo(jam24) == -1 || jamKeluar.compareTo(jam24) == 0){

long x = (jam15.getTime() - jamMasuk.getTime()) / (60*60*1000);

jamSore = (jam18.getTime() - jam15.getTime()) / (60*60*1000);

jamMalam = (jamKeluar.getTime() - jam18.getTime()) / (60*60*1000);

totalJam = x + jamSore + jamMalam;

x *= lapangan.getTarif();

hargaSore += lapangan.getTarif() * jamSore;

hargaMalam += lapangan.getTarif() * jamMalam;

totalTarif = x + hargaSore + hargaMalam;

}

Page 44: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

63

}

}catch(Exception e){

e.printStackTrace();

}

}

private double diskonMember(){

if(txtKodePelanggan.getText().isEmpty()){

diskon = 0;

}else{

try {

List<Penyewaan> list = sewaCont.searchMemberEksis(txtKodePelanggan.getText(),

sdf.parse(txtTglBooking.getText()));

if(!list.isEmpty()){

diskon = totalTarif * (10.0/100);

}else{

diskon = 0;

}

} catch (Exception e) {

e.printStackTrace();

}

}

txtDiskonSewa.setText(String.valueOf(diskon));

return diskon;

}

private void simpan(){

if(txtUangBayar.getText().isEmpty() || txtTotalSewa.getText().isEmpty()){

JOptionPane.showMessageDialog(null, "Data belum lengkap!");

}else{

double harga = Double.parseDouble(txtSisaSewa.getText());

double ubay = Double.parseDouble(txtUangBayar.getText());

if(ubay < (harga)){

JOptionPane.showMessageDialog(null, "Uang bayar kurang!");

}else{

try {

penyewaan = new Penyewaan();

penyewaan.setDiskonSewa(Double.parseDouble(txtDiskonSewa.getText()));

penyewaan.setHariLibur(Double.parseDouble(txtHariLibur.getText()));

penyewaan.setJamSewaKeluar(df.parse(txtJamKeluar.getText()));

penyewaan.setJamSewaMasuk(df.parse(txtJamMasuk.getText()));

penyewaan.setKdBooking(cmbKodeBooking.getSelectedItem().toString());

penyewaan.setKdLap(txtKodeLapangan.getText());

penyewaan.setKdPelanggan(txtKodePelanggan.getText());

penyewaan.setKdUser(booking.getKdUser());

penyewaan.setLamaSewa(Double.parseDouble(txtLamaSewa.getText()));

penyewaan.setNoTrans(txtNoTrans.getText());

penyewaan.setTglSewa(sdf.parse(txtTglSewa.getText()));

penyewaan.setTotalSewa(Double.parseDouble(txtTotalSewa.getText()));

penyewaan.setUangByr(Double.parseDouble(txtUangBayar.getText()));

sewaCont.save(penyewaan);

JOptionPane.showMessageDialog(null, "Data berhasil disimpan!");

JOptionPane.showMessageDialog(null, "Data berhasil disimpan!");

if(JOptionPane.showConfirmDialog(null, "Cetak kwitansi?", "Konfirmasi",

JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){

btnCetakActionPerformed(null);

}

btnKembaliActionPerformed(null);

Page 45: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

64

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

/**

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

btnSimpan = new javax.swing.JButton();

btnKembali = new javax.swing.JButton();

jLabel5 = new javax.swing.JLabel();

jSeparator1 = new javax.swing.JSeparator();

jPanel3 = new javax.swing.JPanel();

txtNoTrans = new javax.swing.JTextField();

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

jLabel6 = new javax.swing.JLabel();

jLabel2 = new javax.swing.JLabel();

txtTglBooking = new javax.swing.JTextField();

jLabel1 = new javax.swing.JLabel();

jLabel3 = new javax.swing.JLabel();

txtTglSewa = new javax.swing.JTextField();

jPanel4 = new javax.swing.JPanel();

txtKodeLapangan = new javax.swing.JTextField();

jLabel8 = new javax.swing.JLabel();

jLabel9 = new javax.swing.JLabel();

txtJenisLapangan = new javax.swing.JTextField();

jLabel4 = new javax.swing.JLabel();

txtKodePelanggan = new javax.swing.JTextField();

jLabel7 = new javax.swing.JLabel();

txtNamaPelanggan = new javax.swing.JTextField();

jPanel5 = new javax.swing.JPanel();

txtUangBayar = new javax.swing.JTextField();

jLabel17 = new javax.swing.JLabel();

jLabel16 = new javax.swing.JLabel();

jLabel15 = new javax.swing.JLabel();

txtSisaSewa = new javax.swing.JTextField();

txtUangDp = new javax.swing.JTextField();

jSeparator3 = new javax.swing.JSeparator();

jPanel6 = new javax.swing.JPanel();

txtJamKeluar = new javax.swing.JTextField();

jLabel12 = new javax.swing.JLabel();

txtLamaSewa = new javax.swing.JTextField();

jLabel13 = new javax.swing.JLabel();

txtDiskonSewa = new javax.swing.JTextField();

txtHariLibur = new javax.swing.JTextField();

jLabel10 = new javax.swing.JLabel();

jLabel18 = new javax.swing.JLabel();

Page 46: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

65

txtJamMasuk = new javax.swing.JTextField();

jLabel14 = new javax.swing.JLabel();

txtTotalSewa = new javax.swing.JTextField();

jLabel11 = new javax.swing.JLabel();

btnCetak = new javax.swing.JButton();

jPanel1.setBackground(new java.awt.Color(0, 184, 148));

jPanel2.setBackground(new java.awt.Color(255, 255, 255));

jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2,

javax.swing.BoxLayout.LINE_AXIS));

btnSimpan.setFont(new java.awt.Font("Segoe UI", 0, 12)); // NOI18N

btnSimpan.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Check

File_20px_5.png"))); // NOI18N

btnSimpan.setText("Simpan");

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

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

btnSimpanActionPerformed(evt);

}

});

jPanel2.add(btnSimpan);

btnKembali.setFont(new java.awt.Font("Segoe UI", 0, 12)); // NOI18N

btnKembali.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/images/Undo_20px.png"))); // NOI18N

btnKembali.setText("Kembali");

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

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

btnKembaliActionPerformed(evt);

}

});

jPanel2.add(btnKembali);

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

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

jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel5.setText("Form Penyewaan");

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

jPanel3.setBackground(new java.awt.Color(0, 184, 148));

jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "No. 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

txtNoTrans.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

cmbKodeBooking.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

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

cmbKodeBookingActionPerformed(evt);

}

});

jLabel6.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

Page 47: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

66

jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel6.setText("Kode Booking");

jLabel2.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel2.setText("Tgl. Booking");

txtTglBooking.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

jLabel1.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel1.setText("No. Transaksi");

jLabel3.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel3.setText("Tgl. Sewa");

txtTglSewa.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jPanel3.setLayout(jPanel3Layout);

jPanel3Layout.setHorizontalGroup(

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

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

jPanel3Layout.createSequentialGroup()

.addContainerGap()

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

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

jPanel3Layout.createSequentialGroup()

.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 127,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(txtNoTrans, javax.swing.GroupLayout.PREFERRED_SIZE, 210,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

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

.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 127,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(txtTglSewa, javax.swing.GroupLayout.PREFERRED_SIZE, 210,

javax.swing.GroupLayout.PREFERRED_SIZE))

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

jPanel3Layout.createSequentialGroup()

.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 127,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(cmbKodeBooking,

javax.swing.GroupLayout.PREFERRED_SIZE, 211,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

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

.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 127,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

Page 48: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

67

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

210, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addContainerGap())

);

jPanel3Layout.setVerticalGroup(

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

.addGroup(jPanel3Layout.createSequentialGroup()

.addContainerGap()

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

.addComponent(jLabel1)

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

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

.addComponent(jLabel3)

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

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

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

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

.addComponent(jLabel6)

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

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

.addComponent(jLabel2)

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

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

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

);

jPanel4.setBackground(new java.awt.Color(0, 184, 148));

jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Data Pelanggan &

Lapangan", 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

txtKodeLapangan.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

jLabel8.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel8.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel8.setText("Kode Lapangan");

jLabel9.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel9.setText("Jenis Lapangan");

txtJenisLapangan.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

jLabel4.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel4.setText("Kode Pelanggan");

txtKodePelanggan.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

jLabel7.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

Page 49: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

68

jLabel7.setText("Nama Pelanggan");

txtNamaPelanggan.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);

jPanel4.setLayout(jPanel4Layout);

jPanel4Layout.setHorizontalGroup(

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

.addGroup(jPanel4Layout.createSequentialGroup()

.addGap(11, 11, 11)

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

.addGroup(jPanel4Layout.createSequentialGroup()

.addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 127,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(txtKodePelanggan,

javax.swing.GroupLayout.PREFERRED_SIZE, 210,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel4Layout.createSequentialGroup()

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

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

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

210, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel4Layout.createSequentialGroup()

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

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

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

210, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel4Layout.createSequentialGroup()

.addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 127,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(txtNamaPelanggan,

javax.swing.GroupLayout.PREFERRED_SIZE, 210,

javax.swing.GroupLayout.PREFERRED_SIZE)))

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

);

jPanel4Layout.setVerticalGroup(

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

.addGroup(jPanel4Layout.createSequentialGroup()

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

.addComponent(jLabel4)

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

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

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

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

.addComponent(jLabel7)

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

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

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

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

.addComponent(jLabel8)

Page 50: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

69

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

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

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

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

.addComponent(jLabel9)

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

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

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

);

jPanel5.setBackground(new java.awt.Color(0, 184, 148));

jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Pembayaran",

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

jPanel5.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

txtUangBayar.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N

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

txtUangBayar.setBorder(null);

txtUangBayar.setCaretColor(new java.awt.Color(255, 255, 255));

txtUangBayar.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR));

txtUangBayar.setOpaque(false);

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

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

txtUangBayarKeyPressed(evt);

}

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

txtUangBayarKeyTyped(evt);

}

});

jPanel5.add(txtUangBayar, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 90, 210,

30));

jLabel17.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel17.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel17.setText("Sisa Sewa");

jPanel5.add(jLabel17, new org.netbeans.lib.awtextra.AbsoluteConstraints(16, 62, 90, -1));

jLabel16.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel16.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel16.setText("Uang Bayar");

jPanel5.add(jLabel16, new org.netbeans.lib.awtextra.AbsoluteConstraints(16, 91, 90, 30));

jLabel15.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel15.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel15.setText("Uang DP");

jPanel5.add(jLabel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(16, 30, 90, -1));

txtSisaSewa.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

jPanel5.add(txtSisaSewa, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 60, 210, -

1));

txtUangDp.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

Page 51: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

70

jPanel5.add(txtUangDp, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 30, 210, -

1));

jPanel5.add(jSeparator3, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 120, 210,

10));

jPanel6.setBackground(new java.awt.Color(0, 184, 148));

jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Data Booking",

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

txtJamKeluar.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

jLabel12.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel12.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel12.setText("Diskon Sewa");

txtLamaSewa.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

jLabel13.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel13.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel13.setText("Lama Sewa");

txtDiskonSewa.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

txtHariLibur.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

jLabel10.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel10.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel10.setText("Jam Sewa Masuk");

jLabel18.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel18.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel18.setText("Hari Libur");

txtJamMasuk.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

jLabel14.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel14.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel14.setText("Total Sewa");

txtTotalSewa.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

jLabel11.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel11.setText("Jam Sewa Keluar");

javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);

jPanel6.setLayout(jPanel6Layout);

jPanel6Layout.setHorizontalGroup(

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

.addGroup(jPanel6Layout.createSequentialGroup()

Page 52: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

71

.addContainerGap()

.addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

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

jPanel6Layout.createSequentialGroup()

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

.addGroup(jPanel6Layout.createSequentialGroup()

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

127, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(txtJamKeluar,

javax.swing.GroupLayout.PREFERRED_SIZE, 210,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel6Layout.createSequentialGroup()

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

127, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(txtLamaSewa,

javax.swing.GroupLayout.PREFERRED_SIZE, 210,

javax.swing.GroupLayout.PREFERRED_SIZE)))

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

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

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

.addGroup(jPanel6Layout.createSequentialGroup()

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

127, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

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

210, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel6Layout.createSequentialGroup()

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

127, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(txtTotalSewa,

javax.swing.GroupLayout.PREFERRED_SIZE, 210,

javax.swing.GroupLayout.PREFERRED_SIZE))))

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

jPanel6Layout.createSequentialGroup()

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

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

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

210, javax.swing.GroupLayout.PREFERRED_SIZE)

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

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

.addComponent(jLabel12, javax.swing.GroupLayout.PREFERRED_SIZE, 127,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

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

210, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addContainerGap())

);

jPanel6Layout.setVerticalGroup(

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

.addGroup(jPanel6Layout.createSequentialGroup()

.addContainerGap()

Page 53: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

72

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

.addComponent(jLabel10)

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

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

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

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

.addComponent(jLabel12))

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

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

.addGroup(jPanel6Layout.createSequentialGroup()

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

.addComponent(jLabel11)

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

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

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

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

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

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

.addComponent(jLabel13)))

.addGroup(jPanel6Layout.createSequentialGroup()

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

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

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

.addComponent(jLabel18))

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

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

.addComponent(txtTotalSewa)

.addComponent(jLabel14))))

.addContainerGap())

);

btnCetak.setFont(new java.awt.Font("Segoe UI", 0, 12)); // NOI18N

btnCetak.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-print-

20.png"))); // NOI18N

btnCetak.setText("Cetak");

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

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

btnCetakActionPerformed(evt);

}

});

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

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

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

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

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

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

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

.addComponent(jSeparator1)

Page 54: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

73

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

jPanel1Layout.createSequentialGroup()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addGroup(jPanel1Layout.createSequentialGroup()

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

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

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

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

.addComponent(btnCetak))

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(0, 51, Short.MAX_VALUE)

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

false)

.addGroup(jPanel1Layout.createSequentialGroup()

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

384, javax.swing.GroupLayout.PREFERRED_SIZE)

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

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

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

.addComponent(jPanel6, javax.swing.GroupLayout.Alignment.TRAILING,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE)

.addComponent(jPanel3, javax.swing.GroupLayout.Alignment.TRAILING,

javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))))

.addGap(66, 66, 66)))

.addContainerGap())

);

jPanel1Layout.setVerticalGroup(

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

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

jPanel1Layout.createSequentialGroup()

.addComponent(jLabel5)

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

.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

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

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

.addComponent(btnCetak))

.addGap(18, 18, 18)

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

javax.swing.GroupLayout.PREFERRED_SIZE)

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

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

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

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

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

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

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

.addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, 156,

javax.swing.GroupLayout.PREFERRED_SIZE))

Page 55: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

74

.addContainerGap(43, Short.MAX_VALUE))

);

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

}// </editor-fold>

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

FormSewaDaftar fsd = new FormSewaDaftar();

JDesktopPane jd = getDesktopPane();

jd.add(fsd);

fsd.setVisible(true);

this.dispose();

}

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

simpan();

}

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

dataBooking();

validasiSewa();

validasiTarifLapangan();

txtLamaSewa.setText(String.valueOf(totalJam));

double hariLibur = Double.parseDouble(txtHariLibur.getText());

txtTotalSewa.setText(String.valueOf((totalTarif + hariLibur) - diskonMember()));

double dp = Double.parseDouble(txtUangDp.getText());

txtSisaSewa.setText(String.valueOf(totalTarif - dp));

txtUangBayar.requestFocus();

}

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

if(evt.getKeyCode() == KeyEvent.VK_ENTER){

btnSimpanActionPerformed(null);

}

}

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

lapCont.cetakPenyewaan(txtNoTrans.getText(), hargaSore, hargaMalam);

}

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

char c=evt.getKeyChar();

Page 56: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

75

if(!(Character.isDigit(c) || (c==KeyEvent.VK_BACK_SPACE) ||

c==KeyEvent.VK_DELETE)){

getToolkit().beep();

evt.consume();

}

}

// Variables declaration - do not modify

private javax.swing.JButton btnCetak;

private javax.swing.JButton btnKembali;

private javax.swing.JButton btnSimpan;

private javax.swing.JComboBox<String> cmbKodeBooking;

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

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

private javax.swing.JPanel jPanel3;

private javax.swing.JPanel jPanel4;

private javax.swing.JPanel jPanel5;

private javax.swing.JPanel jPanel6;

private javax.swing.JSeparator jSeparator1;

private javax.swing.JSeparator jSeparator3;

private javax.swing.JTextField txtDiskonSewa;

private javax.swing.JTextField txtHariLibur;

private javax.swing.JTextField txtJamKeluar;

private javax.swing.JTextField txtJamMasuk;

private javax.swing.JTextField txtJenisLapangan;

private javax.swing.JTextField txtKodeLapangan;

private javax.swing.JTextField txtKodePelanggan;

private javax.swing.JTextField txtLamaSewa;

private javax.swing.JTextField txtNamaPelanggan;

private javax.swing.JTextField txtNoTrans;

private javax.swing.JTextField txtSisaSewa;

private javax.swing.JTextField txtTglBooking;

private javax.swing.JTextField txtTglSewa;

private javax.swing.JTextField txtTotalSewa;

private javax.swing.JTextField txtUangBayar;

private javax.swing.JTextField txtUangDp;

// End of variables declaration

}

Page 57: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

76

C. Jurnal

package futsalproject.form;

import futsalproject.FutsalProject;

import futsalproject.controller.JurnalController;

import futsalproject.data.Jurnal;

import java.awt.Component;

import java.awt.Font;

import java.awt.event.KeyEvent;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.List;

import java.util.Locale;

import javax.swing.JDesktopPane;

import javax.swing.JOptionPane;

import javax.swing.JTable;

import javax.swing.table.DefaultTableCellRenderer;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableCellRenderer;

public class FormJurnal extends javax.swing.JInternalFrame {

Jurnal jurnal = new Jurnal();

JurnalController jCont = new JurnalController(FutsalProject.emf);

DefaultTableModel model;

/**

* Creates new form FormJurnal

*/

public FormJurnal() {

initComponents();

((javax.swing.plaf.basic.BasicInternalFrameUI)this.getUI()).setNorthPane(null);

this.setBorder(null);

model = new DefaultTableModel(){

@Override

public boolean isCellEditable(int row, int column) {

return false;

}

};

model.addColumn("No. Jurnal");

model.addColumn("No. Transaksi");

model.addColumn("Tanggal Jurnal");

TableJurnal.getTableHeader().setFont(new Font("Tahoma Plain", Font.BOLD, 11));

showTable();

renderTableTgl();

}

private void showTable(){

model.getDataVector().removeAllElements();

model.fireTableDataChanged();

List<Jurnal> list = jCont.findAllJurnal();

for(Jurnal obj : list){

Object[] item = new Object[3];

item[0] = obj.getNoJurnal();

item[1] = obj.getNoTrans();

item[2] = obj.getTglJurnal();

model.addRow(item);

Page 58: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

77

}

TableJurnal.setModel(model);

}

private void cariTable(String cari){

List<Jurnal> listUser = jCont.SearchJurnal(cari);

if(listUser.size() == 0){

JOptionPane.showMessageDialog(null, "Data tidak ditemukan!");

}else{

if(cari.isEmpty()){

showTable();

}else{

model.getDataVector().removeAllElements();

model.fireTableDataChanged();

List<Jurnal> list = jCont.findAllJurnal();

for(Jurnal obj : list){

Object[] item = new Object[3];

item[0] = obj.getNoJurnal();

item[1] = obj.getNoTrans();

item[2] = obj.getTglJurnal();

model.addRow(item);

}

TableJurnal.setModel(model);

}

}

}

private void renderTableTgl(){

TableCellRenderer tbr = new DefaultTableCellRenderer(){

SimpleDateFormat sdf=new SimpleDateFormat("dd MMMM yyyy",

Locale.forLanguageTag("in-ID"));

public Component getTableCellRendererComponent(JTable table,

Object value, boolean isSelected, boolean hasFocus,

int row, int column){

if(value instanceof Date){

value = sdf.format(value);

}

return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row,

column);

}

};

TableJurnal.getColumnModel().getColumn(2).setCellRenderer(tbr);

}

/**

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

btnTambah = new javax.swing.JButton();

btnDetail = new javax.swing.JButton();

jLabel5 = new javax.swing.JLabel();

Page 59: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

78

jSeparator1 = new javax.swing.JSeparator();

txtCari = new javax.swing.JTextField();

jLabel6 = new javax.swing.JLabel();

jScrollPane1 = new javax.swing.JScrollPane();

TableJurnal = new javax.swing.JTable();

jPanel1.setBackground(new java.awt.Color(0, 184, 148));

jPanel2.setBackground(new java.awt.Color(255, 255, 255));

jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2,

javax.swing.BoxLayout.LINE_AXIS));

btnTambah.setFont(new java.awt.Font("Segoe UI", 0, 12)); // NOI18N

btnTambah.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Plus

Math_20px.png"))); // NOI18N

btnTambah.setText("Tambah");

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

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

btnTambahActionPerformed(evt);

}

});

jPanel2.add(btnTambah);

btnDetail.setFont(new java.awt.Font("Segoe UI", 0, 12)); // NOI18N

btnDetail.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Check

File_20px_5.png"))); // NOI18N

btnDetail.setText("Lihat Detail");

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

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

btnDetailActionPerformed(evt);

}

});

jPanel2.add(btnDetail);

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

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

jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jLabel5.setText("Form Jurnal");

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

txtCari.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

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

txtCariKeyPressed(evt);

}

});

jLabel6.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N

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

jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel6.setText("Cari");

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

new Object [][] {

},

new String [] {

Page 60: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

79

"No. Jurnal", "No. Transaksi", "Tanggal Jurnal"

}

));

jScrollPane1.setViewportView(TableJurnal);

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

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

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

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

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

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

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

.addComponent(jSeparator1)

.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 864,

Short.MAX_VALUE)

.addGroup(jPanel1Layout.createSequentialGroup()

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

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

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

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

.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 78,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(txtCari, javax.swing.GroupLayout.PREFERRED_SIZE, 210,

javax.swing.GroupLayout.PREFERRED_SIZE)))

.addContainerGap())

);

jPanel1Layout.setVerticalGroup(

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

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

jPanel1Layout.createSequentialGroup()

.addComponent(jLabel5)

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

.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

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

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

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

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

.addComponent(jLabel6)

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

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

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

.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 462,

Short.MAX_VALUE)

.addContainerGap())

);

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

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

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

Page 61: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

80

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

}// </editor-fold>

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

jurnal = null;

FormJurnalTambah fj = new FormJurnalTambah(jurnal);

JDesktopPane desktopPane = getDesktopPane();

desktopPane.add(fj);

fj.setVisible(true);

this.dispose();

}

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

int baris = TableJurnal.getSelectedRow();

if(baris == -1){

JOptionPane.showMessageDialog(null, "Pilih data yang mau dilihat!");

}else{

jurnal = jCont.findJurnal(TableJurnal.getValueAt(baris, 0).toString());

FormJurnalTambah fj = new FormJurnalTambah(jurnal);

JDesktopPane desktopPane = getDesktopPane();

desktopPane.add(fj);

fj.setVisible(true);

this.dispose();

}

}

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

if(evt.getKeyCode()==KeyEvent.VK_ENTER){

cariTable(txtCari.getText());

}

}

// Variables declaration - do not modify

private javax.swing.JTable TableJurnal;

private javax.swing.JButton btnDetail;

private javax.swing.JButton btnTambah;

private javax.swing.JLabel jLabel5;

private javax.swing.JLabel jLabel6;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JSeparator jSeparator1;

private javax.swing.JTextField txtCari;

// End of variables declaration

}

Page 62: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

81

3.5.2. Blackbox Testing

1. Form Login

Tabel III.12.

Hasil Pengujian Black Box Testing Form Login

No. Skenario

pengujian

Test case Hasil yang

diharapkan

Hasil

pengujian

Kesimpulan

1. Kode User

dan Password

tidak diisi

kemudian klik

tombol Login

Kode User

(kosong)

Password:

(kosong)

Sistem akan

menolak akses

dan

menampilkan

pesan

“Masukkan

Kode User dan

Password”

Sesuai

harapan

Valid

2. Mengetikkan

Kode User

dan Password

tidak diisi

atau kosong

kemudian klik

tombol Login

Kode User:

User-002

Password:

(kosong)

Sistem akan

menolak akses

dan

menampilkan

pesan

“Masukkan

password”

Sesuai

harapan

Valid

3. Kode User

tidak diisi

(kosong) dan

Password diisi

kemudian klik

tombol Login

Kode User:

(kosong)

Password:

1234

Sistem akan

menolak akses

dan

menampilkan

pesan

“Masukkan

Kode User”

Sesuai

harapan

Valid

4. Mengetikkan

salah satu

kondisi salah

pada Kode

User atau

Password

kemudian klik

tombol Login

Kode User

User-002

(benar)

Password:

12345

(salah)

Sistem akan

menolak akses

dan kembali

diarahkan ke

halaman Login

Dan

menampilkan

pesan

“Password

salah”

Sesuai

harapan

Valid

5. Mengetikkan

Kode User dan

Password

dengan data

Username:

User-002

(benar)

Sistem akan

menerima

akses login dan

akan

Sesuai

harapan

Valid

Page 63: BAB III PEMBAHASAN - repository.bsi.ac.id · penyewaan lapangan futsal. 2. Dengan adanya suatu sistem yang sudah terkomputerisasi maka setiap pelanggan yang telah melakukan pemesanan

82

yang benar

kemudian klik

tombol Login

Password:

1234

(benar)

menampilkan

pesan

“Selamat

datang, Yani”

3.5.3. Spesifikasi Hardware dan Software

Tabel III.13.

Spesifikasi Hardware dan Software

Kebutuhan Keterangan

Sistem Windows 10 64-bit

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

RAM 2,00 GB

Harddisk 500 GB

Monitor 14" LED

Keyboard 108 Key

Printer Ink Jet

Mouse Standart

Software

Kebutuhan menjalankan aplikasi secara local:

Bahasa script programming : JAVA 8.2

Database : MySQL