View
238
Download
0
Category
Preview:
Citation preview
i
APLIKASI PENJADWALAN MATA KULIAH MENGGUNAKAN
ALGORITMA GENETIKA
(Studi Kasus : Program Studi Pendidikan Guru Sekolah Dasar (PGSD)
Universitas Sanata Dharma)
SKRIPSI
Ditujukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
HALAMAN JUDUL
Disusun Oleh :
Damai Kurnia Adhi
105314024
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2014
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
APPLICATION OF SCHEDULING COURSES WITH GENETIC
ALGORITHM
(Case Study : Primary School Teacher Education Study Program
Sanata Dharma University)
A THESIS
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Komputer Degree
In Department of Informatics Engineering
By :
Damai Kurnia Adhi
NIM : 105314024
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2014
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
HALAMAN PERSETUJUAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
HALAMAN PENGESAHAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
PERNYATAAN KEA SLIAN KARYA
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
HALAMAN PERSEMBAHAN
Karya tulis ini kupersembahkan untuk:
Ayah dan Ibuku tercinta yang selalu memberikan doa, kepercayaan dan dukungan
yang sangat berarti untukku.
Kedua adikku yang kukasihi yang selalu memberikan semangat motivasi untuk
terus berusaha mendapatkan hasil yang terbaik.
Almamaterku Universitas Sanata Dharma Yogyakarta.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
HALAMAN MOTTO
Berbahagialah orang yang membawa damai, karena mereka akan disebut anak-anak Allah -
Matius 5:9
"Barangsiapa setia dalam perkara-perkara kecil, ia setia juga dalam perkara-perkara besar. Dan
barangsiapa tidak benar dalam perkara-perkara kecil, ia tidak benar juga dalam perkara-perkara
besar." - Lukas 16:10
Karena itu, saudara-saudaraku yang kekasih, berdirilah teguh, jangah goyah, dan giatlah selalu
dalam pekerjaan Tuhan! Sebab kamu tahu, bahwa dalam persekutuan dengan Tuhan jerih
payahmu tidak sia-sia 1 Korintus 15:58
Dan segala sesuatu yang kamu lakukan dengan perkataan atau perbuatan, lakukanlah semuanya
itu dalam nama Tuhan Yesus, sambil mengucap syukur oleh Dia kepada Allah, Bapa Kita
Kolose 3:17
"Karena aku senang dan rela di dalam kelemahan, di dalam siksaan, di dalam kesukaran, di
dalam penganiayaan dan kesesakan oleh karena Kristus. Sebab jika aku lemah, maka aku kuat." -
2 Korintus 12:10
"Hendaklah kamu selalu rendah hati, lemah lembut, dan sabar. Tunjukkanlah kasihmu dalam hal
saling membantu." - Efesus 4:2
Banyak kegagalan dalam hidup ini dikarenakan orang-orang tidak menyadari betapa dekatnya
mereka dengan keberhasilan saat mereka menyerah. - Thomas Alva Edison
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
LEMBAR PERNYATAAN PERSETUJUAN PENYERAHAN PERANGKAT LUNAK
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
ABSTRAKSI
DAMAI KURNIA ADHI. Aplikasi Penjadwalan Mata Kuliah Menggunakan
Algoritma Genetika (Studi Kasus : Program Studi Pendidikan Guru Sekolah Dasar
(PGSD) Universitas Sanata Dharma). Dibimbing oleh Puspaningtyas Sanjoyo
Adi, S.T., M.T.
Penjadwalan matakuliah merupakan pekerjaan rutin dalam kegiatan sistem
akademik di Universitas. Dalam pelaksanaanya, seringkali jadwal yang telah
dibuat tidak sesuai dengan yang diharapkan. Pada dasarnya dalam menentukan
jadwal mata kuliah perlu diatur sedemikian rupa sehingga semua mahasiswa dapat
mengikuti mata kuliah yang diambilnya tanpa bertabrakan dengan mata kuliah
lain dan sesuai dengan jam dosen tersebut mengajar. Penyusunan Jadwal
matakuliah perlu mempertimbangkan aturan aturan tertentu. Apabila dalam
penyusunan jadwal masih menggunakan cara manual, waktu yang dibutuhkan
untuk menyelesaikan juga akan lebih banyak.
Penjadwalan matakuliah merupakan kombinasi dari hari, ruang, dan waktu
terhadap kuliah dengan mempertimbangkan aturan tertentu dalam program studi.
Algoritma Genetika digunakan sebagai pendekatan permasalahan yang ditemukan
pada penjadwalan matakuliah. Dalam mencari solusi permasalahan, Algoritma
Genetika menerapkan sistem sekelsi alam. Tujuan penelitian ini adalah merancang
Algoritma Genetika dalam menyusun jadwal matakuliah dan mengukur tingkat
keberhasilan pemetaan jadwal matakuliah menggunakan algoritma genetika.
Tahapan proses dalam Algoritma Genetika terdiri dari populasi awal, evaluasi
fitness kromosom (jadwal kuliah), dan operator genetika yaitu crossover dan
mutasi. Dari penelitian yang dilakukan, didapatkan hasil bahwa pembuatan jadwal
matakuliah menggunakan Algoritma genetika dapat berjalan dengan baik dalam
meminimalisir penggunaan ruang. Berkaitan dengan penerapan jumlah kromosom
dalam Algoritma Genetika, semakin banyak jumlah kromosom dalam satu
populasi maka penyelesaian pembuatan jadwal matakuliah jauh lebih cepat.
Kata Kunci : Penjadwalan Matakuliah dan Algoritma Genetika.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
ABSTRACT
DAMAI KURNIA ADHI. Application Of Scheduling Courses with Genetic
Algorithm (Case Study : Primary School Teacher Education Study Program
Sanata Dharma University). Mentored by Puspaningtyas Sanjoyo Adi, S.T., M.T.
Scheduling courses is routine work in the academic activities at the
University. In the implementation, often schedules that have been made are not as
expected. In determining the schedule of courses should be so arranged that all
students can follow the courses he had taken without colliding with other course
and in accordance with the teaching lecturer hours. Preparation of scheduling
courses need to consider the certain rules. If in the preparation of the schedule is
still using the manual method, the time it takes to complete will also be more.
Scheduling course is a combination of day, rooms, and time to lecture by
considering certain rules in the study program. Genetic Algorithm is used as an
approach to the problems found in the course scheduling. In searching for
solutions to problems, Genetic Algorithm applying natural selection system. The
purpose of this research is to design Genetic Algorithm to build scheduling
courses and measure the success rate of the course schedule mapping using
Genetic Algorithms.
Step of the process of Genetic Algorithm consists of initial population, fitness
evaluation (class schedule), and genetic operators, are crossover and mutation.
From the research conducted, showed that creating scheduling courses using
Genetic Algorithm can work well in minimizing the use rooms. Related with the
implementation of the number of chromosomes in a Genetic Algorithm, the more
the number of chromosomes in the population of the completion of the course
scheduling much faster.
Keyword : Scheduling Courses and Genetic Algorithm.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
KATA PENGATAR
Puji dan syukur kepada Tuhan Yang Maha Esa yang telah mengaruniakan
kasih karunia kepada hambaNya sehingga penulis dapat menyelesaikan tugas
akhir ini.
Dalam proses penulisan tugas akhir ini ada begitu banyak pihak yang telah
memberikan bantuan dan perhatian kepada saya sehingga tugas akhir ini dapat
terselesaikan. Oleh karena itu penulis mengucapkan terima kasih diantaranya
kepada :
1. Ibu P.H. Prima Rosa, S.Si., M.Sc. selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
2. Ridowati Gunawan, S.Kom., M.T. selaku Kaprodi Teknik Informatika
Universitas Sanata Dharma.
3. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T. selaku dosen pembimbing
tugas akhir yang telah banyak memberikan bimbingan dan masukkan
dalam penyusunan tugas akhir ini.
4. Bapak Alb. Agung Hadhiatma, S.T., M.T. dan Bapak Eko Hari Parmadi,
S.Si., M.Kom. selaku panitia penguji yang telah memberikan kritik dan
saran untuk tugas akhir ini.
5. Ayah, Ibu, dan kedua Adikku tercinta yang sudah memberikan semangat,
cinta, dan kasih sayang, serta doa sehingga penulis dapat menyelesaikan
tugas akhir ini.
6. Seluruh staff dosen Teknik Informatika Universitas Sanata Dharma yang
telah memberikan bekal ilmu kepada penulis selama penulis menempuh
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
studi.
7. Putri Emilia Yusuf yang sudah memberikan semangat dan doa kepada
penulis. Terima kasih atas kesabaran yang diberikan hingga penulis dapat
menyelesaikan tugas akhir ini.
8. Keluarga besar Mbah Marto Darsono yang telah memberikan semangat
serta doa hingga penulis dapat menyelesaikan tugas akhir ini. Terima kasih
khususnya kepada Mbah Marto Darsono yang secara terus-menerus
memberikan doa kepada cucu-cucunya hingga menjadi orang yang
berhasil.
9. Teman seperjuangan skripsi penjadwalan matakuliah PGSD, Antonius
Rianditya Putra, H. Roy Wiranata, dan Aweng yang telah membantu
penulis dalam memberikan saran dan kritik terhadap dokumen dan
program penulis.
10. Bapak Kartono, Kristopel, Agustinus Dwi, Tomi, Dita, Eko, Mas Yanuar,
dan Theo yang telah memberikan semangat, bantuan, ide, masukkan, dan
kritik yang membangun selama hingga penyelesaian skripsi ini.
11. Mas Arif dan Risko yang telah membantu meminjamkan perlengkapan
sidang tugas akhir penulis.
12. Seluruh Staff Sekretariat Fakultas Sains dan Teknologi yang banyak
membantu penulis dalam urusan administrasi akademik terutama
menjelang tugas akhir dan yudisium.
13. Teman-teman seperjuangan Jurusan Teknik Informatika angkatan 2010.
14. Semua pihak yang turut membantu penulisan baik secara langsung
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
maupun tidak langsung, yang tidak dapat penulis sebutkan satu persatu.
Dengan rendah hati penulis menyadari bahwa tugas akhir ini masih jauh dari
sempurna, oleh karena itu kritik dan masukkan saran untuk perbaikkan tugas akhir
ini sangat penulis harapkan. Akhir kata semoga tugas akhir ini dapat bermanfaat
bagi semua pihak. Terima Kasih.
Yogyakarta, Desember 2014
Penulis,
Damai Kurnia Adhi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
DAFTAR ISI
HALAMAN JUDUL ................................................................................................ i
HALAMAN PERSETUJUAN ............................................................................... iii
HALAMAN PENGESAHAN ................................................................................ iv
PERNYATAAN KEASLIAN KARYA ................................................................. v
HALAMAN PERSEMBAHAN ............................................................................ vi
HALAMAN MOTTO ........................................................................................... vii
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH viii
LEMBAR PERNYATAAN PERSETUJUAN PENYERAHAN PERANGKAT
LUNAK .................................................................................................................. ix
ABSTRAKSI .......................................................................................................... x
ABSTRACT ........................................................................................................... xi
KATA PENGATAR ............................................................................................. xii
DAFTAR ISI ......................................................................................................... xv
DAFTAR GAMBAR ......................................................................................... xviii
DAFTAR TABEL ................................................................................................ xxi
BAB I ...................................................................................................................... 1
PENDAHULUAN .................................................................................................. 1
1.1. Latar Belakang Masalah ............................................................................... 1
1.2. Rumusan Masalah ........................................................................................ 3
1.3. Tujuan .......................................................................................................... 3
1.4. Batasan Masalah........................................................................................... 3
1.5. Metodologi Penelitian .................................................................................. 4
1.6. Sistematika Penulisan .................................................................................. 5
BAB II ..................................................................................................................... 7
LANDASAN TEORI .............................................................................................. 7
2.1. Penjadwalan Matakuliah .............................................................................. 7
2.2. Algoritma Genetika ...................................................................................... 7
2.2.1. Alur Dasar Algoritma Genetika .............................................................. 8
2.2.2. Kromosom ........................................................................................... 9
2.2.2.1. Pengkodean Biner ................................................................. 11
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
2.2.2.2. Pengkodean Bilangan Bulat. ................................................. 11
2.2.2.3. Pengkodean Struktur Data. ................................................... 11
2.2.3. Operator Algoritma Genetika ............................................................... 12
2.2.3.1. Seleksi ................................................................................... 12
2.2.3.2. Perkawinan Silang (Crossover) ............................................. 13
2.2.3.3. Mutasi .................................................................................... 15
BAB III ................................................................................................................. 17
ANALISIS DAN PERANCANGAN .................................................................... 17
3.1. Latar Belakang Masalah ............................................................................. 17
3.2. Analisis Permasalahan ............................................................................... 18
3.2.1. Analisis Algoritma Genetika Pada Penjadwalan ..................................... 19
3.2.1.1. Perancangan Populasi Awal Penjadwalan ............................. 20
3.2.1.2. Evaluasi Fitness Pada Penjadwalan ...................................... 26
3.2.1.3. Proses Regenerasi Pada Penjadwalan .................................. 35
3.3. Perancangan Proses .................................................................................... 40
3.3.1. Spesifikasi Kebutuhan Perangkat Keras dan Perangkat Lunak .... 40
3.3.2. Use Case...................................................................................... 41
3.3.3. Perancangan Basisdata ................................................................ 51
3.3.3.1. ER Diagram ........................................................................... 51
3.3.4. UML .............................................................................................. 51
3.3.5. Diagram Kelas Analisis ................................................................. 62
BAB IV ................................................................................................................. 63
IMPLEMENTASI DAN ANALISA HASIL ........................................................ 63
4.1. IMPLEMENTASI PROGRAM ................................................................. 63
4.1.1. Progress Bar ...................................................................................... 63
4.1.2. Form Utama (Home) ........................................................................... 63
4.1.3. Form Matakuliah ................................................................................ 64
4.1.3.1. Simpan Matakuliah ................................................................ 64
4.1.3.2. Ubah Matakuliah.................................................................... 65
4.1.3.3. Hapus Matakuliah .................................................................. 67
4.1.3.4. Upload Data Matakuliah ........................................................ 69
4.1.4. Form Dosen ....................................................................................... 70
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
4.1.4.1. Simpan Dosen ....................................................................... 70
4.1.4.2. Ubah Dosen .......................................................................... 72
4.1.4.3. Hapus Dosen ......................................................................... 73
4.1.4.4. Upload Data Dosen ............................................................... 74
4.1.5. Form Ruang ....................................................................................... 76
4.1.5.1. Simpan Ruang ....................................................................... 76
4.1.5.2. Ubah Ruang .......................................................................... 78
4.1.5.3. Hapus Ruang ........................................................................ 79
4.1.5.4. Upload Data Ruang ............................................................... 80
4.1.6. Form Kelas Kuliah.............................................................................. 82
4.1.7. Form Penjadwalan .............................................................................. 84
4.1.7.1. Membuat Kelas Permintaan .................................................. 85
4.1.7.2. Penjadwalan .......................................................................... 88
4.2. PENGUJIAN PROGRAM ......................................................................... 92
4.2.1. Pengujian Program Terhadap Nilai Fitness, Waktu, dan Panjang
Kromosom .................................................................................................. 92
4.2.2. Pengujian Program Terhadap Penggunaan Ruang .................... 103
BAB V ................................................................................................................. 109
PENUTUP ........................................................................................................... 109
5.1. KESIMPULAN ........................................................................................ 109
5.2. SARAN .................................................................................................... 109
DAFTAR PUSTAKA ......................................................................................... 111
LAMPIRAN ........................................................................................................ 112
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xviii
DAFTAR GAMBAR
Gambar 1-1 Definisi Kromosom ......................................................................... 10
Gambar 1-2 Contoh Pengkodean Biner ............................................................. 11
Gambar 1-3 Contoh Pengkodean Bulat ............................................................. 11
Gambar 1-4 Contoh One Point Crossover ......................................................... 14
Gambar 1-5 Contoh Two Point Crossover ......................................................... 14
Gambar 1-6 Contoh Uniform Crossover ............................................................. 15
Gambar 1-7 Contoh Mutasi ................................................................................ 15
Gambar 3. 1 Flowchart Algoritma Genetika ....................................................... 20
Gambar 3. 2 Pemetaan Ruang dalam Kromosom .............................................. 21
Gambar 3. 3 Ilustrasi Pemetaan Kromosom 1 ................................................... 23
Gambar 3. 4 Pemetaan Kromosom 2 ................................................................. 24
Gambar 3. 5 Pemetaan Populasi ....................................................................... 25
Gambar 3. 6 Algoritma prosesRandom() ........................................................... 26
Gambar 3. 7 Flowchart Evaluasi Fitness ............................................................ 27
Gambar 3. 8 Algoritma Method eksekusiAturan ................................................. 29
Gambar 3. 9 Algoritma HC2 (cekDosen) ............................................................ 31
Gambar 3. 10 Algoritma HC3 (cekMatakuliah) ................................................... 32
Gambar 3. 11 Algoritma HC4 (cekJumlahMatakuliah) ....................................... 33
Gambar 3. 12 Algoritma HC5 (cekDosenMengajar) ........................................... 35
Gambar 3. 13 Flowchart Roulette Wheel Selection ............................................ 36
Gambar 3. 14 Flowchart Crossover ................................................................... 37
Gambar 3. 15 Ilustrasi Crossover ...................................................................... 38
Gambar 3. 16 Ilustrasi Mutasi Replace Duplikat ................................................ 39
Gambar 3. 17 Use Case Diagram ...................................................................... 41
Gambar 3. 18 ER Diagram ................................................................................ 51
Gambar 3. 19 UML Kelas Dosen ....................................................................... 51
Gambar 3. 20 UML Kelas Kromosom ................................................................ 52
Gambar 3. 21 UML Kelas Populasi .................................................................... 53
Gambar 3. 22 UML Kelas Pelanggaran ............................................................. 54
Gambar 3. 23 UML Kelas Genetika ................................................................... 55
Gambar 3. 24 UML Kelas Dosen ....................................................................... 56
Gambar 3. 25 UML Kelas KelasKuliah ............................................................... 57
Gambar 3. 26 UML Kelas Matakuliah ................................................................ 57
Gambar 3. 27 UML Kelas Ruang ....................................................................... 58
Gambar 3. 28 UML Kelas TabelPermintaan ....................................................... 58
Gambar 3. 29 UML Kelas Koneksi ..................................................................... 59
Gambar 3. 30 UML Kelas DosenKontrol ............................................................ 59
Gambar 3. 31 UML Kelas MatakuliahKontrol ..................................................... 60
Gambar 3. 32 UML KelasMatkulKontrol ............................................................. 61
Gambar 3. 33 UMK Kelas PenjadwalanKontrol .................................................. 61
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xix
Gambar 3. 34 UML Kelas RuangKontrol ............................................................ 62
Gambar 3. 35 Diagram Kelas Analisis ............................................................... 62
Gambar 4. 1 Tampilan Progress Bar.................................................................. 63
Gambar 4. 2 Tampilan Home ............................................................................. 63
Gambar 4. 3 Tampilan Form Matakuliah ............................................................ 64
Gambar 4. 4 Tampilan Form Matakuliah (Isian) ................................................. 65
Gambar 4. 5 Tampilan Pesan Berhasil (Insert Matakuliah) ................................ 65
Gambar 4. 6 Tampilan Form Matakuliah (Tabel) ................................................ 65
Gambar 4. 7 Tampilan Form Matakuliah 2 ......................................................... 66
Gambar 4. 8 Tampilan Form Matakuliah (label Edit) .......................................... 66
Gambar 4. 9 Tampilan Pesan Berhasil dirubah (Matakuliah) ............................. 66
Gambar 4. 10 Tampilan Form Matakuliah (Tabel Matakuliah) ............................ 67
Gambar 4. 11 Tampilan Form Matakuliah (Hapus Matakuliah) .......................... 67
Gambar 4. 12 Pesan Konfirmasi Hapus ............................................................. 68
Gambar 4. 13 Pesan Matakuliah Berhasil Dihapus ............................................ 68
Gambar 4. 14 Tabel Matakuliah (Setelah dihapus) ............................................ 68
Gambar 4. 15 Tabel Format Pengisian data Matakuliah (Excel) ........................ 69
Gambar 4. 16 Tampilan FileChooser (matakuliah) ............................................. 69
Gambar 4. 17 Pesan Konfirmasi Upload Matakuliah .......................................... 70
Gambar 4. 18 Tampilan Form Dosen ................................................................. 70
Gambar 4. 19 Tampilan Form Dosen (Label) ..................................................... 71
Gambar 4. 20 Pesan Konfirmasi (Dosen) .......................................................... 71
Gambar 4. 21 Tampilan Form Dosen (Tabel Dosen) ......................................... 71
Gambar 4. 22 Tampilan Form Dosen ................................................................. 72
Gambar 4. 23 Tampilan Form Dosen (Label) 2 .................................................. 72
Gambar 4. 24 Pesan Konfirmasi 2 ..................................................................... 73
Gambar 4. 25 Tampilan Form Dosen (Tabel Dosen) 2....................................... 73
Gambar 4. 26 Tampilan Form Dosen (Label) 3 .................................................. 74
Gambar 4. 27 Konfirmasi Hapus Dosen ............................................................. 74
Gambar 4. 28 Pesan Berhasil Hapus Dosen ...................................................... 74
Gambar 4. 29 Format Excel Dosen .................................................................... 75
Gambar 4. 30 Tampilan JFileChooser Dosen .................................................... 75
Gambar 4. 31 Pesan berhasil Upload ................................................................ 76
Gambar 4. 32 Tampilan Form Ruang ................................................................. 76
Gambar 4. 33 Tampilan Form Ruang (Label) ..................................................... 77
Gambar 4. 34 Pesan Berhasil Tambah Ruang ................................................... 77
Gambar 4. 35 Tampilan Form Ruang (Label) 2 .................................................. 77
Gambar 4. 36 Tampilan Form Ruang 2 .............................................................. 78
Gambar 4. 37 Tampilan Form Ruang (Label) ..................................................... 78
Gambar 4. 38 Pesan Berhasil dirubah (ruang) ................................................... 79
Gambar 4. 39 Tabel Ruang 2............................................................................. 79
Gambar 4. 40 Tampilan Form Ruang 3 .............................................................. 79
Gambar 4. 41 Pesan konfirmasi penghapusan ruang ........................................ 80
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xx
Gambar 4. 42 Pesan Ruang Berhasil dihapus ................................................... 80
Gambar 4. 43 Tabel Ruang 3............................................................................. 80
Gambar 4. 44 Format Tabel Excel Ruang .......................................................... 81
Gambar 4. 45 Tampilan FIleChooser Ruang ...................................................... 81
Gambar 4. 46 Pesan Upload Ruang Berhasil .................................................... 82
Gambar 4. 47 Tampilan Form Kelas Kuliah ....................................................... 82
Gambar 4. 48 Tampilan Buat Kelas Kuliah ........................................................ 83
Gambar 4. 49 Tampilan Konfirmasi pembuatan kelas kuliah ............................. 83
Gambar 4. 50 Tampilan Form Kelas Kuliah (terisi kelas kuliah) ......................... 83
Gambar 4. 51 Tampilan tambah dosen kelas kuliah .......................................... 84
Gambar 4. 52 Pesan Berhasil menambah dosen ............................................... 84
Gambar 4. 53 Tampilan Form Penajdwalan ....................................................... 85
Gambar 4. 54 Tampilan Pencarian Dosen ......................................................... 85
Gambar 4. 55 Tampilan Form Penjadwalan 2 .................................................... 86
Gambar 4. 56 Tampilan Pencarian Matakuliah .................................................. 86
Gambar 4. 57 Tampilan Form Penjadwalan 3 .................................................... 87
Gambar 4. 58 Pesan Konfirmasi Penambahan kelas permintaan ...................... 87
Gambar 4. 59 Tampilan Form Penjadwalan (Tabel permintaan) ........................ 87
Gambar 4. 60 Tampilan Form Penjadwalan 4 .................................................... 88
Gambar 4. 61 Pesan Data Permintaan .............................................................. 88
Gambar 4. 62 Tampilan Proses Pembuatan Jadwal .......................................... 88
Gambar 4. 63 Pesan Konfirmasi Jadwal ............................................................ 89
Gambar 4. 64 Tampilan Jadwal Matakuliah (Per semester) ............................... 89
Gambar 4. 65 Pesan Cetak Berhasil .................................................................. 89
Gambar 4. 66 Tampilan Cek file jadwal seluruh semester ................................. 90
Gambar 4. 67 Tampilan Rancangan Jadwal PGSD ........................................... 90
Gambar 4. 68 Tampilan Jadwal Matakuliah (Dosen) .......................................... 91
Gambar 4. 69 Pesan Cetak Berhasil .................................................................. 91
Gambar 4. 70 Tampilan Cek file jadwal dosen ................................................... 91
Gambar 4. 71 Tampilan Rancangan Jadwal PGSD (Dosen) .............................. 92
Gambar 4. 72 Grafik Hasil ujicoba Fitness 0 .................................................... 102
Gambar 4. 73 Grafik Perbandingan Jadwal Manual dan 12 Ruang .................. 105
Gambar 4. 74 Grafik Perbandingan Jadwal Manual dan 10 Ruang .................. 106
Gambar 4. 75 Grafik Perbandingan Jadwal Manual dan 8 Ruang .................... 108
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xxi
DAFTAR TABEL
Tabel 3. 1 Tabel Penerapan Algoritma Genetika dalam Penjadwalan ................ 19
Tabel 3. 2 Tabel Pengelompokan Jam ............................................................... 21
Tabel 3. 3 Tabel Aturan Penjadwalan Matakuliah .............................................. 27
Tabel 3. 4 Narasi Tambah Matakuliah ............................................................... 41
Tabel 3. 5 Narasi Rubah Matakuliah .................................................................. 42
Tabel 3. 6 Narasi Hapus Matakuliah .................................................................. 42
Tabel 3. 7 Narasi Tambah Ruang ...................................................................... 43
Tabel 3. 8 Narasi Rubah Ruang ......................................................................... 44
Tabel 3. 9 Narasi Hapus Ruang ........................................................................ 44
Tabel 3. 10 Narasi Tambah Dosen .................................................................... 45
Tabel 3. 11 Narasi Rubah Dosen ....................................................................... 45
Tabel 3. 12 Narasi Hapus Dosen ....................................................................... 46
Tabel 3. 13 Narasi Buat Kelas Kuliah................................................................. 46
Tabel 3. 14 Narasi Buat Kelas Permintaan ........................................................ 48
Tabel 3. 15 Narasi Penjadwalan ........................................................................ 50
Tabel 4. 1 Tabel Ujicoba Kromosom 4 Fitness 5 ................................................ 93
Tabel 4. 2 Tabel Ujicoba Kromosom 4 Fitness 3 ................................................ 94
Tabel 4. 3 Tabel Ujicoba Kromosom 4 Fitness 0 ................................................ 94
Tabel 4. 4 Tabel Ujicoba Kromosom 10 Fitness 5 .............................................. 95
Tabel 4. 5 Tabel Ujicoba Kromosom 10 Fitness 3 .............................................. 96
Tabel 4. 6 Tabel Ujicoba Kromosom 10 Fitness 0 .............................................. 97
Tabel 4. 7 Tabel Ujicoba Kromosom 16 Fitness 5 .............................................. 98
Tabel 4. 8 Tabel Ujicoba Kromosom 16 Fitness 3 .............................................. 99
Tabel 4. 9 Tabel Ujicoba Kromosom 16 Fitness 0 ............................................ 100
Tabel 4. 10 Tabel Rangkuman Kromosom 4 .................................................... 101
Tabel 4. 11 Tabel Rangkuman Kromosom 10 .................................................. 101
Tabel 4. 12 Tabel Rangkuman Kromosom 16 .................................................. 101
Tabel 4. 13 Tabel Rangkuman Fitness 0 ......................................................... 102
Tabel 4. 14 Tabel Persentase Penggunaan Ruang Jadwal Manual ................. 104
Tabel 4. 15 Tabel Persentase Penggunaan 12 Ruang ..................................... 104
Tabel 4. 16 Tabel Persentase Penggunaan 10 Ruang .................................... 106
Tabel 4. 17 Tabel Persentase Penggunaan 8 Ruang ...................................... 107
Tabel 5. 1 Tabel Matakuliah ............................................................................. 112
Tabel 5. 2 Tabel Dosen.................................................................................... 113
Tabel 5. 3 Tabel Ruang ................................................................................... 114
Tabel 5. 4 Tabel Kelas Kuliah .......................................................................... 115
Tabel 5. 5 Tabel Permintaan Kelas .................................................................. 120
Tabel 5. 6 Hasil Jadwal K16F5 Ujicoba No 1 ................................................... 122
Tabel 5. 7 Hasil Jadwal K16F3 Ujicoba No 15 ................................................. 132
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xxii
Tabel 5. 8 Hasil Jadwal K16F0 Ujicoba No 1 ................................................... 142
Tabel 5. 9 Jadwal Manual PGSD Semester 1A ................................................ 153
Tabel 5. 10 Jadwal Manual PGSD Semester 1B .............................................. 154
Tabel 5. 11 Jadwal Manual PGSD Semester 1C.............................................. 156
Tabel 5. 12 Jadwal Manual PGSD Semester 1D.............................................. 157
Tabel 5. 13 Jadwal Manual PGSD Semester 1E .............................................. 159
Tabel 5. 14 Jadwal Manual PGSD Semester 3A .............................................. 161
Tabel 5. 15 Jadwal Manual PGSD Semester 3B .............................................. 162
Tabel 5. 16 Jadwal Manual PGSD Semester 3C.............................................. 164
Tabel 5. 17 Jadwal Manual PGSD Semester 3D.............................................. 165
Tabel 5. 18 Jadwal Manual PGSD Semester 3E .............................................. 167
Tabel 5. 19 Jadwal Manual PGSD Semester 5A .............................................. 169
Tabel 5. 20 Jadwal Manual PGSD Semester 5B .............................................. 170
Tabel 5. 21 Jadwal Manual PGSD Semester 5C.............................................. 172
Tabel 5. 22 Jadwal Manual PGSD Semester 5D.............................................. 174
Tabel 5. 23 Jadwal Manual PGSD Semester 5E .............................................. 176
Tabel 5. 24 Jadwal Manual PGSD Semester 7A .............................................. 178
Tabel 5. 25 Jadwal Manual PGSD Semester 7B .............................................. 179
Tabel 5. 26 Jadwal Manual PGSD Semester 7C.............................................. 181
Tabel 5. 27 Jadwal Manual PGSD Semester 7D.............................................. 182
Tabel 5. 28 Jadwal Manual PGSD Semester 7E .............................................. 184
Tabel 5. 29 Jadwal Manual PGSD Semester 7F .............................................. 185
Tabel 5. 30 Jadwal Hasil Ujicoba Program PGSD 12 Ruang No 1 ................... 188
Tabel 5. 31 Jadwal Hasil Ujicoba Program PGSD 10 Ruang No 1 ................... 195
Tabel 5. 32 Jadwal Hasil Ujicoba Program PGSD 8 Ruang No 1 ..................... 202
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1. Latar Belakang Masalah
Penjadwalan mata kuliah merupakan pekerjaan rutin dalam kegiatan
sistem akademik di Universitas. Dalam menyusun matakuliah terdapat berbagai
jenis komponen yang diperlukan, diantaranya Mata kuliah, Dosen mengajar,
ruang dan waktu. Penjadwalan mata kuliah dilakukan setiap semester. Dalam
pelaksanaanya, seringkali jadwal yang telah dibuat tidak sesuai dengan yang
diharapkan. Hal hal yang mendukung bisa dikarenakan dosen yang melebihi
batas mengajar, kesibukan dosen terhadap kepentingannya, jadwal mahasiswa
yang bertabrakan, adanya dosen pengajar dari luar kampus, dan lain lain. Pada
dasarnya dalam menentukan jadwal mata kuliah perlu diatur sedemikian rupa
sehingga semua mahasiswa dapat mengikuti mata kuliah yang diambilnya tanpa
bertabrakan dengan mata kuliah lain dan sesuai dengan jam dosen tersebut
mengajar.
Penyusunan Jadwal matakuliah perlu mempertimbangkan aturan aturan
tertentu. Aturan tersebut antara lain : tidak adanya dosen yang mengajar dua atau
lebih matakuliah di jam yang sama, satu ruang hanya dapat diisi oleh 1 matakuliah
di jam tertentu, penggunaan ruang lab hanya untuk kelas praktikum, dan lain lain.
Apabila dalam penyusunan jadwal masih menggunakan cara manual, waktu yang
dibutuhkan untuk menyelesaikan juga akan lebih banyak. Waktu penyusunan
tersebut belum termasuk ketidaktelitian user (human eror) serta banyaknya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
matakuliah yang menyebabkan waktu penyusunan jadwal juga ikut
bertambah.
Dalam penyusunan jadwal matakuliah menggunakan sistem komputerisasi
dapat dilakukan dengan bantuan algoritma tertentu, salah satunya adalah
Algoritma Genetika. Untuk mendapatkan hasil yang optimal dalam menyusun
jadwal mata kuliah, diperlukan penambahan aturan-aturan yang lebih kompleks
(Constrains) (Winoto, D. S., dkk, 2012). Constrains didapat berdasarkan aturan
penjadwalan matakuliah yang berlaku pada Universitas. Semakin kompleks
constrainsnya, maka Jadwal matakuliah yang dihasilkan akan semakin optimal.
Algoritma Genetika cukup baik diimplementasikan sebagai algoritma untuk
membuat sistem penjadwalan (Setemen. K, 2010). Hal ini dibuktikan dengan
melakukan ujicoba sebanyak 3 kali dengan data pemetaan matakuliah yang
berbeda. Untuk setiap kali ujicoba, nilai fitness yang dihasilkan sama dengan nol.
Artinya tidak ada matakuliah yang terjadi bentrokan. Untuk ujicoba 1 (pemetaan
53 matakuliah), algoritma genetika dapat menghasilkan nilai fitness sama dengan
nol hanya dengan 209 Iterasi dari target maksimal 5000 Iterasi. Ujicoba 2
(pemetaan 88 matakuliah) dapat diselesaikan algoritma genetika dengan 2161
Iterasi dari target maksimal 5000 Iterasi. Sedangkan ujicoba 3 (pemetaan 141
matakuliah), algoritma genetika mampu memperoleh fitness dengan 6623 Iterasi ,
tetapi dengan target maksimal iterasi sebanyak 10000.
Pada tugas akhir ini bertujuan untuk menerapkan sistem penjadwalan mata
kuliah di Program Studi Guru Sekolah Dasar (PGSD) dengan menggunakan
Algoritma Genetika. Dengan algoritma ini, data - data dan komponen yang berupa
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
Mata kuliah, Dosen mengajar, ruang dan waktu dapat diimplementasikan ke
dalam sebuah jadwal sehingga dapat memberikan solusi bagi Sekretariat Prodi
hingga akhirnya Jadwal tersebut dapat dicetak dan dapat digunakan. Yang akan
dikembangkan adalah optimasi waktu pemrosesan progam (Timing) dan
penambahan aturan aturan (Constrains) yang sesuai dengan Prodi PGSD
Universitas Sanata Dharma.
1.2. Rumusan Masalah
Berdasarkan permasalahan penjadwalan mata kuliah di PGSD, maka
rumusan masalahnya adalah :
1. Bagaimana menyusun jadwal mata kuliah di PGSD dengan menggunakan
Algoritma Genetika?
2. Seberapa tingkat keberhasilan pemetaan jadwal mata kuliah dengan
menggunakan Algoritma Genetika?
1.3. Tujuan
1. Membuat aplikasi penjadwalan mata kuliah dengan menggunakan
Algoritma Genetika.
2. Mengukur tingkat keberhasilan pemetaan jadwal mata kuliah dengan
menggunakan Algoritma Genetika.
1.4. Batasan Masalah
1. Data yang digunakan untuk penjadwalan mata kuliah adalah data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
matakuliah kelas teori Tahun Akademik 2013/2014 Semester Ganjil
Program Studi Guru Sekolah Dasar (PGSD) Universitas Sanata Dharma.
2. Kelas kuliah yang masuk ke dalam penjadwalan adalah matakuliah yang
membutuhkan ruang untuk menjalankan proses belajar mengajar.
3. Informasi yang dihasilkan berupa jadwal mata kuliah untuk Program Studi
Guru Sekolah Dasar (PGSD).
4. Mahasiswa hanya dapat mengambil mata kuliah di semester yang
diajarkan.
5. Pengguna program dapat memasukkan input nama mata kuliah, dosen
mengajar dan ruangan yang ditentukan. Hari dan Waktu sudah tersedia di
dalam sistem.
6. Pemilihan induk dalam proses seleksi Kromosom adalah memilih dua
Kromosom dengan nilai fitness terbaik untuk dijadikan orang tua.
7. Metode crossover yang diterapkan di dalam sistem adalah One Point
Crossover.
8. Metode Mutasi yang diterapkan di dalam sistem adalah Mutasi Bebas.
9. Pembagian waktu dalam kuliah menerapkan sistem Timeslot, dimana 1
Timeslot berisi 3 Jam Pelajaran PGSD. Dalam sehari, satu ruang berisi 4
Timeslot (12 Jam Pelajaran).
1.5. Metodologi Penelitian
Metode yang digunakan dalam menyusun jadwal matakuliah PGSG adalah
metode System Development Life Cycle (Paradigma Waterfall). Metode ini terdiri
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
dari berbagai tahap :
1. Analisis Kebutuhan
Pada tahap ini, akan dilakukan Identifikasi tentang kebutuhan system serta
pengumpulan data data yang diperlukan dalam proses penjadwalan.
2. Perancangan Sistem
Pada tahap ini, akan dilakukan penerjemahan rancangan sistem ke dalam
perangkat lunak. Proses perancangan meliputi Perancangan Sistem, desain
Basis Data, user interface dan rancangan implementasi program.
3. Penulisan Progam
Pada tahap ini, akan dilakukan penerjemahan dari perancangan sistem ke
dalam bahasa pemrograman.
4. Pengujian
Pada tahap ini akan dilakukan pengujian program. Pengujian bertujuan
untuk menemukan kesalahan kesalahan hingga program dapat sesuai
dengan yang diharapkan.
1.6. Sistematika Penulisan
BAB I : PENDAHULUAN
Bab ini berisi penjelasan tentang latar belakang masalah, rumusan
masalah, tujuan, batasan masalah, metodologi penelitian, dan sistematika
penulisan.
BAB II : LANDASAN TEORI
Bab ini berisi tentang teori algoritma genetika yang menjadi dasar dalam
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
pembuatan sitem penjadwalan mata kuliah PGSD.
BAB III : ANALISA DAN PERANCANGAN SISTEM
Bab ini berisi tentang analisis dan perancangan sistem yang akan
dibangun, serta meliputi analisis data penjadwalan, aturan dalam proses
penjadwalan, dan penjelasan algoritma genetika dalam menyelesaikan
permasalahan mata kuliah.
BAB IV : IMPLEMENTASI DAN ANALISA HASIL
Bab ini berisi tentang implementasi dari perancangan pada Bab III.
Implementasi tersebut meliputi tampilan progam (input dan output) dan
analisa dari progam yang dibuat.
BAB V : KESIMPULAN DAN SARAN
Bab ini berisi tentang kesimpulan dan saran dari sistem yang akan dibuat
berdasarkan pada bab-bab sebelumnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II
LANDASAN TEORI
2.1. Penjadwalan Matakuliah
Penjadwalan mata kuliah (lecture timetabling) adalah masalah
menempatkan waktu dan ruangan kepada sejumlah kuliah, tutorial, dan kegiatan
akademik sejenis, dengan memperhatikan sejumlah aturan yang berhubungan
dengan kapasitas dan lokasi dari ruangan yang tersedia, waktu bebas yang
diperlukan dan sejumlah aturan lain yang berkaitan dengan toleransi untuk dosen,
dan hubungan antara mata kuliah khusus (Ross, P., dkk, 1994).
Penjadwalan matakuliah merupakan permasalahan yang sangat penting
dan dihadapi oleh prodi di tiap semesternya. Dalam penyusunan jadwal, terdapat
dua batasan yang bersifat mutlak (hard constraint) dan batasan lunak (soft
constraint) (Oner,A., dkk, 2011).
2.2. Algoritma Genetika
Genetic Algorithms atau algoritma genetika adalah algoritma pencarian
yang didasarkan pada proses seleksi alam (proses evolusi). Proses evolusi berarti
individu (kromosom) yang secara terus menerus mengalami perubahan gen
sehingga dapat menyesuaikan lingkungan hidupnya. Hanya individu yang kuat
yang mampu bertahan (Setemen, K., 2010).
Dalam algoritma genetika, proses seleksi individu dilakukan secara
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
alamiah dengan melibatkan perubahan gen yang terjadi pada individu melalui
proses perkembangbiakan. Proses perkembangbiakan menjadi proses dasar yang
penting. Tujuan yang akan dicapai dari perkembangbiakan adalah bagaimana
mendapatkan keturunan yang lebih baik (Basuki, A., 2003). Untuk dapat
menemukan keturunan baru, dapat dilakukan dengan perkawinan silang
(crossover) dan mutasi (mutation). Perkawinan silang adalah proses pertukaran
gen dari dua individu yang mempunyai karakteristik yang berbeda sehingga
menghasilkan gen yang lebih baik dari induknya. Sedangkan Mutasi adalah proses
perubahan gen dari satu individu karena individu tersebut melakukan adaptasi
terhadap lingkungannya.
2.2.1. Alur Dasar Algoritma Genetika
Secara umum, alur dasar algoritma genetika dinyatakan sebagai berikut :
(Bambrick, L., 1997).
1. [Start], Generasi populasi pertama secara random sebanyak n individu.
2. [Fitness], Evaluasi nilai fitness f(x) dari setiap individu x didalam
populasi.
3. [New Population], Bentuk populasi baru dengan melakukan pengulangan
langkah langkah dibawah ini sehingga didapatkan populasi baru.
a. [Selection], Pilih 2 individu sebagai induk dari sebuah populasi sesuai
dengan fitness (Semakin baik fitness, maka semakin besar peluang
untuk dipilih).
b. [Crossover], Lakukan persilangan antara kedua induk sesuai dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
probabilitas crossover untuk membentuk sebuah keturunan baru.
c. [Mutation], Mutasi setiap keturunan yang baru sesuai dengan
probabilitas mutasi di setiap gen.
d. [Accepting], tempatkan keturunan yang baru sesuai dengan populasi
yang baru.
4. [Replace], Gunakan populasi yang baru dibentuk untuk menjalankan
algoritma.
5. [Test], Jika kondisi akhir dipenuhi maka berhenti dan tampilkan solusi dari
populasi.
6. [Loop], Lakukan lagi langkah 2.
2.2.2. Kromosom
Kromosom (individu) merupakan gabungan dari Gen yang membentuk
nilai tertentu. Individu bisa dikatakan sama dengan kromosom, yang merupakan
kumpulan gen. Gen ini bisa biner, float, dan kombinatorial. Beberapa definisi
penting yang terdapat dalam kromosom adalah sebagai berikut (Yulyantari, L.M.,
2011)
Genotype (Gen), sebuah nilai yang menyatakan satuan dasar yang
membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan
kromosom. Dalam algoritma genetika, gen ini bisa berupa nilai biner,
float, integer maupun karakter, atau kombinatorial.
Allele, nilai dari gen.
Kromosom, gabungan gen-gen yang membentuk nilai tertentu.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
Individu, menyatakan satu nilai atau keadaan yang menyatakan salah satu
solusi yang mungkin dari permasalahan yang diangkat
Populasi, merupakan sekumpulan individu (kromosom) yang akan
diproses bersama dalam satu siklus proses evolusi.
Generasi, menyatakan satu siklus proses evolusi atau satu iterasi di dalam
algoritma genetika.
Secara umum definisi Kromosom dapat diilustrasikan sebagai berikut :
Gambar 1-1 Definisi Kromosom
Untuk memetakan masalah ke dalam sebuah kromosom dapat dilakukan
dengan berbagai cara.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
2.2.2.1. Pengkodean Biner
Pengkodean biner merupakan pengkodean kromosom yang paling banyak
digunakan. Dalam hal ini, parameter dikodekan dalam bentuk 0 dan 1.
Keuntungan dari pengkodean ini adalah sederhana dan mudah dimanipulasi.
KROMOSOM KODE BINER
A 10110010100
B 11001001101
Gambar 1-2 Contoh Pengkodean Biner
2.2.2.2. Pengkodean Bilangan Bulat.
Pengkodean bilangan bulat adalah metode yang mengkodekan bilangan ke
dalam bentuk bilangan bulat. Pengkodean ini sangat baik digunakan untuk
masalah optimasi kombinatorial.
KROMOSOM KODE BULAT
A 50310020400
B 35001002406
Gambar 1-3 Contoh Pengkodean Bulat
2.2.2.3. Pengkodean Struktur Data.
Pengkodean Struktur Data adalah model pengkodean yang menggunakan
struktur data. Pengkodean ini digunakan untuk masalah yang lebih kompleks,
seperti perwarnaan Graph.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
2.2.3. Operator Algoritma Genetika
2.2.3.1. Seleksi
Seleksi bertujuan untuk memberikan kesempatan individu dalam
reproduksi bagi anggota populasi yang lebih unggul. Langkah pertama yang
dilakukan dalam tahap seleksi adalah pencarian nilai fitness. Masing-masing
individu dalam seleksi akan menerima probabilitas reproduksi yang tergantung
pada nilai yang diperoleh dibandingkan dengan anggota individu lainnya. Nilai
fitness inilah nantinya akan digunakan dalam tahap seleksi berikutnya
(Kusumadewi, S., 2003)
Kemampuan algoritma genetika dalam menciptakan sebuah kromosom
yang lebih unggul terganting dari penekanan selektif terhadap kromosom dalam
populasi. Penekanan selektif diterapkan dengan dua cara. Cara pertama adalah
menciptakan lebih banyak kromosom anak dalam populasi dan memilih hanya
kromosom yang terbaik untuk generasi berikutnya. Metode ini menerapkan
seleksi orangtua secara acak namun metode ini akan terus menghasilkan
kromosom yang lebih baik.
Cara lain menerapkan penekanan selektif adalah memilih orangtua yang
lebih baik untuk proses regenerasi. Dengan metode ini hanya kromosom sebanyak
jumlah tertentu dalam satu populasi yang dipelihara untuk generasi berikutnya.
Walaupun penekanan selektif tidak diterapkan di level keturunan, metode ini juga
akan menghasilkan kromosom yang lebih baik karena penekanan selektif
diterapkan kepada orangtua dari calon kromosom terpilih.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
a. Seleksi Roulete Wheel
Pada seleksi ini akan dipilih calon orang tua berdasarkan fitnessnya.
Semakin baik fitnessnya, maka semakin besar kemungkinan kromosom
dipilih untuk dijadikan orang tua. Probabilitas suatu individu terpilih untuk
crossover sebanding dengan fitnessnya.
b. Seleksi Rangking
Pada seleksi ini akan dilakukan sistem ranking (mengurutkan) dari
fitness terkecil hingga fitness terbesar. Bobot fitness semula akan dirubah
dengan nomor urut dari 1 hingga n kromosom dimana kromosom dengan
bobot fitness n merupakan kromosom dengan nilai fitness terbesar dalam
populasi.
2.2.3.2. Perkawinan Silang (Crossover)
Perkawinan silang merupakan operator yang berfungsi untuk membentuk
sebuah keturunan baru. Operator ini membutuhkan 2 kromosom sebagai induk
(parent) hingga menghasilkan anak (child). Perkawinan silang bertujuan untuk
menciptakan kromosom baru yang memiliki bagian baik kromosom lama dan
tidak menutup kemungkinan tercipta sebuah kromosom yang lebih baik. Ada
beberapa jenis perkawinan silang :
a. One Point Crossover
Pada perkawinan silang ini akan memindahkan satu titik silang dari dua
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
kromosom induk. Sehingga akan menghasilkan anak yang memiliki gen dari
kedua induk tersebut. Contoh :
Gambar 1-4 Contoh One Point Crossover
b. Two Point Crossover
Proses crossover ini dilakukan dengan memilih dua titik crossover.
Kromosom keturunan dibentuk dengan barisan gen awal dari induk pertama,
kemudian disalin dengan gen induk kedua, lalu selebihnya disalin dengan gen
induk pertama.
Gambar 1-5 Contoh Two Point Crossover
c. Uniform Crossover
Uniform Crossover menghasilkan kromosom keturunan dengan
menyalin bit secara acak dari kedua orangtuanya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Gambar 1-6 Contoh Uniform Crossover
2.2.3.3. Mutasi
Mutasi merupakan proses mengubah nilai dari satu atau beberapa gen
dalam satu kromosom. Perubahan gen dilakukan dengan berbagai cara :
mengubah gen 1 menjadi 0 dan sebaliknya, melakukan pertukaran gen pada suatu
posisi dengan gen pada posisi lain, mengubah gen dengan batasan tertentu, dan
sebagainya bergantung pada representasi individunya (Suyanto, 2010). Tujuan
dari mutasi adalah mempercepat perbedaan diantara semua kromosom dalam
populasi sehingga pencarian dapat dipetakan ke seluruh ruang. Selain itu mutasi
bertujuan untuk mengembalikan komponen penting yang hilang ketika proses
crossover.
Contoh :
Gambar 1-7 Contoh Mutasi
Ada beberapa jenis operator Mutasi :
a. Mutasi Terarah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
Mutasi terarah sangat bergantung pada informasi gen. Informasi gen
berupa nilai pelanggaran gen (bagian dari nilai fitness). Hal ini berarti bahwa
adanya kemungkinan untuk gen yang berbeda akan di mutasi. Mutasi akan
dilakukan jika pelanggaran gen tersebut lebih besar dari gen yang lain dalam
satu kromosom.
b. Mutasi Biasa
Mutasi biasa tidak memperhitungkan informasi gen. Hal ini berarti setiap
gen memiliki peluang yang sama untuk terjadi mutasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III
ANALISIS DAN PERANCANGAN
3.1. Latar Belakang Masalah
Sebagian besar proses penjadwalan kuliah di PGSD Universitas Sanata
Dharma masih menggunakan cara manual. Program penjadwalan yang ada untuk
penjadwalan tidak mampu dalam menyusun data matakuliah di PGSD yang
banyak. Jika digunakan, sistem tidak menghasilkan jadwal bahkan sering terjadi
crash dalam aplikasinya. Apabila masih menggunakan cara manual akan
berdampak pada pekerjaan lain selain penjadwalan matakuliah, misalnya waktu
yang dibutuhkan dalam menyusun jadwal (timing).
Dalam proses pembuatan jadwal kuliah akan menyangkut penempatan
matakuliah yang ditawarkan pada hari, ruang, dan jam tertentu. Permasalahan
yang dihadapi adalah bagaimana menyusun jadwal matakuliah dengan
mempertimbangkan hari, jam dan ruangan yang tepat sehingga tidak terjadi
bentrok antar kelas dan matakuliah yang ditawarkan. Selain itu, sistem juga
mempertimbangkan dosen yang mengajar sehingga tidak ada hari dan jam yang
sama untuk 1 dosen mengajar lebih dari 1 matakuliah. Dalam penyusunan jadwal
dapat dilakukan dengan cara manual namun dalam proses pengerjaannya akan
mengalami banyak hamabtan terutama dalam hal ketelitian dan permasalahan
waktu.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
3.2. Analisis Permasalahan
Masalah yang akan dibahas melalui tulisan ini adalah bagaimana sebuah
Prodi dapat mengatur jadwal mata kuliah tanpa bentrok sehingga dapat digunakan
selama 1 semester. Masalah penjadwalan merupakan masalah yang klasik. Hingga
saat ini telah berkembang banyak metode yang dapat digunakan untuk
menyelesaikan masalah tersebut. Umumnya masalah ini sangat sulit untuk
diselesaikan karena suatu proses penjadwalan diperlukan hard constraint dan soft
constraint.
Hard Constraint disebut juga Hard Requirement, merupakan salah satu
kebutuhan dari suatu penjadwalan yang jika kebutuhan ini dilanggar, maka akan
mengakibatkan penjadwalan yang dibentuk tidak dapat digunakan. Hard
Constraint merupakan prioritas utama yang harus dipenuhi dalam menyusun
jadwal kuliah. Hard Requirement dapat dijabarkan sebagai berikut :
1. Satu ruang hanya dapat digunakan oleh satu matakuliah di hari dan jam
tertentu.
2. Satu dosen hanya dapat mengajar satu matakuliah di hari dan jam yang
sama.
3. Matakuliah untuk satu semester tertentu tidak boleh berada di jam yang
sama kecuali untuk matakuliah yang sama dan dosen berbeda.
4. Jumlah matakuliah di dalam satu semester yang sama tidak boleh lebih
dari 3 di hari yang sama.
5. Dosen mengajar dalam sehari tidak boleh lebih dari 3 matakuliah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
Soft Constraint disebut juga Soft Requirement merupakan salah satu
persyaratan dalam penjadwalan jika syarat ini tidak dipenuhi, penjadwalan dapat
terus dilakukan. Soft requirements umumnya merupakan kebijakan kebijakan
yang sudah diputuskan oleh prodi. Contoh soft constrains adalah :
1. Dosen luar dapat memilih jam mengajar yang diinginkan.
3.2.1. Analisis Algoritma Genetika Pada Penjadwalan
Untuk menyusun sebuah jadwal dengan menggunakan Algoritma
Genetika, hal yang harus dilakukan adalah merepresentasikan mata kuliah
kedalam bentuk yang dimengerti oleh Algoritma Genetika. Dalam Genetika
terdapat kata kunci Gen, Allele, Kromosom, dan Populasi. Jika diterapkan ke
dalam penjadwalan matakuliah maka :
Tabel 3. 1 Tabel Penerapan Algoritma Genetika dalam Penjadwalan
Kata Kunci Definisi
Gen Gen mewakili hari, jam, dan ruang tertentu untuk
kelas kuliah tersebut.
Allele Representasi dari Kelas Matakuliah.
Kromosom Kumpulan dari Gen. Dengan kata lain, Kromosom
adalah Jadwal matakuliah selama seminggu.
Populasi Kumpulan dari Jadwal matakuliah.
Proses yang dapat dilakukan adalah membangun populasi awal, evaluasi
fitness, seleksi, crossover, dan mutasi.Secara umum Diagram Flowchart algoritma
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
genetika yang akan diterapkan pada penjadwalan matakuliah adalah :
Start
Populasi Awal
Evaluasi Fitness Mutasi
Crossover
SeleksiKriteria Berhenti
Terpenuhi?
Hasil (jadwal)
Selesai
Gambar 3. 1 Flowchart Algoritma Genetika
3.2.1.1. Perancangan Populasi Awal Penjadwalan
Penjadwalan matakuliah terdiri dari komponen mata kuliah, dosen, hari,
jam, dan ruang. Yang akan dijadikan model kromosom adalah komponen mata
kuliah, hari, jam dan ruang. Pembentukan populasi awal penjadwalan matakuliah
adalah N kromosom, dengan N merupakan kandidat banyaknya matakuliah.
Setiap gen dalam kromosom mewakili satu kuliah. Populasi awal dibangkitkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
secara random untuk selanjutnya dilakukan proses evaluasi setiap kromosomnya.
Panjang 1 kromosom adalah N gen, dimana N merupakan hasil perkalian antara
jumlah hari, jumlah ruang, dan jumlah waktu.
Pemetaan kromosom akan menerapkan time slot pada jam matakuliah.
Setiap time slot terdiri dari 3 jam matakuliah. Berikut tabel penjelasan
pengelompokan jam :
Tabel 3. 2 Tabel Pengelompokan Jam
Pada Tabel 3.2 menjelaskan deskripsi singkat mengenai pengelompokan
waktu dalam 1 hari. Jika setiap ruang yang dipakai adalah 12 jam pelajaran, maka
pemetaan Ruang dalam kromosom adalah 4 untuk setiap Ruangnya. Jika
digambarkan pemetaan ruang yang dikaitkan dengan waktu akan menjadi sebagai
berikut :
Gambar 3. 2 Pemetaan Ruang dalam Kromosom
Gambar 3.2 Setiap 1 time slot waktu akan direpresentasikan dengan 1 Gen.
Gen merupakan kandidat Kelas kuliah tertentu. Pemetaan untuk menentukan
panjang sebuah Kromosom adalah dengan menggunakan rumus berikut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
Ngen = (H * R * W) / 3
Keterangan :
Ngen = jumlah gen dalam 1 kromosom
H = jumlah hari dalam perkuliahan
R = jumlah ruang dalam perkuliahan
W = jumlah waktu dalam perkuliahan
Berdasarkan data yang diperoleh, Prodi PGSG Universitas Sanata Dharma
menerapkan jadwal dengan 156 Kelas kuliah, 5 hari, 14 ruang teori, dan 12 waktu
(jam) untuk perkuliahan semester Ganjil Tahun Akademik 2013/2014. Maka
jumlah gen yang terbentuk untuk 1 kromosom adalah :
Ngen = (5 * 14 * 12) / 3
= 280
Dalam perancangan sistem, Ngen merupakan representasi dari panjang 1
kromosom. Kromosom tersebut merupakan jadwal matakuliah di PGSD selama 1
minggu. Setiap Gen nya memiliki makna Hari, Ruang dan Jam tertentu.
Kelas kuliah merupakan komponen penting dalam penyusunan jadwal
matakuliah. Kombinasi Matakuliah dan Dosen akan membentuk sebuah Kelas
Kuliah. Kelas Kuliah akan berbeda setiap semesternya. Data Matakuliah
ditawarkan oleh PGSD terdapat pada Tabel 5.1, data dosen pengampu terdapat
pada Tabel 5.2, dan data ruang yang dipakai terdapat pada Tabel 5.3. Data Kelas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
Kuliah PGSD berdasarkan data Semester Ganjil Tahun Ajaran 2014/2015 terdapat
pada Tabel 5.4.
Tabel Kelas Kuliah terdiri dari kode kelas kuliah, kode matakuliah, kode
dosen pengampu dan kelas. Data tersebut akan diimplementasikan ke dalam
Algoritma Genetika. Dalam menyusun tabel kelas kuliah ke dalam kromosom,
masing-masing kelas kuliah akan ditempatkan secara random index Gen nya. Hal
ini berarti setiap kelas kuliah memiliki index (slot) Gen yang berbeda. Index Gen
yang tidak ditempati oleh kelas kuliah manapun akan dikodekan dengan 0, yang
berarti tidak ada kelas kuliah di hari, jam, dan ruang tersebut.
Pemetaan kromosom yang terbentuk dan digabungkan dengan kelas kuliah
dapat diilustrasikan sebagai berikut :
Gambar 3. 3 Ilustrasi Pemetaan Kromosom 1
Berikut pemetaan Kromosom secara keseluruhan dengan menggabungkan
Hari, Ruang, Dan Waktu dalam seminggu waktu kuliah:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
Gambar 3. 4 Pemetaan Kromosom 2
Berikut sebagian penjelasan pemetaan Kromosom Gambar 3.4 :
Gen[0] Kelas Kuliah ke 2 (PDW 2106 Logika, Semester 1,Kelas B,
Dosen Pengampu G. Ari Nugraha, S.J., M.A.) Hari Senin, Ruang 1, Time
Slot 1 (Jam 07.00-09-59).
Gen[67] Kelas Kuliah ke 17 (PDW 2122 - Bahasa dan Sastra Indonesia,
Semester 1, Kelas B, Dosen Pengampu Apri Damai SK, S.S., M.Pd.) Hari
Selasa, Ruang 3, Time Slot 4 (Jam 16.00-18.59).
Gen[234] Tidak ada kelas kuliah di hari Jumat, Ruang 3, Time Slot 3
(13.00-15.59).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Populasi merupakan kumpulan dari kromosom. Dengan kata lain, populasi
merupakan kumpulan dari jadwal matakuliah. Dalam perancangan program, 1
populasi terdiri dari 4 kromosom. Jika digambarkan maka rancangan populasi
yang dibangun untuk Iterasi 1 (populasi awal) adalah :
Gambar 3. 5 Pemetaan Populasi
Membangun populasi awal juga mempertimbangkan aturan soft constraint
yang berlaku. Pada saat membangun populasi awal, kelas kuliah permintaan akan
dimasukkan terlebih dahulu ke dalam sistem sesuai dengan Hari, Ruang, dan
Waktu yang sesuai dengan permintaan. kemudian kelas kuliah lainnya akan
dimasukkan secara random. Berikut algoritma ProsesRandom.
method prosesRandom()
1. Buat variabel r bertipe random.
2. Buat variabel hari bertipe int. Set nilai dengan 5.
3. Buat variabel waktu bertipe int. Set nilai dengan 12.
4. Buat variabel matkul bertipe int set dengan panjang kelas kuliah.
5. Buat Gen bernama data sepanjang (hari*ruang*waktu)/3.
6. Buat variabel boolean bernama cek yang berfungsi untuk mengecek apakah
kelas kuliah telah berada di dalam kromosom atau tidak.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
7. Buat variabel N bertipe int set dengan matkul.
8. Untuk i = 0 hingga panjang data lakukan langkah 9.
9. Buat gen kosong baru set matakuliah sama dengan kosong dan hari ruang
waktu sesuai dengan lokasi gen.
10. Untuk i = 0 hingga matkul lakukan langkah 11.
11. Set seluruh cek dengan false. Menandakan matakuliah belum berada di
dalam kromosom.
12. Untuk i = 0 hingga panjang data permintaan lakukan langkah 13-15
13. Masukkan seluruh kelas kuliah ke Gen yang sesuai dengan permintaan
Hari, Ruang, dan Waktu.
14. Set cek kelaskuliah permintaan dengan true. Menandakan matakuliah telah
ada di dalam kromosom.
15. Kurangi N sebanyak matakuliah permintaan.
16. Buat variabel index bertipe int set dengan 0.
17. Ketika N tidak sama dengan 0. Lakukan langkah 18-22
18. Buat variabel tangkap bertipe int set dengan nilai acak panjang data.
19. Cek apakah cek ke index sama dengan true. Jika ya, maka penambahan
nilai index dengan 1. Jika tidak, lakukan langkah 20-22.
20. Cek apakah slot gen posisi tangkap kosong. Jika ya, masukkan
kelasMatakuliah ke dalam Gen.
21. Tambahkan nilai index dengan 1.
22. Kurangi nilai N dengan 1.
23. Kembalikan data sebagai nilai balik.
24. Selesai.
Gambar 3. 6 Algoritma prosesRandom()
3.2.1.2. Evaluasi Fitness Pada Penjadwalan
Setelah kromosom terbentuk, langkah selanjutnya adalah menentukan
Nilai Fitness untuk masing masing kromosom. Nilai fitness merupakan penentu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
kromosom tersebut baik atau tidak. Nilai fitness didapat dari banyaknya
pelanggaran Hard Constraint yang dilakukan pada 1 kromosom.
Diagram Flowchart evaluasi fitness adalah sebagai berikut :
Gambar 3. 7 Flowchart Evaluasi Fitness
Adapun aturan (constraint) dan bobot fitness yang diterapkan dalam Prodi
PGSG Universitas Sanata Dharma adalah sebagai berikut :
Tabel 3. 3 Tabel Aturan Penjadwalan Matakuliah
HC Aturan Nilai Fitness
1.
Satu ruang hanya dapat
digunakan oleh satu
matakuliah di hari dan jam
tertentu.
Pelanggaran = 1 jika terdapat dua
matakuliah di ruang, jam, dan hari
yang sama.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
2. Satu dosen hanya dapat
mengajar satu matakuliah di
jam yang sama.
Pelanggaran = 1 jika ada dua atau
lebih matakuliah dosen tersebut berada
di jam yang sama.
3. Matakuliah untuk satu
semester tertentu tidak boleh
berada di jam yang sama
kecuali untuk matakuliah
yang sama dan dosen
berbeda.
Pelanggaran = 1 jika ada dua atau
lebih matakuliah sama untuk dosen
yang sama di jam yang sama.
4. Jumlah matakuliah di dalam
satu semester yang sama tidak
boleh lebih dari 3 di hari yang
sama.
Pelanggaran = 1, jika jumlah
matakuliah yang berada di hari yang
sama berjumlah > 3.
5. Dosen mengajar dalam sehari
tidak boleh lebih dari 3
matakuliah.
Pelanggaran = 1, jika terdapat lebih
dari 3 matakuliah dalam sehari yang
diampu dosen yang sama
Dalam penentuan nilai fitness, kromosom dikatakan optimal atau
merupakan sebuah solusi jika nilai fitnessnya sama dengan 0 (nol). Pada flowchart
akan memulai dengan mengeksekusi semua kromosom. Setiap kromosom akan
dieksekusi untuk mencari nilai fitness dengan menjalankan method
eksekusiAturan(). Method ini merupakan representasi dari kelima aturan Hard
Constraint pada Tabel 3.7.
Algoritma Method eksekusiAturan(Kromosom x)
1. Membuat variabel bernama parent bertipe Kromosom.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
2. Panggil method cekDosen dengan parameter x. Hasilnya disimpan ke
dalam parent.
3. Panggil method cekMatakuliah dengan parameter parent. Hasilnya
disimpan ke dalam parent.
4. Panggil method cekJumlahMatakuliah dengan parameter parent. Hasilnya
disimpan ke dalam parent.
5. Panggil method cekDosenMengajar dengan parameter parent. Hasilnya
disimpan ke dalam parent.
6. Kembalikan nilai parent;
7. Selesai.
Gambar 3. 8 Algoritma Method eksekusiAturan
Method eksekusiAturan merupakan method yang bertujuan untuk
mendapatkan nilai fitness total di setiap gen nya. Nilai fitness setiap gen akan
ditambahkan berdasarkan kelima aturan hard constrans (HC). Method
eksekusiAturan hanya mengecek HC 2 hingga HC 5 saja. HC 1 secara otomatis
sudah dapat dipenuhi oleh program karena setiap slot gen hanya dapat berisi 0
hingga 1 kelas matakuliah.
Pada method eksekusiAturan, kromosom akan dievaluasi tiap gennya. Ada
5 method yang merepresentasikan aturan penjadwalan matakuliah yang berlaku
dalam Prodi PGSD Universitas Sanata Dharma. Berikut penjelasan ke 5 method :
HC 2 : method cekDosen (parameter x bertipe kromosom)
1. Buat variabel posisi_jam bertipe array of int dengan panjangnya sesuai
dengan jumlah_ruang kuliah.
2. Buat variabel hari bertipe array of String dengan input Hari Senin sampai
Jumat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
3. Buat variabel jam bertipe int dengan nilai awal 1.
4. Buat variabel count bertipe int dengan nilai awal 0.
5. Untuk i sama dengan 0 hingga panjang posisi jam, lakukan langkah 6.
6. jika i sama dengan 0 maka set posisi_jam ke i sama dengan 0. Selain itu set
posisi_jam ke i bernilai posisi_jam ke [i-1] ditambah 4.
7. Ketika true, maka lakukan langkah 8.
8. Jika Gen ke count pada kromosom x harinya sama dengan hari yang ke 0
(senin), maka menambahkan nilai count dengan 1. Selain itu hentikan
looping.
9. Untuk i = 1 hingga panjang hari, lakukan langkah 10-22.
10. Untuk b = 0 sampai kurang dari 4 lakukan langkah 11-19.
11. Untuk j = 0 sampai kurang dari jumlah ruang, lakukan langkah 12-17.
12. Untuk k = j +1 hingga jumlah ruang, lakukan langkah 13-17.
13. Buat variabel banding1 dan banding2 bertipe String. Dimana banding1
menyimpan idDosen dari gen ke posisi_jam ke j dan banding 2 menyimpan
idDosen dari gen ke posisi_jam ke k.
14. Cek apakah banding1 sama dengan -. Jika ya maka program tidak
melakukan apapun. jika tidak, lakukan langkah 15.
15. Cek apakah banding1 sama dengan banding2. Jika ya maka lakukan
langkah 16-17.
16. Buat variabel fitness_awal bertipe int yang berisi nilai fitness dari data gen
ke posisi_jam ke k.
17. Set nilai fitness gen ke posisi)jam ke k dengan fitness_awal +1;
18. Untuk l = 0 hingga panjang posisi_jam, lakukan langkah 19.
19. Set posisi_jam ke l sama dengan posisi_jam ke l +1.
20. Untuk l = 0 hingga panjang posisi_jam, lakukan langkah 21.
21. Cek apakah l sama dengan 0. Jika ya makan posisi_jam ke l = count. jika
tidak maka posisi_jam ke l sama dengan posisi_jam ke l-1 ditambah 4.
22. Set count sama dengan count + count;
23. Kembalikan nilai x.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
24. Selesai.
Gambar 3. 9 Algoritma HC2 (cekDosen)
HC 3 : method cekMatakuliah (parameter x bertipe kromosom)
1. Buat variabel array of int posisi_jam sepanjang jumlah_ruang.
2. Buat variabel hari bertipe array of String dengan isian adalah Hari kuliah
(senin-jumat)
3. Buat variabel jam bertipe int set dengan nilai 1.
4. Buat variabel count bertipe int set dengan 0;
5. Untuk i sama dengan 0 hingga panjang posisi jam lakukan langkah 6
6. Cek apakah i sama dengan 0, Jika ya maka set posisi_jam ke i sama dengan
0.Jika tidak maka set posisi_jam ke i sama dengan posisi jam ke i-1
ditambah 4.
7. Ketika true, maka lakukan langkah 8.
8. Cek apakah Hari gen kromosom x ke count sama dengan hari ke 0 (hari
senin). Jika ya maka count ditambah 1. Jika tidak maka berhenti looping.
9. Untuk i = 1 hingga panjang hari lakukan langkah 10-27
10. Untuk b = 0 hingga 4 lakukan langkah 11-24
11. Untuk j = 0 hingga jumlah_ruang, lakukan langkah 12-21
12. Untuk k = j +1 hingga jumlah_ruang, lakukan langkah 13-21
13. Buat variabel banding1 bertipe String set dengan idMk kromosom x gen ke
posisi_jam ke j.
14. Buat variabel banding2 bertipe String set dengan idMk kromosom x gen ke
posisi_jam ke k.
15. Buat variabel banding3 bertipe String set dengan semester kromosom x gen
ke posisi_jam ke j.
16. Buat variabel banding4 bertipe String set dengan semester kromosom x gen
ke posisi_jam ke k.
17. Buat variabel banding7 bertipe String set dengan kelas kromosom x gen ke
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
posisi_jam ke j.
18. Buat variabel banding8 bertipe String set dengan kelas kromosom x gen ke
posisi_jam ke k.
19. Cek apakah banding1 sama dengan -. Jika ya, maka tidak menjalankan
apapun. Jika tidak, lakukan langkah 20-21.
20. Cek apakah banding3 sama dengan banding4, Jika ya cek juga apakah
banding7 sama dengan banding8, jika ya maka buat variabel fitness_awal
set dengan nilai fitness kromosom x gen ke posisi_jam ke k.
21. Set gen kromosom x data ke posisi_jam ke k dengan nilai_fitness +1.
22. Untuk l = 0 hingga panjang posisi_jam, lakukan langkah 22.
23. Cek apakah l sama dengan 0. Jika ya makan posisi_jam ke l = count. jika
tidak maka posisi_jam ke l sama dengan posisi_jam ke l-1 ditambah 4.
24. Set count sama dengan count + count.
25. Untuk l = 0 hingga posisi_jam lakukan langkah 26.
26. Cek apakah l sama dengan 0, jika ya maka posisi_jam ke l sama dengan
count. Jika tidak maka posisi_jam ke l sama dengan posisi jam ke l+1
ditambah 4.
27. Set count sama dengan count+count;
28. Kembalikan nilai x.
29. Selesai.
Gambar 3. 10 Algoritma HC3 (cekMatakuliah)
HC 4 : method cekJumlahMatakuliah(parameter x bertipe kromosom)
1. Buat variabel hari bertipe array of hari yang berisi hari senin - jumat.
2. Buat variabel jam bertipe int set dengan nilai 0.
3. Buat variabel count bertipe int set dengan nilai 0.
4. Buat variabel temp_count bertipe int set dengan nilai 0.
5. Buat variabel kel bertipe List set dengan nilai null.
6. Membuat kelompok kelas dalam 1 semester kemudian masukkan kelompok
kelas ke dalam kel.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
7. Ketika true maka lakukan langkah 8.
8. Cek apakah hari di Gen ke count sama dengan hari ke 0 (hari senin). Jika
ya maka lakukan penambahan count dengan 1. Jika tidak, maka hentikan
looping.
9. Set temp_count = count.
10. Untuk i = 0 hingga panjang hari, lakukan langkah 11-24
11. Untuk jam sama dengan jam hingga temp_count, Lakukan langkah 12-20.
12. Buat variabel banding2 bertipe String set dengan semester Data ke jam.
13. Buat variabel banding3 bertipe String set dengan kelas Data ke jam.
14. Untuk j = 0 hingga panjang kel, Lakukan langkah 15-20.
15. Buat variabel banding1 bertipe array String set dengan semester dan kelas
yang didapat dari kel.
16. Cek apakah banding1 ke 0 sama dengan banding2 dan banding1 ke 1 sama
dengan banding3. Jika ya, maka lakukan langkah 17-20
17. Buat variabel temp bertipe int set dengan banding1 ke2.
18. Set temp sama dengan temp+1.
19. Tambahkan nilai temp dan masukkan ke dalam kel sebagai penunjik
banyaknya kelas dengan semester sama dalam 1 hari.
20. Cek apakah temp lebih besar dari 3. Jika ya maka pelanggaran ditambahkan
di data ke jam.
21. Untuk j sama dengan 0 hingga panjang kel. Lakukan langkah 22-23.
22. Buat variabel temp. Pisahkan semester dan Kelas yang ada di kel ke j,
23. Set kel ke j dengan temp ke 0 dan temp ke 1 beserta angka 0 sebagai
penentu matakuliah semester yang berada dalam sehari.
24. Set temp_count sama dengan temp_count ditambah count.
25. Kembalikan nilai x.
26. Selesai
Gambar 3. 11 Algoritma HC4 (cekJumlahMatakuliah)
HC 5 : method cekDosenMengajar (parameter x bertipe kromosom)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
1. Buat variabel hari ebrtippe Array String dengan inputan Hari Senin hingga
Jumat.
2. Buat variabel jam bertipe int set dengan 0.
3. Buat variabel count bertipe int set dengan 0.
4. Buat variabel temp_count bertipe int set dengan 0.
5. Buat variabel kel bertipe List set dengan null.
6. Set kel dengan idDosen beserta angka 0 untuk semagai penyimpan dosen
mengajar dalam sehari.
7. Lakukan looping untuk mencari rentang hari Senin pada kromosom dengan
menambahkan count bernilai 1 setiap kali looping.
8. Set temp_count sama dengan count.
9. Untuk i = 0 hingga panjang hari, Lakukan langkah 10-20
10. Untuk jam = jam hingga temp_count lakukan langkah 11-18
11. Buat variabel banding2 bertipe String set dengan idDosen data ke jam.
12. Untuk j = 0 hingga panjang kel Lakukan langkah 13-18
13. Pisahkan kel ke j (idDosen dan jumlah dosen mengajar) dan masukkan ke
dalam variabel banding1 bertipe Array String.
14. Cek apakah banding1 ke 0 sama dengan banding2. Jika ya maka lakukan
langkah 15-18
15. buat variabel temp bertipe int. Simpan banding1 ke 1.
16. set temp sama dengan temp +1.
17. Masukkan temp ke dalam kel ke j. Menandakan bahwa idDosen ke j
mengajar sebanyak tenp kali dalam seminggu.
18. Cek apakah temp lebih besar dari 3. Jika ya maka tambahkan nilai
Pelanggaran ke dalam data ke jam.
19. Untuk j = 0 hingga panjang kel. Lakukan set jumlah dosen mengajar
menjadi 0 tiap masing - masing idDosen.
20. Set temp_count sama dengan temp_Count ditambah count yang berfungsi
untuk mengecek hari lainnya.
21. Kembalikan nilai x.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
22. Selesai.
Gambar 3. 12 Algoritma HC5 (cekDosenMengajar)
3.2.1.3. Proses Regenerasi Pada Penjadwalan
Proses regenerasi adalah proses perubahan gen-gen generasi sekarang ke
gen generasi berikutnya. Proses Regenerasi meliputi Seleksi, Crossover, dan
Mutasi.
1. Seleksi
Seleksi merupakan proses penentuan dua kromosom yang akan
menjadi calon kandidat orang tua untuk membentuk kromosom baru. Pada
proses seleksi dilakukan model seleksi Roulette Wheel Selection dengan
mengacu pada nilai fitness tersebut. Semakin kecil nilai fitnessnya, maka
kromosom tersebut dipilih sebagai orang tua untuk populasi selanjutnya.
Dalam program akan menggunakan 4 kromosom dalam 1 populasi. Semakin
kecil jumlah fitness yang dimiliki kromosom tersebut, maka akan
berdampak pada pergeseran kromosom ke slot teratas. Semakin banyak nilai
fitness nya maka akan menduduki posisi terendah. Pada proses seleksi akan
menentukan 2 Kromosom terbaik untuk dijadikan orang tua. Berikut
algoritma mengurutan Kromosom berdasarkan nilai fitnessnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
Gambar 3. 13 Flowchart Roulette Wheel Selection
2. Perkawinan Silang (Crossover)
Crossover merupakan proses penggabungan dua kromosom yang
berasal dari dua orang tua terpilih. Hasil dari penggabungan ini akan
membentuk kromosom baru. Program aplikasi yang dibuat oleh penulis
menggunakan 4 Kromosom dalam 1 populasi dimana kromosom ke-1 dan
ke-2 adalah slot yang dikhususkan untuk kandidat orang tua terpilih. Seleksi
kromosom berdasarkan seleksi Roulette Wheel Selection. Sedangkan untuk
kromosom ke-3 dan ke-4 adalah slot kromosom yang akan digunakan untuk
slot kandidat anak. Kromosom anak (3 dan 4) pada iterasi sebelumnya akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
digantikan dengan kromosom baru pada iterasi selanjutnya. Proses ini
terjadi karena seleksi alam. Untuk kasus Penjadwalan matakuliah prodi
PGSD, penulis akan menerapkan One Point Crossover. Berikut algoritma
crossover yang diterapkan pada Aplikasi penjadwalan :
Gambar 3. 14 Flowchart Crossover
Algoritma diatas menjelaskan bahwa setiap kromosom anak
(kromosom 2 dan 3) merupakan perpaduan gen kedua orang tuanya
(kromosom 0 dan 1). Pada One Point Crossover, Titik penenentu keturunan
adalah point dimana nilai point merupakan setengah dari panjang tiap
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
kromosom. Pada kasus penjadwalam PGSD, nGen pada tiap kromosom
adalah 280. Sehingga point setiap kromosom adalah :
point = nGen / 2
= 280 / 2
= 140
Sehingga ilustrasi crossover adalah sebagai berikut :
Gambar 3. 15 Ilustrasi Crossover
Gambar diatas menjelaskan bahwa kromosom (parent) 2 dan 3
terjadi seleksi alam. Seleksi alam tersebut mengubah nilai allele (kelas mata
kuliah) dari nilai allele parent. Sehingga memungkinkan child memiliki
allele dari kedua induk.
3. Mutasi (Mutation)
Mutasi merupakan penukaran gen yang satu ke gen yang lain dalam
satu kromosom. Mutasi yang dipakai dalam aplikasi adalah mutasi biasa.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
Mutasi biasa adalah mutasi yang tidak memperhatikan nilai fitness. Semua
gen memiliki probabilitas yang sama untuk dimutasi. Proses Mutasi
dilakukan atas berbagai pertimbangan diantaranya :
a. Terjadinya duplikasi Allele setelah melewati phase Crossover.
Pada phase ini. Kromosom anak setelah di crossover akan
memungkinkan terjadinya duplikasi terhadap kelas kuliah yang sama.
Selain itu kromosom anak juga memungkinkan terjadi hilangnya allele
pada satu kromosom. Pada tahap ini, Mutasi berperan untuk
menghilangkan allele duplikat kemudian menggantinya dengan allele
yang hilang dalam satu kromosom. Proses mengganti allele yang
hilang dilakukan dengan cara random slot gen hingga mendapatkan
gen yang kosong.
Gambar 3. 16 Ilustrasi Mutasi Replace Duplikat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
b. Mempercepat kromosom untuk mencapai solusi.
Pada phase ini, mutasi berperan untuk membentuk kromosom
sehingga mencapai solusi. Langkah utama yang dilakukan adalah
memindahkan nilai Allele pada slot Gen tertentu ke slot Gen lain.
Proses perpindahan setiap Genetasi (iterasi) adalah 1 slot Gen pada
setiap kromosom anak.
3.3. Perancangan Proses
3.3.1. Spesifikasi Kebutuhan Perangkat Keras dan Perangkat Lunak
Untuk menjalankan aplikasi penjadwalan PGSD, Spesifikasi perangkat
keras dan perangkat lunak yang dibutuhkan adalah :
1. Perangkat Keras (Spesifikasi Minimum)
Processor : Intel Pentium IV, 1 Ghz
Memori : 512 MB
HDD : 16 GB
2. Perangkat Lunak : Windows XP atau diatasnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
3.3.2. Use Case
SEKRETARIAT
Tambah Matakuliah
Rubah Matakuliah
Hapus Matakuliah
DATA
MATAKULIAH
Tambah Ruang
Rubah Ruang
Hapus Ruang
DATA
RUANG
Tambah Dosen
Rubah Dosen
Hapus Dosen
DATA
DOSEN
BUAT KELAS KULIAH
BUAT KELAS
PERMINTAAN
PENJADWALAN
Gambar 3. 17 Use Case Diagram
Narasi Use Case
Tabel 3. 4 Narasi Tambah Matakuliah
Recommended