Studi Kasus ”NEUTRON” Yogyakarta SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika

Gratis

0
0
184
4 months ago
Preview
Full text

  

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

Disusun Oleh :

Surya Astana

  

NIM : 055314103

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS dan TEKNOLOGI

UNIVERSITAS SANATA DHARMA

  

YOGYAKARTA

2009

  

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

Created By :

Surya Astana

  

NIM : 055314103

DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

  

2009

HALAMAN MOTTO

  

”USAHA DAN DOA, TIDAK BISA TERPISAHKAN”

”KEGAGALAN MERUPAKAN PENGALAMAN,

DAN TERKADANG PENGALAMAN SANGAT MAHAL HARGANYA

  

TAPI PENGALAMAN ADALAH GURU TERBAIK”

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

  

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.

  

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

model. two tier client server

  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.

KATA PENGANTAR

  Puji syukur kepada Allah SWT atas segala berkat dan rahmat-Nya sehingga penulis dapat menyelesaikan skrip si 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.

  

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

  

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

  DAFTAR ISI HALAMAN JUDUL i ………………………………………………………………. ii HALAMAN JUDUL (ING)……………………………………………………….... HALAMAN PERSETUJUAN iii PEMBIMBING……….……………………………

  HALAMAN PE iv NGESAHAN……………………………………………………… v HALAMAN MOTTO ……….…..…………………………………………………

  PERNYATAAN KEASLIAN KARYA .. vi ………………………………………….

  ABSTRAK vii ………………………………………………………………………… viii ABSTRACT………………………………………………………………………...

  KATA PENGANTAR ix …………………………………………………………….. xi LEMBAR PERNYATAAN PERSETUJUAN……………………………………..

  DAFTAR ISI .... xii …………………………………………………………………….

  DAFTAR TABEL …………………………………………………………………. xvii DAFTAR GAMBAR ……………………………………………………………… xviii xxi DAFTAR LISTING PROGRAM…………………………………………………..

  BAB I PENDAHULUAN ..

  1 ………………………………………………………...

  I.1 Latar Belak 1 ang ……………..………………………………………......

  I 2

.2 Rumusan Masalah ………………………………………………….......

  I.3 Batasan Masalah 3 …..……………………………………………………

  I.4 Tujuan dan Manfaat Penulisan 3 …………...…………………………….

  I.5

  4 Metodologi Penelitian ………………………………………………….

  I.6

  5 Sistematika Penulisan ………………………………………..................

  BAB II LANDASAN TEORI 7 …………………………………………………….

  II.1 Konsep Dasar

  7 Sistem ………………………………………………...

  II.1.1 Karakteristik Sistem 7 ………... ……………………………….

  II.1.2 Elemen Sistem 7 ………….……………………………………

  II.2

  8 Konsep Dasar Sistem Informasi……………………..……………….

  II.2.1 Komponen

  8 Sistem Informasi…………………………………

  II.3 Rekayasa Peran 10 gkat Lunak………………. …………………………

  II.4 DFD (Data F 12 low Diagram)………………………………………….

  II.5 Entity Relationship Diagram (E-

  13 R Diagram)………………………..

  II.6 Teknologi Client Server 15 ……………………………….. ……………

  II.7

  16 Java………………………....………………………………………..

  II.7 16 .1 JDBC…………………………………………………………

  II.7 17 .2 Java Socket…………………………………………………..

  II.8

  18 MySQL………………………………………………………………

BAB III ANALISIS DAN PERANCANGAN SISTEM

  21 …………………………..

III.1. Analisis Sistem

  21 ……………………. ……………………………….

  III.1.1 Gambaran Umum

  21 Sistem yang Baru…………………………..

  III.1.2 Analisa Kebu 22 tuhan Sistem..…………………………………..

  III.1.3 Use Ca 25 se Diagram……………………………………………..

  III.1.4 DFD (Data

  25 Flow Diagram)…………………………………….

  III.1.4.1 C 26 ontext Diagram………………………………………

  III.1.4.2 Ba 27 gan Berjenjang………………………………………

  III.1.4.3

  28 DFD Level 0……………………………………………

  III.1.4.4 DFD Level 1 Proses 3

  28 ………………………………….

  III.1.4.5 DFD L 29 evel 1 Proses 4………………………………….

  III.1.4.6 DFD L 29 evel 1 Proses 5………………………………….

