Identifikasi Masalah Mapping Algoritma Genetik

BAB 3 PEMBAHASAN

3.1 Analisis

Pada subbab ini berisi uraian analisis sistem simulasi penjadwalan kuliah meliputi identifikasi permasalahan untuk mengetahui hal-hal yang menjadi permasalahan dan yang harus diselesaikan untuk menerapkan algoritma genetik dalam proses penjadwalan kuliah sampai pada pemodelan data untuk menentukan rancangan database.

3.1.1 Identifikasi Masalah

Pada algoritma genetik, terlebih dahulu diidentifikasi tentang kendala yang dihadapi dalam sistem. Pada penjadwalan terdapat 2 jenis kendala prioritas yang dapat diidentifikasi yaitu kendala yang harus dapat dipenuhi Hard Constrains dan kendalan yang tidak harus dipenuhi Soft Constraints tetapi kendalan ini tetap diusahakan sedapat mungkin dipenuhi pelanggaran terhadap kendala dapat diminimalkan. Kendala tersebut muncul karena adanya aturan- aturan yang berfungsi agar entitas yang ada dalam melakukan proses dapat berjalan dengan baik. Entitas tersebut meliputi kuliah, dosen, mahasiswa kelas, ruang dan waktu dengan segala keterbatasannya. 1. Hard Constraints Hard Constraints adalah prioritas umum yang harus dipenuhi dalam menyusun jadwal kuliah. Ada beberapa ketentuan yang harus dilaksanakan dengan pertimbangan bahwa apabila prioritas ini tidak terpenuhi akan menyebabkan kesalahan fatal tidak fleksibel. Universitas Sumatera Utara Prioritas yang termasuk dalam hard constraints meliputi: a. Tidak boleh ada kuliah yang berjalan bersamaan untuk kelas yang sama. b. Tidak boleh ada kapasitas ruang kurang dari jumlah mahasiswa yang mengambil mata kuliah tersebut. c. Satu dosen tidak bias memberikan kuliah di dua tempat atau lebih di tempat yang berbeda pada waktu yang bersamaan d. Satu ruang kuliah tidak bias digunakan lebih dari satu kuliah dalam waktu yang bersamaan. e. Tipe ruang kuliah kuliah harus sama dengan tipe kuliah. f. Kelas praktikum dilakukan secara berturut-turut. g. Pada waktu tertentu tidak diperkenankan adanya kuliah. Misalkan: hari Jumat jam 12.00-14.00, dsb. h. Durasi perkuliahan dalam 1 minggu dan perhari tidak boleh overlap. 2. Soft Constraints Soft Constraints ialah prioritas yang tidak dapat terpenuhi, tidak menyebabkan kesalahan yang fatal. Prioritas yang termasuk dalam Soft Constraints yaitu: a. Kelas teori dilakukan secara berturut-turut. b. Dosen dapat memilih jam mengajar yang diinginkan.

3.1.2 Analisis Algoritma Genetik Pada Penjadwalan

Penerapan algoritma genetik dalam proses penjadwalan kuliah, ada 5 hal yang penting yang harus dilakukan seperti yang telah disampaikan oleh John Holland dalam Simple Genetik Algorithm yaitu pengkodean kromosom, membangun populasi awal, proses seleksi, proses regenerasi mulai dari persilangan dan mutasi serta proses perulangan regenerasi sampai memperoleh kondisi terpenuhi. Universitas Sumatera Utara

3.1.2.1 Membangun Populasi Awal

