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 kekurangankekurangan 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 beberapa hal yang perlu diperhatikan sebagai hard constraint, antara lain:
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 untuk meminimalkan soft constraint di atas.
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 ~
h.
,
…,
~
,
~ ~
,…, ,
~
…,
, sehingga bila dijabarkan menjadi , dan seterusnya.
, , , , 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 ,
.
l.
adalah bobot untuk setiap matakuliah praktikum ,
.
m.
(shift kerja pengajar) adalah variabel biner, bernilai 1 jika dan hanya jika pengajar
n.
available pada periode .
,
.
(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 untuk transaksi pengajar . b.
1 , jika dan hanya jika
, ,
dengan matakuliah praktikum ,
,
teralokasikan asisten
.
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, ditentukan oleh tim Resources M anagement.
.
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 periode .
,
1, jika dan hanya jika transaksi
,
ada pada
.
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
1, 4
,
, ,
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
,
6
,
7
,
1
, ,
1
, ,
,
, ,
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 pada periode terjadinya transaksi.
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
While not termination criterion specified by NI do
For
If
// new harmony vector
1,… , do 0,1
Begin , …,
If
0,1
End
Else
// memory consideration
then // pitch adjustment
//
is neighbouring values of
// random consideration
End if
End for
If
// is the number of decision variables then
,… ,
Recognize
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 dilakukan tidak akan merubah struktur utama dari algoritma harmony search, hanya
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
For
// new harmony vector
1,… , do
// is the number of allocated schedules
Check_availability()
If
0,1
then
Begin , …,
If
0,1
End
Else
// memory consideration
then // pitch adjustment
// constraint check (H1, H2)
//
is neighbouring values of
// random consideration
End if End for
, … , do
For
Check_penalty()
End for
If
// is the number of possible resources // penalty check (C1, C2, C3)
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 interseksi
1…
. Hasil dari dua pencarian tersebut akan dilakukan
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 berulang untuk setiap asisten pengajar.
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 untuk cek batasan dan menghitung nilai objektif.
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 pelanggaran pada dua batasan hard constraint.
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
A
Jumlah mengajar per hari > 2
Ya
Constraint2 += 1
Tidak Jumlah variasi per minggu > variasi max
Ya
Constraint1 += 1
Tidak
Tidak
Sudah 1 minggu
Ya
Hitung jumlah bobot per asisten
A Jumlah bobot asisten < bobot min
Ya
Selesai
Tidak Ya
Tidak Constraint3 += 1
Semua asisten sudah dihitung
Ya Jumlah bobot asisten > bobot max
Tidak Menjumlahkan Constraint1, Constraint2, Constraint3 per asisten sebagai nilai objektif
G ambar 6 Flowchart menghitung nilai objektif untuk harmoni baru
Subproses menghitung nilai objektif akan menghasilkan nilai objektif untuk masingmasing tahap. Pada tahapan pertama akan dihasilkan
dengan
1…
, yang
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 1…
. Kondisi
, dengan
, untuk
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
masing mewakili jumlah ruangan dan periode praktikum,
,
dan .
masing-
,
,
,
,
,
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 data yang diwakilkan. Untuk matriks sedangkan matriks
,
,
, dengan perbedaan pada
setiap data akan mewakili matakuliah,
,
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 mendapatkan matakuliah pada periode
di ruangan
,
untuk
, 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 matriks
,
,
. Pengisian data pada matriks
dan matriks
,
,
juga mempengaruhi
.
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.
. ,
,
,
,
,
,
…
…
,
,
… … … … …
, , ,
… ,
akan terisi dengan matakuliah yang dialokasikan pada asisten
M atriks
,
pengajar
sesuai dengan periode .
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,
c.
M atriks
,
file qualification,
, , ,
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 masingmasing 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 diambil dengan presentase yang besar karena nilai yang dihasilkan dari
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 HM Dalam proses inisialisasi HM , setiap matriks diisi dengan melakukan perulangan sebanyak matriks . Pengisian matriks
,
,
yang mewakili HM , akan
sesuai dengan dimensi dari
ini akan dilakukan sebanyak parameter HM S,
yang akan menghasilkan himpunan dari matriks digambarkan dalam matriks, HM akan berupa:
,
,
…
. Bila
,
,
,
,
,
,
,
,
,
,
,
,
~
,
,
,
,
,
,
,
,
,
,
,
,
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 himpunan
, untuk
dan
0…
, dengan
,
, yang disajikan dalam
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 dijumlahkan dan dibandingkan dengan nilai bobot maksimum
,
, akan
dan nilai
bobot minimun
. Bila jumlah bobot per asisten per minggu kurang dari
atau lebih dari
, maka terjadi pelanggaran pada C3, sehingga nilai
bertambah 1,
akan
.
Setelah mendapatkan nilai-nilai penalti atas pelanggaran batasan C1, C2, dan C3, maka bisa dilakukan formulasi (1) untuk mendapatkan nilai objektif masingmasing 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 dipertahankan sebagai penjadwalan pilihan yang akan digunakan.
3.
Improvisasi harmoni baru Untuk 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, sesuai dengan posisi baris b.
,
,
1…
,
,
dan posisi kolom .
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… adalah
. Nilai
,
,
,
untuk neighbourhood yang digunakan penulis
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
,
dan matriks
, maka dilanjutkan dengan memproyeksikannya ke 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 digunakan untuk mencari nilai objektif dari
.
4.
Memperbarui HM. HM akan diperbarui apabila nilai objektif dari dari nilai objektif yang ada pada harmoni memori
bernilai lebih baik ,
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 kondisi perbaikan, maka 5.
,
untuk mendapatkan perbaikan optimal. Bila terjadi .
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.