Perancangan Populasi Awal Penjadwalan

genetika yang akan diterapkan pada penjadwalan matakuliah adalah : Start Populasi Awal Evaluasi Fitness Mutasi Crossover Seleksi Kriteria Berhenti Terpenuhi? Hasil jadwal Selesai Gambar 3. 1 Flowchart Algoritma Genetika

3.2.1.1. Perancangan Populasi Awal Penjadwalan

Penjadwalan matakuliah terdiri dari komponen mata kuliah, dosen, hari, jam, dan ruang. Yang akan dijadikan model kromosom adalah komponen mata kuliah, hari, jam dan ruang. Pembentukan populasi awal penjadwalan matakuliah adalah N kromosom, dengan N merupakan kandidat banyaknya matakuliah. Setiap gen dalam kromosom mewakili satu kuliah. Populasi awal dibangkitkan secara random untuk selanjutnya dilakukan proses evaluasi setiap kromosomnya. Panjang 1 kromosom adalah N gen, dimana N merupakan hasil perkalian antara jumlah hari, jumlah ruang, dan jumlah waktu. Pemetaan kromosom akan menerapkan time slot pada jam matakuliah. Setiap time slot terdiri dari 3 jam matakuliah. Berikut tabel penjelasan pengelompokan jam : Tabel 3. 2 Tabel Pengelompokan Jam Pada Tabel 3.2 menjelaskan deskripsi singkat mengenai pengelompokan waktu dalam 1 hari. Jika setiap ruang yang dipakai adalah 12 jam pelajaran, maka pemetaan Ruang dalam kromosom adalah 4 untuk setiap Ruangnya. Jika digambarkan pemetaan ruang yang dikaitkan dengan waktu akan menjadi sebagai berikut : Gambar 3. 2 Pemetaan Ruang dalam Kromosom Gambar 3.2 Setiap 1 time slot waktu akan direpresentasikan dengan 1 Gen. Gen merupakan kandidat Kelas kuliah tertentu. Pemetaan untuk menentukan panjang sebuah Kromosom adalah dengan menggunakan rumus berikut : Ngen = H R W 3 Keterangan : Ngen = jumlah gen dalam 1 kromosom H = jumlah hari dalam perkuliahan R = jumlah ruang dalam perkuliahan W = jumlah waktu dalam perkuliahan Berdasarkan data yang diperoleh, Prodi PGSG Universitas Sanata Dharma menerapkan jadwal dengan 156 Kelas kuliah, 5 hari, 14 ruang teori, dan 12 waktu jam untuk perkuliahan semester Ganjil Tahun Akademik 20132014. Maka jumlah gen yang terbentuk untuk 1 kromosom adalah : Ngen = 5 14 12 3 = 280 Dalam perancangan sistem, Ngen merupakan representasi dari panjang 1 kromosom. Kromosom tersebut merupakan jadwal matakuliah di PGSD selama 1 minggu. Setiap Gen nya memiliki makna Hari, Ruang dan Jam tertentu. Kelas kuliah merupakan komponen penting dalam penyusunan jadwal matakuliah. Kombinasi Matakuliah dan Dosen akan membentuk sebuah Kelas Kuliah. Kelas Kuliah akan berbeda setiap semesternya. Data Matakuliah ditawarkan oleh PGSD terdapat pada Tabel 5.1, data dosen pengampu terdapat pada Tabel 5.2, dan data ruang yang dipakai terdapat pada Tabel 5.3. Data Kelas Kuliah PGSD berdasarkan data Semester Ganjil Tahun Ajaran 20142015 terdapat pada Tabel 5.4. Tabel Kelas Kuliah terdiri dari kode kelas kuliah, kode matakuliah, kode dosen pengampu dan kelas. Data tersebut akan diimplementasikan ke dalam Algoritma Genetika. Dalam menyusun tabel kelas kuliah ke dalam kromosom, masing-masing kelas kuliah akan ditempatkan secara random index Gen nya. Hal ini berarti setiap kelas kuliah memiliki index slot Gen yang berbeda. Index Gen yang tidak ditempati oleh kelas kuliah manapun akan dikodekan dengan 0, yang berarti tidak ada kelas kuliah di hari, jam, dan ruang tersebut. Pemetaan kromosom yang terbentuk dan digabungkan dengan kelas kuliah dapat diilustrasikan sebagai berikut : Gambar 3. 3 Ilustrasi Pemetaan Kromosom 1 Berikut pemetaan Kromosom secara keseluruhan dengan menggabungkan Hari, Ruang, Dan Waktu dalam seminggu waktu kuliah: Gambar 3. 4 Pemetaan Kromosom 2 Berikut sebagian penjelasan pemetaan Kromosom Gambar 3.4 :  Gen[0]  Kelas Kuliah ke 2 PDW 2106 – Logika, Semester 1,Kelas B, Dosen Pengampu G. Ari Nugraha, S.J., M.A. Hari Senin, Ruang 1, Time Slot 1 Jam 07.00-09-59.  Gen[67]  Kelas Kuliah ke 17 PDW 2122 - Bahasa dan Sastra Indonesia, Semester 1, Kelas B, Dosen Pengampu Apri Damai SK, S.S., M.Pd. Hari Selasa, Ruang 3, Time Slot 4 Jam 16.00-18.59.  Gen[234]  Tidak ada kelas kuliah di hari Jumat, Ruang 3, Time Slot 3 13.00-15.59. Populasi merupakan kumpulan dari kromosom. Dengan kata lain, populasi merupakan kumpulan dari jadwal matakuliah. Dalam perancangan program, 1 populasi terdiri dari 4 kromosom. Jika digambarkan maka rancangan populasi yang dibangun untuk Iterasi 1 populasi awal adalah : Gambar 3. 5 Pemetaan Populasi Membangun populasi awal juga mempertimbangkan aturan soft constraint yang berlaku. Pada saat membangun populasi awal, kelas kuliah permintaan akan dimasukkan terlebih dahulu ke dalam sistem sesuai dengan Hari, Ruang, dan Waktu yang sesuai dengan permintaan. kemudian kelas kuliah lainnya akan dimasukkan secara random. Berikut algoritma ProsesRandom. method prosesRandom 1. Buat variabel r bertipe random. 2. Buat variabel hari bertipe int. Set nilai dengan 5. 3. Buat variabel waktu bertipe int. Set nilai dengan 12. 4. Buat variabel matkul bertipe int set dengan panjang kelas kuliah. 5. Buat Gen bernama data sepanjang hariruangwaktu3. 6. Buat variabel boolean bernama cek yang berfungsi untuk mengecek apakah kelas kuliah telah berada di dalam kromosom atau tidak. 7. Buat variabel N bertipe int set dengan matkul. 8. Untuk i = 0 hingga panjang data lakukan langkah 9. 9. Buat gen kosong baru set matakuliah sama dengan kosong dan hari ruang waktu sesuai dengan lokasi gen. 10. Untuk i = 0 hingga matkul lakukan langkah 11. 11. Set seluruh cek dengan false. Menandakan matakuliah belum berada di dalam kromosom. 12. Untuk i = 0 hingga panjang data permintaan lakukan langkah 13-15 13. Masukkan seluruh kelas kuliah ke Gen yang sesuai dengan permintaan Hari, Ruang, dan Waktu. 14. Set cek kelaskuliah permintaan dengan true. Menandakan matakuliah telah ada di dalam kromosom. 15. Kurangi N sebanyak matakuliah permintaan. 16. Buat variabel index bertipe int set dengan 0. 17. Ketika N tidak sama dengan 0. Lakukan langkah 18-22 18. Buat variabel tangkap bertipe int set dengan nilai acak panjang data. 19. Cek apakah cek ke index sama dengan true. Jika ya, maka penambahan nilai index dengan 1. Jika tidak, lakukan langkah 20-22. 20. Cek apakah slot gen posisi tangkap kosong. Jika ya, masukkan kelasMatakuliah ke dalam Gen. 21. Tambahkan nilai index dengan 1. 22. Kurangi nilai N dengan 1. 23. Kembalikan data sebagai nilai balik. 24. Selesai. Gambar 3. 6 Algoritma prosesRandom

3.2.1.2. Evaluasi Fitness Pada Penjadwalan