III.1.5 Pemodelan

  30 Data (ER D)………………………………………..

  III.2. Desain / Perancangan

  31 Sistem………………………………………..

  III.2.1. Desain Basis Data Sistem…………………………………….. 31

  III.2.1.1

  32 Logical Database System…….………………………..

  III.2.1.2 Perancangan Tabel

  32 (Physical Design)..………………..

  III.2.2. Desain Antarmuka (Desain Interface)

  36 ………..……………..

  III.2.2.1

  37 Form Login……………………………………………

  III.2.2.2

  38 Form Bagian Akademik dan Administrasi……………

  III.2.2.2.a

  38 Form Pembuka...………………………………..

  III.2.2.2.b

  38 Form Menu Akademik………………………….

  III.2.2.2.b.

  39 i Form Pendaftaran………………………….

  40 III.2.2.2.b.ii Form Edit Data Siswa……………………..

  III.2.2.2.b.iii Form L

  41 ihat dan Cari Data Siswa………….

  III.2.2.3 F 42 orm Menu Nilai………………………………………

  III.2.2.3.a Form

  42 Insert Data Nilai…………………………..

  III.2.2.3.b For 43 m Edit Data Nilai…………………………….

  III.2.2.3.c Form Lihat dan Cari Dat

  43 a Nilai………………….

  III.2.2.4 For 44 m Menu Pembayaran………………………………

  III.2.2.4.a Form

  44 Lihat Biaya Bimbingan……………………

  III.2.2.4.b Form E 45 dit Biaya Bimbingan……………………..

  III.2.2.4.c Form Pembayaran Pertama dan Update Pembayaran 46

  III.2.2.4.d Form Lihat d

  47 an Cari Data Pembayaran……….….

  III.2.2.5

  48 Form Siswa……………………………………………..

  III.2.2.5.a

  48 Form Menu Siswa………………………………..

  III.2.2.5.a.i Form Li

  48 hat Data Pribadi Siswa……………..

  III.2.2.5.a.ii F 49 orm Lihat Data Nilai………………………

III.2.2.5.a.iii Form

  50 Lihat Data Pembayaran……………..

  III.2.3 Desain Teknologi Secara Terinci

  51 ……………………………

  III.2.4 Desai 52 n Hak Akses……………………………..……………

  BAB IV IMPLEMENTASI …………………………………….………………… 53

  IV.1

  53 Pembuatan Database……………… ………………………….…….

  IV.2 Setting Koneksi dari Ja 57 va ke MySQL..…………………... ………..

  IV.3 Pembuatan Use 58 r Interface…………………………………………..

  IV.3.1 Form Utama 58 ………………………………….. ……………

  IV.3.2 Form

  59 LOGIN……………………………...... ……………..

  IV.3.3 Form Menu Siswa 62 …. ……………………………………….

  IV.3.3.a Form L 64 ihat Data Pribadi…………………………..

  IV.3.3.b Form

  66 Lihat Data Nilai……………………………..

  IV.3.3.c Form

  68 Lihat Data Bayar…………………………….

  IV.3.3.d Form Ru 71 bah Password Siswa….………………….

IV.3.4 Form

  74 Menu Pegawai………………………………………..

