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