Optimasi Jadwal Perkuliahan Dosen Dengan Neighborhood Search Methods

BAB 2
TINJAUAN PUSTAKA

2.1 Permasalahan Optimasi
Optimasi adalah proses memaksimasi atau meminimasi suatu fungsi tujuan dengan tetap
memperhatikan pembatas yang ada. Optimasi memegang peranan penting dalam
mendesain suatu sistem. Dengan optimasi, suatu sistem dapat menghasilkan ongkos yang
lebih murah atau profit yang lebih tinggi, menurunkan waktu proses dan sebagainya.
Optimasi dalam waktu sekarang memerlukan bantuan software untuk menyelesaikan
permasalahan yang ditemukan untuk mendapatkan solusi yang optimal dengan waktu
komputasi yang lebih singkat. Keberhasilan penerapan teknik optimasi paling tidak
memerlukan tiga syarat, yaitu kemampuan membuat model matematika dari
permasalahan yang dihadapi, pengetahuan akan program komputer dan pengetahuan akan
teknik optimasi itu sendiri.
Pemakaian software dalam menyelesaikan masalah optimasi sangatlah penting.
Persoalan sederhana mungkin bisa diselesaikan dengan suatu algoritma yang hanya
memerlukan satu atau dua iterasi, namun jika sudah menyangkut permasalahan dengan
skala besar dan melibatkan banyak iterasi dalam menemukan solusi optimal dari
permasalahan itu maka diperlukan pemakaian software untuk menyelesaikannya.
Prosedur pemecahan masalah optimasi adalah memodelkan persoalannya ke
dalam sebuah program matematis dan kemudian memecahkannya dengan menggunakan

teknik-teknik atau metode optimasi seperti program linier, program nonlinier, program
tujuan ganda, dan metode-metode lainnya yang sudah berkembang saat ini. Dalam
penelitian ini akan menggunakan Neighbourhood Search Methods.

5

2.2 Penjadwalan (Scheduling)
Penjadwalan mata kuliah adalah masalah menempatkan waktu dan ruangan kepada
sejumlahkuliah, tutorial, dan kegiatan akademik sejenis,

dengan memperhatikan

sejumlah aturan yang berhubungan dengan kapasitas dan lokasi dari ruangan yang
tersedia, waktu bebas yang diperlukan dan sejumlah aturan lain yang berkaitan
(Bennatan, 1995).
Komponen-komponen utama dari penjadwalan mata kuliah adalah dosen,
mahasiswa, mata kuliah yang ditawarkan, waktu dan ruangan kelas. Hasil dari
proses penjadwalan merupakan pengelompokan
bersama-sama


dengan

memperhatikan

komponen-komponen

aturan-aturan

yang

utama

telah

secara

ditetapkan

dalam penjadwalan mata kuliah.
Kebanyakan orang terbiasa dengan jadwal sekolah yang disajikan sebagai tabel

hari dalam seminggu dan slot waktu. Dapat dilihat bahwa setiap hari dibagi ke dalam slot
waktu. Setiap slot waktu memiliki daftar mata pelajaran yang sedang diajarkan, oleh
siapa dan di mana. Jadwal dapat dinyatakan dalam sejumlah cara yang berbeda, masingmasing siswa harus memiliki jadwal sendiri tergantung pada mata pelajaran, begitu juga
masing-masing guru dan ruang, semua ini adalah perspektif yang berbeda pada jadwal
yang sama.
Jadwal didefinisikan sebagai sesuatu yang menjelaskan di mana dan kapan orangorang dan sumber daya berada pada suatu waktu (Chambers, 1999). Jadwal juga
didefinisikan sebagai daftar atau tabel kegiatan atau rencana kegiatan dengan pembagian
waktu pelaksanaan yang terperinci. Sedangkan penjadwalan merupakan proses, cara,
perbuatan menjadwalkan atau memasukkan dalam jadwal.
Penjadwalan mata kuliah adalah kegiatan administratif yang paling utama di
universitas. Dalam masalah penjadwalan mata kuliah, sejumlah mata kuliah yang
dialokasikan ke sejumlah ruang kelas yang tersedia dan sejumlah slot waktu disertai
dengan constraint (kendala). Constraints terbagi atas dua jenis, yaitu hard constraints dan
soft constraints (Petrovic dan Burke, 2004).
Penjadwalan bidang studi adalah kegiatan administratif yang paling utama di
universitas. Masalah penjadwalan bidang studi, sejumlah bidang studi yang dialokasikan
ke sejumlah kelas yang tersedia dan sejumlah slot waktu disertai dengan constraints.