IV.3.4.A Form Menu

  75 Akademik…………………………….

  IV.3.4.A.

  76 a Form Pendaftaran………………………..

  IV.3.4.A.a.i Form Pembayaran Biaya Pend 84 aftaran dan Biaya Bimbingan….

  IV.3.4.A.

  89 b Form Menu Data Siswa…………………

  IV.3.4.A.b

  90 .i Form Lihat Data Siswa..………

  IV.3.4.A.b.

  96 ii Form Edit Data Siswa………..

  IV.3.4.A.b.

  99 iii Form Hapus Data Siswa…….

  IV.3.4.A.b.iv Form Revisi Pendaftaran…….. 101

  IV.3.4.A.b.v Form Pembayaran Revisi

  104 Pendaftaran…………………………

  IV.3.4.A.b.vi Laporan Data Sis 108 wa………….

  110 IV.3.4.A.c Form Menu Data Nilai………………….

  IV.3.4.A.c.i Form Insert Nilai……………… 111 127

  IV.3.4.A.c.ii Form Cari Data Nilai…………

  IV.3.4.A.c.i 129 ii Form Laporan Data Nilai……

  IV.3.4.B Form Menu Admin 134 istrasi…………………………

  IV.3.4.B.a Fo 136 rm Pembayaran Bimbingan………….

  IV.3.4.B. 138 a.i Form Nota Pembayaran……….

  IV.3.4.B.b Form L ihat Data Pembayaran Siswa…… 142

  IV.3.4.B.c Form Data Biaya Bimbingan……..…….. 146

  IV.3.4.B.d Form Laporan Adminis 147 trasi…………….

  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

  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

  DAFTAR GAMBAR

  3.15 Desain Form Edit Da ta Siswa…. ……………………………………………

  37

  3.11. Desain Pesan Kesal ahan .…………………………………………………....

  37

  3.12 Desain Form A wal…. ………………………………………………………..

  38

  3.13 Desain F orm Menu Akademik………………………………………………..

  38

  3.14 Desain Form Pend aftaran… ………………………………………………….

  39

  40

  32

  3.16 Desain Form Lihat dan Ca ri Data Siswa……………………………………..

  41

  3.17 Desain Form Me nu Nilai…………………………………………………….

  42

  3.18. Desain Form Insert Dat a Nilai….……..……………………………………..

  42

  3.19 Desain Form Edit Data N ilai………….. ..…………………………………..

  43

  3.20 Desain Form Cari Data Nilai …………..……………………………………..

  3.10 Desain Form Logi n……………………………………. …...………………..

  30 3.9. Relational Table. ……………...........................……………………………….

  2.1 Elemen-elemen Sistem ……. …………………………………………………...

  3.2 Context Diagram…………………………………..…………………………….

  7

  2.2 Contoh E-R D iagram……………………………………………………………

  14

  2.3 Hubungan Java Program, JDBC API, JDBC Driver ……………………………

  16

  2.4 Hubungan Antar Socket ………………………………………………………...

  18

  3.1 Use Case Diagram………………………………………………………………

  25

  26

  3.8 ER Diagram…………………………………………………………………….

  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 D FD Level 1 Proses 5……………..……...…………………………………….

  29

  43

  3.21 Desain Form Menu Pembayaran …. ..………………………………………..

  68 4.9. Form Rubah Password………………………..……………………...…………

  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…………………………………………………..

  71 4.10. Form Menu Pegawai…………………….…..……………………...…………

  59 4.4. Pesan Tidak Bisa Login..... ……………………..………………………..…….

  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..

  …………………………. …..………...……………

  62

  58 4.3. Form Login…….. .....................……………………………………………….

  44 3.22 Desain Form Lihat Biaya Bimbingan. ………………………………………..

  3.26 Desain Form Menu Sis wa……………… ..………………………………….

  44

  3.23 Desain Form Update Bi aya Bimbingan……………………………………….

  45

  3.24 Desain Form Update Pe mbayaran. .………………………………………….

  46

  3.25 Desain Form Cari Data Pembayaran ………………………………………….

  47

  48

  56 4.2. Form Utama………... …………………………….......……………………….

  3.27 Desain Form Lihat Data Pribadi Siswa… …………………………………….

  48

  3.28 Desain Form Lihat Data Nilai…………………………………………………

  49

  3.29 Desain Form Lihat Da ta Pembayaran…………………………………………

  50

  4.1. Database Sistem Informasi Akademik dan Administrasi (SQLyog) ………….

  96

  4.17. Form Hapus Data Siswa…………………………. …..………...……………

  Form Pembayaran Bimbingan.…………………. …..………...…………… 136

  4.40 Tampilan Laporan Pembayaran Jatuh Tempo Pada Tanggal ………………… 155

  154

  4.39 Tampilan Laporan Pembayaran Jatuh Tempo ………………………………...

  151

  4.38 Form Laporan Pembayaran Jatuh Tempo ……………………………………..

  4.37 Tampilan Laporan Data Pembayaran Lengkap Per Siswa …………………… 150

  ………...…………… 149

  4.35. Form L aporan Administrasi……………………………....………...……..… 147 4.36. Tampilan Laporan Pembayaran Siswa Per Program ...

  4.34. Form Data Biaya Bimbingan……………………. …..………...…………… 146

  Form Lihat Data Pembayaran Siswa……………. …..………...…………… 142

  4.32. Tampilan Print Nota Pembayaran ………………. …..………...…………… 140 4.33.

  4.31. Form Nota Pembayaran…………………………. …..………...…………… 138

  4.29. Form Menu Administrasi ……….………………. …..………..…………… 134 4.30.

  99

  ………. …..………...…………… 134

  4.28. Tampilan Laporan Data Nilai Per Siswa..

  …. …..………...…………… 133

  4.26. Tampilan Laporan Data Nilai Lengkap …………. …..………...…………… 132 4.27. Tampilan Laporan Data Nilai Per Jenis Nilai .

  ………………………. …..………...…………… 129

  4.24. Form Cari Data Nilai……………………………. …..………...…………… 127 4.25. Form Laporan Data Nilai.

  4.23. Form Insert Nilai……..…………………………. …..………...…………… 111

  4.22. Form Menu Data Nilai….………………………. …..………...…………… 110

  4.21. Tampilan Laporan Data Siswa Per Program ……. …..………...…………… 109

  4.20. Form Laporan Akademik ………………………. …..………...…………… 108

  …………. …..………...…………… 104

  4.18. Form Revisi Pendaftaran ………………………... …..………...…………… 101 4.19. Form Pembayaran Revisi Pendaftaran.

  4.41 Tampilan Laporan Pembayaran Jatuh Tempo Dari Sampai Tanggal ………… 156

  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

  4.24 Action Handler Form Pendaftaran........................................................................

  92 4.38 Method CariSiswaNama......................................................................................

  98 4.48 StoreProcedure edit_DataSiswa.........................................................................

  97 4.47 Method EditSiswa...............................................................................................

  96 4.46 Action Button PROSES Form Edit Data Siswa..................................................

  95 4.45 StoreProcedure get_data_siswa..........................................................................

  95 4.44 StoreProcedure cariB_klas..................................................................................

  95 4.43 StoreProcedure cari_Bprog..................................................................................

  94 4.42 StoreProcedure cari_Bnama................................................................................

  94 4.41 Method getDataSiswa.........................................................................................

  93 4.40 Method CariSiswaKelas......................................................................................

  92 4.39 Method CariSiswaProgram.................................................................................

  90 4.37 Pencarian dan Lihat Data Siswa..........................................................................

  80 4.25 Method Tambah Siswa.........................................................................................

  89 4.36 Action Button-Button Form Menu Data Siswa...................................................

  88 4.35 StoreProcedure cek..............................................................................................

  87 4.34 StoreProcedure bayar_1st.....................................................................................

  87 4.33 StoreProcedure bayar_dft_pot..............................................................................

  86 4.32 Method BayarPertama..........................................................................................

  86 4.31 Method BayarDaftar.............................................................................................

  83 4.30 Action Button Bayar Pendaftaran dan Bayar Bimbingan.....................................

  83 4.29 Trigger program_bayar.........................................................................................

  83 4.28 Trigger add_user...................................................................................................

  82 4.27 Store Procedure Generate Nilai............................................................................

  81 4.26 Store Procedure Tambah Data Siswa...................................................................

  98

  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

  