Populasi awal pada umumnya dibangun terdiri dari 2 teknik yaitu sebuah populasi dibangun dari semua informasi constraints dan populasi awal dibangkitkan secara random. Pada penelitian ini digunakan teknik populasi awal dengan mengambil semua informasi constraints dari pusat data, yang terlebih dahulu setiap informasi constraints tersebut direpresentasikan, kemudian populasi awal dibangun berdasarkan informasi yang ada sebanyak N kromosom, dengan N merupakan banyaknya kuliah dan dapat dikatakan bahwa setiap gen dalam kromosom mewakili suatu kuliah. Populasi awal tersebut kemudian dibangkitkan secara random untuk selanjutnya dilakukan proses evaluasi setiap kromosomnya. Representasi kromosom tersebut sebagai berikut: 1. Ada 3 informasi constraints utama yaitu: a. Dosen pengajar available. b. Mata kuliah yang telah ditetapkan pengajarnya. c. Informasi ruang kuliah available. 2. Pada ke-empat informasi diatas dapat direpresentasikan kromosom dalam bentuk matriks sebagai berikut: a. Dosen Pengajar available Representasi ini menginformasikan waktu dosen pengajar dapat mengajar yang dinotasikan D[i,j] dengan i = hari dan j = jam. Bentuk representasi dalam matriks dapat digambarkan dengan matriks dua dimensi, dengan panjang baris Hari [N] = maksimum hari perminggu dan panjang kolom Jam [N] = maksimum jam perhari. Matriks tersebut dapat dilihat pada Tabel 3.1. Universitas Sumatera Utara Tabel 3.1 Matriks Dosen Pengajar Available Jam Hari 1 … N D11 D12 … D1N 1 D21 D22 … D2N … … … … … N DN1 DN2 … DNN b. Mata Kuliah Bentuk representasi dari mata kuliah adalah matriks satu dimensi yang dinotasikan KM[i] dengan i = mata kuliah ke-i. Representasi ini menginformasikan kelas mata kuliah yang telah ditentukan pengajarnya, dengan panjang matriks = banyak mata kuliah. Bentuk matriks satu dimensi mata kuliah ditunjukkan pada Tabel 3.2. Tabel 3.2 Matriks Kelas Mata Kuliah 1 … N Kelas Mata Kuliah KM1 KM2 … KMN c. Ruang Kuliah Representasi yang menginformasikan waktu ruang yang dapat digunakan untuk kuliah. Representasi ini dinotasikan R[i,j] dengan i=hari dan j = jam, dengan panjang baris Hari[N] = maksimum hari perminggu dan panjang kolom Jam[N] = maksimum jam perhari. Bentuk matriks ruang available ditunjukkan pada Tabel 3.3. Tabel 3.3 Matriks Ruang Available Jam Hari 1 … N R11 R12 … R1N 1 R21 R22 … R2N … … … … … N RN1 RN2 … RNN Universitas Sumatera Utara 3. Dari constraints yang ada dapat ditunjukkan matriks penyelesaian penjadwalan kuliah dengan bentuk matriks 3 dimensi, dengan algoritma sebagai berikut Gambar 3.1 For tiap ruang; For tiap hari; For tiap jam; Tempatkan kelas mata kuliah available Gambar 3.1 Algoritma Penyelesaian Jadwal Kuliah

3.1.2.2 Evaluasi Penalty Kromosom

Setiap kromosom pada populasi dievaluasi untuk diketahui nilai penalty nilai total pelanggaran. Fungsi penalty disusun berdasarkan prioritas yang dihadapi. Pada proses evaluasi ini digunakan model seleksi Roulette Wheel Selection, dengan mengacu nilai fitness atau penalty. Proses seleksi yang dilakukan yaitu perhitungan banyaknya pelanggaran penalty. Adapun proses seleksi perhitungan pelanggaran tersebut sebagai berikut: 1. Banyaknya kelas yang bentrok. 2. Kapasitas ruangan yang terlalu kecil dengan jumlah mahasiswa. 3. Tipe ruangan yang tidak sesuai dengan tipe kuliah. 4. Duplikat dosen mengajar. 5. Waktu perkuliahan tertentu not available. 6. Dosen ditempatkan pada waktu dosen not available 7. Kelas teori ditempatkan tidak berturut-turut. 8. Kelas praktikum ditempatkan tidak berturut-turut. Berdasarkan hal diatas dapat dihitung total nilai penalty dengan rumus, penalty = total cost pelanggaran x konstanta beban pelanggaran tersebut. Pada penelitian ini bobot penalty dari tiap golongan adalah sebagai berikut: Universitas Sumatera Utara Tabel 3.4 Bobot Penalty Setiap Golongan Penalty Gol Penalty Bobot Penalty Berat 10 Sedang 8 Ringan 1 Dari seluruh prioritas dan bobot penalty diatas, bobot penalty dari masing-masing prioritas dapat dilihat pada Tabel 3.5 Tabel 3.5 Bobot Penalty Setiap Prioritas Penalty Gol Penalty Duplikat kelas mahasiswa Berat Ruang terlalu kecil Berat Tipe ruangan tidak sesuai tipe kuliah Berat Duplikat dosen Berat Dosen Not Available Sedang Waktu Not Available Berat Durasi teori tidak berturut-turut Ringan Durasi praktek tidak berturut-turut Berat

3.1.2.3 Proses Regenerasi