6


Constraints terbagi atas dua jenis, yaitu hard constraints (harus terpenuhi) dan soft
constraints (diupayakan untuk terpenuhi) (Petrovic dan Burke, 2004).
Hard constraints merupakan batasan yang harus diterapkan pada penjadwalan
bidang studi dan harus dipenuhi. Solusi yang tidak melanggar hard constraints disebut
solusi layak. Hard constraints yang umum adalah selama optimasi, sistem
mempertimbangkan berbagai kendala dalam jadwal. Perbedaan harus dibuat di sini antara
kendala keras, yang sistem harus mematuhi, dan kendala yang lembut, yang sistem
mencoba untuk mematuhi, tetapi yang melanggar jika diperlukan dalam rangka untuk
menemukan solusi yang sesuai dengan kendala yang sulit.
Hard constraints yang umum dalam penjadwalan mata kuliah adalah sebagai
berikut:
a. Seorang dosen hanya dapat memberi kuliah untuk satu lokasi pada waktu tertentu.
b. Seorang mahasiswa hanya dapat mengikuti kuliah untuk satu lokasi pada waktu
tertentu.
c. Sebuah lokasi (ruangan) hanya dapat digunakan untuk satu mata kuliah pada
waktu tertentu.
d. Mahasiswa tidak dapat dialokasikan pada suatu lokasi yang menyebabkan lokasi
melebihi kapasitas maksimum
Soft constraints memberi lebih banyak ruang untuk pembatasan dan melampirkan
konsep seperti biaya dan prioritas kendala tergantung pada preferensi kendala yang layak.

Soft constraints relatif sangat ekspresif karena mampu memberikan sebuah ide dimana
kendala lebih disukai daripada yang lain dan ini sangat membantu dalam kasus-kasus
dimana lagi tidak menemukan solusi. Namun kendala yang lembut pada saat yang sama
dapat lebih sulit untuk menangani. Jadi konsep kendala lunak adalah bahwa kendala
adalah tingkatan menurut kepentingan dan bentuk yang memenuhi kendala peringkat
tinggi maksimum dianggap optimal.
Soft constraints didefinisikan sebagai batas-batas mengenai alokasi sumber daya
yang jika dilanggar masih dapat menghasilkan solusi yang layak tetapi sedapat mungkin
untuk dipenuhi. Dalam kenyataannya, masalah penjadwalan mata kuliah biasanya tidak
mungkin untuk memenuhi semua soft constraints. Kualitas jadwal yang layak dapat
dinilai berdasarkan seberapa baik soft constraints dapat dipenuhi. Namun, beberapa

7

masalah yang kompleks sulit menemukan solusi yang layak. Sebagai contoh, soft
constraints yang mungkin ingin dicapai dalam jadwal sehubungan dengan aspek mata
kuliah adalah meminimalkan terjadinya jadwal mata kuliah satu tingkat yang beturutturut.

2.3 Neighborhood Search Methods
Neighborhood Search Methods terdiri dari 3 algoritma yaitu genetic algorithm, Simulated