4.74 Method getNilai................................................................................................... 128

  4.75 Store Procedure sisw a_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

  

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

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

me rasakan 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

  

1

  

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?

  

2

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

  

3

I.5 Metodologi Penelitian

  • –buku yang berhubungan dalam pembuatan sistem ini, dan sintaks atau aturan-aturan dalam pemograman yang berhubungan dengan pengolahan data- data.
  • –permasalahan yang dihadapi dan kebutuhan–kebutuhan

  

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.

  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

  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 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.

  

5 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.

  6

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:

  

TUJUAN

BATASAN KONTROL MASUKAN PROSES KELUARAN N UMPAN BALIK

Gambar 2.1 Elemen-elemen sistem 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.

  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,

  

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

  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 “imageuser 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

  

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 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 Me di a

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).

  Sama dengan alat yang lain pada diagram E-R yang kita sebut kemudian, diagram ini memiliki simbol-simbol antara lain: Entity kesatuan luar Hubungan / ralasi

  Atribut Relasi antar tabel TEXT Nama Relasi

  No Induk Siswa Mata Pelajaran

  I Siswa memiliki Nilai Guru mata Nama Siswa 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 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.

  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 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.

  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

  

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));

  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”;

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.

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. 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

  

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.

  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.

III.1.4.1 Context Diagram

  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

  III.1.

  4.2 SI Akademik dan B

  Administrasi LBB agan B er je n jang G

  1

  2 a

  3

  4

  5 m ba

  Validasi Pengolahan Data Pengolahan Data Pengolahan Data r Login

  User Siswa Akademik / Nilai Administrasi

  3 .3 B 27 a g a n B er jenj a ng

  3.1p 3.2p 4.1p 4.2p 5.1p 5.2p Rekam Data Edit Rekam Data Edit Rekam Data Edit Data Siswa Data Siswa Nilai Data Nilai Administrasi Administrasi 3.3p 3.4p 4.3p 4.4p 5.3p 5.4p

  Lihat Data Cari Lihat Data Cari Lihat Data Cari Data Siswa Data Siswa Nilai Data Nilai Administrasi Administrasi

