Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Justina Adamanti
98/120059/PA/07197
Jogjakarta
2002
SKRIPSI
Justina Adamanti
98/120059/PA/07197
Jogjakarta
2002
SKRIPSI
Justina Adamanti
98/120059/PA/07197
Jogjakarta
2002
i
PENGESAHAN
Justina Adamanti
98/120059/PA/07197
Tim Penguji
ii
“You don’t need to be the best,
but just do the best you can do”
Kupersembahkan untuk
Tingki Wingki ☺
iii
KATA PENGANTAR
Dengan memanjatkan puji dan syukur kepada Tuhan Yang Maha Esa,
ini disusun untuk memenuhi salah satu syarat untuk memperoleh gelar Sarjana
Mada Yogyakarta.
Penulis menyadari bahwa tanpa bantuan dari berbagai pihak, kiranya sulit
kepada:
1. Bapak, Mama, Gati dan Nyo atas segala dukungan yang diberikan selama 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.,
5. Dr. Kusminarto atas bantuan data dan wawancara mengenai proses pembuatan
iv
6. Herman, B.Sc., kepala bagian pengajaran FMIPA dan Nurochman, S.Si,
dosen dan staf UPT Puskom yang telah banyak membimbing dan membantu
Gadjah Mada.
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
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
Penulis menyadari sepenuhnya bahwa skripsi ini masih sangat jauh dari
sempurna, namun besar harapan penulis semoga sumbangsih yang sedikit ini
v
Jogjakarta, Oktober 2002
Penulis
vi
DAFTAR ISI
vii
3.3.2 Pengkodean permutasi (permutation encoding) ............... 17
viii
5.4 Cara Penelitian ................................................................................. 55
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 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.9 Hasil uji jumlah populasi 20, 40, 60 dan 100 .................................... 100
Tabel 6.10 Statistika jumlah populasi 20, 40, 60 dan 100 ................................. 100
x
DAFTAR GAMBAR
Gambar 3.7 Probabilitas terpilihnya suatu kromosom dalam roda roulette ....... 24
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
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.21 Contoh mutasi pada pengkodean nilai riil dengan nilai yang
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
rekombinasi ........................................................................................................ 97
xiii
INTISARI
Justina Adamanti
98/120059/PA/07197
xiv
BAB I
PENDAHULUAN
pembagian waktu berdasarkan rencana pengaturan urutan kerja; daftar atau tabel
antara sumber daya dan waktu untuk mencapai kelancaran tugas organisasi .
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.
1
2
penjadwalan dan pembagian lokasi mahasiswa pada kegiatan KKN (Kuliah Kerja
Nyata), penjadwalan mata kuliah dan ujian di setiap fakultas dan sejumlah
Penjadwalan yang diteliti pada penelitian ini akan berkisar pada masalah
yang bisa dibuat dari kegiatan mengajar dan menguji, yaitu masalah penjadwalan
mata kuliah dan masalah penjadwalan ujian mata kuliah. Keduanya adalah hal
menempatkan waktu dan ruangan kepada sejumlah kuliah, tutorial, dan kegiatan
dengan kapasitas dan lokasi dari ruangan yang tersedia, waktu bebas yang
diperlukan dan sejumlah aturan lain yang berkaitan dengan toleransi untuk dosen,
mahasiswa, mata kuliah yang ditawarkan, waktu dan ruangan kelas. Hasil dari
mahasiswa, ruangan dan mata kuliah yang ditawarkan karena semakin banyak
pembuatan jadwal.
diselesaikan dengan waktu polinomial, tetapi jika suatu solusi untuk satu masalah
(Oskar, 1999).
membuat tabel jadwal secara manual, cara ini membutuhkan waktu yang lama
komponen yang terlibat maka semakin banyak aturan penjadwalan yang tidak
dapat dipenuhi. Cara lain adalah dengan menggunakan penjadwalan yang telah
konsep biologi oleh Darwin, dimana di dalam proses evolusi dapat terjadi
perkawinan silang (cross over) dan mutasi (mutation). Algoritma genetika dimulai
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
diterapkan dalam berbagai masalah sain dan teknik, menurut Mitchell dan Forrest,
1993 (Oskar, 1999) antara lain pada masalah optimation, automatic programming,
sebagai sesuatu yang baru, dimana algoritma ini berbeda dengan algoritma yang
biasa digunakan. Keunikannya adalah mengikuti pola evolusi makhluk hidup dan
ada, dapat dihasilkan suatu solusi yang sama atau mendekati target yang ingin
dicapai.
program adalah Delphi dengan basis data Interbase. Alasan penulis menggunakan
algoritma genetika.
penempatan dosen dan kelas kuliah dan hanya akan digunakan untuk
Matematika dan Ilmu Pengetahuan Alam, Universitas Gadjah Mada. Kasus yang
diambil adalah penjadwalan mata kuliah dengan situasi dan kondisi semester
Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Gadjah Mada, bagi
mata kuliah di tingkat perguruan tinggi yang diterapkan pada sistem perkuliahan
Bab kedua, Tinjauan Pustaka. Bab ini menyajikan penelitian sejenis yang
Bab ketiga, Landasan Teori. Bab ini memberikan dasar teori tentang
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
TINJAUAN PUSTAKA
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
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
Sahal dan Mauridhi Heri Purnomo. Selain penjadwalan kuliah mereka juga
pembuatan jadwal adalah timetable, yaitu satu jadwal jadi adalah satu individu,
kromosom dari individu adalah susunan jadwal berdasarkan hari, jam dan ruang
sedangkan gen adalah satu hari, satu jam, satu mata kuliah dan satu dosen.
Sebagian besar ide dasar dalam penelitian ini akan diambil dari tesis Ho
Sung C. Lee dengan beberapa perubahan agar dapat diterapkan pada sistem
9
10
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
DASAR TEORI
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
dan 1970-an.
Semua solusi dari satu populasi diambil dan digunakan untuk membentuk
populasi baru. Hal ini dimotivasi dengan harapan populasi baru akan lebih baik
semakin baik maka semakin besar kesempatan yang dimiliki untuk bertahan dan
bereproduksi. Hal ini dilakukan berulang kali hingga memenuhi beberapa kondisi
Setiap makhluk hidup terdiri atas banyak sel. Di dalam setiap sel terdapat
11
12
keseluruhan. Setiap kromosom terdiri dari banyak gen yang merupakan blok-blok
DNA. Setiap gen berperan menyandikan suatu protein tertentu, atau dapat
bentuk tubuh dan juga aturan perkembangan dari makhluk hidup), misalnya warna
mata. Kemungkinan dari karakteristik disebut allele. Setiap gen memiliki posisi
ini sering disebut perkawinan silang 1-titik, selain itu juga terdapat perkawinan
1
Dalam peristilahan algoritma genetika, istilah genome dan kromosom dianggap sinonim
13
Proses lain dalam sistem alam yang juga berhubungan dengan genetika
adalah inversi2 (inversion) yang memberikan jalan bagi gen-gen yang “baik”
mendatang.
alam, dari suatu populasi yang merupakan representasi abstrak dari kandidat
solusi bagi suatu masalah optimisasi yang diseleksi, dikombinasi, dimutasi dan
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
2
Proses inversi dalam algoritma genetika sudah jarang digunakan karena mahalnya komputasi
14
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
f(x) Optimum
Optimum Lokal
Optimum Lokal
x
Gambar 3.1 Ruang pencarian x dengan fungsi optimum f(x)
Terdapat satu titik optimum global dan tiga titik optimum lokal
masalahnya)
2. [Fitness] Evaluasi setiap fitness f(x) dari setiap kromosom x pada populasi
untuk terpilih)
anak. Jika tidak ada perkawinan silang, maka anak merupakan salinan
dari orangtuanya.
selanjutnya.
5. [Tes] Jika kondisi akhir terpenuhi, berhenti, dan hasilnya adalah solusi terbaik
6. [Ulangi] Ke nomer 2.
3.3 Pengkodean
masalah yang akan diselesaikan. Berikut ini adalah beberapa jenis pengkodean
pengkodean biner setiap kromosom merupakan barisan bit 0 atau 1, seperti dapat
Kromosom A 101100101100101011100101
Kromosom B 111111100000110000011111
Gambar 3.2 Contoh kromosom dengan pengkodean biner
hanya memiliki jumlah allele yang sedikit, 1 atau 0. Tetapi pengkodean ini sering
17
tidak sesuai untuk beberapa masalah dan kadang harus dilakukan pengkoreksian
masalah ransel (knapsack), dimana terdapat beberapa jenis benda dengan ukuran
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.
salesman problem), atau masalah pengurutan tugas (task ordering problem). Pada
Kromosom A 153264798
Kromosom B 856723149
Gambar 3.3 Contoh kromosom dengan pengkodean permutasi
18
Perkawinan silang dan mutasi yang dilakukan pada pengkodean ini harus
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
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.
beberapa nilai. Nilai bisa berupa apa saja, seperti bilangan biasa, bilangan riil,
Pengkodean nilai sangat baik untuk beberapa masalah khusus, dilain sisi
perkawinan silang dan mutasi yang diperlukan untuk pengkodean ini seringkali
pencarian bobot pada jaringan saraf (neural network). Terdapat sebuah jaringan
dalamnya dapat direpresentasikan ke dalam bentuk ini dan dapat dengan mudah
20
dilakukan parse menjadi sebuah pohon, sehingga perkawinan silang dan mutasi
yang akan memberikan nilai keluaran terbaik (dekat dengan yang diinginkan)
Kromosom A Kromosom B
+
do until
x /
do until do until
5 y
(+x (/5y)) ( do_until step wall )
Gambar 3.5 Contoh kromosom dengan pengkodean pohon
pengkodean genetik adalah efisien dan dapat diharapkan hasilnya antara lain
(Oskar, 1999) :
1. Kelengkapan (completeness)
ini menjamin semua solusi dapat diakses oleh algoritma genetik. Misal dalam
21
2. Ketertutupan (closure)
yang valid (Goldberg, 1989 dalam Oskar, 1999), yang tentu didapat dari
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
yang sama lebih banyak dari jumlah ruang dengan kapasitas tertentu yang
tersedia.
3. Kedekatan (proximity)
dapat dijamin, yang kadang memerlukan peninjauan lebih dalam dari masalah.
5. Kemampatan (compactness)
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
untuk keduanya.
23
7. Modularitas
bangunan) ditulis hanya sekali dan suatu mekanisme tersedia sehingga mereka
masalah.
waktunya, dalam arti bahwa solusi yang diperoleh adalah solusi optimum lokal.
Selain itu, untuk menjamin bahwa seluruh ruang pencarian dapat dijangkau oleh
3.4.1 Seleksi
lama untuk dijadikan orangtua yang akan saling dikawin silang untuk membentuk
Darwin, kromosom yang terbaik seharusnya dapat bertahan hidup dan membentuk
keturunan baru. Ada beberapa jenis metode seleksi, berikut ini adalah beberapa
semakin baik nilai fitnessnya maka semakin besar kemungkinannya untuk terpilih.
kemungkinan bagi setiap kromosom adalah tergantung dari nilai fitnessnya seperti
Kromosom Fitness
A 15
B 5
C 10
D 5
E 5
Gambar 3.6 Contoh populasi dengan 5 kromosom beserta fitnessnya
A
B 37,5%
12,5%
E
C
12,5%
25% D
12,5%
fitness masing-masing individu dengan total fitness dalam populasi. Dari contoh
pembentuk keturunan baru pada setiap pemilihan kromosom (setiap roda diputar).
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
yang telah diperoleh. Kecenderungan kromosom yang baik untuk terpelihara terus
26
convergence) ke suatu hasil yang bukan optimum global. Sebaliknya jika semua
kromosom dalam populasi mempunyai fitness yang hampir sama, maka seleksi ini
perbedaan fitness yang jauh. Sebagai contoh, jika fitness kromosom terbaik
adalah 90 % dari semua roda roulette dapat menyebabkan kromosom yang lain
yang memiliki fitness terbaik akan memiliki nilai fitness N, dimana N adalah
Sebagai ilustrasi dapat dilihat pada gambar berikut yang juga merupakan
Kromosom Fitness
A 15
B 5
C 10
D 5
E 5
Gambar 3.8 Keadaan sebelum dirangking
kromosom akan memiliki kesempatan yang lebih adil untuk terpilih. Tetapi
kromosom yang terpilih kemudian akan dipilih satu kromosom dengan fitness
terbaik, yang diperoleh dari hasil pengurutan rangking fitness semua kromosom
yang akan digunakan untuk berkembang biak tidak berdasarkan skala fitness dari
populasi.
acak karena hanya melibatkan satu kromosom. Untuk k = 2, maka akan dipilih
dua kromosom dari populasi secara acak, kemudian akan dipilih salah satu
adalah 2 kromosom.
akan mempunyai bagian baik dari kromosom-kromosom lama dan tidak menutup
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.
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
semua nilai gen yang terdapat pada kedua orangtua untuk setiap gen pada anak.
Kromosom orangtua 1 15 9 12 14
Kromosom orangtua 2 13 4 16 2
Keturunan 1 15 4 16 14
Keturunan 2 14 9 12 1
Gambar 3.14 Contoh perkawinan silang rekombinasi pada pengkodean biner
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.
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
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
dapat diterapkan pada pengkodean nilai karena tidak perlu memperhatikan urutan
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
pemilihan satu titik perkawinan silang pada kedua orangtua, kemudian bagian dari
33
+ * + *
x / - 2 x / - 2
5 y 3 + 3 + 5 y
z 9 z 9
3.4.3 Mutasi
Mutasi merupakan proses mengubah nilai dari 1 atau beberapa gen dalam
menjelajah keseluruh ruang pencarian, tetapi mutasi tidak boleh terlalu sering
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
seringkali tetap dipergunakan hanya saja dengan probabilitas mutasi yang kecil.
Tentang probabilitas perkawinan silang dan mutasi akan dijelaskan pada bagian
Berikut adalah beberapa cara mutasi yang sering diterapkan dalam algoritma
sederhana. Bit pada kromosom yang terpilih secara acak (atau menggunakan
diperhatikan. Salah satu cara yang dapat dilakukan adalah dengan memilih dua
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
semua kromosom dengan mudah memiliki nilai yang sama dan akhirnya terjadi
konvergensi prematur. Cara lain yang lebih baik adalah dengan memilih
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.
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
membentuk generasi baru yang disebut update generasi. Dalam algoritma genetik
perkawinan silang dan mutasi. Penekanan selektif pada skema update ini
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
1. Orangtuanya
kromosom baik dalam populasi lama dengan menyertakannya lagi pada populasi
baru. Sejumlah kromosom terbaik pada populasi lama dapat hilang karena proses
baik dari populasi lama, tetapi kadangkala hal itu justru dapat menyebabkan
perkawinan silang akan terjadi diantara 2 kromosom orangtua. Jika tidak terjadi
dibuat dengan perkawinan silang. Jika probabilitas perkawinan silang 0%, maka
lama, tetapi ini tidak berarti bahwa generasi baru sama dengan yang lama karena
mendapatkan kromosom yang memiliki bagian baik dari orangtuanya atau bahkan
menjadi lebih baik dari orangtuanya, ada baiknya juga jika kita membiarkan
Dari hasil penelitian yang sudah dilakukan oleh praktisi algoritma genetika
yaitu antara 80% sampai 95% untuk memberikan hasil yang baik. Untuk beberapa
akan dimutasikan. Jika tidak ada mutasi, keturunan diambil/ disalin langsung
keromosom diubah. Jika probabilitas mutasi 100%, semua kromosom diubah. Jika
probabilitas mutasi 0%, tidak ada yang diubah. Probabilitas mutasi dalan
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
genetika adalah ukuran populasi yaitu banyakknya kromosom dalam satu populasi
atau satu generasi. Jika terlalu sedikit kromosom dalam populasi, algoritma
silang dan hanya sebagian kecil dari ruang pencarian yang dieksplorasi.
lambat dalam menemukan solusi. Ukuran populasi yang sering digunakan oleh
peneliti yang sudah ada adalah antara 20 sampai 30, tetapi kadang ukuran 50
terbaik ditentukan dari jenis pengkodean, artinya, jika terdapat ukuran kromosom
32 bit, ukuran populasi seharusnya juga 32, begitu pula jika ukuran kromosom 16
Umumnya jenis seleksi roda roulette sering digunakan, tetapi kadang seleksi
rangking dilaporkan lebih baik. Terdapat juga beberapa metode lebih lanjut yang
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
Begitu pula untuk pemilihan jenis operator perkawinan silang dan mutasi.
BAB IV
URAIAN PERMASALAHAN
Fakultas MIPA
jurusan matematika, jurusan kimia dan jurusan fisika. Program studi yang ada di
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
dengan penyusunan program kurikulum untuk mata kuliah wajib dan mata kuliah
nama dosen yang akan mengajar matakuliah yang ditawarkan. Jika suatu jurusan
jurusan akan meminta dosen dari jurusan penyelenggara mata kuliah atau
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
lain yang menyelenggarakan ilmu dasar seperti fisika dasar, kimia dasar dan
kalkulus. Hasil dari rapat masing-masing jurusan diserahkan kepada fakultas dan
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
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 MMS-
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
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
kuliah. Semua ruang kuliah di Fakultas MIPA dapat digunakan pada semua jam
Penjadwalan mata kuliah dikatakan optimal jika semua aturan yang ditentukan
dapat terpenuhi. Berikut adalah contoh penjadwalan mata kuliah yang dibentuk
lagi.
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
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
kurikulum, mengingat mereka juga bekerja pada pihak lain selain mengajar.
47
utama, yaitu dosen, ruang, waktu, dan mahasiswa pada suatu kelas mata
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
4. Tidak ada dosen yang mengajar dua kelas mata kuliah yang berbeda pada
5. Tidak ada mahasiswa yang menghadiri dua kelas mata kuliah yang berbeda
berubah-ubah jumlahnya.
48
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
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.
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
6. Sebaiknya ada waktu istirahat bagi dosen minimal 1 satuan waktu diantara 2
Hal ini perlu diperhatikan agar tidak menurunkan kualitas materi yang
akan disampaikan pada kelas mata kuliah berikutnya. Namun pada prakteknya
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
7. Mata kuliah yang merupakan 1 paket bagi mahasiswa setiap semester, tidak
diwajibkan untuk mengambil mata kuliah paket, sehingga mata kuliah yang
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
9. Dosen tidak boleh mengajar lebih dari 11 SKS, dengan toleransi 12 SKS,
Kelas pararel adalah kelompok kelas mata kuliah yang sama, misalnya
mata kuliah kimia dasar terdiri dari kelas A, B dan C. Idealnya kelas pararel
mahasiswa bebas memilih mata kuliah yang diikutinya dalam suatu semester.
Kalaupun ada paket mata kuliah biasanya hanya diambil lengkap oleh mahasiswa
paket mata kuliah semester yang ditempuhnya karena berbagai alasan, salah
52
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,
perpotongan yang mungkin dari keempat komponen itu. Xfctr sebagai variabel
bernilai biner yang akan bernilai 1 jika dosen f ditempatkan pada kelas mata
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
3. Meminimalkan konflik waktu antara paket mata kuliah wajib, yaitu tidak ada
mahasiswa yang dapat menghadiri 2 kelas berbeda pada waktu yang sama.
dibedakan menjadi aturan yang harus dilaksanakan dan aturan yang tidak tidak
harus dilaksanakan, kadangkala dapat diabaikan. Untuk aturan yang tidak harus
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.
∑X
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
bagian akademik Fakultas Matematika dan Ilmu Pengetahuan Alam. Adapun data-
data 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
dengan spesifikasi sebagai berikut Prosesor AMD Athlon 900 MHz, memori 112
MB, hard disk 15 GB dan VGA 4 MB. Sedangkan perangkat lunak yang
54
55
utama
dan 5 .
pertemuan.
genetika.
genetika.
genetika
BAB VI
menjadi lebih kompleks, dimana suatu barisan bit yang panjang memerlukan
utama penjadwalan kuliah. Penghilangan salah satu variabel dapat dilakukan jika
aturan yang bersangkutan dengan variabel itu dapat diarahkan ke variabel lain.
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
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.
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
Panjang kromosom adalah 2N, dimana N adalah jumlah mata kuliah yang
berikut:
Dalam satu satuan waktu kuliah hanya boleh ada sebanyak R mata kuliah
yang dijadwalkan, dimana R adalah jumlah ruangan, supaya semua kelas mata
Aturan lain yang harus dilaksanakan adalah tidak menempatkan dua atau
lebih mata kuliah pada jam dan ruangan yang sama, tetapi karena algoritma
untuk menemukan susunan kombinasi yang tepat antara variabel dosen, waktu
Oleh karena jumlah ruangan tidak akan berubah sejalan dengan waktu dan
banyaknya iterasi yang diperlukan untuk menemukan kombinasi yang tepat agar
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
waktu.
yang tidak konflik antara penggunaan ruang dan waktu tidak dilakukan secara
bersamaan melainkan dalam fase yang berbeda. Selain itu pemisahan ini sesuai
kartu rencana studi dan melakukan proses pembagian alokasi ruangan setelah itu.
60
dimana N adalah jumlah kelas kuliah yang harus dijadwalkan dalam suatu
T1 T2 T3 T4
Kelas 1 Kelas 4 Kelas 3 Kelas 2 Kelas 6 Kelas 5
R1 R4 R3 R2 R4 R1
Gambar 6.3 Model Fase II
Fase pertama akan diselesaikan dengan algoritma genetika, sedangkan fase kedua
mata kuliah.
penempatan slot waktu dan penempatan ruangan, maka data yang diinput terdiri
dari 2 bagian juga, yaitu untuk keperluan slot waktu dan keperluan ruangan.
61
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
seluruh peserta.
Data yang diperlukan adalah daftar penugasan dosen, yaitu daftar dosen
pengampu mata kuliah tertentu. Berdasarkan data yang dikumpulkan dari bagian
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
pertama jumlah ruangan adalah tetap. Aturan itu dapat diubah kearah aturan slot
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
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
diperlukan juga data jenis ruangan seperti kelas biasa dan laboratorium.
adalah dosen, kelas mata kuliah, waktu dan ruang kuliah. Item-item pokok yang
MATA_KULIAH
RUANG
ID_RUANG WAKTU (JAM KE-)
NAMA_RUANG KELAS_MTKULIAH
KAPSITAS ID_WAKTU
ID_JNS_RUANG ID_KELAS KET_WAKTU
ID_MATA_KULIAH
KELAS (A,B,…)
SEMESTER ID_DOSEN
SKS_WAKTU
ID_SEM JML_PESERTA
KET_SEM
KODE_PAKET PAKET_MTKUL
KODE_P KODE_P
PSTUDI ID_MTKUL
SEMESTER
ID_SEM
6.2.2 Asumsi
Terdapat beberapa hal yang membatasi program yang dibuat oleh penulis
1. Matakuliah yang tidak berasal dari fakultas bersangkutan (dalam hal ini
dapat menyesuaikan waktu pada sisa waktu yang tersedia. Pada penjadwalan
yang telah dilakukan saat ini, pembuat jadwal matakuliah dari fakultas lain
peserta. Dalam penjadwalan yang telah dilakukan di FMIPA saat ini seringkali
Alasan lain adalah kesulitan mencari data penjadwalan yang lengkap, selain
4. Matakuliah yang diajar lebih dari satu dosen dapat ditangani jika ada
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
array) dengan tipe data record yang dipergunakan untuk menyimpan semua data
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.
merupakan kombinasi antara hari dan jam kuliah sehingga lebih mudah jika
langsung digunakan nilai-nilai untuk hari dan jam kuliah dibandingkan jika harus
hari Senin sampai dengan Sabtu dan 1 sampai dengan 10 untuk mewakili jam
pinalti, dimana semakin wajib dilaksanakan maka nilai pinalti yang diberikan
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
Berikut akan dijelaskan satu persatu aturan yang harus dilaksanakan pada
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
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;
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
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
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
paket semester pada panduan kurikulum, oleh sebab itu semua matakuliah yang
memiliki kategori semester yang sama untuk masing-masing program studi tidak
per program studi menjadi sama secara teknis dengan pengecekan tabrakan waktu
dosen pada penjelasan sebelum ini karena semua gen terlebih dahulu diurutkan
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
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
paket pertama dengan semua gen yang terdapat pada paket kedua. Berikut adalah
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
2 sks bertujuan untuk memaksimalkan proses belajar dan mengajar, karena jika
dan mahasiswa. Sebagai contoh matakuliah sistem operasi terdiri dari 3 sks dan
menyelesaikan masalah hari yang sama bagi suatu mata kuliah yang
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
terjadinya jadwal yang tidak mungkin, yaitu jadwal yang membutuhkan ruangan
lebih dari jumlah ruangan yang ada pada saat bersamaan. Berikut adalah
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
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
menandakan bahwa ruangan tersebut belum diberikan kepada suatu kelas mata
kuliah.
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;
Ada banyak variasi dari operator algoritma genetika yang dapat diterapkan
berarti bahwa semua operator akan memberikan hasil yang sama dalam hal
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
baru. Tiga jenis seleksi yang disediakan dalam program adalah seleksi roda
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
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
untuk diambil yang terbaik nilai fitnessnya. Algoritma yang digunakan dalam
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;
gen 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
menghasilkan dua keturunan baru. Berikut adalah penjelasan lebih lanjut dari
Perkawinan silang banyak titik dilakukan dengan cara menukar nilai gen
pada posisi gen yang sama dari kedua orang tua. Berikut adalah algoritma
index: larik integer yang digunakan untuk memberi tanda gen yang telah
dikawinsilangkan agar tidak terkena proses perkawinan silang lagi. Panjang larik
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
orangtua yang terpilih secara acak ke gen keturunan baru. Berikut adalah
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
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
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;
bantuan elitsm. Sejumlah kromosom yang memiliki nilai fitness terbaik disalin ke
pembentukan anak. Dua kromosom orangtua dipilih untuk menghasilkan dua anak
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
individu baru yang seharusnya tidak terjadi. Hal ini dapat menyebabkan
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;
jadwal, dimana selalu dilakukan pengecekan ruangan pada semua titik yang
memuat data ruangan secara lengkap, sehingga pada saat pengecekan 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
Tampilan utama program dapat dilihat pada gambar 6.5 berikut ini:
interbase dengan cara menginputkan nama pengguna dan password pada form
login. Form login dapat dilihat pada gambar 6.6 berikut ini:
84
merupakan input dan konfigurasi program, berikut ini adalah penjelasan fungsi
1. Utama
2. Data
A. Data dasar
g. Hari dan jam kuliah : untuk input hari dan jam kuliah
B. Data paket
C. Data jadwal
penajdwalan
3. GA
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
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
sedangkan 2 tombol yang lain berfungi untuk menyimpan file log dan merubah
Pada gambar terlihat terdapat grid data kromosom dan gen penjadwalan
yang selalu berubah dari generasi ke generasi, selain itu juga terdapat grid hasil
harus diselesaikan adalah penjadwalan sebanyak 313 kelas mata kuliah yang
parameter genetika yang memberikan hasil terbaik. Hasil terbaik adalah hasil
yang didapatkan melalui jumlah generasi paling sedikit dan waktu tercepat.
kali percobaan.
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
dengan tampilan program, selain itu jumlah generasi berbanding lurus dengan
waktu yang diperlukan sehingga dapat diwakili dengan jumlah generasi saja.
95
deviasinya. Program akan terhenti jika mencapai jadwal sempurna yaitu nilai
fitness 1 atau pada jumlah generasi tertentu, dalam percobaan ini jumlah 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
1. 0,0109 0,0076 0,0019 0,0016 0,0021 0,0016
2. 0,0084 0,0061 0,0019 0,0016 0,0023 0,0018
3. 0,0078 0,0060 0,0019 0,0016 0,0020 0,0017
4. 0,0081 0,0061 0,0019 0,0016 0,0020 0,0017
5. 0,0090 0,0071 0,0018 0,0016 0,0020 0,0017
6. 0,0100 0,0070 0,0019 0,0016 0,0021 0,0017
7. 0,0079 0,0061 0,0018 0,0016 0,0019 0,0016
0.008
0.007
0.006
rata-rata fitness
0.005
0.004
0.003
0.002
0.001
0
108
120
132
144
156
168
180
192
12
24
36
48
60
72
84
96
0
generasi
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
banyak generasi. Salah satu penyebab terjadinya hal ini karena metode seleksi
tinggi untuk menjadi orangtua pembentuk individu baru, sehingga tidak semua
individu tereksplorasi.
97
0.008
0.007
0.006
rata-rata fitness
0.005
0.004
0.003
0.002
0.001
0
108
120
132
144
156
168
180
192
12
24
36
48
60
72
84
96
0
generasi
metode rekombinasi memberikan hasil yang baik. Hal ini disebabkan oleh adanya
Lee setiap gen pada sistem perkuliahan di Ateneo University jika diberi bobot
sesuai sks dianggap 1, sedangkan untuk setiap gen pada sistem perkuliahan
lebih. Penerapan rekombinasi pada kromosom yang memiliki bobot sks setiap gen
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
1. 0,0109 0,0076 0,0081 0,0069
2. 0,0084 0,0061 0,0081 0,0068
3. 0,0078 0,0060 0,0085 0,0071
4. 0,0081 0,0061 0,0073 0,0063
5. 0,0090 0,0071 0,0089 0,0076
6. 0,0100 0,0070 0,0063 0,0055
7. 0,0079 0,0061 0,0093 0,0075
0.008
0.007
0.006
rata-rata fitness
0.005
0.004
0.003
0.002
0.001
0
108
120
132
144
156
168
180
192
12
24
36
48
60
72
84
96
0
generasi
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
0.01
0.009
0.008
0.007
rata-rata fitness
0.006
0.005
0.004
0.003
0.002
0.001
0
109
121
133
145
157
169
181
193
13
25
37
49
61
73
85
97
1
generasi
20 40 60 100
populasi semakin banyak generasi yang diperlukan untuk mencapai nilai fitness
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
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
PENUTUP
7.1 Kesimpulan
selanjutnya dapat di buat menjadi sebuah program setelah di susun algoritma yang
Program dapat menghasilkan suatu jadwal kuliah tetapi kadang kala tidak
semua aturan yang harus dilaksanakan terpenuhi secara lengkap, sehingga hasil
masalah penjadwalan mata kuliah yang dilakukan, ternyata metode seleksi terbaik
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
102
103
7.2 Saran
Matematika dan Ilmu Pengetahuan Alam, melainkan hanya hal-hal utama yang
DAFTAR PUSTAKA
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
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.