skripsi pengembangan aplikasi penjadwalan...
TRANSCRIPT
SKRIPSI
PENGEMBANGAN APLIKASI PENJADWALAN KEGIATAN
DENGAN MENGGUNAKAN ALGORITMA GENETIKA
(STUDI KASUS : HUMAS KEMENTERIAN AGAMA RI)
ULISNA ADE RIFAI
PROGRAM STUDI SISTEM INFORMASI
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2011 M / 1432 H
PENGEMBANGAN APLIKASI PENJADWALAN KEGIATAN
DENGAN MENGGUNAKAN ALGORITMA GENETIKA
(STUDI KASUS : HUMAS DEPARTEMEN AGAMA RI)
Skripsi
Diajukan untuk Memenuhi Persyaratan Memperoleh
Gelar Sarjana Komputer (S.Kom.)
Oleh :
Ulisna Ade Rifai
Nim : 204093002671
PROGRAM STUDI SISTEM INFORMASI
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2011 M / 1432 H
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-
BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN
SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI
ATAU LEMBAGA MANAPUN.
Jakarta, Juni 2011
Ulisna Ade Rifai
204093002671
ABSTRAK
Ulisna Ade Rifai, Pengembangan Aplikasi Penjadwalan Kegiatan dengan Mengunakan Algoritma Genetika, Studi Kasus : Humas Kementerian Agama RI. (Dibawah bimbingan Zainuddin Bey Fananie dan Imam M Shofie).
Humas Kementerian Agama merupakan bagian dari salah satu bidang di
Kementerian Agama yang bernama Pusat Informasi Keagamaan dan Kehumasan (PIKMAS). Bagian Humas merupakan keharusan fungsional dalam rangka melaksanakan urusan dan koordinasi serta penyusunan bahan pembinaan hubungan kerjasama antara Kementerian dengan masyarakat, Lembaga Swadaya Masyarakat (LSM), dan Lembaga Negara (LN). Bidang Humas dalam menentukan jadwal kegiatan pertemuan telah sesuai dengan prosedur yang berlaku, namun prosesnya masih dilakukan secara manual. Oleh karena pentingnya penjadwalan kegiatan ini dapat berjalan sesuai dengan yang telah direncanakan maka dibutuhkan sistem informasi penjadwalan kegiatan. Berbanding terbalik dengan pentingnya penjadwalan ini, proses pembuatan jadwal ini merupakan proses yang menyulitkan, karena proses ini membutuhkan ketelitian dan waktu yang cukup banyak agar tidak terjadi adanya tumpang tindih antara kegiatan yang satu dengan kegiatan yang lain. Dalam pengembangan sistem ini, penulis menggunakan metodologi Rapid Application Development (RAD) terdiri dari fase perencanaan syarat-syarat, fase konstruksi, fase implementasi. Untuk metodologi perancangan model menggunakan Algoritma Genetika yang terdiri dari teknik penyandian, prosedur inisialisasi, evaluasi, seleksi, rekomendasi dan mutasi. Selain itu teknik pengembangan yang digunakan Data Flow Diagram (DFD), Entity Relationship Diagram (ERD), Normalisasi, dan Kamus Data. Bahasa pemrograman yang digunakan adalah Visual Studio.NET dan MySQL sebagai databasenya. Penelitian ini bertujuan untuk mengembangkan sistem penjadwalan kegiatan sehingga pihak humas dapat menentukan jadwal kegiatan dengan mudah dan akurat. Aplikasi Sistem informasi penjadwalan kegiatan dapat menghasilkan jadwal yang tidak bentrok dan optimal sesuai yang direncanakan. Kata kunci : Penjadwalan, kegiatan, algoritma genetika V Bab + xix Halaman + 202 Halaman + 13 Tabel + 64 Gambar + 16 Daftar Pustaka (2000-2009 ) + 7 Lampiran
KATA PENGANTAR
Assalamu’alaikum Wr.Wb
Segala puji syukur kami panjatkan kehadirat Allah SWT atas segala rahmat
dan karunia-Nya sehingga skripsi ini dapat selesai sebagaimana mestinya.
Shalawat dan salam kepada Rasulullah Muhammad SAW, keluarga, sahabat dan
para pengikutnya hingga akhir zaman nanti. Rasul yang melalui perjuangan dan
keikhlasannya membuat kita bisa memiliki agama yang sempurna ini. Semoga
kita bisa menjadi pengikutnya yang setia sampai akhir hayat.
Dengan selesainya penulisan laporan skripsi ini penulis ingin mengucapkan
terima kasih kepada pihak-pihak yang telah membantu, karena tanpa bantuan,
petunjuk, bimbingan dan saran-saran mungkin penulis tidak akan dapat menyusun
laporan ini. Pada kesempatan ini, penulis ingin mengucapkan terima kasih yang
sebesar-besarnya kepada :
1. Bapak DR. Syopiansyah Jaya Putra, M.Sis selaku Dekan Fakultas Sains dan
Teknologi UIN Syarif Hidayatullah Jakarta.
2. Ibu Nur Aeni Hidayah, MMSi selaku Ketua Program Studi Sistem
Informasi.
3. Bapak Zainuddin Bey Fananie, M.Sc selaku dosen pembimbing I dan Bapak
Imam M Shofi, MT selaku pembimbing II yang telah banyak memberikan
bimbingan dan arahan guna terwujudnya laporan skripsi ini.
4. Bapak Drs. H. Masyuri AM.MPd selaku Kapala Pusat Informasi
Keagamaan dan Kehumasan (PIKMAS) dan Bapak Drs. H. Afrizal Zen,
M.Si selaku Kepala Bidang Humas Kementerian Agama RI.
5. Bapak Saiful Huda S.Sos dan Bapak Boy Azhar, selaku pegawai bagian
Humas Kementerian Agama RI.
6. Ayahku H. Hasan Rifai dan Ibuku Arjiati, kakakku Fafa dan ketiga adikku
Umi, Anis, dan Aris, serta kekasihku Acum yang selalu memberikan doa,
nasehat dan dukungannya sehingga penulis dapat menyelesaikan laporan
skripsi ini.
7. Rekan-rekan Mahasiswa/I Sistem Informasi tahun 2004 non reguler
khususnya kelas SIB yang begitu banyak memberikan do’a, motivasi dan
dukungan.
8. Semua pihak-pihak yang telah membantu dalam penyelesaian laporan
skripsi ini yang tidak dapat disebutkan satu per satu terima kasih atas
bantuannya.
Dalam penulisan Laporan skripsi ini penulis menyadari bahwa penulisan
laporan ini masih belum mencapai kesempurnaan baik dari segi materi maupun
dari segi penyajian, untuk itu penulis mengharapkaan kritik dan saran untuk
membangun. Semoga dengan adanya Laporan skripsi ini dapat berguna bagi
pembaca dan memberikan manfaat bagi pihak yang membutuhkannya.
Semoga segala bantuan yang telah diberikan kepada penulis akan
mendapatkan balasan yang setimpal dari Allah SWT, Amien...
Wassalamu’alaikum Wr. Wb
Jakarta, Juni 2011
Ulisna Ade Rifai
Penulis
DAFTAR ISI
Halaman Judul............................................................................................... ii
Lembar Pengesahan Pembimbing.................................................................. iii
Lembar Pengesahan Penguji....................................................... .................. iv
Pernyataan ..................................................................................................... v
Abstrak .......................................................................................................... vi
Kata Pengantar .............................................................................................. vii
Daftar Isi........................................................................................................ ix
Daftar Tabel............................................................................................. ..... xv
Daftar Gambar ............................................................................................... xvi
Daftar Lampiran ........................................................................................... xix
Daftar Simbol Notasi Flowchart ................................................................... xx
Daftar Simbol Notasi Data Flow Diagram ................................................... xxi
Daftar Simbol Notasi Entity Relationship Diagram...................................... xxii
BAB I PENDAHULUAN ......................................................................... 1
1.1. Latar Belakang Masalah ................................................................ 1
1.2. Perumusan Masalah ....................................................................... 3
1.3. Batasan Masalah ............................................................................ 3
1.4. Tujuan Penelitian ........................................................................... 4
1.5. Manfaat Penelitian ......................................................................... 4
1.6. Metode Penelitian .......................................................................... 5
1.6.1. Metode Pengumpulan Data ............................................... 5
1.6.2. Metode Pengembangan Sistem ......................................... 6
1.7. Sistematika Penulisan .................................................................... 7
BAB II LANDASAN TEORI ................................................................... 9
2.1. Konsep Dasar Sistem ……………………………………………. 9
2.2. Konsep Dasar Informasi ………………………………………… 9
2.3. Pengembangan Sistem ................................................................... 10
2.3.1. Pengertian Pengembangan Sistem .................................... 10
2.3.2. Prinsip Pengembangan Sistem .......................................... 10
2.4. Konsep Dasar Penjadwalan ........................................................... 11
2.4.1. Pengertian Penjadwalan .................................................... 11
2.4.2. Tujuan Penjadwalan …………………………………….. 12
2.4.3. Performasi Penjadwalan ................................................... 12
2.5. Algoritma Genetika ....................................................................... 13
2.5.1. Pengertian Algoritma Genetika ......................................... 13
2.5.2. Struktur Umum Algoritma Genetika ................................. 14
2.5.3. Komponen Utama Algoritma Genetika ............................ 15
2.6. Metodologi Penelitian ................................................................... 19
2.6.1. Metode Pengumpulan Data ............................................... 19
2.7.1.1 Studi Lapangan ..................................................... 19
2.7.1.2 Studi Literatur ....................................................... 20
2.6.2. Metode Pengembangan Sistem ........................................ 21
2.6.3. RAD (Rapid Application Development) ……………….. 21
2.7. Flowchart ....................................................................................... 23
2.8. STD (State Transition Diagram) ................................................... 24
2.8.1. Pengertian STD (State Transition Diagram) ................... 24
2.8.2. Komponen STD (State Transition Diagram) .................... 25
2.9. Data Flow Diagram ...................................................................... 26
2.9.1. Diagram Konteks .............................................................. 26
2.9.2. Diagram Zero .................................................................... 26
2.9.3. Diagram Rinci .................................................................. 27
2.10. Kamus Data .................................................................................. 27
2.11. ERD (Entity Relationship Diagram) ............................................ 27
2.11.1. Pengertian ERD (Entity Relationship Diagram) ............. 27
2.11.2. Kardinalitas Relasi ……………...……………………… 28
2.12. Normalisasi .................................................................................... 30
2.13. Perangkat Lunak Pembangun Sistem ........................................... 31
2.13.1. Visual Studio.NET ............................................................ 31
2.13.2. MySQL ............................................................................. 33
2.13.3. Crystal Report .................................................................. 34
2.14. Pengujian Black-box ..................................................................... 34
2.15. Literatur Sejenis ............................................................................ 35
BAB III METODOLOGI PENELITIAN ................................................. 37
3.1. Metode Pengumpulan Data ........................................................... 37
3.1.1. Studi Lapangan ................................................................. 37
3.1.2. Studi Literatur Sejenis ....................................................... 39
3.2. Metode Pengembangan Sistem ..................................................... 39
3.2.1. Fase Perencanaan Syarat-syarat ........................................ 40
3.2.2. Workshop Design .............................................................. 40
3.2.3. Fase Pelaksanaan / Implementasi ...................................... 41
3.3. Kerangka Berfikir ……………………………………………..... 42
3.4. Profil PIKMAS Kementerian Agama RI ...................................... 43
3.4.1. Sejarah Pusat Informasi Keagamaan dan Kehumasan ..... 43
3.4.2. Struktur Organisasi .......................................................... 44
3.4.3. Uraian Tugas dan Fungsi ................................................. 45
BAB IV ANALISIS DAN PEMBAHASAN .............................................. 51
4.1. Fase Perencanaan Syarat-syarat ................................................... 51
4.1.1. Tujuan Sistem .................................................................. 51
4.1.2. Syarat-Syarat Informasi ................................................... 51
4.1.3. Analisa Kebutuhan Sistem .............................................. 52
4.1.4. Sistem Penjadwalan Yang Berjalan ................................. 53
4.1.5. Alternatif Penyelesaian Masalah ..................................... 55
4.1.6. Sistem Penjadwalan Yang Diusulkan .............................. 55
4.1.7. Perbandingan Sistem ....................................................... 56
4.2. Worshop Design / Fase Perancangan ........................................... 57
4.2.1. Desain Sistem Algoritma Genetika ................................... 57
4.2.1.1. Teknik Penyandian ……………………………. 58
4.2.1.2. Fungsi fitness ………………………………. 61
4.2.1.3. Prosedur Inisialisasi ………………………... 61
4.2.1.4. Pembangkitan Populasi Awal ……………… 65
4.2.1.5. Evaluasi …………………………………….. 66
4.2.1.6. Kriteria Optimasi tercapai ………………….. 66
4.2.1.7. Seleksi ……………………………………… 67
4.2.1.8. Rekomendasi (crossover) …………………... 68
4.2.1.9. Mutasi ………………………………………. 69
4.2.1.10. Generasi Terakhir ………………………….. 69
4.2.2. Data Flow Diagram ......................................................... 71
4.3.3.1 Spesifikasi Proses Diagram Overview .................. 78
4.3.3.2 Spesifikasi Proses Diagram Rinci level 1 ............ 80
4.3.3.3 Spesifikasi Proses Diagram Rinci level 2 ............. 86
4.2.3. Kamus Data ..................................................................... 95
4.2.4. Entity Relationship Diagram ........................................... 96
4.3.5.1. Normalisasi .......................................................... 97
4.3.5.2. Struktur Database ................................................ 101
4.2.5. State Transition Diagram ................................................. 106
4.2.6. Rancangan Antarmuka Pemakai ...................................... 111
4.3. Fase Pelaksanaan / Implementasi .................................................. 122
4.4. Pengujian Sistem .......................................................................... 123
BAB V KESIMPULAN DAN SARAN ...................................................... 124
5.1. Kesimpulan .................................................................................... 124
5.2. Saran .............................................................................................. 125
DAFTAR PUSTAKA .................................................................................. 126
LAMPIRAN ................................................................................................. 127
DAFTAR TABEL
Tabel 2.1 Karakteristik MySQL ................................................................... 38
Tabel 4.1 Flowchart sistem penjadwalan yang berjalan .............................. 54
Tabel 4.2 Flowchart sistem yang diusulkan ................................................. 56
Tabel 4.3 Perbandingan Sistem .................................................................... 57
Tabel 4.4 Data Pembicara ............................................................................ 62
Tabel 4.5 Data Kegiatan ............................................................................... 62
Tabel 4.6 Pembangkitan Populasi (kesediaan pembicara) ........................... 65
Tabel 4.7 Evaluasi Kesediaan Nilai Fitness ................................................. 66
Tabel 4.8 Kesediaan Waktu Pembicara Hasil Seleksi ................................. 67
Tabel 4.9 Jadwal (generasi ke-1) ................................................................. 68
Tabel 4.10 Populasi setelah crossover ......................................................... 68
Tabel 4.11 Jadwal Kegiatan (generasi terakhir) ........................................... 70
Tabel 4.12 Pengujian Menggunakan Black Box ........................................... 123
DAFTAR GAMBAR
Gambar 2.1 Siklus Informasi ………………...…………………………… 12
Gambar 2.2 Diagram Alir Genetic Algorithms Sederhana ........................... 19
Gambar 2.3 Siklus Pengembangan Sistem model RAD ............................... 27
Gambar 2.4 Kondisi Perubahan State .......................................................... 29
Gambar 2.5 Notasi Modul ............................................................................. 30
Gambar 2.6 Notasi Tampilan ........................................................................ 30
Gambar 2.7 Notasi Tindakan ....................................................................... 30
Gambar 2.8 Cardinality one to one ............................................................... 33
Gambar 2.9 Cardinality one to many ............................................................ 34
Gambar 2.10 Cardinality many to many ....................................................... 34
Gambar 3.1 Siklus Pengembangan Sistem Model RAD ........................... ... 46
Gambar 3.2 Kerangka Berfikir ..................................................................... 47
Gambar 3.3 Struktur Organisasi Sekretariat Jenderal .................................. 49
Gambar 3.4 Struktur Organisasi PIKMAS ................................................... 50
Gambar 4.1 Diagram Konteks Sistem Penjadwalan Kegiatan ..................... 71
Gambar 4.2 Diagram Overview Sistem Penjadwalan Kegiatan ................... 72
Gambar 4.3 Diagram 1 Level 1 Sistem Yang Diusulkan ............................ 73
Gambar 4.4 Diagram 2 Level 1 Sistem Yang Diusulkan ............................. 73
Gambar 4.5 Diagram 3 Level 1 Sistem Yang Diusulkan ............................. 74
Gambar 4.6 Diagram 4 Level 1 Sistem Yang Diusulkan .............................. 74
Gambar 4.7 Diagram 5 Level 1 Sistem Yang Diusulkan .............................. 75
Gambar 4.8 Diagram 1 Level 2 Proses 1.1 .................................................. 75
Gambar 4.9 Diagram 1 Level 2 Proses 1.2 ................................................... 76
Gambar 4.10 Diagram 1 Level 2 Proses 1.3 ................................................. 76
Gambar 4.11 Diagram 1 Level 2 Proses 1.4 ................................................. 76
Gambar 4.12 Diagram 1 Level 2 Proses 1.5 ................................................. 77
Gambar 4.13. Diagram 1 Level 2 Proses 1.6 .............................................. 77
Gambar 4.14. Diagram 1 Level 2 Proses 1.7 .............................................. 77
Gambar 4.15. Diagram 1 Level 2 Proses 1.8 ................................................ 78
Gambar 4.16 ERD Sistem Informasi Penjadwalan Kegiatan....................... 97
Gambar 4.17 Unnormalized Form (UNF) ................................................... 98
Gambar 4.18 First Normal Form (1NF) ....................................................... 99
Gambar 4.19 Second Normal Form (2NF) ................................................... 100
Gambar 4.20 STD Rancangan Menu Login Sistem ...................................... 106
Gambar 4.21 STD Rancangan Menu Utama................................................. 106
Gambar 4.22 STD Rancangan Menu File .................................................... 106
Gambar 4.23 STD Rancangan Menu User ............... .................................... 107
Gambar 4.24 STD Rancangan Modul Pembicara ......................................... 107
Gambar 4.25 STD Rancangan Modul Kegiatan ........................................... 107
Gambar 4.26 STD Rancangan Modul Ruang ............................................... 108
Gambar 4.27 STD Rancangan Modul Shift ................................................. 108
Gambar 4.28 STD Rancangan Modul Biro .................................................. 108
Gambar 4.29 STD Rancangan Modul Bidang …...…………....................... 109
Gambar 4.30 STD Rancangan Modul Gedung ............................................ 109
Gambar 4.31 STD Rancangan Modul Kesediaan . ....................................... 109
Gambar 4.32 STD Rancangan Modul Nilai Fitness .................................... 110
Gambar 4.33 STD Rancangan Modul Seleksi Jadwal ................................. 110
Gambar 4.34 STD Rancangan Menu Laporan ............................................. 110
Gambar 4.35 Rancangan Form Login . ........................................................ 111
Gambar 4.36 Rancangan Tampilan Menu Utama ......................................... 111
Gambar 4.37 Rancangan Tampilan Menu User ........................................... 112
Gambar 4.38 Rancangan Form Pembicara ................................................... 113
Gambar 4.39 Rancangan Form Kegiatan ..................................................... 114
Gambar 4.40 Rancangan Form Ruang ......................................................... 114
Gambar 4.41 Rancangan Form Shift ............................................................ 115
Gambar 4.42 Rancangan Form Biro ............................................................. 116
Gambar 4.43 Rancangan Form Bidang ........................................................ 116
Gambar 4.44 Rancangan Form Gedung ....................................................... 117
Gambar 4.45 Rancangan Form Kesediaan ................................................... 118
Gambar 4.46 Rancangan Form Input Kesediaan ……....………………... 119
Gambar 4.47. Rancangan Form Nilai Fitness …………………...………. 120
Gambar 4.48. Rancangan Form Seleksi Jadwal ……………………...……. 121
Gambar 4.49 Rancangan Menu Laporan Kesediaan .................................... 121
Gambar 4.50 Rancangan Menu Laporan Jadwal ......................................... 122
DAFTAR LAMPIRAN
Lampiran 1 Hasil Wawancara ....................................................................... 127
Lampiran 2 Tampilan Aplikasi ..................................................................... 130
Lampiran 3 Kode Program............................................................................. 143
Lampiran 4 Quesioner .................................................................................. 174
Lampiran 5 Surat Permohonan Penelitian..................................................... 180
Lampiran 6 Pengujian BlackBox .............................. ................................... 181
Daftar Simbol
Notasi Flowchart
Simbol Keterangan
Input / output
Merepresentasikan Input data atau
Output data yang diproses atau
Informasi.
Proses
Mempresentasikan operasi
Anak panah
Mepresentasikan alur kerja
Terminal point
Awal atau akhir program
Dokumen
Input / output dalam format yang
dicetak
Sumber : Ladjamudin, 2005
Daftar Simbol
Notasi Data Flow Diagram
Nama Simbol Simbol DFD versi Yourdan,
De Marco
Simbol DFD versi
Gane and Sarson
Arus Data
Proses
Penyimpanan Data
Entitas luar
Sumber : (Ladjamudin, 2005)
Daftar Simbol
Notasi Entity Relationship Diagram
Notasi Keterangan
Entitas, adalah suatu objek yang dapat
diidentifikasi dalam lingkungan
pemakai.
Relasi, menunjukan adanya hubungan
diantara sejumlah entitas yang
berbeda.
Atribut, berfungsi mendeskripsikan
karakter entitas.
Garis, sebagai penghubung antara
relasi dengan entitas, relasi dan entitas
dengan atribut.
Sumber : Al-Bahra bin ladjamudin, 2005
Entitas
Relasi
Atribut
BAB I
PENDAHULUAN
1.1 Latar Belakang
Penjadwalan merupakan kegiatan yang harus dimiliki oleh setiap
orang untuk dapat membantu dalam melakukan aktivitasnya sehari-hari.
Terlebih lagi sebuah instansi atau lembaga yang memiliki agenda-agenda
penting yang harus diselesaikan secara teratur dan rapi. Begitu pentingnya
penjadwalan ini agar kegiatan dapat berjalan sesuai dengan yang telah
direncanakan.
Berbanding terbalik dengan pentingnya penjadwalan ini, proses
pembuatan jadwal ini merupakan proses yang menyulitkan, karena proses
ini membutuhkan ketelitian dan waktu yang cukup banyak agar tidak
terjadi adanya tumpang tindih antara kegiatan yang satu dengan kegiatan
yang lain.
Humas Kementerian Agama merupakan bagian dari salah satu
bidang di Kementerian Agama yang bernama Pusat Informasi Keagamaan
dan Kehumasan (PIKMAS). Bagian Humas merupakan keharusan
fungsional dalam rangka melaksanakan urusan dan koordinasi serta
penyusunan bahan pembinaan hubungan kerjasama antara Departemen
dengan masyarakat, Lembaga Swadaya Masyarakat (LSM), dan Lembaga
Negara (LN), juga penyusunan bahan penerangan dan publikasi.
(Kemenag, 2008)
Berdasarkan pengumpulan data yang penulis lakukan di lapangan,
kegiatan pertemuan dengan Menteri Agama telah sesuai dengan prosedur
yang berlaku, namun prosesnya masih dilakukan secara manual. Hal
tersebut mengakibatkan informasi hasil pengolahan data tidak berkualitas
baik, dibuktikan dengan informasi yang dihasilkan kurang akurat dimana
kesalahan-kesalahan dalam melakukan penjadwalan, informasi atau
laporan tentang kegiatan sering terlambat atau tidak tepat waktu untuk
disampaikan kepada Kepala Bidang Humas sehingga pegawai pun
mengalami keterlambatan untuk pelaksanaan kegiatan yang lainnya.
Untuk memudahkan dalam proses penjadwalan tersebut, Humas
Kementerian Agama Jakarta merasa perlu mengembangkan aplikasi yang
memudahkan penjadwalan kegiatan. Penulis mengajukan algoritma
genetika sebagai metode untuk mencari solusi yang terbaik dari suatu
permasalahan penjadwalan kegiatan yang berkaitan dengan optimalisasi
ruangan yang terbatas dengan kesiapan pembicara yang terbatas. Di dalam
banyak kasus metode ini memiliki solusi yang optimal dan sangat efektif.
Oleh karenanya penulis bermaksud mengangkat masalah tersebut
untuk menyusun Skripsi dengan judul ”PENGEMBANGAN APLIKASI
PENJADWALAN KEGIATAN DENGAN MENGGUNAKAN
ALGORITMA GENETIKA (STUDI KASUS: HUMAS KEMENTERIAN
AGAMA RI)”.
1.2. Perumusan Masalah
Perumusan masalah dalam penelitian ini adalah :
1. Bagaimana sistem penjadwalan kegiatan menggunakan metode
algoritma genetika.
2. Sistem penjadwalan kegiatan yang dilakukan menggunakan cara semi
manual dan tidak adanya database.
3. Proses penjadwalan kegiatan belum optimal sesuai yang direncanakan.
4. Sering terjadinya kesalahan-kesalahan dalam melakukan penjadwalan,
dan laporan tentang kegiatan yang sehingga mengalami keterlambatan
untuk pelaksanaannya.
1.3. Batasan Masalah
Batasan masalah dalam penelitian ini adalah :
1. Fokus pada perancangan sistem penjadwalan kegiatan.
2. Menentukan penjadwalan berdasarkan kegiatan yang dilaksanakan,
periode waktu, dan ruangan yang tersedia pada Humas Kementerian
Agama RI Jakarta.
3. Metode pengembangan sistem mengunakan RAD dan menggunakan
metode Algoritma Genetika.
4. Program aplikasi yang dibuat dengan menggunakan bahasa
pemrograman Microsoft Visual Studio.NET bahasa pemrograman
basis data MySQL, dan aplikasi bantu simulasi desain dengan
Microsoft Visio 2003.
1.4. Tujuan Penelitian
Adapun Tujuan dari penelitian ini adalah sebagai berikut :
1. Untuk menerapkan algoritma genetika dalam menyelesaikan masalah
penjadwalan kegiatan pada Humas Kementerian Agama Jakarta.
2. Mengoptimalisasikan penjadwalan kegiatan dengan tepat waktu dan
sesuai dengan yang direncanakan, Agar tidak terjadinya kesalahan-
kesalahan yang dapat menyebabkan keterlambatan pelaksanaan
kegiatan.
1.5. Manfaat Penelitian
Adapun manfaat penelitian ini adalah sebagai berikut :
a. Memberikan sumbangsih ilmiah dalam pengembangan sistem dengan
metode algoritma genetika.
b. Mahasiswa dapat memahami masalah-masalah yang ada dalam sebuah
perusahaan, terutama masalah penentuan jadwal kegiatan.
c. Tersedianya sistem penjadwalan kegiatan untuk mengolah data-data
yang diperlukan, dimana sistem tersebut menggantikan sistem yang
lama.
d. Memudahkan user khususnya bagian Humas dalam mengoptimalkan
penjadwalan kegiatan dengan tepat waktu.
e. Mengetahui seberapa jauh mahasiswa menerapkan ilmu-ilmu yang
bersifat teori dan sebagai evaluasi terhadap materi yang telah
diberikan.
1.6. Metodologi Penelitian
Metodologi penelitian yang diperlukan sebagai bahan untuk menyusun
tugas akhir ini adalah :
1.6.1. Metode Pengumpulan Data
Metode pengumpulan data dengan menggunakan beberapa cara
yaitu:
1). Studi Lapangan
Pada metode studi lapangan ini terdapat 3 cara yaitu :
a. Observasi
Melalui observasi ke bagian yang berhubungan dengan
kegiatan, untuk mendapatkan gambaran yang jelas
mengenai pelaksanaan sistem berjalan.
b. Wawancara
Penulis melakukan serangkaian tanya jawab pada bagian-
bagian yang berhubungan dengan masalah yang terkait,
untuk mengetahui masalah-masalah yang menjadi kendala
bagi para pengguna sistem lama.
c. Kuesioner
Suatu teknik pengumpulan informasi yang memungkinkan
analis mempelajari sikap-sikap, keyakinan, perilaku, dan
karakteristik beberapa orang utama di dalam organisasi
yang bisa terpengaruh oleh sistem yang diajukan atau oleh
sistem yang sudah ada dengan cara memberikan sejumlah
pertanyaan kepada para responden tersebut.
2). Studi Literatur
Studi Literatur adalah cara penelitian yang dilakukan dengan
membaca dan mempelajari buku-buku literatur sejenis yang
dapat dijadikan pendukung dalam penyelesaian skripsi ini.
1.6.2. Metode pengembangan sistem
Metode pengembangan sistem dilakukan dengan metode
RAD (Rapid Application Development). RAD pertama kali
diformulasikan oleh James Martin pada tahun 1991 (Hillary
Berger, 2004). Dan penulis menerapkan empat tahap siklus
pengembangan RAD (Kendal & Kendal, 2003), yaitu :
1. Fase Perencanaan Syarat – Syarat
Dalam fase ini, pengguna (pihak yang melakukan
penilaian terhadap kandidat-kandidat) dan pihak yang
menganalisa bertemu untuk mengidentifikasi syarat-syarat
informasi yang ditimbulkan dari tujuan-tujuan tersebut. Fase
ini memerlukan peran aktif dari kedua kelompok tersebut.
Selain itu juga melibatkan pengguna dari beberapa level yang
berbeda dalam organisasi.
2. Workshop Design
Fase ini adalah fase untuk merancang dan
memperbaiki yang dapat digambarkan sebagai workshop.
Selama workshop desain RAD, pengguna merespon working
prototype yang ada dan analyst memperbaiki modul-modul
yang dirancang menggunakan perangkat lunak berdasarkan
respon pengguna.
3. Fase Implementasi
Pada fase ini dilakukan pengujian dan pengenalan terhadap
sistem.
1.7. Sistematika Penulisan
Dalam penyusunan tugas akhir ini, penulis mensajikan dalam 5 bab
yang digambarkan sebagai berikut :
BAB I PENDAHULUAN
Pada bab ini akan diuraikan tentang latar belakang,
permasalahan, tujuan dan manfaat penelitian, metodologi
penelitian, dan sistematika penulisan.
BAB II LANDASAN TEORI
Pada bab ini menjelaskan tentang konsep dasar sistem
informasi (pengertian pengembangan sistem, pengertian
penjadwalan, pengertian algoritma genetika, dan metode
pengembangan sistem).
BAB III METODOLOGI PENELITIAN
Pada bab ini akan dibahas mengenai pemaparan metode
yang penulis pakai dalam pencarian data maupun
perancangan sistem yang dilakukan pada penelitian, selain
itu berisi tentang sejarah, visi, misi, dan struktur organisasi,.
BAB IV ANALISA DAN PEMBAHASAN
Pada bab ini berisikan rancangan proses dengan
menggunakan metode algoritma genetika dan menggunakan
Flowchart, DFD usulan dan spesifikasi proses. Rancangan
basis data yang berisikan ERD, normalisasi. Dalam bab ini
juga membahas rancangan tampilan.
BAB V PENUTUP
Pada bab ini penulis memberikan kesimpulan dari apa yang
telah dibahas pada bab sebelumnya dan memberikan saran
untuk pengembangan sistem yang lebih baik.
BAB II
LANDASAN TEORI
2.1. Konsep Dasar Sistem
1. Pengertian Sistem
Menurut (Jogiyanto, 2005), sistem adalah kumpulan dari
komponen atau elemen yang saling berhubungan satu dengan lainnya
membentuk satu kesatuan untuk mencapai tujuan tertentu. Selain itu
(sutabri, 2004) menyimpulkan sistem adalah sekelompok unsur yang
erat hubungannnya satu dengan yang lain, yang berfungsi bersama-
sama untuk mencapai tujuan tertentu.
2.2. Konsep Dasar Informasi
1. Pengertian Informasi
Menurut Davis dalam (Ladjamudin, 2005) Informasi adalah data
yang telah diolah menjadi sebuah bentuk yang berarti bagi penerimanya
dan bermanfaat dalam pengambilan keputusan saat ini atau mendatang.
Sedangkan menurut McLeod dalam (Ladjamudin, 2005) informasi
sebagai data yang telah diolah menjadi bentuk yang lebih berarti bagi
penerimanya. Sumber informasi adalah data. Data adalah kenyataan
yang menggambarkan kejadian-kejadian dan kesatuan nyata. kejadian
adalah sesuatu yang terjadi pada saat tertentu. Informasi diperoleh
setelah data-data mentah diproses atau diolah.
2.3. Pengembangan Sistem
2.3.1. Pengertian Pengembangan Sistem
Pengembangan sistem dapat berarti menyusun suatu sistem
yang baru untuk menggantikan sistem yang lama secara
keseluruhan atau memperbaiki sistem yang telah ada. Menurut
(Sutabri, 2004) Sistem yang lama perlu diperbaiki atau diganti,
disebabkan karena beberapa hal, yaitu sebagai berikut :
1. Adanya permasalahan-permasalahan yang timbul di sistem
yang lama seperti : adanya ketidak beresan atau adanya
pertumbuhan organisasi.
2. Untuk meraih kesempatan-kesempatan. Kesempatan ini dapat
berupa peluang bisnis, pelayanan yang meningkat pada
langganan.
3. Adanya instruksi-instruksi dari atasan atau pimpinan atau dari
luar organisasi, seperti peraturan pemerintah.
2.4.2. Prinsip Pengembangan Sistem
Adapun prinsip dari pengembangan sistem adalah sebagai berikut
(Sutabri, 2004) :
a. Sistem yang dikembangkan adalah untuk manajemen.
b. Sistem yang dikembangkan adalah investasi modal yang besar.
c. Sistem yang dikembangkan memerlukan orang yang terdidik.
d. Proses pengembangan sistem tidak harus urut.
e. Jangan takut membatalkan proyek.
f. Dokumentasi harus ada untuk pedoman dalam pengembangan
sistem.
2.4. Konsep Dasar Penjadwalan
2.4.1. Pengertian Penjadwalan
Time Tabling adalah suatu kegiatan administratif utama pada
sebagian besar intitusi. Kegiatan operasi institusi akan bergantung
sepenuhnya pada jadwal (timetable) yang dibuat. Menurut (Wren,
1996) penjadwalan didefinisikan sebagai berikut :
Penjadwalan adalah pengalokasian sumber daya pada objek-
objek yang ada pada ruang waktu dan bergantung pada kendala-
kendala yang sedemikian sehingga sedapat mungkin memenuhi
sekumpulan sasaran yang diinginkan. Secara sederhana, penjadwalan
dapat diartikan sebagai pengalokasian sumber-sumber daya yang
tersedia pada ruang waktu yang ada sehingga memenuhi kondisi-
kondisi tertentu.
Penjadwalan ini meliputi dua hal, yaitu tentang alokasi sarana
dan tentang dapat diramalkannya waktu kegiatan. Sarana kegiatan,
yaitu pembicara, sarana lainnya dan waktu, harus dialokasikan
secara seimbang dan efisien ke dalam program bulanan dan kegiatan
harian.
Penjadwalan dapat didefinisikan sebagai pengalokasian
sumber daya dalam jangka waktu tertentu untuk melakukan
serangkaian tugas. Penjadwalan adalah proses pengorganisasian,
pemilihan, dan penentuan waktu penggunaan sumber-sumber untuk
mengerjakan semua aktifitas yang diperlukan yang memenuhi
kendala aktifitas dan sumber daya. (Wren, 1996)
2.4.2. Tujuan Penjadwalan
Menurut (Ginting, 2009) mengidentifikasikan beberapa tujuan dari
aktifitas penjadwalan adalah sebagai berikut :
1. Meningkatkan penggunaan sumberdaya atau mengurangi waktu
tunggunya, sehingga total waktu proses dapat berkurang, dan
produktifitas dapat meningkat.
2. Mengurangi beberapa keterlambatan pada pekerjaan yang
mempunyai batas waktu penyelesaian sehingga meminimisasi
penalty cost (biaya kelambatan).
2.4.3. Performasi Penjadwalan
Menurut (Wahyuni, 2007) terdapat tiga tujuan pembuatan keputusan
yang umum dalam penjadwalan dan ketiganya menunjukkan ukuran
dasar performasi jadwal, yaitu :
1. Pemanfaatan sumber daya yang efesien : minimum maksimum
saat selesai.
2. Respon yang cepat terhadap permintaan konsumen: minimum
rata-rata saat selesai (completion time), minimum rata-rata
waktu tinggal (flow time), atau minimum rata-rata waktu tunggu
(waiting time).
3. Sesuai dengan batas waktu yang ditentukan: minimum rata-rata
keterlambatan (tardiness), minimum maksimum keterlambatan,
dan minimum jumlah job yang terlambat, (the number of tardy
jobs).
2.5. Algoritma Genetika
2.5.1. Pengertian Algoritma Genetika
Menurut (Desiani dan Arhami, 2006) Algoritma genetika
(AG) diperkenalkan pertama kali oleh John Holland (1975) dari
Universitas Michigan, John Holland mengatakan bahwa setiap
masalah yang berbentuk adaptasi (alami maupun buatan) dapat
diformulasikan ke dalam terminology genetika.
Kemudian menurut Goldberg (1989) mendefinisikan
algoritma genetika ini sebagai suatu pencarian algoritma
berdasarkan pada mekanisme seleksi alam dan genetika alam.
Bauer (1993) mendefinisikan algoritma genetika sebagai perangkat
lunak, prosedur yang dimodelkan setelah genetika dan evolusi.
Selain itu juga Algoritma Genetika mempunyai karakteristik-
karakteristik yang perlu diketahui sehingga dapat terbedakan dari
prosedur pencarian atau optimasi yang lain, yaitu :
1. AG bekerja dengan pengkodean dari himpunan solusi
permasalahan berdasarkan parameter yang telah ditetapkan dan
bukan parameter itu sendiri.
2. AG melakukan pencarian pada sebuah populasi dari sejumlah
individu-individu yang merupakan solusi permasalahan bukan
hanya dari sebuah individu.
3. AG merupakan informasi fungsi objektif (fitness), sebagai cara
untuk mengevaluasi individu yang mempunyai solusi terbaik,
bukan turunan dari suatu fungsi.
4. AG menggunakan aturan-aturan transisi peluang, bukan aturan-
aturan deterministik.
2.5.2. Struktur Umum Algoritma Genetika
Menurut (Kusumadewi, 2003) Pada algoritma ini, teknik
pencarian dilakukan sekaligus atas sejumlah solusi yang mungkin
dikenal dengan istilah populasi. Individu yang terdapat dalam satu
populasi individu yang terdapat dalam satu populasi disebut dengan
istilah kromosom, Charles L Karr (1999). Kromosom ini
merupakan suatu solusi yang masih berbentuk simbol. Populasi
awal dibangun secara acak, sedangkan populasinya merupakan
hasil evolusi kromosom-kromosom melalui iterasi yang disebut
dengan istilah generasi. Pada setiap generasi kromosom akan
melalui proses evaluasi dengan menggunakan alat ukur yang
disebut fungsi fitness. Nilai fitness dari suatu kromosom akan
menunjukkan kualitas kromosom dalam populasi tersebut. Proses
ini dapat direpresentasikan dalam algoritma sederhana Algoritma
Genetika sebagai berikut :
Gambar 2.2. Diagram Alir Genetic Algorithms Sederhana
(Kusumadewi, 2003)
2.5.3. Komponen Utama Algoritma Genetika
Menurut (Kusumadewi, 2003) Terdapat 6 komponen utama dalam
algoritma genetika, yaitu :
a. Teknik Penyandian
Teknik penyandian disini meliputi penyandian gen dari
kromosom. Gen merupakan bagian dari kromosom. Satu gen
biasanya akan mewakili satu variabel.
Gen dapat direpresentasikan dalam bentuk : string bit,
pohon, array bilangan real, daftar aturan, elemen permutasi,
elemen program, atau representasi lainnya yang dapat
diimplementasikan untuk operator genetika.
String Biner
0 1 0 1 0 0 1 0 1 1 1
gen-1 gen-2 gen-3
b. Prosedur Inisialisasi
Ukuran populasi tergantung pada masalah yang akan
dipecahkan dan jenis operator genetika yang akan
diimplementasikan. Setelah ukuran populasi di tentukan,
kemudian harus dilakukan inisialisasi terhadap kromosom
yang terdapat pada populasi tersebut.
Inisialisasi kromosom dilakukan secara acak, namun
demikian harus tetap memperhatikan domain solusi dan
kendala permasalahan yang ada.
c. Fungsi Evaluasi
Ada 2 hal yang harus dilakukan dalam melakukan
evaluasi kromosom, yaitu evaluasi fungsi objektif (fungsi
tujuan) dan konversi fungsi objektif ke dalam fungsi fitness.
Secara umum, fungsi fitness diturunkan dari fungsi objektif
dengan nilai yang tidak negatif.
d. Seleksi
Seleksi ini bertujuan untuk memberikan kesempatan
yang lebih besar bagi anggota populasi yang paling fit.
e. Operator genetika
Operator standar yang biasa digunakan dalam algoritma
genetika adalah selection, crossover dan mutation. Berikut ini
akan dijelaskan masing-masing operator menurut (Desiani &
arhami, 2006) yaitu :
1. Selection
Tujuan penggunaan algoritma genetika adalah untuk
memilih solusi yang tersedia. Melalui proses evolusi,
algoritma ini mengkombinasikan sejumlah solusi dari suatu
generasi menjadi solusi lain digenerasi berikutnya. Solusi
yang terpilih diharapkan memiliki karakteristik yang baik
sehingga setelah dilakukan manipulasi, solusi generasi
selanjutnya dapat memiliki karakter yang lebih baik.
2. Crossover
Crossover (Penyilangan) merupakan operator utama
dalam Algoritma Genetika. Salah satu cara sederhana dalam
crossover adalah dengan memilih secara acak satu titik
potong pada parents dan melakukan penyilangan dimana
segmen yang terletak sebelum titik penyilangan akan
dikopikan ke kromosom offspring kedua. Metode ini dapat
bekerja dengan baik pada kromosom string biner (Ariani,
2003).
3. Mutation
Mutasi merupakan sekondari operator yang
mereproduksi kromosom baru akibat perubahan secara
acak dan kebetulan, dengan probabilitas yang sangat kecil.
Dalam algoritma genetika, mutasi diperlukan
sebagai penjagaan terhadap konvergensi yang terlalu cepat
akibat hilangnya variasi kromosom yang disebabkan oleh
crossover, dan untuk memastikan bahwa seluruh lokasi
pada area pencarian dapat dijelajahi. Cara sederhana
melakukan mutasi adalah dengan mengubah secara acak
satu atau lebih gen dalam kromosom. Gen merupakan bit-
bit yang menyusun kromosom (Ariani, 2003).
f. Penentuan Parameter
Menurut (Kusumadewi, 2006) Algoritma genetika
membutuhkan beberapa nilai parameter yang menentukan
kinerja program. Parameter yang biasa digunakan pada
algoritma genetika adalah :
1. Populasi size, jumlah individu yang dilibatkan pada setiap
generasi.
2. Crossover rate merupakan rasio perbandingan banyaknya
offspring yang yang diproduksi pada tiap generasi dengan
banyaknya populasi size. Crossover rate yang besar
membuat eksplorasi area solusi semakin besar dan
mngurangi kemungkinan kesalahan perolehan solusi
optimum. Tetapi jika crossover rate ini terlalu tinggi akan
terjadi pembuangan waktu komputasi karena area solusi
yang tidak menjanjikan solusi pun akan dieksplorasi.
3. Mutation rate, merupakan presentasi terjadinya kromosom
baru sebagai akibat mutasi, dari keseluruhan population
size. Jika mutation rate ini terlalu rendah, banyak
kemungkinan solusi yang tidak akan dicoba sementara.
2.6. Metodologi Penelitian
2.6.1. Metode Pengumpulan Data
Metode pengumpulan data dilakukan untuk memperoleh
informasi yang dibutuhkan untuk mencapai tujuan penelitian (Gulo,
2002) dalam penelitian ini penulis menggunakan dua metode untuk
pengumpulan data yaitu : studi lapangan, studi literatur.
2.6.1.1. Studi Lapangan
Pada studi lapangan di bagi menjadi 3 cara yaitu :
1. Observasi
Observasi atau pengamatan (observation) merupakan salah
satu teknik pengumpulan fakta/data yang cukup efektif untuk
mempelajari suatu sistem. Observasi adalah pengamatan langsung
suatu kejadian yang sedang dilakukan. (Jogiyanto, 2005).
2. Wawancara (interview)
Wawancara (interview) telah diakui sebagai teknik
pengumpulan data atau fakta yang penting dan banyak dilakukan
dalam pengembangan sistem informasi. Wawancara
memungkinkan analis sistem sebagai pewawancara untuk
mengumpulkan data secara tatap muka langsung dengan orang
yang diwawancarainya. (Jogiyanto, 2005).
3. Kuesioner
Kuesioner merupakan teknik pengumpulan data yang
dilakukan dengan cara memberi seperangkat pertanyaan atau
pernyataan tertulis kepada responden untuk dijawabnya (Sugiyono
2008).
2.6.1.2. Studi Literatur
Studi literatur adalah mencari suatu masalah untuk diteliti.
Dalam arti bukti-bukti atau pernyataan bahwa masalah yang akan
diteliti itu belum terjawab atau belum terpecahkan secara
memuaskan atau belum pernah diteliti orang mengenai tujuan, data
dan metode analisa dan hasil untuk waktu dan tempat yang sama
(Bintarto, 2002). Dalam mencari studi literatur, peneliti mencari
permasalahan yang sama yang dalam pengembangan sistem
penjadwalan.
2.6.2. Metode Pengembangan Sistem
Metodologi pengembangan sistem adalah metode-metode,
prosedur-prosedur, konsep-konsep pekerjaan dan aturan-aturan
untuk mengembangkan suatu sistem informasi. Dalam
pengembangan sistem informasi perlu digunakan suatu metodologi
yang dapat digunakan sebagai pedoman bagaimana dan apa yang
harus dikerjakan selama pengembangan ini. Dengan mengikuti
metode dan prosedur-prosedur yang diberikan oleh suatu
metodologi, maka pengembangan sistem diharapkan akan dapat
diselesaikan dengan berhasil. Urutan-urutan prosedur untuk
memecahkan masalah ini dikenal dengan istilah algoritma (Sutabri,
2004).
2.6.3. RAD (Rapid Application Development)
RAD (Rapid Application Development) adalah salah satu
alternatif dalam melakukan suatu pengembangan sistem. RAD
adalah sebuah strategi pengembangan sistem yang menekankan
kecepatan pengembangan melalui keterlibatan pengguna yang
ekstensif dalam konstruksi, cepat, berulang dan bertambah
serangkaian prototipe atau prototipe bekerja sebuah sistem yang
pada akhirnya berkembang kedalam sistem final (atau sebuah versi)
(Whitten, 2004).
RAD menekankan pada kecepatan pengembangan yang
melibatkan peran user secara cepat, iterative dan meningkat dalam
konstruksi prototype sebagai cikal bakal sistem final, (Kendall and
Kendall, 2006). RAD memiliki 3 tahap siklus pengembangan sistem
seperti berikut :
Fase Perancangan Syarat-syarat
Workshop design
Umpan balik dari Pengguna Fase Perancangan Fase Kontruksi
Menggunakan Masukkan
dari Pengguna
Fase Pelaksanaan
Gambar 2.3. Siklus Pengembangan Sistem model RAD ( Kendal and Kendal 2006)
Tiga tahap siklus pengembangan sistem RAD, yaitu :
4. Perencanaan Syarat – Syarat
Dalam fase ini, pengguna (pihak yang melakukan penilaian
terhadap kandidat-kandidat) dan pihak yang menganalisa bertemu
untuk mengidentifikasi syarat-syarat informasi yang ditimbulkan
dari tujuan-tujuan tersebut. Fase ini memerlukan peran aktif dari
Menentukan Tujuan dan Syarat-syarat Informasi
Bekerja dengan Pengguna untuk Sistem Perancangan
Membangun Sistem
Memperkenalkan Sistem
kedua kelompok tersebut. Selain itu juga melibatkan pengguna dari
beberapa level yang berbeda dalam organisasi.
5. Workshop Design
Fase ini adalah fase untuk merancang dan memperbaiki
yang dapat digambarkan sebagai workshop. Selama workshop
desain RAD, pengguna merespon working prototype yang ada dan
analyst memperbaiki modul-modul yang dirancang menggunakan
perangkat lunak berdasarkan respon pengguna.
6. Fase Implementasi
Pada fase ini dilakukan pengujian dan pengenalan terhadap
sistem.
2.7. Flowchart
Flowchart adalah bagan-bagan yang mempunyai arus yang menggambarkan
langkah-langkah penyelesaian suatu masalah. Flowchart merupakan cara
penyajian dari suatu algoritma (Ladjamudin, 2005). Terdapat dua macam
flowchart yang menggambarkan proses dengan komputer yaitu :
1. Flowchart Sistem (System Flowchart)
Flowchart sistem adalah bagan yang memperlihatkan urutan proses
dalam sistem dengan menunjukkan alat media input, output serta jenis
media penyimpanan dalam proses pengolahan data.
2. Program (Program Flowchart)
Flowchat program adalah bagan yang memperlihatkan urutan
instruksi yang digambarkan dengan symbol tertentu untuk memecahkan
masalah dalam suatu program.
2.8. STD (State Transition Diagram)
2.8.1. Pengertian STD (State Transition Diagram)
Menurut (Pressman, 2002). STD (State Transaction
Diagram) mempresentasikan tingkah laku dari suatu sistem dengan
menggambarkan keadaannya dan kejadian yang menyebabkan
sistem mengubah keadaan.
State Transaction Diagram (STD) digunakan untuk
menggambarkan urutan dan variasi screen yang dapat muncul
ketika pengguna sistem mengunjungi terminal (Whitten, 2004).
Selain itu State transaction diagram (STD) menunjukkan
bagaimana sistem bertingkah laku sebagai akibat dari kejadian
eksternal, STD menunjukkan berbagai model tingkah laku sistem
dan cara dimana transisi dibuat dari state satu ke state lainnya
(Pressman, 2002).
Gambar 2.4. kondisi perubahan state (Pressman, 2002)
2.8.2. Komponen STD
Adapun komponen atau simbol yang digunakan dalam diagram
STD adalah sebagai berikut :
a. Modul
Menggunakan simbol lingkaran kecil (gambar 2.7) yang
mewakili modul yang dipanggil apabila terjadi suatu tindakan.
Gambar 2.5. Notasi modul
(Pressman, 2002)
b. Tampilan kondisi (state)
Merupakan layer yang ditampilkan menurut keadaan atau
atribut, untuk memenuhi suatu tindakan pada waktu tertentu
yang mewakili suatu bentuk keberadaan atau kondisi tertentu.
Gambar 2.6. Notasi tampilan (Pressman, 2002)
c. Tindakan (state transition)
Menggunakan simbol anak panah (gambar 2.9) disertai
keterangan tindakan yang dilakukan.
Gambar 2.7. Notasi Tindakan (Pressman, 2002)
2.9. DFD (Data Flow Diagram)
Menurut (Ladjamudin, 2005) DFD merupakan model dari sistem
untuk menggambarkan pembagian sistem ke modul yang lebih kecil. Salah
satu keuntungan menggunakan DFD adalah memudahkan pemakai atau
user yang kurang menguasai bidang komputer untuk mengerti sistem yang
akan dikerjakan. Untuk memudahkan membaca DFD maka diperlukan
proses penggambaran yang disusun secara bertingkat dari atas ke bawah.
Tingkatan tersebut adalah :
2.9.1. Diagram Konteks (Context Diagram)
Digram konteks adalah diagram yang terdiri dari suatu
proses dan menggambarkan ruang lingkup suatu system. Digram
konteks merupakan level tertinggi dari Data Flow Diagram yang
menggambarkan seluruh input ke sisetm atau output dari sistem. Ia
akan memberi gambaran tentang keseluruhan sistem. Sistem
dibatasi oleh boundary (dapat digambarkan dengan garis putus).
Dalam digram konteks hanya ada satu proses. Tidak boleh ada data
store dalam diagram konteks (Ladjamudin, 2005).
2.9.2. Diagram Zero (Overview Diagram)
Diagram zero adalah diagram yang menggambarkan
proses dari data flow diagram. Diagram zero memberikan
pandangan secara menyeluruh mengenai sistem yang ditangani,
menunjukkan tentang fungsi-fungsi utama atau proses yang ada,
aliran data, dan eksternal entity. Pada level ini sudah dimungkinkan
adanya / digambarkannya data store yang digunakan (Ladjamudin,
2005).
2.9.3. Diagram Rinci (Level Diagram)
Diagram rinci adalah diagram yang menguraikan proses apa
yang ada dalam diagram zero atau diagram level diatasnya
(Ladjamudin, 2005).
2.10. Kamus Data
Kamus data berfungsi membantu pelaku sistem untuk mengartikan aplikasi
secara detail dan mengorganisasi semua elemen data yang digunakan
dalam sistem secara persis sehingga pemakai dan penganalisis sistem
mempunyai dasar pengertian yang sama tentang masukan, keluaran,
penyimpanan dan proses. Kamus data sering disebut juga dengan sistem
data dictionary adalah katalog fakta tentang data dan kebutuhan-kebutuhan
informasi dari suatu sistem informasi (Ladjamudin, 2005).
2.11. ERD (Entity Relationship Diagram)
2.11.1. Pengertian ERD (Entity Relationship Diagram)
Entity Relationship Diagram (ERD) digunakan untuk
mendokumentasikan data organisasi dengan mengidentifikasikan
jenis entitas dan hubungannya (Fathansyah, 2001).
Entity Relational Diagram merupakan salah satu pemodelan
data konseptual yang paling sering digunakan dalam proses
pengembangan basis data bertipe relasional. Model E-R adalah
rincian yang merupakan representasi logika dari data pada suatu
organisasi atau area bisnis tertentu (Ladjamudin, 2005).
2.11.2. Kardinalitas Relasi
Dalam ERD hubungan (relasi) dapat terdiri dari sejumlah
entitas yang disebut dengan derajad relasi. Derajad relasi
maksimum disebut dengan kardinalitas sedangkan derajad
minimum disebut dengan modalitas. Jadi kardinalitas relasi
menunjukkan jumlah maksimum entitas yang dapat berelasi
dengan entitas pada himpunan entitas lain. Kardinalitas relasi yang
terjadi diantara dua himpunan entitas (misalnya A dan B) dapat
berupa (Ladjamudin, 2005):
1. Satu ke satu (one to one)
Setiap entitas pada himpunan entitas yang satu (A)
berhubungan dengan paling banyak dengan satu entitas pada
himpunan entitas yang lain (B).
Gambar 2.8. Cardinality one to one
(Ladjamudin, 2005)
2. Satu ke Banyak (one to many)
Yang berarti setiap sentitas pada himpunan entitas yang satu
(A) dapat berhubungan dengan banyak entitas pada himpunan
entitas yang lain (B), tetapi tidak sebaliknya dimana entitas
Nama entitas Nama entitasNama relasi1 1
pada himpunan entitas B paling banyak berhubungan dengan
satu entitas pada himpunan entitas.
Gambar 2.9. Cardinality one to many
(Ladjamudin, 2005)
3. Banyak ke banyak (many to many)
Yang berarti setiap entitas pada himpunan entitas A dapat
berhubungan dengan banyak entitas pada himpunan entitas B
dan demikian juga sebaliknya, dimana setiap entitas pada
himpunan entitas B dapat berhubungan dengan banyak pada
himpunan entitas A seperti dijelaskan pada gambar 2.12.
Gambar 2.10. Cardinality many to many
(Ladjamudin, 2005)
2.12. Normalisasi
Normalisasi adalah proses pengelompokan data kedalam bentuk
tabel atau relasi atau file untuk menyatakan entitas dan hubungan mereka
Nama entitas Nama entitasNama relasi1 M
Nama entitas Nama entitasNama relasiM M
sehingga terwujud satu bentuk database yang mudah untuk dimodifikasi,
Ada beberapa bentuk normalisasi yaitu, (Ladjamudin, 2005) :
1. Bentuk Normal I (First Normal Form / 1-NF)
Pada tahap ini dilakukan penghilangan beberapa group elemen
yang berulang agar menjadi satu harga tunggal yang berinteraksi
diantara setiap baris pada suatu tabel, dan setiap atribut harus
mempunyai nilai data yang atomic (bersifat atomic value). Syarat
normal kesatu :
a. Setiap data dibentuk dalam flat file, data dibentuk dalam satu
record demi satu record nilai dari field berupa “atomic value”.
b. Tidak ada set atribute yang berulang atau bernilai ganda.
c. Telah dibentuknya primary key untuk tabel/relasi tersebut.
d. Tiap atribute hanya memiliki satu pengertian.
2. Bentuk Normal II ( Second Normal Form / 2-NF).
Suatu relasi memenuhi 2-NF jika dan hanya jika :
a. Bentuk data telah memenuhi kriteria bentuk normal kesatu.
b. Atribute bukan kunci haruslah memiliki ketergantungan
fungsional sepenuhnya pada kunci utama.
3. Bentuk Normal III ( Third Normal Form / 3-NF).
Suatu relasi memenuhi bentuk III (3-NF) jika dan hanya jika :
a. Bentuk data telah memenuhi kriteria bentuk normal kedua.
b. Atribut bukan kunci haruslah tidak memiliki ketergantungan
transitif, seluruh atribut bukan kunci pada suatu relasi hanya
memiliki ketergantungan fungsional terhadap primary key di
relasi itu saja.
2.14. Perangkat Lunak Pembangun Sistem
2.14.1. Visual Studio.NET
Microsoft Visual Studio.NET adalah salah satu bahasa
pemrograman visual berdasarkan objek yang bekerja pada
sistem operasi windows.
Visual Studi.NET selain disebut sebagai sebuah bahasa
pemrograman, disebut juga sebagai sarana (tool) untuk
menghasilkan program-program aplikasi berbasiskan windows.
Visual Studio.NET merupakan event driven programming
yang artinya program menunggu sampai adanya respon dari
pemakai yang berupa event terdeteksi, kode yang berhubungan
dengan event (prosedur event) akan dijalankan. Didalam Visual
Studio.NET semuanya sudah disediakan dalam pilihan-pilihan
yang tinggal diambil sesuai dengan kebutuhan bagi pemula dan
tingkat lanjut.
Microsoft Visual Studio.NET adalah sebuah tools
pengembangan perangkat lunak untuk membangun aplikasi asp
web, layanan xml web, aplikasi desktop, dan aplikasi mobile
yang berbasiskan OOP (Object-Oriented Programming). Dalam
pemrograman berbasiskan OOP, sebuah program dibagi menjadi
bagian-bagian kecil yang disebut dengan objek. Setiap objek
mengandung tiga hal utama yaitu : (VisualStudioIndonesia.com)
1. Properti atau Atribut
Properti adalah karakteristik atau sifat dari sebuah objek.
Misalnya property warna teks adalah hitam.
2. Metode
Metode adalah serangkaian prosedur yang dimiliki oleh
suatu objek yang akan dijalankan sesuai dengan respon
yang diberikan oleh suatu perintah atau kejadian.
Misalnya, objek tombol EXIT memiliki metode untuk
keluar dari aplikasi.
3. Event
Event adalah “kejadian” atau segala sesuatu yang dapat
dialami oleh sebuah objek.
2.14.2. MySQL
MySQL merupakan software sistem manajemen database
(Database Management Systems/DBMS) yang sangat populer
dikalangan pemrograman web, terutama di lingkungan Linux
dengan menggunakan script PHP dan Perl (Sidik, 2005). Software
database ini kini telah tersedia juga pada platform sistem operasi
Windows. Adapun Karakteristik MySQL diantaranya :
Tabel 2.1 Karakteristik MySQL
No Karakteristik Deskripsi
1 Standar MySQL mendukung entry-level ANSI SQL92
ODBC level 0-2.
2 Character set MySQL secara default menggunakan ISO-8859-1
(Latin 1) character set untuk data dan
pengurutan.
3 Bahasa
Pemrograman
MySQL mendukung pemrograman aplikasi
dalam bahasa Java, C, Perl, PHP, dan sebaginya.
4 Tabel besar MySQL menyimpan tiap relasi (table) pada file
terpisah di direktori basisdata. Ukuran maksimum
tabel dibatasi kemampuan sistem operasi
menangani ukuran file.
5 Kecepatan dan
kemudahan
pemakaian
MySQL kira-kira tiga sampai empat kali lebih
cepat dibanding basisdata komersial, juga mudah
dikelola.
6 MySQL MySQL adalah open-source relational DBMS
Sumber : Hariyanto, 2004
2.14.3. Crystal Report
Crystal Reports adalah piranti standar untuk pembuatan
laporan pada sistem operasi Windows, dimana cetakan/templete
laporan yang dihasilkan dapat disertakan pada banyak bahasa
pemrograman, untuk memudahkan crystal report disingkat CR.
Crystal Report merupakan program khusus untuk
membuat laporan yang terpisah dengan program Microsoft Visual
Studio 2010, tetapi keduanya dapat dihubungkan (linkage). Hasil
cetak menggunakan Crystal Report lebih baik dan lebih mudah,
karena pada crystal report banyak tersedia objek maupun
komponen yang mudah digunakan.
2.15. Pengujian Black-Box
Pengujian black-box berfokus pada persyaratan fungsional
perangkat lunak. Pengujian black-box memungkinkan perekayasa
perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya
menggunakan semua persyaratan fungsional untuk satu program.
Pengujian black-box berusaha menemukan kesalahan dalam kategori
sebagai berikut, (Ladjamudin, 2005) :
1. Fungsi-fungsi yang tidak benar atau hilang.
2. Kesalahan interface.
3. Kesalahan dalam struktur data atau akses database eksternal.
4. Kesalahan kinerja.
5. Inisialisasi dan kesalahan terminasi.
2.16. Literatur Sejenis
Dalam mengembangkan sistem penjadwalan kegiatan ini peneliti
mendapatkan literatur sejenis yaitu Analisa dan Perancangan Sistem
Informasi Penjadwalan Kuliah pada STIE Muhammadiyah Pekalongan
oleh Khusna Maria, Nim : 0612530 Sekolah Tinggi Manajemen
Informatika dan Komputer, Fakultas Sistem Informasi)
Salah satu bagian di bidang akademik yang sangat penting adalah
jadwal kuliah. Semua kegiatan perkuliahan sangat bergantung padanya.
Apabila ada kesalahan sedikit saja pada pembuatan jadwal kuliah, maka
seluruh kegiatan perkuliahan akan terganggu bahkan dapat berhenti.
Keterlambatan pembuatan jadwal kuliah akan berakibat fatal pada
kegiatan perkuliahan. Bukan hanya mahasiswa yang dirugikan, tetapi
dosen juga akan menerima dampaknya. Oleh karena itu pembuatan
jadwal kuliah yang cepat dan tepat sangat diperlukan untuk mendukung
proses perkuliahan.
Sebuah sistem terkomputerisasi yang dapat membantu dalam
pembuatan jadwal kuliah sangat diperlukan dalam kaitannya untuk
melancarkan proses perkuliahan. Sistem ini diharapkan dapat mengatur
dimana dan kapan seorang dosen akan mengajar mata kuliah apa kepada
mahasiswanya. Sistem sekarang masih berjalan secara manual. Satu
bulan sebelum kegiatan perkuliahan dimulai, Pembantu Ketua dan Ketua
Prodi melakukan pembuatan jadwal kuliah semester depan. Pada sistem
saat ini yang masih berjalan tidak terdapat masalah tetapi dengan
mengikuti perkembangan teknologi sekarang ini penulis mendapatkan
sebuah peluang untuk membangun sebuah sistem penjadwalan kuliah
yang terkomputerisasi.
Penjadwalan kuliah dalam suatu kampus adalah hal yang rumit.
Permasalahan ini sering disebut dengan University Timetabling Problems
(UTP) ini. selain dilihat dari sisi mahasiswa, juga harus dilihat dari sisi
dosen, yaitu kemungkinan-kemungkinan dosen akan mampu lebih dari
satu mata kuliah yang ada, sebab ada kemungkinan jumlah mata kuliah
dan dosen tidak sebanding, sehingga harus dipikirkan solusi agar dosen
tidak mempunyai dua mata kuliah berbeda pada hari dan jam yang sama.
BAB III
METODOLOGI PENELITIAN
3.1 Metode Pengumpulan Data
Pada metode pengumpulan data ini penulis melakukan studi lapangan dan
studi literatur sebagai berikut :
3.1.1. Studi Lapangan
Pada metode studi lapangan ini terdapat 3 cara yaitu :
1. Observasi (Pengamatan)
Observasi adalah metode pengumpulan data dimana peneliti
mencatat informasi sebagaimana yang mereka saksikan selama
penelitian (Gulo, 2002). Dalam hal ini penulis adalah peneliti
dengan bertindak sebagai pengamat sempurna dimana peneliti
hanya menjadi pengamat tanpa partisipasi dengan yang diamati
(Gulo, 2002). Pengamatan dilakukan dengan melakukan
peninjauan langsung di Kementerian Agama terutama bidang
kehumasan.
Dalam hal ini yang penulis amati adalah :
1. Sistem berjalan dari bidang Humas.
2. Bagaimana proses awal penjadwalan sampai dengan
laporan penjadwalan.
Pelaksanaan pengamatan penelitian sebagai berikut :
a). Waktu :
Waktu pelaksanaan adalah dilaksanakan selama bulan
Desember 2009.
b). Tempat
Tempat yang menjadi obyek penelitian adalah :
Nama : Kementrian Agama RI
Alamat : Jl. Lapangan Banteng Barat No. 3-4
Jakarta Pusat, Telp : (021) 3455347
2. Wawancara
Pada metode ini, penulis melakukan wawancara langsung
kepada Bapak Syaiful Huda selaku Staff Pegawai Humas
Kementerian Agama RI yang bertugas membuat rancangan
kegiatan dalam jangka waktu panjang dan penulis mendapatkan
informasi atau data-data seperti proses penjadwalan kegiatan
yang sedang berjalan, data pembicara, data kegiatan dan data
ruang.
3. Kuesioner
Kuesioner dilakukan sebelum dan setelah penelitian pada
bidang Humas Kementrian Agama RI Jakarta. Kuesioner
dilakukan dengan menyebarkan kuesioner kepada 5 pegawai
atau staff bidang kehumasan Kementerian Agama RI. Setiap
butir pertanyaan dalam kuisioner merupakan pertanyaan yang
secara logis berhubungan dengan masalah penelitian. Daftar
pertanyaan dari setiap kuisioner yang peneliti lakukan dapat
dilihat pada lampiran
3.1.2. Studi Literatur
Pada tahap ini didapat literature atau penelitian sejenis
dengan judul “Analisa dan Perancangan Sistem Informasi
Penjadwalan Kuliah pada STIE Muhammadiyah Pekalongan” oleh
Khusna Maria, Nim : 0612530 untuk lebih lengkapnya sebagai
landasan dan perbandingan ada di Bab II pada halaman 45.
3.2 Metodologi Pengembangan Sistem
Dalam pengembangan sistem penjadwalan ini, penulis
menggunakan model Rapid Application Development (RAD). Penulis
memilih model RAD karena tahap-tahapnya sangat terstruktur,
pengembangan perangkat lunak dapat dilakukan dalam waktu yang cepat
dan alasan utama penggunaan model pengembangan RAD adalah
pengembangan ini akan bekerja dengan baik bila diterapkan pada aplikasi
yang berskala kecil.
RAD memiliki 3 Tahap dalam pengembangan sistem sebagai berikut
(Kendal & Kendal, 2006) :
3.2.1. Fase Perencanaan Syarat-syarat
Dalam fase ini penulis akan menjabarkan fase proses
perencanaan syarat-syarat, yaitu mengidentifikasi tujuan-tujuan
serta akan mengidentifikasi syarat-syarat dari tujuan tersebut.
3.2.2. Workshop Design
Fase ini adalah fase untuk merancang dan memperbaiki yang
dapat digambarkan sebagai workshop. Dalam fase ini penulis akan
merancang sistem penjadwalan kegiatan pada Humas Depag RI
sebagai solusi untuk pengembangan dari sistem yang berjalan
berdasarkan dari analisa yang dilakukan sebelumnya.
Pada perancangan proses ditujukan untuk menentukan urutan
kejadian, sehingga dihasilkan keluaran dan masukan yang
diharapkan, meliputi :
a. Proses masukan, proses ini merupakan pemasukan data yaitu
tambah data pembicara, kegiatan, ruang, dan kesediaan
waktu pembicara.
b. Proses GAs ( Genetic Algorithms Sistem ), yaitu proses
algoritma genetika untuk melakukan otomatisasi dan
optimalisasi kesediaan pembicara, meliputi pembangkitan
populasi, evaluasi, seleksi, crossover dan mutasi.
c. Proses keluaran, proses ini merupakan bentuk-bentuk laporan
sistem dan dokumen terkait pada sistem penjadwalan
kegiatan pada Humas.
3.2.3. Fase Pelaksanaan / Implementasi
Menguji aplikasi yang yang telah dibuat dan diimplementasikan.
Jika tidak sesuai dengan harapan maka dilakukan pengecekan data
kembali dimulai dari analisa masalah.
Fase Perancangan Syarat-syarat
Workshop Design
Umpan balik dari Pengguna
Fase Perancangan Fase Konstruksi
Menggunakan Masukan dari Pengguna
Fase Pelaksanaan
Gambar 3.1. Siklus Pengembangan Sistem Model RAD
Menentukan Tujuan dan Syarat-syarat Informasi
Membangun Sistem Bekerja dengan pengguna untuk sistem perancangan
Memperkenalkan Sistem
3.3. Kerangka Berfikir
Gambar 3.2. Kerangka Berfikir
3.4. Profil PIKMAS Kementerian Agama RI
3.4.1. Sejarah Pusat Informasi Keagamaan dan Kehumasan
Pusat Informasi Keagamaan dan Kehumasan (PIKMAS)
adalah unit kerja eselon II di lingkungan Sekretarian Jenderal
(Sekjen) Kementerian Agama yang dibentuk berdasarkan peraturan
Menteri Agama RI No.3 Tahun 2006 tentang Organisasi dan Tata
Kerja Kementrian Agama RI. PIKMAS merupakan unsur penunjang
pelaksanaan tugas Kementrian Agama yang berada dibawah dan
bertanggung jawab kepada Menteri Agama melalui Sekretaris
Jenderal (Sekjen) Kementerian Agama.
Humas Kementerian Agama merupakan bagian dari salah satu
bidang di Kementerian Agama yang bernama Pusat Informasi
Keagamaan dan Kehumasan (PIKMAS). Bagian Humas merupakan
keharusan fungsional dalam rangka melaksanakan urusan dan
koordinasi serta penyusunan bahan pembinaan hubungan kerjasama
antara Departemen dengan masyarakat. Lembaga Swadaya
Masyarakat (LSM), dan Lembaga Negara (LN), juga penyusunan
bahan penerangan dan publikasi. (Depag, 2008)
3.4.2. Struktur Organisasi
Struktur organisasi dapat diartikan sebagai pembagian tugas
dan fungsi atau unit-unit yang ada mulai dari tingkat yang paling
tinggi sampai ketingkat yang paling rendah dalam suatu organisasi.
Berdasarkan Peraturan Menteri Agama RI Nomor 3 Tahun
2006 tentang organisasi dan tata kerja Kementerian Agama dalam
melaksanakan tugas PIKMAS bertanggung jawab kepada Sekretaris
Jenderal, sebagaimana bagan organisasi berikut :
Gambar 3.3. Struktur Organisasi SEKJEN Kementerian Agama RI
BIRO PERENCANAAN
BIRO KEPEGAWAIAN
SEKRETARIAT JENDERAL
BIRO KEUANGAN DAN BMN
BIRO ORGANISASI DAN TATA LAKSANA
BIRO UMUM
BIRO HUKUM DAN KERJASAMA LN
PUSAT KERUKUNAN
UMAT BERAGAMA
PUSAT INFORMASI KEAGAAAN DAN
KEHUMASAN
Gambar 3.4. Struktur Organisasi PIKMAS Kementerian Agama RI
3.4.3. Uraian Tugas dan Fungsi
1. Pusat Informasi Keagamaan dan Kehumasan
Tugas :
a. Menyelenggarakan pelayanan dan pembinaan informasi keagamaan
dan kehumasan berdasarkan kebijakan Sekretaris Jenderal.
b. pembinaan sistem informasi keagamaan dan kehumasan.
SUBBID HUBUNGAN LEMBAGA RESMI
DAN MEDIA MASSA SUBBID
MANAJEMEN JARINGAN SUBBID
STANDARDISASI DAN KOMUNIKASI
DATA
SUBBID PENERANGAN MASYARAKAT
SUBBID ANALISA
DATA
SUBBID PENYELENGGARAAN
WEBSITE
BIDANG KEHUMASAN
BIDANG PENGEMBANGAN &
ANALISA DATA KEAGAMAAN
SUBBAG TATA USAHA
BIDANG PENYELENGGARAAN SISTEM JARINGAN
DAN APLIKASI
PUSAT INFORMASI KEAGAMAAN DAN
KEHUMASAN
c. Perencanaan, pembinaan dan pengembangan sistem dan jaringan
serta penyelenggaraan informasi keagamaan.
d. Pembinaan dan pengembangan serta pengolahan dan penyajian
data keagamaan;
e. Pelayanan kehumasan, penyampaian informasi keagamaan kepada
masyarakat;
f. Pelaksanaan pelayanan tata usaha dan rumah tangga pusat
g. Pelaksanaan tugas lain yang diberikan oleh Sekretaris Jenderal.
2. Bidang Kehumasan
Fungsi :
a. Pembinaan hubungan antar departemen dan lembaga negara
b. Pengumpulan, pengolahan dan penyusunan bahan kebijakan dan
pelaksanaan kegiatan departemen untuk informasi kepada
masyarakat.
c. Pembinaan hubungan kerjasama media massa dan pembinaan
jabatan pranata kehumasan.
Tugas :
a. Melaksanakan pembinaan dan pelaksanaan hubungan antara
lembaga resmi, penerangan masyarakat, dan kerjasama media
massa serta pembinaan jebatan fungsional pranata kehumasan
berdasarkan sasaran, program dan kegiatan yang ditetapkan oleh
Kepala Pusat.
Bidang Kehumasan terdiri dari :
1. Subbidang Hubungan Lembaga Resmi dan Media Massa
Tugas : melakukan penyiapan bahan dan pelaksanaan pembinaan
hubungan kerjasama antar departemen, lembaga negara dan media
massa.
2. Subbidang Penerangan Masyarakat
Tugas : melakukan penyiapan bahan dan kodifikasi kebijakan dan
kegiatan untuk informasi kepada masyarakat serta pembinaan
pranata kehumasan.
3. Bidang pengembangan dan Analisis Data Keagamaan
Tugas :
Melaksanakan perencanaan, pembinaan dan pengembangan sistem
dan analisa data keagamaan berdasarkan sasaran, program dan
kegiatan yang ditetapkan oleh kepala pusat.
Fungsi :
a. Pelaksana standarisasi dan komunikasi data;
b. Penganalisaan data keagamaan;
c. Pembinaan ketenagaan dan penilaian jabatan fungsional pranata
komputer dan statistisi;
d. Perencanaan, pengelolaan dan pengembangan website.
4. Bidang Pengembangan dan Analisa Data Keagamaan terdiri dari :
1. Subbidang Standarisasi dan Komunikasi Data
Tugas : melakukan penyiapan bahan dan pelaksanaan penyusunan
standarisasi instrumen, kodifikasi dan komunikasi serta penyiapan
bahan perencanaan data serta pengintegrasikan dan pengembangan
database.
2. Subbidang Analisa Data
Tugas : melakukan penyiapan bahan dan pelaksanaan pengolahan,
penyimpanan, dan penganalisaan serta penyajian data dan
informasi keagamaan.
5. Bidang Penyelengaraan Sistem Jaringan dan Aplikasi
Tugas :
a. Melaksanakan pembinaan, pengembangan dan pengelolaan sistem
informasi keagamaan dan jaringan komunikasi data serta
penyelenggaraan website berdasarkan sasaran, program dan
kegiatan yang ditetapkan oleh Kepala Pusat.
Fungsi :
a. Pengembangan aplikasi penyelenggaraan telematika
b. Perencanaan, pembinaan dan koordinasi bidang pengembangan
jaringan informasi, layanan informasi dan website;
c. Pelaksaan pemeliharaan dan pengembangan manajemen sistem
jaringan informasi dan komunikasi;
d. Perencanaan, pengelolaan dan pengembangan website.
6. Bidang Penyelenggaraan Sistem Jaringan dan Aplikasi terdiri dari :
1. Subbidang Manajemen Jaringan
Tugas : melakukan penyiapan bahan dan pelaksanaan perencanaan,
pengelolaan dan pengembangan sistem jaringan.
2. Subbidang Penyelenggaraan Website
Tugas : melakukan penyiapan bahan dan pelaksanaan perencanaan,
pengelolaan dan pengembangan sarana dan prasarana jaringan
informasi dan sistem komunikasi serta pembinaan, website dan
jabatan fungsional pranata komputer.
7. Subbagian Tata Usaha
Tugas : Melakukan pelayanan penyelenggaraan tata usaha dan rumah
tangga pusat.
BAB IV
ANALISA DAN PEMBAHASAN
4.1. Fase Perencanaan Syarat-syarat
Sebagaimana telah diuraikan pada bab sebelumnya, fase ini adalah
fase identifikasi tujuan, syarat-syarat dan kebutuhan sistem untuk
menyelesaikan permasalahan-permasalahan yang ada.
4.1.1. Tujuan Sistem
Sistem ini bertujuan untuk membantu pihak Humas Depag RI
untuk menentukan jadwal kegiatan dengan metode algoritma
genetika dalam mencari solusi agar tidak terjadi kegiatan yang
bentrok.
4.1.2. Syarat-syarat Informasi
Pengembangan sistem penjadwalan kegiatan ini harus
memenuhi syarat-syarat yang meliputi kelengkapan data, software
dan hardware. Kelengkapan data yang digunakan untuk
pengembangan sistem penjadwalan kegiatan tersebut adalah :
1. Data Pembicara
2. Data Kegiatan
3. Data Ruang
4. Data Shift
Sedangkan kelengkapan software dan hardware yang
digunakan untuk pengembangan sistem penjadwalan kegiatan
tersebut adalah :
Software
1. Windows XP
2. Microsoft Visual Studio.NET
3. MySQL
4. SAP Crystal Report
Hardware
a. Prosesor setara pentium III keatas
b. Memory minimal 128MB
c. Monitor dengan resolusi 1024 x 768
d. Keybord dan Mouse
e. Printer
4.1.3. Analisa Kebutuhan Sistem
Proses pembuatan jadwal kegiatan pada Humas Departemen
Agama RI selama ini masih secara manual menggunakan Microsoft
Excel. Banyaknya jumlah pembicara, kegiatan-kegiatan dan ruang
merupakan hal yang penting dan berpengaruh dalam pembuatan
jadwal kegiatan. Sehingga jika masalah ini dilakukan secara manual,
maka membutuhkan waktu yang cukup banyak serta membutuhkan
tingkat ketelitian yang tinggi.
4.1.4. Sistem Penjadwalan yang Berjalan
Dalam mengatur penjadwalan kegiatan, bidang Humas
Kementerian Agama memiliki beberapa prosedur yang berlaku,
antara lain :
1. Proses pembuatan jadwal kegiatan mengenai penetapan waktu,
kegiatan-kegiatan, penempatan ruangan/tempat dilakukan oleh
staf bidang Humas, sedangkan kesiapan menjadi pembicara
dilakukan oleh Sub bagian Tata Usaha.
2. Data yang digunakan adalah nama pembicara, nama kegiatan,
waktu kesediaan pembicara, jumlah ruangan yang tersedia.
Dalam penulisan tugas akhir ini, penulis hanya akan
menganalisa sistem penjadwalan yang ada di bidang Humas. Ada
beberapa pihak yang terlibat dalam proses pembuatan dan
penyusunan penjadwalan ini yaitu staf bidang Humas, dan Kepala
Bidang Kehumasan.
Tahapan-tahapan dalam membuat penjadwalan kegiatan adalah :
1. Staf humas mendata semua kegiatan dan menentukan waktu
kegiatan, serta mendata jumlah ruangan/tempat yang akan
digunakan.
2. Data yang telah diolah di staf Humas diserahkan kepada Kepala
Bidang Humas, untuk memberikan persetujuan semua kegiatan
yang akan dilaksanakan serta membuat laporan jadwal kegiatan
dengan menggunakan Microsoft Excel.
3. Subbag tata usaha PIKMAS menerima laporan jadwal kegiatan
dan mencocokkan kesediaan waktu pembicara satu dengan
pembicara yang lain.
4. Setelah itu, Penjadwalan kegiatan di cetak untuk disimpan
sebagai dokumentasi humas. Penjadwalan kegiatan yang telah di
cetak ini diterapkan selama periode tahunan.
Tabel 4.1. Flowchart sistem penjadwalan yang berjalan
4.1.5. Alternatif Penyelesaian Masalah
Dengan melihat permasalahan yang ada, maka berikut ini adalah
usulan solusi atas masalah yang dihadapi :
Pengembangan Sistem Informasi Penjadwalan Kegiatan dengan
Metode Algoritma Genetika.
Pembuatan aplikasi ini memberikan keuntungan sebagai berikut :
1. Staf bidang Humas menjadi lebih mudah untuk membuat jadwal
kegiatan dengan menggunakan menu-menu yang terdapat dalam
software aplikasi.
2. Terdapat database untuk sistem yang baru, sehingga data – data
yang dibutuhkan untuk penjadwalan kegiatan menjadi lebih
terstruktur.
3. Meningkatkan efektifitas dengan cara mengurangi kesalahan
manusia (human error).
4.1.6. Sistem Penjadwalan Yang Diusulkan
Pada Sistem yang akan diusulkan terdapat 3 pengguna sistem,
yaitu: user ka_bid yang memiliki akses pada sistem ini hanya untuk
melihat laporan-laporan data pembicara, data kegiatan, dan jadwal
kegiatan. Yang kedua ialah admin sebagai administrator untuk
mengelola semua data. Yang ketiga adalah user staf humas yang
memiliki hak akses untuk sistem ini antara lain untuk menginput
data-data pembicara, data kegiatan, data ruang dan menginput data
jadwal yang telah ditentukan.
Tabel 4.2. Flowchart sistem penjadwalan yang diusulkan
4.1.7. Perbandingan Sistem
Dalam tahap ini, penulis melakukan analisa untuk
mendapatkan perbandingan pada sistem yang berjalan, sistem dari
literature sejenis, dan sistem yang diusulkan.
Tabel 4.3. Perbandingan Sistem
NO Sistem berjalan Literature sejenis Sistem usulan
1. Penyimpanan data
menggunkan
Microsoft Excell
Penuyimpanan
data
menggunakan
Microsoft Access
Penyimpanan data menggunakan
basis data MySQL
2. Tidak adanya
analisa mengenai
pelaporan data
pembicara, kegiatan,
ruang, maupun data
jadwal kegiatan.
Analisa sistem
dilanjutkan
hingga sampai
proses pembuatan
jadwal
Sistem penjadwalan
menggunakan metode algoritma
genetika untuk mencari solusi
yang lebih optimal
3. Pembuatan jadwal
masih manual
Adanya sistem
penjadwalan yang
dapat membantu
dalam pembuatan
jadwal
Sistem aplikasi yang diusulkan
dapat lebih baik dari sebelumnya
karena menggunakan program
terbaru, dan tampilannya lebih
menarik.
4.2. Workshop Design / Fase Perancangan
Dalam fase ini, penulis secara aktif berinteraksi dengan pengguna
untuk menggunakan prototype sistem.
4.2.1. Desain Sistem Algoritma Genetika
Adapun desain sistem algoritma genetika yang digunakan
adalah menentukan teknik penyandian, melakukan fungsi fitness,
menentukan prosedur inisialisasi, pembangkitkan populasi awal,
evaluasi, kriteria optimasi tercapai, seleksi, melakukan penyilangan
(crossover), mutasi, dan menentukan generasi terakhir.
4.2.1.1. Teknik Penyandian
Kromosom / individu (Kesediaan waktu Pembicara)
terdiri dari 3 gen yang meliputi :
a. Variabel Pembicara : Gen 1
b. Variabel Kegiatan : Gen 2
c. Variabel Hari : Gen 3
a. Variabel Pembicara
Variable pembicara (Gen1) merupakan Id pembicara
yang diambil dari data pembicara pada Kehumasan
Kementerian Agama RI. Variabel ini di sandikan /
disimbolkan dengan Character yang direpresentasikan
dalam struktur tabel pembicara pada database.
b. Variabel Kegiatan
Variabel kegiatan (Gen2) merupakan Id kegiatan yang
diambil dari data kegiatan pada bagian Humas Kementerian
Agama RI. Variabel ini di sandikan / disimbolkan dengan
Character yang direpresentasikan dalam struktur tabel
kegiatan pada database.
c. Variabel Hari
Variabel Hari (Gen 3) merupakan nama hari yang
berisikan waktu kesediaan dari kegiatan-kegiatan pada
Kehumasan Kementerian Agama RI. Variabel ini
disandikan / disimbolkan dengan number yang
direpresentasikan dalam struktur tabel Hari pada database.
Contoh :
a. Variabel Pembicara : Gen 1
Pembicara Id_Pembicara Nama_Pembicara Gelar Jabatan Biro Bidang PM01 Suryadharma Ali Drs. H. Menag Menteri
Agama -
PM02 Masyuri AM Drs. H. M.Pd
Kabiro PIKMAS -
PM03 Afrizal Zein Drs. H. M.Si
Kabag PIKMAS kehumasan
PM04 Suparmin Drs. H. M.Pd
Kabag PIKMAS Pengembangan dan analisa keagamaaan
PM05 Ferimeldi Pi.d Kabag PIKMAS Penyelenggaraan SIS,Jar dan
aplikasi
b. Variabel Kegiatan : Gen 2
Kegiatan
Id_Kegiatan Nama_ Kegiatan Uraian _Kegiatan
K100 Rapat Koordinasi Antar Lembaga pemerintahan
c. Variabel Hari (kesediaan pembicara) : Gen 3
Kesediaan Id_Pembicara Id_Kegiatan Senin Selasa Rabu Kamis Jumat Kesediaan
PM01 K300 1 1 0 0 0 11000
PM02 K100 1 1 1 0 0 11100
PM03 K500 0 0 1 1 1 00110
PM04 K400 0 0 1 0 0 00100
PM05 K200 0 1 1 0 0 01100
Maka dari ketiga variabel (gen) diatas digabung
menjadi sebuah kromosom (Individu) menjadi sebagai
berikut :
Kromosom manjadi : PM01K3001100
K200 Orientasi & Evaluasi Pembekalan MCH
K300 Rapat Kerja Komisi DPR RI
K400 Monitoring Kehumasan
Kunjungan kerja Antar daerah
K500 Workshop Pameran Keagamaan
PM01 K300 11000
Id_Kegiatan kesediaan
Gen 1 Gen 2
Id_ Pembicara
Gen 3
Maksud dari kromosom diatas adalah : Pembicara
dengan nama Suryadharma Ali bersedia menjadi
narasumber pada minggu Ke 1 dan Ke 2.
4.2.1.2. Fungsi Fitness
Dalam sistem ini, permasalahan optimasi adalah
mengoptimalkan n Pembicara dengan n kegiatan pada n
ruangan yang ada. Karena itu fungsi fitness yang digunakan
dapat didefinisikan sebagai kesediaan waktu pembicara.
Fungsi fitness tersebut dapat direpresentasikan oleh
persamaan berikut.
F = Kesediaan Waktu pembicara Minggu
4.2.1.3. Prosedur Inisialisasi
Pada proses ini dilakukan inisialisasi kesiapan
pembicara. Sebagai contoh diberikan 5 data pembicara dan
5 kegiatan (Tabel 4.3 dan Tabel 4.4) yang akan ditempatkan
pada ruangan.
Tabel 4.4. Data Pembicara
Tabel 4.5. Data Kegiatan
No Id_Pembicara Nama_Pembicara 1 PM01 Suryadharma Ali 2 PM02 Masyuri AM 3 PM03 Afrizal Zein 4 PM04 Suparmin 5 PM05 Ferimeldi
No Id_Kegiatan Nama_Kegiatan Uraian_Kegiatan
Inisialisasi kedua tabel
Id_Pembicara : PM01
Nama_Pembicara : Suryadharma Ali
Id_Kegiatan : K300
Nama_Kegiatan : Rapat Kerja dengan komisi DPR RI
Minggu : 1
Hari/ Shift
Senin Selasa Rabu Kamis Jumat
I . 09.10 – 10.20 1
II. 10.20 – 11.40 1 III. 13.00 – 13.50 1 IV. 13.50 – 14.40
1
V. 14,40 – 15.30 Id_Pembicara : PM02
Nama_Pembicara : Masyuri AM
Id_Kegiatan : K100
Nama_Kegiatan : Rapat Koordinasi antar lembaga
1 K100 Rapat Koordinasi Antar Lembaga
pemerintahan
2 K200 Orientasi &
Evaluasi Pembekalan MCH
3 K300 Rapat Kerja Komisi DPR RI
4 K400 Monitoring
Kehumasan Kunjungan kerja
5 K500 Workshop Pameran
Keagamaan
Minggu : 1
Hari / Shift
Senin Selasa Rabu Kamis Jumat
I . 09.10 – 10.20 1 1
II. 10.20 – 11.40 1 1 III. 13.00 – 13.50 IV. 13.50 – 14.40 V. 14,40 – 15.30
Id_Pembicara : PM03
Nama_Pembicara : Afrizal Zein
Id_Kegiatan : K500
Nama_Kegiatan : Workshop / Pameran keagamaan
Minggu : 1
Hari / Shift
Senin Selasa Rabu Kamis Jumat
I . 09.10 – 10.20
II. 10.20 – 11.40 1 III. 13.00 – 13.50 1 IV. 13.50 – 14.40 1 V. 14,40 – 15.30
Id_Pembicara : PM04
Nama_Pembicara : Suparmin
Id_Kegiatan : K400
Nama_Kegiatan : Monitoring Kehumasan
Minggu : 1
Hari / Shift
Senin Selasa Rabu Kamis Jumat
I . 09.10 – 10.20
II. 10.20 – 11.40 1 III. 13.00 – 13.50 1 IV. 13.50 – 14.40 1 V. 14,40 – 15.30
Id_Pembicara : P005
Nama_Pembicara : Ferimeldi
Id_Kegiatan : K200
Nama_Kegiatan : Orientasi dan Evaluasi
Minggu : 1
4.2.1.4. Pembangkitan Populasi Awal
Proses ini dilakukan pembangkitan populasi
(kesediaan pembicara) yang telah diinisialisasikan diatas.
Tabel 4.6. Tabel Pembangkitan Populasi (kesediaan pembicara)
Hari / Shift
Senin Selasa Rabu Kamis Jumat
I . 09.10 – 10.20 1
II. 10.20 – 11.40 1 III. 13.00 – 13.50 1 IV. 13.50 – 14.40 1 V. 14,40 – 15.30
Id_ Pembicar
a
Nama_ Pembicara
Id_ Kegiatan
Kegiatan Minggu Hari shift
PM01 Suryadharma Ali
K300 Rapat Kerja
1 Senin 1
PM01 Suryadharma Ali
K300 Rapat Kerja
1 Selasa 2
4.2.1.5. Evaluasi
Pada proses ini, kesediaan pembicara yang
dibangkitkan diatas dievaluasi dengan menjumlahkan
kesediaan pembicara masing-masing.
Tabel 4.7. Evaluasi Kesediaan nilai fitness
Id_Pembicara Id_Kegiatan NIlai Fitnes
PM01 K300 4
PM02 K100 4
PM03 K500 3
PM04 K400 3
PM05 K200 4
PM01 Suryadharma Ali
K300 Rapat Kerja
1 Selasa 3
PM01 Suryadharma Ali
K300 Rapat Kerja
1 Selasa 4
PM02 Mashuri AM K100
Koordinasi
1 Senin 1
PM02 Mashuri AM K100
Koordinasi
1 Senin 2
PM02 Mashuri AM K100
Koordinasi
1 Rabu 1
PM02 Mashuri AM K100
Koordinasi
1 Rabu 2
PM03 Afrizal Zein K500 Workshop 1 Jumat 3 PM03 Afrizal Zein K500 Workshop 1 Jumat 4 PM03 Afrizal Zein K500 Workshop 1 Jumat 5
PM04 Suparmin K400 Monitoring
1 Rabu 2
PM04 Suparmin K400
Monitoring
1 Rabu 3
PM04 Suparmin K400
Monitoring
1 Rabu 4
PM05 Ferimeldi K200 Orientasi 1 Selasa 1 PM05 Ferimeldi K200 Orientasi 1 Selasa 2 PM05 Ferimeldi K200 Orientasi 1 Rabu 3 PM05 Ferimeldi K200 Orientasi 1 Rabu 4
4.2.1.6. Kriteria Optimasi Tercapai
Di dalam algoritma genetika, sebelum masuk ke tahap
seleksi, ada kriteria yang harus dipenuhi agar optimasi dapat
tercapai. Kriteria ditentukan sesuai dengan pokok
permasalahan yang ada. Kriteria tersebut adalah
mengurutkan populasi berdasarkan waktu (minggu), yaitu
populasi yang memiliki jadwal minggu 1 (satu) sampai
minggu 5 (lima). contoh pembicara yang menjadi
narasumber pada minggu 1.
4.2.1.7. Seleksi
Setelah evaluasi dilakukan, kesiapan pembicara akan
mengalami seleksi berdasarkan minggu yang telah
ditetapkan. Seleksi ini bertujuan untuk menentukan
kesiapan pembicara mana yang sesuai untuk menempati
ruangan yang tersedia. Seleksi yang penulis gunakan adalah
Rank-based fitness yaitu dengan cara mengurutkan
kesediaan waktu pembicara menurut nilai objektifnya
(banyaknya waktu pembicara). Penerapan contoh diatas,
dapat dilihat pada Tabel 4.8 dibawah ini.
Tabel 4.8. Kesediaan waktu Pembicara Hasil Seleksi
Seleksi (Senin, Shift I)
Id_ Nama_ Id_ Nama_ Fitness
4.2.1.8. Rekombinasi (Crossover)
Rekombinasi (crossover) juga terjadi terhadap
proses seleksi dengan melakukan penyilangan satu titik
(single point crossover) untuk minggu berikutnya terhadap
kesiapan pembicara sebanyak ruang yang tersedia.
Tabel 4.9. Tabel Jadwal (Generasi ke-1)
Tabel 4.10. Populasi Setelah Crossover
Pembicara Pembicara Kegiatan Kegiatan Minggu PM01 Suryadharma
Ali K300 Rapat Kerja 1 4
PM02 Mashuri K100 Koordinasi 1 4
Id_ Pembicara
Id_ Kegiatan
Minggu Lingkup Ruang
PM01 K300 1 Internal 201 PM02 K100 1 Internal 202
Id_
Pembicara
Id_
Kegiatan
Minggu Lingkup Hari Shift
PM01 K300 1 Eksternal Selasa 2
PM01 K300 1 Eksternal Selasa 3
PM01 K300 1 Eksternal Selasa 4
PM02 K100 1 Eksternal Senin 1 PM02 K100 1 Eksternal Senin 2 PM02 K100 1 Eksternal Rabu 1
4.2.1.9. Mutasi
Proses mutasi terjadi pada kesediaan pembicara
yang benar-benar belum mendapatkan ruang. Proses
evaluasi, seleksi, rekombinasi, dan mutasi ini akan
dilakukan berulang-ulang selama jumlah waktu kegiatan
belum habis dan selama populasi (kesediaan pembicara)
belum kosong.
4.2.1.10. Jadwal Kegiatan (Generasi Terakhir)
Dari 5 pembicara dan 5 kegiatan yang dijadikan
sebagai contoh dan diproses berdasarkan langkah
algoritma genetika maka dihasilkan Jadwal kegiatan
sederhana untuk lingkup eksternal dan internal dengan
ruang yang tersedia. Jadwal kegiatan tersebut dapat dilihat
pada Tabel 4.11.
PM02 K100 1 Internal Rabu 2 PM03 K500 1 Internal Jumat 3 PM03 K500 1 Internal Jumat 4 PM03 K500 1 Internal Jumat 5 PM04 K400 1 Eksternal Rabu 2 PM04 K400 1 Eksternal Rabu 3 PM04 K400 1 Eksternal Rabu 2 PM05 K200 1 Internal Selasa 1 PM05 K200 1 Internal Selasa 2 PM05 K200 1 Internal Rabu 3 PM05 K200 1 Internal Rabu 4
Tabel 4.11. Jadwal Kegiatan (Generasi Terakhir)
4.2.2. Data Flow Diagram (DFD)
Id_
Pembicara
Nama_
pembicara
Id_
Kegiatan
Nama_ Kegiatan
Minggu Lingkup Hari Shift Ruang
P001 Suryadharma Ali
K300 Rapat Kerja 1 Internal Senin 1 201
P001 Suryadharma Ali
K300 Rapat Kerja 1 Internal Selasa 2 201
P001 Suryadharma Ali
K300 Rapat Kerja 1 Internal Selasa 3 201
P001 Suryadharma Ali
K300 Rapat Kerja 1 Internal Selasa 4 201
P002 Mashuri AM K100 Koordinasi 1 Internal Senin 1 202
P002 Mashuri AM K100 Koordinasi 1 Internal Senin 2 202
P002 Mashuri AM K100 Koordinasi 1 Internal Rabu 1 202
P002 Mashuri AM K100 Koordinasi 1 Internal Rabu 2 202
P003 Afrizal Zein K500 Workshop 1 Eksternal Jumat 3 GL150
P003 Afrizal Zein K500 Workshop 1 Eksternal Jumat 4 GL150
P003 Afrizal Zein K500 Workshop 1 Eksternal Jumat 5 GL150
P004 Suparmin K400 Kunjungan 1 Internal Rabu 2 201
P004 Suparmin K400 Kunjungan 1 Internal Rabu 3 201
P004 Suparmin K400 Kunjungan 1 Internal Rabu 4 201
P005 Ferimeldi K200 Orientasi 1 Internal Selasa 1 202
P005 Ferimeldi K200 Orientasi 1 Internal Selasa 2 202
P005 Ferimeldi K200 Orientasi 1 Internal Rabu 3 202
P005 Ferimeldi K200 Orientasi 1 Internal Rabu 4 202
Gambar 4.1. Diagram konteks sistem informasi penjadwalan kegiatan
Diagram Konteks adalah diagram yang terdiri dari suatu proses dan
menggambarkan ruang lingkup suatu sistem. Dalam diagram konteks ini
terdapat 1 proses yakni sistem penjadwalan kegiatan, dan memiliki 2 entitas
luar yakni user dan kepala bagian, selain itu ada input dari admin yakni
login_user, form_pembicara, form_kegiatan, form_ruang, form_shift,
form_kesediaan, form nilai_fitness, seleksi_jadwal dan 12 keluaran dari user
yakni data_user, data_pembicara, data_kegiatan, data_ruang, data_shift,
data_kesediaan, data_nilai_fitness, data_jadwal_valid, lap_kesediaan,
lap_jadwal.
Gambar 4.2. Diagram Overview sistem informasi penjadwalan kegiatan
Gambar 4.3. Diagram 1 level 1 Proses Mengolah Data Master
Gambar 4.4. Diagram 2 Level 1 Proses Mengolah Kesediaan
Gambar 4.5. Diagram 3 Level 1 Proses Tentukan Nilai Fitness
Gambar 4.6. Diagram 4 Level 1 Proses seleksi jadwal
Gambar 4.7. Diagram 5 Level 1 Proses Cetak Laporan
Gambar 4.8. Diagram 1 Level 2 rincian Proses 1.1 Pengelolaan
Login
Gambar 4.9. Diagram 1 Level 2 Proses 1.2 Pengelolaan Data
Pembicara
Gambar 4.10. Diagram 1 Level 2 Proses 1.3 Pengelolaan Data
Kegiatan
Gambar 4.11. Diagram 1 Level 2 Proses 1.4 Pengelolaan Data
Ruang
Gambar 4.12. Diagram 1 Level 2 Proses 1.5 Pengelolaan Data Shift
Gambar 4.13. Diagram 1 Level 2 Proses 1.6 Pengelolaan Data Biro
Gambar 4.14. Diagram 1 Level 2 Proses 1.7 Pengelolaan Data
Bidang
Gambar 4.15. Diagram 1 Level 2 Proses 1.8 Pengelolaan Data
Gedung
4.2.2.1. Spesifikasi Proses Diagram Overview
a. Proses 1.0.
Nama Proses : mengolah data master
Masukkan : form user, form pembicara, form kegiatan,
form ruang, form shift, form biro, form
bidang, form gedung.
Keluaran : data user, data pembicara, data kegiatan,
data ruang, data shift, data biro, data
bidang, data gedung.
Uraian Proses : admin mengolah data master dengan cara
mengisi form user, form pembicara, form
kegiatan, form ruang, form shift, form biro,
form bidang, form gedung.
b. Proses 2.0.
Nama Proses : mengolah kesediaan
Masukkan : form kesediaan, data pembicara, data
kegiatan, data shift.
Keluaran : data kesediaan.
Uraian Proses : admin/user mengolah data kesediaan
dengan cara mengisi form kesediaan, data
pembicara, data kegiatan, data shift..
c. Proses 3.0.
Nama Proses : tentukan nilai fitness
Masukkan : form nilai fitness, data kesediaan
Keluaran : nilai fitness
Uraian Proses : admin/user menentukan nilai fitness
dengan menjumlahkan total kesediaan dari
data kesediaan yang akan dilanjutkan
ketahap seleksi.
d. Proses 4.0.
Nama Proses : seleksi jadwal
Masukkan : form seleksi jadwal, data kesediaan, data
ruang
Keluaran : data jadwal
Uraian Proses : proses penyeleksian jadwal yang akan
menentukan ruang yang tersedia dengan
data kesediaan yang telah diinput
sebelumnya.
e. Proses 5.0.
Nama Proses : cetak laporan
Masukkan : data kesediaan, data jadwal,
Keluaran : laporan kesediaan, laporan jadwal.
Uraian Proses : proses pembuatan laporan yang telah
diselesaikan oleh admin/user yang diambil
dari database pembicara, kegiatan,
kesediaan, jadwal yang akan diberikan
kepada Kepala Bagian.
4.2.2.2. Spesifikasi Proses Diagram rinci level 1
a. Proses 1.1.
Nama Proses : pengelolaan data user
Masukkan : username, password
Keluaran : -
Uraian Proses : proses mengelola data user dengan cara
mengisi form user oleh admin/user.
b. Proses 1.2.
Nama Proses : pengelolaan data pembicara
Masukkan : form pembicara, data biro, data bidang
Keluaran : data pembicara
Uraian Proses : admin/user mengelola data pembicara
dengan cara mengisi form pembicara.
c. Proses 1.3.
Nama Proses : pengelolaan data kegiatan
Masukkan : form kegiatan
Keluaran : data kegiatan
Uraian Proses : admin/user mengelola data kegiatan
dengan cara mengisi form kegiatan.
d. Proses 1.4.
Nama Proses : pengelolaan data ruang
Masukkan : form ruang, data gedung
Keluaran : data ruang
Uraian Proses : admin/user mengelola data ruang dengan
cara mengisi form ruang.
e. Proses 1.5.
Nama Proses : pengelolaan data shift
Masukkan : form shift
Keluaran : data shift
Uraian Proses : admin/user mengelola data shift dengan
cara mengisi form shift.
f. Proses 1.6.
Nama Proses : pengelolaan data biro
Masukkan : form biro
Keluaran : data biro
Uraian Proses : admin/user mengelola data biro dengan
cara mengisi form biro.
g. Proses 1.7.
Nama Proses : pengelolaan data bidang
Masukkan : form bidang
Keluaran : data bidang
Uraian Proses : admin/user mengelola data bidang dengan
cara mengisi form bidang.
h. Proses 1.8.
Nama Proses : pengelolaan data gedung
Masukkan : form gedung
Keluaran : data gedung
Uraian Proses : admin/user mengelola data gedung dengan
cara mengisi form gedung
.
i. Proses 2.1.P
Nama Proses : ambil data
Masukkan : ambil data, data pembicara, data kegiatan,
data shift
Keluaran : data pembicara, data kegiatan, data shift
Uraian Proses : proses pengambilan data, data pembicara,
data kegiatan, data shift oleh admin/user.
j. Proses 2.2.P
Nama Proses : tentukan kesediaan
Masukkan : form kesediaan, data pembicara, data
kegiatan, data shift
Keluaran : form valid
Uraian Proses : proses menentukan kesediaan dengan cara
mengisi form kesediaan.
k. Proses 2.3.P
Nama Proses : simpan data
Masukkan : form valid
Keluaran : data kesediaan
Uraian Proses : admin/user menyimpan data kesediaan
kedalam database kesediaan.
l. Proses 3.1.P
Nama Proses : hitung nilai fitness
Masukkan : form nilai fitness, noid kesediaan
Keluaran : form valid
Uraian Proses : admin/user menghitung jumlah nilai
fitness yang diambil banyaknya kesediaan
dari database kesediaan.
m. Proses 3.2.P
Nama Proses : simpan data
Masukkan : form valid
Keluaran : data nilai fitness.
Uraian Proses : admin/user menyimpan data nilai fitness
kedalam database nilai fitness.
n. Proses 4.1.P
Nama Proses : Ambil data
Masukkan : form seleksi jadwal, data kesediaan, data
ruang
Keluaran : data kesediaan, data ruang
Uraian Proses : proses pengambilan data pada database
data kesediaan, data ruang oleh admin/user.
o. Proses 4.2.P
Nama Proses : penentuan ruang
Masukkan : data kesediaan, data ruang
Keluaran : form valid
Uraian Proses : proses menentukan ruang.
p. Proses 4.3.P
Nama Proses : simpan data
Masukkan : form valid
Keluaran : data jadwal
Uraian Proses : admin/user menyimpan data jadwal
kedalam database jadwal.
q. Proses 5.1.P
Nama Proses : laporan kesediaan
Masukkan : data kesediaan
Keluaran : laporan kesediaan
Uraian Proses : proses pembuatan laporan kesediaan oleh
admin/user yang akan dberikan pada
Kepala Bidang.
r. Proses 5.2.P
Nama Proses : laporan pembicara
Masukkan : data pembicara
Keluaran : laporan pembicara
Uraian Proses : proses pembuatan laporan pembicara oleh
admin/user yang akan diberikan pada
Kepala Bidang.
s. Proses 5.3.P
Nama Proses : laporan kegiatan
Masukkan : data kegiatan
Keluaran : laporan kegiatan
Uraian Proses : proses pembuatan laporan kegiatan oleh
admin/user yang akan diberikan pada
Kepala Bidang.
t. Proses 5.4.P
Nama Proses : laporan ruang
Masukkan : data ruang
Keluaran : laporan ruang
Uraian Proses : proses pembuatan laporan ruang oleh
admin/user yang akan diberikan pada
Kepala Bidang.
u. Proses 5.5.P
Nama Proses : laporan hari/shift
Masukkan : data shift
Keluaran : laporan hari
Uraian Proses : proses pembuatan laporan jadwal oleh
admin/user yang akan diberikan pada
Kepala Bidang.
v. Proses 5.6.P
Nama Proses : laporan jadwal
Masukkan : data jadwal, data pembicara, data kegiatan,
Data ruang, data shift
Keluaran : laporan jadwal
Uraian Proses : proses pembuatan laporan jadwal oleh
admin/user yang akan diberikan pada
Kepala Bidang.
4.2.2.3. Spesifikasi Proses Diagram rinci level 2
a. Proses 1.1.1.P
Nama Proses : lihat data user
Masukkan : lihat data user
Keluaran : data user
Uraian Proses : admin/user melihat data user.
b. Proses 1.1.2.P
Nama Proses : input/edit data user
Masukkan : form user
Keluaran : form valid
Uraian Proses : admin mengisi form user untuk
menambah user sedangkan user hanya bisa
merubah data user.
c. Proses 1.1.3.P
Nama Proses : simpan data user
Masukkan : form valid
Keluaran : data user
Uraian Proses : admin/user menyimpan data user kedalam
database user.
d. Proses 1.2.1.P
Nama Proses : lihat data pembicara
Masukkan : lihat data pembicara
Keluaran : data pembicara
Uraian Proses : admin/user melihat data pembicara.
e. Proses 1.2.2.P
Nama Proses : input/edit pembicara
Masukkan : form pembicara
Keluaran : form valid
Uraian Proses : admin/user menginput dan mengedit form
pembicara.
f. Proses 1.2.3.P
Nama Proses : simpan data pembicara
Masukkan : form valid
Keluaran : data pembicara
Uraian Proses : admin/user menyimpan data pembicara
kedalam database pembicara.
g. Proses 1.2.4.P
Nama Proses : hapus pembicara
Masukkan : id pembicara
Keluaran : data pembicara
Uraian Proses : admin/user menghapus id pembicara dari
database pembicara.
h. Proses 1.3.1.P
Nama Proses : lihat data kegiatan
Masukkan : lihat data kegiatan
Keluaran : data kegiatan
Uraian Proses : admin/user melihat data kegiatan.
i. Proses 1.3.2.P
Nama Proses : input/edit kegiatan
Masukkan : form kegiatan
Keluaran : form valid
Uraian Proses : admin/user menginput dan mengedit form
kegiatan .
j. Proses 1.3.3.P
Nama Proses : simpan data kegiatan
Masukkan : form valid
Keluaran : data kegiatan
Uraian Proses : admin/user menyimpan data kegiatan
kedalam database kegiatan.
k. Proses 1.3.4.P
Nama Proses : hapus kegiatan
Masukkan : id kegiatan
Keluaran : data kegiatan
Uraian Proses : admin/user menghapus id kegiatan dari
database kegiatan.
l. Proses 1.4.1.P
Nama Proses : lihat data ruang
Masukkan : lihat data ruang
Keluaran : data ruang
Uraian Proses : admin/user melihat data ruang.
m. Proses 1.4.2.P
Nama Proses : input/edit ruang
Masukkan : form ruang
Keluaran : form valid
Uraian Proses : admin/user menginput dan mengedit form
ruang.
n. Proses 1.4.3.P
Nama Proses : simpan data ruang
Masukkan : form valid
Keluaran : data ruang
Uraian Proses : admin/user menyimpan data ruang
kedalam database ruang.
o. Proses 1.4.4.P
Nama Proses : hapus ruang
Masukkan : id ruang
Keluaran : data ruang
Uraian Proses : admin/user menghapus id ruang dari
database ruang.
p. Proses 1.5.1.P
Nama Proses : lihat data shift
Masukkan : lihat data shift
Keluaran : data shift
Uraian Proses : admin/user melihat data shift.
q. Proses 1.5.2.P
Nama Proses : input/edit shift
Masukkan : form shift
Keluaran : form valid
Uraian Proses : admin/user menginput dan mengedit form
shift.
r. Proses 1.5.3.P
Nama Proses : simpan data shift
Masukkan : form valid
Keluaran : data shift
Uraian Proses : admin/user menyimpan data shift dari
database shift.
s. Proses 1.5.3.P
Nama Proses : hapus shift
Masukkan : id shift
Keluaran : data shift
Uraian Proses : admin/user menghapus id shift dari
database shift.
t. Proses 1.6.1.P
Nama Proses : lihat data biro
Masukkan : lihat data biro
Keluaran : data biro
Uraian Proses : admin/user melihat data biro.
u. Proses 1.6.2.P
Nama Proses : input/edit biro
Masukkan : form biro
Keluaran : form valid
Uraian Proses : admin/user menginput dan mengedit form
biro.
v. Proses 1.6.3.P
Nama Proses : simpan data biro
Masukkan : form valid
Keluaran : data biro
Uraian Proses : admin/user menyimpan data biro kedalam
database biro.
w. Proses 1.6.3.P
Nama Proses : hapus biro
Masukkan : id biro
Keluaran : data biro
Uraian Proses : admin/user menghapus id biro dari
database biro.
x. Proses 1.7.1.P
Nama Proses : lihat data bidang
Masukkan : lihat data bidang
Keluaran : data bidang
Uraian Proses : admin/user melihat data bidang.
y. Proses 1.7.2.P
Nama Proses : input/edit bidang
Masukkan : form bidang
Keluaran : form valid
Uraian Proses : admin/user menginput dan mengedit form
bidang.
z. Proses 1.7.3.P
Nama Proses : simpan data bidang
Masukkan : form valid
Keluaran : data bidang
Uraian Proses : admin/user menyimpan data bidang
kedalam database bidang.
aa. Proses 1.7.4.P
Nama Proses : hapus bidang
Masukkan : id bidang
Keluaran : data bidang
Uraian Proses : admin/user menghapus id bidang dari
database bidang.
bb. Proses 1.8.1.P
Nama Proses : lihat data gedung
Masukkan : lihat data gedung
Keluaran : data gedung
Uraian Proses : admin/user melihat data gedung.
cc. Proses 1.8.2.P
Nama Proses : input/edit gedung
Masukkan : form gedung
Keluaran : form valid
Uraian Proses : admin/user menginput dan mengedit form
gedung.
dd. Proses 1.8.3.P
Nama Proses : simpan data gedung
Masukkan : form valid
Keluaran : data bidang
Uraian Proses : admin/user menyimpan data gedung
kedalam database gedung.
ee. Proses 1.8.4.P
Nama Proses : hapus gedung
Masukkan : id gedung
Keluaran : data gedung
Uraian Proses : admin/user menghapus id gedung dari
database gedung.
4.2.3. Kamus Data
Kamus data atau data dictionary yang terdapat di sistem
penjadwalan kegiatan terdiri dari :
1. User : Id_user* + username + password + email.
2. Pembicara : Id_pembicara* + nama_pembicara + gelar +
jabatan + biro + bidang.
3. Kegiatan : Id_kegiatan* + nama_kegiatan + uraian_kegiatan
+ keterangan.
4. Ruang : Id_ruang* + nama_ruang + gedung + kapasitas.
5. Shift : Id_shift* + jam.
6. Biro : Id_biro + nama_biro.
7. Bidang : id_bidang + nama_bidang.
8. Gedung : Id_gedung + nama_gedung.
9. Kesediaan : no_id* + id_pembicara + nama_pembicara +
jabatan + id_kegiatan + nama_kegiatan + uraian kegiatan +
senin + selasa + rabu + kamis + jumat + minggu + periode +
tahun + id_shift.
10. Nilai Fitness : id_kesediaan + id_pembicara +
nama_pembicara + id_kegiatan + nama_kegiatan + total
nilai_fitness.
11. Jadwal : no_id + + id_kesediaan + id_pembicara +
id_kegiatan + lingkup + minggu + hari + id_shift + id_ruang
+ periode.
4.2.4. ERD (Entity Relationship Diagram)
Untuk dapat melihat hubungan yang terjadi antara tabel satu
dengan tabel yang lain maka digunakan ERD untuk
menggambarkannya. ERD adalah notasi grafik dari sebuah model
data/sebuah model jaringan yang menjelaskan tentang data yang
tersimpan (storage data) dalam sistem secara abstrak.
Gambar 4.16. ERD Sistem Informasi Penjadwalan Kegiatan
4.2.4.1. Normalisasi
Pada proses normalisasi terdapat beberapa tahapan sebagai
berikut :
1. Bentuk Tidak Normal (Unformalized)
Bentuk ini merupakan kumpulan data yang akan
direkam, tidak ada keharusan mengikuti format tertentu.
Data yang dikumpulkan apa adanya sesuai dengan saat
menginput.
Gambar 4.17. Unnormalized Form ( UNF)
2. Bentuk Normal Pertama (1-NF)
Pada tahap ini dilakukan penghilangan beberapa
group elemen yang berulang agar menjadi satu harga
tunggal yang berinteraksi diantara setiap baris pada suatu
tabel. Ketentuan bentuk normal pertama (1-NF) adalah
tidak ada atribut yang berulang, telah ditentukannya
primary key untuk tabel/relasi tersebut.
Gambar 4.18. First Normal Form (1NF)
Id_user *
Username
PasswordEmail
Id_pembicara *
Nama_pembicara
Gelar
JabatanBiro
Bidang
Id_kegiatan *
Nama_kegiatan
Uraian_kegiatanId_ruang *
Nama_ruang
Gedung
Kapasitas
Id_shift *Jam
NoId_kesediaan *
Senin
Selasa Rabu
Kamis
Jumat
Minggu
Periode NoId_kesediaan
Total nilai_fitness
NoId_kesediaan
Nama ruang
MingguLingkup
Periode
Tahun
3. Bentuk Normal Kedua (2-NF)
Bentuk normal kedua didasari atas konsep full
functional dependency (ketergantungan fungsional
sepenuhnya).
Ketentuan dari bentuk normal kedua (2-NF) adalah
bentuk data telah memenuhhi kriteria bentuk normal kesatu,
atribut bukan kunci (non-key) haruslah memiliki
ketergantungan fungsional sepenuhnya pada kunci
utama/primary key.
Gambar 4.19. Second Normal Form (2NF)
4.2.4.2.
S
truktur Database
Dalam perancangan sistem penjadwalan kegiatan, penulis
membutuhkan database untuk menempatkan data-data yang
bersifat dinamis artinya data-data tersebut dapat berubah dan
bertambah setiap saat dikarenakan adanya pengisian dan
perubahan data-data yang diinginkan.
Penulis merancang sebuah database yang terdiri dari 9 buah
tabel untuk menyimpan data :
a. Tabel User, untuk menyimpan data user
Nama File : User
Primary Key : Id_user
Nama_Field Tipe Panjang field Keterangan
Id_User Char 5 Identitas user
Username Char 10 Nama_user
Password Char 10 Password_user
Email Char 25 Email_user
b. Tabel Pembicara, untuk menyimpan data pembicara.
Nama File : Pembicara
Primary Key : Id_Pembicara
Nama_Field Tipe Panjang field Keterangan
c. TabeKegiatan, untuk menyimpan data Kegiatan
Nama Tabel : Kegiatan
Primary Key : Id_Kegiatan
Nama Field Tipe Panjang field Keterangan
Id_Kegiatan Char 10 Id Kegiatan
Nama_Kegiatan Char 50 Nama kegiatan
Uraian_kegiatan Char 75 Uraian kegiatan
Keterangan Char 25 Keterangan kegiatan
d. Tabel Ruang, untuk menyimpan ruang yang tersedia.
Nama Tabel : Ruang
Primary Key : Id_Ruang
Nama Field Tipe Panjang field Keterangan
Id_Ruang Char 10 Id_Ruang
Nama_ruang Char 50 Nama_ruang
Gedung Char 50 Nama Gedung
Kapasitas Int 5 Kapasitas_ruang
Id_Pembicara Char 10 Id Pembicara
Nama_Pembicara Char 25 Nama Pembicara
Gelar Char 20 Gelar Pembicara
Jabatan Char 50 Jabatan pembicara
Biro Char 75 Biro pembicara
Bidang Char 75 Bidang pembicara
e. Tabel Shift, untuk menyimpan data shift/hari
Nama Tabel : Shift
Primary Key : Id_Shift
Nama Field Type Panjang field Keterangan
Id_Shift Int 4 Id Shift
Jam Char 10 Keterangan shift
f. Tabel Biro, untuk menyimpan data Biro
Nama Tabel : Biro
Primary Key : Id_Biro
Nama Field Type Panjang field Keterangan
Id_Shift Int 4 Id Shift
Nama Biro Char 50 Nama biro
g. Tabel Bidang, untuk menyimpan data bidang
Nama Tabel : Bidang
Primary Key : Id_Bidang
Nama Field Type Panjang field Keterangan
Id_Bidang Int 4 Id Shift
Nama Biro Char 50 Nama Biro
Nama Bidang Char 75 Nama Bidang
h. Tabel Gedung, untuk menyimpan data Gedung
Nama Tabel : Gedung
Primary Key : Id_ Gedung
Nama Field Type Panjang field Keterangan
Id_ Gedung Int 4 Id Gedung
Nama Gedung Char 50 Nama Gedung
i. Tabel Kesediaan, untuk menyimpan data kesediaan waktu
Pembicara.
Nama Tabel : Kesediaan
Primary Key : NoId
j. Tabel Nilai Fitness, untuk menyimpan hasil nilai fitness
Nama Tabel : Nilai Fitness
Primary Key : -
Nama Field Tipe Panjang Keterangan
NoId Char 10 No Urut
Id_Pembicara Char 10 Id Pembicara
Id_Kegiatan Char 10 Id Kegiatan
Senin Char 10 Hari kesediaan
Selasa Char 10 Hari kesediaan
Rabu Char 10 Hari kesediaan
Kamis Char 10 Hari kesediaan
Jumat Char 10 Hari kesediaan
Id_shift Int 4 Id shift/jam
Minggu Int 5 Minggu Kegiatan
Periode Char 10 Periode bulan
Tahun Int 4 Tahun kesediaan
Nama Field Type Panjang field Keterangan
NoId Int 5 Id kesediaan
Id_pembicara Char 10 Id pembicara
Id_kegiatan Char 10 Id kegiatan
Nilai fitness Int 10 Nilai fitness
k. Tabel Jadwal, untuk menyimpan jadwal hasil proses
Nama Tabel : Jadwal
Primary Key : -
Struktur File : -
Nama Field Tipe Panjang field Keterangan
NoId Int 5 No kesediaan
Id_Pembicara Char 10 Id Pembicara
Id_Kegiatan Char 10 Id Kegiatan
Minggu Int 5 Minggu Kegiatan
Hari Char 10 Hari kesediaan
Id_Shift Int 5 Id Shift/jam
Lingkup Char 10 Lingkup
Id_Ruang Char 10 Id Ruang
Periode Char 10 Periode Bulan
Tahun Int 4 Tahun jadwal
4.2.5. State Transition Diagram (STD)
1. STD Rancangan Menu Login Sistem
Gambar 4.20. STD Rancangan Menu Login Sistem
2. STD Rancangan Menu Utama
Gambar 4.21. STD Rancangan Menu Utama
3. STD Rancangan Menu User
Gambar 4.22. STD Rancangan Menu User
4. STD Rancangan Menu File
Gambar 4.23. STD Rancangan Menu File
5. STD Rancangan Modul Pembicara
Gambar 4.24. STD Rancangan Modul Pembicara
6. STD Rancangan Modul Kegiatan
Gambar 4.25. STD Rancangan Modul Kegiatan
7. STD Rancangan Modul Ruang
Gambar 4.26. STD Rancangan Modul Ruang
8. STD Rancangan Modul Shift
Gambar 4.27. STD Rancangan Modul Shift
9. STD Rancangan Modul Biro
Gambar 4.28. STD Rancangan Modul Biro
10. STD Rancangan Modul Bidang
Gambar 4.29. STD Rancangan Modul Bidang
11. STD Rancangan Modul Gedung
Gambar 4.30. STD Rancangan Modul Gedung
12. STD Rancangan Modul Kesediaan
Gambar 4.31. STD Rancangan Modul Kesediaan
13. STD Rancangan Modul Nilai_fitness
Gambar 4.32. STD Rancangan Modul Nilai_fitness
14. STD Rancangan Modul Seleksi_jadwal
Gambar 4.33. STD Rancangan Modul Seleksi_jadwal
15. STD Rancangan Menu Laporan
Gambar 4.34. STD Rancangan Menu Laporan
4.2.6. Rancangan Antarmuka Pemakai
Menggambarkan halaman antarmuka yang dirancang.
1. Rancangan Form Login
Form ini berfungsi untuk masuk ke Sistem Informasi
Penjadwalan kegiatan. Pada Form Login admin menginput
username dan password.
Gambar 4.35. Rancangan Form Login
2. Rancangan Tampilan Menu Utama
Rancangan ini berfungsi sebagai interface tempat sub program
lain dipanggil untuk dijalankan, yang terdiri dari User, File dan
Laporan.
Gambar 4.36. Rancangan Tampilan Menu Utama
3. Rancangan Tampilan Menu Home/User
Pada Form data user ini, admin dapat menginput user baru serta
mengedit user admin, untuk menyimpan data tekan tombol
simpan, untuk membatalkan tekan tombol batal, dan untuk
keluar dari menu user tekan tombol keluar.
Gambar 4.37. Rancangan Tampilan Menu User
4. Rancangan Form Pembicara
Pada Form data pembicara, admin dapat melihat data pembicara,
admin juga dapat menginput data pembicara, id pembicara terisi
secara otomatis, tekan simpan untuk menyimpan data, tekan
batal untuk membatalkan, tekan hapus untuk menghapus data
pembicara dan tekan keluar untuk keluar dari menu pembicara.
Pada form ini juga dapat mencari nama pembicara, biro dan
bidang dengan lebih cepat.
Gambar 4.38. Rancangan Form Pembicara
5. Rancangan Form Kegiatan
Pada Form data kegiatan, admin dapat melihat data kegiatan,
admin juga dapat menginput data kegiatan, id kegiatan terisi
secara otomatis, setelah diisi form tekan simpan untuk
menyimpan data, tekan batal untuk membatalkan, tekan hapus
untuk menghapus data kegiatan dan tekan keluar untuk keluar
dari menu form kegiatan. Pada form ini juga dapat mencari
nama kegiatan dengan lebih cepat.
Gambar 4.39. Rancangan Form Kegiatan
6. Rancangan Form Ruang
Pada Form data ruang, admin dapat melihat data ruang, admin
juga dapat menginput data ruang, id ruang terisi secara otomatis,
setelah diisi form tekan simpan untuk menyimpan data, tekan
batal untuk membatalkan, tekan hapus untuk menghapus data
ruang dan tekan keluar untuk keluar dari menu form ruang. Pada
form ini juga dapat mencari nama dengan lebih cepat.
Gambar 4.40. Rancangan Form Ruang
7. Rancangan Form Shift
Pada Form data shift, admin dapat melihat data shift, admin juga
dapat menginput data shift, id shift terisi secara otomatis, setelah
diisi form tekan simpan untuk menyimpan data, tekan batal
untuk membatalkan, tekan hapus untuk menghapus data shift
dan tekan keluar untuk keluar dari menu form shift.
Gambar 4.41. Rancangan Form Shift
8. Rancangan Form Biro
Pada Form data biro, admin dapat melihat data biro, admin juga
dapat menginput data biro, id biro terisi secara otomatis, setelah
diisi form tekan simpan untuk menyimpan data, tekan batal
untuk membatalkan, tekan hapus untuk menghapus data biro dan
tekan keluar untuk keluar dari menu form biro
Gambar 4.42. Rancangan Form Biro
9. Rancangan Form Bidang
Pada Form data bidang, admin dapat melihat data bidang, admin
juga dapat menginput data bidang, id bidang terisi secara
otomatis, setelah diisi form tekan simpan untuk menyimpan
data, tekan batal untuk membatalkan, tekan hapus untuk
menghapus data bidang dan tekan keluar untuk keluar dari menu
form bidang.
Gambar 4.43. Rancangan Form Bidang
10. Rancangan Form Gedung
Pada Form data gedung, admin dapat melihat data gedung,
admin juga dapat menginput data gedung, id bidang terisi secara
otomatis, setelah diisi form tekan simpan untuk menyimpan
data, tekan batal untuk membatalkan, tekan hapus untuk
menghapus data gedung dan tekan keluar untuk keluar dari
menu form gedung.
Gambar 4.44. Rancangan Form Gedung
11. Rancangan Form Kesediaan
Pada Form kesediaan, admin dapat melihat daftar kesediaan,
admin juga menginput data kesediaan, id kesediaan terisi secara
otomatis, setelah diisi form tekan simpan untuk menyimpan
data, tekan batal untuk membatalkan, tekan hapus untuk
menghapus data kesediaan dan tekan keluar untuk keluar dari
menu form kesediaan.
Gambar 4.45. Rancangan Form Kesediaan
12. Rancangan Tampilan Penjadwalan Input Kesediaan
Pada Form input kesediaan, admin juga menginput kesediaan, id
kesediaan terisi secara otomatis, setelah diisi form tekan simpan
untuk menyimpan data, tekan batal untuk membatalkan.
Gambar 4.46. Rancangan Form input Kesediaan
13. Rancangan Form Nilai Fitness
Pada Form nilai fitness, admin dapat melihat daftar nilai fitness,
admin juga menginput data nilai fitness, id kesediaan terisi
secara otomatis, setelah diisi form tekan simpan untuk
menyimpan data, tekan batal untuk membatalkan, tekan hapus
untuk menghapus data nilai fitness dan tekan keluar untuk
keluar dari menu form nilai fitness.
Gambar 4.47. Rancangan Form Nilai Fitness
14. Rancangan Form Seleksi Jadwal
Pada Form seleksi jadwal, admin dapat melihat data jadwal,
admin juga dapat menginput seleksi jadwal, id seleksi jadwal
terisi secara otomatis, setelah diisi form tekan simpan untuk
menyimpan data, tekan batal untuk membatalkan, tekan hapus
untuk menghapus data jadwal dan tekan keluar untuk keluar dari
menu form seleksi jadwal. Pada form ini juga dapat mencari
nama dengan lebih cepat.
Gambar 4.48. Rancangan Form Seleksi Jadwal
15. Rancangan Menu Laporan kesediaan
Rancangan ini berfungsi untuk menampilkan laporan kesediaan
berdasarkan periode/bulan dan tahun.
Gambar 4.49. Rancangan Menu Laporan Kesediaan
16. Rancangan Tampilan Laporan Jadwal
Rancangan ini berfungsi untuk menampilkan laporan Jadwal
berdasarkan laporan yang ingin dicetak (pembicara, kegiatan,
ruang, hari, jadwal).
Gambar 4.50. Rancangan Tampilan Laporan Jadwal
4.3. Fase Pelaksanaan / Implementasi
Dalam implementasi rancangan Sistem Penjadwalan Kegiatan,
penulis menggunakan Visual Studio.NET untuk bahasa pemrogramanya,
MySQL untuk database-nya serta Visio 2003 untuk toolsnya. Untuk
penerapannya sistem ini digunakan hanya untuk pegawai Humas
Kementrian Agama saja dan tidak untuk umum. Selain itu juga sarana
pendukung yang diperlukan agar sistem dapat berjalan sesuai yang
diharapkan.
4.4. Pengujian Sistem
Pada pengujian sistem, penulis melakukan testing terhadap sistem
penjadwalan kegiatan ini dengan menggunakan metode blackbox testing.
Menurut Hanif Al Fatta (2007) pada blackbox testing, cara pengujian
hanya dilakukan dengan menjalankan atau mengeksekusi unit atau modul,
kemudian diamati apakah hasil dari unit itu sesuai dengan proses bisnis
yang diinginkan. Pada blackbox testing ini, penulis hanya melakukan input
data dan melihat output-nya apakah sesuai dengan proses yang
diharapkan. Hasil tes blackbox terdapat dilampiran.
BAB V
PENUTUP
Berdasarkan pada hal-hal yang penulis telah bahas pada bab-bab
sebelumnya, penulis menarik kesimpulan serta saran-saran yang bermanfaat bagi
penulisan skripsi ini, yaitu :
5.1. Kesimpulan
Berdasarkan hasil pengembangan sistem penjadwalan kegiatan ini,
maka dapat disimpulkan bahwa :
1. Proses pembuatan jadwal kegiatan dapat dilakukan dengan
menggunakan metode Algoritma Genetika. Melalui operator yang
digunakan dalam Algoritma Genetika yaitu seleksi, crossover, dan
mutasi serta melewati tahap pembangkitan populasi awal dan evaluasi
fungsi fitness sehingga jadwal yang dihasilkan dapat optimal sesuai
yang direncanakan.
2. Keluaran (output) dari aplikasi sistem penjadwalan kegiatan ini berupa
jadwal kegiatan Humas yang tidak bentrok dan dapat memudahkan
dalam penentuan jadwal kegiatan pada Humas Kementerian Agama.
3. Pelaksanaan jadwal kegiatan tidak mengalami keterlambatan karena
tidak adanya kesalahan-kesalahan dalam melakukan penjadwalan.
5.2. Saran
Sistem yang dihasilkan masih memiliki banyak kekurangan dan
keterbatasan yang harus diperbaiki. Adapun saran yang dapat membantu
agar sistem ini menjadi lebih baik adalah sebagai berikut :
1. Untuk penelitian lebih lanjut diharapkan pembuatan jadwal kegiatan
ini dapat menggunakan metode yang lain. Misalnya dengan
pendekatan riset operasional, sebagai perbandingan.
2. Perlunya peningkatan sumber daya manusia dalam hal pengetahuan
dan keterampilan dalam menggunakan komputer agar penggunaan
sistem dapat bekerja dengan lebih baik.
3. Dalam pembuatan jadwal kegiatan ini untuk pengembangan kedepan
diharapkan aplikasinya menggunakan jaringan LAN agar terkoneksi
dengan bidang yang lain.
DAFTAR PUSTAKA
Desiani Anita, Arhami Muhammad. 2006. Konsep Kecerdasan Buatan. Cv. Andi
Offset. Yogyakarta.
Fathansyah, Ir. 2001. Basis Data. Informatika Bandung. Bandung.
Ginting, Rosnaini. 2009. Penjadwalan Mesin. Graha ilmu. Yogyakarta
Gulo, W. 2002. Metodologi Penelitian. PT Gramedia Widiasarana Indonesia.
Jakarta.
Hariyanto, Bambang. 2004. Rekayasa Sistem Berorientasi Objek. Informatika
Bandung. Bandung. Jogiyanto, HM. 2005. Analisis dan Desain ; Sistem Informasi Pendekatan
Terstruktur teori & Praktek Aplikasi Bisnis. Andi, Yogyakarta.
Kendall, Kenneth E dan Kendall, Julie E. 2006. Analisis dan Perancangan Sistem
jilid 5. Pearson Education Asia Pte. Ltd. dan PT Prenhallindo. Jakarta
Kurniadi, Adi. 2000. Pemrograman Microsoft Visual Basic 6. PT. Elex Media
Komputindo. Jakarta.
Kusumadewi, Sri. 2003. Artificial Intelelligent, Graha ilmu. Yogyakarta
Ladjamudin, Al-Bahra. 2005. Analisis dan Desain Sistem Informasi. Graha Ilmu.
Yogyakarta.
Pressman, Roger. 2002. Rekayasa Perangkat Lunak Pendekatan Praktisi, Buku
Satu. Penerbit Andi, Yogyakarta.
Sidik, Betha. 2005. MySQL untuk Pengguna, Administrator, dan Pengembang
Aplikasi Web, Informatika, Bandung.
Sugiyono, Prof, Dr. 2008, Metode Penelitian Kuantitatif, Kualitatif dan R&D,
Cetakan ke 5. CV, Alfabeta. Bandung.
Sutabri, Tata. 2004. Analisa Sistem Informasi, Andi Yogyakarta. Yogyakarta.
Whitten, Jeffrey L. 2004. Systems Analysis & Design Methods: Sixth Edition.
New York: McGraw-Hill
Visualstudioindonesia.com/Tutorial Visual studio,NET.
LAMPIRAN 1 HASIL WAWANCARA
LAMPIRAN 1
Form Wawancara
Narasumber : Syaiful Huda
Jabatan : Staf Subbid Penerangan Masyarakat Bag. Humas
Tempat Wawancara : Departemen Agama RI
Hari/Tanggal Wawancara : Selasa, 26 Januari 2010
1. Selamat siang bapak? bisa minta waktunya sebentar untuk wawancara?
Jawaban : Siang juga, boleh
2. Nama lengkap bapak ?
Jawaban : Syaiful Huda
3. Bagaimana sejarah terbentuknya PINMAS (Pusat Informasi Keagamaan
dan Kehumasan) Departemen Agama ini?
Jawaban : PINMAS Departemen Agama dibentuk berdasarkan Peraturan
Menteri Agama RI Nomor 3 Tahun 2006 tentang Organisasi dan Tata
kerja Kementrian Agama, untuk lebih lengkapnya nanti saya akan berikan
dokumennya.
4. Apakah sistem penjadwalan kegiatan di Departemen Agama khususnya
bagian Humas ini sudah terkomputerisasi?
Jawaban : Belum terkomputerisasi
5. Kalau begitu, sistem penjadwalan kegiatan yang manualnya seperti apa ?
Jawab : Data kegiatan yang ada di Humas kelola dengan membuat
jadwalnya kemudian diserahkan kepada Kepala Bagian Humas untuk
disetujui. Setelah itu jadwal kegiatan yang telah disetujui Kepala Bagian
Humas kemudian diserahkan ke Sub Tata Usaha untuk mencocokkan
kegiatan yang satu dengan yang lain. Jika diterima maka bagian Humas
menerima laporannya dari Sub Tata Usaha yang dijadikan sebagai arsip.
6. Apa saja yang kendala yang dapat menghambat kinerja bapak selama ini?
Jawab :
Kendala yang paling utama ialah proses dalam pencatatan laporan kami,
kami bekerja masih manual dalam proses pengolahan data penjadwalan
kegiatan jadi kami memerlukan banyak waktu untuk mengolah data
tersebut.
7. Menurut bapak, apakah perlu adanya sistem penjadwalan kegiatan yang
terkomputerisasi ?
Jawab :
Sangat perlu dibangun sebuah sistem yang terkomputerisasi agar
menunjang pekerjaan kami sehingga dapat meningkatkan kinerja
perusahaan ini khususnya di bagian Humas ini selain itu agar kegiatan satu
dengan yang lainnya tidak terjadi bentrok.
8. Bagaimana bentuk sistem yang tepat dan baik bagi perusahaan bapak
khususnya untuk bagian gudang ?
Jawab :
Bentuk yang kami inginkan sederhana dan mudah digunakan sehingga
kami tidak mengalami kesulitan untuk menggunakannya.
LAMPIRAN 2 TAMPILAN APLIKASI
1. Menu LOGIN
2. Menu HOME
3. Form Data Pembicara dan Tambah Pembicara
4. Form Data kegiatan dan Tambah Kegiatan
5. Form Data Ruang dan Tambah Ruang
6. Form Data Shift dan Tambah Shift
7. Form Data Biro dan Tambah Biro
8. Form Data Bidang dan Tambah Bidang
9. Form Data Gedung dan Tambah Gedung
10. Form Kesediaan
11. Tambah Kesediaan
12. Form Nilai Fitness dan tambah nilai fitness
13. Form Seleksi Jadwal
14. Form Laporan Kesediaan
15. Form Laporan Jadwal
16. Laporan Jadwal
LAMPIRAN 3 KODE PROGRAM
Login
Imports MySql.Data.MySqlClient Public Class LoginForm1
' TODO: Insert code to perform custom authentication using the provided
username and password ' (See http://go.microsoft.com/fwlink/?LinkId=35339).
' The custom principal can then be attached to the current thread's
principal as follows: ' My.User.CurrentPrincipal = CustomPrincipal
' where CustomPrincipal is the IPrincipal implementation used to
perform authentication.
' Subsequently, My.User will return identity information encapsulated in the CustomPrincipal object
' such as the username, display name, etc.
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK.Click
If txtuser.Text = "" Or txtpass.Text = "" Then MsgBox("Data tidak boleh kosong", vbCritical) : Exit Sub
Dim q As String = "select * from user where username='" &
txtuser.Text & "' and password='" & txtpass.Text & "'"
bukaKoneksi() Try
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Dim myr As MySqlDataReader = mycmd.ExecuteReader If myr.Read Then
frmmain.logsb.Tag = myr.Item(4) frmmain.Tag = myr.Item(0)
frmhome.Show()
frmmain.Show() frmmain.logsb.Text = "Login Sebagai : " & txtuser.Text & ",
"
frmmain.sethak()
myr.Close() Me.Dispose()
ElseIf myr.HasRows = False Then
MsgBox("Username / password salah", vbCritical) txtpass.Focus()
End If
Catch ex As Exception
MsgBox(Err.Description, vbCritical)
End Try
End Sub
Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Cancel.Click End
End Sub
Private Sub LoginForm1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
End Sub
End Class
Menu Utama
Imports MySql.Data.MySqlClient
Public Class frmhome
Private Sub frmhome_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Activated
Me.WindowState = 2 Me.MaximizeBox = False
Me.MinimizeBox = False
Me.ControlBox = False End Sub
Private Sub frmhome_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
On Error GoTo a Application.DoEvents()
Application.DoEvents()
Me.MdiParent = frmmain
Exit Sub
a:
Application.DoEvents() Application.DoEvents()
Me.MdiParent = frmmain
End Sub
Private Sub ToolStripButton1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ToolStripButton1.Click
bukaKoneksi() If txtuser.Text = "" Or txtpass.Text = "" Or txtemail.Text = ""
Or cmbhak.Text = "" Then
MsgBox("Data tidak lengkap", vbCritical) Exit Sub
End If
If InStr(txtemail.Text, "@") = 0 Or InStr(txtemail.Text, ".") = 0Then
MsgBox("Email tidak valid", vbCritical)
Exit Sub
0. End If
1. Dim q As String = "select * from user where id_user='" &
txtid.Text & "'" 2. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
3. Dim myread As MySqlDataReader = mycmd.ExecuteReader()
4. Dim mymsg As String = "" 5. If myread.HasRows Then
6. q = "delete from user where id_user='" & txtid.Text & "'"
7. bukaKoneksi() 8. mycmd = New MySqlCommand(q, conn)
9. mycmd.ExecuteNonQuery()
10. ToolStripButton1_Click(sender, e) 11. Exit Sub 12. Else 13. myread.Close() 14. bukaKoneksi() 15. q = "select username from user where username='" &
txtuser.Text & "'"
16. mycmd = New MySqlCommand(q, conn) 17. myread = mycmd.ExecuteReader() 18. If myread.HasRows Then 19. MsgBox("Username sudah ada", vbCritical) 20. Exit Sub 21. End If 22. q = "insert into user values('" & txtid.Text & "','" &
txtuser.Text & "','" & txtpass.Text & "','" & txtemail.Text & "','" & cmbhak.Text & "')"
23. mymsg = "Data Sukses di simpan" 24. End If 25. myread.Close() 26. bukaKoneksi() 27. 28. Try 29. mycmd = New MySqlCommand(q, conn) 30. mycmd.ExecuteNonQuery() 31. MsgBox(mymsg, vbInformation) 32. Application.DoEvents() 33. Application.DoEvents() 34. If frmmain.logsb.Tag = "admin" Then 35. tampilkan() 36. tampilkan() 37. 38. Else 39. tampilkan("select id_user,username,email,hak from
user where id_user='" & frmmain.Tag & "'")
40. tampilkan("select id_user,username,email,hak from user where id_user='" & frmmain.Tag & "'")
41. End If 42. ButtonX1_Click(sender, e) 43. Catch ex As Exception 44. MsgBox(Err.Description, vbCritical) 45. End Try 46. End Sub 47. Sub tampilkan(Optional ByRef strq = "select
id_user,username,email,hak from user order by id_user asc") 48. Dim q As String 49. q = strq 50. Dim ds As New DataSet 51. 52. bukaKoneksi() 53. Dim sqldbadapter As New MySqlDataAdapter 54. sqldbadapter = New MySqlDataAdapter(q, conn) 55. sqldbadapter.Fill(ds) 56. Me.dg.DataSource = ds.Tables(0) 57. End Sub 58. Sub ambilkodeakhir() 59. bukaKoneksi()
60. Dim q As String = "select * from user order by id_user desc" 61. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) 62. Dim myread As MySqlDataReader = mycmd.ExecuteReader 63. Dim s As String = "" 64. If myread.Read Then 65. s = myread.GetString(0) 66. End If 67. s = Val(s) + 1 68. While Len(s) < 5 69. s = "0" & s 70. End While 71. txtid.Text = s 72. txtuser.Focus() 73. myread.Close() 74. End Sub 75. 76. Private Sub ButtonX1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles ButtonX1.Click
77. txtuser.Clear() 78. txtpass.Clear() 79. txtemail.Clear() 80. ambilkodeakhir() 81. tampilkan() 82. End Sub 83. 84. 85. 86. Private Sub ToolStripButton3_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ToolStripButton3.Click 87. Me.Dispose() 88. End Sub 89. 90. Private Sub dg_CellContentClick(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dg.CellContentClick
91. 92. End Sub 93. 94. Private Sub dg_CellDoubleClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles
dg.CellDoubleClick
95. Dim i As Integer = dg.CurrentRow.Index 96. bukaKoneksi() 97. Dim q As String = "select * from user where id_user='" &
dg.Item(0, i).Value & "'" 98. If dg.Item(0, i).Value <> frmmain.Tag Then Exit Sub 99. 100. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
101. Dim myr As MySqlDataReader = mycmd.ExecuteReader 102.
103. If myr.Read Then
104. txtid.Text = myr.Item(0) 105. txtuser.Text = myr.Item(1)
106. txtpass.Text = myr.Item(2)
107. txtemail.Text = myr.Item(3) 108. cmbhak.Text = myr.Item(4)
109. End If
110. End Sub
111.
112. Private Sub txtcari_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
txtcari.TextChanged, ButtonX3.Click
113. If txtcari.Text <> "" Then 114. tampilkan("select id_user,username,email,hak from
user where username like '" & txtcari.Text & "%' order by id_user
asc") 115. Else
116. tampilkan()
117. End If
118. End Sub 119.
120. Private Sub frmhome_Resize(ByVal sender As Object, ByVal e
As System.EventArgs) Handles Me.Resize 121. On Error Resume Next
122. With (dg)
123. .Columns(0).Width = 15 / 100 * (.Width - 120) 124. .Columns(1).Width = 25 / 100 * (.Width - 120)
125. .Columns(2).Width = 15 / 100 * (.Width - 120)
126. .Columns(3).Width = 45 / 100 * (.Width - 120) 127. End With
128. End Sub
129. End Class
Menu Tambah Pembicara Imports System.I
Imports MySql.Data.MySqlClient
1. Public Class frmpembicara 2.
3. Private Sub SplitContainer1_Panel1_Paint(ByVal sender As
System.Object, ByVal e As System.Windows.Forms.PaintEventArgs)
4. 5. End Sub
6.
7. Private Sub frmpembicara_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
8. Me.MaximizeBox = False
9. Me.ControlBox = False 10. Me.MinimizeBox = False 11. Me.WindowState = 2 12. ubahaku() 13. End Sub 14. Sub tampilkan(Optional ByRef strq = "select * from pembicara order
by id_pembicara asc")
15. Dim q As String 16. q = strq 17. Dim ds As New DataSet 18. bukaKoneksi() 19. Dim sqldbadapter As New MySqlDataAdapter 20. sqldbadapter = New MySqlDataAdapter(q, conn) 21. sqldbadapter.Fill(ds) 22. Me.dg.DataSource = ds.Tables(0)
23. End Sub 24. Sub ambilkodeakhir() 25. bukaKoneksi() 26. Dim q As String = "select * from pembicara order by id_pembicara
desc"
27. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) 28. Dim myread As MySqlDataReader = mycmd.ExecuteReader 29. Dim s As String = "" 30. If myread.Read Then 31. s = myread.GetString(0) 32. End If 33. s = Mid(s, 3, 2) 34. s = Val(s) + 1 35. While Len(s) < 2 36. s = "0" & s 37. End While 38. txtid.Text = "PM" & s 39. txtnama.Focus() 40. myread.Close() 41. End Sub 42. Sub loadform() 43. Application.DoEvents() 44. Application.DoEvents() 45. Application.DoEvents() 46. Me.MdiParent = frmmain 47. bukaKoneksi() 48. ambilkodeakhir() 49. loadbiro() 50. tampilkan() 51. End Sub 52. Private Sub frmpembicara_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load 53. On Error GoTo eer 54. loadform() 55. Exit Sub 56. eer: 57. loadform() 58. End Sub 59. Sub loadbiro() 60. bukaKoneksi() 61. Dim q As String = "select * from biro order by id_biro asc" 62. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) 63. Dim myr As MySqlDataReader = mycmd.ExecuteReader 64. txtbiro.Items.Clear() 65. srcbiro.Items.Clear() 66. While myr.Read 67. 68. txtbiro.Items.Add(myr.Item(1)) 69. srcbiro.Items.Add(myr.Item(1)) 70. Application.DoEvents() 71. End While 72. srcbiro.Text = "-" 73. srcbidang.Text = "-" 74. FileClose(1) 75. 76. End Sub
77. Private Sub txtbiro_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
txtbiro.SelectedIndexChanged 78. bukaKoneksi() 79. Dim q As String = "select * from biro where nama_biro='" &
txtbiro.Text & "'" 80. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) 81. Dim myr As MySqlDataReader = mycmd.ExecuteReader 82. Dim myidbiro As String 83. If myr.Read Then 84. myidbiro = myr.Item(0) 85. End If 86. myr.Close() 87. bukaKoneksi() 88. q = "select * from bidang where id_biro='" & myidbiro & "'" 89. mycmd = New MySqlCommand(q, conn) 90. myr = mycmd.ExecuteReader 91. txtbidang.Items.Clear() 92. txtbidang.Items.Add("-") 93. While myr.Read 94. txtbidang.Items.Add(myr.Item(2)) 95. End While 96. txtbidang.Text = "-" 97. End Sub 98. Sub ubahaku() 99. On Error Resume Next 100. dg.Top = ButtonX2.Top + ButtonX2.Height + 15
101. dg.Width = Me.Width
102. dg.Height = Panel1.Top - dg.Top 103. With (dg)
104. .Columns(0).Width = 13 / 100 * (.Width - 120)
105. .Columns(1).Width = 25 / 100 * (.Width - 120) 106. .Columns(2).Width = 10 / 100 * (.Width - 120)
107. .Columns(3).Width = 15 / 100 * (.Width - 120)
108. .Columns(4).Width = 20 / 100 * (.Width - 120)
109. .Columns(5).Width = 20 / 100 * (.Width - 120) 110. End With
111. End Sub
112. Private Sub frmpembicara_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
113. ubahaku()
114. End Sub 115.
116. Private Sub ButtonX2_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles ButtonX2.Click 117. bukaKoneksi()
118. Dim q As String = "select * from pembicara where
id_pembicara='" & txtid.Text & "'"
119. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) 120. Dim myread As MySqlDataReader = mycmd.ExecuteReader()
121. Dim mymsg As String = ""
122. If myread.HasRows Then 123. q = "update pembicara set nama_pembicara='" &
txtnama.Text & "',gelar='" & txtgelar.Text & "',jabatan='" &
txtjabatan.Text & "',biro='" & txtbiro.Text & "',bidang='" & txtbidang.Text & "' where id_pembicara='" & txtid.Text & "'"
124. mymsg = "Data Sukses di update"
125. Else
126. q = "insert into pembicara values('" & txtid.Text & "','"
& txtnama.Text & "','" & txtgelar.Text & 127. "','" & txtjabatan.Text & "','" & txtbiro.Text &
"','" & txtbidang.Text & "')"
128. mymsg = "Data Sukses di tambahkan" 129. End If
130. myread.Close()
131. 132.
133. Try
134. mycmd = New MySqlCommand(q, conn)
135. mycmd.ExecuteNonQuery() 136. MsgBox(mymsg, vbInformation)
137. Application.DoEvents()
138. Application.DoEvents() 139. tampilkan()
140. tampilkan()
141. ButtonX3_Click(sender, e) 142. Catch ex As Exception
143. MsgBox(Err.Description, vbCritical)
144. End Try 145. End Sub
146.
147. Private Sub ButtonX3_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles ButtonX3.Click 148. txtnama.Clear()
149. txtgelar.Clear()
150. txtjabatan.Clear() 151. txtbiro.Text = ""
152. txtbidang.Text = ""
153. ambilkodeakhir() 154. End Sub
155.
156. Private Sub ButtonX4_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles ButtonX4.Click 157. If MsgBox("Apakah anda yakin akan menghapus " & txtnama.Text
& " dari database?", vbOKCancel) = vbCancel Then Exit Sub
158. 159. Dim q As String = "delete from pembicara where
id_pembicara='" & txtid.Text & "'"
160. Try 161. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
162. mycmd.ExecuteNonQuery()
163. MsgBox("Data sukses dihapus", vbInformation) 164. tampilkan()
165. ButtonX3_Click(sender, e)
166. Catch ex As Exception
167. MsgBox(Err.Description, vbCritical) 168. End Try
169.
170. End Sub 171.
172. Private Sub ButtonX5_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles ButtonX5.Click 173. Me.Dispose()
174. End Sub
175.
176. Private Sub dg_CellContentClick(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dg.CellContentClick
177.
178. End Sub 179.
180. Private Sub dg_DoubleClick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles dg.DoubleClick 181. Dim i As Integer
182. On Error Resume Next
183. i = dg.CurrentRow.Index
184. With dg 185. txtid.Text = .Item(0, i).Value
186. txtnama.Text = .Item(1, i).Value
187. txtgelar.Text = .Item(2, i).Value 188. txtjabatan.Text = .Item(3, i).Value
189. txtbiro.Text = .Item(4, i).Value
190. txtbidang.Text = .Item(5, i).Value 191. End With
192. txtnama.Focus()
193. End Sub 194.
195. Private Sub txtcari_GotFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles txtcari.GotFocus
196. txtcari.SelectionStart = 0 197. txtcari.SelectionLength = Len(txtcari.Text)
198. End Sub
199. 200. Private Sub txtcari_TextChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles txtcari.TextChanged
201. If txtcari.Text <> "" Then 202. tampilkan("select * from pembicara where nama_pembicara
like '" & txtcari.Text & "%' order by id_pembicara asc")
203. Else
204. tampilkan() 205. End If
206. End Sub
207. 208. Private Sub ButtonX1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles ButtonX1.Click
209. If txtcari.Text <> "" Then 210. tampilkan("select * from pembicara where nama_pembicara
like '" & txtcari.Text & "%' order by id_pembicara asc")
211. Else 212. tampilkan()
213. End If
214. End Sub
215. 216. Private Sub srcbiro_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
srcbiro.SelectedIndexChanged 217. If srcbiro.Text <> "-" Then
218. tampilkan("select * from pembicara where nama_pembicara
like '" & txtcari.Text & "%' and biro='" & srcbiro.Text & "' order by id_pembicara asc")
219. Else
220. tampilkan()
221. End If
222. On Error Resume Next 223. bukaKoneksi()
224. Dim q As String = "select * from biro where nama_biro='" &
srcbiro.Text & "'" 225. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
226. Dim myr As MySqlDataReader = mycmd.ExecuteReader
227. Dim myidbiro As String 228. If myr.Read Then
229. myidbiro = myr.Item(0)
230. End If
231. myr.Close() 232. bukaKoneksi()
233. q = "select * from bidang where id_biro='" & myidbiro & "'"
234. mycmd = New MySqlCommand(q, conn) 235. myr = mycmd.ExecuteReader
236. srcbidang.Items.Clear()
237. srcbidang.Items.Add("-") 238. While myr.Read
239. srcbidang.Items.Add(myr.Item(2))
240. End While 241. srcbidang.Text = "-"
242. End Sub
243.
244. Private Sub srcbidang_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
srcbidang.SelectedIndexChanged
245. If srcbidang.Text <> "-" Then 246. tampilkan("select * from pembicara where nama_pembicara
like '" & txtcari.Text & "%' and bidang='" & srcbidang.Text & "' and
biro='" & srcbiro.Text & "' order by id_pembicara asc") 247. Else
248. If srcbiro.Text <> "-" Then
249. tampilkan("select * from pembicara where
nama_pembicara like '" & txtcari.Text & "%' and biro='" & srcbiro.Text & "' order by id_pembicara asc")
250. Else
251. tampilkan() 252. End If
253. End If
254. 255. End Sub
256. End Class
257. Menu Kegiatan 258. Imports System.IO
259. Imports MySql.Data.MySqlClient 260. Public Class frmkegiatan
261.
262. Private Sub SplitContainer1_Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs)
263.
264. End Sub 265.
266. Private Sub frmkegiatan_Activated(ByVal sender As Object, ByVal e
As System.EventArgs) Handles Me.Activated
267. Me.MaximizeBox = False 268. Me.ControlBox = False
269. Me.MinimizeBox = False
270. Me.WindowState = 2 271. ubahaku()
272. End Sub
273. Sub tampilkan(Optional ByRef strq = "select * from kegiatan order by id_kegiatan asc")
274. Dim q As String
275. q = strq
276. Dim ds As New DataSet 277.
278. ' bukaKoneksi()
279. Dim sqldbadapter As New MySqlDataAdapter 280. sqldbadapter = New MySqlDataAdapter(q, conn)
281. sqldbadapter.Fill(ds)
282. Me.dg.DataSource = ds.Tables(0) 283. End Sub
284. Sub ambilkodeakhir()
285. bukaKoneksi() 286. Dim q As String = "select * from kegiatan order by
id_kegiatan desc"
287. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
288. Dim myread As MySqlDataReader = mycmd.ExecuteReader 289. Dim s As String = ""
290. If myread.Read Then
291. s = myread.GetString(0) 292. End If
293. s = Mid(s, 2, 3)
294. s = Val(s) + 1 295. While Len(s) < 3
296. s = "0" & s
297. End While
298. txtid.Text = "K" & s 299. txtnama.Focus()
300. myread.Close()
301. End Sub 302. Sub loadform()
303. Application.DoEvents()
304. Application.DoEvents() 305. Me.MdiParent = frmmain
306. Application.DoEvents()
307. Application.DoEvents() 308. bukaKoneksi()
309. tampilkan()
310. ambilkodeakhir()
311. 312. End Sub
313. Private Sub frmkegiatan_Load(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles MyBase.Load 314. On Error GoTo eer
315. loadform()
316. Exit Sub 317. eer:
318. loadform()
319. End Sub
320. Sub ubahaku()
321. On Error Resume Next 322. dg.Top = ButtonX2.Top + ButtonX2.Height + 15
323. dg.Width = Me.Width
324. dg.Height = Panel1.Top - dg.Top 325. With (dg)
326. .Columns(0).Width = 13 / 100 * (.Width - 120)
327. .Columns(1).Width = 25 / 100 * (.Width - 120) 328. .Columns(2).Width = 35 / 100 * (.Width - 120)
329. .Columns(3).Width = 25 / 100 * (.Width - 120)
330. End With
331. End Sub 332. Private Sub frmkegiatan_Resize(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Resize
333. ubahaku() 334. End Sub
335.
336. Private Sub ButtonX2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX2.Click
337. bukaKoneksi()
338. Dim q As String = "select * from kegiatan where id_kegiatan='" & txtid.Text & "'"
339. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
340. Dim myread As MySqlDataReader = mycmd.ExecuteReader()
341. Dim mymsg As String = "" 342. If myread.HasRows Then
343. q = "update kegiatan set nama_kegiatan='" & txtnama.Text
& "',uraian_kegiatan='" & txturaian.Text & "',keterangan='" & txtkegiatan.Text & "' where id_kegiatan='" & txtid.Text & "'"
344. mymsg = "Data Sukses di update"
345. Else 346. q = "insert into kegiatan values('" & txtid.Text & "','"
& txtnama.Text & "','" & txturaian.Text &
347. "','" & txtkegiatan.Text & "')"
348. mymsg = "Data Sukses di tambahkan" 349. End If
350. myread.Close()
351. 352.
353. Try
354. mycmd = New MySqlCommand(q, conn) 355. mycmd.ExecuteNonQuery()
356. MsgBox(mymsg, vbInformation)
357. Application.DoEvents() 358. Application.DoEvents()
359. tampilkan()
360. tampilkan()
361. ButtonX3_Click(sender, e) 362. Catch ex As Exception
363. MsgBox(Err.Description, vbCritical)
364. End Try 365. End Sub
366.
367. Private Sub ButtonX3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX3.Click
368. txtnama.Clear()
369. txturaian.Clear()
370. txtkegiatan.Clear()
371. txturaian.Text = "" 372. ambilkodeakhir()
373. End Sub
374. 375. Private Sub ButtonX4_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles ButtonX4.Click
376. If MsgBox("Apakah anda yakin akan menghapus " & txtnama.Text & " dari database?", vbOKCancel) = vbCancel Then Exit Sub
377.
378. Dim q As String = "delete from kegiatan where id_kegiatan='"
& txtid.Text & "'" 379. Try
380. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
381. mycmd.ExecuteNonQuery() 382. MsgBox("Data sukses dihapus", vbInformation)
383. tampilkan()
384. ButtonX3_Click(sender, e) 385. Catch ex As Exception
386. MsgBox(Err.Description, vbCritical)
387. End Try 388.
389. End Sub
390.
391. Private Sub ButtonX5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX5.Click
392. Me.Dispose()
393. End Sub 394.
395. Private Sub dg_CellContentClick(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dg.CellContentClick
396.
397. End Sub
398. 399. Private Sub dg_CellDoubleClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles
dg.CellDoubleClick 400. Dim i As Integer
401. On Error Resume Next
402. i = dg.CurrentRow.Index 403. With dg
404. txtid.Text = .Item(0, i).Value
405. txtnama.Text = .Item(1, i).Value 406. txturaian.Text = .Item(2, i).Value
407. txtkegiatan.Text = .Item(3, i).Value
408.
409. End With 410. txtnama.Focus()
411. End Sub
412. 413. Private Sub dg_DoubleClick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles dg.DoubleClick
414. 415. End Sub
416.
417. Private Sub txtcari_GotFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles txtcari.GotFocus
418. txtcari.SelectionStart = 0 419. txtcari.SelectionLength = Len(txtcari.Text)
420. End Sub
421. 422. Private Sub txtcari_TextChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles txtcari.TextChanged
423. If txtcari.Text <> "" Then 424. tampilkan("select * from kegiatan where nama_kegiatan
like '" & txtcari.Text & "%' order by id_kegiatan asc")
425. Else
426. tampilkan() 427. End If
428. End Sub
429. 430. Private Sub ButtonX1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles ButtonX1.Click
431. If txtcari.Text <> "" Then 432. tampilkan("select * from kegiatan where nama_kegiatan
like '" & txtcari.Text & "%' order by id_kegiatan asc")
433. Else 434. tampilkan()
435. End If
436. End Sub
437. 438.
439. End Class
Menu Ruang 440. Imports System.IO
441. Imports MySql.Data.MySqlClient
442. Public Class frmruang 443.
444.
445. Private Sub SplitContainer1_Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs)
446.
447. End Sub
448. 449. Private Sub frmruang_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Activated
450. Me.MaximizeBox = False 451. Me.ControlBox = False
452. Me.MinimizeBox = False
453. Me.WindowState = 2 454. ubahaku()
455. End Sub
456. Sub tampilkan(Optional ByRef strq = "select * from ruang order by id_ruang asc")
457. Dim q As String
458. q = strq
459. Dim ds As New DataSet 460.
461. ' bukaKoneksi()
462. Dim sqldbadapter As New MySqlDataAdapter
463. sqldbadapter = New MySqlDataAdapter(q, conn)
464. sqldbadapter.Fill(ds) 465. Me.dg.DataSource = ds.Tables(0)
466. End Sub
467. Sub ambilkodeakhir() 468. bukaKoneksi()
469. Dim q As String = "select * from ruang order by id_ruang
desc" 470. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
471. Dim myread As MySqlDataReader = mycmd.ExecuteReader
472. Dim s As String = ""
473. If myread.Read Then 474. s = myread.GetString(0)
475. End If
476. s = Mid(s, 2, 3) 477. s = Val(s) + 1
478. While Len(s) < 3
479. s = "0" & s 480. End While
481. txtid.Text = "K" & s
482. txtnama.Focus() 483. myread.Close()
484. End Sub
485. Sub loadform()
486. Application.DoEvents() 487. Application.DoEvents()
488. Me.MdiParent = frmmain
489. bukaKoneksi() 490. tampilkan()
491. ambilkodeakhir()
492. addgedung() 493. End Sub
494. Sub addgedung()
495. bukaKoneksi()
496. Dim q As String = "select * from gedung order by nama_gedung asc"
497. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
498. Dim myr As MySqlDataReader = mycmd.ExecuteReader 499. txtgedung.Items.Clear()
500. txtgedung.Items.Add("")
501. While myr.Read 502. txtgedung.Items.Add(myr.Item(1))
503. End While
504. 505. End Sub
506. Private Sub frmruang_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
507. On Error GoTo eer 508. loadform()
509. Exit Sub
510. eer: 511. loadform()
512.
513. End Sub 514. Sub ubahaku()
515. On Error Resume Next
516. dg.Top = ButtonX2.Top + ButtonX2.Height + 15
517. dg.Width = Me.Width
518. dg.Height = Panel1.Top - dg.Top 519. With (dg)
520. .Columns(0).Width = 13 / 100 * (.Width - 120)
521. .Columns(1).Width = 25 / 100 * (.Width - 120) 522. .Columns(2).Width = 35 / 100 * (.Width - 120)
523. .Columns(3).Width = 25 / 100 * (.Width - 120)
524. End With 525. End Sub
526. Private Sub frmruang_Resize(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Resize
527. ubahaku() 528. End Sub
529.
530. Private Sub ButtonX2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX2.Click
531. bukaKoneksi()
532. Dim q As String = "select * from ruang where id_ruang='" & txtid.Text & "'"
533. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
534. Dim myread As MySqlDataReader = mycmd.ExecuteReader() 535. Dim mymsg As String = ""
536. If myread.HasRows Then
537. q = "update ruang set nama_ruang='" & txtnama.Text &
"',gedung='" & txtgedung.Text & "',kapasitas='" & txtkapasitas.Text & "' where id_ruang='" & txtid.Text & "'"
538. mymsg = "Data Sukses di update"
539. Else 540. myread.Close()
541. bukaKoneksi()
542. q = "select * from ruang where nama_ruang='" & txtnama.Text & "' and gedung='" & txtgedung.Text & "'"
543. mycmd = New MySqlCommand(q, conn)
544. myread = mycmd.ExecuteReader
545. If myread.HasRows Then 546. MsgBox("Nama ruang sudah ada", vbCritical)
547. myread.Close()
548. Exit Sub 549. End If
550. q = "insert into ruang values('" & txtid.Text & "','" &
txtnama.Text & "','" & txtgedung.Text & 551. "','" & txtkapasitas.Text & "')"
552. mymsg = "Data Sukses di tambahkan"
553. End If 554. myread.Close()
555.
556.
557. Try 558. mycmd = New MySqlCommand(q, conn)
559. mycmd.ExecuteNonQuery()
560. MsgBox(mymsg, vbInformation) 561. Application.DoEvents()
562. Application.DoEvents()
563. tampilkan() 564. tampilkan()
565. ButtonX3_Click(sender, e)
566. Catch ex As Exception
567. MsgBox(Err.Description, vbCritical)
568. End Try 569. End Sub
570.
571. Private Sub ButtonX3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX3.Click
572. txtnama.Clear()
573. txtkapasitas.Clear() 574.
575. txtgedung.Text = ""
576. ambilkodeakhir()
577. End Sub 578.
579. Private Sub ButtonX4_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles ButtonX4.Click 580. If MsgBox("Apakah anda yakin akan menghapus " & txtnama.Text
& " dari database?", vbOKCancel) = vbCancel Then Exit Sub
581. bukaKoneksi() 582. Dim q As String = "delete from ruang where id_ruang='" &
txtid.Text & "'"
583. Try 584. Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
585. mycmd.ExecuteNonQuery()
586. MsgBox("Data sukses dihapus", vbInformation)
587. tampilkan() 588. ButtonX3_Click(sender, e)
589. Catch ex As Exception
590. MsgBox(Err.Description, vbCritical) 591. End Try
592.
593. End Sub 594.
595. Private Sub ButtonX5_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles ButtonX5.Click
596. Me.Dispose() 597. End Sub
598.
599. Private Sub dg_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dg.CellContentClick
600. 601. End Sub
602.
603. Private Sub dg_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles dg.DoubleClick
604. Dim i As Integer
605. On Error Resume Next
606. i = dg.CurrentRow.Index 607. With dg
608. txtid.Text = .Item(0, i).Value
609. txtnama.Text = .Item(1, i).Value 610. txtgedung.Text = .Item(2, i).Value
611. txtkapasitas.Text = .Item(3, i).Value
612. 613. End With
614. txtnama.Focus()
615. End Sub
616.
617. Private Sub txtcari_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtcari.GotFocus
618. txtcari.SelectionStart = 0
619. txtcari.SelectionLength = Len(txtcari.Text) 620. End Sub
621.
622. Private Sub txtcari_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtcari.TextChanged
623. If txtcari.Text <> "" Then
624. tampilkan("select * from ruang where nama_ruang like '" &
txtcari.Text & "%' order by id_ruang asc") 625. Else
626. tampilkan()
627. End If 628. End Sub
629.
630. Private Sub ButtonX1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX1.Click
631. If txtcari.Text <> "" Then
632. tampilkan("select * from ruang where nama_ruang like '" & txtcari.Text & "%' order by id_ruang asc")
633. Else
634. tampilkan()
635. End If 636. End Sub
637.
638. End Class
Menu Shift Imports System.IO
Imports MySql.Data.MySqlClient Public Class frmshift
Private Sub SplitContainer1_Panel1_Paint(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.PaintEventArgs)
End Sub
Private Sub frmshift_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Activated Me.MaximizeBox = False
Me.ControlBox = False
Me.MinimizeBox = False Me.WindowState = 2
ubahaku()
End Sub Sub tampilkan(Optional ByRef strq = "select * from shift order by
id_shift asc")
Dim q As String
q = strq Dim ds As New DataSet
bukaKoneksi()
Dim sqldbadapter As New MySqlDataAdapter
sqldbadapter = New MySqlDataAdapter(q, conn) sqldbadapter.Fill(ds)
Me.dg.DataSource = ds.Tables(0)
End Sub Sub ambilkodeakhir()
bukaKoneksi()
Dim q As String = "select * from shift order by id_shift desc" Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Dim myread As MySqlDataReader = mycmd.ExecuteReader
Dim s As Integer = 0
If myread.Read Then s = myread.Item(0)
End If
s += 1 txtid.Text = CStr(s)
txtjam.Focus()
myread.Close() End Sub
Sub loadform()
Application.DoEvents() Application.DoEvents()
Me.MdiParent = frmmain
Application.DoEvents()
Application.DoEvents() bukaKoneksi()
tampilkan()
ambilkodeakhir() End Sub
Private Sub frmshift_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load On Error GoTo eer
loadform()
Exit Sub
eer: loadform()
End Sub
Sub ubahaku() On Error Resume Next
dg.Top = ButtonX2.Top + ButtonX2.Height + 15
dg.Width = Me.Width dg.Height = Panel1.Top - dg.Top
With (dg)
.Columns(0).Width = 13 / 100 * (.Width - 120) .Columns(1).Width = 25 / 100 * (.Width - 120)
.Columns(2).Width = 35 / 100 * (.Width - 120)
.Columns(3).Width = 25 / 100 * (.Width - 120)
End With End Sub
Private Sub frmshift_Resize(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Resize ubahaku()
End Sub
Private Sub ButtonX2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX2.Click
bukaKoneksi()
Dim q As String = "select * from shift where id_shift='" &
txtid.Text & "'" Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Dim myread As MySqlDataReader = mycmd.ExecuteReader()
Dim mymsg As String = "" If myread.HasRows Then
q = "update shift set jam='" & txtjam.Text & "' where
id_shift='" & txtid.Text & "'" mymsg = "Data Sukses di update"
Else
myread.Close()
bukaKoneksi() q = "select * from shift where jam='" & txtjam.Text & "'"
mycmd = New MySqlCommand(q, conn)
myread = mycmd.ExecuteReader If myread.HasRows Then
MsgBox("Jam sudah ada", vbCritical)
myread.Close() Exit Sub
End If
q = "insert into shift (jam) values('" & txtjam.Text & "')" mymsg = "Data Sukses di tambahkan"
End If
myread.Close()
Try
mycmd = New MySqlCommand(q, conn) mycmd.ExecuteNonQuery()
MsgBox(mymsg, vbInformation)
Application.DoEvents() Application.DoEvents()
tampilkan()
tampilkan()
ButtonX3_Click(sender, e) Catch ex As Exception
MsgBox(Err.Description, vbCritical)
End Try End Sub
Private Sub ButtonX3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX3.Click
txtjam.Clear()
ambilkodeakhir() End Sub
Private Sub ButtonX4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX4.Click If MsgBox("Apakah anda yakin akan menghapus " & txtjam.Text & "
dari database?", vbOKCancel) = vbCancel Then Exit Sub
bukaKoneksi() Dim q As String = "delete from shift where id_shift='" & txtid.Text
& "'"
Try Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
mycmd.ExecuteNonQuery()
MsgBox("Data sukses dihapus", vbInformation)
tampilkan()
ButtonX3_Click(sender, e) Catch ex As Exception
MsgBox(Err.Description, vbCritical)
End Try
End Sub
Private Sub ButtonX5_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX5.Click
Me.Dispose()
End Sub
Private Sub dg_CellContentClick(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.DataGridViewCellEventArgs) Handles dg.CellContentClick
End Sub
Private Sub dg_DoubleClick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles dg.DoubleClick Dim i As Integer
On Error Resume Next
i = dg.CurrentRow.Index
With dg txtid.Text = .Item(0, i).Value
txtjam.Text = .Item(1, i).Value
End With
txtjam.Focus()
End Sub
Private Sub LabelX7_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
End Sub
Private Sub Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint
End Sub End Class
Menu Biro Imports System.IO
Imports MySql.Data.MySqlClient
Public Class frmbiro Sub tampilkan(Optional ByRef strq = "select * from biro order by
id_biro asc")
Dim q As String q = strq
Dim ds As New DataSet
bukaKoneksi() Dim sqldbadapter As New MySqlDataAdapter
sqldbadapter = New MySqlDataAdapter(q, conn)
sqldbadapter.Fill(ds)
Me.dg.DataSource = ds.Tables(0) dg.Columns(1).Width = 88 / 100 * (dg.Width - 120)
End Sub
Private Sub frmbiro_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load tampilkan()
End Sub
Private Sub dg_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dg.CellContentClick
End Sub
Private Sub dg_CellContentDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dg.CellContentDoubleClick
End Sub
Private Sub dg_CellDoubleClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles dg.CellDoubleClick Dim i As Integer = dg.CurrentRow.Index
TextBoxX1.Text = dg.Item(1, i).Value
TextBoxX1.Tag = dg.Item(0, i).Value End Sub
Private Sub ButtonX1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX1.Click
bukaKoneksi()
If TextBoxX1.Text = "" Then
MsgBox("Data kosong", vbCritical) Exit Sub
End If
Dim q As String = "select * from biro where id_biro='" & TextBoxX1.Tag & "'"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Dim myread As MySqlDataReader = mycmd.ExecuteReader() Dim mymsg As String = ""
If myread.HasRows Then
q = "update biro set nama_biro='" & TextBoxX1.Text & "' where id_biro='" & TextBoxX1.Tag & "'"
mymsg = "Data Sukses di update"
Else
q = "insert into biro (nama_biro) values('" & TextBoxX1.Text & "')"
mymsg = "Data Sukses di tambahkan"
End If myread.Close()
Try
mycmd = New MySqlCommand(q, conn)
mycmd.ExecuteNonQuery()
MsgBox(mymsg, vbInformation)
Application.DoEvents() Application.DoEvents()
ButtonX3_Click(sender, e)
Catch ex As Exception MsgBox(Err.Description, vbCritical)
End Try
End Sub
Private Sub ButtonX2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX2.Click bukaKoneksi()
Dim q As String = "delete from biro where id_biro='" &
TextBoxX1.Tag & "'" Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Try
mycmd.ExecuteNonQuery() tampilkan()
tampilkan()
ButtonX3_Click(sender, e) Catch ex As Exception
MsgBox("Error", vbCritical)
End Try
End Sub
Private Sub LabelX1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles LabelX1.Click
End Sub
Private Sub TextBoxX1_TextChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles TextBoxX1.TextChanged
End Sub
Private Sub ButtonX3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX3.Click tampilkan()
tampilkan()
TextBoxX1.Tag = "" TextBoxX1.Text = ""
TextBoxX1.Focus()
End Sub End Class
Menu Bidang Imports System.IO Imports MySql.Data.MySqlClient
Public Class frmbidang
Sub tampilkan(Optional ByRef strq = "select bidang.id_bidang,biro.nama_biro,bidang.nama_bidang from bidang,biro where
biro.id_biro=bidang.id_biro")
Dim q As String
q = strq
Dim ds As New DataSet bukaKoneksi()
Dim sqldbadapter As New MySqlDataAdapter
sqldbadapter = New MySqlDataAdapter(q, conn) sqldbadapter.Fill(ds)
Me.dg.DataSource = ds.Tables(0)
dg.Columns(1).Width = 60 / 100 * (dg.Width - 120)
End Sub
Sub tampilbiro()
bukaKoneksi() Dim q As String = "select * from biro order by nama_biro asc"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Dim myr As MySqlDataReader = mycmd.ExecuteReader txtbiro.Items.Clear()
txtbiro.Items.Add("")
While myr.Read txtbiro.Items.Add(myr.Item(1))
End While
End Sub Private Sub frmbidang_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
tampilkan()
tampilbiro() End Sub
Private Sub txtbiro_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtbiro.SelectedIndexChanged
bukaKoneksi()
If txtbiro.Text = "" Then txtidbiro.Clear()
Exit Sub
End If
Dim q As String = "select id_biro from biro where nama_biro='" & txtbiro.Text & "'"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Dim myr As MySqlDataReader = mycmd.ExecuteReader
If myr.Read Then
txtidbiro.Text = myr.Item(0) End If
End Sub
Private Sub ButtonX1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX1.Click
bukaKoneksi()
If txtbidang.Text = "" Or txtidbiro.Text = "" Then MsgBox("Data kosong", vbCritical)
Exit Sub
End If Dim q As String = "select * from bidang where id_bidang='" &
txtbidang.Tag & "'"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) Dim myread As MySqlDataReader = mycmd.ExecuteReader()
Dim mymsg As String = ""
If myread.HasRows Then
q = "update bidang set nama_bidang='" & txtbidang.Text &
"',id_biro='" & txtidbiro.Text & "' where id_bidang='" & txtbidang.Tag & "'"
mymsg = "Data Sukses di update"
Else q = "insert into bidang (id_biro,nama_bidang) values('" &
txtidbiro.Text & "','" & txtbidang.Text & "')"
mymsg = "Data Sukses di tambahkan" End If
myread.Close()
Try
mycmd = New MySqlCommand(q, conn)
mycmd.ExecuteNonQuery() MsgBox(mymsg, vbInformation)
Application.DoEvents()
Application.DoEvents() ButtonX3_Click(sender, e)
Catch ex As Exception
MsgBox(Err.Description, vbCritical) End Try
End Sub
Private Sub dg_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dg.CellDoubleClick
Dim i As Integer = dg.CurrentRow.Index
txtbidang.Text = dg.Item(2, i).Value txtbidang.Tag = dg.Item(0, i).Value
End Sub
Private Sub ButtonX3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX3.Click
txtbidang.Tag = ""
txtbidang.Text = "" txtidbiro.Text = ""
txtbiro.Text = ""
tampilkan() tampilkan()
End Sub
Private Sub ButtonX2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX2.Click
bukaKoneksi() Dim q As String = "delete from bidang where id_bidang='" &
txtbidang.Tag & "'"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Try mycmd.ExecuteNonQuery()
tampilkan()
tampilkan() ButtonX3_Click(sender, e)
Catch ex As Exception
MsgBox("Error", vbCritical) End Try
End Sub
End Class
Menu Gedung Imports MySql.Data.MySqlClient
Public Class frmgedung
Sub tampilkan(Optional ByRef strq = "select * from gedung order by id
asc")
Dim q As String q = strq
Dim ds As New DataSet
bukaKoneksi() Dim sqldbadapter As New MySqlDataAdapter
sqldbadapter = New MySqlDataAdapter(q, conn)
sqldbadapter.Fill(ds)
Me.dg.DataSource = ds.Tables(0) dg.Columns(1).Width = 88 / 100 * (dg.Width - 120)
End Sub
Private Sub frmgedung_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load tampilkan()
End Sub
Private Sub dg_CellContentClick(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dg.CellContentClick
End Sub
Private Sub dg_CellContentDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dg.CellContentDoubleClick
End Sub
Private Sub dg_CellDoubleClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles dg.CellDoubleClick Dim i As Integer = dg.CurrentRow.Index
TextBoxX1.Text = dg.Item(1, i).Value
TextBoxX1.Tag = dg.Item(0, i).Value End Sub
Private Sub ButtonX1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX1.Click
bukaKoneksi()
If TextBoxX1.Text = "" Then MsgBox("Data kosong", vbCritical)
Exit Sub
End If
Dim q As String = "select * from gedung where id='" & TextBoxX1.Tag & "'"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Dim myread As MySqlDataReader = mycmd.ExecuteReader()
Dim mymsg As String = ""
If myread.HasRows Then q = "update gedung set nama_gedung='" & TextBoxX1.Text & "'
where id='" & TextBoxX1.Tag & "'"
mymsg = "Data Sukses di update" Else
q = "insert into gedung (nama_gedung) values('" &
TextBoxX1.Text & "')" mymsg = "Data Sukses di tambahkan"
End If
myread.Close()
Try
mycmd = New MySqlCommand(q, conn) mycmd.ExecuteNonQuery()
MsgBox(mymsg, vbInformation)
Application.DoEvents() Application.DoEvents()
ButtonX3_Click(sender, e)
Catch ex As Exception MsgBox(Err.Description, vbCritical)
End Try
End Sub
Private Sub ButtonX2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX2.Click bukaKoneksi()
Dim q As String = "delete from gedung where id='" & TextBoxX1.Tag &
"'" Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Try
mycmd.ExecuteNonQuery()
tampilkan() tampilkan()
ButtonX3_Click(sender, e)
Catch ex As Exception MsgBox("Error", vbCritical)
End Try
End Sub
Private Sub LabelX1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles LabelX1.Click
End Sub
Private Sub TextBoxX1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBoxX1.TextChanged
End Sub
Private Sub ButtonX3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX3.Click tampilkan()
tampilkan()
TextBoxX1.Tag = ""
TextBoxX1.Text = ""
TextBoxX1.Focus() End Sub
End Class
Menu Kesediaan Imports MySql.Data.MySqlClient
Public Class frmkesediaan
Sub ambilkodeakhir()
bukaKoneksi() Dim q As String = "select * from kesediaan order by noid desc"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Dim myread As MySqlDataReader = mycmd.ExecuteReader Dim s As String = ""
If myread.Read Then
s = myread.GetString(0) End If
s = Val(s) + 1
While Len(s) < 5 s = "0" & s
End While
txtid.Text = s
txtidp.Focus() myread.Close()
End Sub
Sub tampilkan(Optional ByVal myq As String = "") On Error Resume Next
bukaKoneksi()
dx.Rows.Clear() On Error Resume Next
Dim q As String = "select
kesediaan.noid,pembicara.nama_pembicara,kegiatan.nama_kegiatan,kesediaan.pe
riode,kesediaan.minggu,shift.jam,kesediaan.senin,kesediaan.selasa,kesediaan.rabu,kesediaan.kamis,kesediaan.jumat from
kesediaan,pembicara,kegiatan,shift where
pembicara.id_pembicara=kesediaan.id_pembicara and kegiatan.id_kegiatan= kesediaan.id_kegiatan and shift.id_shift=kesediaan.id_shift " & myq & "
order by kesediaan.noid asc,shift.jam asc"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) Dim r As MySqlDataReader = mycmd.ExecuteReader
Dim b(11) As Object
While r.Read
If dx.Rows(dx.RowCount - 1).Tag <> r.Item(0) Or dx.RowCount = 0 Then
b(0) = r.Item(0)
b(1) = r.Item(1) b(2) = r.Item(2)
b(3) = r.Item(3)
b(4) = r.Item(4) Else
b(0) = ""
b(1) = "" b(2) = ""
b(3) = ""
b(4) = ""
End If For i As Integer = 5 To 10
b(i) = r.Item(i)
Next dx.Rows.Add(b)
dx.Rows(dx.RowCount - 1).Tag = r.Item(0)
End While End Sub
Private Sub frmkegiatan_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Activated Me.MaximizeBox = False
Me.ControlBox = False
Me.MinimizeBox = False Me.WindowState = 2
ubahaku()
End Sub Private Sub frmkesediaan_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
On Error GoTo al Application.DoEvents()
Application.DoEvents()
Me.MdiParent = frmmain
Application.DoEvents() Application.DoEvents()
loadperiode()
Exit Sub al:
Application.DoEvents()
Application.DoEvents() Me.MdiParent = frmmain
Application.DoEvents()
Application.DoEvents()
loadperiode()
End Sub
Sub loadperiode() SuperTabControl1.SelectedTabIndex = 0
ambilkodeakhir()
bukashift() isicombo()
Dim i As Integer
srcperiode.Items.Add("-") For i = 1 To 12
txtperiode.Items.Add(MonthName(i))
srcperiode.Items.Add(MonthName(i))
Next txtperiode.Text = MonthName(Now.Month)
srcperiode.Text = "-"
srctahun.Items.Add("-") For i = 1985 To 2050
txttahun.Items.Add(CStr(i))
srctahun.Items.Add(CStr(i)) Next
txttahun.Text = Now.Year
srctahun.Text = "-"
srcminggu.Text = "-"
tampilkan()
End Sub
Sub isicombo() ' txtidp.Items.Clear()
' txtidk.Items.Clear()
bukaKoneksi() Dim q As String = "select * from pembicara order by id_pembicara
asc"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Dim myread As MySqlDataReader = mycmd.ExecuteReader
While myread.Read
txtidp.Items.Add(myread.Item(0)) End While
myread.Close()
q = "select * from kegiatan order by id_kegiatan asc" mycmd = New MySqlCommand(q, conn)
myread = mycmd.ExecuteReader
While myread.Read txtidk.Items.Add(myread.Item(0))
End While
End Sub
Sub bukashift() dgi.Rows.Clear()
bukaKoneksi()
Dim q As String = "select * from shift order by id_shift asc" Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Dim myread As MySqlDataReader = mycmd.ExecuteReader
Dim b(6) As Object For i As Integer = 1 To 5
b(i) = "0"
Next
While myread.Read b(0) = myread.Item(0) & ". " & myread.Item(1)
dgi.Rows.Add(b)
End While End Sub
Sub ubahaku()
On Error Resume Next SuperTabControl1.Width = Me.Width - 100
SuperTabControl1.Height = Panel1.Top - SuperTabControl1.Top
With (dgi) .Columns(0).Width = 27 / 100 * (.Width - 120)
.Columns(1).Width = 15 / 100 * (.Width - 120)
.Columns(2).Width = 15 / 100 * (.Width - 120)
.Columns(3).Width = 15 / 100 * (.Width - 120) .Columns(4).Width = 15 / 100 * (.Width - 120)
.Columns(5).Width = 15 / 100 * (.Width - 120)
End With With (dx)
.Columns(0).Width = 15 / 100 * (.Width - 110)
.Columns(1).Width = 15 / 100 * (.Width - 110) .Columns(2).Width = 15 / 100 * (.Width - 110)
.Columns(3).Width = 10 / 100 * (.Width - 110)
.Columns(4).Width = 9 / 100 * (.Width - 110)
.Columns(5).Width = 10 / 100 * (.Width - 110)
For i As Integer = 6 To 10 .Columns(i).Width = 6 / 100 * (.Width - 110)
Next
End With End Sub
Private Sub frmkesediaan_Resize(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Resize ubahaku()
End Sub
Private Sub ButtonX1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX1.Click
With frmpop
.tampilkan("pembicara", "select * from pembicara order by id_pembicara")
.ShowDialog()
txtidp.Text = .w(0) txtnama.Text = .w(1)
txtjabatan.Text = .w(3)
End With End Sub
Private Sub ButtonX2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX2.Click With frmpop
.tampilkan("kegiatan", "select * from kegiatan order by
id_kegiatan") .ShowDialog()
txtidk.Text = .w(0)
txtnamak.Text = .w(1) txturaian.Text = .w(2)
End With
End Sub
Private Sub txtidp_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles txtidp.SelectedIndexChanged
bukaKoneksi() Dim q As String = "select * from pembicara where id_pembicara='" &
txtidp.Text & "'"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) Dim myread As MySqlDataReader = mycmd.ExecuteReader
If myread.Read Then
txtnama.Text = myread.GetString(1) txtjabatan.Text = myread.GetString(3)
End If
End Sub
Private Sub txtidk_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles txtidk.SelectedIndexChanged
bukaKoneksi() Dim q As String = "select * from kegiatan where id_kegiatan='" &
txtidk.Text & "'"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) Dim myread As MySqlDataReader = mycmd.ExecuteReader
If myread.Read Then
txtnamak.Text = myread.GetString(1)
txturaian.Text = myread.GetString(2)
End If
End Sub
Private Sub ButtonX6_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX6.Click
bukaKoneksi() Dim i As Integer
Dim q As String = "select * from kesediaan where noid='" &
txtid.Text & "'"
If txtid.Text = "" Or txtidp.Text = "" Or txtidk.Text = "" Or txtminggu.Text = "" Or txtperiode.Text = "" Or txttahun.Text = "" Then
MsgBox("data tidak lengkap", vbCritical)
Exit Sub End If
Dim ada As Boolean = False
For i = 0 To dgi.RowCount - 1 If dgi.Item(1, i).Value = "1" Or dgi.Item(2, i).Value = "1" Or
dgi.Item(3, i).Value = "1" Or dgi.Item(4, i).Value = "1" Or dgi.Item(5,
i).Value = "1" Then ada = True
End If
Next
If ada = False Then MsgBox("Data kesediaan harus diisi", vbCritical)
Exit Sub
End If Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Dim myread As MySqlDataReader = mycmd.ExecuteReader()
Dim mymsg As String = "" If myread.HasRows Then
bukaKoneksi()
' For i = 0 To dgi.RowCount - 1
' q = "update kesediaan set id_pembicara='" & txtidp.Text & "',id_kegiatan='" & txtidk.Text & "',senin='" & dgi.Item(1, i).Value &
"',selasa='" & dgi.Item(2, i).Value & "',rabu='" & dgi.Item(3, i).Value &
"',kamis='" & dgi.Item(4, i).Value & "',jumat='" & dgi.Item(5, i).Value & "',id_shift='" & CStr(i + 1) & "',minggu='" &
txtminggu.SelectedItem.ToString & "',periode='" & txtperiode.Text &
"',tahun='" & txttahun.Text & "' where noid='" & txtid.Text & "' and id_shift='" & CStr(i + 1) & "'"
' mycmd = New MySqlCommand(q, conn)
' mycmd.ExecuteNonQuery() 'Next
q = "delete from kesediaan where noid='" & txtid.Text & "'"
Try
mycmd = New MySqlCommand(q, conn) mycmd.ExecuteNonQuery()
ButtonX6_Click(sender, e)
Catch ex As Exception MsgBox("Data gagal di update", vbCritical)
End Try
Else
bukaKoneksi()
For i = 0 To dgi.RowCount - 1
If dgi.Item(1, i).Value = "1" Or dgi.Item(2, i).Value = "1" Or dgi.Item(3, i).Value = "1" Or dgi.Item(4, i).Value = "1" Or dgi.Item(5,
i).Value = "1" Then
q = "insert into kesediaan values('" & txtid.Text & "','" & txtidp.Text & "','" & txtidk.Text & "','" & dgi.Item(1, i).Value &
"','" & dgi.Item(2, i).Value & "','" & dgi.Item(3, i).Value & "','" &
dgi.Item(4, i).Value & "','" & dgi.Item(5, i).Value & "','" & CStr(i + 1) & "','" & txtminggu.SelectedItem.ToString & "','" & txtperiode.Text & "','" &
txttahun.Text & "')"
mycmd = New MySqlCommand(q, conn)
mycmd.ExecuteNonQuery() End If
Next
mymsg = "Data Sukses di simpan" MsgBox(mymsg)
bukashift()
End If myread.Close()
ButtonX3_Click(sender, e)
End Sub
Private Sub ButtonX3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX3.Click
tampilkan()
txtidp.Text = "" txtidk.Text = ""
txtnama.Clear()
txtjabatan.Clear() txtnamak.Clear()
txturaian.Clear()
ambilkodeakhir()
txtidp.Focus() End Sub
Private Sub Panel1_Paint(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint
End Sub
Private Sub srcminggu_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
srcminggu.SelectedIndexChanged
If srcminggu.SelectedItem.ToString = "-" Then tampilkan() : Exit
Sub tampilkan("and kesediaan.minggu='" &
srcminggu.SelectedItem.ToString & "'")
End Sub
Private Sub srcperiode_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles srcperiode.SelectedIndexChanged
If srcperiode.SelectedItem.ToString = "-" Then tampilkan() : Exit
Sub
tampilkan("and kesediaan.periode='" & srcperiode.SelectedItem.ToString & "'")
End Sub
Private Sub srctahun_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles srctahun.SelectedIndexChanged
If srctahun.SelectedItem.ToString = "-" Then tampilkan() : Exit Sub
tampilkan("and kesediaan.tahun='" & srctahun.SelectedItem.ToString
& "'")
End Sub
Private Sub SuperTabControl1_SelectedTabChanged(ByVal sender As
System.Object, ByVal e As
DevComponents.DotNetBar.SuperTabStripSelectedTabChangedEventArgs) Handles SuperTabControl1.SelectedTabChanged
ubahaku()
End Sub
Private Sub dx_CellContentClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles
dx.CellContentClick, dx.CellClick openkesediaan()
End Sub
Sub openkesediaan() On Error GoTo alen
Dim i As Integer = 0
Dim sk As String = dx.CurrentRow.Tag Dim j As Integer = 0
Dim b(5) As String
If sk = "" Then Exit Sub
bukaKoneksi() Dim q As String = "select * from kesediaan where noid='" & sk & "'
order by id_shift asc"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) Dim r As MySqlDataReader = mycmd.ExecuteReader
While r.Read
txtid.Text = r.Item(0) txtidp.Text = r.Item(1)
txtidk.Text = r.Item(2)
txtminggu.Text = r.Item("minggu") txtperiode.Text = r.Item("periode")
txttahun.Text = r.Item("tahun")
For i = 1 To 5
dgi.Item(i, j).Value = r.Item(i + 2) Next
j += 1
End While Exit Sub
alen:
End Sub
Private Sub ButtonX4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX4.Click
If MsgBox("Apakah anda ingin menghapus daftar kesedian " & txtid.Text & " ?", vbYesNo) = vbNo Then Exit Sub
bukaKoneksi()
Dim myc As MySqlCommand = New MySqlCommand("delete from kesediaan where noid='" & txtid.Text & "'", conn)
Try
myc.ExecuteNonQuery() MsgBox("Data telah dihapus")
ButtonX3_Click(sender, e)
Catch ex As Exception MsgBox(Err.Description, vbCritical)
End Try
End Sub
Private Sub dgi_CellContentClick(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgi.CellContentClick
End Sub
Private Sub dgi_CellEndEdit(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles dgi.CellEndEdit
If dgi.Item(e.ColumnIndex, e.RowIndex).Value <> "0" And dgi.Item(e.ColumnIndex, e.RowIndex).Value <> "1" Then
MsgBox("Data merupakan bilangan binear,yaitu 0 dan 1",
vbCritical) dgi.Item(e.ColumnIndex, e.RowIndex).Value = "0"
End If
End Sub
Private Sub dgi_CellValueChanged(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles
dgi.CellValueChanged
End Sub
Private Sub ButtonX5_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX5.Click
Me.Dispose() End Sub
End Class
Imports MySql.Data.MySqlClient
Public Class frmnilai
Sub ubahaku() On Error Resume Next
dg.Top = ButtonX2.Top + ButtonX2.Height + 15
dg.Width = Me.Width - 200 dg.Height = Me.Height - dg.Top - 100
With (dg)
.Columns(0).Width = 13 / 100 * (.Width - 120) .Columns(1).Width = 25 / 100 * (.Width - 120)
.Columns(2).Width = 35 / 100 * (.Width - 120)
.Columns(3).Width = 25 / 100 * (.Width - 120)
End With End Sub
Private Sub frmkegiatan_Resize(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Resize ubahaku()
End Sub
Private Sub frmkegiatan_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
Me.MaximizeBox = False
Me.ControlBox = False
Me.MinimizeBox = False Me.WindowState = 2
ubahaku()
End Sub Private Sub frmnilai_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
addkelist() tampilkan()
On Error GoTo alen
Me.MdiParent = frmmain
Exit Sub
alen:
Me.MdiParent = frmmain
End Sub
Sub tampilkan(Optional ByRef strq = "select * from nilai_fitness order by noid asc")
Dim q As String
q = strq Dim ds As New DataSet
bukaKoneksi()
Dim sqldbadapter As New MySqlDataAdapter sqldbadapter = New MySqlDataAdapter(q, conn)
sqldbadapter.Fill(ds)
Me.dg.DataSource = ds.Tables(0) End Sub
Sub addkelist()
bukaKoneksi() Dim q As String = "select * from kesediaan order by noid
asc,id_shift asc"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) Dim myr As MySqlDataReader = mycmd.ExecuteReader
txtid.Items.Clear()
Dim ada As Boolean = False
While myr.Read ada = False
For i As Integer = 0 To txtid.Items.Count - 1
If txtid.Items(i).ToString = myr.GetString(0) Then ada = True
Next
If ada = False Then txtid.Items.Add(myr.GetString(0)) End While
End Sub
Sub hapus()
txtidk.Clear() txtidp.Clear()
txtnama.Clear()
txtnamak.Clear() txturaian.Clear()
txtjabatan.Clear()
txtnilai.Text = 0 End Sub
Private Sub txtid_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles txtid.SelectedIndexChanged
Dim j As Integer On Error GoTo alen
hapus()
bukaKoneksi() Dim q As String = "select * from kesediaan where noid='" &
txtid.Text & "' order by noid asc,id_shift asc"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) Dim myr As MySqlDataReader = mycmd.ExecuteReader
While myr.Read
txtidp.Text = myr.Item(1) txtidk.Text = myr.Item(2)
j = 0
For i As Integer = 3 To 7
j = j + Val(myr.Item(i)) Next
txtnilai.Text = Val(txtnilai.Text) + j
End While myr.Close()
bukaKoneksi()
q = "select * from pembicara where id_pembicara='" & txtidp.Text & "'"
mycmd = New MySqlCommand(q, conn)
myr = mycmd.ExecuteReader
If myr.Read Then txtnama.Text = myr.Item(1)
txtjabatan.Text = myr.Item(3)
End If myr.Close()
bukaKoneksi()
q = "select * from kegiatan where id_kegiatan='" & txtidk.Text & "'"
mycmd = New MySqlCommand(q, conn)
myr = mycmd.ExecuteReader If myr.Read Then
txtnamak.Text = myr.Item(1)
txturaian.Text = myr.Item(2)
End If myr.Close()
Exit Sub
alen: MsgBox(Err.Description, vbCritical)
End Sub
Private Sub txtnamak_TextChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles txtnamak.TextChanged, txtidk.TextChanged
End Sub
Private Sub ButtonX2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX2.Click
bukaKoneksi() Dim q As String = "select * from nilai_fitness where noid='" &
txtid.Text & "'"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) Dim myread As MySqlDataReader = mycmd.ExecuteReader()
Dim mymsg As String = ""
If myread.HasRows Then
MsgBox("Data sudah ada", vbCritical) Exit Sub
Else
q = "insert into nilai_fitness values('" & txtid.Text & "','" & txtidp.Text & "','" & txtidk.Text & "','" & txtnilai.Text & "')"
mymsg = "Data Sukses di tambahkan"
End If myread.Close()
Try
mycmd = New MySqlCommand(q, conn)
mycmd.ExecuteNonQuery()
MsgBox(mymsg, vbInformation) Application.DoEvents()
Application.DoEvents()
ButtonX3_Click(sender, e) Catch ex As Exception
MsgBox(Err.Description, vbCritical)
End Try End Sub
Private Sub ButtonX3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX3.Click hapus()
txtid.Focus()
tampilkan() tampilkan()
End Sub
Private Sub ButtonX4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX4.Click If MsgBox("Apakah anda yakin akan menghapus id=" & txtid.Text & "
dari database?", vbOKCancel) = vbCancel Then Exit Sub
Dim q As String = "delete from nilai_fitness where noid='" & txtid.Text & "'"
Try
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) mycmd.ExecuteNonQuery()
MsgBox("Data sukses dihapus", vbInformation)
tampilkan() ButtonX3_Click(sender, e)
Catch ex As Exception
MsgBox(Err.Description, vbCritical)
End Try
End Sub Private Sub dg_CellDoubleClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles dg.CellDoubleClick
Dim i As Integer On Error Resume Next
i = dg.CurrentRow.Index
With dg txtid.Text = .Item(0, i).Value
End With
txtid.Focus() End Sub
Private Sub ButtonX5_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX5.Click Me.Dispose()
End Sub
End Class
Form seleksi jadwal Imports MySql.Data.MySqlClient
Public Class frmjadwal Sub addkelist()
bukaKoneksi()
Dim q As String = "select * from kesediaan order by noid asc,id_shift asc"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Dim myr As MySqlDataReader = mycmd.ExecuteReader
txtid.Items.Clear() Dim ada As Boolean = False
While myr.Read
ada = False For i As Integer = 0 To txtid.Items.Count - 1
If txtid.Items(i).ToString = myr.GetString(0) Then ada =
True Next
If ada = False Then txtid.Items.Add(myr.GetString(0))
End While
End Sub
Sub ubahaku()
On Error Resume Next Exit Sub
With (dg)
.Columns(0).Width = 13 / 100 * (.Width - 120) .Columns(1).Width = 25 / 100 * (.Width - 120)
.Columns(2).Width = 10 / 100 * (.Width - 120)
.Columns(3).Width = 15 / 100 * (.Width - 120) .Columns(4).Width = 20 / 100 * (.Width - 120)
.Columns(5).Width = 20 / 100 * (.Width - 120)
End With
End Sub
Private Sub frmkegiatan_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Activated
Me.MaximizeBox = False Me.ControlBox = False
Me.MinimizeBox = False
Me.WindowState = 2 ubahaku()
End Sub
Private Sub frmjadwal_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
On Error GoTo eer
loadform()
Exit Sub eer:
loadform()
End Sub Sub loadform()
Application.DoEvents()
Application.DoEvents() Me.MdiParent = frmmain
Application.DoEvents()
Application.DoEvents() addkelist()
tampilkan()
addlistruang()
Dim i As Integer
For i = 1 To 12
txtperiode1.Items.Add(MonthName(i)) Next
For i = 1985 To 2050
txttahun.Items.Add(CStr(i)) Next
End Sub
Sub addlistruang() Dim q As String = "select * from ruang order by id_ruang asc"
bukaKoneksi()
Dim myc As MySqlCommand = New MySqlCommand(q, conn) Dim myr As MySqlDataReader = myc.ExecuteReader
While myr.Read
txtidr.Items.Add(myr.Item(1)) End While
End Sub
Sub hapus() txtids.Items.Clear()
txtids.Items.Add("")
txtids.Text = ""
txthari.Items.Clear() txthari.Items.Add("")
txthari.Text = ""
txtminggu.Clear() txtper.Clear()
txtthn.Clear()
txtidk.Clear() txtidp.Clear()
txtnama.Clear()
txtjabatan.Clear()
txtnamak.Clear()
txturaian.Clear() End Sub
Private Sub txtid_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs)
End Sub
Sub tampilkan(Optional ByRef strq = "select * from jadwal order by noid asc")
Dim q As String
q = strq
Dim ds As New DataSet bukaKoneksi()
Dim sqldbadapter As New MySqlDataAdapter
sqldbadapter = New MySqlDataAdapter(q, conn) sqldbadapter.Fill(ds)
Me.dg.DataSource = ds.Tables(0)
End Sub Private Sub txtid_SelectedIndexChanged_1(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles txtid.SelectedIndexChanged
Dim j As Integer On Error Resume Next
hapus()
bukaKoneksi()
Dim q As String = "select * from kesediaan where noid='" & txtid.Text & "' order by id_shift asc"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Dim myr As MySqlDataReader = mycmd.ExecuteReader While myr.Read
txtidp.Text = myr.Item(1)
txtidk.Text = myr.Item(2)
txtids.Items.Add(myr.Item("id_shift"))
End While
txtminggu.Text = myr.Item(9) txtper.Text = myr.Item(10)
txtthn.Text = myr.Item(11)
myr.Close() bukaKoneksi()
q = "select * from pembicara where id_pembicara='" & txtidp.Text &
"'" mycmd = New MySqlCommand(q, conn)
myr = mycmd.ExecuteReader
If myr.Read Then txtnama.Text = myr.Item(1)
txtjabatan.Text = myr.Item(3)
End If
myr.Close() bukaKoneksi()
q = "select * from kegiatan where id_kegiatan='" & txtidk.Text &
"'" mycmd = New MySqlCommand(q, conn)
myr = mycmd.ExecuteReader
If myr.Read Then txtnamak.Text = myr.Item(1)
txturaian.Text = myr.Item(2)
End If
myr.Close()
Exit Sub alen:
MsgBox(Err.Description, vbCritical)
End Sub
Private Sub txtids_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles txtids.SelectedIndexChanged If txtids.Text = "" Then Exit Sub
bukaKoneksi()
txthari.Items.Clear()
txthari.Items.Add("") txthari.Text = ""
Dim j As Integer
Dim ada As Boolean Dim q As String = "select * from kesediaan where noid='" &
txtid.Text & "' and id_shift='" & txtids.Text & "' order by id_shift asc"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) Dim myr As MySqlDataReader = mycmd.ExecuteReader
While myr.Read
Dim al As String() = {"", "", "", "senin", "selasa", "rabu",
"kamis", "jumat"}
j = 0
For i As Integer = 3 To 7 If myr.Item(i) = "1" Then
ada = False
For j = 0 To txthari.Items.Count - 1 If txthari.Items(j) = al(i) Then ada = True : Exit
For
Next If ada = False Then txthari.Items.Add(al(i))
End If
Next
End While End Sub
Private Sub txtidr_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtidr.SelectedIndexChanged
Dim q As String = "select * from ruang where nama_ruang='" &
txtidr.Text & "'" bukaKoneksi()
Dim myc As MySqlCommand = New MySqlCommand(q, conn)
Dim myr As MySqlDataReader = myc.ExecuteReader If myr.Read Then
txtidruang.Text = myr.Item(0)
End If
End Sub
Private Sub ButtonX2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX2.Click
bukaKoneksi()
Dim i As Integer Dim q As String = "select * from jadwal where noid='" & txtid.Text
& "' and id_shift='" & txtids.Text & "' and hari='" & txthari.Text & "'"
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn)
Dim myread As MySqlDataReader = mycmd.ExecuteReader()
Dim mymsg As String = "" If myread.HasRows Then
bukaKoneksi()
q = "delete from jadwal where noid='" & txtid.Text & "' and
id_shift='" & txtids.Text & "' and hari='" & txthari.Text & "'"
Try mycmd = New MySqlCommand(q, conn)
mycmd.ExecuteNonQuery()
ButtonX2_Click(sender, e)
Exit Sub Catch ex As Exception
MsgBox("Data gagal di update" & vbCrLf & Err.Description,
vbCritical) End Try
Else bukaKoneksi()
q = "select * from jadwal where minggu='" & txtminggu.Text & "'
and periode='" & txtper.Text & "' and tahun='" & txtthn.Text & "' and hari='" & txthari.Text & "' and id_shift='" & txtids.Text & "' and
id_ruang='" & txtidruang.Text & "'"
mycmd = New MySqlCommand(q, conn)
Dim myku As MySqlDataReader = mycmd.ExecuteReader() If myku.HasRows Then
MsgBox("Ruang sudah terisi", vbCritical)
Exit Sub End If
bukaKoneksi()
Dim s As String = IIf(rd.Checked, rd.Text, rd2.Text) q = "insert into jadwal values('" & txtid.Text & "','" &
txtidp.Text & "','" & txtidk.Text & "','" & txtminggu.Text & "','" &
txthari.Text & "','" & txtids.Text & "','" & s & "','" & txtidruang.Text &
"','" & txtper.Text & "','" & txtthn.Text & "')" Try
mycmd = New MySqlCommand(q, conn) mycmd.ExecuteNonQuery()
Application.DoEvents()
Application.DoEvents() Application.DoEvents()
bukaKoneksi()
Dim jkes As Integer = 0 Dim jjad As Integer = 0
q = "select * from kesediaan where noid='" & txtid.Text &
"'"
mycmd = New MySqlCommand(q, conn) myku = mycmd.ExecuteReader()
While myku.Read
jkes = jkes + 1 End While
myku.Close()
bukaKoneksi() q = "select * from jadwal where noid='" & txtid.Text & "'"
mycmd = New MySqlCommand(q, conn)
myku = mycmd.ExecuteReader()
While myku.Read
jjad = jjad + 1 End While
myku.Close()
If jkes = jjad Then bukaKoneksi()
q = "delete from nilai_fitness where noid='" &
txtid.Text & "'" mycmd = New MySqlCommand(q, conn)
mycmd.ExecuteNonQuery()
If frmnilai.IsHandleCreated = True Then
frmnilai.tampilkan() End If
End If
Catch ex As Exception MsgBox("Data gagal di simpan" & vbCrLf & Err.Description,
vbCritical)
End Try
End If
myread.Close() ButtonX1_Click(sender, e)
End Sub
Private Sub ButtonX1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX1.Click
hapus()
txtid.Focus() tampilkan()
End Sub
Private Sub dg_CellContentClick(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dg.CellContentClick
End Sub
Private Sub dg_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dg.CellDoubleClick
Dim i As Integer = dg.CurrentRow.Index
txtid.Text = dg.Item(0, i).Value txtids.Text = dg.Item(5, i).Value
txthari.Text = dg.Item(4, i).Value
End Sub
Private Sub ButtonX4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX4.Click
If MsgBox("Apakah anda yakin akan ID= " & txtid.Text & " dari database?", vbOKCancel) = vbCancel Then Exit Sub
bukaKoneksi()
Dim q As String = "delete from jadwal where noid='" & txtid.Text & "'"
Try
Dim mycmd As MySqlCommand = New MySqlCommand(q, conn) mycmd.ExecuteNonQuery()
Application.DoEvents()
Application.DoEvents()
tampilkan()
ButtonX1_Click(sender, e) Catch ex As Exception
MsgBox(Err.Description, vbCritical)
End Try
End Sub
Private Sub Panel1_Paint(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint
End Sub
Private Sub txthari1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles txthari1.SelectedIndexChanged
tampilkan("select * from jadwal where hari='" & txthari1.Text & "'
order by noid asc") End Sub
Private Sub txtminggu1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
txtminggu1.SelectedIndexChanged
tampilkan("select * from jadwal where minggu='" & txtminggu1.Text &
"' order by noid asc")
End Sub
Private Sub txtperiode1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
txtperiode1.SelectedIndexChanged tampilkan("select * from jadwal where periode='" & txtperiode1.Text
& "' order by noid asc")
End Sub
Private Sub txttahun_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles txttahun.SelectedIndexChanged
tampilkan("select * from jadwal where tahun='" & txttahun.Text & "'
order by noid asc")
End Sub
Private Sub ButtonX3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonX3.Click
tampilkan()
End Sub End Class
LAMPIRAN 4 QUESIONER
LAMPIRAN 4
Kuesioner Penelitian Sistem Penjadwalan Kegiatan
Nama :
Staff Bagian :
Petunjuk Pengisian
Beri tanda silang (X) pada alternative jawaban yang disediakan !
1. Apakah sistem yang ada saat ini berjalan dengan baik?
a. Ya
b. Tidak
2. Apakah perlu dibangun sistem yang menunjang pekerjaan anda saat ini?
a. Ya
b. Tidak
3. Apakah pencarian berkas-berkas yang diperlukan membutuhkan waktu yang
lama ?
a. Ya
b. Tidak
4. Apakah sering terjadi kendala dalam pembuatan jadwal kegiatan ?
a. Ya
b. Tidak
5. Apakah yang diharapkan tentang sistem yang akan dibangun?
a. Sederhana dan mudah digunakan
b. Menarik walaupun sulit digunakan
Hasil Kuesioner
1. Pertanyaan 1 :
2. Pertanyaan 2 :
Pertanyaan Jumlah Persentase
Apakah sistem yang ada
saat ini berjalan dengan
baik?
A. Ya
B. Tidak
1
4
20%
80%
Pertanyaan Jumlah Persentase
Apakah perlu dibangun
sistem yang dapat
menunjang pekerjaan anda
saat ini?
A.Ya
B. Tidak
5
0
100%
0%
3. Pertanyaan 3 :
4. Pertanyaan 4 :
5. Pertanyaan 5 :
Pertanyaan Jumlah Persentase
Apakah pencarian berkas-berkas
yang diperlukan membutuhkan
waktu yang lama ?
A.Ya
B. Tidak
4
1
80%
20%
Pertanyaan Jumlah Persentase
Apakah sering terjadi kendala
dalam pembuatan jadwal
kegiatan ?
A.Ya
B. Tidak
3
2
60%
40%
Pertanyaan Jumlah Persentase
Apakah yang diharapkan tentang
sistem yang akan dibangun?
A. Sederhana dan Mudah
5
100%
LAMPIRAN 5 SURAT PERMOHONAN
PENELITIAN
digunakan
B. Menarik walupun sulit
digunakan
0
0%
LAMPIRAN 7 PENGUJIAN BLACKBOX
PENGUJIAN BLACKBOX
N0 Rancangan Proses Hasil Yang Diharapkan Hasil Ket
1. Username dan password, klik
tombol “LOGIN”
Masuk halaman Account user Sesuai Level=
User
2. Klik menu “User” Menampilkan halaman data user Sesuai
3. Klik tombol “Simpan” Data user yang telah di input
tersimpan didatabase user
Sesuai
4. Klik tombol “Batal” Data user batal di input Sesuai
5. Klik tombol “Keluar” pada
“User”
Admin keluar dari form user Sesuai
6. Klik menu “Data” pilih list
“Pembicara”
Menampilkan halaman data
pembicara
Sesuai
7. Klik tombol “Simpan” Data pembicara yang di input
tersimpan didatabase pembicara
Sesuai
8. Klik tombol “Batal” Data pembicara batal di input Sesuai Form
diisi
9. Klik tombol “Hapus” pada
“Pembicara”
Data pembicara terhapus Sesuai
10. Klik combobox “Cari Nama”
pada “Pembicara”
Menampilkan seluruh nama
pembicara yang telah disimpan
Sesuai
11. Klik combobox “Biro” pada
“Pembicara”
Menampilkan seluruh Biro Sesuai
12. Klik combobox “Bidang”
pada “Pembicara”
Menampilkan seluruh bidang Sesuai
13. Klik tombol “Batal” Data user batal di input Sesuai
14. Klik tombol “Keluar” pada
“Pembicara”
Admin keluar dari form
pembicara
Sesuai
15. Klik menu “Data” pilih list
“Kegiatan”
Menampilkan halaman data
kegiatan
Sesuai
16. Klik tombol “Tambah” Menampilkan form untuk
menambah data kegiatan
Sesuai
15. Klik tombol “Simpan” Data telah tersimpan didatabase
kegiatan
Sesuai Form
diisi
16 Klik tombol “Edit” Menampilkan form untuk
mengedit data kegiatan
Sesuai
17. Klik tombol “Batal” Data user batal di input Sesuai
18. Klik tombol “Hapus” pada
“Kegiatan”
Data pembicara terhapus Sesuai
19. Klik tombol “Tutup” pada
“Kegiatan”
Data pembicara batal di input Sesuai
20. Klik menu “Data” pilih list
“Ruang”
Menampilkan halaman data ruang Sesuai
21. Klik tombol “Tambah” Menampilkan form untuk Sesuai
menambah data ruang
22. Klik tombol “Simpan” Data telah tersimpan didatabase
ruang
Sesuai Form
diisi
23. Klik tombol “Edit” Menampilkan form untuk
mengedit data ruang
Sesuai
24. Klik tombol “Batal” Data user batal di input Sesuai
25. Klik tombol “Hapus” pada
“Ruang”
Data ruang terhapus Sesuai
26. Klik tombol “Tutup” pada
“Ruang”
Data ruang batal di input Sesuai
27. Klik menu “Data” pilih list
“Shift”
Menampilkan halaman data shift Sesuai
28. Klik tombol “Tambah” Menampilkan form untuk
menambah data shift
Sesuai
29. Klik tombol “Simpan” Data telah tersimpan didatabase
shift
Sesuai Form
diisi
30. Klik tombol “Edit” Menampilkan form untuk
mengedit data shift
Sesuai
31. Klik tombol “Batal” Data user batal di input Sesuai
32. Klik tombol “Hapus” pada
“Shift”
Data shift terhapus Sesuai
33. Klik tombol “Tutup” pada
“Shift”
Data shift batal di input Sesuai
34. Klik menu “Data” pilih list
“Biro”
Menampilkan halaman data Biro Sesuai
35. Klik tombol “Tambah” Menampilkan form untuk
menambah data Biro
Sesuai Form
diisi
36. Klik tombol “Simpan” Data telah tersimpan didatabase
Biro
Sesuai
37. Klik tombol “Edit” Menampilkan form untuk
mengedit data Biro
Sesuai
38. Klik tombol “Batal” Data user batal di input Sesuai
39. Klik tombol “Hapus” pada
“Biro”
Data Biro terhapus Sesuai
40. Klik tombol “Tutup” pada
“Biro”
Data Biro batal di input Sesuai
41. Klik menu “Data” pilih list
“Bidang”
Menampilkan halaman data
bidang
Sesuai
42. Klik tombol “Tambah” Menampilkan form untuk
menambah data bidang
Sesuai Form
diisi
43. Klik tombol “Simpan” Data telah tersimpan didatabase
bidang
Sesuai
45. Klik tombol “Edit” Menampilkan form untuk
mengedit data bidang
Sesuai
46. Klik tombol “Batal” Data user batal di input Sesuai
47. Klik tombol “Hapus” pada
“bidang”
Data bidang terhapus Sesuai
48. Klik tombol “Tutup” pada
“bidang”
Data bidang batal di input Sesuai
49. Klik menu “Data” pilih list
“Gedung”
Menampilkan halaman data
gedung
Sesuai
50. Klik tombol “Tambah” Menampilkan form untuk
menambah data gedung
Sesuai Form
diisi
51. Klik tombol “Simpan” Data telah tersimpan didatabase
gedung
Sesuai
52. Klik tombol “Edit” Menampilkan form untuk
mengedit data gedung
Sesuai
53. Klik tombol “Batal” Data user batal di input Sesuai
54. Klik tombol “Hapus” pada
“gedung”
Data gedung terhapus Sesuai
55. Klik tombol “Tutup” pada
“gedung ”
Data gedung batal di input Sesuai
56. Klik menu “Penjadwalan”
pilih list “Kesediaan”
Menampilkan halaman data
kesediaan
Sesuai
57. Klik tombol “Tambah” Menampilkan form untuk
menambah data kesediaan
Sesuai
58. Klik tombol “Simpan” Data telah tersimpan didatabase
kesediaan
Sesuai Form
diisi
59. Klik tombol “Edit” Menampilkan form untuk
mengedit data kesediaan
Sesuai
60. Klik tombol “Batal” Data user batal di input Sesuai
61. Klik tombol “Hapus” pada
“kesediaan”
Data kesediaan terhapus Sesuai
62. Klik combo box “periode”,
pilih periode per bulan
Menampilkan halaman periode
bulan untuk melanjutkan
Sesuai
63. Klik combobox “Minggu” Menampilkan minggu Sesuai
64. Klik combo box “Tahun”,
pilih tahun
Menampilkan halaman tahun
untuk data kesediaan
sesuai
65. Klik tombol “Tutup” pada
“kesediaan”
Data kesediaan batal di input Sesuai
66. Klik menu “Penjadwalan”
pilih list “Nilai Fitnes”
Menampilkan halaman data Nilai
Fitness
Sesuai
67. Klik tombol “Tambah” Menampilkan form untuk
menambah data nilai fitness
Sesuai
68. Klik tombol “Simpan” Data telah tersimpan didatabase
nilai fitness
Sesuai Form
diisi
69. Klik tombol “Edit” Menampilkan form untuk Sesuai
mengedit data nilai fitness
70. Klik tombol “Batal” Data user batal di input Sesuai
71. Klik tombol “Hapus” pada
“Nilai Fitness”
Data nilai fitness terhapus Sesuai
72. Klik tombol “Tutup” pada
“Nilai Fitness”
Data nilai fitness batal di input Sesuai
73. Klik menu “Penjadwalan”
pilih list “Seleksi Jadwal”
Menampilkan halaman data
seleksi jadwal
Sesuai
74. Klik tombol “Tambah” Menampilkan form untuk
menambah data seleksi jadwal
Sesuai
75. Klik tombol “Simpan” Data telah tersimpan didatabase
seleksi jadwal
Sesuai Form
diisi
76. Klik tombol “Edit” Menampilkan form untuk
mengedit data seleksi jadwal
Sesuai
77. Klik tombol “Batal” Data user batal di input Sesuai
78. Klik tombol “Hapus” pada
“Seleksi Jadwal”
Data seleksi jadwal terhapus Sesuai
79. Klik combo box “periode”,
pilih periode per bulan
Menampilkan halaman periode
bulan untuk melanjutkan
Sesuai
Klik combobox “Minggu” Menampilkan minggu Sesuai
80. Klik combobox “Tahun”,
Pilih tahun
Menampilkan halaman tahun
untuk data seleksi jadwal
sesuai
81. Klik tombol “Tutup” pada
“Seleksi Jadwal”
Data seleksi jadwal batal di input Sesuai
82. Klik menu “Laporan” pilih
list “Kesediaan”
Menampilkan form laporan
kesediaan
Sesuai
83. Klik combobox “periode”,
pilih periode per bulan
Menampilkan halaman periode
bulan untuk melanjutkan
Sesuai
84. Klik combobox “Tahun”, Menampilkan halaman tahun sesuai
Pilih tahun untuk laporan kesediaan
85. Klik tombol “OK” pada form
laporan kesediaan
Menampilkan laporan kesediaan Sesuai
86. Klik tombol “Print” pada
halaman laporan kesediaan
Cetak laporan pembicara Sesuai
87. Klik tombol “Batal” pada
halaman laporan kesediaan
Laporan kesediaan batal di cetak Sesuai
88. Klik menu “Laporan” pilih
list “Jadwal”
Menampilkan form laporan
jadwal
Sesuai
89. Klik combobox “laporan”
pada form laporan jadwal
Menampilkan seluruh form di
laporan jadwal
Sesuai
90. Klik combobox “periode”,
pilih laporan periode per
bulan
Menampilkan halaman periode
bulan untuk laporan jadwal
Sesuai
91. Klik combobox “Tahun”,
Pilih tahun
Menampilkan halaman tahun
untuk laporan jadwal
sesuai
92. Klik tombol “Ok” untuk
proses laporan
Menampilkan halaman laporan
jadwal per periode atau per tahun
Sesuai
93. Klik tombol “print” pada
halaman laporan jadwal
Cetak laporan jadwal Sesuai
94. Klik tombol “Batal” pada
halaman laporan jadwal
Laporan jadwal batal di cetak Sesuai
95. Pilih “Pembicara” pada
combobox “Laporan”
Menampilkan form laporan
pembicara
Sesuai
96. Klik combobox “pembicara”
pada form laporan pembicara
Menampilkan seluruh pembicara Sesuai
97. Klik combobox “Kegiatan”
pada form laporan pembicara
Menampilkan seluruh kegiatan Sesuai
98. Klik combobox “Shift” pada Menampilkan seluruh shift Sesuai
form pembicara
99. Klik combobox “Ruang”
pada form pembicara
Menampilkan seluruh ruang Sesuai
100. Klik tombol “Ok” untuk
proses laporan pembicara
Menampilkan halaman laporan
pembicara
Sesuai
101. Klik tombol “print” pada
halaman laporan pembicara
Cetak laporan pembicara Sesuai
102. Klik tombol “Batal” pada
halaman laporan pembicara
Laporan pembicara batal di cetak Sesuai
103. Pilih “Kegiatan” pada
combobox “Laporan” di form
laporan jadwal
Menampilkan form laporan
kegiatan
Sesuai
104. Klik combobox “Kegiatan”
pada form laporan Kegiatan
Menampilkan seluruh Kegiatan Sesuai
105. Klik combobox “Pembicara”
pada form laporan Kegiatan
Menampilkan seluruh pembicara Sesuai
106. Klik combobox “Shift” pada
form Kegiatan
Menampilkan seluruh shift Sesuai
107. Klik combobox “Ruang”
pada form Kegiatan
Menampilkan seluruh ruang Sesuai
108. Klik tombol “Ok” untuk
proses laporan
Menampilkan halaman laporan
Kegiatan
Sesuai
109. Klik tombol “print” pada
halaman laporan kegiatan
Cetak laporan kegiatan Sesuai
110. Klik tombol “Batal” pada
halaman laporan kegiatan
Laporan kegiatan batal di cetak Sesuai
111. Pilih “Ruang” pada
combobox “Laporan”
Menampilkan form laporan ruang Sesuai
112. Klik combobox “Ruang” Menampilkan seluruh ruang Sesuai
pada form laporan ruang
113. Klik combobox “Hari” pada
form laporan ruang
Menampilkan seluruh hari Sesuai
114. Klik combobox “Periode”
pada form laporan ruang
Menampilkan periode/bulan Sesuai
115. Klik combobox “Tahun”
pada form laporan ruang
Menampilkan tahun Sesuai
116. Klik tombol “Ok” untuk
proses laporan ruang
Menampilkan halaman laporan
ruang
Sesuai
117. Klik tombol “print” pada
halaman laporan ruang
Cetak laporan ruang Sesuai
118. Klik tombol “Batal” pada
halaman laporan ruang
Laporan ruang batal di cetak Sesuai
119. Pilih “Hari” pada combobox
“Laporan” di form laporan
jadwal
Menampilkan form laporan hari Sesuai
120. Klik combobox “Hari” pada
form laporan hari
Menampilkan seluruh hari Sesuai
121. Klik combobox “Pembicara”
pada form laporan hari
Menampilkan seluruh pembicara Sesuai
122. Klik combobox “Kegiatan”
pada form laporan hari
Menampilkan seluruh kegiatan Sesuai
123. Klik combobox “Ruang”
pada form laporan hari
Menampilkan seluruh hari Sesuai
124. Klik tombol “Ok” untuk
proses laporan hari
Menampilkan laporan hari Sesuai
125. Klik tombol “print” pada
halaman laporan hari
Cetak laporan hari Sesuai
126. Klik tombol “Batal” pada Laporan hari batal di cetak Sesuai
halaman laporan hari
127. Klik Menu “File” pilih list
“EXIT”
Menampilkan kembali halaman
login
Sesuai
128. Klik menu “File” pilih list
“LOGOUT”
Keluar dari Menu Home Sesuai