Proses regenerasi adalah proses perubahan gen-gen generasi sekarang ke gen generasi berikutnya. Proses regenerasi meliputi: 1. Persilangan Crossover Proses yang dilakukan untuk melakukan penukaran bagian kromosom yaitu dengan memilih gen dengan posisi dan panjang kromosom secara random dalam satu kromosom, kemudian dilakukan penataan kembali gen yang tidak terjadi crossover. Proses persilangan yang digunakan dalam penelitian ini dengan tipa One Point Crossover. Universitas Sumatera Utara 2. Mutasi Mutation Proses penukaran gen mutasi dalam kromosom yang dipilih dilakukan secara random berdasarkan nilai probabilitas mutasinya. Proses mutasi yang digunakan dalam penelitian ini dengan menggunakan tipe mutasi biasa.

3.1.2.4 Pengujian

Proses algoritma genetik akan terjadi perulangan terus-menerus mulai dari awal sampai proses regenerasi mencapai maksimum. Perulangan tersebut akan berhenti, bila kriteria penghentian telah terpenuhi. Pada umumnya kriteria penghentian ada 2 macam yaitu apabila nilai penalty = 0 atau sudah tidak ada lagi pelanggaran dan banyaknya generasi telah mencapai nilai maksimum. Dalam penelitian ini digunakan 2 macam kriteria tersebut dalam melakukan penghentian proses regenerasi. Pertimbangan digunakan 2 kriteria tersebut adalah apabila pada proses regenerasi tertentu telah mencapai nilai penalty = 0 maka sistem tidak perlu melakukan proses regenerasi sampai mencapai generasi maksimum karena individu terbaik telah ditemukan, sedangkan bila tidak mencapai nilai penalty = 0 maka proses regenerasi akan mencapai generasi maksimum dengan memilih individu yang mempunyai nilai penalty paling rendah dan ini merupakan individu terbaik dari individu yang berbentuk dari generasi-generasi yang ada.

3.1.3 Mapping Algoritma Genetik

