aplikasi database untuk pelayanan pencatatan data pembayaran spp

116
1 LATAR BELAKANG Seiring perkembangan zaman, perkembangan teknologi pun semakin pesat, berbicara tentang teknologi dan informasi, komputer merupakan suatu media elektronik yang memegang peranan yang sangat penting dalam perkembangan teknologi saat ini, serta terus menerus mendominasi berbagai proses kerja agar dapat lebih mudah, efektif dan efisien. Perkembangan teknologi komputer juga telah merambat kedalam dunia pendidikan, hampir seluruh sekolah telah memiliki teknologi yang canggih dalam pengolahan data sekolah, seperti pencatan data pembayaran SPP dan pembuatan laporan pembayaran SPP. Dalam pencatatan pembayaran SPP, kesalahan sekecil apapun dapat mengakibatkan tidak teraturnya data yang disimpan. Oleh karena itu staff TU membutuhkan ketelitian dalam mengolah data pembayaran agar dapat menangani hal tersebut. Proses pencatatan data pembayaran yang sedang berjalan saat ini masih terlihat tidak tepat sasaran, hal itu dapat mempersulit dalam pembuatan laporan, sehingga dalam penyerahannya tidak tepat waktu. Melihat banyaknya data pembayaran SPP disimpan dalam bentuk berkas, maka perlu suatu media penyimpanan yang terpusat sebagai pengganti buku besar. Staff TU sebagai aktor yang yang berperan penting dalam proses pencatatan data pembayaran SPP terkadang mendapat kesulitan, proses pencatatan kedalam buku besar, kerusakan dokumen pada saat disimpan, kehilangan dokumen, proses penyimpanan data masih berbentuk fisik. ISPM-STIKOM BINANIAGA BOGOR 2012

Upload: erick-ramdhani-sukaman

Post on 04-Oct-2015

45 views

Category:

Documents


1 download

DESCRIPTION

Information System Project minor

TRANSCRIPT

LATAR BELAKANGSeiring perkembangan zaman, perkembangan teknologi pun semakin pesat, berbicara tentang teknologi dan informasi, komputer merupakan suatu media elektronik yang memegang peranan yang sangat penting dalam perkembangan teknologi saat ini, serta terus menerus mendominasi berbagai proses kerja agar dapat lebih mudah, efektif dan efisien.

Perkembangan teknologi komputer juga telah merambat kedalam dunia pendidikan, hampir seluruh sekolah telah memiliki teknologi yang canggih dalam pengolahan data sekolah, seperti pencatan data pembayaran SPP dan pembuatan laporan pembayaran SPP.

Dalam pencatatan pembayaran SPP, kesalahan sekecil apapun dapat mengakibatkan tidak teraturnya data yang disimpan. Oleh karena itu staff TU membutuhkan ketelitian dalam mengolah data pembayaran agar dapat menangani hal tersebut. Proses pencatatan data pembayaran yang sedang berjalan saat ini masih terlihat tidak tepat sasaran, hal itu dapat mempersulit dalam pembuatan laporan, sehingga dalam penyerahannya tidak tepat waktu. Melihat banyaknya data pembayaran SPP disimpan dalam bentuk berkas, maka perlu suatu media penyimpanan yang terpusat sebagai pengganti buku besar.

Staff TU sebagai aktor yang yang berperan penting dalam proses pencatatan data pembayaran SPP terkadang mendapat kesulitan, proses pencatatan kedalam buku besar, kerusakan dokumen pada saat disimpan, kehilangan dokumen, proses penyimpanan data masih berbentuk fisik.1. TUJUAN PROYEKTujuan dari pembuatan sistem ini adalah untuk menciptakan pencatatan data pembayaran SPP berbasis layanan sistem informasi.

2. SIGNIFIKASI PROYEKPenerapan aplikasi database dilakukan karena proses pencatatan yang berjalan saat ini tidak tepat dalam menangani data pembayaran SPP. Hal itu akan menyebabkan pembuatan laporan tertunda.Proyek ini menekankan pada usaha menertibkan cara dan mekanisme pencatatan pembayaran yang berbasis komputer dengan maksud menghilangkan ketidakakuratan informasi penanganan pencatatan yang selama ini digunakan.

3. MASALAH PROYEKa. Identifikasi MasalahPermasalahan yang dapat diidentifikasi dari lingkup projek yaitu:1. Pencatatan data pembayaran spp tidak tepat.2. Sering terjadi kekeliruan saat proses pencatatan data pembayaran.3. Tertundanya pembuatan data laporan pembayaran. b. Pokok MasalahBerdasarkan identifikasi permasalahan di atas, maka dapat ditetapkan pokok masalahnya yaitu: penanganan data pembayaran SPP tidak tepat sasaran.c. Rumusan MasalahBerdasarkan pokok permasalahan di atas, maka dapat dirumuskan: Bagaimana menerapkan aplikasi database untuk pelayanan pencatatan data pembayaran SPP pada SMP ANGKASA BOGOR ?d. Keterbatasan MasalahKeterbatasan pada saat membangun penerapan aplikasi database untuk pelayanan pencatatan data pembayaran SPP ini adalah belum adanya peralatan di sekolah ini yang mendukung untuk membangun penerapan aplikasi database, karena sistem sebelumnya hanya menggunakan alat tulis kantor biasa dan sulitnya pengumpulkan data yang sudah diarsipkan.

PENDEKATAN PROYEK1. Feasibilitya. Economic FeasibiltyBIAYA-BIAYATAHUN0TAHUN1TAHUN2TAHUN3

1Biaya persiapan perangkat lunak

ABiaya Perlengkapan Perangkat Lunak Sistem2.000.000

BBiaya Instalasi Perangkat Lunak Sistem250.000

Total biaya operasional2.250.000

2Biaya proyek

ABiaya konsultan

1. Orang analis sistem2.000.000

2. Orang programmer1.500.000

3. Biaya Akomodasi Dan Perjalanan500.000

Total Biaya Persiapan Operasional4.000.000

BTahap analis sistem

1. Biaya Untuk Mengumpulkan Data150.000

2. Biaya Untuk Dokumentasi (Fotocopy, Kertas)250.000

3. Biaya Rapat150.000

Total Biaya Tahap Analis Sistem550.000

CTahap Design Sistem

1. Biaya Dokumentasi250.000

2. Biaya Rapat150.000

Total Biaya Tahap Design Sistem400.000

DTahap Penerapan Sistem

1. Biaya Pembuatan Formulir Baru250.000

2. Biaya Latihan Personil400.000

Total Biaya Penerapan Sistem650.000

Total Biaya Pengembangan Sistem7.800.000

3Biaya Operasi Dan Perawatan

ABiaya Personil200.000250.000300.000

BBiaya Perawatan Hardware (reparasi dan service)750.000800.000850.000

CBiaya Perawatan Software (modifikasi software)500.000600.000700.000

Total Biaya Operasi dan Perawatan1.450.0001.650.0001.850.000

Total Biaya-biaya7.800.0001.450.0001.650.0001.850.000

ManfaatTAHUN 0TAHUN 1TAHUN 2TAHUN 3

1Keuntungan Berwujud

APengurangan biaya operasi750.000750.000750.000

BPengurangan biaya telekomunikasi250.000250.000250.000

CPengurangan kesalahan proses400.000400.000400.000

DPeningkatan proses pembayaran spp1.500.0001.500.0001.500.000

Total Keuntungan Berwujud2.900.0002.900.0002.900.000

2Keuntungan Tak Berwujud

Apeningkatan kepuasaan staff terhadap sekolah1.500.0002.000.0002.500.000

Bpeningkatan kinerja staff750.0001.250.0002.000.000

Cpeningkatan keputusan sekolah750.000750.000750.000

Total Keuntungan Tak Berwujud3.000.0004.000.0005.250.000

Total Manfaat5.900.0006.900.0008.150.000

Selisih Total Manfaat Dengan Total Biaya7.800.0004.450.0005.250.0006.300.000

Tabel 1. Economic feasibility

Metode Return Of Investment (ROI)Metode ini digunakan untuk mengukur prosentase manfaat yang dihasilkan oleh proyek dibandingkan dengan biaya yang dikeluarkannya. Atau besarnya keuntungan yang bisa diperoleh dalam (%) selama periode yang telah ditentukan

ManfaatManfaat tahun ke-1=Rp 4.450.000;Manfaat tahun ke-2=Rp 5.250.000;Manfaat tahun ke-3=Rp 6.300.000; +Total Manfaat=Rp 16.000.000;BiayaBiaya tahun ke-0=Rp. 7.800.000;Biaya tahun ke-1=Rp. 1.450.000;Biaya tahun ke-2=Rp 1.600.000;Biaya tahun ke-3=Rp 1.750.000; +Total Biaya=Rp 12.200.000;

Suatu proyek investasi yang mempunyai ROI (Return Of Investment) lebih besar dari 0 adalah proyek yang dapat diterima. pada nilai ROI proyek ini adalah 31 %, maka akan dikatakan proyek ini dapat diterima, karena proyek ini akan memberikan keuntungan sebesar 31% dari biaya investasinya.

b. Operational FeasibilityItem PenilaianPenilaian

Kemampuan PersonilMampu

kemampuan pengendalian operasi sistem informasiBaik

Kemampuan sistem informasi yang menghasilkan informasiBaik

Tabel 2. Operational feasibility

Dalam menggunakan aplikasi database yang akan dibangun tidak perlu lagi menggunakan personil yang bersifat khusus, karena dalam penggunaan komputer itu sendiri staff TU sudah memiliki pengetahuan yang baik tentang komputer, sehingga tidak perlu lagi biaya untuk pelatihan personil dalam menggunakan komputer, hal ini dikarenakan:1. Waktu lebih efisien, karena pencatatan pembayaran SPP telah terkomputerisasi.2. Kemudahan dalam penyimpanan data ke dalam database.3. Proses pembuatan laporan lebih akurat.

Item PenilaianPenilaian

Ketersediaan Teknologi Di PasaranMudah

Kemudahan Dalam MengoperasikanMudah

Tabel 3. Item Penilaian

Kebutuhan teknologi mudah ditemui dan didapat di pasaran, kapasitas yang diperlukan oleh perangkat lunak cukup menjangkau sehingga tidak perlu lagi menambah biaya untuk membeli atau menambah kapasitas untuk penyimpanan data yang lebih besar, pengoperasian komputer yang didapat sangat mudah dioperasikan karena teknologi di pasaran bersifat umum.c. Legal FeasibilitySemua perangkat lunak yang digunakan dalam sistem ini antara lain menggunakan :Windows XP Professional service pack 2.Program JAVABisa didownload di http://netbeans.org/downloads/

