SKRIPSI
PENYELESAIAN MASALAH PENJADWALAN MATA KULIAH DI FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA DENGAN MENGGUNAKAN ALGORITMA GENETIKA
Justina Adamanti 98/120059/PA/07197
Departemen Pendidikan Nasional Universitas Gadjah Mada Fakultas Matematika dan Ilmu Pengetahuan Alam Jogjakarta 2002
SKRIPSI
SOLVING LECTURE TIMETABLING PROBLEM AT THE FACULTY OF MATHEMATICS AND NATURAL SCIENCES GADJAH MADA UNIVERSITY USING GENETIC ALGORITHM
Justina Adamanti 98/120059/PA/07197
Departement of National Education Gadjah Mada University Faculty of Mathematics and Natural Sciences Jogjakarta 2002
SKRIPSI
SOLVING LECTURE TIMETABLING PROBLEM AT THE FACULTY OF MATHEMATICS AND NATURAL SCIENCES GADJAH MADA UNIVERSITY USING GENETIC ALGORITHM
Justina Adamanti 98/120059/PA/07197
Departement of National Education Gadjah Mada University Faculty of Mathematics and Natural Sciences Jogjakarta 2002
SKRIPSI
PENYELESAIAN PENYELESAIAN MASALAH PENJADWALAN MATA KULIAH DI FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA DENGAN MENGGUNAKAN ALGORITMA GENETIKA
Justina Adamanti 98/120059/PA/07197
Sebagai salah satu syarat untuk memperoleh derajat sarjana S1 Program Studi Ilmu Komputer pada Jurusan Matematika
Departemen Pendidikan Nasional Universitas Gadjah Mada Fakultas Matematika dan Ilmu Pengetahuan Alam Jogjakarta 2002
i
PENGESAHAN
PENYELESAIAN PENYELESAIAN MASALAH PENJADWALAN MATA KULIAH DI FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA DENGAN MENGGUNAKAN ALGORITMA GENETIKA
Justina Adamanti 98/120059/PA/07197
Dinyatakan lulus ujian skripsi oleh tim penguji pada tanggal 14 Oktober 2002
Tim Penguji
Drs. Ign. Purnomo, M.Kom. Pembimbing
Drs. Yusuf, M.A.
Dr. Drs. Retantyo Wardoyo, M.Sc.
Drs. Sri Mulyana, M.Kom.
Drs. Widodo Pr., M.Sc.E.E.
ii
“You don’t need to be the best, but just do the best you can do”
Kupersembahkan untuk Tingki Wingki ☺
iii
KATA PENGANTAR
Dengan memanjatkan puji dan syukur kepada kepada Tuhan Yang Maha Esa, akhirnya skripsi dengan judul PENYELESAIAN MASALAH PENJADWALAN MATA
KULIAH
PENGETAHUAN
DI ALAM
FAKULTAS
MATEMATIKA
UNIVERSITAS
GADJAH
DAN
MADA
ILMU
DENGAN
MENGGUNAKAN ALGORITMA GENETIKA ini dapat diselesaikan. Skripsi ini disusun untuk memenuhi salah satu syarat untuk memperoleh gelar Sarjana Komputer di Fakultas Matematika dan Pengetahuan Alam Universitas Gadjah Mada Yogyakarta. Penulis menyadari bahwa tanpa bantuan dari berbagai pihak, kiranya sulit untuk menyelesaikan penulisan skripsi ini. Karenanya dengan penuh kerendahan hati, penulis mengucapkan terima kasih dan penghargaan setinggi-tingginya kepada: 1. Bapak, Mama, Gati dan Nyo atas segala dukungan dukungan yang diberikan selama ini. 2. Drs. Ign. Purnomo,M.Kom, selaku dosen pembimbing yang telah memberikan memberikan bimbingan dan pengarahan sejak persiapan hingga tersusunnya skripsi ini. 3. Drs. Sri Mulyana, M.Kom, selaku dosen wali dan dosen penguji. penguji. 4. Drs. Yusuf, M.A., M.A., Dr. Drs. Retantyo Wardoyo, M.Sc., dan Drs. Widodo Widodo Pr., M.Sc.E.E. selaku dosen penguji. 5. Dr. Kusminarto atas bantuan data dan wawancara mengenai proses pembuatan pembuatan jadwal kuliah setiap semester.
iv
6. Herman, B.Sc., kepala bagian pengajaran FMIPA dan Nurochman, S.Si, M.Kom., atas bantuan data penjadwalan Fakultas MIPA. 7. Drs. Y. Suyanto, M.Ikom., Drs. Bambang Prastowo, M.Sc., beserta seluruh dosen dan staf UPT Puskom yang telah banyak membimbing dan membantu saya selama bergabung sebagai programmer di UPT Komputer Universitas Gadjah Mada. 8. Seluruh dosen Ilmu Komputer yang telah banyak membagikan ilmunya kepada saya selama saya belajar disini. 9. Teman-teman angkatan 98 Ilmu Komputer; Adit Miauw, Jessi Jessot, Tommy Gon, Fery Wu, Boaz Jr., Topan Jombret, Eko Haryadi, Antoni, Poni, Jeeny, Yenny, Bambang, Babun, Faizal, Bebek, Dedi, Aga, Johana ‘Joshua’, Epi, Muji Njet, Eko SW, Ochie, Rustam, Yoga, Aina dan semua teman FMIPA yang tidak terdaftar disini. 10. Teman-teman seperjuangan di Puskom sejak jaman kuda hingga saat terakhir disana: Mas Wahyu, Mas Bayu, Mas Yoga, Mas Asnawai, Mas Yoyok, Mas Suryo, Mas Arlin, Mbak Rini, Mas Caiq, Mas Sidu, Krishna, Awal, Edi, Tris. 11. Eka, Ning Jret, Kak Linda, Pipit beserta semua pihak yang telah banyak membantu yang tidak dapat penulis sebutkan satu persatu. Penulis menyadari sepenuhnya bahwa skripsi ini masih sangat jauh dari sempurna, namun besar harapan penulis semoga sumbangsih yang sedikit ini dapat memberikan manfaat terutama bagi perkembangan ilmu pengetahuan serta berguna bagi penelitian selanjutnya.
v
Jogjakarta, Oktober 2002
Penulis
vi
DAFTAR ISI
Lembar Judul ..................................................................................................... i Lembar Pengesahan ........................................................................................... ii Lembar Persembahan ......................................................................................... iii Kata Pengantar ................................................................................................... iv Daftar Isi ............................................................................................................ vii Daftar Tabel ....................................................................................................... x Daftar Gambar .................................................................................................... xi Intisari ................................................................................................................ xiv BAB I PENDAHULUAN .................................................................................. 1 1.1 Latar Belakang Masalah .................................................................. 1 1.2 Rumusan Masalah ............................................................................ 5 1.3 Batasan Masalah .............................................................................. 5 1.4 Manfaat Penelitian ........................................................................... 6 1.5 Tujuan Penelitian ............................................................................. 6 1.6 Sistematika Penulisan ...................................................................... 7 BAB II TINJAUAN PUSTAKA ........................................................................ 9 BAB III DASAR TEORI ................................................................................... 11 3.1 Latar Belakang Biologi .................................................................... 11 3.2 Algoritma Genetika .......................................................................... 13 3.3 Pengkodean ...................................................................................... 16 3.3.1 Pengkodean biner ( binary encoding ) ................................ 16
vii
3.3.2 Pengkodean permutasi ( permutation encoding ) ............... 17 3.3.3 Pengkodean nilai ( value encoding ) ................................... 18 3.3.4 Pengkodean pohon ( tree encoding ) .................................. 19 3.4 Operator dalam Algoritma Genetika ................................................ 23 3.4.1 Seleksi ............................................................................... 23 3.4.2 Perkawinan silang ............................................................. 28 3.4.3 Mutasi ............................................................................... 33 3.5 Update Generasi ............................................................................... 36 3.6 Parameter dalam Algoritma Genetika .............................................. 37 BAB IV URAIAN PERMASALAHAN DAN PENDEKATAN PENYELESAIAN ............................................ 41 4.1 Sekilas Tentang Sistem Penjadwalan Mata Kuliah di Lingkungan Fakultas MIPA ....................................................... 41 4.1.1 Mekanisme penjadwalan di Fakultas MIPA ..................... 42 4.1.2 Karakteristik komponen utama ......................................... 43 4.1.3 Atauran umum penjadwalan ............................................. 46 4.1.4 Aturan khusus penjadwalan di Fakultas MIPA ................ 48 4.2 Model Matematika ........................................................................... 51 4.2.1 Aturan yang harus dilaksanakan ....................................... 53 BAB V METODOLOGI PENELITIAN ............................................................ 54 5.1 Bahan dan Sumber Data ................................................................... 54 5.2 Alat ................................................................................................... 54 5.3 Parameter Penelitian ........................................................................ 54
viii
5.4 Cara Penelitian ................................................................................. 55 BAB VI HASIL PENELITIAN DAN PEMBAHASAN ................................... 57 6.1 Model Genetika ................................................................................ 57 6.2 Model Program Komputer ............................................................... 60 6.2.1 Penggunaan data dan penjelasan struktur basis data ........ 60 6.2.2 Asumsi .............................................................................. 63 6.2.3 Representasi dan pengkodean kromosom dalam program .................................................................. 65 6.2.4 Fungsi obyektif/ fungsi fitness .......................................... 66 6.2.5 Parameter algoritma genetika dalam program .................. 74 6.2.6 Pembagian ruang ............................................................... 82 6.2.7 Deskripsi program ............................................................. 83 6.2.8 Penerapan program pada penjadwalan kuliah di FMIPA . 93 BAB VII PENUTUP .......................................................................................... 102 7.1 Kesimpulan ...................................................................................... 102 7.2 Saran ................................................................................................ 103 DAFTAR PUSTAKA ........................................................................................ 104 LAMPIRAN CONTOH HASIL PROGRAM .................................................... 105 LAMPIRAN DATA PENDUKUNG ................................................................. 119
ix
DAFTAR TABEL
Tabel 4.1 Daftar jurusan dan program studi di Fakultas MIPA ......................... 41 Tabel 4.2 Contoh dosen dan mata kuliah yang diampunya ............................... 43 Tabel 4.3 Contoh paket mata kuliah .................................................................. 44 Tabel 4.4 Daftar jam kuliah ............................................................................... 45 Tabel 4.5 Ruang dan kapasitasnya ..................................................................... 45 Tabel 4.6 Contoh penjadwalan mata kuliah ....................................................... 46 Tabel 6.1 Nilai pinalti untuk masing-masing aturan .......................................... 66 Tabel 6.2 Kombinasi default parameter genetika .............................................. 94 Tabel 6.3 Hasil uji seleksi turnamen, rangking dan roda roulette ..................... 95 Tabel 6.4 Statistika seleksi turnamen, rangking dan roda roulette .................... 95 Tabel 6.5 Hasil uji perkawinan silang banyak titik dan rekombinasi ................ 97 Tabel 6.6 Statistika perkawinan silang .............................................................. 97 Tabel 6.7 Hasil uji elitsm dan tanpa elitsm ........................................................ 98 Tabel 6.8 Statistika elitsm dan tanpa elitsm ....................................................... 98 Tabel 6.9 Hasil uji jumlah populasi 20, 40, 60 dan 100 .................................... 100 Tabel 6.10 Statistika jumlah populasi 20, 40, 60 dan 100 ................................. 100
x
DAFTAR GAMBAR
Gambar 3.1 Ruang pencarian x dengan fungsi optimum f(x) ............................ 14 Gambar 3.2 Contoh kromosom dengan pengkodean biner ................................ 16 Gambar 3.3 Contoh kromosom dengan pengkodean permutasi ........................ 17 Gambar 3.4 Contoh kromosom dengan pengkodean nilai ................................. 18 Gambar 3.5 Contoh kromosom dengan pengkodean pohon .............................. 20 Gambar 3.6 Contoh populasi dengan 5 kromosom beserta fitnessnya .............. 24 Gambar 3.7 Probabilitas terpilihnya suatu kromosom dalam roda roulette ....... 24 Gambar 3.8 Keadaan sebelum dirangking ......................................................... 27 Gambar 3.9 Keadaan setelah dirangking ........................................................... 27 Gambar 3.10 Contoh perkawinan silang 1-titik pada pengkodean biner ........... 29 Gambar 3.11 Contoh perkawinan silang 2-titik pada pengkodean biner ........... 30 Gambar 3.12 Contoh perkawinan silang seragam pada pengkodean biner ....... 30 Gambar 3.13 Contoh perkawinan silang aritmatika pada pengkodean biner .... 30 Gambar 3.14 Contoh perkawinan silang rekombinasi pada pengkodean biner ................................................................................................................... 31 Gambar 3.15 Contoh perkawinan silang 1-titik pada pengkodean permutasi ... 32 Gambar 3.16 Contoh perkawinan silang 1-titik pada pengkodean nilai bilangan bulat .................................................................................................................... 32 Gambar 3.17 Contoh perkawinan silang 2-titik pada pengkodean nilai bilangan bulat .................................................................................................................... 32 Gambar 3.18 Contoh perkawinan silang 1-titik pada pengkodean pohon ......... 33
xi
Gambar 3.19 Contoh mutasi pada pengkodean biner ........................................ 34 Gambar 3.20 Contoh mutasi pada pengkodean permutasi ................................. 35 Gambar 3.21 Contoh mutasi pada pengkodean nilai riil dengan nilai yang ditambahkan atau dikurangkan dengan 0,10 ...................................................... 35 Gambar 3.22 Contoh kromosom sebelum dan sesudah mutasi dengan pengkodean pohon ............................................................................................. 36 Gambar 6.1 Model kromosom dengan komponen dosen, mata kuliah , ruang dan waktu ................................................................................................. 58 Gambar 6.2 Model Fase I ................................................................................... 60 Gambar 6.3 Model Fase II ................................................................................. 60 Gambar 6.4 Skema basis data ............................................................................ 63 Gambar 6.5 Tampilan utama program ............................................................... 83 Gambar 6.6 Form login ...................................................................................... 84 Gambar 6.7 Form input semester aktif ............................................................... 86 Gambar 6.8 Form input data program studi ....................................................... 86 Gambar 6.9 Form input jenis ruangan ............................................................... 87 Gambar 6.10 Form input data ruangan .............................................................. 87 Gambar 6.11 Form input data mata kuliah ........................................................ 88 Gambar 6.12 Form input data dosen .................................................................. 88 Gambar 6.13 Form input waktu kesediaan dosen .............................................. 89 Gambar 6.14 Form input data hari dan jam kuliah ............................................ 89 Gambar 6.15 Form input data jenis paket mata kuliah ...................................... 90 Gambar 6.16 Form input data isi paket mata kuliah .......................................... 90
xii
Gambar 6.17 Form input data penjadwalan kuliah ............................................ 91 Gambar 6.18 Form konfigurasi parameter genetika .......................................... 91 Gambar 6.19 Form konfigurasi tampilan file log .............................................. 92 Gambar 6.20 Form proses penjadwalan dengan algoritma genetika ................. 93 Gambar 6.21 Grafik perbandingan seleksi turnamen, rangking dan roda roulette ................................................................................................ 96 Gambar 6.22 Grafik perbandingan perkawinan silang banyak titik dan rekombinasi ........................................................................................................ 97 Gambar 6.23 Grafik perbandingan elitsm dan tanpa elitsm .............................. 99 Gambar 6.24 Grafik perbandingan jumlah populasi .......................................... 100
xiii
INTISARI
PENYELESAIAN MASALAH PENJADWALAN MATA KULIAH DI FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA DENGAN MENGGUNAKAN ALGORITMA GENETIKA
Justina Adamanti 98/120059/PA/07197
Penyusunan jadwal kuliah setiap semester adalah suatu pekerjaan yang sangat rumit karena harus mengkombinasikan antara mata kuliah yang ditawarkan, waktu kesediaan dosen, ruangan, paket mata kuliah yang diambil oleh mahasiswa dan dilengkapi dengan sejumlah aturan yang harus dilaksanakan. Pembuatan jadwal baru sangat menyita waktu, sedangkan masih banyak pekerjaan lain yang juga harus diselesaikan. Oleh karena itu tak jarang bagian pengajaran fakultas menggunakan jadwal terdahulu. Masalah penjadwalan kuliah merupakan salah satu masalah NP-complete, yaitu masalah yang susah untuk dicari penyelesaiannya tetapi jika ditemukan suatu solusi akan sangat mudah mengecek kebenar annya. Algoritma genetika adalah salah satu algoritma heuristik yang dapat dipergunakan untuk menyelesaikan masalah NP-complete. Penggunaan algoritma genetika untuk menyelesaikan seputar masalah penjadwalan telah banyak dipergunakan oleh para peneliti bidang ini. Salah satunya adalah penyelesaian masalah penjadwalan mata kuliah yang lengkap dengan semua aturannya yang dikerjakan oleh Ho Sung C. Lee sebagai tesisnya di Universitas Ateneo, Filipina. Pada skripsi ini, penulis mencoba menyelesaikan masalah penjadwalan mata kuliah menggunakan model yang juga dipergunakan oleh Ho Sung C. Lee, tetapi dengan beberapa modifikasi pada implementasinya sebagai penyesuaian dengan sistem perkuliahan di Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Gadjah Mada pada khususnya dan sistem perkuliahan di Indonesia pada umumnya.
xiv
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah
Pengertian jadwal menurut kamus besar bahasa Indonesia adalah pembagian waktu berdasarkan rencana pengaturan urutan kerja; daftar atau tabel kegiatan atau rencana kegiatan dengan pembagian waktu pelaksanaan yang terperinci, sedangkan pengertian penjadwalan adalah proses, cara, perbuatan menjadwalkan atau memasukkan dalam jadwal. Menurut Heizer dan Render, 1996 (Lee,2000) penjadwalan berhubungan dengan alokasi yang memuaskan antara sumber daya dan waktu untuk mencapai kelancaran tugas organisasi . Universitas adalah perguruan tinggi yang terdiri atas sejumlah fakultas yang menyelenggarakan pendidikan ilmiah dan/atau profesional dalam sejumlah disiplin ilmu tertentu. Pelaksanaan semua kegiatan di universitas memerlukan banyak tenaga kerja, sedangkan pada kenyataannya jumlah tenaga yang ada terbatas karena berbagai alasan, salah satunya adalah kebijakan jumlah pegawai. Oleh karena itu banyak sekali kegiatan yang harus dijadwalkan untuk mengurangi konflik yang tidak seharusnya terjadi dan efisiensi dari tenaga kerja yang jumlahnya terbatas. Beberapa contoh kegiatan di universitas yang memerlukan penjadwalan antara lain penjadwalan proses penerimaan mahasiswa baru, penjadwalan rapat pejabat universitas dan fakultas, penjadwalan pelatihan keahlian tertentu bagi pegawai
universitas,
penjadwalan
proses
1
herregistrasi
mahasiswa
lama,
2
penjadwalan dan pembagian lokasi mahasiswa pada kegiatan KKN (Kuliah Kerja Nyata), penjadwalan mata kuliah dan ujian di setiap fakultas dan sejumlah masalah penjadwalan yang lain. Penjadwalan yang diteliti pada penelitian ini akan berkisar pada masalah penjadwalan kegiatan utama akademik universitas, atau secara sederhananya kegiatan mengajar dan menguji mahasiswa. Ada 2 macam masalah penjadwalan yang bisa dibuat dari kegiatan mengajar dan menguji, yaitu masalah penjadwalan mata kuliah dan masalah penjadwalan ujian mata kuliah. Keduanya adalah hal yang hampir sama, setidaknya pada komponen-komponen utama pendukungnya. Masalah
penjadwalan yang dipilih lebih spesifik untuk diselesaikan pada
penelitian kali ini adalah masalah penjadwalan mata kuliah. 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, 1994). Komponen-komponen utama dari penjadwalan mata kuliah adalah dosen, mahasiswa, mata kuliah yang ditawarkan, waktu dan ruangan kelas. Hasil dari proses penjadwalan mata kuliah merupakan pengelompokan komponenkomponen utama secara bersama-sama dengan memperhatikan aturan-at uran yang telah ditetapkan dalam penjadwalan mata kuliah (Lee,2000).
3
Masalah penjadwalan mata kuliah menjadi sangat kompleks dan tergolong masalah NP-complete ketika melibatkan puluhan bahkan ratusan dosen, mahasiswa, ruangan dan mata kuliah yang ditawarkan karena semakin banyak kombinasi dari komponen yang mungkin terjadi, dimana dalam pemilihan kombinasi harus diperhatikan aturan-aturan yang telah ditetapkan dalam pembuatan jadwal. Masalah NP-complete (nondeterministic polynomial ) adalah masalah yang sangat sulit ditemukan solusinya ( intractable problem ), yang tidak dapat diselesaikan dengan waktu polinomial, tetapi jika suatu solusi untuk satu masalah NP-complete ditemukan, misalnya dengan ditemukannya suatu algoritma waktu polinomial (polynomial-time algorithm), maka untuk semua masalah yang tergolong
NP-complete
lainnya
juga
dapat
dicari
solusinya
dengan
mentransformasikan algoritma tersebut ke masalah NP-complete yang lain (Oskar, 1999). Umumnya masalah penjadwalan mata kuliah diselesaikan dengan membuat tabel jadwal secara manual, cara ini membutuhkan waktu yang lama untuk menyelesaikannya dan seringkali semakin banyak jumlah anggota komponen yang terlibat maka semakin banyak aturan penjadwalan yang tidak dapat dipenuhi. Cara lain adalah dengan menggunakan penjadwalan yang telah dipergunakan tahun atau semester sebelumnya dengan beberapa modifikasi sesuai keadaan dan anggota komponen yang baru. Algoritma genetika merupakan salah satu jenis utama dari algoritma evolusioner (evolutionary algorithm ) yang diinspirasi oleh teori evolusi dalam
4
konsep biologi oleh Darwin, dimana di dalam proses evolusi dapat terjadi perkawinan silang (cross over ) dan mutasi ( mutation). Algoritma genetika dimulai dengan memilih himpunan penyelesaian, digambarkan dengan kromosom, yang disebut dengan populasi. Solusi dari satu populasi diambil untuk membentuk populasi baru, dimana pemilihannya tergantung dari fitness terbaiknya. Hal ini dimotivasi dengan harapan bahwa populasi yang baru akan lebih baik dibandingkan populasi terdahulu. Proses ini dilakukan berulang-ulang hingga kondisi tertentu terpenuhi. Algoritma genetika biasanya digunakan untuk menyelesaikan masalah kombinatorial dan NP-complete yang tergolong sulit. Algoritma ini telah diterapkan dalam berbagai masalah sain dan teknik, menurut Mitchell dan Forrest, 1993 (Oskar, 1999) antara lain pada masalah optimation , automatic programming ,
machime and robot learning , economic models , immune system models , ecological models , population genetic models , interaction between evolution and learning , models of social systems , serta masalah-masalah yang berkisar pada penyelesaian masalah ( problem solving ) dan permodelan ( modelling ). Pada penelitian mengenai penyelesaian masalah penjadwalan mata kuliah kali ini penulis memilih menggunakan algoritma genetika karena ketertarikan sebagai sesuatu yang baru, dimana algoritma ini berbeda dengan algoritma yang biasa digunakan. Keunikannya adalah mengikuti pola evolusi makhluk hidup dan sering menggunakan bilangan-bilangan yang dihasilkan secara random. Dari bilangan-bilangan yang dihasilkan secara random, tetapi sesuai aturan-aturan yang
5
ada, dapat dihasilkan suatu solusi yang sama atau mendekati target yang ingin dicapai. Bahasa pemrograman yang akan digunakan untuk mengembangkan program adalah Delphi dengan basis data Interbase. Alasan penulis menggunakan bahasa Delphi karena merupakan bahasa prosedural, sehingga dapat dengan mudah memecah bagian-bagian proses algoritma genetik menjadi prosedur prosedur, sedangkan basis data Interbase karena Delphi mendukung penggunaan basis data tersebut dan memberikan sejumlah kemudahan.
1.2 Rumusan Masalah
Dari uraian di atas dapat dirumuskan masalah yang diteliti, yaitu menyelesaikan masalah pembuatan jadwal mata kuliah di Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Gadjah Mada, dengan menggunakan algoritma genetika.
1.3 Batasan Masalah
Masalah penjadwalan yang diteliti adalah penjadwalan mata kuliah, yaitu penempatan dosen dan kelas kuliah dan hanya akan digunakan untuk menyelesaikan masalah penjadwalan pada strata S1 reguler di Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Gadjah Mada. Kasus yang diambil adalah penjadwalan mata kuliah dengan situasi dan kondisi semester genap, tahun akademik 2001/2002.
6
1.4 Manfaat Penelitian
Hasil penelitian diharapkan dapat memberi manfaat yang berarti bagi Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Gadjah Mada, bagi penulis dan bagi ilmu pengetahuan pada umumnya. Bagi
Fakultas
MIPA,
program
yang
dihasilkan
diharap
dapat
dikembangkan lebih lanjut untuk membantu menyelesaikan masalah penjadwalan mata kuliah secara komputerisasi. Bagi penulis, dapat mempelajari, memahami dan menerapkan algoritma genetika untuk menyelesaikan masalah penjadwalan kuliah. Bagi ilmu pengetahuan di Indonesia, penelitian ini diharapkan dapat memberikan alternatif penyelesaian secara komputerisasi masalah penjadwalan mata kuliah di tingkat perguruan tinggi yang diterapkan pada sistem perkuliahan Indonesia yang pada gilirannya akan memperluas cakrawala penggunaan algoritma genetika di Indonesia.
1.5 Tujuan Penelitian
Tujuan dari penelitian yang akan dilakukan adalah: 1. Membuat model genetika untuk masalah penjadwalan mata kuliah. 2. Membuat algoritma genetika untuk penyelesaian penjadwalan mata kuliah. 3. Membuat program penjadwalan kuliah sebagai bentuk penerapan dari algoritma genetika yang diteliti. 4. Menerapkan program penjadwalan kuliah pada data penjadwalan kuliah di Fakultas Matematika dan Ilmu Pengetahuan Alam.
7
1.6 Sistematika Penulisan
Untuk lebih memperjelas penyampaian materi dari penulisan penelitian ini, maka penulisan akan dibagi menjadi beberapa bab. Bab pertama, Pendahuluan. Bab ini menjelaskan tentang latar belakang pemilihan materi, perumusan masalah, batasan masalah, manfaat penelitian, tujuan penelitian serta sistematika penulisan penelitian ini. Bab kedua, Tinjauan Pustaka. Bab ini menyajikan penelitian sejenis yang dilakukan oleh pihak lain. Bab ketiga, Landasan Teori. Bab ini memberikan dasar teori tentang algoritma genetika yang digunakan untuk menyelesaikan masalah. Bab keempat, Uraian Permasalahan dan Pendekatan Penyelesaian. Bab ini berisi tentang sistem penjadwalan di Fakultas Matematika dan Ilmu Pengetahuan Alam, komponen utama, aturan-aturan yang digunakan dan model matematika dari masalah penjadwalan mata kuliah. Bab kelima, Metodologi Penelitian. Bab ini berisi keterangan bahan dan sumber data, alat dan tools, parameter penelitian yang digunakan, dan cara penelitian dilakukan. Bab keenam, Hasil Penelitian dan Pembahsan. Bab ini merupakan inti dari penulisan penelitian ini karena berisi hasil dan pembahasan dari penelitian yang dilakukan. Bab ketujuh, Penutup. Bab ini berisi kesimpulan dari uraian yang telah disampaikan dari bab-bab sebelumnya serta saran-saran dari penulis untuk
8
penelitian dan pengembangan penyelesaian masalah penjadwalan dengan algoritma genetika selanjutnya.
BAB II TINJAUAN PUSTAKA
Penyelesaian masalah penjadwalan kuliah dengan algoritma genetika juga telah dilakukan oleh banyak pihak, diantaranya adalah Penjadwalan kuliah di Ateneo de Manila University dibuat oleh Ho sung C. Lee, yang juga merupakan tesisnya untuk memperoleh gelar master pada matematika terapan. Kekhasan dari algoritma genetika yang disajikan oleh Lee adalah pemisahan kromosom menjadi 2 bagian untuk mengurangi kompleksitas komputasi yang dilakukan. Bagian pertama menyelesaikan masalah penempatan waktu untuk mata kuliah yang ada, dimana setiap mata kuliah telah memiliki dosen pengampu, dan bagian kedua menyelesaikan masalah penempatan ruangan bagi setiap mata kuliah. Hal serupa juga diterapkan pada penelitian yang telah dilakukan oleh penulis. Penelitian mengenai penyelesaian masalah penjadwalan kuliah dengan algoritma genetika juga pernah dilakukan di jurusan teknik elektronika, Fakultas Teknik Industri, Institut Teknologi Surabaya, oleh Achmad Basuki, Mochammad Sahal dan Mauridhi Heri Purnomo. Selain penjadwalan kuliah mereka juga menyelesaikan masalah penjadwalan ujian. Model yang digunakan dalam pembuatan jadwal adalah timetable, yaitu satu jadwal jadi adalah satu individu, kromosom dari individu adalah susunan jadwal berdasarkan hari, jam dan ruang sedangkan gen adalah satu hari, satu jam, satu mata kuliah dan satu dosen. Sebagian besar ide dasar dalam penelitian ini akan diambil dari tesis Ho Sung C. Lee dengan beberapa perubahan agar dapat diterapkan pada sistem
9
10
perkuliahan di Fakultas Matematika dan Ilmu Pengetahuan Alam, UGM, yaitu menggunakan sistem perhitungan SKS dan penempatan yang pasti bagi setiap mahasiswa pada suatu kelas mata kuliah, misalnya seorang mahasiswa yang mendapat kelas A untuk mata kuliah kalkulus, maka ia harus mengikuti kuliah di kelas A, bukan di kelas yang lain.
BAB III DASAR TEORI
Algoritma genetika merupakan algoritma heuristik atau pendekatan yang menerapkan proses seleksi alam dan evolusi yang dikemukakan oleh Charles Darwin. Algoritma genetik pertama kali diperkenalkan oleh John Holland pada tahun 1960-an dan pengembangan lebih lanjut dilakukan oleh Holland bersama murid-murid dan rekan sekerjanya di Universitas Michigan pada tahun 1960-an dan 1970-an. Sebagai
ide
dasar
heuristik,
algoritma
genetika
dimulai
dengan
sekumpulan solusi yang direpresentasikan dengan kromosom, disebut populasi. Semua solusi dari satu populasi diambil dan digunakan untuk membentuk populasi baru. Hal ini dimotivasi dengan harapan populasi baru akan lebih baik daripada populasi lama. Solusi terpilih yang merupakan orangtua pembentuk keturunan (offspring ), dipilih berdasarkan lingkungannya atau nilai fitness, semakin baik maka semakin besar kesempatan yang dimiliki untuk bertahan dan bereproduksi. Hal ini dilakukan berulang kali hingga memenuhi beberapa kondisi penghentian, misalnya jumlah generasi atau tercapainya hasil yang dicari.
3.1 Latar Belakang Biologi
Setiap makhluk hidup terdiri atas banyak sel. Di dalam setiap sel terdapat sekumpulan kromosom yang sama. Kromosom merupakan sederetan DNA ( Deoxyribonucleid acid ) yang berperan sebagai pembentuk individu secara
11
12
keseluruhan. Setiap kromosom terdiri dari banyak gen yang merupakan blok-blok DNA. Setiap gen berperan menyandikan suatu protein tertentu, atau dapat dikatakan bahwa setiap gen berperan menyandikan suatu karakteristik (bentuk bentuk tubuh dan juga aturan perkembangan dari makhluk hidup), misalnya warna mata. Kemungkinan dari karakteristik disebut allele . Setiap gen memiliki posisi pada kromosom yang disebut locus. Genome1 adalah kumpulan lengkap dari semua materi genetik (semua kromosom) atau sekumpulan gen-gen. Kumpulan dari gen-gen tertentu dalam genome disebut genotype. Phenotype suatu organisme adalah bentuk fisiknya, hasil
perkembangan
dari genotype.
Morphogenesis
adalah
proses
dari
mendekodekan suatu genotype dan membentuk phenotype yang sesuai. Istilah mutasi digunakan untuk menggambarkan sembarang proses yang menyebabkan perubahan pada nilai gen, sedangkan istilah rekombinasi digunakan untuk menggambarkan proses yang mengambil 2 atau lebih genotype, dan memproduksi genotype baru dengan mencampurkan gen-gen yang dipilih. Dalam sistem biologi, bentuk rekombinasi yang sering digunakan adalah perkawinan silang (crossover ). Proses ini memotong kromosom pada titik p, kemudian mengawinkan bagian-bagian tersebut untuk membentuk kromosom baru. Operasi ini sering disebut perkawinan silang 1-titik, selain itu juga terdapat perkawinan silang 2-titik hingga orde yang lebih tinggi.
1
Dalam peristilahan algoritma genetika, istilah genome dan kromosom dianggap sinonim
13
Proses lain dalam sistem alam yang juga berhubungan dengan genetika adalah inversi2 (inversion ) yang memberikan jalan bagi gen-gen yang “baik” untuk berpindah lebih dekat sesamanya. Ini meningkatkan probabilitas bahwa gen-gen yang “baik” tersebut akan ditransmisikan bersama ke generasi mendatang.
3.2 Algoritma Genetika
Algoritma genetika dapat didefinsikan sebagai suatu model dari machine
learning yang menurunkan kelakuannya dari beberapa mekanisme evolusi di alam, dari suatu populasi yang merupakan representasi abstrak dari kandidat solusi bagi suatu masalah optimisasi yang diseleksi, dikombinasi, dimutasi dan kemudian dihilangkan atau dipertahankan, berdasarkan fitness relatifnya. Sifat dari algoritma genetika adalah mencari kemungkinan-kemungkinan dari kandidat solusi untuk mendapatkan suatu solusi yang optimal bagi penyelesaian masalah. Ruang cakupan dari semua solusi yang layak ( feasible) yaitu obyek-obyek diantara solusi yang sesuai dinamakan ruang pencarian ( search
space). Tiap titik dalam ruang pencarian merepresentasikan satu solusi yang layak yang dapat ditandai dengan nilai fitness yang sesuai dengan masalah. Solusi yang dicari dalam algoritma genetika adalah titik (1 atau lebih) di antara solusi yang layak dalam ruang pencarian. Sifat dari pencarian inilah yang menyebabkan algoritma genetika baik diterapkan untuk menyelesaikan masalah NP-complete.
2
Proses inversi dalam algoritma genetika sudah jarang digunakan karena mahalnya komputasi
14
Dalam ruang pencarian, hal yang harus dipikirkan sehubungan dengan penggunaan algoritma genetika untuk masalah optimisasi adalah bahwa algoritma genetika harus dapat melakukan eksploitasi titik-titik solusi dalam ruang pencarian yang telah diperoleh kemudian mengevaluasinya, dan mengeksplorasi titik-titik baru dalam ruang pencarian, sedangkan eksploarsi penting untuk menghindari terperangkapnya pencarian dalam optimum lokal ( local optima ), yaitu titik-titik dalam ruang pencarian yang optimum pada bagian ruang pencarian tertentu saja, sedangkan dalam optimisasi, hasil yang diharapkan adalah optimum global ( global optima ), yaitu titik-titik yang paling optimum dalam seluruh ruang pencarian (Oskar, 1999).
f(x)
Optimum
Optimum Lokal
Optimum Lokal
x Gambar 3.1 Ruang pencarian x dengan fungsi optimum f(x) Terdapat satu titik optimum global dan tiga titik optimum lokal
Istilah fungsi evaluasi dan fungsi fitness sering saling dipertukarkan penggunaannya. Akan tetapi, adalah berguna untuk membedakan kedua fungsi tersebut dalam algoritma genetika. Fungsi evaluasi, atau fungsi obyektif, merupakan suatu pengukuran performansi terhadap sekumpulan parameter
15
tertentu. Fungsi fitness mentransformasikan pengukuran performansi tersebut dalam suatu alokasi kesempatan bereproduksi. Evaluasi terhadap suatu barisan yang menyatakan sekumpulan parameter tertentu adalah independen dari evaluasi terhadap barisan-barisan lain. Fitness
suatu barisan selalu didefinisikan
berdasarkan anggota-anggota lain dalam populasi. Secara umum fitness didefinisikan f i / f dengan f i adalah fungsi evaluasi dengan kromsom i dan f adalah evaluasi rata-rata dari semua kromosom dalam populasi. Secara sederhana, proses algoritma genetika adalah sebagai berikut: 1. [Mulai] Membangun populasi random sebanyak n kromosom (sesuai dengan masalahnya) 2. [Fitness] Evaluasi setiap fitness f(x) dari setiap kromosom x pada populasi 3. [Populasi baru] Membuat populasi baru dengan mengulang langkah-langkah berikut sampai populasi lengkap. 1. [Seleksi] Pilih 2 kromosom orangtua dari populasi berdasarkan
fitnessnya (semakin besar fitnessnya semakin besar kemungkinannya untuk terpilih) 2. [Perkawinan
silang]
Sesuai
dengan
besarnya
kemungkinan
perkawinan silang, orangtua terpilih disilangkan untuk membentuk anak. Jika tidak ada perkawinan silang, maka anak merupakan salinan dari orangtuanya. 3. [Mutasi ] Sesuai dengan besarnya kemungkinan mutasi, anak dimutasi pada setiap lokus (posisi pada kromosom). 4. [Penerimaan] Tempatkan anak baru pada populasi baru.
16
4. [Ganti] Gunakan populasi yang baru dibentuk untuk proses algoritma selanjutnya. 5. [Tes] Jika kondisi akhir terpenuhi, berhenti, dan hasilnya adalah solusi terbaik dari populasi saat itu. 6. [Ulangi] Ke nomer 2.
3.3 Pengkodean
Pengkodean adalah cara untuk merepresentasikan masalah kedalam bentuk kromosom. Ada beberapa cara pengkodean dan pemilihannya tergantung dari masalah yang akan diselesaikan. Berikut ini adalah beberapa jenis pengkodean yang sering digunakan
3.3.1 Pengkodean biner (binary encoding )
Pengkodean biner adalah pengkodean yang paling umum digunakan karena algoritma genetika awalnya menggunakan pengkodean ini. Pada pengkodean biner setiap kromosom merupakan barisan bit 0 atau 1, seperti dapat dilihat pada gambar berikut ini :
Kromosom A
101100101100101011100101
Kromosom B
111111100000110000011111
Gambar 3.2 Contoh kromosom dengan pengkodean biner
Pengkodean biner memberikan banyak kemungkinan kromosom meskipun hanya memiliki jumlah allele yang sedikit, 1 atau 0. Tetapi pengkodean ini sering
17
tidak sesuai untuk beberapa masalah dan kadang harus dilakukan pengkoreksian setelah perkawinan silang dan mutasi. Contoh masalah yang sesuai menggunakan pengkodean biner adalah masalah ransel (knapsack ), dimana terdapat beberapa jenis benda dengan ukuran dan berat yang berbeda sedangkan kapasitas ransel terbatas. Permasalahannya adalah memilih sejumlah barang untuk memaksimumkan nilai dari barang-barang tersebut di dalam ransel, tetapi total ukuran barang-barang tersebut tidak melebihi dari ukuran ransel itu sendiri. Masalah ransel ini dapat dienkodekan dengan barisan bit, dimana jumlah bit menyatakan jumlah barang yang ada, sehingga setiap bit berhubungan dengan setiap benda yang ada di dalam ransel. Bit 1 berarti benda ada di dalam ransel sedangkan 0 berarti benda tidak berada di dalam ransel.
3.3.2 Pengkodean permutasi ( permutation encoding )
Pengkodean permutasi digunakan dalam masalah yang memerlukan pengurutan data ordering ( problem ), seperti masalah wiraniaga (travelling
salesman problem ), atau masalah pengurutan tugas ( task ordering problem ). Pada
pengkodean
ini
setiap
kromosom
merupakan
barisan
angka
merepresentasikan angka pada urutan.
Kromosom A
153264798
Kromosom B
856723149
Gambar 3.3 Contoh kromosom dengan pengkodean per mutasi
yang
18
Pengkodean
permutasi
hanya
berguna
pada
masalah
pengurutan.
Perkawinan silang dan mutasi yang dilakukan pada pengkodean ini harus menghasilkan kromosom yang memiliki konsistensi urutan. Contoh masalah yang dapat diselesaikan dengan pengkodean ini adalah masalah wiraniaga. Terdapat sejumlah kota dan jarak diantara semua kota itu. Seorang wiraniaga harus mengunjungi semua kota itu, tetapi sebisa mungkin dia tidak perlu melakukan terlalu banyak perjalanan, sehingga harus ditemukan urutan kota yang akan dikunjungi dengan jumlah total jarak yang minimal. Masalah ini dapat dienkodekan dengan pengkodean permutasi dimana setiap angka dalam kromosom mewakili setiap kota yang harus dikunjungi dalam urutan.
3.3.3 Pengkodean nilai (value ( value encoding )
Pengkodean nilai dapat digunakan pada masalah yang mempunyai nilai yang rumit, dimana nilai yang dienkodekan langsung merupakan representasi dari masalah. Contohnya adalah pengkodean data yang menggunakan angka riil yang akan menjadi susah jika menggunakan pengkodean biner karena setiap angka riil tidak dapat direpresentasikan secara tepat hanya dalam bentuk bit 1 atau 0.
Kromosom A
1.2324, 5.3243, 0.4556, 2.3293, 2.4545
Kromosom B
A, B, D, J, E, I, F, J, D, H, D, I, E, R, J
Kromosom C
(back), (back), (right), (forward), (left)
Gambar 3.4 Contoh kromosom dengan pengkodean nilai
19
Dalam pengkodean nilai, setiap kromosom merupakan barisan dari beberapa nilai. Nilai bisa berupa berupa apa saja, seperti bilangan bilangan biasa, bilangan riil, karakter sampai dengan obyek-obyek yang rumit. Pengkodean nilai sangat baik untuk beberapa masalah khusus, dilain sisi perkawinan silang dan mutasi yang diperlukan untuk pengkodean ini seringkali memerlukan pengembangan tersendiri yang lebih spesifik pada masalah. Contoh masalah yang menggunakan pengkodean ini adalah masalah pencarian bobot pada jaringan saraf (neural network ). ). Terdapat sebuah jaringan saraf dengan arsitekturnya. Permasalahnya adalah mencari bobot masukan dari neuron-neuron untuk melatih jaringan supaya memberikan keluaran yang diinginkan.
Masalah ini dapat dienkodekan menggunakan pengkodean nilai
bilangan riil, dengan gen-gen dalam genome menyatakan korespondensi bobot bobot pada masukan untuk jaringan saraf.
3.3.4 Pengkodean pohon (tree ( tree encoding )
Pengkodean pohon lebih banyak digunakan untuk menyusun program atau ekspresi, bagi pemrograman genetika ( genetic programming ). Dalam pengkodean pohon, setiap kromosom merupakan pohon dari sejumlah obyek, seperti fungsi atau perintah di dalam bahasa pemrograman. Pengkodean pohon sangat baik bagi penyusunan program. Bahasa pemrograman LISP sering digunakan untuk melakukan pengkodean pohon, karena program di dalamnya dapat direpresentasikan ke dalam bentuk ini dan dapat dengan mudah
20
dilakukan parse menjadi sebuah pohon, sehingga perkawinan silang dan mutasi dapat dilakukan relatif lebih mudah. Contoh masalah yang direpresentasikan dengan pengkodean pohon adalah masalah mencari fungsi berdasarkan nilai-nilai yang diberikan. Diberikan beberapa nilai masukan dan keluaran. Permasalahannya adalah mencari fungsi yang akan memberikan nilai keluaran terbaik (dekat dengan yang diinginkan) untuk semua masukan. Masalah ini dapat dienkodekan ke dalam pengkodean pohon dengan kromosom merupakan fungsi-fungsi yang dinyatakan dalam pohon.
Kromosom A
Kromosom B
+
do until
x
/
do until
do until
5
(+x (/5y))
( do_until step wall )
Gambar 3.5 Contoh kromosom dengan pengkodean pohon
Beberapa kriteria yang ditemukan untuk memutuskan apakah suatu pengkodean genetik adalah efisien dan dapat diharapkan hasilnya antara lain (Oskar, 1999) : 1. Kelengkapan (completeness ) Suatu pengkodean dikatakan lengkap jika setiap titik dalam ruang pencarian dapat dienkodekan (Goldberg, 1989 dalam Oskar, 1999). Keadaan ini menjamin semua solusi dapat diakses oleh algoritma genetik. Misal dalam
21
masalah penjadwalan, pengkodean harus mampu mengenkodekan semua kemungkinan pilihan hari dan jam kuliah. 2. Ketertutupan (closure) Suatu pengkodean genetik adalah tertutup jika semua individu yang dihasilkan oleh penerapan operator genetik dapat dienkodekan ke phenotype yang valid (Goldberg, 1989 dalam Oskar, 1999), yang tentu didapat dari orangtua yang sudah merupakan individu yang valid. Jika keadaan ini dipenuhi, ruang pencarian dapat dijaga tetap minimum. Tidak ada titik dalam ruang pencarian yang tidak menyatakan solusi yang valid dapat diakses oleh algoritma genetik. Ini akan menghindari waktu yang terbuang bagi algoritma genetik untuk mencari bagian dari ruang pencarian yang tidak berisi solusi valid. Misal dalam masalah penjadwalan, kemungkina penggunaan ruang tetap dijaga meskipun pemilihan hari dan jam kuliah dilakukan secara acak untuk menghindari terjadinya jadwal yang tidak mungkin, dimana penggunaan ruang dengan kapasitas tertentu pada waktu yang sama lebih banyak dari jumlah ruang dengan kapasitas tertentu yang tersedia. 3. Kedekatan (proximity) Kriteria ini dipenuhi jika pengkodean yang digunakan untuk peningkatan perlahan dari parameter dapat dijamin. 4. Skema pendek ( short schemata ) Kriteria
ini
dipenuhi
jika
parameter-parameter
masalah
yang
berdekatan sesamanya, juga dikodekan berdekatan sesamanya dalam barisan
22
genotype. Parameter relatif berdekatan antara sesamanya jika mereka menyelesaikan bagian tertentu masalah bersamaan. Kriteria ini tidak selalu dapat dijamin, yang kadang memerlukan peninjauan lebih dalam dari masalah. Namun adalah sangat bermanfaat meletakkan blok bngunan berdekatan bersamaan dalan genotype. 5. Kemampatan (compactness) Pengkodean genetik adalah mampat jika panjang dari genotype adalah minimum (Gruan, 1994 dalam Oskar, 1999). Kemampatan dapat digunakan juga sebagai suatu pengukuran. Lebih pendek pengkodean genetik suatu solusi ( genotype), lebih sedikit langkah dari algoritma genetik yang harus dilakukan untuk mencari solusi, dengan demikian lebih cepat suatu solusi dapat dicapai. 6. Non-isomorphism Pengkodean genetik memenuhi kriteria ini jika setiap genotype merepresentasikan solusi yang unik ( phenotype). Aspek dari penghindaran isomorphism telah tercakup dalam kriteria kemampatan. Jika banyak genotype yang berbeda mengenkodekan phenotype yang sama, berarti pengkodeannya tidak mampat. Selanjutnya, kesempatan untuk menghasilkan keturunan yang jelek meningkat sebagai hasil dari mengkombinasikan dua individu, yang mempunyai pengkodean genetik sepenuhnya berbeda, membawa pada kehilangan informasi yang berharga untuk keduanya.
23
7. Modularitas Pengkodean genetik adalah modular, ketika solusi parsial (modul/ blok bangunan) ditulis hanya sekali dan suatu mekanisme tersedia sehingga mereka dapat direferensikan untuk sembarang titik dalam pengkodean. (Gruan, 1994 dalam Oskar, 1999).
3.4 Operator dalam Algoritma Genetika
Operator-operator pada algoritma genetika yang sering digunakan adalah seleksi, perkawinan silang dan mutasi. Semua operator tersebut memegang peranan penting bagi keberhasilan algoritma genetika dalam menyelesaikan masalah. Pemilihan jenis operator yang akan digunakan tergantung dari masalah yang akan diselesaikan. Hal yang harus diperhatikan adalah menghindari terjadinya konvergensi prematur, yaitu mencapai solusi optimum yang belum waktunya, dalam arti bahwa solusi yang diperoleh adalah solusi optimum lokal. Selain itu, untuk menjamin bahwa seluruh ruang pencarian dapat dijangkau oleh alogritma genetika, perbedaan (diversity) diantara kromosom dalam populasi merupakan hal yang penting.
3.4.1 Seleksi
Seleksi merupakan proses pemilihan individu/ kromosom dari generasi lama untuk dijadikan orangtua yang akan saling dikawin silang untuk membentuk individu baru di generasi baru. Yang menjadi permasalahan adalah bagaimana
24
cara memilih kromosom untuk dijadikan orangtua. Berdasarkan teori evolusi Darwin, kromosom yang terbaik seharusnya dapat bertahan hidup dan membentuk keturunan baru. Ada beberapa jenis metode seleksi, berikut ini adalah beberapa metode seleksi yang sering digunakan.
3.4.1.1 Seleksi roda roulette (roulette wheel selection)
Pada metode seleksi ini, orangtua dipilih berdasarkan nilai fitnessnya, semakin baik nilai fitness nya maka semakin besar kemungkinannya untuk terpilih. Diandaikan semua kromosom diletakkan pada sebuah roda roulette , besarnya kemungkinan bagi setiap kromosom adalah tergantung dari nilai fitnessnya seperti pada contoh berikut :
Kromosom Fitness A
15
B
5
C
10
D
5
E
5
Gambar 3.6 Contoh populasi dengan 5 kromosom beserta fitnessnya
A 37,5%
B 12,5%
E C 25%
D
12,5%
12,5%
Gambar 3.7 Probabilitas terpilihnya suatu kromosom dalam roda roulette
25
Probabilitas masing-masing individu merupakan hasil pembagian antara
fitness masing-masing individu dengan total fitness dalam populasi. Dari contoh di atas, kromosom A memiliki probabilitas 37,5% untuk terpilih sebagai orangtua pembentuk keturunan baru pada setiap pemilihan kromosom (setiap roda diputar). Secara algoritma, seleksi roda roulette dapat dituliskan sebagai berikut: begin
// jumlahkan fitness semua kromosom dari populasi P S = sumfitness(P);
// bangkit bilangan acak dari 0 sampai S r = generaterandom(0,S);
// jumlahkan fitness populasi dari 0 sampai s, // jika s > r maka populasi tersebut dipilih s = 0; t = 1; while s < r do s = s + fitness(kromosom, t); t = t +1; end while; return kromosom(t); end
Skema seleksi dengan roda roulette ini adalah berdasarkan skala fitness ( fitness scale). Karena terpilihnya suatu kromosom dalam populasi untuk dapat berkembang biak adalah sebanding dengan fitnessnya, maka akan terjadi semacam
tradeoff antara ekplorasi dan ekplotasi jika terdapat satu atau kelompok kecil kromosom yang mempunyai fitness yang baik yaitu antara mengeksplorasi bagian-bagian baru dalam ruang pencarian, atau terus mengeksplotasi informasi yang telah diperoleh. Kecenderungan kromosom yang baik untuk terpelihara terus
26
dapat membawa ke hasil optimum lokal atau konvergensi dini ( premature
convergence) ke suatu hasil yang bukan optimum global. Sebaliknya jika semua kromosom dalam populasi mempunyai fitness yang hampir sama, maka seleksi ini akan menjadi seleksi yang bersifat acak.
3.4.1.2 Seleksi rangking (rank selection)
Metode seleksi roda roulette akan memiliki masalah ketika terdapat perbedaan fitness yang jauh.
Sebagai contoh, jika fitness kromosom terbaik
adalah 90 % dari semua roda roulette dapat menyebabkan kromosom yang lain memiliki kesempatan yang sangat kecil untuk dapat terpilih. Seleksi ranking terlebih dahulu merangking atau mengurutkan kromosom di dalam populasi berdasarkan fitnessnya kemudian memberi nilai fitness baru berdasarkan urutannya. Kromosom dengan fitness terburuk akan memiliki fitness baru bernilai 1, terburuk kedua bernilai 2 dan seterusnya, sehingga kromosom yang memiliki fitness terbaik akan memiliki nilai fitness N, dimana N adalah jumlah kromosom di dalam populasi. Sebagai ilustrasi dapat dilihat pada gambar berikut yang juga merupakan contoh dari metode seleksi roda roulette tadi :
27
Kromosom Fitness A
15
B
5
C
10
D
5
E
5
Gambar 3.8 Keadaan sebelum dirangking
Kromosom Fitness Fitness Baru B
5
1
D
5
2
E
5
3
C
10
4
A
15
5
Gambar 3.9 Keadaan setelah dirangking
Setelah proses pengurutan dan pemberian nilai fitness baru, setiap kromosom akan memiliki kesempatan yang lebih adil untuk terpilih. Tetapi metode ini dapat menyebabkan konvergensi menjadi lambat, karena kromosom terbaik tidak terlalu berbeda dengan yang lainnya.
3.4.1.3 Seleksi turnamen (tournament ( tournament selection) selection )
Seleksi turnamen merupakan variasi antara seleksi roda roulette dan seleksi rangking. rangking.
Sejumlah k kromosom tertentu dari populasi beranggota n
kromosom (k ≤ n) dipilih secara acak dengan probabilitas yang sama. Dari k kromosom yang terpilih kemudian akan dipilih satu kromosom dengan fitness terbaik, yang diperoleh dari hasil pengurutan rangking fitness semua kromosom terpilih. Perbedaannya dengan seleksi roda roulette adalah pemilihan kromosom
28
yang akan digunakan untuk berkembang biak tidak berdasarkan skala fitness dari populasi. Untuk k = 1, seleksi turnamen akan menjadi sama dengan seleksi secara acak karena hanya melibatkan satu kromosom. Untuk k = 2, maka akan dipilih dua kromosom dari populasi secara acak, kemudian akan dipilih salah satu berdasarkan nilai fitnessnya.
Biasanya yang sering digunakan digunakan adalah adalah k = 2,
tergantung dari jumlah kromosom yang tedapat di dalam populasi.
3.4.2 Perkawinan silang
Operator perkawinan silang digunakan untuk membentuk keturunan baru berdasarkan orangtua terpilih. Operator ini paling dominan dalam algoritma genetika dibandingkan dengan operator mutasi. Jumlah kromosom yang terlibat adalah 2 kromosom. Perkawinan silang dilakukan dengan harapan kromosom-kromosom baru akan mempunyai bagian baik dari kromosom-kromosom lama dan tidak menutup kemungkinan menjadi kromosom-kromosom yang lebih baik Berikut ini akan dibahas beberapa jenis variasi perkawinan silang dalam algoritma genetika sehubungan dengan jenis pengkodean kromosom yang digunakan.
3.4.2.1 Perkawinan silang untuk pengkodean biner
Pengkodean biner merupakan jenis pengkodean yang paling sederhana sehingga banyak variasi operasi perkawinan silang dapat dilakukan. Beberapa jenis perkawinan silang tersebut adalah :
29
3.4.2.1.1 Perkawinan silang 1-titik
Proses perkawinan silang 1-titik dimulai dengan pemilihan 1 titik pada barisan bit kromosom secara acak sebagai titik perkawinan silang. Kromosom baru akan dibentuk dengan cara menyalin barisan bit orangtua pertama dari bit pertama sampai titik perkawinan silang, sedangkan sisanya disalin dari orangtua kedua.
Kromosom orangtua 1
11001011
Kromosom orangtua 2 11011 111 Keturunan
11001111
Gambar 3.10 Contoh perkawinan silang 1-titik pada pengkodean biner
3.4.2.1.2 Perkawinan silang 2-titik
Proses perkawinan silang 2-titik diawali dengan pemilihan 2 titik perkawinan silang dari barisan bit kromosom secara acak. Kromosom baru akan dibentuk dengan cara menyalin barisan bit kromosom orangtua pertama dari bit pertama sampai dengan titik perkawinan silang pertama dan dari titik perkawinan silang kedua sampai dengan bit terakhir, sedangkan sisanya, yaitu dari titik perkawinan silang pertama sampai titik perkawinan silang kedua disalin dari orangtua kedua.
30
Kromosom orangtua 1
11001011
Kromosom orangtua 2 11 011111 Keturunan
11011111
Gambar 3.11 Contoh perkawinan silang 2-titik pada pengkodean biner
3.4.2.1.3 Perkawinan silang seragam
Perkawinan silang seragam menghasilkan kromosom baru dengan cara menyalin bit-bit secara acak dari kedua orangtuanya.
Kromosom orangtua 1 1 1001011 Kromosom orangtua 2
11011111
Keturunan
11011111
Gambar 3.12 Contoh perkawinan silang seragam pada pengkodean biner
3.4.2.1.4 Perkawinan silang aritmatik
Kromosom baru dihasilkan dari operasi aritmatika yang dilakukan terhadap kedua orangtuanya.
Kromosom orangtua 1 11001011 Kromosom orangtua 2 11011111 Keturunan (AND)
11001011
Gambar 3.13 Contoh perkawinan silang aritmatika pada pengkodean biner
31
3.4.2.1.5 Perkawinan silang rekombinasi
Versi paling sederhana dari rekombinasi adalah memilih secara acak dari semua nilai gen yang terdapat pada kedua orangtua untuk setiap gen pada anak. Berikut adalah contoh dari perkawinan silang rekombinasi:
Kromosom orangtua 1 15 9 12 14 Kromosom orangtua 2 13 4 16 2 Keturunan 1
15 4 16 14
Keturunan 2
14 9 12 1
Gambar 3.14 Contoh perkawinan silang rekombinasi pada pengkodean biner
3.4.2.2 Perkawinan silang untuk pengkodean permutasi
Pada pengkodean permutasi, jenis perkawinan silang yang sering dipergunakan adalah perkawinan silang 1-titik karena kesederhanaan prosesnya dapat menjaga konsistensi urutan nilai pada kromosom. Jenis perkawinan silang yang terdapat pada pengkodean biner tidak dapat dipergunakan pada pengkodean ini karena tidak dapat menjamin terjaganya konsistensi urutan nilai pada kromosom. Proses perkawinan silang 1-titik dimulai dengan pemilihan satu titik perkawinan silang. Dari permutasi pertama sampai dengan titik perkawinan silang disalin dari orang tua pertama, sedangkan sisanya didapatkan dengan cara melihat satu persatu nilai pada orang tua kedua, jika belum ada pada kromosom keturunan, maka nilai tersebut ditambahkan.
32
Kromosom orangtua 1
123456789
Kromosom orangtua 2
453689721
Keturunan (AND)
123456879
Gambar 3.15 Contoh perkawinan silang 1-titik pada pengkodean permutasi
3.4.2.3 Perkawinan silang untuk pengkodean nilai
Semua metode perkawinan silang yang terdapat pada pengkodean biner dapat diterapkan pada pengkodean nilai karena tidak perlu memperhatikan urutan seperti pada pengkodean permutasi. Berikut adalah contoh perkawinan silang pada pengkodean nilai:
Kromosom orangtua 1
10 39 45 12 89 34 1 3 90 48 23 72 25 37
Kromosom orangtua 2 43 13 2 66 49 56 10 89 53 20 75 99 4 8 Keturunan
10 39 45 12 89 34 10 89 53 20 75 99 4 8
Gambar 3.16 Contoh perkawinan silang 1-titik pada pengkodean nilai bilangan bulat
Kromosom orangtua 1
10 39 45 12 89 34 1 3 90 48 23 72 25 37
Kromosom orangtua 2 43 13 2 66 49 56 10 89 53 20 75 99 4 8 Keturunan
10 39 45 66 49 56 10 89 90 48 23 72 25 37
Gambar 3.17 Contoh perkawinan silang 2-titik pada pengkodean nilai bilangan bulat
3.4.2.4 Perkawinan silang untuk pengkodean pohon
Proses perkawinan silang pada pengkodean pohon dimulai dengan pemilihan satu titik perkawinan silang pada kedua orangtua, kemudian bagian dari
33
orangtua yang berada di bawah titik perkawinan silang dipertukarkan untuk menghasilkan anak baru.
+ x
* /
5
y
3
+ 2
+ z
x
* /
3 9
(+x(/5y))
(*-(3(+z9)2)
Kromosom
Kromosom
orangtua 1
orangtua 2
+
z
5
2 y
9
(+x(/3(+z9)))
(*(-5y)2)
Keturunan 1
Keturunan 2
Gambar 3.18 Contoh perkawinan silang 1-titik pada pengkodean pohon
3.4.3 Mutasi
Mutasi merupakan proses mengubah nilai dari 1 atau beberapa gen dalam suatu kromosom. Tujuannya adalah untuk membantu mempercepat terjadinya perbedaan diantara semua kromosom dalam populasi sehingga pencarian dapat menjelajah keseluruh ruang pencarian, tetapi mutasi tidak boleh terlalu sering dilakukan karena akan membuat algoritma genetika berubah menjadi pencarian acak. Proses mutasi dalam biologi adalah mengubah isi allele gen pada suatu
locus dengan nilai allele yang lain. Proses mutasi dilakukan secara acak, sehingga tidak selalu menjamin bahwa setelah proses mutasi akan diperoleh kromosom dengan fitness yang lebih baik dibandingkan dengan sebelum mutasi. Oleh karena
34
itu terjadi kontraversi dalam penerapannya pada algoritma genetika. Mutasi seringkali tetap dipergunakan hanya saja dengan probabilitas mutasi yang kecil. Tentang probabilitas perkawinan silang dan mutasi akan dijelaskan pada bagian berikut pada bab ini. Operator mutasi merupakan operasi pada suatu kromosom tertentu. Berikut adalah beberapa cara mutasi yang sering diterapkan dalam algoritma genetika menurut jenis pengkodean kromosomnya :
3.4.3.1 Mutasi pada pengkodean biner
Mutasi dalam pengkodean biner merupakan operasi yang sangat sederhana. Bit pada kromosom yang terpilih secara acak (atau menggunakan skema tertentu) diinversi nilainya, diubah nilainya menjadi lawannya.
Kromosom sebelum mutasi
10010111
Kromosom sesudah mutasi
10010 011
Gambar 3.19 Contoh mutasi pada pengkodean biner
3.4.3.2 Mutasi pada pengkodean permutasi
Proses mutasi pada pengkodean biner tidak dapat diterapkan pada pengkodean permutasi karena konsistensi urutan permutasi harus selalu diperhatikan. Salah satu cara yang dapat dilakukan adalah dengan memilih dua posisi ( locus) pada kromosom dan kemudian saling dipertukarkan
35
Kromosom sebelum mutasi
123456897
Kromosom sesudah mutasi
183456297
Gambar 3.20 Contoh mutasi pada pengkodean permutasi 3.4.3.3 Mutasi pada pengkodean nilai
Proses mutasi pada pengkodean biner dapat diterapkan pada pengkodean nilai karena tidak perlu menjaga konsistensi adanya urutan pada kromosom. Tetapi yang dilakukan bukanlah menginversi bit, melainkan tergantung dari jenis nilai yang dipergunakan. Misalnya nilai yang berupa bilangan riil dimutasi dengan cara saling menukar nilai dua gen yang terdapata pada kromosom, tetapi cara ini tidak memberikan manfaat untuk menjamin adanya perbedaan dalam populasi, semua kromosom dengan mudah memiliki nilai yang sama dan akhirnya terjadi konvergensi prematur. Cara lain yang lebih baik adalah dengan memilih sembarang posisi gen pada kromosom, kemudian ditambahkan atau dikurangkan dengan suatu nilai kecil tertentu yang diambil secara acak. Cara ini juga berlaku pengkodean dengan bilangan bulat. Selain itu cara mutasi lain yang relevan dapat digunakan.
Kromosom sebelum mutasi
1,43 1,09 4,51 9,11 6,94
Kromosom sesudah mutasi
1,43 1,19 4,51 9,01 6,94
Gambar 3.21 Contoh mutasi pada pengkodean nilai riil dengan nilai yang ditambahkan atau dikurangkan dengan 0,10
3.4.3.4 Mutasi pada pengkodean pohon
Mutasi dapat dilakukan antara lain dengan mengubah operator (+, -, *, /) atau nilai yang terkandung pada suatu verteks pohon yang dipilih. Atau dapat juga
36
dilakukan pemilihan dua verteks dari pohon dan saling mempertukarkan operator atau nilainya.
++ xx
-/ 55
yy
(+x(/5y))
(+x(-5y))
Gambar 3.22 Contoh kromosom sebelum dan sesudah mutasi dengan pengkodean pohon
3.5 Update Generasi
Setelah proses seleksi, perkawinan silang dan mutasi yang dilakukan terhadap suatu populasi, proses berikutnya adalah pemilihan kromosom untuk membentuk generasi baru yang disebut update generasi. Dalam algoritma genetik Holland, proses
update yang dilakukan adalah
update
secara
generasi
( generational update ), yaitu menggantikan keseluruhan kromosom pada generasi sebelumnya dengan kromosom-kromosom yang didapat dari hasil seleksi, perkawinan silang dan mutasi. Penekanan selektif pada skema update ini seluruhnya berasal dari orangtua. Selain itu terdapat skema update secra kontinu (continuous update ) yang mengizinkan orangtua dan anak untuk bercampur dalam satu generasi. Mulanya dipilih k orangtua secara acak, kemudian dibuat anak sebanyak k dengan memilih orangtua tersebut secara seragam. Kromosom pada populasi baru merupakan pemilihan kromosom antara orangtua terpilih dan anak yang dihasilkan
37
berdasarkan fitnessnya. Dengan cara ini penekanan selektif berasal seluruhnya dari pemilihan terhadap yang bertahan hidup ( survivor ). Skema update lainnya adalah steady-state update, dimana dilakukan pemilihan dua orangtua dari populasi yang kemudian digunakan untuk membentuk 1 (atau 2) anak. Hasilnya digunakan untuk menggantikan : 1. Orangtuanya 2. Kromosom terjelek dalam populasi 3. Kromosom tertua dalam populasi Suatu strategi bantuan yang baik untuk digunakan dengan skema
continous update adalah elitism, yang berarti mempertahankan kromosomkromosom baik dalam populasi lama dengan menyertakannya lagi pada populasi baru. Sejumlah kromosom terbaik pada populasi lama dapat hilang karena proses perkawinan silang dan mutasi. Secara teori, elitism dapat meningkatkan kemampuan dari algoritma genetika karena mempertahankan kromosom yang baik dari populasi lama, tetapi kadangkala hal itu justru dapat menyebabkan konvergensi prematur karena nilai fitness terjebak pada optimum lokal.
3.6 Parameter dalam Algoritma Genetika
Dua parameter dasar yang penting dari algoritma genetika adalah probabilitas perkawinan silang dan probabilitas mutasi. Probabilitas perkawinan silang menyatakan seberapa sering proses perkawinan silang akan terjadi diantara 2 kromosom orangtua. Jika tidak terjadi perkawinan silang, keturunan merupakan salinan mutlak dari orangtuanya. Jika
38
terjadi perkawinan silang, keturunan dibuat dari bagian-bagian kromosom orangtua. Jika probabilitas perkawinan silang 100%, maka keseluruhan keturunan dibuat dengan perkawinan silang. Jika probabilitas perkawinan silang 0%, maka seluruh generasi baru dibuat dari salinan kromosom-kromosom dari populasi lama, tetapi ini tidak berarti bahwa generasi baru sama dengan yang lama karena adanya penekanan selektif. Meskipun perkawinan silang bertujuan untuk mendapatkan kromosom yang memiliki bagian baik dari orangtuanya atau bahkan menjadi lebih baik dari orangtuanya, ada baiknya juga jika kita membiarkan beberapa bagian dari populasi untuk bertahan ke generasi berikutnya. Dari hasil penelitian yang sudah dilakukan oleh praktisi algoritma genetika terbukti bahwa angka probabilitas perkawinan silang sebaiknya cukup tinggi, yaitu antara 80% sampai 95% untuk memberikan hasil yang baik. Untuk beberapa masalah tertentu probabilitas perkawinan silang 60% memeberikan hasil yang lebih baik (Obitko, 1998). Probabilitas mutasi menyatakan seberapa sering bagian-bagian kromosom akan dimutasikan. Jika tidak ada mutasi, keturunan diambil/ disalin langsung setelah perkawinan silang tanpa perubahan. Jika mutasi dilakukan, bagian-bagian keromosom diubah. Jika probabilitas mutasi 100%, semua kromosom diubah. Jika probabilitas mutasi 0%, tidak ada yang diubah. Probabilitas mutasi dalan algoritma genetika seharusnya diberi nilai yang kecil. Umumnya probabilitas mutasi diset untuk mendapatkan rata-rata satu mutasi per kromosom, yaitu angka/
allele = 1/ (panjang kromosom). Dari hasil yang sudah pernah dicoba ternyata angka probabilitas terbaik adalah antara 0,5% sampai 1%. Mutasi diperlukan
39
untuk menjaga perbedaan kromosom dalam populasi, untuk menghindari terjadinya konvergensi prematur. Parameter lain yang juga ikut menentukan efisiensi kinerja algoritma genetika adalah ukuran populasi yaitu banyakknya kromosom dalam satu populasi atau satu generasi. Jika terlalu sedikit
kromosom dalam populasi, algoritma
genetika mempunyai kemungkinan yang sedikit untuk melakukan perkawinan silang dan hanya sebagian kecil dari ruang pencarian yang dieksplorasi. Sebaliknya, jika terlalu banyak jumlah kromosom, algoritma genetika cenderung lambat dalam menemukan solusi. Ukuran populasi yang sering digunakan oleh peneliti yang sudah ada adalah antara 20 sampai 30, tetapi kadang ukuran 50 sampai 100 dilaporkan baik. Beberapa penelitian menujukkan bahwa menambah jumlah populasi tidak akan terlalu berguna karena tidak mempercepat penyelesaian masalah. Riset juga menunjukkan bahwa ukuran populasi yang terbaik ditentukan dari jenis pengkodean, artinya, jika terdapat ukuran kromosom 32 bit, ukuran populasi seharusnya juga 32, begitu pula jika ukuran kromosom 16 bit, maka ukuran populasi adalah 16 (Obitko, 1998). Penekanan selektif dilakukan dengan memilih jenis seleksi yang sesuai. Umumnya jenis seleksi roda roulette sering digunakan, tetapi kadang seleksi rangking dilaporkan lebih baik. Terdapat juga beberapa metode lebih lanjut yang dapat mengubah parameter seleksi yang digunakan selama ekseskusi algoritma genetika. Prinsip elitism disarankan untuk digunakan jika tidak digunakan metode lain untuk menyimpan solusi terbaik pada suatu populasi ke populasi berikutnya. Sebaikya juga dicoba seleksi steady state untuk proses update populasi.
40
Terakhir adalah jenis pengkodean, perkawinan silang dan mutasi. Jenis pengkodean dipilih berdasarkan pada masalah dan juga ukuran instance-nya. Begitu pula untuk pemilihan jenis operator perkawinan silang dan mutasi.
BAB IV URAIAN PERMASALAHAN DAN PENDEKATAN PENYELESAIAN
4.1 Sekilas Tentang Sistem Penjadwalan Mata Kuliah di Lingkungan Fakultas MIPA
Fakultas matematika dan ilmu pengetahuan alam memiliki 3 jurusan, yaitu jurusan matematika, jurusan kimia dan jurusan fisika. Program studi yang ada di masing-masing jurusan adalah sebagai berikut:
Tabel 4.1 Daftar jurusan dan program studi di Fakultas MIPA Jurusan Program studi Matematika
D3 Komputer dan Sistem Informasi D3 Rekam Medis S1 Ilmu Komputer S1 Matematika S1 Statistika S1 Ilmu Komputer Ekstensi S2 Ilmu Komputer S2 Matematika
Fisika
D3 Elektronika dan Instrumentasi S1 Elektronika dan Instrumentasi S1 Fisika S1 Geofisika S2 Fisika
Kimia
S1 Kimia S1 Kimia Ekstensi S2 Kimia
41
42
Semua program studi memulai proses belajar dan mengajarnya pada jam 07.00 pagi sampai dengan jam 17.00 sore, kecuali program studi S1 Ilmu Komputer program ekstensi yang menggunakan jam malam dan S1 Kimia program ekstensi yang mulai pada jam 12.00 siang.
4.1.1 Mekanisme penjadwalan di Fakultas MIPA
Penjadwalan mata kuliah dilakukan oleh bagian akademik, dibawah pengawasan langsung dari Wakil Dekan I. Berikut ini adalah mekanisme penyusunan jadwal yang dilakukan di Fakultas MIPA berdasarkan hasil wawancara dengan Dr. Kusminarto, Wakil Dekan I. Proses penyusunan penjadwalan mata kuliah di Fakultas MIPA diawali dengan penyusunan program kurikulum untuk mata kuliah wajib dan mata kuliah pilihan setiap semester di masing-masing program studi, setelah itu diusulkan nama dosen yang akan mengajar matakuliah yang ditawarkan. Jika suatu jurusan mewajibkan mahasiswanya mengambil mata kuliah milik jurusan lain, maka jurusan akan meminta dosen dari jurusan penyelenggara mata kuliah atau menitipkan mahasiswanya pada kelas di jurusan penyelenggara mata kuliah. Jumlah kelas untuk suatu mata kuliah diputuskan berdasarkan peminat tahun lalu jika kurikulum masih sama, dan berdasarkan perkiraan jika kurikulumnya baru. Selanjutnya daftar mata kuliah dan dosen dari program studi dirapatkan pada masing-masing jurusan. Hal-hal yang dibahas pada rapat itu antara lain masalah mata kuliah dan penugasan dosen untuk jurusan itu sendiri, jurusan lain dan fakultas lain. Sebagai salah satu fakultas ilmu dasar, Fakultas MIPA berkewajiban menugaskan dosen-dosennya untuk memberikan kuliah di fakultas
43
lain yang menyelenggarakan ilmu dasar seperti fisika dasar, kimia dasar dan kalkulus. Hasil dari rapat masing-masing jurusan diserahkan kepada fakultas dan selanjutnya digunakan untuk menyusun jadwal kuliah. Proses pertama yang dilakukan di fakultas adalah menyusun penjadwalan waktu untuk semua mata kuliah berdasarkan kesediaan waktu yang diberikan oleh dosen. Pembagian ruangan untuk mata kuliah dilakukan setelah proses pengisian kartu rencana studi oleh mahasiswa, karena pemilihan ruangan memerlukan data jumlah peminat mata kuliah.
4.1.2 Karakteristik komponen utama
Untuk memahami aturan-aturan yang akan digunakan, pada bagian ini akan dijelaskan karakteristik dari masing-masing variabel yang merupakan komponen utama dari sistem penjadwalan yang digunakan di Fakultas MIPA dengan menggunakan contoh. Komponen yang pertama adalah dosen dan mata kuliah. Pemberian tugas mengajar suatu mata kuliah kepada seorang dosen dilakukan di luar penjadwalan. Sebagai contoh Sri Mulyana, Drs,. M.Kom mengampu 2 mata kuliah yaitu MMS1801 dan MMS-2702.
Tabel 4.2 Contoh dosen dan mata kuliah yang diampunya Dosen Mata kuliah yang diampu Sri Mulyana, Drs., M.Kom
MMS-1801, MMS-2702
Heri Pratomo, Drs., M.Kom
MMS-2802, MMS-4803
Ign. Purnomo, Drs., M.Kom
MMS-2602, MMS-2805
Y. Suyanto, Drs., M.Kom
MMS-2806
44
Komponen berikutnya adalah mahasiswa, sebagai peserta kelas mata kuliah. Mahasiswa disarankan untuk mengambil paket mata kuliah setiap semester jika nilai indeks prestasinya memenuhi syarat dan jika belum mengambil mata kuliah itu. Selain itu mahasiswa diperbolehkan mengambil mata kuliah lain jika memenuhi persyaratan tertentu seperti jumlah total sks yang boleh diambil dan telah mengikuti mata kuliah prasyarat untuk mata kuliah yang akan diambil. Berikut adalah contoh beberapa paket mata kuliah yang harus diambil oleh mahasiswa program studi ilmu komputer :
Tabel 4.3 Contoh paket mata kuliah Mata kuliah wajib
Semester I
MMS 1601, MMS 1651, MMS 1901, MMS 1911, MMS 1101, MMS 1202, MMS 1107, UNU 1010
II
MMS 1801, MMS 1851, MMS 1701, MMS 1702, MMS 1912, MMS 1102, UNU 1
III
MMS 2801, MMS 2601, MMS 2701, MMS 2703, MMS 2753, MMS 2401
IV
MMS 2802, MMS 2702, MMS 2602, MMS 2803, MMS 2853, MMS 2603
V
MMS 3601, MMS 3801, MMS 3701, MMS 3802, MMS 3852, MMS 3605, MMS 3921
VI
MMS 3603, MMS 3602, MMS 3652, MMS 3803, MMS 3
Komponen utama yang juga memiliki peranan penting adalah satuan waktu kuliah, yaitu durasi waktu per jam kuliah. Satuan waktu yang digunakan di Fakultas MIPA adalah 50 menit per jam kuliah yang berbobot 1 SKS. Berikut adalah daftar urutan satuan waktu yang digunakan:
45
Jam kuliah
Tabel 4.4 Daftar jam kuliah Waktu Jam kuliah
Waktu
1
07.00-07.50
6
12.00-12.50
2
08.00-08.50
7
13.00-13.50
3
09.00-09.50
8
14.00-14.50
4
10.00-10.50
9
15.00-15.50
5
11.00-11.50
10
16.00-16.50
Komponen terakhir adalah ruangan, sebagai tempat penyelenggaraan kuliah. Semua ruang kuliah di Fakultas MIPA dapat digunakan pada semua jam kuliah yang ada. Kapasitas masing-masing ruangan berbeda-beda tergantung dari besarnya ruangan. Berikut adalah contoh ruang dan kapasitas maksimalnya:
Tabel 4.5 Ruang dan kapasitasnya Nama Ruangan Kapasitas Maks B1.02
150
K1
100
K3
80
K4
80
K5
80
Kombinasi semua komponen utama membentuk penjadwalan mata kuliah. Penjadwalan mata kuliah dikatakan optimal jika semua aturan yang ditentukan dapat terpenuhi. Berikut adalah contoh penjadwalan mata kuliah yang dibentuk dari kombinasi komponen-komponen utama:
46
Mata kuliah
Tabel 4.6 Contoh penjadwalan mata kuliah Hari Jam Ruang Dosen
MFS-3600
Senin
6
K6
Abdul Ro’uf, Drs., M.Ikom
MMS-4604
Sabtu
8
U2.05
Agfianto E P, Drs., M.Si.
MMS-3603
Rabu
6
M2.14
Agus Harjoko, Dr
MMS-3202
Kamis
2
K3
Al. Sutjiana, Drs., M.Sc
MMS-2702
Rabu
5
S2.04
Azhari, Drs., MT
4.1.3 Aturan umum penjadwalan
1. Jadwal kuliah yang dihasilkan hanya baik bagi periode waktu tertentu, dalam
hal ini semester, setelah itu komponen-komponen penyusunnya bisa mengalami perubahan sehingga jadwal yang lalu tidak dapat dipergunakan lagi. Keadaan dari semua komponen utama sangat mempengaruhi proses penyusunan jadwal kuliah, oleh karena itu jadwal hanya dibuat untuk satu periode proses belajar dan mengajar, yaitu satu semester. Sebagai contoh, peserta kelas mata kuliah tertentu setiap semester bisa bertambah atau berkurang sehingga mempengaruhi pemilihan ruangan yang digunakan. Contoh lain adalah pergantian dosen yang mengampu mata kuliah, mengajar mata kuliah yang sama setiap semester bisa membuat dosen merasa bosan, meskipun mata kuliah itu adalah spesialisasinya. Untuk mengatasi hal itu biasanya diadakan pertukaran mata kuliah yang diampu diantara sesama dosen.
Meskipun demikian, kebanyakan dosen menginginkan tidak ada
perubahan jadwal untuk semester berikutnya jika tidak ada perubahan kurikulum, mengingat mereka juga bekerja pada pihak lain selain mengajar.
47
2. Jadwal kuliah merupakan kombinasi yang mungkin dari komponen-komponen
utama, yaitu dosen, ruang, waktu, dan mahasiswa pada suatu kelas mata kuliah tertentu. Ketidaklengkapan dari komponen utama menyebabkan jadwal tidak dapat digunakan. Sebuah kelas mata kuliah tidak mungkin diselenggarakan jika tidak ada dosen yang mengampu, tidak ada alokasi waktu, tidak disediakan ruang kuliah, atau tidak ada mahasiswa yang mengambil mata kuliah itu.
3. Dua kelas mata kuliah yang berbeda tidak dapat berada pada ruang dan
waktu yang sama. Tidak
mungkin
ada
dua
kelas
mata
kuliah
yang
berbeda
diselenggarakan bersamaan di sebuah ruangan.
4. Tidak ada dosen yang mengajar dua kelas mata kuliah yang berbeda pada
waktu yang sama.
5. Tidak ada mahasiswa yang menghadiri dua kelas mata kuliah yang berbeda
pada waktu yang sama.
6. Ada batasan yang pasti pada kesediaan ruangan dan waktu. Ruangan yang dimiliki jumlahnya tetap sepanjang 1 semester, tidak berubah-ubah jumlahnya.
48
4.1.4 Aturan khusus penjadwalan di Fakultas MIPA
1. Jadwal kuliah yang disusun hanya berlaku untuk 1 semester, bisa semester
ganjil, semester genap atau semester pendek.
2. Dosen ditempatkan pada kelas mata kuliah yang diampunya sebelum jadwal
dibuat, suatu mata kuliah ditawarkan hanya jika ada dosen yang bisa mengampunya. Jika mata kuliah yang tidak mendapatkan dosen adalah mata kuliah wajib, maka akan dicarikan dosen, sebab mata kuliah itu tetap harus diselenggarakan, sedangkan jika yang tidak mendapatkan dosen adalah mata kuliah pilihan, maka mata kuliah itu tidak akan ditawarkan.
3. Satu matakuliah dapat diampu lebih dari seorang dosen. Kadangkala ada mata kuliah khusus yang membutuhkan 2 atau 3 orang dosen, disebut teaching team , untuk bergantian mengajar karena berbagai alasan tertentu. Hal ini sering terjadi pada jurusan fisika dan kimia
4. Waktu kuliah dalam sehari dimulai dari jam 07.00 sampai 17.00. Lama setiap
satuan waktu kuliah adalah 50 menit, dalam jangka waktu 1 hari terdapat 10 slot waktu, maka dalam 6 hari (hari aktif dalam 1 minggu)terdapat 60 slot waktu. Kelas kuliah yang diselenggarakan pada jam kuliah diatas selanjutnya disebut sebagai kelas biasa.
49
5. Maksimal waktu dosen sekali mengajar adalah 2 satuan waktu. Durasi waktu selama 2 satuan waktu adalah 100 menit, ini merupakan durasi waktu yang cukup lama bagi seorang dosen untuk menyampaikan materi kuliah. Waktu untuk sekali mengajar perlu dibatasi sebab jika dosen merasa kelelahan akan tidak baik bagi kesehatannya dan menurunkan kualitas materi yang disampaikan.
6. Sebaiknya ada waktu istirahat bagi dosen minimal 1 satuan waktu diantara 2
kelas yang berbeda. Hal ini perlu diperhatikan agar tidak menurunkan kualitas materi yang akan disampaikan pada kelas mata kuliah berikutnya. Namun pada prakteknya aturan ini tidak dapat dilakukan mengingat keterbatasan waktu, sedikitnya jumlah dosen dan banyaknya mata kuliah yang diselenggarakan. Lagipula dosen memiliki waktu istirahat minimal 10 menit diantara jam kuliah. Misalnya seorang dosen mengajar selama 2 satuan waktu, yaitu 100 menit, pada jam ke-1 dan ke-2, kemudian ia juga harus mengajar pada jam ke-3 yang dimulai tepat pukul 09.00, padahal 100 menit sejak jam 07.00 berakhir pada jam 08.40, sehingga ia memiliki waktu istirahat selama 20 menit.
50
7. Mata kuliah yang merupakan 1 paket bagi mahasiswa setiap semester, tidak
boleh diselenggarakan pada hari dan jam yang sama. Biasanya mahasiswa baru semester 1 dan 2, beberapa diantaranya diwajibkan untuk mengambil mata kuliah paket, sehingga mata kuliah yang merupakan 1 paket tidak boleh konflik pada waktu penyelenggaraannya.
8. Mata kuliah wajib tingkat semester berdekatan tidak boleh diselenggarakan
pada saat yang bersamaan. Sebagai contoh mata kuliah wajib semester 1 tidak boleh konflik dengan mata kuliah wajib semester 3, tetapi boleh konflik dengan mata kuliah wajib semester 5, sedangkan mata kuliah wajib semester 2 tidak boleh konflik dengan mata kuliah wajib semester 4, tetapi boleh konflik dengan mata kuliah wajib semester 6.
Hal ini dilakukan mengingat banyak mahasiswa yang
memilih untuk mengambil mata kuliah wajib semester berikutnya daripada mata kuliah pilihan.
9. Dosen tidak boleh mengajar lebih dari 11 SKS, dengan toleransi 12 SKS,
pada strata 1 reguler. Aturan ini dibuat berdasarkan jumlah jam kerja efektif pegawai di Indonesia, yaitu 40 jam per minggu.
51
10. Kelas pararel tidak wajib untuk diselenggarakan bersamaan Kelas pararel adalah kelompok kelas mata kuliah yang sama, misalnya mata kuliah kimia dasar terdiri dari kelas A, B dan C. Idealnya kelas pararel diselenggarakan bersamaan untuk mempermudah pemantauan kesamaan materi yang diberikan oleh masing-masing dosen, tetapi karena kesediaan waktu dari dosen berbeda-beda, maka jam penyelenggaraan masing-masing kelas menjadi berbeda-beda.
11. Penyelenggaraan 1 mata kuliah sama yang dipecah menjadi 2 pertemuan
tidak boleh dalam hari yang sama. Mata kuliah yang memiliki bobot 3 sks biasanya dipisah menjadi 2 pertemuan dengan pembagian bobot 2 sks dan 1 sks.
4.2. Model Matematika
Pada bagian ini aturan-aturan yang telah dijabarkan sebelumnya akan dirumuskan secara matematis menjadi fungsi obyektif, dengan mendeklarasikan semua komponen utama sebagai variabel input. Mahasiswa tidak perlu diikutkan dalam perumusan fungsi obyektif karena mahasiswa bebas memilih mata kuliah yang diikutinya dalam suatu semester. Kalaupun ada paket mata kuliah biasanya hanya diambil lengkap oleh mahasiswa baru semester 1, sedangkan mahasiswa lama seringkali tidak mengambil lengkap paket mata kuliah semester yang ditempuhnya karena berbagai alasan, salah
52
satunya karena IP semester sebelumnya tidak mencukupi atau belum menempuh mata kuliah prasyaratnya. Dengan penyederhanaan di atas, maka variabel yang tersisa adalah dosen, kelas mata kuliah, waktu dan ruang kuliah. Adapun yang menjadi variabel input terkontrol adalah jumlah dosen, jumlah kelas mata kuliah yang ditawarkan, jumlah waktu yang ditawarkan dan jumlah ruang yang dapat dipergunakan, sedangkan yang merupakan variabel input tidak terkontrol
adalah jumlah
mahasiswa peminat masing-masing kelas mata kuliah yang ditawarkan. Untuk merumuskannya menjadi fungsi obyektif maka harus didefinisikan perpotongan yang mungkin dari keempat komponen itu. Xfctr sebagai variabel bernilai biner yang akan bernilai 1 jika dosen f ditempatkan pada kelas mata kuliah c pada periode waktu t di ruangan r dan bernilai 0 jika sebaliknya. Fungsi obyektif yang akan dirumuskan adalah 1. Meminimalkan konflik waktu dan ruangan untuk kelas mata kuliah, yaitu 2 kelas berbeda tidak bisa berada pada ruang dan waktu yang sama. 2. Meminimalkan konflik pada dosen pengajar, yaitu tidak ada dosen yang mengajar 2 kelas berbeda pada waktu yang sama. 3. Meminimalkan konflik waktu antara paket mata kuliah wajib, yaitu tidak ada mahasiswa yang dapat menghadiri 2 kelas berbeda pada waktu yang sama. Selanjutnya dari seluruh aturan yang telah didefiniskan tadi akan dibedakan menjadi aturan yang harus dilaksanakan dan aturan yang tidak tidak harus dilaksanakan, kadangkala dapat diabaikan. Untuk aturan yang tidak harus dilaksanakan akan diberikan nilai pinalti sehingga akan meminimalkan nilainya.
53
4.2.1 Aturan yang harus dilaksanakan:
1. 2 kelas berbeda tidak bisa berada pada ruang dan waktu yang sama.
∑ X fctr ≤ 1, untuk setiap c (kelas mata kuliah) f , c , t
2. Tidak ada dosen yang mengajar 2 kelas berbeda pada waktu yang sama.
∑ X fctr ≤ 1 , untuk setiap f (dosen) t , c , r
3. Tidak ada mahasiswa yang dapat menghadiri 2 kelas berbeda pada waktu yang sama. Aturan ini digunakan untuk kasus mata kuliah paket, dimana mata kuliah yang berada dalam 1 paket harus diselenggarakan pada waktu yang berbeda.
∑ X fctr X fc tr ≤ 0 , untuk setiap c dan c’ yang dilarang. '
f , t , r
BAB V METODOLOGI PENELITIAN
5.1 Bahan dan Sumber Data
Data yang dipergunakan untuk menyusun jadwal kuliah diambil dari bagian akademik Fakultas Matematika dan Ilmu Pengetahuan Alam. Adapun datadata tersebut meliputi data daftar ruang kuliah beserta kapasitas maksimumnya, daftar dosen pengajar dari jurusan matematika, fisika dan kimia, daftar tugas dosen mengajar, daftar satuan waktu kuliah, daftar kesediaan waktu dosen, daftar mata kuliah yang ditawarkan oleh jurusan matematika, fisika dan kimia, daftar mata kuliah wajib setiap semester untuk mahasiswa matematika, fisika dan kimia dan yang terakhir adalah daftar perkiraan mahasiswa yang mengikuti mata kuliah.
5.2 Alat
Perangkat keras yang dipergunakan dalam penelitian ini adalah komputer dengan spesifikasi sebagai berikut Prosesor AMD Athlon 900 MHz, memori 112 MB, hard disk 15 GB dan VGA 4 MB. Sedangkan perangkat lunak yang dipergunakan dalam penelitian adalah sistem operasi Windows 2000, Borland Delphi 6 dan Interbase 5.5.
5.3 Parameter Penelitian
1. Tersusunnya model penjadwalan kuliah 2. Tersusunnya algoritma penjadwalan kuliah.
54
55
3. Jadi tidaknya program penjadwalan kuliah 4. Dapat tidaknya dipecahkan masalah tumbukan diantara komponen-komponen utama a. Tumbukan antar mata kuliah suatu program studi dalam 1 semester b. Tumbukan antar mata kuliah suatu program studi antara semester berseberangan, misalnya antara semester 1 dan 3 dan antara semester 3 dan 5 . c. Tumbukan jam mengajar bagi seorang dosen d. Tumbukan antara kesediaan waktu dosen dan jam mengajar. e. Tumbukan antara matakuliah yang diselenggarakan lebih dari satu kali pertemuan. f.
Tumbukan pengunaan ruangan pada waktu yang sama
5. Jadi tidaknya jadwal kuliah
5.4 Cara Penelitian
1. Mengembangkan model penjadwalan kuliah dengan menggunakan algoritma genetika. 2. Menyusun algoritma penjadwalan kuliah dengan menggunakan algoritma genetika. 3. Menyusun program penjadwalan dengan menggunakan algoritma genetika 4. Menerapkan program pada sistem penjadwalan di Fakultas Matematika dan Ilmu Pengetahuan Alam
56
5. Membandingkan hasil dengan berbagai kombinasi paremeter algoritma genetika
BAB VI HASIL PENELITIAN DAN PEMBAHASAN
6.1. Model Genetika
Pengkodean yang akan digunakan adalah pengkodean nilai bukan pengkodean biner karena penggunaan barisan bit dapat membuat komputasi menjadi lebih kompleks, dimana suatu barisan bit yang panjang memerlukan penyambungan serta pengkodean ulang untuk mendapatkan nilai sebenarnya dari aturan yang direpresentasikan. Sebelum model kromosom dibuat akan dilakukan penyederhanaan variabel representasi pembentuk model kromosom, yang merupakan komponen utama penjadwalan kuliah. Penghilangan salah satu variabel dapat dilakukan jika aturan yang bersangkutan dengan variabel itu dapat diarahkan ke variabel lain. Mahasiswa tidak diikutkan dalam model yang akan dibuat karena mahasiswa diasumsikan dapat memilih mata kuliah yang akan diambil secara bebas. Masalah yang mungkin muncul bagi mahasiswa adalah masalah mata kuliah paket, bagaimana agar mata kuliah yang berada dalam 1 paket tidak akan bertabrakan
dalam
jam
diselenggarakannya,
sehingga
mahasiswa
dapat
mengambil semua mata kuliah paket dalam 1 semester yang diikutinya. Masalah ini bila diarahkan ke variabel mata kuliah dan waktu akan menjadi mata kuliah wajib dalam 1 paket tidak boleh diselenggarakan pada waktu yang sama. Dosen juga tidak perlu diikutkan dalam permodelan kromosom, karena pemberian tugas mengajar suatu mata kuliah telah dilakukan sebelumnya. Secara
57
58
sederhananya, jika tidak ada dosen yang mengajar suatu mata kuliah, maka mata kuliah itu tidak akan ditawarkan. Beberapa aturan yang berhubungan dengan dosen bisa diarahkan ke variabel mata kuliah, misalnya aturan bahwa dosen tidak dapat mengajar 2 mata kuliah berbeda pada jam yang sama, dapat diubah menjadi semua kelas yang diajar oleh dosen yang sama harus berbeda semua alokasi waktunya. Variabel yang tersisa adalah mata kuliah, waktu dan ruang, maka kromosom yang dibuat akan memiliki 3 segmen. Mata kuliah disusun berurutan dalam kromosom karena semua mata kuliah harus mendapatkan alokasi waktu dan ruang. Urutannya adalah berdasarkan dosen yang mengampu dengan tujuan untuk mempermudah pengecekan aturan yang berhubungan dengan dosen. Panjang kromosom adalah 2N, dimana N adalah jumlah mata kuliah yang ditawarkan, panjangnya menjadi 2N karena untuk setiap mata kuliah akan dialokasikan ruang dan waktu, sehingga ilustrasi kromosomnya adalah sebagai berikut:
Dosen 1
Dosen 2
Kelas 1
Kelas 2
R1
R2
T1
T2
Kelas 3 R3
T3
Dosen 3 Kelas 4 R4
T4
Kelas 5 R5
T5
Kelas 6 R6
T6
Gambar 6.1 Model kromosom dengan komponen dosen, mata kuliah , ruang dan waktu
Dalam satu satuan waktu kuliah hanya boleh ada sebanyak R mata kuliah yang dijadwalkan, dimana R adalah jumlah ruangan, supaya semua kelas mata kuliah yang sedang diselenggarakan mendapatkan ruangan.
59
Aturan lain yang harus dilaksanakan adalah tidak menempatkan dua atau lebih mata kuliah pada jam dan ruangan yang sama, tetapi karena algoritma genetika merupakan pendekatan random, maka akan memerlukan banyak iterasi untuk menemukan susunan kombinasi yang tepat antara variabel dosen, waktu dan ruangan yang tidak saling konflik. Oleh karena jumlah ruangan tidak akan berubah sejalan dengan waktu dan banyaknya iterasi yang diperlukan untuk menemukan kombinasi yang tepat agar semua aturan terpenuhi, maka model kromosom diatas akan disederhanakan menjadi 2 fase. Fase pertama akan menempatkan mata kuliah hanya pada slot waktu yang ada, yang perlu diperhatikan disini adalah tidak menempatkan kelas mata kuliah lebih dari jumlah ruang yang tersedia dalam satu satuan waktu yang sama, dan fase kedua akan menempatkan mata kuliah yang telah mendapatkan slot waktu pada ruangan yang sesuai. Penyelesaian fase pertama akan dilakukan terlebih dahulu mengingat bayaknya aturan yang berhubungan dengan variabel waktu. Penyederhanaan model kromosom dengan membaginya menjadi 2 fase akan membuat masalah terselesaikan lebih cepat karena pencarian kombinasi yang tidak konflik antara penggunaan ruang dan waktu tidak dilakukan secara bersamaan melainkan dalam fase yang berbeda. Selain itu pemisahan ini sesuai dengan proses pembuatan jadwal kuliah yang dilakukan di FMIPA, yaitu pembagian alokasi waktu dilakukan terlebih dahulu sebelum proses pengisian kartu rencana studi dan melakukan proses pembagian alokasi ruangan setelah itu.
60
Setelah dibagi menjadi 2 fase, model kromosom memiliki panjang N, dimana N adalah jumlah kelas kuliah yang harus dijadwalkan dalam suatu semeter. Ilustrasi kromosom menjadi seperti berikut:
Dosen 1
Dosen 2
Dosen 3
Kelas 1
Kelas2
Kelas 3
Kelas 4
Kelas 5
Kelas 6
T1
T3
T2
T1
T4
T3
Gambar 6.2 Model Fase I
T1
T2
T3
T4
Kelas 1
Kelas 4
Kelas 3
Kelas 2
Kelas 6
Kelas 5
R1
R4
R3
R2
R4
R1
Gambar 6.3 Model Fase II
Fase pertama akan diselesaikan dengan algoritma genetika, sedangkan fase kedua diselesaikan dengan pemrograman biasa.
6.2 Model Program Komputer
Model program komputer adalah pengembangan model genetika menjadi program yang dapat dipergunakan untuk menyelesaikan masalah penjadwalan mata kuliah. 6.2.1 Penggunaan data dan penjelasan struktur basis data
Sesuai dengan representasi kromosom yang terdiri dari 2 bagian, yaitu penempatan slot waktu dan penempatan ruangan, maka data yang diinput terdiri dari 2 bagian juga, yaitu untuk keperluan slot waktu dan keperluan ruangan.
61
Keperluan slot waktu meliputi daftar urutan waktu penyelenggaraaan kuliah, daftar waktu kesediaan dosen, dan aturan-aturan yang harus dilaksanakan. Data kapasitas maksimum dari ruangan tergolong data untuk keperluan slot waktu karena pada saat yang sama hanya ada sejumlah tertentu mata kuliah dengan peserta tertentu sebanyak maksimal sejumlah kelas yang dapat menampung seluruh peserta.
6.2.1.1 Data untuk keperluan slot waktu
Data yang diperlukan adalah daftar penugasan dosen, yaitu daftar dosen pengampu mata kuliah tertentu. Berdasarkan data yang dikumpulkan dari bagian pengajaran FMIPA pada semester genap tahun akademik 2001/2002, penelitian ini akan menggunakan data sebanyak 128 orang dosen, 157 mata kuliah, dan data 10 slot waktu dalam setiap harinya, sehingga dalam 6 hari ada sebanyak 60 slot waktu. Selain itu juga terdapat data kesanggupan waktu dosen untuk mengajar dan data ruangan sebanyak 23 ruangan beserta kapasitas maksimumnya.
6.2.1.2 Data untuk keperluan ruang
Ada 2 aturan yang harus dilaksanakan berhubungan dengan ruangan, yang pertama jumlah ruangan adalah tetap. Aturan itu dapat diubah kearah aturan slot waktu menjadi kelas mata kuliah yang diselenggarakan secara bersama-sama tidak lebih dari R kelas, dimana R adalah jumlah ruangan. Aturan yang kedua adalah pemilihan kelas disesuaikan antara jumlah peminat mata kuliah dan kapasitas maksimum dari kelas. Jika diubah menjadi aturan slot waktu, maka akan menjadi kelas mata kuliah yang memerlukan ruangan berkapasitas X hanya
62
dapat diselenggarakan sebanyak n kelas dalam waktu bersamaan, dimana n adalah jumlah kelas yang dapat menampung mahasiswa sebanyak X. Sebagai contoh, jika kelas dengan peserta 100 orang dapat ditampung di kelas berkapasitas 100 dan 150, dan terdapat x kelas berkapasitas maksimal 100 mahasiswa dan y kelas berkapasitas maksimal 150 mahasiswa, maka mata kuliah yang memiliki peserta sebanyak 100 mahasiswa hanya dapat diselenggarakan sebanyak x+y kelas secara bersamaan. Untuk mempermudah keperluan pengecekan dan pembagian ruangan diperlukan juga data jenis ruangan seperti kelas biasa dan laboratorium.
6.2.1.3 Rancangan Basis Data
Komponen-komponen utama yang dilibatkan dalam proses penjadwalan adalah dosen, kelas mata kuliah, waktu dan ruang kuliah. Item-item pokok yang dikembangkan dari komponen utama adalah sebagai berikut:
63
PSTUDI KODEPSD NAMAPSD
DOSEN ID_DOSEN NAMA_DOSEN
HARI ID_HARI NAMA_HARI
MATA_KULIAH JENIS_RUANG ID_JNS_RUANG KET_JNS_RUANG
ID_MATA_KULIAH KODE_MATA_KULIAH NAMA SKS ID_JNS_RUANG
WAKTU_X_DOSEN ID_DOSEN ID_HARI ID_WAKTU
RUANG ID_RUANG NAMA_RUANG KAPSITAS ID_JNS_RUANG
SEMESTER ID_SEM KET_SEM
KODE_PAKET KODE_P PSTUDI SEMESTER ID_SEM
WAKTU (JAM KE-) KELAS_MTKULIAH ID_KELAS ID_MATA_KULIAH KELAS (A,B,…) ID_DOSEN SKS_WAKTU JML_PESERTA
ID_WAKTU KET_WAKTU
PAKET_MTKUL KODE_P ID_MTKUL
Gambar 6.4 Skema basis data
6.2.2 Asumsi
Terdapat beberapa hal yang membatasi program yang dibuat oleh penulis untuk menyelesaikan masalah penjadwalan mata kuliah ini, yaitu : 1. Matakuliah yang tidak berasal dari fakultas bersangkutan (dalam hal ini FMIPA) tidak diikutkan dalam penjadwalan. Semua matakuliah itu dianggap dapat menyesuaikan waktu pada sisa waktu yang tersedia. Pada penjadwalan yang telah dilakukan saat ini, pembuat jadwal matakuliah dari fakultas lain adalah fakultas pemilik matakuliah tersebut, misalnya matakuliah Pancasila yang berasal dari Fakultas ISIPOL.
64
2. Matakuliah yang bukan merupakan kegiatan belajar dan mengajar di kelas atau laboratorium tidak diikutkan dalam penjadwalan, misalnya matakuliah kerja lapangan dan tugas akhir. 3. Tidak semua matakuliah praktikum diikutkan dalam penjadwalan. Matakuliah praktikum yang diikutkan penjadwalan hanya yang memiliki kejelasan penggunaan laboratorium dan kapasitas laboratorium sesuai dengan jumlah peserta. Dalam penjadwalan yang telah dilakukan di FMIPA saat ini seringkali praktikum menggunakan laboratorium dengan kapasitas yang lebih kecil dibandingkan dengan peserta, hal ini disebabkan oleh kurangnya prasarana. Alasan lain adalah kesulitan mencari data penjadwalan yang lengkap, selain itu data penjadwalan sebenarnya hanya dijadikan contoh data yang dipergunakan untuk menunjukkan bahwa masalah penjadwalan kuliah harian dapat diselesaikan dengan algoritma genetika. 4. Matakuliah yang diajar lebih dari satu dosen dapat ditangani jika ada pembagian tugas dalam satuan sks. Sebagai contoh adalah matakuliah basisdata yang diampu oleh Drs. Ignatius Purnomo, M.Kom pada pertemuan berbobot 2 sks dan Sigit P.,S.Si yang mengampu pertemuan berbobot 1 sks. 5. Waktu jam perkuliahan yang dijadwalkan adalah sebanyak 6 hari, dari hari Senin hingga Sabtu, dan 10 jam kuliah.
65
6.2.3 Representasi dan Pengkodean Kromosom dalam Program
Kromosom dalam program untuk menyelesaikan masalah penjadwalan kuliah direpresentasikan dalam bentuk larikan multidimensi ( multidimensional
array) dengan tipe data record yang dipergunakan untuk menyimpan semua data pendukung proses penjadwalan. Karena kromosom merupakan barisan dari gen, maka panjang larik adalah sebanyak gen yang ada. Data pendukung yang disimpan dalam record adalah id kelas, id matakuliah, dosen, jumlah sks, jumlah peserta, paket, jenis ruangan, waktu yang terdiri dari kombinasi antara hari dan jam, dan informasi yang berhubungan dengan ruangan seperti kapasitas ruangan yang digunakan dan nama ruang yang digunakan. Field waktu adalah field utama yang merupakan representasi kromosom. Barisan gen dalam kromosom merupakan urutan matakuliah yang akan dijadwalkan yang diurutkan berdasarkan dosen pengajarnya dengan tujuan untuk mempermudah sejumlah pengecekan aturan yang harus dilakukan pada saat penghitungan nilai fitness. Pengkodean yang dipergunakan adalah pengkodean nilai karena gen merupakan kombinasi antara hari dan jam kuliah sehingga lebih mudah jika langsung digunakan nilai-nilai untuk hari dan jam kuliah dibandingkan jika harus mengkonversikannya ke dalam bit jika menggunakan pengkodean biner. Adapun nilai-nilai dinyatakan dalam bilangan integer 1 sampai dengan 6 untuk mewakili hari Senin sampai dengan Sabtu dan 1 sampai dengan 10 untuk mewakili jam kuliah pertama sampai kesepuluh.
66
6.2.4 Fungsi obyektif/ fungsi fitness
Setiap aturan yang dipergunakan dalam penjadwalan kuliah diberi nilai pinalti, dimana semakin wajib dilaksanakan maka nilai pinalti yang diberikan semakin besar. Untuk memaksimalkan model algoritma genetika yang digunakan, fungsi fitness yang dipergunakan adalah (Lee, 2000): Fitness = 1/(1+(aturan1*pinalti1+aturan2*pinalti2+…)) Fungsi fitness ini selain digunakan oleh Lee, juga digunakan oleh Ross, 1994 (Lee, 2000). Dari fungsi fitness yang digunakan dapat dilihat bahwa semakin sedikit aturan yang dilanggar, maka semakin besar nilai fitnessnya. Jadwal sempurna akan memiliki nilai fitness 1, karena nilai total pinalti dari aturan yang dilanggar adalah 0. Berikut ini adalah aturan yang dipergunakan dalam penjadwalan beserta nilai pinalti yang diberikan:
Tabel 6.1 Nilai pinalti untuk masing-masing aturan Aturan Nilai Pinalti Kesediaan waktu dosen
1
Konflik waktu dosen
3
Tabrakan matakuliah satu semester
3
Tabrakan matakuliah semester berseberangan
2
Tabrakan matakuliah sama yang dipecah
3
Berikut akan dijelaskan satu persatu aturan yang harus dilaksanakan pada penyusunan jadwal kuliah:
67
6.2.4.1 Dosen hanya dapat mengajar sesuai kesediaan waktunya
Pemberian slot waktu untuk suatu mata kuliah harus sesuai dengan kesediaan waktu dosen yang mengampunya, oleh sebab itu suatu matakuliah tidak boleh dijadwalkan pada suatu slot waktu dimana dosen pengampunya tidak dapat mengajar. Setiap gen akan dibandingkan dengan gen lain yang memiliki Id dosen sama, hal ini menjadi mudah mengingat gen-gen di dalam kromosom diurutkan sesuai dengan Id dosen. Berikut ini adalah algoritma sederhana untuk sebuah kromosom dengan satu Id dosen, vHari sebagai satu hari terlarang dan vJam sebagai satu jam terlarang: begin result = 0; for i = 0 to JmlGen-1 do if kromosom[i].hari = vHari then if kromosom[i].jam = vJam then result = result+1; end; 6.2.4.2 Konflik antar slot waktu dosen pengajar
Tidak mungkin ada seorang dosen yang mengajar lebih dari 1 mata kuliah pada saat bersamaan, oleh sebab itu semua mata kuliah yang diampu oleh dosen yang sama harus dijadwalkan pada waktu yang berbeda-beda. Pengecekan dilakukan dengan cara membandingkan setiap gen dengan gen lain yang memiliki Id dosen sama. Jenis tabrakan waktu dosen ada tiga macam. Jika terdapat 2 mata kuliah A dan B, dimana masing-masing memiliki lebih dari 1 sks, maka mata kuliah A bisa
68
bertabrakan pada jam pertama dengan mata kuliah B, dimulai pada jam yang sama atau bertabrakan pada jam lebih dari jam pertama dengan mata kuliah B. Berikut adalah algoritma pembandingan diantara gen : begin result = 0; for i = 1 to jmlDosenSama-1 do begin ptj1 = kromosom[i]; for j = i+1 to jmlDosenSama do begin ptj2 = kromosom[j]; if ptj1.hari = ptj2.hari then begin if ptj1.jam < ptj2.jam then begin if ptj2.jam < ptj1.jam + ptj1.sks then result = result +1; end else if ptj1.jam = ptj2.jam then result = result +1 else if ptj1.jam > ptj2.jam then begin if ptj1.jam < ptj2.jam + ptj2.sks then result = result +1; end; end; end; end; end;
69
6.2.4.3 Mata kuliah wajib dalam 1 semester tidak boleh bertabrakan jam kuliahnya
Seorang mahasiswa biasanya mengambil matakuliah yang merupakan satu paket semester pada panduan kurikulum, oleh sebab itu semua matakuliah yang memiliki kategori semester yang sama untuk masing-masing program studi tidak boleh dijadwalkan pada saat yang bersamaan sehingga mahasiswa dapat mengambil semua matakuliah tersebut. Pengecekan tabrakan waktu antar matakuliah wajib dalam satu semester per program studi menjadi sama secara teknis dengan pengecekan tabrakan waktu dosen pada penjelasan sebelum ini karena semua gen terlebih dahulu diurutkan sesuai dengan paket matakuliahnya dengan menggunakan algoritma bubble sort. Metode bubble sort dipilih karena kesederhanaannya dalam implementasi. Berikut adalah algoritma pengecekan tabrakan matakuliah wajib dalam satu semester : begin result = 0; for i = 1 to jmlDosenSama-1 do begin ptj1 = kromosom[i]; for j = i+1 to jmlDosenSama do begin ptj2 = kromosom[j]; if (ptj1.hari = ptj2.hari) and (ptj1.id_mtkul <> ptj2.id_mtkul) then begin if ptj1.jam < ptj2.jam then begin
70
if ptj2.jam < ptj1.jam + ptj1.sks then result = result +1; end else if ptj1.jam = ptj2.jam then result = result +1 else if ptj1.jam > ptj2.jam then begin if ptj1.jam < ptj2.jam + ptj2.sks then result = result +1; end; end; end; end; end; 6.2.4.4 Mata kuliah wajib semester berseberangan tidak boleh bertabrakan jam kuliahnya.
Sebagai contoh adalah matakuliah yang terdapat pada semester satu untuk program studi ilmu komputer tidak boleh bertabrakan jadwal kuliah dengan matakuliah yang terdapat pada semester tiga untuk program studi ilmu komputer, tetapi boleh bertabrakan jadwal kuliah dengan matakuliah yang terdapat pada semester lima untuk program studi ilmu komputer. Hal itu dilakukan agar mahasiswa yang memenuhi persyaratan dapat dengan leluasa memilih matakuliah pada semester di atas semester dimana seharusnya ia berada. Pengecekan dilakukan dengan cara membandingkan semua gen di dalam paket pertama dengan semua gen yang terdapat pada paket kedua. Berikut adalah algoritma yang digunakan : begin result = 0; for i=1 to jmlPaket1 do
71
begin ptj1= kromosom[i]; for j=1 to jmlPaket2 do begin ptj2 = kromosom[j]; if ptj1.hari= ptj2.hari then begin if ptj1.jam < ptj2.jam then begin if ptj2.jam < ptj1.jam + ptj1.sks then result = result +1; end else if ptj1.jam = ptj2.jam then result = result +1 else if ptj1.jam > ptj2.jam then begin if ptj1.jam < ptj2.jam + ptj2.sks then result = result +1; end; end; end; end; end; 6.2.4.5 Matakuliah sama yang dipecah lebih dari satu kali pertemuan tidak boleh diselenggarakan dalam hari yang sama
Pemecahan pelaksanaan perkuliahan untuk matakuliah berbobot lebih dari 2 sks bertujuan untuk memaksimalkan proses belajar dan mengajar, karena jika diselenggarakan dalam sekali pertemuan bisa menyebabkan kelelahan bagi dosen dan mahasiswa. Sebagai contoh matakuliah sistem operasi terdiri dari 3 sks dan dipecah menjadi 2 kali pertemuan, masing-masing 1 dan 2 sks.
72
Pengecekan dilakukan dengan cara membandingkan semua gen yang memiliki id dosen sama. Berikut adalah algoritma yang dipergunakan untuk menyelesaikan masalah hari yang sama bagi suatu mata kuliah yang diselenggarakan lebih dari sekali : begin result = 0; for i=0 to jmlDosenSama –1 do begin ptj1 = kromosom[i]; for j =i+1 to JmlDosenSama do begin ptj2 = kromosom[j]; if ptj1.idkul = ptj2.idkul then if ptj1.hari = ptj2.hari then result = result+1; end; end; end;
Selain itu masih terdapat satu aturan yang berhubungan dengan pembagian ruangan tetapi kepadanya tidak diberikan nilai pinalti karena masalah pembagian ruangan tidak diselesaikan dengan algoritma genetika meskipun di dalam program dilakukan secara bersamaan dengan proses algoritma genetika. Pengecekan kesediaan ruangan selalu dilakukan pada titik-titik tertentu untuk menghindari terjadinya jadwal yang tidak mungkin, yaitu jadwal yang membutuhkan ruangan lebih dari jumlah ruangan yang ada pada saat bersamaan. Berikut adalah penjelasan aturan pengecekan ruangan secara detail:
73
6.2.4.6 Ruangan yang digunakan
Penggunaan ruangan berdasarkan kapasitas harus selalu dicek agar setiap kelas kuliah pasti mendapatkan ruangan. Data mengenai ruangan disimpan dalam variabel bertipe larik multidimensi berupa record seluas jumlah jenis ruang dikali jumlah kromosom. Field yang ada antara lain field jenis ruangan misalnya ruang kuliah biasa, laboratorium komputer dan laboratorium kimia, field kapasitas maksimum, field jumlah ruangan, field nama ruang dan field dipakai yang merupakan larik seluas jumlah hari dikali jumlah jam kuliah yang digunakan untuk menandai penggunaan ruangan. Field dipakai diisi nomer gen yang menggunakan ruangan tersebut dan diinisialisasi –1 pada semua posisi yang menandakan bahwa ruangan tersebut belum diberikan kepada suatu kelas mata kuliah. Berdasarkan jenis ruangan yang dipakai, misalnya kelas biasa atau laboratorium, pengecekan ruangan dimulai dengan membandingkan kapasitas ruang dan jumlah peserta. Setelah mendapatkan ruang yang sesuai dilanjutkan dengan mengecek apakah ruangan dapat dipergunakan selama sejumlah sks mata kuliah itu. Berikut adalah algoritma pengecekan ruangan untuk suatu jenis ruangan : begin result = false; for i=1 to jmlRuang do begin if ruang[i].kapMax >= peserta then if ruang[i].dipakai[hari,jam] = -1 then begin
74
// cek sks k = 1; if sks = 1 then result = true else while k < sks do begin if ruang[i].dipakai[hari,jam] + k = -1 then result = true else begin result = false; break; end; end; end; end; end;
6.2.5 Parameter algoritma genetika dalam program
Ada banyak variasi dari operator algoritma genetika yang dapat diterapkan pada program karena jenis pengkodean nilai memungkinkan semua variasi operator pada pengkodean biner untuk diterapkan. Meskipun demikian, tidak berarti bahwa semua operator akan memberikan hasil yang sama dalam hal terbentuknya
jadwal
dan
kecepatan
menyelesaikan
masalah.
Masalah
perbandingan unjuk kerja masing-masing operator akan dijabarkan pada sub bab berikutnya. Berikut ini adalah penjelasan dari semua operator yang terdapat pada program:
75
6.2.5.1 Seleksi
Operator seleksi memegang peranan penting dalam algoritma genetika sebagai proses pemilihan orangtua yang digunakan untuk menghasilkan individu baru. Tiga jenis seleksi yang disediakan dalam program adalah seleksi roda roulette, rangking dan turnamen. Berikut adalah penjelasan dari masing-masing metode seleksi tersebut:
6.2.5.1.1 Seleksi roda roulette
Pemilihan orangtua didasarkan pada nilai fitnessnya, semakin baik nilai
fitnessnya, maka semakin besar kemungkinannya untuk terpilih. Algoritma yang dipergunakan dalam seleksi roda roulette adalah sebagai berikut: begin
//jumlahkan fitness semua kromosom dari populasi P S = sumfitness(P);
//bangkit bilangan acak dari 0 sampai S r = generaterandom(0,S);
//jumlahkan fitness populasi dari 0 sampai s, jika s > r maka populasi tersebut dipilih s = 0; t = 1; while s < r do s = s + fitness(kromosom, t); t = t +1; end while; return kromosom(t); end;
76
6.2.5.1.2 Seleksi rangking
Seleksi rangking memberikan nilai fitness baru untuk masing-masing kromosom berdasarkan rangking fitnessnya. Kromosom dengan fitness terburuk akan memiliki nilai fitness baru sebesar 1, sedangkan kromsom dengan fitness terbaik akan memiliki nilai fitness sebesar N, dimana N adalah jumlah kromosom dalam populasi. Algoritma yang digunakan dalam seleksi rangking adalah sebagai berikut: begin
//urutkan kromosom didalam populasi berdasarkan nilai fitnessnya SortAscending(P);
//jumlahkan fitness semua kromosom dari populasi P S = sumfitness(P);
//bangkit bilangan acak dari 0 sampai S r = generaterandom(0,S);
//jumlahkan fitness populasi dari 0 sampai s, jika s > r maka populasi tersebut dipilih s = 0; t = 1; while s < r do s = s + fitness(kromosom, t); t = t +1; end while; return kromosom(t); end 6.2.5.1.3 Seleksi turnamen
Seleksi turnamen merupakan variasi antara seleksi roda roulette dan seleksi rangking. Sejumlah kromosom dipilih secara acak, kemudian dirangking
77
untuk diambil yang terbaik nilai fitnessnya. Algoritma yang digunakan dalam seleksi turnamen adalah: begin
// acak k kromosom dari populasi // dengan anggapan bahwa bilangan acak yang dibangkitkan unik // setiap kromosom yang dipilih dimasukkan dalam populasi sementara // Ptemp for i = 1 to k r = random(1, populationSize); Ptemp(i) = Population(r); end for
// kembalikan kromosom dengan fitness dari k kromosom tersebut return BestFitness(PTemp); end; 6.2.5.2 Perkawinan silang
Setelah operator seleksi menghasilkan orang tua pembentuk generasi baru, operator berikutnya adalah perkawinan silang, yaitu cara mengkombinasikan gengen yang terdapat pada orang tua untuk menghasilkan keturunan baru. Semua variasi perkawinan silang yang terdapat pada pengkodean biner dapat diterapkan, tetapi tidak semuanya memberikan hasil yang optimal. Variasi perkawinan silang yang digunakan pada program adalah perkawinan silang banyak titik dan perkawinan
silang
rekombinasi.
Setiap
proses
perkawinan
silang
akan
menghasilkan dua keturunan baru. Berikut adalah penjelasan lebih lanjut dari kedua variasi perkawinan silang tersebut:
78
6.2.5.2.1 Perkawinan silang banyak titik
Perkawinan silang banyak titik dilakukan dengan cara menukar nilai gen pada posisi gen yang sama dari kedua orang tua. Berikut adalah algoritma perkawinan silang banyak titik: genXOver: jumlah gen yang tekena proses perkawinan silang index: larik integer yang digunakan untuk memberi tanda gen yang telah dikawinsilangkan agar tidak terkena proses perkawinan silang lagi. Panjang larik adalah sesuai dengan jumlah gen dalam satu kromosom xOverRate: persentase terjadinya perkawinan silang dalam suatu kromosom begin
//inisialisasi offspring sama dengan parent child = parent; genXOver = round(jmlGen * xOverRate); for i = 1 to genXOver do begin repeat repeat gen = random(1,jmlGen); until index[gen] =0 until parent[gen].jam + child.sks –1 <= 10; index[gen] = 0; child[gen] = parent[gen]; end; end;
79
6.2.5.2.2 Perkawinan silang rekombinasi
Perkawinan silang rekombinasi dilakukan dengan cara menyalin nilai gen orangtua yang terpilih secara acak ke gen keturunan baru. Berikut adalah algoritma untuk rekombinasi : begin
//inisialisasi offspring sama dengan parent child = parent; genXOver = round (jmlGen * xOverRate); for i = 1 to genXOver do begin repeat gen_child = rendom(1, jmlGen); until index[gen_child] = 0; index[gen_child] = 0;
// pilih gen orangtua repeat gen_parent = random(1, jmlGen); until parent[gen_parent].jam + child.sks –1 <= 10; child[gen_child] = parent[gen_parent]; end; end; 6.2.5.3 Mutasi
Mutasi dilakukan untuk mencegah terjadinya konvergensi prematur. Diantara dua kromosom baru yang merupakan hasil perkawinan silang dipilih salah satu secara acak untuk dimutasi, kemudian berdasarkan persen mutasi, sejumlah gen yang dipilih secara acak diganti nilainya secara random, dimana nilai random hari adalah Senin, Selasa, Rabu, Kamis, Jumat dan Sabtu, sedangkan
80
nilai random jam adalah antara jam ke-1 sampai jam ke-10. Berikut adalah algoritma yang digunakan untuk mutasi: begin gen = random(1, jmlGen); repeat child[gen].hari = random (6)+1; child[gen].jam = random(10)+1; until child[gen].jam + child[gen].sks –1 <= 10 end; 6.2.5.4 Update generasi
Update generasi yang dipergunakan adalah update secara kontinu yang memperbolehkan orangtua dan anak bercampur menjadi satu, dengan strategi bantuan elitsm. Sejumlah kromosom yang memiliki nilai fitness terbaik disalin ke generasi baru sebanyak yang diinginkan, kemudian dilanjutkan dengan proses pembentukan anak. Dua kromosom orangtua dipilih untuk menghasilkan dua anak baru yang kemudian ditempatkan ke generasi baru. Proses pembentukan anak dilakukan terus sampai jumlah polulasi dalam generasi baru lengkap. Menurut Lee(2000), ide elitism terdengar sebagai ide yang bagus pada sistem yang kecil, yang relatif memerlukan sedikit iterasi untuk menerapkannya. Tetapi, sejalan dengan makin kompleksnya sistem, maka jumlah iterasi yang diperlukan juga semakin banyak, elitism dapat menghalangi eksplorasi terhadap individu baru yang seharusnya tidak terjadi.
Hal ini dapat menyebabkan
konvergensi yang berbahaya. Untuk membandingkan banyaknya generasi yang diperlukan dalam pembuatan jadwal, parameter elitsm pada program dapat
81
dipergunakan atau tidak. Berikut adalah algoritma update generasi yang terdapat pada program : begin
//bangkitkan suatu populasi acak pop berukuran s GeneratePopulation(pop,s);
//hitung nilai fitness dari kromosom-kromosom dalam populasi CalculteFitness(pop);
//buat populasi baru sementara NewPop CreateNewPopulation(newPop);
//lakukan iterasi generasi sebanyak numGeneration for i = 0 to numGeneration do begin
// kromosom yang baik dipindah ke populasi baru (elitsm) Survivor(newPop, pop);
// lakukan seleksi, perkawinan silang dan mutasi i = jml_Survivor; while i < (Jml_Kr) do begin
// lakukan seleksi induk, kromosom1 dan kromosom2 yang harus // berbeda repeat selection(kromosom1, kromosom2); until kromosom1 <> kromosom2;
// lakukan perkawinan silang antara kromosom1 dan kromosom 2 // hasil masukkan ke newPop Xover(newPop, kromosom1, kromosom2);
// lakukan mutasi terhadap populasi baru mutation(newPop);
// variabel i nilainya dinaikkan 2 karena setiap seleksi // menghasilkan 2 keturunan
82
inc(i,2); end;
// salin populasi baru ke populasi lama pop = newPop;
// hitung fitness calculateFiness(pop);
// cek apakah fitness sudah maksimal if MaxFitness(pop) = 1 then break; end; end;
6.2.6 Pembagian ruangan
Pembagian ruangan dilakukan bersamaan dengan proses pembuatan jadwal, dimana selalu dilakukan pengecekan ruangan pada semua titik yang memungkinkan perubahan penggunaan ruangan. Selain itu matrik ruangan telah memuat data ruangan secara lengkap, sehingga pada saat pengecekan ruangan juga langsung dilakukan pembagian alokasi ruangan. Program yang ditulis oleh penulis akan menjadi berbeda dengan yang ditulis oleh Lee, dimana proses pembagian ruangan juga menggunakan algoritma genetika, sedangkan pada program yang ditulis oleh penulis tidak, karena adanya proses pengecekan ruangan memungkinkan setiap ruangan yang digunakan langsung ditandai, sehingga masalah ruangan telah terselesaikan bersamaan dengan terselesaikannya masalah penyusunan penjadwalan mata kuliah.
83
6.2.7 Deskripsi program
Tampilan utama program dapat dilihat pada gambar 6.5 berikut ini:
Gambar 6.5 Tampilan utama program
Penggunaan aplikasi dimulai dengan login ke server basisdata, yaitu interbase dengan cara menginputkan nama pengguna dan password pada form login. Form login dapat dilihat pada gambar 6.6 berikut ini:
84
Gambar 6.6 Form login
Aplikasi penjadwalan mata kuliah memiliki sejumlah menu utama yang merupakan input dan konfigurasi program, berikut ini adalah penjelasan fungsi dari masing-masing sub menu : 1. Utama A. Login
: untuk login ke server basisdata
B. Semester : untuk konfigurasi semester aktif C. LogOut
: untuk logout dari aplikasi
D. Keluar
: untuk mengakhiri penggunaan aplikasi
2. Data A. Data dasar a. Program studi : untuk nama input program studi b. Jenis ruangan : untuk input jenis ruangan yang ada c. Ruangan
: untuk input data nama ruang beserta kapasitasnya
d. Mata kuliah
: untuk input data mata kuliah beserta sksnya
e. Dosen
: untuk input data nama dosen pengajar
f. Waktu dosen : untuk input waktu kesediaan dosen
85
g. Hari dan jam kuliah : untuk input hari dan jam kuliah B. Data paket a. Kode paket
: untuk input jenis paket mata kuliah
b. Paket mata kuliah
: untuk input isi paket mata kuliah
C. Data jadwal a. Kelas mata kuliah
: untuk input data kombinasi antara dosen,
mata kuliah dan jumlah peserta yang akan digunakan untuk penajdwalan 3. GA A. Proses
: untuk menjalankan proses algoritma genetika penjadwalan
B. Parameter : untuk konfigurasi parameter algoritma genetika C. File log
: untuk konfigurasi yang ditampilkan di file log
6.2.7.1 Input data
Program memerlukan beberapa input data komponen utama penjadwalan yang meliputi semester, program studi, ruangan, mata kuliah, dosen, waktu kesediaan dosen, paket mata kuliah dan kombinasi data dasar yang akan dijadwalkan. Gambar 6.7 sampai dengan gambar 6.17 adalah gambar dari semua form input yang ada pada program:
86
Gambar 6.7 Form input semester aktif
Gambar 6.8 Form input data program studi
87
Gambar 6.9 Form input jenis ruangan
Gambar 6.10 Form input data ruangan
88
Gambar 6.11 Form input data mata kuliah
Gambar 6.12 Form input data dosen
89
Gambar 6.13 Form input waktu kesediaan dosen
Gambar 6.14 Form input data hari dan jam kuliah
90
Gambar 6.15 Form input data jenis paket mata kuliah
Gambar 6.16 Form input data isi paket mata kuliah
91
Gambar 6.17 Form input data penjadwalan kuliah 6.2.7.2 Konfigurasi
Hal-hal yang perlu untuk dikonfigurasi adalah kombinasi penggunaan parameter algoritma genetika dan data-data yang hendak ditampilkan pada file log. Gambar 6.18 dan 6.19 berikut adalah form konfigurasi parameter algoritma genetika dan form konfigurasi file log :
Gambar 6.18 Form konfigurasi parameter genetika
92
Gambar 6.19 Form konfigurasi tampilan file log 6.2.7.3 Proses algoritma genetika dan hasil
Proses pembuatan jadwal mata kuliah dijalankan melalui tombol proses, sedangkan 2 tombol yang lain berfungi untuk menyimpan file log dan merubah jadwal yang telah menjadi dokumen. Pada gambar terlihat terdapat grid data kromosom dan gen penjadwalan yang selalu berubah dari generasi ke generasi, selain itu juga terdapat grid hasil akhir dan log.
93
Gambar 6.20 Form proses penjadwalan dengan algoritma genetika
6.2.8 Penerapan program pada penjadwalan kuliah di F MIPA.
Program akan digunakan untuk menyelesaikan masalah penjadwalan dengan berbagai kombinasi parameter algoritma genetika. Besar masalah yang harus diselesaikan adalah penjadwalan sebanyak 313 kelas mata kuliah yang masing-masing diwakili oleh sebuah gen. Secara default program memiliki kombinasi parameter sebagai berikut:
94
Tabel 6.2 Kombinasi default parameter genetika Jumlah populasi 60 Jumlah generasi
200
Seleksi
Turnamen, n = 3
Perkawinan silang
Banyak titik
Persen perkawinan silang
0,7
Persen mutasi
0,1
Elitsm
Tidak ada
Parameter-parameter di atas akan diganti nilainya untuk tujuan pembandingan.
6.2.8.1 Cara membandingkan
Tujuan dari pembandingan adalah untuk mendapatkan kombinasi parameter genetika yang memberikan hasil terbaik. Hasil terbaik adalah hasil yang didapatkan melalui jumlah generasi paling sedikit dan waktu tercepat. Sedangkan kombinasi parameter genetika terbaik adalah kombinasi yang mengalami konvergensi tercepat dan memiliki hasil konsisten selama beberapa kali percobaan. Dalam menilai hasil terbaik lebih diutamakan membandingkan jumlah generasi yang dibutuhkan untuk mendapatkan nilai fitness = 1, yang berarti tidak terjadi konflik pada jadwal, daripada waktu yang diperlukan untuk mendapatkan hasil tersebut. Alasannya adalah waktu eksekusi program menjadi lebih lama dikarenakan adanya pengecekan ruangan dan hal-hal lain yang berhubungan dengan tampilan program, selain itu jumlah generasi berbanding lurus dengan waktu yang diperlukan sehingga dapat diwakili dengan jumlah generasi saja.
95
Cara pembandingan yang dipergunakan adalah dengan menjalankan program sebanyak 7 kali untuk setiap kombinasi parameter genetika untuk mendapatkan hasil terbaik, median, terjelek, rata-rata (mean) dan standar deviasinya. Program akan terhenti jika mencapai jadwal sempurna yaitu nilai
fitness 1 atau pada jumlah generasi tertentu, dalam percobaan ini jumlah generasi dibatasi sebanyak 200 generasi.
6.2.8.2 Seleksi
1. 2. 3. 4. 5. 6. 7.
Tabel 6.3 Hasil uji seleksi turnamen, rangking dan roda roulette Turnamen Rangking Roda Roulette Maks Fit. Mean Fit Maks Fit. Mean Fit Maks Fit. Mean Fit 0,0109 0,0076 0,0019 0,0016 0,0021 0,0016 0,0084 0,0061 0,0019 0,0016 0,0023 0,0018 0,0078 0,0060 0,0019 0,0016 0,0020 0,0017 0,0081 0,0061 0,0019 0,0016 0,0020 0,0017 0,0090 0,0071 0,0018 0,0016 0,0020 0,0017 0,0100 0,0070 0,0019 0,0016 0,0021 0,0017 0,0079 0,0061 0,0018 0,0016 0,0019 0,0016
Tabel 6.4 Statistika seleksi turnamen, rangking dan roda roulette Seleksi Terbaik Median Terjelek Mean Turnamen Rangking Roda Roulette
Stand. Dev.
Maks
Mean
Maks
Mean
Maks
Mean
Maks
Mean
Maks
0.0109
0.0076
0.0084
0.0061
0.0078
0.006
0.0089
0.0066
0.0019
0.0016
0.0019
0.0016
0.0018
0.0016
0.0019
0.0016
0.0012 4.8795 E-05
0.0023
0.0018
0.002
0.0017
0.0019
0.0016
0.0021
0.0017
0.0001
Mean 0.0006 0 6.9006 6E-05
96
SELEKSI TURNAMEN, RANGKING DAN ROULETTE 0.008 0.007 s s e n t i f a t a r a t a r
0.006 0.005 0.004 0.003 0.002 0.001 0 0
2 1
4 2
6 3
8 4
0 6
2 7
4 8
6 9
8 0 1
0 2 1
2 3 1
4 4 1
6 5 1
8 6 1
0 8 1
2 9 1
generasi tur namen
r angking
r oulette
Gambar 6.21 Grafik perbandingan seleksi turnamen, rangking dan roda roulette
Dari tabel statistika dan grafik dapat disimpulkan bahwa metode seleksi turnamen adalah metode seleksi yang paling baik dan dapat mencapai jadwal sempurna, sedangkan metode seleksi rangking dan roda roulette tidak bekerja dengan maksimal, dimana konvergensi terjadi sangat lambat dan membutuhkan banyak generasi. Salah satu penyebab terjadinya hal ini karena metode seleksi rangking dan roda roulette cenderung memenangkan individu dengan fitness tinggi untuk menjadi orangtua pembentuk individu baru, sehingga tidak semua individu tereksplorasi.
97
6.2.8.3 Perkawinan silang
Tabel 6.5 Hasil uji perkawinan silang banyak titik dan rekombinasi Banyak Titik Rekombinasi Maks Fit. Mean Fit Maks Fit. Mean Fit 1. 0,0109 0,0076 0,0019 0,0016 2. 0,0084 0,0061 0,0019 0,0016 3. 0,0078 0,0060 0,0018 0,0015 4. 0,0081 0,0061 0,0018 0,0015 5. 0,0090 0,0071 0,0017 0,0015 6. 0,0100 0,0070 0,0018 0,0015 7. 0,0079 0,0061 0,0018 0,0016
Tabel 6.6 Statistika perkawinan silang Terbaik Median Terjelek Banyak Titik Rekombinasi
Mean
Stand. Dev.
Maks
Mean
Maks
Mean
Maks
Mean
Maks
Mean
Maks
Mean
0.0109
0.0076
0.0084
0.0061
0.0078
0.006
0.0089
0.0066
0.0012
0.0006
0.0019
0.0016
0.0018
0.0015
0.0017
0.0015
0.0018
0.0015
6.9006 6E-05
5.3452 2E-05
PERKAWINAN SILANG BANYAK TITIK DAN REKOMBINASI 0.008 0.007 s s e n t i f a t a r a t a r
0.006 0.005 0.004 0.003 0.002 0.001 0 0
2 1
4 2
6 3
8 4
0 6
2 7
4 8
6 9
8 0 1
0 2 1
2 3 1
4 4 1
6 5 1
8 6 1
0 8 1
2 9 1
generasi Banyak titik
Rekombinasi
Gambar 6.22 Grafik perbandingan perkawinan silang banyak titik dan rekombinasi
Dari data statistika dan grafik dapat diambil kesimpulan bahwa perkawinan silang dengan metode rekombinasi tidak berbuat banyak untuk
98
menyelesaikan penjadwalan, padahal pada model yang dikembangkan oleh Lee metode rekombinasi memberikan hasil yang baik. Hal ini disebabkan oleh adanya perbedaan sistem perkuliahan yang berlaku di Ateneo University dan sistem perkuliahan di Indonesia pada umumnya, dimana pada model yang dikembangkan Lee setiap gen pada sistem perkuliahan di Ateneo University jika diberi bobot sesuai sks dianggap 1, sedangkan untuk setiap gen pada sistem perkuliahan Indonesia memiliki bobot sks yang bermacam-macam, bisa 1, 2 atau 3 bahkan lebih. Penerapan rekombinasi pada kromosom yang memiliki bobot sks setiap gen berbeda-beda ternyata membuat pencarian menjadi proses random murni atau dengan kata lain terjadi konvergensi prematur.
6.2.8.4 Elitsm
1. 2. 3. 4. 5. 6. 7.
Tabel 6.7 Hasil uji elitsm dan tanpa elitsm Tanpa Elitsm Dengan Elitsm Maks Fit. Mean Fit Maks Fit. Mean Fit 0,0109 0,0076 0,0081 0,0069 0,0084 0,0061 0,0081 0,0068 0,0078 0,0060 0,0085 0,0071 0,0081 0,0061 0,0073 0,0063 0,0090 0,0071 0,0089 0,0076 0,0100 0,0070 0,0063 0,0055 0,0079 0,0061 0,0093 0,0075
Tabel 6.8 Statistika elitsm dan tanpa elitsm Terbaik Median Terjelek Tanpa elitsm Dgn. Elitsm
Mean
Stand. Dev.
Maks
Mean
Maks
Mean
Maks
Mean
Maks
Mean
Maks
Mean
0.0109
0.0076
0.0084
0.0061
0.0078
0.006
0.0089
0.0066
0.0012
0.0006
0.0093
0.0075
0.0081
0.0069
0.0063
0.0055
0.0081
0.0068
0.0010
0.0007
99
ELITSM DAN NON ELITSM 0.008 0.007 s s e n t i f a t a r a t a r
0.006 0.005 0.004 0.003 0.002 0.001 0 0
2 1
4 2
6 3
8 4
0 6
2 7
4 8
6 9
8 0 1
0 2 1
2 3 1
4 4 1
6 5 1
8 6 1
0 8 1
2 9 1
generasi elitsm
non elitsm
Gambar 6.23 Grafik perbandingan elitsm dan tanpa elitsm
Dari data rata-rata keseluruhan dan standar deviasi yang terdapat pada tabel statistika dapat diambil kesimpulan bahwa penyelesaian tanpa elitsm tidak terlalu berbeda dibandingkan jika menggunakan elitsm. Dari grafik dapat dilihat bahwa elitsm meningkatkan rata-rata fitness lebih cepat pada generasi awal, tetapi pada akhirnya menjadi tidak terlalu berbeda dengan yang tidak menggunakan elitsm, bahkan pada beberapa titik, tanpa menggunakan elitsm dapat memiliki rata-rata fitness yang lebih baik.
100
6.2.8.5 Jumlah populasi
Tabel 6.9 Hasil uji jumlah populasi 20, 40, 60 dan 100 20 40 60 Maks Mean Maks Mean Maks Mean Fit. Fit Fit. Fit Fit. Fit
100 Maks Mean Fit. Fit
1.
0,0058
0,0050
0,0075
0,0060
0,0109
0,0076
0,0159
0,0095
2.
0,0049
0,0043
0,0080
0,0061
0,0084
0,0061
0,0130
0,0087
3.
0,0051
0,0049
0,0063
0,0051
0,0078
0,0060
0,0145
0,0091
4.
0,0048
0,0042
0,0083
0,0065
0,0081
0,0061
0,0128
0,0079
5.
0,0048
0,0042
0.0070
0,0057
0,0090
0,0071
0,0127
0,0090
6.
0,0051
0,0043
0,0064
0,0053
0,0100
0,0070
0,0118
0,0084
7.
0,0058
0,0050
0,0074
0,0060
0,0079
0,0061
0,0118
0,0076
Tabel 6.10 Statistika jumlah populasi 20, 40, 60 dan 100 Terbaik Median Terjelek Mean Populasi 20 Populasi 40 Populasi 60 Populasi 100
Maks
Mean
Maks
Mean
Maks
Mean
Maks
Mean
Maks
Mean
0.0058
0.005
0.0051
0.0043
0.0048
0.0042
0.0052
0.0046
0.0004
0.0004
0.0083
0.0065
0.0074
0.006
0.0063
0.0051
0.0073
0.0058
0.0008
0.0005
0.0109
0.0076
0.0084
0.0061
0.0078
0.006
0.0089
0.0066
0.0012
0.0006
0.0159
0.0095
0.0128
0.0079
0.0118
0.0076
0.0132
0.0086
0.0015
0.0007
POPULASI 20, 40, 60 DAN 100 0.01 0.009 0.008 s s e n t i f a t a r a t a r
Stand. Dev.
0.007 0.006 0.005 0.004 0.003 0.002 0.001 0 1
3 1
5 2
7 3
9 4
1 6
3 7
5 8
7 9
9 0 1
1 2 1
3 3 1
5 4 1
7 5 1
9 6 1
generasi 20
40
60
100
Gambar 6.24 Grafik perbandingan jumlah populasi
1 8 1
3 9 1
101
Dari grafik dapat diambil kesimpulan bahwa semakin sedikit jumlah populasi semakin banyak generasi yang diperlukan untuk mencapai nilai fitness lebih baik. Hal ini disebabkan banyaknya kemungkinan kombinasi komponen penjadwalan yang diwakili oleh individu-individu di dalam populasi, sehingga kemungkinan mencapai nilai fitness lebih baik lebih besar. Peningkatan rata-rata
fitness cenderung lebih lambat pada populasi kecil, seperti yang bisa dilihat pada nilai standar deviasi yang tidak lebih besar dari populasi besar. Akan tetapi perlu diketahui bahwa semakin besar jumlah populasi maka semakin lama waktu yang diperlukan untuk mengevaluasi fitness setiap generasi. Tingkah laku algoritma genetika berdasarkan besarnya populasi yang diuji diatas terjadi pada kromosom yang terdiri dari kurang lebih 300 gen, tidak menutup kemungkinan program dapat bertingkah berbeda pada kromosom dengan jumlah gen yang lebih sedikit atau lebih banyak.
BAB VII PENUTUP
7.1 Kesimpulan
Masalah penjadwalan mata kuliah dapat direpresentasikan ke dalam bentuk kromosom yang merupakan permodelan dari algoritma genetika yang selanjutnya dapat di buat menjadi sebuah program setelah di susun algoritma yang merupakan pemenuhan aturan-aturan penjadwalan dan parameter-parameter algoritma genetika yang dipergunakan. Program dapat menghasilkan suatu jadwal kuliah tetapi kadang kala tidak semua aturan yang harus dilaksanakan terpenuhi secara lengkap, sehingga hasil tersebut belum dapat dipergunakan untuk penjadwalan sesungguhnya dan masih memerlukan penelitian dan pengembangan lebih lanjut. Berdasarkan uji banding parameter-parameter algoritma genetika untuk masalah penjadwalan mata kuliah yang dilakukan, ternyata metode seleksi terbaik adalah seleksi turnamen, metode perkawinan silang terbaik adalah perkawinan silang banyak titik, tanpa elitsm umumnya lebih cepat menyelesaikan penjadwalan dan jumlah populasi yang lebih baik untuk model kromosom masalah penjadwalan mata kuliah yang memiliki sekitar 300 gen adalah sekitar 100 individu, tetapi tidak lebih cepat dalam waktu dibandingkan dengan jumlah populasi yang lebih sedikit.
102
103
7.2 Saran
Tidak semua parameter algoritma genetika telah dipergunakan dalam program penjadwalan kuliah, sehingga tidak menutup kemungkinan ada parameter lain yang dapat menyelesaikan proses penyusunan jadwal kuliah dengan lebih baik. Aturan penjadwalan kuliah yang dipergunakan dalam skripsi ini belumlah selengkap
sesuai
dengan
aturan
penjadwalan
yang
digunakan
Fakultas
Matematika dan Ilmu Pengetahuan Alam, melainkan hanya hal-hal utama yang mewakili ciri proses penjadwalan kuliah yang dipergunakan oleh universitas di Indonesia pada umumnya, sehingga program yang dihasilkan hanyalah sebuah prototipe yang membuktikan bahwa algoritma genetika dapat dipergunakan untuk menyelesaikan masalah penjadwalan kuliah di tingkat universitas. Oleh sebab itu tidak menutup kemungkinan untuk pengembangan program lebih lanjut dengan menyertakan semua aturan agar dapat dipergunakan untuk menyelesaikan proses penjadwalan kuliah sesungguhnya.