bab iii pembahasan - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering...

72
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.

Upload: others

Post on 29-Nov-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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.

Page 2: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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.

Page 3: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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.

Page 4: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 5: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 6: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 7: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 8: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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)

Page 9: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

30

2. Activity diagram prosedur penyaluran ZIS

Sumber: Hasil Penelitian

Gambar III.3.

Activity Diagram Prosedur Penyaluran ZIS

Page 10: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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:

Page 11: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 12: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 13: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 14: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 15: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 16: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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”.

Page 17: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 18: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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”.

Page 19: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 20: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 21: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 22: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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”.

Page 23: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 24: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 25: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

46

b. Activity diagram Admin mengelola data muzakki

Sumber: Hasil Penelitian. 2019

Gambar III.8.

Activity Diagram Admin Mengelola Data Muzakki

Page 26: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

47

c. Activity Diagram Admin Mengelola Data Mustahik

Sumber: Hasil Penelitian. 2019

Gambar III.9.

Activity Diagram Admin Mengelola Data Mustahik

Page 27: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

48

d. Activity Diagram Admin Mengelola Kas Masuk

Sumber: Hasil Penelitian. 2019

Gambar III.10.

Activity Diagram Admin Mengelola Kas Masuk

Page 28: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 29: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 30: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 31: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 32: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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.

Page 33: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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.

Page 34: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

55

Sumber: Hasil Penelitian. 2019

Gambar III.21.

Logical Record Structure (LRS)

Page 35: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 36: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 37: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 38: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 39: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 40: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 41: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

62

3.4.4. Sequence Diagram

1. Sequence Diagram Kas Masuk

Sumber: Hasil Penelitian. 2019

Gambar III.22.

Sequence Diagram

Page 42: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 43: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 44: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 45: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 46: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 47: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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.

Page 48: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 49: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

}

}

Page 50: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 51: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 52: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 53: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 54: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 55: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 56: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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"

Page 57: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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)

Page 58: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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)

Page 59: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 60: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

}

Page 61: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

}

Page 62: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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;

Page 63: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 64: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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.

Page 65: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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.

Page 66: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 67: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 68: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 69: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 70: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 71: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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

Page 72: BAB III PEMBAHASAN - repository.bsi.ac.id · kertas dan flashdisk sehingga mengakibatkan sering terjadinya kehilangan data, pemborosan dana, dan sulit jika mencari data karena penumpukan

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