Database MySQL 1.5Bisa didownload di http://mysql.brothersoft.com/mysql-2.0.1.5.htmlFirefox 10.0 for Windows.Bisa didownload di http://www.mozilla.org/en-US/firefox/new/ secara gratis.

d. Schedule FeasibilityTabel Daftar Aktivitas Proyek dengan Waktu yang Diharapkan (Expected Time)NoKegiatanId KegiatanWaktu Optimis (a)Waktu Realistis (m)Waktu Pesimis (b)Waktu Yang Diharapkan (ET)

1Identifikasi Masalah11121.2

2Rumusan Masalah21232

3Analisa Implementasi3.12343

4Analisa Kebutuhan Sistem3.21353

5Pembuatan Proposal Proyek4.17898

6Pengajuan Proposal Proyek 4.23575

7Seminar Proposal4.31121.2

8Desain Database5.15797

9Desain Sistem5.22464

10Pembuatan Modul63575

11Pengujian73685.9

12Dokumentasi81121.2

13Seminar Proyek91121.2

14Implementasi Sistem102464

15Evaluasi dan Perbaikan114696.2

16Perawatan121121.2

Tabel 4. Shedule feasibility

ET= a+4(m)+b 6

Keterangan Formula:ET= Expected Timea= Waktu Optimisb= Waktu Pesimism= Waktu Realistis

Melalui tabel diatas diketahui bahwa proyek ini di harapkan dapat selesai paling cepat dalam jangka waktu 59 hari (jumlah waktu realistis), dengan estimasi bahwa paling lama proyek ini memerlukan waktu selama 59.1 hari (jumlah total waktu yang diharapkan (Expected Time)) untuk selesai, maka dapat disimpulkan bahwa proyek ini telah memenuhi kelayakan jadwal pengerjaannya.e. Penjadwalan

Gambar 1. Penjadwalan

ISPM-STIKOM BINANIAGA BOGOR 201282

ISPM-STIKOM BINANIAGA BOGOR 201283

2. Pemikiran Teoritisa. Database dan AplikasiSecara sederhana database (basis data) dapat diungkapkan sebagai suatu pengorganisasian data dengan bantuan komputer yang memungkinkan data dapat diakses dapat mencakup pemerolehan data maupun pemanipulasian data, seperti menambah dan menghapus data (Abdul Kadir, p2)Menurut Jogiyanto (2001) aplikasi merupakan penerapan, menyimpan sesuatu hal, data, permasalahan, pekerjaan kedalam suatu sarana atau media yang dapat digunakan untuk menerapkan atau menginplementasikan hal atau permasalahan yang ada sehingga berubah menjadi suatu bentuk yang baru tanpa menghilangkan nilai-nilai dasar dari hal data, permasalahan, pekerjaan itu sendiri.b. Pembayaran SPPSPP adalah salah satu sumber dana terpenting bagi sekolah. Dana dari SPP ini digunakan untuk biaya operasional sekolah dan juga kegiatan yang ada disekolah. Biaya SPP dibebankan kepada siswa dan dibayarkan setiap bulannya sebesar yang telah ditentukan oleh sekolah. SPP diatur dalam PERATURAN PEMERINTAH REPUBLIK INDONESIA NOMOR 48 TAHUN 2008 TENTANG PENDANAAN PENDIDIKAN pasal 49 ayat ( 1 ) dan ( 2 ), pasal 51 ayat ( 1 ) dan ( 6 ) yang bunyinya : Pasal 49 ayat ( 1 )Masyarakat di luar penyelenggara dan satuan pendidikan yang didirikan masyarakat serta peserta didik atau orang tua/walinya dapat memberikan sumbangan pendidikan secara sukarela dan sama sekali tidak mengikat kepada satuan pendidikan.Pasal 49 ayat ( 2 )Sumbangan pendidikan sebagaimana dimaksud pada ayat (1) dibukukan dan dipertanggungjawabkan secara transparan kepada pemangku kepentingan satuan pendidikan .Pasal 51 ayat ( 1 )Pendanaan pendidikan bersumber dari Pemerintah, pemerintah daerah, dan masyarakat.

Pasal 51 ayat ( 6 )Dana pendidikan satuan pendidikan yang diselenggarakan oleh penyelenggara atau satuan pendidikan yang didirikan masyarakat dapat bersumber dari: a.bantuan dari penyelenggara atau satuan pendidikan yang bersangkutan; b.bantuan dari Pemerintah; c.bantuan dari pemerintah daerah; d.pungutan dari peserta didik atau orang tua / walinya yang dilaksanakan sesuai peraturan perundang-undangan; e.bantuan dari pemangku kepentingan satuan f.pendidikan di luar peserta didik atau orang tua/walinya; g.bantuan pihak asing yang tidak mengikat; dan/atau h.sumber lainnya yang sah.

3. Kerangka PemecahanPada metode pendekatan sistem penulis menggunakan metode Object Oriented (OO) karena sistem informasi yang digunakan sebelumnya masih belum jelas, sehingga dengan menggunakan metode ini penulis dapat memfokuskan kepada sistem informasi yang akan dibangun.4. Konsepsi PemecahanPerancangan sistem ini menggunakan program Netbeans dengan bahasa pemrograman Java sebagai Aplikasi dan mySQL sebagai Database, sehingga tewujud sebuah aplikasi database yang mampu mengolah data pembayaran SPP lebih akurat pada sekolah tersebut. Hasil akhir dari aplikasi database ini dapat membantu Staff TU dalam pencatatan data pembayaran SPP yang akurat.5. Analisisa. Pengumpulan data Observasi (Pengamatan Lapangan), mengenai tata cara atau proses pencatatan data pembayaran ke dalam buku besar mulai dari tahap awal sampai tahap pembuatan laporan. Wawancara, menanyakan tentang data-data dan sistem pembayaran spp yang sedang berjalan. Ini merupakan data yang didapat dari hasil wawancara langsung tanpa diolah terlebih dahulu. Studi Kepustakaan, membaca informasi tertulis dari arsip laporan pembayaran SPP sebagai landasan untuk membandingkan masalah yang diteliti dan ini merupakan data yang diperoleh dari dokumen-dokumen yang ada pada Sekolah tersebut.

b. Analisa dataMenganalisa data pembayaran spp di pengarsipan.Menganalisa data siswa di buku besar.

c. Persiapan proposal Menyajikan analisis biaya. Mempersiapkan proposal. Menyajikan proposal.d. Proses Bisnis

Gambar 2. Proses bisnis

PEMODELAN DAN STRUKTUR1. Arsitektur

Gambar diatas menunjukan kerangka arsitektur yang dijalankan pada sistem pembayaran SPP dengan rincian sebagai berikut :a. HardwareItem HardwareSpesifikasi

ProsesorIntel B960 ( 2.2 GHz, 2MB L3 cache )

Memory2 GB DDR3 ( 1333 Mhz )

Display14 HD Color Shine (LED) res (1366 x 768 )

Hard Drive500 GB ( 5400 rpm )

I/O Ports1x USB 3.0 , 2x USB 2.0, HDMI

PrinterCanon 280 mp

Tabel 5. Hardwareb. SoftwareItem SoftwareSpesifikasi

Operating SystemWindows 7 Ultimate SP1 32-bit Lite

Program AplikasiADPSPP.exe

DatabaseMicrosoft SQL Server 2005

DriverDriver canon 280 mp series

Tabel 6. Softwarec. JaringanPada bagian ini digunakan usb cable untuk mengkoneksikan antara printer dan komputer.

2. Komponen Struktura. SkenarioPada Sistem Informasi Pembayaran SPP melibatkan dua user yaitu Staff TU dan Kepala Sekolah. Staff TU dan Kepala Sekolah memiliki Username dan Password untuk bisa masuk ke dalam sistem, sistem akan melakukan validasi berupa authentifikasi terhadap username dan password yang dimasukkan serta menentukan otorisasi untuk user tersebut. Sistem ini di mulai dari Staff TU input data siswa, input data pembayaran dan Cetak laporan pembayaran sehingga data pembayaran telah tercatat ke dalam database. Kepala Sekolah akan meminta laporan pembayaran yang sebelumnya telah diinputkan kedalam database oleh Staff TU, sehingga data pembayaran bisa dicetak setelah Kepala Sekolah meminta data pembayaran tersebut.Dalam poses pendataan, Staff TU bertindak sebagai individu yang memiliki hak akses penuh terhadap input data siswa, input data pembayaran dan cetak laporan pembayaran terhadap data yang telah diinput sebelumnya. Kemudian laporan pembayaran tersebut akan diberikan kepada Kepala Sekolah sebagai dokumentasi.Dalam proses pencatatan data pembayaran, Siswa akan memberikan kartu pembayaran kepada Staff TU sebelum proses input data pembayaran. Kemudian Staff TU mengembalikan kartu pembayaran setelah proses penginputan data pembayaran selesai dilakukan. Staff TU melakukan input data siswa sebagai data untuk menginputkan data pembayaran kedalam sistem lalu disimpan kedalam database. Dan dalam proses menyerahkan laporan pembayaran, Staff TU akan mencetak laporan pembayaran setiap bulan dan tahunnya. Kepala sekolah akan menerima laporan pembayaran dari Staff TU. Hal ini dibutuhkan database untuk membuat jadwal laporan pembayaran diakhir bulan. Kepala sekolah dan siswa tidak dapat mengakses ke dalam sistem.

b. Diagram Konteks

Gambar 3. Diagram konteks

c. Identifikasi AktorAktorIstilahDeskripsi

Staff TUTata UsahaUser berperan sebagai individu yang mempunyai hak akses penuh terhadap sistem. Staff TU memiliki peranan sangat penting dalam sistem ini. Staff TU menginputkan data siswa dan pembayaran yang sebelumnya melakukan transaksi kepada siswa, dan menyimpannya didalam database, kemudian mencetak hasil pembayaran tersebut.

Kepala SekolahUser berperan sebagai penerima laporan pembayaran yaitu laporan pembayaran perbulan dan pertahun dari Staff TU. Kepala sekolah memiliki hak akses kedalam sistem.

SiswaUser berperan sebagai pelaku transaksi yakni melakukan pembayaran spp. Siswa tidak memiliki hak akses didalam sistem.

Tabel 7. Identifikasi Aktor

