Page 1
20
BAB III
PEMBAHASAN
3.1 Tinjauan Yayasan
Untuk mengetahui lebih banyak tentang sistem informasi pembayaran
administrasi sekolah pada Yayasan Islam Nurussalam Al Khoir Sukoharjo maka
penulis akan menjabarkan informasi-informasi yang telah didapatkan dari SMP
Islam Nurussalam Al Khoir diantaranya adalah :
3.1.1 Sejarah Yayasan
Yayasan Nurussalam Al Khoir dipimpin oleh ketua yayasan Bapak Drs. H.
Haries Fuady, yayasan ini berdiri pada tahun 2014. Yayasan ini terletak di
Kompleks Masjid Nurussalam Al-Khoir Ngasemrejo Triyagan, Kecamatan
Mojolaban, Kabupaten Sukoharjo, Jawa Tengah. Yayasan Nurussalam Al Khoir
merupakan yayasan yang bergerak dibidang pendidikan. Di Yayasan Nurussalam
Al Khoir terdapat beberapa penyelenggaraan lembaga pendidikan yaitu
pendidikan taman kanak-kanak (TK) dan Sekolah Menengah Pertama (SMP).
Yayasan Nurussalam Al Khoir didirikan dengan tujuan untuk mewujudkan
peserta didik yang kokoh akidah , taat ibadah dan berakhlak karimah serta unggul
dalam Penguasaan Ilmu Pengetahuan dan Teknologi. Serta memiliki visi dan misi
yaitu :
VISI : Membina generasi Berakidah, Berakhlak, dan Islami
Page 2
21
MISI :
1. Membentuk generasi yang bertauhid sebagai landasan terwujudnya generasi
muslim yang berkualitas berdasar Al-Qur’an dan As Sunnah.
2. Mewujudkan lingkungan berbasis Akhlakul Karimah sebagai dasar
menegakkan nilai-nilai Illahiyah.
3. Mendorong terbentuknya generasi yang berwawasan luas, disiplin, percaya
diri menuju generasi yang berprestasi.
4. Menumbuhkan rasa kasih sayang sesama sebagai wujud pengamalan niali-
nilai ke-Islaman
5. Memberikan kontribusi yang positif kepada umat dengan ilmu, amal menuju
kehidupan yang Islami.
3.1.2 Struktur Organisasi dan Fungsi
Gambar III.1. Stuktur Organisasi
Page 3
22
Berikut ini tugas dan tanggung jawab masing-masing bagian dalam organisasi
yayasan secara garis besar adalah sebagai berikut :
Pembina
1. Membuat keputusan mengenai perubahan Anggaran Dasar.
2. Penetapan kebijakan umum yayasan berdasarkan anggaran dasar yayasan.
3. pengesahan program kerja dan rancangan anggaran tahunan yayasan.
4. Pengesahan laporan tahunan.
5. Pembina berhak untuk memberhentikan dewan pengurus yayasan
6. Pembina berhak untuk menetapkan kebijakan umum yayasan
7. Menjaga dan memastikan pelaksanaan kerja dan kegiatan yayasan sesuai
dengan visi, misi dan tujuan.
8. Memberikan masukan kepada ketua umum dalam pelaksanaan program
Yayasan.
Ketua
1. Menjalankan visi dan misi yayasan sesuai dengan anggaran dasar.
2. Memimpin dan mengkoordinasikan seluruh anggota dan pengurus yayasan.
3. Mengkoordinasikan program kerja yayasan baik perencanaan, pelaksanaan,
evaluasi, maupun pertanggungjawaban.
4. Memberikan wewenang kepada para ketua divisi sehubungan dengan hal-
hal yang berkaitan dengan ruang lingkup masing-masing divisi.
Bendahara
1. Bertanggung jawab atas pengelolaan keuangan yayasan.
2. Membuat laporan keuangan secara periodik dan secara tertulis yang
disampaikan secara berkala.
Page 4
23
3. Menyusun dan mengatur anggaran dengan mengkoordinasikan kepada ketua
umum.
4. Mengatur pencatatan, penerimaan, penyimpanan, dan pengeluaran
keuangan, surat-surat berharga, bukti kas yang berhubungan dengan
kegiatan yayasan dan dlaporkan secara transparan.
5. Mempunyai hak bertanya dan menyelenggarakan audit keuangan pada
setiap kepanitiaan.
6. Bertanggung jawab kepada Ketua.
Serkertaris
1. Mengatur dan menertibkan pengorganisasian administrasi yayasan.
2. Mengatur pengelolaan, pemeliharaan dan inventarisasi barang-barang milik
yayasan.
3. Bertanggung jawab atas terselenggaranya kegiatan operasional harian
yayasan.
4. Berhak dan mempunyai wewenang mendokumentasikan serta mengarsipkan
semua surat-surat masuk maupun keluar.
Devisi Pendanaan
1. Bertanggung jawab dalam menyususn dan mengkoordinir program-program
yayasan yang berkaitan dengan pendanaan dan pemberdayaan ekonomi.
2. Memimpin dan mengatur divisi yang dipimpinnya, meliputi pelaksanaan
program kerja, penggunaan budget dan mengatur/membina anggotanya.
3. Membuat program penggalangan dana yang berkesinambungan untuk
menopang kebutuhan yayasan.
Page 5
24
Wakasek Kurikulum
1. Mengatur penyusunan program pengajaran (Program Semester, Program
Satuan Pelajaran, dan Persiapan Mengajar, Penjabaran dan Penyesuaian
Kurikulum).
2. Mengatur pelaksanaan program penilaian Kriteria Kenaikan Kelas,Kriteria
Kelulusan dan Laporan Kemajuan Belajar Siswa serta pembagian Rapor.
3. Mengkoordinir pengembangan Kurikulum.
4. Menganalisis ketercapaian target kurikulum.
6. Menyusun pembagian tugas guru dan jadwal pelajaran.
7. Mengatur Pengembangan MGMP dan Koordinator mata pelajaran.
Wakasek Kesiswaan
1. Menyusun program pembinaan kesiswaan.
2. Membina dan melaksanakan koordinasi pelaksanaan keamanan, kebersihan,
ketertiban, keindahan, kerindangan, kekeluargaan, dan ketaqwaan.
3. Mengatur dan membina program kegiatan OSIS meliputi Kepramukaan,
Palang Merah Remaja (PMR), Kelompok Ilmiah Remaja (KIR), Usaha
Kesehatan Sekolah (UKS), Patroli Keamanan Sekolah (PKS), Paskibra.
4. Melaksanakan pemilihan calon siswa teladan dan calon siswa penerima bea
siswa.
5. Mengatur pelaksanaan Kurikuler dan Ekstra Kurikuler.
Wakasek Sapres
1. Merencanakan kebutuhan sarana prasarana untuk menunjang proses belajar
mengajar.
Page 6
25
2. Menyediakan, mengatur, memelihara, sarana dan prasarana sekolah dengan
pelaksanaan kegiatan sekolah dan proses belajar mengajar dapat berjalan
dengan tertib dan lancar. Tentu saja hal ini tidak lepas dari pengawasan.
3. Mengatur pemanfaatan Sarana Prasarana.
4. Mengkordinasikan dan mengawasi pemeliharaan, perbaikan, pengembangan
dan penghapusan sarana
5. Menyusun laporan pelaksanaan bidang sarana dan prasarana secara berkala.
6. Mengkoordinasikan pendayagunaan sarana dan prasarana.
Wakasek Humas
1. Mengatur hubungan sekolah dengan orang tua.
2. Mengatur dan menyelenggarakan hubungan Sekolah dengan orangtua/Wali
siswa
3. Membina pengembangan hubungan antar Sekolah dengan lembaga
pemerintah, dunia usaha dan lembaga-lembaga sosial lainnya.
4. Membina hubungan antar Sekolah dengan komite Sekolah.
5. Menjalin hubungan ke luar lembaga sesuai fungsi dan kebutuhan.
6. Membantu pelaksanaan tugas BP3.
Wali Kelas
1. Pengelolaan kelas.
2. Penyelenggaraan administrasi kelas meliputi : Daftar pelajaran kelas, papan
absensi siswa, buku absensi siswa, buku kegiatan pembelajaran/buku kelas,
tata tertib siswa.
3. Mengisi daftar kumpulan nilai (legger).
4. Membuat catatan khusus tentang siswa.
Page 7
26
5. Pencatatan mutasi siswa.
6. Mengisi buku laporan penilaian hasil belajar.
Guru
1. Melaksanakan segala hal kegiatan pembelajaran.
2. Melaksanakan kegiatan Penilaian Proses Belajar, Ulangan (Harian, Umum,
dan Akhir).
3. Bertanggungjawab atas pencapaian target kurikulum dan daya serap.
4. Mencatat dan melaporkan hasil belajar siswa
5. Membantu dan menanggulangi siswa yang kesulitan belajar
6. Melaksanakan program perbaikan dan pengayaan
7. Mengisi daftar nilai siswa
8. Membuat catatan tentang kemajuan dari hasil belajar
9. Mengisi daftar hadir siswa sebelum memulai pelajaran.
3.2 Tinjauan Kasus
3.2.1 Proses Bisnis Sistem Berjalan
Prosedur sistem berjalan merupakan proses keluar masuknya berkas yang
terjadi pada suatu sistem yang sedang dijalankan. Sistem pembayaran administrasi
sekolah pada Yayasan Nurussalam Al Khoir dapat digambarkan sebagai beriku:
Siswa melakukan pembayaran administrasi yang terdiri dari pendaftar
ulang, pembayaran SPP, dana pengembang (uang gedung) dan biaya lain-lain.
Siswa membayar biaya administrasi dengan menyerahkan uang sebagai data
pembayaran dan kartu Administrasi, kemudian bendahara menerima dan
menghitung uang sesuai dengan besarnya pembayaraan administrasi, jika uang
Page 8
27
yang diberikan siswa melebihi biaya pembayaran uang kebaliannya diberikan
kepada siswa. Bendahara mencatat sesuai pembayaran yang dilakukan siswa dan
memberi paraf pada kartu administrasi, lalu mengembalikan seiring dengan
pencatatan dikartu administrasi, bendahara melakukan pencatatan pembayaran
pada rekap administrasi. Kemudian bendahara membuat kwitansi sebagai bukti
pembayaran, selanjutnya bendahara mengembalikan kartu SPP dan kwitansi ke
wali murid. Bendahara membuat laporan pembayaran, kemudian bagian
administrasi memberikan laporan tersebut ke ketua yayasan.
3.2.2 Activity Diagram
Gambar III.2. Activity Diagram Pembayaran Administrasi Sekolah
Page 9
28
3.2.3 Dokumen Masukkan
1. Kartu Pembayaran Administrasi
Nama Dokumen : Kartu Pembayaran Administrasi
Fungsi : Sebagai bukti pembayaran administrasi
Sumber : Bendahara
Tujuan : Diserahkan kepada Siswa
Frekuensi : Setiap murid melakukan pembayaran
Media : kartas
Jumlah Rangkap : 2 (dua) Rangkap
Format : Lihat lampiran –A.1
2. Data Siswa
Nama Dokumen : Data Siswa
Fungsi : Sebagai Biodata Siswa
Sumber : Bendahara
Tujuan : Diserahkan kepada Siswa
Frekuensi : Saat Siswa melakukan pendaftaran
Media : kartas
Jumlah Rangkap : 1 (satu) Rangkap
Format : Lihat lampiran –A.2
3.2.4 Dokumen Keluaran
1. Rekap Pembayaran Adminstrasi
Nama Dokumen : Rekap Pembayaran Administrasi
Fungsi : Mengetahui data pembayaran administrasi Siswa
Sumber : Bendahara
Page 10
29
Tujuan : Diserahkan kepada kepala yayasan
Frekuensi : Setiap murid melakukan pembayaran
Media : Kartas
Jumlah Rangkap : 1(Satu) Rangkap
Format : Lihat lampiran –B.1
2. Kwitansi
Nama Dokumen : Kwitansi
Fungsi : Sebagai Bukti Melakukan Pembayaran
Frekuensi : Setiap murid melakukan pembayaran
Sumber : Bendahara
Tujuan : Diserahkan Kepada Siswa
Jumlah Rangkap : 1 (Satu) Rangkap
Format : Lihat lampiran –B.2
3. Laporan Pembayaran Administrasi
Nama Dokumen : Laporan Pembayaran Adminstrasi
Fungsi : Sebagai Data Keseluruhan pembayaran Adninistrasi
Frekuensi : Setiap Bulan
Sumber : Bendahara
Tujuan : Diserahkan Kepada Kepala yayasan
Jumlah Rangkap : 1 (Satu) Rangkap
Format : Lihat lampiran –B.3
3.2.5 Permasalahan Pokok
Dari hasil riset selama di Yayasan Nurussalam Al-Khoir dapat dilihat
penggunaan sistem pengolahan data pembayaran administrasi sekolah yang
Page 11
30
masih menggunakan cara manual, mengakibatkan timbulnya permasalahan antara
lain, tidak akuratnya pencatatan dan pembuatan laporan pembayaran administrasi
sekolah, karena adanya kesalahan dalam menginput data, tercampurnya data
adminstrasi, penyimpanan dokumen administrasi yang tidak tersusun rapi dapat
menyebabkan rusak dan hilangnya dokumen administrasi. Hal tersebut
menyebabkan keterlambatan dalam proses pelaporan kepada pihak yayasan.
3.2.6 Pemecahan Masalah
Dari permasalahan yang ada diatas, agar permasalahan dapat terselesaikan
dengan baik maka usulan pemecahan masalahnya adalah sebagai berikut:
1. Membuat sistem informasi pembayaran administrasi menggunakan sistem yang
sudah terkomputerisasi. Diharapkan perancangan sistem komputerisasi yang
lebih bermanfaat dan efekif bagi yayasan didalam penyusunan dan
mengevaluasi setiap kegiatan yang ada dalam hal pembayaran administrasi
sekolah.
2. Pembuatan laporan-laporan yang nantinya dapat langsung dicetak dari
komputer. Laporan yang dihasilkan pun lebih akurat dan tepat waktu serta
dapat dengan mudah diaksesnya.
3.3 Analisa Kebutuhan Software
Adapun kebutuhan software yang digunakan dalam perancangan web ini
adalah XAMPP merupakan web server yang didalamnya sudah tersedia database
server MySQL dan Java NetBeans. XAMPP merupakan software yang mudah
digunakan dan mendukung instalasi di windows ataupun Linux, keuntungan
lainnya adalah kita bisa mengatur web server yang akan kita gunakan.
Page 12
31
3.3.1 Analisa Kebutuhan
Bagian bendahara dapat masuk ke sistem informasi pembayaran
administrasi. Didalam sistem informasi pembayaran administrasi, Bendahara
dapat mengakses semua menu dalam sistem. Kepala tata usaha dan yayasan
hanya dapat mengakses data laporannya saja.
A. Halaman Admin
A.1 Admin Login
A.2 Admin Mengelola Data Tingkat
A.3 Admin Mengelola Data Tahun Ajaran
A.4 Admin Mengelola Data Kelas
A.5 Admin Mengelola Data Ruang
A.6 Admin Mengelola Data Jenis Pembayaran Lain
A.7 Admin Mengelola Data Siswa
A.8 Admin Mengelola Data Pengguana
A.9 Admin Mengelola Transaksi Pembayaran
A.10 Admin Mengelola Laporan Data Siswa
A.11 Admin Mengelola Laporan Adminstrasi
A.12 Admin Mengelola Laporan Tunggakan SPP
A.13 Admin Mengelola Laporan Tunggakan Uang Gedung
A.14 Admin Logout
B. Halaman Yayasan
B.1 Yayasan Login
B.2 Admin Mengelola Laporan Data Siswa
B.3 Admin Mengelola Laporan Adminstrasi
Page 13
32
B.4 Admin Mengelola Laporan Tunggakan SPP
B.5 Admin Mengelola Laporan Tunggakan Uang Gedung
B.6 Admin Logout
3.3.2 Use Case Diagram
A. Halaman Admin
Gambar III.3. Use Case Diagram Halaman Admin
Tabel III.1
Tabel Deskripsi Halaman Admin
Use Case Narative
Tujuan : Melakukan Login dan masuk kedalam Aplikasi
Adminstrasi Sekolah
Deskripsi : Sistem akan memungkinkan aktor untuk mengakses
Aplikasi Adminstrasi Sekolah
Skenario Utama
Aktor : Admin
Kondisi Awal : Aktor Membuka Aplikasi Administrasi Sekolah
Aksi Aktor Reaksi Sistem
1. Aktor melakukan login
2. Aktor memilih tombol Batal
3. Aktor memilih tombol Data
Tingkat
4. Aktor memilih tombol Data
Sistem akan menampilakan textbox untuk mengisi nama
pengguna dan password.
Sistem akan membatalkan proses dan keluar dari sistem.
Sistem akan menampilkan halaman data tingkat.
Sistem akan menampilkan halaman data tahun ajaran.
Page 14
33
Tahun Ajaran
5. Aktor memilih tombol Data
Kelas
6. Aktor memilih tombol Data
Ruang
7. Aktor memilih tombol Data
Jenis Bayar
8. Aktor memilih tombol Data
Siswa
9. Aktor memilih tombol Data
pengguna
10. Aktor memilih tombol
Transaksi
11. Aktor memilih tombol
Laporan Data Siswa
12. Aktor memilih tombol
Laporan Transaksi
13. Aktor memilih tombol
Laporan Tunggakan Uang
Gedung
14. Aktor memilih tombol
Laporan Tunggakan SPP
15. Aktor memilih tombol
Logout
Sistem akan menampilkan halaman data kelas.
Sistem akan menampilkan halaman data ruang.
Sistem akan menampilkan halaman data jenis bayar.
Sistem akan menampilkan halaman data siswa.
Sistem akan menampilkan halaman data pengguna.
Sistem akan menampilkan halaman transaksi.
Sistem akan menampilkan halaman laporan data siswa.
Sistem akan menampilkan halaman laporan Transaksi.
Sistem akan menampilkan halaman laporan tunggakan
uang gedung.
Sistem akan menampilkan halaman laporan tunggakan
uang gedung.
Sistem akan keluar dari sistem administrasi sekolah.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilakan
seperti yang diinginkan oleh aktor.
B. Halaman Yayasan
Gambar III.4. Use Case Diagram Halaman Yayasan
Page 15
34
Tabel III.2
Tabel Deskripsi Halaman Yayasan
Use Case Narative
Tujuan : Melakukan Login dan masuk kedalam Aplikasi
Adminstrasi Sekolah
Deskripsi : Sistem akan memungkinkan aktor untuk mengakses
Aplikasi Adminstrasi Sekolah
Skenario Utama
Aktor : Yayasan
Kondisi Awal : Aktor Membuka Aplikasi Administrasi Sekolah
Aksi Aktor Reaksi Sistem
1. Aktor melakukan login
2. Aktor memilih tombol Batal
3. Aktor memilih tombol
Laporan Data Siswa
4. Aktor memilih tombol
Laporan Transaksi
5. Aktor memilih tombol
Laporan Tunggakan Uang
Gedung
6. Aktor memilih tombol
Laporan Tunggakan SPP
7. Aktor memilih tombol
Logout
Sistem akan menampilakan textbox untuk mengisi nama
pengguna dan password.
Sistem akan membatalkan proses dan keluar dari sistem.
Sistem akan menampilkan halaman laporan data siswa.
Sistem akan menampilkan halaman laporan Transaksi.
Sistem akan menampilkan halaman laporan tunggakan
uang gedung.
Sistem akan menampilkan halaman laporan tunggakan
uang SPP.
Sistem akan keluar dari sistem administrasi sekolah.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilakan
seperti yang diinginkan oleh aktor.
Page 16
35
3.3.3 Activity Diagram
1. Activity Diagram Menu Log In
Gambar III.5. Activity Diagram Log In
Page 17
36
2. Activity Diagram Menu Data Tingkat
Gambar III.6. Activity Diagram Menu Data Tingkat
Page 18
37
3. Activity Diagram Menu Data Tahun Ajaran
Gambar III.7. Activity Diagram Menu Data Tahun Ajaran
Page 19
38
4. Activity Diagram Menu Data Kelas
Gambar III.8. Activity Diagram Menu Data Kelas
Page 20
39
5. Activity Diagram Menu Data Ruang
Gambar III.9. Activity Diagram Menu Data Ruang
Page 21
40
6. Activity Diagram Menu Data Jenis Pembayaran
Gambar III.10. Activity Diagram Data Jenis Pembayaran
Page 22
41
7. Activity Diagram Menu Data Siswa
Gambar III.11. Activity Diagram Menu Data Siswa
Page 23
42
8. Activity Diagram Menu Data Pengguna
Gambar III.12. Activity Diagram Menu Data Pengguna
Page 24
43
9. Activity Diagram Transaksi Pembayaran
Gambar III.13. Activity Diagram Transaksi
Page 25
44
10. Activity Diagram Laporan
Gambar III.14. Activity Diagram Laporan
Page 26
45
3.4 Desain
3.4.1 Entity Relationship Diagram (ERD)
Jenis
Pembayaran
Jenis
Pembayaran
id_jpid_jp
nm_jpnm_jp Jml_jpJml_jp
Ket_jpKet_jp
Detail bayarDetail bayar
id_thnid_thn
Nominal_sppNominal_sppid_jpid_jp
kd_bsppkd_bspp
Tgl_bsppTgl_bspp
bulanbulan
Kode_bayarKode_bayar
Id_sppId_spp id_siswaid_siswa
pembayaranpembayaran
Id_byrId_byr
Kode_bayarKode_bayar
Tgl_bayarTgl_bayar
kembaliankembalian
Jml_bayarJml_bayar
sub_totalsub_total
SiswaSiswa
Id_siswaId_siswa
nisnis
Nm_siswaNm_siswa
jenkeljenkel
Tgl_lahirTgl_lahir
Tmp_lahirTmp_lahir
Ket_siswaKet_siswa
tlptlp
alamatalamat
Id_tingkatId_tingkat
Id_kelasId_kelas
Id_ruangId_ruang
Id_tahunId_tahun
TingkatTingkat
Id_tingkatId_tingkat
nm_tingkatnm_tingkat
ket_tingkatket_tingkat
KelasKelas
Id_kelasId_kelas
nm_kelasnm_kelas
ket_kelasket_kelas
RuangRuang
nm_ruangnm_ruang
Id_ruangId_ruang Ket_ruangKet_ruang
Tahun
Ajaran
Tahun
Ajaran
nm_thnnm_thn
Id_thnId_thn Ket_thnKet_thn
memilihmemilih
memilihmemilih
BayarBayar
memilikimemiliki
memilikimemiliki
memilikimemiliki
Memiliki Memiliki
id_ruangid_ruang
id_siswaid_siswa
Id_byrId_byr
Id_siswaId_siswa
id_jpid_jp Id_byrId_byr
Id_sppId_spp Id_byrId_byr
Id_kelasId_kelas
Id_siswaId_siswa
Id_tingkatId_tingkat
Id_siswaId_siswa
Id_thnId_thn
Id_siswaId_siswa
Gambar III.15. Entity Relationship Diagram (ERD)
Page 27
46
3.4.2 Logical Record Structure (LRS)
Gambar III.16. Logical Record Structure (LRS)
3.4.3 Spesifikasi File
1. Spesifikasi File Data User
Nama Database : adm_sekolah
Nama File : User
Tipe File : Master file
Akses File : Random
Panjang Record : 177 Karakter
Page 28
47
Field Key : id_user
Tabel III.3.
Spesifikasi File Data User
No Elemen Data Akronim Type Panjang Keterangan
1 Id user id_user Int 11 Primary Key
2 Kode program kode_program Varchar 11
3 Nama lengkap nama_lengkap Varchar 100
4 Username Username Varchar 22
5 Password Password Varchar 22
6 Level Level Varchar 11
2. Spesifikasi File Detail Bayar
Nama Database : adm_sekolah
Nama File : bu_spp
Tipe File : Master File
Akses File : Random
Panjang Record : 86 Karakter
Field Key : id_spp
Tabel III.4.
Spesifikasi File Detail Bayar
No Elemen Data Akronim Type Panjang Keterangan
1 Id spp id_spp Int 7 Primary Key
2 Kode bayar kode_bayar Varchar 20
3 Kode bayar spp kd_bspp Varchar 30
4 Tanggal bayar tgl_bspp Date
5 Id siswa id_siswa Int 3
6 Id jenis pembayaran id_jp Int 3
7 Id tahun id_thn Int 3
8 Bulan Bulan Varchar 20
9 Nominal nominal_spp Double
3. Spesifikasi File Data SPP
Nama Database : adm_sekolah
Nama File : data_spp
Page 29
48
Tipe File : Master File
Akses File : Random
Panjang Record : 65 Karakter
Field Key : id_data
Tabel III.5.
Spesifikasi File Data SPP
No Elemen Data Akronim Type Panjang Keterangan
1 Id data id_data Int 7 Primary Key
2 Nis Nis Varchar 30
3 Id tahun id_thn Int 3
4 Bulan Bulan Varcher 20
5 Status spp stt_spp Varcher 5
4. Spesifikasi File Data Jenis Pembayaran
Nama Database : adm_sekolah
Nama File : m_jp
Tipe File : Master File
Akses File : Random
Panjang Record : 37 Karakter
Field Key : id_jp
Tabel III.6.
Spesifikasi File Data Jenis Pembayaran
No Elemen Data Akronim Type Panjang Keterangan
1 Id jenis pembayaran id_jp Int 7 Primary Key
2 Nama jenis bayar nm_jp Varchar 30
3 Jumlah bayar Jml_jp Double
4 Keterangan ket_jp Text
5. Spesifikasi File Data Jenis Kelas
Nama Database : adm_sekolah
Nama File : m_kelas
Page 30
49
Tipe File : Master File
Akses File : Random
Panjang Record : 17 Karakter
Field Key : id_jp
Tabel III.7.
Spesifikasi File Data Jenis Kelas
No Elemen Data Akronim Type Panjang Keterangan
1 Id kelas id_kelas Int 7 Primary Key
2 Nama kelas nm_kelas Varchar 10
3 Keterangan kelas Ket_kelas Text
6. Spesifikasi File Data Ruang
Nama Database : adm_sekolah
Nama File : m_ruang
Tipe File : Master File
Akses File : Random
Panjang Record : 17 Karakter
Field Key : id_ruang
Tabel III.8.
Spesifikasi File Data Ruang
No Elemen Data Akronim Type Panjang Keterangan
1 Id ruang id_ruang Int 7 Primary Key
2 Nama ruang nm_ruang Varchar 10
3 Keterangan ruang ket_ruang Text
7. Spesifikasi File Data Siswa
Nama Database : adm_sekolah
Nama File : m_siswa
Tipe File : Master File
Akses File : Random
Page 31
50
Panjang Record : 113 Karakter
Field Key : id_siswa
Tabel III.9.
Spesifikasi File Data Siswa
No Elemen Data Akronim Type Panjang Keterangan
1 Id siswa id_siswa Int 7 Primary Key
2 Nis Nis Varchar 30
3 Nama siswa nm_siswa Varchar 30
4 Tempat lahir tmp_lahir Varchar 20
5 Tanggal lahir tgl_lahir Date
6 Jenis kelamin Jenkel Varchar 2
7 Id tingkat id_tingkat Varchar 3
8 Id kelas id_kelas Varchar 3
9 Id ruang id_ruang Varchar 3
10 Id tahun id_tahun Varchar 3
11 Alamat Alamat Text
12 Telepon Tlp Varcharv 12
13 Keterangan siswa ket_siswa Text
8. Spesifikasi File Data Tahun Ajaran
Nama Database : adm_sekolah
Nama File : m_thn
Tipe File : Master File
Akses File : Random
Panjang Record : 17 Karakter
Field Key : id_thn
Tabel III.10.
Spesifikasi File Data Tahun Ajaran
No Elemen Data Akronim Type Panjang Keterangan
1 Id tahun id_ruang Int 7 Primary Key
2 Tahun nm_thn Varchar 10
3 Keterangan tahun ket_thn Text
Page 32
51
9. Spesifikasi File Data Tingkat
Nama Database : adm_sekolah
Nama File : m_tingkat
Tipe File : Master File
Akses File : Random
Panjang Record : 17 Karakter
Field Key : id_tingkat
Tabel III.11.
Spesifikasi File Data Tingkat
No Elemen Data Akronim Type Panjang Keterangan
1 Id tingkat id_tingkat Int 7 Primary Key
2 Nama tingkat nm_tingkat Varchar 10
3 Keterangan tingkat ket_ruang Text
10. Spesifikasi File Data Pembayaran
Nama Database : adm_sekolah
Nama File : Pembayaran
Tipe File : Transaksi
Akses File : Random
Panjang Record : 27 Karakter
Field Key : id_byr
Tabel III.12.
Spesifikasi File Data Pembayaran
No Elemen Data Akronim Type Panjang Keterangan
1 Id bayar id_byr Int 7 Primary Key
2 Kode baya kode_bayar Varchar 20
3 Tanggal bayar tgl_byr Date
4 Sub total sub_total Double
5 Jumlah bayar jml_bayar Double
6 Kembalian Kembalian Double
Page 33
52
3.4.4 Sequence Diagram
Gambar III.17. Sequence Diagram Transaksi
Page 34
53
3.4.5 Deployment Diagram
Gambar III.18. Deployment Diagram
3.4.6 User Interface
1. Form Login
Form login merupakan tampilan awal, ketika pertama kali program dijalankan.
Sebelum masuk form utama, user atau pengguna dihuruskan untuk login
dengan mengisikan username dan password
Gambar III.19. User Interface Log In
Page 35
54
2. Tampilan Menu Utama
Pada form utama terdapat beberapa menu yaitu tab file terdapat data tingkat,
data tahun ajaran, data kelas, data ruang, data jenis pembayaran data siswa dan
data pengguna. Pada tab transaksi terdapat transaksi pembayaran sekolah.
Pada tab laporan terdapat laporan data siswa, laporan transaksi, laporan
tunggakan uang gedung, laporan tunggakan SPP
Gambar III.20. User Interface Menu Utama
Page 36
55
3. Form Data Tingkatan
Form ini digunakan untuk menginput data tingkatan sekolah.
Gambar III.21. User Interface Master Tingkat
4. Form Data Tahun Ajaran
Form ini digunakan untuk menginput data tahun ajaran.
Gambar III.22. User Interface Master Tahun Ajaran
Page 37
56
5. Form Data Kelas
Form ini digunakan untuk menginput kelas.
Gambar III.23. User Interface Master Kela
6. Form Data Ruang
Form ini digunakan untuk menginput data ruang siswa.
Gambar III.24. User Interface Master Ruan
Page 38
57
7. Form Data Jenis Bayar
Pada form dapat digunakan untuk menginput jenis pembayaran.
Gambar III.25. User Interface Data Jenis Pembayaran
8. Form Data Siswa
Form ini digunakan untuk menginputkan data siswa.
Gambar III.26. User Interface Data Siswa
Page 39
58
9. Form users
Pada form ini menampilakan menu kelola data user yang bertujuan untuk
keamanan pada sistem agar sistem tidak digunakan oleh siapa saja.
Gambar III.27. User Interface User
10. Form Pembayaran
Form ini digunakan untuk melakukan transaksi pembayaran administrasi
sekolah.
Gambar III.28. User Interface Pembayaran
Page 40
59
11. Tampilan Kwitansi Pembayaran
Form ini menampilkan form kwitansi pembayaran yang bertujuan untuk
membuktikan bahwa siswa telah melakukan pembayaran
Gambar III.29. User Interface Kwitansi
12. Tampilan Laporan Data Siswa
Form ini digunakan untuk melihat laporan data siswa yang ada di Yayasan
Nurussalam Al – Khoir Sukoharjo
Gambar III.30. User Interface Laporan Data Siswa
Page 41
60
13. Tampilan Laporan Pembayaran Siswa
Form ini digunakan untuk melihat laporan pembayaran siswa yang ada di
Yayasan Nurussalam Al – Khoir Sukoharjo
Gambar III.31. User Interface Laporan Pembayaran Siswa
14. Tampilan Laporan Siswa yang Belum Membayar Uang Gedung
Form ini digunakan untuk melihat Siswa yang memiliki tunggakan uang
gedung yang ada di Yayasan Nurussalam Al – Khoir Sukoharjo
Gambar III.32. User Interface Laporan Tunggakan Uang Gedung
Page 42
61
15. Tampilan Laporan Tunggakan SPP Siswa
Form ini digunakan untuk melihat Siswa yang memiliki tunggakan uang
gedung yang ada di Yayasan Nurussalam Al – Khoir Sukoharjo
Gambar III.33. User Interface Laporan Tunggakan SPP
3.5 Implementasi
3.5.1 Code Generation
package bib.Tampilan; import bib.KonekDB.koneksi; import bib.Class.jTable_RenderingKanan; import bib.Class.jTable_RenderingTengah; import bib.Class.lebartabel; import java.awt.Color; import java.awt.Dimension; import static java.awt.Font.BOLD; import java.awt.Toolkit; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.text.DateFormat; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.Date; import javax.swing.JOptionPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.JTableHeader; import javax.swing.table.TableCellRenderer; public final class USpp_Input extends javax.swing.JDialog { ResultSet rsdata = null; DefaultTableModel tabModel; DefaultTableModel tabModel2; public class Tanggal {
Page 43
62
private String getTahun() { DateFormat dateFormat = new SimpleDateFormat("yyyy"); java.util.Date date = new java.util.Date(); return dateFormat.format(date); } private String getTanggal() { DateFormat dateFormat = new SimpleDateFormat("yy/MM/dd"); java.util.Date date = new java.util.Date(); return dateFormat.format(date); } private String getWaktu() { DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); java.util.Date date = new java.util.Date(); return dateFormat.format(date); } private String getHari() { DateFormat dateFormat = new SimpleDateFormat("EEEE"); java.util.Date date = new java.util.Date(); return dateFormat.format(date); } } } } public USpp b1; public TableCellRenderer kanan = new jTable_RenderingKanan(); public TableCellRenderer tengah = new jTable_RenderingTengah(); public String nis, nm_siswa, id_siswa; public void dataTerpilih2() { // Faktur_Show_Samsat jpt1 = new Faktur_Show_Samsat(null, true); jTextField2.setText(id_siswa); jTextField3.setText(nis); jTextField5.setText(nm_siswa); jComboBox1.requestFocus(); } public USpp_Input(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); makeCenter(); ComboJenisBayar(); ComboTahun(); CekTmpKode(); } void TampilTabelDetail() { try { // set Judul Tabel Connection c = koneksi.getkoneksi(); Statement stm; stm = c.createStatement(); Object[] judul_kolom = { "Kode Bayar", "Tgl Bayar", "Jenis Bayar", "NIS", "Nama Siswa", "Tahun", "Bulan", "Nominal" }; tabModel2 = new DefaultTableModel(null, judul_kolom); jTable2.setModel(tabModel2); JTableHeader tabelHeader = jTable2.getTableHeader(); tabelHeader.setBackground(Color.white); tabelHeader.setForeground(Color.BLACK); tabelHeader.setFont(new java.awt.Font("Arial", BOLD, 12)); //Set Isi Tabel tabModel2.getDataVector().removeAllElements(); rsdata = stm.executeQuery("SELECT * FROM bu_spp " + "INNER JOIN m_siswa ON bu_spp.id_siswa = m_siswa.id_siswa " + "INNER JOIN m_thn ON bu_spp.id_thn = m_thn.id_thn " + "INNER JOIN m_jp ON bu_spp.id_jp = m_jp.id_jp " + "WHERE bu_spp.kode_bayar='" + jTextField7.getText() + "'"); while (rsdata.next()) { Object[] data = { rsdata.getString("kd_bspp"),//1 rsdata.getString("tgl_bspp"),//1
Page 44
63
rsdata.getString("nm_jp"),//1 rsdata.getString("nis"),//2 rsdata.getString("nm_siswa"),//3 rsdata.getString("nm_thn"),//4 rsdata.getString("bulan"),//5 rsdata.getString("nominal_spp"),};//7 tabModel2.addRow(data); // set lebar kolom this.jTable2.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); lebartabel tca = new lebartabel(jTable2); tca.adjustColumns(); jTable2.getColumnModel().getColumn(0).setCellRenderer(tengah); } } catch (Exception e) { JOptionPane.showMessageDialog(null, "Error." + e); } } void ComboJenisBayar() { try { Connection c = koneksi.getkoneksi(); String query = "SELECT nm_jp FROM m_jp ORDER BY id_jp ASC"; PreparedStatement prestat = c.prepareStatement(query); ResultSet rs = prestat.executeQuery(); while (rs.next()) { jComboBox3.addItem(rs.getString("nm_jp")); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, "TIDAK DAPAT MENAMPILKAN LIST" + ex, "ERROR", JOptionPane.ERROR_MESSAGE); } } void ComboTahun() { try { Connection c = koneksi.getkoneksi(); String query = "SELECT nm_thn FROM m_thn ORDER BY nm_thn ASC"; PreparedStatement prestat = c.prepareStatement(query); ResultSet rs = prestat.executeQuery(); while (rs.next()) { jComboBox1.addItem(rs.getString("nm_thn")); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, "TIDAK DAPAT MENAMPILKAN LIST" + ex, "ERROR", JOptionPane.ERROR_MESSAGE); } } void TampilTabel() { try { // set Judul Tabel Connection c = koneksi.getkoneksi(); Statement stm; stm = c.createStatement(); Object[] judul_kolom = { "Tahun", "Bulan" }; tabModel = new DefaultTableModel(null, judul_kolom); jTable1.setModel(tabModel); JTableHeader tabelHeader = jTable1.getTableHeader(); tabelHeader.setBackground(Color.white); tabelHeader.setForeground(Color.BLACK); tabelHeader.setFont(new java.awt.Font("Arial", BOLD, 12)); //Set Isi Tabel tabModel.getDataVector().removeAllElements(); rsdata = stm.executeQuery("SELECT * FROM data_spp " + "INNER JOIN m_thn ON data_spp.id_thn = m_thn.id_thn " + "WHERE data_spp.nis='" + jTextField3.getText() + "'AND data_spp.stt_spp='" + "belum" + "'AND data_spp.id_thn='" + jTextField4.getText() + "' " + "ORDER BY data_spp.id_data ASC "); while (rsdata.next()) { Object[] data = { rsdata.getString("nm_thn"), rsdata.getString("bln"),};//10 tabModel.addRow(data); // set lebar kolom this.jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); lebartabel tca = new lebartabel(jTable1); tca.adjustColumns(); } } catch (Exception e) {
Page 45
64
JOptionPane.showMessageDialog(null, "Error." + e); } } void CekTmpKode() { try { Connection c = koneksi.getkoneksi(); Statement stm1 = c.createStatement(); Statement stm2 = c.createStatement(); ResultSet rsdata1 = stm1.executeQuery("SELECT * FROM tmp_kode "); if (rsdata1.next()) { jTextField7.setText(rsdata1.getString("kode")); stm2.executeUpdate("DELETE FROM tmp_kode "); TampilDataForm(); TampilTabel(); TampilTabelDetail(); SubTotal(); // Proses.setText("EDIT"); } else { CekKode(); CekKode2(); TampilTabel(); TampilTabelDetail(); SubTotal(); Hapus.setEnabled(false); Date date = new Date(); jDateChooser2.setDate(date); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Error1." + ex); } } void TampilDataForm() { try { Connection c = koneksi.getkoneksi(); Statement stm1 = c.createStatement(); ResultSet rsdata1 = stm1.executeQuery("SELECT * FROM pembayaran " + "WHERE kode_bayar='" + jTextField7.getText() + "'"); if (rsdata1.next()) { jTextField13.setText(rsdata1.getString("sub_total")); jTextField11.setText(rsdata1.getString("jml_bayar")); jTextField12.setText(rsdata1.getString("kembalian")); } else { } } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Error1." + ex); } } void TampilDataFormKlikTabel() { String kdd = (tabModel2.getValueAt(jTable2.getSelectedRow(), 0) + ""); try { Connection c = koneksi.getkoneksi(); Statement stm1 = c.createStatement(); ResultSet rsdata1 = stm1.executeQuery("SELECT * FROM bu_spp " + "INNER JOIN m_siswa ON bu_spp.id_siswa = m_siswa.id_siswa " + "INNER JOIN m_jp ON bu_spp.id_jp = m_jp.id_jp " + "INNER JOIN m_thn ON bu_spp.id_thn = m_thn.id_thn " + "WHERE bu_spp.kd_bspp='" + kdd + "'"); if (rsdata1.next()) { jTextField1.setText(rsdata1.getString("kd_bspp")); jTextField2.setText(rsdata1.getString("id_siswa")); jTextField4.setText(rsdata1.getString("id_thn")); jTextField6.setText(rsdata1.getString("id_jp")); jDateChooser2.setDate(rsdata1.getDate("tgl_bspp")); jTextField3.setText(rsdata1.getString("nis")); jTextField5.setText(rsdata1.getString("nm_siswa")); jComboBox3.setSelectedItem(rsdata1.getString("nm_jp")); jComboBox1.setSelectedItem(rsdata1.getString("nm_thn")); jComboBox2.setSelectedItem(rsdata1.getString("bulan")); jTextField10.setText(rsdata1.getString("nominal_spp")); // jTextArea1.setText(rsdata1.getString("ket_spp")); } else { }
Page 46
65
} catch (Exception ex) { JOptionPane.showMessageDialog(null, "Error1." + ex); } } void RubahJadiId() { try { Connection c = koneksi.getkoneksi(); Statement stm1 = c.createStatement(); Statement stm2 = c.createStatement(); Statement stm3 = c.createStatement(); ResultSet rsdata1 = stm1.executeQuery("SELECT * FROM m_siswa WHERE nis='" + jTextField3.getText() + "'"); if (rsdata1.next()) { jTextField2.setText(rsdata1.getString("id_siswa")); ResultSet rsdata2 = stm2.executeQuery("SELECT * FROM m_thn WHERE nm_thn='" + jComboBox1.getSelectedItem() + "'"); if (rsdata2.next()) { jTextField4.setText(rsdata2.getString("id_thn")); ResultSet rsdata3 = stm3.executeQuery("SELECT * FROM m_jp WHERE nm_jp='" + jComboBox3.getSelectedItem() + "'"); if (rsdata3.next()) { jTextField6.setText(rsdata3.getString("id_jp")); simpan_edit(); } } } } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Error." + ex); } } void simpan_edit() { if (Proses.getText().equals("SIMPAN DETAIL")) { Simpan(); } else { Edit(); } } void KosongkanForm() { jTextField1.setText(""); //jTextField3.setText(""); //jTextField5.setText(""); jTextField10.setText("0"); // jTextArea1.setText(""); jComboBox3.setSelectedItem("Pilih"); jComboBox1.setSelectedItem("Pilih"); jComboBox2.setSelectedItem("Pilih"); jTextField2.setText(""); jTextField6.setText(""); jTextField4.setText(""); } void Simpan() { try { String tampilan = "yyyy-MM-dd"; SimpleDateFormat fm = new SimpleDateFormat(tampilan); String tgl_bspp = String.valueOf(fm.format(jDateChooser2.getDate())); Connection c = koneksi.getkoneksi(); Statement stm = c.createStatement(); Statement stm2 = c.createStatement(); stm.executeUpdate("INSERT INTO bu_spp SET kode_bayar='" + jTextField7.getText() + "'," + "kd_bspp='" + jTextField1.getText() + "'," + "tgl_bspp='" + tgl_bspp + "'," + "id_siswa='" + jTextField2.getText() + "'," + "id_jp='" + jTextField6.getText() + "'," + "id_thn='" + jTextField4.getText() + "'," + "bulan='" + jComboBox2.getSelectedItem() + "'," + "nominal_spp='" + jTextField10.getText() + "'," + "ket_spp='" + "" + "'"); if (jTextField6.getText().equals("1")) { //UANG GEDUNG stm2.executeUpdate("UPDATE m_siswa SET stt_ug='" + "lunas" + "'WHERE id_siswa='" + jTextField2.getText() + "'"); } else if (jTextField6.getText().equals("2")) { //SPP
Page 47
66
stm2.executeUpdate("UPDATE data_spp SET stt_spp='" + "lunas" + "'WHERE nis='" + jTextField3.getText() + "'AND id_thn='" + jTextField4.getText() + "'AND bln='" + jComboBox2.getSelectedItem() + "'"); } } TampilTabelDetail(); SubTotal(); KosongkanForm(); CekKode(); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Error." + e); } } void Edit() { try { String tampilan = "yyyy-MM-dd"; SimpleDateFormat fm = new SimpleDateFormat(tampilan); String tgl_bspp = String.valueOf(fm.format(jDateChooser2.getDate())); Connection c = koneksi.getkoneksi(); Statement stm = c.createStatement(); stm.executeUpdate("UPDATE bu_spp SET nominal_spp='" + jTextField10.getText() + "'WHERE kd_bspp='" + jTextField1.getText() + "'"); TampilTabelDetail(); SubTotal(); KosongkanForm(); CekKode(); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Error." + e); } } void HitungBayar() { try { String dpp = jTextField11.getText(); String ppn = jTextField13.getText(); double nilai1 = Double.parseDouble(dpp); double nilai2 = Double.parseDouble(ppn); DecimalFormat df = new DecimalFormat("#.##"); this.jTextField12.setText(df.format(nilai1 - nilai2)); } catch (Exception e) { } } void SubTotal() { try { Connection c = koneksi.getkoneksi(); Statement stm2 = c.createStatement(); ResultSet rsdata2 = stm2.executeQuery("SELECT SUM(nominal_spp) as nmnl FROM bu_spp WHERE kode_bayar='" + jTextField7.getText() + "'"); if (rsdata2.next()) { jTextField13.setText(rsdata2.getString("nmnl")); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Error." + ex); } } private void ProsesActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if (jTextField1.getText().equals("")) { JOptionPane.showMessageDialog(null, "Anda belum memasukan Kode"); jTextField1.requestFocus(); } else if (jDateChooser2.getDate() == null) { JOptionPane.showMessageDialog(null, "Anda belum memasukan tanggal Bayar"); jDateChooser2.requestFocus(); } else if (jTextField3.getText().equals("")) { JOptionPane.showMessageDialog(null, "Anda belum memasukan NIS"); jTextField3.requestFocus(); } else if (jComboBox1.getSelectedItem().equals("Pilih")) { JOptionPane.showMessageDialog(null, "Anda belum memilih tahun"); jComboBox1.requestFocus(); } else if (jComboBox2.getSelectedItem().equals("Pilih")) { JOptionPane.showMessageDialog(null, "Anda belum memilih bulan"); jComboBox2.requestFocus();
Page 48
67
} else if (jComboBox3.getSelectedItem().equals("Pilih")) { JOptionPane.showMessageDialog(null, "Anda belum memilih Jenis bayar"); jComboBox3.requestFocus(); } else { int ok = JOptionPane.showConfirmDialog(null, "Proses ?", "Konfirmasi", JOptionPane.YES_NO_OPTION); if (ok == 0) { RubahJadiId(); } else { } } } } private void HapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int ok = JOptionPane.showConfirmDialog(null, "Hapus Data ?", "Konfirmasi", JOptionPane.YES_NO_OPTION); if (ok == 0) { HapusTransaksi(); } } private void KembaliActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: b1.dataTerpilih1(); this.dispose(); } private void jTextField3KeyTyped(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if (jTextField3.getText().length() == 30) { evt.consume(); } } private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if (jTextField1.getText().length() == 30) { evt.consume(); } } private void jTextField5KeyTyped(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if (jTextField5.getText().length() == 30) { evt.consume(); } } private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: USpp_Input_ListSiswa satu = new USpp_Input_ListSiswa(null, true); satu.a2 = this; satu.setVisible(true); } private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if (jTextField6.getText().equals("2")) { try { Connection c = koneksi.getkoneksi(); Statement stm2 = c.createStatement(); ResultSet rsdata2 = stm2.executeQuery("SELECT * FROM m_thn WHERE nm_thn='" + jComboBox1.getSelectedItem() + "'"); if (rsdata2.next()) { jTextField4.setText(rsdata2.getString("id_thn")); TampilTabel(); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Error." + ex); } } else { try { Connection c = koneksi.getkoneksi(); Statement stm2 = c.createStatement(); ResultSet rsdata2 = stm2.executeQuery("SELECT * FROM m_thn WHERE nm_thn='" + jComboBox1.getSelectedItem() + "'"); if (rsdata2.next()) { jTextField4.setText(rsdata2.getString("id_thn")); //TampilTabel();
Page 49
68
} } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Error." + ex); } } } private void jComboBox3ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try { Connection c = koneksi.getkoneksi(); Statement stm2 = c.createStatement(); ResultSet rsdata2 = stm2.executeQuery("SELECT * FROM m_jp WHERE nm_jp='" + jComboBox3.getSelectedItem() + "'"); if (rsdata2.next()) { jTextField6.setText(rsdata2.getString("id_jp")); jTextField10.setText(rsdata2.getString("jml_jp")); jTextField11.requestFocus(); if (jTextField6.getText().equals("2")) { jComboBox2.setEnabled(true); } else { jComboBox2.setEnabled(false); } } } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Error." + ex); } } private void jTextField11KeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: HitungBayar(); } private void TrxSelesaiActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try { String tampilan = "yyyy-MM-dd"; SimpleDateFormat fm = new SimpleDateFormat(tampilan); String tgl_bspp = String.valueOf(fm.format(jDateChooser2.getDate())); Connection c = koneksi.getkoneksi(); Statement stm = c.createStatement(); Statement stm2 = c.createStatement(); Statement stm3 = c.createStatement(); ResultSet rsdata3 = stm3.executeQuery("SELECT * FROM pembayaran WHERE kode_bayar='" + jTextField7.getText() + "' "); if (rsdata3.next()) { stm2.executeUpdate("UPDATE pembayaran SET tgl_bayar='" + tgl_bspp + "'," + "sub_total='" + jTextField13.getText() + "'," + "jml_bayar='" + jTextField11.getText() + "'," + "kembalian='" + jTextField12.getText() + "'WHERE kode_bayar='" + jTextField7.getText() + "'"); } else { stm.executeUpdate("INSERT INTO pembayaran SET kode_bayar='" + jTextField7.getText() + "'," + "tgl_bayar='" + tgl_bspp + "'," + "sub_total='" + jTextField13.getText() + "'," + "jml_bayar='" + jTextField11.getText() + "'," + "kembalian='" + jTextField12.getText() + "'"); } } catch (Exception e) { JOptionPane.showMessageDialog(null, "Error." + e); } b1.dataTerpilih1(); this.dispose(); } private void jTextField7KeyTyped(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void Hapus1ActionPerformed(java.awt.event.ActionEvent evt) {
Page 50
69
// TODO add your handling code here: int ok = JOptionPane.showConfirmDialog(null, "Hapus Data ?", "Konfirmasi", JOptionPane.YES_NO_OPTION); if (ok == 0) { try { Connection c = koneksi.getkoneksi(); Statement stm1 = c.createStatement(); Statement stm2 = c.createStatement(); Statement stm3 = c.createStatement(); Statement stm4 = c.createStatement(); Statement stm5 = c.createStatement(); ResultSet rsdata3 = stm3.executeQuery("SELECT * FROM m_thn WHERE nm_thn='" + jComboBox1.getSelectedItem() + "'"); if (rsdata3.next()) { jTextField4.setText(rsdata3.getString("id_thn")); ResultSet rsdata4 = stm4.executeQuery("SELECT * FROM m_siswa WHERE nis='" + jTextField3.getText() + "'"); if (rsdata4.next()) { jTextField2.setText(rsdata4.getString("id_siswa")); ResultSet rsdata5 = stm5.executeQuery("SELECT * FROM m_jp WHERE nm_jp='" + jComboBox3.getSelectedItem() + "'"); if (rsdata5.next()) { jTextField6.setText(rsdata5.getString("id_jp")); if (jTextField6.getText().equals("1")) { stm1.executeUpdate("DELETE FROM bu_spp WHERE kd_bspp='" + jTextField1.getText() + "'"); stm2.executeUpdate("UPDATE m_siswa SET stt_ug='" + "belum" + "'WHERE id_siswa='" + jTextField3.getText() + "'"); TampilTabelDetail(); SubTotal(); KosongkanForm(); CekKode();} else if (jTextField6.getText().equals("2")) { } else if (jTextField6.getText().equals("2")) { stm1.executeUpdate("DELETE FROM bu_spp WHERE kd_bspp='" + jTextField1.getText() + "'"); stm2.executeUpdate("UPDATE data_spp SET stt_spp='" + "belum" + "'WHERE nis='" + jTextField3.getText() + "'AND id_thn='" + jTextField4.getText() + "'AND bln='" + jComboBox2.getSelectedItem() + "' "); TampilTabelDetail(); SubTotal(); KosongkanForm(); CekKode(); } else { stm1.executeUpdate("DELETE FROM bu_spp WHERE kd_bspp='" + jTextField1.getText() + "'"); TampilTabelDetail(); SubTotal(); KosongkanForm(); CekKode(); } } } } } catch (Exception e) { e.printStackTrace(); } } } private void jTable2MouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: TampilDataFormKlikTabel(); } public static void main(String args[]) { /* Create and display the dialog */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { USpp_Input dialog = new USpp_Input(new javax.swing.JFrame(), true); dialog.addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent e) {
Page 51
70
System.exit(0); } }); dialog.setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton Hapus; private javax.swing.JButton Hapus1; private javax.swing.JButton Kembali; private javax.swing.JButton Proses; private javax.swing.JButton TrxSelesai; private javax.swing.JButton jButton1; private javax.swing.JComboBox jComboBox1; private javax.swing.JComboBox jComboBox2; private javax.swing.JComboBox jComboBox3; private com.toedter.calendar.JDateChooser jDateChooser2; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel18; private javax.swing.JLabel jLabel19; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel20; private javax.swing.JLabel jLabel21; private javax.swing.JLabel jLabel22; private javax.swing.JLabel jLabel23; private javax.swing.JLabel jLabel24; private javax.swing.JLabel jLabel25; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel5; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JTable jTable1; private javax.swing.JTable jTable2; private javax.swing.JTextField jTextField1; private bib.Class.ClassMataUang jTextField10; private bib.Class.ClassMataUang jTextField11; private bib.Class.ClassMataUang jTextField12; private bib.Class.ClassMataUang jTextField13; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; private javax.swing.JTextField jTextField4; private javax.swing.JTextField jTextField5; private javax.swing.JTextField jTextField6; private javax.swing.JTextField jTextField7; // End of variables declaration void makeCenter() { Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = this.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); } void CekKode() { KodeOtomatis(); jTextField1.setText("PSPP-" + jTextField1.getText() + ""); jButton1.requestFocus(); } void KodeOtomatis() { Tanggal tgl = new Tanggal(); String thn_sekarang = (tgl.getTanggal()); try { Connection c = koneksi.getkoneksi(); Statement stm = c.createStatement(); ResultSet rsdata = stm.executeQuery("SELECT * FROM bu_spp ORDER BY id_spp DESC"); if (rsdata.next()) { String id_divisi = (rsdata.getString("id_spp")); double nilai1 = Double.parseDouble(id_divisi); DecimalFormat df = new DecimalFormat("#.##");
Page 52
71
this.jTextField1.setText(df.format(nilai1 + 1)); PaketUbahKode(); jTextField1.setText("" + thn_sekarang + "" + jTextField1.getText() + ""); String n1 = jTextField1.getText(); String hsl = n1.replace("/", ""); jTextField1.setText(hsl); } else { jTextField1.setText("1"); PaketUbahKode(); jTextField1.setText("" + thn_sekarang + "" + jTextField1.getText() + ""); String n1 = jTextField1.getText(); String hsl = n1.replace("/", ""); jTextField1.setText(hsl); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, "QUERY ERROR" + ex, "ERROR", JOptionPane.ERROR_MESSAGE); } } void SimpanUbahKode() { try { Connection c = koneksi.getkoneksi(); Statement stm = c.createStatement(); stm.executeUpdate("INSERT INTO ubah_kode SET kode='" + jTextField1.getText() + "'"); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Error." + e); } } void TampilUbahKode() { try { Connection c = koneksi.getkoneksi(); Statement stm = c.createStatement(); Statement stm1 = c.createStatement(); ResultSet rsdata = stm.executeQuery("SELECT * FROM ubah_kode"); if (rsdata.next()) { jTextField1.setText(rsdata.getString("kode")); stm1.executeUpdate("DELETE FROM ubah_kode"); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, "QUERY ERROR" + ex, "ERROR", JOptionPane.ERROR_MESSAGE); } } void PaketUbahKode() { SimpanUbahKode(); TampilUbahKode(); } void CekKode2() { KodeOtomatis2(); jTextField7.setText("NB-" + jTextField7.getText() + ""); jButton1.requestFocus(); } void KodeOtomatis2() { try { Connection c = koneksi.getkoneksi(); Statement stm = c.createStatement(); ResultSet rsdata = stm.executeQuery("SELECT * FROM pembayaran ORDER BY id_byr DESC"); if (rsdata.next()) { String id_divisi = (rsdata.getString("id_byr")); double nilai1 = Double.parseDouble(id_divisi); DecimalFormat df = new DecimalFormat("#.##"); this.jTextField7.setText(df.format(nilai1 + 1)); PaketUbahKode2(); } else { jTextField7.setText("1"); PaketUbahKode2(); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, "QUERY ERROR" + ex, "ERROR", JOptionPane.ERROR_MESSAGE);
Page 53
72
} } void SimpanUbahKode2() { try { Connection c = koneksi.getkoneksi(); Statement stm = c.createStatement(); stm.executeUpdate("INSERT INTO ubah_kode SET kode='" + jTextField7.getText() + "'"); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Error." + e); } } void TampilUbahKode2() { try { Connection c = koneksi.getkoneksi(); Statement stm = c.createStatement(); Statement stm1 = c.createStatement(); ResultSet rsdata = stm.executeQuery("SELECT * FROM ubah_kode"); if (rsdata.next()) { jTextField7.setText(rsdata.getString("kode")); stm1.executeUpdate("DELETE FROM ubah_kode"); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, "QUERY ERROR" + ex, "ERROR", JOptionPane.ERROR_MESSAGE); } } void PaketUbahKode2() { SimpanUbahKode2(); TampilUbahKode2(); } void HapusTransaksi() { try { Connection c = koneksi.getkoneksi(); Statement stm1 = c.createStatement(); Statement stm2 = c.createStatement(); Statement stm3 = c.createStatement(); Statement stm6 = c.createStatement(); ResultSet rsdata6 = stm6.executeQuery("SELECT * FROM bu_spp " + "INNER JOIN m_siswa ON bu_spp.id_siswa = m_siswa.id_siswa " + "WHERE bu_spp.kode_bayar='" + jTextField7.getText() + "'"); while (rsdata6.next()) { String kd_bspp = (rsdata6.getString("kd_bspp")); String id_thn = (rsdata6.getString("id_thn")); String id_siswa = (rsdata6.getString("id_siswa")); String nis = (rsdata6.getString("nis")); String bulan = (rsdata6.getString("bulan")); String id_jp = (rsdata6.getString("id_jp")); if (id_jp.equals("1")) { stm1.executeUpdate("DELETE FROM bu_spp WHERE kd_bspp='" + kd_bspp + "'"); stm2.executeUpdate("UPDATE m_siswa SET stt_ug='" + "belum" + "'WHERE id_siswa='" + id_siswa + "'"); } else if (id_jp.equals("2")) { stm1.executeUpdate("DELETE FROM bu_spp WHERE kd_bspp='" + kd_bspp + "'"); stm2.executeUpdate("UPDATE data_spp SET stt_spp='" + "belum" + "'WHERE nis='" + nis + "'AND id_thn='" + id_thn + "'AND bln='" + bulan + "' "); } else { stm1.executeUpdate("DELETE FROM bu_spp WHERE kd_bspp='" + kd_bspp + "'"); } } stm3.executeUpdate("DELETE FROM pembayaran WHERE kode_bayar='" + jTextField7.getText() + "'"); b1.dataTerpilih1(); this.dispose(); } catch (Exception e) {
Page 54
73
e.printStackTrace(); } } }
3.5.2 Blackbox Testing
Tabel III.13.
Hasil Pengujian Black Box Testing Form Menambah User
No
.
Skenario
pengujian
Test case Hasil yang
diharapkan
Hasil
pengujian
Kesimpulan
1. Nama
Admin,
Username,
Password
dan level,
tidak diisi
kemudian
klik tombol
“Simpan”
Nama lengkap:
(kosong)
Username :
(kosong)
Password:
(kosong)
Level : (kosong)
Sistem akan
menolak akses
dan
menampilkan
pesan “Data
belum
lengkap”
Sesuai
harapan
Valid
2. Mengetikkan
Nama
langkap,
username,
Password
dan level
dengan data
yang benar
kemudian
klik tombol
“Simpan”
Nama lengkap:
Ayu (benar)
Username :
admin1 (benar)
Password: 123
(benar)
Level :
bendahar
(benar)
Sistem akan
menerima
akses input
data user dan
menampilakan
pesan “
Simpan
sebagai data
baru? Ya atau
tidak”
Sesuai
harapan
Valid
3. Sistem dapat
melakukan
proses edit
data user
pada
program
dengan
melilih data
yang akan di
edit,
serikutnya
klik tobol
“edit”
melakukan edit
data
Sistem akan
menampilkan
proses editing,
klik edit maka
akan
menampilkan
data pengguna
yang
diinginkan dan
sistem akan
menampilkan
“Edit data ini ?
ya atau tidak ”
Sesuai
harapan
Valid
Page 55
74
4. Sistem dapat
melakukan
proses hapus
data
pengguna
pada
program
dengan
mengklik
tombol
“hapus”
Melakukan
hapus data
sistem akan
menampilkan
data yang akan
dihapus dan
sistem akan
menampilkan
“Hapus data
ini? Ya atau
tidak”
Sesuai
harapan
Valid
3.5.3 Spesifikasi Hardware dan Software
Tabel III.14.
Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Microsoft windows 7
Processor Intel® Core™ i3 2330M CPU @ 2.20 GHz
(4CPUs), 2.2 GHz
RAM 2 GB
Harddisk 500 GB
Monitor 14.0 HD LED LCD
Keyboard 108 keys
Printer Printer Inkjet
mouse Standard
Software Kebutuhan menjalankan aplikasi secara local :
Bahasa script programming : Java 8.1
Web Server : PHP
DBSM : MySQL