22
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Sebuah penelitian menjelaskan tentang sejarah Lembaga Amil Zakat
BaitulMaalKu Cikampek, visi dan misi, struktur organisasi, serta deskripsi tugas dan
fungsi dari masing-masing bagian yang ada pada Lembaga Amil Zakat BaitulMaalKu
Cikampek.
3.1.1. Sejarah Perusahaan
Terbentuknya Lembaga Amil Zakat BaitulMaalKu berawal dari kumpulan
orang-orang yang peduli terhadap masalah-masalah sosial yang dihadapi oleh para
dhuafa. Para aktifis kemanusiaan tersebut mengabdikan diri di berbagai lembaga dan
keagamaan di Kabupaten Karawang. Akhirnya mereka bersepakat untuk membentuk
sebuah organisasi yakni Lembaga Amil Zakat BaitulMaalKu yang dibentuk pada 10
Mei 2016. Dengan harapan Lembaga Amil Zakat BaitulMaalKu mampu berkontribusi
aktif dalam mengentaskan permasalahan-permsalahan yang dihadapi oleh para dhuafa.
Sejak awal dibentuknya, Lembaga Amil Zakat BaitulMaalKu berkomitmen
menjadi mitra pemerintah, khususnya pemerintah daerah dalam upaya pengentas
masalah-masalah sosial. Titik fokus tersebut tertumpu pada masalah persoalan moral,
pendidikan, kesehatan, dan kemiskinan. Program tersebut dilaksanakan melalui
program-program tentu yang disusun dan dilaksanakan oleh tim Lembaga Amil Zakat
BaitulMaalKu. Pada tahun 2019 Lembaga Amil Zakat BaitulMaalKu telah
mendaftarkan sesuai dengan peraturan pemerintah. Hal ini sesuai dengan akta notaris
nomor 18 tanggal 09 Mei 2019 tentang pengesahan badan hukum Lembaga Amil Zakat
BaitulMaalKu oleh Notaris Hindum Muchsin, SH.
23
3.1.2. Visi dan Misi Perusahaan
Visi merupakan tujuan masa depan sebuah instansi, organisasi, atau
perusahaan. Visi adalah suatu tulisan yang menyatakan cita-cita suatu perusahaan,
instansi, atau organisasi di masa depan. Misi adalah suatu tulisan singkat, fokus, dan
jelas, yang merupakan arah sebuah perusahaan, instansi, atau organisasi. Berikut visi
misi pada Lembaga Amil Zakat BaitulMaalKu:
1. Visi
Membangun keberdayaan umat
2. Misi
Melalui 5 pilar program
a. Santunan
b. Pemberdayaan
c. Kesehatan
d. Pendidikan
e. Siaga Bencana
3.1.3. Struktur Organisasi dan Fungsi
Pada setiap instansi unit usaha atau lembaga memiliki struktur organiasi untuk
mengendalikan jalannya instansi dengan baik agar segala wewenang dan tanggung
jawab bagi setiap individu yang terlibat dalam instansi dapat dipertanggung jawabkan.
Dengan adanya struktur organisasi, maka setiap individu mendapatkan ruang lingkup
pekerjaan yang jelas, sehingga dengan demikian terjalinlah suatu kerjasama yang baik
dalam pencapaian tujuan instansi. Berikut ini adalah bagian – bagian yang terdapat
dalam struktur organisasi pada Lembaga Amil Zakat BaitulMaalKu dengan
menggunakan masing- masing fungsinya.
24
Sumber: Hasil Penelitian. 2019
Gambar III.1.
Struktur Organisasi Lembaga Amil Zakat BaitulMaalKu
Adapun fungsi dari masing-masing bagan Struktur Organisasi sesuai dengan
tugasnya adalah sebagai berikut:
1. Pembina
a. Pembina berwenang bertindak untuk dan atas nama Pembina.
b. Kewenangan Pembina meliputi:
1) Keputusan mengenai perubahan Anggaran Dasar;
2) Pengangkatan dan pemberhentian anggota Pengurus dan anggota Pengawas;
3) Penetapan kebijakan umum Yayasan berdasarkan Anggaran Dasar Yayasan;
4) Pengesahan program kerja dan rancangan anggaran tahunan Yayasan;
5) Penetapan keputusan mengenai penggabungan atau pembubaran Yayasan;
6) Pengesahan laporan tahunan, dan;
7) Penunjukkan likuidator dalam hal Yayasan dibubakan.
25
2. Pengurus
a. Pengurus bertanggung jawab penuh atas kepengurusan Yayasan untuk
kepentingan Yayasan.
b. Pengurus wajib menyusun program kerja dan rancangan anggaran tahunan
Yayasan untuk disahkan Pembina.
c. Pengurus wajib memberikan penjelasan tentang segala hal yang dinyatakan oleh
pengawas.
d. Setiap anggota Pengurus wajib dengan itikad baik dan penuh tanggung jawab
menjalankan tugasnya dengan mengindahkan peraturan perundang-undangan
yang berlaku.
e. Pengurus berhak mewakili Yayasan didalam dan luar pengadilan tentang segala
hal dan dalam segala kejadian, dengan pembatasan terhadap hal-hal sebagai
berikut:
1) Meminjam atau meminjamkan uang atas nama Yayasan (tidak termasuk
mengambil uang Yayasan di Bank);
2) Mendirikan suatu usaha baru atau melakukan penyertaan dalam berbagai
bentuk usaha baik didalam maupun diluar negeri;
3) Memberi atau menerima pengalihan atas harta tetap;
4) Membeli atau dengan cara lain mendapatkan/memperoleh harta tetap atas
nama Yayasan;
5) Menjual atau dengan cara lain melepaskan kekayaan Yayasan sera
mengagunkan/membebani kekayaan Yayasan;
6) Mengadakan perjanjian dengan organisasi yang terafiliasi dengan Yayasan,
Pembina, Pengurus dan atau Pengawas Yayasan atau seseorang yang bekerja
26
pada Yayasan, yang perjanjian tersebut bermanfaat bagi tercapainya maksud
dan tujuan Yayasan.
f. Perbuatan Pengurus sebagaimana diatur dalam ayat (5) huruf a, b, c, d, e, dan f
harus mendapat persetujuan dari Pembina.
3. Pengawas
a. Pengawas wajib dengan itikad baik dan penuh tanggung jawab menjalankan
tugas Pengawas untuk kepentingan Yayasan.
b. Ketua Pengawas dan 1 (satu) anggota Pengawas berwenang bertindak untuk dan
atas nama Pengawas.
c. Pengawas berwenang:
1) Memasuki bangunan, halaman, atau tempat lain yang dipergunakan Yayasan;
2) Memeriksa dokumen;
3) Memeriksa pembukuan dan mencocokkan dengan uang kas, atau mengetahui
segala tindakan yang telah dijalankan oleh Pengurus;
4) Memberi peringatan kepada Pengurus.
d. Pengawas dapat memberhentikan untuk sementara 1 (satu) orang atau lebih
Pengurus, apabila Pengurus tersebut bertindak bertentangan dengan Anggaran
Dasar dan atau peraturan perundang-undangan yang berlaku.
e. Pemberhentian sementara itu harus diberitahukan secara tertulis kepada yang
bersangkutan disertai alasannya.
f. Dalam jangka waktu 7 (tujuh) hari terhitung sejak tanggal pemberhentian
sementara itu, Pengawas diwajibkan untuk melaporkan secara tertulis kepada
Pembina.
g. Dalam jangka waktu 7 (tujuh) hari terhitung sejak tanggal laporan diterima oleh
Pembina sebagaimana dimaksud dalam ayat (6), maka Pembina wajib
27
memanggil anggota Pengurus yang bersangkutan untuk diberi kesempatan
membela diri.
h. Dalam jangka waktu 7 (tujuh) hari terhitung sejak tanggal pembelaan diri
sebagaimana dimaksud dalam ayat (7), pembina dengan keputusan rapat
Pembina wajib:
1) Mencabut keputusan pemberhentian sementara, atau;
2) Memberhentikan anggota Pengurus yang bersangkutan.
i. Dalam hal Pembina tidak melaksanakan ketentuan sebagaimana dimaksud
dalam ayat 7 (tujuh) dan ayat (8), maka pemberhentian sementara batal demi
hukum, dan yang bersangkutan menjabat kembali jabatannya semula.
j. Dalam hal seluruh Pengurus diberhentikan sementara, maka untuk sementara
Pengawas diwajibkan mengurus Yayasan.
3.2. Tinjauan Kasus
Pada bab ini, penulis akan menjelaskan dan membahas mengenai kasus yang
ada pada Lembaga Amil Zakat BaitulMaalKu, dalam kasus ini penulis memperoleh
informasi langsung dari ketua Yayasan Lembaga Amil Zakat BaitulMaalKu
Cikampek, serta dari data laporan selama penulis melakukan penelitian.
3.2.1. Proses Bisnis Sistem Berjalan
Adapun proses bisnis sistem yang sedang berjalan pada Lembaga Amil Zakat
BaitulMaalKu adalah sebagai berikut:
1. Prosedur Penerimaan Zakat, Infak dan Shadaqoh (ZIS)
Calon pembayar zakat atau karyawan yang biasa disebut dengan muzakki,
diharuskan mendaftarkan diri sebagai muzakki pada Lembaga Amil Zakat
BaitulMaalKu dengan mengisi formulir pendaftaran muzakki, kemudian setelah
28
formulir diisi diserahkan ke bagian administrasi Lembaga Amil Zakat
BaitulMaalKu untuk diinput ke dalam excel sebagai data anggota muzakki. Proses
selanjutnya melakukan Ijab Pembayaran ZIS antara muzakki dengan Amil dan
disaksikan oleh beberapa orang. Setelah dinyatakan sah sesuai syariat islam, uang
ZIS diserahkan oleh Muzakki ke bagian administrasi Lembaga Amil Zakat
BaitulMaalKu. Lalu administrasi membuat kwitansi rangkap 2, kwitansi asli
diserahkan kepada muzakki dan kwitansi rangkap 2 diarsipkan dan diinput kedalam
transaksi penerimaan ZIS dan menyimpannya di dalam komputer dan flashdisk.
2. Prosedur Penyaluran ZIS
Bagian bidang penyaluran BaitulMaalKu atau biasa disebut dengan tim program,
melakukan pengajuan anggaran program penyaluran berupa formulir uang muka
atau formulir UM. Formulir UM tersebut diajukan kepada administrasi untuk
dilakukan proses validasi apakah sudah sesuai dan tepat. Setelah divalidasi lalu
bagian administrasi menyerahkan formulir UM ke bagian direksi. Jika disetujui
maka manager dan direksi akan menandatangani UM sebagai persetujuan dan
diserahkan kembali ke bagian administrasi. Kemudian, bagian administrasi
mencatat pengeluaran UM di excel dan mengeluarkan uang untuk diserahkan ke
bagian tim program dan bagian tim program menandatangani formulir UM untuk
bukti bahwa uang anggaran program telah diterima oleh bagian tim program, dan
diarsipkan oleh bagian administrasi.
3. Prosedur Laporan
Bagian tim program menyerahkan bukti transaksi pengeluaran uang muka atau dana
zis yang telah disalurkan kepada para penerima manfaat atau biasa disebut dengan
mustahik kepada bagian administrasi, kemudian administrasi melakukan rekap
laporan penyaluran dan diinput ke dalam excel dan disimpan di flashdisk dan
29
komputer untuk dijadikan laporan penyaluran dana zis dan dilaporkan ke bagian
direksi lalu diarsipkan oleh bagian administrasi.
3.2.2. Activity Diagram
Activity diagram ini untuk menggambarkan rangkaian aktivitas proses
pengelolaan dana zakat pada Lembaga Amil Zakat BaitulMaalKu. Berikut adalah
gambar activity diagram yang sedang berjalan:
1. Activity diagram prosedur penerimaan zakat, infak dan shadaqoh (ZIS)
Sumber: Hasil Penelitian. 2019
Gambar III.2.
Activity Diagram Prosedur Penerimaan Zakat, Infak dan Shadaqoh (ZIS)
30
2. Activity diagram prosedur penyaluran ZIS
Sumber: Hasil Penelitian
Gambar III.3.
Activity Diagram Prosedur Penyaluran ZIS
31
3. Activity diagram prosedur laporan
Sumber: Hasil Penelitian
Gambar III.4.
Activity Diagram Prosedur Laporan
3.2.3. Dokumen Masukan
Berisi mengenai gambaran masukan yang dihasilkan, dimana setiap
masukan di rinci sebagai berikut:
32
a. Nama Dokumen : Formulir Perdaftaran Muzakki
Fungsi : Untuk Menjadi Bagian Dari Muzakki
Sumber : Bagian Administrasi
Tujuan : Karyawan / Perorangan
Frekuensi : Tak Terduga
Media : Kertas
Jumlah : 1 Lembar
Bentuk : Lampiran A.1
b. Nama Dokumen : Nota / Bukti Transaksi
Fungsi : Bukti Pembayaran
Sumber : Bagian Penyaluran
Tujuan : Bagian Administrasi
Frekuensi : Tak Terduga
Media : Kertas
Jumlah : 1 Lembar
Bentuk : Lampiran A.2
c. Nama Dokumen : Formulir Uang Muka
Fungsi : Untuk Mengetahui Jumlah Anggaran Biaya
Sumber : Bagian Penyaluran
Tujuan : Bagian Administrasi, Direksi
Frekuensi : Setiap Bulan
Media : Kertas
Jumlah : 1 Lembar
Bentuk : Lampiran A.3
33
d. Nama Dokumen : Laporan
Fungsi : Sebagai Bukti Laporan Transaksi
Sumber : Bagian Administrasi
Tujuan : Arsip
Frekuensi : Setiap Bulan
Media : Kertas
Jumlah : 1 Lembar
Bentuk : Lampiran B.2
3.2.4. Dokumen Keluaran
Berisi mengenai gambaran keluaran yang dihasilkan, dimana setiap keluaran
di rinci sebagai berikut:
a. Nama Dokumen : Kwitansi
Fungsi : Bukti Pembayaran
Sumber : Bagian Administrasi
Tujuan : Karyawan / Perorangan
Frekuensi : Tak Terduga
Media : Kertas
Jumlah : 1 Lembar
Bentuk : Lampiran B.1
b. Nama Dokumen : Laporan
Fungsi : Sebagai Bukti Laporan Transaksi
Sumber : Bagian Administrasi
Tujuan : Bagian Direksi
34
Frekuensi : Setiap Bulan
Media : Kertas
Jumlah : 1 Lembar
Bentuk : Lampiran B.2
3.2.5. Permasalahan Pokok
Dari hasil pengamatan serta uraian yang telah penulis paparkan tersebut, dapat
disimpulkan bahwa dalam proses pencatatan di Lembaga Amil Zakat BaitulMaalKu
masih berupa pencatatan menggunakan media konvensional. Dengan dilakukannya
pencatatan berupa media konvensional dan penyimpanannya pun masih berupa media
kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data,
pemborosan dana, dan sulit jika mencari data karena penumpukan data akibat media
penyimpanan yang tidak efektif.
3.2.6. Pemecahan Masalah
Didalam mengelola suatu perusahaan / yayasan tentunya selalu ada hambatan
dan kesulitan yang sering pula dapat menyebabkan terjadinya kesalahan. Untuk
mengatasi berbagai hambatan maupun kesulitan yang dihadapi perusahaan tentunya
diperlukan adanya perubahan ataupun perbaikan disegala sektor yang mendukung
kinerja perusahaan tersebut.
Untuk memecahkan masalah yang ada di Lembaga Amil Zakat BaitulMaalKu,
khususnya pada bagian yang mengelola administrasi dan keuangan seperti yang
dijelaskan pada laporan tugas akhir ini, hendaknya perusahaan melakukan
penyimpanan data yang tersusun dengan rapi, sehingga memudahkan perusahaan
mencari data, dan dibuatkan suatu program untuk memudahkan perhitungan dan
35
pencatatan akuntansi serta menggunakan suatu sistem agar meminimkan terjadinya
kehilangan data.
3.3. Analisis Kebutuhan Software
Analisis kebutuhan perangkat lunak merupakan aktivitas awal dari siklus hidup
pengembangan perangkat lunak. untuk proyek-proyek perangkat lunak yang besar,
analisis dilaksanakan setelah tahap rekayasa sistem/informasi dan software project
planning.
3.3.1. Analisis Kebutuhan
Satu diantara banyak aktivitas kritis pada proses rekayasa kebutuhan perangkat
lunak untuk memahami ranah permasalahan dari sistem yang akan dibuat. Setelah
melakukan penelitian dapat disimpulkan analisis kebutuhan yang ada pada Lembaga
Amil Zakat BaitulMaalKu adalah sebagai berikut:
1. Admin
a. Admin Dapat Login
b. Admin Dapat Mengelola Data Muzakki
c. Admin Dapat Mengelola Data Mustahik
d. Admin Dapat Mengelola Data Kas Masuk
e. Admin Dapat Mengelola Data Kas Keluar
f. Admin Dapat Mengelola Data Laporan
2. Direksi
a. Direksi Dapat Login
b. Direksi Dapat Mengelola Data Admin
c. Direksi Dapat Melihat Data Muzakki
d. Direksi Dapat Melihat Data Mustahik
e. Direksi Dapat Melihat Data Kas Masuk
36
f. Direksi Dapat Melihat Data Kas Keluar
g. Direksi Dapat Melihat Data Laporan
3.3.2. Use Case Diagram
Use Case diagram ini untuk menggambarkan rangkaian kegiatan atau interaksi
aktor terhadap sistem, Berikut adalah gambaran use case diagram nya.
1. Admin
Sumber: Hasil Penelitian. 2019
Gambar III.5.
Use Case Diagram Admin
Tabel III.1.
Deskripsi Use Case Login
Nama Use Case Mengelola Login
Aktor User Admin
Deskripsi User ingin Login terhadap sistem pengelolaan dana
zakat dengan menginputkan id admin dan kata sandi
maka sistem akan memvalidasi id admin dan kata sandi
tersebut.
Aliran Dasar 1. Tampilkan Form Login
2. User menginputkan Id Admin
3. User menginputkan Kata Sandi.
4. User mengirimkan id admin dan kata sandi dengan
memilih pilihan tombol login agar sistem
memvalidasi id admin dan kata sandi tersebut.
5. Sistem memvalidasi id admin dan kata sandi
37
tersebut.
6. Sistem menampilkan informasi, id admin dan kata
sandi yang diinputkan benar maka sistem akan
menampilkan form menu utama, tetapi jika salah
maka sistem akan menampilkan sistem error.
Aliran Alternatif Jika dalam menginputkan id admin dan kata sandi salah
maka sistem akan menampilkan pesan error dan
memintanya untuk mengisikannya kembali.
Kondisi Awal User harus mengetahui id admin dan kata sandi.
Kondisi Akhir Tampilkan form menu utama.
Kesimpulan Use case ini diakhiri ketika user mengklik tombol
“Close”.
Tabel III.2.
Deskripsi Use Case Admin Mengelola Data Muzakki
Nama Use Case Mengelola Data Muzakki
Aktor Admin
Deskripsi Use case ini digunakan untuk mencatat data
muzakki pada Lembaga Amil Zakat
BaitulMaalKu, dan jika data muzakki yang akan
dicatat telah tersedia, maka admin akan langsung
mencatat data muzaki tersebut.
Aliran Dasar Use case ini dimulai ketika Admin sudah login.
1. Admin mengelola form data muzakki dengan
memilih Data Muzakki pada Data Master.
2. Sistem menampilakan form data muzakki.
3. Admin memilih proses tambah
data,edit,delete, keluar.
4. Admin menginputkan data muzakki tersebut
ke form isian data muzakki.
5. Sistem menambahkan data muzakki.
6. Admin menyimpan data muzakki dengan
mengklik tombol Simpan
7. Sistem menyimpan data muzakki.
8. Keluar.
Aliran Alternatif Jika Sistem merespon bahwa penyimpanan gagal
data tidak lengkap maka aktor harus melengkapi
data yang diperlukan
Kondisi Awal 1. Admin harus memiliki id admin dan kata
sandi.
2. Admin sudah menyiapkan data muzakki yang
akan diinput.
Kondisi Akhir Data muzakki baru telah tersimpan.
Kesimpulan Use case ini diakhiri ketika Admin mengklik
tombol “Close”.
38
Tabel III.3.
Deskripsi Use Case Admin Mengelola Data Mustahik
Nama Use Case Mengelola Data Mustahik
Aktor Admin
Deskripsi Use case ini digunakan untuk mencatat data
mustahik pada Lembaga Amil Zakat
BaitulMaalKu, dan jika data yang akan dicatat
telah tersedia, maka admin akan langsung
mencatat data mustahik tersebut.
Aliran Dasar Use case ini dimulai ketika Admin sudah login.
1. Admin mengelola form data mustahik dengan
memilih Data Mustahik pada Data Master.
2. Sistem menampilakan form data mustahik
3. Admin memilih proses tambah data,edit,delete,
keluar.
4. Admin menginputkan data mustahik tersebut ke
form isian data mustahik.
5. Sistem menambahkan data mustahik.
6. Admin menyimpan data mustahik dengan
mengklik tombol “Simpan”.
7. Sistem menyimpan data mustahik.
8. Keluar.
Aliran Alternatif Jika Sistem merespon bahwa penyimpanan gagal
data tidak lengkap maka aktor harus melengkapi
data yang diperlukan
Kondisi Awal 1. Admin harus login terlebih dahulu.
2. Data mustahik yang dicatat telah tersedia.
Kondisi Akhir Data mustahik baru telah tersimpan.
Kesimpulan Use case ini diakhiri ketika Admin mengklik
tombol “Close”.
Tabel III.4.
Deskripsi Use Case Admin Mengelola Kas Masuk
Nama Use Case Mengelola Kas Masuk
Aktor Admin
Deskripsi Use case ini digunakan untuk mencatat data kas
masuk pada Lembaga Amil Zakat BaitulMaalKu,
dan jika data yang akan dicatat telah tersedia,
maka admin akan langsung mencatat data kas
masuk tersebut.
Aliran Dasar Use case ini dimulai ketika Admin sudah login.
1. Admin mengelola form kas masuk dengan
memilih kas masuk pada data transaksi.
2. Sistem menampilakan form kas masuk
39
3. Admin memilih proses tambah data, keluar.
4. Admin menginputkan kas masuk tersebut ke
form isian data kas masuk.
5. Sistem menambahkan data kas masuk.
6. Admin menyimpan data kas masuk dengan
mengklik tombol “Simpan”.
7. Sistem menyimpan data kas masuk.
8. Keluar.
Aliran Alternatif Jika Sistem merespon bahwa penyimpanan gagal
data tidak lengkap maka aktor harus melengkapi
data yang diperlukan
Kondisi Awal 1. Admin harus login terlebih dahulu.
2. Data kas masuk yang dicatat telah tersedia.
Kondisi Akhir Data kas masuk baru telah tersimpan.
Kesimpulan Use case ini diakhiri ketika Admin mengklik
tombol “Close”.
Tabel III.5.
Deskripsi Use Case Admin Mengelola Kas Keluar
Nama Use Case Mengelola Kas Keluar
Aktor Admin
Deskripsi Use case ini digunakan untuk mencatat data kas
keluar pada Lembaga Amil Zakat BaitulMaalKu,
dan jika data yang akan dicatat telah tersedia,
maka admin akan langsung mencatat data kas
keluar tersebut.
Aliran Dasar Use case ini dimulai ketika Admin sudah login.
1. Admin mengelola form kas keluar dengan
memilih kas keluar pada data transaksi.
2. Sistem menampilakan form kas keluar
3. Admin memilih proses tambah data, keluar.
4. Admin menginputkan kas keluar tersebut ke
form isian data kas keluar.
5. Sistem menambahkan data kas keluar.
6. Admin menyimpan data kas keluar dengan
mengklik tombol “Simpan”.
7. Sistem menyimpan data kas keluar.
8. Keluar.
Aliran Alternatif Jika Sistem merespon bahwa penyimpanan gagal
data tidak lengkap maka aktor harus melengkapi
data yang diperlukan
Kondisi Awal 1. Admin harus login terlebih dahulu.
2. Data kas keluar yang dicatat telah tersedia.
Kondisi Akhir Data kas keluar baru telah tersimpan.
Kesimpulan Use case ini diakhiri ketika Admin mengklik
tombol “Close”.
40
Tabel III.6.
Deskripsi Use Case Admin Mengelola Laporan
Nama Use Case Mengelola Laporan
Aktor Admin
Deskripsi Use case ini mendeskripsikan dari seorang aktor
yaitu admin untuk mengelola laporan.
Aliran Dasar 1. Admin menampilkan form laporan dengan
memilih tombol pada menu laporan, kemudian
pilih laporan data kas masuk/kas keluar.
2. Sistem menampilkan form Laporan.
3. Sistem menampilkan laporan pada kolom
laporan.
4. Untuk mencetak data laporan tersebut,
mengklik tombol Cetak.
5. Keluar.
Aliran Alternatif Jika dalam proses mencetak data dan sistem tidak
menemukan adanya alat printer yang akan
digunakan, maka sistem tidak dapat mencetak data
dan akan menyimpannya menjadi sebuah file.
Kondisi Awal Admin telah melakukan proses login terhadap
sistem.
Kondisi Akhir Report dan Record data transaksi dicetak dan
Direksi dapat melihat laporan.
Kesimpulan Use case ini diakhiri ketika Admin mengklik tombol “Close”.
2. Direksi
Sumber: Hasil Penelitian. 2019
Gambar III.6.
Use Case Diagram Direksi
41
Tabel III.7.
Deskripsi Use Case Direksi Login
Nama Use Case Login
Aktor User Direksi
Deskripsi User ingin Login terhadap sistem pengelolaan dana
zakat dengan menginputkan id admin dan kata sandi
maka sistem akan memvalidasi id admin dan kata sandi
tersebut.
Aliran Dasar 1. Tampilkan Form Login
2. User menginputkan Id Admin
3. User menginputkan Kata Sandi.
4. User mengirimkan id admin dan kata sandi dengan
memilih pilihan tombol login agar sistem
memvalidasi id admin dan kata sandi tersebut.
5. Sistem memvalidasi id admin dan kata sandi tersebut.
6. Sistem menampilkan informasi, id admin dan kata
sandi yang diinputkan benar maka sistem akan
menampilkan form menu utama, tetapi jika salah
maka sistem akan menampilkan sistem error.
Aliran Alternatif Jika dalam menginputkan id admin dan kata sandi salah
maka sistem akan menampilkan pesan error dan
memintanya untuk mengisikannya kembali.
Kondisi Awal User harus mengetahui id admin dan kata sandi
Kondisi Akhir Tampilkan Form menu utama.
Kesimpulan Use case ini diakhiri ketika user mengklik tombol
“Close”.
Tabel III.8.
Deskripsi Use Case Direksi Mengelola Data Admin
Nama Use Case Mengelola Data Admin
Aktor Direksi
Deskripsi Use case ini digunakan untuk mencatat data admin
pada Lembaga Amil Zakat BaitulMaalKu, dan
jika data yang akan dicatat telah tersedia, maka
direksi akan langsung mencatat data admin
tersebut.
Aliran Dasar Use case ini dimulai ketika direksi sudah login.
1. Direksi mengelola form data admin dengan
memilih Data Admin pada Data Master.
2. Sistem menampilakan form data admin
3. Direksi memilih proses tambah
data,edit,delete, keluar.
4. direksi menginputkan data admin tersebut ke
42
form isian data admin.
5. Sistem menambahkan data admin.
6. Direksi menyimpan data admin dengan
mengklik tombol “Simpan”.
7. Sistem menyimpan data admin.
8. Keluar.
Aliran Alternatif Jika Sistem merespon bahwa penyimpanan gagal
data tidak lengkap maka aktor harus melengkapi
data yang diperlukan
Kondisi Awal 1. Direksi harus login terlebih dahulu.
2. Data admin yang dicatat telah tersedia.
Kondisi Akhir Data admin baru telah tersimpan.
Kesimpulan Use case ini diakhiri ketika direksi mengklik
tombol “Close”.
Tabel III.9.
Deskripsi Use Case Direksi Melihat Data Muzakki
Nama Use Case Melihat Data Muzakki
Aktor Direksi
Deskripsi Use case ini digunakan untuk mencari data
muzakki pada Lembaga Amil Zakat
BaitulMaalKu.
Aliran Dasar Use case ini dimulai ketika Direksi sudah login.
1. Direksi mengakses form data muzakki dengan
memilih Data Muzakki pada Data Master.
2. Sistem menampilakan form data muzakki.
3. Direksi memilih proses cari, keluar.
4. Keluar.
Aliran Alternatif Jika id yang dimasukan tidak ada, maka sistem
tidak akan menampilkan data yang dicari.
Kondisi Awal 1. Direksi harus memiliki id admin dan kata
sandi
2. Direksi sudah menyiapkan data muzakki yang
akan dicari.
Kondisi Akhir Sistem menampilkan data-data yang dicari oleh
user.
Kesimpulan Use case ini diakhiri ketika Direksi mengklik
tombol “Close”.
Tabel III.10.
Deskripsi Use Case Direksi Melihat Data Mustahik
Nama Use Case Melihat Data Mustahik
Aktor Direksi
43
Deskripsi Use case ini digunakan untuk mencari data
mustahik pada Lembaga Amil Zakat
BaitulMaalKu.
Aliran Dasar Use case ini dimulai ketika Direksi sudah login.
1. Direksi mengakses form data mustahik
dengan memilih Data Mustahik pada Data
Master.
2. Sistem menampilakan form data mustahik.
3. Direksi memilih proses cari, keluar.
4. Keluar.
Aliran Alternatif Jika id yang dimasukan tidak ada, maka sistem
tidak akan menampilkan data yang dicari.
Kondisi Awal 1. Direksi harus memiliki id admin dan kata
sandi
2. Direksi sudah menyiapkan data mustahik yang
akan dicari.
Kondisi Akhir Sistem menampilkan data-data yang dicari oleh
user.
Kesimpulan Use case ini diakhiri ketika Direksi mengklik
tombol “Close”.
Tabel III.11.
Deskripsi Use Case Direksi Melihat Kas Masuk
Nama Use Case Melihat Data Kas Masuk
Aktor Direksi
Deskripsi Use case ini digunakan untuk mencari data kas
masuk pada Lembaga Amil Zakat BaitulMaalKu.
Aliran Dasar Use case ini dimulai ketika Direksi sudah login.
1. Direksi mengakses form data kas masuk
dengan memilih data kas masuk pada Data
transaksi.
2. Sistem menampilakan form data kas masuk.
3. Direksi memilih proses cari, keluar.
4. Keluar.
Aliran Alternatif Jika id yang dimasukan tidak ada, maka sistem
tidak akan menampilkan data yang dicari.
Kondisi Awal 1. Direksi harus memiliki id admin dan kata
sandi
2. Direksi sudah menyiapkan data kas masuk
yang akan dicari.
Kondisi Akhir Sistem menampilkan data-data yang dicari oleh
user.
Kesimpulan Use case ini diakhiri ketika Direksi mengklik
tombol “Close”.
44
Tabel III.12.
Deskripsi Use Case Direksi Melihat Kas Keluar
Nama Use Case Melihat Data Kas Keluar
Aktor Direksi
Deskripsi Use case ini digunakan untuk mencari data kas
keluar pada Lembaga Amil Zakat BaitulMaalKu.
Aliran Dasar Use case ini dimulai ketika Direksi sudah login.
1. Direksi mengakses form data kas keluar
dengan memilih data kas keluar pada data
transaksi.
2. Sistem menampilakan form data kas keluar
3. Direksi memilih proses cari, keluar.
4. Keluar.
Aliran Alternatif Jika id yang dimasukan tidak ada, maka sistem
tidak akan menampilkan data yang dicari.
Kondisi Awal 1. Direksi harus memiliki id admin dan kata
sandi
2. Direksi sudah menyiapkan data kas keluar
yang akan dicari.
Kondisi Akhir Sistem menampilkan data-data yang dicari oleh
user.
Kesimpulan Use case ini diakhiri ketika Direksi mengklik
tombol “Close”.
Tabel III.13.
Deskripsi Use Case Direksi Melihat Laporan
Nama Use Case Melihat Laporan
Aktor Direksi
Deskripsi Use case ini mendeskripsikan dari seorang aktor
yaitu direksi untuk mengelola laporan.
Aliran Dasar 1. Direksi menampilkan form laporan dengan
memilih tombol pada menu laporan, kemudian
pilih laporan data kas masuk/kas keluar.
2. Sistem menampilkan form Laporan.
3. Sistem menampilkan laporan pada kolom
laporan.
4. Untuk mencetak data laporan tersebut,
mengklik tombol Cetak. 5. Keluar.
Aliran Alternatif Jika dalam proses mencetak data dan sistem tidak
menemukan adanya alat printer yang akan
digunakan, maka sistem tidak dapat mencetak data
dan akan menyimpannya menjadi sebuah file.
Kondisi Awal Direksi telah melakukan proses login terhadap
45
sistem.
Kondisi Akhir Report dan Record data transaksi dicetak dan
Direksi dapat melihat laporan.
Kesimpulan Use case ini diakhiri ketika Direksi mengklik tombol “Close”.
3.3.3. Activity Diagram
Activity diagram ini untuk menggambarkan rangkaian aliran aktivitas proses
pengelolaan dana zakat pada Lembaga Amil Zakat BaitulMaalKu.
1. Admin
a. Activity diagram Admin melakukan login
Sumber: Hasil Penelitian. 2019
Gambar III.7.
Activity Diagram Admin Melakukan Login
46
b. Activity diagram Admin mengelola data muzakki
Sumber: Hasil Penelitian. 2019
Gambar III.8.
Activity Diagram Admin Mengelola Data Muzakki
47
c. Activity Diagram Admin Mengelola Data Mustahik
Sumber: Hasil Penelitian. 2019
Gambar III.9.
Activity Diagram Admin Mengelola Data Mustahik
48
d. Activity Diagram Admin Mengelola Kas Masuk
Sumber: Hasil Penelitian. 2019
Gambar III.10.
Activity Diagram Admin Mengelola Kas Masuk
49
e. Activity Diagram Admin Mengelola Kas Keluar
Sumber: Hasil Penelitian. 2019
Gambar III.11.
Activity Diagram Admin Mengelola Kas Keluar
a. Activity Diagram Admin Mengelola Laporan
Sumber: Hasil Penelitian. 2019
Gambar III.12.
Activity Diagram Admin Mengelola Laporan
50
2. Direksi
a. Activity Diagram Direksi Melakukan Login
Sumber: Hasil Penelitian
Gambar III.13.
Activity Diagram Direksi Melakukan Login
b. Activity Diagram Direksi Mengelola Data Admin
Sumber: Hasil Penelitian. 2019
Gambar III.14.
Activity Diagram Direksi Mengelola Data Admin
51
c. Activity Diagram Direksi Melihat Data Muzakki
Sumber: Penelitian. 2019
Gambar III.15.
Activity Diagram Direksi Melihat Data Muzakki
d. Activity Diagram Direksi Melihat Data Mustahik
Sumber: Hasil Penelitian. 2019
Gambar III.16.
Activity Diagram Direksi Melihat Data Mustahik
52
e. Activity Diagram Direksi Melihat Data Kas Masuk
Sumber: Hasil Penelitian. 2019
Gambar III.17.
Activity Diagram Direksi Melihat Data Kas Masuk
f. Activity Diagram Direksi Melihat Data Kas Keluar
Sumber: Hasil Penelitian. 2019
Gambar III.18.
Activity Diagram Direksi Melihat Data Kas Keluar
53
g. Activity Diagram Direksi Melihat Laporan
Sumber: Hasil Penelitian. 2019
Gambar III.19.
Activity Diagram Direksi Melihat laporan
3.4. Desain
Desain merupakan perencanaan dalam pembuatan sebuah objek, sistem,
komponen atau struktur. Desain merupakan seni terapan dan rekayasa yang
berintegrasi dengan teknologi.
3.4.1. Entity Relationship Diagram (ERD)
Suatu model untuk menjelaskan hubungan antar data dalam basis data
berdasarkan objek-objek dasar data yang mempunyai hubungan antar relasi.
54
Sumber: Hasil Penelitian. 2019
Gambar III.20.
Entity Relationship Diagram (ERD)
3.4.2. Logical Record Structure (LRS)
Notasi yang memberikan informasi mengenai jenis entitas dan juga relasinya,
melakukan identifikasi dari beberapa himpunan entitas yang terdiri dari beberapa calon
field yang akan digunakan.
55
Sumber: Hasil Penelitian. 2019
Gambar III.21.
Logical Record Structure (LRS)
56
3.4.3. Spesifikasi File
Dalam pengelolaan dana zakat ini, penulis menggunakan beberapa tabel yang
terkait dan berfungsi dalam pengelolaan tersebut.
1. Tabel Data Kas Masuk
Nama file : Kas Masuk
Akronim file : kas_masuk
Tipe file : File Transaksi
Organisasi file : Index Sequential
Akses file : Random
Media file : Harddisk
Panjang Record : 174 karakter
Kunci file : no_kas_masuk
Software : MySQL
Tabel III.14.
Spesifikasi File Tabel Data Kas Masuk
NO ELEMENT DATA AKRONIM TIPE DATA SIZE KETERANGAN
1 no_kas_masuk no_kas_masuk Char 8 Primary Key
2 tgl_kas_masuk tgl_kas_masuk Date 8
3 id_muzakki id_muzakki Char 8 Foreign Key
4 nominal_kas_masuk nominal_kas_masuk Double
5 keterangan Keterangan Varchar 150
2. Tabel Data Kas Keluar
Nama file : Kas Keluar
Akronim file : kas_keluar
Tipe file : File Transaksi
57
Organisasi file : Index Sequential
Akses file : Random
Media file : Harddisk
Panjang Record : 174 karakter
Kunci file : no_kas_keluar
Software : MySQL
Tabel III.15.
Spesifikasi File Tabel Data Kas Keluar
NO ELEMENT DATA AKRONIM TIPE DATA SIZE KETERANGAN
1 no_kas_keluar no_kas_keluar Char 8 Primary Key
2 tgl_kas_masuk tgl_kas_keluar Date 8
3 id_mustahik id_mustahik Char 8 Foreign Key
4 nominal_kas_masuk nominal_kas_keluar Double
5 keterangan Keterangan Varchar 150
3. Tabel Data Muzakki
Nama file : muzakki
Akronim file : id_muzakki
Tipe file : File Master
Organisasi file : Index Sequential
Akses file : Random
Media file : Harddisk
Panjang Record : 296 karakter
Kunci file : id_muzakki
Software : MySQL
58
Tabel III.16.
Spesifikasi File Tabel Data Muzakki
NO ELEMENT DATA AKRONIM TIPE DATA SIZE KETERANGAN
1 id_muzakki id_muzakki Char 8 Primary Key
2 nik_muzakki nik_muzakki Char 16
3 nama_muzakki nama_muzakki Char 25
4 umur_muzakki umur_muzakki Int 3
5 jenis_kelamin_muzakki jenis_kelamin_muzakki Varchar 10
6 pekerjaan_muzakki pekerjaan_muzakki Varchar 20
7 alamat_muzakki alamat_muzakki Varchar 200
8 no_tlp_muzakki no_tlp_muzakki Varchar 14
4. Tabel Data Mustahik
Nama file : mustahik
Akronim file : id_mustahik
Tipe file : File Master
Organisasi file : Index Sequential
Akses file : Random
Media file : Harddisk
Panjang Record : 134 karakter
Kunci file : id_mustahik
Software : MySQL
Tabel III.17.
Spesifikasi File Tabel Data Mustahik
NO ELEMENT DATA AKRONIM TIPE DATA SIZE KETERANGAN
1 id_mstahik id_mstahik Char 8 Primary Key
2 nik_mustahik nik_mustahik Char 16
3 nama_mustahik nama_mustahik Char 25
4 umur_mustahik umur_mustahik Varchar 35
5 jenis_kelamin_mustahik jenis_kelamin_mustahik Char 10
59
6 pekerjaan_mustahik pekerjaan_mustahik Varchar 20
7 alamat_mustahik alamat_mustahik Text
8 Penghasilan_mustahik Penghasilan_mustahik Double
9 ashnaf Ashnaf Varchar 20
5. Tabel Data Jurnal
Nama file : jurnal
Akronim file : no_jurnal
Tipe file : File Master
Organisasi file : Index Sequential
Akses file : Random
Media file : Harddisk
Panjang Record : 136 karakter
Kunci file : no_jurnal
Software : MySQL
Tabel III.18.
Spesifikasi File Tabel Data Jurnal
NO ELEMENT DATA AKRONIM TIPE DATA SIZE KETERANGAN
1 no_jurnal no_jurnal Char 8 Primary Key
2 tgl_jurnal tgl_jurnal Date 8
3 no_reff no_reff Char 8
4 keterangan keterangan Varchar 100
5 id_admin id_admin Char 20 Foreign Key
6 nominal Nominal Double
6. Tabel Admin
Nama file : admin
Akronim file : id_admin
Tipe file : File Master
60
Organisasi file : Index Sequential
Akses file : Random
Media file : Harddisk
Panjang Record : 110 karakter
Kunci file : id_admin
Software : MySQL
Tabel III.19.
Spesifikasi File Tabel Admin
NO ELEMENT DATA AKRONIM TIPE DATA SIZE KETERANGAN
1 id_admin id_admin Char 20 Primary Key
2 nama_admin nama_admin Varchar 20
3 kata_sandi kata_sandi Varchar 50
4 hak_akses hak_akses Varchar 20
7. Tabel Akun Perkiraan
Nama file : akun_perkiraan
Akronim file : akun_perkiraan
Tipe file : File Master
Organisasi file : Index Sequential
Akses file : Random
Media file : Harddisk
Panjang Record : 66 karakter
Kunci file : kode_akun
Software : MySQL
61
Tabel III.20.
Spesifikasi File Tabel Akun Perkiraan
NO ELEMENT DATA AKRONIM TIPE DATA SIZE KETERANGAN
1 kode_akun kode_akun Char 5 Primary Key
2 nama_akun nama_akun Varchar 30
3 jenis_akun jenis_akun Varchar 25
4 saldo_normal saldo_normal Varchar 6
8. Tabel Jurnal Detail
Nama file : jurnal_detail
Akronim file : jurnal_detail
Tipe file : File Master
Organisasi file : Index Sequential
Akses file : Random
Media file : Harddisk
Panjang Record : 13 karakter
Kunci file : jurnal_detail
Software : MySQL
Tabel III.21.
Spesifikasi File Tabel Jurnal Detail
NO ELEMENT DATA AKRONIM TIPE DATA SIZE KETERANGAN
1 no_jurnal no_jurnal Char 8 Primary Key
2 kode_akun kode_akun Char 5 Foreign Key
3 Debet Debet Double
4 Kredit Kredit Double
62
3.4.4. Sequence Diagram
1. Sequence Diagram Kas Masuk
Sumber: Hasil Penelitian. 2019
Gambar III.22.
Sequence Diagram
63
2. Sequence Diagram Kas Keluar
Sumber: Hasil Penelitian. 2019
Gambar III.23.
Sequence Diagram
3.4.5. Deployment Diagram
Sumber: Hasil Penelitian. 2019
Gambar III.24.
Deployment Diagram
64
3.4.6. User Interface
1. Form Login
Sumber: Hasil Penelitian. 2019
Gambar III.25.
Tampilan Form Login
2. Tampilan Menu Utama
Sumber: Hasil Penelitian. 2019
Gambar III.26.
Tampilan Menu Utama
65
3. Tampilan Form Data Admin
Sumber: Hasil Penelitian. 2019
Gambar III.27.
Tampilan Form Data Admin
4. Tampilan Form Data Muzakki
Sumber: Hasil Penelitian. 2019
Gambar III.28.
Tampilan Form Data Muzakki
66
5. Tampilan Form Data Mustahik
Sumber: Hasil Penelitian. 2019
Gambar III.29.
Tampilan Form Data Mustahik
6. Tampilan Form Zakat Masuk
Sumber: Hasil Penelitian. 2019
Gambar III.30.
Tampilan Form Zakat Masuk
67
7. Tampilan Form Zakat Keluar
Sumber: Hasil Penelitian. 2019
Gambar III.31.
Tampilan Form Zakat Keluar
8. Tampilan Form Cetak Laporan
Sumber: Hasil Penelitian. 2019
Gambar III.32.
Tampilan Form Cetak Laporan
68
3.5. Implementasi
Tahapan akhir dari rancangan sytem pengelolaan dana zakat pada Lembaga
Amil Zakat BaitulMaalKu adalah menerapkan sistem yang telah dirancang untuk
diterapkan pada keadaan sebenarnya. Implementasi dalam mewujudkan sistem yang
baru dirancang tersebut adalah sebagai berikut:
1. Analisa Sistem
Analisa sistem adalah mempelajari sistem yang berjalan serta masalah yang ada,
tujuannya untuk mendapatkan gambaran tentang bentuk permasalahan yang ada
diperusahaan tersebut, sehingga mengurangi kesalahpahaman antara sistem yang
diusulkan dengan sistem yang berjalan. Dan membutuhkan waktu selama satu
minggu.
2. Penyiapan Data
Data-data yang ada diperusahaan dikumpulkan serta dikelompokkan sesuai dengan
program yang akan dibuat. Membutuhkan waktu selama satu minggu.
3. Pembuatan Program dan Pengetesan Program
Dari data-data yang telah dikelompokkan dapat dibuat sesuai dengan data-data yang
ada. Adapun pengetesan program dilakukan agar program yang dibuat ataupun
yang dirancang dapat diketahui kekurangannya sebelum diterapkan, dan
membutuhkan waktu selama 4 minggu.
4. Tes Sistem
Tes sistem adalah kegiatan yang bertujuan untuk melaksanakan uji coba terhadap
sistem secara langsung keseluruhan dan sampai dimana sistem ini dapat dipahami
dengan baik, dan membutuhkan waktu selama dua minggu.
69
3.5.1. Code Generation
1. Transaksi Penerimaan Kas
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package form;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.ListIterator;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;
import model.Jurnal;
import model.JurnalDetail;
import model.Perkiraan;
import java.awt.Font;
import java.awt.event.KeyEvent;
import java.text.NumberFormat;
import java.util.Date;
import java.util.Locale;
import javax.swing.table.DefaultTableModel;
import main.BaitulMaalKu;
import model.Muzakki;
public class FormKasMasuk extends javax.swing.JFrame {
/**
* Creates new form FormKasMasuk
*/
String status = "";
String no_kas_masuk = "";
NumberFormat nf = NumberFormat.getCurrencyInstance(new Locale("id", "ID"));
Jurnal kasMasuk = new Jurnal();
JurnalDetail detailKasMasuk = new JurnalDetail();
Perkiraan perkiraan = new Perkiraan();
Muzakki muzakki = new Muzakki();
DefaultTableModel model = null;
public FormKasMasuk() {
initComponents();
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension d = tk.getScreenSize();
int x, y;
x = (int) ((d.getWidth() - getSize().width) / 2);
y = (int) ((d.getHeight() - getSize().height) / 2);
setLocation(x, y);
this.getContentPane().setBackground(Color.white);
model = (DefaultTableModel) tblkasmasuk.getModel();
tblkasmasuk.getTableHeader().setFont(new Font("BellGothic BT", 1, 16));
tblkasmasuk.setRowHeight(30);
70
daftarKasMasuk();
bersihInputan();
aktifNonaktif();
MyTab.setSelectedIndex(1);
}
private void daftarKasMasuk() {
List<Jurnal> listKasMasuk = kasMasuk.daftarJurnal("KM");
ListIterator listKas = listKasMasuk.listIterator();
model.setRowCount(0);
tblkasmasuk.repaint();
String No = "";
while (listKas.hasNext()) {
kasMasuk = (Jurnal) listKas.next();
muzakki = muzakki.cariMuzakki(kasMasuk.getNo_Reff());
List<JurnalDetail> listDetail =
detailKasMasuk.daftarDetailJurnal(kasMasuk.getNo_Jurnal());
ListIterator lIterator = listDetail.listIterator();
Object[] data = null;
while (lIterator.hasNext()) {
detailKasMasuk = (JurnalDetail) lIterator.next();
perkiraan = new Perkiraan().cariKode_Akun(detailKasMasuk.getKode_Akun());
if (No.equalsIgnoreCase(kasMasuk.getNo_Jurnal())) {
Object[] jdata = {
"",
"",
"",
"",
"",
"",
detailKasMasuk.getKode_Akun(),
perkiraan.getNama_Akun(),
nf.format(detailKasMasuk.getDebet()),
nf.format(detailKasMasuk.getKredit())
};
data = jdata;
} else {
Object[] jdata = {
kasMasuk.getNo_Jurnal(),
kasMasuk.getTgl_Jurnal(),
kasMasuk.getNo_Reff(),
muzakki.getNama(),
nf.format(kasMasuk.getNominal()),
kasMasuk.getKeterangan(),
detailKasMasuk.getKode_Akun(),
perkiraan.getNama_Akun(),
nf.format(detailKasMasuk.getDebet()),
nf.format(detailKasMasuk.getKredit())
};
data = jdata;
}
model.addRow(data);
No = kasMasuk.getNo_Jurnal();
}
}
71
}
private void daftarKasMasuk(Date tgl1, Date tgl2) {
List<Jurnal> listKasMasuk = kasMasuk.cariJurnal("KM", new
java.sql.Date(tgl1.getTime()), new java.sql.Date(tgl2.getTime()));
ListIterator li = listKasMasuk.listIterator();
model.setRowCount(0);
tblkasmasuk.repaint();
String No = "";
double totaldebet = 0, totalkredit = 0;
while (li.hasNext()) {
kasMasuk = (Jurnal) li.next();
muzakki = muzakki.cariMuzakki(kasMasuk.getNo_Reff());
List<JurnalDetail> listDetail =
detailKasMasuk.daftarDetailJurnal(kasMasuk.getNo_Jurnal());
ListIterator lIterator = listDetail.listIterator();
Object[] data = null;
while (lIterator.hasNext()) {
detailKasMasuk = (JurnalDetail) lIterator.next();
perkiraan = new Perkiraan().cariKode_Akun(detailKasMasuk.getKode_Akun());
if (No.equalsIgnoreCase(kasMasuk.getNo_Jurnal())) {
Object[] jdata = {
"",
"",
"",
"",
"",
"",
detailKasMasuk.getKode_Akun(),
perkiraan.getNama_Akun(),
nf.format(detailKasMasuk.getDebet()),
nf.format(detailKasMasuk.getKredit())
};
data = jdata;
} else {
Object[] jdata = {
kasMasuk.getNo_Jurnal(),
kasMasuk.getTgl_Jurnal(),
kasMasuk.getNo_Reff(),
muzakki.getNama(),
kasMasuk.getKeterangan(),
nf.format(kasMasuk.getNominal()),
detailKasMasuk.getKode_Akun(),
perkiraan.getNama_Akun(),
nf.format(detailKasMasuk.getDebet()),
nf.format(detailKasMasuk.getKredit())
};
data = jdata;
}
model.addRow(data);
No = kasMasuk.getNo_Jurnal();
}
}
}
private void cariMuzakki() {
72
if (!"".equals(tid_muzakki.getText())) {
muzakki = muzakki.cariMuzakki(tid_muzakki.getText());
if (muzakki.getNama() != null) {
tnama_muzakki.setText(muzakki.getNama());
takun1.requestFocus();
} else {
JOptionPane.showMessageDialog(rootPane, "Muzakki yang Anda cari tidak ditemukan!",
"Error", JOptionPane.ERROR_MESSAGE);
tid_muzakki.setText("");
tnama_muzakki.setText("");
}
} else {
tnama_muzakki.setText("");
}
}
private void aktifNonaktif() {
btntambah.setEnabled("".equals(this.status)&& "Admin".equals(
BaitulMaalKu.hak_akses));
btnsimpan.setEnabled(!"".equals(this.status)&& "Admin".equals(
BaitulMaalKu.hak_akses));
btnbatal.setEnabled(!"".equals(this.status)&& "Admin".equals(
BaitulMaalKu.hak_akses));
tno_kas_masuk.setEditable(false);
ttanggal_kas_masuk.setEditable(false);
tketerangan.setEditable(!"".equals(this.status));
takun1.setEnabled(!"".equals(this.status));
takun2.setEnabled(!"".equals(this.status));
tid_muzakki.setEditable(!"".equals(this.status));
MyTab.setEnabledAt(0, !"".equals(this.status));
MyTab.setEnabledAt(1, "".equals(this.status));
}
private void bersihInputan() {
tno_kas_masuk.setText("");
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
ttanggal_kas_masuk.setText(sdf.format(new java.util.Date()));
tketerangan.setText("");
tid_muzakki.setText("");
tnama_muzakki.setText("");
tjumlah_kas.setText("");
tnm_akun1.setText("");
tnm_akun2.setText("");
takun1.setText("");
takun2.setText("");
}
/**
* 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() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
73
jLabel1 = new javax.swing.JLabel();
jSeparator1 = new javax.swing.JSeparator();
MyTab = new javax.swing.JTabbedPane();
jPanel1 = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
tid_muzakki = new javax.swing.JTextField();
tno_kas_masuk = new javax.swing.JTextField();
ttanggal_kas_masuk = new javax.swing.JTextField();
tketerangan = new javax.swing.JTextField();
tnm_akun2 = new javax.swing.JTextField();
tjumlah_kas = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
tnm_akun1 = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
tnama_muzakki = new javax.swing.JTextField();
btncari_muzakki = new javax.swing.JButton();
takun1 = new javax.swing.JTextField();
takun2 = new javax.swing.JTextField();
btcariakun1 = new javax.swing.JButton();
btcariakun2 = new javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
jScrollPane2 = new javax.swing.JScrollPane();
tblkasmasuk = new javax.swing.JTable();
tgl2 = new com.toedter.calendar.JDateChooser();
tgl1 = new com.toedter.calendar.JDateChooser();
jLabel12 = new javax.swing.JLabel();
btncari = new javax.swing.JButton();
btnbatal = new javax.swing.JButton();
btnsimpan = new javax.swing.JButton();
btntambah = new javax.swing.JButton();
jSeparator2 = new javax.swing.JSeparator();
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}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Form Jurnal Umum");
jLabel1.setFont(new java.awt.Font("BellGothic BT", 1, 36)); // NOI18N
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
jLabel1.setText("Penerimaan Kas");
MyTab.setFont(new java.awt.Font("BellGothic BT", 0, 18)); // NOI18N
jLabel3.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
74
jLabel3.setText("No KM");
jLabel4.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
jLabel4.setText("Tanggal KM");
jLabel7.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
jLabel7.setText("ID Muzakki");
jLabel5.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
jLabel5.setText("Keterangan");
tid_muzakki.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
tid_muzakki.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
tid_muzakkiKeyPressed(evt);
}
});
tno_kas_masuk.setEditable(false);
tno_kas_masuk.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
ttanggal_kas_masuk.setEditable(false);
ttanggal_kas_masuk.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
tketerangan.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
tnm_akun2.setEditable(false);
tnm_akun2.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
tnm_akun2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tnm_akun2ActionPerformed(evt);
}
});
tjumlah_kas.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
jLabel8.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
jLabel8.setText("Jumlah Kas");
tnm_akun1.setEditable(false);
tnm_akun1.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
tnm_akun1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tnm_akun1ActionPerformed(evt);
}
});
jLabel9.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
jLabel9.setText("Akun Kredit");
jLabel10.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
jLabel10.setText("Akun Debet");
tnama_muzakki.setEditable(false);
tnama_muzakki.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
btncari_muzakki.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
btncari_muzakki.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/form/image/cari.png"))); // NOI18N
btncari_muzakki.setPreferredSize(new java.awt.Dimension(49, 26));
btncari_muzakki.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btncari_muzakkiActionPerformed(evt);
}
});
takun1.setEditable(false);
takun1.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
takun2.setEditable(false);
takun2.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
75
btcariakun1.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
btcariakun1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/form/image/cari.png"))); // NOI18N
btcariakun1.setPreferredSize(new java.awt.Dimension(49, 26));
btcariakun1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btcariakun1ActionPerformed(evt);
}
});
btcariakun2.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
btcariakun2.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/form/image/cari.png"))); // NOI18N
btcariakun2.setPreferredSize(new java.awt.Dimension(49, 26));
btcariakun2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btcariakun2ActionPerformed(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()
.addGap(10, 10, 10)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jLabel3)
.addComponent(jLabel5)
.addComponent(jLabel7)
.addComponent(jLabel10)
.addComponent(jLabel8)
.addComponent(jLabel9))
.addGap(23, 23, 23)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(tjumlah_kas, javax.swing.GroupLayout.PREFERRED_SIZE, 218,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tnama_muzakki, javax.swing.GroupLayout.PREFERRED_SIZE, 283,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TR
AILING, false)
.addComponent(tketerangan, javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(takun2, javax.swing.GroupLayout.PREFERRED_SIZE, 99,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tnm_akun2))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addComponent(takun1, javax.swing.GroupLayout.PREFERRED_SIZE, 102,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tnm_akun1))
76
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(tid_muzakki)
.addComponent(tno_kas_masuk, javax.swing.GroupLayout.DEFAULT_SIZE, 102,
Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(ttanggal_kas_masuk, javax.swing.GroupLayout.PREFERRED_SIZE,
160,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(btncari_muzakki, javax.swing.GroupLayout.PREFERRED_SIZE, 37,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(btcariakun1, javax.swing.GroupLayout.PREFERRED_SIZE, 37,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btcariakun2, javax.swing.GroupLayout.PREFERRED_SIZE, 37,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap(418, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(14, 14, 14)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(btcariakun1, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BA
SELINE)
.addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tnm_akun1, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(takun1, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CE
NTER)
.addComponent(ttanggal_kas_masuk, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tno_kas_masuk, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
77
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btncari_muzakki, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tid_muzakki, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tnama_muzakki, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tjumlah_kas, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(btcariakun2, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BA
SELINE)
.addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tnm_akun2, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(takun2, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tketerangan, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(107, 107, 107))
);
MyTab.addTab("Input", jPanel1);
tblkasmasuk.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
tblkasmasuk.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, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null}
},
new String [] {
"No KM", "Tanggal KM", "ID Muzakki", "Nama Muzakki", "Jumlah Kas", "Keterangan",
"Kode Akun", "Nama Akun", "Debet", "Kredit"
78
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, false, false, false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
jScrollPane2.setViewportView(tblkasmasuk);
tgl2.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
tgl1.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
jLabel12.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
jLabel12.setText("Tanggal Jurnal");
btncari.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
btncari.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/form/image/cari.png"))); // NOI18N
btncari.setPreferredSize(new java.awt.Dimension(49, 26));
btncari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btncariActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 909,
Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel2Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jLabel12)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(tgl1, javax.swing.GroupLayout.PREFERRED_SIZE, 188,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tgl2, javax.swing.GroupLayout.PREFERRED_SIZE, 188,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btncari, javax.swing.GroupLayout.PREFERRED_SIZE, 37,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel2Layout.createSequentialGroup()
.addGap(23, 23, 23)
79
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CE
NTER)
.addComponent(btncari, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tgl2, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tgl1, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel12))
.addGap(18, 18, 18)
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 286,
Short.MAX_VALUE)
.addContainerGap())
);
jPanel2Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new
java.awt.Component[] {btncari, tgl2});
MyTab.addTab("Data", jPanel2);
btnbatal.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
btnbatal.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/form/image/batal.png"))); // NOI18N
btnbatal.setText("Batal");
btnbatal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnbatalActionPerformed(evt);
}
});
btnsimpan.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
btnsimpan.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/form/image/simpan.png"))); // NOI18N
btnsimpan.setText("Simpan");
btnsimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnsimpanActionPerformed(evt);
}
});
btntambah.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
btntambah.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/form/image/tambah2.png"))); //
NOI18N
btntambah.setText("Tambah");
btntambah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btntambahActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(MyTab, javax.swing.GroupLayout.Alignment.TRAILING)
80
.addComponent(jSeparator1)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(btntambah, javax.swing.GroupLayout.PREFERRED_SIZE, 115,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnsimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 119,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnbatal, javax.swing.GroupLayout.PREFERRED_SIZE, 102,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jSeparator2))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addGap(15, 15, 15)
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 2,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(MyTab, javax.swing.GroupLayout.PREFERRED_SIZE, 405,
Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 10,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(8, 8, 8)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(btntambah, javax.swing.GroupLayout.PREFERRED_SIZE, 37,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnsimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 40,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnbatal, javax.swing.GroupLayout.PREFERRED_SIZE, 40,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[]
{btnbatal, btnsimpan, btntambah});
pack();
}// </editor-fold>
private void btntambahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.status = "Tambah";
this.no_kas_masuk = "";
bersihInputan();
aktifNonaktif();
tno_kas_masuk.setText(kasMasuk.buatNoKasMasuk());
tid_muzakki.requestFocus();
81
MyTab.setSelectedIndex(0);
}
private void btnsimpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if ("".equals(tno_kas_masuk.getText())
|| "".equals(ttanggal_kas_masuk.getText())
|| "".equals(tketerangan.getText())
|| "".equals(tid_muzakki.getText())
|| "".equals(tjumlah_kas.getText())
|| "".equals(takun1.getText().toString())
|| "".equals(takun2.getText().toString())) {
JOptionPane.showMessageDialog(rootPane, "Mohon isi dulu semua data", "Error",
JOptionPane.ERROR_MESSAGE);
return;
}
if (!BaitulMaalKu.validasiInput(tjumlah_kas.getText(), "[0..9\\.]{1,7}$")) {
tjumlah_kas.requestFocus();
JOptionPane.showMessageDialog(rootPane, "Jumlah kas hanya boleh berupa angka",
"Galat", JOptionPane.ERROR_MESSAGE);
return;
}
kasMasuk.setNo_Jurnal(tno_kas_masuk.getText());
kasMasuk.setTgl_Jurnal(new java.sql.Date(new java.util.Date().getTime()));
kasMasuk.setKeterangan(tketerangan.getText());
kasMasuk.setNo_Reff(tid_muzakki.getText());
kasMasuk.setNominal(Double.parseDouble(tjumlah_kas.getText()));
kasMasuk.setId_Admin(BaitulMaalKu.id_admin);
if ("Tambah".equals(status)) {
String[] Akun;
if (kasMasuk.tambahJurnal()> 0) {
detailKasMasuk.setNo_Jurnal(tno_kas_masuk.getText());
detailKasMasuk.setKode_Akun(takun1.getText().toString());
detailKasMasuk.setDebet(Double.parseDouble(tjumlah_kas.getText()));
detailKasMasuk.setKredit(0);
detailKasMasuk.tambahDetailJurnal();
detailKasMasuk.setKode_Akun(takun2.getText().toString());
detailKasMasuk.setDebet(0);
detailKasMasuk.setKredit(Double.parseDouble(tjumlah_kas.getText()));
detailKasMasuk.tambahDetailJurnal();
JOptionPane.showMessageDialog(rootPane, "Data kas masuk berhasil disimpan!", "Info",
JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(rootPane, "Data kas masuk gagal disimpan.\n" +
kasMasuk.getPesanError(), "Error", JOptionPane.ERROR_MESSAGE);
return;
}
}
this.status = "";
this.no_kas_masuk = "";
bersihInputan();
daftarKasMasuk();
aktifNonaktif();
MyTab.setSelectedIndex(1);
}
82
private void btnbatalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.status = "";
this.no_kas_masuk = "";
bersihInputan();
aktifNonaktif();
MyTab.setSelectedIndex(1);
}
private void tnm_akun2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void btncariActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (tgl1.getDate() == null || tgl2.getDate() == null) {
daftarKasMasuk();
} else {
daftarKasMasuk(tgl1.getDate(), tgl2.getDate());
}
}
private void tnm_akun1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void tid_muzakkiKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode() == KeyEvent.VK_ENTER){
cariMuzakki();
}
}
private void btncari_muzakkiActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
tid_muzakki.setText(new FormCariMuzakki(this, true).cariMuzakki());
cariMuzakki();
}
private void btcariakun1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
takun1.setText(new FormCariPerkiraan(this, true).cariPerkiraan());
if(!"".equalsIgnoreCase(takun1.getText())){
perkiraan = perkiraan.cariKode_Akun(takun1.getText());
tnm_akun1.setText(perkiraan.getNama_Akun());
}else{
takun1.setText("");
tnm_akun1.setText("");
}
}
private void btcariakun2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
takun2.setText(new FormCariPerkiraan(this, true).cariPerkiraan());
if(!"".equalsIgnoreCase(takun2.getText())){
perkiraan = perkiraan.cariKode_Akun(takun2.getText());
tnm_akun2.setText(perkiraan.getNama_Akun());
}else{
takun2.setText("");
tnm_akun2.setText("");
}
83
}
/**
* @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 ("Windows".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(FormKasMasuk.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(FormKasMasuk.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(FormKasMasuk.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(FormKasMasuk.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
}
//</editor-fold>
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FormKasMasuk().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JTabbedPane MyTab;
private javax.swing.JButton btcariakun1;
private javax.swing.JButton btcariakun2;
private javax.swing.JButton btnbatal;
private javax.swing.JButton btncari;
private javax.swing.JButton btncari_muzakki;
private javax.swing.JButton btnsimpan;
private javax.swing.JButton btntambah;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
84
private javax.swing.JLabel jLabel5;
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.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JTable jTable1;
private javax.swing.JTextField takun1;
private javax.swing.JTextField takun2;
private javax.swing.JTable tblkasmasuk;
private com.toedter.calendar.JDateChooser tgl1;
private com.toedter.calendar.JDateChooser tgl2;
private javax.swing.JTextField tid_muzakki;
private javax.swing.JTextField tjumlah_kas;
private javax.swing.JTextField tketerangan;
private javax.swing.JTextField tnama_muzakki;
private javax.swing.JTextField tnm_akun1;
private javax.swing.JTextField tnm_akun2;
private javax.swing.JTextField tno_kas_masuk;
private javax.swing.JTextField ttanggal_kas_masuk;
// End of variables declaration
}
3.5.2. Black Box Testing
1. Pengujian terhadap form login
Dalam pengujian pada form login admin ini misalnya nama id admin yaitu titin.aja
dan untuk kata sandi yaitu 12345678.
Tabel III.22.
Tabel pengujian Black Box Testing pada validasi Login
No Skenario
pengujian
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1 Mengosongkan
semua data
login, lalu
langsung klik
tombol
“login”.
Id Admin :
(kosong)
Kata Sandi :
(kosong)
Sistem akan
menolak dan
akan muncul
pemberitahuan
“Id Admin dan
Kata Sandi
tidak boleh
kosong”.
Sesuai
dengan
harapan
Valid
85
2. Jika hanya
mengisi ID
Admin dan
mengosongkan
data pada Kata
Sandi, lalu
langsung klik
tombol
“login”.
Id Admin :
titin.aja
Kata Sandi :
(kosong)
Sistem akan
menolak dan
akan muncul
pemberitahuan
“Id Admin dan
Kata Sandi
tidak boleh
kosong”.
Sesuai
dengan
harapan
Valid
3. Jika hanya
mengisi Kata
Sandi dan
mengosongkan
data pada ID
Admin, lalu
langsung klik
tombol
“login”.
Id Admin :
(kosong)
Kata Sandi :
12345678
Sistem akan
menolak dan
akan muncul
pemberitahuan
“Id Admin dan
Kata Sandi
tidak boleh
kosong”.
Sesuai
dengan
harapan
Valid
4 Jika ID Admin
dan Kata Sandi
diisi namun
tidak sesuai
dengan
database.
Id Admin :
titin
Kata Sandi :
87654321
Sistem akan
menolak
karena ID
Admin dan
Kata Sandi
tidak dikenal
atau kosong
dan otomatis
akan tampil
pesan “ID
Admin
Keliru” maka
tetap pada
halaman login.
Sesuai
dengan
harapan
Valid
5 Jika ID Admin
dan Kata Sandi
diisi dan sesuai
dengan
database.
Id Admin :
titin.aja
Kata Sandi :
12345678
Sistem akan
menerima
akses login
dan tampil
pesan
“Selamat
datang Titin”
maka
langsung ke
menu utama.
Sesuai
dengan
harapan
Valid
2. Pengujian terhadap form input admin
Dalam pengujian pada form input admin ini digunakan untuk mengisi data admin
terbaru dengan memasukkan atau membuat id admin dan kata sandi untuk admin.
86
Tabel III.23.
Tabel pengujian Black Box Testing pada validasi Input Admin
No Skenario
pengujian
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1 Mengosongkan
semua data,
lalu langsung
klik tombol
“Simpan”.
Semua field :
- (kosong)
Sistem akan
menolak akses
untuk
menyimpan
dan akan
menampilkan
pesan “Mohon
isi data dulu”.
Sesuai
dengan
harapan
Valid
2. Mengosongkan
salah satu data,
lalu langsung
klik tombol
“Simpan”.
Salah satu
field : -
(kosong)
Sistem akan
menolak akses
untuk
menyimpan
dan akan
menampilkan
pesan “Mohon
isi data dulu”.
Sesuai
dengan
harapan
Valid
3. Jika mengisi
data tidak
sesuai dengan
format.
Misalkan
mengisi nama
dengan angka,
kemudian klik
tombol
“Simpan”.
Nama :
12345678
Sistem akan
menolak dan
akan muncul
pemberitahuan
“Maaf nama
hanya boleh
berupa huruf
dan spasi”.
Sesuai
dengan
harapan
Valid
4 Jika mengisi
ID Admin yang
sudah tersedia.
Id admin :
titin.aja
Sistem akan
menolak dan
menampilkan
pesan “Data
gagal di
simpan”.
Sesuai
dengan
harapan
Valid
3. Pengujian terhadap form Muzakki
Dalam pengujian pada form input muzakki ini digunakan untuk mengisi data
muzakki terbaru dengan memasukkan atau membuat id muzakki baru.
87
Tabel III.24
Tabel pengujian Black Box Testing pada validasi Input Muzakki
No Skenario
pengujian
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1 Mengosongkan
semua data,
lalu langsung
klik tombol
“Simpan”.
Semua field :
- (kosong)
Sistem akan
menolak akses
untuk
menyimpan
dan akan
menampilkan
pesan “Mohon
isi data dulu”.
Sesuai
dengan
harapan
Valid
2. Mengosongkan
salah satu data,
lalu langsung
klik tombol
“Simpan”.
Salah satu
field : -
(kosong)
Sistem akan
menolak akses
untuk
menyimpan
dan akan
menampilkan
pesan “Mohon
isi data dulu”.
Sesuai
dengan
harapan
Valid
3. Jika mengisi
data tidak
sesuai dengan
format.
Misalkan
mengisi nama
dengan angka,
kemudian klik
tombol
“Simpan”.
Nama :
12345678
Sistem akan
menolak dan
akan muncul
pemberitahuan
“Maaf nama
hanya boleh
berupa huruf
dan spasi”.
Sesuai
dengan
harapan
Valid
4 Jika mengisi
data tidak
sesuai dengan
format.
Misalkan
mengisi no
telepon dengan
huruf,
kemudian klik
“Simpan”.
No Telepon :
qwerty
Sistem akan
menolak dan
menampilkan
pesan “Maaf
no telepon
hanya boleh
berupa angka
min 8 digit,
max 15 digit”.
Sesuai
dengan
harapan
Valid
5 Jika mengisi
data tidak
sesuai dengan
format.
Misalkan
mengisi NIK
dengan huruf,
Nik :
abcdefghijkl
Sistem akan
menolak dan
menampilkan
pesan “Maaf
nik hanya
boleh berupa
Sesuai
dengan
harapan
Valid
88
kemudian klik
“Simpan”.
angka 16
digit”.
6 Jika mengisi
data tidak
sesuai dengan
format.
Misalkan
mengisi Umur
dengan huruf,
kemudian klik
“Simpan”.
Umur : ab Sistem akan
menolak dan
menampilkan
pesan “Maaf
umur hanya
boleh angka
max 3 digit”.
Sesuai
dengan
harapan
Valid
4. Pengujian terhadap form Mustahik
Dalam pengujian pada form input mustahik ini digunakan untuk mengisi data
mustahik terbaru dengan memasukkan atau membuat id mustahik baru.
Tabel III.25.
Tabel pengujian Black Box Testing pada validasi Input Mustahik
No Skenario
pengujian
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1 Mengosongkan
semua data,
lalu langsung
klik tombol
“Simpan”.
Semua field :
- (kosong)
Sistem akan
menolak akses
untuk
menyimpan
dan akan
menampilkan
pesan “Mohon
isi data dulu”.
Sesuai
dengan
harapan
Valid
2. Mengosongkan
salah satu data,
lalu langsung
klik tombol
“Simpan”.
Salah satu
field : -
(kosong)
Sistem akan
menolak akses
untuk
menyimpan
dan akan
menampilkan
pesan “Mohon
isi data dulu”.
Sesuai
dengan
harapan
Valid
3. Jika mengisi
data tidak
sesuai dengan
format.
Misalkan
mengisi nama
dengan angka,
kemudian klik
Nama :
12345678
Sistem akan
menolak dan
akan muncul
pemberitahuan
“Maaf nama
hanya boleh
berupa huruf
dan spasi”.
Sesuai
dengan
harapan
Valid
89
tombol
“Simpan”.
4 Jika mengisi
data tidak
sesuai dengan
format.
Misalkan
mengisi
penghasilan
dengan huruf,
kemudian klik
“Simpan”.
Penghasilan
: qwerty
Sistem akan
menolak dan
menampilkan
pesan “Maaf
penghasilan
hanya boleh
berupa angka
min 8 digit,
max 15 digit”.
Sesuai
dengan
harapan
Valid
5 Jika mengisi
data tidak
sesuai dengan
format.
Misalkan
mengisi NIK
dengan huruf,
kemudian klik
“Simpan”.
Nik :
abcdefghijkl
Sistem akan
menolak dan
menampilkan
pesan “Maaf
nik hanya
boleh berupa
angka 16
digit”.
Sesuai
dengan
harapan
Valid
6 Jika mengisi
data tidak
sesuai dengan
format.
Misalkan
mengisi Umur
dengan huruf,
kemudian klik
“Simpan”.
Umur : ab Sistem akan
menolak dan
menampilkan
pesan “Maaf
umur hanya
boleh angka
max 3 digit”.
Sesuai
dengan
harapan
Valid
4. Pengujian terhadap form Kas Masuk
Dalam pengujian pada form input kas masuk ini digunakan untuk mengisi data kas
masuk.
Tabel III.26.
Tabel pengujian Black Box Testing pada validasi Input Kas Masuk
No Skenario
pengujian
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1 Mengosongkan
semua data,
lalu langsung
klik tombol
“Simpan”.
Semua field :
- (kosong)
Sistem akan
menolak akses
untuk
menyimpan
dan akan
Sesuai
dengan
harapan
Valid
90
menampilkan
pesan “Mohon
isi dulu semua
data”.
2. Mengosongkan
salah satu data,
lalu langsung
klik tombol
“Simpan”.
Salah satu
field : -
(kosong)
Sistem akan
menolak akses
untuk
menyimpan
dan akan
menampilkan
pesan “Mohon
isi dulu semua
data”.
Sesuai
dengan
harapan
Valid
3. Jika mengisi
data tidak
sesuai dengan
format.
Misalkan
mengisi jumlah
kas dengan
huruf,
kemudian klik
tombol
“Simpan”.
Jumlah kas :
qwerty
Sistem akan
menolak dan
akan muncul
pemberitahuan
“Jumlah kas
hanya boleh
berupa
angka”.
Sesuai
dengan
harapan
Valid
5. Pengujian terhadap form Kas Keluar
Dalam pengujian pada form input kas keluar ini digunakan untuk mengisi data kas
keluar.
Tabel III.27.
Tabel pengujian Black Box Testing pada validasi Input Kas Keluar
No Skenario
pengujian
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1 Mengosongkan
semua data,
lalu langsung
klik tombol
“Simpan”.
Semua field :
- (kosong)
Sistem akan
menolak akses
untuk
menyimpan
dan akan
menampilkan
pesan “Mohon
isi dulu semua
data”.
Sesuai
dengan
harapan
Valid
91
2. Mengosongkan
salah satu data,
lalu langsung
klik tombol
“Simpan”.
Salah satu
field : -
(kosong)
Sistem akan
menolak akses
untuk
menyimpan
dan akan
menampilkan
pesan “Mohon
isi dulu semua
data”.
Sesuai
dengan
harapan
Valid
3. Jika mengisi
data tidak
sesuai dengan
format.
Misalkan
mengisi jumlah
kas dengan
huruf,
kemudian klik
tombol
“Simpan”.
Jumlah kas :
qwerty
Sistem akan
menolak dan
akan muncul
pemberitahuan
“Jumlah kas
hanya boleh
berupa
angka”.
Sesuai
dengan
harapan
Valid
3.5.3. Spesifikasi Hardware dan Software
1. Spesifikasi Hardware
Spesifikasi perangkat keras (hardware) minimum yang dapat digunakan untuk
server adalah satu unit PC dan printer dengan spesifikasi sebagai berikut:
a. Processor : ® celerone ® 2957U @1,40Ghz 1.40GHz
b. Memory Size : 2 GB (RAM)
c. Harddisk : 1 GB
d. Monitor : SVGA 15 Inch
e. Mouse : USB
f. Keyboard : 102 Keys
g. Printer : Inkjet
h. Koneksi Internet : Koneksi internet dengan kecepatan 1000 Mbps
92
Sedangkan spesifikasi perangkat keras (hardware) minimum yang dapat
digunakan untuk server adalah satu untit PC dan printer dengan spesifikasi sebagai
berikut:
a. Processor : ® celerone ® 2957U @1,40Ghz 1.40GHz
b. Memory Size : 2 GB (RAM)
c. Harddisk : 1 GB
d. Monitor : SVGA 15 Inch
e. Mouse : USB
f. Keyboard : 102 Keys
g. Printer : Inkjet
h. Koneksi Internet : Koneksi internet dengan kecepatan 1000 Mbps
2. Spesifikasi Software
Perangkat lunak yang dibutuhkan dengan syarat minimal yang digunakan
penulis untuk pembuatan program adalah sebagai berikut:
a. Server
1) Sistem Operasi : Microsoft Windows 2013
2) Program Aplikasi : Java Application
3) Bahasa Pemrograman : NetBeans IDE 8.1
4) Database : MySQL dengan phpMyAdmin
5) Browser : Mozilla firefox
6) Web Server : Xampp v 3.2.1
b. Client
1) Sistem Operasi : Microsoft Windows Server 2013
2) Paket Aplikasi Web Server : Xampp v 3.2.1
93
3) Aplikasi Web Browser : Mozilla Firefox, Internet Explorer,
Google Chrome
4) Program Editor Java : Netbeans IDE 8.1
5) Bahasa Pemrograman : SQL
6) Database : MySQL dengan phpMyAdmin