d. Identifikasi Use CaseNama Use CaseDeskripsi Use CasePelaku Utama

LoginUse case ini mendeskripsikan tentang kegiatan yang dilakukan Staff TU dalam menginputkan username dan password yang telah ditentukan.Staff TU

Input data siswaUse case ini mendeskripsikan tentang kegiatan yang dilakukan Staff TU dalam menginputkan data siswa sebelum menginputkan data pembayaran kedalam sistem.Staff TU

Input data pembayaranUse case ini mendeskripsikan tentang kegiatan yang dilakukan Staff TU dalam menginputkan data pembayaran kedalam database.Staff TU

Cetak laporan pembayaranUse case ini mendeskripsikan tentang kegiatan yang dilakukan Staff TU dalam mencetak laporan pembayaran di dalam database.Staff TU

Tabel 8. Identifikasi Use Case

e. Matriks RangkingNama Use CaseKriteria Rangking 1 Sampai 5Skor TotalPrioritasSiklus Pembangunan

123456

Login54555327Tinggi1

Input data siswa54545326Tinggi2

Input data pembayaran44334523Tinggi3

Cetak laporan pembayaran34334219Sedang4

Tabel 9. Matriks Rangking

Keterangan Rangking :1. Mudah diimplementasikan tetapi berisi fungsi yang signifikan2. Mencantumkan resiko waktu kritis atau fungsi kompleks3. Melibatkan penyelidikan yang signifikan, baru atau teknologi yang beresiko4. Menyertakan fungsi bisnis utama5. Dampak signifikan pada desain struktur

f. Diagram Use Case

Gambar 4. Diagram Use Case

g. Diagram Activity

Gambar 5. Diagram Activity Login

Gambar 6. Diagram Activity Input Data Siswa

Gambar 7. Diagram Activity Input Data Pembayaran

Gambar 8. Diagram Activity Cetak Laporan Pembayaran

h. Diagram Sequence

Gambar 9. Diagram Sequence Login

Gambar 10. Diagram Sequence Input Data Siswa

Gambar 11. Diagram Sequence Input Data Pembayaran

Gambar 12. Diagram Sequence Cetak Laporan Pembayaran

3. Dokumentasi Databasea. Data Siswa

Tabel 10. Daftar Nama Siswab. Kartu SPPNama : Ade NKelas: 7B

Tabel 11. Kartu SPP

c. Buku laporan pembayaran SPP7BTabel 12. Buku Laporan Pembayaran

d. ERD

Tgl_bayar

agama

jk

nisnama

jml_bayar

kelas

No_spp

Membayar SPP

1 *SPPSiswa

e. Normalisasia) Bentuk Tidak Normal (Unormalized Form/UNF)Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikukti format tertentu, dapat saja data tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan saat menginput.KelasNISNISNNamaJKagamano_sppjumlahtgl_bayar

7A1213070019936251478Ahmad FauziLIslam1001750003/7/2012

3/8/2012

3/9/2012

7A1213070029936251479Ahmad Nazarudin NLIslam1002750003/7/2012

3/8/2012

3/9/2012

Tabel 13. Bentuk Tidak Normal (Unormalized Form/UNF)

Untuk mentransformasikan tabel yang belum ternomalisasi di atas menjadi tabel yang memenuhi kriteria 1NF adalah kita harus merubah seluruh atribut yang multivalue menjadi atribut single value, dengan cara menghilangkan repeating group pada tabel di atas. Repeating Group (elemen data berulang) adalah (kelas , NIS, NISN, Nama, JK, agama, no_spp, jumlah)

b) Bentuk Normal ke Satu (First Normal Form/1 NF)Pada tahap ini dilakukan penghilangan beberapa group elemen yang berulang agar menjadi satu harga tunggal yang berinteraksi di antara setiap baris pada suatu tabel, dan setiap atribut harus mempunyai nilai data yang atomic (bersifat atomic value). Atom adalah zat terkecil yang masih memiliki sifat induknya, bila terpecah lagi maka ia tidak memiliki sifat induknya. Syarat normal ke satu (1-NF) antara lain:1) Setiap data dibentuk dalam flat file, data dibentuk dalam satu record demi satu record nilai dari field berupa atomic value.2) Tidak ada set atribute yang berulang atau bernilai ganda.3) Telah ditentukannya primary key untuk tabel / relasi tersebut.4) Tiap atribut hanya memiliki satu pengertian.KelasNISNISNNamaJKagamano_sppjumlahtgl_bayar

7A1213070019936251478Ahmad FauziLIslam1001750003/7/2012

7A1213070019936251478Ahmad FauziLIslam1001750003/8/2012

7A1213070019936251478Ahmad FauziLIslam1001750003/9/2012

7A1213070029936251479Ahmad Nazarudin NLIslam1002750003/7/2012

7A1213070029936251479Ahmad Nazarudin NLIslam1002750003/8/2012

7A1213070029936251479Ahmad Nazarudin NLIslam1002750003/9/2012

Tabel 14. Bentuk Normal Kesatu (First Normal Form/1NF)

c) Bentuk Normal ke Dua (Second Normal Form/2 NF)

Bentuk normal kedua memungkinkan suatu relasi memiliki composite key, yaitu relasi dengan primary key yang terdiri dari dua atau lebih atribut. Suatu relasi yang memiliki sigle atribut untuk primary keynya secara otomatis pada akhirnya menjadi 2-NF.Syarat normal kedua (2-NF) sebagai berikut.1) Bentuk data telah memenuhi kriteria bentuk normal kesatu.2) Atribute bukan kunci (non-key) haruslah memiliki ketergantungan Fungsional sepenuhnya (fully functional dependency) pada kunci utama / primary key.

1) Tabel SiswakelasNISNISNNamaJKagama

7A1213070019936251478Ahmad FauziLIslam

7A1213070019936251478Ahmad FauziLIslam

7A1213070019936251478Ahmad FauziLIslam

7A1213070029936251479Ahmad Nazarudin NLIslam

7A1213070029936251479Ahmad Nazarudin NLIslam

7A1213070029936251479Ahmad Nazarudin NLIslam

Tabel 14. Tabel Siswa

2) Tabel SppNISno_sppjumlahtgl_bayar

1213070011001750003/7/2012

1213070011001750003/8/2012

1213070011001750003/9/2012

1213070021002750003/7/2012

1213070021002750003/8/2012

1213070021002750003/9/2012

Tabel 15. Tabel SPP

Langkah pertama kita harus mengidentifikasi ketergantungan fungsional dalam relasi Siswa, Kelas, dan spp, sebagai berikut.NIS: NISN, Nama, JK, agamano_spp: NIS, jumlah, tgl_bayar

d) Bentuk Normal ke Tiga (Third Normal Form/3 NF)Syarat normal ketiga (Third Normal Form / 3 NF) sebagai berikut.1) Bentuk data telah memenuhi kriteria bentuk normal kedua.2) Atribute bukan kunci (non-key) harus tidak memiliki ketergantungan transitif, dengan kata lain suatu atribut bukan kunci (non_key) tidak boleh memiliki ketergantungan fungsional (functional dependency) terhadap atribut bukan kunci lainnya, seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap priamry key di relasi itu saja.

1) Tabel SiswaNISNISNNamaJKagama

1213070019936251478Ahmad FauziLIslam

1213070029936251479Ahmad Nazarudin NLIslam

Tabel 16. Tabel Siswa

2) Tabel KelaskelasNIS

7A121307001

7A121307002

Tabel 17. Tabel Kelas

3) Tabel SppNISno_spp

1213070011001

1213070021002

Tabel 18. Tabel SPP

4) Tabel Tanggal Bayarno_spptgl_bayarjumlah

10013/7/201275000

10013/8/201275000

10013/9/201275000

10023/7/201275000

10023/8/201275000

10023/9/201275000

Tabel 19. Tabel Tanggal BayarRelasi / Tabel Siswa terdiri dari atribut-atribut:NIS: NISN, Nama, JK, agama{NIS sebagai primary key}Relasi / Tabel Kelas terdiri dari atribut-atribut:Kelas: NIS{Kelas sebagai primary key}{NIS sebagai foreign key}Relasi / Tabel spp terdiri dari atribut-atributNo_spp : NIS{No_spp sebagai primary key}{NIS sebagai foreign key}Relasi / Tabel Tgl bayar terdiri dari atribut-atributTgl_bayar : No_spp, jumlah{No_spp sebagai foreign key}Relasi di atas sudah dalam bentuk BCNF, di mana masing-masing relasi memiliki hanya memiliki satu determinan yaitu candidate keynya, walaupun relasi Biaya kenyataannya memiliki 3 determinan yaitu (NIS, No_spp), (NIS, tgl_bayar), dan (No_spp, Tgl_Bayar) seperti terlihat di bawah ini.NIS, no_spp: tgl_bayar, kelasNIS, tgl_bayar: no_spp, kelasNo_spp, tgl_bayar: NIS, jumlahf. Transformasi ER Tabel Siswa Tabel SppNisnamakelasjkagama

nisno_SPP

Tabel Kelaskelasnis

Tabel Tanggal bayarno_spptgl_bayarjml_bayar

Gambar 13. Transformasi Entity Relationship

g. Relasi Tabel

Gambar 14. Relasi Antar Tabelh. Kamus DataNama File : tbl_siswaPrimary Key : nisNoNamaTipeUkuranDeskripsi

1nisVarchar15Primary Key

2namaVarchar35Nama yang ditampilkan pada statusbar

3kelasVarchar5Kelas siswa

4JkVarchar1Jenis kelamin siswa

5agamaVarchar9Tahun ajaran siswa

Tabel 20. Kamus Data Tabel SiswaTbl_siswa= nis+ nama + jk + kelas + thn_ajarannis= nama= kelas= jk= thn_ajaran=

Nama File : tbl_sppPrimary Key :nisNoNamaTipeUkuranDeskripsi

1no_sppVarchar15Primary Key

2nisVarchar35Nomor induk siswa

Tabel 21. Kamus Data Tabel SPP

tbl_spp= no_spp + nisNo_spp= nis=

Nama File : tbl_kelasPrimary Key : -NoNamaTipeUkuranDeskripsi

1kelasVarchar5Kelas siswa

2nisVarchar15Foreign Key yang terhubung dengan tbl_siswa

Tabel 22. Kamus Data Tabel Kelas

tbl_kelas= kelas + nis kelas= nis=

Nama File : tbl_tglbayarPrimary key : -NoNamaTipeUkuranDeskripsi

1no_sppInteger5Foreign Key yang terhubung pada tbl_spp

