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 BENARBENAR 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
Dokumen
Awal atau akhir program
Input / output dalam format yang dicetak
Sumber : Ladjamudin, 2005
Daftar Simbol Notasi Data Flow Diagram Nama Simbol
Simbol DFD versi Yourdan,
Simbol DFD versi
De Marco
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
Entitas
diidentifikasi dalam lingkungan pemakai. Relasi, menunjukan adanya hubungan
Relasi
diantara sejumlah entitas yang berbeda. Atribut, berfungsi mendeskripsikan Atribut
karakter entitas. Garis, sebagai penghubung antara relasi dengan entitas, relasi dan entitas dengan atribut.
Sumber : Al-Bahra bin ladjamudin, 2005
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 kesalahankesalahan 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 bagianbagian 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 bersamasama 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 objekobjek yang ada pada ruang waktu dan bergantung pada kendalakendala 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 kondisikondisi 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 algoritma
menurut
genetika ini
Goldberg
sebagai
(1989)
suatu
mendefinisikan
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 karakteristikkarakteristik 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 aturanaturan 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
mereproduksi kromosom
sekondari
operator
yang
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 bitbit 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
memungkinkan
analis
sistem sistem
informasi.
sebagai
Wawancara
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 Menentukan Tujuan dan Syarat-syarat Informasi
Workshop design
Umpan balik dari Pengguna
Fase Perancangan
Fase Kontruksi
Bekerja dengan Pengguna untuk Sistem Perancangan Menggunakan Masukkan dari Pengguna
Membangun Sistem
Fase Pelaksanaan Memperkenalkan Sistem
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
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.
2.9.
Gambar 2.7. Notasi Tindakan (Pressman, 2002) 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).
Nama entitas
1
Nama relasi
1
Nama entitas
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
pada himpunan entitas B paling banyak berhubungan dengan satu entitas pada himpunan entitas.
Nama entitas
1
Nama relasi
M
Nama 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.
Nama entitas
M
Nama relasi
M
Nama entitas
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
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 1
Karakteristik Standar
Deskripsi 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
MySQL mendukung
dalam bahasa Java, C, Perl, PHP, dan sebaginya.
Pemrograman
4
pemrograman aplikasi
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 MySQL kira-kira tiga sampai empat kali lebih
kemudahan
cepat dibanding basisdata komersial, juga mudah dikelola.
pemakaian
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 Menentukan Tujuan dan Syarat-syarat Informasi
Workshop Design Umpan balik dari Pengguna Fase Perancangan
Fase Konstruksi
Bekerja dengan pengguna untuk sistem perancangan
Membangun Sistem
Menggunakan Masukan dari Pengguna
Fase Pelaksanaan Memperkenalkan Sistem
Gambar 3.1. Siklus Pengembangan Sistem Model RAD
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 :
SEKRETARIAT JENDERAL
BIRO PERENCANAAN
BIRO KEUANGAN DAN BMN
BIRO KEPEGAWAIAN
PUSAT KERUKUNAN UMAT BERAGAMA
BIRO ORGANISASI DAN TATA LAKSANA
BIRO HUKUM DAN KERJASAMA LN
BIRO UMUM
PUSAT INFORMASI KEAGAAAN DAN KEHUMASAN
Gambar 3.3. Struktur Organisasi SEKJEN Kementerian Agama RI
PUSAT INFORMASI KEAGAMAAN DAN KEHUMASAN SUBBAG TATA USAHA
BIDANG KEHUMASAN
BIDANG PENGEMBANGAN & ANALISA DATA KEAGAMAAN
SUBBID HUBUNGAN LEMBAGA RESMI DAN MEDIA MASSA
SUBBID PENERANGAN MASYARAKAT
BIDANG PENYELENGGARAA N SISTEM JARINGAN DAN APLIKASI
SUBBID STANDARDISASI DAN KOMUNIKASI DATA
SUBBID
SUBBID MANAJEMEN JARINGAN SUBBID PENYELENGGARAAN WEBSITE
ANALISA DATA
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.
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
pengembangan sistem penjadwalan kegiatan tersebut adalah : 1. Data Pembicara 2. Data Kegiatan 3. Data Ruang 4. Data Shift
untuk
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 1.
Sistem berjalan Penyimpanan
Literature sejenis
data Penuyimpanan
menggunkan
data
Microsoft Excell
menggunakan
Sistem usulan Penyimpanan data menggunakan basis data MySQL
Microsoft Access 2.
Tidak
adanya Analisa
analisa
mengenai dilanjutkan
pelaporan
data hingga
sistem Sistem penjadwalan menggunakan metode algoritma sampai genetika untuk mencari solusi
pembicara, kegiatan, proses pembuatan yang lebih optimal ruang, maupun data jadwal jadwal kegiatan. 3.
Pembuatan
jadwal Adanya
masih manual
sistem Sistem aplikasi yang diusulkan
penjadwalan yang dapat lebih baik dari sebelumnya dapat membantu karena menggunakan program dalam pembuatan terbaru, dan tampilannya lebih jadwal
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
disandikan
/
Agama
disimbolkan
RI.
dengan
Variabel number
ini 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. Kabiro PIKMAS M.Pd PM03 Afrizal Zein Drs. H. Kabag PIKMAS kehumasan M.Si PM04 Suparmin Drs. H. Kabag PIKMAS Pengembangan M.Pd dan analisa keagamaaan PM05 Ferimeldi Pi.d Kabag PIKMAS Penyelenggaraan SIS,Jar dan aplikasi
b. Variabel Kegiatan
: Gen 2
Kegiatan Id_Kegiatan K100
Nama_ Kegiatan Rapat Koordinasi
Uraian _Kegiatan Antar Lembaga pemerintahan
K200
Orientasi & Evaluasi Pembekalan MCH
K300
Rapat Kerja
Komisi DPR RI
K400
Monitoring Kehumasan Workshop
Kunjungan kerja Antar daerah Pameran Keagamaan
K500
c. Variabel Hari (kesediaan pembicara)
: Gen 3
Kesediaan Id_Pembicara Id_Kegiatan Senin Selasa Rabu Kamis Jumat Kesediaan PM01 PM02 PM03 PM04 PM05
K300 K100 K500 K400 K200
1 1 0 0 0
1 1 0 0 1
0 1 1 1 1
0 0 1 0 0
0 0 1 0 0
11000 11100 00110 00100 01100
Maka dari ketiga variabel (gen) diatas digabung menjadi sebuah kromosom (Individu) menjadi sebagai berikut : Id_ Pembicara
PM01 Gen 1
Id_Kegiatan
kesediaan
K300
11000
Gen 2
Gen 3
Kromosom manjadi : PM01K3001100
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 No 1 2 3 4 5
Id_Pembicara PM01 PM02 PM03 PM04 PM05
Nama_Pembicara Suryadharma Ali Masyuri AM Afrizal Zein Suparmin Ferimeldi
Tabel 4.5. Data Kegiatan No
Id_Kegiatan
Nama_Kegiatan
Uraian_Kegiatan
K100
Rapat Koordinasi
Antar Lembaga pemerintahan
K200
Orientasi & Evaluasi Rapat Kerja Monitoring Kehumasan Workshop
Pembekalan MCH Komisi DPR RI Kunjungan kerja
1 2 3 4 5
K300 K400 K500
Pameran Keagamaan
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 I . 09.10 – 10.20
Senin
II. 10.20 – 11.40 III. 13.00 – 13.50 IV. 13.50 – 14.40 V. 14,40 – 15.30
Selasa
Rabu
Kamis
Jumat
1 1 1 1
Id_Pembicara
: PM02
Nama_Pembicara
: Masyuri AM
Id_Kegiatan
: K100
Nama_Kegiatan
: Rapat Koordinasi antar lembaga
Minggu Hari / Shift I . 09.10 – 10.20
:1 Senin Selasa
II. 10.20 – 11.40 III. 13.00 – 13.50 IV. 13.50 – 14.40 V. 14,40 – 15.30
Rabu
1
1
1
1
Kamis
Jumat
Id_Pembicara
: PM03
Nama_Pembicara
: Afrizal Zein
Id_Kegiatan
: K500
Nama_Kegiatan
: Workshop / Pameran keagamaan
Minggu
:1
Hari / Shift I . 09.10 – 10.20
Senin
Selasa
Rabu
Kamis
II. 10.20 – 11.40 III. 13.00 – 13.50 IV. 13.50 – 14.40 V. 14,40 – 15.30
1 1 1
Id_Pembicara
: PM04
Nama_Pembicara
: Suparmin
Id_Kegiatan
: K400
Nama_Kegiatan
: Monitoring Kehumasan
Minggu
:1
Hari / Shift
Jumat
Senin
Selasa
Rabu
Kamis
Jumat
I . 09.10 – 10.20 II. 10.20 – 11.40 III. 13.00 – 13.50 IV. 13.50 – 14.40 V. 14,40 – 15.30
1 1 1
Id_Pembicara
: P005
Nama_Pembicara
: Ferimeldi
Id_Kegiatan
: K200
Nama_Kegiatan
: Orientasi dan Evaluasi
Minggu
:1
Hari / Shift I . 09.10 – 10.20
Senin
Selasa
Rabu
Kamis
Jumat
1
II. 10.20 – 11.40 III. 13.00 – 13.50 IV. 13.50 – 14.40 V. 14,40 – 15.30
1 1 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) Id_ Pembicar a PM01 PM01
Nama_ Pembicara Suryadharma Ali Suryadharma Ali
Id_ Kegiatan K300 K300
Kegiatan
Rapat Kerja Rapat Kerja
Minggu
Hari
shift
1
Senin
1
1
Selasa
2
PM01
PM02
Suryadharma Ali Suryadharma Ali Mashuri AM
PM02
Mashuri AM
PM02
Mashuri AM
PM02
Mashuri AM
PM03 PM03 PM03
Afrizal Zein Afrizal Zein Afrizal Zein
K500 K500 K500
PM04
Suparmin
K400
Suparmin
K400
Suparmin
K400
Ferimeldi Ferimeldi Ferimeldi Ferimeldi
K200 K200 K200 K200
PM01
PM04 PM04 PM05 PM05 PM05 PM05
4.2.1.5.
K300 K300 K100 K100 K100 K100
Rapat Kerja Rapat Kerja Koordinas i Koordinas i Koordinas i Koordinas i Workshop Workshop Workshop Monitorin g Monitorin g Monitorin g Orientasi Orientasi Orientasi Orientasi
1
Selasa
3
1
Selasa
4
1
Senin
1
1
Senin
2
1
Rabu
1
1
Rabu
2
1 1 1 1
Jumat Jumat Jumat Rabu
3 4 5 2
1
Rabu
3
1
Rabu
4
1 1 1 1
Selasa Selasa Rabu Rabu
1 2 3 4
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 PM01 PM02 PM03 PM04 PM05
K300 K100 K500 K400 K200
NIlai Fitnes 4 4 3 3 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
permasalahan
ditentukan
yang
ada.
sesuai
Kriteria
dengan
pokok
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
Pembicara PM01 PM02
Pembicara Suryadharma Ali Mashuri
Kegiatan K300
Kegiatan Rapat Kerja
Minggu 1
4
K100
Koordinasi
1
4
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) Id_ Pembicara PM01 PM02
Id_ Kegiatan K300 K100
Minggu
Lingkup
1 1
Internal Internal
Ruang 201 202
Tabel 4.10. Populasi Setelah Crossover Minggu
Lingkup
Hari
Shift
K300
1
Eksternal
Selasa
2
PM01
K300
1
Eksternal
Selasa
3
PM01
K300 K100 K100 K100
1
Eksternal
Selasa
4
1 1 1
Eksternal Eksternal Eksternal
Senin Senin Rabu
1 2 1
Id_
Id_
Pembicara
Kegiatan
PM01
PM02 PM02 PM02
PM02 PM03 PM03 PM03 PM04 PM04 PM04 PM05 PM05 PM05 PM05
K100 K500 K500 K500 K400 K400 K400 K200 K200 K200 K200
1 1 1 1 1 1 1 1 1 1 1
Internal Internal Internal Internal Eksternal Eksternal Eksternal Internal Internal Internal Internal
Rabu Jumat Jumat Jumat Rabu Rabu Rabu Selasa Selasa Rabu Rabu
2 3 4 5 2 3 2 1 2 3 4
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.
Tabel 4.11. Jadwal Kegiatan (Generasi Terakhir) Id_
Nama_
Id_
Pembicara
pembicara
Kegiatan
P001
P002 P002 P002 P002
Suryadharma Ali Suryadharma Ali Suryadharma Ali Suryadharma Ali Mashuri AM Mashuri AM Mashuri AM Mashuri AM
P003 P003 P003 P004 P004 P004 P005 P005 P005 P005
Afrizal Zein Afrizal Zein Afrizal Zein Suparmin Suparmin Suparmin Ferimeldi Ferimeldi Ferimeldi Ferimeldi
P001 P001 P001
Nama_ Kegiatan
Minggu
Lingkup
Hari
Shift
Ruang
K300
Rapat Kerja
1
Internal
Senin
1
201
K300
Rapat Kerja
1
Internal
Selasa
2
201
K300
Rapat Kerja
1
Internal
Selasa
3
201
K300
Rapat Kerja
1
Internal
Selasa
4
201
K100 K100 K100 K100 K500 K500 K500 K400 K400 K400 K200 K200 K200 K200
Koordinasi Koordinasi Koordinasi Koordinasi Workshop Workshop Workshop Kunjungan Kunjungan Kunjungan Orientasi Orientasi Orientasi Orientasi
1 1 1 1 1 1 1 1 1 1 1 1 1 1
Internal Internal Internal Internal Eksternal Eksternal Eksternal Internal Internal Internal Internal Internal Internal Internal
Senin Senin Rabu Rabu Jumat Jumat Jumat Rabu Rabu Rabu Selasa Selasa Rabu Rabu
1 2 1 2 3 4 5 2 3 4 1 2 3 4
202 202 202 202 GL150 GL150 GL150 201 201 201 202 202 202 202
4.2.2. Data Flow Diagram (DFD)
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, lap_jadwal.
data_nilai_fitness,
data_jadwal_valid,
lap_kesediaan,
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.
Id_user Username Password Email Id_pembicara Nama_pembicara Gelar Jabatan Biro Bidang Id_kegiatan Nama_kegiatan Uraian_kegiatan Id_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 Minggu Lingkup Periode Tahun
*
*
*
*
* *
Gambar 4.18. First Normal Form (1NF)
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
ketergantungan
kunci
(non-key)
fungsional
haruslah
sepenuhnya
memiliki
pada
utama/primary key.
Gambar 4.19. Second Normal Form (2NF)
kunci
Nama_Field
Tipe
Panjang field
Keterangan
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
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
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
Id_Ruang
Char
10
Id_Ruang
Nama_ruang
Char
50
Nama_ruang
Gedung
Char
50
Nama Gedung
Int
5
Kapasitas_ruang
Kapasitas
Keterangan
e. Tabel Shift, untuk menyimpan data shift/hari Nama Tabel
: Shift
Primary Key
: Id_Shift
Nama Field
Type
Panjang field
Int
4
Id Shift
Char
10
Keterangan shift
Id_Shift Jam
Keterangan
f. Tabel Biro, untuk menyimpan data Biro Nama Tabel
: Biro
Primary Key
: Id_Biro
Nama Field
Type
Panjang field
Int
4
Id Shift
Char
50
Nama biro
Id_Shift Nama Biro
Keterangan
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
Int
4
Id Gedung
Char
50
Nama Gedung
Id_ Gedung Nama Gedung
Keterangan
i. Tabel Kesediaan, untuk menyimpan data kesediaan waktu Pembicara. Nama Tabel
: Kesediaan
Primary Key
: NoId
Nama Field
Keterangan
Tipe
Panjang
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
j. Tabel Nilai Fitness, untuk menyimpan hasil nilai fitness Nama Tabel
: Nilai Fitness
Primary Key
:-
Nama Field
Type
Panjang field
Int
5
Id kesediaan
Id_pembicara
Char
10
Id pembicara
Id_kegiatan
Char
10
Id kegiatan
Nilai fitness
Int
10
Nilai fitness
NoId
Keterangan
k. Tabel Jadwal, untuk menyimpan jadwal hasil proses Nama Tabel
: Jadwal
Primary Key
:-
Struktur File
:-
Nama Field
Tipe
Panjang field
Int
5
No kesediaan
Id_Pembicara
Char
10
Id Pembicara
Id_Kegiatan
Char
10
Id Kegiatan
Int
5
Minggu Kegiatan
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
NoId
Minggu Hari
Keterangan
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 diharapkan. Hasil tes blackbox terdapat dilampiran.
yang
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. 1. 2. 3. 4. 5. 6. 7. 8.
End If Dim q As String = "select * from user where id_user='" & 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 = "delete from user where id_user='" & txtid.Text & "'" bukaKoneksi() mycmd = New MySqlCommand(q, conn)
9. 10. 11. 12. 13. 14. 15.
mycmd.ExecuteNonQuery() ToolStripButton1_Click(sender, e) Exit Sub Else
myread.Close() bukaKoneksi() 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. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76.
Dim q As String = "select * from user order by id_user 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 txtuser.Focus() myread.Close() End Sub
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. 24. 25. 26.
End Sub Sub ambilkodeakhir() bukaKoneksi() 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
End Sub
End Sub
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 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 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 .Columns(1).Width .Columns(2).Width .Columns(3).Width .Columns(4).Width .Columns(5).Width End With End Sub
= = = = = =
13 25 10 15 20 20
/ / / / / /
100 100 100 100 100 100
* * * * * *
(.Width (.Width (.Width (.Width (.Width (.Width
-
120) 120) 120) 120) 120) 120)
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 : Pertanyaan
Jumlah
Persentase
A. Ya
1
20%
B. Tidak
4
80%
Apakah sistem yang ada saat ini berjalan dengan baik?
2. Pertanyaan 2 : Pertanyaan Apakah sistem
perlu yang
Jumlah
Persentase
dibangun dapat
menunjang pekerjaan anda saat ini? A.Ya
5
100%
B. Tidak
0
0%
3. Pertanyaan 3 : Pertanyaan
Jumlah
Persentase
4
80%
1
20%
Apakah pencarian berkas-berkas yang diperlukan membutuhkan waktu yang lama ? A.Ya B. Tidak
4. Pertanyaan 4 : Pertanyaan
Jumlah
Persentase
Apakah sering terjadi kendala dalam
pembuatan
jadwal
kegiatan ? A.Ya
3
60%
B. Tidak
2
40%
5. Pertanyaan 5 : Pertanyaan
Jumlah
Persentase
5
100%
Apakah yang diharapkan tentang sistem yang akan dibangun? A. Sederhana dan Mudah
digunakan B. Menarik walupun sulit
0
0%
digunakan
LAMPIRAN 5 SURAT PERMOHONAN PENELITIAN
LAMPIRAN 7 PENGUJIAN BLACKBOX
PENGUJIAN BLACKBOX
N0
Rancangan Proses
1.
Username dan password, klik
Hasil Yang Diharapkan Masuk halaman Account user
Hasil
Sesuai Level=
tombol “LOGIN”
User
2.
Klik menu “User”
Menampilkan halaman data user
Sesuai
3.
Klik tombol “Simpan”
Data user yang telah di input
Sesuai
tersimpan didatabase user 4.
Klik tombol “Batal”
Data user batal di input
Sesuai
5.
Klik tombol “Keluar” pada
Admin keluar dari form user
Sesuai
Klik menu “Data” pilih list
Menampilkan halaman data
Sesuai
“Pembicara”
pembicara
Klik tombol “Simpan”
Data pembicara yang di input
“User” 6.
7.
Ket
tersimpan didatabase pembicara
Sesuai
8.
Klik tombol “Batal”
Data pembicara batal di input
Sesuai Form diisi
9.
Klik tombol “Hapus” pada
Data pembicara terhapus
Sesuai
Klik combobox “Cari Nama”
Menampilkan seluruh nama
Sesuai
pada “Pembicara”
pembicara yang telah disimpan
Klik combobox “Biro” pada
Menampilkan seluruh Biro
Sesuai
Menampilkan seluruh bidang
Sesuai
“Pembicara” 10.
11.
“Pembicara” 12.
Klik combobox “Bidang” pada “Pembicara”
13.
Klik tombol “Batal”
Data user batal di input
Sesuai
14.
Klik tombol “Keluar” pada
Admin keluar dari form
Sesuai
“Pembicara”
pembicara
Klik menu “Data” pilih list
Menampilkan halaman data
“Kegiatan”
kegiatan
Klik tombol “Tambah”
Menampilkan form untuk
15.
16.
Sesuai
Sesuai
menambah data kegiatan 15.
Klik tombol “Simpan”
Data telah tersimpan didatabase
Sesuai Form
kegiatan 16
Klik tombol “Edit”
Menampilkan form untuk
diisi Sesuai
mengedit data kegiatan 17.
Klik tombol “Batal”
Data user batal di input
Sesuai
18.
Klik tombol “Hapus” pada
Data pembicara terhapus
Sesuai
Data pembicara batal di input
Sesuai
Menampilkan halaman data ruang
Sesuai
Menampilkan form untuk
Sesuai
“Kegiatan” 19.
Klik tombol “Tutup” pada “Kegiatan”
20.
Klik menu “Data” pilih list “Ruang”
21.
Klik tombol “Tambah”
menambah data ruang 22.
Klik tombol “Simpan”
Data telah tersimpan didatabase
Sesuai Form
ruang 23.
Klik tombol “Edit”
Menampilkan form untuk
diisi Sesuai
mengedit data ruang 24.
Klik tombol “Batal”
Data user batal di input
Sesuai
25.
Klik tombol “Hapus” pada
Data ruang terhapus
Sesuai
Data ruang batal di input
Sesuai
Menampilkan halaman data shift
Sesuai
Menampilkan form untuk
Sesuai
“Ruang” 26.
Klik tombol “Tutup” pada “Ruang”
27.
Klik menu “Data” pilih list “Shift”
28.
Klik tombol “Tambah”
menambah data shift 29.
Klik tombol “Simpan”
Data telah tersimpan didatabase
Sesuai Form
shift 30.
Klik tombol “Edit”
Menampilkan form untuk
diisi Sesuai
mengedit data shift 31.
Klik tombol “Batal”
Data user batal di input
Sesuai
32.
Klik tombol “Hapus” pada
Data shift terhapus
Sesuai
Data shift batal di input
Sesuai
Menampilkan halaman data Biro
Sesuai
Menampilkan form untuk
Sesuai Form
“Shift” 33.
Klik tombol “Tutup” pada “Shift”
34.
Klik menu “Data” pilih list “Biro”
35.
Klik tombol “Tambah”
menambah data Biro 36.
Klik tombol “Simpan”
Data telah tersimpan didatabase Biro
diisi Sesuai
37.
Klik tombol “Edit”
Menampilkan form untuk
Sesuai
mengedit data Biro 38.
Klik tombol “Batal”
Data user batal di input
Sesuai
39.
Klik tombol “Hapus” pada
Data Biro terhapus
Sesuai
Data Biro batal di input
Sesuai
Klik menu “Data” pilih list
Menampilkan halaman data
Sesuai
“Bidang”
bidang
Klik tombol “Tambah”
Menampilkan form untuk
“Biro” 40.
Klik tombol “Tutup” pada “Biro”
41.
42.
Sesuai Form
menambah data bidang 43.
Klik tombol “Simpan”
Data telah tersimpan didatabase
diisi Sesuai
bidang 45.
Klik tombol “Edit”
Menampilkan form untuk
Sesuai
mengedit data bidang 46.
Klik tombol “Batal”
Data user batal di input
Sesuai
47.
Klik tombol “Hapus” pada
Data bidang terhapus
Sesuai
Data bidang batal di input
Sesuai
Klik menu “Data” pilih list
Menampilkan halaman data
Sesuai
“Gedung”
gedung
Klik tombol “Tambah”
Menampilkan form untuk
“bidang” 48.
Klik tombol “Tutup” pada “bidang”
49.
50.
Sesuai Form
menambah data gedung 51.
Klik tombol “Simpan”
Data telah tersimpan didatabase
diisi Sesuai
gedung 52.
Klik tombol “Edit”
Menampilkan form untuk
Sesuai
mengedit data gedung 53.
Klik tombol “Batal”
Data user batal di input
Sesuai
54.
Klik tombol “Hapus” pada
Data gedung terhapus
Sesuai
Data gedung batal di input
Sesuai
Klik menu “Penjadwalan”
Menampilkan halaman data
Sesuai
pilih list “Kesediaan”
kesediaan
Klik tombol “Tambah”
Menampilkan form untuk
“gedung” 55.
Klik tombol “Tutup” pada “gedung ”
56.
57.
Sesuai
menambah data kesediaan 58.
Klik tombol “Simpan”
Data telah tersimpan didatabase
Sesuai Form
kesediaan 59.
Klik tombol “Edit”
Menampilkan form untuk
diisi Sesuai
mengedit data kesediaan 60.
Klik tombol “Batal”
Data user batal di input
Sesuai
61.
Klik tombol “Hapus” pada
Data kesediaan terhapus
Sesuai
Klik combo box “periode”,
Menampilkan halaman periode
Sesuai
pilih periode per bulan
bulan untuk melanjutkan
63.
Klik combobox “Minggu”
Menampilkan minggu
Sesuai
64.
Klik combo box “Tahun”,
Menampilkan halaman tahun
sesuai
pilih tahun
untuk data kesediaan
Klik tombol “Tutup” pada
Data kesediaan batal di input
Sesuai
Klik menu “Penjadwalan”
Menampilkan halaman data Nilai
Sesuai
pilih list “Nilai Fitnes”
Fitness
Klik tombol “Tambah”
Menampilkan form untuk
“kesediaan” 62.
65.
“kesediaan” 66.
67.
Sesuai
menambah data nilai fitness 68.
Klik tombol “Simpan”
Data telah tersimpan didatabase
Sesuai Form
nilai fitness 69.
Klik tombol “Edit”
Menampilkan form untuk
diisi Sesuai
mengedit data nilai fitness 70.
Klik tombol “Batal”
Data user batal di input
Sesuai
71.
Klik tombol “Hapus” pada
Data nilai fitness terhapus
Sesuai
Data nilai fitness batal di input
Sesuai
Klik menu “Penjadwalan”
Menampilkan halaman data
Sesuai
pilih list “Seleksi Jadwal”
seleksi jadwal
Klik tombol “Tambah”
Menampilkan form untuk
“Nilai Fitness” 72.
Klik tombol “Tutup” pada “Nilai Fitness”
73.
74.
Sesuai
menambah data seleksi jadwal 75.
Klik tombol “Simpan”
Data telah tersimpan didatabase
Sesuai Form
seleksi jadwal 76.
Klik tombol “Edit”
Menampilkan form untuk
diisi Sesuai
mengedit data seleksi jadwal 77.
Klik tombol “Batal”
Data user batal di input
Sesuai
78.
Klik tombol “Hapus” pada
Data seleksi jadwal terhapus
Sesuai
Klik combo box “periode”,
Menampilkan halaman periode
Sesuai
pilih periode per bulan
bulan untuk melanjutkan
Klik combobox “Minggu”
Menampilkan minggu
Sesuai
Klik combobox “Tahun”,
Menampilkan halaman tahun
sesuai
Pilih tahun
untuk data seleksi jadwal
Klik tombol “Tutup” pada
Data seleksi jadwal batal di input
Sesuai
Klik menu “Laporan” pilih
Menampilkan form laporan
Sesuai
list “Kesediaan”
kesediaan
Klik combobox “periode”,
Menampilkan halaman periode
pilih periode per bulan
bulan untuk melanjutkan
Klik combobox “Tahun”,
Menampilkan halaman tahun
“Seleksi Jadwal” 79.
80.
81.
“Seleksi Jadwal” 82.
83.
84.
Sesuai
sesuai
85.
Pilih tahun
untuk laporan kesediaan
Klik tombol “OK” pada form
Menampilkan laporan kesediaan
Sesuai
Cetak laporan pembicara
Sesuai
Laporan kesediaan batal di cetak
Sesuai
Klik menu “Laporan” pilih
Menampilkan form laporan
Sesuai
list “Jadwal”
jadwal
Klik combobox “laporan”
Menampilkan seluruh form di
pada form laporan jadwal
laporan jadwal
Klik combobox “periode”,
Menampilkan halaman periode
pilih laporan periode per
bulan untuk laporan jadwal
laporan kesediaan 86.
Klik tombol “Print” pada halaman laporan kesediaan
87.
Klik tombol “Batal” pada halaman laporan kesediaan
88.
89.
90.
Sesuai
Sesuai
bulan 91.
92.
93.
Klik combobox “Tahun”,
Menampilkan halaman tahun
sesuai
Pilih tahun
untuk laporan jadwal
Klik tombol “Ok” untuk
Menampilkan halaman laporan
proses laporan
jadwal per periode atau per tahun
Klik tombol “print” pada
Cetak laporan jadwal
Sesuai
Laporan jadwal batal di cetak
Sesuai
Pilih “Pembicara” pada
Menampilkan form laporan
Sesuai
combobox “Laporan”
pembicara
Klik combobox “pembicara”
Menampilkan seluruh pembicara
Sesuai
Menampilkan seluruh kegiatan
Sesuai
Menampilkan seluruh shift
Sesuai
Sesuai
halaman laporan jadwal 94.
Klik tombol “Batal” pada halaman laporan jadwal
95.
96.
pada form laporan pembicara 97.
Klik combobox “Kegiatan” pada form laporan pembicara
98.
Klik combobox “Shift” pada
form pembicara 99.
Klik combobox “Ruang”
Menampilkan seluruh ruang
Sesuai
Menampilkan halaman laporan
Sesuai
pada form pembicara 100. Klik tombol “Ok” untuk proses laporan pembicara 101. Klik tombol “print” pada
pembicara Cetak laporan pembicara
Sesuai
Laporan pembicara batal di cetak
Sesuai
Menampilkan form laporan
Sesuai
halaman laporan pembicara 102. Klik tombol “Batal” pada halaman laporan pembicara 103. Pilih “Kegiatan” pada combobox “Laporan” di form
kegiatan
laporan jadwal 104. Klik combobox “Kegiatan”
Menampilkan seluruh Kegiatan
Sesuai
Menampilkan seluruh pembicara
Sesuai
Menampilkan seluruh shift
Sesuai
Menampilkan seluruh ruang
Sesuai
Menampilkan halaman laporan
Sesuai
pada form laporan Kegiatan 105. Klik combobox “Pembicara” pada form laporan Kegiatan 106. Klik combobox “Shift” pada form Kegiatan 107. Klik combobox “Ruang” pada form Kegiatan 108. Klik tombol “Ok” untuk proses laporan 109. Klik tombol “print” pada
Kegiatan Cetak laporan kegiatan
Sesuai
Laporan kegiatan batal di cetak
Sesuai
Menampilkan form laporan ruang
Sesuai
Menampilkan seluruh ruang
Sesuai
halaman laporan kegiatan 110. Klik tombol “Batal” pada halaman laporan kegiatan 111. Pilih “Ruang” pada combobox “Laporan” 112. Klik combobox “Ruang”
pada form laporan ruang 113. Klik combobox “Hari” pada
Menampilkan seluruh hari
Sesuai
Menampilkan periode/bulan
Sesuai
Menampilkan tahun
Sesuai
Menampilkan halaman laporan
Sesuai
form laporan ruang 114. Klik combobox “Periode” pada form laporan ruang 115. Klik combobox “Tahun” pada form laporan ruang 116. Klik tombol “Ok” untuk proses laporan ruang 117. Klik tombol “print” pada
ruang Cetak laporan ruang
Sesuai
Laporan ruang batal di cetak
Sesuai
Menampilkan form laporan hari
Sesuai
Menampilkan seluruh hari
Sesuai
Menampilkan seluruh pembicara
Sesuai
Menampilkan seluruh kegiatan
Sesuai
Menampilkan seluruh hari
Sesuai
Menampilkan laporan hari
Sesuai
Cetak laporan hari
Sesuai
Laporan hari batal di cetak
Sesuai
halaman laporan ruang 118. Klik tombol “Batal” pada halaman laporan ruang 119. Pilih “Hari” pada combobox “Laporan” di form laporan jadwal 120. Klik combobox “Hari” pada form laporan hari 121. Klik combobox “Pembicara” pada form laporan hari 122. Klik combobox “Kegiatan” pada form laporan hari 123. Klik combobox “Ruang” pada form laporan hari 124. Klik tombol “Ok” untuk proses laporan hari 125. Klik tombol “print” pada halaman laporan hari 126. Klik tombol “Batal” pada
halaman laporan hari 127. Klik Menu “File” pilih list “EXIT” 128. Klik menu “File” pilih list “LOGOUT”
Menampilkan kembali halaman
Sesuai
login Keluar dari Menu Home
Sesuai