III.1.4.3 DFD Level 0

  validasi validasi

  2 D4 USER Keterangan validasi Validasi OK

  Validasi User

1 A. Bagian

  User, password User, NIS Administrasi dan

  B. Siswa Data siswa Data siswa

  Akademik Login Validasi OK

3 Data baru siswa D1 SISWA

  Data siswa Pengolahan Data Siswa

  Data Nilai

  4 NIS, Nilai, Id_Mapel Pengolahan Data nilai baru D2 NILAI

  

Data Data nilai

Data nilai

  Administrasi Data Administrasi baru

  5 Data Administrasi Pengolahan baru

D3 PEMBAYARAN

  No_Resi, Tgl, Jml_dibayar Data

  Data Administrasi Data Administrasi Administrasi

Gambar 3.4 DFD Level 0

III.1.4.4 DFD Level 1 Proses 3

  A. Bagian 3.1p Administrasi Data siswa baru Data siswa, tgl

  Rekam Data dan Siswa Akademik

  Data siswa User, Password Validasi OK

  D1 SISWA 3.2p Validasi OK Data siswa baru

  1 Edit Data Siswa Login

  Nama/NIS Data Siswa 3.3p

  Validasi OK Data siswa NIS User, Password

  Lihat Data Siswa

B. Siswa Data Pribadi Siswa

  Data siswa 3.4p

  Validasi OK Cari data siswa Cari Data

  Data Pribadi Siswa Siswa

Gambar 3.5 DFD Level 1 Proses 3

  III.1.4.5 DFD Level 1 Proses 4

  III.1.4.6 DFD Level 1 Proses 5

  Cari Data Administrasi

  5.3p Lihat Data Administrasi 5.4p

  1 Login 5.2p Edit Data Administrasi

  Administrasi

  User, Password Data pembayaran 5.1p Rekam Data

  Validasi OK Validasi OK Validasi OK Validasi OK

  Data Pembayaran Siswa NIS

Data Pembayaran Siswa

User, Password

  NIS,no_resi,jml_byr,tgl Nama/NIS Data pembayaran Cari data pembayaran

  Data pembayaran D3 PEMBAYARAN

  B. Siswa NIS,no_resi,jml_byr,tgl Data pembayaran baru Data pembayaran baru

  A. Bagian Administrasi dan Akademik

Gambar 3.6 DFD Level 1 Proses 4

  A. Bagian Administrasi dan Akademik

  1 Login

  Nilai 4.4p Cari Data Nilai

  Edit Data Nilai 4.3p Lihat Data

  4.1p Rekam Data Nilai 4.2p

  Data Nilai Data Mapel Data Mapel

  User, Password D5 MATA PELAJARAN

  Validasi OK Validasi OK Validasi OK Validasi OK

  Data Nilai Siswa NIS