2tgl_bayarDateTanggal pembayaran

3jml_bayarInteger10Jumlah pembayaran

Tabel 23. Kamus Data Tabel Siswa

tbl_tglbayar= no_spp + tgl_bayar + jml_bayarno_spp= tgl_bayar= jml_bayar=

i. Diagram Kelas

Gambar 15. Diagram Kelas

j. Diagram Komponen

Gambar 16. Diagram Komponen

k. Diagram Deployment

Gambar 17. Diagram Deployment

IMPLEMENTASI

Gambar 18. Interface Login

Gambar 19. Form Menu Utama

Gambar 20. Form Input Data Siswa

Gambar 21. Form Input Data Pembayaran

Gambar 22. Form Laporan Pembayaran

Gambar 23. ERD

(HALAMAN INI SENGAJA DIKOSONGKAN)

IMPLIKASIDengan penerapan aplikasi database untuk pencatatan pembayaran spp tentunya akan banyak membantu pekerjaan Staff TU dalam proses pencatatan pembayaran SPP seperti menginputkan data pembayaran dan mencetak laporan pembayaran, serta dengan tersimpannya data didalam database maka akan meminimalisasi biaya pembelian alat tulis kantor.

(HALAMAN INI SENGAJA DIKOSONGKAN)

DAFTAR PUSTAKA Memo dari Kepala Sekolah SMP ANGKASA BOGOR Kadir Abdul. 2003. Dasar Aplikasi Database MySQL-Delphi. Andi Publisher. Jogiyanto. 2001. Analisis & Desain Sistem Informasi : pendekatan terstruktur teori dan praktek aplikasi bisnis. Andi, Yogyakarta. https://docs.google.com/viewer?a=v&q=cache:Yo7bEjB5Dl8J:elib.unikom.ac.id/download.php%3Fid%3D84401+Jogiyanto+(2001)+aplikasi&hl=en&gl=id&pid=bl&srcid=ADGEEShRNmZMD7OUbGbgbN9fvFYsc-0GeSZXGcA-123PlGsuLNPNmyPK9ukUi5hx_BbbsU7OV2Tppf51v2UkF3aLzeh0OXtIUW0uBwaNYOx98ESjy1xAsvC7Dg5TCt58euarWlyb61TC&sig=AHIEtbRc62ByrvNwJjF1fHPW20zszYPEmw [diakses pada tanggal 8 November 2012, 2:59] LEMBARAN NEGARA REPUBLIK INDONESIA TAHUN 2008 NOMOR 91 (jakarta 4 Juli 2008) p.35

TENTANG PELAKSANA PROYEK

Muhamad Amsor, lahir di bogor pada tanggal 2 juni 1988. Putra ke enam dari tujuh bersaudara, bertempat tinggal di Kp. Kukupu RT. 03/06 Kelurahan Cibadak Kecamatan Tanah Sareal Bogor. Pada tahun 2001 lulus Sekolah Madrasah Ibtidaiyah Mathlaul Anwar Bogor. Dan melanjutkan pendidikan ke Madrasah Tsanawiyah Al-hamidy Bogor pada tahun 2001 - 2004. Dan kemudian melanjutkan pendidikan ke SMK Tri Dharma 2 Bogor pada tahun 2004 - 2007. Tahun 2009 melanjutkan ke Sekolah Tinggi Ilmu Komputer BINANIAGA dengan jurusan Sistem Informasi (S1).

Erick Ramdhani Sukaman, lahir di Bogor pada tanggal 13 April 1990. Putra ke dua dari dua bersaudara, bertempat tinggal di Cilendek Timur RT 02/05 Kelurahan Cilendek Timur Kecamatan Bogor Barat. Pada tahun 2002 lulus sekolah SDN Cilendek Tengah Bogor. Dan melanjutkan pendidikan ke SMP Negeri 12 Bogor pada tahun 2002 - 2005. Dan kemudian melanjutkan pendidikan ke SMA Negeri 10 Bogor pada tahun 2005 - 2008. Tahun 2009 melanjutkan ke Sekolah Tinggi Ilmu Komputer BINANIAGA dengan jurusan Sistem Informasi (S1).

LAMPIRANUse Case NarativePengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Nama Use CaseLoginType Use Case

ID Use Case1.1Persyaratan Bisnis

PrioritasTinggi

Sumber-

Pelaku Bisnis UtamaUser

Pelaku Partisipan LainSistem

Stakeholder yang berminat lain-

DeskripsiUse case ini mendeskripsikan tentang kegiatan yang dilakukan user dalam menginputkan username dan password yang sudah ditentukan sebelumnya.

PrakondisiUser menginputkan Username dan password ke dalam sistem.

SasaranUse Case ini diawali pada saat sistem akan melakukan validasi.

Bidang khas suatu eventKegiatan PelakuRespons Sistem

Langkah 1 :User menyiapkan dan menginputkan username dan password untuk masuk kedalam sistemLangkah 2:Sistem akan merespon dengan mengautentifikasi username dan password.

Langkah 3:Sistem akan meotorisasi username dan password user.

Bidang AlternatifAlternatif Langkah 1:Apabila penginputan username dan password salah. Maka user tidak dapat mengakses ke dalam sistem.

KesimpulanUse Case ini menyimpulkan tentang tahap-tahap validasi yang harus dilakukan oleh user sebelum diterima oleh sistem.

Pasca KondisiSistem akan menampilkan menu-menu pilihan bagi setiap user yang login. Menu pilihan yang ditampilkan tergantung username dan password yang diinputkan.

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Aturan BisnisUser login dengan menggunakan username dan password yang disesuaikan NIP masing-masing. User dapat merubah password jika dihendaki. Apabila user id dan password tidak sesuai maka user tidak dapat mengakses kedalam sistem

Batasan dan spesifikasi implementasi Validasi harus terpenuhi, jika salah satu tidak terpenuhi, maka istema kan menolaknya.

AsumsiUser harus tepat dalam menginputkan username dan password.

Masalah Terbuka User lupa password dan cara penulisan password.

Tabel 24. Persyaratan Bisnis Login

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Nama Use CaseLoginType Use Case

ID Use Case1.1Analisis Sistem

PrioritasTinggi

Sumber-

Pelaku Bisnis UtamaUser

Pelaku Partisipan LainSistem

Stakeholder yang berminat lain-

DeskripsiUse case ini mendeskripsikan tentang kegiatan yang dilakukan user dalam menginputkan username dan password yang sudah ditentukan.

PrakondisiUser menginputkan Username dan password ke dalam sistem.

PemicuUse Case ini dilakukan pertama kali saat user masuk ke dalam sistem. Agar tidak terjadinya kesalahan pengecekan akses ke dalam sistem.

Bidang khas suatu eventKegiatan PelakuRespons Sistem

Langkah 1 :User akan mengaktifkan log in.

Langkah 2 : User akan menginputkan username dan password.

Langkah 3 : Sistem akan melakukan validasi username dan password yang telah diinputkan.

Langkah 4 :Sistem akan menampilkan Menu Utama.

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Bidang AlternatifLangkah Alternatif 3 :Apabila penginputan username dan password salah. Maka user tidak dapat mengakses ke dalam sistem dan Sistem akan meminta user untuk memasukkan username dan password kembali.

KesimpulanUse Case ini menyimpulkan tentang tahap-tahap validasi yang harus dilakukan sebelum diterima oleh sistem.

Pasca kondisiSistem akan menampilkan menu-menu pilihan bagi setiap user yang login. Menu pilihan yang ditampilkan adalah menu yang akan dijadikan penginputan.

Aturan BisnisUser login dengan menggunakan masing-masing username dan password yang sudah disesuaikan NIP. User tidak dapat merubah Password. Apabila username dan password tidak sesuai maka user tidak dapat mengakses kedalam sistem.

Batasan dan spesifikasi implementasi - Validasi harus terpenuhi- jika salah satu ada yang tidak terpenuhi, sistem akan menolaknya

AsumsiUser harus tepat dalam menginputkan username dan password

Masalah Terbuka User lupa password dan cara penulisan password

Tabel 25. Analisis System Login

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Nama Use CaseLoginType Use Case

ID Use Case1.1Design sistem

PrioritasTinggi

Sumber-

Pelaku Bisnis UtamaUser

Pelaku Partisipan LainSistem

Stakeholder yang berminat lain-

DeskripsiUse case ini mendeskripsikan tentang kegiatan yang dilakukan user dalam menginputkan user id dan password yang sudah ditentukan.

PrakondisiUser menginputkan User Id dan password ke dalam sistem.

PemicuUse Case ini dilakukan paa saat user masuk pertama kali ke sistem .agar tidak adanya kesalahan pengecekan akses ke dalam sistem.

Bidang khas suatu eventKegiatan PelakuRespons Sistem

Langkah 1 :User menekan tombol menu log in.

Langkah 3 : User menginputkan username dan password

Langkah 4 :User menekan tombol loginLangkah 2 :Sistem merespon dengan menampilkan FORM LOGIN

Langkah 5 :Sistem merespon dengan mengautentifikasi username dan password

Langkah 6 :Sistem melakukan otorisasi username dan password.

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Bidang AlternatifAlternatif Langkah 2 :Apabila penginputan username dan password salah. Maka user tidak dapat mengakses ke dalam sistem dan akan sistem memberikan pesan kepada user untuk memasukkan username dan password kembali.

kesimpulanUse Case ini menyimpulkan tentang tahap-tahap validasi yang harus dilakukan sebelum diterima dan masuk ke dalam sistem.

Pasca kondisiSistem akan menampilkan menu-menu pilihan bagi setiap user yang login. Menu pilihan yang ditampilkan tergantung user id dan password yang diinputkan.

Aturan BisnisUser login dengan menggunakan user id dan password yang disesuaikan NIP masing-masing. User dapat merubah password jika dihendaki. Apabila user id dan password tidak sesuai maka user tidak dapat mengakses kedalam sistem

Batasan dan spesifikasi implementasi - Validasi harus terpenuhi- jika salah satu ada yang tidak terpenuhi, sistem akan menolaknya

AsumsiUser harus tepat dalam menginputkan username dan password

Masalah Terbuka User lupa password dan cara penulisan password

Tabel 26. Design System Login

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Nama Use CaseInput Data SiswaType Use Case

ID Use Case1.2Persyaratan Bisnis

PrioritasTinggi

Sumber-

Pelaku Bisnis UtamaStaff TU

Pelaku Partisipan LainSistem

Stakeholder yang berminat lain-

