sinkronisasi database pada sistem informasi sekolah … · 2018. 11. 21. · sistem informasi...
TRANSCRIPT
SINKRONISASI DATABASE PADA SISTEM INFORMASI SEKOLAH MENGGUNAKAN PHP DAN MYSQL
SKRIPSI
Ditujukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
Disusun Oleh:
Paulus Yansen Soriton
NIM : 03 5314 019
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS SANATA DHARMA
YOGYAKARTA 2007
i
DATABASE SYNCHRONIZATION OF SCHOOL INFORMATION SYSTEM
USING PHP AND MYSQL
A Thesis
Presented as Partial Fulfillment of the Requirements
to Obtain the Sarjana Teknik Degree
in Department of Informatics Technology
Created by:
Paulus Yansen Soriton
NIM : 03 5314 019
DEPARTMENT OF INFORMATICS TECHNOLOGY
FACULTY OF ENGINEERING SANATA DHARMA UNIVERSITY
YOGYAKARTA 2007
ii
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini
tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan
dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, September 2007
Penulis
Paulus Yansen Soriton
v
HALAMAN PERSEMBAHAN
Karya ini kupersembahkan untuk :
Tuhan Yesus-ku yang memberikan orang tua, keluarga dan teman-teman yang
terbaik di dalam hidup-ku.
vi
HALAMAN MOTTO
Belajar bukan untuk nilai, tetapi untuk hidup.
Pengalaman adalah guru yang keras
karena memberikan ujian dulu, baru kemudian pelajarannya.
Pratice makes perfect.
vii
ABSTRAKSI
Sistem informasi sekolah digunakan untuk mengelolah data baik data
siswa, guru, fasilitas, pegawai, dan lain-lain. Data tersebut disimpan di database
sekolah yang kemudian akan dikirim ke kabupaten untuk diproses oleh
pemerintah daerah. Database sekolah dengan kabupaten dalam kasus ini tidak
terhubung satu dengan yang lain, sedangkan data di setiap sekolah harus sama
dengan data di kabupaten.
Pada tugas akhir ini dibuat suatu sistem untuk menangani sinkronisasi data
pada sistem informasi pendidikan agar data yang ada di sekolah dapat sinkron
dengan data yang ada di kabupaten.
Teknologi pada kasus ini menggunakan PHP 5 dan MySQL 5. Untuk
proses sinkronisasi-nya menggunakan triggers dan stored procedures.
viii
ABSTRACT
School information system is used for processing data, such as data of
students, teachers, facilities, staffs, etc. This data is saved in school's database that
will be sent to regency to be processed by district government. School's database
and regency's database, in this case, are not connected one to the others, but each
school must be the same with data in regency.
This final assignment is made a system for holding synchronization of data
in education information system in order that data of school can synchronize with
data in regency.
In this case, the technology uses PHP 5 and MYSQL 5. For
synchronization process, it uses triggers and stored procedures.
ix
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Kuasa
yang telah melimpahkan berkat-Nya sehingga penulis dapat menyelesaikan
Laporan Tugas Akhir ini. Penulisan tugas akhir ini ditujukan untuk memenuhi
salah satu syarat memperoleh gelar Sarjana Teknik Jurusan Teknik Informatika.
Pada kesempatan ini, penulis ingin mengucapkan terima kasih kepada
pihak-pihak yang telah membantu penulis dalam menyelesaikan skripsi ini, baik
dalam hal bimbingan, perhatian, kasih sayang, semangat, kritik, dan saran yang
telah diberikan. Ucapan terima kasih ini penulis sampaikan antara lain kepada :
1. Ir. Gregorius Heliarko, S.J., S.S., B.S.T., M.A., M.Sc, selaku Dekan Fakultas
Teknik Universitas Sanata Dharma Yogyakarta.
2. Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik Informatika
Universitas Sanata Dharma.
3. JB. Budi Darmawan, S.T., M.Sc., selaku Dosen Pembimbing I dan H. Agung
Hernawan, S.T, selaku Dosen Pembimbing II.
4. Seluruh staff dan dosen pengajar di Universitas Sanata Dharma pada
umumnya dan Jurusan Teknik Informatika pada khususnya.
5. Keluarga tercinta, atas doa, kasih sayang, dan semangat yang tiada akhir
sehingga penulis dapat menyelesaikan tugas akhir ini.
6. Abé dan Onezzt., rekan satu team yang telah bekerja sama dengan penulis
dalam penyelesaian tugas akhir ini.
x
7. Teman-teman dekat yang selama kuliah selalu memberi semangat kepada
penulis, yakni Abé, Jun, Danang, Onezzt, Ako, Pakdhe, Agus, Ina, Ticka,
Hendro, Ruth, Fendy, Acied, Sarah, Eko, Dian, Ratih, Marcell, Heni, Rachel,
Dea, Ari, Devi.
8. Teman-teman Jurusan Teknik Informatika Angkatan 2003 yang telah berjuang
bersama penulis sewaktu kuliah, Albert CP (Abé), Jun (Odol), Bergas, Eko
(Klaten), Hendrik (Ciblék), Ellen, Jeje, Dion, Adwi, Danang, Heni, Angga
(TooCool), Marcell, Irvan, Hendro (Ndrew), Dian, Isti, Nug, Acied, Kristina,
Ruth (Uthe), Onezzt, Sarah, Ina, Ratih, Gina (Preman), Dea, Agus (Gepenk),
Devi, Anis, Evi (Ephot), Dani, Wikan (Erross), Linda, Rissa, Santhoz, Amin,
Ari, Albert K (Pakdhe), Winda, Fendy, Seno, Chandra, Hana, David, Ticka,
Mery, Monic, Yeyen, Ako, Nur, Rubin, Esther, Oscar, Ria, dan Rachel, serta
teman-teman Jurusan Teknik Informatika lainnya.
9. Pak Belle, Mas Danang, dan Pak Dhar, yang senang hati memberikan ijin
kepada penulis untuk menggunakan Lab.
10. Teman-teman kost “Barokah”, Danang, Iwan, Willy, Mas Agus (Ochay).
11. Seluruh pihak yang telah membantu penulis baik secara langsung ataupun
tidak langsung, yang tidak dapat penulis sebutkan satu-persatu.
Penulis menyadari bahwa masih banyak kekurangan yang terdapat pada
laporan ini. Saran dan kritik selalu penulis harapkan dari pembaca untuk
perbaikan-perbaikan di masa yang akan datang.
xi
Akhir kata, penulis berharap tulisan ini dapat bermanfaat bagi kemajuan
dan perkembangan ilmu pengetahuan dan berbagai pihak pengguna pada
umumnya.
Yogyakarta, September 2007
Penulis
xii
DAFTAR ISI
Halaman
HALAMAN JUDUL................................................................................................ i
HALAMAN JUDUL............................................................................................... ii
HALAMAN PERSETUJUAN............................................................................... iii
HALAMAN PENGESAHAN................................................................................ iv
PERNYATAAN KEASLIAN KARYA ................................................................. v
HALAMAN PERSEMBAHAN ............................................................................ vi
HALAMAN MOTTO ........................................................................................... vii
ABSTRAK ...........................................................................................................viii
ABSTRACT........................................................................................................... ix
KATA PENGANTAR ............................................................................................ x
DAFTAR ISI........................................................................................................xiii
DAFTAR TABEL............................................................................................... xvii
DAFTAR GAMBAR ........................................................................................... xxi
BAB I PENDAHULUAN....................................................................................... 1
1.1 Latar Belakang Masalah........................................................................ 1
1.2 Rumusan Masalah ................................................................................. 2
1.3 Batasan Masalah ................................................................................... 2
1.4 Tujuan Penelitian .................................................................................. 2
1.5 Manfaat Penelitian ................................................................................ 3
1.6 Metodologi Penelitian ........................................................................... 3
1.7 Sistematika Penulisan ........................................................................... 4
xiii
BAB II LANDASAN TEORI ................................................................................. 6
2.1 Sistem Informasi ................................................................................... 6
2.2 Sinkronisasi Database........................................................................... 6
2.3 Database ............................................................................................... 6
2.4 MySQL.................................................................................................. 7
2.4.1 Query Language..................................................................... 7
2.4.2 Stored Procedures .................................................................. 9
2.4.3 Triggers .................................................................................. 9
2.4.4 MySQL Tools....................................................................... 10
2.5 Bagan Alir Sistem (System Flowchart)............................................... 11
2.6 Use Case Diagram .............................................................................. 13
2.7 Entity Relationship Diagram (ER Diagram) ...................................... 14
2.8 Data Flow Diagram (DFD) ................................................................ 16
2.9 HTML (Hyper Text Markup Language) ............................................. 18
2.10 PHP (Personal Home Page) ............................................................. 19
2.11 Pendidikan di Kabupaten Kutai Barat............................................... 20
BAB III ANALISA DAN PERANCANGAN SISTEM....................................... 22
3.1 Analisis Sistem.................................................................................... 22
3.1.1 Gambaran Umum Sistem yang Lama .................................. 22
3.1.2 Orang yang Terlibat dalam Sistem....................................... 22
3.1.3 Gambaran Umum Sistem yang Baru ................................... 23
3.1.4 Requirement Analysis........................................................... 24
3.1.5 Logical Design ..................................................................... 26
xiv
3.1.5.1 Process Modeling.............................................................. 26
3.1.5.2 Data Modeling (ER-Diagram) .......................................... 53
3.2 Perancangan Sistem ............................................................................ 64
3.2.1 Desain Database ................................................................... 64
3.2.2 Relasi Antar Tabel ............................................................... 84
3.2.3 Bagan Alir Sistem (System Flowchart)................................ 95
3.2.4 Perancangan Teknologi Sinkronisasi ................................. 101
3.2.5 Desain User Interface ........................................................ 105
BAB IV IMPLEMENTASI SISTEM ................................................................. 107
4.1 Tampilan Sekolah.............................................................................. 109
4.1.1 Form Login ........................................................................ 109
4.1.2 Form Sinkronisasi Keluar ................................................. 110
4.1.3 Form Sinkronisasi Kedalam............................................... 115
4.1.4 Form Sinkronisasi Awal..................................................... 120
4.2 Tampilan Kabupaten ......................................................................... 123
4.2.1 Form Login ........................................................................ 123
4.2.2 Form Sinkronisasi Kedalam............................................... 124
4.2.3 Form Sinkronisasi Keluar .................................................. 129
4.2.4 Form Sinkronisasi Awal..................................................... 135
BAB V ANALISA HASIL IMPLEMENTASI .................................................. 139
5.1 Analisa Teknologi ............................................................................. 139
5.2 Analisa Hasil Perangkat Lunak......................................................... 140
5.3 Kelebihan dan Kekurangan............................................................... 141
xv
BAB VI PENUTUP ............................................................................................ 142
6.1 Kesimpulan ....................................................................................... 142
6.2 Saran.................................................................................................. 142
DAFTAR PUSTAKA ......................................................................................... 143
xvi
DAFTAR TABEL
Halaman
Tabel 2.1 Bagan Alir Sistem ................................................................................. 12
Tabel 2.2 Cardinality Notations............................................................................ 16
Tabel 3.1 Tabel Input Output Proses Modeling.................................................... 26
Tabel 3.2 Tabel TK ............................................................................................... 64
Table 3.3 Tabel BUKU_SD .................................................................................. 65
Tabel 3.4 Tabel SD ............................................................................................... 65
Tabel 3.5 Tabel SMP ............................................................................................ 66
Tabel 3.6 Tabel SMP_NEGERI............................................................................ 67
Tabel 3.7 Tabel SMP_SWASTA .......................................................................... 67
Tabel 3.8 Tabel SMA............................................................................................ 67
Tabel 3.9 Tabel SMA_NEGERI ........................................................................... 68
Tabel 3.10 Tabel SMA_SWASTA ....................................................................... 68
Tabel 3.11 Tabel SMK_NEGERI ......................................................................... 69
Tabel 3.12 Tabel SMK_SWASTA ....................................................................... 69
Tabel 3.13 Tabel RUANG .................................................................................... 69
Tabel 3.14 Tabel TANAH..................................................................................... 70
Tabel 3.15 Tabel LABORATORIUM .................................................................. 70
Tabel 3.16 Tabel ALAT_PENDIDIKAN ............................................................. 70
Tabel 3.17 Tabel BUKU ....................................................................................... 70
Tabel 3.18 Tabel PERLENGKAPAN................................................................... 70
Tabel 3.19 Tabel KARYAWAN........................................................................... 71
xvii
Tabel 3.20 Tabel GURU ....................................................................................... 71
Tabel 3.21 Tabel GEDUNG.................................................................................. 72
Tabel 3.22 Tabel TK_HAS_GEDUNG ................................................................ 72
Tabel 3.23 Tabel SD_HAS_GEDUNG................................................................. 72
Tabel 3.24 Tabel SMP_HAS_GEDUNG.............................................................. 72
Tabel 3.25 Tabel SMA_HAS_GEDUNG............................................................. 72
Tabel 3.26 Tabel TK_HAS_GEDUNG_HAS_RUANG ...................................... 73
Tabel 3.27 Tabel SD_HAS_GEDUNG_HAS_RUANG ...................................... 73
Tabel 3.28 Tabel SMP_HAS_GEDUNG_HAS_RUANG ................................... 73
Tabel 3.29 Tabel SMA_HAS_GEDUNG_HAS_RUANG................................... 73
Tabel 3.30 Tabel SD_HAS_BUKU ...................................................................... 74
Tabel 3.31 Tabel SMP_HAS_BUKU ................................................................... 74
Tabel 3.32 Tabel SMA_HAS_BUKU................................................................... 74
Tabel 3.33 Tabel TK_HAS_PERLENGKAPAN ................................................. 75
Tabel 3.34 Tabel SD_HAS_PERLENGKAPAN.................................................. 75
Tabel 3.35 Tabel SMP_HAS_PERLENGKAPAN............................................... 75
Tabel 3.36 Tabel SMA_HAS_PERLENGKAPAN .............................................. 75
Tabel 3.37 Tabel SD_HAS_ALAT_PENDIDIKAN ............................................ 75
Tabel 3.38 Tabel SMP_HAS_ALAT_PENDIDIKAN ......................................... 76
Tabel 3.39 Tabel SMA_HAS_ALAT_PENDIDIKAN......................................... 76
Tabel 3.40 Tabel SMP_HAS_LABORATORIUM .............................................. 76
Tabel 3.41 Tabel SMA_HAS_LABORATORIUM.............................................. 76
Tabel 3.42 Tabel SD_HAS_BUKU_SD............................................................... 76
xviii
Tabel 3.43 Tabel RIWAYAT_BEKERJA_TK..................................................... 77
Tabel 3.44 Tabel RIWAYAT_BEKERJA_SD..................................................... 77
Tabel 3.45 Tabel RIWAYAT_BEKERJA_SMP .................................................. 77
Tabel 3.46 Tabel RIWAYAT_BEKERJA_SMA ................................................. 77
Tabel 3.47 Tabel RIWAYAT_MENGAJAR_TK................................................. 78
Tabel 3.48 Tabel RIWAYAT_MENGAJAR_SD................................................. 78
Tabel 3.49 Tabel RIWAYAT_MENGAJAR_SMP.............................................. 78
Tabel 3.50 Tabel RIWAYAT_MENGAJAR_SMA ............................................. 79
Tabel 3.51 Tabel USER_KABUPATEN .............................................................. 79
Tabel 3.52 Tabel SISWA ...................................................................................... 79
Tabel 3.53 Tabel NILAI........................................................................................ 80
Tabel 3.54 Tabel UAN.......................................................................................... 80
Tabel 3.55 Tabel KELAS...................................................................................... 80
Tabel 3.56 Tabel TINGKAT................................................................................. 80
Tabel 3.57 Tabel PARALEL................................................................................. 80
Tabel 3.58 Tabel PERTEMUAN .......................................................................... 81
Tabel 3.59 Tabel STATUS_MASUK................................................................... 81
Tabel 3.60 Tabel STATUS_NAIK ....................................................................... 81
Tabel 3.61 Tabel STATUS_KELUAR ................................................................. 81
Tabel 3.62 Tabel STATUS_LULUS..................................................................... 82
Tabel 3.63 Tabel PENJURUSAN......................................................................... 82
Tabel 3.64 Tabel RIWAYAT_TK ........................................................................ 82
Tabel 3.65 Tabel RIWAYAT_SD......................................................................... 82
xix
Tabel 3.66 Tabel RIWAYAT_SMP...................................................................... 83
Tabel 4.67 Tabel RIWAYAT_SMA..................................................................... 83
Tabel 3.68 Tabel TINGKAT_SEKOLAH ............................................................ 83
Tabel 3.69 Kondisi Flag...................................................................................... 101
Tabel 3.70 Penambahan Kolom di Database Sinkronisasi.................................. 103
Tabel 3.71 Daftar Database Sinkronisasi yang Diperlukan Proses Sekolah....... 104
Tabel 3.72 Daftar Database Sinkronisasi yang Diperlukan Proses Kabupaten .. 104
Tabel 5.1 Tabel Pengamatan Sinkronisasi Kedalam Kabupaten ........................ 140
xx
DAFTAR GAMBAR
Halaman
Gambar 2.1 Simbol Use case ................................................................................ 13
Gambar 2.2 Simbol Actor ..................................................................................... 13
Gambar 2.3 Simbol use case association relationship ......................................... 14
Gambar 2.4 Simbol Entity..................................................................................... 14
Gambar 2.5 Simbol Relations ............................................................................... 15
Gambar 2.6 Simbol Proses.................................................................................... 16
Gambar 2.7 Simbol External Agent ...................................................................... 17
Gambar 2.8 Simbol Data Flow ............................................................................. 17
Gambar 2.9 Simbol Data Store ............................................................................. 17
Gambar 3.1 Skema Sistem Informasi Sekolah...................................................... 24
Gambar 3.2 Use Case Diagram Untuk Proses Sekolah ........................................ 25
Gambar 3.3 Use Case Diagram Untuk Proses Kabupaten.................................... 25
Gambar 3.4 Context Diagram ............................................................................... 26
Gambar 3.5 Bagan Berjenjang .............................................................................. 27
Gambar 3.6 DFD Level 0 – proses sekolah .......................................................... 28
Gambar 3.7 DFD Level 0 – proses kabupaten ...................................................... 28
Gambar 3.8 ER Diagram....................................................................................... 53
Gambar 3.9 Relasi Antar Tabel............................................................................. 84
Gambar 3.10 Bagan Alir Sistem Sinkronisasi Keluar Sekolah............................. 95
Gambar 3.11 Bagan Alir Sistem Sinkronisasi Data Awal Kedalam Sekolah ....... 96
Gambar 3.12 Bagan Alir Sistem Sinkronisasi Kedalam Sekolah ......................... 97
xxi
Gambar 3.13 Bagan Alir Sistem Sinkronisasi Data Awal Keluar Kabupaten ...... 98
Gambar 3.14 Bagan Alir Sistem Sinkronisasi Keluar Kabupaten ........................ 99
Gambar 3.15 Bagan Alir Sistem Sinkronisasi Kedalam Kabupaten................... 100
Gambar 3.16 Aristektur Desain Sinkronisasi...................................................... 102
Gambar 3.17 Sinkronisasi Keluar Sekolah ......................................................... 105
Gambar 3.18 Sinkronisasi Kedalam Sekolah...................................................... 105
Gambar 3.19 Sinkronisasi Awal Sekolah ........................................................... 105
Gambar 3.20 Sinkronisasi Kedalam Kabupaten ................................................. 106
Gambar 3.21 Sinkronisasi Keluar Kabupaten..................................................... 106
Gambar 3.22 Sinkronisasi Awal Sekolah Kabupaten ......................................... 106
Gambar 4.1 Halaman Login Sekolah.................................................................. 109
Gambar 4.2 Listing Login Super Admin SMP.................................................... 110
Gambar 4.3 Halaman Sinkronisasi Keluar Sekolah............................................ 110
Gambar 4.4 Listing Untuk Tabel Sinkronisasi Keluar Sekolah .......................... 111
Gambar 4.5 Listing Untuk Menjalankan mysqldump......................................... 111
Gambar 4.6 Listing Koneksi Database................................................................ 112
Gambar 4.7 Listing Untuk Setting Sinkronisasi Sekolah.................................... 113
Gambar 4.8 Listing Trigger Tabel Guru di Database SMP................................. 114
Gambar 4.9 Halaman Sinkronisasi Kedalam Sekolah ........................................ 115
Gambar 4.10 Listing Upload Sinkronisasi Masuk Sekolah ................................ 115
Gambar 4.11 Listing Proses Upload Sinkronisasi Masuk Sekolah..................... 116
Gambar 4.12 Listing panggil Stored Procedures-Sinkronisasi Masuk Sekolah . 117
Gambar 4.13 Listing Stored Procedures Untuk Mensikronkan Tabel Guru ...... 119
xxii
Gambar 4.14 Halaman Sinkronisasi Awal Sekolah ............................................ 120
Gambar 4.15 Listing Untuk Upload Pada Sinkronisasi Awal Sekolah............... 120
Gambar 4.16 Stored Procedures Sinkronisasi Awal SMP Pada Proses Sekolah 122
Gambar 4.17 Halaman Sinkronisasi Kedalam Kabupaten.................................. 123
Gambar 4.18 Listing Login Pegawai Kabupaten ................................................ 123
Gambar 4.19 Halaman Sinkronisasi Kedalam Kabupaten.................................. 124
Gambar 4.20 Listing Untuk Upload pada Sinkronisasi Kedalam Kabupaten..... 124
Gambar 4.21 Listing Untuk Setting Sinkronisasi................................................ 125
Gambar 4.22 Listing Untuk Memanggil Stored Procedures .............................. 127
Gambar 4.23 Listing Stored Procedures Tabel Guru.......................................... 127
Gambar 4.24 Halaman Sinkronisasi Keluar Kabupaten ..................................... 129
Gambar 4.25 Listing Untuk Menampilkan Sekolah............................................ 130
Gambar 4.26 Halaman Sinkronisasi Keluar Kabupaten Lanjutan ...................... 130
Gambar 4.27 Listing Untuk Tabel Sinkronisasi Keluar Kabupaten.................... 131
Gambar 4.28 Listing Untuk Pemanggilan Stored Procedures ............................ 133
Gambar 4.29 Listing Stored Procedures Untuk Menghapus Tebel Guru........... 134
Gambar 4.30 Halaman Sinkronisasi Awal Kabupaten........................................ 135
Gambar 4.31 Listing Untuk Menampilkan Sekolah............................................ 135
Gambar 4.32 Listing Untuk memanggil Stored Procedures................................ 136
Gambar 4.33 Listing Stored Procedures untuk Sinkronisasi Awal Kabupaten .. 136
xxiii
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Informasi akademik merupakan salah satu informasi yang penting bagi
pemerintah daerah untuk mengetahui sejauh mana tingkat atau taraf
perkembangan pendidikan di daerahnya. Informasi akademik dapat meliputi
informasi-informasi tentang siswa, kepegawaian, sekolah dan inventory (fasilitas)
sekolah yang mendukung proses belajar mengajar.
Pada kenyataannya, untuk mendapatkan informasi-informasi tersebut,
pihak pemerintah daerah harus mengambil data-data yang diperlukan di setiap
sekolah. Sedangkan jarak antara kabupaten dengan sekolah tertentu bisa sangat
jauh, dan untuk pergi ke sekolah tersebut membutuhkan waktu yang cukup lama
serta biaya yang dikeluarkan tidaklah sedikit.
Penanganan masalah di atas dapat diatasi dengan mengimplementasikan
sistem informasi sekolah untuk menangani data-data kepegawaian, fasilitas dan
kesiswaan di sekolah dan pengumpulan data secara keseluruhan di kabupaten.
Permasalahan berikutnya muncul setelah dalam penerapan sistem
informasi sekolah, sekolah yang terletak di daerah terpencil, koneksi ke jaringan
internet tidak ada.
Berdasarkan kenyataan tersebut, penulis tertarik membuat sebuah solusi
untuk memecahkan permasalahan sinkronisasi data pada sistem informasi sekolah.
1
2
1.2 Rumusan Masalah
Rumusan masalah dari latar belakang diatas adalah bagaimana cara
mensinkronisasikan data pada database sekolah dengan data pada database
kabupaten, menggunakan teknologi yang sesuai dengan kondisi tidak terhubung
dengan jaringan (offline).
1.3 Batasan Masalah
Mengingat bahwa ruang lingkup sistem informasi sekolah yang sangat
luas dan kompleks serta keterbatasan waktu dan tenaga yang dimiliki oleh
peneliti, maka pembahasan permasalahan di atas dibatasi menjadi:
1. Sistem informasi sekolah diasumsikan sudah tersedia.
2. Sistem ini tidak membahas mengenai keamanan sistem terutama pada
enkripsi file sinkronisasi.
3. Sistem ini hanya membahas sinkronisasi yang tidak terhubung dengan
jaringan.
1.4 Tujuan Penelitian
Tujuan dari penelitian ini adalah :
Melengkapi sistem informasi sekolah untuk menangani permasalahan
sinkronisasi data offline menggunakan teknologi PHP dan MySQL 5 beserta
disain antar mukanya.
3
1.5 Manfaat Penelitian
Manfaat dari penelitian ini adalah:
1. Bagi pihak pengguna sistem informasi sekolah mudah untuk melakukan
proses sinkronisasi data dari database sekolah ke kabupaten begitupun
sebaliknya.
2. Bagi pihak pengembang sistem informasi sekolah dapat menerapkan
sistem ini untuk sinkronisasi data dalam kondisi offline.
1.6 Metodologi Penelitian
1. Studi Literatur
Mempelajari teknik pemrograman dan teknologi yang dipakai yaitu
PHP sebagai bahasa pemrograman dan MySQL sebagai databasenya.
2. Tahap-tahap Rekayasa Perangkat Lunak secara terstruktur
(Whitten,2001).
a. Menganalisa masalah dan kebutuhan sistem dengan
menggunakan tools Use Case Diagram dan Data Flow
Diagram.
b. Merancang sistem, database, desain antar muka dan
teknologi sinkronisasi data menggunakan tools Entity
Relationship Diagram dan System Flowchart.
4
c. Melakukan implementasi sistem ke dalam bahasa
pemrograman.
d. Menguji dan mengevaluasi program apakah sudah dapat
berjalan dengan baik.
1.7 Sistematika Penulisan
Sistematika penulisan laporan tugas akhir ini adalah sebagai berikut:
BAB I PENDAHULUAN
Bab ini sebagai pegantar sebelum memasuki isi tulisan yang
sesungguhnya, meliputi latar belakang masalah yang diteliti,
batasan masalah, tujuan dan manfaat dari penelitian ini, dan
metodologi yang digunakan oleh peneliti.
BAB II LANDASAN TEORI
Bab ini berbicara mengenai teori-teori yang berhubungan dan
digunakan dalam penelitian masalah ini.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi analisis sistem yang dibutuhkan dalam penelitian ini.
Berdasarkan hasil analisis sistem tersebut, akan dirancang sistem
untuk menyelesaikan masalah dalam penelitian ini.
5
BAB IV IMPLEMENTASI
Bab ini berisi tentang kegiatan peneliti mengimplementasikan
rancangan sistem yang sudah ada.
BAB V ANALISA HASIL
Bab ini berisi tentang analisis hasil penelitian yang dapat diambil
peneliti selama penelitian ini.
BAB VI PENUTUP
Pada bab ini berisi tentang kesimpulan dan saran.
BAB II
LANDASAN TEORI
2.1 Sistem Informasi
“An information system(IS) is an arrangement of people, data, processes,
information presentation, and information technology that interact to support and
improve day-to-day operations in a business as well as support the problem
solving and decision making needs of management and users” (Whitten,2001).
2.2 Sinkronisasi Database
Sinkronisasi database adalah proses yang melibatkan dua atau lebih
database yang dilakukan untuk menjaga agar pertukaran informasi atau data antar
database dapat mencapai suatu fungsi sesuai dengan aturan yang telah ditetapkan.
2.3 Database
Database merupakan sekumpulan data yang saling berhubungan yang
disimpan bersama-sama untuk melayani satu atau lebih aplikasi secara optimal
atau dengan kata lain suatu database merupakan serangkaian file yang secara
logik berhubungan sedemikian rupa hingga jangkauan data diperbaiki dan
berkelebihan dikurangi.
Konsep database dibuat operasional oleh suatu sistem perangkat lunak
yang mengerjakan fungsi penciptaan dan peremajaan file, mencari data dan
6
7
menghasilkan laporan. Semua data dalam rangkaian file dapat dijangkau oleh
program apapun yang bisa menggunakan database.
Database dirancang atas dasar pendekatan aplikatif maupun pendekatan
sistem. Pendekatan aplikatif merupakan cara yang tradisional, dimana database
dirancang hanya untuk memenuhi satu aplikasi tertentu, sehingga terdapat
kemungkinan satu data disiapkan dalam beberapa file berbeda untuk memenuhi
aplikasi - aplikasi yang berbeda.
Sedangkan database yang dirancang dengan pendekatan sistem,
memberikan suatu database yang dapat dipergunakan untuk lebih dari satu
aplikasi, dengan mengurangi terjadinya kerangkapan data.
2.4 MySQL
MySQL merupakan Database Mangement Server (DBMS) yang bersifat
open source, dikembangkan, disebarkan, dan didukung oleh MySQL AB. MySQL
AB adalah sebuah perusahaan komersial, dibangun oleh pengembang MySQL.
Merupakan generasi kedua perusahaan open source yang berhasil mengabungkan
nilai open source dan metodologi dengan model bisnis yang sukses.
2.4.1 Query Language
Query language adalah pernyataan yang diajukan untuk mengambil
informasi. Merupakan bagian Data Manipulation Language (DML) untuk
pengambilan informasi. DML dipakai untuk menampilkan, menambah,
mengubah, dan menghapus data di dalam objek-objek yang didefinisikan oleh
8
Data Definition Language (DDL). Perintah DML adalah SELECT, INSERT,
UPDATE, dan DELETE.
1. SELECT
Dipakai untuk membaca data dari database. Pernyataan SELECT berisi
empat properti utama dari hasilnya yaitu :
• Kolom-kolom yang dimasukkan ke dalam hasil
• Tabel yang akan diambil datanya.
• Kondisi yang harus dipenuhi oleh tabel asal.
• Urutan dalam hasil.
Bentuk umum pernyataan SELECT :
SELECT select_expr
FROM table_reference
[WHERE where_condition]
[GROUP BY col_name]
[HAVING where_condition]
[ORDER BY col_name[ASC|DEC]]
2. INSERT
Dipakai untuk menambah satu atau beberapa data ke dalam tabel.
Bentuk umum pernyataan INSERT :
INSERT INTO tbl_name (column1, column2, [columnN])
VALUES (value1, value2, [valueN])
3. UPDATE
Dipakai untuk mengubah data pada satu baris, beberapa baris, atau semua
baris dalam tabel.
9
Bentuk umum pernyataan UPDATE :
UPDATE tbl_name
SET column1 = value1, column2 = value2, [columnN = valueN]
[WHERE id_column = value]
4. DELETE
Dipakai untuk menghapus satu atau beberapa baris di dalam tabel.
Bentuk umum pernyataan DELETE :
DELETE FROM tbl_name [WHERE field1 = value1 [AND | OR]
field2 = value2 [AND | OR] fieldN = valueN]
2.4.2 Stored Procedures
Stored procedures adalah tipe program yang disimpan, dan dijalankan oleh
database server. Stored procedure merupakan sebuah unit program yang
dijalankan oleh suatu permintaan (CALL) dan dapat menerima banyak parameter
input dan output.
Bentuk umum stored procedures :
CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body
2.4.3 Triggers
Triggers adalah program yang disimpan di database server yang aktif saat
dipicu oleh sebuah aktivitas dari database. Khususnya, trigger akan meminta
respon pada saat operasi DML (INSERT, UPDATE, DELETE) dari suatu tabel.
Triggers dapat digunakan untuk validasi data atau untuk otmatisasi dari
denormalization.
10
Bentuk umum triggers :
CREATE TRIGGER trigger_name trigger_time trigger_event
ON table_name FOR EACH ROW trigger_stmt
2.4.4 MySQL Tools
Di dalam MySQL Server terdapat beberapa tools pendukung antara lain:
1. mysql (client)
Tools mysql client merupakan shell SQL yang multiguna, dapat mengatur
hampir semua aspek dari MySQL server, termasuk membuat, memodifikasi, dan
menghapus tabel dan database, mengatur privileges akses user, melihat dan
memodifikasi konfigurasi server, dan men-query tabel data. Bentuk umumnya
sebagai berikut:
mysql [options] [database_name] [non-interactive_arguments]
2. mysqladmin (administrator)
Tools mysqladmin diunakan untuk membuat dan menghapus database,
memonitor status dari server, dan mematikan MySQL server daemon. Seperti
mysql, untuk menggunakan tools ini membutuhkan hak akses. Bentuk umumnya
sebagai berikut:
mysqladmin [options] [database_name]
• create database_name: membuat sebuah database baru. Setiap database
harus mempunyai nama yang unik. Apabila dalam pembuatan database
menggunakan nama yang sudah terpakai maka akan menghasilkan error.
11
• drop database_name: menghapus database yang sudah ada. Sebelum
database benar-benar terhapus akan muncul konfirmasi untuk mencegah
kesalahan hapus.
• extended-status: menyediakan informasi tambahan mengenai status server.
Ini sama dengan perintah show status dari mysql client.
3. mysqldump (backup/export)
Tools mysqldump digunakan untuk mengeluarkan data atau backup tabel,
struktur tabel, atau keduanya dari server MySQL biasanya dalam format file .sql.
Jika diminta, kumpulan data dapat dimasukan dalam statement SQL biasanya
menggunakan statement insert agar informasi dapat diakses kembali. Selanjutnya,
dapat memilih satu, banyak, atau semua database yang ditemukan pada server,
atau hanya tabel tertentu yang akan dijadikan backup. Syntax yang digunakan
umumnya sebagai berikut:
mysqldump [options] [database_name [tables]]
2.5 Bagan Alir Sistem (System Flowchart)
Bagan alir sistem merupakan bagan yang menunjukan arus pekerjaan
secara keseluruhan dari sistem. Bagan ini menjelaskan urutan-urutan dari
prosedur-prosedur yang ada dalam sistem. Bagan alir sistem digambarkan dengan
menggunakan simbol yang ditunjukan pada tabel berikut ini:
12
Nama Simbol Simbol Keterangan Dokumen Menunjukan dokumen
input dan output baik untuk proses manual, mekanik atau komputer.
Kegiatan Manual
Menunjukan pekerjaan manual.
Input / Output
Digunakan untuk mewakili data input / output.
Input Manual
Menunjukan input yang dimasukan sendiri atau manual.
Operasi Luar
Menunjukan operasi yang dilakukan di luar proses operasi komputer.
Tampilan
Menunjukan output berupa tampilan.
Garis Alir
Menunjukan arus dari proses.
Penghubung
Menunjukan penghubung ke halaman yang masih sama atau halaman lain.
Keputusan
Digunakan untuk menyeleksi suatu kondisi dalam program.
Proses Terdefinisi
Menunjukan suatu operasi yang rinciannya ditunjukan di tempat lain.
Titik Terminal
Menunjukan awal dan akhir suatu proses.
Tabel 2.1 Bagan Alir Sistem
13
2.6 Use Case Diagram
“Use case modeling is the process of modeling system’s functions in term
of business events, who intiated the events, and how the system responds to the
events” (Whitten, 2001).
Use case diagram adalah sebuah diagram yang menggambarkan interaksi
antara sistem dan eksternal sistem dan user.
Simbol dasar use case diagram antara lain :
1. Use case
“A use case is a behaviorally related sequence of steps (a scenario) both
automated and manual, for the purpose of completing a single business task”
(Whitten, 2001).
Use case merupakan bagian dari seluruh fungsi sistem.
Use Case
Gambar 2.1 Simbol Use case (diambil dari Whitten, 2001)
Actor
2. Actor
“An actor represents anything that needs to interact with the system to
exchange information” (Whitten, 2001).
Gambar 2.2 Simbol Actor (diambil dari Whitten, 2001)
14
Use Case
Actor
3. Use case association relationship
Association adalah relasi antara actor dan sebuah use case, dimana terjadi
interaksi antar mereka.
Gambar 2.3 Simbol use case association relationship
(diambil dari Whitten, 2001)
2.7 Entity-Relationship Diagram (ER-Diagram)
“Data modeling is a technique for organizing and documenting a system’s
data” (Whitten, 2001). Model aktual yang sering digunakan untuk
menggambarkan data modeling adalah entity relationship diagram (ER-Diagram).
Simbol yang sering digunakan dalam ER-Diagram :
1. Entity
“An entity is something about which the business needs to store data”
(Whitten, 2001).
Nama Entity
Gambar 2.4 Simbol Entity (diambil dari Whitten, 2001)
15
2. Relationship
“A relationship is a natural business association that exist between one or
more entities” (Whitten, 2001).
“Cardinality defines the minimum and maximum number of occurrences of
one entity that may be related to a single occurrance of the other entity.
Because all relationship are bi-directional, cardinality must be defined in
both directions for every relationship” (Whitten, 2001).
Gambar 2.5 Simbol Relations (diambil dari Whitten, 2001)
Cardinality
Interpretation
Minimum
Instance
Maximum
Instance
Graphic Notation
Exactly one
(one and only one)
1 1
Zero or one 0 1
One or more 1 many (>1)
ero, one or more 0 many (>1)
Nama_relasi Nama Entity
Nama Entity
16
ore than one >1 >1
Tabel 2.2 Cardinality Notations (diambil dari Whitten, 2001)
2.8 Data Flow Diagram (DFD)
Data Flow Diagram (DFD) digunakan untuk menggambarkan suatu
sistem yang telah ada atau sistem batu yang akan dikembangkan secara logika
tanpa mempertimbangkan lingkungan fisik dimana data tersebut mengalir atau
lingkungan fisik dimana data tersebut akan disimpan. DFD merupakan alat yang
digunakan pada metodologi pengembangan sistem yang terstruktur (Structural
Analysis and Design).
Simbol yang sering digunakan dalam DFD :
1. Proses (Process)
Proses adalah kerja yang dilakukan oleh sistem dalam merespon data flow
yang datang atau suatu kondisi.
Nama Proses
Gambar 2.6 Simbol Proses (diambil dari Whitten, 2001)
17
2. Kesatuan Luar (External Agent)
External Agent adalah orang, unit organisasi, sistem, atau organisasi luar
yang berinteraksi dengan sistem. Disebut juga dengan External Entity.
External Agent
Gambar 2.7 Simbol External Agent (diambil dari Whitten, 2001)
3. Arus Data (Data Flow)
Data Flow adalah data sebagai masukan ke proses atau keluaran dari
sebuah proses. Data Flow adalah data yang bergerak. Data Flow juga
digunakan untuk mewakili creation, reading, deleting, atau updating dari
data dalam file atau database (disebut data store atau penyimpanan data).
Nama Arus Data
Gambar 2.8 Simbol Data Flow (diambil dari Whitten, 2001)
Data Store
4. Penyimpanan Data (Data Store)
Data Store adalah penyimpanan data untuk penggunaan selanjutnya.
Gambar 2.9 Simbol Data Store (diambil dari Whitten, 2001)
18
2.9 HTML (Hypertext Markup Language)
HTML adalah bahasa universal yang dirancang untuk mempublikasikan
halaman web yang memiliki elemen berupa heading, teks, tabel, list, dan
sebagainya.
Penulisan HTML dapat dilakukan dengan melalui editor text seperti
notepad yang dimiliki oleh sistem operasi Windows ataupun editor lain seperti
wordpad, Microsoft Word dan lain-lain. Dengan berkembangnya software, saat ini
web editor HTML dapat memudahkan pemakai dalam menulis halaman web,
contohnya : Microsoft FrontPage, Macromedia Dreamweaver, dan sebagainya.
Selain itu HTML juga dirancang agar halaman web dapat dihubungkan
secara hypertext, yaitu dengan menekan tombol atau link yang ada untuk
menampilkan halaman atau bagian halaman yang lain. HTML juga dapat
memungkinkan kita dalam membuat rancangan dokumen yang dapat
dimanfaatkan untuk mencari informasi.
Struktur dokumen HTML terdiri atas 3 tag utama yaitu tag HTML, HEAD
dan BODY. Setiap dokumen HTML dibuka dengan tag <HTML> dan ditutup
dengan tag </HTML> berfungsi untuk web browser dalam memperlakukan teks
yang diawali dan diakhiri oleh kedua tag ini sebagai dokumen HTML. Dokumen
HTML juga dapat diberi judul, dengan menggunakan tag <TITLE>. Judul HTML
ini akan ditampilkan pada sudut kiri atas jendela browser. Tag <TITLE> harus
berada di dalam tag <HEAD>................</HEAD>. Selanjutnya tag
<BODY>................</BODY> untuk menyatakan isi dari dokumen. Penulisan tag-
19
tag HTML tidak case sensitive artinya dapat ditulis dengan huruf kapital maupun
non kapital.
2.10 PHP (Personal Home Page)
PHP adalah PHP Hypertext Preposesor yang merupakan bahasa berbentuk
skrip yang ditempatkan dalam server dan diproses dalam server. Hasilnya dikirim
ke client, tempat user menggunakan browser. PHP adalah salah satu teknologi
yang biasa digunakan untuk membuat halaman web yang dinamis dan interaktif.
Secara umum, halaman web dapat dibuat secara statis dan dinamis. Web statis
biasanya dibuat dengan menggunakan HTML. Teknologi web dinamis dapat
digolongkan atas 2 golongan besar:
1. client-side technologies
2. server-side technologies
PHP bekerja hampir sama seperti JSP dan ASP. Skrip diawali dengan tag
<?php …… dan diakhiri dengan tag ……?> serta dimasukkan ke halaman HTML.
Skrip ini akan dieksekusi oleh server sebelum halaman tersebut dikirim ke
browser klien, sehingga tidak mungkin ada ketidakcocokan platform mesin
browser klien. Tidak seperti ASP, PHP dapat dijalankan multiplatform. PHP dapat
dijalankan di web server IIS dan Apache, di sistem operasi Windows, UNIX dan
Linux. Faktor yang menguntungkan lainnya adalah PHP bersifat open source.
Tata cara penulisan php:
1. <?php echo(“ PHP Code goes here ”); ?>
2. <? echo(“ PHP Code goes here ”); ?>
20
Keuntungan penggunaan teknologi PHP digabung dengan MySQL dan
Apache adalah sebagai berikut:
1. Cost – Penggunaan ketiga teknologi ini memakan biaya sangat murah.
2. Ease of Use – Mudah untuk dipelajari, karena tidak memerlukan
pengetahuan programming yang kuat.
3. HTML embeddedness – PHP dapat digabungkan dengan HTML.
4. Cross Platform compatibility – Dapat diterapkan di banyak sistem operasi.
5. Stability – Server tidak perlu di reboot.
6. Speed – PHP 5 sangat cepat.
7. Open Source Licensing – Berlisensi open source sehingga dapat melihat
source code-nya dan memodifikasi bila perlu.
8. Many Extensions – PHP mudah dikomunikasikan ke program atau
protokol lain.
9. Fast feature development – Pengembangan fitur PHP sangat cepat.
10. Popularity – Merupakan salah satu bahasa pemrograman web yang
populer saat ini.
11. Not proprietary – Tidak mengambil keuntungan sama sekali.
12. Strong user communities – mempunyai komunitas yang luas dan kuat.
2.11 Pendidikan di Kabupaten Kutai Barat
Kabupaten Kutai Barat merupakan salah satu dari kabupaten yang berada
di Propinsi Kalimantan Timur. Sebagian besar wilayah Kabupaten Kutai Barat
merupakan hutan belantara, rawa-rawa dan semak belukar.
21
Kecamatan pada kabupaten tersebut sudah maju peradaban dan
infrastrukturnya, akan tetapi untuk masalah pendidikan masih belum merata,
dalam artian hanya ada beberapa daerah saja yang tingkat pendidikannya cukup
tinggi, sedangkan daerah yang lain masih tergolong rendah tingkat pendidikannya.
Salah satu penyebabnya adalah masalah transportasi, ada dua jenis transportasi
utama yang ada di kabupaten tersebut yaitu transportasi sungai dan transportasi
darat, biaya untuk tranportasi sungai sangat tinggi. Hal itu menyebabkan
Pemerintah Daerah Kabupaten Kutai Barat dalam pengambilan data ke sekolah di
wilayah yang terpecil mengalami kesulitan, terutama dalam hal biaya dan waktu
tempuh yang lama.
22
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
3.1.1 Gambaran Umum Sistem yang Lama
Pencatatan data sekolah, siswa dan kepegawaian pada sistem yang lama
masih menggunakan metode manual, menggunakan berkas-berkas untuk
pencatatan, penyimpanan dan pemrosesan data.
Kekurangan penggunaan metode manual adalah tidak efisiennya waktu,
biaya, dan tenaga karena berkas-berkas tersebut harus dikirim ke kabupaten.
Ditambah dengan adanya permasalahan jarak antara sekolah dengan kabupaten
yang menyebar sangat jauh yang memakan waktu dan biaya yang tinggi.
3.1.2 Orang yang terlibat dalam sistem
Pihak-pihak yang terlibat dalam sinkronisasi data pada sistem informasi
sekolah:
1. Super Admin Sekolah :
Super admin merupakan default user untuk sistem di setiap sekolah, yang
selain bertugas untuk membuat account untuk admin sekolah, juga bertugas untuk
melakukan proses sinkronisasi di sekolah.
23
2. Pegawai Kabupaten :
Pegawai kabupaten adalah karyawan di tingkat kabupaten yang dapat
berinteraksi dengan sistem. Pegawai kabupaten merupakan pihak yang
bertanggung jawab melakukan sinkronisasi yang ada di Kabupaten.
3.1.3 Gambaran Umum Sistem yang Baru
Sistem yang baru tidak lagi menggunakan metode manual, tetapi
menggunakan komputerisasi yang memanfaatkan sistem informasi sekolah untuk
mengolah data fasilitas, kepegawaian dan kesiswaan serta dapat menangani
permasalahan sinkronisasi data antara database lokal pada sekolah dengan
database pusat pada kabupaten.
Dalam implementasinya, setiap sekolah membutuhkan database server
(MySQL Server) dan web server sendiri (Apache). Data di setiap sekolah akan
disinkronkan ke kabupaten begitupun sebaliknya, data tersebut dibawa ke
kabupaten atau sekolah dalam bentuk file sinkronisasi yang disimpan di media
penyimpanan seperti cd atau melalui email. Untuk melihat skema sistem informasi
sekolah, dapat dilihat pada Gambar 3.1
24
Kabupaten
Sekolah 1
Sekolah 2
Sekolah 3
sinkronisasi sinkronisasi
sinkronisasi
.sql
.sql
.sql
Gambar 3.1 Skema Sistem Informasi Sekolah
3.1.4 Requirement Analysis
Use case diagram merupakan diagram yang menggambarkan interaksi
antara sistem dengan sistem eksternal dan pengguna. Dengan kata lain, secara
grafis menggambarkan siapa yang akan menggunakan sistem dan dengan cara apa
pengguna mengharapkan untuk berinteraksi dengan sistem.
25
Super AdminSekolah
Login
SinkronisasiKeluar
Sekolah
SinkronisasiKedalamSekolah
SinkronisasiAwal Kedalam
Sekolah
Gambar 3.2 Use Case Diagram Untuk Proses Sekolah
Gambar 3.3 Use Case Diagram Untuk Proses Kabupaten
26
3.1.5 Logical Design
Tahap logical design meliputi process modeling dan data modeling.
3.1.5.1 Process Modeling
Proses modeling dapat dimulai dari pembuatan input dan output dari
sistem, seperti pada tabel
ENTITAS INPUT OUTPUT
Super Admin Sekolah data login, kata kunci, data sinkron awal, data sinkron kabupaten
data sinkron sekolah
Pegawai Kabupaten data login, kata kunci, data sinkron sekolah
data sinkron kabupaten, data sinkron awal
Tabel 3.1 Tabel Input Output Proses Modeling
1. Context Diagram
Context diagram berguna untuk menggambarkan secara jelas bagaimana sistem
tersebut bekerja, mulai dari inputan awal sampai outputnya. Context diagram dan
overviewnya dapat dilihat pada Gambar 3.4 sampai Gambar
Gambar 3.4 Context Diagram
27
2. Bagan Berjenjang
Gambar 3.5 Bagan Berjenjang
28
Gambar 3.6 DFD Level 0 - proses sekolah
29
1P
Login
D2.1 Pegawai Kabupaten
6P
SinkronisasiKeluar
Kabupaten
5P
SinkronisasiKedalam
Kabupaten
7P
SinkronisasiAwal KeluarKabupaten
PegawaiKabupaten D3 Database Sinkron Sekolah
D4 Database Sinkron Kabupaten
D5 Database Data Awal Sekolah
data logindata login valid
data sinkronsekolah
kata kunci
data sinkronkabupaten
kata kunci
data sinkron awal
D2 Database Kabupaten
kata kuncidata sinkronkabupaten
data sekolah
data sinkronsekolahdata sekolah
data awal sekolahdata sinkron
awalkata kunci
data login
login valid
data awal sekolah
Gambar 3.7 DFD Level 0 - proses kabupaten
30
KAMUS DATA
Nama arus data : DATA LOGIN
Bentuk data : Dokumen dasar atau formulir
Arus Data : Super Admin Sekolah - Proses 1P
Pegawai Kabupaten - Proses 1P
Penjelasan : Input data untuk proses login.
Periode : Setiap kali user melakukan login.
Struktur data : DATA LOGIN terdiri dari item data :
USERNAME
USER_PASSWORD
LEVEL
Nama arus data : DATA LOGIN
Bentuk data : Variabel
Arus Data : Proses 1P - Tabel Karyawan
Proses 1P - Tabel Pegawai Kabupaten
Penjelasan : Data login akan diverifikasi dengan data dalam database.
Periode : Setiap kali user melakukan login.
Struktur data : DATA LOGIN terdiri dari item data :
USERNAME
USER_PASSWORD
LEVEL
31
Nama arus data : DATA LOGIN VALID
Bentuk data : Field (item data)
Arus Data : Database Karyawan - Proses 1P
Database Pegawai Kabupaten - Proses 1P
Penjelasan : Data keluaran dari database.
Periode : Setiap kali user melakukan login.
Struktur data : DATA LOGIN terdiri dari item data :
USERNAME
USER_PASSWORD
Nama arus data : DATA SINKRON SEKOLAH
Bentuk data : Dokumen dasar atau formulir
Arus Data : Proses 2P - Super Admin Sekolah
Pegawai Kabupaten - Proses 5P
Penjelasan : File berisi data sinkronisasi yang berasal dari Sekolah..
Periode : Setiap kali user melakukan sinkronisasi dari Sekolah.
Struktur data : DATA SINKRON SEKOLAH terdiri dari:
GURU
KARYAWAN
NILAI
NILAI_UAN
PENJURUSAN
RIWAYAT_BEKERJA_TK
RIWAYAT_BEKERJA_SD
32
RIWAYAT_BEKERJA_SMP
RIWAYAT_BEKERJA_SMA
RIWAYAT_MENGAJAR_TK
RIWAYAT_MENGAJAR_SD
RIWAYAT_MENGAJAR_SMP
RIWAYAT_MENGAJAR_SMA
RIWAYAT_PENDIDIKAN_GURU
RIWAYAT_PENDIDIKAN_KARYAWAN
RIWAYAT_STATUS_GOL_GURU
RIWAYAT_STATUS_GOL_KARYAWAN
RIWAYAT_TK
RIWAYAT_SD
RIWAYAT_SMP
RIWATAT_SMA
SISWA
TK
SD
SMP
SMA
TK_NEGERI
TK_SWASTA
SD_NEGERI
SD_SWASTA
SMP_NEGERI
SMP_SWASTA
SMA_NEGERI
SMA_SWASTA
SMK_NEGERI
33
SMK_SWASTA
SMK_NEGERI_HAS_KELOMPOK_SMK
SMK_SWASTA_HAS_KELOMPOK_SMK
TK_HAS_GEDUNG
TK_HAS_GEDUNG_HAS_RUANG
TK_HAS_PERLENGKAPAN
SD_HAS_ALAT_PENDIDIKAN
SD_HAS_BUKU
SD_HAS_BUKU_SD
SD_HAS_GEDUNG
SD_HAS_GEDUNG_HAS_RUANG
SD_HAS_PERLENGKAPAN
SMP_HAS_ALAT_PENDIDIKAN
SMP_HAS_BUKU
SMP_HAS_GEDUNG
SMP_HAS_GEDUNG_HAS_RUANG
SMP_HAS_LABORATORIUM
SMP_HAS_PERLENGKAPAN
SMA_HAS_ALAT_PENDIDIKAN
SMA_HAS_BUKU
SMA_HAS_GEDUNG
SMA_HAS_GEDUNG_HAS_RUANG
SMA_HAS_LABORATORIUM
SMA_HAS_PERLENGKAPAN
STATUS_KELUAR
STATUS_LULUS
STATUS_MASUK
34
STATUS_MENGULANG
STATUS_NAIK
TANAH
Nama arus data : DATA SINKRON SEKOLAH
Bentuk data : Variabel
Arus Data : Proses 5P - Database Sinkron Sekolah
Penjelasan : File berisi data sinkronisasi yang berasal dari Sekolah..
Periode : Setiap kali user melakukan sinkronisasi dari Sekolah.
Struktur data : DATA SINKRON SEKOLAH terdiri dari:
GURU
KARYAWAN
NILAI
NILAI_UAN
PENJURUSAN
RIWAYAT_BEKERJA_TK
RIWAYAT_BEKERJA_SD
RIWAYAT_BEKERJA_SMP
RIWAYAT_BEKERJA_SMA
RIWAYAT_MENGAJAR_TK
RIWAYAT_MENGAJAR_SD
RIWAYAT_MENGAJAR_SMP
RIWAYAT_MENGAJAR_SMA
RIWAYAT_PENDIDIKAN_GURU
RIWAYAT_PENDIDIKAN_KARYAWAN
RIWAYAT_STATUS_GOL_GURU
RIWAYAT_STATUS_GOL_KARYAWAN
35
RIWAYAT_TK
RIWAYAT_SD
RIWAYAT_SMP
RIWATAT_SMA
SISWA
TK
SD
SMP
SMA
TK_NEGERI
TK_SWASTA
SD_NEGERI
SD_SWASTA
SMP_NEGERI
SMP_SWASTA
SMA_NEGERI
SMA_SWASTA
SMK_NEGERI
SMK_SWASTA
SMK_NEGERI_HAS_KELOMPOK_SMK
SMK_SWASTA_HAS_KELOMPOK_SMK
TK_HAS_GEDUNG
TK_HAS_GEDUNG_HAS_RUANG
TK_HAS_PERLENGKAPAN
SD_HAS_ALAT_PENDIDIKAN
SD_HAS_BUKU
SD_HAS_BUKU_SD
36
SD_HAS_GEDUNG
SD_HAS_GEDUNG_HAS_RUANG
SD_HAS_PERLENGKAPAN
SMP_HAS_ALAT_PENDIDIKAN
SMP_HAS_BUKU
SMP_HAS_GEDUNG
SMP_HAS_GEDUNG_HAS_RUANG
SMP_HAS_LABORATORIUM
SMP_HAS_PERLENGKAPAN
SMA_HAS_ALAT_PENDIDIKAN
SMA_HAS_BUKU
SMA_HAS_GEDUNG
SMA_HAS_GEDUNG_HAS_RUANG
SMA_HAS_LABORATORIUM
SMA_HAS_PERLENGKAPAN
STATUS_KELUAR
STATUS_LULUS
STATUS_MASUK
STATUS_MENGULANG
STATUS_NAIK
TANAH
Nama arus data : DATA SINKRON SEKOLAH
Bentuk data : Field (item data)
Arus Data : Database Sinkron Sekolah - Proses 2P
Penjelasan : File berisi data sinkronisasi yang berasal dari Sekolah..
Periode : Setiap kali user melakukan sinkronisasi dari Sekolah.
37
Struktur data : DATA SINKRON SEKOLAH terdiri dari:
GURU
KARYAWAN
NILAI
NILAI_UAN
PENJURUSAN
RIWAYAT_BEKERJA_TK
RIWAYAT_BEKERJA_SD
RIWAYAT_BEKERJA_SMP
RIWAYAT_BEKERJA_SMA
RIWAYAT_MENGAJAR_TK
RIWAYAT_MENGAJAR_SD
RIWAYAT_MENGAJAR_SMP
RIWAYAT_MENGAJAR_SMA
RIWAYAT_PENDIDIKAN_GURU
RIWAYAT_PENDIDIKAN_KARYAWAN
RIWAYAT_STATUS_GOL_GURU
RIWAYAT_STATUS_GOL_KARYAWAN
RIWAYAT_TK
RIWAYAT_SD
RIWAYAT_SMP
RIWATAT_SMA
SISWA
TK
SD
SMP
SMA
38
TK_NEGERI
TK_SWASTA
SD_NEGERI
SD_SWASTA
SMP_NEGERI
SMP_SWASTA
SMA_NEGERI
SMA_SWASTA
SMK_NEGERI
SMK_SWASTA
SMK_NEGERI_HAS_KELOMPOK_SMK
SMK_SWASTA_HAS_KELOMPOK_SMK
TK_HAS_GEDUNG
TK_HAS_GEDUNG_HAS_RUANG
TK_HAS_PERLENGKAPAN
SD_HAS_ALAT_PENDIDIKAN
SD_HAS_BUKU
SD_HAS_BUKU_SD
SD_HAS_GEDUNG
SD_HAS_GEDUNG_HAS_RUANG
SD_HAS_PERLENGKAPAN
SMP_HAS_ALAT_PENDIDIKAN
SMP_HAS_BUKU
SMP_HAS_GEDUNG
SMP_HAS_GEDUNG_HAS_RUANG
SMP_HAS_LABORATORIUM
SMP_HAS_PERLENGKAPAN
SMA_HAS_ALAT_PENDIDIKAN
39
SMA_HAS_BUKU
SMA_HAS_GEDUNG
SMA_HAS_GEDUNG_HAS_RUANG
SMA_HAS_LABORATORIUM
SMA_HAS_PERLENGKAPAN
STATUS_KELUAR
STATUS_LULUS
STATUS_MASUK
STATUS_MENGULANG
STATUS_NAIK
TANAH
Nama arus data : DATA SEKOLAH
Bentuk data : Field (item data)
Arus Data : Database Sinkron Sekolah - Proses 5P
Penjelasan : File berisi data sinkronisasi yang berasal dari Sekolah..
Periode : Setiap kali user melakukan sinkronisasi dari Sekolah.
Struktur data : DATA SEKOLAH terdiri dari:
GURU
KARYAWAN
NILAI
NILAI_UAN
PENJURUSAN
RIWAYAT_BEKERJA_TK
RIWAYAT_BEKERJA_SD
40
RIWAYAT_BEKERJA_SMP
RIWAYAT_BEKERJA_SMA
RIWAYAT_MENGAJAR_TK
RIWAYAT_MENGAJAR_SD
RIWAYAT_MENGAJAR_SMP
RIWAYAT_MENGAJAR_SMA
RIWAYAT_PENDIDIKAN_GURU
RIWAYAT_PENDIDIKAN_KARYAWAN
RIWAYAT_STATUS_GOL_GURU
RIWAYAT_STATUS_GOL_KARYAWAN
RIWAYAT_TK
RIWAYAT_SD
RIWAYAT_SMP
RIWATAT_SMA
SISWA
TK
SD
SMP
SMA
TK_NEGERI
TK_SWASTA
SD_NEGERI
SD_SWASTA
SMP_NEGERI
SMP_SWASTA
SMA_NEGERI
SMA_SWASTA
SMK_NEGERI
41
SMK_SWASTA
SMK_NEGERI_HAS_KELOMPOK_SMK
SMK_SWASTA_HAS_KELOMPOK_SMK
TK_HAS_GEDUNG
TK_HAS_GEDUNG_HAS_RUANG
TK_HAS_PERLENGKAPAN
SD_HAS_ALAT_PENDIDIKAN
SD_HAS_BUKU
SD_HAS_BUKU_SD
SD_HAS_GEDUNG
SD_HAS_GEDUNG_HAS_RUANG
SD_HAS_PERLENGKAPAN
SMP_HAS_ALAT_PENDIDIKAN
SMP_HAS_BUKU
SMP_HAS_GEDUNG
SMP_HAS_GEDUNG_HAS_RUANG
SMP_HAS_LABORATORIUM
SMP_HAS_PERLENGKAPAN
SMA_HAS_ALAT_PENDIDIKAN
SMA_HAS_BUKU
SMA_HAS_GEDUNG
SMA_HAS_GEDUNG_HAS_RUANG
SMA_HAS_LABORATORIUM
SMA_HAS_PERLENGKAPAN
STATUS_KELUAR
STATUS_LULUS
STATUS_MASUK
42
STATUS_MENGULANG
STATUS_NAIK
TANAH
Nama arus data : DATA SEKOLAH
Bentuk data : Variabel
Arus Data : Proses 5P - Database Kabupaten
Penjelasan : File berisi data sinkronisasi yang berasal dari Sekolah..
Periode : Setiap kali user melakukan sinkronisasi dari Sekolah.
Struktur data : DATA SEKOLAH terdiri dari:
GURU
KARYAWAN
NILAI
NILAI_UAN
PENJURUSAN
RIWAYAT_BEKERJA_TK
RIWAYAT_BEKERJA_SD
RIWAYAT_BEKERJA_SMP
RIWAYAT_BEKERJA_SMA
RIWAYAT_MENGAJAR_TK
RIWAYAT_MENGAJAR_SD
RIWAYAT_MENGAJAR_SMP
RIWAYAT_MENGAJAR_SMA
RIWAYAT_PENDIDIKAN_GURU
RIWAYAT_PENDIDIKAN_KARYAWAN
RIWAYAT_STATUS_GOL_GURU
RIWAYAT_STATUS_GOL_KARYAWAN
43
RIWAYAT_TK
RIWAYAT_SD
RIWAYAT_SMP
RIWATAT_SMA
SISWA
TK
SD
SMP
SMA
TK_NEGERI
TK_SWASTA
SD_NEGERI
SD_SWASTA
SMP_NEGERI
SMP_SWASTA
SMA_NEGERI
SMA_SWASTA
SMK_NEGERI
SMK_SWASTA
SMK_NEGERI_HAS_KELOMPOK_SMK
SMK_SWASTA_HAS_KELOMPOK_SMK
TK_HAS_GEDUNG
TK_HAS_GEDUNG_HAS_RUANG
TK_HAS_PERLENGKAPAN
SD_HAS_ALAT_PENDIDIKAN
SD_HAS_BUKU
SD_HAS_BUKU_SD
44
SD_HAS_GEDUNG
SD_HAS_GEDUNG_HAS_RUANG
SD_HAS_PERLENGKAPAN
SMP_HAS_ALAT_PENDIDIKAN
SMP_HAS_BUKU
SMP_HAS_GEDUNG
SMP_HAS_GEDUNG_HAS_RUANG
SMP_HAS_LABORATORIUM
SMP_HAS_PERLENGKAPAN
SMA_HAS_ALAT_PENDIDIKAN
SMA_HAS_BUKU
SMA_HAS_GEDUNG
SMA_HAS_GEDUNG_HAS_RUANG
SMA_HAS_LABORATORIUM
SMA_HAS_PERLENGKAPAN
STATUS_KELUAR
STATUS_LULUS
STATUS_MASUK
STATUS_MENGULANG
STATUS_NAIK
TANAH
Nama arus data : DATA SINKRON KABUPATEN
Bentuk data : Dokumen dasar atau formulir
Arus Data : Super Admin Sekolah - Proses 3P
Proses 6P - Pegawai Kabupaten
45
Penjelasan : File berisi data sinkronisasi yang berasal dari Kabupaten,
berupa data-data guru dan karyawan yang berstatus PNS.
Periode : Setiap kali user melakukan sinkronisasi dari Kabupaten ke
Sekolah.
Struktur data : DATA SINKRON KABUPATEN terdiri dari:
GURU
KARYAWAN
RIWAYAT_BEKERJA_TK
RIWAYAT_BEKERJA_SD
RIWAYAT_BEKERJA_SMP
RIWAYAT_BEKERJA_SMA
RIWAYAT_MENGAJAR_TK
RIWAYAT_MENGAJAR_SD
RIWAYAT_MENGAJAR_SMP
RIWAYAT_MENGAJAR_SMA
RIWAYAT_PENDIDIKAN_GURU
RIWAYAT_PENDIDIKAN_KARYAWAN
RIWAYAT_STATUS_GOL_GURU
RIWAYAT_STATUS_GOL_KARYAWAN
Nama arus data : DATA SINKRON KABUPATEN
Bentuk data : Variabel
Arus Data : Proses 3P - Database Sinkron Kabupaten
Penjelasan : File berisi data sinkronisasi yang berasal dari Kabupaten,
berupa data-data guru dan karyawan yang berstatus PNS.
46
Periode : Setiap kali user melakukan sinkronisasi dari Kabupaten ke
Sekolah.
Struktur data : DATA SINKRON KABUPATEN terdiri dari:
GURU
KARYAWAN
RIWAYAT_BEKERJA_TK
RIWAYAT_BEKERJA_SD
RIWAYAT_BEKERJA_SMP
RIWAYAT_BEKERJA_SMA
RIWAYAT_MENGAJAR_TK
RIWAYAT_MENGAJAR_SD
RIWAYAT_MENGAJAR_SMP
RIWAYAT_MENGAJAR_SMA
RIWAYAT_PENDIDIKAN_GURU
RIWAYAT_PENDIDIKAN_KARYAWAN
RIWAYAT_STATUS_GOL_GURU
RIWAYAT_STATUS_GOL_KARYAWAN
Nama arus data : DATA SINKRON KABUPATEN
Bentuk data : Field (item data)
Arus Data : Database Sinkron Kabupaten - Proses 6P
Penjelasan : File berisi data sinkronisasi yang berasal dari Kabupaten,
berupa data-data guru dan karyawan yang berstatus PNS.
Periode : Setiap kali user melakukan sinkronisasi dari Kabupaten ke
Sekolah.
47
Struktur data : DATA SINKRON KABUPATEN terdiri dari:
GURU
KARYAWAN
RIWAYAT_BEKERJA_TK
RIWAYAT_BEKERJA_SD
RIWAYAT_BEKERJA_SMP
RIWAYAT_BEKERJA_SMA
RIWAYAT_MENGAJAR_TK
RIWAYAT_MENGAJAR_SD
RIWAYAT_MENGAJAR_SMP
RIWAYAT_MENGAJAR_SMA
RIWAYAT_PENDIDIKAN_GURU
RIWAYAT_PENDIDIKAN_KARYAWAN
RIWAYAT_STATUS_GOL_GURU
RIWAYAT_STATUS_GOL_KARYAWAN
Nama arus data : DATA KABUPATEN
Bentuk data : Field (item data)
Arus Data : Database Sinkron Kabupaten - Proses 3P
Penjelasan : File berisi data sinkronisasi yang berasal dari Kabupaten,
berupa data-data guru dan karyawan yang berstatus PNS.
Periode : Setiap kali user melakukan sinkronisasi dari Kabupaten ke
Sekolah.
Struktur data : DATA KABUPATEN terdiri dari:
GURU
KARYAWAN
48
RIWAYAT_BEKERJA_TK
RIWAYAT_BEKERJA_SD
RIWAYAT_BEKERJA_SMP
RIWAYAT_BEKERJA_SMA
RIWAYAT_MENGAJAR_TK
RIWAYAT_MENGAJAR_SD
RIWAYAT_MENGAJAR_SMP
RIWAYAT_MENGAJAR_SMA
RIWAYAT_PENDIDIKAN_GURU
RIWAYAT_PENDIDIKAN_KARYAWAN
RIWAYAT_STATUS_GOL_GURU
RIWAYAT_STATUS_GOL_KARYAWAN
Nama arus data : DATA KABUPATEN
Bentuk data : Variabel
Arus Data : Proses 3P - Database Sekolah
Penjelasan : File berisi data sinkronisasi yang berasal dari Kabupaten,
berupa data-data guru dan karyawan yang berstatus PNS.
Periode : Setiap kali user melakukan sinkronisasi dari Kabupaten ke
Sekolah.
Struktur data : DATA KABUPATEN terdiri dari:
GURU
KARYAWAN
RIWAYAT_BEKERJA_TK
RIWAYAT_BEKERJA_SD
RIWAYAT_BEKERJA_SMP
49
RIWAYAT_BEKERJA_SMA
RIWAYAT_MENGAJAR_TK
RIWAYAT_MENGAJAR_SD
RIWAYAT_MENGAJAR_SMP
RIWAYAT_MENGAJAR_SMA
RIWAYAT_PENDIDIKAN_GURU
RIWAYAT_PENDIDIKAN_KARYAWAN
RIWAYAT_STATUS_GOL_GURU
RIWAYAT_STATUS_GOL_KARYAWAN
Nama arus data : DATA SINKRON AWAL
Bentuk data : Dokumen dasar atau formulir
Arus Data : Super Admin Sekolah - Proses 4P
Proses 7P - Pegawai Kabupaten
Penjelasan : File berisi data sinkronisasi awal yang berasal dari
Kabupaten.
Periode : Setiap kali user melakukan sinkronisasi awal dari
Kabupaten ke Sekolah.
Struktur data : DATA SINKRON AWAL terdiri dari:
TK
SD
SMP
SMA
50
Nama arus data : DATA SINKRON AWAL
Bentuk data : Variabel
Arus Data : Proses 4P - Database Data Awal Sekolah
Penjelasan : File berisi data sinkronisasi awal yang berasal dari
Kabupaten.
Periode : Setiap kali user melakukan sinkronisasi awal dari
Kabupaten ke Sekolah.
Struktur data : DATA SINKRON AWAL terdiri dari:
TK
SD
SMP
SMA
Nama arus data : DATA SINKRON AWAL
Bentuk data : Field (item data)
Arus Data : Database Data Awal Sekolah - Proses 7P
Penjelasan : File berisi data sinkronisasi awal yang berasal dari
Kabupaten.
Periode : Setiap kali user melakukan sinkronisasi awal dari
Kabupaten ke Sekolah.
Struktur data : DATA SINKRON AWAL terdiri dari:
TK
SD
SMP
SMA
51
Nama arus data : DATA AWAL SEKOLAH
Bentuk data : Field (item data)
Arus Data : Database Kabupaten - Proses 7P
Database Data Awal Sekolah - Proses 4P
Penjelasan : File berisi data sinkronisasi awal yang berasal dari
Kabupaten.
Periode : Setiap kali user melakukan sinkronisasi awal dari
Kabupaten ke Sekolah.
Struktur data : DATA AWAL SEKOLAH terdiri dari:
TK
SD
SMP
SMA
Nama arus data : DATA AWAL SEKOLAH
Bentuk data : Variabel
Arus Data : Proses 7P - Database Data Awal Sekolah
Proses 4P - Database Sekolah
Penjelasan : File berisi data sinkronisasi awal yang berasal dari
Kabupaten.
Periode : Setiap kali user melakukan sinkronisasi awal dari
Kabupaten ke Sekolah.
Struktur data : DATA AWAL SEKOLAH terdiri dari:
TK
SD
52
SMP
SMA
Nama arus data : KATA KUNCI
Bentuk data : Dokumen dasar atau formulir
Arus Data : Super Admin Sekolah - Proses 2P
Pegawai Kabupaten - Proses 6P
Pegawai Kabupaten - Proses 7P
Penjelasan : Input kata kunci yang digunakan untuk memilihan data.
Periode : Saat melakukan proses Sinkronisasi Keluar.
Struktur data : KATA KUNCI terdiri dari item data :
Semua kata yang mungkin
Nama arus data : KATA KUNCI
Bentuk data : Variabel
Arus Data : Proses 2P - Database Sinkron Sekolah
Proses 6P - Database Sinkron Kabupaten
Proses 7P - Database Kabupaten
Penjelasan : Input kata kunci yang digunakan untuk memilihan data.
Periode : Saat melakukan proses Sinkronisasi Keluar.
Struktur data : KATA KUNCI terdiri dari item data :
Semua kata yang mungkin
53
bagian dari
bagian dari
bagian dari
bagian dari
bagian dari
bagian dari
2
SMP
id_smp [PK] nss nis nama jalan desa_kelurahan daerah klasifikasi_geografis kecamatan kabupaten_kota propinsi kode_pos kode_area no_telp fax email website jarak_sekolah_terdekat bentuk_sekolah status_sekolah klasifikasi_sekolah kategori_sekolah waktu_penyelenggaraan thn_akhir_renovasi prog_inklusi jenis_inklusi tanah [FK]
SMP_NEGERI
id_smp [PK] [FK] keterangan_sk no_sk_terakhir tgl_sk_terakhir
SMP_SWASTA
id_smp [PK] [FK] no_sk_pendirian tgl_sk_pendirian nds akreditasi_jenjang no_sk_akreditasi tgl_sk_akreditasi nama_yayasan jalan_yayasan desa_kelurahan_yayasan kecamatan_yayasan kabupaten_kota_yayasan propinsi_yayasan no_akte_pendirian tgl_akte_pendirian yayasan
SMA_NEGERI
id_sma [PK] [FK] keterangan_sk no_sk_terakhir tgl_sk_terakhir
SMA_SWASTA
id_sma [PK] [FK] no_sk_pendirian tgl_sk_pendirian nds akreditasi_jenjang no_sk_akreditasi tgl_sk_akreditasi nama_yayasan jalan_yayasan desa_kelurahan_yayasan kecamatan_yayasan kabupaten_kota_yayasan propinsi_yayasan no_akte_pendirian tgl_akte_pendirian yayasan
SMK_NEGERI
id_sma [PK] [FK] kelompok_smk tmpt_selenggara_prak nama_tempat id_tmpt_pel_sistim_ganda jumlah
1
SMA
id_sma [PK] nss nis nama jalan desa_kelurahan daerah klasifikasi_geografis kecamatan kabupaten_kota propinsi kode_pos kode_area no_telp fax email website jarak_sekolah_terdekat thn_buka status_sekolah klasifikasi_sekolah waktu_penyelenggaraan thn_akhir_renovasi prog_inklusi jenis_inklusi tanah [FK]
SMK_SWASTA
id_sma [PK] [FK] kelompok_smk tmpt_selenggara_prak nama_tempat id_tmpt_pel_sistim_ganda jumlah
3.1.5.2 Data Modelling
Gambar 3.8 ER Diagram
13
14
54
punya punya
punya
punya
punya punya
punya
punya
21
5
6
RIWAYAT_MENGAJAR_SMA id_sma [PK1] [FK] no_induk_guru [PK2] [FK] status_guru [PK3] [FK] jabatan sk tgl_mulai_kerja tgl_selesai tgl_berhenti sk_pemberhentian
RIWAYAT_MENGAJAR_SMP id_smp [PK1] [FK] no_induk_guru [PK2] [FK] status_guru [PK3] [FK] jabatan sk tgl_mulai_kerja tgl_selesai tgl_berhenti sk_pemberhentian
RIWAYAT_BEKERJA_SMP id_smp [PK1] [FK] no_induk_karyawan [PK2] [FK] jabatan sk tgl_mulai_kerja tgl_selesai
RIWAYAT_BEKERJA_SMA id_sma [PK1] [FK] no_induk_karyawan [PK2] [FK] jabatan sk tgl_mulai_kerja tgl_selesai
GURU
no_induk_guru [PK] nama tempat_lahir tgl_lahir tgl_kerja kelamin tingkat_pendidikan golongan status_kepegawaian jabatan status_jabatan foto status_kawin jumlah_anak
KARYAWAN
no_induk_karyawan [PK] nama tempat_lahir tgl_lahir tgl_kerja kelamin tingkat_pendidikan golongan status_kepegawaian jabatan status_jabatan foto username user_password level
Gambar 3.8 ER Diagram (lanjutan.)
55
punya punya
punya
punya
punya
punya punya
punya
TK
id_tk [PK] nss nis nama jalan desa_kelurahan daerah kecamatan kabupaten_kota propinsi kode_pos kode_area no_telp fax email website thn_buka status_sekolah gugus_sekolah kategori_sekolah manajemen kurikulum tanah_milik luas_milik tanah_sewa luas_sewa tanah_pinjam luas_pinjam tempat_bermain_dalam tempat_bermain_luar
SD
id_sd [PK] nss nis nama jalan desa_kelurahan daerah kategori_wilayah kecamatan kabupaten_kota propinsi kode_pos kode_area no_telp fax email website status_sekolah waktu_penyelenggaraan gugus_sekolah kategori_sekolah prog_inklusi jenis_inklusi mbs tanah_milik luas_milik tanah_sewa luas_sewa tanah_pinjam luas_pinjam
3
4
6
5
RIWAYAT_MENGAJAR_TK id_tk [PK1] [FK] no_induk_guru [PK2] [FK] status_guru [PK3] [FK] jabatan sk tgl_mulai_kerja tgl_selesai tgl_berhenti sk_pemberhentian
RIWAYAT_MENGAJAR_SD id_sd [PK1] [FK] no_induk_guru [PK2] [FK] status_guru [PK3] [FK] jabatan sk tgl_mulai_kerja tgl_selesai tgl_berhenti sk_pemberhentian
RIWAYAT_BEKERJA_TK id_tk [PK1] [FK] no_induk_karyawan [PK2] [FK] jabatan sk tgl_mulai_kerja tgl_selesai
RIWAYAT_BEKERJA_SD id_sd [PK1] [FK] no_induk_karyawan [PK2] [FK] jabatan sk tgl_mulai_kerja tgl_selesai
Gambar 3.8 ER Diagram (lanjutan.)
15
16
56
punya punya punya punya punya punya punya punya
punya punya punya punya
punya punya punya punya
GEDUNG id_gedung [PK] nama
RUANG id_ruang [PK] nama id_tingkat_sekolah [FK]
21 43
TK_HAS_GEDUNG id_tk [PK1] [FK] id_gedung [PK2] [FK] tahun_dibangun tahun_terakhir renovasi
SD_HAS_GEDUNG id_sd [PK1] [FK] id_gedung [PK2] [FK] tahun_dibangun tahun_terakhir renovasi
SMP_HAS_GEDUNG id_smp [PK1] [FK] id_gedung [PK2] [FK] tahun_dibangun tahun_terakhir renovasi
SMA_HAS_GEDUNG id_sma [PK1] [FK] id_gedung [PK2] [FK] tahun_dibangun tahun_terakhir renovasi
SMA_HAS_GEDUNG_HAS_RUANG id_sma [PK1] [FK] id_gedung [PK2] [FK] id_ruang [PK3] [FK] jumlah kondisi [PK4] status_milik [PK5] luas
SMP_HAS_GEDUNG_HAS_RUANG id_smp [PK1] [FK] id_gedung [PK2] [FK] id_ruang [PK3] [FK] jumlah kondisi [PK4] status_milik [PK5] luas
SD_HAS_GEDUNG_HAS_RUANG id_sd [PK1] [FK] id_gedung [PK2] [FK] id_ruang [PK3] [FK] jumlah kondisi [PK4] status_milik [PK5] luas
TK_HAS_GEDUNG_HAS_RUANG id_TK [PK1] [FK] id_gedung [PK2] [FK] id_ruang [PK3] [FK] jumlah kondisi [PK4] status_milik [PK5] luas
Gambar 3.8 ER Diagram (lanjutan.)
57
punya
punya
punya punya
punya punya
punya punya
punya punya
punya
LABORATORIUM
id_laboratorium [PK] nama id_tingkat_sekolah [FK]
1 2
PERLENGKAPAN
id_perlengkapan [PK] nama id_tingkat_sekolah [FK]
TANAH
id_tanah [PK] status_pemilikan_tanah_sm keliling keliling_pagar luas_tanah tanah_bangunan tanah_halaman_taman tanah_lap_olahraga tanah_kebun tanah_lain
SMA_HAS_PERLENGKAPAN
id_sma [PK1] [FK] id_perlengkapan [PK2] [FK] jumlah tgl_beli kondisi [PK3]
SMP_HAS_PERLENGKAPAN
id_smp [PK1] [FK] id_perlengkapan [PK2] [FK] jumlah tgl_beli kondisi [PK3]
SMA_HAS_LABORATORIUM
id_smp [PK1] [FK] id_laboratorium [PK2] [FK] juml_jam_pakai
SMP_HAS_LABORATORIUM
id_smp [PK1] [FK] id_laboratorium [PK2] [FK] juml_jam_pakai
Gambar 3.8 ER Diagram (lanjutan.)
76
58
punya punya
punya punya
punya
punya
punya
punya
punya
punya
punya
punya
punya
punya
BUKU
id_buku [PK] mata_pelajaran id_tingkat_sekolah [FK]
1
SMP_HAS_BUKU
id_smp [PK1] [FK] id_buku [PK2] [FK] juml_jdl_guru juml_eks_guru juml_jdl_siswa juml_eks_siswa juml_jdl_penunjang juml_eks_penunjang
SMA_HAS_BUKU
id_sma [PK1] [FK] id_buku [PK2] [FK] juml_jdl_guru juml_eks_guru juml_jdl_siswa juml_eks_siswa juml_jdl_penunjang juml_eks_penunjang
SMA_HAS_ALAT_PENDIDIKAN
id_sma [PK1] [FK] id_alat_pendidikan [PK2] [FK] juml_peraga juml_praktik juml_media
SMP_HAS_ALAT_PENDIDIKAN
id_smp [PK1] [FK] id_alat_pendidikan [PK2] [FK] juml_peraga juml_praktik juml_media
SD_HAS_BUKU
id_sd [PK1] [FK] id_buku [PK2] [FK] juml_jdl_guru juml_eks_guru juml_jdl_siswa juml_eks_siswa
2
ALAT_PENDIDIKAN
id_alat_pendidikan [PK] mata_pelajaran id_tingkat_sekolah [FK] 3
SD_HAS_ALAT_PENDIDIKAN
id_sd [PK1] [FK] id_alat_pendidikan [PK2] [FK] juml_peraga_praktik
Gambar 3.8 ER Diagram (lanjutan.)
7
59
punya punya
punya punya
punya punya
32 BUKU_SD
id_buku_sd [PK] jenis
SD_HAS_BUKU_SD
id_sd [PK1] [FK] id_buku_sd [PK2] [FK] jumlah
SD_HAS_PERLENGKAPAN
id_sd [PK1] [FK] id_perlengkapan [PK2] [FK] jumlah kondisi [PK3]
TK_HAS_PERLENGKAPAN
id_tk [PK1] [FK] id_perlengkapan [PK2] [FK] jumlah kondisi [PK3]
Gambar 3.8 ER Diagram (lanjutan.)
6
TINGKAT_SEKOLAH
id_tingkat_sekolah [PK] keterangan 7
60
punya punya punya punya
SISWA id_siswa [PK] id_tk [FK] id_sd [FK] id_smp [FK] id_sma [FK] nama tempat_lahir tgl_lahir agama kelamin jalan desa kecamatan kabupaten propinsi username password level foto
1 2 3 4
6
7
8
9
12
17
18
Gambar 3.8 ER Diagram (lanjutan.) 21
10
11
19
20
61
punya
punya
punya
punya
SISWA_HAS_UAN id_uan [PK1] [FK] id_siswa [PK2] [FK] nilai
mengambil UAN id_uan [PK] id_mata_pelajaran [FK]
MATA_PELAJARAN id_mata_pelajaran [PK] nama_mapel
NILAI id_siswa [PK] nama_mapel [PK] semester [PK] jenis_nilai [PK] tahun_ajaran [PK] nilai keterngan user_update
KELAS id_kelas [PK] id_mata_pelajaran [FK] id_guru [FK] pertemuan_1 pertemuan_2 pertemuan_3
SISWA_HAS_KELAS id_kelas [PK1] [FK] id_siswa [PK2] [FK]
6
diambil
PERTEMUAN id_pertemuan [PK]
TINGKAT id_tingkat [PK] tingkat
PARALEL id_paralel [PK] id_tingkat [FK] id_guru [FK] kelas_paralel group_pejurusan i
mengambil
diambil
Gambar 3.8 ER Diagram (lanjutan.)
NILAI_UAN id_uan [PK] id_mata_pelajaran [FK] tahun_ajaran nilai
21
5
62
STATUS_MASUK id_status_masuk [PK] id_siswa [FK] status_masuk tingkat semester waktu tahun_ajaran nilai_kelulusan aktif asal sekolah
STATUS_NAIK id_status_masuk [PK] id_siswa [FK] tingkat semester waktu tahun_ajaran aktif
STATUS_MENGULANG id_status_masuk [PK] id_siswa [FK] tingkat semester waktu tahun_ajaran aktif
STATUS_LULUS id_status_masuk [PK] id_siswa [FK] status_lulus waktu tahun_ajaran
STATUS_KELUAR id_status_masuk [PK] id_siswa [FK] status_masuk tingkat semester waktu alasan keterangan tahun ajaran
PENJURUSAN id_penjurusan [PK] id_siswa [FK] group_penjurusan kriteria tahun_ajaran
7
8
9
10
11
12
SEMESTER_BERJALAN semester_berjalan awal_semester_berjalan akhir_semester_berjalan tahun_ajaran rencana_penerimaan_laki rencana_penerimaan_perempuan Gambar 3.8 ER Diagram (lanjutan.)
63
RIWAYAT_TK id_siswa id_tk tahun_ajaran
15
17RIWAYAT_SMP
id_siswa id_smp tahun_ajaran
13
19
RIWAYAT_SD id_siswa id_sd tahun_ajaran
16
18RIWAYAT_SMA
id_siswa id_sma tahun_ajaran
14
20
Gambar 3.8 ER Diagram (lanjutan.)
64
3.2 Perancangan Sistem
3.2.1 Disain Database
Tabel-tabel yang dibuat dalam pengembangan Sistem Informasi:
Tabel 3.2 Tabel TK
Name Type Size Key id_tk integer PK nss varchar 12 nis varchar 8 nama varchar 40 jalan_nomor varchar 50 desa varchar 30 daerah varchar 30 kecamatan varchar 24 kabupaten varchar 30 kabupaten_kota varchar 24 propinsi varchar 24 kode_pos varchar 5 kode_area varchar 4 no_telp varchar 10 fax varchar 15 email varchar 40 website varchar 40 status_sekolah varchar 6 gugus_sekolah varchar 15 thn_buka varchar 4 kategori_sekolah varchar 20 manajemen varchar 10 kurikulum varchar 15 tanah_milik varchar 10 luas_milik float tanah_sewa varchar 10 luas_sewa float tanah_pinjam varchar 10 luas_pinjam float tempat_bermain_dalam varchar 20 tempat_bermain_luar varchar 20
65
Tabel 3.3 Tabel BUKU_SD
Name Type Size Key id_buku_sd integer PK jenis varchar 40
Tabel 3.4 Tabel SD
Name Type Size Key id_sd integer PK nss varchar 12 nis varchar 8 nama varchar 40 jalan_nomor varchar 50 desa varchar 30 daerah varchar 30 kategori_wilayah varchar 30 kecamatan varchar 24 kabupaten varchar 30 kabupaten_kota varchar 24 propinsi varchar 24 kode_pos varchar 5 kode_area varchar 4 no_telp varchar 10 fax varchar 15 email varchar 40 website varchar 40 status_sekolah varchar 6 waktu_penyelenggaraan varchar 10 gugus_sekolah varchar 15 kategori_sekolah varchar 20 prog_inklusi varchar 5 jenis_inklusi varchar 40 mbs varchar 5 tanah_milik varchar 10 luas_milik float tanah_sewa varchar 10 luas_sewa float tanah_pinjam varchar 10 luas_pinjam float
66
Tabel 3.5 Tabel SMP
Name Type Size Key id_smp integer PK nss varchar 12 nis varchar 8 nama varchar 40 jalan varchar 50 desa_kelurahan varchar 30 daerah varchar 5 klasifikasi_geografis varchar 20 kecamatan varchar 24 kabupaten_kota varchar 24 propinsi varchar 24 kode_pos varchar 5 kode_area varchar 4 no_telp varchar 10 fax varchar 15 email varchar 40 website varchar 40 jarak_sekolah_terdekat integer thn_buka varchar 4 thn_akhir_renovasi varchar 4 status_sekolah varchar 6 klasifikasi_sekolah varchar 7 kategori_sekolah varchar 15 waktu_penyelenggaraan varchar 10 prog_inklusi varchar 5 jenis_inklusi varchar 40 id_tanah varchar 40 FK
67
Tabel 3.6 Tabel SMP_NEGERI
Name Type Size Key id_smp integer PK, FK keterangan_sk varchar 15 no_sk_terakhir varchar 20 tgl_sk_terakhir date
Tabel 3.7 Tabel SMP_SWASTA
Name Type Size Key id_smp integer PK, FK no_sk_pendirian varchar 20 tgl_sk_pendirian date nds varchar 10 akreditasi_jenjang integer no_sk_akreditasi varchar 20 tgl_sk_akreditasi date nama_yayasan varchar 40 jalan_yayasan varchar 50 desa_kelurahan_yayasan varchar 30 kecamatan_yayasan varchar 24 kabupaten_kota_yayasan varchar 24 propinsi_yayasan varchar 24 no_akte_pendirian varchar 20 tgl_akte_pendirian date yayasan varchar 30
Tabel 3.8 Tabel SMA
Name Type Size Key id_sma integer - PK nss varchar 12 nis varchar 8 nama varchar 40 jalan varchar 50 desa_kelurahan varchar 30 daerah varchar 5 klasifikasi_geografis varchar 20 kecamatan varchar 24 kabupaten_kota varchar 24 propinsi
varchar 24
68
kode_pos varchar 5 kode_area varchar 4 no_telp varchar 10 fax varchar 15 email varchar 40 website varchar 40 jarak_sekolah_terdekat integer thn_buka varchar 4 thn_akhir_renovasi varchar 4 status_sekolah varchar 6 klasifikasi_sekolah varchar 7 waktu_penyelenggaraan varchar 10 prog_inklusi varchar 5 jenis_inklusi varchar 40 id_tanah varchar 40 FK
Tabel 3.9 Tabel SMA_NEGERI
Name Type Size Key id_sma integer PK, FK keterangan_sk varchar 15 no_sk_terakhir varchar 20 tgl_sk_terakhir date
Tabel 3.10 Tabel SMA_SWASTA
Name Type Size Key id_sma integer PK, FK no_sk_pendirian varchar 20 tgl_sk_pendirian date nds varchar 10 akreditasi_jenjang integer no_sk_akreditasi varchar 20 tgl_sk_akreditasi date nama_yayasan varchar 40 jalan_yayasan varchar 50 desa_kelurahan_yayasan varchar 30 kecamatan_yayasan varchar 24 kabupaten_kota_yayasan varchar 24 propinsi_yayasan varchar 24
69
no_akte_pendirian varchar 20 tgl_akte_pendirian date yayasan varchar 30
Tabel 3.11 Tabel SMK_NEGERI
Name Type Size Key id_sma integer PK, FK kelompok_smk varchar 30 tmpt_selenggara_prak varchar 30 nama_tempat varchar 50 tmpt_pel_sistim_ganda varchar 30 jumlah integer
Tabel 3.12 Tabel SMK_SWASTA
Name Type Size Key id_sma integer PK, FK kelompok_smk varchar 30 tmpt_selenggara_prak varchar 30 nama_tempat varchar 50 tmpt_pel_sistim_ganda varchar 30 jumlah integer
Tabel 3.13 Tabel RUANG
Name Type Size Key id_ruang integer PK nama varchar 40 id_tingkat_sekolah integer FK
70
Tabel 3.14 Tabel TANAH
Name Type Size Key id_tanah varchar 40 PK status_pemilikan_tanah vaechar 20 keliling float 25 keliling_pagar float 30 luas_tanah float tanah_bangunan float tanah_halaman_taman float tanah_lap_olahraga float tanah_kebun float tanah_lain float
Tabel 3.15 Tabel LABORATORIUM
Name Type Size Key id_laboratorium integer PK nama varchar 40 id_tingkat_sekolah integer FK
Tabel 3.16 Tabel ALAT_PENDIDIKAN
Name Type Size Key id_alat_pendidikan integer PK mata_pelajaran varchar 40
Tabel 3.17 Tabel BUKU
Name Type Size Key id_buku integer PK mata_pelajaran varchar 40 id_tingkat_sekolah integer FK
Tabel 3.18 Tabel PERLENGKAPAN
Name Type Size Key id_perlengkapan integer PK nama varchar 30
id_tingkat_sekolah integer FK
71
Tabel 3.19 Tabel KARYAWAN
Name Type Size Key nomer_induk_karyawan varchar 30 PK nama varchar 50 tempat_lahir varchar 50 tgl_lahir date tgl_kerja date kelamin varchar 1 tingkat_pendidikan varchar 25 golongan varchar 2 status_kepegawaian varchar 40 jabatan varchar 40 status_jabatan varchar 40 foto longblob username varchar 40 user_password varchar 40 level varchar 30
Tabel 3.20 Tabel GURU
Name Type Size Key nomer_induk_guru varchar 30 PK nama varchar 50 tempat_lahir varchar 50 tgl_lahir date tgl_kerja date kelamin varchar 1 tingkat_pendidikan varchar 25 golongan varchar 2 status_kepegawaian varchar 40 jabatan varchar 40 status_jabatan varchar 40 status_kawin varchar 15 jumlah_anak integer foto longblob
72
Tabel 3.21 Tabel GEDUNG
Name Type Size Key id_gedung integer PK nama varchar 30
Tabel 3.22 Tabel TK_HAS_GEDUNG
Name Type Size Key id_tk integer PK1, FK id_gedung integer PK2, FK tahun_dibangun varchar 4 tahun_terakhir_renovasi varchar 4
Tabel 3.23 Tabel SD_HAS_GEDUNG
Name Type Size Key id_sd integer PK1, FK id_gedung integer PK2, FK tahun_dibangun varchar 4 tahun_terakhir_renovasi varchar 4
Tabel 3.24 Tabel SMP_HAS_GEDUNG
Name Type Size Key id_smp integer PK1, FK id_gedung integer PK2, FK tahun_dibangun varchar 4 tahun_terakhir_renovasi varchar 4
Tabel 3.25 Tabel SMA_HAS_GEDUNG
Name Type Size Key id_sma integer PK1, FK id_gedung integer PK2, FK tahun_dibangun varchar 4 tahun_terakhir_renovasi varchar 4
73
Tabel 3.26 Tabel TK_HAS_GEDUNG_HAS_RUANG
Name Type Size Key id_tk integer PK1, FK id_gedung integer PK2, FK id_ruang integer PK3, FK jumlah integer kondisi varchar PK4 status_milik varchar PK5 luas float
Tabel 3.27 Tabel SD_HAS_GEDUNG_HAS_RUANG
Name Type Size Key id_sd integer PK1, FK id_gedung integer PK2, FK id_ruang integer PK3, FK jumlah integer kondisi varchar PK4 status_milik varchar PK5 luas float luas
Tabel 3.28 Tabel SMP_HAS_GEDUNG_HAS_RUANG
Name Type Size Key id_smp integer PK1, FK id_gedung integer PK2, FK id_ruang integer PK3, FK jumlah integer kondisi varchar PK4 status_milik varchar PK5 luas float luas
Tabel 3.29 Tabel SMA_HAS_GEDUNG_HAS_RUANG
Name Type Size Key id_sma integer PK1, FK id_gedung integer PK2, FK id_ruang integer PK3, FK
jumlah integer
74
kondisi varchar PK4 status_milik varchar PK5 luas float luas
Tabel 3.30 Tabel SD_HAS_BUKU
Name Type Size Key id_sd integer PK1, FK id_buku integer PK2, FK juml_jdl_guru integer juml_eks_guru integer juml_jdl_siswa integer juml_eks_siswa integer
Tabel 3.31 Tabel SMP_HAS_BUKU
Name Type Size Key id_smp integer PK1, FK id_buku integer PK2, FK juml_jdl_guru integer juml_eks_guru integer juml_jdl_siswa integer juml_eks_siswa integer juml_jdl_penunjang integer juml_eks_penunjang integer
Tabel 3.32 Tabel SMA_HAS_BUKU
Name Type Size Key id_sma integer PK1, FK id_buku integer PK2, FK juml_jdl_guru integer juml_eks_guru integer juml_jdl_siswa integer juml_eks_siswa integer juml_jdl_penunjang integer juml_eks_penunjang integer
75
Tabel 3.33 Tabel TK_HAS_PERLENGKAPAN
Name Type Size Key id_tk integer PK1, FK id_perlengkapan integer PK2, FK jumlah integer kondisi varchar 15 PK3
Tabel 3.34 Tabel SD_HAS_PERLENGKAPAN
Name Type Size Key id_sd integer PK1, FK id_perlengkapan integer PK2, FK jumlah integer kondisi varchar 15 PK3
Tabel 3.35 Tabel SMP_HAS_PERLENGKAPAN
Name Type Size Key id_smp integer PK1, FK id_perlengkapan integer PK2, FK jumlah integer tgl_beli date kondisi varchar 15 PK3
Tabel 3.36 Tabel SMA_HAS_PERLENGKAPAN
Name Type Size Key id_sma integer PK1, FK id_perlengkapan integer PK2, FK jumlah integer tgl_beli date kondisi varchar 15 PK3
Tabel 3.37 Tabel SD_HAS_ALAT_PENDIDIKAN
Name Type Size Key id_sd integer PK1, FK id_alat_pendidikan integer PK2, FK
juml_peraga_praktik integer
76
Tabel 3.38 Tabel SMP_HAS_ALAT_PENDIDIKAN
Name Type Size Key id_smp integer PK1, FK id_alat_pendidikan integer PK2, FK juml_peraga integer juml_praktik integer juml_media integer
Tabel 3.39 Tabel SMA_HAS_ALAT_PENDIDIKAN
Name Type Size Key id_sma integer PK1, FK id_alat_pendidikan integer PK2, FK juml_peraga integer juml_praktik integer juml_media integer
Tabel 3.40 Tabel SMP_HAS_LABORATORIUM
Name Type Size Key id_smp integer PK1, FK id_laboratorium integer PK2, FK juml_jam_pakai integer
Tabel 3.41 Tabel SMA_HAS_LABORATORIUM
Name Type Size Key id_sma integer PK1, FK id_laboratorium integer PK2, FK juml_jam_pakai integer
Tabel 3.42 Tabel SD_HAS_BUKU_SD
Name Type Size Key id_sd integer PK1, FK id_buku_sd integer PK2, FK jumlah integer
77
Tabel 3.43 Tabel RIWAYAT_BEKERJA_TK
Name Type Size Key id_tk integer PK1, FK nomer_induk_karyawan varchar 30 PK2, FK jabatan varchar 30 sk varchar 30 tgl_mulai_kerja date tgl_selesai date
Tabel 3.44 Tabel RIWAYAT_BEKERJA_SD
Name Type Size Key id_sd integer PK1, FK nomer_induk_karyawan varchar 30 PK2, FK jabatan varchar 30 sk varchar 30 tgl_mulai_kerja date tgl_selesai date
Tabel 3.45 Tabel RIWAYAT_BEKERJA_SMP
Name Type Size Key id_smp integer PK1, FK nomer_induk_karyawan varchar 30 PK2, FK jabatan varchar 30 sk varchar 30 tgl_mulai_kerja date tgl_selesai date
Tabel 3.46 Tabel RIWAYAT_BEKERJA_SMA
Name Type Size Key id_sma integer PK1, FK nomer_induk_karyawan varchar 30 PK2, FK jabatan varchar 30 sk varchar 30 tgl_mulai_kerja date tgl_selesai date
78
Tabel 3.47 Tabel RIWAYAT_MENGAJAR_TK
Name Type Size Key id_tk integer PK1, FK nomer_induk_guru varchar 30 PK2, FK status_guru varchar 30 PK3, FK jabatan varchar 30 sk varchar 30 tgl_mulai_kerja date tgl_selesai date tgl_berhenti date sk_pemberhentian varchar 30
Tabel 3.48 Tabel RIWAYAT_MENGAJAR_SD
Name Type Size Key id_sd integer PK1, FK nomer_induk_guru varchar 30 PK2, FK status_guru varchar 30 PK3, FK jabatan varchar 30 sk varchar 30 tgl_mulai_kerja date tgl_selesai date tgl_berhenti date sk_pemberhentian varchar 30
Tabel 3.49 Tabel RIWAYAT_MENGAJAR_SMP
Name Type Size Key id_smp integer PK1, FK nomer_induk_guru varchar 30 PK2, FK status_guru varchar 30 PK3, FK jabatan varchar 30 sk varchar 30 tgl_mulai_kerja date tgl_selesai date tgl_berhenti date sk_pemberhentian varchar 30
79
Tabel 3.50 Tabel RIWAYAT_MENGAJAR_SMA
Name Type Size Key id_sma integer PK1, FK nomer_induk_guru varchar 30 PK2, FK status_guru varchar 30 PK3, FK jabatan varchar 30 sk varchar 30 tgl_mulai_kerja date tgl_selesai date tgl_berhenti date sk_pemberhentian varchar 30
Table 3.51 Tabel USER_KABUPATEN
Name Type Size Key id_user_kabupaten integer PK username varchar 20 userpassword varchar 30 level char 1
Tabel 3.52 Tabel SISWA
Name Type Size Key id_siswa varchar 30 PK1 id_sma integer PK2, FK id_smp integer PK3, FK id_sd integer PK4, FK id_tk integer PK5, FK nama varchar 50 tempat_lahir varchar 50 tgl_lahir date agama varchar 10 kelamin char 1 jalan varchar 50 desa varchar 30 kecamatan varchar 24 kabupaten varchar 24 propinsi varchar 24 foto blob username varchar 20 userpasswod varchar 30 level char 1
80
Tabel 3.53 Tabel NILAI
Name Type Size Key id_siswa varchar 30 PK1, FK nama_mapel varchar 50 PK2 semester varchar 10 PK3 tahun_ajaran varchar 10 PK4 jenis_nilai varchar 10 PK5 nilai float keterangan varchar 200 yang_mengupdate varchar 50
Tabel 3.54 Tabel UAN
Name Type Size Key id_uan integer PK1 id_mata_pelajaran integer PK2, FK last_update timestamp last_sinkron timestamp
Tabel 3.55 Tabel KELAS
Name Type Size Key id_kelas integer PK1 id_mata_pelajaran integer PK2, FK id_guru integer PK3, FK pertemuan_1 time pertemuan_2 time pertemuan_3 time
Tabel 3.56 Tabel TINGKAT
Name Type Size Key id_tingkat integer PK tingkat varchar 10
Tabel 3.57 Tabel PARALEL
Name Type Size Key id_paralel integer PK1 id_guru integer PK2, FK
81
kelas_paralel varchar 15 group_penjurusan varchar 10
Tabel 3.58 Tabel PERTEMUAN
Name Type Size Key id_pertemuan integer PK1 id_kelas integer PK2, FK hari varchar 10 jam time
Tabel 3.59 Tabel STATUS_MASUK
Name Type Size Key id_status_masuk integer PK1 id_siswa varchar 30 PK2, FK status_masuk varchar 15 tingkat varchar 2 semester varchar 10 waktu date tahun_ajaran varchar 10 nilai_kelulusan float aktif integer 1 asal_sekolah Varchar 5
Tabel 3.60 Tabel STATUS_NAIK
Name Type Size Key id_status_naik integer PK1 id_siswa varchar 30 PK2, FK tingkat varchar 2 semester varchar 10 waktu date tahun_ajaran varchar 10 aktif integer 1
Tabel 3.61 Tabel STATUS_KELUAR
Name Type Size Key id_status_keluar integer PK1 id_siswa varchar 30 PK2, FK
82
tingkat varchar 2 semester varchar 10 waktu date keterangan varchar 10 alasan text aktif integer 1
Tabel 3.62 Tabel STATUS_LULUS
Name Type Size Key id_status_lulus integer PK1 id_siswa varchar 30 PK2, FK status_lulus varchar 10 waktu date tahun_ajaran varchar 10
Tabel 3.63 Tabel PENJURUSAN
Name Type Size Key id_penjurusan integer PK1 id_siswa varchar 30 PK2, FK group_penjurusan varchar 10 kriteria varchar 10 tahun_ajaran varchar 10
Tabel 3.64 Tabel RIWAYAT_TK
Name Type Size Key id_siswa varchar 30 PK1, FK id_tk integer PK2, FK tahun_ajaran varchar 10
Tabel 3.65 Tabel RIWAYAT_SD
Name Type Size Key id_siswa varchar 30 PK1, FK id_sd integer PK2, FK tahun_ajaran varchar 10
83
Tabel 3.66 Tabel RIWAYAT_SMP
Name Type Size Key id_siswa varchar 30 PK1, FK id_smp integer PK2, FK tahun_ajaran varchar 10
Tabel 3.67 Tabel RIWAYAT_SMA
Name Type Size Key id_siswa varchar 30 PK1, FK id_sma integer PK2, FK tahun_ajaran varchar 10
Tabel 3.68 Tabel TINGKAT_SEKOLAH
Name Type Size Key id_tingkat_sekolah integer PK keterangan varchar 10
84
bagian dari
bagian dari bagian dari
bagian dari
bagian dari
2
SMP
id_smp [PK] nss nis nama jalan desa_kelurahan daerah klasifikasi_geografis kecamatan kabupaten_kota propinsi kode_pos kode_area no_telp fax email website jarak_sekolah_terdekat bentuk_sekolah status_sekolah klasifikasi_sekolah kategori_sekolah waktu_penyelenggaraan thn_akhir_renovasi prog_inklusi jenis_inklusi tanah [FK]
SMP_NEGERI
id_smp [PK] [FK] keterangan_sk no_sk_terakhir tgl_sk_terakhir
SMP_SWASTA
id_smp [PK] [FK] no_sk_pendirian tgl_sk_pendirian nds akreditasi_jenjang no_sk_akreditasi tgl_sk_akreditasi nama_yayasan jalan_yayasan desa_kelurahan_yayasan kecamatan_yayasan kabupaten_kota_yayasan propinsi_yayasan no_akte_pendirian tgl_akte_pendirian yayasan
SMA_NEGERI
id_sma [PK] [FK] keterangan_sk no_sk_terakhir tgl_sk_terakhir
SMA_SWASTA
id_sma [PK] [FK] no_sk_pendirian tgl_sk_pendirian nds akreditasi_jenjang no_sk_akreditasi tgl_sk_akreditasi nama_yayasan jalan_yayasan desa_kelurahan_yayasan kecamatan_yayasan kabupaten_kota_yayasan propinsi_yayasan no_akte_pendirian tgl_akte_pendirian yayasan
SMK_NEGERI
id_sma [PK] [FK] kelompok_smk tmpt_selenggara_prak nama_tempat id_tmpt_pel_sistim_ganda jumlah
1
SMA
id_sma [PK] nss nis nama jalan desa_kelurahan daerah klasifikasi_geografis kecamatan kabupaten_kota propinsi kode_pos kode_area no_telp fax email website jarak_sekolah_terdekat thn_buka status_sekolah klasifikasi_sekolah waktu_penyelenggaraan thn_akhir_renovasi prog_inklusi jenis_inklusi tanah [FK]
SMK_SWASTA
id_sma [PK] [FK] kelompok_smk tmpt_selenggara_prak nama_tempat id_tmpt_pel_sistim_ganda jumlah
3.2.2 Relasi Antar Tabel
Gambar 3.9 Relasi Antar Tabel
13
14
85
punya punya
punya
punya
punya punya
punya
punya
21
5
6
RIWAYAT_MENGAJAR_SMA id_sma [PK1] [FK] no_induk_guru [PK2] [FK] status_guru [PK3] [FK] jabatan sk tgl_mulai_kerja tgl_selesai tgl_berhenti sk_pemberhentian
RIWAYAT_MENGAJAR_SMP id_smp [PK1] [FK] no_induk_guru [PK2] [FK] status_guru [PK3] [FK] jabatan sk tgl_mulai_kerja tgl_selesai tgl_berhenti sk_pemberhentian
RIWAYAT_BEKERJA_SMP id_smp [PK1] [FK] no_induk_karyawan [PK2] [FK] jabatan sk tgl_mulai_kerja tgl_selesai
RIWAYAT_BEKERJA_SMA id_sma [PK1] [FK] no_induk_karyawan [PK2] [FK] jabatan sk tgl_mulai_kerja tgl_selesai
GURU
no_induk_guru [PK] nama tempat_lahir tgl_lahir tgl_kerja kelamin tingkat_pendidikan golongan status_kepegawaian jabatan status_jabatan foto status_kawin jumlah_anak
KARYAWAN
no_induk_karyawan [PK] nama tempat_lahir tgl_lahir tgl_kerja kelamin tingkat_pendidikan golongan status_kepegawaian jabatan status_jabatan foto username user_password level
Gambar 3.9 Relasi Antar Tabel (lanjutan.)
86
punya punya
punya
punya
punya
punya punya
punya
TK
id_tk [PK] nss nis nama jalan desa_kelurahan daerah kecamatan kabupaten_kota propinsi kode_pos kode_area no_telp fax email website thn_buka status_sekolah gugus_sekolah kategori_sekolah manajemen kurikulum tanah_milik luas_milik tanah_sewa luas_sewa tanah_pinjam luas_pinjam tempat_bermain_dalam tempat_bermain_luar
SD
id_sd [PK] nss nis nama jalan desa_kelurahan daerah kategori_wilayah kecamatan kabupaten_kota propinsi kode_pos kode_area no_telp fax email website status_sekolah waktu_penyelenggaraan gugus_sekolah kategori_sekolah prog_inklusi jenis_inklusi mbs tanah_milik luas_milik tanah_sewa luas_sewa tanah_pinjam luas_pinjam
3
4
6
5
RIWAYAT_MENGAJAR_TK id_tk [PK1] [FK] no_induk_guru [PK2] [FK] status_guru [PK3] [FK] jabatan sk tgl_mulai_kerja tgl_selesai tgl_berhenti sk_pemberhentian
RIWAYAT_MENGAJAR_SD id_sd [PK1] [FK] no_induk_guru [PK2] [FK] status_guru [PK3] [FK] jabatan sk tgl_mulai_kerja tgl_selesai tgl_berhenti sk_pemberhentian
RIWAYAT_BEKERJA_TK id_tk [PK1] [FK] no_induk_karyawan [PK2] [FK] jabatan sk tgl_mulai_kerja tgl_selesai
RIWAYAT_BEKERJA_SD id_sd [PK1] [FK] no_induk_karyawan [PK2] [FK] jabatan sk tgl_mulai_kerja tgl_selesai
Gambar 3.9 Relasi Antar Tabel (lanjutan.)
15
16
87
punya punya punya punya punya punya punya punya
punya punya punya punya
punya punya punya punya
GEDUNG id_gedung [PK] nama
RUANG id_ruang [PK] nama id_tingkat_sekolah [FK]
21 43
TK_HAS_GEDUNG id_tk [PK1] [FK] id_gedung [PK2] [FK] tahun_dibangun tahun_terakhir renovasi
SD_HAS_GEDUNG id_sd [PK1] [FK] id_gedung [PK2] [FK] tahun_dibangun tahun_terakhir renovasi
SMP_HAS_GEDUNG id_smp [PK1] [FK] id_gedung [PK2] [FK] tahun_dibangun tahun_terakhir renovasi
SMA_HAS_GEDUNG id_sma [PK1] [FK] id_gedung [PK2] [FK] tahun_dibangun tahun_terakhir renovasi
SMA_HAS_GEDUNG_HAS_RUANG id_sma [PK1] [FK] id_gedung [PK2] [FK] id_ruang [PK3] [FK] jumlah kondisi [PK4] status_milik [PK5] luas
SMP_HAS_GEDUNG_HAS_RUANG id_smp [PK1] [FK] id_gedung [PK2] [FK] id_ruang [PK3] [FK] jumlah kondisi [PK4] status_milik [PK5] luas
SD_HAS_GEDUNG_HAS_RUANG id_sd [PK1] [FK] id_gedung [PK2] [FK] id_ruang [PK3] [FK] jumlah kondisi [PK4] status_milik [PK5] luas
TK_HAS_GEDUNG_HAS_RUANG id_TK [PK1] [FK] id_gedung [PK2] [FK] id_ruang [PK3] [FK] jumlah kondisi [PK4] status_milik [PK5] luas
Gambar 3.9 Relasi Antar Tabel (lanjutan.)
88
punya
punya
punya punya
punya punya
punya punya
punya punya
punya
LABORATORIUM
id_laboratorium [PK] nama id_tingkat_sekolah [FK]
1 2
PERLENGKAPAN
id_perlengkapan [PK] nama id_tingkat_sekolah [FK]
TANAH
id_tanah [PK] status_pemilikan_tanah_sm keliling keliling_pagar luas_tanah tanah_bangunan tanah_halaman_taman tanah_lap_olahraga tanah_kebun tanah_lain
SMA_HAS_PERLENGKAPAN
id_sma [PK1] [FK] id_perlengkapan [PK2] [FK] jumlah tgl_beli kondisi [PK3]
SMP_HAS_PERLENGKAPAN
id_smp [PK1] [FK] id_perlengkapan [PK2] [FK] jumlah tgl_beli kondisi [PK3]
SMA_HAS_LABORATORIUM
id_smp [PK1] [FK] id_laboratorium [PK2] [FK] juml_jam_pakai
SMP_HAS_LABORATORIUM
id_smp [PK1] [FK] id_laboratorium [PK2] [FK] juml_jam_pakai
Gambar 3.9 Relasi Antar Tabel (lanjutan.)
76
89
punya punya
punya punya
punya
punya
punya
punya
punya
punya
punya
punya
punya
punya
BUKU
id_buku [PK] mata_pelajaran id_tingkat_sekolah [FK]
1
SMP_HAS_BUKU
id_smp [PK1] [FK] id_buku [PK2] [FK] juml_jdl_guru juml_eks_guru juml_jdl_siswa juml_eks_siswa juml_jdl_penunjang juml_eks_penunjang
SMA_HAS_BUKU
id_sma [PK1] [FK] id_buku [PK2] [FK] juml_jdl_guru juml_eks_guru juml_jdl_siswa juml_eks_siswa juml_jdl_penunjang juml_eks_penunjang
SMA_HAS_ALAT_PENDIDIKAN
id_sma [PK1] [FK] id_alat_pendidikan [PK2] [FK] juml_peraga juml_praktik juml_media
SMP_HAS_ALAT_PENDIDIKAN
id_smp [PK1] [FK] id_alat_pendidikan [PK2] [FK] juml_peraga juml_praktik juml_media
SD_HAS_BUKU
id_sd [PK1] [FK] id_buku [PK2] [FK] juml_jdl_guru juml_eks_guru juml_jdl_siswa juml_eks_siswa
2
ALAT_PENDIDIKAN
id_alat_pendidikan [PK] mata_pelajaran id_tingkat_sekolah [FK] 3
SD_HAS_ALAT_PENDIDIKAN
id_sd [PK1] [FK] id_alat_pendidikan [PK2] [FK] juml_peraga_praktik
Gambar 3.9 Relasi Antar Tabel (lanjutan.)
7
90
punya punya
punya punya
punya punya
32 BUKU_SD
id_buku_sd [PK] jenis
SD_HAS_BUKU_SD
id_sd [PK1] [FK] id_buku_sd [PK2] [FK] jumlah
SD_HAS_PERLENGKAPAN
id_sd [PK1] [FK] id_perlengkapan [PK2] [FK] jumlah kondisi [PK3]
TK_HAS_PERLENGKAPAN
id_tk [PK1] [FK] id_perlengkapan [PK2] [FK] jumlah kondisi [PK3]
Gambar 3.9 Relasi Antar Tabel (lanjutan.)
6
TINGKAT_SEKOLAH
id_tingkat_sekolah [PK] keterangan 7
91
punya punya punya punya
SISWA id_siswa [PK] id_tk [FK] id_sd [FK] id_smp [FK] id_sma [FK] nama tempat_lahir tgl_lahir agama kelamin jalan desa kecamatan kabupaten propinsi username password level foto
1 2 3 4
6
7
8
9
12
17
18
Gambar 3.9 Relasi Antar Tabel (lanjutan.)
21
10
11
19
20
92
punya
punya
punya
punya
SISWA_HAS_UAN id_uan [PK1] [FK] id_siswa [PK2] [FK] nilai
mengambil UAN id_uan [PK] id_mata_pelajaran [FK]
MATA_PELAJARAN id_mata_pelajaran [PK] nama_mapel
NILAI id_siswa [PK] nama_mapel [PK] semester [PK] jenis_nilai [PK] tahun_ajaran [PK] nilai keterngan user_update
KELAS id_kelas [PK] id_mata_pelajaran [FK] id_guru [FK] pertemuan_1 pertemuan_2 pertemuan_3
SISWA_HAS_KELAS id_kelas [PK1] [FK] id_siswa [PK2] [FK]
6
diambil
PERTEMUAN id_pertemuan [PK]
TINGKAT id_tingkat [PK] tingkat
PARALEL id_paralel [PK] id_tingkat [FK] id_guru [FK] kelas_paralel group_pejurusan i
mengambil
diambil
Gambar 3.9 Relasi Antar Tabel (lanjutan.)
NILAI_UAN id_uan [PK] id_mata_pelajaran [FK] tahun_ajaran nilai
21
5
93
STATUS_MASUK id_status_masuk [PK] id_siswa [FK] status_masuk tingkat semester waktu tahun_ajaran nilai_kelulusan aktif asal sekolah
STATUS_NAIK id_status_masuk [PK] id_siswa [FK] tingkat semester waktu tahun_ajaran aktif
STATUS_MENGULANG id_status_masuk [PK] id_siswa [FK] tingkat semester waktu tahun_ajaran aktif
STATUS_LULUS id_status_masuk [PK] id_siswa [FK] status_lulus waktu tahun_ajaran
STATUS_KELUAR id_status_masuk [PK] id_siswa [FK] status_masuk tingkat semester waktu alasan keterangan tahun ajaran
PENJURUSAN id_penjurusan [PK] id_siswa [FK] group_penjurusan kriteria tahun_ajaran
7
8
9
10
11
12
SEMESTER_BERJALAN semester_berjalan awal_semester_berjalan akhir_semester_berjalan tahun_ajaran rencana_penerimaan_laki rencana_penerimaan_perempuan
Gambar 3.9 Relasi Antar Tabel (lanjutan.)
94
RIWAYAT_TK id_siswa id_tk tahun_ajaran
15
17RIWAYAT_SMP
id_siswa id_smp tahun_ajaran
13
19
RIWAYAT_SD id_siswa id_sd tahun_ajaran
16
18RIWAYAT_SMA
id_siswa id_sma tahun_ajaran
14
20
Gambar 3.9 Relasi Antar Tabel (lanjutan.)
95
3.2.3 Bagan Alir Sistem (System Flowchart)
a. Proses Sekolah
Backup Database Sinkron Sekolah
dengan mysqldump
Mulai
Hapus Seluruh Record di
Database Sinkron Sekolah
Selesai
Gambar 3.10 Bagan Alir Sistem Sinkronisasi Keluar Sekolah
96
Restore Database Data Awal Sekolah
Adadata awal sekolah
di Database Sekolah ?
Selesai
Mulai
Upload File Data Sinkron Awal
Hapus seluruh record di Database
Awal Sekolah
InsertData Awal Sekolah
di Database Sekolah
tidak
ada
Gambar 3.11 Bagan Alir Sistem Sinkronisasi Data Awak Keluar Sekolah
97
Ada record yang sama di
DatabaseSekolah?
Mulai
Upload File Data Sinkron
Kabupaten
Cek record jika flag = 1
Cek recordjika flag = 2
Cek recordjika flag = 3
UpdateDatabase Sekolah
DeleteDatabase Sekolah
InsertDatabase Sekolah
Hapus seluruh record di Database
Sinkron Kabupaten
Restore Database Sinkron
Kabupaten
Selesaiya
ada
tidak
tidak
ya
ya
ya
Cek jumlah record
di Database Sekolah > 0
tidak
tidak
Gambar 3.12 Bagan Alir Sistem Sinkronisasi Kedalam Sekolah
98
b. Proses Kabupaten
Pilih Sekolah
Mulai
Backup Database Data Awal Sekolah
dengan mysqldump
Selesai
Hapus Seluruh Record di
Database Awal Sekolah
Gambar 3.13 Bagan Alir Sistem Sinkronisasi Data Awal Keluar Kabupaten
99
Pilih Sekolah
Mulai
Backup Database Sinkron
Kabupaten dengan mysqldump
Selesai
Hapus Seluruh Record di
Database Sinkron Kabupaten
Gambar 3.14 Bagan Alir Sistem Sinkronisasi Keluar Kabupaten
100
Ada record yang sama di
DatabaseSekolah?
Restore Database Sinkron Sekolah
Mulai
Upload File Data Sinkron Sekolah
Cek recordjika flag = 1
Cek recordjika flag = 2
Cek recordjika flag = 3
UpdateDatabase
Kabupaten
DeleteDatabase
Kabupaten
InsertDatabase
Kabupaten
Hapus seluruh record di Database
Sinkron Sekolah
Selesaiya
ada
tidak
tidak
ya
ya
ya
tidak
tidak Cek jumlah record
di Database Kabupaten > 0
Gambar 3.15 Bagan Alir Sistem Sinkronisasi Kedalam Kabupaten
101
3.2.4 Perancangan Teknologi Sinkronisasi Data
1. Metode Sinkronisasi Data
Sinkronisasi data pada kasus ini menggunakan bantuan database
sementara (temprory) untuk menampung perubahan atau manipulasi data pada
tabel di database utama. Bila terjadi aktivitas manipulasi data suatu tabel utama
maka akan setiap tabel tersebut akan menjalankan triggers. Triggers tersebut akan
menyimpan data yang telah terjadi perubahan ke database sementara, dan
menambahkan id flag untuk menandai perubahan data.
ID Flag Proses 1 insert 2 update 3 delete
Tabel 3.69 Kondisi Flag
Database sementara dibawa ke kabupaten atau ke sekolah dalam bentuk
file yang dapat disimpan pada media penyimpanan. Pembuatan file tersebut
menggunakan metode backup database dengan memanfaatkan tools mysqldump.
Pada server tujuan, data yang berupa file tersebut akan di-restore ulang
sehingga menghasilkan kembali database sementara. Database sementara ini
kemudian dianalisa datanya dengan bantuan stored procedures. Stored
Procedures membaca id flag untuk menentukan proses selanjutnya dan membaca
id sinkron sebagai antriannya (lihat Tabel 3.69).
102
2. Arsitektur Sistem
Setiap sekolah mempunyai database masing-masing yang hanya berisi data
sekolah tersebut, sedangkan pada server kabupaten terdapat satu database yang
berisi keseluruhan dari data-data sekolah pada kabupaten tersebut. Untuk lebih
jelasnya dapat dilihat pada Gambar 3.16
Gambar 3.16 Arsitektur Desain Sinkronisasi
103
3. Kebutuhan Sistem
Dalam proses sinkronisasi diperlukan penambahan field di tiap tabel pada
database sinkronisasi. Struktur field dan tipe datanya dapat dilihat pada Tabel
3.70.
Nama Kolom Tipe Data Keterangan flag integer id_sinkon integer auto increment
Tabel 3.70 Penambahan Kolom di Database Sinkronisasi
Kolom flag digunakan untuk menandai data sinkronisasi telah mengalami
perubahan di database sumber yang kemudian akan dilakukan hal sama di
database tujuan.
Kolom id_sinkron digunakan sebagai daftar antrian data sinkronisasi.
Urutan pertama akan diproses terlebih dahulu.
Proses sinkronisasi membutuhkan database sinkronisasi untuk
menampung record-record yang akan disinkronkan keluar sistem. Database
sinkronisasi akan di-dump ke dalam bentuk file sinkronisasi untuk di bawa ke
server tujuan. Di server tujuan file tersebut akan di-undump dan digunakan untuk
proses sinkronisasi kedalam server tujuan. Untuk jelasnya dapat dilihat pada tabel
3.71 dan tabel 3.72.
104
Proses Database Utama Database Sinkronisasi tk sinkron_tk sd sinkron_sd
smp sinkron_smp Sinkronisasi Keluar
sma sinkron_sma tk sinkron_kabupaten_tk sd sinkron_kabupaten_sd
smp sinkron_kabupaten_smp Sinkronisasi Kedalam
sma sinkron_kabupaten_sma Sinkronisasi Awal tk, sd, smp, sma data_awal_sekolah
Tabel 3.71 Daftar Database Sinkronisasi yang Diperlukan pada Proses Sekolah
Proses Database Utama Database Sinkronisasi sinkron_kabupaten_tk sinkron_kabupaten_sd
sinkron_kabupaten_smpSinkronisasi
Keluar kabupaten sinkron_kabupaten
sinkron_kabupaten_smasinkron_tk sinkron_sd
sinkron_smp Sinkronisasi
Kedalam kabupaten
sinkron_sma Sinkronisasi
Awal kabupaten data_awal_sekolah
Tabel 3.72 Daftar Database Sinkronisasi yang Diperlukan pada Proses Kabupaten
105
3.2.5 Desain User Interface
1. Sekolah
Gambar 3.17 Sinkronisasi Keluar Sekolah
Gambar 3.18 Sinkronisasi Kedalam Sekolah
Gambar 3.19 Sinkronisasi Awal Sekolah
Browse
Upload
File
Sinkronsiasi Kedalam
Browse
Upload
File
Sinkronsiasi Awal
Nama Tabel Tambah Data Ubah Data Hapus Data guru 10 5 3
karyawan 0 2 0 kelas 0 0 0 mapel 0 0 0
… … … …
Sinkronsiasi Keluar
[ Sinkronsiasi Data ]
106
2. Kabupaten
Gambar 3.20 Sinkronisasi Kedalam Kabupaten
Gambar 3.21 Sinkronisasi Keluar Kabupaten
Gambar 3.22 Sinkronisasi Awal Sekolah Kabupaten
Pilih
Kecamatan
Sinkronsiasi Keluar
Long Apari V
Jenjang Pendidikan
Sekolah
SMA V
SMA NEGERI I V
Browse
Upload
File
Sinkronsiasi Kedalam
Pilih
Kecamatan
Sinkronsiasi Awal
Long Apari V
Jenjang Pendidikan
Sekolah
SMA V
SMA NEGERI I V
BAB IV
IMPLEMENTASI SISTEM
Sistem sinkronisasi data ini digunakan untuk memindahkan data yang baru
atau data yang mengalami perubahan di database sekolah, dibawa ke kabupaten.
Begitupun sebaliknya bila ada perubahan data di database kabupaten, perubahan
tersebut dibawa ke sekolah. Data yang disinkronkan pada sistem ini dalam bentuk
file atau softcopy yang disimpan kedalam removable disk.
Sinkronisasi data dicoba dengan cara simulasi yang memanfaatkan server
yang telah di-bundled Apache 2, PHP 5, dan MySQL 5. Agar memudahkan
simulasi digunakan tools Server2Go 1.4.3.
Spesifikasi komputer yang digunakan yaitu:
Prossesor : Intel Pentium 4 CPU 2.4 Ghz
Memori : 512 MB DDR
Motherboard : Intel D865 PERL
Harddisk : 40GB
Bahasa pemrograman yang dipakai untuk membuat sistem ini antara lain :
HTML dan Javascript untuk mendesain web, dan PHP 5 untuk query database,
memanggil stored procedures, upload file, eksekusi mysqldump, dan lain-lainya.
Sinkronisasi pada Sistem Informasi Sekolah dipecah menjadi dua bagian
yaitu sinkronisasi yang berjalan di sekolah dengan sinkronisasi yang berjalan di
kabupaten.
107
108
a. Sinkronisasi yang berjalan di sekolah terdiri dari:
• Sinkronisasi kedalam sekolah
Sinkronisasi ini akan memproses file hasil sinkronisasi keluar
kabupaten yang berisi data-data guru dan karyawan PNS baru atau
yang mengalami perubahan.
• Sinkronisasi keluar sekolah
Sinkronisasi ini akan menjalankan program mysqldump untuk
men-dump database hasil penampungan (database sinkron) dari
data-data baru atau yang berubah di database sekolah untuk dibawa
ke kabupaten.
• Sinkronisasi awal sekolah
Sinkronisasi ini akan memproses file hasil sinkronisasi awal
kabupaten yang berisi data awal sekolah tersebut.
b. Sinkronisasi yang berjalan di kabupaten terdiri dari:
• Sinkronisasi kedalam kabupaten
Sinkronisasi ini akan memproses file hasil sinkronisasi keluar
sekolah yang berisi data-data siswa dan perlengkapan sekolah yang
baru atau mengalami perubahan.
• Sinkronisasi keluar kabupaten
Sinkronisasi ini akan menjalankan program mysqldump untuk men-
dump database hasil penampungan (database sinkron) dari data
guru, karyawan PNS baru atau yang berubah di database
kabupaten untuk dibawa ke sekolah tujuan.
109
• Sinkronisasi awal kabupaten
Sinkronisasi ini akan menjalankan program mysqldump untuk men-
dump database awal sekolah yang berisi data awal sekolah seperti
NSS, NIS, dan nama sekolah. Hasilnya akan dibawa ke sekolah
sebagai sinkronisasi awal.
4.1 Tampilan Sekolah
4.1.1 Form Login
Gambar 4.1 Halaman Login Sekolah
Form pada gambar 4.1 digunakan untuk login ke halaman khusus super
admin. Saat tombol login diklik, maka sistem akan mengecek username dan
userpassword. Bila valid maka program akan membuka form selanjutnya.
110
<?php include "connect.php"; $username = $_POST['username']; $password = $_POST['userpassword'];
$query_login = "select * from super_admin where username = '".$username."' and user_password = md5('".$password."')";
$execute_login = mysqli_query($link, $query_login); if($execute_login) { $hasil = mysqli_fetch_row($execute_login); $hasil_username = $hasil[0]; } if($hasil_username != '') { session_start(); $_SESSION['username_super_admin'] = $hasil_username; $_SESSION['password_super_admin'] = $password; header("location:administrator_lanjutan.php"); } else { echo "<script>"; echo "alert('Login Gagal...');"; echo "document.location.href='administrator.php';"; echo "</script>"; } ?>
Gambar 4.2 Listing Login Super Admin SMP. Gambar 4.2 Listing Login Super Admin SMP.
4.1.2 Form Sinkronisasi Keluar 4.1.2 Form Sinkronisasi Keluar
Gambar 4.3 Halaman Sinkronisasi Keluar Sekolah.
111
Pada gambar 4.3 program menampilkan tabel sinkron beserta banyaknya
data yang ditambah, diubah dan dihapus. Potongan listing untuk menampilkannya
dapat dilihat di gambar 4.4:
<table border="0" cellspacing="1" cellpadding="2" align="center"> <thead> <tr> <th width="250">Nama Tabel</th> <th width="250">Tambah Data</th> <th width="250">Ubah Data</th> <th width="250">Hapus Data</th> </tr> </thead> <tbody> <?php require ("sinkron_setting_smp.php"); $counter = 1; for ($i = 0; $i < count($sinkron_smp); $i++) { if ($counter % 2 != 0) { echo "<tr class=\"odd_tr\">"; } else { echo "<tr class=\"even_tr\">"; } $counter = $counter + 1; echo "<td>$sinkron_smp[$i]</td>"; for ($j = 1; $j <= 3; $j++) { $sql = "SELECT count(*) FROM sinkron_smp.$sinkron_smp[$i] WHERE flag = $j"; $query = mysqli_query($link,$sql); $hasil = mysqli_fetch_row($query); if($hasil[0] > 1000){echo "<td style=\"color:red\"><b>$hasil[0]</b></td>";} else if($hasil[0] == 0){echo "<td>-</td>";} else echo "<td>$hasil[0]</td>"; } echo "</tr>"; } ?> <tr> <td colspan="4" align="right">[ <a href="sinkron_keluar">Daftar File Backup</a> ] [ <a href="#" onclick="sinkronConfirm()">Sinkronisasi Data</a> ]</td> </tr> </tbody> </table>
Gambar 4.4 Listing Untuk Tabel Sinkronisasi Keluar Sekolah.
Setelah menampilkan tabel sinkron, program akan menjalankan program
mysqldump untuk mengubah data sinkron tersebut ke dalam bentuk file.
<?php if ($_GET['action'] == 'sinkron') { $sql = "SELECT nama, nss FROM smp"; $nama = mysqli_query($link,$sql); echo "<fieldset id=\"main-field\">"; while ($hasil = mysqli_fetch_array($nama))
112
{ echo "<legend>Hasil Sinkronisasi $hasil[0]</legend>"; $nss = $hasil[1]; } $repo = "sinkron_keluar/"; $file = "sinkron_smp_".$date."_".$nss.".sql"; if ($password_db != "") { $pass = "-p".$password_db; } else { $pass = ""; }
exec("mysqldump -u".$user." -h".$host." ".$pass." --port=".$port." --database sinkron_smp > ".$repo."".$file." -R --hex-blob");
$sqltables = "SHOW TABLES FROM sinkron_smp"; $querytables = mysqli_query($link, $sqltables); while ($hasil = mysqli_fetch_row($querytables)) { for ($j = 1; $j <= 3; $j++) { $sql = "TRUNCATE sinkron_smp.$hasil[0]"; mysqli_query($link, $sql); } } mysqli_close($link); echo "<a href=\"$repo$file\" target=\"_BLANK\">$file</a>"; echo "</fieldset>"; } ?>
Gambar 4.5 Listing Untuk Menjalankan mysqldump
Pada Proses Sinkronisasi Keluar Sekolah.
Koneksi ke database yang dipakai pada seluruh halaman sistem informasi
sekolah adalah seperti gambar 4.6:
<?php $db = "smp"; $host = "localhost"; $password_db = ""; $user = "root"; $port = 3309;
$link = mysqli_connect($host,$user,$password_db, $db, $port) or die ("Koneksi Gagal");
$query_nama_smp = "select nama, kecamatan from smp"; $execute = mysqli_query($link, $query_nama_smp); if($execute) { $hasil = mysqli_fetch_row($execute); $nama_sekolah = $hasil[0]; $kecamatan_sekolah = $hasil[1]; } $path_foto = "D:/s2go/htdocs/smp/images/"; ?>
Gambar 4.6 Listing Koneksi Database.
113
Gambar 4.7 adalah potongan listing program yang mendeklarasikan array-
array dan koneksi yang dibutuhkan pada proses sinkronisasi di sekolah.
<?php include "connect.php"; if (empty($port)) { $port = 3306; } $date = date("dmY_His"); $sinkron_smp = array( "guru", "karyawan", "nilai", "nilai_uan", "riwayat_bekerja_smp", "riwayat_mengajar_smp", "riwayat_pendidikan_guru", "riwayat_pendidikan_karyawan", "riwayat_smp"; "riwayat_status_gol_guru", "riwayat_status_gol_karyawan", "siswa", "smp", "smp_has_alat_pendidikan", "smp_has_buku", "smp_has_gedung", "smp_has_gedung_has_ruang", "smp_has_laboratorium", "smp_has_perlengkapan", "smp_negeri", "smp_swasta", "status_keluar", "status_lulus", "status_masuk", "status_mengulang", "status_naik", "tanah"); $sp_sinkron_kabupaten = array( "sp_sinkron_guru", "sp_sinkron_karyawan", "sp_sinkron_riwayat_bekerja_smp", "sp_sinkron_riwayat_mengajar_smp", "sp_sinkron_riwayat_pendidikan_guru", "sp_sinkron_riwayat_pendidikan_karyawan", "sp_sinkron_riwayat_status_gol_guru", "sp_sinkron_riwayat_status_gol_karyawan"); ?>
Gambar 4.7 Listing Untuk Setting Sinkronisasi Sekolah
Ada dua array yang didefinisikan, array pertama $sinkron_smp untuk
menampung daftar tabel sinkron yang akan digunakan pada proses sinkronisasi
keluar dan array $sp_sinkron_kabupaten yang berisi daftar store procedures
untuk proses sinkronisasi kedalam.
114
Data sinkronisasi yang ada di database sinkron didapatkan dari trigger
yang ada pada tabel sekolah. Contoh listing pada gambar 4.8.
DELIMITER $$; DROP TRIGGER insert_guru$$ CREATE TRIGGER insert_guru AFTER INSERT ON guru FOR EACH ROW BEGIN DECLARE v_no_induk VARCHAR(30); DECLARE v_nama VARCHAR(50); DECLARE v_tempat_lahir VARCHAR(50); DECLARE v_tgl_lahir DATE; DECLARE v_kelamin CHAR(1); DECLARE v_tgl_kerja DATE; DECLARE v_tingkat_pendidikan VARCHAR(40); DECLARE v_golongan CHAR(4); DECLARE v_status_pegawai VARCHAR(40); DECLARE v_jabatan VARCHAR(40); DECLARE v_status_jabatan VARCHAR(30); DECLARE v_foto LONGBLOB; DECLARE v_status_kawin VARCHAR(11); DECLARE v_jumlah_anak INTEGER; SELECT nomer_induk_guru, nama, tempat_lahir, tgl_lahir, kelamin, tgl_kerja, tingkat_pendidikan, golongan, status_kepegawaian, jabatan, status_jabatan, foto, status_kawin, jumlah_anak INTO v_no_induk, v_nama, v_tempat_lahir, v_tgl_lahir, v_kelamin, v_tgl_kerja, v_tingkat_pendidikan, v_golongan, v_status_pegawai, v_jabatan, v_status_jabatan, v_foto, v_status_kawin, v_jumlah_anak FROM guru WHERE nomer_induk_guru = NEW.nomer_induk_guru;
IF (v_status_jabatan == "tidak tetap" AND v_status_jabatan == "tetap yayasan") THEN
INSERT INTO sinkron_smp.guru ( nomer_induk_guru, nama, tempat_lahir, tgl_lahir, kelamin, tgl_kerja, tingkat_pendidikan, golongan,
115
status_kepegawaian, jabatan, status_jabatan, foto, status_kawin, jumlah_anak, flag) VALUES (v_no_induk, v_nama, v_tempat_lahir, v_tgl_lahir, v_kelamin, v_tgl_kerja, v_tingkat_pendidikan, v_golongan, v_status_pegawai, v_jabatan, v_status_jabatan, v_foto, v_status_kawin, v_jumlah_anak, 1); END IF; END$$
Gambar 4.8 Listing Trigger Tabel Guru di Database SMP
Triggers ada di tiap tabel yang akan disinkronkan ke kabupaten, struktur
trigger insert, update dan delete sama hanya perbedaannya untuk trigger insert
nilai flag sama dengan 1, untuk trigger update hanya mengganti nilai flag dengan
2 dan untuk delete menggantinya dengan 3.
4.1.3 From Sinkronisasi Kedalam
Gambar 4.9 Halaman Sinkronisasi Kedalam Sekolah
Form pada gambar 4.9 digunakan untuk meng-upload file. Gambar 4.10
potongan listing formnya:
116
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>"
enctype='multipart/form-data'>
File: <input type="file" name="filenya" size="25" class="row-style"> <br /><br /> <input type="submit" name="submit" value="Upload" class="row-style"> </form>
Gambar 4.10 Listing Upload Sinkronisasi Masuk Sekolah
if($_POST['submit'] == 'Upload') { if (isset($_FILES['filenya'])) { $ftmp = $_FILES['filenya']['tmp_name']; $fname = $_FILES['filenya']['name']; $fsize = $_FILES['filenya']['size']; $ftype = $_FILES['filenya']['type']; $ext = substr($fname,-4,4); $repo = "sinkron_kedalam/"; $file_name = $date."_".$fname; if (substr($fname,18,3) == 'smp' && $ext == ".sql") { if (is_uploaded_file($ftmp)) { echo "<fieldset id=\"main-field\">"; echo "<legend> Hasil Upload </legend>"; echo ("<br>Nama file: $fname"); echo ("<br>Ukuran file: $fsize bytes<br>"); if (!file_exists($fname)) { $result = move_uploaded_file($ftmp, $repo . $file_name); if ($result == 1) {
echo "<br /><br /><p><b>Data sinkronisasi berhasil diupload</b></p>";
if ($password_db != "") { $pass = "-p".$password_db; } else { $pass = ""; }
exec("mysql -u".$user." ".$pass." --port=".$port." < ".$repo."".$file_name); echo "<br /> [ <a href=\"#\" onclick=\"sinkronConfirm()\">Mulai Sinkronisasi</a> ]";
} else
echo "<p style=\"color:red\"><b>Maaf ada masalah saat upload file, silahkan diulangi !</b></p>";
} echo "</fieldset>"; } } else { echo "<fieldset id=\"main-field\">"; echo "<p style=\"color:red\"><b>Maaf anda salah upload file !</b></p>"; echo "</fieldset>"; } }
Gambar 4.11 Listing Proses Upload Sinkronisasi Masuk Sekolah
117
Pada gambar 4.11 program akan menjalankan mysql client agar file
sinkron dapat berubah kembali menjadi database sinkron.
Proses selanjutnya program akan memanggil stored procedures yang ada
dalam database sinkron.
$sinkron = $_GET['sinkron']; if(isset($sinkron)) { echo "<fieldset id=\"main-field\">"; echo "<legend> Status Sinkronisasi </legend>"; if($sinkron == 'smp') {
for ($i = 0; $i < count($sp_sinkron_kabupaten); $i++) { $sqlproc = "CALL sinkron_kabupaten_smp.$sp_sinkron_kabupaten[$i]()"; mysqli_query($link,$sqlproc); }
mysqli_close($link); echo "<p><b>Proses Sinkronisasi Kedalam SMP Sukses</b></p>"; } echo "</fieldset>"; }
Gambar 4.12 Listing panggil Stored Procedures-Sinkronisasi Masuk Sekolah
Gambar 4.13 merupakan salah satu stored procedures yang dipanggil pada
listing gambar 4.12
DELIMITER $$; DROP PROCEDURE IF EXISTS sp_sinkron_guru$$ CREATE PROCEDURE sp_sinkron_guru () BEGIN DECLARE v_no_induk VARCHAR(30); DECLARE v_nama VARCHAR(50); DECLARE v_tempat_lahir VARCHAR(50); DECLARE v_tgl_lahir DATE; DECLARE v_kelamin CHAR(1); DECLARE v_tgl_kerja DATE; DECLARE v_tingkat_pendidikan VARCHAR(40); DECLARE v_golongan CHAR(4); DECLARE v_status_pegawai VARCHAR(40); DECLARE v_jabatan VARCHAR(40); DECLARE v_status_jabatan VARCHAR(30); DECLARE v_foto LONGBLOB; DECLARE v_status_kawin VARCHAR(11); DECLARE v_jumlah_anak INTEGER; DECLARE v_flag INTEGER; DECLARE jumlah INTEGER; DECLARE counter INTEGER DEFAULT 0;
118
DECLARE cur CURSOR FOR SELECT nomer_induk_guru, nama, tempat_lahir, tgl_lahir, kelamin, tgl_kerja, tingkat_pendidikan, golongan, status_kepegawaian, jabatan, status_jabatan, foto, status_kawin, jumlah_anak, flag FROM guru ORDER BY id; SELECT count(*) INTO jumlah FROM guru; OPEN cur; my_loop: LOOP FETCH cur INTO v_no_induk, v_nama, v_tempat_lahir, v_tgl_lahir, v_kelamin, v_tgl_kerja, v_tingkat_pendidikan, v_golongan, v_status_pegawai, v_jabatan, v_status_jabatan, v_foto, v_status_kawin, v_jumlah_anak, v_flag; IF EXISTS (SELECT * FROM smp.guru WHERE nomer_induk_guru = v_no_induk) THEN IF v_flag = 2 THEN UPDATE smp.guru SET nama = v_nama, tempat_lahir = v_tempat_lahir, tgl_lahir = v_tgl_lahir, kelamin = v_kelamin, tgl_kerja = v_tgl_kerja, tingkat_pendidikan = v_tingkat_pendidikan, golongan = v_golongan, status_kepegawaian = v_status_pegawai, jabatan = v_jabatan, status_jabatan = v_status_jabatan, foto = v_foto, status_kawin = v_status_kawin, jumlah_anak = v_jumlah_anak WHERE nomer_induk_guru = v_no_induk; DELETE FROM guru WHERE nomer_induk_guru = v_no_induk AND flag = v_flag; END IF; IF v_flag = 3 THEN DELETE FROM smp.guru WHERE nomer_induk_guru = v_no_induk; DELETE FROM guru WHERE nomer_induk_guru = v_no_induk AND flag = v_flag; END IF;
119
ELSE IF v_flag = 1 THEN INSERT INTO smp.guru( nomer_induk_guru, nama, tempat_lahir, tgl_lahir, kelamin, tgl_kerja, tingkat_pendidikan, golongan, status_kepegawaian, jabatan, status_jabatan, foto, status_kawin, jumlah_anak) VALUES(v_no_induk, v_nama, v_tempat_lahir, v_tgl_lahir, v_kelamin, v_tgl_kerja, v_tingkat_pendidikan, v_golongan, v_status_pegawai, v_jabatan, v_status_jabatan, v_foto, v_status_kawin, v_jumlah_anak); DELETE FROM guru WHERE nomer_induk_guru = v_no_induk AND flag = v_flag; END IF; END IF; SET counter = counter + 1; IF counter = jumlah THEN LEAVE my_loop; END IF; END LOOP my_loop; CLOSE cur; END$$ DELIMITER ;$$
Gambar 4.13 Listing Stored Procedures Untuk Mensinkronkan Tabel Guru
120
4.1.4 Form Sinkronisasi Awal
Gambar 4.14 Halaman Sinkronisasi Awal Sekolah
Bila data awal sekolah sudah terisi maka sistem tidak dapat meng-upload
lagi dan akan menampilkan pesan seperti gambar 4.14.
Form untuk proses upload dan sinkronisasinya hampir sama dengan proses
sinkronisasi kedalam hanya saja memanggil stored procedures yang berbeda.
Gambar 4.15 adalah listing untuk proses upload dan pemanggilan stored
procedures.
<?php include "sinkron_setting_smp.php"; $sql = "SELECT nama, nss, daerah FROM smp"; $nama = mysqli_query($link,$sql); $check_sekolah = mysqli_num_rows($nama); if($_POST['submit'] == 'Upload' && $check_sekolah == 0) { if (isset($_FILES['filenya'])) { $ftmp = $_FILES['filenya']['tmp_name']; $fname = $_FILES['filenya']['name']; $fsize = $_FILES['filenya']['size']; $ftype = $_FILES['filenya']['type']; $ext = substr($fname,-4,4); $repo = "sinkron_awal/"; $file_name = "$date" . "_" . "$fname"; if (substr($fname,13,3) == 'smp' && $ext == ".sql") { if (is_uploaded_file($ftmp)) { echo "<fieldset id=\"main-field\">"; echo "<legend> Hasil Upload </legend>";
121
echo ("<br>Nama file: $fname"); echo ("<br>Ukuran file: $fsize bytes"); if (!file_exists($fname)) { $result = move_uploaded_file($ftmp, $repo . $file_name); if ($result == 1) { echo "<p><b>Data sinkronisasi awal berhasil diupload</b></p>"; if ($password_db != "") { $pass = "-p".$password_db; } else { $pass = ""; }
$result = exec("mysql -u".$user." ".$pass." --port=".$port." < ".$repo."".$file_name);
echo "<br /> [ <a href=\"#\" onclick=\"sinkronConfirm()\">Mulai Sinkronisasi</a> ]";
} else
echo "<p style=\"color:red\"><b>Maaf ada masalah saat upload file, silahkan diulangi !</b></p>";
} echo "</fieldset>"; } } else { echo "<fieldset id=\"main-field\">";
echo "<p style=\"color:red\"><b>Maaf anda salah upload file !</b></p>";
echo "</fieldset>"; } } } if($check_sekolah > 0) { echo "<fieldset id=\"main-field\">"; echo "<p style=\"color:red\"><b>Data awal sekolah sudah terisi !</b></p>"; echo "</fieldset>"; } $sinkron = $_GET['sinkron']; if(isset($sinkron))
{ echo "<fieldset id=\"main-field\">"; echo "<legend> Status Sinkronisasi </legend>"; if($sinkron == 'smp') { $sqlproc = "CALL data_awal_sekolah.sp_sinkron_smp()"; mysqli_query($link,$sqlproc); mysqli_close($link); echo "<p><b>Proses Sinkronisasi Awal SMP Sukses</b></p>"; } echo "</fieldset>"; } ?>
Gambar 4.15 Listing Untuk Upload Pada Sinkronisasi Awal Sekolah
122
Sinkronisasi awal sekolah memanggil stored procedures pada database
sinkron untuk memasukan data awal sekolah ke database sekolah, gambar 4.16
contoh listing-nya:
DELIMITER $$; DROP PROCEDURE IF EXISTS sp_sinkron_smp$$ CREATE PROCEDURE sp_sinkron_smp () BEGIN DECLARE v_id_smp INTEGER; DECLARE v_nss VARCHAR(12); DECLARE v_nis VARCHAR(8); DECLARE v_nama VARCHAR(40); DECLARE v_kecamatan VARCHAR(24); DECLARE v_status_sekolah VARCHAR(6); SELECT id_smp, nss, nis, nama, kecamatan, status_sekolah INTO v_id_smp, v_nss, v_nis, v_nama, v_kecamatan, v_status_sekolah FROM smp; IF NOT EXISTS (SELECT * FROM smp.smp) THEN INSERT INTO smp.smp( id_smp, nss, nis, nama, kecamatan, status_sekolah) VALUES( v_id_smp, v_nss, v_nis, v_nama, v_kecamatan, v_status_sekolah); DELETE FROM smp WHERE id_smp = v_id_smp AND flag = v_flag; END IF; END$$ DELIMITER ;$$
Gambar 4.16 Stored Procedure Sinkronisasi Awal SMP Pada Proses Sekolah
123
4.2 Tampilan Kabupaten
4.2.1 Form Login
Gambar 4.17 Halaman Sinkronisasi Kedalam Kabupaten
Form pada gambar 4.17 digunakan untuk login ke halaman menu pegawai
kabupaten. Saat tombol login diklik, maka sistem akan mengecek username dan
userpassword. Bila valid maka program akan membuka form selanjutnya.
<?php include "connect.php"; $username = $_POST['username']; $password = md5($_POST['userpassword']);
$query_login = "select username from pegawai_kabupaten where username = '".$username."' and user_password = '".$password."'";
$execute_login = mysqli_query($link, $query_login); if($execute_login) { $hasil = mysqli_fetch_row($execute_login); $hasil_username = $hasil[0]; } if($hasil_username != '') { session_start(); $_SESSION['username_kabupaten'] = $hasil_username; $_SESSION['password_kabupaten'] = $password; header("location:home_kabupaten.php"); }
... ?>
Gambar 4.18 Listing Login Pegawai Kabupaten
124
4.2.2 Form Sinkronisasi Kedalam
Gambar 4.19 Halaman Sinkronisasi Kedalam Kabupaten
Listing form upload di kabupaten sama dengan listing upload di sekolah
(gambar 4.10).
Pada proses upload ditambahkan pengecekan nama file untuk menentukan
jenjang untuk menentukan stored procedures apa saja yang akan dipanggil.
Gambar 4.20 potongan listing-nya:
if($_POST['submit'] == 'Upload') { if (isset($_FILES['filenya'])) { $ftmp = $_FILES['filenya']['tmp_name']; $fname = $_FILES['filenya']['name']; $fsize = $_FILES['filenya']['size']; $ftype = $_FILES['filenya']['type']; $ext = substr($fname,-4,4); $repo = "sinkron_kedalam/"; $file = "$date" . "_" . "$fname";
if ((substr($fname,8,1) == "s" || substr($fname,8,1) == "t") && $ext == ".sql")
{ if (is_uploaded_file($ftmp)) { echo "<fieldset id=\"main-field\">"; echo "<legend> Hasil Upload </legend>"; echo ("<br>Nama file: $fname"); echo ("<br>Ukuran file: $fsize bytes"); if (!file_exists($fname)) { $result = move_uploaded_file($ftmp, $repo . $file); if ($result == 1) {
125
echo "<br /><br /><p><b>Data sinkronisasi berhasil diupload</b></p>";
if ($password_db != "") { $pass = "-p".$password_db; } else { $pass = ""; } if (substr($fname,8,2) == 'tk') { exec("mysql -u".$user." ".$pass." < ".$repo."".$file);
echo "<br /> [ <a href=\"#\" onclick=\"sinkronConfirm('tk')\">Mulai Sinkronisasi TK</a> ]";
} else if (substr($fname,8,2) == 'sd') { exec("mysql -u".$user." ".$pass." < ".$repo."".$file);
echo "<br /> [ <a href=\"#\" onclick=\"sinkronConfirm('sd')\">Mulai Sinkronisasi SD</a> ]";
} else if (substr($fname,8,3) == 'smp') { exec("mysql -u".$user." ".$pass." < ".$repo."".$file);
echo "<br /> [ <a href=\"#\" onclick=\"sinkronConfirm('smp')\">Mulai Sinkronisasi SMP</a> ]";
} else if (substr($fname,8,3) == 'sma') { exec("mysql -u".$user." ".$pass." < ".$repo."".$file);
echo "<br /> [ <a href=\"#\" onclick=\"sinkronConfirm('sma')\">Mulai Sinkronisasi SMA</a> ]";
} else { echo "<br /><br /><p style=\"color:red\"><b>Maaf nama file anda salah !</b></p>"; }
} else
echo "<br /><br /><p style=\"color:red\"><b>Maaf ada masalah saat upload file, silahkan diulangi !</b></p>";
} echo "</fieldset>"; } } else { echo "<fieldset id=\"main-field\">";
echo "<p style=\"color:red\"><b>Maaf anda salah upload file !</b></p>";
echo "</fieldset>"; } } }
Gambar 4.20 Listing Untuk Upload Pada Sinkronisasi Kedalam Kabupaten
Array yang digunakan pada keseluruhan sinkronisasi di kabupaten
disatukan pada satu listing (gambar 4.21).
<?php include "connect.php"; if (empty($port)) { $port = 3306; } $db_sinkron_sma = "sinkron_sma"; $db_sinkron_smp = "sinkron_smp"; $db_sinkron_sd = "sinkron_sd"; $db_sinkron_tk = "sinkron_tk"; $db_sinkron_kabupaten = "sinkron_kabupaten";
126
$date = date("dmY_His");
$link = mysqli_connect($host, $user, $password_db, $db, $port) or die("Koneksi Gagal"); $link_sinkron = mysqli_connect($host, $user, $password_db, $db_sinkron_kabupaten, $port) or die("Koneksi Gagal");
$sinkron_kabupaten_smp = array( "guru", "karyawan", "riwayat_bekerja_smp", "riwayat_mengajar_smp", "riwayat_pendidikan_guru", "riwayat_pendidikan_karyawan", "riwayat_status_gol_guru", "riwayat_status_gol_karyawan"); $sinkron_kabupaten_sma = array( "guru", "karyawan", "riwayat_bekerja_sma", "riwayat_mengajar_sma", "riwayat_pendidikan_guru", "riwayat_pendidikan_karyawan", "riwayat_status_gol_guru", "riwayat_status_gol_karyawan"); $sinkron_kabupaten_sd = array( "guru", "karyawan", "riwayat_bekerja_sd", "riwayat_mengajar_sd", "riwayat_pendidikan_guru", "riwayat_pendidikan_karyawan", "riwayat_status_gol_guru", "riwayat_status_gol_karyawan"); $sinkron_kabupaten_tk = array( "guru", "karyawan", "riwayat_bekerja_tk", "riwayat_mengajar_tk", "riwayat_pendidikan_guru", "riwayat_pendidikan_karyawan", "riwayat_status_gol_guru", "riwayat_status_gol_karyawan"); $sp_smp = array( "sp_sinkron_guru", "sp_sinkron_karyawan", "sp_sinkron_kelas", "sp_sinkron_laboratorium", . . . ); $sp_sma =
. . . ?>
Gambar 4.21 Listing Untuk Setting Sinkronisasi.
Untuk memanggil stored procedures dapat dilihat pada gambar 4.22.
127
$sinkron = $_GET['sinkron']; if(isset($sinkron)) {
echo "<fieldset id=\"main-field\">"; echo "<legend> Proses Sinkronisasi </legend>"; if ($sinkron == "smp") { $sp_sinkron = $sp_smp; } if ($sinkron == "sma") { $sp_sinkron = $sp_sma; } if ($sinkron == "sd") { $sp_sinkron = $sp_sd; } if ($sinkron == "tk") { $sp_sinkron = $sp_tk; } for ($i = 0; $i < count($sp_sinkron); $i++) {
$sqlproc = "CALL sinkron_".$sinkron.".".$sp_sinkron[$i]."()"; $querytables = mysqli_query($link,$sqlproc);
} mysqli_close($link); echo "<p>Proses Sinkronisasi SMP Sukses</p>"; echo "</fieldset>";
}
Gambar 4.22 Listing Untuk Memanggil Stored Procedures
Contoh stored procedures yang dipakai pada gambar 4.23.
DELIMITER $$; DROP PROCEDURE IF EXISTS sp_sinkron_guru$$ CREATE PROCEDURE sp_sinkron_guru () BEGIN DECLARE v_no_induk VARCHAR(30); DECLARE v_nama VARCHAR(50); DECLARE v_tempat_lahir VARCHAR(50); DECLARE v_tgl_lahir DATE; DECLARE v_kelamin CHAR(1); DECLARE v_tgl_kerja DATE; DECLARE v_tingkat_pendidikan VARCHAR(40); DECLARE v_golongan CHAR(4); DECLARE v_status_pegawai VARCHAR(40); DECLARE v_jabatan VARCHAR(40); DECLARE v_status_jabatan VARCHAR(30); DECLARE v_foto LONGBLOB; DECLARE v_status_kawin VARCHAR(11); DECLARE v_jumlah_anak INTEGER; DECLARE v_flag INTEGER; DECLARE jumlah INTEGER; DECLARE counter INTEGER DEFAULT 0; DECLARE cur CURSOR FOR SELECT nomer_induk_guru, nama, tempat_lahir, tgl_lahir, kelamin, tgl_kerja, tingkat_pendidikan, golongan, status_kepegawaian, jabatan, status_jabatan, foto, status_kawin,
128
jumlah_anak, flag FROM guru ORDER BY id; SELECT count(*) INTO jumlah FROM guru; OPEN cur; my_loop: LOOP FETCH cur INTO v_no_induk, v_nama, v_tempat_lahir, v_tgl_lahir, v_kelamin, v_tgl_kerja, v_tingkat_pendidikan, v_golongan, v_status_pegawai, v_jabatan, v_status_jabatan, v_foto, v_status_kawin, v_jumlah_anak, v_flag; IF EXISTS (SELECT * FROM kabupaten.guru WHERE nomer_induk_guru = v_no_induk) THEN IF v_flag = 2 THEN UPDATE kabupaten.guru SET nama = v_nama, tempat_lahir = v_tempat_lahir, tgl_lahir = v_tgl_lahir, kelamin = v_kelamin, tgl_kerja = v_tgl_kerja, tingkat_pendidikan = v_tingkat_pendidikan, golongan = v_golongan, status_kepegawaian = v_status_pegawai, jabatan = v_jabatan, status_jabatan = v_status_jabatan, foto = v_foto, status_kawin = v_status_kawin, jumlah_anak = v_jumlah_anak WHERE nomer_induk_guru = v_no_induk; DELETE FROM guru WHERE nomer_induk_guru = v_no_induk AND flag = v_flag; END IF; IF v_flag = 3 THEN DELETE FROM kabupaten.guru WHERE nomer_induk_guru = v_no_induk; DELETE FROM guru WHERE nomer_induk_guru = v_no_induk AND flag = v_flag; END IF; ELSE IF v_flag = 1 THEN INSERT INTO kabupaten.guru( nomer_induk_guru, nama, tempat_lahir, tgl_lahir, kelamin, tgl_kerja, tingkat_pendidikan, golongan, status_kepegawaian, jabatan, status_jabatan,
129
foto, status_kawin, jumlah_anak) VALUES(v_no_induk, v_nama, v_tempat_lahir, v_tgl_lahir, v_kelamin, v_tgl_kerja, v_tingkat_pendidikan, v_golongan, v_status_pegawai, v_jabatan, v_status_jabatan, v_foto, v_status_kawin, v_jumlah_anak); DELETE FROM guru WHERE nomer_induk_guru = v_no_induk AND flag = v_flag; END IF; END IF; SET counter = counter + 1; IF counter = jumlah THEN LEAVE my_loop; END IF; END LOOP my_loop; CLOSE cur; END$$ DELIMITER ;$$
Gambar 4.23 Listing Stored Procedures Tabel Guru
4.2.3 Form Sinkronisasi Keluar
Gambar 4.24 Halaman Sinkronisasi Keluar Kabupaten
130
Sebelum melakukan sinkronisasi pertama kali kita harus menentukan
kecamatan kemudian memilih jenjang pendidikan hingga memilih sekolah tujuan.
Listing untuk menampilkan sekolah dapat dilihat pada gambar 4.25:
$query_select = "SELECT nama, id_".$_POST['combo_jenjang']." FROM ".$_POST['combo_jenjang']." WHERE kecamatan = '".$_POST['combo_kecamatan']."'"; $execute_select = mysqli_query($link, $query_select); $counter = 1; if( mysqli_num_rows($execute_select ) > 0 ) { echo "<td> Pilih Sekolah </td>"; echo "<td>"; echo "<select name=\"combo_".$_POST['combo_jenjang']."\" style=\"font-family:Verdana\">"; while($hasil = mysqli_fetch_row($execute_select)) {
echo "<option selected=\"selected\" value=\"".$hasil[1]."\">".$hasil[0]."</option>"; $counter++;
} echo "</select>"; echo "</td>"; }
Gambar 4.25 Listing Untuk Menampilkan Sekolah
Gambar 4.26 Halaman Sinkronisasi Keluar Kabupaten Lanjutan
131
Setelah memilih sekolah maka akan tampil tabel sinkron beserta jumlah
record yang mengalami perubahan. Listing untuk menampilkan tabel sinkron
sama dengan listing untuk menampilkan tabel sinkron di sekolah.
Data yang akan disinkronkan dipilih menggunakan stored procedures,
yang kemudian data tersebut ditampung di database sinkron. Setelah itu data di
database sinkron dihitung kemudian ditampilkan di tabel seperti gambar 4.26.
<?php include "sinkron_setting_kabupaten.php"; $jenjang = $_POST['txt_jenjang']; $sekolah = $_POST['combo_'.$jenjang]; if($_POST['submit'] == "Pilih" && $sekolah != "") {
$sql = "SELECT nama, nss FROM ".$jenjang." WHERE id_".$jenjang." = ".$sekolah;
$nama = mysqli_query($link,$sql); echo "<fieldset id=\"main-field\">"; while ($hasil = mysqli_fetch_array($nama)) { echo "<legend>Sinkronisasi Keluar $hasil[0]</legend>"; $nss = $hasil[1]; } ?> <table border="0" cellspacing="1" cellpadding="2" align="center"> <thead> <tr> <th width="250">Nama Tabel</th> <th width="250">Tambah Data</th> <th width="250">Ubah Data</th> <th width="250">Hapus Data</th> </tr> </thead> <tbody> <?php $jenjang = strtolower($jenjang); $counter = 1; if ($jenjang == "smp") { $tabel_sinkron = $sinkron_kabupaten_smp; } if ($jenjang == "sma") { $tabel_sinkron = $sinkron_kabupaten_sma; } if ($jenjang == "sd") { $tabel_sinkron = $sinkron_kabupaten_sd; } if ($jenjang == "tk") { $tabel_sinkron = $sinkron_kabupaten_tk; } for ($i = 0; $i < count($tabel_sinkron); $i++) {
$sqlprocdel = "TRUNCATE sinkron_kabupaten_".$jenjang.".".$tabel_sinkron[$i];
$querytables = mysqli_query($link,$sqlprocdel); }
$sqlselectguru = "SELECT guru_nomer_induk_guru FROM riwayat_mengajar_" .$jenjang." WHERE ".$jenjang."_id_".$jenjang." = ".$sekolah;
$sqlselectkaryawan = "SELECT karyawan_nomer_induk_karyawan FROM riwayat_bekerja_"
132
.$jenjang." WHERE ".$jenjang."_id_".$jenjang." = ".$sekolah; $queryguru = mysqli_query($link,$sqlselectguru); $querykaryawan = mysqli_query($link,$sqlselectguru); while ($result = mysqli_fetch_array($queryguru))
{ $sqlproc1 = "CALL s p_sinkron_kabupaten_".$jenjang."_guru(".$result[0].")";
$sqlproc2 = "CALL sp_sinkron_kabupaten_".$jenjang."_riwayat_pendidikan_guru(".$result[0].")";
$sqlproc3 = "CALL sp_sinkron_kabupaten_".$jenjang."_riwayat_status_gol_guru(".$result[0].")";
mysqli_query($link_sinkron,$sqlproc1); mysqli_query($link_sinkron,$sqlproc2); mysqli_query($link_sinkron,$sqlproc3); } while ($result = mysqli_fetch_array($querykaryawan))
{ $sqlproc1 = "CALL sp_sinkron_kabupaten_".$jenjang."_karyawan(".$result[0].")";
$sqlproc2 = "CALL sp_sinkron_kabupaten_".$jenjang."_riwayat_pendidikan_karyawan(".$result[0].")";
$sqlproc3 = "CALL sp_sinkron_kabupaten_".$jenjang."_riwayat_status_gol_karyawan(".$result[0].")";
mysqli_query($link_sinkron,$sqlproc1); mysqli_query($link_sinkron,$sqlproc2); mysqli_query($link_sinkron,$sqlproc3); }
$sqlprocguru = "CALL sp_sinkron_kabupaten_".$jenjang."_riwayat_mengajar_".$jenjang."(".$sekolah.")";
$sqlprockaryawan = "CALL sp_sinkron_kabupaten_".$jenjang."_riwayat_bekerja_".$jenjang."(".$sekolah.")";
mysqli_query($link_sinkron,$sqlprocguru); mysqli_query($link_sinkron,$sqlprockaryawan); mysqli_close($link_sinkron); for ($i = 0; $i < count($tabel_sinkron); $i++) { if ($counter % 2 != 0) { echo "<tr class=\"odd_tr\">"; } else { echo "<tr class=\"even_tr\">"; } $counter = $counter + 1; echo "<td>$tabel_sinkron[$i]</td>"; for ($j = 1; $j <= 3; $j++) {
$sql = "SELECT count(*) FROM sinkron_kabupaten_".$jenjang.".".$tabel_sinkron[$i]." WHERE flag = ".$j;
$query = mysqli_query($link, $sql);
$hasil = mysqli_fetch_row($query); if($hasil[0] > 1000){echo "<td style=\"color:red\"><b>$hasil[0]</b></td>";}
else if($hasil[0] == 0){echo "<td>-</td>";} else echo "<td>$hasil[0]</td>";
133
} echo "</tr>";
} echo "<tr>"; echo "<td colspan=\"4\" align=\"right\">
[ <a href=\"sinkron_keluar_kabupaten.php?action=sinkron&tipe=".$jenjang."&sekolah=".$sekolah."&nss=".$nss."\">Sinkronisasi Data</a> ]
</td>"; echo "</tr> </tbody> </table>"; echo "</fieldset>"; }
Gambar 4.27 Listing Untuk Tabel Sinkronisasi Keluar Kabupaten.
Setelah menjalankan mysqldump yang me-restore database sinkron,
program akan menghapus record yang telah disinkron di database sinkron, agar
pada proses berikutnya record tersebut tidak ikut terbawa.
if ($_GET['action'] == 'sinkron') {
echo "<fieldset id=\"main-field\">"; echo "<legend> Hasil Sinkronisasi </legend>"; $jenjang = strtolower($_GET['tipe']); $file = "sinkron_kabupaten_".$jenjang. "_".$date."_".$nss.".sql"; $repo = "sinkron_keluar/"; $sekolah = $_GET['sekolah']; $nss = $_GET['nss']; if ($password_db != "") { $pass = "-p".$password_db; } else { $pass = ""; }
exec("mysqldump -u".$user." ".$pass." -h".$host." --port=".$port." --database sinkron_kabupaten_".$jenjang." > ".$repo."".$file." -R --hex-blob");
$sqlprocdelguru = "CALL sp_hapus_guru_".$jenjang."(".$sekolah.")"; $sqlprocdelkaryawan = "CALL sp_hapus_karyawan_".$jenjang."(".$sekolah.")"; mysqli_query($link_sinkron,$sqlprocdelguru); mysqli_query($link_sinkron,$sqlprocdelkaryawan); mysqli_close($link_sinkron); echo "<a href=\"$repo$file\" target=\"_BLANK\">$file</a>"; echo "</fieldset>"; }
Gambar 4.28 Listing Untuk Pemanggilan Stored Procedures - Yang Menghapus Database Sinkron.
Contoh listing stored procedures untuk menghapus data guru di database
sinkron kabupaten pada gambar 4.29.
134
DELIMITER $$; DROP PROCEDURE IF EXISTS sp_hapus_guru_smp$$ CREATE PROCEDURE sp_hapus_guru_smp (IN p_id_smp INTEGER) BEGIN DECLARE v_no_induk_guru VARCHAR(30); DECLARE jumlah INTEGER; DECLARE counter INTEGER DEFAULT 0; DECLARE cur CURSOR FOR SELECT guru_nomer_induk_guru FROM kabupaten.riwayat_mengajar_smp WHERE smp_id_smp = p_id_smp ORDER BY smp_id_smp; SELECT count(*) INTO jumlah FROM kabupaten.riwayat_mengajar_smp WHERE smp_id_smp = p_id_smp;
OPEN cur; my_loop: LOOP FETCH cur INTO v_no_induk_guru; DELETE FROM riwayat_mengajar_smp WHERE smp_id_smp = p_id_smp; DELETE FROM guru WHERE nomer_induk_guru = v_no_induk_guru; DELETE FROM riwayat_pendidikan_guru WHERE guru_nomer_induk_guru = v_no_induk_guru; DELETE FROM riwayat_status_gol_guru WHERE guru_nomer_induk_guru = v_no_induk_guru; SET counter = counter + 1; IF counter = jumlah THEN LEAVE my_loop; END IF; END LOOP my_loop; CLOSE cur; END$$ DELIMITER ;$$
Gambar 4.29 Listing Stored Procedures Untuk Menghapus Tabel Guru.
135
4.2.4 Form Sinkronisasi Awal
Gambar 4.30 Halaman Sinkronisasi Awal Kabupaten
Form ini sama dengan form sinkronisasi keluar, memilih kecamatan,
jenjang pendidikan kemudian memilih sekolah. Perbedaan keduanya form ini
hanya menampilkan sekolah yang baru diinputkan oleh user kabupaten.
<?php $query_select = "SELECT nama, id_".$_POST['combo_jenjang']." FROM ".$_POST['combo_jenjang']." WHERE kecamatan = '".$_POST['combo_kecamatan']."' AND desa_kelurahan is null"; $execute_select = mysqli_query($link, $query_select); $counter = 1; if( mysqli_num_rows($execute_select ) > 0 ) {
echo "<td> Pilih Sekolah </td>"; echo "<td>"; echo "<select name=\"combo_".$_POST['combo_jenjang']."\" style=\"font-family:Verdana\">";
while($hasil = mysqli_fetch_row($execute_select)) { echo "<option selected=\"selected\" value=\"".$hasil[1]."\">".$hasil[0]."</option>";
$counter++; } echo "</select>"; echo "</td>"; } mysqli_close($link); ?>
Gambar 4.31 Listing Untuk Menampilkan Sekolah Pada Proses Sinkronisasi Awal Kabupaten
Sinkronisasi awal memanggil stored procedures untuk memindahkan data
awal sekolah yang dipilih dari database kabupaten.
136
<?php include "sinkron_setting_kabupaten.php"; $jenjang = $_POST['txt_jenjang']; $sekolah = $_POST['combo_'.$jenjang]; if($_POST['submit'] == "Pilih" && $sekolah != "") {
$sql = "SELECT nama, nss FROM ".$jenjang." WHERE id_".$jenjang." = ".$sekolah;
$nama = mysqli_query($link,$sql); echo "<fieldset id=\"main-field\">"; while ($hasil = mysqli_fetch_array($nama)) { echo "<legend>Sinkronisasi Awal $hasil[0]</legend>"; $nss = $hasil[1]; } $jenjang = strtolower($jenjang); $sqlprocdel = "TRUNCATE data_awal_sekolah.".$jenjang; mysqli_query($link,$sqlprocdel); $sqlproc = "CALL sp_sinkron_awal_".$jenjang."(".$sekolah.")"; mysqli_query($link,$sqlproc); $repo = "sinkron_awal/"; $file = "sinkron_awal_".$jenjang."_".$date."_".$nss.".sql"; if ($password_db != "") { $pass = "-p".$password_db; } else { $pass = ""; }
exec("mysqldump -u".$user." ".$pass." -h".$host." --port=".$port." --database data_awal_sekolah > ".$repo."".$file." -R --hex-blob");
$sqlprocdel = "TRUNCATE data_awal_sekolah.".$jenjang; mysqli_query($link,$sqlprocdel); mysqli_close($link); echo "<a href=\"$repo$file\" target=\"_BLANK\">$file</a>"; echo "</fieldset>"; } ?>
Gambar 4.32 Listing Untuk Memanggil Stored Procedures
Contoh stored procedures yang dipanggil pada proses sinkronisasi awal
sekolah ini adalah seperti gambar 4.33.
DELIMITER $$; DROP PROCEDURE IF EXISTS sp_sinkron_awal_smp$$ CREATE PROCEDURE sp_sinkron_awal_smp (IN p_id_smp INTEGER) BEGIN DECLARE v_id_smp INTEGER; DECLARE v_nss VARCHAR(12); DECLARE v_nis VARCHAR(8); DECLARE v_nama VARCHAR(40); DECLARE v_jalan VARCHAR(50); DECLARE v_desa_kelurahan VARCHAR(30);
137
DECLARE v_daerah VARCHAR(4); DECLARE v_klasifikasi_geografis VARCHAR(20); DECLARE v_kecamatan VARCHAR(24); DECLARE v_kabupaten VARCHAR(40); DECLARE v_kabupaten_kota VARCHAR(24); DECLARE v_propinsi VARCHAR(24); DECLARE v_kode_pos VARCHAR(5); DECLARE v_kode_area VARCHAR(4); DECLARE v_no_telp VARCHAR(10); DECLARE v_fax VARCHAR(15); DECLARE v_email VARCHAR(40); DECLARE v_website VARCHAR(40); DECLARE v_jarak_sekolah_terdekat FLOAT; DECLARE v_thn_buka VARCHAR(4); DECLARE v_thn_akhir_renovasi VARCHAR(4); DECLARE v_status_sekolah VARCHAR(6); DECLARE v_klasifikasi_sekolah VARCHAR(7); DECLARE v_kategori_sekolah VARCHAR(25); DECLARE v_waktu_penyelenggaraan VARCHAR(10); DECLARE v_prog_inklusi VARCHAR(5); DECLARE v_jenis_inklusi VARCHAR(40); DECLARE v_tanah_id_tanah VARCHAR(50); SELECT id_smp, nss, nis, nama, jalan, desa_kelurahan, daerah, klasifikasi_geografis, kecamatan, kabupaten, kabupaten_kota, propinsi, kode_pos, kode_area, no_telp, fax, email, website, jarak_sekolah_terdekat, thn_buka, thn_akhir_renovasi, status_sekolah, klasifikasi_sekolah, kategori_sekolah, waktu_penyelenggaraan, prog_inklusi, jenis_inklusi, tanah_id_tanah INTO v_id_smp, v_nss, v_nis, v_nama, v_jalan, v_desa_kelurahan, v_daerah, v_klasifikasi_geografis, v_kecamatan, v_kabupaten, v_kabupaten_kota, v_propinsi, v_kode_pos, v_kode_area, v_no_telp, v_fax, v_email, v_website, v_jarak_sekolah_terdekat, v_thn_buka,
138
v_thn_akhir_renovasi, v_status_sekolah, v_klasifikasi_sekolah, v_kategori_sekolah, v_waktu_penyelenggaraan, v_prog_inklusi, v_jenis_inklusi, v_tanah_id_tanah FROM smp WHERE id_smp = p_id_smp; INSERT INTO data_awal_sekolah.smp VALUES ( v_id_smp, v_nss, v_nis, v_nama, v_jalan, v_desa_kelurahan, v_daerah, v_klasifikasi_geografis, v_kecamatan, v_kabupaten, v_kabupaten_kota, v_propinsi, v_kode_pos, v_kode_area, v_no_telp, v_fax, v_email, v_website, v_jarak_sekolah_terdekat, v_thn_buka, v_thn_akhir_renovasi, v_status_sekolah, v_klasifikasi_sekolah, v_kategori_sekolah, v_waktu_penyelenggaraan, v_prog_inklusi, v_jenis_inklusi, v_tanah_id_tanah); END$$ DELIMITER ;$$
Gambar 4.33 Listing Stored Procedures untuk Sinkronisasi Awal Kabupaten.
BAB V
ANALISA HASIL IMPLEMENTASI
5.1 Analisa Teknologi
Dalam menerapkan teknologi sinkronisasi pada sistem informasi sekolah,
server harus di-setting terlebih dahulu. Ada beberapa konfigurasi server yaitu:
1. Mengubah batas maksimal ukuran file upload yang ada pada file php.ini.
Default nilainya 2M, sedangkan file sinkron dengan banyaknya record
(diatas 10.000 record) kemungkinan ukuran file lebih dari 2M.
upload_max_filesize = 8M
Batas maksimum untuk upload ke server yang ditentukan oleh
pengembang Apache adalah 8MB.
2. Mengubah batas maksimal waktu eksekusi tiap detik dari script PHP yang
dijalankan. Default nilainya 30, sedangkan proses sinkronisasi memanggil
banyak stored procedures yang menangani banyak pula data, sehingga
untuk amannya diperlukan waktu maksimal eksekusi lebih dari 30 detik.
max_execution_time = 3600
Konfigurasi diatas men-set server agar dapat melakukan eksekusi hingga
3600 detik.
139
140
5.2 Analisa Hasil Perangkat Lunak
Dari beberapa simulasi percobaan, secara keseluruhan sinkronisasi data
dapat berjalan dengan baik. Sistem ini dapat mensinkronkan data pada server
sekolah dengan data pada server kabupaten.
Dengan menggunakan software benchmark (Website Stress Tools 7 Trial
Edition) dilakukan percobaan kecil untuk mengetes kinerja sinkronisasi dengan
tabel guru yang mempunyai 14 field sebagai sampel. Proses sinkronisasi keluar,
sinkronisasi kedalam dan sinkronisasi awal sekolah tidak mengalami kendala
begitupun untuk proses sinkronisasi keluar dan sinkronisasi awal kabupaten. Yang
perlu diperhatikan adalah proses sinkronisasi kedalam kabupaten yang melibatkan
banyak tabel dan record. Berikut ini hasil pengamatannya:
Jumlah Record
Waktu Eksekusi (ms)
Ukuran File (KB) Keterangan
1.000 56ms 160KB Proses sinkronisasi berjalan sangat cepat.
10.000 38.000ms 1,329 KB Kondisi jumlah record yang ideal untuk melakukan proses sinkronisasi.
20.000 145.000ms 2,647 KB Proses sinkronisasi memakan waktu lebih dari 2 menit.
50.000 > 30 menit 6.603 KB Proses sinkronisasi gagal.
60.000 > 30 menit 7.921KB Ukuran file hampir mencapai batas maksimum upload 8MB. Proses sinkronisasi gagal.
Tabel 5.1 Tabel Pengamatan Sinkronisasi Kedalam Kabupaten
Berdasarkan tabel 5.1 dapat disimpulkan bahwa sinkronisasi ideal
dilakukan apabila jumlah record di database sinkron sudah mencapai 20.000.
Tidak dianjurkan melebihi 20.000 dikarenakan proses akan memakan waktu lebih
dari 2 menit bahkan dapat gagal.
141
5.3 Kelebihan dan Kekurangan
Kelebihan dari hasil implementasi sinkronisasi data adalah:
1. Web didesain user friendly sehingga user tidak merasa kesulitan dalam
menggunakannya.
2. Menggunakan software open source yang gratis.
Kekurangan sistem antara lain:
1. Mempunyai celah keamanan pada file sinkron yang bila disalahgunakan
dapat disusupi dengan perintah-perintah query yang dapat merusak.
2. Menggunakan spesifikasi komputer yang tinggi agar nyaman saat
melakukan proses sinkronisasi.
BAB VI
PENUTUP
6.1 Kesimpulan
Berdasarkan hasil analisis, desain, dan implementasi sinkronisasi pada
sistem informasi sekolah menggunakan PHP dan MySQL dalam penelitian ini,
dapat disimpulkan bahwa:
1. Sistem ini sudah berjalan dengan baik dan dapat melengkapi sistem
informasi sekolah yang sudah ada agar dapat melakukan sinkronisasi data
antar database sekolah dan kabupaten dalam kondisi offline.
2. Jumlah maksimal record yang dapat dilakukan proses sinkronisasi yaitu
20.000.
6.2 Saran
Saran-saran bagi sinkronisasi data pada sistem informasi sekolah
menggunakan PHP dan MySQL di masa yang akan datang adalah:
1. Perlu adanya pengendalian sistem keamanan agar file sinkronisasi tidak
dapat disusupi oleh query-query lain (injection).
2. Perlu adanya fasilitas sinkronisasi data online agar dapat melakukan
sinkronisasi lebih cepat dan aman.
142
DAFTAR PUSTAKA
Fuerstein, Steven and Guy Harrison, MySQL Stored Procedure
Programming, O’Reilly, USA, 2006.
MySQL AB, MySQL 5.1 Reference Manual, MySQL Press, USA, 2006.
Valade, Janet, PHP 5 For Dummies, Wiley Publishing, Indianapolis, 2004.
Whitten, Jeffrey L., System Analysis and Design Methods, McGraw-Hill,
New York, 2005.
143