Annealing, dan Tabu Search algorithm. Sifat dari algoritma genetik adalah mencari
kemungkinan-kemungkinan dari kandidat solusi untuk mendapatkan suatu solusi yang
optimal bagi penyelesaian masalah. Ruang cakupan dari semua solusi yang layak
(feasible) yaitu obyek-obyek di antara solusi yang sesuai dinamakan ruang pencarian
(search space). Tiap titik dalam ruang pencarian merepresentasikan satu solusi yang
layak. Tiap solusi yang layak dapat ditandai dengan nilai fitnessnya bagi masalah. Solusi
yang dicari dalam algoritma genetik adalah titik (satu atau lebih) di antara solusi yang
layak dalam ruang pencarian. Sifat dari pencarian inilah yang menyebabkan algoritma
genetic baik diterapkan untuk menyelesaikan masalah NP-complete.
Simulated Annealing merupakan metode searching yang memanfaatkan teori
probabilitas untuk mencari global minimum dari suatu permasalahan optimasi. Simulated
annealing umumnya digunakan untuk variabel yang bersifat categorical. Target dari
metode ini adalah menemukan solusi bagus yang bisa diterima, bukan untuk mencari
solusi yang terbaik. Nama annealing berasal dari keilmuan metallurgy, di mana proses
tersebut akan berusaha mencari suatu posisi suhu tertentu yang optimal untuk mengurangi
kerusakan dan menambah ukuran kristal di dalam suatu material.(Kirkpatrick,1983)
Analogi dengan proses tersebut, metode Simulated Annealing ini juga berusaha
untuk mencari solusi dengan berpindah dari solusi yang satu ke solusi yang lainnya, dan
apabila solusi baru yang diuji mempunyai nilai fungsi energy yang lebih kecil, maka
solusi yang sedang diuji akan menggantikan solusi yang lama. Umumnya solusi baru

yang dipilih merupakan solusi yang ada di dekat/sekitar solusi yang lama. Fungsi energi
ini sangat bergantung pada parameter-parameter seperti parameter T (yang sering disebut
dengan parameter Temperature ).

8

Tabu Search merupakan salah satu metode pemecahan permasalahan optimasi
kombinatorial yang tergabung ke dalam lokal search methods. Metode ini bertujuan untuk
mengefektifkan proses pencarian solusi terbaik dari suatu permasalahan optimasi
kombinatorial yang berskala besar (bersifat np-hard)

2.3.1

Genetic Algorithm

Algoritma Genetika sebagai cabang dari Algoritma Evolusi merupakan metode yang
digunakan untuk memecahkan suatu pencarian nilai dalam sebuah masalah optimasi
yaitu permasalahan-permasalahan yang tak linier (Mitsuo& Runwei, 2000).
Algoritma genetika berbeda dengan teknik konvergensi konvensional yang lebih
bersifat deterministik (Gen & Cheng., 1997). Algoritma Genetik memakai mekanisme

seleksi alam dan ilmu genetik sehingga istilah-istilah pada Algoritma Genetik akan
bersesuaian dengan istilah-istilah pada seleksi alam dan ilmu genetik. Sebuah solusi
yang dibangkitkan dalam algoritma genetika disebut sebagai kromosom, sedangkan
kumpulan kromosom-kromosom tersebut disebut sebagai populasi. Sebuah kromosom
dibentuk dari komponen-komponen penyn yang disebut sebagai gen dan nilainya
dapat berupa bilangan numerik, biner, symbol ataupun karakter tergantung dari
permasalahan

yang

ingin

diselesaikan. Kromosom-kromosom

tersebut

akan

berevolusi secara berkelanjutan yang disebut dengan generasi. Dalam tiap generasi
kromosom-kromosom


tersebut

dievaluasi tingkat

keberhasilan

nilai

solusinya

terhadap masalah yang ingin diselesaikan (fungsi_objektif) menggunakan ukuran yang
disebut dengan fitness.

9

Gambar 2.1 Ilustrasi Tahapan Proses Genetic Algorithm Sumber: (Gen & Cheng., 1997)
Encoding
Encoding (pengkodean) berguna untuk mengodekan nilai gen-gen pembentuk individu.
Nilai-nilai gen ini diperoleh secara acak.. Agar dapat diproses melalui algoritma genetik,