DeskripsiUse case ini mendeskripsikan tentang kegiatan yang dilakukan Staff TU dalam menginputkan data siswa kedalam database

PrakondisiStaff TU sudah mengetahui data siswa yang akan di inputkan kedalam sistem.

SasaranUse case ini dilakukan agar penginputan data sesuai dengan data yang akan disimpan kedalam database.

Bidang khas suatu eventKegiatan Pelaku Respon Sistem

Langkah 1:Staff TU melakukan penginputan data siswa kedalam sistem.Langkah 2 :Sistem akan mengecek kelengkapan data yang telah diinputkan

Langkah 3 :Sistem menyimpan data yang telah diinputkan .

Bidang AlternatifLangkah 1Apabila dalam penginputan data kedalam database tidak lengkap. Maka sistem akan mengirimkan pesan kepada Staff TU untuk melengkapi data tersebut.

KesimpulanUse case ini menyimpulkan kejadian pada saat penginputan data siswa.

Pasca KondisiSistem akan menyimpan data siswa yang telah diinputkan kedalam database.

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Aturan BisnisData siswa diinputkan sesuai dengan data yang sebenarnya.

Batasan dan spesifikasi implementasi Sistem akan memberikan respon terhadap data yang sudah terisi dengan lengkap.

AsumsiStaff TU mengisi data dengan lengkap kedalam sistem sesuai ketentuan yang berlaku.

Masalah Terbuka Kesalahan dalam menginputkan data siswa.

Tabel 27. Persyaratan Bisnis Input Data Siswa

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Nama Use CaseInput Data SiswaType Use Case

ID Use Case1.2

Analisis system

PrioritasTinggi

Sumber-

Pelaku Bisnis UtamaStaff TU

Pelaku Partisipan LainSistem

Stakeholder yang berminat lain-

DeskripsiUse case ini mendeskripsikan tentang kegiatan Staff TU dalam menginputkan data siswa kedalam database

PrakondisiStaff TU sudah mengetahui data siswa yang akan di inputkan kedalam sistem

PemicuUse Case ini dilakukan untuk pendataan siswa yang wajib dilakukan untuk melakukan pembayaran SPP.

Bidang khas suatu eventKegiatan PelakuRespons Sistem

Langkah 1 :Staff TU akan mengaktifkan FORM DATA SISWA

Langkah 2 :Staff TU akan menginputkan data siswa. Kemudian akan mengklik tombol simpanLangkah 3 :Sistem akan mengecek kelengkapan data siswa

Langkah 4 : Sistem akan menyimpan data siswa

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Bidang AlternatifLangkah Alternatif 2 :Apabila penginputan yang dilakukan oleh Staff TU tidak lengkap. Maka sistem akan meminta Staff TU untuk melengkapi data tersebut.

kesimpulanUse Case ini menyimpulkan tahapan penginputan data siswa setiap melakukan transaksi pembayaran.

Pasca kondisiSistem akan menggunakan data siswa apabila suatu saat data itu diperlukan untuk keperluan yang menyangkut segala sesuatu yang berhubungan dengan pembayaran.

Aturan BisnisData siswa diinputkan dengan benar sesuai dengan data yang sebenarnya.

Batasan dan spesifikasi implementasi sistem akan merespon bila data sudah terisi dengan lengkap.

AsumsiStaff TU memasukan data siswa dengan lengkap sesuai dengan data yang sebenarnya.

Masalah Terbuka Staff TU tidak mengisi data siswa dengan lengkap.

Tabel 28. Analisis System Input Data Siswa

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Nama Use CaseInput Data SiswaType Use Case

ID Use Case1.2

Design system

PrioritasTinggi

Sumber-

Pelaku Bisnis UtamaStaff TU

Pelaku Partisipan LainSistem

Stakeholder yang berminat lain-

DeskripsiUse case ini mendeskripsikan tentang kegiatan Staff TU dalam menginputkan data siswa kedalam database.

PrakondisiStaff TU sudah mengetahui data siswa yang akan di inputkan kedalam sistem

PemicuUse Case ini dilakukan untuk pendataan siswa yang wajib dilakukan untuk melakukan transaksi pembayaran.

Bidang khas suatu eventKegiatan PelakuRespons Sistem

Langkah 1Staff TU mengklik FORM DATA SISWA

Langkah 3Staff TU menginputkan biodata siswa, kemudian menekan tombol simpan Langkah 2Sistem menampilkan FORM DATA SISWA

Langkah 4Sistem mengecek kelengkapan data, apabila data yang diinputkan tidak lengkap maka sistem akan menampilkan message box. Dan sistem akan Meminta staff TU untuk melengkapi data siswa.

Langkah 5Sistem menyimpan data siswa kedalam database.

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Bidang AlternatifLangkah Alternatif 3 :Apabila dalam penginputan data tidak lengkap. Maka sistem akan memberikan pesan dan Staff TU akan diminta untuk melakukan penginputan data kembali.

kesimpulanUse Case ini menyimpulkan tahapan penginputan data siswa setiap melakukan transaksi pembayaran

Pasca kondisiApabila suatu saat data itu diperlukan untuk keperluan yang menyangkut segala sesuatu yang berhubungan dengan pembayaran maka sistem akan menggunakan data siswa tersebut.

Aturan BisnisData siswa diinputkan sesuai dengan data yang sebenarnya.

Batasan dan spesifikasi implementasi sistem akan memberikan respon terhadap data yang telah terisi dengan lengkap.

AsumsiStaff TU memasukan data siswa dengan lengkap sesuai dengan data yang sebenarnya.

Masalah Terbuka Staff TU tidak mengisi data siswa dengan lengkap.

Tabel 29. Design System Input Data Siswa

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Nama Use CaseInput Data PembayaranType Use Case

ID Use Case1.3Persyaratan Bisnis

PrioritasTinggi

Sumber-

Pelaku Bisnis UtamaStaff TU

Pelaku Partisipan LainSistem

Stakeholder yang berminat lain-

DeskripsiUsecase ini mendeskripsikan tentang kegiatan yang dilakukan Staff TU dalam menginputkan data pembayaran kedalam database

PrakondisiStaff TU sudah mengetahui data pembayaran yang akan di inputkan kedalam sistem.

SasaranUse case ini dilakukan agar penginputan data sesuai dengan data yang akan di simpan kedalam database.

Bidang khas suatu eventKegiatan Pelaku Respon Sistem

Langkah 1:Staff TU melakukan penginputan data pembayaran kedalam sistem.Langkah 2 :Sistem akan mengecek kelengkapan data yang telah diinputkan

Langkah 3 :Sistem menyimpan data yang telah diinputkan .

Bidang AlternatifLangkah 1Apabila dalam penginputan data kedalam database tidak lengkap. Maka sistem akan mengirimkan pesan kepada Staff TU untuk melengkapi data tersebut.

KesimpulanUse case ini menyimpulkan kejadian pada saat penginputan data pembayaran.

Pasca KondisiSistem akan menyimpan data pembayaran yang telah diinputkan kedalam database.

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Aturan BisnisData pembayaran diinputkan sesuai dengan data yang sebenarnya.

Batasan dan spesifikasi implementasi Sistem akan memberikan respon terhadap data yang sudah terisi dengan lengkap.

AsumsiStaff TU mengisi data dengan lengkap kedalam sistem sesuai ketentuan yang berlaku.

Masalah Terbuka Kesalahan dalam menginputkan data pembayaran.

Tabel 30. Persyaratan Bisnis Input Data Pembayaran

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Nama Use CaseInput Data PembayaranType Use Case

ID Use Case1.3

Analisis system

PrioritasTinggi

Sumber-

Pelaku Bisnis UtamaStaff TU

Pelaku Partisipan LainSistem

Stakeholder yang berminat lain-

DeskripsiUse case ini mendeskripsikan tentang kegiatan Staff TU dalam menginputkan data pembayaran kedalam database

PrakondisiStaff TU sudah mengetahui data pembayaran yang akan di inputkan kedalam sistem

PemicuUse Case ini dilakukan untuk pendataan pembayaran yang wajib dilakukan untuk melakukan transaksi pembayaran.

Bidang khas suatu eventKegiatan PelakuRespons Sistem

Langkah 1 :Staff TU akan mengaktifkan FORM DATA PEMBAYARAN

Langkah 2 :Staff TU akan menginputkan NIS.

Langkah 4 :Staff TU akan menginputkan Data Pembayaran.

Langkah 3 :Sistem akan mengecek data siswa.

Langkah 5 : Sistem akan megecek data pembayaran.

Langkah 6 :Sistem akan menyimpan data pembayaran.

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Bidang AlternatifLangkah Alternatif 2 :Apabila penginputan yang dilakukan oleh Staff TU tidak lengkap. Maka sistem akan meminta Staff TU untuk melengkapi data tersebut.

kesimpulanUse Case ini menyimpulkan tahapan penginputan data pembayaran setiap melakukan transaksi pembayaran.

Pasca kondisiSistem akan menggunakan data pembayaran apabila suatu saat data itu diperlukan untuk keperluan yang menyangkut segala sesuatu yang berhubungan dengan pembayaran.

Aturan BisnisData pembayaran diinputkan dengan benar sesuai dengan data yang sebenarnya.

Batasan dan spesifikasi implementasi sistem akan merespon bila data sudah terisi dengan lengkap.

AsumsiStaff TU memasukan data pembayaran dengan lengkap sesuai dengan data yang sebenarnya.

Masalah Terbuka Staff TU tidak mengisi data pembayaran dengan lengkap.

Tabel 31. Analisis System Input Data Pembayaran

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Nama Use CaseInput Data PembayaranType Use Case

ID Use Case1.3

Design system

PrioritasTinggi

Sumber-

Pelaku Bisnis UtamaStaff TU

Pelaku Partisipan LainSistem

Stakeholder yang berminat lain-

DeskripsiUse case ini mendeskripsikan tentang kegiatan Staff TU dalam menginputkan data pembayaran kedalam database

PrakondisiStaff TU sudah mengetahui data pembayaran yang akan di inputkan kedalam sistem

PemicuUse Case ini dilakukan untuk pendataan pembayaran yang wajib dilakukan untuk melakukan transaksi pembayaran.

Bidang khas suatu eventKegiatan PelakuRespons Sistem

Langkah 1Staff TU menampilkan FORM DATA PEMBAYARAN

Langkah 3Staff TU menginputkan data berdasarkan NIS. Langkah 2Sistem menampilkan FORM DATA PEMBAYARAN