Data Nilai Siswa

User, Password

  NIS,nilai,id_mapel

Nama/NIS

Data Nilai Cari data nilai

  Data nilai D2 NILAI

  B. Siswa NIS,nilai,id_mapel Data nilai baru Data nilai baru

Gambar 3.7 DFD Level 1 Proses 5

  III.1.

  Biaya_Bimbingan Potongan Biaya_Pendaftaran No_Resi1

  Tgl_Daftar

  5 P Tgl_Bayar_1 NIS

  Jml_Bayar_1 Terbilang_1 em

  No_Pembayaran No_Resi_2 od

  Id_User Tgl_Bayar_2 Jml_Bayar_2 elan

  Terbilang_2 Dat

  No_Resi_3

  1 Password Biaya User

  Tgl_Bayar_3 a

  Jml_Bayar_3 (ER D

  Terbilang_3 Tgl_Jatuh_Tempo Login_As N Jml_Biaya

  Total_Dibayar G

  

Keterangan

) a m ba r

  3 .8

30 Id_Kelas

  Th_Angkatan E NIS

  NIS Id_Program Id_Program Id_Kelas Foto

  Id_Program Id_Program

  R Biaya No_Telp Nama

  Dia

  1

  1 Pekerjaan_Rumah N

  1 g

  N N ra

  Punya Program Punya Data Siswa Kelas

  Alamat_Rumah m

  Nama_Ortu

  1 N TTL

  1

  1 Asal_Sekolah Nama_Program Jadwal Kelas

  Ruang Punya Id_Kelas NIS

  NR N

  Punya N3

  N Ambil Mata Pelajaran

  N2 NIS Id_Mapel

  N1 Nama_Mapel Id_Mapel

  Id_Program

  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:

III.2.1.1 Logical Database Design

  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

  Punya_Kelas Kelas Id_Program Id_Kelas

  

PK Id_Kelas

Id_Program (FK)

Ruang

  Data_Siswa

Jadwal

PK NIS

  Nama TTL Asal_Sekolah Kelas

  Punya_Program1 Program Kel_Kelas Nama_Ortu

  Program NIS Alamat_Rumah

id_program

Pekerjaan_Ortu PK id_program

No_telp Foto nama_program Thn_Angkatan Biaya Nilai

  User Mapel PK id_user

  NIS id_mapel PK id_mapel login_as id_program password id_kelas id_program (FK)

  N1 nama_mapel N2 N3 NR

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

  

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

  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

  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

  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:

III.2.2.1 Form Login

  

NEUTRON YOGYAKARTA

SISTEM INFORMASI AKADEMIK dan ADMINISTRASI

Langkah Pasti Meraih Prestasi

  • Login As
  • Password

  

MASUK

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.

  Pesan kesalahan …… icon

  OK

Gambar 3.11 Desain Pesan Kesalahan

  

Berupa tampilan pesan kesalahan dan untuk dapat kembali harus menekan tombol

„OK‟ dan kembali kehalaman sebelumnya.

  III.2.2.2 Form Bagian Akademik dan Administrasi

  III.2.2.2.a Form Pembuka

NEUTRON YOGYAKARTA

  

SISTEM 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 YOGYAKARTA

  

SISTEM INFORMASI AKADEMIK dan ADMINISTRASI

Langkah Pasti Meraih Prestasi

  

AKADEMIK

PENDAFTARAN LIHAT DATA SISWA

EDIT DATA SISWA CARI DATA SISWA

NILAI

KELUAR

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.

III.2.2.2.b.i Form Pendaftaran

NEUTRON YOGYAKARTA

  

SISTEM INFORMASI AKADEMIK dan ADMINISTRASI

Langkah Pasti Meraih Prestasi

  DATA PRIBADI NIS NAMA TTL ASAL SEKOLAH KELAS PROGRAM KELOMPOK KELAS FOTO

DATA ORANGTUA

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.

III.2.2.2.b.ii Form Edit Data Siswa

NEUTRON YOGYAKARTA

  

