23
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Desa Siluman adalah salah satu desa di kecamatan Pabuaran, Subang, Jawa
Barat, Indonesia. Sebagian besar penduduknya bermata pencaharian petani. Adapun
salah satu industri yang berkembang di desa itu adalah pengrajin meubel atau pembuat
sofa. Kepala desa yang terpilih dari hasil pemilihan langsung tahun 2012 dan dilantik
tanggal 11 Oktober 2012 adalah Bapak Warman dan merupakan putra daerah. Dia
mempunyai wawasan kedepan untuk meningkatkan tingkat perekonomian
masyarakat. Langkah pertama yang dilaksanakan adalah perbaikan instruktur
terutama jalan. Duan tahun berjalan masa pemerintahan masyarakat telah merasakan
perubahan yang signifikan. Selain perbaikan jalan, pada tahun 2014 desa Siluman juga
merasakan ada nya bantuan untuk masyarakat kurang mampu yang berupa Renovasi
Rumah Tidak Layak Huni (Rutilahu).
Kantor Desa Siluman, Kecamatan Pabuaran, Kabupaten Subang Jawa Barat
adalah instansi pemerintahan yang bergerak dibidang pelayanan masyarakat. Desa
siluman merupakan salah satu instansi yang mendapatkan bantuan Rumah Tidak
Layak Huni (Rutilahu). Dalam operasioanal nya, kantor desa ini mencatat bukti-bukti
transaksi masih menggunakan sistem manual seperti catatan buku kas. Sehingga hal
ini tentunya memiliki beberapa resiko, seperti hilangnya bukti transaksi atau dapat
menyebabkan kekeliruan data, kesalahan dalam memasukkan data kas masuk dan
keluar oleh bagian keuangan serta kurang efektifnya dalam membuat laporan
24
keuangan. Bagian keuangan harus merekap satu persatu kas masuk dan keluar yang
kemudian dimasukkan kedalam buku besar untuk dijadikan laporan keuangan.
3.1.1. Sejarah Desa Siluman
Desa Siluman berdiri pada tahun 1908 M, dan kata Siluman diambil dari nama
sebuah kali kecil CISILUMAN yang sekarang termasuk kewilayahan Desa
Kadawung. Luas wilayah Desa Siluman pada tahun 1908 M adalah kurang lebih
1.730.228 Ha termasuk Desa Kadawung sekarang. Kali Cisiluman tersebut
dipergunakan tempat persembunyian para pejuang desa dalam melawan penjajah
Belanda, maka untuk menggenang sejarah, kali Cisiluman tersebut ditetapkan sebagai
nama sebuah Desa, yang sekarang dikenal Desa Siluman. Pada waktu itu Desa
Siluman terbagi 8 (delapan) dusun yaitu:
1. Dusun Siluman Kerajan
2. Dusun Siluman Girang
3. Dusun Siuman I
4. Dusun Siluman II
5. Dusun Bakan Subang
6. Dusun Cilekor
7. Dusun Bakan Pintu
8. Dusun Kadawung
Dan menurut beberapa saksi sejarah menerangkan bahwa keterangan tersebut,
informasinya dijelaskan dari keturunan orang yang masih hidup.
Susunan nama-nama Kepala Desa Siluman dari sejak berdirinya sampai sekarang:
1. Kepala Desa ke I: Bapak Tinggi
2. Kepala Desa ke II: Bapak Narsam
25
3. Kepala Desa ke III: Bapak Jamlang
4. Kepala Desa ke IV: Bapak H. Enoh
5. Kepala Desa ke V: Bapak Asmalan
6. Kepala Desa ke VI: Bapak H. Kurdi
7. Kepala Desa ke VII: Bapak H. Sidik
8. Kepala Desa ke VIII: Bapak Jasih
9. Kepala Desa ke IX: Bapak Madruki
10. Kepala Desa ke X: Bapak Sukarsa
11. Kepala Desa ke XI: Bapak Anta
12. Kepala Desa ke XII: Bapak Wadi
13. Kepala Desa ke XIII: Bapak Umin
14. Kepala Desa ke XIV: Bapak Iri Suherman
15. Kepala Desa ke XV: Bapak E. Surji M
16. Kepala Desa ke XVI: Bapak H. Calim
17. Kepala Desa ke XVII: Bapak Juniarsa
18. Kepala Desa ke XVIII: Bapak Warman
Desa Siluman telah mengalami pemekaran yaitu pada tahun 1982, Dusun
Cilekor, Dusun Kadawung, Dusun Bakan Pintu dimekarkan menjadi sebuah Desa
yang sekarang dengan nama Desa Kadawung. Maka setelah mengalami pemekaran
Desa Siluman memiliki luas wilayah lebih kurang 716.928 Ha yang terdiri dari lima
Dusun yaitu:
1. Dusun Siluman Kerajan
2. Dusun Siluman Girang
3. Dusun Siluman I
4. Dusun Siluman II
26
5. Dusun Bakan Subang
Maksud ditulisnya Sejarah Desa Siluman ini agar warga masyarakat Desa Siluman
terutama generasi penerus supaya mengetahui dan memahami tentang silsilah
terbentuknya Desa Siluman sebagai tanah kelahirannya.
3.1.2. Struktur Organisasi
Struktur organisasi adalah suatu susunan dan hubungan antara tiap bagian serta
posisi yang ada pada suatu organisasi atau perusahaan atau perusahaan dalam
menjalankan kegiatan operasional untuk mencapai tujuan. Stuktur organisasi
merupakan komponen yang sangat penting yang harus ada dalam organisasi yang
memuat terkait pembagian tugas dan tanggung jawab dengan jelas pemisahan
kegiatan pekerjaan antara yang satu dengan yang lain.
Bentuk struktur organisasi dan fungsi di Desa Siluman Pabuaran sebagai berikut:
Sumber: Arsip Desa Siluman
Gambar III.1.
Sturktur Organisasi Desa Siluman Pabuaran
KEPALA DESA
KAUR
PEMERINTAHAN
KAUR KESRA
DAN
PELAYANAN
SEKDES
KAUR
UMUM BENDAHAR
Kepala Dusun
27
Berikut adalah tugas dan fungsi perangkat desa siluman kecamatan pabuaran
Kabupaten Subang:
1. Kepala Desa
a. Menyelenggarakan pemerintahan desa berdasarkan kebijakan yang ditetapkan
bersama BPD
b. Mengajukan rancangan peraturan Desa
c. Menetapkan peraturan yang telah mendapatkan persetujuan bersama BPN
d. Menyusun dan mengajukan rancangan peraturan desa mengnenai APB Desa
untuk dibahas dan ditetapkan bersama BPD
e. Membina kehidupan masyarakat Desa
f. Membina ekonomi desa
g. Mengordinasikan pembangunan desa secara partisipatif
h. Mewakili desanya di dalam dan luar pengadilan dan dapat menunjuk kuasa
hukum untuk mewakilinya sesuai dengan paeraturan perundang-undangan; dan
i. Melaksanakan wewenang lain sesuai dengan peraturan perundang-undangan.
2. Sekretaris Desa
Tugas Pokok: Membantu Kepala Desa dalam mempersiapkan dan melaksanakan
pengelolaan administrasi Desa, mempersiapkan bahan penyusunan laporan
penyelenggaraan Pemerintah Desa.
Fungsi:
a. Penyelenggara kegiatan administrasi dan mempersiapkan bahan untuk
kelancaran tugas Kepala Desa
b. Melaksanakan tugas kepala desa dalam hal kepala desa berhalangan
c. Melaksanakan tugas kepala desa apabila kepala desa diberhentikan sementara
d. Penyiapan bantuan penyusunan Peraturan Desa
28
e. Penyiapan bahan Laporan Penyelenggaraan Pemerintahan Desa
f. Pengkoordinasian Penyelenggaraan tugas-tugas urusan dan pelaksanaan tugas
lain yang diberikan oleh Kepala Desa.
3. Kepala Urusan (KAUR) UMUM
Tugas Pokok: Membantu Sekretaris Desa dalam melaksanakan administrasi
umum, tata usaha dan kearsipan, pengelolaan inventaris kekayaan desa, serta
mempersiapkan bahan rapat dan laporan.
Fungsi:
a. Pelaksanaan, pengendalian dan pengelolaan surat masuk dan surat keluar serta
pengendalian tata kearsipan
b. Pelaksanaan pencatatan inventarisasi kekayaan Desa
c. Pelaksanaan pengelolaan administrasi umum
d. Pelaksanaan penyediaan, penyimpanan dan pendistribusian alat tulis kantor
serta pemeliharaan dan perbaikan peralatan kantor
e. Pengelolaan administrasi perangkat Desa
f. Persiapan bahan-bahan laporan dan
g. Pelaksanaan tugas lain yang diberikan oleh Sekretaris Desa.
4. Bendahara
Tugas Pokok: Membantu Sekretaris Desa dalam melaksanakan pengelolaan
sumber pendapatan Desa, pengelolaan administrasi keuangan Desa dan
mempersiapkan bahan penyusunan APB Desa.
Fungsi:
a. Pelaksanaan pengelolaan administrasi keuangan Desa
b. Persiapan bahan penyusunan APB Desa dan
c. Pelaksanaan tugas lain yang diberikan oleh Sekretaris Desa.
29
5. KAUR Pemerintahan
Tugas Pokok: Membantu Kepala Desa dalam melaksanakan pengelolaan
administrasi kependudukan, administrasi pertanahan, pembinaan, ketentraman dan
ketertiban masyarakat Desa, mempersiapkan bahan perumusan kebijakan
penataan, Kebijakan dalam Penyusunan produk hukum Desa.
Fungsi:
a. Pelaksanaan kegiatan administrasi kependudukan
b. Persiapan bahan-bahan penyusunan rancangan peraturan Desa dan keputusan
Kepala Desa
c. Pelaksanaan kegiatan administrasi pertanahan
d. Pelaksanaan Kegiatan pencatatan monografi Desa
e. Persiapan bantuan dan melaksanakan kegiatan penataan kelembagaan
masyarakat untuk kelancaran penyelenggaraan pemerintahan Desa
f. Persiapan bantuan dan melaksanakan kegiatan kemasyarakatan yang
berhubungan dengan upaya menciptakan ketentraman dan ketertiban
masyarakat dan pertahanan sipil
g. Pembuatan Kartu Tanda Penduduk (KTP)
h. Pembuatan Kartu Keluarga (KK)
i. Pembuatan Surat Keterangan Tidak Mampu (SKTM) bagi warga Desa yang
berkehidupan ekonomi kurang mampu agar mendapatkan penangguhan-
penangguhan, misalkan penangguhan atau pengurangan beban biaya di rumah
sakit. Pembuatan surat ini tidak memerlukan biaya, digratiskan bagi warga Desa
yang memerlukan. Dalam perkembangannya SKTM ini berubah menjadi Kartu
Multiguna, Kartu ini dapat digunakan oleh satu keluarga yang diwakili oleh
kepala keluarga sebagai pemegang kartu.
30
6. KAUR Ekonomi Pembangunan
Tugas Pokok: Membantu Kepala Desa dalam melaksanakan penyiapan bahan
perumusan kebijakan teknis pengembangan ekonomi masyarakat dan potensi desa,
pengelolaan administrasi pembangunan, pengelolaan pelayanan masyarakat serta
penyiapan bahan usulan kegiatan dan pelaksanaan tugas pembantuan.
Fungsi:
a. Penyiapan bantuan-bantuan analisa & kajian perkembangan ekonomi
masyarakat
b. Pelaksanaan kegiaatan administrasi pembangunan
c. Pengelolaan tugas pembantuan
d. Pelaksanakan tugas lain yang diberikan oleh Kepala Desa.
7. KAUR KESRA (Kesejahteraan Rakyat)
Tugas Pokok: Membantu Kepala Desa dalam melaksanakan penyiapan bahan
perumusan kebijakan teknis Penyusunan Program Keagamaan serta melaksanakan
Program pemberdayaan masyarakat dan sosial kemasyarakatan.
Fungsi:
a. Penyiapan bahan untuk pelaksanaan program kegiatan keagamaan
b. Penyiapan dan pelaksanaan program perkembangan kehidupan beragama
c. Penyiapan bahan dan pelaksanaan program, pemberdayaan masyarakat dan
sosial kemasyarakatan; dan
d. Pelaksanaan tugas-tugas lain yang diberikan Kepala Desa.
8. Kepala Dusun (KADUS)
Tugas:
a. Membantu pelaksanaan tugas kepala desa dalam wilayah kerjanya
b. Melakukan pembinaan dalam meningkatkan gotong royong masyarakat
31
c. Melakukan kegiatan penerangan tentang program pemerintah kepada
masyarakat
d. Membantu kepala desa dalam pembinaan dan mengkoordinasikan kegiatan
RW (Rukun Wilayah) dan RT (Rukun Tetangga) diwilayah kerjanya
e. Melaksanakan tugas lain yang diberikan oleh kepala desa.
Fungsi:
a. Melakukan koordinasi terhadap jalannya pemerintah desa, pelaksanaan
pembangunan dan pembinaan masyarakat diwilayah dusun
b. Melakukan tugas dibidang pembangunan dan pembinaan kemasyarakatan yang
menjadi tanggung jawabnya
c. Melakukan usaha dalam rangka meningkatkan partisipasi dan swadaya gotong
royong masyarakat dan melakukan pembinaan perekonomian
d. Melakukan kegiatan dalam rangka pembinaan dan pemeliharaan ketrentaman
dan ketertiban masyarakat
e. Melakukan fungsi-fungsi lain yang dilimpahkan oleh kepala desa.
3.2. Tinjauan Kasus
Tinjauan kasus merupakan hal yang mendasar sebagai peninjau kembali
tentang masalah yang ada di penelitian tersebut, semakin banyak peneliti mengetahui,
mengenal dan memahami tentang penelitian-penelitian yang pernah dilakukan
sebelumnya, semakin dapat dipertanggung jawabkan cara meneliti permasalahan yang
dihadapi.
Tinjauan kasus ini membahas tentang gambaran proses Rutilahu pada Desa
Siluman Kecamatan Pabuaran Kabupaten Subang yang dimulai dari pengajuan
proposal, prosedur pencairan dana desa, dan kemudian pengambilan dana desa dan
32
pengeluaran kas, pada tahap akhir yaitu prosedur pengolahan data sehingga menjadi
sebuah laporan keuangan Desa Siluman.
3.2.1. Analisa Sistem Berjalan
1. Prosedur Proposal
Pihak Desa melakukan pengajuan proposal bantuan rutilahu yang dibuat oleh
sekretaris desa, yang nantinya diberikan kepada kepala desa untuk mengecek dan
melakukan tanda tangan terlebih dahulu kemudian proposal tersebut ditujukan ke
kecamatan pabuaran untuk di verifikasi kembali serta menandatatangin proposal
tersebut, ketika data telah sesuai maka tahap akhir yaitu mengirim proposal kepada
pemerintah daerah Kabupaten Subang sebagai langkah awal sebelum proses
pencairan dana bantuan rutilahu kepada masing masing desa yang ada di
Kabupaten Subang.
2. Prosedur Pencairan Dana
Ketika proposal tersebut di setujui maka akan diberikan pemberitahuan kepada
desa bahwa proposal telah disetujui, selanjutnya kepala desa didampingi oleh
bendahara untuk melakukan proses penarikan dana di Bank Jawa Barat yang
jumlahnya sesuai dengan pengajuan proposal yang telah di setujui oleh pemerintah
daerah Kabupaten Subang, kemudian kepala desa menyerahkan dana tersebut
kepada bendahara desa, mendahara menerima dana untuk disimpan dan diarsipkan
slip penarikan yang asli. Kemudian bendahara desa mencatat data penerimaan dana
kedalam kas masuk.
3. Prosedur Pengeluaran Dana Kas
Pada proses ini bendahara desa memberikan dana dan rencana anggaran biaya
kepada KAUR yang sudah disetujui kepala desa untuk biaya yang akan dibutuhkan,
33
kemudian bagian KAUR memberikan bukti pengeluaran kas berupa kwitansi
kepada bendahara desa. Bendahara desa kemudian mencatatnya kedalam buku kas
keluar dan mengarsipkan kwitansi tersebut.
4. Prosedur Pembuatan Laporan
Bendahara membuat laporan keuangan yang ada di setiap bulan nya berupa laporan
buku kas umum baik berupa laporan penerimaan dan pengeluaran. Laporan buku
kas umum diketahui kepala desa sedangkan laporan pertanggung jawaban
penerimaan dan pengeluaran tersebut harus di verifikasi oleh sekretaris desa
terlebih dahulu. Setelah di verifikasi kemudian bendahara menyerahkan laporan-
laporan tersebut kepada kepala desa untuk ditandatanganin dan disimpan.
3.2.2. Activity Diagram
Activity diagram atau diagram aktivitas yaitu salah satu jenis diagram pada
UML yang dapat memodelkan proses-proses apa saja yang terjadi pada sistem atau
tehnik untuk mendeskripsikan proses bisnis dan aliran kerja dalam banyak kasus.
Activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah
sistem atau proses bisnis atau menu yang ada pada perangkat lunak. Dari pertama
sampai akhir, diagram ini menunjukan langkah-langkah dalam proses kerja sistemnya
yang kita buat.
Berikut merupakan gambaran sistem berjalan pengelolaan dana desa pada Desa
Siluman Pabuaran yang dijelaskan dengan gambar activity diagram dibawah ini:
1. Activity Diagram Pembuatan Proposal
Pada gambar III.2 penulis menjelaskan activity diagram sistem berjalan prosedur
pembuatan proposal pengajuan permohonan bantuan Dana Desa untuk Rutilahu
pada Desa Siluman Pabuaran.
34
Gambar III.2.
Activity Diagram Pembuatan Proposal
35
2. Activity Diagram Penerimaan Dana Desa
Pada gambar III.3 penulis menjelaskan prosedur penerimaan dana desa untuk
Rutilahu pada Desa Siluman Pabuaran.
Gambar III.3.
Activity Diagram Penerimaan Dana Desa
36
3. Activity Diagram Pengeluaran Dana Kas
Pada gambar III.4 penulis menjelaskan prosedur pengeluaran dana desa untuk
Rutilahu pada Desa Siluman Pabuaran.
Gambar III.4.
Activity Diagram Pengeluaran Kas
37
4. Activity Diagram Pembuatan Laporan
Pada gambar III.5 penulis menjelaskan prosedur pembuatan laporan dana desa
untuk Rutilahu pada Desa Siluman Pabuaran.
Gambar III.5.
Activity Diagram Pembuatan Laporan
38
3.2.3. Dokumen Masukan
Dokumen masukan adalah segala bentuk dokumen yang berasal dari lingkungan
luar sistem yang berupa dokumen-dokumen yang akan diolah dalam suatu proses agar
dapat menghasilkan keluaran yang diinginkan. Adapun dokumen masukan tersebut
adalah sebagai berikut:
1. Slip penarikan
Nama Dokumen: Slip penarikan
Fungsinya: Sebagai bukti dari penarikan dana
Sumber: Bank
Tujuan: Bendahara Desa
Jumlah: Satu lembar
Media: Kertas
Frekuensi: Setiap terjadi penarikan
3.2.4. Dokumen Keluaran
Dokumen keluaran adalah segala bentuk dokumen perusahaan berupa
dokumen-dokumen yang akan mendukung kegiatan manajeman serta merupakan
dokumen hasil pencatatan atau laporan. Adapun dokumen keluaran tersebut adalah
sebagai berikut:
1. Rencana Anggaran Biaya
Nama Dokumen: Rencana Anggaran Biaya
Fungsi : Sebagai syarat persetujuan dan rencana anggaran biaya
Sumber : Bendahara Desa
Jumlah : Satu lembar
Media : Kertas
39
Tujuan : Kepala Desa
Frekuensi : Setiap terjadi perencanaan anggaran biaya
2. Laporan Pertanggung jawaban
Nama : Laporan pertanggung jawaban
Fungsinya : Sebagai laporan pertanggung jawaban
Sumber : Bendahara Desa
Tujuan : Kepala Desa
Jumlah : Satu lembar
Media : kertas
Frekuensi : Setiap pendapatan dan pegeluaran dana desa
3.2.5. Permasalahan Pokok
Dari hasil pengamatan serta uraian yang telah penulis paparkan, dapat diambil
kesimpulan bahwa dalam proses pengolahan keuangan desa yang terjadi di Desa
Siluman Pabuaran sudah cukup baik dalam pengolahan keuangan nya, namun ada
beberapa yang masih dilakukan dengan menggunakan media kertas. Seperti halnya
dalam melakukan pembuatan laporan keuangan yang masih di lakukan secara
sederhana yaitu menggunakan tulis tangan pada buku, hal ini menyebabkan sangat
mudah untuk memanipulasi data dan sangat rentan terjadinya kesalahan dalam
penulisan angka dan sebagainya, sehingga kinerjanya masih belum efektif. Adapun
hal lain nya yaitu:
1. Pencatatan dan perekapan data membutuhkan waktu lama sehingga laporan
terlambat untuk dilaporan kepada kepala desa.
2. Sering terjadi kekeliruan dalam pengisian data sehingga mengakibatkan data
kurang akurat dan efektif.
3. Proses pencatatan data lama sehingga menghambat dalam pekerjaan lain nya.
40
4. Membutuhkan ruang penyimpanan data yang luas untuk pengarsipan dokumen
dana.
3.2.6. Pemecahan Masalah
Untuk memecahkan masalah yang ada pada Desa Siluman Pabuaran, khususnya
pada bagian pengelolaan keuangan desa, penulis mengusulkan untuk mengubah
sistem yang lama menjadi sistem yang baru atau membuat suatu sistem yang
berbentuk aplikasi atau dekstop clien server sehingga pencatatan atau pengelolaan
dana desa tidak menggunakan buku tulis, dan permasalahan yang sering terjadi dapat
teratasi dengan baik. Dengan ada nya aplikasi tersebut maka:
1. Pencatatan dan proses perekapan dapat dilakukan dengan cepat, karena setiap
transaksi yang dilakukan otomatis kesimpan di dalam suatu aplikasi.
2. Pencatatan untuk pengeluaran dan pemasukan dana yang brsifat tetap hanya
diisi sekali, karena untuk transaksi berikutnya cukup mengambil data dari
database.
3. Mempercepat proses pencarian dengan memanfatkan fitur pencarian pada
aplikasi.
4. Tidak membutuhkan ruang penyimpanan yang luas, karena data tersimpan di
dalam bentuk digital dengan memanfaatkan database.
3.3. Analisa Kebutuhan Software
Analisa kebutuhan merupakan langkah awal untuk menentukan gambaran
perangkat yang akan dihasilkan ketika pengembangan melaksanakan sebuah proyek
pembuatan perangkat lunak. Perangkat lunak yang baik dan sesuai dengan kebutuhan
pengguna sangat bergantung pada keberhasilan dalam melakukan analisa kebutuhan.
41
3.3.1.Analisa Kebutuhan
Analisa kebutuhan adalah suatu proses untuk mendapatkan informasi tentang
perangkat lunak yang diinginkan pengguna. Analisa kebutuhan merupakan satu
duantara banyak aktivitas kritis pada proses rekayasa kebutuhan perangkat lunak
untuk memahami ranah permasalahan dari sistem yang berjalan dan solusi dari sistem
yang akan dibuat.
A. Bendahara Login
B. Bendahara mengelola Menu Master
B.1. Mengelola Data Pengguna
B.2. Mengelola Data Karyawan
B.3. Mengelola Data Akun
B.4. Mengelola Data Masyarakat
C. Bendahara mengelola Data Pengelolaan Keuangan
C.1. Mengelola Data Kas Masuk
C.2. Mengelola Data Kas Keluar
C.3. Mengelola Jurnal Umum
D. Bendahara mengelola Data Laporan
D.1. Laporan Kas Masuk Detail
D.2. Laporan Kas Keluar Detail
D.3. Laporan Jurnal Umum
3.3.2. Use Case Diagram
Dalam buku Sri Mulyani menjelaskan use case diagram yaitu diagram yang
digunakan untuk menggambarkan hubungan antara sistem dan aktor. Use case
mendeskripsikan sebuah interaksi antara satu atau lebih actor dengan sistem informasi
yang akan dibuat.
42
1. Use Case Diagram Pengelolaan Dana Desa
Berikut adalah gambar III.6 proses sitem berjalan pengelolaan keuangan pada Desa
Siluman Pabuaran:
Gambar III.6.
Use Case Diagram Rancangan Bangun Sistem Pengelolaan Keuangan Dana
Desa
43
Tabel III.1
Deskripsi Use Case Diagram Rancangan Bangun Sistem Pengelolaan Dana Desa
Use Case Narative Rancangan Bangun Sistem pengelolaan Dana Desa
Tujuan
Pengguna dapat melakukan pengelolaan
data yang ada dimenu utama yaitu data
master, pengelolaan keuangan desa dan
laporan
Deskripsi
Sistem yang memungkinkan pengguna
untuk mengelola sistem informasi
pengelolaan keuangan desa, mulai dari
input data sampai ke laporan.
Skenario Utama
Aktor Pengguna
Kondis Awal Pengguna membuka tampilan menu
utama pada aplikasi
Aksi Aktor Reaksi Sistem
1. Aktor memilih tombol master
2. Aktor memilih tombol
pengelolaan keuangan desa
3. Aktor memilih tombol laporan
Sistem akan menampilkan data
pengguna, data anggaran dan data akun.
Sistem akan menampilkan data kas
masuk, data kas keluar dan data jurnal
umum.
Sistem akan menampilkan data laporan
kas masuk, laporan kas keluar dan
laporan jurnal umum.
44
4. Aktor memilih tombol keluar Sistem akan keluar dari menu utama
Kondis Akhir Jika perintah sesuai maka sistem akan
masuk kedalam aplikasi pengelolaan
dana desa dan pengguna dapat
melakukan aktivitas didalam sistem.
3.3.3. Activity Diagram
Activity Diagram adalah diagram yang menggambarkan worlflow (aliran kerja)
atau aktivitas dari sebuah sistem atau proses yang ada pada perangkat lunak.
1. Activity Diagram Masuk
Gambar III.7.
Activity Diagram Masuk
45
2. Activity Diagram Menu Utama
Pada gambar III.8 adalah gambar proses pengguna masuk dan mengelola
data menu utama:
Gambar III.8.
Activity Diagram Menu Utama
46
3. Activity Diagram Data Akun
Pada gambar III.9 adalah penggunaan masuk dan mengelola data akun:
Gambar III.9.
Activity Diagram Data Akun
47
4. Activity Diagram Data Pengguna
Pada gambar III.10 adalah proses pengguna masuk dan mengelola data
pengguna:
Gambar III.10.
Activity Diagram Data Pengguna
48
5. Activity Diagram Data Karyawan
Pada gambar III.11 adalah proses pengguna masuk dan mengelola data
karyawan:
Gambar III.11.
Activity Diagram Data Karyawan
49
6. Activity Diagram Data Masyarakat
Pada gambar III.12 adalah proses pengguna masuk dan mengelola data
masyarakat:
Gambar III.12.
Activity Diagram Data Masyarakat
50
7. Activity Diagram Data Kas Masuk
Pada gambar III.13 adalah gambar proses pengguna masuk dan mengelola
data kas masuk:
Gambar III.13.
Activity Diagram Data Kas Masuk
51
8. Activity Diagram Kas Keluar
Pada gambar III.14 adalah gambar proses pengguna masuk dan mengelola
data kas keluar:
Gambar III.14.
Activity Diagram Data Kas Keluar
52
9. Activity Diagram Jurnal Umum
Pada gambar III.15 adalah gambar proses pengguna masuk dan melihat data
jurnal umum:
Gambar III.15.
Activity Diagram Data Jurnal Umum
53
10. Activity Diagram Laporan Kas Masuk
Pada gambar III.16 adalah gambar proses pengguna masuk dan melihat data
laporan kas masuk:
Gambar III.16.
Activity Diagarm Laporan Kas Masuk
54
11. Activity Diagram Laporan Kas Keluar
Pada gambar III.17 adalah gambar proses pengguna masuk dan melihat data
laporan kas keluar:
Gambar III.17.
Activity Diagram Laporan Kas Keluar
55
12. Activity Diagram Laporan Jurnal
Pada gambar III.18 adalah gambar proses pengguna masuk dan melihat data
laporan jurnal:
Gabar III.18.
Activity Diagram Laporan Jurnal
56
3.4. Desain
Desain adalah suatu sistem yang berlaku untuk segala jenis perancangan dimana
titik beratnya adalah melihat segala sesuatu persoalan tidak secara terpisah atau
tersendiri, melainkan sebagai suatu kesatuan dimana satu masalah dengan lainnya
saling terkait.
3.4.1. Entity Relationship Diagram (ERD)
ERD merupakan salah satu model yang digunakan untuk mendesainkan
database dengan tujuan menggambarkan data yang berelasi pada sebuah database.
Gambar III.19 adalah rancangan pengelolaan keuangan pada Desa Siluman Pabuaran:
Gambar III.19.
Entity Relationship Diagram (ERD)
57
3.4.2. Logical Record Structure (LRS)
Gambar III.20.
Logical Record Strukture (LRS)
58
3.4.3. Spesifikasi File
Dalam program ini menggunakan database degan nama pdb_jasman dan di
dalamnya terdapat tabel-tabel sebagai entitas. Tabel-tabel tersebt sebagai beikut:
1. Spesifikasi File Tabel Data Login:
Nama Database : pdb_jasman
Nama File : dt_pengguna
Akses File : Random
Tipe File : Master Data
Record Size : 48 karakter
Filed Key : Id_pengguna
Software : Mysql
Tabel III.2.
Spesifikasi File Data Login
No Elemen Data Akronim Tipe Panjang Keterangan
1 Id pengguna Id_pengguna Integer 8 Primary key
2 UserName User_name Varchar 10
3 Password Password Varchar 30
4 Hak askses Hak_akses Enum -
2. Spesifikasi File Data Akun
Nama Database : pdb_jasman
Nama File : dt_akun
Akses File : Random
Tipe File : Master Data
59
Record Size : 65 karakter
Filed key : kode_akun
Software : Mysql
Tabel III.3.
Spesifikasi File Data Akun
No Elemen Data Akronim Tipe Panjang Keterangan
1 Kode Akun Kode_akun Varchar 10 Primary key
2 Nama Akun Naman_akun Varchar 40
3 Tipe Akun Tipe_akun Varchar 15
3. Spesifikasi File Data Karyawan
Nama Database : pdb_jasman
Nama File : dt_karyawan
Tipe File : Master Data
Akses File : Random
Record Size : 80 karakter
Filed key : kode_nik
Software : Mysql
Tabel III.4.
Spesifikasi File Data Karyawan
No Elemen Data Akronim Tipe Panjang Keterangan
1 Nik Nik Varchar 10 Primary key
2 Nama karyawan Nama_karyawan Varchar 20
60
3 Alamat Alamat Texs -
4 Tempat tgl lahir Ttl Varchar 30
5 Jabatan Jabatan Varchar 20
4. Spesifikasi File Data Masyarakat
Nama Database : pdb_jasman
Nama File : dt_masyarakat
Tipe File : Master Data
Akses File : Random
Record Size : 136 karakter
Filed key : kode_nik
Software : Mysql
Tabel III.5.
Spesifikasi File Data Masyarakat
No Elemen Data Akronim Tipe Panjang Keterangan
1 Nik Nik Varchar 16 Primary key
2 Nama Nama Varchar 45
3 Alamat Alamat Varchar 60
4 Nomor Hp no_hp Varchar 15
5. Spesifikasi File Data Kas Masuk
Nama Database : pdb_jasman
Nama File : dt_kas masuk
61
Tipe File : Transaksi
Akses File : Random
Record Size : 160 karakter
Filed Key : no_transaksi
Software : Mysql
Tabel III.6.
Spesifikasi File Data Kas Masuk
No Elemen Data Akronim Tipe Panjang Keterangan
1 Nomor
transaksi
no_transaksi Varchar 15 Primary
kay
2 Tanggal Tanggal Date -
3 Sumber dana sumber_dana Varchar 25
4 Nominal Nominal Integer 20
5 Keterangan Keterangan Varchar 100
6. Sepsifikasi File Data Kas Keluar
Nama Database : pdb_jasman
Nama File : dt_kas keluar
Tipe File : Transaksi
Fungsi : untuk mengelola data kas keluar
Akses File : Random
Record Size : 160 karakter
Filed Key : no_bukti
Software : Mysql
62
Tabel III.7.
Spesifikasi File Data Kas Keluar
No Elemen Data Akronim Tipe Panjang Keterangan
1 No bukti no_bukti Varchar 15 Primary key
2 Tanggal Tanggal Date
3 Penerima Penerima Varchar 25
4 Total dana total_dana Integer 20
5 Keterangan Keterangan Varchar 100
3.4.4. Sequence Diagram
Diagram sequence menggabarkan kelakuan objek pada use case dengan
mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antara
objek.
Gambar III.21.
Sequence Diagram login
63
3.4.5. Deployment Diagram
Deployment Diagram adalah diagram yang digunakan untuk memetakan
software ke processing node.
Gambar III.22.
Deployment Diagram
3.4.6. User Interface
Berikut ini merupakan tampilan rancangan bangun sistem pengelolaan dana
desa pada Desa Siluman Pabuaran:
64
1. Tampilan Halaman Login
Dalam halaman login, terdapat field username, password dan hak akses . Hal
ini berguna sebagai hak akses user tertentu untuk mengakses sistem tersebut
sehingga dapat menghindari terjadi perubahan data oleh pihak yang tidak
bertanggung jawab.
Gambar III.23.
Tampilan Form Login
65
2. Tampilan Form Menu Utama
Pada tampilan form menu utama ini berfungsi agar pengguna dapat mengakses
dan mengelola menu master, menu keuangan, menu laporan dan menu keluar.
Dimana dalam tiap-tiap menu nya memiliki submenu masing-masing, pada
menu master memiliki submenu data akun, data pengguna dan data karyawan.
Pada menu pengelolaan keuangan memiliki submenu data buku kas masuk,
data buku kas keluar dan data jurnal umum. Pada menu laporan memiliki
submenu laporan kas masuk, laporan kas keluar dan laporan jurnal. Sedangkan
menu keluar berfungsi untuk keluar dari aplikasi menu utama pada
pengelolaan dana desa.
Gambar III.24.
Tampilan Form Menu Utama
66
3. Tampilan Form Data Akun
Gambar III.25.
Tampilan Form Data Akun
67
4. Tampilan Form Data Pengguna
Gambar III.26.
Tampilan Form Data Pengguna
68
5. Tampilan Form Data Karyawan
Gambar III.27.
Tampilan Form Data Karyawan
69
6. Tampilan Form Masyarakat
Gambar III.28.
Tampilan Form Data Masyarakat
70
7. Tampilan Form Kas Masuk
Gambar III.29.
Tampilan Form Data Kas Masuk
71
8. Form pengelolaan Kas Keluar
Gambar III.30.
Tampilan Form Data Kas Keluar
72
9. Tampilan Form Jurnal Umum
Gambar III.31.
Tampilan Form Data Jurnal Umum
73
10. Tampilan Laporan Kas Masuk
Gambar III.32.
Tampilan Form Laporan Kas Masuk
11. Tampilan Laporan Kas Keluar
Gambar III.33.
Tampilan Form Laporan Kas Keluar
74
12. Tampilan Laporan Jurnal
Gambar III.34.
Tampilan Form Laporan Jurnal
75
3.5. Implementasi
3.5.1. Code Generation
1. Form Kas Masuk
import java.io.File;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import java.sql.Connection;
import java.sql.Statement;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Locale;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
76
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
public class kas_in extends javax.swing.JFrame {
String kode,penerima,keterangan;
java.util.Date tglsekarang = new java.util.Date();
private final SimpleDateFormat smpdtfmt = new
SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
//diatas adalah pengaturan format penulisan, bisa diubah sesuai keinginan.
private final String tanggal = smpdtfmt.format(tglsekarang);
int jml;
Date tgl;
ResultSet resultSet;
Statement statement;
String kode_akun, ubah;
int count, jml_awal;
double jml_total;
koneksi conn;
DefaultTableModel tb;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
FormRutilahu.koneksi1 konek = new FormRutilahu.koneksi1();
public kas_in() {
initComponents();
conn=new koneksi();
setLocationRelativeTo(this);
77
tabelmodel();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
DTtgl.setText(dateFormat.format(cal.getTime()));
kode_kas.setEditable(false);
setform(false);
kredit.hide();
SelectKategori();
SelectKategorii();
kode_dana.hide();
kode_kas.hide();
}
private void SelectKategori(){
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet rs = stm.executeQuery("SELECT * FROM
data_akun ORDER BY kode_akun");
nama_kas.addItem("Pilih");
while(rs.next()){
nama_kas.addItem(rs.getString("nama_akun"));
}
konek.closekoneksi();
} catch (SQLException e) {
78
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(kas_in.class.getName()).log(Level.SEVERE, null,
ex);
}
}
private void SelectKategorii(){
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet rs = stm.executeQuery("SELECT * FROM
data_akun ORDER BY kode_akun");
nama_dana.addItem("Pilih");
while(rs.next()){
nama_dana.addItem(rs.getString("nama_akun"));
}
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(kas_in.class.getName()).log(Level.SEVERE, null,
ex);
}
}
79
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel2 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
tblanggaran = new javax.swing.JTable();
jPanel3 = new javax.swing.JPanel();
jLabel6 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
kas_masuk = new javax.swing.JTextField();
kredit = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
DTtgl = new javax.swing.JTextField();
txtnominal = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jScrollPane2 = new javax.swing.JScrollPane();
txtket = new javax.swing.JTextArea();
jLabel5 = new javax.swing.JLabel();
btnbaru = new javax.swing.JButton();
btnsimpan = new javax.swing.JButton();
btnhapus = new javax.swing.JButton();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
sumberdana = new javax.swing.JTextField();
80
txtcari = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
btnKeluar = new javax.swing.JButton();
nama_kas = new javax.swing.JComboBox<>();
kode_kas = new javax.swing.JTextField();
nama_dana = new javax.swing.JComboBox<>();
kode_dana = new javax.swing.JTextField();
javax.swing.GroupLayout jPanel2Layout = new
javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGap(0, 100, Short.MAX_VALUE)
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGap(0, 100, Short.MAX_VALUE)
);
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_C
LOSE);setTitle("Kas Masuk");
tblanggaran.setModel(new javax.swing.table.DefaultTableModel(
81
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"
}
));
tblanggaran.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tblanggaranMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tblanggaran);
jPanel3.setBackground(new java.awt.Color(0, 102, 255));
jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder(java.awt.
Color.lightGray, null));
jPanel3.setForeground(new java.awt.Color(255, 255, 255));
jLabel6.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
jLabel6.setForeground(new java.awt.Color(255, 255, 255));
jLabel6.setText("KAS MASUK");
javax.swing.GroupLayout jPanel3Layout = new
javax.swing.GroupLayout(jPanel3);
82
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel3Layout.createSequentialGroup()
.addContainerGap(180, Short.MAX_VALUE)
.addComponent(jLabel6)
.addGap(177, 177, 177))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(52, 52, 52)
.addComponent(jLabel6)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jLabel4.setText("No Kas Masuk");
kas_masuk.setEditable(false);
kredit.setText("0");
jLabel1.setText("Kode Akun");
DTtgl.setEditable(false);
DTtgl.addActionListener(new java.awt.event.ActionListener() {
83
public void actionPerformed(java.awt.event.ActionEvent evt) {
DTtglActionPerformed(evt);
}
});
jLabel3.setText("Nominal");
jLabel2.setText("Tanggal");
txtket.setColumns(20);
txtket.setRows(5);
jScrollPane2.setViewportView(txtket);
jLabel5.setText("Keterangan");
btnbaru.setText("TAMBAH");
btnbaru.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnbaruActionPerformed(evt);
}
});
btnsimpan.setText("Simpan");
btnsimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnsimpanActionPerformed(evt);
}
});
btnhapus.setText("Hapus");
btnhapus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
84
btnhapusActionPerformed(evt);
}
});
jLabel7.setText("Kode Akun Kas");
jLabel8.setText("Sumber Dana");
jLabel9.setText("No Kas Masuk");
jButton1.setText("cari");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("Cetak");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
btnKeluar.setText("Keluar");
btnKeluar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnKeluarActionPerformed(evt);
}
});
nama_kas.addItemListener(new java.awt.event.ItemListener() {
85
public void itemStateChanged(java.awt.event.ItemEvent evt) {
nama_kasItemStateChanged(evt);
}
});
nama_kas.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
nama_kasActionPerformed(evt);
}
});
kode_kas.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
kode_kasActionPerformed(evt);
}
});
nama_dana.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
nama_danaItemStateChanged(evt);
}
});
nama_dana.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
nama_danaActionPerformed(evt);
}
});
kode_dana.addActionListener(new java.awt.event.ActionListener() {
86
public void actionPerformed(java.awt.event.ActionEvent evt) {
kode_danaActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
.addComponent(jPanel3,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addComponent(jScrollPane2)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel5)
.addGap(0, 427, Short.MAX_VALUE))
.addComponent(jScrollPane1,
87
javax.swing.GroupLayout.DEFAULT_SIZE, 483, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addComponent(kas_masuk,
javax.swing.GroupLayout.PREFERRED_SIZE, 201,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(10, 10, 10)
.addComponent(kode_kas,
javax.swing.GroupLayout.PREFERRED_SIZE, 42,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(nama_kas,
javax.swing.GroupLayout.PREFERRED_SIZE, 204,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
TRAILING, false)
.addComponent(jLabel8,
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(sumberdana,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, 201, Short.MAX_VALUE))
.addComponent(jLabel4))
88
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
.addComponent(jLabel2)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
TRAILING, false)
.addComponent(DTtgl,
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtnominal,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.PREFERRED_SIZE, 201,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel3)
.addComponent(nama_dana,
javax.swing.GroupLayout.PREFERRED_SIZE, 204,
javax.swing.GroupLayout.PREFERRED_SIZE))))
89
.addGroup(layout.createSequentialGroup()
.addGap(36, 36, 36)
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(kode_dana,
javax.swing.GroupLayout.PREFERRED_SIZE, 42,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addGap(36, 36, 36))))
.addGroup(layout.createSequentialGroup()
.addGap(119, 119, 119)
.addComponent(btnbaru)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(btnsimpan)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addComponent(btnhapus)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(kredit,
javax.swing.GroupLayout.PREFERRED_SIZE, 24,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
90
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel9)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(txtcari,
javax.swing.GroupLayout.PREFERRED_SIZE, 114,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(jButton1,
javax.swing.GroupLayout.PREFERRED_SIZE, 59,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(jButton2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnKeluar)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
91
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(23, 23, 23)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jLabel4)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(kas_masuk,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(DTtgl,
javax.swing.GroupLayout.PREFERRED_SIZE,
92
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(15, 15, 15)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(kode_kas,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1)
.addComponent(jLabel7)
.addComponent(kode_dana,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(nama_kas,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(nama_dana,
javax.swing.GroupLayout.PREFERRED_SIZE,
93
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(15, 15, 15)
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(sumberdana,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(txtnominal,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(13, 13, 13)
.addComponent(jLabel5)
.addGap(1, 1, 1)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 72,
94
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(btnbaru)
.addComponent(btnsimpan)
.addComponent(btnhapus)
.addComponent(kredit,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jLabel9)
.addComponent(txtcari,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1)
.addComponent(jButton2)
.addComponent(btnKeluar))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
95
D, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 165,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
setSize(new java.awt.Dimension(519, 658));
setLocationRelativeTo(null);
}// </editor-fold>
private void tblanggaranMouseClicked(java.awt.event.MouseEvent evt) {
int row = tblanggaran.getSelectedRow();
String row_id = (tblanggaran.getModel().getValueAt(row,
0).toString());
kas_masuk.setText(row_id);
btnhapus.setEnabled(true);
}
private void DTtglActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void btnbaruActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (btnbaru.getText().equals("Batal")) {
setform(false);
bersih();
}
else{
96
setform(true);
setkode();
}
}
private void btnsimpanActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
if (txtket.getText().equals("")||txtnominal.getText().equals("")) {
JOptionPane.showMessageDialog(this,"Semuah Data Harus Di Isi");
}
else{
simpankas();
simpanpendapatan();
simpan();
tabelmodel();
JOptionPane.showMessageDialog(null, "Berhasil menyimpan data
transaksi");
}
try {
HashMap hash = new HashMap();
hash.put("no_masuk", kas_masuk.getText());
File file = new File("src/Laporan/bukti_kasmasuk.jrxml");
JasperDesign jasperDesign = JRXmlLoader.load(file);
JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
97
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,
hash, konek.openkoneksi());
JasperViewer.viewReport(jasperPrint, false);
}catch (ClassNotFoundException | JRException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
}
this.hide();
bersih();
}
private void btnhapusActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int ok = JOptionPane.showConfirmDialog(null, "Anda yakin ingin
menghapus data ini?", "Konfirmasi",
JOptionPane.OK_CANCEL_OPTION);
if(ok==0) {
hapus(kas_masuk.getText());
tabelmodel();
setform(true);
}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
DefaultTableModel tb = new DefaultTableModel();
tb.addColumn("No Kas Masuk");
tb.addColumn("Tanggal");
98
tb.addColumn("Penerima");
tb.addColumn("Nominal");
tb.addColumn("Keterangan");
try{
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet sql = stm.executeQuery("Select * from kas_masuk
where no_transaksi like '%" + txtcari.getText() + "%'" + "or sumber_dana
like '%" + txtcari.getText() + "%'");
while (sql.next()) {
tb.addRow(new Object[]{
sql.getString(1),
sql.getString(2),
sql.getString(3),
sql.getString(4),
sql.getString(5)
});
}
tblanggaran.setModel(tb);
}catch (Exception e){
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
99
HashMap hash = new HashMap();
hash.put("no_masuk", kas_masuk.getText());
File file = new File("src/Laporan/bukti_kasmasuk.jrxml");
JasperDesign jasperDesign = JRXmlLoader.load(file);
JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,
hash, konek.openkoneksi());
JasperViewer.viewReport(jasperPrint, false);
}catch (ClassNotFoundException | JRException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
}
}
private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}
private void kode_kasActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void nama_kasItemStateChanged(java.awt.event.ItemEvent evt) {
String nm_kategori = nama_kas.getSelectedItem().toString();
if(!nm_kategori.equals("")){
try {
100
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet sql = stm.executeQuery("SELECT kode_akun
FROM data_akun WHERE nama_akun='"+nm_kategori+"'");
if(sql.next()){
kode_kas.setText(sql.getString("kode_akun"));
}
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(kas_in.class.getName()).log(Level.SEVERE,
null, ex);
}
}else{
kode_kas.setText("");
} // TODO add your handling code here:
}
private void nama_kasActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void kode_danaActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
}
101
private void nama_danaItemStateChanged(java.awt.event.ItemEvent evt)
{
// TODO add your handling code here:
String nm_kategorii = nama_dana.getSelectedItem().toString();
if(!nm_kategorii.equals("")){
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet sql = stm.executeQuery("SELECT kode_akun
FROM data_akun WHERE nama_akun='"+nm_kategorii+"'");
if(sql.next()){
kode_dana.setText(sql.getString("kode_akun"));
}
konek.closekoneksi();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
} catch (ClassNotFoundException ex) {
Logger.getLogger(kas_in.class.getName()).log(Level.SEVERE,
null, ex);
}
}else{
kode_dana.setText("");
}
}
102
private void nama_danaActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
}
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(kas_in.class.getName()).log(java.util.log
ging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(kas_in.class.getName()).log(java.util.log
ging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(kas_in.class.getName()).log(java.util.log
ging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(kas_in.class.getName()).log(java.util.log
ging.Level.SEVERE, null, ex);
}
103
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new kas_in().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JTextField DTtgl;
private javax.swing.JButton btnKeluar;
private javax.swing.JButton btnbaru;
private javax.swing.JButton btnhapus;
private javax.swing.JButton btnsimpan;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
104
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextField kas_masuk;
private javax.swing.JTextField kode_dana;
private javax.swing.JTextField kode_kas;
private javax.swing.JTextField kredit;
private javax.swing.JComboBox<String> nama_dana;
private javax.swing.JComboBox<String> nama_kas;
private javax.swing.JTextField sumberdana;
private javax.swing.JTable tblanggaran;
private javax.swing.JTextField txtcari;
private javax.swing.JTextArea txtket;
private javax.swing.JTextField txtnominal;
// End of variables declaration
public int simpan(){
String sql="insert into kas_masuk "+
"values"+
"('"+kas_masuk.getText()+"', " +
"'"+DTtgl.getText()+"', "+
"'"+sumberdana.getText()+"', "+
"'"+txtnominal.getText()+"', "+
"'"+txtket.getText()+"' "+ ")";
conn.simpanData(sql);
return 0;
105
}
public int simpanpendapatan(){
String sql= ("INSERT INTO data_jurnal (tanggal,no_transaksi,
kode_akun, nama_akun, debit, kredit, keterangan) VALUES ('" +
DTtgl.getText() + "', '" +kas_masuk.getText() + "', '" + kode_dana.getText()
+ "', '" + nama_dana.getSelectedItem()+ "', '" + kredit.getText() + "', '" +
txtnominal.getText() + "', '" + txtket.getText() + "')")
conn.simpanData(sql);
return 0;
}
public int simpankas(){
String sql= ("INSERT INTO data_jurnal (tanggal,no_transaksi,
kode_akun, nama_akun, debit, kredit, keterangan) VALUES ('" +
DTtgl.getText() + "', '" +kas_masuk.getText() + "', '" + kode_kas.getText() +
"', '" + nama_kas.getSelectedItem()+ "', '" + txtnominal.getText() + "', '" +
kredit.getText() + "', '" + txtket.getText() + "')");
conn.simpanData(sql);
return 0;
}
public int hapus(String kd){
String sql="delete from kas_masuk where no_transaksi = '"+kd+"'";
conn.simpanData(sql);
return 0;
}
public void tabelmodel(){
106
tb =new DefaultTableModel();
tb.addColumn("NO Kas Masuk");
tb.addColumn("Tanggal");
tb.addColumn("Sumber Dana");
tb.addColumn("Nominal");
tb.addColumn("Keterangan");
tblanggaran.setModel(tb);
try {
ResultSet res = conn.ambilData("select *from kas_masuk ");
while (res.next()){
tb.addRow(new
Object[]{res.getString(1),res.getString(2),res.getString(3),res.getString(4),res
.getString(5)});
}
tblanggaran.setModel(tb);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, ex);
}
}
void setform(boolean flag){
txtket.setEditable(flag);
txtnominal.setEditable(flag);
DTtgl.setEnabled(flag);
btnsimpan.setEnabled(flag);
btnhapus.setEnabled(false);
107
if (flag==true) {
btnbaru.setText("Batal");
}
else{
btnbaru.setText("Baru");
}
}
void bersih(){
kode_kas.setText("");
txtket.setText("");
txtnominal.setText("");
}
void setkode(){
try {
ResultSet res = conn.ambilData("select * from kas_masuk order by
no_transaksi desc");
if (res.next()) {
String nofak = res.getString("no_transaksi").substring(2);
String AN = "" + (Integer.parseInt(nofak) + 1);
String Nol = "";
if(AN.length()==1)
{Nol = "000";}
else if(AN.length()==2)
{Nol = "00";}
else if(AN.length()==3)
108
{Nol = "0";}
else if(AN.length()==4)
{Nol = "";}
kas_masuk.setText("KM" + Nol + AN);
} else {
kas_masuk.setText("KM0001");
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
}
2. Form Kas Keluar
public class form_KasKeluar extends javax.swing.JInternalFrame {
public form_KasKeluar() {
initComponents();
}
always
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jLabel1 = new javax.swing.JLabel();
109
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jTextField2 = new javax.swing.JTextField();
jTextField3 = new javax.swing.JTextField();
jTextField4 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
jButton5 = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
jTable2 = new javax.swing.JTable();
jLabel6 = new javax.swing.JLabel();
jTextField5 = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
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"
110
}
));
jScrollPane1.setViewportView(jTable1);
setBackground(new java.awt.Color(0, 153, 153));
jLabel1.setText("Kas Keluar");
jLabel3.setText("Kode Akun");
jLabel4.setText("Jumlah");
jLabel5.setText("Keterangan");
jTextField2.setText("jTextField2");
jTextField3.setText("jTextField3");
jTextField4.setText("jTextField4");
jButton1.setText("Simpan");
jButton2.setText("Tambah");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jButton3.setText("Batal");
jButton4.setText("Edit");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
111
jButton5.setText("Hapus");
jTable2.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"
}
));
jScrollPane2.setViewportView(jTable2);
jLabel6.setText("Tanggal");
jTextField5.setText("jTextField5");
jLabel7.setText("RANCANGAN BANGUN SISTEM
PENGELOLAAN DANA DESA");
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
112
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(78, 78, 78)
.addComponent(jLabel7,
javax.swing.GroupLayout.PREFERRED_SIZE, 357,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(39, 39, 39)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel5,
javax.swing.GroupLayout.PREFERRED_SIZE, 106,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(175, 175, 175)
.addComponent(jTextField4,
javax.swing.GroupLayout.PREFERRED_SIZE, 87,
javax.swing.GroupLayout.PREFERRED_SIZE))
113
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addComponent(jLabel4,
javax.swing.GroupLayout.PREFERRED_SIZE, 106,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3,
javax.swing.GroupLayout.PREFERRED_SIZE, 106,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6,
javax.swing.GroupLayout.PREFERRED_SIZE, 106,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(175, 175, 175)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING, false)
.addComponent(jTextField2,
javax.swing.GroupLayout.DEFAULT_SIZE, 87, Short.MAX_VALUE)
.addComponent(jTextField3,
javax.swing.GroupLayout.DEFAULT_SIZE, 87, Short.MAX_VALUE)
.addComponent(jTextField5)))
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1)
.addGap(18, 18, 18)
.addComponent(jButton2)
.addGap(18, 18, 18)
114
.addComponent(jButton3)
.addGap(18, 18, 18)
.addComponent(jButton4)
.addGap(18, 18, 18)
.addComponent(jButton5))
.addComponent(jLabel1,
javax.swing.GroupLayout.PREFERRED_SIZE, 116,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
.addGroup(layout.createSequentialGroup()
.addGap(26, 26, 26)
.addComponent(jLabel7,
javax.swing.GroupLayout.PREFERRED_SIZE, 44,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jLabel1,
javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
115
.addGroup(layout.createSequentialGroup()
.addGap(76, 76, 76)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jLabel4,
javax.swing.GroupLayout.PREFERRED_SIZE, 23,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextField3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jLabel5,
javax.swing.GroupLayout.PREFERRED_SIZE, 20,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextField4,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(36, 36, 36)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addComponent(jButton1)
116
.addComponent(jButton2)
.addComponent(jButton3)
.addComponent(jButton4)
.addComponent(jButton5))
.addGap(31, 31, 31)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 105,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jTextField5,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jTextField2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6)))))
);
117
pack();
}// </editor-fold>
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTable jTable1;
private javax.swing.JTable jTable2;
private javax.swing.JTextField jTextField2;
118
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
// End of variables declaration
}
3.5.2. Blackbox Testing
Blackbox Testing adalah untuk menguji perangkat lunak dari segi spesifikasi
fungsional tanpa menguji desain dan kode program.
Tabel III. 8.
Hasil Pengujian Blackbox Testing Form Login Bendahara
No Skenario
Pengujian
Test Case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1 Id user dan
password tidak
diisi kemudian
klik login
Id user
(kosong)
Password
(kosong)
Username
kosong
Sesuai
harapan
Valid
2 Mengetikan id
user name dan
password tidak
diisi atau kosong
kemudian klik
tombol login
Id user Jas
Password
(kosong)
Sistem akan
memberi
pesan bahwa
password
belum diisi
Sesuai
harapan
Valid
119
3 Id user kosong
Password diisi
kemudian klik
tombol login
Id user
(kosong)
Password
JAS
Sistem
memberi
pesan bahwa
username
belum diisi
Sesuai
harapan
Valid
4 Id user dan
password diisi
Hak akses tidak
diisi (kosong)
kemudian klik
login
Id user
JAS
Password
234
Hak akses
(kosong)
Sistem
menampilkan
pesan
Id user,
password
dan hak
akses salah
atau belum
diisi
Sesuai
harapan
Valid
5 Mengetikkan id
user, password
dan hak akses
dengan data
benar kemudian
klik tombol login
Id user
JAS
Password
234
Hak akses
bendahara
(benar)
Sistem akan
menerima
akses login
dengan pesan
Login telah
berhasil
Sesuai
harapan
Valid
120
3.5.3. Spesifikasi Hardware dan Software
Untuk memperoleh kemampuan yang optimal dalam pengelolaan data
diperlukan aspek dasar yaitu perangkat keras (hardware) dan perangkat lunak
(software) yang saling berkaitan satu dengan yang lainnyasehingga tidak dapat
dipisahkan, karena suatu sistem komputerisasi tidak akan berjalan tanpa ada salah satu
aspek tersebut. Perangkat lunak dan perangkat keras harus dapat menunjukkan kerja
yang baik dan sesuai dengan yang diharapkan.
1. Hardware
Perangkat keras (hardware) adalah serangkaian unsur-unsur yang terdiri dari
beberapa perangkat keras yang membuat suatu sistem komputer yang digunakan
untuk mengoperasikan proses kerja pemakai. Penulis mengusulkan untuk
menggunakan perangkat keras sesuai dengan kemampuan, tanpa harus
menggunakan tipe tertentu dengan harga yang lebih mahal. Namun disesuaikan
dengan kebutuhan program aplikasi yang akan dirancang.
Spesifikasi perangkat keras yang diusulkan sebagai berikut:
a. Monitor : 14”
b. Proccesor : Intel (R) Celeron(R) CPU N3050
c. Memory : 2.00 GB
d. Harddisk : 20 GB
e. Keybord : 83 KEYS
f. Printer : Cannon IP 2770
2. Software
Bagian penting lain yang mendukung program adalah perangkat lunak
(software) yang digunakan dalam menjalankan program aplikasi serta sistem
121
operasi yang akan digunakan untuk menjalankan program tersebut. Sistem
operasi ini berfungsi untuk mengidentifikasi dan menyiapkan aplikasi program
sehingga tata kerja seluruh peralatan komputer dapat terkontrol. Perangkat
lunak yang dibutuhkan untuk menjalankan aplikasi program pengelolaan dana
desa ini adalah:
Sistem operasi : Windows 10
Bahasa pemrograman : NetBeands IDE 8.1
Program atau software pendukung : Xampp and PHP MySQL