Langkah 4Sistem mengecek data, apabila data yang diinputkan tidak ditemukan maka sistem tidak akan menampilkan data didalam kolom textbox. Dan apabila data yang diinputkan ditemukan, maka sistem akan menampilkan data didalam kolom textbox yang kosong.

Langkah 5Sistem menampilkan data siswa berdasarkan NIS

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Bidang khas suatu eventKegiatan PelakuRespons Sistem

Langkah 6Staff TU menginputkan data pembayaran kemudian menekan tombol simpanLangkah 7Sistem mengecek kelengkapan data pembayaran, apabila data yang diinputkan tidak lengkap, maka system akan menampilkan message box Data yang diinputkan tidak lengkap Staff TU menekan tombol OK, kemudian sistem akan menutup message box.

Langkah 8Sistem menyimpan data ke dalam database.

Bidang AlternatifLangkah Alternatif 3 :Apabila dalam pengecekan data siswa tidak ditemukan, maka sistem tidak akan menampilkan data siswa tersebut

Langkah Alternatif 7 :Apabila dalam penginputan data tidak lengkap. Maka sistem akan memberikan pesan dan admin akan diminta untuk melakukan penginputan data kembali.

kesimpulanUse Case ini menyimpulkan tahapan penginputan data pembayaran setiap melakukan transaksi pembayaran

Pasca kondisiApabila suatu saat data itu diperlukan untuk keperluan yang menyangkut segala sesuatu yang berhubungan dengan siswa tersebut maka sistem akan menggunakan data pembayaran tersebut.

Aturan BisnisData pembayaran diinputkan sesuai dengan data yang sebenarnya.

Batasan dan spesifikasi implementasiSistem akan memberikan respon terhadap data yang telah terisi dengan lengkap.

AsumsiStaff TU memasukan data pembayaran dengan lengkap sesuai dengan data yang sebenarnya.

Masalah TerbukaStaff TU tidak mengisi data pembayaran dengan lengkap.

Tabel 32. Design System Input Data Pembayaran

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Nama Use CaseCetak Laporan PembayaranType Use Case

ID Use Case1.4Persyaratan Bisnis

PrioritasSedang

Sumber1.5

Pelaku Bisnis UtamaStaff TU

Pelaku Partisipan LainSistem

Stakeholder yang berminat lainKepala Sekolah

DeskripsiUse case ini mendeskripsikan tentang kegiatan Staff TU dalam mencetak laporan pembayaran untuk keperluan kepala sekolah

PrakondisiKepala sekolah memerlukan data pembayaran sebagai keperluan untuk pengecekan dan pendataan

SasaranUse case ini dilakukan oleh Staff TU untuk pengecekan data pembayaran sebelum dijadikan sebuah laporan

Bidang khas suatu eventKegiatan PelakuRespons Sistem

Langkah 1 :Staff TU mencetak laporan data pembayaranLangkah 2 :Sistem akan mencetak data tersebut.

Bidang Alternatif-

KesimpulanUse case ini menyimpulkan tentang pencetakan laporan pembayaran yang dilakukan oleh Staff TU untuk pengecekan terhadap data pembayaran oleh kepala sekolah.

Pasca KondisiKepala sekolah dapat meminta laporan pembayaran setiap bulan kepada Staff TU dengan cara yang lebih cepat.

Aturan BisnisLaporan pembayaran dicetak apabila penginputan data telah dilakukan dengan lengkap dan benar.

Batasan dan spesifikasi implementasiStaff TU hanya mencetak laporan pembayaran dan diberikan kepada kepala sekolah.

AsumsiStaff TU harus memberikan laporan dengan data-data yang akurat dan dijamin kebenarannya

Masalah TerbukaAdanya kesalahan pada data.

Tabel 33. Persyaratan Bisnis Cetak Laporan Pembayaran

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Nama Use CaseCetak Laporan PembayaranType Use Case

ID Use Case1.4 Analisis system

PrioritasSedang

Sumber1.5

Pelaku Bisnis UtamaStaff TU

Pelaku Partisipan LainSistem

Stakeholder yang berminat lainKepala Sekolah

DeskripsiUse case ini mendeskripsikan tentang kegiatan Staff TU dalam mencetak laporan pembayaran untuk keperluan kepala sekolah

PrakondisiKepala sekolah memerlukan laporan pembayaran sebagai keperluan untuk pengecekan dan pendataan

PemicuUse case ini diperlukan untuk pengecekan data oleh kepala sekolah

Bidang khas suatu eventKegiatan PelakuRespons Sistem

Langkah 1 :Staff TU akan mengaktifkan FORM LAPORAN PEMBAYARAN Langkah 2 :Staff TU akan menginputkan bulan dan tahun. Kemudian akan menekan tombol view

Langkah 3 :Sistem akan mengecek data berdasarkan data yang diinputkan. Kemudian menampilkan data tersebut

Langkah 4 :Sistem akan mencetak Laporan.

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Bidang Alternatif-

kesimpulanUse case ini menyimpulkan tentang pencetakan laporan pembayaran yang dilakukan oleh Staff TU untuk pengecekan terhadap data pembayaran

Pasca kondisiKepala sekolah dapat meminta laporan data pembayaran setiap saat kepada Staff TU dengan cara yang lebih cepat.

Aturan BisnisLaporan data pembayaran dicetak apabila penginputan data telah dilakukan dengan lengkap dan benar.

Batasan dan spesifikasi implementasi Staff TU hanya mencetak laporan data pembayaran dan diberikan kepada kepala sekolah

AsumsiStaff TU harus memberikan laporan dengan data-data yang akurat dan dijamin kebenarannya

Masalah Terbuka Adanya kesalahan pada data saat memprint-out.

Tabel 34. Analisis System Cetak Laporan Pembayaran

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Nama Use CaseCetak Laporan PembayaranType Use Case

ID Use Case1.4Design system

PrioritasSedang

Sumber1.5

Pelaku Bisnis UtamaStaff TU

Pelaku Partisipan LainSistem

Stakeholder yang berminat lainKepala Sekolah

DeskripsiUse case ini mendeskripsikan tentang kegiatan Staff TU dalam mencetak laporan data siswa untuk keperluan ketua bendahara

PrakondisiKepala sekolah memerlukan data pembayaran sebagai keperluan untuk pengecekan dan pendataan

PemicuUse case ini diperlukan untuk pengecekan data oleh kepala sekolah

Bidang khas suatu eventKegiatan PelakuRespons Sistem

Langkah 1Staff TU mengklik FORM LAPORAN PEMBAYARANLangkah 3Staff TU menampilkan data pembayaran, kemudian menekan tombol viewLangkah 5Staff TU menekan tombol OKLangkah 7Staff TU memilih dan menekan tombol cetakLangkah 2Sistem menampilkan FORM DATA PEMBAYARANLangkah 4Sistem mengecek data pembayaran, apabila data yang diinputkan tidak ditemukan maka system akan menampilkan messagebox Data tidak ditemukan Langkah 6Sistem menutup message boxLangkah 8Sistem akan mencetak data tersebut

Pengarang: TIM ISPM ADPSPPTanggal : Nopember 2012Versi : 1.0Bidang Alternatif-

kesimpulanUse case ini menyimpulkan tentang pencetakan laporan pembayaran yang dilakukan oleh Staff TU untuk pengecekan terhadap data pembayaran oleh kepala sekolah

Pasca kondisiKepala sekolah dapat meminta laporan data pembayaran setiap saat kepada Staff TU dengan cara yang lebih cepat.

Aturan BisnisLaporan pembayaran dicetak apabila penginputan data telah dilakukan dengan lengkap dan benar.

Batasan dan spesifikasi implementasi Staff TU hanya mencetak laporan pembayaran dan diberikan kepada kepala sekolah

AsumsiStaff TU harus memberikan laporan dengan data-data yang akurat dan dijamin kebenarannya

Masalah Terbuka Adanya kesalahan pada data

Tabel 35. Design System Cetak Laporan Pembayaran

(HALAMAN INI SENGAJA DIKOSONGKAN)

Source Kode

Form Login

package sppsmpangkasa;

