Pengembangan dan Optimasi dari Aplikasi Penjadwalan Sidang Otomatis di Fakultas Teknologi Informasi Universitas Kristen Maranatha dengan Menggunakan Algoritma Genetik.
i Universitas Kristen Maranatha
ABSTRAK
Aplikasi penjadwalan sidang otomatis di Fakultas Teknologi Informasi Universitas Kristen Maranatha ini dibuat dengan tujuan untuk melakukan pengembangan dan optimasi terhadap aplikasi penjadwalan sidang otomatis dengan menggunakan algoritma genetik yang sudah dibuat pada Kerja Praktek sebelumnya. Aplikasi ini bertujuan untuk menjadwalkan sidang Kerja Praktek (KP), Seminar Tugas Akhir (STA), dan Tugas Akhir (TA) secara otomatis dengan menerapkan Algoritma Genetik didalam proses penjadwalannya. Aplikasi diharapkan dapat mempermudah dan mempercepat pekerjaan dari koordinator KP dan TA dari masing-masing jurusan di Fakultas Teknologi Informasi dalam hal pembuatan jadwal sidang KP, STA, dan TA.
Pengembangan dan optimasi dilakukan untuk dapat mempercepat proses penjadwalan dan juga memperbaiki jadwal yang dihasilkannya. Pada aplikasi ini proses penjadwalan dibuat agar dapat menciptakan jadwal yang bukan hanya bebas dari bentrokan tetapi juga nyaman untuk dilakukan oleh orang-orang yang terlibat di dalamnya.
Aplikasi ini dibuat dengan Microsoft Visual Studio 2008. Dalam implementasinya aplikasi yang dibuat menggunakan beberapa class tertentu untuk menyimpan data-data yang diperlukan selama proses penjadwalan. Input dan output dari aplikasi menggunakan file Microsoft Office Excel yang sudah mengikuti format yang ditentukan.
Aplikasi yang telah dibuat sudah diujicoba dengan kasus-kasus penjadwalan yang ekstrim yaitu 364 jadwal dalam waktu 2 minggu. Setelah melewati beberapa ujicoba dan perbaikan aplikasi sudah memberikan hasil penjadwalan dengan bentrokan minimum sebesar 7 bentrokan yang dikarenakan dosen yang bersangkutan tidak memiliki timeslot kosong lagi.
(2)
ii Universitas Kristen Maranatha
ABSTRACT
Automated session scheduling application in the Faculty of Information Technology of Maranatha Christian University has been created in order to perform application development and optimization of automated scheduling using genetic algorithms that have been made on the internship before. This application is intended to schedule Internship, Final Project Seminar, and Final Project Session automatically by applying the genetic algorithm in the process of scheduling. The application is expected to simplify and accelerate the work of Internship and Final Project coordinator from each department in the Faculty of Information Technology in terms of making the schedule of Internship, Final Project Seminar,andFinal Project Session.
Development and optimization was done to expedite the scheduling process and also improves the resulting schedule. In this application the scheduling process was made to create a schedule that not only free from clashes but also convenient to be done by people involved in it.
This application was created using Microsoft Visual Studio 2008. In the implementation, most of data that is needed during the scheduling process in this application was stored in some specific classes. Input and output of this application is using Microsoft Office Excel's file that has followed the prescribed format.
The application has already tested with cases of extreme scheduling consist of 364 session within 2 weeks. After passing through several test and repair scheduling applications already provide results with minimum clashes, there is 7 clashes due to the lecturer in question no longer has an empty timeslot. Keywords: Genetic Algorithms, Scheduling
(3)
iii Universitas Kristen Maranatha
DAFTAR ISI
Abstrak i
Abstract ii
Daftar Isi ii i
Daftar Gambar vii
Dartar Tabel ix
Daftar Program x
Dartar lampiran xii
BAB I.PENDAHULUAN 1
I.1. Latar Belakang 1
I.2. Rumusan Masalah 3
I.3. Tujuan 4
I.4. Batasan Masalah 5
I.5. Sistematika Penulisan 6
BAB II. LANDASAN TEORI 7
II.1. Algoritma Genetik 7
II.1.1. Pengertian Algoritma Genetik 7
II.1.2. Teknik Penggunaan Algoritma Genetik 8 II.1.3. Komponen-komponen dalam Algoritma Genetik 10
II.1.4. Teknik Pengkodean 11
II.1.5. Seleksi 13
II.1.6. Reproduksi 15
II.1.7. Fitness Function 15
II.1.8. Crossover 16
II.1.9. Mutasi 17
II.1.10. Skema 18
II.1.11. Parameter Algoritma Genetik 18
BAB III.ANALISIS dan DESAIN 20
III.1. Analisis 20
III.1.1. Identifikasi Permasalahan 20
(4)
iv Universitas Kristen Maranatha
III.1.2.1. Testcase 21
III.1.2.2. Besar Populasi dan Jumalh Generasi 22 III.1.2.3. Perkembangan Fitness Pada Tiap Generasi 23
III.1.2.4. Individu Dalam Populasi 25
III.1.3. Ulasan Hasil Analisis 26
III.2. Gambaran Keseluruhan 27
III.2.1. Prasyarat Antarmuka Eksternal 27
III.2.2. Antarmuka dengan Pengguna 27
III.2.3. Antarmuka Perangkat Keras 27
III.2.4. Antarmuka Perangkat Lunak 27
III.2.5. Antarmuka Komunikasi 27
III.2.6. Fitur Produk Perangkat Lunak 29
III.3. Disain Perangkat Lunak 30
III.3.1. Pemodelan Perangkat Lunak 30
III.3.1.1. Komponen Perangkat Lunak 30
III.3.1.2. Rancangan Use Case 30
III.3.1.3. Konsep Eksekusi 31
III.3.1.4. Class Diagram 34
III.3.2. Disain Penyimpanan Data 37
III.3.2.1. Data Availlability 37
III.3.2.2. Data Populasi 40
III.3.3. Disain Antar Muka 42
III.3.4. Rancangan Algoritma Genetik 45
III.3.4.1. Pemodelan Kromosom 45
III.3.4.2. Inisialisasi Populasi 46
III.3.4.3. Constraints 47
III.3.4.3.1. Hard Constarints 47
III.3.4.3.2. Soft Constarints 48
III.3.4.4. Fungsi Fitness 48
III.3.4.5. Fungsi Perbaikan 49
III.3.4.6. Crossover 49
III.3.4.7. Seleksi 50
(5)
v Universitas Kristen Maranatha
BAB IV. PENGEMBANGAN PERANGKAT LUNAK 52
IV.1. Implementasi Class/Modul 52
IV.1.1. Pembagian Class 52
IV.1.2. Penjelasan Implementasi Tiap Class 53
IV.1.2.1. Availlability 53
IV.1.2.2. Komponen Sidang 62
IV.1.2.3. Dosen 63
IV.1.2.4. Mahasiswa 63
IV.1.2.5. Ruang 63
IV.1.2.6. Availlability Sidang 64
IV.1.2.7. Scheduling 64
IV.1.2.8. Genetik Process 68
IV.1.2.9. Populasi 84
IV.1.2.10. Individu 89
IV.1.2.11. Kromosom 100
IV.2. Implementasi Penyimpanan Data 101
IV.2.1. Data Availlability 101
IV.2.2. Data Populasi 107
IV.3. Implementasi Antar Muka 110
IV.3.1. Antar Muka Pengguna 110
IV.3.1.1. MainForm 110
IV.3.1.2. GeneticProcess 111
IV.3.2. Format Excel 114
IV.3.2.1. Input 114
IV.3.2.2. Output 117
IV.4. Perubahan Yang Terjadi Saat Implementasi 120
BAB V. TESTING DAN EVALUASI SISTEM 122
V.1. Rencana Pengujian 122
V.1.1. Test Case 122
V.2. Pelaksanaan Pengujian 123
V.2.1. Black Box 123
V.2.1.1. Testing Berbagai Jumlah Sidang 123 V.2.1.2. Testing Berbagai Parameter Genetik 125
(6)
vi Universitas Kristen Maranatha
V.2.1.2.2. Probabilitas Mutasi 126
V.2.1.2.3. Konstanta Hard & Soft Fitness 127 V.2.1.3. Testing Pengaruh Fungsi Perbaikan 129 V.2.1.4. Testing Rumus Untuk Seleksi Populasi 130
BAB VI. KESIMPULAN DAN SARAN 136
VI.1. Kesimpulan 136
VI.2. Saran 138
(7)
vii Universitas Kristen Maranatha
DAFTAR GAMBAR
Gambar 2.1 Ilustrasi Komponen Algoritma Genetik 10
Gambar 2.2 Kromosom Binary Encoding 11
Gambar 2.3 Kromosom Permutaion Encoding 11
Gambar 2.4 Kromosom Value Encoding 12
Gambar 2.5 Kromosom Tree Encoding 12
Gambar 2.6 Diagram Roulete Wheel 13
Gambar 2.7 Situasi sebelum menentukan peringkat (dari fitnesses) 14 Gambar 2.8 Situasi setelah menentukan peringkat (dari nomor urutan) 14
Gambar 2.9 Single Point Crossover 16
Gambar 2.10 Two Point Crossover 16
Gambar 2.11 Uniform Crossover 17
Gambar 2.12 Arithmetic Crossover 17
Gambar 3.1 Testing Populasi Akhir 25
Gambar 3.2 Use Case 30
Gambar 3.3 Activity Diagram Input File & Parameter 31 Gambar 3.4 Activity Diagram Penyusunana Jadwal 32
Gambar 3.5 Class Diagram 34
Gambar 3.6 Class Diagram A 35
Gambar 3.7 Class Diagram B 36
Gambar 3.8 Data Availlability 37
Gambar 3.9 Data Populasi 38
Gambar 3.10 Main Form 42
Gambar 3.11 Setting 43
Gambar 3.12 Form Genetik 44
Gambar 3.13 Permodelan Kromosom 45
Gambar 3.14 Crossover 49
Gambar 4.1 Contoh Data Availlability 101
Gambar 4.2 Contoh Data AvlDosen 102
Gambar 4.3 Contoh Data AvlMahasiswa 103
(8)
viii Universitas Kristen Maranatha
Gambar 4.5 Contoh Data AvlSidang 105
Gambar 4.6 Contoh Data SortedAvlSidang 106
Gambar 4.7 Contoh Data Populasi 107
Gambar 4.8 Contoh Data Indv 108
Gambar 4.9 Contoh Data Chromosome 109
Gambar 5.1Grafik Perkembangan Jadwal per Generasi 129
Gambar 5.2 Grafik Perkembangan Fitness 1.1 130
Gambar 5.3 Grafik Perkembangan Fitness 1.2 131
Gambar 5.4 Grafik Perkembangan Fitness 2.1 132
Gambar 5.5 Grafik Perkembangan Fitness 2.2 133
Gambar 5.6 Grafik Perkembangan Total Fitness 134
(9)
ix Universitas Kristen Maranatha
DAFTAR TABEL
Tabel 3.1 Test Perkembangan Generasi 100/1% (KP) 22 Tabel 3.2 Testing Perkembangan Generasi 100/1% (KP) 23 Tabel 3.3 Testing Perkembangan Generasi 100/2% (KP) 23 Tabel 3.4 Testing Perkembangan Generasi 200/1% (KP) 24 Tabel 3.5 Testing Perkembangan Generasi 200/2% (KP) 24
Tabel 4.1 Pembagian Class 52
Tabel 4.2 Tabel Excel Daftar Sidang 114
Tabel 4.3 Tabel Excel Availability Dosen 115
Tabel 4.4 Tabel Excel Availability Mahasiswa 116
Tabel 4.5 Tabel Excel Availability Ruangan 116
Tabel 4.6 Tabel Excel Jadwal Sidang 117
Tabel 4.7 Tabel Excel Availlability Dosen 118
Tabel 4.8 Tabel Excel Availlability Mahasiswa 118
Tabel 4.9 Tabel Excel Availlability Ruang 118
Tabel 4.10 Tabel Excel Availlability Sidang 119
Tabel 4.11 Tabel Excel Populasi 119
Tabel 4.12 Tabel Excel Track 119
Tabel 4.13 Perbandingan Aplikasi di Kerja Praktek dan Tugas Akhir 120
Tabel 5.1 Test Sidang Big – 364 Sidang 123
Tabel 5.2 Test Sidang Medium – 300 Sidang 123
Tabel 5.3 Test Sidang Small – 200 Sidang 124
Tabel 5.4 Test Besar Populasi 50, Prob Mutasi 5%, ConstHFSF 10.0 125 Tabel 5.5 Test Besar Populasi 100, Prob Mutasi 5%, ConstHFSF 10.0 125 Tabel 5.6 Test Besar Populasi 100, Prob Mutasi 2%, ConstHFSF 10.0 126 Tabel 5.7 Test Besar Populasi 100, Prob Mutasi 5%, ConstHFSF 10.0 126 Tabel 5.8 Test Besar Populasi 100, Prob Mutasi 5%, ConstHFSF 0.1 127 Tabel 5.9 Test Besar Populasi 100, Prob Mutasi 5%, ConstHFSF 1.0 127 Tabel 5.10 Test Besar Populasi 100, Prob Mutasi 5%, ConstHFSF 5.0 128 Tabel 5.11 Test Besar Populasi 100, Prob Mutasi 5%, ConstHFSF 10.0 128
(10)
x Universitas Kristen Maranatha
DAFTAR PROGRAM
Program 2.1 Function GenetikAlgorithm 7
Program 2.2 Function Reproduce 8
Program 4.1 Availlability 53
Program 4.2 GenerateAvlDosen 55
Program 4.3 GenerateAvlMhs 56
Program 4.4 GenerateAvlRuang 57
Program 4.5 GenerateDaftarSidang 58
Program 4.6 GenerateAvlSidang 60
Program 4.7 SortAvlSidang 61
Program 4.8 releaseObject 62
Program 4.9 KomponenSidang 62
Program 4.10 Dosen 63
Program 4.11 Mahasiswa 63
Program 4.12 Ruang 63
Program 4.13 AvaillabilitySidang 64
Program 4.14 Scheduling 64
Program 4.15 NewSchedule 65
Program 4.16 GreedyScheduling 65
Program 4.17 DistributeSidang 67
Program 4.18 GeneticProcess 68
Program 4.19 GeneticProcessConstructor 70
Program 4.20 Genetic_Shown 71
Program 4.21 GeneticThread 71
Program 4.22 SaveThread 72
Program 4.23 SaveFile 73
Program 4.24 SaveAvaillability 76
Program 4.25 SavePop 77
Program 4.26 SaveTmTable 79
Program 4.27 SaveTrack 79
Program 4.28 SaveTrack 81
(11)
xi Universitas Kristen Maranatha
Program 4.30 refreshTimer_Tick 82
Program 4.31 StopContinue 82
Program 4.32 Save 83
Program 4.33 saveTimer_Tick 83
Program 4.34 Populasi 84
Program 4.35 PopulasiConstructor 85
Program 4.36 GenerateFirstPop 85
Program 4.37 Reproduce 86
Program 4.38 Crossover 86
Program 4.39 Mutation 87
Program 4.40 SortIndividuByFitness 88
Program 4.41 Individu 89
Program 4.42 IndividuConstructor 90
Program 4.43 FixAndFitnessProcedure 90
Program 4.44 HardFitnessFunction 91
Program 4.45 HardFitnessFunction2 92
Program 4.46 SoftFitnessFunction 94
Program 4.47 FixScheduleHard 97
Program 4.48 FixScheduleSoft 99
Program 4.49 InsertChromosome 99
Program 4.50 Kromosom 100
(12)
xii Universitas Kristen Maranatha
DAFTAR LAMPIRAN
Format Input Excel Daftar Sidang L01
Format Input Excel Availability Dosen L02
Format Input Excel Availability Mahasiswa L03
Format Input Excel Availability Ruangan L04
Output Jadwal Sidang L05
Output Availlability Dosen L06
Output Availlability Mahasiswa L07
Output Availlability Ruang L08
Output Availlability Sidang L09
Output Populasi L10
(13)
1 Universitas Kristen Maranatha
BAB I
PENDAHULUAN
I.1. Latar Belakang
Pada penelitian untuk kerja praktek yang dilakukan sebelumnya telah dibuat sebuah aplikasi penjadwalan sidang otomatis dengan menggunakan algoritma genetik yang bertujuan untuk dapat membantu melakukan penjadwalan sidang Kerja Praktek (KP), Seminar Tugas Akhir (STA), dan Tugas Akhir (TA) berskala besar yang dapat mengatur jadwal yang sedemikian rupa sehingga dapat menghindarkan hal-hal yang tidak diinginkan seperti bentrokan-bentrokan, dan memenuhi batasan-batasan lainnya.
Penjadwalan untuk sidang bukanlah hal yang mudah, karena setiap sidang memiliki batasan-batasan yang terbentuk dari kombinasi ketersediaan waktu dari mahasiswa, dan dua sampai empat orang dosen, yang masing-masing memiliki ketersediaan waktu yang berbeda-beda.
Pada aplikasi kerja praktek yang telah dibuat sebelumnya terdapat beberapa hal yang harus diperhatikan dalam pembuatan jadwal sidang, antara lain:
1. Sidang dibagi menjadi 3 jenis, yaitu KP, STA, dan TA. Sidang TA sendiri dibagi menjadi 2 tahap yaitu Prasidang, dan USTA(Ujian Sidang Tugas Akhir). Sidang KP, Prasidang, dan USTA berlangsung selama 2 jam, sedangkan sidang STA berlangsung selama 1 jam.
2. Mahasiswa mengikuti sidang setelah mengajukan form pernyataan siap sidang.
3. Dosen dapat berlaku sebagai pembimbing atau penguji dalam sebuah sidang.
4. Ruang sidang adalah ruang dimana sidang dapat dilakukan, biasanya memakai ruang rapat, meeting room, MITC, dan ruang lab jika ketiganya sedang terpakai.
5. Waktu sidang ditetapkan berdasarkan kesanggupan dari mahasiswa, dan dosen yang terlibat di dalamnya.
(14)
2 Universitas Kristen Maranatha Dari komponen-komponen di atas, dapat dilihat bahwa penjadwalan sidang memerlukan informasi mengenai event-event sidang dan siapa saja yang terlibat di dalamnya, data ketersediaan waktu dari mahasiswa, data ketersediaan waktu dari dosen, dan data ketersediaan waktu dari ruangan. Untuk mempermudah pihak koordinator KP maupun TA, maka sebagian besar input dilakukan dengan mengimport file Microsoft Office Excel dengan format yang sudah ditentukan. Penyusunan jadwal sidang dilakukan secara otomatis dengan menggunakan algoritma genetik oleh sistem setelah komponen masukan diberikan.
Sebagian besar input dilakukan dengan menggunakan file excel yang
diimport ke dalam aplikasi. Agar program dapat berjalan dengan baik, maka penulisannya harus mengikuti format yang telah ditentukan. Pada aplikasi ini penyimpanan data tidak menggunakan database, sehingga seluruh data yang diperlukan akan disimpan di memori. Penyimpanan data dilakukan dengan menggunakan struktur data yang sebagian besar berbentuk array dan matriks.
Sebagian dari realisasi disain antar muka pengguna tidak berjalan dengan baik, contohnya seperti progress barr dan user interface untuk melihat nilai
fitness dari generasi sekarang pada Form Genetik. Hal ini kemungkinan dikarenakan proses yang terlalu sibuk dari operasi genetik, sehingga mengganggu proses antarmuka pengguna yang dilakukan.
Meskipun pada aplikasi sebelumnya telah dilakukan berbagai usaha dalam optimasi penjadwalan dengan algoritma genetik dan telah dapat mengurangi hampir seluruh bentrokan pada kasus penjadwalan yang ekstrim, tetapi aplikasi sebelumnya hanya menyelesaikan permasalahan yang terjadi pada hard constraints sedangkan permasalahan yang terjadi pada Soft Constraints belum ditanggulangi lebih lanjut.
(15)
3 Universitas Kristen Maranatha Berikut ini adalah contoh dari Soft Constraints sebagai batasan-batasan yang alangkah baiknya jika dapat dipenuhi, yang dalam TA ini akan dikaji dalam penelitian yang dilakukan yaitu:
1. Penyusunan jadwal sidang memperhatikan banyaknya sidang yang dilakukan oleh seorang dosen dalam satu hari agar tidak terlalu banyak.
2. Penyusunan jadwal sidang memperhatikan jeda waktu sidang yang dilakukan oleh seorang dosen dalam satu hari agar dapat dipadatkan.
3. Penyusunan jadwal sidang memperhatikan ruang sidang dimana seorang dosen melakukan sidang dalam satu hari agar dosen tersebut tidak melakukan terlalu banyak perpindahan ruangan.
4. Penyusunan jadwal sidang memperhatikan keefektifan penggunaan ruang sidang agar tidak terlalu banyak penggunaan ruangan yang berbeda-beda.
Aplikasi yang dibuat pada TA ini merupakan usaha pengembangan dan optimasi dari aplikasi penjadwalan sidang otomatis dengan menggunakan algoritma genetik yang dibuat dalam kerja praktek sebelumnya.
I.2. Rumusan Masalah
Aplikasi penjadwalan sidang KP, STA, dan TA dengan menggunakan algoritma genetik yang dibuat dalam kerja praktek sebelumnya masih jauh dari sempurna. Berikut ini adalah permasalahan yang harus dipecahkan untuk pengembangan lebih lanjut dari aplikasi ini:
1. Bagaimana melakukan optimasi terhadap proses genetik yang telah dibuat sehingga dapat menghasilkan sistem yang dapat menghasilkan jadwal yang optimal dalam waktu eksekusi yang cepat.
2. Fitness Function seperti apa yang harus dibuat sehingga dapat mempertimbangkan bukan hanya hard constraints tetapi juga Soft Constraints
agar dapat menciptakan jadwal yang bukan hanya bebas dari bentrokan tetapi juga nyaman untuk dilakukan oleh orang-orang yang terlibat di dalamnya.
(16)
4 Universitas Kristen Maranatha
3. Bagaimana membuat User interface yang dapat menampilkan perkembangan dari nilai fitness pada generasi sekarang agar pengguna dapat memantau proses penjadwalan yang berlangsung dan mengetahui sudah sejauh apa perkembangan dari jadwal yang disusun.
4. Bagaimana cara menjadwalkan sidang untuk sebuah kelompok mahasiswa yang memiliki topik yang sama dimana sidang harus dijadwalkan secara berurutan dengan baik tanpa mengganggu atau menurunkan efisiensi dari proses genetik yang dilakukan.
I.3. Tujuan
Tujuan dari Tugas Akhir ini adalah melakukan pengembangan dan optimasi untuk aplikasi penjadwalan sidang otomatis dengan menggunakan algoritma genetik yang dibuat dalam kerja praktek sebelumnya. Hal-hal ini meliputi:
1. Melakukan optimasi terhadap proses genetik yang telah dibuat sehingga dapat menghasilkan sistem yang dapat menghasilkan jadwal yang optimal dalam waktu eksekusi yang cepat.
2. Membuat Fitness Function yang dapat mempertimbangkan Soft Constraints
sehingga dapat menciptakan jadwal yang nyaman untuk dilakukan oleh orang-orang yang terlibat di dalamnya.
3. Membuat User interface yang dapat menampilkan perkembangan dari nilai
fitness pada generasi saat itu agar pengguna dapat memantau proses penjadwalan yang berlangsung dan mengetahui sudah sejauh apa perkembangan dari jadwal yang disusun.
4. Melakukan penjadwalan sidang untuk sebuah kelompok mahasiswa memiliki topik yang sama secara berurutan dalam kurun waktu tertentu tanpa mengganggu atau menurunkan efisiensi dari proses genetik yang dilakukan.
(17)
5 Universitas Kristen Maranatha
I.4. Batasan-Batasan
Pada pengembangan dan optimasi dari aplikasi penjadwalan sidang otomatis dengan menggunakan algoritma genetik ini ditetapkan beberapa batasan masalah yaitu:
1. Aplikasi ini membuat jadwal sidang KP, STA, dan TA secara otomatis untuk Fakultas Teknologi Informasi Universitas Kristen Maranatha dengan menggunakan metode algoritma genetik.
2. Data input yang diberikan untuk diolah adalah berupa file Microsoft Office Excel yang sudah merupakan data lengkap yang dibutuhkan untuk membuat jadwal sidang yang meliputi:
a) Ketersediaan waktu dari tiap-tiap Dosen yang akan melakukan sidang.
b) Ketersediaan waktu dari tiap-tiap Mahasiswa yang akan disidang.
c) Ketersediaan waktu dari tiap-tiap Ruangan dapat digunakan untuk melakukan sidang.
d) Daftar Sidang beserta keterangan lengkapnya berupa, data mahasiswa, durasi sidang tersebut, pembimbing 1 dan 2, penguji 1 dan 2.
e) File Microsoft Office Excel yang dijadikan input file sudah mengikuti format yang ditentukan.
3. Agar aplikasi dapat berjalan dengan baik maka file-file Microsoft Office Excel yang diinput harus mengikuti format yang ditentukan dan beberapa syarat lainnya.
(18)
6 Universitas Kristen Maranatha
I.5. Sistematika Penulisan
BAB I: PENDAHULUAN
Pada bab ini akan dijelaskan mengenai faktor pendorong dibuatnya Tugas Akhir ini, permasalahan yang dihadapi, beserta tujuannya.
BAB II: LANDASAN TEORI
Pada bab ini akan dijelaskan mengenai teori teori pendukung yang diambil dalam melaksanakan Tugas Akhir ini.
BAB III: ANALISIS DAN DISAIN
Pada bab ini akan dijelaskan mengenai analisis dan disain dari perangkat lunak yang akan dibuat.
BAB IV: PENGEMBANGAN PERANGKAT LUNAK
Pada bab ini akan dijelaskan mengenai apa saja yang dilakukan selama tahap pengembangan dan implementasi perangkat lunak.
BAB V: TESTING DAN EVALUASI SISTEM
Pada bab ini akan dijelaskan mengenai testing apa saja yang dilakukan kepada perangkat lunak dan apa hasilnya.
BAB VI: KESIMPULAN DAN SARAN
Pada bab ini akan dijelaskan mengenai kesimpulan yang didapat selama tahap implementasi dan testing, dan juga saran apa yang dapat diberikan.
(19)
136 Universitas Kristen Maranatha
BAB VI
KESIMPULAN DAN SARAN
VI.1.
Kesimpulan
Berdasarkan hasil analisis yang dilakukan pada pembangunan aplikasi penjadwalan sidang KP, STA, dan TA dengan menggunakan algoritma genetik yang dilakukan pada saat Tugas Akhir ini, dapat diambil kesimpulan sebagai berikut.
1. Dengan menggunakan Algoritma Genetik, aplikasi yang dibuat dapat
meminimalkan bentrokan yang terjadi pada penyusunan jadwal sidang KP, STA, dan TA. Baik dalam hal bentrokan waktu orang-orang yang terlibat pada tiap-tiap sidang, tempat, maupun dalam hal ketersediaan waktu dari
masing-masing komponen. Berdasarkan hasil ujicoba dengan test case yang
dibuat aplikasi dapat memberikan hasil penjadwalan dengan bentrokan minimum sebesar 7 bentrokan yang dikarenakan dosen yang bersangkutan
tidak memiliki timeslot kosong lagi.
2. Dalam menggunakan aplikasi ini, perubahan parameter-parameter genetik
memberikan pengaruh yang signifikan terhadap performa dari aplikasi. Dari testing yang dilakukan, didapat bahwa terdapat dua buah cara untuk membuat jadwal yang lebih baik, yaitu dengan cara memperbesar populasi atau memperbesar jumlah generasi. Namun keduanya akan memperlambat waktu penjadwalan.
3. Berdasarkan hasil ujicoba dengan test case yang dibuat parameter-parameter
yang sampai saat ini dianggap yang terbaik adalah Besar Populasi antara 50 - 100 individu per populasi, dan Probabilitas Mutasi antara 2% - 5%. Sedangkan nilai fitness akan terus membaik seiring bertambahnya jumlah generasi.
(20)
137 Universitas Kristen Maranatha
4. Jumlah pengurangan bentrokan per generasi yang terjadi pada tahap awal
proses genetik sampai pada tahap akhirnya menurun drastis. Sehingga butuh waktu yang lama bagi aplikasi ini untuk menghilangkan seluruh bentrokan. Maka dari itu dibuat fungsi perbaikan yang diharapkan akan dapat
memperbaiki bentrokan yang terjadi karena proses crossover atau mutasi
dilakukan.
5. Algoritma Genetik sangat dipengaruhi oleh fungsi random, sehingga pada
kasus yang sama, dan parameter yang sama, hasil dan performa dari aplikasi dapat berbeda-beda.
6. Dengan metode seleksi elitisme maka pada tiap generasi nilai fitness terbaik
yang didapat akan selalu lebih baik atau sama dengan generasi sebelumnya.
7. Pada program yang melakukan proses yang sangat sibuk dan sumber daya
yang besar seperti proses genetik sebaiknya proses tersebut dilakukan pada
thread yang berbeda sehingga tidak mengganggu jalannya antarmuka pengguna.
8. Implementasi Soft Fitness yang dilakukan harus diperhatikan dengan baik
karena bila pengaruhnya terlalu besar maka ia akan merusak Hard
Constraints. Tetapi jika pengaruhnya terlalu kecil maka
kromosom-kromosom yang membawa sifat baik bagi Soft Constraint akan terabaikan
dan menghilang ditengah-tengah proses genetik.
9. Penjadwalan sidang untuk grup mahasiswa yang tidak dapat dilakukan
dengan baik pada program yang dibuat pada Kerja Praktek sebelumnya sudah dapat diatasi dengan cara menyatukannya menjadi satu buah sidang dengan durasinya yang merupakan penambahan durasi seluruh sidang grup tersebut.
10.Pengimplementasian penyimpanan data dengan menggunakan class dan
objek sangat membantu dalam mengurangi kesalahan dalam pengembangan aplikasi.
11.Pada ketiga buah rumus perhitungan total fitness yang telah diujicoba pada
tahap testing dan evaluasi sistem dapat diambil kesimpulan bahwa rumus ketiga merupakan rumus yang paling baik dan stabil.
(21)
138 Universitas Kristen Maranatha
VI.2.
Saran
Pengembangan dari aplikasi penjadwalan sidang KP, STA, dan TA dengan menggunakan algoritma genetik ini masih jauh dari sempurna. Berikut ini adalah saran-saran untuk pengembangan lebih lanjut adalah sebagai berikut:
1. Perlu dilakukan optimasi terhadap proses genetik yang telah dibuat sehingga
dapat menghasilkan sistem yang dapat menghasilkan penjadwalan yang optimal dalam waktu eksekusi yang cepat.
2. Perlu dicari metode yang dapat memperlambat terjadinya populasi yang
homogen, tanpa memperlambat perkembangan fitness dalam populasi. Sehingga jumlah pengurangan bentrokan dari generasi ke generasi yang terjadi dari tahap awal proses genetik sampai pada tahap akhirnya tetap stabil, dan dapat mempercepat proses genetik untuk dapat mencapai solusi yang optimal.
3. Cara optimasi yang masih dapat dicoba adalah dengan memodifikasi seleksi
yang digunakan seperti merubah berapa banyak jumlah individu lama yang disalin dalam elitisme atau merubah metodenya sendiri.
4. Cara optimasi yang masih dapat dicoba adalah dengan memecah proses
genetik itu sendiri menjaadi beberapa thread dan menyatukan hasilnya kenbali setiap beberapa generasi sehingga dapat didapatkan individu-individu yang lebih beragam untuk diproses lebih lanjut.
(22)
Universitas Kristen Maranatha
DAFTAR PUSTAKA
Albahari, Joseph. (2010). EBook: Threading in C#. O’Reilly Media, Inc. Website:
http://www.albahari.com/threading/ Tanggal Akses: 20 April 2011 C# Excel Tutorial. Website:
http://csharp.net-informations.com/excel/csharp-excel-tutorial.htm Tanggal Akses: 17 Maret 2010.
Buckles, Bill P and Petry, Frederick P. (1992). Genetic Algorithms. California: KNI, Inc.
Franciska. (2007). Skripsi: Penjadwalan Ujian Mata Kuliah Dengan Menggunakan Algoritma Memetic. Bandung: Universitas Katolik Parahyangan.
Gandwinatan, Andy. (2008). Laporan Tugas Akhir: Penerapan Algoritma Genetik untuk Aplikasi Penjadwalan Kuliah di Fakultas. Bandung: Universitas Kristen Maranatha.
Gen Mitsuo and Cheng Runwei. (1997). Genetic Algorithms and Engineering Design. New York: John Wiley & Sons, Inc.
Mitchell, Tom Michael. (1997). Machine Learning. Singapore: The McGraw-Hill Companies, Inc.
Nugraha, Ivan. (2008). Jurnal: Aplikasi Algoritma Genetik Untuk Optimasi Penjadwalan Kegiatan Belajar Mengajar. Bandung: Institut Teknologi Bandung.
Obitko, Marek. (1998). Website: http://www.obitko.com/tutorials/genetic-algorithms/index.php. Tanggal Akses: 17 Maret 2010.
Setia Negara, Guntur. (2006). Skripsi: Penjadwalan Ujian Kuliah MKU Dengan Algoritma Genetik. Bandung: Universitas Katolik Parahyangan.
Widjaja, Andi Irvan. (2010). Laporan Kerja Praktek: Aplikasi Penjadwalan Sidang Otomatis dengan Menggunakan Genetic Algorithm. Bandung: Universitas Kristen Maranatha.
(1)
5 Universitas Kristen Maranatha I.4. Batasan-Batasan
Pada pengembangan dan optimasi dari aplikasi penjadwalan sidang otomatis dengan menggunakan algoritma genetik ini ditetapkan beberapa batasan masalah yaitu:
1. Aplikasi ini membuat jadwal sidang KP, STA, dan TA secara otomatis untuk Fakultas Teknologi Informasi Universitas Kristen Maranatha dengan menggunakan metode algoritma genetik.
2. Data input yang diberikan untuk diolah adalah berupa file Microsoft Office Excel yang sudah merupakan data lengkap yang dibutuhkan untuk membuat jadwal sidang yang meliputi:
a) Ketersediaan waktu dari tiap-tiap Dosen yang akan melakukan sidang. b) Ketersediaan waktu dari tiap-tiap Mahasiswa yang akan disidang.
c) Ketersediaan waktu dari tiap-tiap Ruangan dapat digunakan untuk melakukan sidang.
d) Daftar Sidang beserta keterangan lengkapnya berupa, data mahasiswa, durasi sidang tersebut, pembimbing 1 dan 2, penguji 1 dan 2.
e) File Microsoft Office Excel yang dijadikan input file sudah mengikuti format yang ditentukan.
3. Agar aplikasi dapat berjalan dengan baik maka file-file Microsoft Office Excel yang diinput harus mengikuti format yang ditentukan dan beberapa syarat lainnya.
(2)
6 Universitas Kristen Maranatha I.5. Sistematika Penulisan
BAB I: PENDAHULUAN
Pada bab ini akan dijelaskan mengenai faktor pendorong dibuatnya Tugas Akhir ini, permasalahan yang dihadapi, beserta tujuannya.
BAB II: LANDASAN TEORI
Pada bab ini akan dijelaskan mengenai teori teori pendukung yang diambil dalam melaksanakan Tugas Akhir ini.
BAB III: ANALISIS DAN DISAIN
Pada bab ini akan dijelaskan mengenai analisis dan disain dari perangkat lunak yang akan dibuat.
BAB IV: PENGEMBANGAN PERANGKAT LUNAK
Pada bab ini akan dijelaskan mengenai apa saja yang dilakukan selama tahap pengembangan dan implementasi perangkat lunak.
BAB V: TESTING DAN EVALUASI SISTEM
Pada bab ini akan dijelaskan mengenai testing apa saja yang dilakukan kepada perangkat lunak dan apa hasilnya.
BAB VI: KESIMPULAN DAN SARAN
Pada bab ini akan dijelaskan mengenai kesimpulan yang didapat selama tahap implementasi dan testing, dan juga saran apa yang dapat diberikan.
(3)
136 Universitas Kristen Maranatha
BAB VI
KESIMPULAN DAN SARAN
VI.1.Kesimpulan
Berdasarkan hasil analisis yang dilakukan pada pembangunan aplikasi penjadwalan sidang KP, STA, dan TA dengan menggunakan algoritma genetik yang dilakukan pada saat Tugas Akhir ini, dapat diambil kesimpulan sebagai berikut.
1. Dengan menggunakan Algoritma Genetik, aplikasi yang dibuat dapat meminimalkan bentrokan yang terjadi pada penyusunan jadwal sidang KP, STA, dan TA. Baik dalam hal bentrokan waktu orang-orang yang terlibat pada tiap-tiap sidang, tempat, maupun dalam hal ketersediaan waktu dari masing-masing komponen. Berdasarkan hasil ujicoba dengan test case yang dibuat aplikasi dapat memberikan hasil penjadwalan dengan bentrokan minimum sebesar 7 bentrokan yang dikarenakan dosen yang bersangkutan tidak memiliki timeslot kosong lagi.
2. Dalam menggunakan aplikasi ini, perubahan parameter-parameter genetik memberikan pengaruh yang signifikan terhadap performa dari aplikasi. Dari testing yang dilakukan, didapat bahwa terdapat dua buah cara untuk membuat jadwal yang lebih baik, yaitu dengan cara memperbesar populasi atau memperbesar jumlah generasi. Namun keduanya akan memperlambat waktu penjadwalan.
3. Berdasarkan hasil ujicoba dengan test case yang dibuat parameter-parameter yang sampai saat ini dianggap yang terbaik adalah Besar Populasi antara 50 - 100 individu per populasi, dan Probabilitas Mutasi antara 2% - 5%. Sedangkan nilai fitness akan terus membaik seiring bertambahnya jumlah generasi.
(4)
137 Universitas Kristen Maranatha
4. Jumlah pengurangan bentrokan per generasi yang terjadi pada tahap awal proses genetik sampai pada tahap akhirnya menurun drastis. Sehingga butuh waktu yang lama bagi aplikasi ini untuk menghilangkan seluruh bentrokan. Maka dari itu dibuat fungsi perbaikan yang diharapkan akan dapat memperbaiki bentrokan yang terjadi karena proses crossover atau mutasi dilakukan.
5. Algoritma Genetik sangat dipengaruhi oleh fungsi random, sehingga pada kasus yang sama, dan parameter yang sama, hasil dan performa dari aplikasi dapat berbeda-beda.
6. Dengan metode seleksi elitisme maka pada tiap generasi nilai fitness terbaik yang didapat akan selalu lebih baik atau sama dengan generasi sebelumnya. 7. Pada program yang melakukan proses yang sangat sibuk dan sumber daya
yang besar seperti proses genetik sebaiknya proses tersebut dilakukan pada
thread yang berbeda sehingga tidak mengganggu jalannya antarmuka pengguna.
8. Implementasi Soft Fitness yang dilakukan harus diperhatikan dengan baik karena bila pengaruhnya terlalu besar maka ia akan merusak Hard Constraints. Tetapi jika pengaruhnya terlalu kecil maka kromosom-kromosom yang membawa sifat baik bagi Soft Constraint akan terabaikan dan menghilang ditengah-tengah proses genetik.
9. Penjadwalan sidang untuk grup mahasiswa yang tidak dapat dilakukan dengan baik pada program yang dibuat pada Kerja Praktek sebelumnya sudah dapat diatasi dengan cara menyatukannya menjadi satu buah sidang dengan durasinya yang merupakan penambahan durasi seluruh sidang grup tersebut. 10.Pengimplementasian penyimpanan data dengan menggunakan class dan
objek sangat membantu dalam mengurangi kesalahan dalam pengembangan aplikasi.
11.Pada ketiga buah rumus perhitungan total fitness yang telah diujicoba pada tahap testing dan evaluasi sistem dapat diambil kesimpulan bahwa rumus ketiga merupakan rumus yang paling baik dan stabil.
(5)
138 Universitas Kristen Maranatha VI.2.
Saran
Pengembangan dari aplikasi penjadwalan sidang KP, STA, dan TA dengan menggunakan algoritma genetik ini masih jauh dari sempurna. Berikut ini adalah saran-saran untuk pengembangan lebih lanjut adalah sebagai berikut:
1. Perlu dilakukan optimasi terhadap proses genetik yang telah dibuat sehingga dapat menghasilkan sistem yang dapat menghasilkan penjadwalan yang optimal dalam waktu eksekusi yang cepat.
2. Perlu dicari metode yang dapat memperlambat terjadinya populasi yang homogen, tanpa memperlambat perkembangan fitness dalam populasi. Sehingga jumlah pengurangan bentrokan dari generasi ke generasi yang terjadi dari tahap awal proses genetik sampai pada tahap akhirnya tetap stabil, dan dapat mempercepat proses genetik untuk dapat mencapai solusi yang optimal.
3. Cara optimasi yang masih dapat dicoba adalah dengan memodifikasi seleksi yang digunakan seperti merubah berapa banyak jumlah individu lama yang disalin dalam elitisme atau merubah metodenya sendiri.
4. Cara optimasi yang masih dapat dicoba adalah dengan memecah proses genetik itu sendiri menjaadi beberapa thread dan menyatukan hasilnya kenbali setiap beberapa generasi sehingga dapat didapatkan individu-individu yang lebih beragam untuk diproses lebih lanjut.
(6)
Universitas Kristen Maranatha
DAFTAR PUSTAKA
Albahari, Joseph. (2010). EBook: Threading in C#. O’Reilly Media, Inc. Website: http://www.albahari.com/threading/ Tanggal Akses: 20 April 2011 C# Excel Tutorial. Website:
http://csharp.net-informations.com/excel/csharp-excel-tutorial.htm Tanggal Akses: 17 Maret 2010.
Buckles, Bill P and Petry, Frederick P. (1992). Genetic Algorithms. California: KNI, Inc.
Franciska. (2007). Skripsi: Penjadwalan Ujian Mata Kuliah Dengan Menggunakan Algoritma Memetic. Bandung: Universitas Katolik Parahyangan.
Gandwinatan, Andy. (2008). Laporan Tugas Akhir: Penerapan Algoritma Genetik untuk Aplikasi Penjadwalan Kuliah di Fakultas. Bandung: Universitas Kristen Maranatha.
Gen Mitsuo and Cheng Runwei. (1997). Genetic Algorithms and Engineering Design. New York: John Wiley & Sons, Inc.
Mitchell, Tom Michael. (1997). Machine Learning. Singapore: The McGraw-Hill Companies, Inc.
Nugraha, Ivan. (2008). Jurnal: Aplikasi Algoritma Genetik Untuk Optimasi Penjadwalan Kegiatan Belajar Mengajar. Bandung: Institut Teknologi Bandung.
Obitko, Marek. (1998). Website: http://www.obitko.com/tutorials/genetic-algorithms/index.php. Tanggal Akses: 17 Maret 2010.
Setia Negara, Guntur. (2006). Skripsi: Penjadwalan Ujian Kuliah MKU Dengan Algoritma Genetik. Bandung: Universitas Katolik Parahyangan.
Widjaja, Andi Irvan. (2010). Laporan Kerja Praktek: Aplikasi Penjadwalan Sidang Otomatis dengan Menggunakan Genetic Algorithm. Bandung: Universitas Kristen Maranatha.