bab iii analisa sistem berjalan -...
TRANSCRIPT
20
BAB III
ANALISA SISTEM BERJALAN
3.1. Tinjauan Perusahaan
Di Indonesia, menempuh pendidikan TK tidaklah wajib. Namun dalam
perkembangannya saat ini, banyak pihak sekolah dasar yang mewajibkan calon
siswanya lulus sekolah TK terlebih dahulu.
Raudhatul Athfal disingkat RA, merupakan jenjang pendidikan anak usia dini
(yakni usia 6 tahun atau dibawahnya) dalam bentuk pendidikan formal, di bawah
pengelolaan Kementerian Agama.
3.1.1. Sejarah Perusahaan
RA Al-Madinah dibangun Kecamatan Karawang Barat Kabupaten Karawang
dalam sejarah berdirinya mungkin banyak kemiripan dengan lembaga-lembaga
pendidikan Ra pada umumnya, yakni atas inisiatif masyarakat.. RA Al-Madinah
pertama kali berdiri pada tanggal 6 Agustus 2002 didaftarkan ke Departemen Agama
dengan nama TPA/TKA dan mendapatkan SK Pendirian. Kemudian TPA/TKA
mendaftar kembali dan merubah status menjadi RA pada tanggal 3 Februari 2009 dan
mendapatkan SK Pendirian serta program RA-nya.
Pada perkembangannya sekolah ini mengalami kemajuan yang signifikan baik
dari kuantitas dan dari bidang kualitas pun sangat memuaskan. Dari dasar itulah tokoh-
tokoh masyarakat bahkan pengawas RA wilayah Kecamatan Karawang Barat pun
sangat mendukung agar terus meningkatkan kualitas dan kuantitasnya.
21
3.1.2. Struktur Organisasi dan Fungsi
Sumber : Sekolah RA Al-Madinah Karawang
Gambar III.1.
Struktur Organisasi
Ketua Yayasan
H. RUDI
PURWARNA
Sekretaris
Anggi Novalia,S.Pd
Bendahara
Nining
Sholihat,S.Pd.I
Guru
M. Agam Sidik
Guru
Amelia Ayuningtyas
Guru
Egi Legiana
Fazri
Kepala Sekolah
Komar, S.Ag
Penjaga Sekolah
Wasim
22
Dibawah ini merupakan beberapa fungsi dari struktur organisasi yang terdapat
pada RA Al-Madinah Karawang, yaitu sebagai berikut :
1. Ketua yayasan bertanggung jawab dalam pengembangan pendidikan di RA Al-
Madinah, bekerjasama dengan berbagai kebijakan dalam rangka optimalisasi
sumber belajar dan sumber dana.
2. Kepala sekolah bertanggung jawab dalam pengembangan program sekolah,
mengkoordinasikan guru guru, mengelola Administrasi sekolah, melakukan
evaluasi dan pembinaan terhadap kinerja guru, melakukan evaluasi terhadap
program pembelajaran di sekolah.
3. Sekertaris bertanggung jawab dalam membuat dokumen, mencatat dan
mendokumentasikan anggota guru yang tidak hadir di sekolah selama jam sekolah,
mengatur waktu pertemuan kepala sekolah dengan staff atau orang tua siswa,
menginformasikan kepada kepala sekolah jika diadakannya suatu kegiatan
sekolah.
4. Bendahara beertanggung jawab dalam mengkoordinasikan keuangan sekolah,
mencatat segala keuangan yang masuk maupun keluar, menyerahkan gaji bulanan
pegawai setiap awal bulan.
5. Guru bertanggung jawab dalam menyusun rencana pembelajaran, Mengelola
pembelajaran sesuai dengan kelompoknya, mencatat perkembangan anak,
menyusun laporan perkembangan anak.
6. Penjaga sekolah bertanggung jawab dalam hal menjaga keamanan di area
sekolah.
23
3.2. Tinjauan Kasus
3.2.1. Proses Bisnis Sistem Berjalan
Proses bisnis sistem berjalan pendapatan dan pengeluaran kas yang terjadi di
sekolah RA Al-Madinah Karawang, yaitu seperti berikut :
1. Proses pendapatan kas
Setiap orang tua siswa memiliki kartu pembayaran SPP sekolah, selanjutnya orang tua
siswa menyerahkan kartu SPP sekolah serta membayar SPP sekolah kepada bagian
bendahara sesuai ketentuan biaya perbulannya. Bendahara akan memberikan cap
stempel lunas kedalam kartu SPP. Setelah memberikan cap stempel kedalam kartu
SPP siswa, bendahara akan merekap semua data pembayaran SPP siswa tersebut
berdasarkan data siswa yang sudah melakukan pembayaran SPP. Kemudian
Bendahara akan mengembalikan kembali kartu SPP sekolah sebagai bukti sudah
membayar SPP kepada orang tua siswa. Bendahara akan membuat laporan
pembayaran SPP sekolah kedalam buku laporan pembayaran SPP berdasarkan hasil
rekap pembayaran SPP, kemudian buku laporan tersebut akan diberikan kepada kepala
sekolah sebagai bukti bahwa semua siswa telah melakukan pembayaran SPP sekolah
kemudian kepala sekolah akan menerima laporan tersebut.
2. Proses Pengeluaran Kas
Guru akan memberikan surat pengajuan dana kegiatan yang diberikan suatu lembaga
untuk dilakukan diluar sekolah kepada kepala sekolah, jika surat pengajuan dana
kegiatan tersebut diterima maka kepala sekolah akan menandatangani surat pengajuan
dana dan meminta bendahara untuk mengeluarkan dana yang diperlukan sesuai
dengan surat pengajuan dana. Bendahara mengeluarkan dana untuk kegiatan yang
diberikan suatu lembaga untuk dilakukan diluar sekolah dan menyerahkan dana
tersebut kepada guru yang bersangkutan. Bendahara akan mencatat biaya pengeluaran
ke dalam buku kas. Bendahara membuat laporan pengeluaran kas berdasarkan data
24
pengeluaran yang terjadi selama 1 bulan. Kemudian laporan pengeluaran kas tersebut
akan diberikan kepada Kepala Sekolah sebagai bukti pengeluaran yang terjadi selama
satu bulan kemudian kepala sekolah akan menerima laporan pengeluaran kas yang
terjadi selama 1 bulan.
3.2.2. Activity Diagram
1. Activity diagram pendapatan kas pada pembayaran SPP
Gambar III.2.
Activity Diagram Pendapatan Kas pada pembayaran SPP
25
2. Activity Diagram pengeluaran kas
Gambar III.3.
Activity Diagram Pengeluaran Kas
26
3.2.3. Dokumen Masukan
Dokumen masukan dari kegiatan pendapatan kas pada saat pembayaran SPP
sekolah dan pengeluaran kas pada saat kegiatan diluar sekolah yang terjadi di RA Al-
Madinah Karawang, diantaranya sebagai berikut :
1. Kartu SPP
Nama Dokumen : Kartu SPP
Fungsi : Sebagai bukti data untuk pegangan siswa
bahwa siswa tersebut telah melakukan
pembayaran SPP sekolah.
Sumber : Orang Tua Siswa
Tujuan : Bendahara
Frekuensi : Terjadi setiap adanya transaksi pembayaran
SPP
Media : Kertas.
Jumlah Rangkap : 1 Lembar.
Format : Lampiran A1.
2. Surat Pengajuan Dana Kegiatan
Nama Dokumen : Surat Pengajuan Dana Kegiatan.
Fungsi : Sebagai bukti adanya kegiatan siswa diluar
sekolah.
Sumber : Guru.
Tujuan : Kepala Sekolah.
Frekuensi : Terjadi pada saat mengajukan permohonan
kegiatan siswa diluar sekolah
Media : Kertas.
27
Jumlah Rangkap : 1
Format : Lampiran A2.
3.2.4. Dokumen Keluaran
Dokumen keluaran dari kegiatan pendapatan kas pada saat pembayaran SPP
sekolah dan pengeluaran kas pada saat kegiatan diluar sekolah yang terjadi di RA Al-
Madinah Karawang, yaitu sebagai berikut :
1. Laporan Pembayaran SPP Siswa
Nama Dokumen : Laporan Pembayaran SPP Siswa
Fungsi : Sebagai bukti arsip laporan pembayaran SPP
siswa.
Sumber : Bendahara.
Tujuan : Kepala Sekolah.
Frekuensi : Setiap Semester
Media : Kertas.
Jumlah Rangkap : 1 Lembar.
Format : Lampiran B1.
2. Laporan Pengeluaran Kas
Nama Dokumen : Laporan Pengeluaran Kas
Fungsi : Sebagai bukti arsip laporan pengeluaran kas
setiap bulannya.
Sumber : Bendahara.
Tujuan : Kepala Sekolah.
Frekuensi : Setiap Bulan
Media : Kertas.
Jumlah Rangkap : 1 Lembar.
28
Format : Lampiran B2.
3.2.5. Permasalahan Pokok
Berdasarkan penelitian yang penulis lakukan pada Sekolah RA Al-Madinah
Karawang, terdapat beberapa masalah yang terjadi, diantaranya sebagai berikut :
1. Pada saat terjadi transaksi pembayaran kegiatan diluar sekolah dan pembayaran
SPP sekolah masih mencatat secara manual melalui buku kas dan buku pencatatan
pembayaran SPP.
2. Dalam proses pengolahan pendapatan kas dan pengeluaran kas masih
menggunakan buku dan catatan lain yang memiliki resiko kehilangan dan
kerusakan yang cukup besar.
3. Pencarian dokumen yang menumpuk pada buku atau catatan jika sedang
dibutuhkan akan memakan waktu yang lama.
4. Penyimpanan data dan dokumen penting yang kurang aman, dapat menyebabkan
kecurangan-kecurangan yang dilakukan baik oleh pihak dalam maupun pihak luar,
seperti manipulasi laporan, kebocoran informasi keuangan dan lain sebagainya.
3.2.6. Pemecahan Masalah
Dalam mengatasi masalah ini, penulis mengajukan alternatif pemecahan
masalah, yaitu dengan menggunakan sistem yang sudah terkomputerisasi dengan
pertimbangan sebagai berikut :
1. Dengan menggunakan sistem yang sudah terkomputerisasi diharapkan dapat
membantu bagian bendahara dalam mengelola transaksi pembayaran pengeluaran
dan transaksi pemasukan pada sekolah, sehingga dapat memberikan laporan yang
lebih tepat dan akurat.
29
2. Dengan beralihnya sistem pencatatan transaksi dari metode manual ke metode
komputerisasi, diharapkan dapat membantu bagian bendahara dalam
menghasilkan laporan menjadi lebih efektif dan efisien atau tepat waktu.
3. Dengan adanya sistem yang baru, diharapkan dapat membantu sekolah dalam
meminimalisirkan jumlah dokumen yang menumpuk serta diharapkan dapat
membantu pencarian dokumen dari beberapa waktu kebelakang.
4. Peneraparan hak akses dalam sistem diharapkan dapat meminimalisirkan adanya
kecurangan dan kesalahan manusia (human error).
3.3. Analisis Kebutuhan Software
Berdasarkan proses bisnis pada RA Al-Madinah Karawang maka tahapan
berikutnya adalah analisa kebutuhan dimana bagian pembayaran SPP dan pengeluaran
kas kegiatan diluar sekolah dapat masuk ke sistem pendapatan dan pengeluaran kas
sekolah, didalam sistem tersebut bendahara dapat menginput semua transaksi
pemasukan dan pengeluaran kas yang nanti akan diberikan kepada kepala sekolah RA
Al-Madinah Karawang.
3.3.1. Analisis Kebutuhan
1. Bendahara
A.1. Bendahara Login
A.2. Bendahara Mengakses Menu Utama
A.3. Bendahara Mengelola Data User
A.4. Bendahara Mengelola Data Akun
A.5. Bendahara Mengelola Data Siswa
A.6. Bendahara Mengelola Transaksi Dana Masuk
A.7. Bendahara Mengelola Transaksi Dana Keluar
30
A.8. Bendahara Mengelola Jurnal Masuk
A.9. Bendahara Mengelola Jurnal Keluar
A.10. Bendahara Logout
2. Kepala Sekolah
B.1. Kepala Sekolah Login
B.2. Kepala Sekolah Mengelola Menu Utama
B.3. Kepala Sekolah Mengakses Laporan Data Siswa
B.4. Kepala Sekolah Mengakses Laporan Data Pendapatan
B.5. Kepala Sekolah Mengakses Laporan Data Siswa
B.6. Kepala Sekolah Logout
3.3.2. Use Case Diagram
A.1. Use Case Diagram Bendahara Login
Gambar III.4.
Use Case Diagram Bendahara Login
Tabel III.1.
Deskripsi Use Case Diagram Bendahara Login
Use Case Narative Bendahara Login
Tujuan Melakukan login dan masuk kedalam sistem pendapatan dan
pengeluaran kas sekolah.
Deskripsi Sistem ini memungkinkan bendahara untuk mengakses sistem
pendapatan dan pengeluaran kas sekolah.
Skenario Utama
Aktor Bendahara.
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol masuk
Sistem akan menampilkan textbox untuk mengisi kode user
dan kata sandi.
31
2. Aktor memilih
tombol batal
Sistem akan membatalkan proses dan keluar dari aktivitas.
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
A.2. Use Case Diagram Bendahara Mengelola Menu Utama
Gambar III.5.
Use Case Diagram Bendahara Mengelola Menu Utama
Tabel III.2.
Deskripsi Use Case Diagram Bendahara Mengelola Menu Utama
Use Case Narative Bendahara Menu Utama
Tujuan Masuk kedalam menu utama sistem pendapatan dan pengeluaran
kas sekolah.
Deskripsi Sistem ini memungkinkan bendahara untuk mengakses sistem
pendapatan dan pengeluaran kas sekolah.
Skenario Utama
Aktor Bendahara.
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
menu master
2. Aktor memilih
menu transaksi
Sistem akan membuka menu master yang didalamnya
terdapat data user, data akun, dan data siswa.
Sistem akan membuka menu transaksi yang didalamnya
terdapat dana masuk, dana keluar, jurnal dana masuk dan
jurnal dana keluar.
32
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
A.3. Use Case Diagram Bendahara Mengakses Data User
Gambar III.6.
Use Case Diagram Bendahara Mengakses Data User
Tabel III.3.
Deskripsi Use Case Diagram Bendahara Mengakses Data User
Use Case Narative Bendahara Mengakses Data User
Tujuan Masuk kedalam menu data user sistem pendapatan dan
pengeluaran kas sekolah.
Deskripsi Sistem ini memungkinkan bendahara untuk mengakses data user
sistem pendapatan dan pengeluaran kas sekolah.
Skenario Utama
Aktor Bendahara.
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol tambah
2. Aktor memilih
tombol ubah
3. Aktor memilih
tombol simpan
4. Aktor memilih
tombol hapus
5. Aktor memilih
tombol batal
Sistem akan menambahkan data yang akan ditambahkan
oleh bendahara.
Sistem akan mengubah data yang akan ditambahkan oleh
bendahara.
Sistem akan menyimpan data
Sistem akan menghapus data yang akan ditambahkan oleh
bendahara.
Sistem akan membatalkan data yang akan disimpan atau
diubah oleh bendahara
33
6. Aktor memilih
tombol keluar
Sistem akan keluar dari aplikasi menu master dan menu
transaksi
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
A.4. Use Case Diagram Bendahara Mengakses Data Akun
Gambar III.7.
Use Case Diagram Bendahara Mengakses Data Akun
Tabel III.4.
Deskripsi Use Case Diagram Bendahara Mengakses Data Akun
Use Case Narative Bendahara Mengakses Data Akun
Tujuan Masuk kedalam menu data akun sistem pendapatan dan
pengeluaran kas sekolah.
Deskripsi Sistem ini memungkinkan bendahara untuk mengakses data akun
sistem pendapatan dan pengeluaran kas sekolah.
Skenario Utama
Aktor Bendahara.
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol tambah
2. Aktor memilih
tombol ubah
3. Aktor memilih
tombol simpan
4. Aktor memilih
tombol hapus
Sistem akan menambahkan data yang akan ditambahkan
oleh bendahara.
Sistem akan mengubah data yang akan ditambahkan oleh
bendahara.
Sistem akan menyimpan data
Sistem akan menghapus data yang akan ditambahkan oleh
bendahara.
34
5. Aktor memilih
tombol batal
6. Aktor memilih
tombol keluar
Sistem akan membatalkan data yang akan disimpan atau
diubah oleh bendahara
Sistem akan keluar dari aplikasi menu master dan menu
transaksi
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
A.5. Use Case Diagram Bendahara Mengakses Data Siswa
Gambar III.8.
Use Case Diagram Bendahara Mengakses Data Siswa
Tabel III.5.
Deskripsi Use Case Diagram Bendahara Mengakses Data Siswa
Use Case Narative Bendahara Mengakses Data Siswa
Tujuan Masuk kedalam menu data siswa sistem pendapatan dan
pengeluaran kas sekolah.
Deskripsi Sistem ini memungkinkan bendahara untuk mengakses data
siswa sistem pendapatan dan pengeluaran kas sekolah.
Skenario Utama
Aktor Bendahara.
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol tambah
2. Aktor memilih
tombol ubah
3. Aktor memilih
tombol simpan
Sistem akan menambahkan data yang akan ditambahkan
oleh bendahara.
Sistem akan mengubah data yang akan ditambahkan oleh
bendahara.
Sistem akan menyimpan data.
35
4. Aktor memilih
tombol hapus
5. Aktor memilih
tombol batal
6. Aktor memilih
tombol keluar
Sistem akan menghapus data yang akan ditambahkan oleh
bendahara.
Sistem akan membatalkan data yang akan disimpan atau
diubah oleh bendahara
Sistem akan keluar dari aplikasi menu master dan menu
transaksi
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
A.6. Use Case Diagram Bendahara Mengakses Dana Masuk
Gambar III.9.
Use Case Diagram Bendahara Mengakses Dana Masuk
Tabel III.6.
Deskripsi Use Case Diagram Bendahara Mengakses Dana Masuk
Use Case Narative Bendahara Mengakses Dana Masuk
Tujuan Masuk kedalam menu transaksi dana masuk sistem pendapatan
dan pengeluaran kas sekolah.
Deskripsi Sistem ini memungkinkan bendahara untuk mengakses transaksi
dana masuk sistem pendapatan dan pengeluaran kas sekolah.
Skenario Utama
Aktor Bendahara.
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol tambah
2. Aktor memilih
tombol simpan
3. Aktor memilih
tombol batal
4. Aktor memilih
Sistem akan menambahkan data yang akan ditambahkan
oleh bendahara.
Sistem akan menyimpan data
Sistem akan membatalkan data yang akan disimpan atau
diubah oleh bendahara
36
tombol keluar Sistem akan keluar dari aplikasi menu master dan menu
transaksi
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
A.7. Use Case Diagram Bendahara Mengakses Dana Keluar
Gambar III.10.
Use Case Diagram Bendahara Mengakses Dana Keluar
Tabel III.7.
Deskripsi Use Case Diagram Bendahara Mengakses Dana Keluar
Use Case Narative Bendahara Mengakses Dana Keluar
Tujuan Masuk kedalam menu transaksi dana keluar sistem pendapatan
dan pengeluaran kas sekolah.
Deskripsi Sistem ini memungkinkan bendahara untuk mengakses transaksi
dana masuk keluar pendapatan dan pengeluaran kas sekolah.
Skenario Utama
Aktor Bendahara.
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol tambah
2. Aktor memilih
tombol simpan
3. Aktor memilih
tombol batal
4. Aktor memilih
tombol keluar
Sistem akan menambahkan data yang akan ditambahkan
oleh bendahara.
Sistem akan menyimpan data
Sistem akan membatalkan data yang akan disimpan atau
diubah oleh bendahara
Sistem akan keluar dari aplikasi menu master dan menu
transaksi
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
A.8. Use Case Diagram Bendahara Mengakses Jurnal Masuk
37
Gambar III.11.
Use Case Diagram Bendahara Mengakses Jurnal Masuk
Tabel III.8.
Deskripsi Use Case Diagram Bendahara Mengakses Jurnal Masuk
Use Case Narative Bendahara Mengakses Jurnal Masuk
Tujuan Masuk kedalam menu jurnal masuk sistem pendapatan dan
pengeluaran kas sekolah.
Deskripsi Sistem ini memungkinkan bendahara untuk mengakses jurnal
masuk sistem pendapatan dan pengeluaran kas sekolah.
Skenario Utama
Aktor Bendahara.
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol simpan
2. Aktor memilih
tombol batal
3. Aktor memilih
tombol cari
4. Aktor memilih
lihat jurnal
5. Aktor memilih
tombol keluar
Sistem akan menyimpan data
Sistem akan membatalkan data yang akan ditambahkan
oleh bendahara.
Sistem akan mencari data
Sistem akan menunjukan jurnal yang akan dilihat oleh
bendahara
Sistem akan keluar dari aplikasi menu master dan menu
transaksi
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
A.9. Use Case Diagram Bendahara Mengakses Jurnal Keluar
38
Gambar III.12.
Use Case Diagram Bendahara Mengakses Jurnal Keluar
Tabel III.9.
Deskripsi Use Case Diagram Bendahara Mengakses Jurnal Keluar
Use Case Narative Bendahara Mengakses Jurnal Keluar
Tujuan Masuk kedalam menu jurnal keluar sistem pendapatan dan
pengeluaran kas sekolah.
Deskripsi Sistem ini memungkinkan bendahara untuk mengakses jurnal
keluar sistem pendapatan dan pengeluaran kas sekolah.
Skenario Utama
Aktor Bendahara.
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol simpan
2. Aktor memilih
tombol batal
3. Aktor memilih
tombol cari
4. Aktor memilih
lihat jurnal
5. Aktor memilih
tombol keluar
Sistem akan menyimpan data
Sistem akan membatalkan data yang akan ditambahkan
oleh bendahara.
Sistem akan mencari data
Sistem akan menunjukan jurnal yang akan dilihat oleh
bendahara
Sistem akan keluar dari aplikasi menu master dan menu
transaksi
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
A.10. Use Case Diagram Bendahara Logout
39
Gambar III.13.
Use Case Diagram Bendahara Logout
Tabel III.10.
Deskripsi Use Case Diagram Bendahara Logout
Use Case Narative Bendahara Logout
Tujuan Melakukan logout dan masuk kedalam sistem pendapatan dan
pengeluaran kas sekolah.
Deskripsi Sistem ini memungkinkan bendahara untuk menutup sistem
pendapatan dan pengeluaran kas sekolah.
Skenario Utama
Aktor Bendahara.
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol keluar
2. Aktor memilih
tombol batal
Sistem akan menampilkan pilihan untuk memilih.keluar
atau batal.
Sistem akan membatalkan proses keluar.
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
B.1. Use Case Diagram Kepala Sekolah Login
Gambar III.14.
Use Case Diagram Kepala Sekolah Login
Tabel III.11.
Deskripsi Use Case Diagram Kepala Sekolah Login
40
Use Case Narative Kepala Sekolah Login
Tujuan Melakukan kegiatan kedalam aplikasi pendapatan dan
pengeluaran kas sekolah.
Deskripsi Sistem ini memungkinkan kepala sekolah untuk masuk ke dalam
aplikasi pendapatan dan pengeluaran kas sekolah.
Skenario Utama
Aktor Kepala Sekolah
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol masuk
2. Aktor memilih
tombol batal
Sistem akan menampilkan textbox untuk mengisi kode user
dan kata sandi.
Sistem akan membatalkan proses dan keluar dari aktivitas.
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
B.2. Use Case Diagram Kepala Sekolah Mengelola Menu Utama
Gambar III.15.
Use Case Diagram Kepala Sekolah Login Mengelola Menu Utama
Tabel III.12.
Deskripsi Use Case Diagram Kepala Sekolah Login Mengelola Menu
Utama
Use Case Narative Kepala Sekolah Mengelola Menu Utama
Tujuan Melakukan kegiatan kedalam aplikasi pendapatan dan
pengeluaran kas sekolah.
Deskripsi Sistem ini memungkinkan kepala sekolah untuk masuk ke dalam
menu utama sistem pendapatan dan pengeluaran kas sekolah.
Skenario Utama
Aktor Kepala Sekolah
41
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
menu laporan
2. Aktor memilih
menu laporan data
siswa
3. Aktor memilih
menu laporan
pendapatan kas
4. Aktor memilih
menu laporan
pengeluaran kas
Sistem akan membuka menu laporan yang didalamnya
terdapat laporan data siswa, laporan pendapatan kas, dan
laporan pengeluaran kas.
Sistem akan membuka menu laporan data siswa oleh kepala
sekolah.
Sistem akan membuka menu laporan pendapatan kas oleh
kepala sekolah.
Sistem akan membuka menu laporan pengeluaran kas oleh
kepala sekolah.
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
B.3. Use Case Diagram Kepala Sekolah Mengelola Laporan Data Siswa
Gambar III.16.
Use Case Diagram Kepala Sekolah Login Mengelola Laporan Data Siswa
Tabel III.13.
Deskripsi Use Case Diagram Kepala Sekolah Login Mengelola Laporan
Data Siswa
Use Case Narative Kepala Sekolah Mengelola Laporan Data Siswa
Tujuan Melakukan kegiatan kedalam aplikasi pendapatan dan
pengeluaran kas sekolah.
Deskripsi Sistem ini memungkinkan kepala sekolah untuk masuk ke dalam
menu laporan data siswa sistem pendapatan dan pengeluaran kas
sekolah.
Skenario Utama
Aktor Kepala Sekolah
42
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
cetak
2. Aktor memilih
Keluar
Sistem akan mencetak data yang akan ditambahkan oleh
bendahara.
Sistem akan keluar dari aplikasi menu master dan menu
transaksi.
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
B.4. Use Case Diagram Kepala Sekolah Mengelola Laporan Pendapatan Kas
Gambar III.17.
Use Case Diagram Kepala Sekolah Login Mengelola Laporan Pendapatan
Kas
Tabel III.14.
Deskripsi Use Case Diagram Kepala Sekolah Login Mengelola Laporan
Pendapatan Kas
Use Case Narative Kepala Sekolah Mengelola Laporan Pendapatan Kas
Tujuan Melakukan kegiatan kedalam aplikasi pendapatan dan
pengeluaran kas sekolah.
Deskripsi Sistem ini memungkinkan kepala sekolah untuk masuk ke dalam
menu laporan pendapatan kas sistem pendapatan dan pengeluaran
kas sekolah.
Skenario Utama
Aktor Kepala Sekolah
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
cetak
2. Aktor memilih
Keluar
Sistem akan mencetak data yang akan ditambahkan oleh
bendahara.
Sistem akan keluar dari aplikasi menu master dan menu
transaksi.
43
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
B.5. Use Case Diagram Kepala Sekolah Mengelola Laporan Pengeluaran Kas
Gambar III.18.
Use Case Diagram Kepala Sekolah Login Mengelola Laporan
Pengeluaran Kas
Tabel III.15.
Deskripsi Use Case Diagram Kepala Sekolah Login Mengelola Laporan
Pengeluaran Kas
Use Case Narative Kepala Sekolah Mengelola Laporan Pengeluaran Kas
Tujuan Melakukan kegiatan kedalam aplikasi pendapatan dan
pengeluaran kas sekolah.
Deskripsi Sistem ini memungkinkan kepala sekolah untuk masuk ke dalam
menu laporan pengeluaran kas sistem pendapatan dan
pengeluaran kas sekolah.
Skenario Utama
Aktor Kepala Sekolah
Kondisi Awal Aktor membuka sistem pendapatan dan pengeluaran kas
sekolah.
Aksi Aktor Reaksi Sistem
1. Aktor memilih
cetak
2. Aktor memilih
Keluar
Sistem akan mencetak data yang akan ditambahkan oleh
bendahara.
Sistem akan keluar dari aplikasi menu master dan menu
transaksi.
Kondisi Akhir Jika perintah sesuai maka sistem masuk kedalam aplikasi
tersebut dan bendahara dapat melakukan aktivitas didalam
sistem.
3.3.3. Activity Diagram
44
1. Activity Diagram Bendahara Login
Gambar III.19.
Activity Diagram Bendahara Login
2. Activity Diagram Bendahara Mengakses Menu Utama
45
Gambar III.20.
Activity Diagram Bendahara Mengakses Menu Utama
3. Activity Diagram Bendahara Mengakses Menu Data User
46
Gambar III.21.
Activity Diagram Bendahara Mengakses Menu Data User
4. Activity Diagram Bendahara Mengakses Menu Data Akun
47
Gambar III.22.
Activity Diagram Bendahara Mengakses Menu Data Akun
5. Activity Diagram Bendahara Mengakses Menu Data Siswa
48
Gambar III.23.
Activity Diagram Bendahara Mengakses Menu Data Siswa
6. Activity Diagram Bendahara Mengakses Menu Dana Masuk
49
Gambar III.24.
Activity Diagram Bendahara Mengakses Menu Dana Masuk
7. Activity Diagram Bendahara Mengakses Menu Dana Keluar
50
Gambar III.25.
Activity Diagram Bendahara Mengakses Menu Dana Keluar
8. Activity Diagram Bendahara Mengakses Menu Jurnal Masuk
51
Gambar III.26.
Activity Diagram Bendahara Mengakses Menu Jurnal Masuk
9. Activity Diagram Bendahara Mengakses Menu Jurnal Keluar
52
Gambar III.27.
Activity Diagram Bendahara Mengakses Menu Jurnal Keluar
10. Activity Diagram Bendahara Logout
53
Gambar III.28.
Activity Diagram Bendahara Logout
11. Activity Diagram Kepala Sekolah Menu Login
54
Gambar III.29.
Activity Diagram Kepala Sekolah Menu Login
12. Activity Diagram Kepala Sekolah Mengakses Menu Utama
55
Gambar III.30.
Activity Diagram Kepala Sekolah Mengakses Menu Utama
56
13. Activity Diagram Kepala Sekolah Mengakses Menu Laporan Data Siswa
Gambar III.31.
Activity Diagram Kepala Sekolah Mengakses
Menu Laporan Data Siswa
57
14. Activity Diagram Kepala Sekolah Mengakses Menu Laporan Pendapatan Kas
Gambar III.32.
Activity Diagram Kepala Sekolah Mengakses
Menu Laporan Pendapatan Kas
58
15. Activity Diagram Kepala Sekolah Mengakses Menu Laporan Pengeluaran Kas
Gambar III.33.
Activity Diagram Kepala Sekolah Mengakses
Menu Laporan Pengeluaran Kas
59
16. Activity Diagram Kepala Sekolah Logout
Gambar III.34.
Activity Diagram Kepala Sekolah Logout
3.4. Desain
Proses desain akan menerjemahkan syarat kebutuhan sebuah perancangan
perangkat lunak yang diperkirakan sebelum dibuat codingan, proses ini berfokus pada
use case diagram, activity diagram, sequence diagram, deployment diagram dan
adapun database dengan Entity Relationship Diagram (ERD) dan Logical Record
Structure (LRS). Dengan menggunakna UML (Unified Modelling Language) sebagai
salah satu alat bantu yang sangat handal didunia pengembangan sistem yang
berorientasi objek.
60
3.4.1. Entity Relationship Diagram (ERD)
Gambar III.35.
Entity Relationship Diagram (ERD)
61
3.4.2. Logical Record Structure (LRS)
Gambar III.36.
Logical Record Structure (LRS)
3.4.3. Spesifikasi File
Program ini menggunakan database dengan nama pendapatan pada
pembayaran SPP dan pengeluaran kas pada kegiatan diluar sekolah yang didalamnya
terdapat tabel-tabel sebagai tanda entitas.
62
Tabel-tabel tersebut sebagai berikut :
1. Spesifikasi File Tabel Data User
Nama Database : db_kasalmadinah
Nama File : data_user
Tipe File : Master
Akses File : Random
Record Size : 45 Karakter
Filed Key : kodeuser
Tabel III.16.
Spesifikasi File Tabel Data User
No Elemen Data Akronim Tipe Panjang Keterangan
1. Kode User kodeuser Varchar 3 Primary key
2. Nama User nama_user Varchar 20
3. Kata Sandi sandi Varchar 8
4. Hak Akses akses Varchar 14
2. Spesifikasi File Tabel Data Akun
Nama Database : db_kasalmadinah
Nama File : data_akun
Tipe File : Master
Akses File : Random
Record Size : 40 Karakter
Filed Key : kodeakun
63
Tabel III.17.
Spesifikasi File Tabel Data Akun
No Elemen Data Akronim Tipe Panjang Keterangan
1. Kode Akun kodeakun Varchar 3 Primary key
2. Nama Akun nama_akun Varchar 20
3. Jenis Akun jenis Varchar 17
3. Spesifikasi File Tabel Data Siswa
Nama Database : db_kasalmadinah
Nama File : data_siswa
Tipe File : Master
Akses File : Random
Record Size : 70 Karakter
Filed Key : kode_siswa
Tabel III.18.
Spesifikasi File Tabel Data Siswa
No Elemen
Data
Akronim Tipe Panjang Keterangan
1. Kode Siswa kode_siswa Varchar 5 Primary Key
2. NIS Nis Varchar 10
3. Nama
Lengkap
nama_lengkap Varchar 20
4. Tempat,
Tanggal
Lahir
Ttl Text -
5. Jenis
Kelamin
jenis_kelamin Enum ‘Laki-
Laki’,’Perempuan
’
6. Nomor
Ponsel
no_hp Varchar 13
64
7. Nama Ayah nama_ayah Varchar 22
8. Alamat Alamat Text -
4. Spesifikasi File Tabel Dana Masuk
Nama Database : db_kasalmadinah
Nama File : dana_masuk
Tipe File : Transaksi
Akses File : Random
Record Size : 90 Karakter
Filed Key : kode_dm
Tabel III.19.
Spesifikasi File Tabel Dana Masuk
No Elemen Data Akronim Tipe Panjang Keterangan
1. No Dana
Masuk
kode_dm Varchar 9 Primary Key
2. Tanggal tgl_dm Date -
3. Asal Dana Dari sumber_dana Varchar 42
4. Atas Nama kode_siswa Varchar 5 Foreign Key
5. Kode User kodeuser Varchar 3 Foreign Key
6. Diterima Oleh diterima Varchar 20
7. Nominal nominal_dm Int 11
8. Keterangan keterangan_dm Text -
5. Spesifikasi File Tabel Dana Keluar
Nama Database : db_kasalmadinah
Nama File : dana_keluar
Tipe File : Transaksi
Akses File : Random
65
Record Size : 85 Karakter
Filed Key : kode_dk
Tabel III.20.
Spesifikasi File Tabel Dana Keluar
No Elemen Data Akronim Tipe Panjang Keterangan
1. No Dana
Keluar
kode_dk Varchar 9 Primary Key
2. Tanggal tgl_dk Date -
3. Keperluan keperluan Varchar 42
4. Dibayar Oleh dibayar Varchar 20
5. Nominal nominal _dk Int 11
6. Kode User kodeuser Varchar 3 Foreign Key
7. Keterangan Keterangan_dk Text -
6. Spesifikasi File Tabel Jurnal
Nama Database : db_kasalmadinah
Nama File : jurnal
Tipe File : Transaksi
Akses File : Random
Record Size : 12 Karakter
Filed Key : kode_jurnal
Tabel III.21.
Spesifikasi File Tabel Jurnal
No. Elemen Data Akronim Tipe Panjang Keterangan
1. No Jurnal kode_jurnal Varchar 9 Primary Key
2. Tanggal tgl_jurnal Date -
3. Keterangan keterangan_jurnal Text -
4. Kode User kodeuser Varchar 3 Foreign Key
66
7. Spesifikasi File Tabel Jurnal Detail
Nama Database : db_kasalmadinah
Nama File : jurnaldetail
Tipe File : Jurnal Detail
Akses File : Random
Record Size : 52 Karakter
Tabel III.22.
Spesifikasi File Tabel Jurnal Detail
No. Elemen Data Akronim Tipe Panjang Keterangan
1. No Jurnal kodejurnal Varchar 9 Foreign Key
2. Kode Akun kodeakun Varchar 3 Foreign Key
3. Debet debet Int 11
4. Kredit kredit Int 11
5. No Dana Masuk kode_dm Varchar 9
6. No Dana Keluar kode_dk Varchar 9
67
3.4.4. Sequence Diagram
1. Sequence Diagram Pendapatan Kas pada Pembayaran SPP
Gambar III.37.
Sequence Diagram Pendapatan Kas pada Pembayaran SPP
68
2. Sequence Diagram Pengeluaran Kas pada kegiatan diluar sekolah
Gambar III.38.
Sequence Diagram Pengeluaran Kas pada Kegiatan diluar Sekolah
69
3.4.5. Deployment Diagram
Gambar III.39.
Deployment Diagram Pendapatan dan Pengeluaran Kas
70
3.4.6. User Interface
1. Bendahara
a. Menu Login
Menu Login digunakan untuk masuk kedalam sistem menggunakan kode user
dan kata sandi.
Gambar III.40.
User Interface Bendahara Menu Login
b. Menu Utama
Form menu utama ini merupakan form utama untuk memanggil seluruh form
lainnya
Gambar III.41.
User Interface Bendahara Mengakses Menu Utama
71
c. Menu Data User
Menu Data User merupakan menu yang berisikan user untuk mengatur
kelompok akses user dan data user.
Gambar III.42.
User Interface Bendahara Mengakses Menu Data User
d. Menu Data Akun
Menu Data Akun merupakan menu yang berisikan akun untuk mengatur
kelompok akses akun dan data akun.
Gambar III.43.
User Interface Bendahara Mengakses Menu Data Akun
72
e. Menu Data Siswa
Menu Data Siswa merupakan form menu yang berisikan data - data siswa
sekolah dan pengisian data siswa.
Gambar III.44.
User Interface Bendahara Mengakses Menu Data Siswa
f. Menu Dana Masuk
Menu Dana Masuk merupakan form menu yang berisikan data - data dana
masuk dan untuk pengisian data dana masuk sekolah.
Gambar III.45.
User Interface Bendahara Mengakses Menu Dana Masuk
73
g. Menu Dana Keluar
Menu Dana Keluar merupakan form menu yang berisikan data - data dana
keluar dan untuk pengisian data dana keluar sekolah.
Gambar III.46.
User Interface Bendahara Mengakses Menu Dana Keluar
h. Menu Jurnal Masuk
Menu Jurnal Masuk merupakan form menu yang berisikan jurnal dana masuk
sekolah.
Gambar III.47.
User Interface Bendahara Mengakses Menu Jurnal Masuk
74
i. Menu Jurnal Keluar
Menu Jurnal Keluar merupakan form menu yang berisikan jurnal dana keluar
sekolah.
Gambar III.48.
User Interface Bendahara Mengakses Menu Jurnal Keluar
i. Menu Lihat Jurnal
Menu Lihat Jurnal berfungsi untuk melihat jurnal yang akan bendahara lihat.
Gambar III.49.
User Interface Bendahara Mengakses Menu Lihat Jurnal
75
2. Kepala Sekolah
a. Menu Login
Menu Login digunakan untuk masuk kedalam sistem menggunakan kode user
dan kata sandi.
Gambar III.50.
User Interface Kepala Sekolah Mengakses Login
b. Menu Utama
Form menu utama ini merupakan form utama untuk memanggil seluruh form
lainnya.
Gambar III.51.
User Interface Kepala Sekolah Mengakses Menu Utama
76
c. Menu Laporan Data Siswa
Menu Laporan Data Siswa berfungsi untuk laporan data siswa yang akan
dilihat oleh kepala sekolah.
Gambar III.52.
User Interface Kepala Sekolah Mengakses
Laporan Data Siswa
d. Menu Laporan Pendapatan Kas
Menu Laporan Pendapatan Kas merupakan Laporan dari hasil pendapatan kas
yang terjadi di sekolah.
Gambar III.53.
User Interface Kepala Sekolah Mengakses
Laporan Pendapatan Kas
77
e. Menu Laporan Pengeluaran Kas
Menu Laporan Pengeluaran Kas merupakan Laporan dari hasil pengeluaran
kas yang terjadi di sekolah.
Gambar III.54.
User Interface Kepala Sekolah Mengakses
Laporan Pengeluaran Kas
78
3.5. Implementasi
3.5.1. Code Generation
1. Form Pendapatan Kas
package view;
import com.sun.glass.events.KeyEvent;
import static java.awt.Frame.MAXIMIZED_BOTH;
import java.io.File;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import static javax.swing.JOptionPane.WARNING_MESSAGE;
import javax.swing.table.DefaultTableModel;
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;
public class transaksi_dana_masuk extends javax.swing.JFrame {
int x, y;
koneksi kon = new koneksi();
Object header[]
= {
"No DM",
"Asal Dana",
"NIS",
"Diterima",
"Nominal",
"Keterangan"
};
String sql, ntabel = kon.dana_masuk;
public String kduser = "U-1", dKodeSiswa, dNIS, dNama;
public transaksi_dana_masuk() {
initComponents();
//pertama running
_awal();
79
_pilihan();
}
private void _pilihan() {
cbAsal.addItem("Uang Pendaftaran");
cbAsal.addItem("Biaya SPP");
}
private void _tampil() {
DefaultTableModel data = new DefaultTableModel(null, header);
tabel.setModel(data);
sql = "select * from " + ntabel + " as t, "
+ "data_siswa as d where t.kode_siswa = d.kode_siswa "
+ "order by t.kode_dm desc";
try {
kon.rs = kon.st.executeQuery(sql);
while (kon.rs.next()) {
String kolom1 = kon.rs.getString("t.kode_dm");
String kolom2 = kon.rs.getString("t.sumber_dana");
String kolom3 = kon.rs.getString("d.nis");
String kolom4 = kon.rs.getString("t.diterima");
String kolom5 = kon.rs.getString("t.nominal_dm");
String kolom6 = kon.rs.getString("t.keterangan_dm");
String kolom[] = {
kolom1, kolom2, kolom3, kolom4, kolom5, kolom6
};
data.addRow(kolom);
}
} catch (SQLException e) {
}
}
private void _simpanData() {
try {
sql = "insert into " + ntabel + " values('"
+ txtKode.getText() + "','"
+ txtTgl.getText() + "','"
+ txtUser.getText() + "','"
+ cbAsal.getSelectedItem() + "','"
+ txtKode_Siswa.getText() + "','"
+ txtDiterima.getText() + "','"
+ txtNominal.getText() + "','"
+ txtKeterangan.getText()
+ "')";
kon.st.executeUpdate(sql);
80
JOptionPane.showMessageDialog(null, "Data Berhasil di Simpan", "Pesan",
HIDE_ON_CLOSE);
} catch (SQLException e) {
}
}
Date date = new Date();
SimpleDateFormat noformat = new SimpleDateFormat("yyMM"), noformat2 =
new SimpleDateFormat("yyyy-MM-dd");
private void _nomor() {
try {
kon.setKoneksi();
sql = "select right(kode_dm,3)+1 from " + ntabel;
kon.rs = kon.st.executeQuery(sql);
if (kon.rs.next()) {
kon.rs.last();
String nom = kon.rs.getString(1);
while (nom.length() < 3) {
nom = 0 + nom;
txtKode.setText("DM" + noformat.format(date) + nom);
}
} else {
txtKode.setText("DM" + noformat.format(date) + "001");
}
} catch (SQLException e) {
}
}
private void _klikTabel() {
int row = tabel.getSelectedRow();
txtCetak.setText((String) tabel.getValueAt(row, 0));
}
private void _awal() {
txtCetak.requestFocus();
_on(false);
_bersih();
btTambah.setText("TAMBAH");
btTambah.setEnabled(true);
}
private void _panel() {
panelUtama.setBackground(kon.warnaBackground);
panelKolom.setBackground(kon.warnaKolom);
panelTombol.setBackground(kon.warnaBackground);
81
panelTabel.setBackground(kon.warnaTabel);
}
private void _bersih() {
txtKode.setText("");
txtKode_Siswa.setText("");
txtNis.setText("");
txtNama.setText("");
txtDiterima.setText("");
txtNominal.setText("");
txtKeterangan.setText("");
}
private void _on(boolean aktif) {
txtKode.setEnabled(aktif);
txtNis.setEnabled(aktif);
txtKode_Siswa.setEnabled(aktif);
txtNama.setEnabled(aktif);
txtUser.setEnabled(aktif);
txtTgl.setEnabled(aktif);
txtDiterima.setEnabled(aktif);
txtNominal.setEnabled(aktif);
txtKeterangan.setEnabled(aktif);
cbAsal.setEnabled(aktif);
//tombol
btCari.setEnabled(aktif);
}
/**
* 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() {
panelUtama = new javax.swing.JPanel();
panelKolom = new javax.swing.JPanel();
label = new javax.swing.JLabel();
jSeparator1 = new javax.swing.JSeparator();
jLabel2 = new javax.swing.JLabel();
txtKode = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
txtKode_Siswa = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
txtNama = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
82
txtDiterima = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
txtNominal = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
jScrollPane2 = new javax.swing.JScrollPane();
txtKeterangan = new javax.swing.JTextArea();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
txtTgl = new javax.swing.JTextField();
jLabel13 = new javax.swing.JLabel();
txtUser = new javax.swing.JTextField();
jSeparator2 = new javax.swing.JSeparator();
cbAsal = new javax.swing.JComboBox<>();
btCari = new javax.swing.JButton();
txtNis = new javax.swing.JTextField();
panelTabel = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
tabel = new javax.swing.JTable();
jLabel10 = new javax.swing.JLabel();
txtCetak = new javax.swing.JTextField();
btCetak = new javax.swing.JButton();
panelTombol = new javax.swing.JPanel();
btBatal = new javax.swing.JButton();
btTambah = new javax.swing.JButton();
btKeluar = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setLocationByPlatform(true);
setUndecorated(true);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
});
panelUtama.setBackground(java.awt.Color.lightGray);
panelUtama.setBorder(new
javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
panelUtama.setCursor(new
java.awt.Cursor(java.awt.Cursor.MOVE_CURSOR));
panelUtama.addMouseMotionListener(new
java.awt.event.MouseMotionAdapter() {
public void mouseDragged(java.awt.event.MouseEvent evt) {
panelUtamaMouseDragged(evt);
}
});
panelUtama.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
83
panelUtamaMousePressed(evt);
}
});
panelKolom.setBackground(java.awt.Color.white);
panelKolom.setBorder(new
javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED));
panelKolom.setCursor(new
java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
panelKolom.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
label.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
label.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
panelKolom.add(label, new org.netbeans.lib.awtextra.AbsoluteConstraints(13,
14, 570, 35));
panelKolom.add(jSeparator1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(3, 60, 590, 10));
jLabel2.setText("No Dana Masuk");
panelKolom.add(jLabel2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(13, 127, -1, 30));
txtKode.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0,
0, 0), 1, true));
panelKolom.add(txtKode, new
org.netbeans.lib.awtextra.AbsoluteConstraints(140, 130, 180, 30));
jLabel3.setText("Asal Dana Dari");
panelKolom.add(jLabel3, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 170, -1, 30));
txtKode_Siswa.setBorder(new javax.swing.border.LineBorder(new
java.awt.Color(0, 0, 0), 1, true));
panelKolom.add(txtKode_Siswa, new
org.netbeans.lib.awtextra.AbsoluteConstraints(140, 210, 100, 30));
jLabel4.setText("Atas Nama");
panelKolom.add(jLabel4, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 210, -1, 30));
txtNama.setToolTipText("Karawang, 05 Januari 1997");
txtNama.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0,
0, 0), 1, true));
panelKolom.add(txtNama, new
org.netbeans.lib.awtextra.AbsoluteConstraints(140, 290, 180, 30));
jLabel7.setText("Diterima Oleh");
panelKolom.add(jLabel7, new
org.netbeans.lib.awtextra.AbsoluteConstraints(340, 130, -1, 30));
84
txtDiterima.setBorder(new javax.swing.border.LineBorder(new
java.awt.Color(0, 0, 0), 1, true));
txtDiterima.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
txtDiterimaKeyTyped(evt);
}
});
panelKolom.add(txtDiterima, new
org.netbeans.lib.awtextra.AbsoluteConstraints(430, 130, 150, 29));
jLabel8.setText("Nominal");
panelKolom.add(jLabel8, new
org.netbeans.lib.awtextra.AbsoluteConstraints(340, 170, -1, 28));
txtNominal.setBorder(new javax.swing.border.LineBorder(new
java.awt.Color(0, 0, 0), 1, true));
txtNominal.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
txtNominalKeyTyped(evt);
}
});
panelKolom.add(txtNominal, new
org.netbeans.lib.awtextra.AbsoluteConstraints(430, 170, 150, 29));
jLabel9.setText("Keterangan");
panelKolom.add(jLabel9, new
org.netbeans.lib.awtextra.AbsoluteConstraints(340, 200, -1, 30));
txtKeterangan.setColumns(20);
txtKeterangan.setRows(5);
txtKeterangan.setBorder(new javax.swing.border.LineBorder(new
java.awt.Color(0, 0, 0), 1, true));
jScrollPane2.setViewportView(txtKeterangan);
panelKolom.add(jScrollPane2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(336, 230, 250, -1));
jLabel11.setText("NIS");
panelKolom.add(jLabel11, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 260, 40, -1));
jLabel12.setText("Nama Lengkap");
panelKolom.add(jLabel12, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 290, -1, 30));
jLabel1.setText("Tanggal");
panelKolom.add(jLabel1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 70, -1, 30));
85
txtTgl.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0,
0), 1, true));
panelKolom.add(txtTgl, new
org.netbeans.lib.awtextra.AbsoluteConstraints(140, 70, 180, 30));
jLabel13.setText("Kode User");
panelKolom.add(jLabel13, new
org.netbeans.lib.awtextra.AbsoluteConstraints(340, 70, -1, 30));
txtUser.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0,
0), 1, true));
panelKolom.add(txtUser, new
org.netbeans.lib.awtextra.AbsoluteConstraints(430, 70, 150, 30));
panelKolom.add(jSeparator2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(13, 112, 570, 10));
panelKolom.add(cbAsal, new
org.netbeans.lib.awtextra.AbsoluteConstraints(140, 170, 180, 30));
btCari.setText("CARI");
btCari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btCariActionPerformed(evt);
}
});
panelKolom.add(btCari, new
org.netbeans.lib.awtextra.AbsoluteConstraints(250, 210, 70, 30));
txtNis.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0,
0), 1, true));
panelKolom.add(txtNis, new
org.netbeans.lib.awtextra.AbsoluteConstraints(140, 250, 180, 30));
panelTabel.setBackground(java.awt.Color.white);
panelTabel.setBorder(new
javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED));
panelTabel.setCursor(new
java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
tabel.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{},
{},
{},
{}
},
new String [] {
86
}
));
tabel.setToolTipText("Transaksi tidak dapat diubah ataupun dihapus");
tabel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
tabel.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tabelMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tabel);
jLabel10.setText("Cari Transaksi");
txtCetak.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0,
0, 0), 1, true));
txtCetak.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
txtCetakKeyTyped(evt);
}
});
btCetak.setText("CETAK");
btCetak.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btCetakActionPerformed(evt);
}
});
javax.swing.GroupLayout panelTabelLayout = new
javax.swing.GroupLayout(panelTabel);
panelTabel.setLayout(panelTabelLayout);
panelTabelLayout.setHorizontalGroup(
panelTabelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addComponent(jScrollPane1)
.addGroup(panelTabelLayout.createSequentialGroup()
.addGap(86, 86, 86)
.addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE,
90, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(28, 28, 28)
.addComponent(txtCetak, javax.swing.GroupLayout.PREFERRED_SIZE,
190, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btCetak, javax.swing.GroupLayout.PREFERRED_SIZE,
83, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
87
);
panelTabelLayout.setVerticalGroup(
panelTabelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
panelTabelLayout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE,
210, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelTabelLayout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(txtCetak,
javax.swing.GroupLayout.PREFERRED_SIZE, 27,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel10,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btCetak,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)))
);
panelTombol.setCursor(new
java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
panelTombol.setOpaque(false);
btBatal.setText("BATAL");
btBatal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btBatalActionPerformed(evt);
}
});
btTambah.setText("TAMBAH");
btTambah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btTambahActionPerformed(evt);
}
});
btKeluar.setText("KELUAR");
btKeluar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btKeluarActionPerformed(evt);
}
});
88
javax.swing.GroupLayout panelTombolLayout = new
javax.swing.GroupLayout(panelTombol);
panelTombol.setLayout(panelTombolLayout);
panelTombolLayout.setHorizontalGroup(
panelTombolLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING)
.addGroup(panelTombolLayout.createSequentialGroup()
.addContainerGap()
.addComponent(btTambah, javax.swing.GroupLayout.PREFERRED_SIZE,
90, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(32, 32, 32)
.addComponent(btBatal, javax.swing.GroupLayout.PREFERRED_SIZE,
90, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btKeluar, javax.swing.GroupLayout.PREFERRED_SIZE,
90, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
panelTombolLayout.setVerticalGroup(
panelTombolLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING)
.addGroup(panelTombolLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelTombolLayout.createParallelGroup(javax.swing.GroupLayout.Alig
nment.BASELINE)
.addComponent(btTambah,
javax.swing.GroupLayout.PREFERRED_SIZE, 34,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btBatal, javax.swing.GroupLayout.PREFERRED_SIZE,
34, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btKeluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 34,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
javax.swing.GroupLayout panelUtamaLayout = new
javax.swing.GroupLayout(panelUtama);
panelUtama.setLayout(panelUtamaLayout);
panelUtamaLayout.setHorizontalGroup(
89
panelUtamaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD
ING)
.addGroup(panelUtamaLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelUtamaLayout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addComponent(panelKolom,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(panelTombol,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(panelTabel,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
panelUtamaLayout.setVerticalGroup(
panelUtamaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD
ING)
.addGroup(panelUtamaLayout.createSequentialGroup()
.addGap(22, 22, 22)
.addComponent(panelKolom,
javax.swing.GroupLayout.PREFERRED_SIZE, 340,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(panelTombol,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(panelTabel,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
90
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(panelUtama,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(panelUtama,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void panelUtamaMouseDragged(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int a, b;
a = evt.getXOnScreen();
b = evt.getYOnScreen();
this.setLocation(a - x, b - y);
}
private void panelUtamaMousePressed(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
x = evt.getX();
y = evt.getY();
}
private void formWindowActivated(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
kon.setKoneksi();
_tampil();
txtTgl.setText(noformat2.format(date));
txtUser.setText(kduser);
txtKode.setEditable(false);
txtTgl.setEditable(false);
91
txtUser.setEditable(false);
txtKode_Siswa.setEditable(false);
txtNis.setEditable(false);
txtNama.setEditable(false);
label.setText(ntabel.toUpperCase());
_panel();
}
private void txtDiterimaKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
char c = evt.getKeyChar();
if (!(txtDiterima.getText().length() < 20
|| (c == KeyEvent.VK_BACKSPACE)
|| (c == KeyEvent.VK_DELETE))) {
getToolkit().beep();
evt.consume();
}
}
private void txtNominalKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
char c = evt.getKeyChar();
if (!((c >= '0') && (c <= '9') && txtNominal.getText().length() < 11
|| (c == KeyEvent.VK_BACKSPACE)
|| (c == KeyEvent.VK_DELETE))) {
getToolkit().beep();
evt.consume();
}
}
private void txtCetakKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
}
private void tabelMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
_klikTabel();
}
private void btTambahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (btTambah.getText().equals("TAMBAH")) {
_on(true);
_nomor();
btCari.grabFocus();
btTambah.setText("SIMPAN");
} else {
92
if (txtKode.getText().trim().equals("") ||
txtKode_Siswa.getText().trim().equals("") || txtDiterima.getText().trim().equals("")
|| txtNama.getText().trim().equals("") ||
txtNominal.getText().trim().equals("") || txtKeterangan.getText().trim().equals("")
|| txtKeterangan.getText().trim().equals("")) {
JOptionPane.showMessageDialog(null, "Maaf Masih ada data yang
kosong", "Pesan", WARNING_MESSAGE);
txtNominal.requestFocus();
} else {
_simpanData();
txtCetak.setText(txtKode.getText());
if (JOptionPane.showConfirmDialog(this, "Mau Cetak Nota?",
"Konfirmasi",
JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
this.setState(JFrame.ICONIFIED);
_cetak();
}
_tampil();
_awal();
}
}
}
private void btBatalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
_awal();
}
private void btKeluarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.dispose();
}
private void btCariActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
boolean closable = true;
dialogDataSiswa ds = new dialogDataSiswa(null, closable);
ds.t = this;
ds.setVisible(true);
ds.setResizable(true);
txtKode_Siswa.setText(dKodeSiswa);
txtNis.setText(dNIS);
txtNama.setText(dNama);
}
private void btCetakActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
_cetak();
93
}
private void _cetak() {
JasperReport jasperReport;
JasperDesign jasperDesign;
JasperPrint jasperPrint;
try {
File file = new File("");
String namafile = file.getAbsolutePath()
+ "\\src\\lap\\dana_masuk.jrxml";
jasperDesign = JRXmlLoader.load(namafile);
HashMap param = new HashMap();
param.put("kode", txtCetak.getText());
param.put("judul", kon.tPerusahaan);
param.put("telp", kon.tTelp);
param.put("alamat", kon.tAlamat);
jasperReport = JasperCompileManager.compileReport(jasperDesign);
jasperPrint = JasperFillManager.fillReport(jasperReport, param,
kon.setKoneksi());
JasperViewer viewer = new JasperViewer(jasperPrint, false);
viewer.setFitPageZoomRatio();
viewer.setVisible(true);
viewer.setExtendedState(MAXIMIZED_BOTH);
} catch (JRException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code
(optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default
look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
94
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(transaksi_dana_masuk.class.getName()).log(jav
a.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(transaksi_dana_masuk.class.getName()).log(jav
a.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(transaksi_dana_masuk.class.getName()).log(jav
a.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(transaksi_dana_masuk.class.getName()).log(jav
a.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new transaksi_dana_masuk().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btBatal;
private javax.swing.JButton btCari;
private javax.swing.JButton btCetak;
private javax.swing.JButton btKeluar;
private javax.swing.JButton btTambah;
private javax.swing.JComboBox<String> cbAsal;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1;
95
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JLabel label;
private javax.swing.JPanel panelKolom;
private javax.swing.JPanel panelTabel;
private javax.swing.JPanel panelTombol;
private javax.swing.JPanel panelUtama;
private javax.swing.JTable tabel;
private javax.swing.JTextField txtCetak;
private javax.swing.JTextField txtDiterima;
private javax.swing.JTextArea txtKeterangan;
private javax.swing.JTextField txtKode;
private javax.swing.JTextField txtKode_Siswa;
private javax.swing.JTextField txtNama;
private javax.swing.JTextField txtNis;
private javax.swing.JTextField txtNominal;
private javax.swing.JTextField txtTgl;
private javax.swing.JTextField txtUser;
// End of variables declaration
}
2. Form Pengeluaran Kas
package view;
import com.sun.glass.events.KeyEvent;
import static java.awt.Frame.MAXIMIZED_BOTH;
import java.io.File;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import static javax.swing.JOptionPane.WARNING_MESSAGE;
import javax.swing.table.DefaultTableModel;
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;
public class transaksi_dana_keluar extends javax.swing.JFrame {
96
int x, y;
koneksi kon = new koneksi();
Object header[]
= {
"No DK",
"Tanggal",
"Keperluan",
"Dibayar",
"Nominal",
"Keterangan"
};
String sql, ntabel = kon.dana_keluar;
public String kduser = "U-1";
public transaksi_dana_keluar() {
initComponents();
//pertama running
_awal();
_pilihan();
}
private void _pilihan() {
cbKeperluan.addItem("ATK");
cbKeperluan.addItem("Listrik");
cbKeperluan.addItem("Air");
cbKeperluan.addItem("Sampah");
cbKeperluan.addItem("Renovasi");
}
private void _tampil() {
DefaultTableModel data = new DefaultTableModel(null, header);
tabel.setModel(data);
sql = "select * from " + ntabel + " order by kode_dk desc";
try {
kon.rs = kon.st.executeQuery(sql);
while (kon.rs.next()) {
String kolom1 = kon.rs.getString("kode_dk");
String kolom2 = kon.rs.getString("tgl_dk");
String kolom3 = kon.rs.getString("keperluan");
String kolom4 = kon.rs.getString("dibayar");
String kolom5 = kon.rs.getString("nominal_dk");
String kolom6 = kon.rs.getString("keterangan_dk");
String kolom[] = {
kolom1, kolom2, kolom3, kolom4, kolom5, kolom6
};
97
data.addRow(kolom);
}
} catch (SQLException e) {
}
}
private void _simpanData() {
try {
sql = "insert into " + ntabel + " values('"
+ txtKode.getText() + "','"
+ txtTgl.getText() + "','"
+ txtUser.getText() + "','"
+ cbKeperluan.getSelectedItem() + "','"
+ txtDibayar.getText() + "','"
+ txtNominal.getText() + "','"
+ txtKeterangan.getText()
+ "')";
kon.st.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "Data Berhasil di Simpan", "Pesan",
HIDE_ON_CLOSE);
} catch (SQLException e) {
}
}
Date date = new Date();
SimpleDateFormat noformat = new SimpleDateFormat("yyMM"), noformat2 =
new SimpleDateFormat("yyyy-MM-dd");
private void _nomor() {
try {
kon.setKoneksi();
sql = "select right(kode_dk,3)+1 from " + ntabel;
kon.rs = kon.st.executeQuery(sql);
if (kon.rs.next()) {
kon.rs.last();
String nom = kon.rs.getString(1);
while (nom.length() < 3) {
nom = 0 + nom;
txtKode.setText("DK" + noformat.format(date) + nom);
}
} else {
txtKode.setText("DK" + noformat.format(date) + "001");
}
} catch (SQLException e) {
}
98
}
private void _klikTabel() {
int row = tabel.getSelectedRow();
txtCetak.setText((String) tabel.getValueAt(row, 0));
}
private void _awal() {
txtCetak.requestFocus();
_on(false);
_bersih();
btTambah.setText("TAMBAH");
btTambah.setEnabled(true);
}
private void _panel() {
panelUtama.setBackground(kon.warnaBackground);
panelKolom.setBackground(kon.warnaKolom);
panelTombol.setBackground(kon.warnaBackground);
panelTabel.setBackground(kon.warnaTabel);
}
private void _bersih() {
txtKode.setText("");
txtDibayar.setText("");
txtNominal.setText("");
txtKeterangan.setText("");
}
private void _on(boolean aktif) {
txtKode.setEnabled(aktif);
cbKeperluan.setEnabled(aktif);
txtDibayar.setEnabled(aktif);
txtUser.setEnabled(aktif);
txtTgl.setEnabled(aktif);
txtNominal.setEnabled(aktif);
txtKeterangan.setEnabled(aktif);
}
/**
* 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() {
panelUtama = new javax.swing.JPanel();
99
panelKolom = new javax.swing.JPanel();
label = new javax.swing.JLabel();
jSeparator1 = new javax.swing.JSeparator();
jLabel2 = new javax.swing.JLabel();
txtKode = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
txtNominal = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
jScrollPane2 = new javax.swing.JScrollPane();
txtKeterangan = new javax.swing.JTextArea();
jLabel1 = new javax.swing.JLabel();
txtTgl = new javax.swing.JTextField();
jLabel13 = new javax.swing.JLabel();
txtUser = new javax.swing.JTextField();
jSeparator2 = new javax.swing.JSeparator();
jLabel4 = new javax.swing.JLabel();
txtDibayar = new javax.swing.JTextField();
cbKeperluan = new javax.swing.JComboBox<>();
panelTabel = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
tabel = new javax.swing.JTable();
jLabel10 = new javax.swing.JLabel();
txtCetak = new javax.swing.JTextField();
btCetak = new javax.swing.JButton();
panelTombol = new javax.swing.JPanel();
btBatal = new javax.swing.JButton();
btTambah = new javax.swing.JButton();
btKeluar = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setLocationByPlatform(true);
setUndecorated(true);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
});
panelUtama.setBackground(java.awt.Color.lightGray);
panelUtama.setBorder(new
javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
panelUtama.setCursor(new
java.awt.Cursor(java.awt.Cursor.MOVE_CURSOR));
panelUtama.addMouseMotionListener(new
java.awt.event.MouseMotionAdapter() {
public void mouseDragged(java.awt.event.MouseEvent evt) {
panelUtamaMouseDragged(evt);
}
100
});
panelUtama.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
panelUtamaMousePressed(evt);
}
});
panelKolom.setBackground(java.awt.Color.white);
panelKolom.setBorder(new
javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED));
panelKolom.setCursor(new
java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
panelKolom.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
label.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
label.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
panelKolom.add(label, new org.netbeans.lib.awtextra.AbsoluteConstraints(13,
14, 570, 35));
panelKolom.add(jSeparator1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(3, 60, 590, 10));
jLabel2.setText("No Dana Keluar");
panelKolom.add(jLabel2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(13, 127, -1, 30));
txtKode.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0,
0, 0), 1, true));
panelKolom.add(txtKode, new
org.netbeans.lib.awtextra.AbsoluteConstraints(140, 130, 180, 30));
jLabel3.setText("Keperluan");
panelKolom.add(jLabel3, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 170, -1, 30));
jLabel8.setText("Nominal");
panelKolom.add(jLabel8, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 250, 80, 28));
txtNominal.setBorder(new javax.swing.border.LineBorder(new
java.awt.Color(0, 0, 0), 1, true));
txtNominal.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
txtNominalKeyTyped(evt);
}
});
panelKolom.add(txtNominal, new
org.netbeans.lib.awtextra.AbsoluteConstraints(140, 250, 180, 29));
jLabel9.setText("Keterangan");
101
panelKolom.add(jLabel9, new
org.netbeans.lib.awtextra.AbsoluteConstraints(340, 130, -1, 30));
txtKeterangan.setColumns(20);
txtKeterangan.setRows(5);
txtKeterangan.setBorder(new javax.swing.border.LineBorder(new
java.awt.Color(0, 0, 0), 1, true));
jScrollPane2.setViewportView(txtKeterangan);
panelKolom.add(jScrollPane2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(340, 170, 240, 110));
jLabel1.setText("Tanggal");
panelKolom.add(jLabel1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 70, -1, 30));
txtTgl.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0,
0), 1, true));
panelKolom.add(txtTgl, new
org.netbeans.lib.awtextra.AbsoluteConstraints(140, 70, 180, 30));
jLabel13.setText("Kode User");
panelKolom.add(jLabel13, new
org.netbeans.lib.awtextra.AbsoluteConstraints(340, 70, -1, 30));
txtUser.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0,
0), 1, true));
panelKolom.add(txtUser, new
org.netbeans.lib.awtextra.AbsoluteConstraints(430, 70, 150, 30));
panelKolom.add(jSeparator2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(13, 112, 570, 10));
jLabel4.setText("Dibayar oleh");
panelKolom.add(jLabel4, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 210, -1, 30));
txtDibayar.setBorder(new javax.swing.border.LineBorder(new
java.awt.Color(0, 0, 0), 1, true));
txtDibayar.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
txtDibayarKeyTyped(evt);
}
});
panelKolom.add(txtDibayar, new
org.netbeans.lib.awtextra.AbsoluteConstraints(140, 210, 180, 29));
panelKolom.add(cbKeperluan, new
org.netbeans.lib.awtextra.AbsoluteConstraints(140, 170, 180, 30));
102
panelTabel.setBackground(java.awt.Color.white);
panelTabel.setBorder(new
javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED));
panelTabel.setCursor(new
java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
tabel.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{},
{},
{},
{}
},
new String [] {
}
));
tabel.setToolTipText("Transaksi tidak dapat diubah ataupun dihapus");
tabel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
tabel.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tabelMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tabel);
jLabel10.setText("Cari Transaksi");
txtCetak.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0,
0, 0), 1, true));
txtCetak.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
txtCetakKeyTyped(evt);
}
});
btCetak.setText("CETAK");
btCetak.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btCetakActionPerformed(evt);
}
});
javax.swing.GroupLayout panelTabelLayout = new
javax.swing.GroupLayout(panelTabel);
panelTabel.setLayout(panelTabelLayout);
panelTabelLayout.setHorizontalGroup(
103
panelTabelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addComponent(jScrollPane1)
.addGroup(panelTabelLayout.createSequentialGroup()
.addGap(86, 86, 86)
.addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE,
90, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(28, 28, 28)
.addComponent(txtCetak, javax.swing.GroupLayout.PREFERRED_SIZE,
190, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btCetak, javax.swing.GroupLayout.PREFERRED_SIZE,
83, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
panelTabelLayout.setVerticalGroup(
panelTabelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
panelTabelLayout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE,
223, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelTabelLayout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(txtCetak,
javax.swing.GroupLayout.PREFERRED_SIZE, 27,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel10,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btCetak,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)))
);
panelTombol.setCursor(new
java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
panelTombol.setOpaque(false);
btBatal.setText("BATAL");
btBatal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
104
btBatalActionPerformed(evt);
}
});
btTambah.setText("TAMBAH");
btTambah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btTambahActionPerformed(evt);
}
});
btKeluar.setText("KELUAR");
btKeluar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btKeluarActionPerformed(evt);
}
});
javax.swing.GroupLayout panelTombolLayout = new
javax.swing.GroupLayout(panelTombol);
panelTombol.setLayout(panelTombolLayout);
panelTombolLayout.setHorizontalGroup(
panelTombolLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING)
.addGroup(panelTombolLayout.createSequentialGroup()
.addContainerGap()
.addComponent(btTambah, javax.swing.GroupLayout.PREFERRED_SIZE,
90, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(32, 32, 32)
.addComponent(btBatal, javax.swing.GroupLayout.PREFERRED_SIZE,
90, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btKeluar, javax.swing.GroupLayout.PREFERRED_SIZE,
90, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
panelTombolLayout.setVerticalGroup(
panelTombolLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING)
.addGroup(panelTombolLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelTombolLayout.createParallelGroup(javax.swing.GroupLayout.Alig
nment.BASELINE)
105
.addComponent(btTambah,
javax.swing.GroupLayout.PREFERRED_SIZE, 34,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btBatal, javax.swing.GroupLayout.PREFERRED_SIZE,
34, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btKeluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 34,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
javax.swing.GroupLayout panelUtamaLayout = new
javax.swing.GroupLayout(panelUtama);
panelUtama.setLayout(panelUtamaLayout);
panelUtamaLayout.setHorizontalGroup(
panelUtamaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD
ING)
.addGroup(panelUtamaLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelUtamaLayout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addComponent(panelKolom,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(panelTombol,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(panelTabel,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
panelUtamaLayout.setVerticalGroup(
panelUtamaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD
ING)
.addGroup(panelUtamaLayout.createSequentialGroup()
.addGap(22, 22, 22)
.addComponent(panelKolom,
javax.swing.GroupLayout.PREFERRED_SIZE, 317,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(panelTombol,
javax.swing.GroupLayout.PREFERRED_SIZE,
106
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(panelTabel,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(panelUtama,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(panelUtama,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 4, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void panelUtamaMouseDragged(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int a, b;
a = evt.getXOnScreen();
b = evt.getYOnScreen();
this.setLocation(a - x, b - y);
}
private void panelUtamaMousePressed(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
x = evt.getX();
107
y = evt.getY();
}
private void formWindowActivated(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
kon.setKoneksi();
_tampil();
txtTgl.setText(noformat2.format(date));
txtUser.setText(kduser);
txtKode.setEditable(false);
txtTgl.setEditable(false);
txtUser.setEditable(false);
label.setText(ntabel.toUpperCase());
_panel();
}
private void txtNominalKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
char c = evt.getKeyChar();
if (!((c >= '0') && (c <= '9') && txtNominal.getText().length() < 20
|| (c == KeyEvent.VK_BACKSPACE)
|| (c == KeyEvent.VK_DELETE))) {
getToolkit().beep();
evt.consume();
}
}
private void txtCetakKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
}
private void tabelMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
_klikTabel();
}
private void btTambahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (btTambah.getText().equals("TAMBAH")) {
_on(true);
_nomor();
btTambah.setText("SIMPAN");
} else {
if (txtKode.getText().trim().equals("")
|| txtNominal.getText().trim().equals("")
|| txtKeterangan.getText().trim().equals("")
|| txtDibayar.getText().trim().equals("")) {
108
JOptionPane.showMessageDialog(null, "Maaf Masih ada data yang
kosong", "Pesan", WARNING_MESSAGE);
txtNominal.requestFocus();
} else {
_simpanData();
txtCetak.setText(txtKode.getText());
if (JOptionPane.showConfirmDialog(this, "Mau Cetak Nota?",
"Konfirmasi",
JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
this.setState(JFrame.ICONIFIED);
_cetak();
}
_tampil();
_awal();
}
}
}
private void btBatalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
_awal();
}
private void btKeluarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.dispose();
}
private void btCetakActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
_cetak();
}
private void txtDibayarKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
char c = evt.getKeyChar();
if (!(txtNominal.getText().length() < 20
|| (c == KeyEvent.VK_BACKSPACE)
|| (c == KeyEvent.VK_DELETE))) {
getToolkit().beep();
evt.consume();
}
}
private void _cetak() {
JasperReport jasperReport;
JasperDesign jasperDesign;
JasperPrint jasperPrint;
try {
109
File file = new File("");
String namafile = file.getAbsolutePath()
+ "\\src\\lap\\dana_keluar.jrxml";
jasperDesign = JRXmlLoader.load(namafile);
HashMap param = new HashMap();
param.put("kode", txtCetak.getText());
param.put("judul", kon.tPerusahaan);
param.put("telp", kon.tTelp);
param.put("alamat", kon.tAlamat);
jasperReport = JasperCompileManager.compileReport(jasperDesign);
jasperPrint = JasperFillManager.fillReport(jasperReport, param,
kon.setKoneksi());
JasperViewer viewer = new JasperViewer(jasperPrint, false);
viewer.setFitPageZoomRatio();
viewer.setVisible(true);
viewer.setExtendedState(MAXIMIZED_BOTH);
} catch (JRException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code
(optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default
look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(transaksi_dana_keluar.class.getName()).log(jav
a.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
110
java.util.logging.Logger.getLogger(transaksi_dana_keluar.class.getName()).log(jav
a.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(transaksi_dana_keluar.class.getName()).log(jav
a.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(transaksi_dana_keluar.class.getName()).log(jav
a.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new transaksi_dana_keluar().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btBatal;
private javax.swing.JButton btCetak;
private javax.swing.JButton btKeluar;
private javax.swing.JButton btTambah;
private javax.swing.JComboBox<String> cbKeperluan;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JLabel label;
private javax.swing.JPanel panelKolom;
111
private javax.swing.JPanel panelTabel;
private javax.swing.JPanel panelTombol;
private javax.swing.JPanel panelUtama;
private javax.swing.JTable tabel;
private javax.swing.JTextField txtCetak;
private javax.swing.JTextField txtDibayar;
private javax.swing.JTextArea txtKeterangan;
private javax.swing.JTextField txtKode;
private javax.swing.JTextField txtNominal;
private javax.swing.JTextField txtTgl;
private javax.swing.JTextField txtUser;
// End of variables declaration
}
3.5.2. Blackbox Testing
1. Form Blackbox Testing Bendahara Form Login
Tabel III.23.
Hasil Pengujian Blackbox Testing Form Login
No Skenario
Pengujian
Test Case Hasil yang
Diharapkan
Hasil
pengujian
Keteran
gan
1.
Mengosongkan
semua data login
lalu langsung
mengklik tombol
“Masuk”
Kode User:
(kosong)
Kata Sandi:
(kosong)
Sistem akan
menampilkan
pesan “Data
Tidak
Ditemukan !!”
Sesuai
harapan Valid
2.
Hanya mengisi
kode user dan
mengosongkan
kata sandi
kemudian klik
tombol “Masuk”
Kode User:
(U-1)
Kata Sandi:
(kosong)
Sistem akan
menampilkan
pesan “Data
Tidak
Ditemukan !!”
Sesuai
harapan Valid
3.
Menginput data
login dengan benar
kemudian klik
tombol “Masuk”
Kode User:
(U-1)
Kata Sandi:
(***)
Sistem akan
menerima
akses login dan
menampilkan
pesan
“Selamat
Datang”
Sesuai
harapan Valid
112
2. Form Blackbox Testing Bendahara Form Dana Masuk
Tabel III.24.
Hasil Pengujian Blackbox Testing Form Dana Masuk
No Skenario Pengujian Hasil yang
Diharapkan
Hasil
pengujian
Keterangan
1.
Mengosongkan
semua isian yang ada
pada form dana
masuk kemudian
klik “Simpan”
Sistem akan
menampilkan
pesan “Maaf
Masih ada data
yang kosong”
Sesuai
Harapan Valid
2.
Salah satu kolom
atau beberapa kolom
tidak diisi
Sistem akan
menampilkan
pesan “Maaf
Masih ada data
yang kosong”
Sesuai
Harapan Valid
3.
Semua kolom diisi
dengan benar
Sistem akan
menampilkan
pesan “berhasil
disimpan”
Sesuai
Harapan Valid
4. Keluar pesan “Mau
Cetak Nota?”
1. yes
Sistem akan
menampilkan
form cetak
Sesuai
Harapan Valid
2. no
Sistem akan
kembali ke
menu dana
masuk
Sesuai
Harapan Valid
3. Form Blackbox Testing Bendahara Form Dana Keluar
Tabel III.25.
Hasil Pengujian Blackbox Testing Form Dana Keluar
No Skenario Pengujian Hasil yang
Diharapkan
Hasil
pengujian
Keterangan
1.
Mengosongkan
semua isian yang ada
pada form dana
masuk kemudian
klik simpan
Sistem akan
menampilkan
pesan “masih
ada kolom
yang belum
terisi”
Sesuai
Harapan Valid
2.
Salah satu kolom
atau beberapa kolom
tidak diisi
Sistem akan
menampilkan
pesan “masih
ada kolom
yang belum
terisi”
Sesuai
Harapan Valid
113
3. Semua Kolom diisi
dengan baik
Sistem akan
menampilkan
pesan “berhasil
disimpan”
Sesuai
Harapan Valid
4.
Keluar pesan cetak
pembayaran
1. Cetak pembayaran
Sistem akan
menampilkan
form cetak
Sesuai
Harapan Valid
2. Tidak Cetak
Pembayaran
Sistem akan
kembali ke
data menu
dana masuk
Sesuai
Harapan Valid
3.5.3. Spesifikasi Hardware dan Software
Tabel III.26.
Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Windows 10 64-bit
Processor AMD A4-9120 RADEON R3, 4 COMPUTE CORES
2C+2G 2.20 GHz
RAM 4.00 GB (3.88 GB usable)
Harddsik 251 GB
Monitor 14”
Keyboard 85 keys
Printer Epson L310
Mouse Standar
Software Kebutuhan menjalankan aplikasi secara local :
Bahasa pemograman : NetBeans IDE 8.1
Web server : Apache
DBSM : MySQL