import java.sql.ResultSet;import javax.swing.JOptionPane;* @author Ericpublic class frm_login extends javax.swing.JFrame {

ublic frm_login() { initComponents(); } private void jLabel2MouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: String pass = String.valueOf(txt_pass.getPassword()); koneksi kon = new koneksi(); kon.konek(); try { String sql = "select * from tbl_user where username = '" + txt_user.getText() + "' and password= '" + pass + "'"; ResultSet res = (ResultSet) kon.getData(sql); System.out.println(); if (res.next()) { { JOptionPane.showMessageDialog(null, "Access Confirmed"); frm_menu a = new frm_menu(); a.setVisible(true); this.setVisible(false); } } else { JOptionPane.showMessageDialog(null, "Access Denied"); } txt_user.requestFocus();

} catch (Exception ex) { JOptionPane.showMessageDialog(null, "Access Denied"); txt_user.setText(""); txt_pass.setText(""); } } private void txt_passActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: jLabel2.requestFocus(); String pass = String.valueOf(txt_pass.getPassword()); koneksi kon = new koneksi(); kon.konek(); try { String sql = "select * from tbl_user where username = '" + txt_user.getText() + "' and password= '" + pass + "'"; ResultSet res = (ResultSet) kon.getData(sql); System.out.println(); if (res.next()) { { JOptionPane.showMessageDialog(null, "Access Confirmed"); frm_menu a = new frm_menu(); a.setVisible(true); this.setVisible(false); } } else { JOptionPane.showMessageDialog(null, "Access Denied"); } txt_user.requestFocus();

} catch (Exception ex) { JOptionPane.showMessageDialog(null, "Access Denied"); txt_user.setText(""); txt_pass.setText(""); } } public static void main(String args[]) { try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) {java.util.logging.Logger.getLogger(frm_login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) {java.util.logging.Logger.getLogger(frm_login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(frm_login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(frm_login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //

/* * Create and display the form java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new frm_login().setVisible(true); } }); }Form Menu

package sppsmpangkasa;

import javax.imageio.ImageIO;import javax.swing.JFrame;import java.awt.image.BufferedImage;import java.awt.Dimension;import java.awt.Toolkit;import java.io.IOException;import javax.swing.JOptionPane;* @author Ericpublic class frm_menu extends javax.swing.JFrame { public frm_menu() { initComponents(); } private void cmb_siswaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: frm_siswa a = new frm_siswa(); a.setVisible(true); this.dispose(); }

private void cmb_logoutActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if (JOptionPane.showConfirmDialog(null, "Apakah Anda yakin akan Keluar?", "Konfirmasi", JOptionPane.OK_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION) { frm_login a = new frm_login(); a.setVisible(true); this.dispose(); } }

private void cmb_laporanActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: frm_laporan a = new frm_laporan(); a.setVisible(true); this.dispose(); }

private void cmb_pembayaran1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: frm_spp a = new frm_spp(); a.setVisible(true); this.dispose(); }

private void cmb_aboutActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

} public static void main(String args[]) { try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(frm_menu.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(frm_menu.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(frm_menu.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(frm_menu.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } java.awt.EventQueue.invokeLater(new Runnable() {

public void run() { new frm_menu().setVisible(true); } }); }

Form Input Siswa

package sppsmpangkasa;

import groovy.model.DefaultTableModel;import java.awt.Color;import java.sql.ResultSet;import java.text.SimpleDateFormat;import javax.swing.JOptionPane;* @author Eric public class frm_siswa extends javax.swing.JFrame { static javax.swing.table.DefaultTableModel tabMode; private void tabel() {

Object[] row = {"NO","NIS","NAMA","JENIS KELAMIN","KELAS","TAHUN AJARAN"};tabMode = new javax.swing.table.DefaultTableModel(null, row);tabel.setBorder(null);tabel.setModel(tabMode); koneksi kon=new koneksi();kon.konek(); int a=1;try {String sql="select * from tbl_siswa";ResultSet res = kon.getData(sql);while (res.next()) {String b = String.valueOf(a); String nis = res.getString("nis");String nama = res.getString("nama"); String jk = res.getString("jk"); String kls = res.getString("kelas"); String thn = res.getString("thn_ajaran"); String[] data = {b,nis,nama,jk,kls,thn};tabMode.addRow(data); a++;}} catch (Exception ex) {}

jScrollPane1.getViewport().add(tabel); }

private void cmd_baruActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: tabel(); txt_nis.setEditable(true); cb_jk.setEditable(true); txt_nama.setEditable(true); cb_kls.setEditable(true); txt_thn.setEditable(true); txt_nis.requestFocus(); tabel.setEnabled(true); cmd_hapus.setEnabled(true); cmd_simpan.setEnabled(true); cmd_ubah.setEnabled(true); txt_nis.setText(""); txt_nama.setText(""); cb_jk.setSelectedItem(""); cb_kls.setSelectedItem(""); txt_thn.setText(""); txt_nis.requestFocus(); }

private void cmd_simpanMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: }

private void cmd_simpanActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

String a, b, c, d, e, sql; a = String.valueOf(txt_nis.getText()); b = String.valueOf(txt_nama.getText()); c = String.valueOf(cb_jk.getSelectedItem()); d = String.valueOf(cb_kls.getSelectedItem()); e = String.valueOf(txt_thn.getText());

koneksi kon = new koneksi(); kon.konek();

if ((a.isEmpty()) | (b.isEmpty()) | (c.isEmpty()) | (d.isEmpty()) | (e.isEmpty())) { JOptionPane.showMessageDialog(null, "Data tidak boleh kosong, silahkan dilengkapi");

txt_nis.setEditable(true); cb_jk.setEnabled(true); txt_nama.setEditable(true); cb_kls.setEnabled(true); txt_thn.setEditable(true);

} else { sql = "insert into tbl_siswa values('" + a + "'," + "'" + b + "'," + "'" + c + "'," + "'" + d + "'," + "'" + e + "')"; try { kon.stat = kon.con.createStatement(); kon.stat.execute(sql); JOptionPane.showMessageDialog(null, "Data sudah tersimpan"); } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Data sudah ada"); //return; } txt_nis.setEditable(false); cb_jk.setEnabled(false); txt_nama.setEditable(false); cb_kls.setEnabled(false); txt_thn.setEditable(false); cmd_simpan.setEnabled(false); cmd_ubah.setEnabled(false); cmd_hapus.setEnabled(false);

tabel(); } }

private void cmd_ubahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String a, b, c, d, e, g, h, thn, sql; a = String.valueOf(txt_nis.getText()); b = String.valueOf(txt_nama.getText()); c = String.valueOf(cb_jk.getSelectedItem()); d = String.valueOf(cb_kls.getSelectedItem()); e = String.valueOf(txt_thn.getText());

koneksi kon = new koneksi(); kon.konek(); if ((a.isEmpty()) | (b.isEmpty()) | (c.isEmpty()) | (d.isEmpty()) | (e.isEmpty())) { JOptionPane.showMessageDialog(null, "Data tidak boleh kosong, silahkan dilengkapi");

txt_nis.setEditable(true); cb_jk.setEnabled(true); txt_nama.setEditable(true); cb_kls.setEnabled(true); txt_thn.setEditable(true); } else { sql = "update tbl_siswa set nis = '"+ a +"',nama = '" + b + "',jk = '" + c + "',kelas = '" + d + "',thn_ajaran = '" + e + "' where nis = '" + a + "'"; kon.exec(sql);

txt_nis.setEditable(true); cb_jk.setEditable(true); txt_nama.setEditable(true); cb_kls.setEditable(true); txt_thn.setEditable(true); txt_nis.setText(""); cb_jk.setSelectedItem(""); txt_nama.setText(""); cb_kls.setSelectedItem(""); txt_thn.setText(""); txt_nis.requestFocus();

tabel(); } }

private void cmd_hapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: koneksi a = new koneksi(); a.konek(); if (JOptionPane.showConfirmDialog(null, "Apakah Anda yakin akan menghapus data ini?", "Konfirmasi", JOptionPane.OK_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION) {

String sql = "delete from tbl_siswa where nis ='" + txt_nis.getText() + "'"; a.exec(sql);

txt_nis.setText(""); txt_nama.setText(""); cb_kls.setSelectedItem(""); cb_jk.setSelectedItem(""); txt_thn.setText(""); txt_nis.requestFocus();

tabel(); } }

private void cmd_keluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: frm_menu a = new frm_menu(); a.setVisible(true); this.dispose(); }

private void tabelMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: String nis = String.valueOf(tabel.getValueAt(tabel.getSelectedRow(), 1)); String nama = String.valueOf(tabel.getValueAt(tabel.getSelectedRow(), 2)); String jk = String.valueOf(tabel.getValueAt(tabel.getSelectedRow(), 3)); String kls = String.valueOf(tabel.getValueAt(tabel.getSelectedRow(), 4)); String thn = String.valueOf(tabel.getValueAt(tabel.getSelectedRow(), 5)); cmd_simpan.setEnabled(false); cmd_hapus.setEnabled(true); cmd_ubah.setEnabled(true); cb_jk.setEnabled(true); txt_nis.setEditable(true); txt_nama.setEditable(true); cb_kls.setEnabled(true); txt_thn.setEditable(true); txt_nis.requestFocus(); txt_nis.setText(nis); txt_nama.setText(nama); cb_jk.setSelectedItem(jk); cb_kls.setSelectedItem(kls); txt_thn.setText(thn); tabel(); } try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(frm_siswa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(frm_siswa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(frm_siswa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(frm_siswa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); }

public void run() { new frm_siswa().setVisible(true); } }); }

Form Input Data Pembayaran

package sppsmpangkasa;

import java.sql.ResultSet;import java.util.Date;import javax.swing.JOptionPane;import javax.swing.table.DefaultTableModel;

* @author Ericpublic class frm_spp extends javax.swing.JFrame {static javax.swing.table.DefaultTableModel tabMode; private void tabel() { Object[] row = {"No","ID","TANGGAL BAYAR","NIS","BULAN BAYAR","TAHUN","JUMLAH BAYAR","STATUS"};tabMode = new javax.swing.table.DefaultTableModel(null, row);tabel.setBorder(null);tabel.setModel(tabMode);koneksi kon=new koneksi();kon.konek(); int a=1;try {String sql="select * from tbl_pembayaran";ResultSet res = kon.getData(sql);while (res.next()) {String b = String.valueOf(a); String id = res.getString("id_pembayaran"); String tgl = res.getString("tgl_bayar"); String nis = res.getString("nis"); String bln = res.getString("bulan_bayar"); String thn = res.getString("tahun"); String jml = res.getString("jml_bayar"); String st = res.getString("status"); String[] data = {b,id,tgl,nis,bln,thn,jml,st};tabMode.addRow(data); a++;}} catch (Exception ex) {}

jScrollPane1.getViewport().add(tabel); } /** * Creates new form frm_spp */ public frm_spp() { initComponents(); Date tanggal=new Date(); lbl_tanggal.setText(""+(String.format("%1$tY-%1$tm-%1$td",tanggal))); txt_id.setEditable(false); txt_nis.setEditable(false); cb_bln.setEditable(false); txt_thn.setEditable(false); txt_jml.setEditable(false); tabel.setEnabled(false); cmd_hapus.setEnabled(false); cmd_simpan.setEnabled(false); cmd_ubah.setEnabled(false); txt_nama.setEditable(false); txt_kls.setEditable(false); private void txt_nisActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: txt_nis.requestFocus(); koneksi kon = new koneksi(); kon.konek(); try { String sql = "select * from tbl_siswa where nis = '" + txt_nis.getText() + "'"; ResultSet res = kon.getData(sql); if (res.next()) { txt_nama.setText(res.getString(2)); txt_kls.setText(res.getString(4)); } res.next(); } catch (Exception ex) { System.out.println("error"); } } private void cmd_baruActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: tabel(); txt_id.setEditable(true); txt_nis.setEditable(true); txt_nama.setEditable(false); txt_kls.setEditable(false); cb_bln.setEditable(true); txt_thn.setEditable(true); txt_jml.setEditable(true); txt_id.requestFocus(); tabel.setEnabled(true); cmd_hapus.setEnabled(true); cmd_simpan.setEnabled(true); cmd_ubah.setEnabled(true); txt_id.setText(""); txt_nis.setText(""); txt_nama.setText(""); txt_kls.setText(""); cb_bln.setSelectedItem(""); txt_thn.setText(""); txt_jml.setText(""); txt_id.requestFocus(); } private void cmd_simpanActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:String a,b,c,d,e,f,sql;a=String.valueOf(txt_id.getText());b=String.valueOf(lbl_tanggal.getText());c=String.valueOf(txt_nis.getText());d=String.valueOf(cb_bln.getSelectedItem());e=String.valueOf(txt_thn.getText());f=String.valueOf(txt_jml.getText()); koneksi kon = new koneksi(); kon.konek(); if ((a.isEmpty()) | (b.isEmpty())|(c.isEmpty()) | (d.isEmpty()) | (e.isEmpty())|((f.isEmpty()))) { JOptionPane.showMessageDialog(null, "Data tidak boleh kosong, silahkan dilengkapi"); txt_id.setEditable(true); txt_nis.setEditable(true); cb_bln.setEditable(true); txt_thn.setEditable(true); txt_jml.setEditable(true); } else { sql = "insert into tbl_pembayaran values('" + a + "'," + "'" + b + "'," + "'" + c + "'," + "'" + d + "'," + "'" + e + "'," + "'" + f + "','SUDAH BAYAR')"; try { kon.stat = kon.con.createStatement(); kon.stat.execute(sql); JOptionPane.showMessageDialog(null,"Data sudah tersimpan"); } catch (Exception ex) { JOptionPane.showMessageDialog(null,"Data sudah ada"); } txt_id.setEditable(false); txt_nis.setEditable(false); cb_bln.setEditable(false); txt_thn.setEditable(false); txt_jml.setEditable(false); cmd_simpan.setEnabled(false); cmd_ubah.setEnabled(false); cmd_hapus.setEnabled(false); tabel(); } } private void cmd_hapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: koneksi a = new koneksi(); a.konek(); if (JOptionPane.showConfirmDialog(null, "Apakah Anda yakin akan menghapus data ini?", "Konfirmasi", JOptionPane.OK_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION) {

String sql = "delete from tbl_pembayaran where id_pembayaran ='" + txt_id.getText() + "'"; a.exec(sql); txt_id.setText(""); txt_nis.setText(""); cb_bln.setSelectedItem(""); txt_thn.setText(""); txt_jml.setText(""); txt_id.requestFocus();

tabel(); } } private void cmd_ubahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:String a,b,c,d,e,f,sql;a=String.valueOf(txt_id.getText());b=String.valueOf(lbl_tanggal.getText());c=String.valueOf(txt_nis.getText());d=String.valueOf(cb_bln.getSelectedItem());e=String.valueOf(txt_thn.getText());f=String.valueOf(txt_jml.getText()); koneksi kon = new koneksi(); kon.konek(); if ((a.isEmpty()) | (b.isEmpty())|(c.isEmpty()) | (d.isEmpty()) | (e.isEmpty())|(f.isEmpty())) { JOptionPane.showMessageDialog(null, "Data tidak boleh kosong, silahkan dilengkapi"); txt_id.setEditable(true); txt_nis.setEditable(true); cb_bln.setEditable(true); txt_thn.setEditable(true); txt_jml.setEditable(true); } else { sql = "update tbl_pembayaran set tgl_bayar = '" + b + "',nis = '"+c+"',bulan_bayar = '"+d+"',tahun = '"+e+"',jml_bayar = '"+f+"' where id_pembayaran = '" + a + "'"; kon.exec(sql); txt_id.setEditable(true); txt_nis.setEditable(true); cb_bln.setEditable(true); txt_thn.setEditable(true); txt_jml.setEditable(true); txt_id.setText(""); txt_nis.setText(""); cb_bln.setSelectedItem(""); txt_thn.setText(""); txt_jml.setText(""); txt_id.requestFocus(); tabel(); } } private void cmd_keluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: frm_menu a = new frm_menu(); a.setVisible(true); this.dispose(); } private void tabelMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: String id = String.valueOf(tabel.getValueAt(tabel.getSelectedRow(), 1)); String nis = String.valueOf(tabel.getValueAt(tabel.getSelectedRow(), 3)); String bln = String.valueOf(tabel.getValueAt(tabel.getSelectedRow(), 4)); String tahun = String.valueOf(tabel.getValueAt(tabel.getSelectedRow(), 5)); String jml = String.valueOf(tabel.getValueAt(tabel.getSelectedRow(), 6)); cmd_simpan.setEnabled(false); txt_id.setEditable(true); txt_nis.setEditable(true); cb_bln.setEditable(true); txt_thn.setEditable(true); txt_jml.setEditable(true); txt_id.requestFocus(); txt_id.setText(id); txt_nis.setText(nis); cb_bln.setSelectedItem(bln); txt_thn.setText(tahun); txt_jml.setText(jml); } private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: frm_cari a = new frm_cari(); a.setVisible(true); this.dispose(); } } public static void main(String args[]) { try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(frm_spp.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(frm_spp.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(frm_spp.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(frm_spp.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new frm_spp().setVisible(true); } }); }

Form Laporan Pembayaran

package sppsmpangkasa;

import com.mysql.jdbc.Connection;import java.io.File;import java.sql.Date;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.text.SimpleDateFormat;import java.util.HashMap;import java.util.logging.Level;import java.util.logging.Logger;import net.sf.jasperreports.engine.*;import net.sf.jasperreports.engine.xml.JRXmlLoader;import net.sf.jasperreports.view.JasperViewer;import java.io.File;import java.util.HashMap;import java.util.Map;import javax.swing.JOptionPane;import net.sf.jasperreports.engine.JasperCompileManager;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.JasperPrint;import net.sf.jasperreports.engine.JasperReport;import net.sf.jasperreports.engine.design.JasperDesign;import net.sf.jasperreports.engine.util.JRLoader;import net.sf.jasperreports.engine.xml.JRXmlLoader;import net.sf.jasperreports.view.JasperViewer;

/** * * @author Eric */public class frm_laporan extends javax.swing.JFrame {private Date tgl; public frm_laporan() { initComponents(); jPanel1.setVisible(false); jPanel2.setVisible(false); } private void cmd_keluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: frm_menu a = new frm_menu(); a.setVisible(true); this.dispose(); }

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Object[] row = {"No","Id","Tanggal Bayar","Nis","Nama","Kelas","Bulan Bayar","Tahun","Jumlah Bayar","Status"};tabMode = new javax.swing.table.DefaultTableModel(null, row);tabel.setBorder(null);tabel.setModel(tabMode); koneksi kon=new koneksi();kon.konek(); int a=1;try { String sql = "select tbl_pembayaran.id_pembayaran, tbl_pembayaran.tgl_bayar, tbl_siswa.nis, tbl_siswa.nama," + "tbl_siswa.kelas, tbl_pembayaran.bulan_bayar, " + "tbl_pembayaran.tahun, tbl_pembayaran.jml_bayar, tbl_pembayaran.status " + "FROM tbl_pembayaran, tbl_siswa " + "WHERE tbl_pembayaran.nis = tbl_siswa.nis " + "AND tbl_pembayaran.bulan_bayar = '"+ cb_bln.getSelectedItem() +"' " + "AND tbl_pembayaran.tahun = '"+ txt_thn.getText() +"'"; ResultSet res = kon.getData(sql);while (res.next()) {String b = String.valueOf(a); String id = res.getString("id_pembayaran"); String tglbyr = res.getString("tgl_bayar"); String nis = res.getString("nis"); String nama = res.getString("nama"); String kls = res.getString("kelas"); String bln = res.getString("bulan_bayar"); String thn = res.getString("tahun"); String jml = res.getString("jml_bayar"); String st = res.getString("status"); String[] data = {b,id,tglbyr,nis,nama,kls,bln,thn,jml,st};tabMode.addRow(data); a++;}} catch (Exception ex) {}jScrollPane1.getViewport().add(tabel); }

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try{String nmFile = "C://Program Files//SPP//rptbln.jrxml";String driver = "com.mysql.jdbc.Driver";String con = "jdbc:mysql://localhost/db_spp";String user = "root";String password = "";

HashMap hash = new HashMap();hash.put("bulan_bayar", cb_bln.getSelectedItem());hash.put("tahun", txt_thn.getText());Class.forName(driver);java.sql.Connection koneksi = DriverManager.getConnection(con, user, password);File file = new File(nmFile);JasperReport jasperreport = JasperCompileManager.compileReport(nmFile);JasperPrint jasperPrint = JasperFillManager.fillReport(jasperreport,hash,koneksi);JasperViewer.viewReport(jasperPrint,false);}catch(Exception ex){ JOptionPane.showMessageDialog(null, ex);} }

