bab iii pembahasan - repository.bsi.ac.id · kantor desa kosar kecamatan cipeundeuy kabupaten...
TRANSCRIPT
35
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Pada sub bab ini penulis menjelaskan prosedur sistem berjalan pada Kantor Desa
Kosar Kecamatan Cipeundeuy Kabupaten Subang. Prosedur tersebut dimulai dari
prosedur penerimaan kas, prosedur pengeluaran kas, dan prosedur laporan keuangan dan
dalam sub bab ini juga menjelaskan sejarah perusahaan dan struktur organisasi pada
Kantor Desa Kosar Kecamatan Cipeundeuy Kabupaten Subang.
3.1.1. Sejarah Perusahaan
Desa Kosar merupakan sebuah desa yang terletak di salah satu kota Subang Jawa
Barat, tepatnya di kecamatan Cipeundeuy Kabupaten Subang. Desa Kosar sendiri terletak
pada bagian utara kota Subang. Sejarah singkat terbentuknya atau terbuat nama Desa
Kosar , yaitu karena adanya sebuah pohon besar yang tumbuh di desa tersebut dan
memiliki buah yang bernama buah kosar.
Sebelum menjadi bagian dari kecamatan Cipeundeuy, Desa Kosar dulunya
termasuk dalam Kecamatan Pabuaran, pada tahun 2013 Desa Kosar resmi dipindahkann
kecamatannya oleh Bupati pada masa itu ke kecamatan Cipeundeuy sampai saat ini.
36
3.1.2. Struktur Organisasi dan Fungsi
Struktur Organisasi Kantor Desa Nanga Temenang Kecamatan Jongkong
Kabupaten Kapuas Hulu terlihat pada gambar berikut ini.
Sumber : Bagan Stuktur Organisasi Kator Desa Kosar Kec.cipeuneuy, Kab.subang.
Gambar III.1.
Struktur Organisasi
37
Fungsinya dari tiap-tiap bagian diantaranya:
1. Kepala Desa
a. Menjalankan roda pemerintahan desa dengan dasar kebijakan yang telah
ditetapkan bersama dengan BPD (Badan Perwakilan Desa).
b. Mengajukan suatu rancangan tentang peraturan yang akan diterapkan di suatu
desa.
c. Menetapkan peraturan desa yang sudah disetujui bersama dengan BPD
d. Menyusun serta membuat peraturan tentang anggaran pendapatan desa yang
selanjutnya akan dibahas dan ditetapkan bersama-sama dengan BPD.
e. Melakukan pembinaan terhadap masyarakat desa dan juga ekonomi desa.
f. Pembangunan yang hendak dilakukan di desa, lebih dahulu dikoordinasikan dan
dilaksanakan dengan partisipasi semua warga.
g. Mewakili desa baik di luar pengadilan atau di dalam pengadilan serta memiliki
hak menunjuk kuasa hukum sebagai wakil dirinya, tentunya sesuai dengan
perundang- undangan yang berlaku.
h. Melakukan kewajiban dan wewenang kepala desa sesuai dengan peraturan yang
berlaku.
2. Sekretaris
a. Membantu persiapan kepala desa dan melakukan kegiatan administrasi desa.
b. Menyiapkan bahan untuk menyusun laporan penyelenggaraan pemerintahan desa.
c. Apabila kepala desa berhalangan untuk melakukan tugasnya, maka sekretaris
dapat menggantikan.
d. Mempersipakan bahan laporan penyelenggaraan pemerintahan desa.
38
3. Bendahara
a. Bertanggung jawab atas seluruh data keuangan pada Kantor Balai Desa Kosar.
b. Mencatat seluruh data kas keuangan kantor.
c. Sebagai pengambil keputusan kedua untuk persetujuan surat masuk dan keluar.
4. Kaur Umum
a. Membantu sekretaris desa dalam melaksanakan tugas administrasi umum,
kearsipan, tata usaha, inventaris desa, dan menyiapkan segala bahan untuk rapat
dan pembuatan laporan.
b. Menyimpan, menyediakan, dan menyalurkan alat-alat tulis kantor serta
bertanggungjawab dalam memelihara dan perbaikan terhadap perabot atau
perlengkapan kantor.
5. Kaur Ekbank
a. Membantu tugas sekretaris desa dalam mengelola sumber penghasilan desa.
b. Mengelola data administrasi keuangan desa, persiapan bahan untuk membuat APB
desa.
6. Kaur Pemerintah
a. Melaksanakan administrasi kependudukan, mempersiapkan bahan untuk
menyusun rancangan peraturan serta keputusan kepala desa .
b. Melaksanakan administrasi pertanahan dan mencatatat monografi desa.
c. Mempersiapkan bantuan yang bertujuan untuk memperlancar penyelenggaraan
dalam pemeritahan di desa dan melakukan penataan kelembagaan masyarakat.
7. Kaur Kesra
a. Mempersiapkan bahan yang akan dipakai dalam program keagamaan.
39
b. Mempersipakan bahan yang akan dipakai dalam program pemberdayaan
masyarakat dan sosial kemasyarakatan.
c. Mempersiapkan bahan yang akan dipakai dalam perkembangan kehidupan
beragama.
8. Upas
a. Sebagai pelaksana dalam kegiatan administrasi pembangunan.
b. Mempersipakan bantuan untuk kajian perkembangan ekonomi warga masyarakat.
c. Melakukan tugas lain yang diberika atau diperintahkan oleh kepala desa.
9. Operator
a. Memasang, mengoperasikan, dan mengontrol komputer untuk memproses data
bisnis, data ilmiah, data teknik atau data lain menurut petunjuk operasi.
b. Membuat administrasi surat menyurat desa.
3.2. Tinjauan Kasus
3.2.1 Proses Sistem Berjalan
Suatu proses atau tahap-tahapan yang dilakukan sebelum memulai suatu
kegiatan untuk menyelesaikan suatu pekerjaan disebut proses sistem. Sesuai
dengan yang dibahas dalam Tugas Akhir ini, maka proses sistem berjalan yang diambil
dari Kantor Desa Kosar yaitu sistem pembuatan laporan arus kas masuk dan keluar yang
selama ini telah melewati beberapa proses.
Proses bisnis sistem berjalan pembuatan laporan arus kas masuk dan kas
keluar secara umum pada Kantor Desa Kosar adalah :
1. Proses Pengambilan Dana Desa.
40
Kas masuk desa bersumber dari alokasi dana desa yang diajukan setiap tahun sekali.
Kepala desa mendampingi bendahara desa pergi ke Bank BRI untuk pengambilan
Alokasi Dana Desa (ADD) dengan mengisi slip penarikan yang sudah disediakan Bank
BRI. Kepala Desa memberikan dana tersebut kepada Bendahara Desa untuk disimpan
dan mengarsipkan slip penarikan yang asli. Kemudian Bendahara Desa mencatat data
penerimaan dana ke dalam kas masuk.
2. Proses Pengeluaran Dana Kas.
Pada prosedur ini, Bendahara Desa memberikan dana dan rancangan anggaran biaya
kepada kaur umum yang sudah disetujui Kepala Desa untuk biaya yang dibutuhkan,
kemudian bagian kaur umum memberikan bukti pengeluaran kas berupa kwitansi
kepada Bendahara Desa. Bendahara Desa kemudian mencatatnya ke dalam buku kas
keluar dan mengarsipkan kwitansi tersebut.
3. Proses Laporan Keuangan
Bendahara Desa membuat laporan-laporan keuangan yang ada setiap bulannya berupa
laporan buku kas umum (BKU), dan laporan pertanggung jawaban penerimaan dan
pengeluaran. Laporan buku kas umum diketahui Kepala Desa, sedangkan laporan
pertanggungjawaban penerimaan dan pengeluaran tersebut harus diverifikasikan
Sekretaris Desa terlebih dahulu. Setelah Sekretaris memverifikasi laporan
pertanggungjawaban penerima dan pengeluaran tersebut kemudian Bendahara Desa
menyerahkan laporan-laporan tersebut.
3.2.2. Activity Diagram
penggambaran dari activity diagram yang menggambarkan sistem berjalan kas
masuk dan kas keluar untuk setiap prosesnya dapat dilihat pada gambar berikut :
41
a. Proses Penerimaan Kas
Sumber : Hasil Penelitian (2019)
Gambar III.2.
Activity Diagram Proses Penerimaan Kas pada Kantor Desa Kosar
42
b. Proses Pengeluaran Kas
sumber : Hasil Penelitian (2019)
Gambar III.3.
Activity Diagram Proses Pengeluaran pada Kantor Desa Kosar
43
c. Proses Laporan Keuangan
Sumber : Hasil Penelitian (2019)
Gambar III.4.
Activity Diagram Proses Laporan Keuangan Kantor Desa Kosar
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-dokumen masukan
tersebut adalah sebagai berikut:
44
1. Kwitansi
Nama Dokumen : Kwitansi
Fungsinya : Sebagai bukti dari pengeluaran kas
Sumber : Kaur Umum
Jumlah : Satu lembar
Media : Kertas
Tujuan : Bendahara
Frekuensi : Setiap terjadi pengeluaran kas
2. Slip penarikan
Nama Dokumen : Slip penarikan
Fungsinya : Sebagai bukti dari penarikan kas
Sumber : Bank BRI
Jumlah : Satu lembar
Media : kertas
Tujuan : Bendahara Desa
Frekuensi : Setiap terjadi pengeluaran kas
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-dokumen keluaran tersebut adalah sebagai
berikut :
1. Rencana Anggaran Biaya
Nama Dokumen : Rencana Anggaran Biaya
45
Fungsinya : Sebagai syarat persetujuan dari rencana anggaran
biaya
Sumber : Bendahara Desa
Jumlah : Satu lembar
Media : kertas
Tujuan : Kepala Desa
Frekuensi : Setiap terjadi perencanaan anggaran biaya
2. Buku Kas Umum
Nama Dokumen : Buku Kas Umum
Fungsinya : Sebagai laporan dari kas masuk dan kas keluar
bahan dalam bentuk buku kas umum.
Sumber : Bendahara Desa
Jumlah : Satu lembar
Media : kertas
Tujuan : Kepala Desa
Frekuensi : Setiap akhir bulan
3. Laporan Pertanggungjawaban
Nama Dokumen : Laporan Pertanggungjawaban
Fungsinya : Sebagai laporan pertanggungjawaban atas
penerimaan kas dan pengeluaran kas
Sumber : Bendahara Desa
Jumlah : Satu lembar
Media : kertas
Tujuan : Kepala Desa
46
Frekuensi : Setiap akhir bulan
3.2.5. Permasalahan Pokok
Dari hasil pengamatan serta uraian yang telah penulis paparkan di atas,
dapat diambil kesimpulan bahwa dalam proses pelaporan kas masuk dan kas keluar yang
terjadi di Kantor Desa Kosar masih dilakukan secara manual.
Dengan dilakukan proses pengolahan data dalam penerima kas yang masih secara
manual dimana dalam melakukan pembuatan laporan kas masuk dan kas keluar masih
menggunakan kertas sehingga kinerjanya masih belum efektif.
1. Pencatatan dan perekapan data pengeluaran dana dalam buku membutuhkan waktu
lama sehingga laporan keuangan sering terlambat dilaporkan kepada atasan.
2. Sering terjadi kekeliruan dalam pengisian data sehingga data kurang akurat dan
efektif.
3. Proses pencatatan data lama.
4. Membutuhkan ruang penyimpanan data yang luas untuk pengarsipan dokumen dana
kas keluar dan kas masuk.
3.2.6. Pemecahan masalah
Untuk memecahkan masalah yang ada di Kantor Desa Kosar, khususnya pada
bagian yang mengelola pelaporan arus kas masuk dan kas keluar, penulis mengusulkan
untuk menggunakan sistem yang telah terkomputerisasi sehingga permasalahan yang
sering terjadi dapat teratasi dengan baik, dan juga dengan menggunakan sistem
komputerisasi maka dapat mempermudah dalam penggunaanya serta mengefisiensikan
proses kerja agar lebih baik dan cepat. Selain itu, apabila sebuah perusahaan telah
47
menggunakan sistem yang terkomputerisasi dapat meminimalisasi adanya kecurangan
juga kesalahan yang disebabkan oleh kesalahan manusia (human error) .
Penulis mengusulkan sebuah sistem yang terkomputerisasi untuk menyelesaikan
atau mengatasi permasalahan yang ada pada kantor desa Kosar. Aplikasi berbasis desktop
dengan menggunakan bahasa pemrograman Java Netbeans IDE 8.1 media penyimpanan
menggunakan XAMPP yang merupakan database server grafis. Dengan aplikasi tersebut
maka :
1. Pencatatan dan proses perekapan dapat dilakukan dengan cepat, karena laporan dibuat
otomatis dan aplikasi yang merekam setiap transaksi.
2. Pencatatan untuk pengeluaran dan pemasukan dana yang bersifat tetap hanya perlu
diisi sekali, karena untuk transaksi berikutnya cukup mengambil data dari database.
3. Mempercepat proses pencarian dengan memanfaatkan fitur pencarian pada aplikasi.
4. Tidak membutuhkan ruang penyimpanan yang luas, karena data tersimpan dalam
bentuk digital dengan memanfaatkan database.
3.3. Analisa Kebutuhan Software
Berdasarkan dari laporan arus kas masuk dan kas keluar pada Kantor Desa Kosar,
maka tahap berikutnya adalah analisa kenutuhan software, user dapat masuk ke sistem
pengolahan data arus kas usulan yang dapat mengelola data, mengisi transaksi, dan
laporan arus kas yang akan digunakan.
3.3.1. Analisa Kebutuhan
Analisa kebutuhan adalah suatu proses untuk mendapatkan informasi untuk
mendapatkan perangkat lunak yang diinginkan pengguna. Analisa kebutuhan merupakan
satu diantara banyak aktivias kritis pada proses rekayasa kebutuhan perangkat lunak untuk
48
memahami ranah permasalahan dari sistem yang berjalan dan solusi dari sistem yang akan
dibuat.
A.1. Skenario Kebutuhan Admin
a. Melakukan Login
b. Admin mengelola Menu Data Master
1. Menglola Master Akun
2. Mengelola Saldo Dana
c. Admin mengelola Transaksi
1. Mengelola Data Kas Masuk
2. Mengelola Data Kas Keluar
d. Admin mengelola Data Jurnal
A.2. Skenario Kebutuhan Sekretaris Desa
a. Melakukan Login
b. Admin mengelola Menu Data Master
1. Menglola Master Akun
2. Mengelola Saldo Dana
c. Admin mengelola Transaksi
1. Mengelola Data Kas Masuk
2. Mengelola Data Kas Keluar
d. Admin mengelola Data Jurnal
3.3.2. Use Case Diagram
Use Case Diagram adalah gambaran graphical dari beberapa atau semua actor,
use case, dan interaksi diantaranya yang memperkenalkan suatu sistem.
49
1. Use Case Diagram login
Berikut adalah proses login masuk kemenu utama :
Sumber : Hasil Rancangan 2019
Gambar III.5
Use Case Diagram login
Pada Use Case Diagram Login ini menjelaskan tentang langkah – langkah yang dilakukan
admin untuk bisa masuk ke sistem.
Tabel III.1
Deskripsi User Case Login
Use Case Narative Login
Tujuan User melakukan login dan mengisi username, password
dan hak akses agar bisa masuk ke menu utama
Deskripsi Sistem ini memungkinkan user untuk mengakses sistem
yang ada pada menu utama
Skenario Utama
Aktor User
Kondisi Awal User membuka aplikasi pelaporan arus kas masuk dan
keluar
Aksi Aktor Relasi Sistem
50
Aktor memilih
tombol login
Aktor memilih
tombol batal
Sitem akan menampilkan texbox untuk mengisi username
dan password
Sistem akan menutup aplikasi
Kondisi Akhir Jika perintah sesuai maka sistem akan masuk kedalam
aplikasi pelaporan arus kas masuk dan keluar maka actor
dapat melakukan aktivitas didalam sistem
Sumber : Hasil Rancangan 2019
2. Use Case Diagram Sistem Informasi Laporan Arus Kas Masuk dan Kas Keluar.
Berikut adalah proses sistem informasi pelaporan arus kas masuk dan keluar yang ada
pada Kantor Desa Kosar :
Sumber : Hasil Penelitian (2019)
Gambar III.6
Use Case Diagram Sistem Informasi Pelaporan Arus Kas
Pada Use Case Diagram ini menjelaskan proses arus kas pada Kantor Desa Kosar
Kecamatan Cipeundeuy. Subang
51
Tabel III.2
Deskripsi Use Case Diagram Sistem Informasi laporan Arus Kas Masuk dan Kas
Keluar
Use Case Naretive Sistem Informasi laporan Arus Kas Masuk dan Kas Keluar
Tujuan User dapat melakukan pelaporan data yang ada di menu
utama yaitu data master, buku kas dan laporan.
Deskripsi Sistem ini memungkinkan user untuk mengelola sistem
pencatatan kas masuk dan keluar, mulai dari input data
sampai kelaporan.
Skenario Utama
Aktor User
Kondisi Awal User membuka tampilan menu utama pada aplikasi
Aksi Aktor Reaksi Sistem
1. Aktor Memilih
tombol master
2. Aktor memilih
tombol transaksi
3. Aktor memilih
tombol jurnal
4. Aktor memilih
tombol keluaran
Sistem akan menampilkan data master akun dan saldo
dana
Sistem akan menampilkan data kas masuk dan kas keluar
Sistem akan menampilkan data ljurnal
Sistem akan keluar dari menu utama.
Kondisi Akhir Jika perintah sesuai maka sistem akan masuk kedalam
aplikasi pelaporan arus kas maka aktor dapat melakukan
aktivitas didalam sistem.
Sumber : Hasil Penelitian (2019)
52
3.3.3. Activity Diagram
Activity Diagram adalah diagram yang menggambarkan worlflow (aliran kerja)
atau aktivitas dari sebuah sistem atau proses.
1. Activity Diagram Login
Berikut ini adalah proses adminmenjalankan proses login:
Sumber : Hasil Penelitian (2019)
Gambar III.7
Activity Diagram Sistem Usulan Login
Pada proses ini menungkinkan untuk masuk kemenu utama.
53
2. Activity Diagram Sistem Data Master
Berikut ini adalah proses admin masuk kedata master :
Sumber : Hasil Penelitian (2019)
Gambar III.8
Activity Diagram Sistem Data Master
Pada proses ini memungkinkan admin mengelola data yang ada pada menu master.
54
3. Activity Diagram Transaksi
Berikut ini adalah proses admin masuk ke data transaksi :
Sumber : Hasil Penelitian (2019)
Gambar III.9
Activity Diagram Buku Kas
Pada proses ini memungkinkan admin mengakses data yang ada pada menu tansaksi.
55
4. Activity Diagram Jurnal
Pada gambar berikut ini adalah proses admin masuk kemenu jurnal.
Sumber : Hasil Penelitian (2019)
Gambar III.10
Activity Diagram Laporan
Pada gambar ini proses memungkinkan admin untuk mengakses data yang ada pada menu
jurnal.
56
5. Activity Diagram Menu Utama.
Pada gambar berikut ini adalah proses yang ada dimenu utama.
Sumber : Hasil Penelitian (2019)
Gambar III.11
Activity Diagram Menu Utama.
Pada proses ini memungkin admin mengakses data yang ada dimenu utama.
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 suatu masalah dengan yang lainnya saling
terkait.
57
3.4.1. Entity Relationship Diagram (ERD)
ERD adalah merupakan salah satu model yang digunakan untuk mendesainkan
database dengan tujuan menggambarkan data yang berelasi pada sebuah database. Berikut
adalah rancangan pelaporan arus kas pada Kantor Desa Kosar Kecamatan Cipeundeuy.
Subang.
Sumber : Hasil Penelitian (2019)
Gambar III.12. ERD
Pada gambar diatas menjelaskan proses desain dari pelaporan arus kas masuk dan kas
keluar
3.4.2. Logical Record Structure (LRS)
LRS adalah representasi dari stuktur record-record pada table yang terbentukdari
hasil antara himpunan entitas. Berikut ini adlah macam-macam pelaporan arus kas pada
kantor desa kosar kecamatan cipeundeuy, subang. Dengan menggunakan LRS
58
Sumber : Hasil Penelitian (2019)
Gambar III.13. IRS
Pada gambar diatas menjelaskan proses desain dari pelaporan arus kas masuk dan kas
keluar.
3.4.3. Spesifikasi File
Adapun spesifikasi file yang penulis gunakan dalam laporan arus kas masuk dan
kas keluar pada Kantor Desa Kosar Kecamatan Cipeundeuy Kabupaten Subang adalah
sebagai berikut :
59
1. Spesifikasi File Data Akun
Nama : Tabel Akun
Akronim : tbdata_akun
Fungsi : Untuk mengolah data akun
Tipe File : File Master
Organisasi File : Index Sequential
Akses File : Random
Record Size : 45
Kunci Field : Kode_Akun
Media File : Harddisk
Software : MySQL
Tabel III.3
Tabel Data Akun
No Elemen Data Akronim Tipe Panjang Keterangan
1 Akun Kode_akun Varchar 10 Primary key
2 Nama akun nama_akun Varchar 20
3 Jenis akun jenis_akun Varchar 15
2. Spesifikasi File Kas Masuk
Nama : Tabel Kas Masuk
Akronim File : tbkas_masuk.sql
Fungsi File : Untuk mengolah data karyawan
Tipe File : File Transaksi
Organisasi File : Index Sequntial
60
Akses File : Random
Panjang Record : 65
Media File : Harddisk
Kunci Field : no_transaksi
Software : MySQL.
Tabel III.4
Tabel Kas Masuk
No Element Data Akronim Tipe Panjang Keterangan
1 No transaksi no_transaksi Varchar 15 Primary Key
2 Tanggal tanggal Date
3 Kode Akun kode_akun Varchar 10
4 Nominal nominal Int 15
5 Keterangan keterangan Varchar 25
3. Spesifikasi File Kas Keluar
Nama : Tabel Kas Keluar
Akronim File : tbkas_keluar.sql
Fungsi : Untuk mengolah data kas keluar
Tipe File : file transaksi
Organisasi File : Index Sequential
Akses File : Random
Panjang Record : 76
Media File : Harddisk
Kunci Field : no_Bukti
61
Software : MySQL
Tabel III.5
Tabel Kas Keluar
No Element Data Akronim Tipe Panjang Keterangan
1 No Bukti no_bukti Varchar 15 Primary Key
2 Tanggal tanggal Date
3 Kode Akun kode_akun Varchar 10
4 Penerima penerima Varchar 25
5 Total dana total_dana Int 11
6 Keterangan keterangan Varchar 15
4. Spesifikasi File Jurnal
Nama : Tabel Jurnal
Akronim : tbjurnal_umum.sql
Fungsi : Untuk mengolah data jurnal
Tipe File : File transksi
Organisasi File : Index Sequential
Akses File : Random
Panjang Record : 88
Media File : Harddisk
Kunci Field : no_jurnal
Software :MySQL
62
Tabel III.6
Tabel Data Jurnal
No Elemen Data Akronim Tipe Panjang Keterangan
1 No jurnal no_Jurnal Varchar 15 Primary key
2 Tanggal tanggal Date
3 Id Transaksi id_trans Varchar 11
4 Kode Akun kode_akun Varchar 15
5 Debet debet Int 11
6 Kredit kredit Int 11
7 Keterangan keterangan Varchar 25
5. Spesifikasi File Saldo Dana
Nama : Tabel Saldo Dana
Akronim File : tbsaldo_dana.sql
Fungsi File : Untuk mengolah data User
Tipe File : File Master
Organisasi File : Index Sequntial
Akses File : Random
Panjang Record : 76
Media File : Harddisk
Kunci Field : id_saldo
Software : MySQL
63
Tabel III.7
Tabel Saldo Dana
No Elemen Data Akronim Tipe Panjang Keterangan
1 Id Saldo id_saldo Varchar 15 Primary key
2 Kode Akun kode_akun Varchar 25
3 Keterangan keterangan Varchar 25
4 Nominal Saldo nomina_lsaldo Int 11
6. Spesifikasi File User
Nama : Tabel User
Akronim File : tbuser.sql
Fungsi File : Untuk mengolah data User
Tipe File : File Master
Organisasi File : Index Sequntial
Akses File : Random
Panjang Record : 95
Media File : Harddisk
Kunci Field : id_pengguna
Software : MySQL
Tabel.III.8
Tabel User
No Elemen Data Akronim Tipe Panjang Keterangan
1 Id Pengguna id_pengguna Int 10 Primary key
2 Nama Lengkap nama_lengkap Varchar 20
3 User Name user_name Varchar 10
64
4 Password Password Varchar 35
5 Hak Akses hak_akses Varchar 20
3.4.4. Sequence Diagram
Diagram sequen menggambarkan kelakuan objek pada use case dengan
mendeskripsikan waktu hidup objek dan massage yang dikiramkan dan diterima antar
objek.
1. Sequence Diagram Login
Berikut adalah proses untuk masuk ke login.
Sumber : hasil Penelitian (2019)
Gamabar III.14
Sequence Diagram Login
Pada gambar diatas menggambarkan cara pengguna mengakses menu login.
65
2. Sequence Diagram Akun
Berikut adalah proses pengolahan data di menu akun.
Sumber : Hasil Penelitian (2019)
Gambar III.15
Sequence Diagram Akun
Pada gambar diatas memungkinkan pengguna mengakses data didalam data akun.
66
3. Sequence Diagram Kas Masuk
Berikut adala proses pegolahan data di menu kas masuk.
Sumber :Hasil Penelitian (2019)
Gambar III.16.
Sequence Diagram Kas Masuk
Pada gambar diatas memungkinkan pengguna mengakses data didalam data kas masuk.
67
6. Sequence Diagram Kas keluar
Berikut adalah proses pengolahan data dimenu kas keluar.
Sumber : Hasil Penelitian (2019)
Gambar III.17.
Sequence Diagram Kas Keluar
pada gambar diatas memungkinkan pengguna mengakses data yang ada data kas keluar.
68
3.4.5. Deployment Diagram
Diagram deployment atau deployment diagram menunjuan konfigurasi komponen
dalam proses eksekusi aplikasi. diagram ini juga digunakan untuk memetakan software ke
processing node.
Sumber : Hasil Penelitian (2019)
Gambar III.18.
Deployment Diagram
Gambar diatas menjelaskan processing perancangan sistem arus kas masuk dan kas keluar
dengan aplikasi Java NetBeans 8.1 ke database MySQL
69
3.4.6. User Interface
Berikut ini merupakan tampilan sistem laporan arus kas masuk dan keluar pada
Kantor Desa Kosar, yaitu :
Sumber :Hasil Rancangan (2019)
Gambar III.19.
Rancangan Tampilan Menu Login
Sumber : Hasil Rancangan (2019)
Gambaran III.20.
Rancanga Tampilan Menu Utama
70
Sumber : Hasil Rancangan (2019)
Gambaran III.21.
Rancanga Tampilan Data Akun
Sumber : Hasil Rancangan (2019)
Gambaran III.22.
Rancanga Tampilan Kas Masuk
71
Sumber : Hasil Rancangan (2019)
Gambaran III.23.
Rancanga Tampilan Kas Kas Keluar
Sumber : Hasil Rancangan (2019)
Gambaran III.24.
Rancanga Tampilan Jurnal.
72
Sumber : Hasil Rancangan (2019)
Gambar III.25.
Rancanga Tampilan Cetak Laporan
3.5. Implementasi
Tahapan implenentasi merupakan tahapan mengimplenentasikan hasil dari analisa
kebuhutuhan dan perancangan sistem yang telah dibuat sebelumnya kedalam kode
program.
3.5.1. Code Generation
1. Code Generation Kas Masuk
package allurkas;
import java.io.File;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
73
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;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
74
*/
/**
*
* @author juju
*/
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");
75
/**
* Creates new form Data_Anggaran
*/
allurkas.koneksi1 konek = new allurkas.koneksi1();
public kas_in() {
initComponents();
conn=new koneksi();
setLocationRelativeTo(this);
tabelmodel();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
DTtgl.setText(dateFormat.format(cal.getTime()));
txtkode.setEditable(false);
setform(false);
no_jurnal.hide();
kredit.hide();
SelectKategori();
txtkode.hide();
}
private void SelectKategori(){
try {
Connection conn = konek.openkoneksi();
76
java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet rs = stm.executeQuery("SELECT * FROM data_akun
ORDER BY kode_akun");
cmbkode.addItem("Pilih");
while(rs.next()){
cmbkode.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);
}
}
/**
* 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() {
77
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();
no_jurnal = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
txtno = new javax.swing.JTextField();
kredit = new javax.swing.JTextField();
cmbkode = new javax.swing.JComboBox<String>();
txtkode = 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();
javax.swing.GroupLayout jPanel2Layout = new
78
javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGap(0, 100, Short.MAX_VALUE)
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 100, Short.MAX_VALUE)
);
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOS
E);
tblanggaran.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"
79
}
));
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(153, 255, 0));
jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder(java.awt.Colo
r.lightGray, null));
jLabel6.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
jLabel6.setText("KAS MASUK");
javax.swing.GroupLayout jPanel3Layout = new
javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
80
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel3Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel6)
.addGap(177, 177, 177))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel6)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jLabel4.setText("No Kas Masuk");
kredit.setText("0");
cmbkode.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
cmbkodeItemStateChanged(evt);
}
81
});
cmbkode.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmbkodeActionPerformed(evt);
}
});
txtkode.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtkodeActionPerformed(evt);
}
});
jLabel1.setText("Kode Akun");
DTtgl.setEditable(false);
DTtgl.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
DTtglActionPerformed(evt);
}
});
jLabel3.setText("Nominal");
jLabel2.setText("Tanggal");
txtket.setColumns(20);
82
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) {
btnhapusActionPerformed(evt);
}
83
});
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.TR
AILING, false)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jLabel4)
.addComponent(jLabel2)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATE
D)
84
.addComponent(txtkode,
javax.swing.GroupLayout.PREFERRED_SIZE,16,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(144, 144, 144))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TR
AILING)
.addComponent(cmbkode,
javax.swing.GroupLayout.Alignment.LEADING,0,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(txtno))
.addGap(54, 54, 54))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
layout.createSequentialGroup()
.addComponent(DTtgl)
.addGap(54, 54, 54)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE,211,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
85
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATE
D)
.addComponent(kredit,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel3)
.addGap(96, 96, 96)
.addComponent(no_jurnal,
javax.swing.GroupLayout.PREFERRED_SIZE,37,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(txtnominal,
javax.swing.GroupLayout.PREFERRED_SIZE,201,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(50, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addGap(109, 109, 109)
.addComponent(btnbaru)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnsimpan)
86
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATE
D)
.addComponent(btnhapus)
.addGap(0, 0, Short.MAX_VALUE))
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addComponent(jPanel3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, Short.MAX_VALUE)
87
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtno,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(12, 12, 12)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BA
SELINE)
.addComponent(jLabel1)
.addComponent(txtkode,
javax.swing.GroupLayout.PREFERRED_SIZE,10,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cmbkode,
javax.swing.GroupLayout.PREFERRED_SIZE,
88
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATE
D)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(DTtgl,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TR
AILING)
.addComponent(jLabel3)
.addComponent(no_jurnal,
javax.swing.GroupLayout.PREFERRED_SIZE,8,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtnominal,
javax.swing.GroupLayout.PREFERRED_SIZE,
89
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(9, 9, 9)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BA
SELINE)
.addComponent(jLabel5)
.addComponent(kredit,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE,72,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(29, 29, 29)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BA
SELINE)
.addComponent(btnbaru)
.addComponent(btnsimpan)
.addComponent(btnhapus))
.addGap(18, 18, 18)
90
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE,245,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(66, 66, 66))
);
setSize(new java.awt.Dimension(523, 615));
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());
txtno.setText(row_id);
btnhapus.setEnabled(true);
}
private void cmbkodeItemStateChanged(java.awt.event.ItemEvent evt) {
String nm_kategori = cmbkode.getSelectedItem().toString();
if(!nm_kategori.equals("")){
try {
Connection conn = konek.openkoneksi();
java.sql.Statement stm = conn.createStatement();
91
java.sql.ResultSet sql = stm.executeQuery("SELECT kode_akun
FROM data_akun WHERE nama_akun='"+nm_kategori+"'");
if(sql.next()){
txtkode.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{
txtkode.setText("");
} // TODO add your handling code here:
}
private void cmbkodeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void txtkodeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void DTtglActionPerformed(java.awt.event.ActionEvent evt) {
92
// 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{
setform(true);
setkode();
setkodejurnal();
}
}
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{
simpan();
93
simpanjurnal();
tabelmodel();
JOptionPane.showMessageDialog(null, "Berhasil menyimpan data transaksi");
}
try {
HashMap hash = new HashMap();
hash.put("no_masuk", txtno.getText());
File file = new File("src/Laporan/bukti_kasmasuk.jrxml");
JasperDesign jasperDesign = JRXmlLoader.load(file);
JasperReportjasperReport=
JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hash,
konek.openkoneksi());
JasperViewer.viewReport(jasperPrint, false);
}catch (ClassNotFoundException | JRException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
}
this.hide();
bersih();
bersih();
}
94
private void btnhapusActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
hapus(txtno.getText());
tabelmodel();
setform(true);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code
(optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default
look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
95
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(kas_in.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(kas_in.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(kas_in.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(kas_in.class.getName()).log(java.util.logging
.Level.SEVERE, null, ex);
}
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
96
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
/* Create and display the form */
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 btnbaru;
private javax.swing.JButton btnhapus;
private javax.swing.JButton btnsimpan;
private javax.swing.JComboBox<String> cmbkode;
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;
97
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextField kredit;
private javax.swing.JTextField no_jurnal;
private javax.swing.JTable tblanggaran;
private javax.swing.JTextArea txtket;
private javax.swing.JTextField txtkode;
private javax.swing.JTextField txtno;
private javax.swing.JTextField txtnominal;
// End of variables declaration
public int simpan(){
String sql="insert into kas_masuk "+
"values"+
"('"+txtno.getText()+"', " +
"'"+DTtgl.getText()+"', "+
"'"+txtkode.getText()+"', "+
"'"+txtnominal.getText()+"', "+
"'"+txtket.getText()+"' "+ ")";
conn.simpanData(sql);
return 0;
}
public int simpanjurnal(){
98
String sql="insert into jurnal "+
"values"+
"('"+no_jurnal.getText()+"', " +
"'"+DTtgl.getText()+"', "+
"'"+txtno.getText()+"', "+
"'"+txtkode.getText()+"', "+
"'"+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(){
tb =new DefaultTableModel();
tb.addColumn("NO Kas Masuk");
tb.addColumn("Tanggal");
tb.addColumn("Kode Akun");
tb.addColumn("Nominal");
tb.addColumn("Keterangan");
99
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.get
String(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);
100
if (flag==true) {
btnbaru.setText("Batal");
}
else{
btnbaru.setText("Baru");
}
}
void bersih(){
txtkode.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";}
101
else if(AN.length()==2)
{Nol = "00";}
else if(AN.length()==3)
{Nol = "0";}
else if(AN.length()==4)
{Nol = "";}
txtno.setText("KM" + Nol + AN);
} else {
txtno.setText("KM0001");
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
void setkodejurnal(){
try {
ResultSet res = conn.ambilData("select * from jurnal order by no_jurnal
desc");
if (res.next()) {
String nofak = res.getString("no_jurnal").substring(3);
102
String AN = "" + (Integer.parseInt(nofak) + 1);
String Nol = "";
if(AN.length()==1)
{Nol = "00";}
else if(AN.length()==2)
{Nol = "0";}
else if(AN.length()==3)
{Nol = "";}
no_jurnal.setText("JRN" + Nol + AN);
} else {
no_jurnal.setText("JRN001");
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
}
2. Code Generation Kas Keluar
package allurkas;
import java.io.File;
import java.sql.Statement;
103
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;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
104
import net.sf.jasperreports.view.JasperViewer;
/**
*
* @author juju
*/
public class kas_out extends javax.swing.JDialog {
String kode,penerima,keterangan;
java.util.Date tglsekarang = new java.util.Date();
private final Simple DateFormat smpdtfmt = new SimpleDateFormat("dd/MM/yyyy",
Locale.getDefault());
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");
/**
* Creates new form kas_out
*/
105
allurkas.koneksi1 konek = new allurkas.koneksi1();
public kas_out(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
conn=new koneksi();
setLocationRelativeTo(this);
tabelmodel();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
DTtgl.setText(dateFormat.format(cal.getTime()));
txtkode.setEditable(false);
setform(false);
no_jurnal.hide();
kredit.hide();
SelectKategori();
nik.hide();
txtkode.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");
106
cmbkode.addItem("Pilih");
while(rs.next()){
cmbkode.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);
}
}
/**
* 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();
tblanggaran = new javax.swing.JTable();
107
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
txtnominal = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
ppenerima = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jScrollPane2 = new javax.swing.JScrollPane();
txtket = new javax.swing.JTextArea();
cmbkode = new javax.swing.JComboBox<String>();
jLabel4 = new javax.swing.JLabel();
txtno = new javax.swing.JTextField();
DTtgl = new javax.swing.JTextField();
kredit = new javax.swing.JTextField();
no_jurnal = new javax.swing.JTextField();
nik = new javax.swing.JTextField();
txtkode = new javax.swing.JTextField();
jPanel3 = new javax.swing.JPanel();
jLabel9 = new javax.swing.JLabel();
btnbaru = new javax.swing.JButton();
btnhapus = new javax.swing.JButton();
btnsimpan = new javax.swing.JButton();
108
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOS
E);
tblanggaran.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"
}
));
tblanggaran.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tblanggaranMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tblanggaran);
jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());
109
jLabel1.setText("Kode Akun");
jLabel5.setText("Keterangan");
jLabel3.setText("Nominal");
jLabel8.setText("Penerima");
jLabel2.setText("Tanggal");
txtket.setColumns(20);
txtket.setRows(5);
jScrollPane2.setViewportView(txtket);
cmbkode.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
cmbkodeItemStateChanged(evt);
}
});
cmbkode.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmbkodeActionPerformed(evt);
}
});
110
jLabel4.setText("No Kas Keluar");
DTtgl.setEditable(false);
DTtgl.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
DTtglActionPerformed(evt);
}
});
kredit.setText("0");
nik.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
nikActionPerformed(evt);
}
});
txtkode.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtkodeActionPerformed(evt);
}
});
111
javax.swing.GroupLayout jPanel2Layout = new
javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addComponent(jLabel4)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.TRAILING, false)
.addComponent(txtno,
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(cmbkode,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.PREFERRED_SIZE,149,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jLabel1)
.addComponent(jLabel8)
112
.addComponent(ppenerima,
javax.swing.GroupLayout.PREFERRED_SIZE,150,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(no_jurnal,
javax.swing.GroupLayout.PREFERRED_SIZE,58,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(kredit,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(nik,
javax.swing.GroupLayout.PREFERRED_SIZE,48,
javax.swing.GroupLayout.PREFERRED_SIZE)
113
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATE
D)
.addComponent(txtkode,
javax.swing.GroupLayout.PREFERRED_SIZE,23,
javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addGap(75, 75, 75)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jLabel3)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.TRAILING, false)
.addComponent(txtnominal,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, 142, Short.MAX_VALUE)
114
.addComponent(jLabel2,
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(DTtgl,
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel5,
javax.swing.GroupLayout.Alignment.LEADING))
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 0, Short.MAX_VALUE))))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(jLabel4)
.addComponent(jLabel2))
115
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATE
D)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(txtno,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(DTtgl,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATE
D)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(jLabel1)
.addComponent(jLabel3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
116
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(cmbkode,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtnominal,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(jLabel8)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATE
D)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
117
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE,86,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(ppenerima,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
32, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(nik,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtkode,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
118
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(no_jurnal,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(kredit,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(22, 22, 22))))
);
jPanel3.setBackground(new java.awt.Color(153, 255, 0));
jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder(java.awt.Colo
r.lightGray, null));
jLabel9.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
jLabel9.setText("KAS KELUAR");
119
javax.swing.GroupLayout jPanel3Layout = new
javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel3Layout.createSequentialGroup()
.addContainerGap(137, Short.MAX_VALUE)
.addComponent(jLabel9)
.addGap(132, 132, 132))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel9)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
120
btnbaru.setText("TAMBAH");
btnbaru.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnbaruActionPerformed(evt);
}
});
btnhapus.setText("Hapus");
btnhapus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnhapusActionPerformed(evt);
}
});
btnsimpan.setText("Simpan");
btnsimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnsimpanActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
121
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(22, 22, 22)
.addComponent(btnbaru)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnsimpan)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATE
D)
.addComponent(btnhapus)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addComponent(jPanel2, 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(jPanel3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
122
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addComponent(jPanel3,
javax.swing.GroupLayout.PREFERRED_SIZE,50,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
123
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BA
SELINE)
.addComponent(btnbaru)
.addComponent(btnsimpan)
.addComponent(btnhapus))
.addGap(18, 18, 18)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE,156,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void cmbkodeItemStateChanged(java.awt.event.ItemEvent evt) {
String nm_kategori = cmbkode.getSelectedItem().toString();
if(!nm_kategori.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_kategori+"'");
124
if(sql.next()){
txtkode.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{
txtkode.setText("");
} // TODO add your handling code here:
}
private void cmbkodeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void txtkodeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void DTtglActionPerformed(java.awt.event.ActionEvent evt) {
125
// TODO add your handling code here:
}
private void btnhapusActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
hapus(txtno.getText());
tabelmodel();
setform(true);
}
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{
simpan();
simpanjurnal();
tabelmodel();
JOptionPane.showMessageDialog(null, "Berhasil menyimpan data
transaksi");
126
}
try {
HashMap hash = new HashMap();
hash.put("no", txtno.getText());
File file = new File("src/Laporan/bukti_kaskeluar.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);
}
this.hide();
bersih();
bersih();
}
private void btnbaruActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (btnbaru.getText().equals("Batal")) {
127
setform(false);
bersih();
}
else{
setform(true);
setkode();
setkodejurnal();
}
}
private void tblanggaranMouseClicked(java.awt.event.MouseEvent evt) {
int row = tblanggaran.getSelectedRow();
String row_id = (tblanggaran.getModel().getValueAt(row, 0).toString());
txtno.setText(row_id);
btnhapus.setEnabled(true);
}
private void nikActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
/**
* @param args the command line arguments
128
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code
(optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default
look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(kas_out.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
129
java.util.logging.Logger.getLogger(kas_out.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(kas_out.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(kas_out.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
kas_out dialog = new kas_out(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
130
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JTextField DTtgl;
private javax.swing.JButton btnbaru;
private javax.swing.JButton btnhapus;
private javax.swing.JButton btnsimpan;
private javax.swing.JComboBox<String> cmbkode;
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 jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextField kredit;
private javax.swing.JTextField nik;
131
private javax.swing.JTextField no_jurnal;
private javax.swing.JTextField ppenerima;
private javax.swing.JTable tblanggaran;
private javax.swing.JTextArea txtket;
private javax.swing.JTextField txtkode;
private javax.swing.JTextField txtno;
private javax.swing.JTextField txtnominal;
// End of variables declaration
public int simpan(){
String sql="insert into kas_keluar "+
"values"+
"('"+txtno.getText()+"', " +
"'"+DTtgl.getText()+"', "+
"'"+txtkode.getText()+"', "+
"'"+ppenerima.getText()+"', "+
"'"+txtnominal.getText()+"', "+
"'"+txtket.getText()+"' "+ ")";
conn.simpanData(sql);
return 0;
}
public int simpanjurnal(){
String sql="insert into jurnal "+
"values"+
132
"('"+no_jurnal.getText()+"', " +
"'"+DTtgl.getText()+"', "+
"'"+txtno.getText()+"', "+
"'"+txtkode.getText()+"', "+
"'"+kredit.getText()+"', "+
"'"+txtnominal.getText()+"', "+
"'"+txtket.getText()+"' "+ ")";
conn.simpanData(sql);
return 0;
}
public int hapus(String kd){
String sql="delete from kas_keluar where no_transaksi = '"+kd+"'";
conn.simpanData(sql);
return 0;
}
public void tabelmodel(){
tb =new DefaultTableModel();
tb.addColumn("NO Kas Keluar");
tb.addColumn("Tanggal");
tb.addColumn("Kode Akun");
tb.addColumn("Penerima");
tb.addColumn("Nominal");
tb.addColumn("Keterangan");
133
tblanggaran.setModel(tb);
try {
ResultSet res = conn.ambilData("select *from kas_keluar ");
while (res.next()){
tb.addRow(new
Object[]{res.getString(1),res.getString(2),res.getString(3),res.getString(4),res.get
String(5),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);
if (flag==true) {
134
btnbaru.setText("Batal");
}
else{
btnbaru.setText("Baru");
}
}
void bersih(){
txtkode.setText("");
txtket.setText("");
txtnominal.setText("");
}
void setkode(){
try {
ResultSet res = conn.ambilData("select * from kas_keluar order by
no_bukti desc");
if (res.next()) {
String nofak = res.getString("no_bukti").substring(2);
String AN = "" + (Integer.parseInt(nofak) + 1);
String Nol = "";
if(AN.length()==1)
{Nol = "000";}
135
else if(AN.length()==2)
{Nol = "00";}
else if(AN.length()==3)
{Nol = "0";}
else if(AN.length()==4)
{Nol = "";}
txtno.setText("KK" + Nol + AN);
} else {
txtno.setText("KK0001");
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
void setkodejurnal(){
try {
ResultSet res = conn.ambilData("select * from jurnal order by no_jurnal
desc");
if (res.next()) {
String nofak = res.getString("no_jurnal").substring(3);
136
String AN = "" + (Integer.parseInt(nofak) + 1);
String Nol = "";
if(AN.length()==1)
{Nol = "00";}
else if(AN.length()==2)
{Nol = "0";}
3 else if(AN.length()==3)
{Nol = "";}
no_jurnal.setText("JRN" + Nol + AN);
} else {
no_jurnal.setText("JRN001");
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
}
137
3.5.2. Blackbox Testing
Tabel III.10
Pengujian Blackbox Testing Pada Login
No Skenario Pengujian Hasil yang Diharapkan Kesimpulan
1 Mengosongkan Username dan
Password lalu klik tombol
“Login”
Sistem akan menolak akses Login
dan menampilkan “Maaf anda
belum memasukan Username, dan
Password
Valid
2 Hanya mengisis Username dan
mengosokna Password, lalu
langsung klik tombol “Login”
Sistem akan menolak akses Login
dan menampilkan pesan “ Maaf
anda belum memasukan Password
!!!”
Valid
3 Hanya mengisi Password dan
mengkosongkan Username lalu
langsung klik tombol “Login”
Sistem akan menolak akses Login
dan menampilkan pesan “Maaf
anda belum memasukan
Username!!”
Valid
4 Memasukan dengan salah satu
data benar dan salah satu salah,
lalu klik “Login”
Sistemakan menolak akses Login
dan menampikan pesan Login “
Username atau Password salah”
valid
5 Memasukan Username dan
Passwaord dengan benar, lalu
klik “Login”
Sistem menerima akses Login dan
menampilkan pesan “Selamat
Datang “ kemudian akan masuk
ke menu home
valid
138
3.5.3. Spesifikasi Hardware dan software
3. Spesifikasi Hardware (perangkat keras)
Komonen perangkat keras adalah terdiri dari unsur-unsur yang terdiri dari
perangkat keras komputer yang digunakan untuk membantu proses kerja manusia
(brainware) dan bersifat fisik. Spesifikasi perangkat keras minimum yang dibutuhkan
adalah sabagai berikut :
a. Server
1. CPU
(a.) Prosessor Intel Pentium Core I3
(b.) RAM DDR3 4 GB
(c.) HarDisk 500 GB
2. Mouse
3. Keyboard
4. Monitor dengan resolusi layar minimum 1024x768
5. Koneksi internet dengan kecepatan 2 Mbps
b. Cilent
1. Prossesor Intel Pentium Core I3
2. RAM DDR3 2 GB
3. Keyboard
4. Monitor dengan resolusi layar minimum 1024x768
5. Koneksi internet dengan kecepatan 1 Mbps
139
4. Spesifikasi Software (perangkat lunak)
Komponen perangkat lunak adalah serangkaina unsur-unsur yang terdiri dari
beberapa perangkat lunak program komputer yang digunakan untuk membantu proses
kerja manusia (brainware) dan sifat non fisik. Adapun spesifikasi perangkat lunak yang
dibutuhkan adalah sebagai berikut :
a. Cilent
1. Sistem operasi: Microsoft Windows 10
2. Java NetBeans IDE 8.1
3. Xampp
4. Database: MySQL
b. Server
1. Sistem operasi Microsoft windows
2. Aplikasi Web Browser Google chrome
140