View
9
Download
0
Category
Preview:
Citation preview
18
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Sekolah Mengemudi Ar’Rahman cabang Pangkalan Jati merupakan
perusahaan yang bergerak di bidang jasa kursus mobil. Untuk memudahkan
pemahaman tentang Sekolah Mengemudi Ar’Rahman cabang Pangkalan Jati Jakarta,
maka penulis akan menjelaskan gambaran sesungguhnya dan sejarah terbentuk, visi
dan misi, struktur organisasi beserta fungsi organisasi yang ada.
A. Sejarah Perusahaan
Bertempat di Jakarta, Ar’Rahman berdiri sejak tahun 2000 sebagai kursus:
Otomotif, Menjahit, Operator Komputer, Kulkas, AC, Instalasi Listrik dan kegiatan
keterampilan lainnya. Pada tahun 2002 Ar’Rahman mengembangkan kursus
mengemudi mobil yang bernama Sekolah Mengemudi Ar’Rahman. Sekolah
mengemudi Ar’Rahman cabang Pangkalan Jati beralamat di Jl. Inspeksi Saluran
Kalimalang No E27, Kelurahan Pondok Bambu, Kecamatan Duren Sawit. Jakarta
Timur. Sekolah Mengemudi Ar’Rahman cabang Pangkalan Jati memiliki izin
penyelenggaraan sekolah mengemudi dengan nomor 185/-2014 yang dikeluarkan
oleh pihak Dinas Perhubungan Daerah Khusus Ibukota Jakarta pada tanggal 26
Maret 2014.
19
B. Visi dan Misi
Dalam menjalankan pekerjaannya Sekolah Mengemudi Ar’Rahman cabang
Pangkalan Jati memiliki visi dan misi sebagai berikut:
a. Visi
Menjadi salah satu lembaga pendidikan terbaik khususnya dalam bidang kursus
mengemudi kendaraan bermotor.
b. Misi
1. Meningkatkan kemampuan SDM dalam hal mengendarai kendaraan bermotor
agar bisa memenuhi kesempatan kerja diberbagai bidang usaha dan rumah
tangga.
2. Menjadi sekolah mengemudi yang dipercaya dan memberikan manfaat
kepada masyarakat.
3. Membentuk calon-calon pengemudi yang trampil dan displin dalam berlalu
lintas.
20
C. Struktur Organisasi
Sumber: Sekolah Mengemudi Ar’rahman cabang Pangkalan Jati
Gambar III.1
Struktur Organisasi Sekolah Mengemudi Ar’rahman Cabang Pangkalan Jati
D. Uraian Tugas Dan Tanggung Jawab
1. Kepala Wilayah
a. Melaksanakan tugas-tugas yang didelegasikan Manajemen Pusat dan
mendelegasikan sebagian wewenang dan pekerjaan manajerial kepada para
bawahannya.
b. Mengawasi pelaksanaan pekerjaan yang didelegasikan kepada para
bawahannya.
c. Bertanggung jawab atas pembuatan laporan kerja ditingkat cabang-cabang
yang di pertanggung jawabkan pada saat rapat kerja.
d. Memimpin briefing cabang setiap minggunya.
Kantor Pusat
Kepala Wilayah
Sekretaris Instruktur Tetap
Instruktur Freelance
21
2. Sekretaris
a. Melaksanakan tugas-tugas yang didelegasikan oleh Kepala Wilayah.
b. Wajib mengikuti briefing intern yang di adakan oleh Kepala Wilayah.
c. Bertanggung jawab terhadap pencapaian target cabang.
d. Bertanggung jawab atas pembuatan program kerja cabang yang
dipertanggung jawabkan pada saat rapat kerja.
e. Mengevaluasi dan memeriksa rencana kerja mingguan dan realisasi rencana
kerja mingguan terhadap rencana kerja dan rencana anggaran.
f. Wajib membuat laporan bulanan kepada kantor pusat.
3. Instruktur
a. Melaksanakan dan bertanggung jawab atas tugas-tugas yang didelegasikan
oleh Kepala Wilayah.
b. Menyajikan materi pelajaran berdasarkan metode, silabus dan alat bantu
(teaching aids).
c. Melaksanakan manajemen pembelajaran yang telah ditetapkan oleh
lembaga.
d. Bertanggung jawab melakukan mengajaran sampai akhir paket yang telah
ditentukan.
e. Bertanggung jawab pencapaian target pembelajaran siswa sesuai tingkatan.
22
3.2. Tinjauan Kasus
Pada perusahaan ini pendapatan jasa sangat diperlukan untuk meningkatkan
penghasilan perusahaan, akan tetapi pencatatan pendapatan jasa diperusahaan ini
masih dilakukan secara manual karena masih menggunakan buku setiap kali
mencatat transaksi pendapatan jasa, karena terkendala dengan tidak adanya sistem
yang membantu dan memudahkan pencatatan seluruh transaksi pendapatan jasa yang
terjadi pada perusahaan ini, serta masih banyak mengalami kesalahan baik dalam
pencacatan laporan pendapatan jasa.
Dalam menganalisa kebutuhan sistem diajukan keluaran dalam laporan
pendapatan jasa disetiap bulannya. Aplikasi yang dirancang untuk memudahkan
kegiatan para karyawan menggunakan bahasa pemrograman java dengan aplikasi
Netbeans IDE 8.1 sebagai aplikasi untuk merancang tampilan program yang di
usulkan, XAMPP sebagai web server, My SQL sebagai aplikasi database, I Report
perancangan laporan.
23
A. Proses Bisnis Sistem Berjalan
Proses bisnis sistem yang berjalan pada Sekolah Mengemudi Ar’Rahman
Cabang Pangkalan Jati yakni siswa datang ke cabang Sekolah Mengemudi
Ar’Rahman untuk menanyakan paket latihan mengemudi yang tersedia di Sekolah
Mengemudi Ar’Rahman. Sekretaris menjelaskan mengenai harga, jumlah jam dan
jenis kendaraan dari paket latihan mengemudi yang tersedia, kemudian siswa
memilih paket latihan dan jadwal belajar yang di inginkan. Sekretaris menginfokan
syarat dan peraturan yang berlaku selama menjadi siswa Sekolah Mengemudi
Ar’Rahman serta menyiapkan formulir pendaftaran siswa, kemudian siswa mengisi
formulir pendaftaran siswa dan melakukan pembayaran. Sekretaris menerima
pembayaran uang pendaftaran dan membuat kwitansi pembayaran. Siswa
menandatangani kwitansi dan menyerahkannya kembali ke sekretaris, sekretaris
menerima dan menyerahkan kwitansi asli kepada siswa dan siswa memulai latihan
mengemudi. Kemudian sekretaris membuat kartu perkembangan siswa dan
diserahkan kepada instruktur untuk selanjutnya mengkonfirmasi kartu perkembangan
siswa serta jadwal latihan siswa baru. Sekretaris menyerahkan kunci kendaraan
latihan mengemudi, siswa menerima kunci kendaraan dan memulai latihan
mengemudi. Setelah selesai siswa menyerahkannya kembali kepada sekretaris.
Sekretaris membuat laporan pendapatan jasa, kemudian laporan pendapatan tersebut
diserahkan kepada kepala wilayah untuk diperiksa.
.
24
B. Activity Diagram
Berdasarkan proses bisnis atau aktivitas yang sedang berjalan pada Sekolah
Mengemudi Ar’Rahman penulis akan menguraikannya secara detail pada activty
diagram sebagai berikut:
25
Sumber : Penelitian 2019
Gambar III.2.
Activity Diagram Proses Bisnis Sistem Berjalan
26
C. Dokumen Masukan
1. Nama Dokumen : Formulir Pendaftaran Siswa
Fungsi : Untuk mengetahui data siswa baru
Sumber : Sekretaris
Tujuan : Siswa
Media : Kertas
Jumlah : 3 Lembar
Frekuensi : Setiap pendaftaran siswa baru
Format : Lihat lampiran A1
2. Nama Dokumen : Kwitansi
Fungsi : Untuk mengetahui data pembayaran
Sumber : Sekretaris
Tujuan : Siswa
Media : Kertas
Jumlah : 3 Lembar
Frekuensi : Setiap pendaftaran siswa baru
Format : Lihat lampiran A2
27
D. Dokumen Keluaran
1. Nama Dokumen : Laporan pendapatan jasa
Fungsi : Untuk mengetahui rincian pendapatan jasa
Sumber : Sekretaris
Tujuan : Kepala Wilayah
Media : Kertas
Jumlah : 2 Lembar
Frekuensi : Setiap bulan
Format : Lihat lampiran B1
E. Permasalahan Pokok
Melihat dari semua proses yang terjadi, ada beberapa permasalahan yang
dihadapi Sekolah Mengemudi Ar’Rahman cabang Pangkalan Jati dalam sistem
pencatatan pendapatan jasa. Adapun permasalahan yang sering terjadi diantaranya:
1. Pencatatan data transaksi masih dilakukan secara manual sehingga
memungkinkan terjadi kesalahan dalam pencatatan dan keterlambatan dalam
pencarian data.
2. Pembuatan laporan pendapatan yang tidak efektif, efisien dan akurat
dikarenakan penyimpanan dokumen-dokumen tidak tertata rapi.
3. Keamanan dokumen yang kurang terjamin karena dokumen rentan rusak atau
hilang.
28
F. Pemecahan Masalah
Untuk mengatasi permasalahan tersebut, maka saya memberikan alternatif
pemecahan masalah berupa sistem yang terkomputerisasi. Sistem yang sudah
terkomputerisasi mempunyai kelebihan diantaranya:
1. Dengan menggunakan sistem yang terkomputerisasi maka dapat mengurangi
kesalahan dalam pencatatan dan menghemat waktu untuk memproses data.
2. Dengan adanya sistem yang sudah terkomputerisasi maka pengolahan,
penyimpanan dan penyajian laporan yang dihasilkan menjadi efektif, efisien
dan akurat.
3. Database terdapat dalam komputer sehingga tidak perlu khawatir dokumen
akan rusak atau hilang.
3.3. Analisa Kebutuhan Software
A. Tahapan Analisa
Analisa kebutuhan software merupakan langkah awal untuk menentukan
gambaran perangkat yang akan dihasilkan ketika pengembang melaksanakan
pembuatan perangkat lunak. Perangkat lunak yang baik dan sesuai dengan kebutuhan
pengguna sangat tergantung pada keberhasilan dalam melakukan analisis kebutuhan.
Berikut analisis kebutuhan software yang dibuat :
Sekretaris dapat masuk ke sistem informasi akuntansi penjualan. Di dalam
sistem tersebut, bagian keuangan dapat mengakses menu master, menu transaksi,
menu informasi data dan menu laporan.
29
A1. Melakukan Login
A1.1. Memasukkan Username
A1.2. Memasukkan Password
A2. Mengakses Menu Utama
A2.1. Mengakses Menu Master Data
A2.2. Mengakses Menu Transaksi
A2.3. Mengakses Menu Informasi Data
A2.4. Mengakses Menu Laporan
A2.1. Mengakses Menu Master Data
A2.1.1. Mengakses Akun
A2.1.2. Mengolah User
A2.1.3. Mengakses Data Instruktur
A2.1.4. Mengakses Data Siswa
A2.1.5. Mengakses Data Kendaraan
A2.1.6. Mengakses Data Paket
A2.2. Mengakses Menu Transaksi
A2.2.1. Mengolah Kas Masuk
A2.2.2. Mengolah Pendaftaran
30
A2.2.3. Mengakses Pembayaran
A2.3. Mengakses Menu Informasi Data
A2.3.1. Mengakses Informasi Akun
A2.3.2. Mengakses Informasi User
A2.3.3. Mengakses Informasi Kas Masuk
A2.3.4. Mengakses Informasi Pendaftaran
A2.3.5 Mengakses Informasi Pembayaran
A2.4. Mengakses Menu Laporan
A2.4.1. Menampilkan dan Mencetak Laporan Akun
A2.4.2. Menampilkan dan Mencetak Laporan Kas Masuk
A2.4.3. Menampilkan dan Mencetak Laporan Pendapatan
A2.4.4. Menampilkan dan Mencetak Laporan Pembayaran
31
B. Use Case Diagram
1. Use Case Diagram Login
Sumber : Penelitian 2019
Gambar III.3.
Use Case Diagram Login
Tabel III.1.
Deskripsi Login
Use Case Narative Login
Tujuan Melakukan login dan masuk ke dalam sistem informasi pendapatan.
Deskripsi Sistim ini memungkinkan aktor untuk mengakses sistem informasi pendapatan.
Skenario Utama
Aktor Admin.
Kondisi Awal Aktor membuka aplikasi sistem informasi pendapatan jasa.
32
Aksi Aktor Reaksi Sistem
1. Aktor memilih tombol
login
Sistem akan menampilkan textbox untuk mengisi username dan
password.
2. Aktor memilih tombol
batal
Sistem akan membatalkan proses dan keluar dari aktivitas.
Kondisi Akhir Jika perintah sesuai maka sistem akan masuk ke dalam aplikasi
sistem informasi akuntansi penjualan dan actor dapat melakukan
aktivitas didalam sistem.
2. Use Case Diagram Menu Utama
Sumber : Penelitian 2019
Gambar III.4.
Use Case Diagram Menu Utama
Tabel III.2.
Deskripsi Menu Utama
Use Case Narative Menu Utama
Tujuan
Bagian admin dapat melakukan pengaksesan data yang ada di menu utama
seperti menu master data, menu transaksi, menu informasi data dan menu
laporan.
Deskripsi Sistem ini memungkinkan aktor untuk mengakses sistem mulai dari input dan
sampai dengan cetak laporan.
33
Skenario Utama
Aktor Admin.
Kondisi Awal Aktor membuka aplikasi sistem informasi pendapatan jasa dan masuk ke menu
utama.
Aksi Aktor Reaksi Sistem
1. Aktor memilih tombol menu
master data
Sistem akan menampilkan submenu master data seperti akun,
saldo awal, user, data instruktur, data siswa, data kendaraan dan
data paket.
2. Aktor memilih tombol menu
transaksi
Sistem akan menampilkan submenu transaksi seperti kas
masuk, pendaftaran dan pembayaran.
3. Aktor memilih tombol menu
informasi data
Sistem akan menampilkan submenu informasi data seperti
informasi akun, informasi user, informasi kas masuk, informasi
pendaftaran, informasi pembayaran.
4. Aktor memilih tombol menu
laporan
Sistem akan menampilkan submenu menu laporan seperti
laporan akun, laporan kas masuk, laporan pendapatan dan
laporan pembayaran.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan seperti apa
yang diinginkan oleh aktor.
3. Use Case Diagram Menu Master Data
Sumber : Penelitian 2019
Gambra III.5.
Use Case Diagram Menu Master Data
Tabel III.3.
Deskripsi Master Data
Use Case Narative Menu Utama
Tujuan Bagian admin dapat melakukan pengaksesan data yang ada di menu
master data.
34
Deskripsi
Sistim ini memungkinkan aktor untuk mengakses sistem yang ada di
menu master data seperti mengakses akun, mengakses saldo awal,
mengolah user, mengakses data instruktur, mengakses data siswa,
mengakses data paket dan mengakses data kendaraan.
Skenario Utama
Aktor Admin.
Kondisi Awal Aktor membuka aplikasi sistem informasi akuntansi pendapatan jasa
dan masuk ke menu master data.
Aksi Aktor Reaksi Sistem
Aktor memilih tombol
menu master data
Sistem akan menampilkan submenu master data seperti akun, saldo
awal, user, data instruktur, data siswa, data kendaraan, data paket.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan seperti apa yang
diinginkan oleh aktor.
4. Use Case Diagram Menu Transaksi
Sumber : Penelitian 2019
Gambar III.6.
Use Case Diagram Menu Tsansaksi
Tabel III.4.
Deskripsi Menu Transaksi
Use Case Narative Menu Utama
Tujuan Bagian admin dapat melakukan pengaksesan data yang ada di menu
transaksi.
35
Deskripsi
Sistim ini memungkinkan aktor untuk mengakses sistem yang ada di
menu transaksi seperti mengolah kas masuk, mengolah pendaftaran,
mengolah pembayaran.
Skenario Utama
Aktor Admin.
Kondisi Awal Aktor membuka aplikasi sistem informasi akuntansi pendapatan jasa
dan masuk ke menu transaksi.
Aksi Aktor Reaksi Sistem
Aktor memilih tombol
menu transaksi
Sistem akan menampilkan submenu transaksi seperti mengolah kas
masuk, mengolah pendaftaran dan mengolah pembayaran.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan seperti apa yang
diinginkan oleh aktor.
5. Use Case Diagram Menu Informasi Data
Sumber : Penelitian 2019
Gambar III.7.
Use Case Diagram Menu Informasi Data
Tabel III.5.
Deskripsi Menu Informasi Data
Use Case Narative Menu Utama
Tujuan Bagian admin dapat melakukan pengaksesan data yang ada di menu
informasi data.
36
Deskripsi
Sistim ini memungkinkan aktor untuk mengakses sistem yang ada di
menu informasi data seperti mengakses informasi akun, mengkases
informasi pendaftaran, mengakses informasi pembayaran.
Skenario Utama
Aktor Admin.
Kondisi Awal
Aktor membuka aplikasi sistem informasi akuntansi pendapatan jasa
dan masuk ke menu informasi data.
Aksi Aktor Reaksi Sistem
Aktor memilih tombol
menu informasi data
Sistem akan menampilkan submenu informasi data seperti mengakses
informasi akun, mengkases informasi pendaftaran, mengakses
informasi pembayaran.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan seperti apa yang
diinginkan oleh aktor.
6. Use Case Diagram Menu Laporan
Sumber : Penelitian 2019
Gambar III.8.
Use Case Diagram Menu Laporan
Tabel III.6.
Deskripsi Menu Laporan
Use Case Narative Menu Utama
Tujuan Bagian admin dapat melakukan pengaksesan data yang ada di menu laporan.
37
Deskripsi
Sistem ini memungkinkan aktor untuk mengakses sistem yang ada di menu laporan
seperti mencentak laporan akun, mencentak kas masuk, mencentak pendapatan dan
mencentak pembayaran.
Skenario Utama
Aktor Admin.
Kondisi Awal Aktor membuka aplikasi sistem informasi akuntansi pendapatan
jasa dan masuk ke menu laporan.
Aksi Aktor Reaksi Sistem
Aktor memilih tombol login Sistem akan menampilkan submenu laporan seperti mencentak
laporan akun, mencentak kas masuk, mencentak pendapatan dan
mencentak pembayaran.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan seperti apa
yang diinginkan oleh aktor.
C. Activity Diagram
1. Activity Diagram Login
Sumber : Penelitian 2019
Gambar III.9.
Activity Diagram Login
38
2. Activity Diagram Menu Utama
Sumber : Penelitian 2019
Gambar III.10.
Activity Diagram Menu Utama
3. Activity Diagram Menu Master Data
Sumber : Penelitian 2019
Gambar III.11.
Activity Diagram Menu Master Data
39
4. Activity Diagram Menu Transaksi
Sumber : Penelitian 2019
Gambar III.12.
Activity Diagram Menu Transaksi
5. Activity Diagram Menu Informasi Data
Sumber : Penelitian 2019
Gambar III.13.
Activity Diagram Menu Informasi Data
40
6. Activity Diagram Menu Laporan
Sumber : Penelitian 2019
Gambar III.14.
Activity Diagram Menu Laporan
41
3.4. Desain
A. Entity Reletionship Diagram (ERD)
Sumber : Penelitian 2019
Gambar III.15.
Entity Reletionship Diagram (ERD)
42
B. Logical Reord Struture (LRS)
Sumber : Penelitian 2019
Gambar III.16.
Logical Reord Struture (LRS)
43
C. Spesifikasi File
1. Spesifikasi File Master Data
a. Spesifikasi File Data Siswa
Nama Data Base : data_siswa
Nama File : data siswa
Tipe File : Master Data
Akses Folder : Random
Panjang Record : 30
Kunci Field : kd_siswa
Tabel III.7.
Spesifikasi File Data Siswa
No Nama Field Tipe Data Panjang Keterangan
1 kd_siswa varchar 5 Primary Key
2 Nama varchar 25
Sumber : Penelitian 2019
b. Spesifikasi File Instruktur
Nama Data Base : instruktur
Nama File : instruktur
Tipe File : Master Data
Akses Folder : Random
Panjang Record : 20
Kunci Field : kd_instruk
44
Tabel III.8.
Spesifikasi File Data Instruktur
No Nama Field Tipe Data Panjang Keterangan
1 kd_instruk varchar 5 Primary Key
2 nm_instruk varchar 15
Sumber : Penelitian 2019
c. Spesifikasi File Akun
Nama Data Base :master_akun
Nama File : master akun
Tipe File : Master Data
Akses Folder : Random
Panjang Record : 97
Kunci Field : kd_akun
Tabel III.9.
Spesifikasi File Master Akun
No Nama Field Tipe Data Panjang Keterangan
1 kd_akun varchar 5 Primary Key
2 nm_akun varchar 30
3 jns_akun varchar 50
4 sldo_nrml bigint 12
Sumber : Penelitian 2019
45
d. Spesifikasi File User
Nama Data Base : user
Nama File : user
Tipe File : Master Data
Akses Folder : Random
Panjang Record : 45
Kunci Field : kd_user
Tabel III.10.
Spesifikasi File User
No Nama Field Tipe
Data Panjang Keterangan
1 kd_user varchar 15 Primary Key
2 nm_lengkap varchar 25
3 Password varchar 5
4 hak_akses enum ‘USER’,’ADMIN’
Sumber : Penelitian 2019
e. Spesifikasi File Data Kendaraan
Nama Data Base :master_akun
Nama File : master akun
Tipe File : Master Data
Akses Folder : Random
Panjang Record : 30
Kunci Field : kd_akun
46
Tabel III.11.
Spesifikasi File Data Kendaraan
No Nama Field Tipe Data Panjang Keterangan
1. kd_kend varchar 15 Primary Key
2. nm_kend varchar 15
3. jns_trsnm enum ‘MANUAL’,
’AUTOMATIC’
Sumber : Penelitian 2019
2. Spesifikasi File Transaksi
a. Spesifikasi File Kas Masuk
Nama Data Base : kas_in
Nama File : kas in
Tipe File : Transaksi
Akses Folder : Random
Panjang Record : 10
Kunci Field : no_km
Tabel III.12.
Spesifikasi File Kas Masuk
No Nama Field Tipe Data Panjang Keterangan
1 no_km varchar 10 Primary Key
2 Tgl Date 0
3 Keterangan text 0
Sumber : Penelitian 2019
47
b. Spesifikasi File Kas Masuk Detail
Nama Data Base : kas_in_detail
Nama File : kas in detail
Tipe File : Transaksi
Akses Folder : Random
Panjang Record : 40
Kunci Field : -
Tabel III.13.
Spesifikasi File Kas In Detail
No Nama Field Tipe Data Panjang Keterangan
1 no_km varchar 10 Foreign Key
2 kd_akun varchar 15 Foreign Key
3 Nominal bigint 15
Sumber : Penelitian 2019
c. Spesifikasi File Pendaftaran
Nama Data Base : pendaftaran
Nama File : pendaftaran
Tipe File : Transaksi
Akses Folder : Random
Panjang Record : 60
Kunci Field : kd_akun
48
Tabel III.14.
Spesifikasi File Pendaftaran
No Nama Field Tipe Data Panjang Keterangan
1 no_pend varchar 10 Primary Key
2 tgl_pend date
3 kd_paket varchar 10 Foreign Key
4 jns_trsnm ENUM ‘MANUAL’
‘AUTOMATIC’ Foreign Key
5 nm_instruk varchar 20 Foreign Key
Sumber : Penelitian 2019
d. Spesifikasi File Pendaftaran Detail
Nama Data Base : pendaftaran_detail
Nama File : pendaftaran_detail
Tipe File : Transaksi
Akses Folder : Random
Panjang Record : 60
Kunci Field : -
Tabel III.15.
Spesifikasi File Pendaftaran Detail
No Nama Field Tipe Data Panjang Keterangan
1. no_pend varchar 10 Foreign Key
2. kd_siswa varchar 10 Foreign Key
3. Nama varchar 25 Foreign Key
4. no_hp varchar 15
5. Nominal text
Sumber : Penelitian 2019
49
e. Spesifikasi File Pembayaran
Nama Data Base : pembayaran
Nama File : pembayaran
Tipe File : transaksi
Akses Folder : Random
Panjang Record : 25
Kunci Field : kd_pemb
Tabel III.16.
Spesifikasi File Pembayaran
No Nama Field Tipe Data Panjang Keterangan
1 kd_pemb varchar 10 Primary Key
2 tgl_pemb date
3 no_pend varchar 15 Foreign Key
Sumber : Penelitian 2019
f. Spesifikasi File Pembayaran Detail
Nama Data Base : pembayaran_detail
Nama File : pembayaran detail
Tipe File : Transaksi
Akses Folder : Random
Panjang Record : 45
Kunci Field : -
50
Tabel III.17.
Spesifikasi File Pembayaran Detail
No Nama Field Tipe Data Panjang Keterangan
1 kd_pembayaran varchar 10 Primary Key
2 kd_siswa varchar 10 Foreign Key
3 nm_siswa varchar 25 Foreign Key
4 Nominal text
5 Keterangan text
Sumber : Penelitian 2019
D. Sequence Diagram
1. Sequence Diagram Kas Masuk
Sumber : Penelitian 2019
Gambar III.17.
Sequence Diagram Kas Masuk
51
2. Sequence Diagram Pendaftaran
Sumber : Penelitian 2019
Gambar III.18.
Sequence Diagram Pendaftaran
52
3. Sequence Digram Pembayaran
Sumber : Penelitian 2019
Gambar III.19.
Sequence Diagram Pembayaran
53
E. Deployment Diagram
Sumber : Penelitian 2019
Gambar III.20.
Deployment Diagram Pendapatan Jasa
54
F. User Interface
1. User Interface Login
Sumber : Penelitian 2019
Gambar III.21.
User Interface Login
2. User Interface Menu Utama
Sumber : Penelitian 2019
Gambar III.22.
User Interface Menu Utama
55
3. User Interface Akun
Sumber : Penelitian 2019
Gambar III.23.
User Interface Akun
4. User Interface User
Sumber : Penelitian 2019
Gambar III.24.
User Interface User
56
5. User Interface Instruktur
Sumber : Penelitian 2019
Gambar III.25.
User Interface Instruktur
6. User Interface Siswa
Sumber : Penelitian 2019
Gambar III.26.
User Interface Siswa
57
7. User Interface Kendaraan
Sumber : Penelitian 2019
Gambar III.27.
User Interface Kendaraan
8. User Interface Paket
Sumber : Penelitian 2019
Gambar III.28.
User Interface Paket
58
9. User Interface Kas Masuk
Sumber : Penelitian 2019
Gambar III.29.
User Interface Kas Masuk
10. User Interface Pendaftaran
Sumber : Penelitian 2019
Gambar III.30.
User Interface Pendaftaran
59
11. User Interface Pembayaran
Sumber : Penelitian 2019
Gambar III.31.
User Interface Pembayaran
12. User Interface Informasi Akun
Sumber : Penelitian 2019
Gambar III.32.
User Interface Informasi Akun
60
13. User Interface Informasi User
Sumber : Penelitian 2019
Gambar III.33.
User Interface Informasi User
14. User Interface Informasi Kas Masuk
Sumber : Penelitian 2019
Gambar III.34.
User Interface Informasi Kas Masuk
61
15. User Interface Informasi Pendaftaran
Sumber : Penelitian 2019
Gambar III.35.
User Interface Informasi Pendaftaran
16. User Interface Informasi Pembayaran
Sumber : Penelitian 2019
Gambar III.36.
User Interface Informasi Pembayaran
62
17. User Interface Laporan Akun
Sumber : Penelitian 2019
Gambar III.37.
User Interface Laporan Akun
63
18. User Interface Laporan Kas Masuk
Sumber : Penelitian 2019
Gambar III.38.
User Interface Laporan Kas Masuk
64
19. User Interface Laporan Pendapatan
Sumber : Penelitian 2019
Gambar III.39.
User Interface Laporan Pendapatan
65
20. User Interface Laporan Pembayaran
Sumber : Penelitian 2019
Gambar III.40.
User Interface Laporan Pembayaran
66
3.5. Implementasi
A. Code Generation
1. KasMasuk.jsp
<%@page import="java.sql.*, model.Akun, model.KasMasuk" %>
<%
KasMasuk kasmasuk = new KasMasuk();
Akun akun = new Akun();
//--koneksi database--
Connection koneksi = null;
Statement stmt = null;
ResultSet rs = null;
ResultSet qryakun = null;
ResultSet qrydeb = null;
Class.forName("com.mysql.jdbc.Driver");
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/ar_rahman",
"root", "");
stmt = koneksi.createStatement();
%>
<h1> Kas Masuk </h1>
<form action="kasMasukServlet" method="post">
<table border="0">
<tr>
67
<td>No. Kas Masuk</td>
<td>:</td>
<td>
<%
try {
ResultSet nokm = null;
Statement perintah = koneksi.createStatement();
nokm = perintah.executeQuery("Select max(right(no_km,8)) as no
FROM kas_in");
while (nokm.next()) {
if (nokm.first() == false) {
out.println("<input type='hidden' name='no_km'
value='KM00000001' id='t1'/>");
} else {
nokm.last();
int autonokm = nokm.getInt(1) + 1;
String nomorkm = String.valueOf(autonokm);
int noLong = nomorkm.length();
for (int a = 1; a < 9 - noLong; a++) {
nomorkm = "0" + nomorkm;
}
String nomerkm = "KM" + nomorkm;
out.println("<input type='hidden' name='no_km' value='" +
nomerkm + "'/>");
68
out.println("<input type='text' value='" + nomerkm + "'/>");
}
}
} catch (Exception e) {
out.println(e);
}
%>
</td>
</tr>
<tr>
<td>Akun Debet</td>
<td>:</td>
<td>
<select name="no_akundebet">
<%
qryakun = stmt.executeQuery("SELECT kode_akun, nama_akun
FROM master_akun");
while (qryakun.next()) {
akun.setKodeAkun(qryakun.getString("kode_akun"));
akun.setNamaAkun(qryakun.getString("nama_akun"));
%><option
value="<%=akun.getKodeAkun()%>"><%=akun.getKodeAkun()%>
<%=akun.getNamaAkun()%></option>
<% } %>
</select>
69
</td>
</tr>
<tr>
<td>Tanggal</td>
<td>:</td>
<td><input type="date" name="tgl_km"/></td>
</tr>
<tr>
<td>Keterangan</td>
<td>:</td>
<td><textarea name="keterangan" rows="5" cols="30"></textarea></td>
</tr>
<tr>
<td>Akun Kredit</td>
<td>:</td>
<td>
<select name="no_akunkredit">
<%
qryakun = stmt.executeQuery("SELECT kode_akun, nama_akun
FROM master_akun");
while (qryakun.next()) {
akun.setKodeAkun(qryakun.getString("kode_akun"));
akun.setNamaAkun(qryakun.getString("nama_akun"));
%>
70
<option
value="<%=akun.getKodeAkun()%>"><%=akun.getKodeAkun()%>
<%=akun.getNamaAkun()%></option>
<% } %>
</select>
</td>
</tr>
<tr>
<td>Nominal</td>
<td>:</td>
<td><input type="text" name="nominal"/></td>
</tr>
<tr>
<td colspan="3" align="center"><input type="submit" name="aksi"
value="Insert" class="button"/></td>
</tr>
</table>
</form>
<br>
<table border="0" cellpadding="0" cellspacing="0">
<tr class="head">
<td>No Kas Masuk</td>
<td>Tanggal Kas Masuk</td>
<td>Keterangan</td>
71
<td>Akun</td>
<td>Nominal</td>
<td>Action</td>
</tr>
<%
rs = stmt.executeQuery("SELECT kas_in.no_km, kas_in.tgl_km,
kas_in.keterangan, kas_in_detail.kd_akun, kas_in_detail.nominal "
+ "FROM kas_in "
+ "INNER JOIN kas_in_detail "
+ "ON kas_in.no_km=kas_in_detail.no_km");
while (rs.next()) {
out.println("<tr class=isi>"
+ "<td>" + rs.getString(1) + "</td>"
+ "<td>" + rs.getString(2) + "</td>"
+ "<td>" + rs.getString(3) + "</td>"
+ "<td>" + rs.getString(4) + "</td>"
+ "<td>" + rs.getString(5) + "</td>"
+ "<td><a href=kasMasukServlet?aksi=Delete&no_km=" +
rs.getString(1) + ">Hapus</a></td>"
+ "</tr>");
}
%>
</table>
72
2. Pendaftaran.jsp
<%@page import="java.sql.*, model.Paket, model.Pendaftaran, model.Siswa,
model.Kendaraan, model.Instruktur" %>
<%
Pendaftaran penD = new Pendaftaran();
Paket paket = new Paket();
Siswa siswa = new Siswa();
Kendaraan kendaraan = new Kendaraan();
Instruktur instruktur = new Instruktur();
//--koneksi database--
Connection koneksi = null;
Statement stmt = null;
ResultSet rs = null;
ResultSet qryakun = null;
ResultSet qrydeb = null;
Class.forName("com.mysql.jdbc.Driver");
73
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/sia_penjualan",
"root", "");
stmt = koneksi.createStatement();
%>
<h1> Pendaftaran </h1>
<form action="PendaftaranServlet" method="post">
<table border="0">
<tr>
<td>No. Pendaftaran</td>
<td>:</td>
<td>
<%
try {
ResultSet nopend = null;
Statement perintah = koneksi.createStatement();
nopend = perintah.executeQuery("Select max(right(no_pend,8)) as no
FROM pendaftaran");
while (nopend.next()) {
74
if (nopend.first() == false) {
out.println("<input type='hidden' name='no_pend'
value='PD00000001'/>");
out.println("<input type=''text' disabled='disabled'
value='PD00000001'/>");
} else {
nopend.last();
int autonopend = nopend.getInt(1) + 1;
String nomorpend = String.valueOf(autonopend);
int noLong = nomorpend.length();
for (int a = 1; a < 9 - noLong; a++) {
nomorpend = "0" + nomorpend;
}
String nomerpend = "PD" + nomorpend;
out.println("<input type='hidden' name='no_kk' value='" +
nomerpend + "'/>");
out.println("<input type='text' disabled='disabled' value='" +
nomerpend + "'/>");
75
}
}
} catch (Exception e) {
out.println(e);
}
%>
</td>
</tr>
<tr>
<td>Akun Debet</td>
<td>:</td>
<td>
<select name="no_akunkas">
<%
qrydeb = stmt.executeQuery("SELECT kode_akun, nama_akun
FROM master_akun");
while (qrydeb.next()) {
akun.setKodeAkun(qrydeb.getString("kode_akun"));
akun.setNamaAkun(qrydeb.getString("nama_akun"));
76
%>
<option
value="<%=akun.getKodeAkun()%>"><%=akun.getKodeAkun()%>
<%=akun.getNamaAkun()%></option>
<% } %>
</select>
</td>
</tr>
<tr>
<td>Tanggal</td>
<td>:</td>
<td><input type="date" name="tgl_kk"/></td><%-- modif value --%>
</tr>
<tr>
<td>Memo</td>
<td>:</td>
<td><textarea name="memo" rows="5" cols="30"></textarea></td>
</tr>
<tr>
77
<td>Akun Kas</td>
<td>:</td>
<td>
<select name="no_akundebet">
<%
qrydeb = stmt.executeQuery("SELECT kode_akun, nama_akun
FROM master_akun");
while (qrydeb.next()) {
akun.setKodeAkun(qrydeb.getString("kode_akun"));
akun.setNamaAkun(qrydeb.getString("nama_akun"));
%>
<option
value="<%=akun.getKodeAkun()%>"><%=akun.getKodeAkun()%>
<%=akun.getNamaAkun()%></option>
<% } %>
</select>
</td>
</tr>
<tr>
78
<td>Nominal</td>
<td>:</td>
<td><input type="text" name="nominal"/></td>
</tr>
<tr>
<td align="center" colspan="3"><input type="submit" name="aksi"
value="Insert" class="button"/></td>
</tr>
</table>
</form>
<br>
<table border="0" cellpadding="0" cellspacing="0">
<tr class="head">
<td>No Kas Keluar</td>
<td>Tanggal Kas Keluar</td>
<td>Memo</td>
<td>Akun</td>
<td>Nominal</td>
79
<td>Action</td>
</tr>
<%
rs = stmt.executeQuery("SELECT kas_out.no_kk, kas_out.tgl_kk,
kas_out.memo, kas_out_detail.kode_akun, kas_out_detail.nominal "
+ "FROM kas_out "
+ "INNER JOIN kas_out_detail "
+ "ON kas_out.no_kk=kas_out_detail.no_kk");
while (rs.next()) {
out.println("<tr class=isi>"
+ "<td>" + rs.getString(1) + "</td>"
+ "<td>" + rs.getString(2) + "</td>"
+ "<td>" + rs.getString(3) + "</td>"
+ "<td>" + rs.getString(4) + "</td>"
+ "<td>" + rs.getString(5) + "</td>"
+ "<td><a href=kasKeluarServlet?aksi=Delete&no_kk=" +
rs.getString(1) + ">Hapus</a></td>"
+ "</tr>");
}
80
%>
</table>
3. pembayaran.jsp
<%@page import="java.sql.*, model.Paket, model.Pendaftaran, model.Siswa,
model.Kendaraan, model.Instruktur" %>
<%
Pendaftaran penD = new Pendaftaran();
Paket paket = new Paket();
Siswa siswa = new Siswa();
Kendaraan kendaraan = new Kendaraan();
Instruktur instruktur = new Instruktur();
//--koneksi database--
Connection koneksi = null;
Statement stmt = null;
ResultSet rs = null;
ResultSet qryakun = null;
ResultSet qrydeb = null;
81
Class.forName("com.mysql.jdbc.Driver");
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/sia_penjualan",
"root", "");
stmt = koneksi.createStatement();
%>
<h1> Pendaftaran </h1>
<form action="PendaftaranServlet" method="post">
<table border="0">
<tr>
<td>No. Pendaftaran</td>
<td>:</td>
<td>
<%
try {
ResultSet nopend = null;
Statement perintah = koneksi.createStatement();
nopend = perintah.executeQuery("Select max(right(no_pend,8)) as no
FROM pendaftaran");
82
while (nopend.next()) {
if (nopend.first() == false) {
out.println("<input type='hidden' name='no_pend'
value='PD00000001'/>");
out.println("<input type=''text' disabled='disabled'
value='PD00000001'/>");
} else {
nopend.last();
int autonopend = nopend.getInt(1) + 1;
String nomorpend = String.valueOf(autonopend);
int noLong = nomorpend.length();
for (int a = 1; a < 9 - noLong; a++) {
nomorpend = "0" + nomorpend;
}
String nomerpend = "PD" + nomorpend;
out.println("<input type='hidden' name='no_kk' value='" +
nomerpend + "'/>");
83
out.println("<input type='text' disabled='disabled' value='" +
nomerpend + "'/>");
}
}
} catch (Exception e) {
out.println(e);
}
%>
</td>
</tr>
<tr>
<td>Akun Debet</td>
<td>:</td>
<td>
<select name="no_akunkas">
<%
qrydeb = stmt.executeQuery("SELECT kode_akun, nama_akun
FROM master_akun");
while (qrydeb.next()) {
84
akun.setKodeAkun(qrydeb.getString("kode_akun"));
akun.setNamaAkun(qrydeb.getString("nama_akun"));
%>
<option
value="<%=akun.getKodeAkun()%>"><%=akun.getKodeAkun()%>
<%=akun.getNamaAkun()%></option>
<% } %>
</select>
</td>
</tr>
<tr>
<td>Tanggal</td>
<td>:</td>
<td><input type="date" name="tgl_kk"/></td><%-- modif value --%>
</tr>
<tr>
<td>Memo</td>
<td>:</td>
<td><textarea name="memo" rows="5" cols="30"></textarea></td>
85
</tr>
<tr>
<td>Akun Kas</td>
<td>:</td>
<td>
<select name="no_akundebet">
<%
qrydeb = stmt.executeQuery("SELECT kode_akun, nama_akun
FROM master_akun");
while (qrydeb.next()) {
akun.setKodeAkun(qrydeb.getString("kode_akun"));
akun.setNamaAkun(qrydeb.getString("nama_akun"));
%>
<option
value="<%=akun.getKodeAkun()%>"><%=akun.getKodeAkun()%>
<%=akun.getNamaAkun()%></option>
<% } %>
</select>
</td>
86
</tr>
<tr>
<td>Nominal</td>
<td>:</td>
<td><input type="text" name="nominal"/></td>
</tr>
<tr>
<td align="center" colspan="3"><input type="submit" name="aksi"
value="Insert" class="button"/></td>
</tr>
</table>
</form>
<br>
<table border="0" cellpadding="0" cellspacing="0">
<tr class="head">
<td>No Kas Keluar</td>
<td>Tanggal Kas Keluar</td>
<td>Memo</td>
87
<td>Akun</td>
<td>Nominal</td>
<td>Action</td>
</tr>
<%
rs = stmt.executeQuery("SELECT kas_out.no_kk, kas_out.tgl_kk,
kas_out.memo, kas_out_detail.kode_akun, kas_out_detail.nominal "
+ "FROM kas_out "
+ "INNER JOIN kas_out_detail "
+ "ON kas_out.no_kk=kas_out_detail.no_kk");
while (rs.next()) {
out.println("<tr class=isi>"
+ "<td>" + rs.getString(1) + "</td>"
+ "<td>" + rs.getString(2) + "</td>"
+ "<td>" + rs.getString(3) + "</td>"
+ "<td>" + rs.getString(4) + "</td>"
+ "<td>" + rs.getString(5) + "</td>"
+ "<td><a href=kasKeluarServlet?aksi=Delete&no_kk=" +
rs.getString(1) + ">Hapus</a></td>"
88
+ "</tr>");
}
%>
</table>
B. Blackbox Testing
Tabel III.18.
Hasil Pengujian Blackbox Testing Pendaftaran
No. Skenario Pengujian Test Case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1. Mengisi keseluruhan
data yang benar
kemudian klik
tombol insert
Tanggal
Pendaftaran:
05/05/19
Paket: P001
– Paket
Dasar 10 Jam
Kendaraan:
Toyota
Avanza –
Manual
Instruktur:
Azaini
Kode Siswa:
S0024
Nama Siswa:
B A Rory
Angga Surya
No HP:
0812916352
30
Nominal:
IDR
150,000.-
Sistem akan
menerima
akses
tambah
pendaftaran
baru
dan
menampilkan
pesan “data
telah
ditambahkan
”
Sesuai
harapan
Valid
2. Melakukan hapus
data pendaftaran
dengan
mengklik hapus
Sistem akan
menampilka
n
pesan “Data
telah
dihapus”
Sesuai
harapan Valid
89
C. Spesifikasi Hardware dan Software
Tabel III.19.
Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Windows 7 Ultimate 64-bit
Processor Intel Core i3-23700M CPU @ 2.50GHz
RAM 2 GB
Harddisk 465 GB
Monitor 14” LED Display
Keyboard Standard
Mouse Standard
Software
Kebutuhan menjalankan aplikasi secara lokal:
Bahasa Pemrograman : Java Netbeans IDE 8.2
Aplikasi Pendukung : XAMPP
DBMS : MySQL (phpMyAdmin)
Anti Virus : Smadav
90
3.6. Struktur Kode
1. Kode Akun
Struktur:
Contoh:
Klasifikasi Sub Klasifikasi Nomor Urut
Akun Akun Akun
2. Kode Kendaraan
Struktur:
Contoh:
Identitas Nomor Urut
Kendaraan Kendaraan
3. Kode Siswa
Struktur:
Contoh:
Identitas Nomor Urut
Siswa Siswa
9 9 9 9 9
1 1 0 2 0
X 9 9 9
M 0 0 1
X 9 9 9 9
S 0 0 0 1
91
4. Kas Masuk
Struktur:
Contoh:
Identitas Nomor Urut
Kas Masuk Kas Masuk
5. Paket
Struktur:
Contoh:
Identitas Nomor Urut
Paket Paket
6. Pembayaran
Struktur:
Contoh:
Identitas Nomor Urut
Pembayaran Pembayaran
X X 9 9 9 9 9 9 9 9
K M 0 0 0 0 0 0 0 1
X 9 9 9
P 0 0 1
X X 9 9 9 9 9 9 9 9
P B 0 0 0 0 0 0 0 1
92
7. Pendaftaran
Struktur:
Contoh:
Klasifikasi Nomor Urut
Pendaftaran Pendaftaran
8. User
Struktur:
Contoh:
Klasifikasi Nomor Urut
User User
X X 9 9 9 9 9 9 9 9
P D 0 0 0 0 0 0 0 1
X 9 9 9 9
S 0 0 0 1
Recommended