maka alternatif solusi tersebut harus dikodekan terlebih dahulu kedalam bentuk
kromosom. Masing-masing kromosom berisi sejumlah gen yang mengodekan informasi
yang disimpan didalam individu atau kromosom.
Decoding
Decoding (pendekodean) berguna untuk mendekode gen-gen pembentuk individu agar
nilainya tidak melebihi range yang telah ditentukan dan sekaligus menjadi nilai variabel
yang akan dicari sebagai solusi permasalahan. Jika nilai variabel x yang telah dikodekan
tersebut rangenya diubah menjadi [rb ra] yaitu rb = batas bawah; dan ra = batas atas, maka
cara untuk mengubah nilai-nilai variabel di atas hingga berada dalam range yang baru [rb
ra] disebut decoding (pengodean). Menurut Mulyanto, 2011) pendekodean ada 3 yang
paling umum digunakan yaitu:

10

1. Pendekodean bilangan real:
x = rb + (ra rb)g ......................................................................................... (1)
2. Pendekodean Diskrit Desimal:
x = rb + (ra rb) (g1 . 10-1 + g2 . 10-2 + ... + gN . 10-N) .................................. (2)
3. Pendekodean Biner
x = rb + (ra rb) (g1 . 2-1 + g2 . 2-2 + ... + gN . 2-N) ......................................... (3)

dengan catatan bahwa N adalah jumlah gen dalam individu.
Membangkitkan Populasi Awal
Sebelum membangkitkan populasi awal, terlebih dahulu harus menetukan jumlah
individu dalam populasi tersebut. Misalnya jumlah individu tersebut N. Setelah itu, baru
membangkitkan populasi awal yang mempunyai N individu secara random (Mulyanto,
2011).
Fitness Evaluation
Suatu

individu

dievaluasi

berdasarkan suatu

fungsi

tertentu

sebagai ukuran

performansinya. Didalam evolusi alam, individu yang bernilai fitness tinggi yang akan
bertahan hidup. Sedangkan individu yang bernilai fitness rendah akan mati.

Selection
Dalam proses reproduksi setiap individu populasi pada suatu generasi diseleksi
berdasarkan nilai fitnessnya untuk bereproduksi guna menghasilkan keturunan.
Probabilitas terpilihnya suatu individu untuk bereproduksi adalah sebesar nilai fitness
individu tersebut dibagi dengan jumlah nilai fitness seluruh individu dalam pupulasi
(Davis, 1991).
Langkah-langkah yang dilakukan dalam penggunaan algoritma genetika pada
proses penjadwalan adalah:
1. Input Data
Ada 4 kelompok data yang diperlukan pada input data antara lain:tabel dosen, tabel
mata kuliah, tabel kelas, dan tabel ruangan.
2. Proses data input
Data-data yang diperoleh dari input data terlebih dahulu diolah dengan cara
melakukan pengkodean terhadap masing-masing kelompok data.

11

3. Pembuatan Kromosom dan Populasi
Pembuatan kromosom dan populasi bertujuan untuk memperoleh hasil penggabungan
antara dosen, mata kuliah, kelas dan ruangan.
4. Evaluasi fitness
Setiap factor yang mempengaruhi nilai fitness memberi pengaruh yang berbeda
terhadap nilai fitnessnya, tingkat pengaruh tersebut disebut dengan bobot. Semakin
tinggi harga bobot suatu factor akan mempengaruhi nilai fitness dari solusi tersebut.
Faktor-faktor yang mempengaruhi evaluasi fitness terhadap solusi adalah sebagai
berikut:
a. Waktu Pagi yang Kosong
Adakah

waktu

pagi

yang

kosong/tidak

digunakan perkuliahan?

Untuk

