Anda di halaman 1dari 120

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 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 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 dont 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 Tuhan Yang Maha Esa, akhirnya skripsi dengan judul PENYELESAIAN MASALAH PENJADWALAN MATA KULIAH DI FAKULTAS MATEMATIKA DAN ILMU

PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA 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 yang diberikan selama ini. 2. Drs. Ign. Purnomo,M.Kom, selaku dosen pembimbing yang telah memberikan bimbingan dan pengarahan sejak persiapan hingga tersusunnya skripsi ini. 3. Drs. Sri Mulyana, M.Kom, selaku dosen wali dan dosen penguji. 4. Drs. Yusuf, M.A., Dr. Drs. Retantyo Wardoyo, M.Sc., dan Drs. Widodo Pr., M.Sc.E.E. selaku dosen penguji. 5. Dr. Kusminarto atas bantuan data dan wawancara mengenai proses 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.

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

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 kebenarannya. 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 herregistrasi mahasiswa lama,

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-aturan yang telah ditetapkan dalam penjadwalan mata kuliah (Lee,2000).

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

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

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 prosedurprosedur, 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.

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.

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

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

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 (bentukbentuk 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.

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.

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 Lokal

Optimum 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 Kromosom B

101100101100101011100101 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 yang

merepresentasikan angka pada urutan.

Kromosom A Kromosom B

153264798 856723149

Gambar 3.3 Contoh kromosom dengan pengkodean permutasi

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 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 Kromosom B Kromosom C

1.2324, 5.3243, 0.4556, 2.3293, 2.4545 A, B, D, J, E, I, F, J, D, H, D, I, E, R, J (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 apa saja, seperti 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 bobotbobot pada masukan untuk jaringan saraf.

3.3.4 Pengkodean pohon (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

+ x

do until

/ 5 y
do until
( do_until step wall )

do until

(+x (/5y))

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 fitnessnya 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 B C D E 15 5 10 5 5

Gambar 3.6 Contoh populasi dengan 5 kromosom beserta fitnessnya

A B 12,5% C 25% D 12,5% E 12,5% 37,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 B C D E 15 5 10 5 5

Gambar 3.8 Keadaan sebelum dirangking Kromosom Fitness Fitness Baru B D E C A 5 5 5 10 15 1 2 3 4 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 selection) Seleksi turnamen merupakan variasi antara seleksi roda roulette dan seleksi 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 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 11011111 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 11011111 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 11001011 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 Keturunan 2 15 4 16 14 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 1 2 3 4 5 6 7 8 9 Kromosom orangtua 2 4 5 3 6 8 9 7 2 1 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 z -

* 2 + 9 x

+ / 3 z + 9 5 -

* 2 y

(+x(/5y)) Kromosom orangtua 1

(*-(3(+z9)2) Kromosom orangtua 2

(+x(/3(+z9))) Keturunan 1

(*(-5y)2) 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 Kromosom sesudah mutasi

10010111 10010011

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 Kromosom sesudah mutasi

123456897 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 Kromosom sesudah mutasi

1,43 1,09 4,51 9,11 6,94 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 Heri Pratomo, Drs., M.Kom Ign. Purnomo, Drs., M.Kom Y. Suyanto, Drs., M.Kom MMS-1801, MMS-2702 MMS-2802, MMS-4803 MMS-2602, MMS-2805 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 :

Semester
I II III IV V VI UNU 1010

Tabel 4.3 Contoh paket mata kuliah Mata kuliah wajib


MMS 1601, MMS 1651, MMS 1901, MMS 1911, MMS 1101, MMS 1202, MMS 1107, MMS 1801, MMS 1851, MMS 1701, MMS 1702, MMS 1912, MMS 1102, UNU 1 MMS 2801, MMS 2601, MMS 2701, MMS 2703, MMS 2753, MMS 2401 MMS 2802, MMS 2702, MMS 2602, MMS 2803, MMS 2853, MMS 2603 MMS 3601, MMS 3801, MMS 3701, MMS 3802, MMS 3852, MMS 3605, MMS 3921 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
1 2 3 4 5

Tabel 4.4 Daftar jam kuliah Waktu Jam kuliah


07.00-07.50 08.00-08.50 09.00-09.50 10.00-10.50 11.00-11.50 6 7 8 9 10

Waktu
12.00-12.50 13.00-13.50 14.00-14.50 15.00-15.50 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 K1 K3 K4 K5 150 100 80 80 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
MFS-3600 MMS-4604 MMS-3603 MMS-3202 MMS-2702

Tabel 4.6 Contoh penjadwalan mata kuliah Hari Jam Ruang Dosen
Senin Sabtu Rabu Kamis Rabu 6 8 6 2 5 K6 U2.05 M2.14 K3 S2.04 Abdul Rouf, Drs., M.Ikom Agfianto E P, Drs., M.Si. Agus Harjoko, Dr Al. Sutjiana, Drs., M.Sc 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
f , c ,t

fctr

1, untuk setiap c (kelas mata kuliah)

2. Tidak ada dosen yang mengajar 2 kelas berbeda pada waktu yang sama.

t ,c,r

fctr

1 , untuk setiap f (dosen)

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
f ,t , r

fctr

X fc ' tr 0 , untuk setiap c dan c yang dilarang.

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 Kelas 1 R1 T1 Kelas 2 R2 T2

Dosen 2 Kelas 3 R3 T3 Kelas 4 R4 T4

Dosen 3 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 Kelas 1 T1 Kelas2 T3

Dosen 2 Kelas 3 T2 Kelas 4 T1

Dosen 3 Kelas 5 T4 Kelas 6 T3

Gambar 6.2 Model Fase I T1 Kelas 1 R1 Kelas 4 R4 R3 T2 Kelas 3 Kelas 2 R2 T3 Kelas 6 R4 R1 T4 Kelas 5

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

KELAS_MTKULIAH
ID_KELAS ID_MATA_KULIAH KELAS (A,B,) ID_DOSEN SKS_WAKTU JML_PESERTA

WAKTU (JAM KE-)


ID_WAKTU KET_WAKTU

SEMESTER
ID_SEM KET_SEM

KODE_PAKET
KODE_P PSTUDI SEMESTER ID_SEM

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 Konflik waktu dosen Tabrakan matakuliah satu semester Tabrakan matakuliah semester berseberangan Tabrakan matakuliah sama yang dipecah 1 3 3 2 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 D. Keluar 2. Data A. Data dasar a. Program studi : untuk nama input program studi b. Jenis ruangan : untuk input jenis ruangan yang ada c. Ruangan d. Mata kuliah e. Dosen : untuk input data nama ruang beserta kapasitasnya : untuk input data mata kuliah beserta sksnya : untuk input data nama dosen pengajar : untuk logout dari aplikasi : untuk mengakhiri penggunaan aplikasi

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 b. Paket mata kuliah C. Data jadwal a. Kelas mata kuliah : untuk input data kombinasi antara dosen, : untuk input jenis paket mata kuliah : untuk input isi paket mata kuliah

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 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: : untuk konfigurasi yang ditampilkan di file log

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 Seleksi Perkawinan silang Persen perkawinan silang Persen mutasi Elitsm 200 Turnamen, n = 3 Banyak titik 0,7 0,1 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 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 Terbaik Median Terjelek Mean
Maks Mean
0.0076 0.0016 0.0018

1. 2. 3. 4. 5. 6. 7.

Seleksi

Stand. Dev.
Maks
0.0012 4.8795 E-05 0.0001

Maks
0.0084 0.0019 0.002

Mean
0.0061 0.0016 0.0017

Maks
0.0078 0.0018 0.0019

Mean
0.006 0.0016 0.0016

Maks
0.0089 0.0019 0.0021

Mean
0.0066 0.0016 0.0017

Mean
0.0006 0 6.9006 6E-05

Turnamen Rangking Roda Roulette

0.0109 0.0019 0.0023

96

SELEKSI TURNAMEN, RANGKING DAN ROULETTE


0.008 0.007 rata-rata fitness 0.006 0.005 0.004 0.003 0.002 0.001 0 108 120 132 144 156 168 180 generasi turnamen rangking roulette 192 12 24 36 48 60 72 84 96 0

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
Maks Mean
0.0076 0.0016

Mean
Maks
0.0089 0.0018

Stand. Dev.
Maks
0.0012 6.9006 6E-05

Maks
0.0084 0.0018

Mean
0.0061 0.0015

Maks
0.0078 0.0017

Mean
0.006 0.0015

Mean
0.0066 0.0015

Mean
0.0006 5.3452 2E-05

Banyak Titik Rekombinasi

0.0109 0.0019

PERKAWINAN SILANG BANYAK TITIK DAN REKOMBINASI


0.008 0.007 rata-rata fitness 0.006 0.005 0.004 0.003 0.002 0.001 0 108 120 132 144 156 168 180 generasi Banyak titik Rekombinasi 192 12 24 36 48 60 72 84 96 0

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 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
Maks Mean
0.0076 0.0075

1. 2. 3. 4. 5. 6. 7.

Mean
Maks
0.0089 0.0081

Stand. Dev.
Maks
0.0012 0.0010

Maks
0.0084 0.0081

Mean
0.0061 0.0069

Maks
0.0078 0.0063

Mean
0.006 0.0055

Mean
0.0066 0.0068

Mean
0.0006 0.0007

Tanpa elitsm Dgn. Elitsm

0.0109 0.0093

99

ELITSM DAN NON ELITSM


0.008 0.007 rata-rata fitness 0.006 0.005 0.004 0.003 0.002 0.001 0 108 120 132 144 156 168 180 generasi elitsm non elitsm 192 12 24 36 48 60 72 84 96 0

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
1. 2. 3. 4. 5. 6. 7. 0,0058 0,0049 0,0051 0,0048 0,0048 0,0051 0,0058 0,0050 0,0043 0,0049 0,0042 0,0042 0,0043 0,0050 0,0075 0,0080 0,0063 0,0083 0.0070 0,0064 0,0074 0,0060 0,0061 0,0051 0,0065 0,0057 0,0053 0,0060 0,0109 0,0084 0,0078 0,0081 0,0090 0,0100 0,0079 0,0076 0,0061 0,0060 0,0061 0,0071 0,0070 0,0061

100 Maks Mean Fit. Fit


0,0159 0,0130 0,0145 0,0128 0,0127 0,0118 0,0118 0,0095 0,0087 0,0091 0,0079 0,0090 0,0084 0,0076

Tabel 6.10 Statistika jumlah populasi 20, 40, 60 dan 100 Terbaik Median Terjelek Mean
Maks Mean
0.005 0.0065 0.0076 0.0095

Stand. Dev.
Maks
0.0004 0.0008 0.0012 0.0015

Maks
0.0051 0.0074 0.0084 0.0128

Mean
0.0043 0.006 0.0061 0.0079

Maks
0.0048 0.0063 0.0078 0.0118

Mean
0.0042 0.0051 0.006 0.0076

Maks
0.0052 0.0073 0.0089 0.0132

Mean
0.0046 0.0058 0.0066 0.0086

Mean
0.0004 0.0005 0.0006 0.0007

Populasi 20 Populasi 40 Populasi 60 Populasi 100

0.0058 0.0083 0.0109 0.0159

POPULASI 20, 40, 60 DAN 100


0.01 0.009 0.008 rata-rata fitness 0.007 0.006 0.005 0.004 0.003 0.002 0.001 0 109 121 133 145 157 169 181 generasi 20 40 60 100 193 13 25 37 49 61 73 85 97 1

Gambar 6.24 Grafik perbandingan jumlah populasi

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.

104

DAFTAR PUSTAKA

Heitkoetter, J., Beasley, D., 1998, The Hitch-Hikers Guide to Evolutionary Computation, FAQ for comp.ai.genetic. Lee, H.S.C., 2000, Timetabling Highly Constrained System Via Genetic Algorithm (tesis), Department of Mathematics, College of Science,University of the Philippines, Diliman, Quezon City Otbiko, M,. 1998, An Intoduction http://cs.felk.cvut.cz/~xobitko/ga/ to Genetic Algorithm,

Oskar, 1999, Penerapan Algoritma Genetika dalam Penyelesaian Masalah NPComplete (skripsi), Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Gadjah Mada, Yogyakarta. Ross, P., Corne, D., Fang, H.L., 1994, Successful Lecture Timetabling with Evolutionary Algorithm, Departement of Artificial Intelligence, University of Edinburgh, U.K. Sahal, M., Purnomo, M.H., Basuki, A., 2000, Pembuatan Software Penjadwalan Kuliah dan Ujian di Jurusan Teknik Elektro FTI-ITS Surabaya dengan Menggunakan Algoritma Genetika (proceeding), KOMMIT 2000, Jakarta Tim Penyusun Kamus Pusat Pembinaan dan Pengembangan Bahasa Kamus Besar Bahasa Indonesia, 1997, Kamus Besar Bahasa Indonesia, Departemen Pendidikan dan Kebudayaan, Balai Pustaka, Jakarta.

Anda mungkin juga menyukai