Pada proses dalam algoritma genetik dalam penelitian ini adalah mendeskripsikan alur-alur variabel mulai dari awal sampai mendapatkan solusi. Universitas Sumatera Utara Algoritma yang digunakan dalam menyelesaikan permasalahan penjadwalan kuliah dapat dilihat pada Gambar 3.2, dengan tujuan utama tetap dengan algoritma genetik. Menentukan nilai konstanta yang diperlukan………………………….1 Inisialisasi database……………………………………………………2 Inisialisasi penyelesaian dalam bentuk pointer………………………..3 While regenerasi max_generasi { Dispose pointer cost_Penalty paling besar………………………4 Hitung nilai rata-rata Penalty………………………………….....5 While jml_populasi max_populasi { Regenerasi………………………………………………….6 } If cost_Penalty 1 { Regenerasi:=max_regenerasi-1…………………………...7 } Incregenerasi; } Cetak_penyelesaian Gambar 3.2 Algoritma Penjadwalan Kuliah Deskripsi Gambar 3.2: Ada beberapa asumsi penulis dalam istilah-istilah dalam algoritma genetik: 1. Gen : informasi constraints seperti: ruang, hari, jam, mata kuliah, kelas mahasiswa, dosen beserta seluruh atributnya. 2. Kromosom : mewakili kelas mata kuliah yang telah ditempatkan yang digambarkan pada matriks 3 dimensi Matriks[ruang][hari][jam]. 3. Individu : satu individu mewakili seluruh kelas mata kuliah yang terjadi pada tahun ajaran tersebut, yang memiliki berbagai variasi. Digambarkan pada bentuk pointer, dengan satu cell pointer merupakan satu individu. Universitas Sumatera Utara Berikut ini penjelasan Algoritma Penjadwalan Kuliah 1. Menetukan nilai konstanta yang diperlukan Berikut ini konstanta yang diperlukan: a. Konstanta Penalty: Untuk menetukan prioritas Hard Constraints dan Soft Constraints. Nilai konstanta dapat dilihat pada Sub Bab 3.1.2.2, Tabel 3.4 dan Tabel 3.5. b. Konstanta pendukung 1. Max_populasi : Jumlah maksimum populasi dalam satu generasi. 2. Crossover_rate : Probabilitas persilangan. 3. Mutation_rate : Probabilitas mutasi. 4. Max_regenerasi : Jumlah maksimum regenerasi. 2. Inisialisasi database Pada prosedur ini merupakan awal pembentukan populasi, dengan mengambil seluruh gen informasi dalam database yang terdiri atas mata kuliah, ruang, kelas mahasiswa, waktu dosen dengan semua atributnya, dapat dilihat pada Sub Bab 3.1.2.1 Membangun Populasi Awal. 3. Inisialisasi penyelesaian dalam bentuk pointer Penyelesaian dari setiap generasi akan disimpan dalam pointer dengan bentuk Linked List. Kemudian digunakan sebagai pembanding antar generasi, untuk memilih individu yang terbaik. Berikut ini ilustrasi pointer dapat dilihat pada Gambar 3.3 Universitas Sumatera Utara Gambar 3.3 Ilustrasi Pointer Penjadwalan Kuliah Penjelasan Gambar 3.3: a. Pertama kali di deklarasikan alokasi memori pointer new Temp_pointer. b. Nilai satu cell pointer berisi informasi seluruh ruang, hari dan jam yang digunakan kuliah dalam satu semester tahun ajaran, dengan seluruh informasi dalam bentuk matriks 3 dimensi yang masih bernilai nol ruang dan waktu belum ditempatkan mata kuliah tertentu. Proses ini merupakan proses inisialisasi pointer. c. Sebelum masuk ke pointer c setelah pointer b terdapat prosedur- prosedur yang dilalui yaitu: 1. Penempatan tiap ruang, hari, jam terhadap mata kuliah tertentu beserta durasi mata kuliah tersebut. 2. Dihitung nilai penalty pelanggaraan tiap kromosom. 3. Setiap kromosom beserta nilai Penaltynya dimasukkan ke dalam pointer c. Universitas Sumatera Utara 4. Pada awal generasi dialokasikan memori pointer Linked List kepala dan bagian ekornya newfirst dan newlast, dengan kedua nilai pointer yang sama. 5. Pada generasi selanjutnya digambarkan pada pointer bentuk Linked List yang sebenarnya dengan prinsip LIFO Last In First Out, tetapi pointer tersebut akan diurutkan berdasarkan nilai Penaltynya mulai dari kepala dengan nilai total Penalty paling kecil samapi bagian ekor dengan nilai Penalty terbesar. Linked List tersebut dapat dilihat pada poin 1 dan 2. 4. Dispose pointer dengan cost Penalty terbesar proses seleksi alam Pada prosedur ini dilakukan untuk menghilangkan individu dengan penalty terbesar dari tiap generasi. Fungsi dari prosedur ini untuk menghemat memori pointer agar tidak terlalu banyak alokasi memori pointer dan ini merupakan proses seleksi alam, dengan individu yang kurang bagus akan dihapus dengan melihat nilai Penaltynya. Banyak individu yang dihilangkan dalam penelitian ini adalah 0,5 x banyaknya individu tiap generasi. 5. Nilai rata-rata penalty Prosedur yang digunakan untuk menghitung rata-rata seluruh penalty setelah ada individu yang dihilangkan. Dengan perhitungan: 3.1 Keterangan: P tot : Total penalty seluruh generasi I : Jumlah individu 6. Regenerasi Proses regenerasi bentuk pointer seperti pada point 3 inisialisasi penyelesaian dalam bentuk pointer, yaitu pointer tetap diurutkan berdasarkan penalty terkecil. Tetapi sebelum itu dilakukan proses persilangan dan mutasi, serta memastikan jumlah kromosom tiap individu. tot P I ∑ Universitas Sumatera Utara a. Proses Persilangan Bentuk individu dalam proses persilangan dapat dimisalkan pada pointer Gambar 3.4 Gambar 3.4 Persilangan Individu b. Proses Mutasi Misal proses mutasi dapat dilihat pada pointer Gambar 3.5 Gambar 3.5 Mutasi Individu c. Memastikan Jumlah Kromosom Setiap Individu. Pada proses persilangan dan mutasi sangat rentang adanya kromosom yang hilang karena digantikan kromosom lain maupun kelebihan kromosom terbentuk kromosom yang kembar. Untuk mengatasi hal tersebut diperlukan proses penyeleksian kembali tiap kromosom dalam individu agar jumlah kromosom sesuai seperti jumlah kromosom pada populasi awal. d. Individu-individu yang terbentuk ke dalam pointer utama sesuai dengan nilai penalty masing-masing individu. 7. Melihat Kondisi Proses setelah regenerasi yaitu mengecek total penalty apakah sudah mencapai penalty = 0 atau belum, jika sudah mencapai akan keluar dari perulangan, sehingga tidak perlu sampai generasi maksimum, jika tidak proses akan berulang dari point 4. Universitas Sumatera Utara

3.1.4 Aliran Informasi