meningkatkan produktivitas pemakaian ruangan, maka dikehendaki agar ruangan dapat
segera digunakan semenjak pagi hari.
b. Frekuensi Mengajar Dosen
Apakah ada dosen yang memiliki frekuensi mengajar yang tinggi dalam satu hari?
Diharapkan agar tugas mengajar dosen dapat terdistribusi merata di tiap hari kerja
dengan tujuan agar performan dosen sewaktu mengajar dapat terjaga. Dalam
penelitian ini didefinisikan bahwa dosen yang mengajar lebih dari 6 sks tiap harinya
telah digolongkan sebagai dosen yang memiliki frekuensi mengajar yang tinggi.
c. Frekuensi Kuliah Kelas
Apakah ada kelas yang memiliki frekuensi kuliah yang tinggi dalam satu hari? Halnya pada
dosen, untuk menjaga performan belajar mahasiswa maka diharapkan tidak ada jadwal kuliah
yang terlalu padat dalam satu hari. Kelas yang mendapatkan jadwal kuliah lebih dari 6 sks pada
satu hari didefinisikan sebagai kelas yang memiliki frekuensi kuliah yang tinggi.

Menurut (Basuki, 2003) Rumus fitness yang digunakan adalah:
Fitness =

...................................................

Dimana:
B1

= Bobot waktu pagi yang kosong

B2

= Bobot frekuensi mengajar dosen

(4)

12

B3

= Bobot frekuensi kuliah kelas

F1

= Banyaknya waktu pagi yang kosong

F2

= Banyaknya frekuensi jam mengajar yang tinggi dari salah satu dosen

F3

= Banyaknya frekuensi jam kuliah yang tinggi dari satu kelas.

5. Seleksi
Untuk mendapatkan solusi yang terbaik, harus dilakukan penyeleksian solusi yang
memiliki nilai fitness yang tergolong rendah
6. Membangkitkan Populasi Baru
Populasi baru dibangkitkan dengan cara crossover dan mutasi pada populasi induk
yang telah diperoleh dari proses seleksi
7. Kondisi Selesai
Apabila beberapa generasi berturut-turut diperoleh nilai fitness tertinggi dari populasi
maka proses algoritma akan dihentikan, sedangkan jika pada beberapa generasi
berturut-turut nilai fitnessnya belum mencapai kondisi tersebut maka akan mengulang
kembali proses dari langkah keempat yaitu evaluasi fitness terhadap populasi baru.

2.3.2

Simulated Annealing

Algoritma SA (Simulated Annealing) menerima solusi baru jika biaya baru lebih rendah
daripada biaya dari solusi saat ini di setiap iterasi. Algoritma SA memungkinkan
terhindar dari jebakan minimum lokal.
Simulasi yang baik membutuhkan perencanaan dan organisir yang bagus
namun bentuk simulasi tersebut tidak selalu tetap dan selamanya akan terus berubah ubah
sesuai dengan permasalahan dan kendala yang muncul. Pada umumnya terdapa lima
langkah utama

yang

diperlukan

dalam menggunakan

simulasi

sebagai metode

penyelesaian suatu permasalahan, yaitu :
1. Tentukan sistem atau persoalan yang ingin disimulasikan.
2. Kembangkan model atau algoritma simulasi yang ingin digunakan.
3. Menguji model atau algoritma tersebut dan bandingkan karakteristiknya dengan
karakteristik sistem nyata yang diadopsi, kemudian berlakukan model simulasinya.
4. Rancang percobaan-percobaan simulasi.
5. Jalankan simulasi dan analisis outputnya.

13

Menurut (Subakti, 2006) proses pseudocode dari Algoritma SA (Simulated
Annealing) antara lain:
Find a random initial solution s:= s0 using Cs (P)
Select an initial temperature t:= t0 > 0
Select an temperature reduction fungtion α
repeat
repeat
s':= NeighbourhoodSearching (s)
δ:= F(s')-F(s)

If((δ≤0) or (exp(-δ/t)