SISTEM 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.

III.2.2.2.b.iii Form Lihat dan Cari Data Siswa

NEUTRON YOGYAKARTA

  

SISTEM INFORMASI AKADEMIK dan ADMINISTRASI

Langkah Pasti Meraih Prestasi

  KELUAR KEMBALI

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.

  III.2.2.3 Form Menu Nilai

DATA NILAI

KELUAR

LIHAT NILAI CARI NILAI

  INSERT NILAI EDIT NILAI

NEUTRON YOGYAKARTA

SISTEM 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 YOGYAKARTA

  

SISTEM INFORMASI AKADEMIK dan ADMINISTRASI

Langkah Pasti Meraih Prestasi

  NIS MATA PELAJARAN JENIS NILAI NILAI

  INSERT DATA NILAI KELUAR SIMPAN

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.

III.2.2.3.b Form Edit Data Nilai

NEUTRON YOGYAKARTA

  

SISTEM INFORMASI AKADEMIK dan ADMINISTRASI

Langkah Pasti Meraih Prestasi

  NIS MATA PELAJARAN JENIS NILAI NILAI EDIT DATA NILAI KELUAR SIMPAN

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 YOGYAKARTA

  

SISTEM 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.

III.2.2.4 Form Menu Pembayaran

NEUTRON YOGYAKARTA

  

SISTEM 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 YOGYAKARTA

  

SISTEM INFORMASI AKADEMIK dan ADMINISTRASI

Langkah Pasti Meraih Prestasi

PROGRAM

  BIAYA

BIAYA BIMBINGAN

KELUAR KEMBALI

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.

III.2.2.4.b Form Update Biaya Bimbingan

NEUTRON YOGYAKARTA

  

SISTEM INFORMASI AKADEMIK dan ADMINISTRASI

Langkah Pasti Meraih Prestasi

PROGRAM

  BIAYA LAMA BIAYA BARU

UPDATE BIAYA BIMBINGAN

KELUAR BATAL 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.

III.2.2.4.c Form Pembayaran Pertama dan Update Pembayaran

NEUTRON YOGYAKARTA

  

SISTEM INFORMASI AKADEMIK dan ADMINISTRASI

Langkah Pasti Meraih Prestasi

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

KEMBALI KELUAR

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.

III.2.2.4.d Form Lihat dan Cari Data Pembayaran

NEUTRON YOGYAKARTA

  SISTEM INFORMASI AKADEMIK dan ADMINISTRASI Langkah Pasti Meraih Prestasi

  DATA PEMBAYARAN CARI NIS NIS PEMBAYARAN 1 No Resi 1 Pembayaran 1 Tanggal Pembayaran 1 PEMBAYARAN 2 No Resi 2 Pembayaran 2 Tanggal Pembayaran 2 PEMBAYARAN 3 No Resi 3 Pembayaran 3 Tanggal Pembayaran 3 Tanggal Jatuh Tempo Kekurangan Pembayaran Biaya Bimbingan Keterangan

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.

  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 YOGYAKARTA

  

SISTEM 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 YOGYAKARTA

  

SISTEM INFORMASI AKADEMIK dan ADMINISTRASI

Langkah Pasti Meraih Prestasi

  KELUAR KEMBALI

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 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 YOGYAKARTA

  

SISTEM INFORMASI AKADEMIK dan ADMINISTRASI

Langkah Pasti Meraih Prestasi

  DATA NILAI NIS MATA PELAJARAN N1 N2 N3 NR KEMBALI KELUAR

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.

III.2.2.5.a.iii Form Lihat Data Pembayaran

NEUTRON YOGYAKARTA

  

SISTEM INFORMASI AKADEMIK dan ADMINISTRASI

Langkah Pasti Meraih Prestasi

  

DATA PEMBAYARAN

