BAB 3
METODOLOGI
3.1. Metode Penelitian
Dalam melakukan penelitian akan permasalahan ini, penulis menggunakan metode
rapid application development (RAD), dengan alur pengerjaan sebagai berikut:
G ambar 1 Proses pengerjaan penelitian
Pada gambar dapat dilihat langkah-langkah yang dilakukan penulis dalam melakukan
pengumpulan data dan pengerjaan disesuaikan dengan metode pengerjaan yang
digunakan. Proses pemilihan topik, mencari dan memahami makalah-makalah yang
relevan, dan mengumpulkan data-data penjadwalan termasuk dalam Requirement and
Planning. Proses diskusi dengan tim Resources M anagement, membuat model
matematika optimasi, dan membuat aplikasi dari model matematika yang telah dibuat
termasuk dalam Prototyping. Proses penerapan aplikasi dan memperbaiki
kekurangan-kekurangan program termasuk ke dalam Cut Over.
Bila dilihat maka ada sedikit pengembangan metode RAD yang diterapkan, ini
disebabkan jenis prototype yang digunakan dalam melakukan penelitian ini adalah
model matematika. Penulis merasa perlu untuk memasukkan pembuatan model
matematika ke dalam proses prototyping, karena model matematika yang digunakan
nantinya diharapkan bisa dikembangkan untuk aplikasi-aplikasi penjadwalan lainnya.
Dalam pemrograman matematika, model matematika yang valid bisa memberikan
gambaran secara umum proses algoritma yang dilakukan dalam aplikasi, hal ini juga
yang membuat penulis memasukkannya ke dalam bagian prototyping.
3.2. Inisialisasi Batasan
Dari proses mengumpulkan data-data penjadwalan dan diskusi langsung dengan
tim Resources M anagement, Dalam membuat penjadwalan penugasan asisten, ada
1. Asisten pengajar mengajar matakuliah praktikum yang sudah dikuasainya,
sesuai dengan data kualifikasi yang ada. (H1)
2. Asisten pengajar tidak diperbolehkan mengajar diluar shift kerja yang sudah
ditetapkan. (H2)
Batasan-batasan di atas harus dipenuhi dalam penjadwalan yang dibuat, bila ada salah
satu di antara hard constraintini dilanggar, maka jadwal tidak bisa digunakan dan harus
digenerate ulang. Beberapa batasan tambahan yang perlu diperhatikan dan terhitung
sebagai soft constraintadalah sebagai berikut:
1. Asisten pengajar diharapkan mengajar tidak lebih dari jumlah variasi yang
ditentukan. (C1)
2. Asisten pengajar diharapkan mengajar tidak lebih dari 2 shift per hari, agar
bisa mengerjakan tugas lain yang diberikan. (C2)
3. Para pengajar diharapkan memiliki bobot tidak lebih dari bobot yang sudah
ditentukan. (C3)
Untuk batasan-batasan di atas, merupakan gambaran penjadwalan yang optimal. Batasan
ini tidak akan mengganggu operasional secara signifikan bila tidak dipenuhi, namun
penjadwalan akan lebih optimal apabila terpenuhi. Fokus dari pembahasan ini adalah
3.3. Inisialisasi Parameter
Parameter-parameter dan inisialisasi himpunan yang digunakan dalam algoritma
harmony search sebagai berikut:
a. Himpunan 1 … untuk transaksi praktikum semester berjalan. b. Himpunan 1… untuk para pengajar praktikum.
c. Himpunan 1… untuk matakuliah praktikum. d. Himpunan 1… untuk ruangan praktikum.
e. Himpunan 1… untuk periode dengan 34 slot waktu, yang tersebar menjadi 6 hari dengan masing-masing hari menjadi 6 shift (kecuali jumat dan
sabtu menjadi 5 shift).
f. Himpunan ~ ~ , … , ~ untuk menyatakan hari, dimulai dengan hari senin dan berakhir pada hari sabtu.
g. Subset himpunan ~ ~ , … , ~ , sehingga bila dijabarkan menjadi ~ , … , , ~ , … , , dan seterusnya.
h. , , , , adalah jumlah dari transaksi, keseluruhan asisten pengajar, group asisten pengajar, group staff pengajar, matakuliah praktikum, periode
praktikum berlangsung.
i. adalah bobot minimal untuk setiap pengajar , .
j. adalah bobot maksimal unutk setiap pengajar , .
k. adalah variasi maksimal untuk setiap pengajar , .
m. (shift kerja pengajar) adalah variabel biner, bernilai 1 jika dan hanya jika
pengajar available pada periode . , .
n. (kualifikasi pengajar) adalah variabel biner, bernilai 1 jika dan hanya jika
pengajar memiliki kualifikasi matakuliah praktikum . , .
Dari parameter-parameter di atas, perlu ditentukan juga variabel-variabel keputusan
yang nantinya akan mempengaruhi optimasi dari penjadwalan itu sendiri.
3.4. Inisialisasi Variabel Keputusan
Untuk mendapatkan optimasi penjadwalan, maka perlu dibuat rumusan dalam
meminimalkan nilai pelanggaran softconstrainttanpa melanggar hard constraint.
Rumusan yang didapat nantinya akan mengacu pada variabel-variabel keputusan yang
ada. Beberapa variabel keputusan untuk batasan-batasan di atas:
a. , , adalah variabel keputusan biner yang memiliki indeks berupa transaksi,
matakuliah praktikum dan asisten. Variabel , , 1, jika dan hanya jika untuk transaksi dengan matakuliah praktikum teralokasikan asisten
pengajar . , , .
b. adalah variabel keputusan yang memiliki indeks berupa asisten. Variabel
ini menandakan terjadinya pelanggaran pada batasan C1. Variasi yang ada
pada C1, disesuaikan dengan pemerataan dan kesanggupan pengajar,
c. adalah variabel keputusan yang memiliki indeks berupa asisten. Variabel
ini menandakan terjadinya pelanggaran pada batasan C2. .
d. adalah variabel keputusan yang memiliki indeks berupa asisten. Variabel
ini menandakan terjadinya pelanggaran pada batasan C3. Bobot yang ada pada
C3, disesuaikan dengan pemerataan dan kesanggupan pengajar, ditentukan
oleh tim Resources M anagement. .
e. , adalah variabel keputusan biner yang memiliki indeks berupa transaksi
dan periode. Variabel , 1, jika dan hanya jika transaksi ada pada periode . , .
3.5. Formulasi
Fungsi objektif yang akan digunakan untuk mendapatkan optimasi jadwal asisten
pengajar adalah:
1 min
Fungsi (1) meminimalkan pelanggaran-pelanggaran pada soft constraint C1, C2,
C3. Setiap pelanggaran pada soft constraint akan mendapatkan nilai 1 sebagai nilai
penalti. Untuk setiap nilai dari pelanggaran soft constraint didapatkan dari:
2 , , ,
3 , , , , 2
4 ,
1, , ,
1, , ,
0,
Fungsi (2), untuk melakukan pengecekan variasi pada masing-masing asisten,
dengan menghitung pada jumlah jenis matakuliah yang berbeda. Fungsi (3), untuk
melakukan pengecekan jumlah event untuk setiap pengajar per hari. Fungsi (4), untuk
melakukan pengecekan terhadap pelanggaran bobot asisten pengajar.
Fungsi objektif dan fungsi yang mewakili soft constraint di atas bersifat optimasi.
Untuk bisa menjalankan fungsi objektif dan fungsi optimasi, ada beberapa fungsi yang
mewakili persyaratan utama (hard constraint) dan harus dipenuhi terlebih dahulu. Untuk
fungsi yang harus dipenuhi dan mewakili hard constraint didapatkan dari:
5 , , , 1
6 , , , 1
7 , , , , 1
Fungsi (5), untuk menyatakan penjadwalan sudah utuh dan semua transaksi sudah
teralokasikan pengajar. Fungsi (6), untuk menyatakan pengajar yang sudah dialokasikan
sesuai dengan kualifikasi yang terdata. Fungsi (7), untuk menyatakan pengajar available
3.6. Metode Penerapan
3.6.1 Pseudocode
Pseudocode harmony search murni yang digunakan untuk optimisasi secara global
sebagai berikut (Geem & Lee, 2005, hal. 7):
Input: data instance P with HSA parameter (HMCR, PAR, NI, HMS) Initialize‐HM , … ,
Recognize ,… ,
While not termination criterion specified by NI do // new harmony vector
For 1,… , do // is the number of decision variables If 0,1 then Begin , … , // memory consideration If 0,1 then // pitch adjustment // is neighbouring values of End Else // random consideration End if End for If then End if End while Output: the best solution obtained so far.
Untuk penerapan harmoni search pada penjadwalan, diperlukan beberapa
modifikasi dari algoritma harmony search murni. M odifikasi tersebut dibutuhkan untuk
penerapan implementasi sesuai dengan batasan-batasan yang dimiliki. M odifikasi yang
menambahkan beberapa fungsi untuk mendapatkan variabel-variabel keputusan yang
memenuhi hard constraint.
Pseudocode harmony search yang sudah dimodifikasi untuk penerapan pada
penjadwalan asisten pengajar:
Input: data instance P (Qualification, Transaction, Resources, and Subject) with HSA parameter (HMCR, PAR, NI, HMS)
Initialize‐HM , … , with Check_availability() and Check_penalty() Recognize ,… ,
While not termination criterion specified by NI do // new harmony vector
For 1,… , do // is the number of allocated schedules Check_availability() // constraint check (H1, H2) If 0,1 then Begin , … , // memory consideration If 0,1 then // pitch adjustment // is neighbouring values of End Else // random consideration End if End for
For , … , do // is the number of possible resources Check_penalty() // penalty check (C1, C2, C3) End for If then End if End while Output: the best solution obtained so far.
Penambahan 2 fungsi pada pseudocode modifikasi merupakan fungsi untuk
melakukan pengecekan batasan-batasan. Batasan untuk hard constraint dilakukan pada
fungsi Check_availability(), sedangkan batasan untuk soft constraint dilakukan pada
fungsi Check_penalty(). Kedua fungsi tersebut juga dilakukan pada saat melakukan
inisialisasi harmoni memori, untuk mencegah data yang salah masuk ke dalam harmoni,
agar nantinya bisa menghasilkan data olah yang benar.
Pemeriksaan hard constraint dilakukan dengan pengulangan sebanyak jumlah
transaksi yang sudah teralokasi untuk mengambil matakuliah pada ruang dan shift yang
sudah dijadwalkan sebelumnya. Bila matakuliah sudah didapat, maka dari data yang
didapat akan dicari asisten pengajar yang memiliki kualifikasi untuk matakuliah
tersebut, yang dilambangkan dengan himpunan 1… . Dari shift yang sudah didapat, maka bisa dicari juga asisten pengajar pada shift tersebut, yang dilambangkan
dengan himpunan 1… . Hasil dari dua pencarian tersebut akan dilakukan interseksi dan menghasilkanhimpunan 1… mewakili asisten yang mungkin untuk dialokasikan mengajar.
Pemeriksaan soft constraintdilakukan setelah semua data berhasil dimasukkan
dengan sempurna ke harmoni memori. Untuk batasan yang pertama, dari data hasil
alokasi akan dihitung jumlah variasi atau jenis matakuliah yang didapatkan asisten
pengajar. Jumlah variasi maksimum ditentukan oleh tim Resources M anagement. Bila
variasi yang didapatkan asisten lebih dari jumlah variasi maksimum yang ditetapkan,
maka nilai batasan pertama akan menjadi 1 (terjadi penalti), hal ini dilakukan secara
Untuk batasan yang kedua, dari data hasil alokasi akan dihitung jumlah mengajar
asisten pengajar selama satuan hari ~ . Bila dalam satuan hari tersebut jumlah
mengajar asisten pengajar lebih dari 2 transaksi, maka nilai untuk batasan kedua akan
menjadi 1 (terjadi penalti), hal ini dilakukan secara berulang untuk setiap asisten
pengajar.
Untuk batasan yang terakhir, dari data hasil alokasi akan dihitung jumlah bobot
per asisten selama satu minggu. Bila bobot asisten selama satu minggu lebih dari bobot
yang diinginkan, maka nilai batasan ketiga akan menjadi 1 (terjadi penalti), hal ini
dilakukan secara berulang untuk setiap asisten pengajar.
3.6.2 Flowchart
Untuk menggambarkan modifikasi secara lebih aktual, maka akan diperlihatkan
secara visual melalui flowchart. Algoritma harmony searchmurni, bila digambarkan
pada flowchart:
G ambar 2 Flowchart harmony search murni
Dalam penerapan nantinya alur algoritma dari harmony search di atas, akan
sedikit dimodifikasi. Flowchart untuk hasil modifikasi:
G ambar 3 Flowchart harmony search modif ikasi
Pada dua flowchart di atas, dapat dilihat perbedaan alur hanya pada penerapan algoritma
Penjabaran subproses cek constraint untuk inisialisasi harmoni, bila digambarkan
dalam flowchart:
G ambar 4 Flowchart subproses cek constraint
Subproses cek constraintakan bernilai benar, apabila hasil dari interseksi dua himpunan
pencari mengembalikan nilai berupa asisten yang memiliki kualifikasi pada matakuliah
yang dicari, dan tidak memiliki aktivitas mengajar pada shift terjadinya transaksi
matakuliah tersebut.
Subproses cek constraintdilakukan pada dua tahap, tahap saat inisialisasi harmoni
memori dan tahap saat mencari harmoni baru. Pada dua tahap ini dilakukan subproses
tersebut, karena masing-masing proses menghasilkan sebuah nilai untuk variabel
keputusan, yang untuk setiap variabel keputusan tidak boleh melanggar batasan hard
constraint. Kedua tahapan subproses ini masing-masing mencegah terjadinya
Penjabaran subproses perhitungan nilai objektif untuk harmoni memori, akan
dibagi menjadi dua bagian. Bagian pertama dilakukan setelah melakukan inisialisasi
harmoni, yang bila digambarkan dalam flowchart:
G ambar 5 Flowchart menghitung nilai objektif untuk harmoni memori
Pada subproses bagian kedua dilakukan setelah mendapatkan harmoni baru, sedikit
perbedaan adalah tidak dimasukkannya variabel ukuran harmoni memori (HM S) dalam
flowchart: Mulai Baca matrix bobot per asisten per hari Jumlah mengajar per hari > 2 Constraint2 += 1 Jumlah variasi per minggu > variasi max Constraint1 += 1 Sudah 1 minggu Hitung jumlah bobot per asisten Jumlah bobot asisten < bobot min Jumlah bobot asisten > bobot max Ya Tidak Ya Tidak Ya Tidak Constraint3 += 1 Ya Tidak Ya A Menjumlahkan Constraint1, Constraint2, Constraint3 per asisten sebagai nilai objektif Tidak Semua asisten sudah dihitung A Tidak Selesai Ya G ambar 6 Flowchart menghitung nilai objektif untuk harmoni baru
Subproses menghitung nilai objektif akan menghasilkan nilai objektif untuk
merupakan himpunan nilai objektif untuk masing-masing anggota harmoni memori.
Pada tahapan kedua akan dihasilkan , yang merupakan nilai objektif hasil dari
harmoni memori yang baru dihasilkan.
M etode optimasi yang dilakukan adalah membandingkan nilai objektif , untuk
1… , dengan . Kondisi mengindikasikan bahwa adanya perbaikan untuk harmoni memori, sehingga untuk proses selanjutnya bisa dilakukan
update untuk harmoni memori dengan nilai objektif terburuk ,
untuk … . Proses-proses diatas akan mengalami sirkulasi sejumlah parameter NI, yang mewakili jumlah perbaikan harmoni memori yang
diharapkan. Pada hasil akhir, akan didapatkan dalam harmoni memori berupa
dengan nilai objektif , untuk 1 … .
3.6.3 Analisis Matriks
Dalam implementasi, ada beberapa inisialisasi yang digunakan sebagai dasar
pengerjaan. Sesuai dengan metode pada bab sebelumnya, penulis mendeskripsikan
masalah ini dengan variabel keputusan , , yang memiliki indeks berupa transaksi,
matakuliah praktikum dan asisten. Dalam menerapkan algoritma, diperlukan beberapa
himpunan data, yang dijabarkan dengan matriks:
1. M atriks ,
Setiap transaksi akan dijabarkan dalam slot waktu dan ruangan, sehingga
untuk transaksi dapat diwakili dalam matriks , . Parameter dan
, , … ,
, , … ,
, , … ,
… … … …
, , … ,
M atriks , berisi informasi tentang matakuliah praktikum yang sedang terjadi pada periode di ruangan . Data akan diambil dengan cara membaca file excel
yang berisikan transaksi praktikum yang berlangsung (data terlampir dalam
lampiran), dan akan dikonversi menjadi baris dan kolom sesuai dengan
matriks , . M atriks , ini merupakan matriks utama yang digunakan untuk membaca record transaksi dalam menghasilkan beberapa matriks lain untuk
perhitungan nilai objektif. Beberapa matriks yang dihasilkan dengan menggunakan
matriks , , adalah matriks , , matriks , , dan matriks , . M atriks-matriks ini dijabarkan melalui baris yang mewakili asisten atau ruangan, dan kolom yang
mewakili periode praktikum.
2. M atriks ,
M atriks ini merupakan cerminan dari marix , , dengan perbedaan pada data yang diwakilkan. Untuk matriks , setiap data akan mewakili matakuliah, sedangkan matriks , setiap datanya akan mewakili asisten. Penjabaran untuk
matriks ini juga dijabarkan dalam slot waktu dan ruangan . Parameter dan
masing-masing mewakili jumlah ruangan dan periode praktikum, , .
, , … ,
, , … ,
, , … ,
… … … …
M atriks , berisi informasi tentang asisten pengajar yang mendapatkan alokas i mengajar untuk periode di ruangan . M atriks , merupakan matriks yang mewakili harmoni memori. Pengisian data pada matriks , dilakukan dengan cara melakukan pengulangan sesuai jumlah baris dan kolom pada matriks , untuk
mendapatkan matakuliah pada periode di ruangan , yang digunakan untuk
mencari asisten pengajar dengan kualifikasi matakuliah tersebut (H1) dan periode
berada dalam shift kerja asisten pengajar (H2). Pada proses pengisian tersebut,
formulasi (6) dan (7) bisa dilakukan untuk menyaring asisten yang dimasukkan ke
dalam matriks , . Pengisian data pada matriks , juga mempengaruhi
matriks , dan matriks , .
Hasil dari pengisian asisten pada matriks , akan menghasilkan distribusi alokasi asisten sesuai dengan data transaksi matakuliah praktikum, yang
merupakan pemenuhan dari formulasi (5).
3. M atriks ,
Setiap asisten akan dijabarkan dalam matriks , untuk menjabarkan bobot yang didapatkan per asisten per periode. M atriks ini akan diwakilkan oleh
parameter dan masing-masing mewakili jumlah asisten dan periode praktikum.
, . , , … , , , … , , , … , … … … … , , … ,
M atriks , akan terisi dengan bobot matakuliah yang dialokasikan pada asisten
pengajar sesuai dengan periode . Pengisian data untuk matriks ini dilakukan
dengan cara memasukkan bobot untuk setiap matakuliah yang dibaca saat
melakukan pengisian data ke matriks , . Pada matakuliah yang dibaca, nantinya
akan dihubungkan dengan data pada file excel untuk didapatkan bobotnya. Bobot
untuk matakuliah dibagi menjadi dua nilai, matakuliah dengan bobot 1 dan
matakuliah dengan bobot 0.5.
Hasil akhir dari pengisian bobot pada matriks , akan menghasilkan
distribusi bobot per asisten sesuai dengan matakuliah yang teralokasi. Dengan
matriks ini, data untuk melakukan formulasi (3) dan (4) sudah didapat, dan
formulasi bisa dilakukan dalam proses selanjutnya.
4. M atriks ,
Setiap asisten akan dijabarkan juga dalam matriks , untuk menjabarkan
bobot yang didapatkan per asisten per periode. M atriks ini akan diwakilkan oleh
parameter dan masing-masing mewakili jumlah asisten dan periode praktikum.
, . , , … , , , … , , , … , … … … … , , … ,
M atriks , akan terisi dengan matakuliah yang dialokasikan pada asisten
Pengisian data untuk matriks ini dilakukan dengan cara memasukkan
langsung matakuliah yang dibaca saat melakukan pengisian data ke matriks , . Hasil akhir dari pengisian bobot pada matriks , akan menghasilkan distribus i matakuliah per asisten. Dengan matriks ini, data untuk melakukan formulasi (2)
sudah didapat, dan formulasi bisa dilakukan dalam proses selanjutnya.
Dari 4 matriks tersebut, untuk melakukan penerapan algoritma masih dibutuhkan
beberapa matriks sementara lainnya untuk menampung data hasil membaca file excel.
Penggunaan matriks sementara ini akan lebih dijelaskan dalam subbab selanjutnya.
3.6.4 Analisis Algoritma
Berikut langkah-langkah yang dilakukan dalam menerapkan algoritma harmony
search beserta analisis pembahasannya:
1. Inisialisasi HSA dan parameter-parameter optimasi
Dalam melakukan inisialisasi HSA dan parameter, penulis menggunakan
bantuan program yang didesain untuk membaca data berbasiskan file (file based).
Inisialisasi dilakukan dengan membaca 4 file excel dan masing-masing file excel
tersebut ditampung dalam 4 matriks penampung sementara (salah satunya matriks
, ). M atriks-matriks penampung ini akan mengambil nilai yang ada pada excel
untuk bisa diolah dalam program. Berikut list untuk setiap file excel dan pasangan
matriksnya:
a. M atriks , file transaction, , b. M atriks , file resources, ,
d. M atriks file subject
M atriks-matriks ini akan menjadi data primer, yang digunakan sebagai acuan
untuk pengambilan dan pengolahan data.
Untuk parameter-parameter yang berhubungan dengan penjadwalan,
dilakukan juga inisialisasi pada tahap ini. Beberapa parameternya yang
memerlukan batasan inputan:
a. Minimum Weight
Adalah parameter yang digunakan untuk membatasi bobot minimun
masing-masing asisten. Untuk parameter ini dibatasi dengan inputan nilai antara 4
sampai dengan 5, dengan penambahan nilai 0,5.
b. Maximum Weight
Adalah parameter yang digunakan untuk membatasi bobot maksimum
masing-masing asisten. Untuk parameter ini dibatasi dengan inputan nilai
antara 5 sampai dengan 6, dengan penambahan nilai 0,5.
c. Variation Max
Adalah parameter yang digunakan untuk membatasi variasi matakuliah yang
diterima masing-masing asisten. Untuk parameter ini dibatasi dengan
inputan nilai antara 4 dan 5.
Untuk parameter-parameter HSA seperti HM CR, PAR, HM S, dan NI juga
dilakukan inisialisasi pada tahap ini. Inisialisasi untuk masing-masing parameter
HSA dijabarkan secara singkat:
a. HM CR
Parameter ini akan menggunakan range antara 80% - 90%, kemungkinan ini
presentase ini memiliki kecocokan batasan yang besar (sudah teruji dalam
harmoni memori).
b. PAR
Parameter ini akan menggunakan range antara 20% - 30%, kemungkinan ini
diambil cukup besar, mengingat neighbouring valueyang didapat sudah
memiliki kecocokan batasan untuk shift kerja (H2).
c. HM S
Parameter ini akan menggunakan range 5, 7, dan 10. Untuk parameter ini,
menggunakan range yang absolut dikarenakan dari hasil percobaan penulis
pada program yang dibuat, bila menggunakan HM S yang cukup besar 10,
waktu proses (exceed time) akan semakin lama, juga untuk menghindari
exceed time limiterror.
d. NI
Parameter ini akan menggunakan range 50, 75, dan 100. Parameter ini juga
menggunakan range yang absolut agar lebih mudah dalam melihat proses
perbaikan. Untuk nilai yang besar pada parameter ini akan mengakibatkan
perbaikan yang lebih baik dengan waktu proses yang cukup lama.
2.
Inisialisasi HMDalam proses inisialisasi HM , setiap matriks , yang mewakili HM , akan
diisi dengan melakukan perulangan sebanyak sesuai dengan dimensi dari
matriks . Pengisian matriks , ini akan dilakukan sebanyak parameter HM S,
yang akan menghasilkan himpunan dari matriks , , … . Bila digambarkan dalam matriks, HM akan berupa:
, , , , , , , , , , , , ~ , , , , , , , , , , , ,
Hasil pada setiap anggota HM nantinya akan diproyeksikan ke matriks , dan
, agar bisa dilakukan formulasi untuk melakukan perhitungan bobot (4) dan
variasi matakuliah yang diajar asisten pengajar (2).
, , , , , , , , , , , , ~ , , , , , , , , , , , , , , , , , , , , , , , , ~ , , , , , , , , , , , ,
Setelah mendapatkan , , dan , maka selanjutnya adalah proses perhitungan untuk mencari nilai objektif. Perhitungan nilai objektif dilakukan
dengan menerapkan formulasi (2), (3), dan (4) pada HM yang didapat.
Untuk menerapkan formulasi (2), dilakukan pada saat melakukan input
untuk setiap isi pada matriks , . Setiap baris matriks , akan menampilkan data
matakuliah per shift yang teralokasikan per asisten. Untuk formulasi (2), yang
mewakili perhitungan jumlah variasi matakuliah per asisten, perlu diketahui
jumlah matakuliah unik untuk setiap baris matriks , , yang disajikan dalam
himpunan , untuk dan 0… , dengan adalah jumlah matakuliah unik yang dialokasikan untuk asisten . Untuk setiap asisten, bila jumlah anggota
pada himpunan , maka terjadi pelanggaran pada C1, sehingga nilai
akan bertambah 1, .
Untuk menerapkan formulasi (3), dilakukan pada saat melakukan input
untuk setiap isi pada matriks , . Setiap baris matriks , akan menampilkan
data distribusi bobot matakuliah per shift yang teralokasikan per asisten. Untuk
formulasi (3), yang mewakili perhitungan jumlah shift mengajar per hari per
asisten, perlu diketahui bobot matakuliah per shift yang terisi per hari berdasarkan
hasil alokasi. Bila bobot matakuliah per shift yang terisi lebih dari 2 per hari, maka
terjadi pelanggaran pada C2, sehingga nilai akan bertambah 1, .
Untuk menerapkan formulasi (4), sama seperti formulasi (3), dilakukan pada
saat melakukan input untuk setiap isi pada matriks , . Distribusi bobot
matakuliah yang ditampilkan per asisten untuk setiap baris matriks , , akan
dijumlahkan dan dibandingkan dengan nilai bobot maksimum dan nilai
bobot minimun . Bila jumlah bobot per asisten per minggu kurang dari
atau lebih dari , maka terjadi pelanggaran pada C3, sehingga nilai akan
bertambah 1, .
Setelah mendapatkan nilai-nilai penalti atas pelanggaran batasan C1, C2, dan
C3, maka bisa dilakukan formulasi (1) untuk mendapatkan nilai objektif
masing-masing HM . Dari HM ini nantinya akan dicari anggota dengan nilai objektif
terbaik dan anggota dengan nilai objektif terburuk . Anggot a
dengan nilai objektif terburuk akan digantikan dengan harmoni baru yang lebih
baik pada tahap selanjutnya, sedangkan anggota dengan nilai objektif terbaik akan
3.
Improvisasi harmoni baruUntuk mendapatkan harmoni baru, parameter HM CR dan PAR berperan
secara signifikan untuk menciptakan anggota baru. Harmoni baru yang diciptakan
adalah sebuah matriks , yang diisikan dengan anggota-anggota baru sesuai
dengan probabilitas HM CR dan PAR.
Dalam pengisian harmoni baru, dilakukan pengulangan berdasarkan dimensi
dari matriks , , yaitu , dan untuk setiap pengulangan akan terjadi pemilihan
metode sesuai dengan probabilitas yang dimiliki oleh parameter HM CR dan PAR.
Penjelasan untuk setiap metode pemilihan:
a. M etode HM CR (memory consideration)
M etode ini akan terjadi dengan kemungkinan . M etode ini akan
menghasilkan anggota untuk harmoni memori baru dengan cara mengambil
anggota dari harmoni memori yang terpilih, , , , 1… , sesuai dengan posisi baris dan posisi kolom .
b. M etode PAR (pitch adjustment)
M etode ini akan terjadi dengan kemungkinan . M etode ini
akan menghasilkan anggota untuk harmoni memori baru dengan cara
mengambil anggota neighbourhood dari harmoni yang terpilih, , , ,
1… . Nilai untuk neighbourhood yang digunakan penulis adalah 1,1 , disesuaikan dengan harmoni memori yang terpilih.
c. M etode random consideration
M etode ini akan terjadi dengan kemungkinan 1 . M etode ini akan menghasilkan anggota untuk harmoni memori baru dengan cara mengambil
segala nilai yang mungkin (memenuhi H1 dan H2), , , .
Setelah semua anggota baru terpilih, dan harmoni memori baru sudah lengkap
terisi , , maka dilanjutkan dengan memproyeksikannya ke matriks ,
dan matriks , sesuai dengan langkah pada inisialisasi HM , sehingga dihasilkan
tiga matriks harmoni baru.
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
Setelah mendapatkan tiga matriks harmoni baru ini, langkah selanjutnya adalah
menentukan nilai batasan , , dan untuk harmoni baru sesuai dengan langkah akhir pada inisialisasi HM . Nilai batasan yang diperoleh nantinya akan
4. Memperbarui HM.
HM akan diperbarui apabila nilai objektif dari bernilai lebih baik
dari nilai objektif yang ada pada harmoni memori , 1… . Untuk fungsi objektif minimal, maka proses optimasi akan mencari nilai objektif yang
terkecil dari seluruh nilai objektif yang dibandingkan.
Proses perbaikan pada HM akan terjadi bila nilai objektif ,
1… . Nilai objektif terburuk yang ditemukan pada HM , akan dibandingkan dengan untuk mendapatkan perbaikan optimal. Bila terjadi
kondisi perbaikan, maka .
5. Pengecekan kondisi berhenti.
Kondisi berhenti akan dipengaruhi oleh parameter NI, yang merupakan
jumlah perbaikan harmoni memori yang dikehendaki. Apabila NI belum terpenuhi,
maka proses perbaikan akan berulang (ulangi langkah 3 dan 4). Apabila NI sudah
terpenuhi, maka proses perbaikan akan berakhir dan kondisi harmoni memori
dengan nilai objektif terbaik akan menjadi penjadwalan yang terpilih.