bab iii pembahasan · izin opersional secara resmi dari kantor wilayah depertemen agama provinsi...
TRANSCRIPT
26
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Pengelolaan keuangan pada Madrasah Tsanawiyah (MTs) Al-Fatah Pabuaran
terdapat aturan yang ditentukan, dalam hal ini struktur organisasi yang
menggambarkan garis perintah dan penerimaan perintah serta fungsi-fungsi
pelaksanaan tersebut sehingga semua menjadi lancar. Penulis akan menerangkan
sejarah dan struktur organisasi di tempat penulis melakukan riset untuk penyusunan
tugas akhir ini, yaitu sebagai berikut:
3.1.1. Sejarah Perusahaan
MTs. Al-Fatah Pabuaran yang terletak di Kp. Siluman Krajan RT 06/02, Desa
Siluman, Kecamatan Pabuaran, Kabupaten Subang Jawa Barat, didirikan pada awal
tahun 2008, berdiri diatas lahan seluas 1860 m2 yang berasal dari tanah keluarga
besar Bapak H. Abdul Fatah (Almarhum) atas persetujuan putra-putri beliau, tanah
tersebut di wakafkan untuk kepentingan pendidikan, sosial dan keagamaan dengan
Nadzir Bapak K.H. Sayuti Maksudi, kemudian atas kesepakatan para tokoh agama di
desa Siluman pada tanggal 13 Agustus 2007 didirikan Yayasan Pendidikan Islam Al-
Fatah yang dipimpin oleh Sdr. Mujahid Nasirudin, S.Ag, Nomor pendirian 04
Notaris Endah, SH.
Dengan bantuan swadaya masyarakat serta dukungan dari keluarga besar
muwakif maka berdiri sekolah swasta setahap Sekolah Lanjutan Tingkat Pertama
27
(SLTP) atau Madrasah Tsanawiyah (MTs) di bawah naungan Departeman Agama
yang bercirikan khas pendidikan berkarater Islam yang diberi nama MTs Al-Fatah,
dengan hanya fasilitas 3 ruang kelas yang sederhana, jumlah siswa awal pendirian
hanya 23 Siswa, lumlah staf pengajar 12 orang guru honor dan dipimpin 1 orang
guru PNS yang bertugas sebagai kepala madrasah yaitu Sdr. Drs. Yusuf
Satori, maka proses pendidikan dan kegiatan belajar mengajar mulai beroperasi.
Izin opersional secara resmi dari kantor wilayah Depertemen Agama provinsi
Jawa Barat keluar pada tanggal 8 oktober 2008 dengan nomor statistik madrasah
(nsm) 12.12.32.13.00.21, sedangkan dari dinas pendidikan Kabupaten Subang keluar
Nomor Pokok Statistik Nasional (NPSN) 20254598. maka secara resmi MTs Al-
Fatah terdaftar sebagai sekolah swasta yang siap ikut berpartisipasi dalam
mewujudkan program pemerintah di bidang pendidikan sesuai dengan amanat UUD
1945 yaitu program mencerdaskan kehidupan bangsa menuju masyarakat yang adil
dan makmur.
MTs Al-Fatah Pabuaran memiliki visi yaitu “Terwujudnya peserta didik yang
unggul dalam prestasi berdasarkan iman dan taqwa, cerdas, kretaif, dan inovatif
dalam ilmu dan teknologi serta memiliki keunggulan lokal mapun global yang
menjadi harapan masyarakat indonesia”. Sedangkan misi yang dijalankan adalah
sebagai berikut:
1. Berperan secara aktif sebagai agent of change dan memberikan
pendidikan serta pembinaan terbaik kepada para murid.
2. Mendidik generasi muda berbudi luhur, taqwa kepada Tuhan Yang Maha Esa.
3. Mendidik generasi muda agar cerdas, kreatif, dan bertanggung jawab.
28
3.1.2. Struktur Organisasi dan Fungsi
Sumber: MTs. Al-Fatah Pabuaran
Gambar III.1.
Struktur Organisasi MTs. Al-Fatah Pabuaran
Dalam struktur organisasi pada masing-masing jabatan mempunyai tanggung
jawab dan wewenang yang berbeda sesuai bidangnya, Adapun fungsi dari tiap-tiap
bagian adalah sebagai berikut:
1. Kepala Yayasan
Secara prinsip yaitu sebagai pemegang kekuasaan tertinggi di Yayasan Pendidikan
Islam Al-Fatah ini, umumnya dewan pembina ini dilakukan secara bersama-sama
dengan seluruh anggota pengurus yayasan untuk menentukan kebijakan atau
keputusan yang akan diterapkan pada Yayasan Pendidikan Islam Al-Fatah ini.
29
2. Kepala Sekolah
Peran Kepala Sekolah yaitu mengawasi setiap kinerja para pegawai serta
mengelola perkembangan baik dalam proses belajar mengajar maupun dalam
keadminitrasian MTs. Al-Fatah Pabuaran.
3. Bendahara
Peran Bendahara berperan sebagai Bagian Adm. Keuangan yang mengelola
keuangan pada MTs. Al-Fatah Pabuaran.
4. Tata Usaha (TU)
Peran tata usaha yaitu untuk mengelola mengenai keadministrasian dalam surat-
menyurat, pencatatan kas masuk harian, kas keluar harian dan pembuatan
proposal serta lain-lain.
5. BK (Bimbingan Konseling)
Secara garis besar peran guru BK (Bimbingan Konseling) adalah membantu
pengumpulan informasi yang diperlukan dalam rangka penilaian pelayanan
bimbingan dan konseling serta upaya tindak lanjutnya serta berpartisipasi khusus
dalam kegiatan penanganan masalah siswa/i.
6. Wali Kelas
Memiliki peran sebagai orang yang dapat mengatasi masalah-masalah yang ada di
dalam kelas serta mampu memberi berbagai pelatihan kepada siswa/i yang
mendorong timbulnya kesadaran diri.
7. Guru
Peran Guru yaitu mengajar siswa/i MTs. Al-Fatah Pabuaran.
30
8. Siswa
Peran siswa/i MTs. Al-Fatah Pabuaran yaitu belajar dengan sungguh-sungguh,
menghormati guru dan mentaati peraturan sekolah.
3.2. Tinjauan Kasus
3.2.1. Proses Bisnis Sistem Berjalan
Pada prosedur sistem berjalan ini ada beberapa prosedur pengelolaan keuangan
yang ditetapkan pada MTs. Al-Fatah Pabuaran adalah sebagai berikut:
1. Proses Penerimaan Kas
a. Pendaftaran Siswa Baru
Orang tua siswa baru mengumpulkan form persyaratan registrasi kepada
bagian tata usaha, lalu data siswa baru diproses oleh bagian tata usaha dengan
mencatatkan nama siswa pada buku pendaftaran peserta didik baru dan buku
induk siswa baru lalu bagian tata usaha mengarsipkan form registrasi siswa
baru. Siswa baru mendapatkan kwitansi pembayaran registrasi.
a. Penerimaan Donasi
Calon donatur yang ingin menyumbang atau memberikan donasi dapat datang
langsung ke MTs. Al-Fatah Pabuaran dan menemui bagian tata usaha. Setelah
itu calon donatur dapat langsung memberikan donasi ke bagian tata usaha dan
bagian tata usaha akan menerima donasi dari donatur dan mencatatnya kedalam
buku penerimaan donasi. Lalu bagian tata usaha akan membuat kwitansi dan
menyerahkannya kepada donatur sebagai bukti telah memberikan donasi.
b. Dana BOS atau BSM
Kepala sekolah menerima sejumlah uang dari dana BOS dan BSM lalu setelah
itu uang akan diberikan kepada bendahara dan bendahara akan mencatat
penerimaan dana BOS dan BSM tersebut kedalam buku penerimaan kas.
31
2. Proses Pengeluaran Kas
Semua bentuk pengeluaran seperti pembayaran listrik dan internet, pembelian alat
tulis kantor, transportasi guru kecuali penggajian karyawan dicatat oleh bagian
tata usaha kedalam buku kas yang dilampiri dengan nota pembayaran untuk listrik
dan internet serta nota pembelian untuk alat tulis kantor. Untuk teknis bagian tata
usaha harus membuat detail pengeluaran kas yang dibutuhkan, lalu bagian tata
usaha menyerahkan detail kebutuhan pengeluaran kas tersebut ke bendahara untuk
permintaan dana dan bendahara akan memberikan langsung sejumlah uang ke
bagian tata usaha sesuai dengan detail kebutuhan pengeluaran kas yang dibuat
oleh bagian tata usaha.
3. Proses Pembuatan Laporan
Bagian tata usaha menyerahkan laporan penerimaan pembayaran siswa baru dan
penerimaan donasi kecuali dana BOS dan BSM dan laporan pengeluaran kas
seperti pembayaran listrik dan internet, alat tulis kantor dan transportasi guru
terkecuali gaji karyawan dilengkapi dengan nota atau kwitansi dari bukti
penerimaan maupun pembayaran yang diserahkan kepada bendahara untuk di olah
kembali menjadi laporan penerimaan dan pengeluaran kas bulanan. laporan
penerimaan dan pengeluaran kas di serahkan kepada kepala sekolah untuk di
periksa dan di tandatangani, kemudian laporan tersebut di kembalikan ke
bendahara untuk di stempel dan di arsipkan.
3.2.2. Activity Diagram
Activity diagram sistem berjalan pada MTs. Al-Fatah Pabuaran dibawah ini
menggambarkan sistem yang berjalan pada proses peenerimaan kas, pengeluaran kas
serta proses pembuatan laporan yaitu:
32
1. Proses Penerimaan Kas
a. Pendaftaran Siswa Baru
Gambar III.2.
Activity Diagram Pendaftaran Siswa Baru
33
b. Penerimaan Donasi
Gambar III.3.
Activity Diagram Penerimaan Donasi
34
c. Dana BOS dan BSM
Gambar III.4.
Activity Diagram Permintaan Dana BOS dan BSM
35
2. Proses Pengeluaran Kas
Gambar III.5.
Activity Diagram Proses Pengeluaran Kas
36
3. Proses Pembuatan Laporan
Gambar III.6.
Activity Diagram Proses Pembuatan Laporan
37
3.2.3. Dokumen Masukan
1. Nama Masukan : Form Pendaftaran Peserta Didik Baru
Fungsi : Sebagai Bukti Pendaftaran
Sumber : Orang Tua Siswa
Tujuan : Tata Usaha
Media : Kertas
Rangkap : 1 Rangkap
Bentuk : Lampiran A-1
2. Nama Masukan : Nota Pembelian
Fungsi : Sebagai Bukti Pembelian Alat Tulis Kantor
Sumber : Toko Alat Tulis Kantor
Tujuan : Tata Usaha
Media : Kertas
Rangkap : 1 Rangkap
Bentuk : Lampiran A-2
3. Nama Masukan : Nota Pembayaran
Fungsi : Sebagai Bukti Pembayaran Listrik dan Internet
Sumber : PLN
Tujuan : Tata Usaha
Media : Kertas
Rangkap : 1 Rangkap
Bentuk : Lampiran A-3
38
3.2.4. Dokumen Keluaran
1. Nama Masukan : Kwitansi Pembayaran
Fungsi : Sebagai Bukti Pembayaran Registrasi
Sumber : Tata Usaha
Tujuan : Orang Tua Siswa
Media : Kertas
Rangkap : 1 Rangkap
Bentuk : Lampiran B-1
2. Nama Masukan : Kwitansi Bukti Donasi
Fungsi : Sebagai Bukti Pemberian Donasi
Sumber : Tata Usaha
Tujuan : Donatur
Media : Kertas
Rangkap : 1 Rangkap
Bentuk : Lampiran B-2
3. Nama Masukan : Slip Gaji
Fungsi : Sebagai Bukti Pembayaran Gaji
Sumber : Bendahara
Tujuan : Karyawan
Media : Kertas
Rangkap : 1 Rangkap
Bentuk : Lampiran B-3
4. Nama Masukan : Laporan Penerimaan Kas
Fungsi : Sebagai Bukti Laporan Penerimaan
Sumber : Bendahara
39
Tujuan : Kepala Sekolah
Media : Kertas
Rangkap : 1 Rangkap
Bentuk : Lampiran B-4
5. Nama Masukan : Laporan Pengeluaran Kas
Fungsi : Sebagai Bukti Laporan Pengeluaran Kas
Sumber : Bendahara
Tujuan : Kepala Sekolah
Media : Cetakan Manual
Rangkap : 1 Rangkap
Bentuk : Lampiran B-5
3.2.5. Permasalahan Pokok
Setelah penulis mempelajari dan mengamati bagaimana sistem pengelolaan
keuangan yang terdapat pada MTs. Al-Fatah Pabuaran, ternyata sistem tersebut
memiliki beberapa masalah yang dihadapi, diantaranya:
1. Pengolahan dan pencatatan data masih dilakukan secara manual, sehingga tingkat
keamanan masih rendah. Serta penyimpanan data arsip masih disimpan dalam
bentuk arsip kertas yang memiliki tingkat hilang dan rusak cukup tinggi.
2. Tidak terdapat laporan keuangan sekolah secara detail.
3.2.6. Pemecahan Masalah
Untuk mengatasi masalah yang terdapat pada MTs. Al-Fatah Pabuaran, penulis
mengajukan penggunaan sebuah sistem arus kas secara terkomputerisasi. Langkah-
langkah yang ingin penulis lakukan adalah sebagai berikut:
40
1. Pengolahan dan pencatatan data masih dilakukan secara manual dapat disikapi
dengan cara pengelolaan data dengan cara dibuatkan sistem yang
terkomputerisasi.
2. Tidak terdapat laporan keuangan sekolah secara detail sehingga dapat disikapi
dengan penulis menyusun laporan pengelolaan keuangan dengan melakukan
penjurnalan terhadap transaksi tersebut.
3.3. Analisis Kebutuhan Software
Analisa kebutuhan software merupakan langkah awal untuk menentukan
gambaran perangkat yang dihasilkan ketika pengembang melaksanakan sebuah
pembuatan software. Perangkat lunak yang baik dan sesuai dengan kebutuhan
pengguna sangat tergantung pada keberhasilan dalam melakukan analisis kebutuhan.
3.3.1. Analisis Kebutuhan
Tahapan analisis, meliputi tahapan analisis kebutuhan fungsionalitas dari
masing-masing pengguna yang berinteraksi langsung terhadap sistem informasi arus
kas.
A. Tata Usaha:
A.1. Tata usaha dapat mengakses login kedalam sistem.
A.2. Tata usaha dapat mengelola master data.
A.3. Tata usaha dapat mengelola data transaksi penerimaan kas.
A.4. Tata usaha dapat mengelola data transaksi pengeluaran kas.
B. Bendahara:
B.1. Bendahara dapat mengakses login kedalam sistem.
B.2. Bendahara dapat mengelola data transaksi penerimaan kas.
41
B.3. Bendahara dapat mengelola data transaksi pengeluaran kas.
B.4. Bendahara dapat melihat laporan arus kas.
B.5. Bendahara dapat melihat laporan jurnal.
C. Kelapa Sekolah:
C.1. Kepala sekolah dapat mengakses login kedalam sistem.
C.2. Kelapa sekolah dapat melihat laporan arus kas.
C.3. Kepala sekolah dapat melihat laporan jurnal.
3.3.2. Use Case Diagram
A. Use case Diagram Tata Usaha
Gambar III.7.
Use Case Diagram Tata Usaha
Tabel III.1.
Deskripsi Use Case Tata Usaha
Use Case Narrative Tata Usaha
Tujuan Mengelola data dan transaksi.
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke halaman
42
utama yang di dalamnya ada master data dan transaksi.
Skenario Utama
Aktor Tata usaha.
Kondisi Awal Aktor membuka aplikasi arus kas.
Aksi Aktor Reaksi Sistem
1. Aktor Memilih Login Sistem akan menampilkan menu utama setelah aktor
memasukkan username, password dan hak akses.
2. Aktor Memilih Master Data Sistem akan menampilkan data-data yang dipilih.
3. Aktor Memilih Data
Transaksi Penerimaan Kas
Sistem akan menampilkan form data transaksi
penerimaan kas.
4. Aktor Memilih Data
Transaksi Pengeluaran Kas
Sistem akan menampilkan form data transaksi
pengeluaran kas.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan
sesuai permintaan.
B. Use Case Diagram Bendahara
Gambar III.8.
Use Case Diagram Bendahara
43
Tabel III.2.
Deskripsi Use Case Bendahara
Use Case Narrative Bendahara
Tujuan Mengelola transaksi dan melihat laporan.
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke halaman
utama yang di dalamnya ada transaksi dan laporan.
Skenario Utama
Aktor Bendahara.
Kondisi Awal Aktor membuka aplikasi arus kas.
Aksi Aktor Reaksi Sistem
1. Aktor Memilih Login Sistem akan menampilkan menu utama setelah aktor
memasukkan username, password dan hak akses.
2. Aktor Memilih Data
Transaksi Penerimaan Kas
Sistem akan menampilkan form data transaksi
penerimaan kas.
3. Aktor Memilih Data
Transaksi Pengeluaran Kas
Sistem akan menampilkan form data transaksi
pengeluaran kas.
4. Aktor Memilih Laporan
Arus Kas
Sistem akan menampilkan laporan arus kas.
5. Aktor Memilih Laporan
Jurnal
Sistem akan menampilkan laporan jurnal.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan
sesuai permintaan.
C. Use Case Diagram Kepala Sekolah
Gambar III.9.
Use Case Diagram Kepala Sekolah
44
Tabel III.3.
Deskripsi Use Case Kepala Sekolah
Use Case Narrative Kepala Sekolah
Tujuan Melihat laporan.
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke halaman
utama yang di dalamnya laporan.
Skenario Utama
Aktor Kepala Sekolah.
Kondisi Awal Aktor membuka aplikasi arus kas.
Aksi Aktor Reaksi Sistem
1. Aktor Memilih Login Sistem akan menampilkan menu utama setelah aktor
memasukkan username, password dan hak akses.
2. Aktor Memilih Laporan
Arus Kas
Sistem akan menampilkan laporan arus kas.
3. Aktor Memilih Laporan
Jurnal
Sistem akan menampilkan laporan jurnal.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan
sesuai permintaan.
45
3.3.3. Activity Diagram
1. Activity Diagram Login
Gambar III.10.
Activity Diagram Login
46
2. Activty Diagram Mengelola Master Data
Gambar III.11.
Activity Diagram Mengelola Master Data
47
3. Activity Diagram Mengelola Data Transaksi Penerimaan Kas
Gambar III.12.
Activity Diagram Mengelola Data Transaksi Penerimaan Kas
48
4. Activity Diagram Mengelola Data Transaksi Pengeluaran Kas
Gambar III.13.
Activity Diagram Mengelola Data Transaksi Pengeluaran Kas
49
5. Activity Diagram Laporan
Gambar III.14.
Activity Diagram Laporan
50
3.4. Desain
3.4.1. Entity Relationship Diagram (ERD)
Gambar III.15.
Entity Relationship Diagram Arus Kas
51
3.4.2. Logical Record Structure (LRS)
Gambar III.16.
Logical Record Structure Arus Kas
3.4.3. Spesifikasi File
a. Spesifikasi File Tabel Admin
Nama Database : admin
Nama File : Data Admin
Tipe File : Master Data
52
Akses File : Random
Panjang Record : 101 Karakter
Field Key : id_user
Tabel III.4.
Spesifikasi File Tabel Admin
No Elemen Data Akronim Tipe Panjang Keterangan
1. Identitas User id_user Varchar 10 Primary Key
2. Nama nama Varchar 45
3. Hak Akses hak_akses Varchar 25
4. Password password Integer 21
b. Spesifikasi File Tabel Data Akun
Nama Database : data_akun
Nama File : Data Akun
Tipe File : Master Data
Akses File : Random
Panjang Record : 30 Karakter
Field Key : id_akun
Tabel III.5.
Spesifikasi File Tabel Data Akun
No Elemen Data Akronim Tipe Panjang Keterangan
1. No Akun id_akun Varchar 15 Primary Key
2. Nama Akun nama_akun text
3. Jenis Akun jenis_akun Varchar 15
53
c. Spesifikasi File Tabel Data Siswa
Nama Database : data_siswa
Nama File : Data Siswa
Tipe File : Master Data
Akses File : Random
Panjang Record : 118 Karakter
Field Key : id_siswa
Tabel III.6.
Spesifikasi File Tabel Data Siswa
No Elemen Data Akronim Tipe Panjang Keterangan
1. Identitas Siswa id_siswa Varchar 15 Primary Key
2. Nama Siswa nama_siswa Varchar 35
3. Kelas kelas Varchar 8
4. Tempat Lahir tempat_lahir Varchar 15
5. Tanggal Lahir tanggal_lahir Date
6. Agama agama Varchar 15
7. Jenis Kelamin jenis_kelamin Varchar 15
8. Alamat alamat Text
9. No Handphone no_hp Varchar 15
d. Spesifikasi File Tabel Jurnal Detail
Nama Database : detail_jurnal
Nama File : Jurnal Detail
Tipe File : Laporan
Akses File : Random
Panjang Record : 80 Karakter
Field Key : no_jurnal
54
Tabel III.7.
Spesifikasi File Tabel Jurnal Detail
No Elemen Data Akronim Tipe Panjang Keterangan
1. No Jurnal no_jurnal Varchar 15 Primary Key
2. Identitas Akun id_akun Varchar 15 Foreign Key
3. Debet debet Integer 25
4. Kredit kredit Integer 25
e. Spesifikasi File Tabel Data Donatur
Nama Database : donatur
Nama File : Data Donatur
Tipe File : Master Data
Akses File : Random
Panjang Record : 130 Karakter
Field Key : id_donatur
Tabel III.8.
Spesifikas File Tabel Data Donatur
No Elemen Data Akronim Tipe Panjang Keterangan
1. Id Donatur id_donatur Varchar 15 Primary Key
2. Nama Donatur nama_donatur Varchar 35
3. Tempat Lahir tempat_lahir Varchar 15
4. Tanggal Lahir tanggal_lahir Date
5. Agama agama Varchar 15
6. Jenis Kelamin jenis_kelamin Varchar 15
7. Alamat alamat Text
8. No Handphone no_hp Varchar 15
9. E-mail email Varchar 20
55
f. Spesifikasi File Tabel Data Jurnal
Nama Database : jurnal
Nama File : Data Jurnal
Tipe File : Master Data
Akses File : Random
Panjang Record : 45 Karakter
Field Key : no_jurnal
Tabel III.9.
Spesifikas File Tabel Data Jurnal
No Elemen Data Akronim Tipe Panjang Keterangan
1. No Jurnal no_jurnal Varchar 15 Primary Key
2. Tanggal tanggal Date
3. No Referensi no_ref Varchar 15
4. Identitas User id_user Varchar 15 Foreign Key
g. Spesifikasi File Tabel Data Karyawan
Nama Database : karyawan
Nama File : Data Karyawan
Tipe File : Master Data
Akses File : Random
Panjang Record : 110 Karakter
Field Key : id_karyawan
56
Tabel III.10.
Spesifikas File Tabel Data Karyawan
No Elemen Data Akronim Tipe Panjang Keterangan
1. Id Karyawan id_karyawan Varchar 15 Primary Key
2. Nama Karyawan nama_karyawan Text
3. Tempat Lahir tempat_lahir Varchar 15
4. Tanggal Lahir tanggal_lahir Date
5. Agama agama Varchar 15
6. Jenis Kelamin jenis_kelamin Varchar 15
7. Alamat alamat Text
8. No Handphone no_hp Varchar 15
9. E-mail email Varchar 35
h. Spesifikasi File Tabel Pengeluaran Kas
Nama Database : kas_keluar
Nama File : Pengeluaran Kas
Tipe File : Transaksi
Akses File : Random
Panjang Record : 94 Karakter
Field Key : no_kk
Tabel III.11.
Spesifikas File Tabel Pengeluaran Kas
No Elemen Data Akronim Tipe Panjang Keterangan
1. No Kas Keluar no_kk Varchar 8 Primary Key
2. Jenis Kas Keluar jenis_kk Varchar 25
3. Tanggal tgl_kk Date
4. Untuk untuk Varchar 35
5. Jumlah jumlah_kk Integer 11
57
6. Memo memo Text
7. Identitas User id_user Varchar 15 Foreign Key
i. Spesifikasi File Tabel Penerimaan Kas
Nama Database : kas_masuk
Nama File : Penerimaan Kas
Tipe File : Transaksi
Akses File : Random
Panjang Record : 89 Karakter
Field Key : no_km
Tabel III.12.
Spesifikas File Tabel Penerimaan Kas
No Elemen Data Akronim Tipe Panjang Keterangan
1. No Kas Masuk no_km Varchar 8 Primary Key
2. Jenis Kas Masuk jenis_km Varchar 25
3. Tanggal tgl_km Date
4. Sumber Sumber_km Varchar 15
5. Jumlah jumlah_km Integer 11
6. Memo memo Text
7. Identitas User id_user Varchar 15 Foreign Key
8. Identitas id Varchar 15
58
3.4.4. Sequence Diagram
1. Sequence Diagram Penerimaan Kas
Gambar III.17.
Sequence Diagram Penerimaan Kas
59
2. Sequence Diagram Pengeluaran Kas
Gambar III.18.
Sequence Diagram Pengeluaran Kas
60
3.4.5. Deployment Diagram
Gambar III.19.
Deployment Diagram Arus Kas
3.4.6. User Interface
1. Halaman Login
Gambar III.20.
User Interface Halaman Login
61
2. Halaman Menu Utama
Gambar III.21.
User Interface Halaman Menu Utama
3. Halaman Master Data
Gambar III.22.
User Interface Halaman Master Data
62
4. Form Data Admin
Gambar III.23.
User Interface Form Data Admin
5. Form Data Akun
Gambar III.24.
User Interface Form Data Akun
63
6. Form Data Donatur
Gambar III.25.
User Interface Form Data Donatur
7. Form Data Karyawan
Gambar III.26.
User Interface Form Data Karyawan
64
8. Form Data Siswa
Gambar III.27.
User Interface Form Data Siswa
9. Halaman Transaksi
Gambar III.28.
User Interface Halaman Transaksi
65
10. Form Penerimaan Kas
Gambar III.29.
User Interface Form Penerimaan Kas
11. Form Pengeluaran Kas
Gambar III.30.
User Interface Form Pengeluaran Kas
66
12. Halaman Laporan
Gambar III.31.
User Interface Halaman Laporan
13. Laporan Arus Kas
Gambar III.32.
User Interface Laporan Arus Kas
67
14. Laporan Jurnal
Gambar III.33.
User Interface Laporan Jurnal
3.5. Implementasi
3.5.1. Code Generation
1. Code Generation Penerimaan Kas
import java.awt.Toolkit;
import java.io.File;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
68
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Samsung
*/
public class fkas_masuk extends javax.swing.JFrame {
koneksi kon = new koneksi();
String No = "";
/**
* Creates new form fkas_masuk
*/
69
public fkas_masuk(String ha) {
initComponents();
setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - getWidth())
/ 2,
(Toolkit.getDefaultToolkit().getScreenSize().height - getHeight()) / 2);
//berada ditengah layar
kon.getConnection();
regrid();
jlevel.setText(ha);
if (ha.equals("Bendahara")) {
jComboBox1.addItem("Dana BOS dan BSM");
jTextField6.setVisible(false);
jButton1.setVisible(false);
}
jlevel.setText(ha);
if (ha.equals("Tata Usaha")) {
jComboBox1.addItem("Donatur");
jComboBox1.addItem("Pendaftaran Siswa/i");
}
jTextField1.setText(no_kas_auto());
}
private String no_kas_auto() {
String no = "jTextField1.setText(no_kas_auto());\n"
+ "";
70
String Sql = "SELECT * FROM kas_masuk ORDER BY substr(no_km, 3,5)
* 1 DESC limit 1 ";
try {
Statement st = kon.conn.createStatement();
ResultSet rs = st.executeQuery(Sql);
if (rs.next()) {
no = rs.getString("no_km");
no = no.substring(2, 5);
no = "KM" + String.format("%03d", Integer.parseInt(no) + 1);
} else {
no = "KM001";
}
return no;
} catch (SQLException ex) {
Logger.getLogger(fkas_masuk.class.getName()).log(Level.SEVERE, null,
ex);
return "";
}
}
private String no_jurnal_auto() {
String no = "";
String Sql = "SELECT * FROM jurnal ORDER BY substr(no_jurnal, 3,5) *
1 DESC limit 1 ";
try {
Statement st = kon.conn.createStatement();
71
ResultSet rs = st.executeQuery(Sql);
if (rs.next()) {
no = rs.getString("no_jurnal");
no = no.substring(2, 5);
no = "JU" + String.format("%03d", Integer.parseInt(no) + 1);
} else {
no = "JU001";
}
return no;
} catch (SQLException ex) {
Logger.getLogger(fkas_masuk.class.getName()).log(Level.SEVERE, null,
ex);
return "";
}
}
/**
* 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() {
72
jPanel1 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
jPanel4 = new javax.swing.JPanel();
jLabel7 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jComboBox1 = new javax.swing.JComboBox<>();
jTextField3 = new javax.swing.JTextField();
jTextField4 = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jbsimpan = new javax.swing.JButton();
jbbatal = new javax.swing.JButton();
jbubah = new javax.swing.JButton();
jbcari = new javax.swing.JButton();
jbhapus = new javax.swing.JButton();
jLabel9 = new javax.swing.JLabel();
jTextField5 = new javax.swing.JTextField();
jDateChooser1 = new com.toedter.calendar.JDateChooser();
73
jbkeluar = new javax.swing.JButton();
jlevel = new javax.swing.JLabel();
jbcetak = new javax.swing.JButton();
jLabel8 = new javax.swing.JLabel();
jTextField6 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jLabel6 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel4.setBackground(new java.awt.Color(255, 255, 255));
jPanel4.setMaximumSize(new java.awt.Dimension(40000, 40000));
jLabel7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/logo
al fatah.jpg"))); // NOI18N
jLabel10.setFont(new java.awt.Font("Arial Black", 0, 27)); // NOI18N
jLabel10.setText("YAYASAN AL-FATAH PABUARAN (YAFATA)");
jPanel3.setBackground(new java.awt.Color(102, 255, 102));
jPanel3.setMaximumSize(new java.awt.Dimension(40000, 40000));
jPanel3.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jLabel1.setText("No Bukti Kas Masuk");
jPanel3.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20,
20, 140, 30));
jLabel2.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jLabel2.setText("Jenis Pemasukan");
74
jPanel3.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(20,
60, 138, 30));
jLabel3.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jLabel3.setText("Tanggal");
jPanel3.add(jLabel3, new
org.netbeans.lib.awtextra.AbsoluteConstraints(350, 60, 90, 30));
jLabel4.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jLabel4.setText("Dari");
jPanel3.add(jLabel4, new
org.netbeans.lib.awtextra.AbsoluteConstraints(350, 100, 90, 30));
jLabel5.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jLabel5.setText("Sebesar");
jPanel3.add(jLabel5, new
org.netbeans.lib.awtextra.AbsoluteConstraints(350, 140, 90, 30));
jTextField1.setEditable(false);
jTextField1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
});
jPanel3.add(jTextField1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(160, 20, 440, 31));
jComboBox1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
75
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel<>(new
String[] { "..... Pilih ....." }));
jComboBox1.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
jComboBox1FocusLost(evt);
}
});
jComboBox1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jComboBox1ActionPerformed(evt);
}
});
jPanel3.add(jComboBox1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(160, 60, 170, 30));
jTextField3.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
jTextField3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField3ActionPerformed(evt);
}
});
jPanel3.add(jTextField3, new
org.netbeans.lib.awtextra.AbsoluteConstraints(440, 100, 160, 30));
jTextField4.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
jTextField4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
76
jTextField4ActionPerformed(evt);
}
});
jPanel3.add(jTextField4, new
org.netbeans.lib.awtextra.AbsoluteConstraints(440, 140, 160, 30));
jTable1.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null, null},
{null, null, null, null, null, null},
{null, null, null, null, null, null},
{null, null, null, null, null, null}
},
new String [] {
"No Bukti Kas Masuk", "Jenis Pemasukan", "Tanggal", "Dari",
"Sebesar", "Memo"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, true, true
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
77
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTable1MouseClicked(evt);
}
});
jScrollPane1.setViewportView(jTable1);
jPanel3.add(jScrollPane1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(20, 370, 1060, 104));
jbsimpan.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jbsimpan.setText("Simpan");
jbsimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbsimpanActionPerformed(evt);
}
});
jPanel3.add(jbsimpan, new
org.netbeans.lib.awtextra.AbsoluteConstraints(230, 250, 80, -1));
jbbatal.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jbbatal.setText("Batal");
jbbatal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbbatalActionPerformed(evt);
}
});
78
jPanel3.add(jbbatal, new org.netbeans.lib.awtextra.AbsoluteConstraints(340,
250, 80, -1));
jbubah.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jbubah.setText("Ubah");
jbubah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbubahActionPerformed(evt);
}
});
jPanel3.add(jbubah, new org.netbeans.lib.awtextra.AbsoluteConstraints(450,
250, 80, -1));
jbcari.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jbcari.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cari
kecil.png"))); // NOI18N
jbcari.setText("Cari");
jbcari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbcariActionPerformed(evt);
}
});
jPanel3.add(jbcari, new org.netbeans.lib.awtextra.AbsoluteConstraints(860,
310, 95, 40));
jbhapus.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jbhapus.setIcon(new javax.swing.ImageIcon(getClass().getResource("/delete
kecil copy.png"))); // NOI18N
79
jbhapus.setText("Hapus");
jbhapus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbhapusActionPerformed(evt);
}
});
jPanel3.add(jbhapus, new
org.netbeans.lib.awtextra.AbsoluteConstraints(980, 310, -1, 40));
jLabel9.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jLabel9.setText("Memo");
jPanel3.add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(20,
180, 140, 30));
jTextField5.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
jTextField5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField5ActionPerformed(evt);
}
});
jPanel3.add(jTextField5, new
org.netbeans.lib.awtextra.AbsoluteConstraints(160, 180, 440, 30));
jDateChooser1.setDateFormatString("yyyy-MM-dd");
jDateChooser1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
jPanel3.add(jDateChooser1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(440, 60, 160, 30));
80
jbkeluar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exit
kecil.png"))); // NOI18N
jbkeluar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbkeluarActionPerformed(evt);
}
});
jPanel3.add(jbkeluar, new
org.netbeans.lib.awtextra.AbsoluteConstraints(1060, 10, 23, 25));
jlevel.setFont(new java.awt.Font("Tahoma", 2, 11)); // NOI18N
jlevel.setText("ha");
jPanel3.add(jlevel, new org.netbeans.lib.awtextra.AbsoluteConstraints(20,
570, -1, -1));
jbcetak.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jbcetak.setText("Cetak");
jbcetak.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbcetakActionPerformed(evt);
}
});
jPanel3.add(jbcetak, new org.netbeans.lib.awtextra.AbsoluteConstraints(990,
500, 90, 30));
jLabel8.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jLabel8.setText("No ID");
81
jPanel3.add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(20,
100, 140, 31));
jTextField6.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
jTextField6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField6ActionPerformed(evt);
}
});
jPanel3.add(jTextField6, new
org.netbeans.lib.awtextra.AbsoluteConstraints(160, 100, 119, 30));
jButton1.setFont(new java.awt.Font("Tahoma", 0, 8)); // NOI18N
jButton1.setText("OK");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jPanel3.add(jButton1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(280, 100, 45, 30));
jLabel6.setFont(new java.awt.Font("Bodoni MT", 0, 33)); // NOI18N
jLabel6.setText("Form Data Penerimaan Kas");
jLabel11.setFont(new java.awt.Font("Arial Black", 0, 27)); // NOI18N
jLabel11.setText("MADRASAH TSANAWIYAH (MTs)");
82
javax.swing.GroupLayout jPanel4Layout = new
javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(jLabel7,
javax.swing.GroupLayout.PREFERRED_SIZE, 199,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(47, 47, 47)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addComponent(jLabel10)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(70, 70, 70)
.addComponent(jLabel11))
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(110, 110, 110)
.addComponent(jLabel6)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel4Layout.createSequentialGroup()
83
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jPanel3,
javax.swing.GroupLayout.PREFERRED_SIZE, 1101,
javax.swing.GroupLayout.PREFERRED_SIZE))
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addComponent(jLabel7,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 142,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(11, 11, 11)
.addComponent(jLabel10)
.addGap(6, 6, 6)
.addComponent(jLabel11)
.addGap(6, 6, 6)
.addComponent(jLabel6)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
84
.addComponent(jPanel3,
javax.swing.GroupLayout.PREFERRED_SIZE, 591,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
javax.swing.GroupLayout jPanel2Layout = new
javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
85
javax.swing.GroupLayout jPanel1Layout = new
javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jPanel2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
);
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
86
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
String s = jTextField6.getText();
//JOptionPane.showMessageDialog(this, s);
kon.rs = kon.st.executeQuery("select * from data_siswa where id_siswa='"
+ s + "' ");
87
if (kon.rs.next()) { //jika ditemukan
//JOptionPane.showMessageDialog(this, "Data Ditemukan");
// String date = (kon.rs.getString(3));
jTextField6.setText(kon.rs.getString(1));
//jComboBox1.setSelectedItem(kon.rs.getString(2));
//Date date2 = new SimpleDateFormat("yyy-MM-DD").parse(date);
//jDateChooser1.setDate(date2);
jTextField3.setText(kon.rs.getString(2));
} else {
// JOptionPane.showMessageDialog(this,"Data Tidak Ditemukan");
kon.rs = kon.st.executeQuery("select * from donatur where
id_donatur='" + s + "' ");
if (kon.rs.next()) { //jika ditemukan
//JOptionPane.showMessageDialog(this, "Data Ditemukan");
// String date = (kon.rs.getString(3));
jTextField6.setText(kon.rs.getString(1));
//jComboBox1.setSelectedItem(kon.rs.getString(2));
//Date date2 = new SimpleDateFormat("yyy-MM-DD").parse(date);
//jDateChooser1.setDate(date2);
jTextField3.setText(kon.rs.getString(2));
}
}
} catch (Exception s) {
JOptionPane.showMessageDialog(this, s);
88
}
}
private void jTextField6ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jbcetakActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
String FileReport = "src/kwitansi.jasper";
HashMap parameter = new HashMap();
parameter.put("no", this.No);
File file = new File(FileReport);
JasperReport jr = (JasperReport) JRLoader.loadObject(file);
JasperPrint jrp = JasperFillManager.fillReport(jr, parameter,
kon.getConnection());
JasperViewer.viewReport(jrp, false);
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void jbkeluarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}
private void jTextField5ActionPerformed(java.awt.event.ActionEvent evt) {
89
// TODO add your handling code here:
}
private void jbhapusActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jbsimpan.setEnabled(true);
jbubah.setEnabled(true); //jika button ingin menghilng ganti jadi setVisible
jbhapus.setEnabled(true);
jbbatal.setEnabled(true);
jbkeluar.setEnabled(true);
jbcari.setEnabled(true);
jbcetak.setEnabled(true);
try {
kon.st.execute("delete from kas_masuk where no_km='" +
jTextField1.getText() + "'");
JOptionPane.showMessageDialog(this, "Data Dihapus");
} catch (Exception v) {
JOptionPane.showMessageDialog(this, v);
}
}
private void jbcariActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
String s = JOptionPane.showInputDialog(this, "Cari Data Kas Masuk",
"Pencarian", JOptionPane.QUESTION_MESSAGE);
//JOptionPane.showMessageDialog(this, s);
90
kon.rs = kon.st.executeQuery("select * from kas_masuk where no_km='"
+ s + "'");
if (kon.rs.next()) { //jika ditemukan
//JOptionPane.showMessageDialog(this, "Data Ditemukan");
String date = (kon.rs.getString(3));
jTextField1.setText(kon.rs.getString(1));
jComboBox1.setSelectedItem(kon.rs.getString(2));
Date date2 = new SimpleDateFormat("yyy-MM-DD").parse(date);
jDateChooser1.setDate(date2);
jTextField3.setText(kon.rs.getString(4));
jTextField4.setText(kon.rs.getString(5));
jTextField5.setText(kon.rs.getString(6));
} else {
JOptionPane.showMessageDialog(this, "Data Tidak Ditemukan");
}
} catch (Exception s) {
}
jbsimpan.setEnabled(true);
jbubah.setEnabled(true); //jika button ingin menghilng ganti jadi setVisible
jbhapus.setEnabled(true);
jbbatal.setEnabled(true);
jbkeluar.setEnabled(true);
jbcari.setEnabled(true);
jbcetak.setEnabled(true);
}
91
private void jbubahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jTextField1.requestFocus();
jbsimpan.setEnabled(true);
jbubah.setEnabled(true); //jika button ingin menghilng ganti jadi setVisible
jbhapus.setEnabled(true);
jbbatal.setEnabled(true);
jbkeluar.setEnabled(true);
jbcari.setEnabled(true);
jbcetak.setEnabled(true);
}
private void jbbatalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jbsimpan.setEnabled(true);
jbubah.setEnabled(true); //jika button ingin menghilng ganti jadi setVisible
jbhapus.setEnabled(true);
jbbatal.setEnabled(true);
jbkeluar.setEnabled(true);
jbcari.setEnabled(true);
jbcetak.setEnabled(true);
bersih();
}
private void jbsimpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (jTextField1.getText().equals("")) {
92
JOptionPane.showMessageDialog(this, "Data Belum Terisi");
} else {
jbsimpan.setEnabled(true);
jbubah.setEnabled(true); //jika button ingin menghilng ganti jadi
setVisible
jbhapus.setEnabled(true);
jbbatal.setEnabled(true);
jbkeluar.setEnabled(true);
jbcari.setEnabled(true);
jbcetak.setEnabled(true);
Date ss = jDateChooser1.getDate();
SimpleDateFormat ttg = new SimpleDateFormat("yyyy-MM-dd");
String vv = ttg.format(ss);
String us = "tes";
try {
String s = "insert into kas_masuk values('" + jTextField1.getText() +
"','" + jComboBox1.getSelectedItem() + "','" + vv + "','" + jTextField3.getText() +
"','" + jTextField4.getText() + "','" + jTextField5.getText() + "','" + us + "','" +
jTextField6.getText() + "')";
kon.st.execute(s);
} catch (Exception v) {
//JOptionPane.showMessageDialog(this, v);
}
String no = no_jurnal_auto();
93
try {
String s2 = "INSERT INTO `jurnal` (`no_jurnal`, `tanggal`, `no_ref`,
`id_user`) VALUES ('" + no + "',now(),'" + jTextField1.getText() + "','" + us +
"')";
System.out.println(s2);
kon.st.execute(s2);
String s3 = "insert into detail_jurnal values ('" + no + "','5-111','" +
jTextField4.getText() + "','0'),('" + no + "','1-111','0','" + jTextField4.getText() +
"')";
kon.st.execute(s3);
} catch (Exception k) {
System.out.println(k.getMessage());
JOptionPane.showMessageDialog(this, k);
}
try {
kon.st.execute("update kas_masuk set jumlah_km = '" +
jTextField4.getText() + "',tgl_km = '" + vv + "',sumber_km = '" +
jTextField3.getText() + "', memo = '" + jTextField5.getText() + "' where no_km =
'" + jTextField1.getText() + "'");
} catch (Exception b) {
}
JOptionPane.showMessageDialog(this, "Data Tersimpan");
jTextField1.setText(no_kas_auto());
jTextField3.setText("");
jTextField4.setText("");
94
jTextField5.setText("");
bersih();
regrid();
}
}
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int row = jTable1.getSelectedRow();
this.No = jTable1.getModel().getValueAt(row, 0).toString();
}
private void jTextField4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jTextField3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jComboBox1FocusLost(java.awt.event.FocusEvent evt) {
// TODO add your handling code here:
//JOptionPane.showMessageDialog(this, "jj");
}
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
95
}
private void regrid() {
DefaultTableModel tkas_masuk = new DefaultTableModel();
tkas_masuk.addColumn("No Bukti Kas Masuk");
tkas_masuk.addColumn("Jenis Pemasukan");
tkas_masuk.addColumn("Tanggal");
tkas_masuk.addColumn("Dari");
tkas_masuk.addColumn("Sebesar");
tkas_masuk.addColumn("Memo");
try {
kon.rs = kon.st.executeQuery("select * from kas_masuk order by no_km");
while (kon.rs.next()) {
tkas_masuk.addRow(new Object[]{
kon.rs.getString(1),
kon.rs.getString(2),
kon.rs.getString(3),
kon.rs.getString(4),
kon.rs.getString(5),
kon.rs.getString(6),});
}
} catch (Exception r) {
JOptionPane.showMessageDialog(this, r);
}
jTable1.setModel(tkas_masuk);
}
96
private void bersih() {
jTextField1.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code
(optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default
look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
97
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(fkas_masuk.class.getName()).log(java.util.log
ging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(fkas_masuk.class.getName()).log(java.util.log
ging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(fkas_masuk.class.getName()).log(java.util.log
ging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(fkas_masuk.class.getName()).log(java.util.log
ging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new fkas_masuk("").setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JComboBox<String> jComboBox1;
98
private com.toedter.calendar.JDateChooser jDateChooser1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel 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.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextField6;
private javax.swing.JButton jbbatal;
private javax.swing.JButton jbcari;
99
private javax.swing.JButton jbcetak;
private javax.swing.JButton jbhapus;
private javax.swing.JButton jbkeluar;
private javax.swing.JButton jbsimpan;
private javax.swing.JButton jbubah;
private javax.swing.JLabel jlevel;
// End of variables declaration
}
3.5.2. Blackbox Testing
1. Pengujian Terhadap Halaman Login Admin
Tabel III.13.
Hasil Pengujian Blackbox Testing Halaman Login Admin
No Skenario Pengujian Test Case Hasil yang
Diharapkan
Hasil
Pengujian Kesimpulan
1 Username dan
password tidak diisi
kemudian klik
tombol login
Username:
(kosong)
Password:
(kosong)
Sistem akan
menolak dan
menampilkan
Pesan “Login
Gagal !!”
Sesuai
Harapan Valid
2 Menginput username
dan password tidak
diisi kemudian klik
tombol login
Username:
tata.usaha
Password:
(kosong)
Sistem akan
menolak dan
menampilkan
Pesan “Login
Gagal !!”
Sesuai
Harapan Valid
3 Username tidak diisi
atau kosong dan
password diisi
kemudian klik
tombol login
Username:
(kosong)
Password:
123
Sistem akan
menolak dan
menampilkan
Pesan “Login
Gagal !!”
Sesuai
Harapan Valid
4 Menginput dengan
kondisi salah satu
data benar dan salah
satu data salah
kemudian klik
tombol login
Username:
tata.usaha
Password:
321(salah)
Sistem akan
menolak dan
menampilkan
Pesan “Login
Gagal !!”
Sesuai
Harapan Valid
100
5 Menginput
Username dan
password yang benar
kemudian klik
tombol login
Username:
tata.usaha
Password:
123(benar)
Sistem
menerima
akses login
dan kemudian
masuk ke
menu utama
sebagai admin
Sesuai
Harapan Valid
2. Pengujian Terhadap Form Penerimaan Kas
Tabel III.14.
Hasil Pengujian Blackbox Testing Form Penerimaan Kas
No Skenario Pengujian Test Case Hasil yang
Diharapkan
Hasil
Pengujian Kesimpulan
1 Klik transaksi
penerimaan kas lalu
no bukti kas masuk
dan tanggal
dikosongkan
kemudian klik
tombol simpan
No bukti
kas masuk:
(kosong)
Tanggal:
(kosong)
Sistem tidak
menyimpan data
dan akan
menampilkan
pesan “Data
Belum Terisi”
Sesuai
Harapan Valid
2 Klik transaksi
penerimaan kas lalu
no bukti kas masuk
diisi dan tanggal
dikosongkan
kemudian klik
tombol simpan
No bukti
kas masuk:
KM001
Tanggal:
(kosong)
Sistem tidak
menyimpan data
dan akan
menampilkan
pesan “Data
Belum Terisi”
Sesuai
Harapan Valid
3 Klik transaksi
penerimaan kas lalu
masukkan no bukti
kas masuk dan
tanggal kemudian
klik tombol simpan
No bukti
kas masuk:
KM001
Tanggal:
2019-07-01
Sistem akan
menyimpan data
dan akan
menampilkan
pesan “Data
Tersimpan”
Sesuai
Harapan Valid
3. Pengujian Terhadap Form Pengeluaran Kas
Tabel III.15.
Hasil Pengujian Blackbox Testing Form Pengeluara Kas
No Skenario Pengujian Test Case Hasil yang
Diharapkan
Hasil
Pengujian Kesimpulan
1 Klik transaksi
pengeluaran kas lalu
no bukti kas keluar
dan tanggal
No bukti
kas keluar:
(kosong)
Sistem tidak
menyimpan data
dan akan
menampilkan
Sesuai
Harapan Valid
101
3.5.3. Spesifikasi Hardware dan Software
Tabel III.14.
Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Windows 10 64 bit
Processor AMD E1-1200 APU with Radeon(tm) HD
Graphics 1.40 GHz
RAM 2,00 GB (1,59 GB usable)
Harddisk 100 GB
Monitor 15.6”
Keyboard Samsung
Printer Canon TS200 Series
Mouse Avan
Software
Kebutuhan menjalankan aplikasi secara lokal:
Bahasa Script Programming : Java V8
Web Server : Apache V3.2.1
DBMS : MySQL
dikosongkan
kemudian klik
tombol simpan
Tanggal:
(kosong)
pesan “Data
Belum Terisi”
2 Klik transaksi
pengeluaran kas lalu
no bukti kas keluar
diisi dan tanggal
dikosongkan
kemudian klik
tombol simpan
No bukti
kas keluar:
KK001
Tanggal:
(kosong)
Sistem tidak
menyimpan data
dan akan
menampilkan
pesan “Data
Belum Terisi”
Sesuai
Harapan Valid
3 Klik transaksi
pengeluaran kas lalu
masukkan no bukti
kas keluar dan
tanggal kemudian
klik tombol simpan
No bukti
kas masuk:
KK001
Tanggal:
2019-07-04
Sistem akan
menyimpan data
dan akan
menampilkan
pesan “Data
Tersimpan”
Sesuai
Harapan Valid