private void cmd_bulanActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: jPanel1.setVisible(true); jPanel2.setVisible(false); tabel.removeAll(); } private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Object[] row = {"No","Id","Tanggal Bayar","Nis","Nama","Kelas","Bulan Bayar","Tahun","Jumlah Bayar","Status"};tabMode = new javax.swing.table.DefaultTableModel(null, row);tabel.setBorder(null);tabel.setModel(tabMode); koneksi kon=new koneksi();kon.konek(); int a=1;try { String sql = "select tbl_pembayaran.id_pembayaran, tbl_pembayaran.tgl_bayar, " + "tbl_siswa.nis, tbl_siswa.nama, " + "tbl_siswa.kelas, tbl_pembayaran.bulan_bayar, " + "tbl_pembayaran.tahun, tbl_pembayaran.jml_bayar, " + "tbl_pembayaran.status FROM tbl_pembayaran, tbl_siswa WHERE tbl_pembayaran.nis = tbl_siswa.nis AND tbl_pembayaran.tahun = '"+ txt_thn.getText() +"'"; ResultSet res = kon.getData(sql);while (res.next()) { String b = String.valueOf(a); String id = res.getString("id_pembayaran"); String tglbyr = res.getString("tgl_bayar"); String nis = res.getString("nis"); String nama = res.getString("nama"); String kls = res.getString("kelas"); String bln = res.getString("bulan_bayar"); String thn = res.getString("tahun"); String jml = res.getString("jml_bayar"); String st = res.getString("status"); String[] data = {b,id,tglbyr,nis,nama,kls,bln,thn,jml,st};tabMode.addRow(data); a++;}} catch (Exception ex) {}jScrollPane1.getViewport().add(tabel); } private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void cmd_tahunActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: jPanel2.setVisible(true); jPanel1.setVisible(false); tabel.removeAll(); } public static void main(String args[]) { try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {java.util.logging.Logger.getLogger(frm_laporan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } java.awt.EventQueue.invokeLater(new Runnable() {

@Override public void run() { new frm_laporan().setVisible(true); } }); }

(HALAMAN INI SENGAJA DIKOSONGKAN)

DOKUMENTASI

Buku Pembayaran SPP

Gambar 24. Buku Laporan SPP

Kartu Pembayaran SPP

Gambar 25. Kartu SPP

Gambar 26. Dokumentasi dan Implementasi 1

Gambar 27. Dokumentasi dan Implementasi 2