CARI NIS NIS PEMBAYARAN 1 No Resi 1 Pembayaran 1 Tanggal Pembayaran 1 PEMBAYARAN 2 No Resi 2 Pembayaran 2 Tanggal Pembayaran 2 PEMBAYARAN 3 No Resi 3 Pembayaran 3 Tanggal Pembayaran 3 Tanggal Jatuh Tempo Kekurangan Pembayaran Biaya Bimbingan Keterangan

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.

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.

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.

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.

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`) ); 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 :

  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 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 (kali ini memakai port 3306), dengan nama database neutron_ta. Sedangkan MySql

user dan pass diisi sesuai sama dengan sudah didapat dan dibuat saat instalasi MySql. Jika ketiga aspek tersebut sudah benar, maka proses pembanguna koneksi berhasil, jika ada sal ah 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 UtamaGambar 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);

  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 LoginGambar 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 ak an 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 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 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

Gambar 4.5 Form Menu SiswaGambar 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()); }

  // 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

Gambar 4.6 Form Lihat Data PribadiGambar 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_siswắ"+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); } 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

Gambar 4.7 Form Lihat Data NilaiGambar 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 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

Gambar 4.8 Form Lihat Data PembayaranGambar 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]);

  }

  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; }

  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 PasswordGambar 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 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 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 RubahPasswordSiswắ"+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 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 PegawaiGambar 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.

  // 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 AkademikGambar 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);

  }

  // 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 PendaftaranGambar 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 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",

  "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); 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) {

  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 ); }

  } }

  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_ađ_siswắ"+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; 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; 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;

  $$ 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 DaftarGambar 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) {

  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()); 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();

  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

  st

  

bayar_dft_pot untuk memproses pembayaran pendaftaran, dan bayar_1 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 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

Gambar 4.14 Form Menu Data SiswaGambar 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);

  }

  // 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 SiswaGambar 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);

  }

  // 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 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_Bnamắ"+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 { 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_siswắ"+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); } 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;

  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

Gambar 4.16 Form Edit Data SiswaGambar 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",

  "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_DataSiswắ"+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

  

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

Gambar 4.17 Form Hapus Data SiswaGambar 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) { 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

Gambar 4.18 Form Revisi PendaftaranGambar 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",

  "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_siswắ"+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",

  "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

Gambar 4.19 Form Pembayaran Revisi PendaftaranGambar 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()); 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());

  } 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 );

  } 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

Gambar 4.20 Form Laporan AkademikGambar 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.

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

Gambar 4.22 Form Menu Data NilaiGambar 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

Gambar 4.23 Form Insert NilaiGambar 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); 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);

  } 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) {

  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";

  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); 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); 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++){ 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); 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;

  } 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) { 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

  

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_namắ"+a+"','"+b+"');"; 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 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(); 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

  

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`$$

  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); 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 NilaiGambar 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));

  } 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; 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 NilaiGambar 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); 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);

  } 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) { }

  } }

  

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

  

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.

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 AdministrasiGambar 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 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

Gambar 4.30 Form Pembayaran BimbinganGambar 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()); }

  }

  // 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()); } }

  Listing Program 4.81 Action Button BAYAR Form Pembayaran Bimbingan

IV.3.4.B.a.i Form Nota Pembayaran

Gambar 4.31 Form Nota PembayaranGambar 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>(); 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

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 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.

IV.3.4.B.b Form Lihat Data Pembayaran Siswa

Gambar 4.33 Form Lihat Data Pembayaran SiswaGambar 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";

  } 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); 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 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

IV.3.4.B.c Form Data Biaya Bimbingan

Gambar 4.34 Form Data Biaya BimbinganGambar 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_biayắ"+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 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 AdministrasiGambar 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(); 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

  DataBayarSiswaPerProgram.jasper",

  print=JasperFillManager.fillReportToFile("report/ 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.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.

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)

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) { } }

  }

  // 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);

  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.

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.

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.

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

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 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.

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.

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

Dokumen baru

Tags

Dokumen yang terkait

SKRIPSI Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
0
0
117
Tugas Akhir Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
125
SKRIPSI Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
0
0
161
SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
0
1
127
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro
0
0
106
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro
0
0
66
SKRIPSI Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
0
0
166
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
0
0
98
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
113
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
1
76
Skripsi Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Mesin
0
0
69
SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Jurusan Teknik Informatika
0
0
87
SKRIPSI Diajukan Untuk Memenuhi Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
146
SKRIPSI Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
0
0
114
TUGAS AKHIR Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
117
Show more