sistem informasi akademik dan administrasi lembaga...
Post on 15-Nov-2020
7 Views
Preview:
TRANSCRIPT
i
SISTEM INFORMASI AKADEMIK dan ADMINISTRASI
LEMBAGA BIMBINGAN BELAJAR
Studi Kasus ”NEUTRON” Yogyakarta
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
./0
0
Disusun Oleh :
Surya Astana
NIM : 055314103
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS dan TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2009
ii
ACADEMIC and ADMINISTRATION INFORMATION SYSTEM
Of GUIDANCE LEARNING AGENCY
Case Study on ”NEUTRON” Yogyakarta
A THESIS
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Teknik Degree
In Informatics Engineering Department
./0
0
Created By :
Surya Astana
NIM : 055314103
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2009
iii
iv
v
HALAMAN MOTTO
”USAHA DAN DOA, TIDAK BISA TERPISAHKAN”
”KEGAGALAN MERUPAKAN PENGALAMAN,
DAN TERKADANG PENGALAMAN SANGAT MAHAL HARGANYA
TAPI PENGALAMAN ADALAH GURU TERBAIK”
vi
PERNYATAAN KEASLIAN KARYA
Saya menyatakan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat
karya orang lain kecuali yang telah disebutkan dalam kutipan atau daftar
pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 02 November 2009
Penulis,
Surya Astana
vii
ABSTRAK
Pencatatan data siswa, data nilai, dan data administrasi siswa menjadi hal
pokok di Lembaga Bimbingan Belajar Neutron Yogyakarta. Pemrosesan data-data
siswa yang masih menggunakan spreadsheet menyebabkan efisiensi waktu dan
kinerja masih kurang dalam hal pencatatan, pemrosesan dan pencarian data akademik
(nilai) dan administrasi (pembayaran). Siswa juga tidak bisa secara mandiri melihat
data nilai maupun adminisrasinya. Dari latar belakang itu, dengan dibuatnya sistem
ini diharapkan dapat membantu pegawai dalam pengolahan nilai, pendataan siswa,
dan pengolahan data pembayaran, serta sebagai sarana informasi siswa untuk
mengetahui data-data nilai dan pembayaran.
Sistem ini dibuat dengan menggunakan metode pengembangan sistem secara
terstruktur. Sistem ini dibuat dengan menggunakan bahasa pemrograman java dengan
menggunakan MySQL sebagai database dan memakai jasperSoft iReport dalam
pembuatan laporan. Sistem ini dibuat dengan menggunakan teknologi client-sever
dengan rancangan two tier client server.
Hasil akhir adalah sebuah sistem informasi akademik dan administrasi dengan
kemampuan menyimpan data, mengupdate data, mencari data, serta menyediakan
laporan-laporan akademik dan administrasi, sehingga mampu memberikan
kemudahan dan membantu pegawai dan siswa dalam mendapatkan informasi
akademik dan administrasi.
viii
ABSTRACT
The recording of biography, mark, and administration data of the student,
become the important things in a Neutron Yogyakarta Guidance Learning Agency.
Those data are processed by using spreadsheet that make the less efficiency and
performance of bussines process (store, update, search of biography, mark, and
administration data of the student). The students can help themselves to get the
information of academic and administration. By developing this system, it can help
the employees to process academic and administration data and students to get their
information of academic and administration.
The making of this system is based on Structured System Analysis and Design
Method. This system is made with java language program with MySQL as database
and jasperSoft iReport to make reports. This system use client-sever technology with
two tier client server model.
The result is academic and administion information system which has
capability to store, update, search student‟s academic and administration data, and
provide reports, that it can help the employees and students to get the student‟s
academic and administration information.
ix
KATA PENGANTAR
Puji syukur kepada Allah SWT atas segala berkat dan rahmat-Nya sehingga
penulis dapat menyelesaikan skripsi dengan berjudul ”Sistem Informasi Akademik
dan Administrasi Lembaga Bimbingan Belajar” studi kasus pada LBB NEUTRON
Yogyakarta (cabang Klaten) .
Penulisan skripsi ini diajukan untuk memenuhi salah satu syarat memperoleh
Gelar Sarjana Teknik Program Studi Teknik Informatika Universitas Sanata Dharma
Yogyakarta.
Dengan terselesaikannya penulisan skripsi ini, penulis mengucapkan terima
kasih kepada pihak-pihak yang telah membantu dan memberikan dukungan baik
berupa masukan ataupun saran. Ucapan terima kasih ditujukan kepada:
1. Bapak dan Ibu yang telah memberi dukungan kepada penulis baik moral,
spiritual maupun material selama masa studi saya.
2. Ibu A.M. Polina, S.Kom., M.Sc selaku Dosen Pembimbing yang telah
memberikan dukungan, bantuan dan dorongan kepada penulis selama mengikuti
proses perkuliahan sampai dengan penyelesaian skripsi ini.
3. Bapak Yosef Agung Cahyanta, S.T., M.T. selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
4. Bapak Puspaningtyas Sanjaya Adi, S.T., M.T. selaku Ketua Jurusan Teknik
Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma
Yogyakarta.
5. Bapak Drs. Nicolaus Subiakto yang telah memberikan kesempatan studi kasus
di LBB NEUTRON Yogyakarta, atas semua saran, fasilitas dan semua informasi
yang diberikan.
6. Adik tersayang, untuk doa dan dukungannya.
7. Kartika Mandasari tercinta, untuk semua dukungan, doa, dan motivasinya.
Semoga cita-cita kita dapat segera terwujud. Amin.
8. Seluruh pegawai dan staff NEUTRON Yogyakarta cabang Klaten, atas
informasi dan masukan-masukan yang diberikan untuk pembuatan sistem.
x
9. Beny, Wawan, Andriyanto, Dimas, Hendri Cahyana, Sony, F.X. Adi Putra,
Yuanita dan banyak lagi terima kasih telah banyak membantu penulis sehingga
skripsi ini dapat terselesaikan.
10. Untuk teman-teman semasa SMA yang telah banyak memberi motivasi.
Dalam penulisan skripsi ini, dirasa masih banyak kekurangannya. Oleh karena
itu segala saran ataupun kritik yang bersifat membangun dari para pembaca sekalian
sangat diharapkan guna menyempurankan isi dari skripsi ini.
Akhir kata, semoga penulisan skripsi ini berguna bagi para pembaca sekalian
khususnya para mahasiswa Teknik Informatika, dan dapat menambah wawasan para
pembaca sekalian.
Yogyakarta, 02 November 2009
Penulis
xi
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertandatangan dibawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Surya Astana
NIM : 055314103
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma, karya ilmiah saya yang berjudul :
SISTEM INFORMASI AKADEMIK dan ADMINISTRASI
LEMBAGA BIMBINGAN BELAJAR
Studi Kasus “Neutron” Yogyakarta
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya berikan kepada
Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam
bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan
secara terbatas, dan mempublikasikannya dalam Internet atau media lain untuk
kepentingan akademis tanpa harus meminta ijin dari saya atau mamberikan royalti
kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Dibuat di Yogyakarta,
Pada tanggal : 02 November 2009
Yang menyatakan
Surya Astana
xii
DAFTAR ISI
HALAMAN JUDUL ………………………………………………………………. i
HALAMAN JUDUL (ING)……………………………………………………….... ii
HALAMAN PERSETUJUAN PEMBIMBING……….…………………………… iii
HALAMAN PENGESAHAN……………………………………………………… iv
HALAMAN MOTTO ……….…..………………………………………………… v
PERNYATAAN KEASLIAN KARYA ..…………………………………………. vi
ABSTRAK ………………………………………………………………………… vii
ABSTRACT………………………………………………………………………... viii
KATA PENGANTAR …………………………………………………………….. ix
LEMBAR PERNYATAAN PERSETUJUAN…………………………………….. xi
DAFTAR ISI ....……………………………………………………………………. xii
DAFTAR TABEL …………………………………………………………………. xvii
DAFTAR GAMBAR ……………………………………………………………… xviii
DAFTAR LISTING PROGRAM………………………………………………….. xxi
BAB I PENDAHULUAN ..………………………………………………………... 1
I.1 Latar Belakang ……………..………………………………………...... 1
I.2 Rumusan Masalah …………………………………………………....... 2
I.3 Batasan Masalah …..…………………………………………………… 3
I.4 Tujuan dan Manfaat Penulisan …………...……………………………. 3
I.5 Metodologi Penelitian …………………………………………………. 4
I.6 Sistematika Penulisan ……………………………………….................. 5
BAB II LANDASAN TEORI ……………………………………………………. 7
II.1 Konsep Dasar Sistem ………………………………………………... 7
xiii
II.1.1 Karakteristik Sistem ………... ………………………………. 7
II.1.2 Elemen Sistem ………….…………………………………… 7
II.2 Konsep Dasar Sistem Informasi……………………..………………. 8
II.2.1 Komponen Sistem Informasi………………………………… 8
II.3 Rekayasa Perangkat Lunak………………. ………………………… 10
II.4 DFD (Data Flow Diagram)…………………………………………. 12
II.5 Entity Relationship Diagram (E-R Diagram)……………………….. 13
II.6 Teknologi Client Server……………………………….. …………… 15
II.7 Java………………………....……………………………………….. 16
II.7.1 JDBC………………………………………………………… 16
II.7.2 Java Socket………………………………………………….. 17
II.8 MySQL……………………………………………………………… 18
BAB III ANALISIS DAN PERANCANGAN SISTEM ………………………….. 21
III.1. Analisis Sistem ……………………. ………………………………. 21
III.1.1 Gambaran Umum Sistem yang Baru………………………….. 21
III.1.2 Analisa Kebutuhan Sistem..………………………………….. 22
III.1.3 Use Case Diagram…………………………………………….. 25
III.1.4 DFD (Data Flow Diagram)……………………………………. 25
III.1.4.1 Context Diagram……………………………………… 26
III.1.4.2 Bagan Berjenjang……………………………………… 27
III.1.4.3 DFD Level 0…………………………………………… 28
III.1.4.4 DFD Level 1 Proses 3…………………………………. 28
III.1.4.5 DFD Level 1 Proses 4…………………………………. 29
III.1.4.6 DFD Level 1 Proses 5…………………………………. 29
III.1.5 Pemodelan Data (ER D)……………………………………….. 30
xiv
III.2. Desain / Perancangan Sistem……………………………………….. 31
III.2.1. Desain Basis Data Sistem…………………………………….. 31
III.2.1.1 Logical Database System…….……………………….. 32
III.2.1.2 Perancangan Tabel (Physical Design)..……………….. 32
III.2.2. Desain Antarmuka (Desain Interface)………..…………….. 36
III.2.2.1 Form Login…………………………………………… 37
III.2.2.2 Form Bagian Akademik dan Administrasi…………… 38
III.2.2.2.a Form Pembuka...……………………………….. 38
III.2.2.2.b Form Menu Akademik…………………………. 38
III.2.2.2.b.i Form Pendaftaran…………………………. 39
III.2.2.2.b.ii Form Edit Data Siswa…………………….. 40
III.2.2.2.b.iii Form Lihat dan Cari Data Siswa…………. 41
III.2.2.3 Form Menu Nilai……………………………………… 42
III.2.2.3.a Form Insert Data Nilai………………………….. 42
III.2.2.3.b Form Edit Data Nilai……………………………. 43
III.2.2.3.c Form Lihat dan Cari Data Nilai…………………. 43
III.2.2.4 Form Menu Pembayaran……………………………… 44
III.2.2.4.a Form Lihat Biaya Bimbingan…………………… 44
III.2.2.4.b Form Edit Biaya Bimbingan…………………….. 45
III.2.2.4.c Form Pembayaran Pertama dan Update Pembayaran 46
III.2.2.4.d Form Lihat dan Cari Data Pembayaran……….…. 47
III.2.2.5 Form Siswa…………………………………………….. 48
III.2.2.5.a Form Menu Siswa……………………………….. 48
III.2.2.5.a.i Form Lihat Data Pribadi Siswa…………….. 48
III.2.2.5.a.ii Form Lihat Data Nilai……………………… 49
xv
III.2.2.5.a.iii Form Lihat Data Pembayaran…………….. 50
III.2.3 Desain Teknologi Secara Terinci…………………………… 51
III.2.4 Desain Hak Akses……………………………..…………… 52
BAB IV IMPLEMENTASI …………………………………….………………… 53
IV.1 Pembuatan Database……………… ………………………….……. 53
IV.2 Setting Koneksi dari Java ke MySQL..…………………... ……….. 57
IV.3 Pembuatan User Interface………………………………………….. 58
IV.3.1 Form Utama………………………………….. …………… 58
IV.3.2 Form LOGIN……………………………...... …………….. 59
IV.3.3 Form Menu Siswa…. ………………………………………. 62
IV.3.3.a Form Lihat Data Pribadi………………………….. 64
IV.3.3.b Form Lihat Data Nilai…………………………….. 66
IV.3.3.c Form Lihat Data Bayar……………………………. 68
IV.3.3.d Form Rubah Password Siswa….…………………. 71
IV.3.4 Form Menu Pegawai……………………………………….. 74
IV.3.4.A Form Menu Akademik……………………………. 75
IV.3.4.A.a Form Pendaftaran……………………….. 76
IV.3.4.A.a.i Form Pembayaran Biaya
Pendaftaran dan Biaya Bimbingan…. 84
IV.3.4.A.b Form Menu Data Siswa………………… 89
IV.3.4.A.b.i Form Lihat Data Siswa..……… 90
IV.3.4.A.b.ii Form Edit Data Siswa……….. 96
IV.3.4.A.b.iii Form Hapus Data Siswa……. 99
IV.3.4.A.b.iv Form Revisi Pendaftaran…….. 101
IV.3.4.A.b.v Form Pembayaran Revisi
xvi
Pendaftaran………………………… 104
IV.3.4.A.b.vi Laporan Data Siswa…………. 108
IV.3.4.A.c Form Menu Data Nilai…………………. 110
IV.3.4.A.c.i Form Insert Nilai……………… 111
IV.3.4.A.c.ii Form Cari Data Nilai………… 127
IV.3.4.A.c.iii Form Laporan Data Nilai…… 129
IV.3.4.B Form Menu Administrasi………………………… 134
IV.3.4.B.a Form Pembayaran Bimbingan…………. 136
IV.3.4.B.a.i Form Nota Pembayaran………. 138
IV.3.4.B.b Form Lihat Data Pembayaran Siswa…… 142
IV.3.4.B.c Form Data Biaya Bimbingan……..…….. 146
IV.3.4.B.d Form Laporan Administrasi……………. 147
IV.3.4.B.d.i Form Laporan Pembayaran
Jatuh Tempo………………………... 151
BAB V ANALISA HASIL…..………………………….……………………........ 156
V.3 Kelebihan Sistem yang Dibuat………………………………………. 156
V.4 Kekurangan Sistem yang Dibuat…………………………………….. 157
BAB VI PENUTUP ……...……………………………….……………………........ 158
VI.1. Kesimpulan……………………… ……………………...…….……. 158
VI.2. Saran…………………………………………………...…....………. 159
DAFTAR PUSTAKA………………………………………………………………. 160
xvii
DAFTAR TABEL
3.1 Tabel Data Siswa ……………………………………………………………….. 33
3.2 Tabel Program…………………………………………. ………………………. 33
3.3. Tabel Ambil Program………… ……………………………………………….. 34
3.4 Tabel Kelas……………………………………………………………………... 34
3.5 Tabel Nilai…………………….. ……………………………………………….. 34
3.6 Tabel Mata Pelajaran……..…………………………………………………….. 35
3.7 Tabel Pembayaran……………… …….….………………………………..…… 35
3.8 Tabel Data User……….……………….….…………………………….……… 36
xviii
DAFTAR GAMBAR
2.1 Elemen-elemen Sistem……. …………………………………………………... 7
2.2 Contoh E-R Diagram…………………………………………………………… 14
2.3 Hubungan Java Program, JDBC API, JDBC Driver…………………………… 16
2.4 Hubungan Antar Socket………………………………………………………... 18
3.1 Use Case Diagram……………………………………………………………… 25
3.2 Context Diagram…………………………………..……………………………. 26
3.3 Bagan Berjenjang ………………………………….….………………………... 27
3.4 DFD Level 0……………………………………………………………………. 28
3.5 DFD Level 1 Proses 3..………………....………………………………………. 28
3.6 DFD Level 1 Proses 4….. …………………..…………………………………. 29
3.7 DFD Level 1 Proses 5……………..……...……………………………………. 29
3.8 ER Diagram……………………………………………………………………. 30
3.9. Relational Table.……………...........................………………………………. 32
3.10 Desain Form Login……………………………………. …...……………….. 37
3.11. Desain Pesan Kesalahan .………………………………………………….... 37
3.12 Desain Form Awal…. ……………………………………………………….. 38
3.13 Desain Form Menu Akademik……………………………………………….. 38
3.14 Desain Form Pendaftaran… …………………………………………………. 39
3.15 Desain Form Edit Data Siswa…. …………………………………………… 40
3.16 Desain Form Lihat dan Cari Data Siswa…………………………………….. 41
3.17 Desain Form Menu Nilai……………………………………………………. 42
3.18. Desain Form Insert Data Nilai….……..…………………………………….. 42
3.19 Desain Form Edit Data Nilai………….. ..………………………………….. 43
3.20 Desain Form Cari Data Nilai…………..…………………………………….. 43
xix
3.21 Desain Form Menu Pembayaran …. ..……………………………………….. 44
3.22 Desain Form Lihat Biaya Bimbingan.……………………………………….. 44
3.23 Desain Form Update Biaya Bimbingan………………………………………. 45
3.24 Desain Form Update Pembayaran. .…………………………………………. 46
3.25 Desain Form Cari Data Pembayaran …………………………………………. 47
3.26 Desain Form Menu Siswa……………… ..…………………………………. 48
3.27 Desain Form Lihat Data Pribadi Siswa… ……………………………………. 48
3.28 Desain Form Lihat Data Nilai………………………………………………… 49
3.29 Desain Form Lihat Data Pembayaran………………………………………… 50
4.1. Database Sistem Informasi Akademik dan Administrasi (SQLyog)…………. 56
4.2. Form Utama………... …………………………….......………………………. 58
4.3. Form Login…….. .....................………………………………………………. 59
4.4. Pesan Tidak Bisa Login.....……………………..………………………..……. 62
4.5. Form Menu Siswa………….....………………………………………………... 62
4.6. Form Lihat Data Pribadi………………………………………………………. 64
4.7. Form Lihat Data Nilai.……………………………………………………...…. 66
4.8. Form Lihat Data Pembayaran………………………………………………….. 68
4.9. Form Rubah Password………………………..……………………...………… 71
4.10. Form Menu Pegawai…………………….…..……………………...………… 74
4.11. Form Menu Akademik……….. .. …………..……………………...………… 75
4.12. Form Pendaftaran……………………………… …..……………...………… 76
4.13. Form Bayar Daftar…………………….…....……………………...………… 84
4.14. Form Menu Data Siswa…………………………. …..………...…………… 89
4.15. Form Lihat Data Siswa……….…………………. …..………...…………… 90
4.16. Form Edit Data Siswa..…………………………. …..………...…………… 96
xx
4.17. Form Hapus Data Siswa…………………………. …..………...…………… 99
4.18. Form Revisi Pendaftaran………………………... …..………...…………… 101
4.19. Form Pembayaran Revisi Pendaftaran.…………. …..………...…………… 104
4.20. Form Laporan Akademik………………………. …..………...…………… 108
4.21. Tampilan Laporan Data Siswa Per Program……. …..………...…………… 109
4.22. Form Menu Data Nilai….………………………. …..………...…………… 110
4.23. Form Insert Nilai……..…………………………. …..………...…………… 111
4.24. Form Cari Data Nilai……………………………. …..………...…………… 127
4.25. Form Laporan Data Nilai.………………………. …..………...…………… 129
4.26. Tampilan Laporan Data Nilai Lengkap…………. …..………...…………… 132
4.27. Tampilan Laporan Data Nilai Per Jenis Nilai .…. …..………...…………… 133
4.28. Tampilan Laporan Data Nilai Per Siswa..………. …..………...…………… 134
4.29. Form Menu Administrasi……….………………. …..………..…………… 134
4.30. Form Pembayaran Bimbingan.…………………. …..………...…………… 136
4.31. Form Nota Pembayaran…………………………. …..………...…………… 138
4.32. Tampilan Print Nota Pembayaran………………. …..………...…………… 140
4.33. Form Lihat Data Pembayaran Siswa……………. …..………...…………… 142
4.34. Form Data Biaya Bimbingan……………………. …..………...…………… 146
4.35. Form Laporan Administrasi……………………………....………...……..… 147
4.36. Tampilan Laporan Pembayaran Siswa Per Program ...………...…………… 149
4.37 Tampilan Laporan Data Pembayaran Lengkap Per Siswa…………………… 150
4.38 Form Laporan Pembayaran Jatuh Tempo…………………………………….. 151
4.39 Tampilan Laporan Pembayaran Jatuh Tempo………………………………... 154
4.40 Tampilan Laporan Pembayaran Jatuh Tempo Pada Tanggal………………… 155
4.41 Tampilan Laporan Pembayaran Jatuh Tempo Dari Sampai Tanggal………… 156
xxi
DAFTAR LISTING PROGRAM
4.1 Koneksi.java ……. …………………………………………………................... 57
4.2 Action button login ………………………….…………………………………. 59
4.3 Action button exit ……………………………………………………………… 59
4.4 Listing Button Login Form Login ……………………………………………… 61
4.5 Listing Button Back Form Login ……………………..………………….……. 61
4.6 method getValidasi………………………………….….…………………..…... 61
4.7 Action Button Menu Form Menu Siswa ……………………………………..…. 63
4.8 Action field NIS Form Lihat Data Siswa…....…………………………………. 65
4.9 method getDataSiswa ….. …………………..…………………………………. 65
4.10 Store Procedure get_data_siswa ……..……...……………………………..…. 66
4.11 Action Combo Box Semester …………………………………………………. 67
4.12 Method getNila..i.……………...........................………………………………. 67
4.13 Store Procedure siswa_nilai. ……………………………. …...……………….. 68
4.14 Action field NIS Form Lihat Data Bayar.…………………………………….... 69
4.15 Listing Method getDataBayarSiswa ……..…………………………………….. 70
4.16 Store Procedure siswa_bayar ……………….………………………………….. 70
4.17 Listing Program Button Proses Form Rubah Password..………………………. 72
4.18 Listing Method RubahPassword …. …………………..……………………… 73
4.19 Strore Procedure RubahPasswordSiswa ………………..…………………….. 73
4.20 Action Button-Button Menu Form Menu Pegawai………..……………………. 74
4.21 Action Button-Button Menu Form Menu Akademik ……………………….….. 75
4.22 Action Button BROWSE..................................................................................... 77
4.23 Action Button PROSES Pendaftaran................................................................... 78
xxii
4.24 Action Handler Form Pendaftaran........................................................................ 80
4.25 Method Tambah Siswa......................................................................................... 81
4.26 Store Procedure Tambah Data Siswa................................................................... 82
4.27 Store Procedure Generate Nilai............................................................................ 83
4.28 Trigger add_user................................................................................................... 83
4.29 Trigger program_bayar......................................................................................... 83
4.30 Action Button Bayar Pendaftaran dan Bayar Bimbingan..................................... 86
4.31 Method BayarDaftar............................................................................................. 86
4.32 Method BayarPertama.......................................................................................... 87
4.33 StoreProcedure bayar_dft_pot.............................................................................. 87
4.34 StoreProcedure bayar_1st..................................................................................... 88
4.35 StoreProcedure cek.............................................................................................. 89
4.36 Action Button-Button Form Menu Data Siswa................................................... 90
4.37 Pencarian dan Lihat Data Siswa.......................................................................... 92
4.38 Method CariSiswaNama...................................................................................... 92
4.39 Method CariSiswaProgram................................................................................. 93
4.40 Method CariSiswaKelas...................................................................................... 94
4.41 Method getDataSiswa......................................................................................... 94
4.42 StoreProcedure cari_Bnama................................................................................ 95
4.43 StoreProcedure cari_Bprog.................................................................................. 95
4.44 StoreProcedure cariB_klas.................................................................................. 95
4.45 StoreProcedure get_data_siswa.......................................................................... 96
4.46 Action Button PROSES Form Edit Data Siswa.................................................. 97
4.47 Method EditSiswa............................................................................................... 98
4.48 StoreProcedure edit_DataSiswa......................................................................... 98
xxiii
4.49 Action Button HAPUS Form HapusSiswa......................................................... 99
4.50 Method HapusDataSiswa................................................................................... 100
4.51 StoreProcedure hapus_siswa2.............................................................................. 100
4.52 Action Button PROSES Form Revisi Pendaftaran.............................................. 102
4.53 Method RegUlangSiswa...................................................................................... 103
4.54 StoreProcedure reg_ulang_siswa......................................................................... 103
4.55 Action Button SALIN Form Pembayaran Revisi Pendaftaran............................. 106
4.56 Action Button BAYAR Form Pembayaran Revisi Pendaftaran.......................... 106
4.57 Action Button BAYAR Form Pembayaran Revisi Pendaftaran.......................... 107
4.58 StoreProcedure bayar_ulang................................................................................. 107
4.59 Action Button PRINT Form Laporan Data Siswa................................................ 108
4.60 Query Laporan Data Siswa Per Program.............................................................. 109
4.61 Action Button Menu Form Menu Data Nilai...................................................... 110
4.62 Listing Program Form Insert Nilai..................................................................... 121
4.63 Method gen_combo............................................................................................. 122
4.64 Method get_cariNIS............................................................................................. 123
4.65 Method get_DataNilai......................................................................................... 123
4.66 Method get_Nilai.................................................................................................. 124
4.67 Method masuk_nilai............................................................................................. 124
4.68 Store Procedure generate_combo......................................................................... 125
4.69 Store Procedure cari_nis_nama............................................................................ 125
4.70 Store Procedure get_data_NilaiN......................................................................... 126
4.71 Store Procedure get_data_Nilai........................................................................... 126
4.72 Store Procedure insertNH1................................................................................. 127
4.73 Action Combo Box SEMESTER Form Cari Data Nilai Siswa.......................... 128
xxiv
4.74 Method getNilai................................................................................................... 128
4.75 Store Procedure siswa_nilai……………………………………………………. 129
4.76 Action Button PRINT Form Laporan Data Nilai................................................ 132
4.77 Query Laporan Data Nilai Siswa Per Program.................................................... 132
4.78 Query Laporan Data Nilai Siswa Per Jenis Nilai................................................ 133
4.79 Query Laporan Data Nilai Siswa Per Jenis Nilai................................................ 134
4.80 Action Button Form Menu Administrasi............................................................. 135
4.81 Action Button BAYAR Form Pembayaran Bimbingan...................................... 138
4.82 Action Button PROSES Form Nota Pembayaran Ketiga................................... 139
4.83 Method BayarKetiga........................................................................................... 139
4.84 StoreProcedure bayar_1st................................................................................... 140
4.85 StoreProcedure bayar_2nd.................................................................................. 141
4.86 StoreProcedure bayar_3rd................................................................................... 141
4.87 Action Form Lihat Data Pembayaran Siswa....................................................... 143
4.88 ClassLihatBayar.java........................................................................................... 144
4.89 StoreProcedure SiswaBayarProgram................................................................... 145
4.90 StoreProcedure SiswaBayarKelas....................................................................... 145
4.91 StoreProcedure SiswaBayarJTP......................................................................... 145
4.92 Action Button UPDATE Form Data Biaya Bimbingan....................................... 146
4.93 Method UpdateBiaya.......................................................................................... 146
4.94 StoreProcedure upd_Biaya.................................................................................. 147
4.95 Action Button-Button Form Laporan Administrasi............................................ 148
4.96 Query Laporan Pembayaran Siswa Per Program............................................... 149
4.97 Query Laporan Data Bayar Per Siswa................................................................ 150
4.98 Action Button-Button PRINT Form Laporan Pembayaran Jatuh Tempo........... 153
xxv
4.99 Query Laporan Pembayaran Jatuh Tempo Per Program..................................... 154
4.100 Query Laporan Pembayaran Jatuh Tempo Pada Tanggal.................................. 155
4.101 Query Laporan Pembayaran Jatuh Tempo Antara Tanggal............................... 156
1
BAB I
PENDAHULUAN
I.1 Latar Belakang Masalah
Pada saat ini, setiap lembaga pendidikan pasti memiliki data dengan jumlah yang
terus bertambah dan beraneka ragam. Data-data tersebut sebagian harus melalui proses
pengolahan untuk kemudian menjadi informasi yang diinginkan dan berguna. Informasi
ini dapat digunakan oleh pihak yang berkepentingan dalam menentukan langkah atau
kebijakan serta sebagai pedoman untuk mendapatkan solusi dari problem yang muncul.
Muncul dan berkembangnya sistem informasi salah satunya karena sistem lama
tidak lagi sesuai dengan perkembangan, baik itu data-data ataupun informasi yang
dihasilkannya. Sistem informasi yang baru diharapkan dapat membantu dan membuat
suatu perkerjaan lebih efektif dan efisien.
Lembaga Bimbingan Belajar Neutron Yogyakarta sebagai salah satu lembaga
pendidikan luar sekolah yang turut berperan dalam mencerdaskan kehidupan bangsa
merasakan masih belum maksimal dalam pemberdayaan “sumber daya” yang
dimilikinya. Saat ini Lembaga Bimbingan Neutron Yogyakarta belum memiliki sistem
informasi yang menangani secara khusus tentang administrasi dan akademik siswa.
Proses yang dilakukan masih sederhana, hanya dengan menggunakan spreadsheet
sehingga efisiensi waktu dan kinerja masih kurang. Pemrosesan data banyak yang
dilakukan secara manual seperti pencatatan dan pencarian data akademik, pencatatan dan
pencarian data administrasi siswa (tagihan untuk siswa, informasi pembayaran,dll).
Pihak Lembaga Bimbingan Belajar Neutron Yogyakarta mengalami kendala,
pemasalahan yang ditemui berkaitan dengan pencarian data (baik data siswa, data nilai
2
ataupun data administrasi siswa), penyimpanan data, pemrosesan data dan pembuatan
laporan.
Data-data yang telah diolah menjadi informasi harus disimpan secara benar,
karena tidak menutup kemungkinan dibutuhkan dalam penganalisaan ataupun dalam
pembuatan laporan dikemudian hari. Apabila arsip disimpan secara manual atau dalam
kertas, sering ada kehilangan data atau terjadi kerusakan fisik. Redudansi pekerjaan
mungkin juga terjadi, sehingga menjadi tidak efisien. Dunia kerja saat ini memerlukan
suatu sistem informasi yang dapat membantu menyelesaikan suatu pekerjaan dengan
mengutamakan efisiensi waktu dan tenaga.
Dari latar belakang itulah, penulis tertarik untuk mengembangkan Sistem
Informasi Akademik dan Administrasi Lembaga Bimbingan Belajar bagi Lembaga
Bimbingan Belajar Neutron Yogyakarta, sehingga dapat mengatasi permasalahan yang
ada.
I.2 Rumusan Masalah
Berdasarkan latar belakang permasalahan yang dikemukakan di atas, maka
rumusan masalahnya adalah :
Bagaimana membuat suatu sistem informasi yang dapat menangani masalah-
masalah akademik dan administrasi yang dihadapi Lembaga Bimbingan Belajar Neutron
Yogyakarta?
3
I.3 Batasan Masalah
Sistem informasi yang dibuat mempunyai batasan masalah sebagai berikut:
1. Sistem informasi ini dapat mengolah data pribadi siswa (proses pendaftaran), data
nilai siswa pada tiap mata pelajaran yang ada di setiap program yang diambil dan
data tentang pembayaran biaya bimbingan. Untuk studi kasus ini akan berfokus
pada pengelolaan data untuk siswa SMU.
2. Sistem informasi ini digunakan untuk menangani data pada satu cabang saja, tidak
menangani keseluruhan data siswa Lembaga Bimbingan Belajar Neutron
Yogyakarta.
3. Pada bagian akademik dari sistem informasi ini hanya menangani permasalahan
tentang penilaian saja, tidak menyangkut tentang absensi dan lain-lain, sedangkan
untuk bagian administrasi, menangani permasalahan pembayaran biaya
bimbingan untuk tiap siswa.
4. Sistem Informasi ini berbasis client-server dengan model 2-tier dengan pengguna
sistem adalah bagian administrasi-akademik dan siswa bimbingan.
I.4 Tujuan dan Manfaat Penulisan
Tujuan dibuatnya aplikasi ini adalah untuk mewujudkan sistem informasi
akademik yang meliputi pelayanan informasi data siswa, informasi nilai dan informasi
administrasi siswa dalam Lembaga Bimbingan Belajar Neutron Yogyakarta. Sistem
informasi ini dapat menunjang kinerja karyawan sehingga perkembangan lembaga
pendidikan ini menjadi lebih baik.
Manfaat dibuatnya aplikasi ini adalah siswa bimbingan dan pegawai bagian
administrasi dan akademik Lembaga Bimbingan Belajar Neutron Yogyakarta dapat
4
dengan mudah memperoleh informasi akademik dan administrasi, pekerjaan pihak
lembaga bimbingan belajar menjadi lebih ringan karena untuk menyediakan informasi
akademik dan administrasi pihak lembaga bimbingan hanya perlu menyimpan data-data
tersebut didalam database server, pemrosesan data nilai dan data pembayaran sudah
dilaksanakan oleh sistem, sehingga mempermudah kerja pegawai.
I.5 Metodologi Penelitian
Metode penelitian yang digunakan dalam sistem informasi ini adalah studi kasus
dengan langkah-langkah sebagai berikut :
1. Pengamatan langsung di Lembaga Bimbingan Belajar Neutron Yogyakarta
dan interview dengan pihak terkait guna mendapat gambaran cara kerja sistem
ini nantinya dan fasilitas yang ada.
2. Studi literatur dengan mempelajari dari berbagai referensi yang terkait dengan
pemograman dalam tugas akhir ini. Metode pembelajaran bersumber dari
buku–buku yang berhubungan dalam pembuatan sistem ini, dan sintaks atau
aturan-aturan dalam pemograman yang berhubungan dengan pengolahan data-
data.
3. Metode pengembangan sistem dengan menggunakan metodologi
pengembangan sistem secara tersturktur (Structured System Analysis and
Design Method).
Metodologi ini terbagi menjadi beberapa fase yaitu :
a. Fase Analisis Sistem (Analysis Phase)
Analisis sistem bertujuan untuk mengidentifikasikan dan mengevaluasi
permasalahan–permasalahan yang dihadapi dan kebutuhan–kebutuhan
5
yang diharapkan sehingga dapat menyelesaikan hambatan–hambatan
yang terjadi kearah perbaikan sistem.
b. Fase Perancangan (Design Phase)
Merupakan langkah multiproses yang memusatkan kerja pada
perancangan sistem secara umum misalnya perancangan menu,
perancangan tampilan dan user interface.
c. Fase Implementasi (Implementation Phase)
Setelah melakukan perancangan sistem yang diinginkan maka hasil
rancangan tersebut diimplementasikan, yaitu diterjemahkan kedalam
bahasa pemrograman.
d. Fase Pengujian (Testing Phase)
Pengujian ini dimaksudkan untuk menguji apakah hasil sudah sesuai
dengan perancangan yang diinginkan serta mencari segala kesalahan
yang mungkin terjadi.
I.7 Sistematika Penulisan
Untuk mempermudah dalam pemahaman dan penyusunan tugas akhir ini, penulis
membuat suatu sistematika penulisan sebagai berikut :
BAB I : PENDAHULUAN
Bab ini berisi pengantar, latar belakang masalah, rumusan masalah, batasan
masalah yang merupakan pokok permasalahan, tujuan masalah, metodologi
penelitian, dan sistematika penulisan.
6
BAB II : LANDASAN TEORI
Bab ini berisi landasan teori yang digunakan yaitu pengertian dasar sistem
informasi, rekayasa perangkat lunak, teknologi client-server, Java dan
MySQL.
BAB III : ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang penganalisa sistem dan gambaran yang dibuat,
sedangkan perancangan sistem tersebut meliputi desain proses, perancangan
basis data dan perancangan user interface.
BAB IV : IMPLEMENTASI SISTEM
Bab ini merupakan penjelasan tentang implementasi terhadap basis data,
implementasi antar muka, dan implementasi program atau tentang pembuatan
database dan interfacenya.
BAB V : ANALISA HASIL
Bab ini merupakan penjelasan dari analisa hasil yang meliputi analisa
metodologi, teknologi, dan kelebihan kekurangan program.
BAB VI : PENUTUP
Bab ini merupakan penutup yang berisi kesimpulan yang menjawab rumusan
masalah serta beberapa saran untuk pengembangan program untuk di waktu
yang akan datang.
7
BAB II
LANDASAN TEORI
II.1 Konsep Dasar Sistem
Pada sistem informasi ini mempunyai dua pendekatan, yaitu pendekatan yang
menekankan pada prosedurnya mendefinisikan sistem sebagai berikut:
“suatu sistem adalah jaringan kerja dari prosedur-prosedur yang saling
berhubungan, berkumpul bersama untuk melakukan suatu kegiatan atau untuk
menyelesaikan suatu sasaran yang tertentu” (Jerry FiztGerald, dkk, 1981).
II.1.1 Karakteristik Sistem
Sistem mempunyai sifat tertentu yang mempunyai komponen-komponen, yang
meliputi : batasan sistem, lingkungan luar sistem, penghubung, sasaran, tujuan.
II.1.2 Elemen Sistem
Elemen-elemen yang terdapat di sistem meliputi: tujuan, batasan, kontrol,
masukkan, proses, keluaran dan umpan balik. Hubungan antar elemen dalam sistem
dapat dilihat pada gambar di bawah ini:
Gambar 2.1 Elemen-elemen sistem
TUJUAN
BATASAN
KONTROL
PROSES KELUARAN MASUKAN
N
UMPAN BALIK
8
Dari gambar 2.1, dapat dijelaskan bahwa : tujuan, batasan dan kontrol sistem
berpengaruh pada masukan, proses dan keluaran. Masukan yang diterima sistem
diproses sehingga menghasilkan keluaran. Keluaran dianalisa menjadi umpan balik.
Bagi penerima dari umpan balik ini muncul segala macam pertimbangan untuk
masukkan selanjutnya. Siklus ini berlanjut dan berkembang sesuai dengan
permasalahan yang ada.
II.2 Konsep Dasar Sistem Informasi
Informasi sangat penting dalam suatu organisasi. Suatu informasi dapat
diperoleh dari sistem informasi. Sesuai dengan yang dikutip oleh Jogiyanto, menurut
Robert A. Leitch dan K. Roscoe Davis sistem informasi didefinisikan sebagai berikut:
“Sistem informasi adalah suatu sistem dalam suatu organisasi yang
mempertemukan kebutuhan pengolahan transaksi harian, mendukung operasi,
bersifat manajerial dan kegiatan strategi dari suatu organisasi dan menyediakan
pihak luar tertentu dengan laporan-laporan yang diperlukan. ” (Jogiyanto, 1989
: 11)
II.2.1 Komponen Sistem Informasi
John Burch dan Gery Grundnitski mengemukakan bahwa untuk membangun
suatu sistem informasi tersusun dari komponen atau blok pembangun sebagai berikut :
Masukan, Model, Keluaran, Basis data, Teknologi, dan Kendali.
Keenam blok berinteraksi membentuk sistem informasi yang mencapai
sasarannya adalah :
1. Blok Masukan
Masukan mewakili data yang masuk ke dalam sistem informasi. Masukan
disini termasuk metode-metode dan media untuk menangkap data yang akan
dimasukkan, yang dapat berupa dokumen-dokumen dasar.
9
2. Blok Model
Blok ini terdiri dari kombinasi prosedur, logika dan model matematik yang
akan memanipulasi data masukkan dan data yang tersimpan di basis data dengan cara
tertentu untuk menghasilkan keluaran yang diinginkan.
3. Blok Keluaran
Merupakan informasi yang berkualitas dan dokumentasi yang berguna untuk
semua tingkat manajemen serta semua pemakai sistem.
4. Blok Teknologi
Teknologi merupakan “kotak alat” (tool-box) dalam sistem informasi.
Teknologi digunakan untuk menerima masukkan, menjalankan model, menyimpan
dan mengakses data, menghasilkan dan mengirimkan keluaran dan membantu
pengendalian dari sistem secara keseluruhan. Teknologi terdiri dari 3 bagian utama
yaitu teknisi (humanware atau brainware), perangkat lunak (software) dan perangkat
keras (hardware).
5. Blok Basis Data (Database)
Basis data merupakan kumpulan dari data-data yang saling berhubungan satu
dengan yang lain, tersimpan di perangkat keras komputer dan digunakan oleh
perangkat lunak untuk memanipulasinya. Data dalam basis data perlu diorganisasikan
sedemikian rupa agar informasi yang dihasilkan berkualitas. Basis data diakses atau
dimanipulasi dengan menggunakan perangkat lunak paket yang disebut dengan
DBMS (Basis data Management Systems).
6. Blok Kendali
Beberapa pengendalian perlu dirancang dan diterapkan untuk meyakinkan
bahwa hal-hal yang dapat merusak sistem dapat dicegah ataupun bila terlanjur terjadi
kesalahan-kesalahan dapat segera diatasi, seperti bencana alam, api, temperatur, air,
10
debu, kecurangan-kecurangan, kegagalan-kegagalan sistem itu sendiri, kesalahan-
kesalahan, ketidakefisienan, sabotase dan lain sebagainya.
II.3 Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak memiliki tahapan–tahapan kegiatan yang bertujuan
untuk mencapai (Pressman, R.S., 2002) :
1. Pengoptimalan sumber daya (biaya, personil maupun peralatan).
2. Pembangunan perangkat lunak yang sesuai dengan jadwal (cepat).
3. Pemeliharaan perangkat lunak yang lebih mudah.
4. Hasil yang memuaskan customer.
Terdapat empat tahapan dalam rakayasa perangkat lunak, yaitu :
a. Pengumpulan Kebutuhan
Tahapan ini merupakan tahapan dasar yang digunakan oleh pengembangan
untuk mengumpulkan seluruh informasi yang akan dikelola suatu perangkat lunak.
Informasi–informasi yang dikumpulkan untuk pengembangan adalah informasi yang
dinilai dapat bermanfaat atau dibutuhkan oleh pengguna (user). Ada berapa kegiatan
yang dilakukan dalam mengumpulkan informasi ,antara lain:
1. Mengumpulkan informasi mengenai penyebab masalah.
2. Mengumpulkan informasi yang menjadi dasar dalam proses pengambilan
keputusan.
3. Mengumpulkan informasi untuk mengidentifikasikan personil–personil kunci
yang akan menggunakan sistem.
b. Analisis Sistem
Tahapan ini merupakan tahapan pemodelan sistem dalam bentuk diagram,
berupa Data Flow Diagram dan E-R Diagram.
c. Perancangan
11
Perancangan perangkat lunak meliputi beberapa kegiatan, yaitu :
1. Perancangan Data
Kegiatan ini berupa perancangan tabel–tabel basis data yang akan berpengaruh
bagi perangkat lunak. Perancangan ini sudah mulai mendefinisikan tabel–tabel
basis data secara terperinci. Field–field apa saja yang akan digunakan dalam
perangkat lunak, tipe–tipe dari field yang digunakan, dan lain sebagainya.
2. Perancangan Arsitektural (fungsi serta proses pada perangkat lunak)
Perancangan arsitektural meliputi :
- Pembuatan Data Flow Diagram yang rinci.
- Pendefinisian dari algoritma modul.
- Pembuatan struktur modul.
3. Perancangan Antar Muka Pemakai
Antar muka pemakai merupakan jembatan penghubung antara entitas-entitas
dan sistem . Desain antar muka yang baik sangat dibutuhkan supaya user
mampu untuk mengoperasikan perangkat lunak dengan mudah. Selain itu,
antar muka juga memiliki peranan untuk membentuk “image” user terhadap
citra, misi, dan visi perangkat lunak yang dibangun. Perancangan antar muka
user meliputi beberapa hal, yaitu :
- Perancangan Struktur Menu
Merancang menu–menu yang akan ditampilkan dalam suatu system.
- Perancangan jendela–jendela yang ditampilkan.
Merancang tata letak (lay out) jendela aplikasi yang ingin ditampilkan.
d. Implementasi
Tahapan ini merupakan tahapan pengkodean dari hasil perancangan. Di dalam
tahapan ini, pengembang mulai membuat sistem aplikasi dengan menggunakan
12
bahasa pemrograman, misalnya PHP (Personal Home Pages). Pengkodean ini
disesuaikan dengan diagram–diagram yang telah dibuat, tabel–tabel basis data yang
telah dirancang ataupun algoritma dan struktur dari modul.
II .4 DFD (Data Flow Diagram)
Data Flow Diagram (DFD) adalah diagram yang menggunakan notasi-notasi
untuk menggambarkan arus dari data secara logika tanpa mempertimbangkan
lingkungan fisik dimana data tersebut mengalir atau akan disimpan. DFD merupakan
alat yang digunakan pada metodologi pengembangan sistem yang terstruktur
(structure analysis and design).
Beberapa simbol yang digunakan dalam DFD :
1. External Entity (kesatuan luar)
Kesatuan luar merupakan kesatuan di luar lingkungan sistem yang dapat
berupa orang, organisasi atau sistem lainnya yang akan memberikan input atau
menerima output dari sistem. Kesatuan luar disimbolkan sebagai berikut :
2. Data flow (arus data)
Arus data dalam DFD diberi simbol suatu panah, yang dapat mengalir
dari data yang berupa masukan untuk sistem atau hasil dari suatu sistem. Arus
data biasanya diberi nama yang jelas dan mempunyai arti. Arus data
disimbolkan sebagai berikut :
Nama Arus Data
3. Process (proses)
Suatu proses adalah kegiatan atau yang dilakukan oleh orang, mesin atau
komputer dari hasil suatu arus data yang masuk ke dalam proses untuk
13
dihasilkan arus data yang akan keluar dari proses. Notasi proses dalam DFD
adalah sebagai berikut :
Indetifikasi
Nama Proses
4. Data store (simpanan data)
Simpanan data merupakan simpanan dari data yang dapat berupa:
Suatu file atau database di dalam sistem komputer.
Suatu arsip atau catatan manual.
Suatu tabel acuan manual.
Suatu agenda atau buku.
Simpanan data dalam DFD disimbolkan dengan sepasang garis
horisontal paralel yang tertutup di salah satu ujungnya.
Nama data store
Med
ia
II.5 Entity Relationship Diagram (E-R Diagram)
Hubungan antar entiti (Entity Ralationship modelling) merupakan salah satu
implementasi pendekatan dari atas ke bawah yang paling umum digunakan. Hal ini
dilakukan untuk merancang tabel, hubungan antar tabel, mengidentifikasikan, primary
key dan foreign key, dan aturannya, serta domain untuk database. Dalam pemodelan
ini, tahapan yang dilakukan adalah sebagai berikut:
1. memilih entity-entity yang akan disusun oleh database dan menentukan
hubungan antar entiti yang telah dipilih.
2. melengkapi atribut-atribut yang sesuai pada entiti dan hubungan, sehingga
diperoleh tabel normal yang penuh (tabel ternormalisasi).
14
Sama dengan alat yang lain pada diagram E-R yang kita sebut kemudian,
diagram ini memiliki simbol-simbol antara lain:
TEXT
Entity kesatuan luar
Hubungan / ralasi
Atribut
Relasi antar tabel
Nama Relasi
memilikiSiswa Nilai
I
No Induk Siswa
Nama Siswa
Mata Pelajaran
Guru mata
pelajaran
Gambar 2.2 contoh E-R Diagram
Dalam diagram E-R dikenal adanya derajat hubungan (relationship) antara
entity yang menyatakan jumlah anggota entity yang terlibat dalam ikatan atau relasi
yang terjadi. Derajat hubungan tersebut antara lain :
a. Relasi one to one (1:1)
Relasi ini terjadi bila tiap anggota entiti A hanya boleh berpasangan dengan
tepat satu anggota entiti B. Hubungan 1:1 mencakup juga relasi 1:0 dan 0:1
b. Relasi one to many (1:m)
Relasi ini terjadi bila tiap anggota entiti A berpasangan lebih dari satu
anggota entiti B. hubungan one to many mencakup relasi 1:1, 0:1, 1:1
c. Relasi many to many (m : m)
Relasi ini terjadi bila tiap anggota entiti A boleh berpasangan dengan lebih
dari satu anggota entiti B, begitu juga sebaliknya tiap anggota B boleh
15
berpasangan dengan lebih dari satu anggota entiti A. Relasi ini mencakup
1:m, 1:1, 1:0, 0:1
II.6 Teknologi Client-Server
Client/Server merupakan relasi antara program di dua komputer di mana
komputer client dapat meminta layanan dari program lain seperti email, akses web
dan akses basis data yang berbasis client/server. Di mana pada sistem ini terdapat dua
aplikasi yang terpisah yaitu aplikasi client dan aplikasi server. Client merupakan
sebuah komputer yang berisi aplikasi, dan memiliki tanggung jawab untuk melakukan
interaksi dengan user. Jadi setiap yang dikehendaki para user akan ditangani terlebih
dahulu oleh client. Sebagai contoh adalah, client menerima masukan dari user yang
dilakukan melalui keyboard. Server merupakan sebuah komputer yang berisi DBMS
serta database, dan menjadi pusat seluruh kegiatan menangani permintaan-permintaan
yang dilakukan oleh client.
Kunci utama untuk memahami sistem ini adalah, aplikasi client membuat
suatu permintaan (make a request) kemudian server merespon permintaan (server
responding). Dengan adanya dua aplikasi yang terpisah ini sebelun aplikasi client
dapat terhubung ke server, aplikasi server harus dijalankan terlebih dahulu.
Mekanisme keamanan data diterapkan pada sistem client/server sangat tinggi,
sehingga aplikasi client tidak dapat dibuka file-file data yang berada di server secara
langsung. Pada dasarnya client harus melakukan login dengan memasukkan userid
serta password yang telah ditentukan. Begitu proses login berhasil kemudian aplikasi
server akan memberikan layanan untuk membuka database yang diminta user (client).
Dalam hal pengaksesan data juga masih ditentukan oleh hak akses (access granted),
sehingga tidak semua layanan dapat dilakukan client, akan tetapi bergantung pada hak
akses yang diberikan.
16
II.7 Java
II.7.1 JDBC
JDBC merupakan teknologi Java yang ditujukan untuk pengolahan data.
JDBC ini merupakan Java API yang mendukung program Java untuk mengakses
relational databases. Dengan menggunakan JDBC API, aplikasi yang menggunakan
bahasa pemrograman Java dapat melakukan eksekusi perintah SQL, mendapatkan
hasil, menampilkan data dengan tampilan yang user-friendly dan mengembalikan
perubahan data ke database. Gambar di bawah ini menunjukkan hubungan antara
program Java, JDBC API dan JDBC Driver. JDBC Driver ini menghubungkan antara
JDBC API dengan database seperti MySQL, Oracle dan Microsoft Access sehingga
program Java dapat mengakses database tersebut.
Gambar 2.3 Hubungan Java Program, JDBC API, JDBC Driver
Dalam pemrograman JDBC dikenal komponen-komponen sebagai berikut :
1. Driver
Interface ini menangani komunikasi dengan database server dan
mengenkapsulasi proses internal dalam interaksi dengan database. Sangat jarang
17
berhubungan dengan object Driver tapi akan langsung berurusan dengan
DriverManager.
2. DriverManager
Menggunakan object DriverManager untuk menangani objek Driver
dimana objek DriverManager juga mengabstraksi detail dari proses kerja objek
Driver
3. Connection
Objek ini merepresentasikan koneksi fisik ke database. Kita dapat
mengatur sifat result set dan operasi transaksi dengan object Connection ini.
4. Statement
Kita akan menggunakan objek dari interface ini untuk mengirimkan
perintah SQL ke database. Interface turunan dari Statement memungkinkan
untuk menerima parameter untuk mengeksekusi store procedure
5. ResultSet
Objek ini akan menyimpan data yang di dapat dari database setelah
menjalankan query sql dengan menggunakan objek Statement. Objek ini
bertindak sebagai iterator untuk menavigasi data.
6. SQLException
Objek ini merupakan objek turunan dari Exception yang sering
digunakan untuk penanganan error dari pemrograman JDBC.
II.7.2 JAVA SOCKET
Socket adalah sebuah abstraksi perangkat lunak yang digunakan sebagai suatu
"terminal" dari suatu hubungan antara dua mesin atau proses yang saling
berinterkoneksi. Di tiap mesin yang saling berinterkoneksi, harus terpasang socket.
18
Java menyediakan stream sockets dan datagram sockets yang mengatasi
koneksi pada level rendah. Dengan stream socket, sebuah proses akan membangun
koneksi ke proses yang lain. Ketika koneksi telah dibangun, maka data akan mengalir
antara proses-proses tersebut melalui stream. Stream socket ini menyediakan layanan
berorientasi koneksi dengan menggunakan protocol TCP(Transmission Control
Protocol). Dengan datagram socket, paket-paket informasi dikirimkan melalui
protokol UDP(User Datagram Protocol). Dengan protokol ini, tidak ada jaminan
bahwa data yang dikirim tidak akan hilang, mengalami duplikasi atau dikirim secara
berurutan.
Pada J2SE telah disediakan paket java.net yang berisi kelas-kelas dan interface
yang menyediakan API (Application Programming Interface) level rendah (Socket,
ServerSocket, DatagramSocket).
Gambar 2.4 Hubungan Antar Socket
II.8 MYSQL
MySql adalah sebuah sistem manajemen basis data. Basis data merupakan
kumpulan dari data yang terstruktur. Data tersebut bisa berupa daftar belanja yang
sederhana hingga suatu kumpulan gambar atau informasi yang sangat besar
jumlahnya dalam suatu jaringan perusahaan. Untuk menambah, mengakses, dan
memproses data yang tersimpan dalam basis data komputer, diperlukan suatu sistem
manajemen basis data seperti MySql. Sejak komputer dapat menangani data yang
19
besar dengan baik, manajemen basis data memainkan peran inti dalam dunia
komputer, baik sebagai perlengkapan yang berdiri sendiri, maupun sebagai bagian
dari aplikasi lain.
MySql merupakan sistem manajemen basis data relasional. Relasional basis
data biasanya menempatkan data dalam tabel-tabel yang terpisah daripada
menempatkan semuanya ke dalam suatu ruang penyimpanan besar. Hal tersebut
bertujuan untuk meningkatkan kecepatan dan fleksibilitas.
Perintah-perintah dasar dalam MySQL
1. Untuk membuat basis data.
Contoh :
CREATE BASIS DATA MYSQL;
Perintah diatas untuk membuat basis data dengan nama MYSQL.
2. Untuk menghapus basis data.
Contoh :
DROP BASIS DATA MYSQL;
Perintah diatas digunakan untuk menghapus basis data MYSQL.
3. Untuk melihat / menampilkan semua basis data yang ada pada server.
Contoh :
SHOW BASIS DATAS;
4. Untuk masuk atau menggunakan basis data yang dikehendaki.
Contoh :
USE MYSQL;
5. Untuk membuat tabel.
Contoh :
CREATE TABLE CITY (id_kota SMALLINT NOT NULL, nama_kota
VARCHAR(25));
20
6. Untuk melihat tabel-tabel yang ada didalam basis data.
Contoh :
SHOW TABLES;
7. Untuk menghapus tabel yang ada didalam basis data.
Contoh :
DROP TABLE CITY;
8. Untuk menampilkan secara lengkap atau detail suatu tabel ataupun field-field
dan tipe data.
Contoh :
DESC CITY;
9. Untuk menampilkan data-data dari basis data sesuai dengan yang diinginkan.
Contoh :
SELECT * FROM CITY;
SELECT id_kota, nama_kota FROM CITY;
SELECT * FROM CITY WHERE nama_kota = “YOGYA”;
10. Untuk memasukan data ke dalam basis data.
Contoh :
INSERT INTO CITY (id_kota, nama_kota) VALUES (“274”, “YOGYA”);
11. Untuk mengudate ataupun mengubah data yang ada pada basis data.
Contoh :
UPDATE CITY SET id_kota = “275” WHERE nama_kota = “YOGYA”;
12. Untuk menghapus data-data yang ada pada basis data.
Contoh :
DELETE FROM CITY WHERE nama_kota = “YOGYA”;
21
BAB III
ANALISIS DAN PERANCANGAN SISTEM
III.1 Analisis Sistem
Sistem informasi ini muncul karena permasalahan mekanisme sistem lama
yang masih manual dalam menyimpan data-data dan pengolahan serta pencatatannya
masih berulang-ulang, sehingga dimungkinkan adanya data-data yang hilang ataupun
efisiensi kerja kurang. Salah satu pemecahan masalah tersebut adalah dengan
membuat sistem informasi akademik dengan program yang ber-database yang lebih
mudah penggunaannya. Sistem informasi akademik dan administrasi merupakan
perangkat lunak yang digunakan untuk menyediakan jasa informasi data siswa, nilai
akademik, pembayaran biaya bimbingan (administrasi). Sistem ini ditujukan untuk
bagian pengajaran dan administrasi siswa.
Fokus dari sistem informasi ini pertama adalah melakukan pengolahan nilai
dari data masukan bagian pengajaran dan yang kedua adalah melakukan pengolahan
data administrasi untuk mengetahui pembayaran biaya bimbingan oleh siswa.
III.1.1 Gambaran Umum Sistem yang Baru
Dalam kerja awal dari sistem ini membutuhkan proses login yang
membedakan antara tiap-tiap user. Administrator dalam sistem ini adalah bagian
pengajaran dan administrasi, dan pihak user lainnya yaitu siswa. Pada pihak
bagian pengajaran sistem ini dapat menyimpan rekam data dari data-data siswa,
menyimpan data-data nilai dari mata pelajaran yang ada serta mencari data siswa
berdasar nomor induk siswa. Sedangkan dari pihak siswa dapat melihat data
pribadi, data pembayaran dan data nilai mereka masing-masing.
22
III.1.2 Analisis Kebutuhan Sistem
Dalam melihat segi kebutuhan dari Sistem Informasi Akademik dan
Administrasi Lembaga Bimbingan Belajar Neutron Yogyakarta maka dapat ditinjau
dari 2 sisi yaitu sisi server (server side) dan sisi klien (client side). Kebutuhan yang
harus disediakan sistem adalah dapat melayani berbagai pihak.
Sisi bagian pengajaran (akademik) dan administrasi (User Administrator)
Fasilitas yang diharapkan dari sistem adalah:
a. Mengolah data seperti input, edit data siswa, data mata pelajaran,
informasi dari data nilai, dan informasi administrasi siswa.
b. Sebagai pihak yang mengkoordinasi semua hak-hak dari user.
c. Menampilkan informasi dari semua data yang telah diinputkan.
Sisi Siswa(User)
Fasilitas yang akan di dapatkan oleh user yaitu:
a. Menampilkan informasi nilai akademik siswa.
b. Menampilkan informasi mengenai pembayaran biaya bimbingan.
c. Menampilkan informasi mengenai data diri siswa.
LBB Neutron Yogyakarta, memiliki beberapa program untuk siswa-siswanya.
Adapun program tersebut yaitu :
Untuk kelas 1 SMA : reguler 1 SMA.
Untuk kelas 2 SMA : reguler 2 SMA IPA dan reguler 2 SMA IPS.
Untuk kelas 3 SMA :reguler 3 SMA IPA, reguler 3 SMA IPS, Program
Minggu 3 SMA IPA, Program Minggu 3 SMA IPS, SPMB 3 IPA,
SPMB 3 IPS, PIKPU Murni 3 IPA, PIKPU Murni 3 IPS, dan PIKPU
Murni 3 IPC.
23
Program reguler berjalan sesuai tahun ajaran sekolah, masuk 3 kali dalam 1
minggu. Siswa dapat memilih satu dari empat pilihan kelompok kelas untuk tiap
program yang telah dijadwalkan berdasar hari dan jam masuk. Sedangkan program
minggu, merupakan penyederhanaan dari program reguler, masuk setiap hari minggu
dengan fokus pembahasan soal. Program SPMB dan PIKPU, dibuka dan dilaksanakan
pada semester akhir menjelang kelulusan, dengan fokus membantu siswa
mempersiakan diri menghadapi SPMB dan PIKPU. Siswa kelas 3 diperbolehkan
untuk mengambil beberapa program, semisal reguler dengan SPMB atau reguler
dengan PIKPU.
Setelah mendaftar, siswa akan mendapatkan nomor induk dengan format 2
digit pertama merupakan kode program yang diambil, diikuti 2 digit tahun angkatan,
dan 3 digit nomor urut. Dengan format NIS seperti diatas, siswa akan mendapatkan
NIS baru setiap mengambil program.
Contoh : Anto tahun 2006 mengambil program reguler 1 SMA, dia mendapat
NIS 0106075, tahun berikutnya dia tidak ikut bimbingan, pada tahun 2008, dia
mendaftar ikut program reguler 3 IPA, dia mendapat NIS 0408006. Menjelang
kelulusan, Anto mendaftar program PIKPU 3 IPC, dia mendapat NIS lagi yaitu
1108025. Hal seperti ini dianalogikan seperti mahasiswa yang mengambil 2 jurusan
(misal Teknik Mesin dan Sastra Inggris).
Siswa juga mendapatkan nomor pembayaran untuk tiap program yang mereka
ambil, nomor pembayaran akan memiliki format 3 digit pertama adalah kode cabang
LBB, diikuti nomor induk siswa.
Pada contoh diatas, maka Anton pada waktu tahun 2006 mengambil program
reguler 1 SMA, dia mempunyai nomor pembayaran 1110106075. Sedangkan pada
24
tahun 2008, untuk program reguler 3 IPA nomor pembayarannya adalah 1110408006
sedangkan untuk program PIKPU 3 IPC nomor pembayarannya adalah 1111209025.
Dalam proses pembayarannya, siswa pertama kali membayar biaya
pendaftaran. Kemudian ada kriteria dari pihak LBB Neutron untuk memberikan
keringanan biaya, semisal siswa berprestasi, siswa anak dari bapak atau ibu guru
kerjasama, siswa yang mendapat surat rekomendasi. Siswa diperkenankan untuk
melakukan pembayaran satu kali lunas atau melakukan angsuran pembayaran, dengan
jumlah angsuran maksimal 3 kali angsuran. Jangka waktu antar angsuran
diberlakukan 30 hari setelah tanggal pembayaran terakhir. Pembayaran angsuran yang
pertama minimal 50% atau setengah dari total biaya bimbingan. Untuk siswa jatuh
tempo pembayaran akan dilakukan pemanggilan.
25
III.1.3 Use Case Diagram
Bagian
Administrasi
dan Akademik
Siswa
Login
Rekam Data Siswa
Edit Data Siswa
Lihat Data Siswa
Cari Data Siswa
Rekam Data Nilai
Edit Data Nilai
Lihat Data Nilai
Cari Data Nilai
Rekam Data
Administrasi
Update Data
Administrasi
Lihat Data
Administrasi
Cari Data
Administrasi
Depend on
Gambar 3.1 Use Case Diagram
III.1.4 DFD (Data Flow Diagram)
DFD adalah diagram untuk menggambarkan proses data yang mengalir dari
entitas ke sistem ataupun sebaliknya. Identifikasi kesatuan luar dari sistem dan
masukkan ataupun keluaran yang terlibat dengan kesatuan tersebut.
26
III.1.4.1 Context Diagram
0
SISTEM INFORMASI
AKADEMIK dan
ADMINISTRASI
A. Bagian
Akademik dan
Administrasi
B. Siswa
Data Siswa, Data
User, Data Mapel,
Data Nilai, Data
Admnistrasi
Data Siswa, Data
Mapel, Data Nilai,
Data Admnistrasi
ID User, Login_As,
Password, Data Siswa,
Data Administrasi, Data
Mapel, Kode Mapel, Data
Nilai, Data Program, Kode
Program, Data Kelas,
Kode Kelas
ID User, Login_As,
Password, Data
Siswa
Gambar 3.2 Context Diagram
27
III.1.4.2 Bagan Berjenjang
0
SI
Ak
adem
ik d
an
Ad
min
istr
asi
LB
B
4
Pen
go
lah
an D
ata
Ak
adem
ik /
Nil
ai
3
Pen
go
lah
an D
ata
Sis
wa
1
Lo
gin
2
Val
idas
i
Use
r
5
Pen
go
lah
an D
ata
Ad
min
istr
asi
3.1
p
Rek
am D
ata
Sis
wa
3.3
p
Lih
at D
ata
Sis
wa
3.2
p
Ed
it
Dat
a S
isw
a
3.4
p
Car
i
Dat
a S
isw
a
4.1
p
Rek
am D
ata
Nil
ai
4.3
p
Lih
at D
ata
Nil
ai
4.2
p
Ed
it
Dat
a N
ilai
4.4
p
Car
i
Dat
a N
ilai
5.1
p
Rek
am D
ata
Ad
min
istr
asi
5.3
p
Lih
at D
ata
Ad
min
istr
asi
5.2
p
Ed
it D
ata
Ad
min
istr
asi
5.4
p
Car
i D
ata
Ad
min
istr
asi
Gambar 3.3 Bagan Berjenjang
28
III.1.4.3 DFD Level 0
A. Bagian
Administrasi dan
Akademik
B. Siswa
User, password
validasi
D1 SISWA
Data siswa
Data baru siswaData siswa
User, NIS
Data siswa
Data nilai
D2 NILAIData nilai baru
Data nilai
D3 PEMBAYARAN
Data Nilai
Data Administrasi
validasiD4 USER
Keterangan validasiValidasi OK
Validasi OK
NIS, Nilai, Id_Mapel
No_Resi, Tgl, Jml_dibayar
1
Login
2
Validasi User
3
Pengolahan
Data Siswa
4
Pengolahan
Data
Administrasi
5
Pengolahan
Data
AdministrasiData Administrasi
Data Administrasi
baru
Data Administrasi
baru
Gambar 3.4 DFD Level 0
III.1.4.4 DFD Level 1 Proses 3
A. Bagian
Administrasi
dan
Akademik
B. Siswa
Data siswa, tgl Data siswa baru
Data siswa baru
Data siswa
Data siswa
D1 SISWA
Data siswa
Nama/NIS
Data Siswa
Cari data siswa
Data Pribadi Siswa
NIS
Data Pribadi Siswa
User, PasswordValidasi OK
Validasi OK
Validasi OK
Validasi OK
User, Password
3.1p
Rekam Data
Siswa
3.2p
Edit Data
Siswa
3.3p
Lihat Data
Siswa
3.4p
Cari Data
Siswa
1
Login
Gambar 3.5 DFD Level 1 Proses 3
29
III.1.4.5 DFD Level 1 Proses 4
A. Bagian
Administrasi
dan
Akademik
B. Siswa
NIS,nilai,id_mapel Data nilai baru
Data nilai baru
Data nilai
D2 NILAI
NIS,nilai,id_mapel
Nama/NIS
Data Nilai
Cari data nilai
Data Nilai Siswa
NIS
Data Nilai Siswa
User, Password
Validasi OK
Validasi OK
Validasi OK
Validasi OK
User, Password
D5 MATA PELAJARAN
Data Nilai
Data Mapel
Data Mapel
4.1p
Rekam Data
Nilai
4.2p
Edit Data
Nilai
4.3p
Lihat Data
Nilai
4.4p
Cari Data
Nilai
1
Login
Gambar 3.6 DFD Level 1 Proses 4
III.1.4.6 DFD Level 1 Proses 5
A. Bagian
Administrasi
dan
Akademik
B. Siswa
NIS,no_resi,jml_byr,tgl Data pembayaran baru
Data pembayaran baru
Data pembayaran
D3 PEMBAYARAN
NIS,no_resi,jml_byr,tgl
Nama/NIS
Data pembayaran
Cari data pembayaran
Data Pembayaran Siswa
NIS
Data Pembayaran Siswa
User, Password
Validasi OK
Validasi OK
Validasi OK
Validasi OK
User, Password
Data pembayaran
5.1p
Rekam Data
Administrasi
1
Login
5.2p
Edit Data
Administrasi
5.3p
Lihat Data
Administrasi
5.4p
Cari Data
Administrasi
Gambar 3.7 DFD Level 1 Proses 5
30
III.1.5 Pemodelan Data (ER D)
Gambar 3.8 ER Diagram
1
Am
bil
11
Pro
gra
m
Punya
User
Id_
Use
r
Pa
ssw
ord
Log
in_A
s
No_
Pe
mb
aya
ran
NIS
Tgl_
Daft
ar
Bia
ya
_P
end
afta
ran
Bia
ya
_B
imb
inga
n
No
_R
esi1
Po
ton
ga
n
Tg
l_B
aya
r_1
Jm
l_B
aya
r_1
Te
rbilan
g_
1
No_
Re
si_
2
Tg
l_B
aya
r_2
Jm
l_B
ayar_
2
Te
rbilan
g_2
No
_R
esi_
3
Tg
l_B
ayar_
3
Jm
l_B
ayar_
3
Terb
ilan
g_3
Tgl_
Jatu
h_
Te
mpo
Jm
l_B
iaya
Tota
l_D
iba
yar
Ke
tera
nga
n
Ma
ta P
ela
jara
n
Na
ma_
Ma
pel
Bia
ya
Pu
nya
Punya
NIS
Id_
Pro
gra
m
Id_
Ma
pel
NR
N3
N2
N1
Data
Sis
wa
Nam
a
TT
L
Asa
l_S
ekola
hK
ela
s
Nam
a_
Ort
u
Ala
mat_
Ru
ma
h
Peke
rjaa
n_
Ru
ma
h
No
_Telp
Foto
Th
_A
ng
ka
tan
NIS
Id_P
rog
ram
Na
ma_
Pro
gra
m
NIS
Id_
Pro
gra
mId
_P
rog
ram
Id_K
ela
s
Kela
s
Id_
Ke
las
Id_P
rog
ram
Ru
an
gJa
dw
al
Pu
nya
Bia
ya
N
N
N
N
Id_
Ma
pe
l
1
1
N
NN
11
NIS
Id_
Ke
las
31
III.2 Desain / Perancangan Sistem
III.2.1 Desain Basis Data Sistem
Dalam merancang struktur basis data sistem ini, pertama-tama yang dilakukan
adalah membuat E-R Diagram (Entity Relational Diagram) yang mana diagram
didasarkan atas persepsi obyek tersebut benar-benar ada (entities) dan terdapat
hubungan antar obyek (relationship). Kemudian dari ERD tersebut dapat kita buat
relasi antar tabel. Pada relasi antara tabel many to many dapat membentuk tabel baru
pada Logical Design, sehingga langkah berikutnya kita dapat merancang tabel-tabel
pada basis data tersebut. Penjelasan tersebut agar lebih jelas dapat kita lihat sebagai
berikut:
32
III.2.1.1 Logical Database Design
Data_Siswa
PK NIS
Nama
TTL
Asal_Sekolah
Kelas
Program
Kel_Kelas
Nama_Ortu
Alamat_Rumah
Pekerjaan_Ortu
No_telp
Foto
Thn_Angkatan
Program
PK id_program
nama_program
Biaya
Punya_Kelas
Id_Program
Id_Kelas
Mapel
PK id_mapel
id_program (FK)
nama_mapel
Nilai
NIS
id_mapel
id_program
id_kelas
N1
N2
N3
NR
Pembayaran
PK No_pembayaran
NIS (FK)
Id_Program (FK)
Tgl_Daftar
biaya_pendaftaran
dispensasi
no_resi1
jml_bayar1
tgl_bayar1
no_resi2
jml_bayar2
tgl_bayar2
no_resi3
jml_bayar3
tgl_bayar3
tgl_jatuh_tempo
total_dibayar
total_biaya
User
PK id_user
login_as
password
Kelas
PK Id_Kelas
Id_Program (FK)
Ruang
Jadwal
Punya_Program1
NIS
id_program
Gambar 3.9 Relational Tabel
III.2.1.2 Perancangan Tabel (Physical Database Design)
Informasi akademik yang berhubungan dengan nilai akan disimpan dalam
database. Desain database ini dibuat didasarkan atas entitas dan hubungannya antar
33
obyek pada ER diagram dan desain logika atau relasi tabel. Banyaknya file database
yang akan dibuat terdiri dari beberapa tabel yaitu tabel
Tabel-tabel dari entitas yang mendukung serta atribut dalam perancangan
database ini adalah sebagai berikut :
1. Tabel Data Siswa
Tabel data siswa merupakan tabel yang menyimpan seluruh data
pribadi siswa, yang diperlukan oleh Lembaga Bimbingan Belajar Neutron
Yogyakarta. Dimana nantinya tabel ini akan menjadi tabel induk.
Nama Kolom Tipe Data Keterangan
NIS Varchar (10) Nomor Induk Siswa, sebagai Primary Key
Nama Varchar(250) Nama Siswa Didik
TTL Varchar(50) Tempat Tanggal Lahir
Asal_Sekolah Varchar(100) Sekolah Asal Siswa Didik
Kelas Varchar(10) Tingkat Kelas Siswa Didik
Nama_Ortu Varchar(250) Nama Orangtua Siswa Didik
Alamat_Rumah Varchar(300) Alamat Rumah Siswa Didik
Pekerjaan_Ortu Varchar(50) Pekerjaan Orangtua Siswa Didik
No_Telp Varchar(20) Nomor Telepon Orangtua / Rumah Siswa Didik
Foto Varchar(50) Direktori File Foto Disimpan
Th_Angkatan Integer(4) Tahun Angkatan Siswa
Id_Kelas Varchar(5) Kelas yang dipilih Siswa
Tabel 3.1 Tabel Data Siswa
2. Tabel Program
Tabel program berisi semua program yang ada atau tersedia di
Lembaga Bimbingan Belajar Neutron Yogyakarta.
Nama Kolom Tipe Data Keterangan
Id_Program Varchar(10) ID dari program yang ada, sebagai Primary Key
Nama_Program Varchar(100) Nama program yang ada
Biaya Integer(6) Nominal biaya bimbingan
Tabel 3.2 Tabel Program
34
3. Tabel Ambil Program
Tabel Ambil Program berisi daftar dari siswa dan prorgam yang
diambil oleh siswa tersebut.
Nama Kolom Tipe Data Keterangan
NIS Varchar(10) Nomor Induk Siswa
Id_Program Varchar(10) ID dari Program yang dipilih
Tgl_Daftar Date Tanggal pendaftaran program Siswa
Tabel 3.3 Tabel Ambil Program
4. Tabel Kelas
Tabel Kelas berisi daftar semua kelas yang ada di Lembaga Bimbingan
Belajar Neutron Yogyakarta, dimana di dalamnya akan berisi data ruang kelas
dan jadwal kelas tersebut masuk.
Nama Kolom Tipe Data Keterangan
Id_Kelas Varchar(10) ID dari Kelas yang ada, sebagai Primary Key
Id_Program Varchar(10) ID dari Program untuk tiap kelas, Foreign Key
NIS Varchar(10) Nomor Induk Siswa
Ruang Varchar(5) Nomor Ruang Kelas
Jadwal Varchar(200) Daftar hari dan jam masuk
Tabel 3.4 Tabel Kelas
5. Tabel Nilai
Tabel Nilai berisi daftar nilai dari siswa untuk setiap mata pelajaran
yang siswa tersebut ambil. Jenis program akan mempengaruhi jenis mata
pelajaran.
Nama Kolom Tipe Data Keterangan
NIS Varchar(10) Nomor Induk Siswa
Id_Program Varchar(10) ID Program yang diambil
Id_Kelas Varchar(10) ID dari Kelas yang diambil
Id_Mapel Varchar(10) ID dari Mata Pelajaran yang diambil
N1 Integer(3) Nilai test 1
N2 Integer(3) Nilai test 2
N3 Integer(3) Nilai test 3
NR Integer(3) Nilai rata-rata
Smester Integer(2) Semester tempuh
Tabel 3.5 Tabel Nilai
35
6. Tabel Mata Pelajaran
Tabel Mata Pelajaran akan berisi daftar dari semua mata pelajaran
yang ada.
Nama Kolom Tipe Data Keterangan
Id_Mapel Varchar(10) ID dari Mata Pelajaran, sebagai Primary Key
Id_Program Varchar(10) ID dari Program untuk tiap kelas, Foreign Key
Nama_Mapel Varchar(100) Nama Mata Pelajaran yang ada
Tabel 3.6 Tabel Mata Pelajaran
7. Tabel Pembayaran
Tabel Pembayaran berisi data lengkap dari pembayaran biaya
bimbingan dari setiap siswa.
Nama Kolom Tipe Data Keterangan
No_Pembayaran Varchar(15) Nomor Pembayaran Biaya Bimbingan, Primary Key
NIS Varchar(10) Nomor Induk Siswa, Foreign Key
Tgl_Daftar Date Tanggal Pendaftaran
Biaya_Pendaftaran Integer(5) Biaya Pendaftaran
Biaya_Bimbingan Integer(6) Biaya Bimbingan, sesuai Program yang diambil
Potongan Integer(5) Potongan Pembayaran
No_Resi_1 Varchar(15) Nomor Kuitansi Pembayaran Pertama
Tgl_Bayar_1 Date Tanggal Pembayaran Pertama
Jml_Bayar_1 Integer(6) Nominal Pembayaran Pertama
No_Resi_2 Varchar(15) Nomor Kuitansi Pembayaran Kedua
Tgl_Bayar_2 Date Tanggal Pembayaran Kedua
Jml_Bayar_2 Integer(6) Nominal Pembayaran Kedua
No_Resi_3 Varchar(15) Nomor Kuitansi Pembayaran Ketiga
Tgl_Bayar_3 Date Tanggal Pembayaran Ketiga
Jml_Bayar_3 Integer(6) Nominal Pembayaran Ketiga
Tgl_Jatuh_Tempo Date Tanggal Jatuh Tempo Pembayaran
Total_Dibayar Integer(6) Nominal yang sudah Dibayar
Jml_Biaya Integer(6) Jumlah Keseluruhan Biaya
Keterangan Varchar(10) Keterangan Pembayaran (Lunas atau Belum)
Tabel 3.7 Tabel Pembayaran
36
8. Tabel User
Tabel user berisi daftar dari setiap user yang dapat masuk kedalam
sistem. Untuk siswa password akan berisi nomor induk siswa. Sedangkan
untuk karyawan, akan memiliki password tersendiri.
Nama Kolom Tipe Data Keterangan
Id_User Integer(3) Nomor User, sebagai Primary Key
Login_As Varchar(25) User Login Sebagai
Password Varchar(10) Password untuk tiap user
Tabel 3.8 Tabel User
III.2.2 Desain Antar Muka (Desain Interface)
Desain antar muka merupakan rancangan halaman yang digunakan oleh user
atau pengguna sistem dalam memasukkan atau menampilkan data-data dari sistem
sehingga terjadi interaksi di keduanya. Desain untuk user dirancang memudahkan
penggunaan sehingga pemakai dapat mengerti langkah demi langkah dalam
pengoperasiannya dalam menampilkan, menginputkan atau mengolah data-data yang
berhubungan dengan sistem. Pada sistem Informasi Nilai Akademik ini, rancangan
sistem antar muka yang akan dibuat adalah sebagai berikut:
37
III.2.2.1 Form Login
Gambar 3.10 Desain Form Login
Pada saat awal sistem dibuka maka muncul halaman tersebut, User diminta
memasukan inputan pada dua textbox diatas, Login As akan diisi dan menekan
tombol login untuk dapat menjalankan sistem, kemudian oleh sistem terdapat proses
pengecekan dari basis data user untuk menentukan hak akses. Namun jika data
inputan yang dimasukkan tidak sesuai maka muncul pesan dibawah ini.
Berupa tampilan pesan kesalahan dan untuk dapat kembali harus menekan tombol
„OK‟ dan kembali kehalaman sebelumnya.
Pesan kesalahan ……
OK
icon
********** Login As
********** Password
MASUK
NEUTRON YOGYAKARTA
SISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
Gambar 3.11 Desain Pesan Kesalahan
Login
38
III.2.2.2 Form Bagian Akademik dan Administrasi
III.2.2.2.a Form Pembuka
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
AKADEMIK ADMINISTRASI
KELUAR
Gambar 3.12 Desain Form Awal
User memilih untuk mengakses data akademik atau data administrasi. Jika
tidak, tombol „keluar‟ akan berfungsi untuk keluar dari halaman tersebut ke halaman
login.
III.2.2.2.b Form Menu Akademik
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
AKADEMIK
KELUAR
LIHAT DATA SISWAPENDAFTARAN
CARI DATA SISWAEDIT DATA SISWA
NILAI
Gambar 3.13 Desain Form Menu Akademik
Saat dipilih tombol „Akademik‟, maka user akan dihadapkan pada menu yang
berhubungan dengan data akademik. Mulai dari pendaftaran, edit data siswa, lihat
data siswa, cari data siswa, dan nilai.
39
III.2.2.2.b.i Form Pendaftaran
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
DATA PRIBADI
DATA ORANGTUA
NIS
NAMA
TTL
ASAL SEKOLAH
KELAS
PROGRAM
KELOMPOK KELAS
FOTO
NAMA ORTU
ALAMAT RUMAH
PEKERJAAN
No. TELP
BATAL SIMPAN LANJUT
Gambar 3.14 Desain Form Pendaftaran
Saat user memilih tombol „Pendaftaran‟ maka akan dihadapkan pada form
untuk mengisi data siswa baru. Kolom NIS sudah akan terisi. Pada form tersebut juga
terdapat 3 tombol, yaitu „batal‟ untuk membatalkan proses, „simpan‟ untuk
menyimpan data siswa, dan „lanjut‟ untuk menuju ke form pembayaran. Kolom
„Kelas‟ diisi tingkat kelas siswa tersebut di sekolah, sedangkan kelompok kelas diisi
kelas pilihan program.
40
III.2.2.2.b.ii Form Edit Data Siswa
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
DATA PRIBADI
DATA ORANGTUA
NIS
NAMA
TTL
ASAL SEKOLAH
KELAS
PROGRAM
KELOMPOK KELAS
FOTO
NAMA ORTU
ALAMAT RUMAH
PEKERJAAN
No. TELP
BATAL SIMPAN
Gambar 3.15 Desain Form Edit Data Siswa
Saat user memilih edit data siswa, maka user akan dihadapkan pada form
seperti di atas. Sebelumnya, user akan diminta untuk mencari data siswa yang akan
diedit. Kolom NIS tidak akan dapat diedit. User akan disediakan dua buah tombol
untuk membatalkan proses atau menyimpan perubahan data.
41
III.2.2.2.b.iii Form Lihat dan Cari Data Siswa
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
KELUARKEMBALI
DATA PRIBADI
KELOMPOK KELAS
NAMA
TTL
ASAL SEKOLAH
KELAS
PROGRAM
NIS
DATA ORANGTUA
NAMA ORTU
ALAMAT RUMAH
PEKERJAAN
No. TELP
Gambar 3.16 Desain Form Lihat dan Cari Data Siswa
Untuk menu lihat dan cari data siswa, sebenarnya saling terkait. Untuk
memudahkan operasi, maka dalam form lihat data siswa akan terdapat juga menu
untuk mencari. Sedangkan pada menu cari, akan terdapat pula form lihat data siswa.
Akan terdapat dua tombol, „lanjut‟ untuk melanjutkan ke form lihat data administrasi,
dan „keluar‟ untuk keluar dari proses.
42
III.2.2.3 Form Menu Nilai
DATA NILAI
KELUAR
LIHAT NILAI
CARI NILAI
INSERT NILAI
EDIT NILAI
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
Gambar 3.17 Desain Form Menu Nilai
Saat user memilih tombol „Nilai‟ pada awal setelah masuk form akademik,
user akan dihadapkan pada form nilai yang berisi menu insert nilai, edit nilai, lihat
nilai, dan cari nilai.
III.2.2.3.a Form Insert Data Nilai
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
NIS
MATA PELAJARAN
JENIS NILAI
NILAI
INSERT DATA NILAI
KELUARSIMPAN
Gambar 3.18 Desain Form Insert Data Nilai
Pada form insert nilai, user pertama memilih NIS sesuai dengan kreiteria
program, kemudian memilih mata pelajaran dan jenis nilai, dan masukkan nilai
kemudian tekan tombol simpan untuk menyimpan data.
43
III.2.2.3.b Form Edit Data Nilai
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
NIS
MATA PELAJARAN
JENIS NILAI
NILAI
EDIT DATA NILAI
KELUARSIMPAN
Gambar 3.19 Desain Form Edit Data Nilai
Untuk proses edit nilai, user memasukkan NIS, kemudian memilih mata
pelajaran dan jenis nilai yang akan diedit, masukkan nilai baru, dan tekan tombol
„simpan‟ untuk menyimpan perubahan yang dilakukan.
III.2.2.3.c Form Lihat dan Cari Data Nilai
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
NIS
DATA NILAI
KELUAR
CARI
MATA PELAJARAN N1 N2 N3 NR
Gambar 3.20 Desain Form Cari Data Nilai
User akan dihadapkan pada form seperti diatas saat memilih menu lihat dan
cari nilai. Konsep yang digunakan sama dengan form lihat dan cari data siswa. Jadi
dalam satu form terdapat 2 fungsi untuk melihat dan mencari data.
44
III.2.2.4 Form Menu Pembayaran
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
DATA PEMBAYARAN
KELUAR
LIHAT DATA PEMBAYARAN
CARI DATA PEMBAYARAN
UPDATE DATA PEMBAYARAN
UPDATE BIAYA BIMBINGAN
LIHAT BIAYA BIMBINGAN
Gambar 3.21 Desain Form Menu Pembayaran
Untuk form pembayaran/administrasi, user dihadapkan pada menu untuk
melihat dan mengupdate biaya bimbingan, mengupdate, melihat, dan mencari data
pembayaran.
III.2.2.4.a Form Lihat Biaya Bimbingan
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
PROGRAM
BIAYA
BIAYA BIMBINGAN
KELUARKEMBALI
Gambar 3.22 Desain Form Lihat Biaya Bimbingan
Form melihat biaya bimbingan adalah seperti diatas, jadi user akan memilih
jenis program, setelah memilih program maka akan muncul biaya dari program
tersebut.
45
III.2.2.4.b Form Update Biaya Bimbingan
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
PROGRAM
BIAYA LAMA
BIAYA BARU
UPDATE BIAYA BIMBINGAN
KELUARBATAL SIMPAN
Gambar 3.23 Desain Form Update Biaya Bimbingan
Form untuk update dapat dilihat seperti diatas, user akan memilih jenis
program, muncul biaya lama, kemudian user memasukkan biaya baru, dan menekan
tombol „simpan‟ untuk menyimpan perubahan, atau „batal‟ untuk membatalkan
proses.
46
III.2.2.4.c Form Pembayaran Pertama dan Update Pembayaran
NIS
No Resi 1
Pembayaran 1
Terbilang
Tanggal Pembayaran 1
No Resi 2
Pembayaran 2
Terbilang
Tanggal Pembayaran 2
No Resi 3
Pembayaran 3
Terbilang
Tanggal Pembayaran 3
Tanggal Jatuh Tempo
Kekurangan Pembayaran
Biaya Bimbingan
Keterangan
KELUARKEMBALI
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
Gambar 3.24 Desain Form Update Pembayaran
Untuk form pembayaran pertama dan update pembayaran akan memiliki
bentuk yang sama. Jadi setelah user memilih siswa, maka akan muncul form seperti
diatas. Untuk setiap pembayaran, akan mengisi no_resi, jumlah dibayar dan
terbilangnya, dan tanggal pembayaran. Kolom „tangal jatuh tempo‟ akan menapilkan,
akan pembayaran berikutnya jatuh tempo. Kolom keterangan akan menampilkan
informasi, apakah pembayaran sudah lunas atau belum.
47
III.2.2.4.d Form Lihat dan Cari Data Pembayaran
CARI
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
DATA PEMBAYARAN
NIS
Tanggal Jatuh Tempo
Kekurangan Pembayaran
Biaya Bimbingan
Keterangan
NIS
No Resi 1
Pembayaran 1
Tanggal Pembayaran 1
PEMBAYARAN 1
No Resi 2
Pembayaran 2
Tanggal Pembayaran 2
PEMBAYARAN 2
No Resi 3
Pembayaran 3
Tanggal Pembayaran 3
PEMBAYARAN 3
Gambar 3.25 Desain Form Cari Data Pembayaran
Pada form ini, kolom yang sebelumnya sudah terisi, tidak dapat dilakukan
pengeditan. Fungsi dari form ini hanya untuk mencari dan melihat data pembayaran
saja.
48
III.2.2.5 Form Siswa
III.2.2.5.a Form Menu Siswa
SELAMAT DATANG
KELUAR
LIHAT DATA NILAI
LIHAT DATA PEMBAYARAN
LIHAT DATA PRIBADI
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
Gambar 3.26 Desain Form Menu Siswa
Form untuk login sebagai siswa akan tertampil seperti diatas. User akan
dihadapkan pada menu untuk melihat data pribadi, data nilai, dan data pembayaran.
III.2.2.5.a.i Form Lihat Data Pribadi Siswa
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
KELUARKEMBALI
DATA PRIBADI
KELOMPOK KELAS
NAMA
TTL
ASAL SEKOLAH
KELAS
PROGRAM
NIS
DATA ORANGTUA
NAMA ORTU
ALAMAT RUMAH
PEKERJAAN
No. TELP
Gambar 3.27 Desain Form Lihat Data Pribadi Siswa
49
Form lihat data pribadi akan tertampil seperti di atas. Dalam form ini, user
tidak bisa mengubah data apapun.
III.2.2.5.a.ii Form Lihat Data Nilai
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
KELUARKEMBALI
MATA PELAJARAN N1 N2 N3 NR
DATA NILAI
NIS
Gambar 3.28 Desain Form Lihat Data Nilai
Form melihat data nilai akan tertampil seperti di atas. User dapat mengetahui
semua nilai dari semua mata pelajaran yang dia ikuti.
50
III.2.2.5.a.iii Form Lihat Data Pembayaran
Gambar 3.29 Desain Form Lihat Data Pembayaran
Form untuk melihat data pembayaran akan terlihat seperti diatas. User akan
dapat mengetahui semua pembayaran yang telah dilakukan dan mengetahui semua
data administrasi user tersebut.
CARI
NEUTRON YOGYAKARTASISTEM INFORMASI AKADEMIK dan ADMINISTRASI
Langkah Pasti Meraih Prestasi
DATA PEMBAYARAN
NIS
Tanggal Jatuh Tempo
Kekurangan Pembayaran
Biaya Bimbingan
Keterangan
NIS
No Resi 1
Pembayaran 1
Tanggal Pembayaran 1
PEMBAYARAN 1
No Resi 2
Pembayaran 2
Tanggal Pembayaran 2
PEMBAYARAN 2
No Resi 3
Pembayaran 3
Tanggal Pembayaran 3
PEMBAYARAN 3
51
III.2.3 Desain Teknologi Secara Terinci
i. Teknologi minimum yang dibutuhkan oleh sistem adalah:
a) Rincian kebutuhan hardware
Server
- Processor pentium IV
- Monitor VGA ke atas
- Kapasitas harddisk 40GB
- RAM 512MB
- LAN card
Client
- Processor pentium IV
- Monitor VGA ke atas
- Kapasitas harddisk minimal 2GB
- RAM minimal 512MB
- LAN card
b) Rincian Kebutuhan Software
Server
- Sistem Operasi Windows 98 keatas
- MySQL basis data
Client
- Sistem Operasi Windows 98 keatas
c) Rincian Kebutuhan Brainware
Minimal menguasai aplikasi under windows.
52
III.2.4 Desain Hak Akses
Hak akses merupakan suatu batasan yang digunakan untuk membatasi
seorang user dalam mengakses sistem. Hak akses ini sangatlah penting dalam suatu
sistem informasi yang memiliki banyak pemakai atau user, dengan adanya hak akses
pemakai tidak dapat mengunakan sistem secara bebas. Hak akses ini disesuaikan
dengan kebutuhan user terhadap sistem.
Dalam sistem informasi akademik dan administrasi ini, berdasarkan
proses–proses dalam sistem maka terdapat berbagai macam hak akses, seperti proses
penginputan data, proses tampil data, proses edit data, proses cari data untuk bagian
staff akademik dan administrasi, dan proses tampil data untuk siswa bimbingan
belajar, sehingga penting dirasakan untuk membuat hak akses tersebut.
53
BAB IV
IMPLEMENTASI
Setelah selesai merancang dan menganalisis sistem yang akan dibuat, langkah
selanjutnya adalah mencoba mengimplementasikan ke dalam bahasa yang dapat
dimengerti oleh mesin. Sistem ini dibuat menggunakan software dan hardware
dengan spesifikasi sebagai berikut :
Spesifikasi Software :
1. Sistem Operasi Windows XP Professional.
2. NetBeans 6.5 RC2.
3. MySQL 5.0.
4. SQLyog.
Spesifikasi Hardware :
1. Prosesor AMD Turion X2 2.0 Ghz.
2. Memori 512 Mb.
3. Hard Disk 160 Gb.
IV.1 Pembuatan Database
Pertama yang dilakukan dalam pembuatan Sistem Informasi Akademik dan
Administrasi Lembaga Bimbingan Belajar(LBB) adalah membuat database terlebih
dahulu. Database yang digunakan dalam pengimplementasian sistem ini adalah
dengan menggunakan MySql database dan menggunakan SQLyog untuk melakukan
pemrosesan query.
Langkah-langkah Pembuatan Database:
1. Membuat database baru pada MySQL lewat SQLyog, yang di dalamnya
mengandung semua tabel-tabel yang dibutuhkan.
54
2. Untuk membuat tabel, mengetik script SQL yaitu create table sesuai dengan
tabel yang diinginkan, dan field yang diinginkan.
Setelah mengetik script SQL, kemudian kita menggunakan program SQLyog
untuk memproses script tersebut sehingga tabel akan berbentuk pada database
MySQL. Dalam database Sistem terdapat 8 tabel yang dibuat sesuai dengan desain
sistem, antara lain :
Database neutron_ta terdiri dari struktur tabel-tabel sebagai berikut :
a. Tabel ambil_program, dibuat dengan sintak SQL:
CREATE TABLE `ambil_program` (
`NIS` varchar(10) NOT NULL,
`Id_Program` varchar(2) NOT NULL default '00',
`Tgl_Daftar` date NOT NULL default '0000-00-00'
);
b. Tabel data_siswa, dibuat dengan sintak SQL sebagai berikut :
CREATE TABLE `data_siswa` (
`NIS` varchar(10) NOT NULL,
`Nama` varchar(150) NOT NULL,
`TTL` varchar(50) NOT NULL,
`Asal_Sekolah` varchar(100) NOT NULL,
`Kelas` varchar(10) NOT NULL,
`Nama_Ortu` varchar(150) NOT NULL,
`Alamat_Rumah` varchar(300) NOT NULL,
`Pekerjaan_Ortu` varchar(50) NOT NULL,
`No_Telp` varchar(20) NOT NULL,
`Foto` varchar(50) NOT NULL,
`Th_Angkatan` varchar(4) NOT NULL,
`Id_Kelas` varchar(2) NOT NULL,
PRIMARY KEY (`NIS`)
);
c. Tabel kelas, dibuat dengan sintak SQL sebagai berikut :
CREATE TABLE `kelas` (
`Id_Kelas` varchar(10) NOT NULL,
`Id_Program` varchar(10) NOT NULL,
`Ruang` varchar(5) NOT NULL,
`Jadwal` varchar(200) NOT NULL,
PRIMARY KEY (`Id_Kelas`,`Id_Program`)
);
55
d. Tabel mapel, dibuat dengan sintak SQL sebagai berikut :
CREATE TABLE `mapel` (
`Id_Mapel` varchar(10) NOT NULL,
`Id_Program` varchar(10) NOT NULL,
`Nama_Mapel` varchar(50) NOT NULL,
PRIMARY KEY (`Id_Mapel`,`Id_Program`)
);
e. Tabel nilai, dibuat dengan sintak SQL sebagai berikut :
CREATE TABLE `nilai` (
`NIS` varchar(10) NOT NULL,
`Id_Program` varchar(10) NOT NULL,
`Id_Kelas` varchar(10) NOT NULL,
`Id_Mapel` varchar(10) NOT NULL,
`N1` int(2) NOT NULL,
`N2` int(2) NOT NULL,
`N3` int(2) NOT NULL,
`NR` int(2) NOT NULL,
`Smster` int(2) NOT NULL
);
f. Tabel pembayaran, dibuat dengan sintak SQL sebagai berikut :
CREATE TABLE `pembayaran` (
`No_Pembayaran` varchar(15) NOT NULL,
`NIS` varchar(10) NOT NULL,
`Tgl_Daftar` date NOT NULL,
`Biaya_Pendaftaran` int(5) NOT NULL,
`Biaya_Bimbingan` int(6) NOT NULL,
`Potongan` int(5) NOT NULL,
`No_Resi_1` varchar(15) NOT NULL,
`Tgl_Bayar_1` date NOT NULL,
`Jml_Bayar_1` int(6) NOT NULL,
`No_Resi_2` varchar(15) NOT NULL,
`Tgl_Bayar_2` date NOT NULL,
`Jml_Bayar_2` int(6) NOT NULL,
`No_Resi_3` varchar(15) NOT NULL,
`Tgl_Bayar_3` date NOT NULL,
`Jml_Bayar_3` int(6) NOT NULL,
`Tgl_Jatuh_Tempo` date NOT NULL,
`Total_Dibayar` int(6) NOT NULL,
`Jml_Biaya` int(6) NOT NULL,
`Keterangan` varchar(15) NOT NULL,
PRIMARY KEY (`No_Pembayaran`)
);
g. Tabel program, dibuat dengan sintak SQL sebagai berikut :
56
CREATE TABLE `program` (
`Id_Program` varchar(10) NOT NULL,
`Nama_Program` varchar(100) NOT NULL,
`Biaya` int(7) NOT NULL,
PRIMARY KEY (`Id_Program`)
);
h. Tabel user, dibuat dengan sintak SQL sebagai berikut :
CREATE TABLE `user` (
`Id_User` varchar(10) NOT NULL,
`Login_As` varchar(20) NOT NULL,
`Password` varchar(10) NOT NULL,
PRIMARY KEY (`Id_User`)
);
4. Hasil terakhir database neutron_ta untuk Sistem Informasi Akademik
dan Administrasi LBB, menggunakan mysql dapat dilihat pada gambar
dibawah ini :
Gambar 4.1 Database Sistem Informasi Akademik dan Administrasi (SQLyog)
IV.2 Setting Koneksi dari Java ke MySql
Implementasi sistem informasi nilai akademik ini menggunakan java dan
MySql sebagai databasenya maka membutuhkan class yang berisi statement yang
digunakan untuk melakukan koneksi dari java ke mysql database. Pada class ini
57
diperlukan melakukan import class ”java.sql.Connection” untuk melakukan koneksi
dari java ke MySql serta ”java.sql.DriverManager” untuk mengidentifikasi driver
dari MySql untuk java, sebelumnya dilakukan penambahan library MySql untuk
java. Berikut adalah listing dari class Koneksi.java :
package NEUTRON;
import javax.swing.*;
import java.sql.Connection;
import java.sql.DriverManager;
public class Koneksi
{
String addr = "jdbc:mysql://localhost:3307/neutron_ta";
Connection sambung;
String user = "root";
String pass = "yayak";
public Koneksi() {}
public void connect()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
sambung = DriverManager.getConnection(addr,user,pass);
} catch(Exception e) {
JOptionPane.showMessageDialog(null,"Koneksi Gagal",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
}
}
}
Listing Program 4.1 Koneksi.java
Class ini akan membuka koneksi tiap kali program dijalankan, inisialisasi
alamat database ditujukan ke localhost lewat port sesuai saat melakukan instalasi
MySql (kali ini memakai port 3306), dengan nama database neutron_ta. Sedangkan
user dan pass diisi sesuai sama dengan sudah didapat dan dibuat saat instalasi MySql.
58
Jika ketiga aspek tersebut sudah benar, maka proses pembanguna koneksi
berhasil, jika ada salah satu yang salah, akan ditampilkan pesan “Koneksi Gagal”,
sebagai tanda bahwa proses pembangunan koneksi tidak berhasil.
IV.3 Pembuatan User Interface
Setelah proses koneksi berhasil, dimulai pembuatan user interface.
Userinterface dibuat agar user (pemakai program) dapat dengan mudah menjalankan
program tersebut.
IV.3.1 Form UTAMA
Gambar 4.2 Form Utama
Gambar 4.2 merupakan interface form utama yang sekaligus sebagai tampilan
awal dari sistem. Pada form di atas terdapat dua buah tombol yaitu ‟LOGIN‟ dan
‟EXIT‟. Tombol ‟LOGIN‟ digunakan untuk masuk ke form login. Sedangkan tombol
‟EXIT‟ digunakan untuk keluar dari sistem. Kode program untuk action dari kedua
button tersebut di atas adalah sebagai berikut :
Action button Login
Action button login ini digunakan untuk masuk ke form login. Listing program
4.2 merupakan listing program untuk action button login.
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
59
FormLogin baru = new FormLogin();
baru.setVisible(true);
}
Listing Program 4.2 Action button login
Action button Exit
Action button exit ini digunakan untuk keluar dari sistem informasi ini. Listing
program 4.3 merupakan listing program untuk action button exit.
private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
System.exit(0);
}
Listing Program 4.3 Action button exit
IV.3.2 Form LOGIN
Gambar 4.3 Form Login
Gambar 4.3 merupakan interface form login dari sistem ini. Form Login
merupakan tampilan awal untuk melakukan validasi username dan password sebelum
user masuk ke dalam sistem informasi. Form ini akan muncul jika user menekan
tombol login pada form utama. Form login ini menyediakan sebuah combo box untuk
status login, pemakai sistem akan memilih dia akan login sebagai ‟siswa‟ atau
‟pegawai‟, field input untuk memasukkan username, field password untuk
memasukkan password, serta dua buah button, yaitu : button login dan butteon
kembali. Button login digunakan untuk memulai validasi login setelah user
memasukan status, username dan password. Jika validasi sukses, maka user akan
60
masuk ke form menu utama. Listing program 4.4 merupakan listing program untuk
action button login
private void LOGIN_ASItemStateChanged(java.awt.event.ItemEvent evt) {
if(LOGIN_AS.getSelectedIndex() == 1) {
status = "SISWA";
} else if(LOGIN_AS.getSelectedIndex() == 2) {
status = "PEGAWAI";
}
}
private void BUTT_LOGINMouseClicked(java.awt.event.MouseEvent evt) {
String pass = new String(IN_PASSW.getPassword());
siswa baru = new siswa();
if(baru.getValidasi(status,IN_USER.getText(),pass)) {
if(LOGIN_AS.getSelectedIndex() == 1) {
this.setVisible(false);
FormMenuSiswa baru1 = new FormMenuSiswa();
baru1.setVisible(true);
baru1.setNis(getNis());
} else if(LOGIN_AS.getSelectedIndex() == 2) {
this.setVisible(false);
FormMenuPegawai baru1 = new FormMenuPegawai();
baru1.setVisible(true);
}
} else {
JOptionPane.showMessageDialog(null,"Anda Tidak bisa Login",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
LOGIN_AS.setSelectedIndex(0);
IN_USER.setText("");
IN_PASSW.setText("");
}
}
Listing Program 4.4 Listing Button Login Form Login
Button yang kedua adalah button back. Button tersebut digunakan untuk
kembali ke form utama. Listing program 4.5 merupakan listing program untuk action
button back
private void BUTT_BACKMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormUtama baru = new FormUtama();
baru.setVisible(true);
}
Listing Program 4.5 Listing Button Back Form Login
61
Untuk dapat melakukan proses validasi login, diperlukan sebuah method untuk
mendapatkan validasi login user adalah method getValidasi(). Method ini terdapat
dalam kelas siswa. Listing program 4.6 merupakan listing program method
getValidasi().
public boolean getValidasi(String a,String b,String c) {
boolean kondisi = false;
query = "select * from user where Login_As= '"+a+"' and Id_User='"+b+"'
and " + "Password='"+c+"';";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
while(RS.next()) {
kondisi = true;
}
return kondisi;
} catch(Exception e) {
kondisi = false;
}
return kondisi;
}
Listing Program 4.6 method getValidasi
Jika login salah, baik username dan atau passwordnya, maka akan muncul
peringatan seperti pada gambar 4.4 berikut
Gambar 4.4 Pesan Tidak Bisa Login
IV.3.3 Form Menu Siswa
62
Gambar 4.5 Form Menu Siswa
Gambar 4.5 merupakan halaman menu untuk siswa, setelah melakukan login
dengan username dan password yang benar. Pada form tersebut siswa tinggal memilih
menu button yang tersedia, yaitu data pribadi, data nilai, data pembayaran dan ubah
password. Listing program 4.7 merupakan listing program untuk tiap menu button
yang ada :
// Action untuk button DATA PRIBADI
private void BUTT_DT_PRBMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormDataDiri dtD = new FormDataDiri();
dtD.setVisible(true);
dtD.setNis(getNis());
}
// Action untuk button DATA NILAI
private void BUTT_DT_NILAIMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormDataNilaiSiswa dtN = new FormDataNilaiSiswa();
dtN.setVisible(true);
dtN.setNis(getNis());
}
// Action untuk button DATA BAYAR
private void BUTT_DT_BYRMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormDataBayar dtB = new FormDataBayar();
dtB.setVisible(true);
dtB.setNis(getNis());
}
63
// Action untuk button UBAH PASSWORD
private void PASSWDMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormRubahPasswordSiswa dtN = new FormRubahPasswordSiswa();
dtN.setVisible(true);
dtN.setNis(getNis());
}
// Action untuk button KELUAR
private void BUTT_KELUARMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormUtama bru = new FormUtama();
bru.setVisible(true);
}
Listing Program 4.7 Action Button Menu Form Menu Siswa
IV.3.3.a Form Lihat Data Pribadi
64
Gambar 4.6 Form Lihat Data Pribadi
Gambar 4.6 merupakan form untuk melihat data pribadi siswa. Form ini akan
muncul setelah siswa menekan menu button „DATA PRIBADI‟. Form ini berisi
keseluruhan data pribadi siswa. Siswa tidak diperkenankan untuk merubah data
sendiri. Berikut adalah listing program untuk menampilkan data tersebut :
private void IN_NISCaretUpdate(javax.swing.event.CaretEvent evt) {
siswa baru = new siswa();
String[] data = new String[12];
data = baru.getDataSiswa(IN_NIS.getText());
Nama.setText(data[1]);
TTL.setText(data[2]);
Asl_Sklh.setText(data[3]);
Kelas.setText(data[4]);
Nama_Ortu.setText(data[5]);
Almt.setText(data[6]);
Pkrjan.setText(data[7]);
No_Tlp.setText(data[8]);
IN_FOTO.setIcon(new javax.swing.ImageIcon("D:\\Neutron
TA\\Gambar\\"+data[9]));
Klp_Kelas.setText(data[10]);
Prog.setText(data[11]);
}
// NIS didapat dari nilai passing sewaktu login
Listing Program 4.8 Action field NIS Form Lihat Data Siswa
Untuk mendapatkan informasi data siswa ini diperlukan kelas koneksi.java
untuk melakukan koneksi ke database dan method getDataSiswa pada kelas
siswa.java untuk memanggil stored procedure yang tersimpan di database. Listing
program 4.9 adalah listing program method getDataSiswa yang terdapat pada kelas
siswa.java
public String[] getDataSiswa(String a) {
String[] data=new String[12];
query = "call get_data_siswa('"+a+"');";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
while(RS.next()) {
65
data[0] = RS.getString(1);
data[1] = RS.getString(2);
data[2] = RS.getString(3);
data[3] = RS.getString(4);
data[4] = RS.getString(5);
data[5] = RS.getString(6);
data[6] = RS.getString(7);
data[7] = RS.getString(8);
data[8] = RS.getString(9);
data[9] = RS.getString(10);
data[10] = RS.getString(11);
data[11] = RS.getString(12);
}
ST.close();
return data;
} catch(Exception e) {
System.out.print("error get data siswa");
}
return null;
}
Listing Program 4.9 method getDataSiswa
Listing program 4.10 adalah listing program stored procedure get_data_siswa.
Stored procedure ini digunakan untuk menampilkan data siswa yang tersimpan pada
database.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`get_data_siswa`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_data_siswa`(in_nis
varchar(10))
BEGIN
select a.NIS,upper(a.Nama),upper(a.TTL),upper(a.Asal_Sekolah),a.Kelas,
upper(a.Nama_Ortu),upper(a.Alamat_Rumah),upper(a.Pekerjaan_Ortu),a.No_Telp,a.Foto,
a.Id_Kelas,c.Nama_Program from data_siswa a,ambil_program b,
program c where a.NIS=b.NIS and b.Id_Program=c.Id_Program
and a.NIS = in_nis;
END$$
DELIMITER ;
Listing Program 4.10 Store Procedure get_data_siswa
IV.3.3.b Form Lihat Data Nilai
66
Gambar 4.7 Form Lihat Data Nilai
Gambar 4.7 merupakan form untuk melihat data nilai siswa. Form ini akan
muncul setelah siswa menekan menu button „DATA NILAI‟. Form ini berisi
keseluruhan data nilai siswa (per semester) yang tercatat. Untuk melihat nilai, siswa
sebelumnya harus memilih „Semester‟ yang dikehendaki siswa. Berikut adalah listing
program yang bertugas menampilkan data nilai tersebut :
private void semBoxItemStateChanged(java.awt.event.ItemEvent evt) {
if(semBox.getSelectedIndex() == 1) {
sem = "1";
TabelNilai.setModel(new Nilai(IN_NIS.getText(),sem));
} else
sem = "2";
TabelNilai.setModel(new Nilai(IN_NIS.getText(),sem));
}
Listing Program 4.11 Action Combo Box Semester
Untuk dapat menampilkan informasi data nilai ini diperlukan kelas
koneksi.java untuk melakukan koneksi ke database dan kelas Nilai.java konstruktor
Nilai(NIS,sem) method getNilai untuk memanggil stored procedure yang tersimpan di
database. Stored procedure yang dimaksud adalah stored procedure siswa_nilai.
Listing program 4.12 adalah listing program method getNilai yang terdapat pada kelas
Nilai.java
67
public void getNilai(String a, String b) {
query = "call siswa_nilai('"+a+"','"+b+"');";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
while(RS.next()) {
Object[] r =
{
RS.getString(1), RS.getString(2),
RS.getString(3), RS.getString(4), RS.getString(5)
};
bar.addElement(r);
r=null;
}
} catch(Exception e) {
System.out.print("error");
}
}
Listing Program 4.12 Method getNilai
Listing program 4.13 adalah listing program stored procedure siswa_nilai.
Stored procedure ini digunakan untuk menampilkan data nilai seorang siswa yang
tersimpan pada database.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`siswa_nilai`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `siswa_nilai`(p_no varchar(10),p_sms
varchar(2))
BEGIN
declare pr varchar(2);
select substr(p_no,1,2) into pr;
select b.Nama_Mapel,a.N1,a.N2,a.N3,a.NR from nilai a, mapel b
where NIS=p_no and Smster=p_sms and a.Id_Mapel=b.Id_Mapel
and b.Id_Program=pr;
END$$
DELIMITER ;
Listing Program 4.13 Store Procedure siswa_nilai
IV.3.3.c Form Lihat Data Bayar
68
Gambar 4.8 Form Lihat Data Pembayaran
Gambar 4.8 merupakan form untuk melihat data pembayaran siswa. Form ini
akan muncul setelah siswa menekan menu button „DATA BAYAR‟. Form ini berisi
keseluruhan data pembayaran siswa yang tercatat. Berikut adalah listing program
yang bertugas menampilkan data pembayaran tersebut :
private void IN_NISCaretUpdate(javax.swing.event.CaretEvent evt) {
bayar sis = new bayar();
String[] data = new String[15];
data = sis.getDataBayarSiswa(IN_NIS.getText());
NoBayar.setText(data[1]);
Resi1.setText(data[2]);
Bayar1.setText(data[3]);
Tgl1.setText(data[4]);
Resi2.setText(data[5]);
Bayar2.setText(data[6]);
Tgl2.setText(data[7]);
Resi3.setText(data[8]);
Bayar3.setText(data[9]);
Tgl3.setText(data[10]);
Tempo.setText(data[11]);
Kurang.setText(data[12]);
Biaya_Bimb.setText(data[13]);
Keterangan.setText(data[14]);
69
}
Listing Program 4.14 Action field NIS Form Lihat Data Bayar
Untuk dapat menampilkan informasi data bayar ini diperlukan kelas
koneksi.java untuk melakukan koneksi ke database dan kelas bayar.java method
getDataBayarSiswa untuk memanggil stored procedure yang tersimpan di database.
Stored procedure yang dimaksud adalah stored procedure siswa_bayar. Listing
program 4.15 adalah listing program method getDataBayarSiswa yang terdapat pada
kelas bayar.java
public String[] getDataBayarSiswa(String a) {
String[] data=new String[15];
query = "call siswa_bayar('"+a+"');";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
while(RS.next()) {
data[0] = RS.getString(1);
data[1] = RS.getString(2);
data[2] = RS.getString(3);
data[3] = RS.getString(4);
data[4] = RS.getString(5);
data[5] = RS.getString(6);
data[6] = RS.getString(7);
data[7] = RS.getString(8);
data[8] = RS.getString(9);
data[9] = RS.getString(10);
data[10] = RS.getString(11);
data[11] = RS.getString(12);
data[12] = RS.getString(13);
data[13] = RS.getString(14);
data[14] = RS.getString(15);
}
ST.close();
return data;
} catch(Exception e) {
System.out.print("error get data bayar siswa");
}
return null;
}
70
Listing Program 4.15 Listing Method getDataBayarSiswa
Listing program 4.16 adalah listing program stored procedure siswa_bayar.
Stored procedure ini digunakan untuk menampilkan data bayar seorang siswa yang
tersimpan pada database.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`siswa_bayar`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `siswa_bayar`(p_no varchar(10))
BEGIN
select NIS,No_Pembayaran,No_Resi_1,Jml_Bayar_1,Tgl_Bayar_1,
No_Resi_2,Jml_Bayar_2,Tgl_Bayar_2,No_Resi_3,Jml_Bayar_3,Tgl_Bayar_3,
Tgl_Jatuh_Tempo,Jml_Biaya-Total_Dibayar as Kekurangan,
Biaya_Bimbingan,Keterangan
from pembayaran where NIS=p_no;
END$$
DELIMITER ;
Listing Program 4.16 Store Procedure siswa_bayar
IV.3.3.d Form Rubah Password Siswa
Gambar 4.9 Form Rubah Password
Gambar 4.9 merupakan form untuk melihat data pembayaran siswa. Form ini
akan muncul setelah siswa menekan menu button „UBAH PASSWORD. Form ini
berfungsi untuk mengubah password user (siswa). Ketiga data (password lama,
password baru, dan ulang password baru) harus diisi semua, dan harus benar, dengan
71
ketentuan bahwa password baru panjangnya tidak lebih dari 10 karakter. Berikut
adalah listing program yang bertugas memproses perubahan password tersebut :
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
if(jPasswordField1.getText().compareTo("")<1 ||
jPasswordField2.getText().compareTo("")<1 ||
jPasswordField3.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"ISI LENGKAP PASSWORD",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
jPasswordField1.setText("");
jPasswordField2.setText("");
jPasswordField3.setText("");
} else if(jPasswordField1.getPassword().toString().compareTo("")>1 &&
jPasswordField2.getPassword().toString().compareTo("")>1 &&
jPasswordField3.getPassword().toString().compareTo("")>1) {
siswa br = new siswa();
String pas;
pas=br.getPassword(NIS);
System.out.println(pas);
if(jPasswordField1.getText().compareTo(pas)<1) {
if(jPasswordField2.getText().compareTo(jPasswordField3.getText())<1) {
siswa baru = new siswa();
baru.RubahPassword(NIS,jPasswordField1.getText(),
jPasswordField2.getText());
this.setVisible(false);
FormUtama ba = new FormUtama();
ba.setVisible(true);
} else {
JOptionPane.showMessageDialog(null,"VALIDASI PASSWORD BARU
GAGAL","MESSAGE",JOptionPane.ERROR_MESSAGE );
jPasswordField1.setText("");
jPasswordField2.setText("");
jPasswordField3.setText("");
}
}
else {
JOptionPane.showMessageDialog(null,"VALIDASI PASSWORD LAMA
GAGAL","MESSAGE",JOptionPane.ERROR_MESSAGE );
jPasswordField1.setText("");
jPasswordField2.setText("");
jPasswordField3.setText("");
}
}
}
Listing Program 4.17 Listing Program Button Proses Form Rubah Password
72
Untuk dapat menjalankan listing program 4.17 tersebut, diperlukan kelas
koneksi.java untuk melakukan koneksi ke database dan method RubahPassword dan
getPassword untuk validasi password lamapada kelas siswa.java untuk memanggil
stored procedure yang tersimpan di database. Stored procedure yang dimaksud adalah
stored procedure RubahPasswordSiswa. Listing program 4.18 adalah listing program
method getPassword dan RubahPassword.
public String getPassword(String a) {
String name=null;
query = "call get_password('"+a+"');";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
while(RS.next()) {
name = RS.getString(1);
}
return name;
} catch(Exception e) {
System.out.print("error get password");
}
return name;
}
public void RubahPassword(String a,String b,String c) {
query = "call RubahPasswordSiswa('"+a+"','"+b+"','"+c+"');";
try {
conn.connect();
Statement ST = conn.sambung.createStatement();
ST.executeUpdate(query);
ST.close();
conn.sambung.close();
JOptionPane.showMessageDialog(null,"Rubah Password Berhasil, Silakan LOGIN
KEMBALI",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
} catch(Exception esql) {
JOptionPane.showMessageDialog(null,"!!!Operasi Gagal!!!",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
}
}
Listing Program 4.18 Listing Method RubahPassword
73
Listing program 4.19 adalah listing program stored procedure
RubahPasswordSiswa. Stored procedure ini digunakan untuk mengubah password
lama seorang siswa, sesuai password yang diingini siswa tersebut.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`RubahPasswordSiswa`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `RubahPasswordSiswa`
(id varchar(10),pass_lama varchar(10),pass_baru varchar(10))
BEGIN
update user set Password=pass_baru where Id_User=id;
END$$
DELIMITER ;
Listing Program 4.19 Strore Procedure RubahPasswordSiswa
IV.3.4 Form Menu Pegawai (Login Sebagai Pegawai)
Gambar 4.10 Form Menu Pegawai
Gambar 4.10 adalah interface menu untuk pegawai. Form ini akan ditampilkan
jika status login user adalah sebagai pegawai. Dari gambar 4.10 dapat dilihat hak-hak
yang diberikan oleh sistem kepada pegawai. Diwujudkan dalam bentuk button menu.
Yaitu button akademik dan button administrasi, button akademik akan menuju pada
form menu akademik, sedangkan button administrasi akan menuju pada form menu
administrasi. Listing program 4.20 merupakan listing program untuk button menu
yang tersedia.
74
// Action Button AKADEMIK
private void BUTT_AKDMMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormAkademik akdm = new FormAkademik();
akdm.setVisible(true);
}
// Action Button ADMINISTRASI
private void BUTT_ADMNMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormAdministrasi admn = new FormAdministrasi();
admn.setVisible(true);
}
Listing Program 4.20 Action Button-Button Menu Form Menu Pegawai
IV.3.4.A Form Menu Akademik
Gambar 4.11 Form Menu Akademik
Gambar 4.11 adalah interface form menu akademik. Form ini memiliki button
menu yang berhubungan tentang akademik, yaitu button pendaftaran untuk menuju
form pendaftaran, button data siswa untuk menuju form data siswa dan button nilai
untuk menuju form nilai. Listing program 4.21 merupakan listing program untuk
button menu yang tersedia.
// Action Button PENDAFTARAN
private void BUTT_DAFTARMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormPendaftaran baru = new FormPendaftaran();
baru.setVisible(true);
75
}
// Action Button NILAI
private void BUTT_NILAIMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormMenuNilai baru = new FormMenuNilai();
baru.setVisible(true);
}
// Action Button DATA SISWA
private void BUTT_DATA_SISWAMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormMenuDataSiswa baru = new FormMenuDataSiswa();
baru.setVisible(true);
}
Listing Program 4.21 Action Button-Button Menu Form Menu Akademik
IV.3.4.A.a Form Pendaftaran
Gambar 4.12 Form Pendaftaran
Gambar 4.12 adalah interface form pendaftaran. Form ini digunakan jika
pegawai melakukan proses pendaftaran siswa bimbingan. Pegawai diwajibkan
mengisi field-field yang tersedia seperti yang terlihat pada gambar 4.12. Field-field
tersebut kesemuanya diisi dengan huruf balok. Hal ini dilakukan untuk keseragaman
76
data yang disimpan. Proses pendaftaran, dimulai dengan memasukkan foto siswa,
pencarian foto siswa menggunakan tombol „BROWSE‟. Listing program 4.22
merupakan listing program untuk button browse.
private void BUTT_BROWSEMouseClicked(java.awt.event.MouseEvent evt) {
FormBrowse fsfOpen = new FormBrowse();
returnValOpen = fsfOpen.jFileChooser1.showOpenDialog(this);
File f;
FileInputStream fis;
if (returnValOpen == JFileChooser.APPROVE_OPTION) {
// Ambil file yang dipilih...
f = fsfOpen.jFileChooser1.getSelectedFile();
// Buat file-input-stream...
try {
fis = new FileInputStream(f);
} catch (FileNotFoundException fe) {
fe.printStackTrace();
return;
}
foto.setText(f.getName());
IN_FOTO.setIcon(new javax.swing.ImageIcon("D:\\Neutron
TA\\Gambar\\"+f.getName()));
}
}
Listing Program 4.22 Action Button BROWSE
Setelah user mengisi semua data, pegawai tinggal menekan tombol proses. Maka
sistem akan secara otomatis memproses data tersebut dan menyimpannya ke dalam
database. Jika masih ada data yang belum dimasukkan, atau terdapat kekeliruan
penulisan nama dan ataupun nomor telepon, sistem akan memberikan peringatan.
Listing program 4.23 adalah listing program untuk action button proses.
if(IN_NAMA.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Nama Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(IN_TEMPAT.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Tempat Lahir Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(jDateChooser1.getDate()==null) {
JOptionPane.showMessageDialog(null,"Tanggal Lahir Belum Diisi",
77
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(IN_ASL.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Asal Sekolah Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Kelas.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"Kelas Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(IN_ORT.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Nama Orang Tua Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(IN_ALM.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Alamat Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(KLP_KRJ.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"Pekerjaan Orang Tua Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(foto.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Foto Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(KLP_KELAS.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"Kelompok Kelas Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
Calendar c = jDateChooser1.getCalendar();
int bulan = c.get(c.MONTH)+1;
int day = c.get(c.DATE);
String bln="";
String hr="";
if(bulan < 10)
bln = "0"+bulan;
else
bln = ""+bulan;
if(day < 10)
hr = "0"+c.get(c.DATE);
else
hr = ""+c.get(c.DATE);
IN_TTL = IN_TEMPAT.getText()+","+hr+"-"+bln+"-"+c.get(c.YEAR);
int tlp;
tlp = Integer.parseInt(IN_TLP.getText());
siswa baru = new siswa();
baru.TambahSiswa(IN_NAMA.getText(),IN_TTL,IN_ASL.getText(),IN_KLS,
IN_ORT.getText(),IN_ALM.getText(),IN_KRJ,tlp,
foto.getText(),PROGRAM1.getSelectedItem().toString(),IN_KLP);
78
this.setVisible(false);
FormBayarDaftar bdf = new FormBayarDaftar();
bdf.setVisible(true);
bdf.setNama(getNama());
}
Listing Program 4.23 Action Button PROSES Pendaftaran
Listing 4.24 berisi contoh handler yang terdapat pada kolom nama, tempat
lahir, nama orangtua, dan nomor telepon untuk menghindari kesalahan penulisan.
// Action Handler Untuk Field Nama (digunakan juga pada field Tempat Lahir
// dan Nama Orangtua
private void IN_NAMACaretUpdate(javax.swing.event.CaretEvent evt) {
int z = IN_NAMA.getSelectionEnd();
int a = 0;
for(int i=0;i<z;i++) {
try {
if(IN_NAMA.getText(i, 1).compareTo(" ")<1) {
a=0;
} else if(IN_NAMA.getText(i, 1).compareTo("1")<1) {
a=a+1;
} else if(IN_NAMA.getText(i, 1).compareTo("2")<1) {
a=a+1;
} else if(IN_NAMA.getText(i, 1).compareTo("3")<1) {
a=a+1;
} else if(IN_NAMA.getText(i, 1).compareTo("4")<1) {
a=a+1;
} else if(IN_NAMA.getText(i, 1).compareTo("5")<1) {
a=a+1;
} else if(IN_NAMA.getText(i, 1).compareTo("6")<1) {
a=a+1;
} else if(IN_NAMA.getText(i, 1).compareTo("7")<1) {
a=a+1;
} else if(IN_NAMA.getText(i, 1).compareTo("8")<1) {
a=a+1;
} else if(IN_NAMA.getText(i, 1).compareTo("9")<1) {
a=a+1;
} else if(IN_NAMA.getText(i, 1).compareTo("0")<1) {
a=a+1;
} else {
a=0;
}
} catch (BadLocationException ex) {
Logger.getLogger(FormPendaftaran.class.getName()).log(Level.SEVERE,
null, ex);
}
if(a==1) {
79
JOptionPane.showMessageDialog(null,"Keliru Penulisan Nama",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
}
}
}
// Action Handler Pada Field Nomor Telepon
private void IN_TLPCaretUpdate(javax.swing.event.CaretEvent evt) {
// TODO add your handling code here:
int z = IN_TLP.getSelectionEnd();
int a = 0;
for(int i=0;i<z;i++) {
try {
if(IN_TLP.getText(i, 1).compareTo(" ")<1) {
a=1;
} else if(IN_TLP.getText(i, 1).compareTo("1")<1) {
a=0;
} else if(IN_TLP.getText(i, 1).compareTo("2")<1) {
a=0;
} else if(IN_TLP.getText(i, 1).compareTo("3")<1) {
a=0;
} else if(IN_TLP.getText(i, 1).compareTo("4")<1) {
a=0;
} else if(IN_TLP.getText(i, 1).compareTo("5")<1) {
a=0;
} else if(IN_TLP.getText(i, 1).compareTo("6")<1) {
a=0;
} else if(IN_TLP.getText(i, 1).compareTo("7")<1) {
a=0;
} else if(IN_TLP.getText(i, 1).compareTo("8")<1) {
a=0;
} else if(IN_TLP.getText(i, 1).compareTo("9")<1) {
a=0;
} else if(IN_TLP.getText(i, 1).compareTo("0")<1) {
a=0;
} else {
a=1;
}
//System.out.println(""+a);
} catch (BadLocationException ex) {
Logger.getLogger(FormPendaftaran.class.getName()).log(Level.SEVERE,
null, ex);
}
if(a==1) {
JOptionPane.showMessageDialog(null,"Keliru Penulisan NOMOR
TELEPON","MESSAGE",JOptionPane.ERROR_MESSAGE );
}
80
}
}
Listing Program 4.24 Action Handler Form Pendaftaran
Untuk dapat menjalankan listing program 4.23 tersebut, diperlukan kelas
koneksi.java untuk melakukan koneksi ke database dan method TambahSiswa pada
kelas siswa.java untuk memanggil stored procedure yang tersimpan di database.
Stored procedure yang dimaksud adalah stored procedure cba_add_siswa. Listing
program 4.25 adalah listing program method TambahSiswa.
public void TambahSiswa(String a,String b,String c,String d,String e,String f,String
g,int h,String i,String j,String k) {
query = "call
cba_add_siswa('"+a+"','"+b+"','"+c+"','"+d+"','"+e+"','"+f+"','"+g+"','"+h+"','"+i+"',
'"+j+"','"+k+"');";
try {
conn.connect();
Statement ST = conn.sambung.createStatement();
ST.executeUpdate(query);
ST.close();
conn.sambung.close();
JOptionPane.showMessageDialog(null,"Data Siswa Berhasil Ditambahkan",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
} catch(Exception esql) {
JOptionPane.showMessageDialog(null,"!!!Operasi Gagal!!!",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
}
}
Listing Program 4.25 Method Tambah Siswa
Berikut adalah listing program 4.26 yang merupakan listing program stored
procedure cba_add_siswa.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`cba_add_siswa`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `cba_add_siswa`(p_nama varchar(150), p_ttl
varchar(50), p_sklh varchar(50), p_kls varchar(10), p_ortu varchar(150),
p_almt varchar(300), p_krj varchar(50), p_tlp varchar(20), p_gb varchar(50), p_prog
varchar(20),p_klp varchar(1))
BEGIN
declare v_th varchar(4);
declare v_dt date;
declare p_no,num,in_NIS,num1,v_id varchar(10);
select substr(now(),1,10) into v_dt;
select substr(now(),1,4) into v_th;
81
if p_prog='SLD 1 SMA' then set p_no=concat('01',substr(now(),1,2));
elseif p_prog='SLD 2 SMA IPA' then set p_no=concat('02',substr(now(),1,2));
elseif p_prog='SLD 2 SMA IPS' then set p_no=concat('03',substr(now(),1,2));
elseif p_prog='SLD 3 SMA IPA' then set p_no=concat('04',substr(now(),1,2));
elseif p_prog='SLD 3 SMA IPS' then set p_no=concat('05',substr(now(),1,2));
elseif p_prog='Program Minggu 3 SMA IPA' then set p_no=concat('06',substr(now(),1,2));
elseif p_prog='Program Minggu 3 SMA IPS' then set p_no=concat('07',substr(now(),1,2));
elseif p_prog='SPMB 3 IPA' then set p_no=concat('08',substr(now(),1,2));
elseif p_prog='SPMB 3 IPS' then set p_no=concat('09',substr(now(),1,2));
elseif p_prog='PIKPU Murni 3 IPA' then set p_no=concat('10',substr(now(),1,2));
elseif p_prog='PIKPU Murni 3 IPS' then set p_no=concat('11',substr(now(),1,2));
else set p_no=concat('12',substr(now(),1,2));
end if;
select NIS from data_siswa where substr(NIS,1,4)=p_no order by NIS desc limit 1
into num;
if num is NOt NULL then set num1=concat('0',num+1);
else
set num1=concat(p_no,'001');
end if;
select Id_Program from program where Nama_Program=p_prog into v_id;
insert into data_siswa
values(num1,p_nama,p_ttl,p_sklh,p_kls,p_ortu,p_almt,p_krj,p_tlp,p_gb,v_th,p_klp);
insert into ambil_program values(num1,v_id,v_dt);
call gen_nilai(num1,v_id,p_klp);
END$$
DELIMITER ;
Listing Program 4.26 Store Procedure Tambah Data Siswa
Dari listing 4.26 tersebut, dapat dilihat bahwa store procedure itu akan
melakukan insert pada tabel siswa, tabel ambil_program, nilai. Akan terlihat listing
4.26 tersebut masih melakukan pemanggilan store procedure lain, yaitu gen_nilai
yang berfungsi untuk mengenerate daftar nilai siswa. Listing program 4.27 adalah
listing program stored procedure gen_nilai.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`gen_nilai`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `gen_nilai`(p_no varchar(10),p_prog
varchar(2),p_klp varchar(2))
BEGIN
declare a,b varchar(10);
declare done int default 0;
declare cur1 cursor for select Id_Mapel from mapel where Id_Program=p_prog;
declare continue handler for sqlstate '02000' set done = 1;
82
select NIS from data_siswa where NIS=p_no into b;
open cur1;
repeat
fetch cur1 into a;
if not done then
insert into nilai set
NIS=b,Id_Program=p_prog,Id_Mapel=a,Id_Kelas=p_klp,Smster='1';
insert into nilai set
NIS=b,Id_Program=p_prog,Id_Mapel=a,Id_Kelas=p_klp,Smster='2';
end if;
until done end repeat;
close cur1;
END$$
DELIMITER ;
Listing Program 4.27 Store Procedure Generate Nilai
Untuk menambahkan data pembayaran dan user (untuk login siswa), dilakukan lewat
trigger. Untuk trigger add_user, disematkan pada table data_siswa, sedangkan trigger
program_bayar, disematkan pada table ambil_program. Berikut listing 4.28 dan 4.29
berturut-turut adalah lisitng program untuk trigger add_user dan add_program_bayar.
DELIMITER $$
DROP TRIGGER `neutron_ta`.`add_user`$$
create trigger `neutron_ta`.`add_user` AFTER INSERT on `neutron_ta`.`data_siswa`
for each row BEGIN
insert into user values (new.NIS,'Siswa',new.NIS);
END;
$$
DELIMITER ;
Listing Program 4.28 Trigger add_user
DELIMITER $$
DROP TRIGGER `neutron_ta`.`program_bayar`$$
create trigger `neutron_ta`.`program_bayar` AFTER INSERT on
`neutron_ta`.`ambil_program`
for each row BEGIN
declare v_noByr varchar(10);
declare v_biaya int(6);
select ifnull((select max(No_Pembayaran)+1 from
pembayaran),concat('111',substr(now(),3,2),'001')) into v_noByr;
select Biaya from program where Id_Program=new.Id_Program into v_biaya;
insert into pembayaran set No_pembayaran=v_noByr, NIS=new.NIS,
Tgl_Daftar=substr(now(),1,10),
Tgl_Jatuh_Tempo=substr((date_add(now(),interval 30
day)),1,10),Biaya_Bimbingan=v_biaya,Jml_Biaya=v_biaya,Keterangan='BELUM BAYAR';
END;
83
$$
DELIMITER ;
Listing Program 4.29 Trigger program_bayar
IV.3.4.A.a.i Form Pembayaran Biaya Pendaftaran dan Biaya Bimbingan
Gambar 4.13 Form Bayar Daftar
Gambar 4.13 adalah interface form bayar daftar. Form ini akan muncul setelah
proses pendaftaran siswa berhasil. Nama siswa yang baru saja terdaftar, akan muncul
pada field „NAMA‟, dari nama tersebut, akan muncul data dari siswa pada table
dibawahnya, hal ini digunakan untuk memperkecil kesalahan query untuk mencari
NIS. Setelah diketahui dengan pasti, pegawai memilih data siswa pada table yang
selanjutnya data bayar siswa tersebut akan muncul pada field-field yang telah tersedia.
Pada form ini, terdapat proses untuk melakukan pembayaran biaya daftar dan
penentuan potongan biaya yang didapat siswa, dan proses pembayaran biaya
bimbingan yang hanya dapat dilakukan setelah melakukan pembayaran pendaftaran.
Berikut adalah listing 4.30 yang merupakan listing program untuk button proses biaya
daftar dan button proses untuk pembayaran bimbingan.
// Action BUTTON PEMBAYARAN PENDAFTARAN
private void BUTT_BAYAR_DAFTARMouseClicked(java.awt.event.MouseEvent evt) {
if(B_Dftar.getText().compareTo("")<1) {
84
JOptionPane.showMessageDialog(null,"ISI BIAYA DAFTAR",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(dft!=0) {
JOptionPane.showMessageDialog(null,"SUDAH BAYAR PENDAFTARAN dan
MENDAPATKAN POTONGAN","MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
bayar byr = new bayar();
byr.BayarDaftar(NIS.getText(),B_Dftar.getText(),Potongan.getText());
}
bayar bay = new bayar();
String[] data = new String[1];
data = bay.getMinBayar(NIS.getText());
MinCil.setText(data[0]);
bayar bar = new bayar();
String[] dat = new String[5];
dat = bar.getDataBayar(NIS.getText());
No_Bayar.setText(dat[0]);
Tempo.setText(dat[1]);
Biaya_Bimb.setText(dat[2]);
B_Dftar.setText(dat[3]);
Potongan.setText(dat[4]);
}
// Action BUTTON PROSES PEMBAYARAN BIMBINGAN
private void BUTT_BAYAR_1MouseClicked(java.awt.event.MouseEvent evt) {
bayar byr = new bayar();
int aa = Integer.parseInt(Biaya_Bimb.getText());
int ab = Integer.parseInt(Potongan.getText());
int a = aa-ab;
int b = 0;
if(Jum_Bayar.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"MASUKKAN NOMINAL UANG YANG
DIBAYARKAN","MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Jum_Bayar.getText().compareTo("")>1) {
b = Integer.parseInt(Jum_Bayar.getText());
if(b>a) {
JOptionPane.showMessageDialog(null,"PEMBAYARAN TERLALU
BESAR","MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(b<a/2) {
JOptionPane.showMessageDialog(null,"PEMBAYARAN TERLALU
KECIL","MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if (Terbilang.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"TULIS DENGAN HURUF NOMINAL
UANG YANG DIBAYAR","MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
int z=Integer.parseInt(Jum_Bayar.getText());
int y=Integer.parseInt(Potongan.getText());
85
int x=Integer.parseInt(Biaya_Bimb.getText());
byr.BayarPertama(Jum_Bayar.getText(), NIS.getText());
if((x-y)==z) {
JOptionPane.showMessageDialog(null,"PEMBAYARAN LUNAS",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
}
this.setVisible(false);
FormAkademik baru = new FormAkademik();
baru.setVisible(true);
}
}
}
Listing Program 4.30 Action Button Bayar Pendaftaran dan Bayar Bimbingan
Untuk dapat menjalankan listing program 4.30 tersebut, diperlukan kelas
koneksi.java untuk melakukan koneksi ke database dan method BayarDaftar untuk
memproses data biaya pendaftaran dan BayarPertama untuk melakukan proses
pembayaran biaya bimbingan, pada kelas bayar.java untuk memanggil stored
procedure yang tersimpan di database. Listing program 4.31 dan 4.32 adalah listing
program method BayarDaftar dan BayarPertama.
public void BayarDaftar(String a,String b,String c) {
query = "call bayar_dft_pot('"+a+"',"+b+","+c+");";
try {
conn.connect();
Statement ST = conn.sambung.createStatement();
ST.executeUpdate(query);
ST.close();
conn.sambung.close();
JOptionPane.showMessageDialog(null,"Sudah Bayar Pendaftaran",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
} catch(Exception esql) {
JOptionPane.showMessageDialog(null,"!!!Operasi Gagal!!!",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
}
}
Listing Program 4.31 Method BayarDaftar
public void BayarPertama(String b,String d) {
query = "call bayar_1st("+b+",'"+d+"');";
try {
conn.connect();
Statement ST = conn.sambung.createStatement();
86
ST.executeUpdate(query);
ST.close();
conn.sambung.close();
JOptionPane.showMessageDialog(null,"Pembayaran Berhasil",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
} catch(Exception esql) {
JOptionPane.showMessageDialog(null,"!!!Operasi Gagal!!!",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
}
}
Listing Program 4.32 Method BayarPertama
Method bayar daftar (listing 4.31) dan bayar pertama (listing 4.32) berfungsi untuk
memanggil store procedure yang akan memproses kedalam database. Berikut listing
4.33 dan 4.34 berturut-turut adalah lisitng program untuk store procedure
bayar_dft_pot untuk memproses pembayaran pendaftaran, dan bayar_1st untuk
memproses pembayaran biaya bimbingan.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`bayar_dft_pot`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `bayar_dft_pot`(in_nis varchar(10), bdf
int(5), pot int(6))
BEGIN
update pembayaran set Biaya_Pendaftaran=bdf,Potongan=pot,Jml_Biaya=(Jml_Biaya-pot)
where NIS = in_nis;
END$$
DELIMITER ;
Listing Program 4.33 StoreProcedure bayar_dft_pot
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`bayar_1st`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `bayar_1st`(p_uang int(7), p_nis
varchar(10))
BEGIN
declare byr int(7);
declare tby varchar(10);
declare jtp varchar(10);
declare tot int(7);
declare p_nR varchar(9);
select substr(now(),1,10) into tby;
select substr((date_add(now(),interval 30 day)),1,10) into jtp;
select (Total_Dibayar/2) from pembayaran where NIS=p_nis into byr;
start transaction;
if (p_uang>=byr) then
87
update pembayaran
set
No_Resi_1=concat(p_nR,‟1‟),Tgl_Bayar_1=tby,Jml_Bayar_1=p_uang,Total_Dibayar=p_uang,Tgl
_Jatuh_Tempo=jtp
where NIS=p_nis;
call cek(p_nis);
select Jml_Biaya from pembayaran where NIS=p_nis into tot;
if(p_uang=tot) then
update pembayaran
set No_Resi_2='000000',Tgl_Bayar_2='0000-00-00',Jml_Bayar_2=0,
No_Resi_3='000000',Tgl_Bayar_3='0000-00-00',Jml_Bayar_3=0
where NIS=p_nis;
end if;
commit;
else
rollback;
end if;
END$$
DELIMITER ;
Listing Program 4.34 StoreProcedure bayar_1st
Dalam listing 4.34, terlihat bahwa masih terdapat pemanggilan store procedure, yaitu
store procedure cek, yang berfungsi untuk melakukan pengecekan pembayaran yang
dilakukan bisa melunasi biaya yang ada. Berikut listing 4.35 adalah listing program
untuk store procedure cek.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`cek`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `cek`(p_nis varchar(10))
BEGIN
declare tb,jb int(6);
select Total_Dibayar from pembayaran where NIS=p_nis into tb;
select Jml_Biaya from pembayaran where NIS=p_nis into jb;
if tb=jb then
update pembayaran set Keterangan='LUNAS',Tgl_Jatuh_Tempo=' ' where NIS=p_nis;
else
update pembayaran set Keterangan='KREDIT' where NIS=p_nis;
end if;
END$$
DELIMITER ;
Listing Program 4.35 StoreProcedure cek
IV.3.4.A.b Form Menu Data Siswa
88
Gambar 4.14 Form Menu Data Siswa
Gambar 4.14 adalah interface form menu data siswa. Form ini memiliki button
menu yang berhubungan tentang data siswa, yaitu button lihat data siswa untuk
menuju form lihat data siswa, button edit data siswa untuk menuju form edit data
siswa, button hapus data siswa untuk menuju form hapus data siswa, button revisi
pendaftaran untuk menuju form revisi daftar, dan button laporan untuk menuju form
laporan data siswa. Listing program 4.36 merupakan listing program untuk button
menu yang tersedia.
// Action BUTTON HAPUS DATA SISWA
private void BUTT_HAPUSMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormHapusDataSiswa baru = new FormHapusDataSiswa();
baru.setVisible(true);
}
// Action BUTTON REVISI PENDAFTARAN
private void BUTT_DAFTAR_ULANGMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormDaftarUlang baru = new FormDaftarUlang();
baru.setVisible(true);
}
// Action BUTTON EDIT DATA SISWA
private void BUTT_EDITMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormEditDataDiri baru = new FormEditDataDiri();
baru.setVisible(true);
89
}
// Action BUTTON LIHAT DATA SISWA
private void BUTT_LIHATMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormLihatDataDiri baru = new FormLihatDataDiri();
baru.setVisible(true);
}
// Action BUTTON LAPORAN
private void LAPORANMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormLaporanAkademik baru = new FormLaporanAkademik();
baru.setVisible(true);
}
Listing Program 4.36 Action Button-Button Form Menu Data Siswa
IV.3.4.A.b.i Form Lihat Data Siswa
Gambar 4.15 Form Lihat Data Siswa
Gambar 4.15 adalah interface form menu lihat data siswa. Form ini berfungsi
untuk mencari dan melihat tentang data siswa. Terdapat 3 macam fungsi pencarian,
yaitu, berdasar nama, program-kelas, dan berdasar nis. Listing program 4.37
merupakan listing program untuk fungsi pencarian dan penampilan data siswa.
// Action Click Tabel (cari berdasar program)
private void TabelCariProgMouseClicked(java.awt.event.MouseEvent evt) {
String a = TabelCariProg.getValueAt(TabelCariProg.getSelectedRow(),0).toString();
IN_NIS.setText(a);
90
}
// Pencarian berdasar Program (hasil:table cari program)
private void PROGRAMItemStateChanged(java.awt.event.ItemEvent evt) {
if(PROGRAM.getSelectedIndex() == 1) {
IN_PROG = "01";
IN_KLS.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 2) {
IN_PROG = "02";
IN_KLS.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 3) {
IN_PROG = "03";
IN_KLS.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 4) {
IN_PROG = "04";
IN_KLS.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 5) {
IN_PROG = "05";
IN_KLS.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 6) {
IN_PROG = "06";
IN_KLS.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 7) {
IN_PROG = "07";
IN_KLS.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 8) {
IN_PROG = "08";
IN_KLS.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 9) {
IN_PROG = "09";
IN_KLS.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 10) {
IN_PROG = "10";
IN_KLS.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 11) {
IN_PROG = "11";
IN_KLS.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 12) {
IN_PROG = "12";
IN_KLS.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 0) {
IN_KLS.setSelectedIndex(0);
}
TabelCariProg.setModel(new siswa(IN_PROG,IN_THUN.getText()));
}
Listing Program 4.37 Pencarian dan Lihat Data Siswa
91
Untuk dapat menjalankan proses pencarian pada listing program 4.37 tersebut,
diperlukan kelas koneksi.java untuk melakukan koneksi ke database dan konstruktor,
method CariSiswaNama, CariSiswaProgram, CariSiswaKelas, dan getDataSiswa,
pada kelas siswa.java untuk memanggil stored procedure yang tersimpan di database.
Listing program 4.38, 4.39, 4.40 dan 4.41 adalah listing program method
CariSiswaNama, CariSiswaProgram, CariSiswaKelas, dan getDataSiswa.
// Dipanggil lewat konstruktor berikut
public siswa(String a) {
nama = a;
CariSiswaNama(nama);
}
public void CariSiswaNama(String a) {
query = "call cari_Bnama('"+a+"');";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
while(RS.next()) {
Object[] r =
{ RS.getString(1), RS.getString(2),RS.getString(3),RS.getString(4)};
bar.addElement(r);
r=null;
}
ST.close();
} catch(Exception e) {
System.out.print("error cari siswa Bnama");
}
}
Listing Program 4.38 Method CariSiswaNama
public siswa(String a,String b) {
nama = a;
tahun = b;
CariSiswaProgram(nama,tahun);
}
public void CariSiswaProgram(String a,String b) {
query = "call cari_Bprog('"+a+"','"+b+"');";
try {
92
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
while(RS.next()) {
Object[] r =
{ RS.getString(1),RS.getString(2),RS.getString(3),RS.getString(4)};
bar.addElement(r);
r=null;
}
ST.close();
} catch(Exception e) {
System.out.print("error cari siswa Program");
}
}
Listing Program 4.39 Method CariSiswaProgram
// Dipanggil lewat konstruktor berikut
public siswa(String a,String b,String c) {
nama = a;
tahun = b;
klp = c;
CariSiswaKelas(nama,tahun,klp);
}
public void CariSiswaKelas(String a,String b,String c) {
query = "call cari_Bklas('"+a+"','"+b+"','"+c+"');";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
while(RS.next()) {
Object[] r =
{RS.getString(1),RS.getString(2),RS.getString(3),RS.getString(4)};
bar.addElement(r);
r=null;
}
ST.close();
} catch(Exception e) {
System.out.print("error cari siswa Kelas");
}
}
Listing Program 4.40 Method CariSiswaKelas
public String[] getDataSiswa(String a) {
String[] data=new String[12];
query = "call get_data_siswa('"+a+"');";
93
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
while(RS.next()) {
data[0] = RS.getString(1);
data[1] = RS.getString(2);
data[2] = RS.getString(3);
data[3] = RS.getString(4);
data[4] = RS.getString(5);
data[5] = RS.getString(6);
data[6] = RS.getString(7);
data[7] = RS.getString(8);
data[8] = RS.getString(9);
data[9] = RS.getString(10);
data[10] = RS.getString(11);
data[11] = RS.getString(12);
}
ST.close();
return data;
} catch(Exception e) {
System.out.print("error get data siswa");
}
return null;
}
Listing Program 4.41 Method getDataSiswa
Method-method diatas berfungsi untuk memanggil store procedure yang akan
memproses kedalam database. Berikut listing 4.42. 4.43, 4.44 dan 4.45 berturut-turut
adalah listing program untuk store procedure cari_Bnama untuk mencari siswa
berdasar nama, cari_Bprog untuk mencari siswa berdasar program dan tahun
angkatan, cari_Bklas untuk mencari siswa berdasar dan get_data_siswa untuk
mendapatkan data siswa.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`cari_Bnama2`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `cari_Bnama2`(p_nm varchar(250))
BEGIN
select a.NIS,upper(a.Nama),upper(a.Asal_Sekolah),a.Kelas
from data_siswa a, pembayaran b where a.NIS = b.NIS and
a.Nama like concat(p_nm,"%") order by b.Tgl_Daftar;
94
END$$
DELIMITER ;
Listing Program 4.42 StoreProcedure cari_Bnama
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`cari_Bprog`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `cari_Bprog`(p_nm varchar(2),p_th
varchar(4))
BEGIN
select NIS,upper(Nama),upper(Asal_Sekolah),Kelas
from data_siswa where substr(NIS,1,2) = p_nm and Th_Angkatan = p_th;
END$$
DELIMITER ;
Listing Program 4.43 StoreProcedure cari_Bprog
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`cari_Bklas`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `cari_Bklas`(p_nm varchar(2),p_th
varchar(4),p_kls varchar(1))
BEGIN
select NIS,upper(Nama),upper(Asal_Sekolah),Kelas
from data_siswa where substr(NIS,1,2) = p_nm and Th_Angkatan = p_th and
Id_Kelas = p_kls;
END$$
DELIMITER ;
Listing Program 4.44 StoreProcedure cariB_klas
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`get_data_siswa`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_data_siswa`(in_nis varchar(10))
BEGIN
select a.NIS,upper(a.Nama), upper(a.TTL), upper(a.Asal_Sekolah), a.Kelas,
upper(a.Nama_Ortu), upper(a.Alamat_Rumah), a.Pekerjaan_Ortu, a.No_Telp, a.Foto,
a.Id_Kelas, c.Nama_Program
from data_siswa a,ambil_program b,program c where a.NIS=b.NIS
and b.Id_Program=c.Id_Program and a.NIS = in_nis;
END$$
DELIMITER ;
Listing Program 4.45 StoreProcedure get_data_siswa
IV.3.4.A.b.ii Form Edit Data Siswa
95
Gambar 4.16 Form Edit Data Siswa
Gambar 4.16 adalah interface form menu lihat data siswa. Form ini berfungsi
untuk mealakukan edit data siswa. Untuk menampilkan data siswa yang akan diedit,
dilakukan lewat pencarian yang listing program untuk pencariannya sama pada proses
pencarian form lihat data siswa (gambar 4.15), listing program 4.37. Pada form edit
siswa, pegawai dapat melakukan fungsi edit data siswa, kecuali untuk data kelas, hal
ini dikarenakan data kelas akan berpengaruh pada data program. Dimana data
program berkaitan dengan seluruh data akademik (nilai) dan pembayaran. Berikut
listing 4.46 merupakan listing untuk button proses.
private void BUTT_PROSESMouseClicked(java.awt.event.MouseEvent evt) {
if(IN_NAMA.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Nama Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(TTL.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Tempat Lahir Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Asl_Sklh.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Asal Sekolah Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Nama_Ortu.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Nama Orang Tua Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Almt.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Alamat Belum Diisi",
96
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Pkrjan.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"Pekerjaan Orang Tua Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(foto.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Foto Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Klp_Klas.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"Kelompok Kelas Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
siswa sis = new siswa();
String pkrj = Pkrjan.getSelectedItem().toString();
sis.EditSiswa(NIS.getText(),Nama.getText(),TTL.getText(),Asl_Sklh.getText(),Kelas.getT
ext(), Nama_Ortu.getText(), Almt.getText(), pkrj, No_Tlp.getText(),
foto.getText(),IN_KLP_1);
}
}
Listing Program 4.46 Action Button PROSES Form Edit Data Siswa
Untuk dapat menjalankan proses edit data siswa tersebut, diperlukan kelas
koneksi.java untuk melakukan koneksi ke database dan method EditSiswa pada kelas
siswa.java. Listing program 4.47 adalah listing program method EditSiswa.
public void EditSiswa(String a,String b,String c,String d,String e,String f,String
g,String h,String i,String j,String k) {
query = "call
edit_DataSiswa('"+a+"','"+b+"','"+c+"','"+d+"','"+e+"','"+f+"','"+g+"','"+h+"','"+i+"'
,'"+j+"','"+k+"');";
try {
conn.connect();
Statement ST = conn.sambung.createStatement();
ST.executeUpdate(query);
ST.close();
conn.sambung.close();
JOptionPane.showMessageDialog(null,"Edit Data Siswa Berhasil",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
} catch(Exception esql) {
JOptionPane.showMessageDialog(null,"!!!Operasi Gagal!!!",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
}
}
Listing Program 4.47 Method EditSiswa
Method diatas (listing program 4.47) berfungsi untuk memanggil store procedure
yang akan memproses kedalam database. Berikut listing 4.48 adalah listing program
97
untuk store procedure edit_DataSiswa untuk melakukan pengeditan data siswa
tertentu.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`edit_DataSiswa`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `edit_DataSiswa`(p_nom varchar(10),p_nama
varchar(150), p_ttl varchar(50), p_sklh varchar(50), p_kls varchar(10), p_ortu
varchar(150),
p_almt varchar(300), p_krj varchar(50), p_tlp varchar(20), p_gb varchar(50), p_klp
varchar(5))
BEGIN
update data_siswa set
Nama=p_nama,TTL=p_ttl,Asal_Sekolah=p_sklh,Kelas=p_kls,Nama_Ortu=p_ortu,Alamat_Rumah=p_
almt,Pekerjaan_Ortu=p_krj,No_Telp=p_tlp,Foto=p_gb,Id_Kelas=p_klp where NIS=p_nom;
END$$
DELIMITER ;
Listing Program 4.48 StoreProcedure edit_DataSiswa
IV.3.4.A.b.iii Form Hapus Data Siswa
98
Gambar 4.17 Form Hapus Data Siswa
Gambar 4.17 adalah interface form menu hapus data siswa. Form ini berfungsi
untuk melakukan penghapusan data siswa (dalam konteks ini, data tidak dihapus
secara permanen dari database melainkan dipindah ke tabel history, dikarenakan data
tersebut masih berguna untuk tahun mendatang sebagai tahap promosi LBB. Untuk
menampilkan data siswa yang akan dihapus, dilakukan lewat pencarian yang listing
program untuk pencariannya sama pada proses pencarian form lihat data siswa
(gambar 4.15), listing program 4.37. Berikut listing 4.49 merupakan listing untuk
button proses.
private void BUTT_HAPUSMouseClicked(java.awt.event.MouseEvent evt) {
siswa sis = new siswa();
sis.HapusDataSiswa(IN_NIS.getText());
IN_NIS.setText("");
}
Listing Program 4.49 Action Button HAPUS Form HapusSiswa
Untuk dapat menjalankan proses hapus data siswa tersebut, diperlukan kelas
koneksi.java untuk melakukan koneksi ke database dan method HapusDataSiswa pada
kelas siswa.java. Listing program 4.50 adalah listing program method
HapusDataSiswa.
public void HapusDataSiswa(String a) {
99
query = "call hapus_siswa2('"+a+"');";
try {
conn.connect();
Statement ST = conn.sambung.createStatement();
ST.executeUpdate(query);
ST.close();
conn.sambung.close();
JOptionPane.showMessageDialog(null,"Hapus Data Siswa Berhasil",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
} catch(Exception esql) {
JOptionPane.showMessageDialog(null,"!!!Operasi Gagal!!!",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
}
}
Listing Program 4.50 Method HapusDataSiswa
Method diatas (listing program 4.50) berfungsi untuk memanggil store procedure
yang akan memproses kedalam database. Berikut listing 4.51 adalah listing program
untuk store procedure hapus_siswa2 untuk melakukan proses menghapus data siswa
tertentu.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`hapus_siswa2`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `hapus_siswa2`(p_no varchar(10))
BEGIN
insert into history_data_siswa select * from data_siswa where NIS=p_no;
insert into history_ambil_program select * from ambil_program where NIS=p_no;
insert into history_nilai select * from nilai where NIS=p_no;
insert into history_pembayaran select * from pembayaran where NIS=p_no;
Delete from data_siswa where NIS=p_no;
Delete from ambil_program where NIS=p_no;
Delete from nilai where NIS=p_no;
Delete from pembayaran where NIS=p_no;
Delete from user where Id_User=p_no;
END$$
DELIMITER ;
Listing Program 4.51 StoreProcedure hapus_siswa2
IV.3.4.A.b.iv Form Revisi Pendaftaran
100
Gambar 4.18 Form Revisi Pendaftaran
Gambar 4.18 adalah interface form revisi pendaftaran. Form ini berfungsi
untuk melakukan revisi pendaftaran siswa. Revisi pendaftaran terjadi jika pada waktu
pendaftaran, terjadi kekeliruan pengambilan kelas dan atau program. Form ini akan
menghapus semua data terdahulu dari siswa bersangkutan secara permanen dari
database, kemudian menambahkan kembali data siswa tersebut ke dalam database
dengan kondisi data yang benar. Form ini akan berkaitan erat dengan form
selanjutnya. Berikut listing 4.52 merupakan listing untuk button proses.
private void BUTT_PROSESMouseClicked(java.awt.event.MouseEvent evt) {
String kerja=Pkrjan.getSelectedItem().toString();
if(Nama.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Nama Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(TTL.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Tempat Lahir Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Asl_Sklh.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Asal Sekolah Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Nama_Ortu.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Nama Orang Tua Belum Diisi",
101
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Almt.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Alamat Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Kelas.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"Kelas Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Pkrjan.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"Pekerjaan Orang Tua Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(foto.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Foto Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Klp_Klas.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"Kelompok Kelas Belum Diisi",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
siswa baru = new siswa();
baru.RegUlangSiswa(NOM,Nama.getText(),TTL.getText(),Asl_Sklh.getText(),
IN_KLS,Nama_Ortu.getText(),Almt.getText(),kerja,No_Tlp.getText(),
foto.getText(),PROGRAM2.getSelectedItem().toString(),IN_KLP_1);
this.setVisible(true);
FormDaftarUlangPembayaran dft = new FormDaftarUlangPembayaran();
dft.setVisible(true);
dft.setNIS(getNis());
dft.setNama(getNama());
}
Listing Program 4.52 Action Button PROSES Form Revisi Pendaftaran
Untuk dapat menjalankan proses revisi pendaftaran tersebut, diperlukan kelas
koneksi.java untuk melakukan koneksi ke database dan method RegUlangSiswa pada
kelas siswa.java. Listing program 4.53 Adalah listing program method
RegUlangSiswa.
public void RegUlangSiswa(String a,String b,String c,String d,String e,String f,String
g,String h,String i,String j,String k,String l) {
query = "call
reg_ulang_siswa('"+a+"','"+b+"','"+c+"','"+d+"','"+e+"','"+f+"','"+g+"','"+h+"','"+i+"
','"+j+"','"+k+"','"+l+"');";
try {
conn.connect();
Statement ST = conn.sambung.createStatement();
ST.executeUpdate(query);
ST.close();
conn.sambung.close();
JOptionPane.showMessageDialog(null,"Revisi Pendaftaran Berhasil",
102
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
} catch(Exception esql) {
JOptionPane.showMessageDialog(null,"!!!Operasi Gagal!!!",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
}
}
Listing Program 4.53 Method RegUlangSiswa
Method diatas (listing program 4.53) berfungsi untuk memanggil store procedure
yang akan memproses kedalam database. Berikut listing 4.54 adalah listing program
untuk store procedure reg_ulang_siswa untuk melakukan proses revisi pendaftaran
siswa tertentu.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`reg_ulang_siswa`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `reg_ulang_siswa`(p_nom varchar(10),p_nama
varchar(150), p_ttl varchar(50), p_sklh varchar(50), p_kls varchar(10), p_ortu
varchar(150), p_almt varchar(300), p_krj varchar(50), p_tlp varchar(20), p_gb
varchar(50), p_prog varchar(20),p_klp varchar(5))
BEGIN
call cba_add_siswa(p_nama, p_ttl, p_sklh, p_kls, p_ortu, p_almt, p_krj, p_tlp,
p_gb, p_prog ,p_klp);
delete from data_siswa where NIS=p_nom;
delete from ambil_program where NIS=p_nom;
delete from user where Id_User=p_nom;
delete from nilai where NIS=p_nom;
END$$
DELIMITER ;
Listing Program 4.54 StoreProcedure reg_ulang_siswa
IV.3.4.A.b.v Form Pembayaran Revisi Pendaftaran
103
Gambar 4.19 Form Pembayaran Revisi Pendaftaran
Gambar 4.19 adalah interface form pembayaran revisi pendaftaran. Form ini
berfungsi untuk melakukan pembayaran setelah melakukan revisi pendaftaran siswa.
Form ini akan menyalin data pembayaran siswa bersangkutan yang terdahulu ke data
pembayaran siswa bersangkutan yang baru, hal ini terjadi dikarenakan setiap siswa
mendaftar susatu program, maka akan mendapatkan nomor pembayaran yang baru,
dan adanya kemungkinan biaya bimbingan yang berbeda unutk program-program
yang ada. Terdapat 2 button penting pada form ini, yaitu button ‟SALIN‟ untuk
melakukan penyalinan data bayar dari data pembayaran lama menuju data
pembayaran baru dalam tingkat form, tidak sampai melakukan penyimpanan kedalam
database, dan button ‟BAYAR‟, untuk melakukan proses pembayaran dan
menyimpan data pembayaran baru kedalam database. Berikut listing 4.55 dan 4.56
berturut-turut adalah listing untuk button ‟SALIN‟ dan ‟BAYAR‟.
private void BUTT_SALINMouseClicked(java.awt.event.MouseEvent evt) {
if(NIS1.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"KLIK PADA TABEL UNTUK MEMUNCULKAN
DATA PEMBAYARAN BARU SISWA BERSANGKUTAN","MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
int a=Integer.parseInt(Potongan.getText());
int b=Integer.parseInt(Biaya_Bimb1.getText());
104
int c=b-a;
int d=c/2;
String xx=""+c;
String yy=""+d;
Potongan1.setText(Potongan.getText());
Jml_Biaya1.setText(xx);
MinBayar1.setText(yy);
if(Bayar1.getText().compareTo("")>1) {
int e = Integer.parseInt(Bayar1.getText());
if((e<c) && (Bayar2.getText().compareTo("")>1)) {
int f = Integer.parseInt(Bayar2.getText());
int g = e+f;
if((g<c) && (Bayar3.getText().compareTo("")>1)) {
int h = Integer.parseInt((Bayar3.getText()));
int i = g+h;
if(i<c) {
Bayar5.setText(""+i);
int k = c-i;
Kekurangan1.setText(""+k);
Keterangan1.setText("KREDIT");
} else {
int j = i-c;
Bayar5.setText(""+c);
Kembalian.setText(""+j);
Kekurangan1.setText(""+0);
Keterangan1.setText("LUNAS");
}
} else if((g<c) && (Bayar3.getText().compareTo("")<1)) {
Bayar5.setText(""+g);
int l = c-g;
Kekurangan1.setText(""+l);
Keterangan1.setText("KREDIT");
} else {
int y = g-c;
Bayar5.setText(""+c);
Kembalian.setText(""+y);
Kekurangan1.setText(""+0);
Keterangan1.setText("LUNAS");
}
} else if((e<c) && (Bayar2.getText().compareTo("")<1)) {
if(e<d) {
JOptionPane.showMessageDialog(null,"PINDAHAN PEMBAYARAN TIDAK
MENCUKUPI MINIMAL BAYAR","MESSAGE",JOptionPane.ERROR_MESSAGE );
FormPembayaranPertama baru = new FormPembayaranPertama();
baru.setVisible(true);
baru.setNIS(getNIS());
baru.setUang(getUang());
105
} else {
Bayar5.setText(""+e);
int m = c-e;
Kekurangan1.setText(""+m);
Keterangan1.setText("KREDIT");
}
} else {
int z = e-c;
Bayar5.setText(""+c);
Kembalian.setText(""+z);
Kekurangan1.setText(""+0);
Keterangan1.setText("LUNAS");
}
} else {
JOptionPane.showMessageDialog(null,"BELUM MELAKUKAN PEMBAYARAN",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE);
}
}
}
Listing Program 4.55 Action Button SALIN Form Pembayaran Revisi Pendaftaran
private void BUTT_BAYAR_IMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
bayar by = new bayar();
by.BayarDaftarUlang(NIS.getText(),NIS1.getText(),Bayar5.getText(),Keterangan1.getText(
));
this.setVisible(false);
}
Listing Program 4.56 Action Button BAYAR Form Pembayaran Revisi Pendaftaran
Untuk dapat menjalankan proses penyimpanan data pembayaran baru tersebut
(button BAYAR), diperlukan kelas koneksi.java untuk melakukan koneksi ke
database dan method BayarDaftarUlang pada kelas bayar.java. Listing program 4.57
adalah listing program method BayarDaftarUlang.
public void BayarDaftarUlang(String a,String b,String c,String f) {
query = "call bayar_ulang('"+a+"','"+b+"',"+c+",'"+f+"');";
try {
conn.connect();
Statement ST = conn.sambung.createStatement();
ST.executeUpdate(query);
ST.close();
conn.sambung.close();
JOptionPane.showMessageDialog(null,"Pembayaran Berhasil",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
106
} catch(Exception esql) {
JOptionPane.showMessageDialog(null,"!!!Operasi Gagal!!!",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
}
}
Listing Program 4.57 Action Button BAYAR Form Pembayaran Revisi Pendaftaran
Method diatas (listing program 4.57) berfungsi untuk memanggil store procedure
yang akan memproses kedalam database. Berikut listing 4.58 adalah listing program
untuk store procedure bayar_ulang untuk melakukan proses pembayaran ulang
(pemindahan data bayar siswa).
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`bayar_ulang`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `bayar_ulang`(nis_lma varchar(10), nis_bru
varchar(10), byr int(7), ket varchar(20))
BEGIN
declare v_bd,pot int(6);
declare jtp varchar(10);
declare no_resi varchar(10);
select substr((date_add(now(),interval 30 day)),1,10) into jtp;
select Biaya_Pendaftaran from pembayaran where NIS=nis_lma into v_bd;
select Potongan from pembayaran where NIS=nis_lma into pot;
select No_Pembayaran from pembayaran where NIS=nis_bru into no_resi;
update pembayaran set Biaya_Pendaftaran = v_bd, Potongan = pot, No_Resi_1 =
concat(„P‟,no_resi,‟1‟), Jml_Bayar_1 = byr, Tgl_Bayar_1 = substr(now(),1,10),
Total_Dibayar = byr, Tgl_Jatuh_Tempo = jtp, Keterangan = ket where NIS=nis_bru;
delete from pembayaran where NIS=nis_lma;
call cek(nis_bru);
END$$
DELIMITER ;
Listing Program 4.58 StoreProcedure bayar_ulang
Store procedure tersebut akan melakukan proses pemindahan data bayar dari siswa
yang melakukan revisi pendaftaran. Kemudian melakukan penghapusan data bayar
lama siswa tersebut, dan terakhir melkukan pengecekan pembayaran.
IV.3.4.A.b.vi Form Laporan Data Siswa
107
Gambar 4.20 Form Laporan Akademik
Gambar 4.20 adalah interface form laporan data siswa. Form ini berfungsi
untuk melakukan penampilan dan pencetakan data siswa per program yang ada.
Berikut listing 4.58 merupakan listing untuk button print.
private void PRINT_1MouseClicked(java.awt.event.MouseEvent evt) {
if(PROGRAM2.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"Pilih PROGRAM !!",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
try {
Koneksi baru = new Koneksi();
baru.connect();
Connection konek=baru.getConnDB();
Map<String, String> params = new HashMap<String, String>();
params.put("parameter1", IN_PROG);
System.out.println("Filling report...");
String print = JasperFillManager.fillReportToFile
("report/DataSiswaPerProgram.jasper", params, konek);
System.out.println("Done!");
JasperViewer.viewReport(print, false, false);
} catch (Exception e) {
}
}
Listing Program 4.59 Action Button PRINT Form Laporan Data Siswa
Pada listing program 4.59, fungsi print dijalankan dengan memanggil file jasper
bernama DataSiswaPerProgram.jasper. File tersebut berfungsi untuk menampilkan
data siswa per program dalam bentuk laporan yang dapat langsung dicetak. Berikut
gambar 4.21 merupakan gambaran dari laporan yang ditampilkan.
108
Gambar 4.21 Tampilan Laporan Data Siswa Per Program
Untuk mendapatkan data tersebut, diperlukan query dari file jesper tersebut ke
database. Berikut listing 4.60 adalah query pada file jesper tersebut.
select NIS, upper(Nama), upper(Asal_Sekolah) as Sekolah,Kelas, upper(Nama_Ortu),
upper(Alamat_Rumah) as Alamat,No_Telp as Telepon, Id_Kelas as GK from data_siswa
where substr(NIS,1,2) = $P{parameter1} order by Asal_Sekolah;
Listing Program 4.60 Query Laporan Data Siswa Per Program
Query tersebut akan mengambil data siswa yang diperlukan dari tabel data_siswa
yang diurutkan berdasarkan sekolah asal siswa-siswa tersebut.
IV.3.4.A.c Form Menu Data Nilai
109
Gambar 4.22 Form Menu Data Nilai
Gambar 4.22 adalah interface form menu data nilai. Form ini memiliki button
menu yang berhubungan tentang data nilai siswa, yaitu button insert nilai siswa untuk
menuju form insert data nilai siswa, button cari data nilai siswa untuk menuju form
data nilai siswa, dan button laporan untuk menuju form laporan data nilai siswa.
Listing program 4.61 merupakan listing program untuk button menu yang tersedia.
// Action Button Menu CARI DATA NILAI SISWA
private void BUTT_CARIMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormCariDataNilaiSiswa baru = new FormCariDataNilaiSiswa();
baru.setVisible(true);
}
// Action Button Menu INSERT DATA NILAI SISWA
private void BUTT_INSERTMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
FormInsertNilai1 baru = new FormInsertNilai1();
this.setVisible(false);
baru.setVisible(true);
}
// Action Button Menu LAPORAN
private void LAPORANMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
this.setVisible(false);
FormLaporanDataNilai ni = new FormLaporanDataNilai();
ni.setVisible(true);
}
Listing Program 4.61 Action Button Menu Form Menu Data Nilai
IV.3.4.A.c.i Form Insert Nilai
110
Gambar 4.23 Form Insert Nilai
Gambar 4.23 adalah interface form insert nilai. Form ini berfungsi untuk
memasukkan data nilai siswa berdasarkan program, mata pelajaran, kelas, semester
(1,2) dan jenis nilainya (N1, N2, N3). Listing program 4.62 merupakan listing
program untuk menjalankan proses insert nilai.
// Action Combo Box PROGRAM, akan berpengaruh pada Combo Box MATA PELAJARAN,
// Pengambilan data mata pelajaran memakai method gen_combo pada kelas
// nilai.java
private void PROGRAMItemStateChanged(java.awt.event.ItemEvent evt) {
if(PROGRAM.getSelectedIndex() == 1) {
IN_PROG = "SLD 1 SMA";
Nilai baru = new Nilai();
String[][] data_combo = new String[6][1];
data_combo = baru.gen_combo(IN_PROG);
COMBO_MAPEL.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
data_combo[0][0],data_combo[1][0],data_combo[2][0],data_combo[3][0], data_combo[4][0],
data_combo[5][0]}));
for(int i=0; i<30; i++){
jTable1.setValueAt("", i,0);
jTable1.setValueAt("", i,1);
jTable1.setValueAt("", i,2);
}
KLP_KELAS.setSelectedIndex(0);
semBox.setSelectedIndex(0);
111
combo_nilai.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 2) {
IN_PROG = "SLD 2 SMA IPA";
Nilai baru = new Nilai();
String[][] data_combo = new String[6][1];
data_combo = baru.gen_combo(IN_PROG);
COMBO_MAPEL.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
data_combo[0][0],data_combo[1][0],data_combo[2][0],data_combo[3][0], data_combo[4][0],
data_combo[5][0]}));
for(int i=0; i<30; i++){
jTable1.setValueAt("", i,0);
jTable1.setValueAt("", i,1);
jTable1.setValueAt("", i,2);
}
KLP_KELAS.setSelectedIndex(0);
semBox.setSelectedIndex(0);
combo_nilai.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 3) {
IN_PROG = "SLD 2 SMA IPS";
Nilai baru = new Nilai();
String[][] data_combo = new String[6][1];
data_combo = baru.gen_combo(IN_PROG);
COMBO_MAPEL.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
data_combo[0][0],data_combo[1][0],data_combo[2][0],data_combo[3][0], data_combo[4][0],
data_combo[5][0]}));
for(int i=0; i<30; i++){
jTable1.setValueAt("", i,0);
jTable1.setValueAt("", i,1);
jTable1.setValueAt("", i,2);
}
KLP_KELAS.setSelectedIndex(0);
semBox.setSelectedIndex(0);
combo_nilai.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 4) {
IN_PROG = "SLD 3 SMA IPA";
Nilai baru = new Nilai();
String[][] data_combo = new String[6][1];
data_combo = baru.gen_combo(IN_PROG);
COMBO_MAPEL.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
data_combo[0][0],data_combo[1][0],data_combo[2][0],data_combo[3][0], data_combo[4][0],
data_combo[5][0]}));
for(int i=0; i<30; i++){
jTable1.setValueAt("", i,0);
jTable1.setValueAt("", i,1);
jTable1.setValueAt("", i,2);
}
KLP_KELAS.setSelectedIndex(0);
semBox.setSelectedIndex(0);
combo_nilai.setSelectedIndex(0);
112
} else if(PROGRAM.getSelectedIndex() == 5) {
IN_PROG = "SLD 3 SMA IPS";
Nilai baru = new Nilai();
String[][] data_combo = new String[6][1];
data_combo = baru.gen_combo(IN_PROG);
COMBO_MAPEL.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
data_combo[0][0],data_combo[1][0],data_combo[2][0],data_combo[3][0], data_combo[4][0],
data_combo[5][0]}));
for(int i=0; i<30; i++){
jTable1.setValueAt("", i,0);
jTable1.setValueAt("", i,1);
jTable1.setValueAt("", i,2);
}
KLP_KELAS.setSelectedIndex(0);
semBox.setSelectedIndex(0);
combo_nilai.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 6) {
IN_PROG = "Program Minggu 3 SMA IPA";
Nilai baru = new Nilai();
String[][] data_combo = new String[6][1];
data_combo = baru.gen_combo(IN_PROG);
COMBO_MAPEL.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
data_combo[0][0],data_combo[1][0],data_combo[2][0],data_combo[3][0], data_combo[4][0],
data_combo[5][0]}));
for(int i=0; i<30; i++){
jTable1.setValueAt("", i,0);
jTable1.setValueAt("", i,1);
jTable1.setValueAt("", i,2);
}
KLP_KELAS.setSelectedIndex(0);
semBox.setSelectedIndex(0);
combo_nilai.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 7) {
IN_PROG = "Program Minggu 3 SMA IPS";
Nilai baru = new Nilai();
String[][] data_combo = new String[6][1];
data_combo = baru.gen_combo(IN_PROG);
COMBO_MAPEL.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
data_combo[0][0],data_combo[1][0],data_combo[2][0],data_combo[3][0], data_combo[4][0],
data_combo[5][0]}));
for(int i=0; i<30; i++){
jTable1.setValueAt("", i,0);
jTable1.setValueAt("", i,1);
jTable1.setValueAt("", i,2);
}
KLP_KELAS.setSelectedIndex(0);
semBox.setSelectedIndex(0);
combo_nilai.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 8) {
113
IN_PROG = "SPMB 3 IPA";
Nilai baru = new Nilai();
String[][] data_combo = new String[6][1];
data_combo = baru.gen_combo(IN_PROG);
COMBO_MAPEL.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
data_combo[0][0],data_combo[1][0],data_combo[2][0],data_combo[3][0], data_combo[4][0],
data_combo[5][0]}));
for(int i=0; i<30; i++){
jTable1.setValueAt("", i,0);
jTable1.setValueAt("", i,1);
jTable1.setValueAt("", i,2);
}
KLP_KELAS.setSelectedIndex(0);
semBox.setSelectedIndex(0);
combo_nilai.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 9) {
IN_PROG = "SPMB 3 IPS";
Nilai baru = new Nilai();
String[][] data_combo = new String[6][1];
data_combo = baru.gen_combo(IN_PROG);
COMBO_MAPEL.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
data_combo[0][0],data_combo[1][0],data_combo[2][0],data_combo[3][0], data_combo[4][0],
data_combo[5][0]}));
for(int i=0; i<30; i++){
jTable1.setValueAt("", i,0);
jTable1.setValueAt("", i,1);
jTable1.setValueAt("", i,2);
}
KLP_KELAS.setSelectedIndex(0);
semBox.setSelectedIndex(0);
combo_nilai.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 10) {
IN_PROG = "PIKPU Murni 3 IPA";
Nilai baru = new Nilai();
String[][] data_combo = new String[6][1];
data_combo = baru.gen_combo(IN_PROG);
COMBO_MAPEL.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
data_combo[0][0],data_combo[1][0],data_combo[2][0],data_combo[3][0], data_combo[4][0],
data_combo[5][0]}));
for(int i=0; i<30; i++){
jTable1.setValueAt("", i,0);
jTable1.setValueAt("", i,1);
jTable1.setValueAt("", i,2);
}
KLP_KELAS.setSelectedIndex(0);
semBox.setSelectedIndex(0);
combo_nilai.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 11) {
IN_PROG = "PIKPU Murni 3 IPS";
114
Nilai baru = new Nilai();
String[][] data_combo = new String[6][1];
data_combo = baru.gen_combo(IN_PROG);
COMBO_MAPEL.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
data_combo[0][0],data_combo[1][0],data_combo[2][0],data_combo[3][0], data_combo[4][0],
data_combo[5][0]}));
for(int i=0; i<30; i++){
jTable1.setValueAt("", i,0);
jTable1.setValueAt("", i,1);
jTable1.setValueAt("", i,2);
}
KLP_KELAS.setSelectedIndex(0);
semBox.setSelectedIndex(0);
combo_nilai.setSelectedIndex(0);
} else if(PROGRAM.getSelectedIndex() == 12) {
IN_PROG = "PIKPU Murni 3 IPC";
Nilai baru = new Nilai();
String[][] data_combo = new String[6][1];
data_combo = baru.gen_combo(IN_PROG);
COMBO_MAPEL.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
data_combo[0][0],data_combo[1][0],data_combo[2][0],data_combo[3][0], data_combo[4][0],
data_combo[5][0]}));
for(int i=0; i<30; i++){
jTable1.setValueAt("", i,0);
jTable1.setValueAt("", i,1);
jTable1.setValueAt("", i,2);
}
KLP_KELAS.setSelectedIndex(0);
semBox.setSelectedIndex(0);
combo_nilai.setSelectedIndex(0);
}
}
// Action Combo Box MATA PELAJARAN, menampilkan data nilai siswa pada mapel
// tertentu memakai method get_Nilai pada kelas nilai.java jika combo box
// yang lain telah terisi semua (Cuma mangganti jenis mapel)
private void COMBO_MAPELItemStateChanged(java.awt.event.ItemEvent evt) {
for(int i = 0;i<30;i++) {
jTable1.setValueAt("0",i,2);
}
if(combo_nilai.getSelectedIndex() == 1) {
nilai = "N1";
Nilai nil = new Nilai();
String [][] data = new String[30][3];
data=nil.get_Nilai(IN_PROG,IN_KLP,sem,COMBO_MAPEL.getSelectedItem().toString(),nilai);
for(int i=0; i<30; i++){
jTable1.setValueAt(data[i][0], i,0);
115
jTable1.setValueAt(data[i][1], i,1);
jTable1.setValueAt(data[i][2], i,2);
}
} else if(combo_nilai.getSelectedIndex() == 2) {
nilai = "N2";
Nilai nil = new Nilai();
String [][] data = new String[30][2];
data=nil.get_Nilai(IN_PROG,IN_KLP,sem,COMBO_MAPEL.getSelectedItem().toString(),nilai);
for(int i=0; i<30; i++){
jTable1.setValueAt(data[i][0], i,0);
jTable1.setValueAt(data[i][1], i,1);
jTable1.setValueAt(data[i][2], i,2);
}
} else {
nilai = "N3";
Nilai nil = new Nilai();
String [][] data = new String[30][2];
data=nil.get_Nilai(IN_PROG,IN_KLP,sem,COMBO_MAPEL.getSelectedItem().toString(),nilai);
for(int i=0; i<30; i++){
jTable1.setValueAt(data[i][0], i,0);
jTable1.setValueAt(data[i][1], i,1);
jTable1.setValueAt(data[i][2], i,2);
}
}
}
// Action Combo Box Kelompok Kelas, menampilkan data siswa per kelompok kelas
// memakai method get_cariNIS pada kelas nilai.java
private void KLP_KELASItemStateChanged(java.awt.event.ItemEvent evt) {
if(KLP_KELAS.getSelectedIndex() == 1) {
if(PROGRAM.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"PILIH PROGRAM",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
IN_KLP = "A";
Nilai nil = new Nilai();
String[][] data = new String[30][2];
data=nil.get_cariNIS(IN_PROG,IN_KLP);
for(int i=0; i<30; i++){
jTable1.setValueAt(data[i][0], i,0);
jTable1.setValueAt(data[i][1], i,1);
jTable1.setValueAt("", i, 2);
}
combo_nilai.setSelectedIndex(0);
116
semBox.setSelectedIndex(0);
}
} else if(KLP_KELAS.getSelectedIndex() == 2) {
if(PROGRAM.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"PILIH PROGRAM",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
IN_KLP = "B";
Nilai nil = new Nilai();
String[][] data = new String[30][2];
data=nil.get_cariNIS(IN_PROG,IN_KLP);
for(int i=0; i<30; i++){
jTable1.setValueAt(data[i][0], i,0);
jTable1.setValueAt(data[i][1], i,1);
jTable1.setValueAt("", i, 2);
}
combo_nilai.setSelectedIndex(0);
semBox.setSelectedIndex(0);
}
} else if(KLP_KELAS.getSelectedIndex() == 3) {
if(PROGRAM.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"PILIH PROGRAM",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
IN_KLP = "C";
Nilai nil = new Nilai();
String [][] data = new String[30][2];
data=nil.get_cariNIS(IN_PROG,IN_KLP);
for(int i=0; i<30; i++){
jTable1.setValueAt(data[i][0], i,0);
jTable1.setValueAt(data[i][1], i,1);
jTable1.setValueAt("", i, 2);
}
combo_nilai.setSelectedIndex(0);
semBox.setSelectedIndex(0);
}
} else if(KLP_KELAS.getSelectedIndex() == 4) {
if(PROGRAM.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"PILIH PROGRAM",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
IN_KLP = "D";
Nilai nil = new Nilai();
String [][] data = new String[30][2];
data=nil.get_cariNIS(IN_PROG,IN_KLP);
for(int i=0; i<30; i++){
117
jTable1.setValueAt(data[i][0], i,0);
jTable1.setValueAt(data[i][1], i,1);
jTable1.setValueAt("", i, 2);
}
combo_nilai.setSelectedIndex(0);
semBox.setSelectedIndex(0);
}
}
}
// Action Combo Box SEMESTER, menampilkan data Nilai pada semester tertentu
// memakai method get_DataNilai pada kelas nilai.java
private void semBoxItemStateChanged(java.awt.event.ItemEvent evt) {
if(semBox.getSelectedIndex() == 1) {
sem = "1";
Nilai nil = new Nilai();
String [][] data = new String[30][2];
data=nil.get_DataNilai(IN_PROG,IN_KLP,sem,COMBO_MAPEL.getSelectedItem().toString());
for(int i=0; i<30; i++){
jTable1.setValueAt(data[i][0], i,0);
jTable1.setValueAt(data[i][1], i,1);
}
} else if(semBox.getSelectedIndex()==2) {
sem = "2";
Nilai nil = new Nilai();
String [][] data = new String[30][2];
data=nil.get_DataNilai(IN_PROG,IN_KLP,sem,COMBO_MAPEL.getSelectedItem().toString());
for(int i=0; i<30; i++){
jTable1.setValueAt(data[i][0], i,0);
jTable1.setValueAt(data[i][1], i,1);
}
}
}
// Action Combo Box Jenis NILAI, method dipakai : get_Nilai pada kelas
// nilai.java
private void combo_nilaiItemStateChanged(java.awt.event.ItemEvent evt) {
if(combo_nilai.getSelectedIndex() == 1) {
nilai = "N1";
Nilai nil = new Nilai();
String [][] data = new String[30][3];
data=nil.get_Nilai(IN_PROG,IN_KLP,sem,COMBO_MAPEL.getSelectedItem().toString(),nilai);
for(int i=0; i<30; i++){
jTable1.setValueAt(data[i][0], i,0);
118
jTable1.setValueAt(data[i][1], i,1);
jTable1.setValueAt(data[i][2], i,2);
}
} else if(combo_nilai.getSelectedIndex() == 2) {
nilai = "N2";
Nilai nil = new Nilai();
String [][] data = new String[30][2];
data=nil.get_Nilai(IN_PROG,IN_KLP,sem,COMBO_MAPEL.getSelectedItem().toString(),nilai);
for(int i=0; i<30; i++){
jTable1.setValueAt(data[i][0], i,0);
jTable1.setValueAt(data[i][1], i,1);
jTable1.setValueAt(data[i][2], i,2);
}
} else {
nilai = "N3";
Nilai nil = new Nilai();
String [][] data = new String[30][2];
data=nil.get_Nilai(IN_PROG,IN_KLP,sem,COMBO_MAPEL.getSelectedItem().toString(),nilai);
for(int i=0; i<30; i++){
jTable1.setValueAt(data[i][0], i,0);
jTable1.setValueAt(data[i][1], i,1);
jTable1.setValueAt(data[i][2], i,2);
}
}
}
// Action Button PROSES, memasukkan data nilai ke database.
// 1 tabel = 1 kelas memuat 30 siswa
// Menggunakan method masuk_nilai pada kelas nilai.java
private void BUTT_PROSESMouseClicked(java.awt.event.MouseEvent evt) {
int jml_brs;
System.out.println(jTable1.getValueAt(0,2));
if(jTable1.getValueAt(0,2)==null ||
jTable1.getValueAt(0,2).toString().compareTo("")<1) {
jml_brs = 0;
} else if(jTable1.getValueAt(1,2)==null ||
jTable1.getValueAt(1,2).toString().compareTo("")<1) {
jml_brs = 1;
} else if(jTable1.getValueAt(2,2)==null ||
jTable1.getValueAt(2,2).toString().compareTo("")<1) {
jml_brs = 2;
} else if(jTable1.getValueAt(3,2)==null ||
jTable1.getValueAt(3,2).toString().compareTo("")<1) {
jml_brs = 3;
} else if(jTable1.getValueAt(4,2)==null ||
jTable1.getValueAt(4,2).toString().compareTo("")<1) {
jml_brs = 4;
119
} else if(jTable1.getValueAt(5,2)==null ||
jTable1.getValueAt(5,2).toString().compareTo("")<1) {
jml_brs = 5;
} else if(jTable1.getValueAt(6,2)==null ||
jTable1.getValueAt(6,2).toString().compareTo("")<1) {
jml_brs = 6;
} else if(jTable1.getValueAt(7,2)==null ||
jTable1.getValueAt(7,2).toString().compareTo("")<1) {
jml_brs = 7;
} else if(jTable1.getValueAt(8,2)==null ||
jTable1.getValueAt(8,2).toString().compareTo("")<1) {
jml_brs = 8;
} else if(jTable1.getValueAt(9,2)==null ||
jTable1.getValueAt(9,2).toString().compareTo("")<1) {
jml_brs = 9;
} else if(jTable1.getValueAt(10,2)==null ||
jTable1.getValueAt(10,2).toString().compareTo("")<1) {
jml_brs = 10;
} else if(jTable1.getValueAt(11,2)==null ||
jTable1.getValueAt(11,2).toString().compareTo("")<1) {
jml_brs = 11;
} else if(jTable1.getValueAt(12,2)==null ||
jTable1.getValueAt(12,2).toString().compareTo("")<1) {
jml_brs = 12;
} else if(jTable1.getValueAt(13,2)==null ||
jTable1.getValueAt(13,2).toString().compareTo("")<1) {
jml_brs = 13;
} else if(jTable1.getValueAt(14,2)==null ||
jTable1.getValueAt(14,2).toString().compareTo("")<1) {
jml_brs = 14;
} else if(jTable1.getValueAt(15,2)==null ||
jTable1.getValueAt(15,2).toString().compareTo("")<1) {
jml_brs = 15;
} else if(jTable1.getValueAt(16,2)==null ||
jTable1.getValueAt(16,2).toString().compareTo("")<1) {
jml_brs = 16;
} else if(jTable1.getValueAt(1,2)==null ||
jTable1.getValueAt(17,2).toString().compareTo("")<1) {
jml_brs = 17;
} else if(jTable1.getValueAt(18,2)==null ||
jTable1.getValueAt(18,2).toString().compareTo("")<1) {
jml_brs = 18;
} else if(jTable1.getValueAt(19,2)==null ||
jTable1.getValueAt(19,2).toString().compareTo("")<1) {
jml_brs = 19;
} else if(jTable1.getValueAt(20,2)==null ||
jTable1.getValueAt(20,2).toString().compareTo("")<1) {
jml_brs = 20;
} else if(jTable1.getValueAt(21,2)==null ||
jTable1.getValueAt(21,2).toString().compareTo("")<1) {
jml_brs = 21;
} else if(jTable1.getValueAt(22,2)==null ||
jTable1.getValueAt(22,2).toString().compareTo("")<1) {
120
jml_brs = 22;
} else if(jTable1.getValueAt(23,2)==null ||
jTable1.getValueAt(23,2).toString().compareTo("")<1) {
jml_brs = 23;
} else if(jTable1.getValueAt(24,2)==null ||
jTable1.getValueAt(24,2).toString().compareTo("")<1) {
jml_brs = 24;
} else if(jTable1.getValueAt(25,2)==null ||
jTable1.getValueAt(25,2).toString().compareTo("")<1) {
jml_brs = 25;
} else if(jTable1.getValueAt(26,2)==null ||
jTable1.getValueAt(26,2).toString().compareTo("")<1) {
jml_brs = 26;
} else if(jTable1.getValueAt(27,2)==null ||
jTable1.getValueAt(27,2).toString().compareTo("")<1) {
jml_brs = 27;
} else if(jTable1.getValueAt(28,2)==null ||
jTable1.getValueAt(28,2).toString().compareTo("")<1) {
jml_brs = 28;
} else if(jTable1.getValueAt(29,2)==null ||
jTable1.getValueAt(29,2).toString().compareTo("")<1) {
jml_brs = 29;
} else {
jml_brs = 30;
}
Nilai baru = new Nilai();
for(int i=0; i<jml_brs; i++)
{
String a = jTable1.getValueAt(i,0).toString();
String c = jTable1.getValueAt(i,2).toString();
baru.masukNilai(a,COMBO_MAPEL.getSelectedItem().toString(),sem,
combo_nilai.getSelectedItem().toString(), c);
}
}
Listing Program 4.62 Listing Program Form Insert Nilai
Listing program 4.62 diatas akan memproses tiap data nilai yang masuk. Yang perlu
diperhatikan untuk menjalankan form ini adalah urutan pemilihan combo box,
pertama dimulai dengan pemilihan program (berpengaruh pada jenis mata pelajaran
pada combo box mapel), diikuti berturut-turut mata pelajaran (memilih mata pelajaran
yang akan diisi nilai), kelompok kelas (memilih kelompok kelas siswa), semester
(memilih semester untuk nilai mapel yang akan diisi), terakhir adalah jenis nilai
(memilih jenis nilai yang akan diisi). Jika terjadi kekeliruan pemilihan, akan muncul
121
peringatan utuk membenarkan urutan. Selanjutnya listing program 4.63 untuk method
gen_combo pada combo box program untuk mendaftar mata pelajaran, listing
program 4.64 untuk method get_cariNIS untuk mendaftar NIS yang termasuk pada
suatu program, listing program 4.65 untuk method get_DataNilai untuk mendapatkan
daftar NIS yang termasuk pada kelompok kelas tertentu, listing program 4.66 untuk
method get_Nilai untuk menampilkan data nilai siswa pada program, mata pelajaran,
kelas, semester, dan jenis nilai tertentu, listing program 4.67 untuk method
masuk_nilai untuk memasukkan data nilai kedalam database.
public String[][] gen_combo(String a)
{
String[][] data=new String[6][1];
query = "call generate_combo('"+a+"');";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
int i = 0;
while(RS.next()) {
data[i][0] = RS.getString(1);
i++;
}
ST.close();
return data;
} catch(Exception e) {
System.out.print("error generate Combo Box Mapel");
}
return null;
}
Listing Program 4.63 Method gen_combo
public String[][] get_cariNIS(String a,String b) {
String[][] data=new String[30][2];
query = "call cari_nis_nama('"+a+"','"+b+"');";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
122
int i = 0;
while(RS.next()) {
data[i][0] = RS.getString(1);
data[i][1] = RS.getString(2);
i++;
}
ST.close();
return data;
} catch(Exception e) {
System.out.print("error cari nis nama");
}
return null;
}
Listing Program 4.64 Method get_cariNIS
public String[][] get_DataNilai(String a,String b,String c,String d) {
String[][] data=new String[30][2];
query = "call get_data_NilaiN('"+a+"','"+b+"','"+c+"','"+d+"');";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
int i = 0;
while(RS.next()) {
data[i][0] = RS.getString(1);
data[i][1] = RS.getString(2);
i++;
}
ST.close();
return data;
} catch(Exception e) {
System.out.print("error get data Nilai");
}
return null;
}
Listing Program 4.65 Method get_DataNilai
public String[][] get_Nilai(String a,String b,String c,String d,String e) {
String[][] data=new String[30][3];
query = "call get_data_Nilai('"+a+"','"+b+"','"+c+"','"+d+"','"+e+"');";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
123
int i = 0;
while(RS.next()) {
data[i][0] = RS.getString(1);
data[i][1] = RS.getString(2);
data[i][2] = RS.getString(3);
i++;
}
ST.close();
return data;
} catch(Exception ex) {
System.out.print("error get Nilai");
}
return null;
}
Listing Program 4.66 Method get_Nilai
public void masukNilai(String a,String b,String c,String d,String e) {
query = "call InsertNH1('"+a+"','"+b+"','"+c+"','"+d+"','"+e+"');";
try {
conn.connect();
Statement ST = conn.sambung.createStatement();
ST.executeUpdate(query);
ST.close();
conn.sambung.close();
JOptionPane.showMessageDialog(null,"Data Nilai Berhasil Diproses",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
} catch(Exception esql) {
JOptionPane.showMessageDialog(null,"!!!Operasi Gagal!!!",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
}
}
Listing Program 4.67 Method masuk_nilai
Method-method diatas berfungsi untuk memanggil store procedure yang terdapat
dalam database. Berikut listing program 4.68 store procedure generate_combo untuk
mendapatkan data mata pelajaran tiap program, listing program 4.69 store procedure
cari_nis_nama untuk medapatkan data nis dan nama siswa per program, listing
program 4.70 store procedure get_data_NilaiN untuk mendapatkan data siswa per
program-kelompok kelas-semseter, listing program 4.71 store procedure
get_data_Nilai untuk mendapatkan data nilai menurut jenis nilai, listing program 4.72
124
store procedure insertNH1 untuk memasukkan data nilai tiap siswa untuk program,
mata pelajaran, kelompok kelas, semester, dan jenis nilai tertentu.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`generate_combo`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `generate_combo`(in_prog varchar(100))
BEGIN
declare id varchar(10);
select Id_Program from program where Nama_Program = in_prog into id;
select Nama_Mapel from mapel where Id_Program = id;
END$$
DELIMITER ;
Listing Program 4.68 Store Procedure generate_combo
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`cari_nis_nama`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `cari_nis_nama`(p_prog varchar(25), p_klas
varchar(1))
BEGIN
declare p_no varchar(2);
if p_prog='SLD 1 SMA' then set p_no='01';
elseif p_prog='SLD 2 SMA IPA' then set p_no='02';
elseif p_prog='SLD 2 SMA IPS' then set p_no='03';
elseif p_prog='SLD 3 SMA IPA' then set p_no='04';
elseif p_prog='SLD 3 SMA IPS' then set p_no='05';
elseif p_prog='Program Minggu 3 SMA IPA' then set p_no='06';
elseif p_prog='Program Minggu 3 SMA IPS' then set p_no='07';
elseif p_prog='SPMB 3 IPA' then set p_no='08';
elseif p_prog='SPMB 3 IPS' then set p_no='09';
elseif p_prog='PIKPU Murni 3 IPA' then set p_no='10';
elseif p_prog='PIKPU Murni 3 IPS' then set p_no='11';
else set p_no='12';
end if;
select NIS, upper(Nama) from data_siswa where substr(NIS,1,2)=p_no and
Id_Kelas=p_klas;
END$$
DELIMITER ;
Listing Program 4.69 Store Procedure cari_nis_nama
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`get_data_NilaiN`$$
125
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_data_NilaiN`(p_prog
varchar(25),p_klas varchar(1),p_sem varchar(1),p_Mapel varchar(15))
BEGIN
declare aa varchar(2);
declare ab varchar(10);
select Id_Program from program where Nama_Program=p_prog into aa;
select Id_Mapel from mapel where Nama_Mapel=p_mapel and Id_Program=aa into ab;
select a.NIS, upper(b.Nama) from nilai a,data_siswa b
where a.NIS=b.NIS and a.Id_Program=aa
and a.Smster=p_sem and b.Id_Kelas=p_klas and a.Id_Mapel=ab;
END$$
DELIMITER ;
Listing Program 4.70 Store Procedure get_data_NilaiN
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`get_data_Nilai`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_data_Nilai`(p_prog varchar(25),p_klas
varchar(1),p_sem varchar(1),p_Mapel varchar(15),jnis varchar(2))
BEGIN
declare aa varchar(2);
declare ab varchar(10);
select Id_Program from program where Nama_Program=p_prog into aa;
select Id_Mapel from mapel where Nama_Mapel=p_mapel and Id_Program=aa into ab;
if jnis='N1' then
select a.NIS,upper(b.Nama),a.N1 from nilai a,data_siswa b
where a.NIS=b.NIS and a.Id_Program=aa
and a.Smster=p_sem and b.Id_Kelas=p_klas and a.Id_Mapel=ab;
elseif jnis='N2' then
select a.NIS, upper(b.Nama),a.N2 from nilai a,data_siswa b
where a.NIS=b.NIS and a.Id_Program=aa
and a.Smster=p_sem and b.Id_Kelas=p_klas and a.Id_Mapel=ab;
else
select a.NIS, upper(b.Nama),a.N3 from nilai a,data_siswa b
where a.NIS=b.NIS and a.Id_Program=aa
and a.Smster=p_sem and b.Id_Kelas=p_klas and a.Id_Mapel=ab;
end if;
END$$
DELIMITER ;
Listing Program 4.71 Store Procedure get_data_Nilai
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`InsertNH1`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `InsertNH1`(nom varchar(10),p_mapel
varchar(15),sem varchar(1),j_nil varchar(2),p_NH decimal(5,0))
BEGIN
declare prg varchar(2);
declare mpl varchar(10);
126
select substr(nom,1,2) into prg;
select Id_Mapel from mapel where Nama_Mapel=p_mapel and Id_Program=prg into mpl;
if j_nil='N1' then
update nilai set N1=p_NH,NR=p_NH where NIS=nom and Id_Mapel=mpl and Smster=sem;
elseif j_nil='N2' then
update nilai set N2=p_NH,NR=(NR+p_NH)/2 where NIS=nom and Id_Mapel=mpl
and Smster=sem;
else
update nilai set N3=p_NH,NR=((NR*2)+p_NH)/3 where NIS=nom and
Id_Mapel=mpl and Smster=sem;
end if;
END$$
DELIMITER ;
Listing Program 4.72 Store Procedure insertNH1
IV.3.4.A.c.ii Form Cari Data Nilai
Gambar 4.24 Form Cari Data Nilai
Gambar 4.24 adalah interface form menu cari data nilai. Form ini berfungsi
untuk mencari dan melihat data nilai siswa tertentu per semester untuk semua mata
pelajaran dan semua jenis nilai. Form ini dimulai dengan mencari data siswa yang
diinginkan, kemudian setelah siswa yang dimaksud dipilih, tinggal memilih pada
combo box semester untuk mendapatkan data nilai siswa tersebut. Berikut listing
program 4.73 merupakan listing program untuk combo box semester.
private void semBoxItemStateChanged(java.awt.event.ItemEvent evt) {
if(semBox.getSelectedIndex() == 1) {
sem = "1";
jTable3.setModel(new Nilai(NIS.getText(),sem));
127
} else
sem = "2";
jTable3.setModel(new Nilai(NIS.getText(),sem));
}
Listing Program 4.73 Action Combo Box SEMESTER Form Cari Data Nilai Siswa
Untuk mendapatkan data nilai dari siswa bersangkutan, lewat listing program 4.73,
diperlukan method getNilai yang terdapat pada konstruktor class Nilai.java. Listing
program 4.74 berikut adalah listing method getNilai.
public void getNilai(String a, String b) {
query = "call siswa_nilai('"+a+"','"+b+"');";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
while(RS.next()) {
Object[] r =
{
RS.getString(1), RS.getString(2),
RS.getString(3), RS.getString(4), RS.getString(5)
};
bar.addElement(r);
r=null;
}
} catch(Exception e) {
System.out.print("error");
}
}
Listing Program 4.74 Method getNilai
Method getNilai (listing program 4.74) tersebut akan memanggil store procedure
siswa_nilai untuk mendapatkan data nilai siswa yang dimaksud. Berikut listing
program 4.75 store procedure siswa_nilai.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`siswa_nilai`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `siswa_nilai`(p_no varchar(10),p_sms
varchar(2))
BEGIN
declare pr varchar(2);
select substr(p_no,1,2) into pr;
128
select b.Nama_Mapel,a.N1,a.N2,a.N3,a.NR from nilai a, mapel b where NIS=p_no
and Smster=p_sms and a.Id_Mapel=b.Id_Mapel and b.Id_Program=pr;
END$$
DELIMITER ;
Listing Program 4.75 StoreProcedure siswa_nilai
IV.3.4.A.c.iii Form Laporan Data Nilai
Gambar 4.25 Form Laporan Data Nilai
Gambar 4.25 adalah interface form menu laporan data nilai. Form ini
berfungsi untuk melihat dan mencetak data nilai per program-mapel-kelompok kelas-
semester, data nilai per program-mapel-kelompok kelas-semester-jenis nilai, dan data
nilai per siswa untuk tiap semseter. Berikut listing program 4.76 merupakan listing
program untuk tiap button print pada form laporan data nilai diatas (gambar 4.25).
// Action Button PRINT laporan data nilai per program-mapel-kelompokkelas
//-semester
private void PRINT_1MouseClicked(java.awt.event.MouseEvent evt) {
if(PROGRAM2.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"Pilih PROGRAM !!",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
try {
Koneksi baru = new Koneksi();
baru.connect();
Connection konek=baru.getConnDB();
Map<String, String> params = new HashMap<String, String>();
params.put("parameter1", IN_PROG);
params.put("parameter2", sem);
129
params.put("parameter3", IN_KLP);
params.put("parameter4",COMBO_MAPEL.getSelectedItem().toString());
System.out.println("Filling report...");
String
print=JasperFillManager.fillReportToFile("report/DataNilaiPerProgramMapelKelasSem.jasp
er", params, konek);
System.out.println("Done!");
JasperViewer.viewReport(print, false, false);
} catch (Exception e) {
}
}
// Action Button PRINT laporan data nilai per program-mapel-kelompokkelas
//-semester-jenisnilai
private void PRINT_2MouseClicked(java.awt.event.MouseEvent evt) {
if(nilai.compareTo("N1")<1) {
try {
Koneksi baru = new Koneksi();
baru.connect();
Connection konek=baru.getConnDB();
Map<String, String> params = new HashMap<String, String>();
params.put("parameter1", IN_PROG);
params.put("parameter2", sem);
params.put("parameter3", IN_KLP);
params.put("parameter4",COMBO_MAPEL.getSelectedItem().toString());
System.out.println("Filling report...");
String
print=JasperFillManager.fillReportToFile("report/DataNilaiSiswaN1.jasper", params,
konek);
System.out.println("Done!");
JasperViewer.viewReport(print, false, false);
} catch (Exception e) {
}
} else if(nilai.compareTo("N2")<1) {
try {
Koneksi baru = new Koneksi();
baru.connect();
Connection konek=baru.getConnDB();
Map<String, String> params = new HashMap<String, String>();
params.put("parameter1", IN_PROG);
params.put("parameter2", sem);
params.put("parameter3", IN_KLP);
params.put("parameter4",COMBO_MAPEL.getSelectedItem().toString());
System.out.println("Filling report...");
String
print=JasperFillManager.fillReportToFile("report/DataNilaiSiswaN2.jasper", params,
konek);
System.out.println("Done!");
JasperViewer.viewReport(print, false, false);
130
} catch (Exception e) {
}
} else if(nilai.compareTo("N3")<1) {
try {
Koneksi baru = new Koneksi();
baru.connect();
Connection konek=baru.getConnDB();
Map<String, String> params = new HashMap<String, String>();
params.put("parameter1", IN_PROG);
params.put("parameter2", sem);
params.put("parameter3", IN_KLP);
params.put("parameter4",COMBO_MAPEL.getSelectedItem().toString());
System.out.println("Filling report...");
String
print=JasperFillManager.fillReportToFile("report/DataNilaiSiswaN3.jasper", params,
konek);
System.out.println("Done!");
JasperViewer.viewReport(print, false, false);
} catch (Exception e) {
}
}
}
// Action Button PRINT laporan data nilai tiap siswa tiap semester
private void PRINT_3MouseClicked(java.awt.event.MouseEvent evt) {
if(semBox1.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"PILIH SEMESTER",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
}
if(IN_NAMA.getText().compareTo("")<1 && NIS.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Cari DATA SISWA dengan MENGETIKKAN
NAMA, atau NIS pada KOLOM YANG DIDEDIAKAN", "MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
try {
Koneksi baru = new Koneksi();
baru.connect();
Connection konek=baru.getConnDB();
Map<String, String> params = new HashMap<String, String>();
params.put("parameter1", NIS.getText());
params.put("parameter2", semB);
System.out.println("Filling report...");
String
print=JasperFillManager.fillReportToFile("report/DataNilaiSiswa.jasper", params,
konek);
System.out.println("Done!");
JasperViewer.viewReport(print, false, false);
} catch (Exception e) {
}
131
}
}
Listing Program 4.76 Action Button PRINT Form Laporan Data Nilai
Pada listing program 4.76, fungsi button print1 dijalankan dengan memanggil file
jasper bernama DataNilaiPerProgramMapelKelasSem.jasper. File tersebut berfungsi
untuk menampilkan data siswa per program dalam bentuk laporan yang dapat
langsung dicetak. Berikut gambar 4.26 merupakan gambaran dari laporan yang
ditampilkan.
Gambar 4.26 Tampilan Laporan Data Nilai Lengkap
Untuk mendapatkan data tersebut, diperlukan query dari file jesper tersebut ke
database. Berikut listing 4.77 adalah query pada file jesper tersebut.
select a.NIS, upper(b.Nama),a.N1,a.N2,a.N3,a.NR
from nilai a,data_siswa b,program c,mapel d
where a.NIS=b.NIS
and c.Nama_Program=$P{parameter1} and a.Id_Program=c.Id_Program
and a.Smster=$P{parameter2}
and b.Id_Kelas=$P{parameter3}
and d.Nama_Mapel=$P{parameter4} and d.Id_Mapel=a.Id_Mapel;
Listing Program 4.77 Query Laporan Data Nilai Siswa Per Program
Pada listing program 4.76, fungsi button print2 dijalankan dengan memanggil file
jasper bernama DataNilaiSiswaN1.jasper, DataNilaiSiswaN2.jasper, dan
DataNilaiSiswaN3.jasper bergantung pada jenis nilai yang dipilih. File tersebut
132
berfungsi untuk menampilkan data siswa per program dalam bentuk laporan yang
dapat langsung dicetak. Berikut gambar 4.27 merupakan gambaran dari laporan yang
ditampilkan.
Gambar 4.27 Tampilan Laporan Data Nilai Per Jenis Nilai
Untuk mendapatkan data tersebut, diperlukan query dari file jesper tersebut ke
database. Berikut listing 4.78 adalah query pada file jesper tersebut.
select a.NIS, upper(b.Nama),a.N1 from nilai a,data_siswa b,program c,mapel d where
a.NIS=b.NIS and c.Nama_Program=$P{parameter1} and a.Id_Program=c.Id_Program and
a.Smster=$P{parameter2} and b.Id_Kelas=$P{parameter3} and d.Nama_Mapel=$P{parameter4}
and d.Id_Mapel=a.Id_Mapel;
Listing Program 4.78 Query Laporan Data Nilai Siswa Per Jenis Nilai
Pada listing program 4.76, fungsi button print3 dijalankan dengan memanggil file
jasper bernama DataNilaiSiswa.jasper. File tersebut berfungsi untuk menampilkan
data siswa per program dalam bentuk laporan yang dapat langsung dicetak. Berikut
gambar 4.28 merupakan gambaran dari laporan yang ditampilkan.
133
Gambar 4.28 Tampilan Laporan Data Nilai Per Siswa
Untuk mendapatkan data tersebut, diperlukan query dari file jesper tersebut ke
database. Berikut listing 4.79 adalah query pada file jesper tersebut.
select a.NIS,upper(c.Nama),b.Nama_Mapel,a.N1,a.N2,a.N3,a.NR from nilai a,mapel
b,data_siswa c where a.NIS=c.NIS and a.Id_Mapel=b.Id_Mapel and a.NIS=$P{parameter1}
and Smster=$P{parameter2};
Listing Program 4.79 Query Laporan Data Nilai Siswa Per Jenis Nilai
IV.3.4.B Form Menu Administrasi
Gambar 4.29 Form Menu Administrasi
Gambar 4.29 adalah interface form menu administrasi. Form ini memiliki
button menu yang berhubungan tentang data administrasi siswa, yaitu pembayaran
bimbingan untuk menuju form pembayaran bimbingan siswa, button data bayar siswa
134
untuk menuju form lihat data bayar siswa, button data biaya bimbingan untuk menuju
form daftar biaya bimbingan, dan button laporan untuk menuju form laporan data
administrasi siswa. Listing program 4.80 merupakan listing program untuk button
menu yang tersedia.
// Action Button PEMBAYARAN BIMBINGAN
private void BUTT_BAYARMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormDataBayarSiswa baru = new FormDataBayarSiswa();
baru.setVisible(true);
}
// Action Button DATA BAYAR SISWA
private void BUTT_DATA_BIAYAMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormLihatDataBayarSiswa baru = new FormLihatDataBayarSiswa();
baru.setVisible(true);
}
// Action Button DATA BIAYA BIMBINGAN
private void BUTT_BIAYA_BIMBMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormDataBiayaBimbingan baru = new FormDataBiayaBimbingan();
baru.setVisible(true);
}
// Action Button LAPORAN
private void LAPORANMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormLaporanAdministrasi lad = new FormLaporanAdministrasi();
lad.setVisible(true);
}
Listing Program 4.80 Action Button Form Menu Administrasi
IV.3.4.B.a Form Pembayaran Bimbingan
135
Gambar 4.30 Form Pembayaran Bimbingan
Gambar 4.30 adalah interface form pembayaran bimbingan. Form ini
berfungsi untuk menjalankan proses pembayaran bimbingan. Form ini akan
menampilkan data pembayaran lengkap seorang siswa. Untuk melakukan
pembayaran, maka pegawai tinggal memilih dan menekan tombol bayar yang ada
(bayar 1, bayar 2, atau bayar 3), dan akan menuju ke form nota bayar. Listing
program 4.81 merupakan listing program untuk button bayar yang tersedia.
// Action Button BAYAR 1
private void BUTT_BAYAR_IMouseClicked(java.awt.event.MouseEvent evt) {
String vv = Keterangan.getText();
if(Bayar1.getText().compareTo("")>1) {
JOptionPane.showMessageDialog(null,"PEMBAYARAN PERTAMA SUDAH
DILAKUKAN","MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(vv.length()==5) {
JOptionPane.showMessageDialog(null,"SUDAH LUNAS PEMBAYARAN",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(NIS.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"DATA SISWA KOSONG",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
FormPembayaranPertama bdf = new FormPembayaranPertama();
bdf.setVisible(true);
bdf.setNIS(getNIS());
}
136
}
// Action Button BAYAR 2
private void BUTT_BAYAR_IIMouseClicked(java.awt.event.MouseEvent evt) {
String vv = Keterangan.getText();
if(NIS.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"DATA SISWA KOSONG",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Bayar1.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"BELUM MELAKUKAN PEMBAYARAN
PERTAMA","MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Bayar2.getText().compareTo("")>1) {
JOptionPane.showMessageDialog(null,"PEMBAYARAN KEDUA SUDAH DILAKUKAN",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(vv.length()==5) {
JOptionPane.showMessageDialog(null,"SUDAH LUNAS PEMBAYARAN",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
this.setVisible(true);
FormPembayaranKedua bdf = new FormPembayaranKedua();
bdf.setVisible(true);
bdf.setNIS(getNIS());
}
}
// Action Button BAYAR 3
private void BUTT_BAYAR_IIIMouseClicked(java.awt.event.MouseEvent evt) {
String vv = Keterangan.getText();
if(NIS.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"DATA SISWA KOSONG",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Bayar1.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"BELUM MELAKUKAN PEMBAYARAN
PERTAMA","MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(Bayar2.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"BELUM MELAKUKAN PEMBAYARAN KEDUA",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(vv.length()==5) {
JOptionPane.showMessageDialog(null,"SUDAH LUNAS PEMBAYARAN",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
this.setVisible(true);
FormPembayaranKetiga bdf = new FormPembayaranKetiga();
bdf.setVisible(true);
bdf.setNIS(getNIS());
}
}
137
Listing Program 4.81 Action Button BAYAR Form Pembayaran Bimbingan
IV.3.4.B.a.i Form Nota Pembayaran
Gambar 4.31 Form Nota Pembayaran
Gambar 4.31 adalah interface form nota pembayaran bimbingan (pembayaran
ke-3). Form ini berfungsi untuk melakukan proses pembayaran bimbingan. Bentuk
dari form bayar 1 dan 2 hampir sama, perbedaannya terletak pada field jumlah bayar
yang editable. Pada nota bayar ketiga ini, field jumlah bayar dibuat non-editable
dikarenakan field tersebut akan langsung terisi kekurangan pembayaran yang ada,
sehingga pada pembayaran ketiga ini, pembayaran bimbingan sudah terlunasi. Listing
program 4.81 merupakan listing program untuk button proses.
private void BUTT_PROSESMouseClicked(java.awt.event.MouseEvent evt) {
bayar byr = new bayar();
String[] data = new String[1];
data = byr.cekBayar(NIS.getText());
int a = Integer.parseInt(data[0]);
int b;
if(Jum_Bayar.getText().compareTo("")>1) {
b = Integer.parseInt(Jum_Bayar.getText());
if(b>a) {
JOptionPane.showMessageDialog(null,"PEMBAYARAN TERLALU
BESAR","MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if(b<a) {
JOptionPane.showMessageDialog(null,"PEMBAYARAN TERLALU
KECIL","MESSAGE",JOptionPane.ERROR_MESSAGE );
} else if (Terbilang.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"TULIS DENGAN HURUF NOMINAL
UANG YANG DIBAYAR","MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
byr.BayarKetiga(Jum_Bayar.getText(), NIS.getText());
try {
Koneksi baru = new Koneksi();
baru.connect();
Connection konek=baru.getConnDB();
Map<String, String> params = new HashMap<String, String>();
138
params.put("parameter1", NIS.getText());
System.out.println("Filling report...");
String
print=JasperFillManager.fillReportToFile("report/NotaBayarKetiga.jasper", params,
konek);
System.out.println("Done!");
JasperViewer.viewReport(print, false, false);
} catch (Exception e) {
}
this.setVisible(false);
}
}
}
Listing Program 4.82 Action Button PROSES Form Nota Pembayaran Ketiga
Listing program 4.82 akan menjalankan proses pembayaran, melakukan penyimpanan
kedalam database, dan mencetak nota pembayaran. Proses penyimpanan kedalam
database dilakukan dengan memanggil method BayarKetiga pada kelas bayar.java.
Untuk bayar 1 dan bayar 2, akan memanggil method BayarPertama dan BayarKedua.
Sedangkan untuk mencetak nota, akan memanggil file jasper NotaBayarPertama
untuk bayar 1, NotaBayarKedua untuk bayar 2, dan NotaBayarKetiga untuk bayar 3.
Berikut dibawah ini berturut-turut adalah listing program 4.83 method BayarKetiga
dan gambar 4.32 adalah gambar nota pembayaran untuk dicetak.
public void BayarKetiga(String b,String d) {
query = "call bayar_3rd("+b+",'"+d+"');";
try {
conn.connect();
Statement ST = conn.sambung.createStatement();
ST.executeUpdate(query);
ST.close();
conn.sambung.close();
JOptionPane.showMessageDialog(null,"Pembayaran Berhasil",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
} catch(Exception esql) {
JOptionPane.showMessageDialog(null,"!!!Operasi Gagal!!!",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
}
}
Listing Program 4.83 Method BayarKetiga
139
Gambar 4.32 Tampilan Print Nota Pembayaran
Method BayarKetiga (listing 4.83), digunakan untuk memanggil store procedure
bayar_3rd di dalam database. Sedangkan untuk proses bayar 1 dan bayar 2, akan
memanggil store procedure bayar_1st dan bayar_2nd. Berikut listing 4.84 store
procedure bayar_1st, listing 4.85 store procedure bayar_2nd, dan listing 4.86 store
procedure bayar_3rd.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`bayar_1st`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `bayar_1st`(p_uang int(7),p_nis
varchar(10))
BEGIN
declare byr int(7);
declare tby varchar(10);
declare jtp varchar(10);
declare tot int(7);
declare p_nR varchar(9);
select substr(now(),1,10) into tby;
select No_Pembayaran from pembayaran where NIS=p_nis into p_nR;
select substr((date_add(now(),interval 30 day)),1,10) into jtp;
select (Total_Dibayar/2) from pembayaran where NIS=p_nis into byr;
start transaction;
if (p_uang>=byr) then
update pembayaran
set
No_Resi_1=concat(p_nR,‟1‟),Tgl_Bayar_1=tby,Jml_Bayar_1=p_uang,Total_Dibayar=p_uang,Tgl
_Jatuh_Tempo=jtp where NIS=p_nis;
call cek(p_nis);
select Jml_Biaya from pembayaran where NIS=p_nis into tot;
if(p_uang=tot) then
update pembayaran
set No_Resi_2='000000',Tgl_Bayar_2='0000-00-00',Jml_Bayar_2=0,
No_Resi_3='000000',Tgl_Bayar_3='0000-00-00',Jml_Bayar_3=0
where NIS=p_nis;
end if;
commit;
else
rollback;
end if;
END$$
DELIMITER ;
Listing Program 4.84 StoreProcedure bayar_1st
140
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`bayar_2nd`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `bayar_2nd`(p_uang int(7), p_nis
varchar(10))
BEGIN
declare tby varchar(10);
declare jtp varchar(10);
declare jby,tot int(6);
declare p_nR varchar(9);
select substr(now(),1,10) into tby;
select No_Pembayaran from pembayaran where NIS=p_nis into p_nR;
select substr((date_add(now(),interval 30 day)),1,10) into jtp;
update pembayaran
set No_Resi_2=concat(p_nR,‟2‟),Tgl_Bayar_2=tby,Jml_Bayar_2=p_uang,
Total_Dibayar=(Total_Dibayar+p_uang),Tgl_Jatuh_Tempo=jtp
where NIS=p_nis;
call cek(p_nis);
select Jml_Biaya from pembayaran where NIS=p_nis into jby;
select Total_Dibayar from pembayaran where NIS=p_nis into tot;
if(tot=jby) then
update pembayaran
set No_Resi_3='000000', Tgl_Bayar_3='0000-00-00', Jml_Bayar_3=0
where NIS=p_nis;
end if;
END$$
DELIMITER ;
Listing Program 4.85 StoreProcedure bayar_2nd
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`bayar_3rd`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `bayar_3rd`(p_uang int(7), p_nis
varchar(10))
BEGIN
declare tby varchar(10);
declare p_nR varchar(9);
select substr(now(),1,10) into tby;
select No_Pembayaran from pembayaran where NIS=p_nis into p_nR;
update pembayaran
set No_Resi_3=concat(p_nR,‟3‟),Tgl_Bayar_3=tby,Jml_Bayar_3=p_uang,
Total_Dibayar=(Total_Dibayar+p_uang)
where NIS=p_nis;
call cek(p_nis);
END$$
DELIMITER ;
Listing Program 4.86 StoreProcedure bayar_3rd
Masing-masing store procedure tersebut akan melakukan update pada tabel
pembayaran untuk tiap proses pembayaran, baik pembayaran pertama, pembayaran
kedua, atau pembayaran ketiga. Juga akan dilakukan untuk pengecekan pada
pembayaran pertama dan kedua, apakah pembayaran yang dilakukan sudah bias
melunasi biaya bimbingan.
141
IV.3.4.B.b Form Lihat Data Pembayaran Siswa
Gambar 4.33 Form Lihat Data Pembayaran Siswa
Gambar 4.33 adalah interface form lihat data pembayaran siswa. Form ini
berfungsi untuk melihat pembayaran bimbingan siswa per program, program-kelas,
dan melihat data jatuh tempo per program. Listing program 4.87 merupakan listing
program pada form lihat data pembayaran siswa.
// Action Combo Box PROGRAM
private void PROGRAMItemStateChanged(java.awt.event.ItemEvent evt) {
if(PROGRAM.getSelectedIndex() == 1) {
IN_PROG = "01";
} else if(PROGRAM.getSelectedIndex() == 2) {
IN_PROG = "02";
} else if(PROGRAM.getSelectedIndex() == 3) {
IN_PROG = "03";
} else if(PROGRAM.getSelectedIndex() == 4) {
IN_PROG = "04";
} else if(PROGRAM.getSelectedIndex() == 5) {
IN_PROG = "05";
} else if(PROGRAM.getSelectedIndex() == 6) {
IN_PROG = "06";
} else if(PROGRAM.getSelectedIndex() == 7) {
IN_PROG = "07";
} else if(PROGRAM.getSelectedIndex() == 8) {
IN_PROG = "08";
} else if(PROGRAM.getSelectedIndex() == 9) {
IN_PROG = "09";
} else if(PROGRAM.getSelectedIndex() == 10) {
IN_PROG = "10";
} else if(PROGRAM.getSelectedIndex() == 11) {
IN_PROG = "11";
} else if(PROGRAM.getSelectedIndex() == 12) {
IN_PROG = "12";
142
}
jTable1.setModel(new LihatBayar(IN_PROG));
jTable1.getModel();
IN_KLS.setSelectedIndex(0);
}
// Action Combo Box KELAS
private void IN_KLSItemStateChanged(java.awt.event.ItemEvent evt) {
if(IN_KLS.getSelectedIndex() == 1) {
IN_KLP = "A";
} else if(IN_KLS.getSelectedIndex() == 2) {
IN_KLP = "B";
} else if(IN_KLS.getSelectedIndex() == 3) {
IN_KLP = "C";
} else if(IN_KLS.getSelectedIndex() == 4) {
IN_KLP = "D";
} else {
IN_KLP = "";
}
jTable1.setModel(new LihatBayar(IN_PROG,IN_KLP));
jTable1.getModel();
}
// Action Button JATUH TEMPO PROGRAM
private void BUTT_JATUH_TEMPOMouseClicked(java.awt.event.MouseEvent evt) {
jTable1.setModel(new LihatBayar(IN_PROG,IN_KLP,""));
jTable1.getModel();
}
Listing Program 4.87 Action Form Lihat Data Pembayaran Siswa
Untuk menjalankan tiap proses pada listing 4.87, diperlukan method-method pada
kelas LihatBayar.java. Berikut listing 4.88 merupakan kelas LihatBayar.java.
public class LihatBayar extends javax.swing.table.AbstractTableModel {
Koneksi conn = new Koneksi();
private String kol[] ={"NIS","NAMA","BIAYA","KEKURANGAN","JATUH
TEMPO","KETERANGAN"};
private java.util.Vector bar = new java.util.Vector();
String query;
public LihatBayar() {
}
public LihatBayar(String a) {
getPembayaran(a);
}
public LihatBayar(String a,String b) {
getPembayaranKelas(a,b);
}
public LihatBayar(String a,String b,String c) {
getPembayaranJTP(a,b);
}
public LihatBayar(String a,String b,int c) {
getPembayaranJTP2(a,b,c);
}
private void getPembayaran(String a) {
query = "call SiswaBayarProgram('"+a+"');";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
while(RS.next()) {
Object[] r =
{RS.getString(1),RS.getString(2),RS.getString(3),
RS.getString(4),RS.getString(5),RS.getString(6)};
bar.addElement(r);
143
r=null;
}
} catch(Exception e) {
System.out.print("error void get Pembayaran Program");
}
}
private void getPembayaranJTP(String a, String b) {
query = "call SiswaBayarJTP('"+a+"','"+b+"');";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
while(RS.next()) {
Object[] r =
{RS.getString(1),RS.getString(2),RS.getString(3),
RS.getString(4),RS.getString(5),RS.getString(6)};
bar.addElement(r);
r=null;
}
} catch(Exception e) {
System.out.print("error void get Pembayaran JTP");
}
}
private void getPembayaranJTP2(String a, String b, int c) {
throw new UnsupportedOperationException("Not yet implemented");
}
private void getPembayaranKelas(String a, String b) {
query = "call SiswaBayarKelas('"+a+"','"+b+"');";
try {
conn.connect();
java.sql.Statement ST = conn.sambung.createStatement();
java.sql.ResultSet RS = ST.executeQuery(query);
bar.removeAllElements();
while(RS.next()) {
Object[] r =
{RS.getString(1),RS.getString(2),RS.getString(3),
RS.getString(4),RS.getString(5),RS.getString(6)};
bar.addElement(r);
r=null;
}
} catch(Exception e) {
System.out.print("error void get Pembayaran Kelas");
}
}
Listing Program 4.88 ClassLihatBayar.java
Class LihatBayar.java (listing 4.88), bertugas untuk mengambil data dari database
untuk ditampilkan pada form lihat data pembayaran siswa (gambar 4.33). Terdapat 3
store procedure yang dipanggil pada class LihatBayar.java, yaitu
SiswaBayarProgram, SiswaBayarKelas, dan SiswaBayarJTP. Berikut berturut-turut
listing 4.89, 4.90, 4.91 adalah store procedure SiswaBayarProgram, SiswaBayarKelas,
dan SiswaBayarJTP.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`SiswaBayarProgram`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SiswaBayarProgram`(prog varchar(2))
BEGIN
144
select a.NIS, upper(b.Nama), a.Jml_Biaya, (a.Jml_Biaya-
a.Total_Dibayar),a.Tgl_Jatuh_Tempo,a.Keterangan from pembayaran a, data_siswa b
where substr(a.NIS,1,2)=prog and a.NIS=b.NIS;
END$$
DELIMITER ;
Listing Program 4.89 StoreProcedure SiswaBayarProgram
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`SiswaBayarKelas`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SiswaBayarKelas`(prog varchar(2),kls
varchar(1))
BEGIN
select a.NIS,upper(b.Nama),a.Jml_Biaya,(a.Jml_Biaya-a.Total_Dibayar) as
Kekurangan,a.Tgl_Jatuh_Tempo,a.Keterangan from pembayaran a, data_siswa b
where substr(a.NIS,1,2)=prog and a.NIS=b.NIS and b.Id_Kelas=kls;
END$$
DELIMITER ;
Listing Program 4.90 StoreProcedure SiswaBayarKelas
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`SiswaBayarJTP`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SiswaBayarJTP`(prog varchar(2),kls
varchar(1))
BEGIN
if(kls='E') then
select a.NIS,upper(b.Nama),a.Jml_Biaya,(a.Jml_Biaya-a.Total_Dibayar) as
Kekurangan,a.Tgl_Jatuh_Tempo,a.Keterangan from pembayaran a,data_siswa b
where substr(a.NIS,1,2)=prog and a.Tgl_Jatuh_Tempo <= date(now()) and
a.Tgl_Jatuh_Tempo != '0000-00-00' and a.NIS=b.NIS;
else
select a.NIS,upper(b.Nama),a.Jml_Biaya,(a.Jml_Biaya-a.Total_Dibayar) as
Kekurangan,a.Tgl_Jatuh_Tempo,a.Keterangan from pembayaran a,data_siswa b
where substr(a.NIS,1,2)=prog and a.NIS=b.NIS and b.Id_Kelas=kls and
Tgl_Jatuh_Tempo <= date(now()) and Tgl_Jatuh_Tempo != '0000-00-00';
end if;
END$$
DELIMITER ;
Listing Program 4.91 StoreProcedure SiswaBayarJTP
145
IV.3.4.B.c Form Data Biaya Bimbingan
Gambar 4.34 Form Data Biaya Bimbingan
Gambar 4.34 adalah interface form lihat data biaya bimbingan. Form ini
berfungsi untuk melihat dan melakukan update data biaya bimbingan. Listing
program 4.92 merupakan listing program button update form data biaya bimbingan
private void BUTT_UPDATEMouseClicked(java.awt.event.MouseEvent evt) {
bayar bay = new bayar();
bay.UpdateBiaya(Nama_Prog.getText(), Biaya.getText());
}
Listing Program 4.92 Action Button UPDATE Form Data Biaya Bimbingan
Untuk menjalankan proses update data biaya bimbingan, lewat listing program 4.92,
diperlukan method UpdateBiaya yang terdapat pada class bayar.java. Listing program
4.93 berikut adalah listing method UpdateBiaya.
public void UpdateBiaya(String a,String b) {
query = "call upd_biaya('"+a+"',"+b+");";
try {
conn.connect();
Statement ST = conn.sambung.createStatement();
ST.executeUpdate(query);
ST.close();
conn.sambung.close();
JOptionPane.showMessageDialog(null,"Update Biaya Bimbingan Berhasil",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
} catch(Exception esql) {
JOptionPane.showMessageDialog(null,"!!!Operasi Gagal!!!",
"MESSAGE",JOptionPane.INFORMATION_MESSAGE );
}
}
Listing Program 4.93 Method UpdateBiaya
146
Method UpdateBiaya (listing program 4.93) tersebut akan memanggil store procedure
upd_Biaya untuk mengupdate data biaya bimbingan suatu program. Berikut listing
program 4.94 store procedure upd_Biaya.
DELIMITER $$
DROP PROCEDURE IF EXISTS `neutron_ta`.`upd_Biaya`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `upd_Biaya`(p_nm varchar(50), p_hrg
int(6))
BEGIN
update program set Biaya=p_hrg where Nama_Program=p_nm;
END$$
DELIMITER ;
Listing Program 4.94 StoreProcedure upd_Biaya
IV.3.4.B.d Form Laporan Administrasi
Gambar 4.35 Form Laporan Administrasi
Gambar 4.35 adalah interface form menu laporan data adminsitrasi. Form ini
berfungsi untuk melihat dan mencetak data administrasi siswa per program, data
administrasi tiap siswa, dan data jatuh pembayaran tempo lewat button menu. Berikut
listing program 4.95 merupakan listing program untuk tiap button print dan button
menu pada form laporan data administrasi diatas (gambar 4.35).
// Action Button PRINT Data Bayar Siswa Per Program
private void PRINT_1MouseClicked(java.awt.event.MouseEvent evt) {
if(PROGRAM2.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"Pilih PROGRAM !!",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
try {
Koneksi baru = new Koneksi();
147
baru.connect();
Connection konek=baru.getConnDB();
Map<String, String> params = new HashMap<String, String>();
params.put("P1", IN_PROG);
System.out.println("Filling report...");
String
print=JasperFillManager.fillReportToFile("report/DataBayarSiswaPerProgram.jasper",
params, konek);
System.out.println("Done!");
JasperViewer.viewReport(print, false, false);
} catch (Exception e) {
}
}
}
// Action Button PRINT Data Bayar Siswa
private void PRINT_3MouseClicked(java.awt.event.MouseEvent evt) {
if(IN_NAMA.getText().compareTo("")<1 && NIS.getText().compareTo("")<1) {
JOptionPane.showMessageDialog(null,"Cari DATA SISWA dengan MENGETIKKAN
NAMA, atau NIS pada KOLOM YANG DIDEDIAKAN",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
try {
Koneksi baru = new Koneksi();
baru.connect();
Connection konek=baru.getConnDB();
Map<String, String> params = new HashMap<String, String>();
params.put("P1", NIS.getText());
System.out.println("Filling report...");
String
print=JasperFillManager.fillReportToFile("report/DataBayarPerSiswa.jasper", params,
konek);
System.out.println("Done!");
JasperViewer.viewReport(print, false, false);
} catch (Exception e) {
}
}
}
// Action Button KLIK DISINI Menuju Form Laporan Pembayaran Jatuh Tempo
private void BUTT_LAP_JTPMouseClicked(java.awt.event.MouseEvent evt) {
this.setVisible(false);
FormLaporanJTP baru = new FormLaporanJTP();
baru.setVisible(true);
}
Listing Program 4.95 Action Button-Button Form Laporan Administrasi
Pada listing program 4.95, fungsi button print (Laporan Data Bayar Siswa Per
Program) akan menjalankan perintah untuk memanggil file jasper bernama
DataBayarSiswaPerProgram.jasper. File tersebut berfungsi untuk menampilkan data
bayar siswa per program dalam bentuk laporan yang dapat langsung dicetak. Berikut
gambar 4.36 merupakan gambaran dari laporan yang ditampilkan.
148
Gambar 4.36 Tampilan Laporan Pembayaran Siswa Per Program
Untuk mendapatkan data pada gambar 4.36, diperlukan query dari file jesper tersebut
ke database. Berikut listing 4.96 adalah query pada file jesper tersebut.
select a.NIS,upper(b.Nama),a.Biaya_Bimbingan as Biaya,a.Potongan,a.Jml_Bayar_1 as
'Bayar 1',a.Jml_Bayar_2 as 'Bayar 2',a.Jml_Bayar_3 as 'Bayar 3',a.Tgl_Jatuh_Tempo as
Jatuh_Tempo,(a.Jml_Biaya-a.Total_Dibayar) as Kekurangan,a.Keterangan from pembayaran
a,data_siswa b where substr(a.NIS,1,2)=$P{P1} and a.NIS=b.NIS
Listing Program 4.96 Query Laporan Pembayaran Siswa Per Program
Pada listing program 4.95, fungsi button print (Laporan Data Bayar Siswa) akan
menjalankan perintah untuk memanggil file jasper bernama
DataBayarPerSiswa.jasper. File tersebut berfungsi untuk menampilkan data bayar
lengkap untuk seorang siswa dalam bentuk laporan yang dapat langsung dicetak.
Berikut gambar 4.37 merupakan gambaran dari laporan yang ditampilkan.
149
Gambar 4.37 Tampilan Laporan Data Pembayaran Lengkap Per Siswa
Untuk mendapatkan data pada gambar 4.37, diperlukan query dari file jesper tersebut
ke database. Berikut listing 4.97 adalah query pada file jesper tersebut.
select a.NIS,upper(b.Nama) as NAMA,
a.Biaya_Bimbingan as 'Biaya Bimbingan',
a.No_Pembayaran as 'Nomor Pembayaran',
a.No_Resi_1 as 'Nomor Resi 1',
a.Jml_Bayar_1 as 'Jumlah Bayar 1',
a.Tgl_Bayar_1 as 'Tanggal Bayar 1',
a.No_Resi_2 as 'Nomor Resi 2',
a.Jml_Bayar_2 as 'Jumlah Bayar 2',
a.Tgl_Bayar_2 as 'Tanggal Bayar 2',
a.No_Resi_3 as 'Nomor Resi 3',
a.Jml_Bayar_3 as 'Jumlah Bayar 3',
a.Tgl_Bayar_3 as 'Tanggal Bayar 3',
a.Tgl_Jatuh_Tempo as 'Jatuh Tempo Pembayaran',
a.Jml_Biaya-a.Total_Dibayar as Kekurangan,
a.Keterangan from pembayaran a,data_siswa b where a.NIS=b.NIS
and a.NIS=$P{P1};
Listing Program 4.97 Query Laporan Data Bayar Per Siswa
Sedangkan untuk button menu pembayaran jatuh tempo, akan merujuk kepada
form Laporan Pembayaran Jatuh Tempo, pada gambar berikutnya (gambar 4.38)
150
IV.3.4.B.d.i Form Laporan Pembayaran Jatuh Tempo
Gambar 4.38 Form Laporan Pembayaran Jatuh Tempo
Gambar 4.38 adalah interface form laporan data pembayaran jatuh tempoi.
Form ini berfungsi untuk melihat dan mencetak data pembayaran siswa yang telah
jatuh tempo, baik per program, pada tanggal tertentu, dan antara tanggal yang
dikehendaki. Berikut listing program 4.98 merupakan listing program untuk tiap
button print pada form laporan pembayaran jatuh tempo (gambar 4.38).
// Action Button PRINT Laporan Pembayaran Jatuh Tempo Per Program
private void BUTT_PRINTMouseClicked(java.awt.event.MouseEvent evt) {
if(PROGRAM.getSelectedIndex()==0) {
JOptionPane.showMessageDialog(null,"Pilih PROGRAM !!",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
try {
Koneksi baru = new Koneksi();
baru.connect();
Connection konek=baru.getConnDB();
Map<String, String> params = new HashMap<String, String>();
params.put("parameter1", IN_PROG);
System.out.println("Filling report...");
String
print=JasperFillManager.fillReportToFile("report/DataBayarJatuhTempoPerProgram.jasper"
, params, konek);
System.out.println("Done!");
JasperViewer.viewReport(print, false, false);
} catch (Exception e) {
}
}
151
}
// Action Button PRINT Laporan Pembayaran Jatuh Tempo Pada Tanggal Tertentu
private void BUTT_PRINT1MouseClicked(java.awt.event.MouseEvent evt) {
if(jDateChooser1.getDate()==null) {
JOptionPane.showMessageDialog(null,"ISI TANGGAL",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
Calendar c = jDateChooser1.getCalendar();
int bulan = c.get(c.MONTH)+1;
int day = c.get(c.DATE);
String bln="";
String hr="";
if(bulan < 10)
bln = "0"+bulan;
else
bln = ""+bulan;
if(day < 10)
hr = "0"+c.get(c.DATE);
else
hr = ""+c.get(c.DATE);
String tgl = c.get(c.YEAR)+"-"+bln+"-"+hr;
System.out.println(tgl);
try {
Koneksi baru = new Koneksi();
baru.connect();
Connection konek=baru.getConnDB();
Map<String, String> params = new HashMap<String, String>();
params.put("parameter1", tgl);
System.out.println("Filling report...");
String
print=JasperFillManager.fillReportToFile("report/DataJTPTanggal.jasper", params,
konek);
System.out.println("Done!");
JasperViewer.viewReport(print, false, false);
} catch (Exception e) {
}
}
}
// Action Button PRINT Laporan Pembayaran Jatuh Tempo Antara Tanggal Tertentu
private void BUTT_PRINT2MouseClicked(java.awt.event.MouseEvent evt) {
if(jDateChooser2.getDate()==null || jDateChooser3.getDate()==null) {
JOptionPane.showMessageDialog(null,"LENGKAPI TANGGAL DARI dan SAMPAI",
"MESSAGE",JOptionPane.ERROR_MESSAGE );
} else {
Calendar a = jDateChooser2.getCalendar();
int bulan = a.get(a.MONTH)+1;
int day = a.get(a.DATE);
String bln="";
String hr="";
if(bulan < 10)
bln = "0"+bulan;
else
bln = ""+bulan;
if(day < 10)
hr = "0"+a.get(a.DATE);
else
hr = ""+a.get(a.DATE);
String tgl = a.get(a.YEAR)+"-"+bln+"-"+hr;
System.out.println(tgl);
152
Calendar b = jDateChooser3.getCalendar();
int bulan1 = b.get(b.MONTH)+1;
int day1 = b.get(b.DATE);
String bln1="";
String hr1="";
if(bulan1 < 10)
bln1 = "0"+bulan1;
else
bln1 = ""+bulan1;
if(day1 < 10)
hr1 = "0"+b.get(b.DATE);
else
hr1 = ""+b.get(b.DATE);
String tgl1 = b.get(b.YEAR)+"-"+bln1+"-"+hr1;
System.out.println(tgl1);
try {
Koneksi baru = new Koneksi();
baru.connect();
Connection konek=baru.getConnDB();
Map<String, String> params = new HashMap<String, String>();
params.put("parameter1", tgl);
params.put("parameter2", tgl1);
System.out.println("Filling report...");
String
print=JasperFillManager.fillReportToFile("report/DataJTPTglDariMpe.jasper", params,
konek);
System.out.println("Done!");
JasperViewer.viewReport(print, false, false);
} catch (Exception e) {
}
}
}
Listing Program 4.98 Action Button-Button PRINT Form Laporan Pembayaran Jatuh Tempo
Pada listing program 4.98, fungsi button print (Laporan Pembayaran Jatuh Tempo Per
Program) akan menjalankan perintah untuk memanggil file jasper bernama
DataBayarJatuhTempoPerProgram.jasper. File tersebut berfungsi untuk menampilkan
data bayar jatuh tempo untuk program tertentu dalam bentuk laporan yang dapat
langsung dicetak. Berikut gambar 4.39 merupakan gambaran dari laporan yang
ditampilkan.
153
Gambar 4.39 Tampilan Laporan Pembayaran Jatuh Tempo
Untuk mendapatkan data pada gambar 4.39, diperlukan query dari file jesper tersebut
ke database. Berikut listing 4.99 adalah query pada file jesper tersebut.
select a.NIS, upper(b.Nama), b.Nama_Ortu as Nama_OrangTua,b.No_Telp as
Telepon,a.Jml_Biaya,(a.Jml_Biaya-a.Total_Dibayar) as Kekurangan,a.Tgl_Jatuh_Tempo as
Jatuh_Tempo,a.Keterangan from pembayaran a,data_siswa b where
substr(a.NIS,1,2)=$P{parameter1} and a.NIS=b.NIS and a.Tgl_Jatuh_Tempo <= date(now())
and a.Tgl_Jatuh_Tempo != '0000-00-00';
Listing Program 4.99 Query Laporan Pembayaran Jatuh Tempo Per Program
Pada listing program 4.98, fungsi button print (Laporan Pembayaran Jatuh Tempo
Pada Tanggal) akan menjalankan perintah untuk memanggil file jasper bernama
DataJTPTanggal.jasper. File tersebut berfungsi untuk menampilkan data bayar yang
jatuh tempo pada tanggal tertentu dalam bentuk laporan yang dapat langsung dicetak.
Berikut gambar 4.40 merupakan gambaran dari laporan yang ditampilkan.
154
Gambar 4.40 Tampilan Laporan Pembayaran Jatuh Tempo Pada Tanggal
Untuk mendapatkan data pada gambar 4.40, diperlukan query dari file jesper tersebut
ke database. Berikut listing 4.100 adalah query pada file jesper tersebut.
select a.NIS,upper(b.Nama), a.Jml_Bayar_1 as 'Bayar 1',a.Jml_Bayar_2 as 'Bayar
2',a.Jml_Bayar_3 as 'Bayar 3',a.Jml_Biaya-a.Total_Dibayar as
Kekurangan,a.Tgl_Jatuh_Tempo as 'Jatuh Tempo' from pembayaran a,data_siswa b
where a.NIS=b.NIS and a.Tgl_Jatuh_Tempo <=$P{parameter1};
Listing Program 4.100 Query Laporan Pembayaran Jatuh Tempo Pada Tanggal
Pada listing program 4.98, fungsi button print (Laporan Pembayaran Jatuh Tempo
Antara Tanggal) akan menjalankan perintah untuk memanggil file jasper bernama
DataJTPTglDariMpe.jasper. File tersebut berfungsi untuk menampilkan data bayar
yang jatuh tempo antara tanggal/waktu tertentu dalam bentuk laporan yang dapat
langsung dicetak. Berikut gambar 4.41 merupakan gambaran dari laporan yang
ditampilkan.
155
Gambar 4.41 Tampilan Laporan Pembayaran Jatuh Tempo Dari Sampai Tanggal
Untuk mendapatkan data pada gambar 4.41, diperlukan query dari file jesper tersebut
ke database. Berikut listing 4.101 adalah query pada file jesper tersebut.
select a.NIS,upper(b.Nama),a.Jml_Bayar_1 as 'Bayar 1',a.Jml_Bayar_2 as 'Bayar
2',a.Jml_Bayar_3 as 'Bayar 3',a.Jml_Biaya-a.Total_Dibayar as
Kekurangan,a.Tgl_Jatuh_Tempo as 'Jatuh Tempo' from pembayaran a,data_siswa b
where a.NIS=b.NIS and a.Tgl_Jatuh_Tempo between $P{parameter1} and $P{parameter2};
Listing Program 4.101 Query Laporan Pembayaran Jatuh Tempo Antara Tanggal
157
BAB V
ANALISA HASIL
Dari hasil uji coba di lab dan di Lembaga Bimbingan Neutron Yogyakarta
perangkat lunak Sistem Informasi Akademik dan Administrasi Lembaga Bimbingan
Belajar secara umum dapat berjalan dan berfungsi dengan baik.
V.1 Kelebihan Sistem yang dibuat
1. Informasi nilai siswa bisa cepat diketahui oleh dirinya sendiri, serta informasi
nilai yang terdahulu dapat diakses langsung tanpa harus meminta kepada
pegawai.
2. Informasi pembayaran siswa bisa cepat diketahui oleh siswa sendiri. Siswa
dapat mengetahui bagaimana catatan pembayaran mereka masing-masing.
3. Sistem informasi akademik dan administrasi ini dapat mencetak laporan yang
diperlukan. Untuk tiap proses pembayaran, pegawai tidak direpotkan untuk
menulis kuitansi pembayaran.
4. Tampilan progam dibuat secara user friendly dimaksud agar user tidak merasa
kesulitan dalam menjalankan program tersebut.
5. Terdapat keamanan privasi atas hak dalam program ini dengan cara
memasukan password dalam login sesuai dengan kebutuhan dasar dari setiap
user tersebut
6. Sistem informasi akademik dan administrasi ini dilengkapi dengan error
handling untuk meminimalisir kesalahan yang dibuat oleh user sewaktu proses
pemasukan data.
7. Data-data yang diberikan oleh sistem dapat dipisahkan dengan jelas, data yang
berkatan dengan data pribadi dan nilai masuk ke dalam kelompok data
158
akademik, sedangkan data pembayaran siswa masuk ke dalam kelompok
administrasi, sehingga user tidak dibingungkan oleh menu-menu yang ada.
V.2 Kekurangan Sistem yang dibuat
Sistem informasi akademik dan administrasi ini juga mempunyai kekurangan
dalam hal :
1. Dalam proses pembayaran pendaftaran, penampilan data bayar siswa baru
dilakukan lewat proses pencarian siswa dengan dasar pencarian nama siswa,
hal ini dilakukan karena NIS siswa didapat secara otomatis dari sistem, untuk
mendapatkan NIS siswa baru tersebut, langkah paling mudah dengan mencari
berdasar nim, tetapi proses ini kurang efektif jika nama dari siswa ada yang
benar-benar sama. Penulis menyiasati hal ini dengan menggunakan tabel untuk
menampilkan hasil pencarian dengan diurutkan berdasarkan tanggal daftar
paling akhir.
2. Dalam proses Revisi Pendaftaran, sistem tidak bisa melakukan break
operation atau pembatalan proses.
3. Validasi dalam pemasukan data nilai, masih dilakukan per siswa.
159
BAB VI
PENUTUP
VI.1 Kesimpulan
Setelah sistem informasi akademik dan administrasi ini selesai dibuat, maka
diperoleh beberapa kesimpulan, antara lain :
1. Secara keseluruhan, sistem dapat berjalan dengan baik, sistem mampu
mengelola dan mengolah data pribadi siswa, data nilai siswa, serta data
administrasi siswa.
2. Sistem mampu menyediakan informasi dan laporan seputar data akademik dan
administrasi yang diperlukan baik siswa maupun pegawai.
VI.2 Saran
1. Untuk pengembangan sistem informasi akademik dan administrasi secara
lebih lanjut, dapat menambahkan fasilitas lain yang akhirnya lebih menambah
nilai fungsi, seperti misalnya pengembangan sistem untuk pengembangan ke
arah pembuatan sistem informasi keuangan secara keseluruhan, merambah
seluruh data siswa (yang dibuat sekarang baru untuk siswa SMU),
menambahkan informasi yang berguna bagi pengambilan keputusan di
kemudian hari, seperti informasi perkembangan penerimaan siswa tiap tahun.
160
DAFTAR PUSTAKA
Jeffery L. Whitten, Lonnie D. Bentley, Kevin C. Dittman, 2004, Metode Desain &
Analisis Sistem edisi 6, Tim Penerjemah ANDI, Yogyakarta.
Pressman, R.S., 2002, Rekayasa Perangkat Lunak Pendekatan Praktisi (Buku II),
Diterjemahkan oleh : CN.Harnaningrum, Yogyakarta : Andi.
Azteni P, Ceri S., Paraboschi S., Torlone R., 2000, Database Systems, McGraw-Hill
Publishing Company.
Harip Santoso, Pemrograman Client-Server menggunakan SQL Server 2000 dan
Visual Basic 6.0. Penerbit PT. Elex Media Komputindo, Kelompok Gramedia,
Jakarta, 2003
Hartono, Jogiyanto, 1999, Analisis dan Disain, Andi, Yogyakarta.
Kristanto, Harianto, Agustus 1994, Konsep dan Perancangan Database, Andi,
Yogyakarta
Kristanto, Andri, 2003, Perancangan Sistem Informasi dan Aplikasinya, Gava Media,
Yogyakarta
Jogiyanto Hartono, MBA, Ph.D. Analisa dan Desain, Sistem Informasi: pendekatan
terstruktur teori dan praktek aplikasi bisnis. Penerbit Andi Yogyakarta,1989
top related