BAB 4
HASIL DAN PEMBAHASAN
4.1. Hasil Implementasi
Pembahasan untuk penerapan algoritma harmony search yang dilakukan dalam penjadwalan asisten ini, akan dijabarkan dengan ulasan hasil dari inputan parameter-parameter yang berbeda. Untuk hasil penjadwalan, dapat dipastikan berbeda dari percobaan yang pertama hingga yang terakhir walaupun parameter yang diinput sama, hal ini karena adanya random value yang digunakan dalam algoritma. Untuk hasil-hasil yang dijabarkan di sini, adalah hasil-hasil selama penulis melakukan percobaan.
Dari hasil inisialisasi matriks penampung yang dibaca dari file excel, ada beberapa parameter tetap yang perlu diketahui:
1. 81. adalah jumlah asisten pengajar untuk dialokasikan.
2. 26. adalah jumlah ruangan praktikum yang tersedia untuk alokasi transaksi praktikum.
3. 35. adalah jumlah periode yang digunakan dalam transaksi praktikum. Untuk tiga tetapan di atas, akan digunakan secara konstan dalam melakukan algoritma penjadwalan ini.
Dalam melakukan implementasi untuk pengujian algoritma ini pada program, akan dilakukan secara bertahap dan terbagi menjadi tiga langkah utama:
1. Konversi raw data ke matriks penampung
Langkah ini akan mengubah data-data mentah (raw data) yang didapatkan dari tim Resources M anagement dan Database Administrator menjadi data olahan dasar, berupa matriks biner 0,1 dan bipolar 1,1 .
Contoh data mentah untuk data kualifikasi yang akan diolah datanya dilampirkan pada lampiran. Berikut sample yang diambil untuk keterangan:
G ambar 1 Contoh raw data kualif ikasi Keterangan:
a. Kolom “A” mewakili asisten pengajar.
b. Setiap kolom mewakili kode-kode matakuliah yang dilayani oleh Software Laboratory Center.
c. Nilai “Q” menandakan asisten memiliki kualifikasi untuk matakuliah pada kolom yang diwakilinya.
d. Nilai selain “Q” menandakan asisten tidak memiliki kualifikasi untuk matakuliah pada kolom yang diwakilinya. Pada contoh nilai tersebut adalah “PT”.
Hasil konversi dari data di atas, akan dituliskan dalam file “qualification_t.xlsx”, sebagai contoh:
Keterangan:
a. Setiap kolom dan baris akan terproyeksi sama seperti data mentah.
b. Nilai hasil konversi akan berbentuk biner, nilai 1 akan mewakili status “Q”, sedangkan 0 untuk lainnya.
Contoh data mentah untuk data asisten pengajar yang akan diolah datanya dilampirkan pada lampiran. Berikut sample yang diambil untuk keterangan:
G ambar 3 Contoh raw data asisten pengajar Keterangan:
a. Data yang dibutuhkan ada pada kolom “INISIAL” dan “SHIFT”. b. Untuk nilai pada kolom “SHIFT” terdiri dari pagi dan malam.
Hasil konversi dari data di atas, akan dituliskan dalam file “resources_t.xlsx”, sebagai contoh:
G ambar 4 Hasil konversi data asisten pengajar Keterangan:
a. Kolom “A” mewakili asisten pengajar.
b. Setiap kolom mewakili periode praktikum yang ada pada transaksi.
c. Nilai -1 mengindikasikan pada periode tersebut, asisten yang diwakili kolom “A” tidak bisa dialokasikan untuk mengajar, karena asisten yang bersangkutan berada di luar shift kerja.
d. Nilai 0 mengindikasikan pada periode tersebut, asisten yang diwakili kolom “A” available untuk dialokasikan mengajar. Bila pada tahapan selanjutnya ada alokasi yang terjadi, maka nilai 0 akan berubah menjadi 1 atau 0,5 sesuai dengan bobot matakuliah yang dialokasikan.
Contoh data mentah untuk data transaksi yang akan diolah datanya dilampirkan pada lampiran. Berikut sample yang diambil untuk keterangan:
G ambar 5 Contoh raw data transaksi praktikum Keterangan:
a. Data dikonversi menjadi matriks dua dimensi dengan Kode M tk sebagai nilai. b. Nilai pada kolom ruang, akan menjadi baris. Nilai pada kolom hari dan shift
akan menjadi kolom, pada hasil konversi.
Hasil konversi dari data di atas, akan dituliskan dalam file “transaction_t.xlsx”, dan disimpan sebagai matriks , , sebagai contoh:
G ambar 6 Hasil konversi data transaksi praktikum Keterangan:
b. Setiap kolom mewakili periode praktikum.
c. Setiap matakuliah yang diwakili pada nilai matriks, akan terkorespondensi dari data asal.
2. Inisialisasi HM
Pada langkah ini, data-data hasil konversi yang tersimpan dalam masing-masing excel ([nama_file]_t.xlsx) akan digunakan untuk diisikan pada harmoni memori, yang merupakan matriks , . Untuk matriks , sendiri merupakan cerminan matriks , yang juga hasil konversi data transaksi praktikum, namun
dengan nilai berupa asisten pengajar. Untuk mengisi matriks , , dilakukan
perulangan sesuai dengan jumlah baris dan kolom pada matriks , . Nila i
matakuliah pada matriks , digunakan sebagai referensi untuk mendapatkan
asisten yang memiliki kualifikasi matakuliah tersebut dan available pada shift sesuai dengan kolom pada matriks , . Contoh untuk matriks , dalam file
excel:
G ambar 7 Contoh matriks , pada file excel
Jumlah matriks , yang dihasilkan akan sebanyak jumlah parameter HM S yang
akan dimasukkan dalam array multi-dimensi, dengan susunan array berupa array 3 dimensi [$HM S][$r][$p].
Bila matriks , sejumlah HM S sudah didapatkan, maka dilanjutkan untuk
mendapatkan nilai objektif untuk masing-masing HM . Untuk mewakili nilai objektif, dalam penerapan digunakan variabel tValues yang merupakan array 2 dimensi [$HM S][$penalty]. Untuk $penalty = 0, mewakili penalti untuk batasan C3. $penalty = 1, mewakili penalti untuk batasan C2. $penalty = 2, mewakili penalti untuk batasan C1. Dari hasil tValues yang didapatkan, nilai objektif akan didapat dengan menjumlahkan nilai penalty yang ada untuk masing-masing HM S.
∑ $ , 1… .
3. Improvisasi harmoni baru
Untuk mendapatkan harmoni baru, dilakukan cara yang sama dalam melakukan inisialisasi disertai dengan kemungkinan kondisi pengisian dengan nilai pada harmoni memori yang sudah ada (HM CR), dan nilai neighbourhood pada harmoni memori yang sudah ada (PAR).
Bagian yang penting dalam langkah ini adalah mengupdate data harmoni memori dan nilai objektif dari harmoni memori yang sudah ada dengan nilai objektif harmoni memori baru yang lebih baik. Bila hal ini dilakukan berulan g (dalam hal ini sesuai dengan parameter NI), maka akan ada kemungkinan terjadi perbaikan harmoni memori, maksimal sebanyak NI.
Dari semua langkah yang dilakukan dalam menerapkan algoritma, nantinya akan menghasilkan sebuah dengan nilai objektif yang diharapkan (minimal). Hasil akhir dari algoritma program yang digunakan dalam membantu penerapan algoritma akan dijabarkan dalam tiga bentuk matriks, matrik , , dan , dan akan disimpan dalam sebuah file excel.
Berikut akan ditampilkan hasil dari percobaan untuk penjadwalan asisten pengajar dengan menggunakan parameter-parameter HSA dan parameter permasalahan sebagai berikut: HM S = 5, M inimum Weight = 4,5, M aximum Weight = 5,5, Variation M ax = 5, HM CR = 90, PAR = 20, dan NI = 75.
Sedikit tampilan hasil dalam file excel:
G ambar 8 Contoh matriks w hasil algoritma
G ambar 10 Contoh matriks e hasil algoritma
4.2. Pembahasan
4.2.1 Perbandingan Hasil Implementasi
Perbandingan hasil dari penjadwalan asistensi asisten pengajar secara manual dengan penerapan atau implementasi algoritma harmony search bisa dilihat dalam bentuk tabel. Perbandingan ini dilakukan untuk mengetahui efektivitas dari parameter HM S terhadap nilai objektif, dengan asumsi parameter lain tetap. Kolom-kolom pada tabel mewakili nilai penalti yang didapat untuk masing-masing batasan, untuk penalti bobot asisten pengajar diwakili kolom C3, untuk penalti mengajar lebih dari dua shift dalam satu hari diwakili kolom C2, dan untuk penalti mengajar matakuliah lebih dari variasi yang ditentukan diwakili kolom C3.
Data pada tabel diambil berdasarkan data terbaik dari masing-masing 10 kali percobaan:
Tabel 1 Perbandingan nilai objective dengan perbedaan parameter pada HMS
HMS C3 C2 C1 Objective
5 50 27 14 91
7 54 28 8 90
10 51 27 10 88
Berdasarkan tabel 1, bisa dilihat bahwa parameter HM S tidak terlalu efektif untuk meminimalkan nilai objektif, dengan distribusi penalti yang relatif sama. Dari hasil tersebut untuk penalti pada bobot asisten pengajar yang diwakili C3, C2, dan C1 terlihat merata dan tidak mengalami banyak perubahan, meskipun terjadi perubahan pada jumlah memori harmoni yang digunakan dalam perbaikan harmoni. Nilai objektif yang didapat dengan meningkatkan jumlah memori harmoni pun tidak mengalami perubahan yang signifikan, dengan nilai objektif minimum yang didapatkan 90.
Tabel 2 Perbandingan nilai objektif dengan perbedaan parameter pada HMCR
HMCR C3 C2 C1 Objective
80 53 29 10 92
85 51 27 13 91
90 50 26 12 88
Berdasarkan tabel 2, bisa dilihat bahwa parameter HM CR yang besar memiliki kecenderungan untuk perbaikan yang lebih baik. Dari tabel, untuk nilai HM CR sebesar 85 mendapatkan hasil objektif sebesar 93, lebih besar dibandingkan dengan nilai HM CR 80. Sedangkan untuk nilai HM CR 90, terjadi penurunan yang signifikan, dengan nilai objektif menjadi 88. Hal ini membuat inkonsistensi pada peningkatan parameter HM CR, karena bergantungnya parameter HM CR pada harmoni memori yang sudah ada sebelumnya.
Tabel 3 Perbandingan nilai objektif dengan perbedaan parameter pada PAR
PAR C3 C2 C1 Objective
20 47 32 13 92
25 50 31 10 91
30 50 29 10 89
Berdasarkan tabel 3, bisa dilihat bahwa parameter PAR yang besar memiliki kecenderungan untuk perbaikan yang lebih baik, dengan distribusi penalti yang relatif random. Dari tabel, untuk nilai PAR sebesar 20, terjadi penurunan nilai penalti untuk C3 menjadi 47, yang merupakan titik terendah penalti C3 dari semua percobaan yang dilakukan, namun penurunan ini tidak diimbangi dengan penurunan nilai objektif. Berkurangnya nilai C3 mengakibatkan meningkatnya nilai penalti pada C2, sehingga nilai objektif cenderung tidak berubah secara signifikan. Pada percobaan, untuk nilai parameter PAR sebesar 30, bisa menekan nilai objektif pada nilai 89.
Tabel 4 Perbandingan nilai objektif dengan perbedaan parameter pada NI
NI C3 C2 C1 Objective
50 51 31 12 94
75 57 25 10 92
100 51 29 9 89
Berdasarkan tabel 4, bisa dilihat bahwa nilai pada parameter NI yang besar memiliki kecenderungan untuk perbaikan yang lebih baik, dengan distribusi penalti yang relatif
random. Untuk penambahan nilai pada NI, nilai objektif yang dihasilkan pun membaik,
terbukti dengan adanya penurunan nilai objektif seiring dengan bertambahnya parameter NI. Untuk nilai NI yang besar, yang dalam percobaan ini adalah 100, akan memperbesar kemungkinan untuk mendapatkan hasil yang lebih optimal.
Keterangan parameter yang digunakan untuk 4 tabel yang dijabarkan di atas: a. M in Weight = 4,5
b. M ax Weight = 5,5 c. Variation M ax = 5
d. HM S = 10 (selain pada tabel 1) e. HM CR = 90 (selain pada tabel 2) f. PAR = 30 (selain pada tabel 3) g. NI = 100 (selain pada tabel 4)
Dari 4 perbandingan di atas, bila diambil yang terbaik dan dibandingkan dengan nilai objektif pada hasil penjadwalan manual, maka akan didapatkan tabel perbandingan yang mengukur keefektifan dari algoritma harmony search:
Tabel 5 Perbandingan algoritma harmony search dan manual
C3 C2 C1 Objective
Harmony 54 26 9 89
Manual 46 1 8 55
Pada tabel 5, digunakan parameter pada harmony search, HM S = 10, M in Weight = 4,5, M ax Weight = 5,5, Variation M ax = 5, HMCR = 90, PAR = 30, dan NI = 100, dan dilakukan selama 10 kali percobaan untuk mendapatkan nilai objektif yang terbaik.
Dari tabel 5, dapat dilihat bahwa hasil untuk penjadwalan manual masih memiliki nilai objektif yang jauh lebih baik dibandingkan dengan menggunakan algoritma
harmony search. Hal ini dikarenakan penjadwalan manual yang dihasilkan sudah
10/11, jadi nilai penalti yang didapat pastinya sudah minimal. Bila dibandingkan per parameter, untuk setiap pelanggaran pada batasan, digambarkan dalam diagaram:
G ambar 11 Chart hasil perbandingan nilai rata-rata penalti per parameter
Dari diagaram di atas, bisa dilihat untuk setiap parameter yang diubah secara independen memiliki kecenderungan untuk menghasilkan nilai yang relatif sama pada setiap pelanggaran batasan.
Perbandingan pada tabel-tabel di atas, belum disertai dengan dimensi waktu. Bila dimensi waktu diikutsertakan, maka algoritma harmony search akan secara mutlak mengalahkan waktu dari manual. Perkiraan untuk waktu proses manual kurang lebih selama 1 minggu hari kerja, sedangkan dengan melakukan implementasi algoritma
harmony search bisa diselesaikan dalam waktu yang relatif singkat (kurang dari 15
menit). Oleh karena itu sebagai usulan solusi dari permasalahan ini, bisa menggunakan algoritma harmony search ini untuk membuat prototype penjadwalan, yang selanjutnya
52 29 11 52 28 12 50 31 12 53 29 11 0 10 20 30 40 50 60 70 80 90 100 C1 C2 C3 Nilai Penalti
Nilai Rata‐rata Penalti
HMS HMCR PAR NIbisa diperbaiki dan disesuaikan oleh tim Resources M anagement secara manual dengan melihat data yang direpresentasikan pada matriks-matriks excel hasil algoritma.
4.2.2 Kompleksitas Algoritma
Dari hasil menjalankan algoritma optimasi harmony search, penulis mencoba menguraikan kapasitas dari algoritma tersebut dalam sebuah notasi kompleksitas algoritma. Berdasarkan pseudocode yang terlampir pada bab 3, bisa dilihat bahwa untuk melakukan inisialisasi harmoni memerlukan perulangan yang berdasarkan pada besarnya harmoni memori dan jumlah dari harmoni memori, dan untuk melakukan perbaikan pada harmoni, dilakukan perulangan sebanyak NI dengan melakukan perulangan di dalamnya untuk mendapatkan dan menghitung harmoni memori baru.
Pada proses membaca data dari file excel sampai pada inisialisasi harmoni memori
besar kompleksitasnya dinotasikan dengan . untuk jumlah asisten
pengajar dan untuk jumlah periode.
Pada proses melakukan improvisasi harmoni baru sampai kondisi NI terpenuhi,
besar kompleksitasnya dinotasikan dengan . untuk jumlah asisten
pengajar dan untuk jumlah periode.
Kompleksitas algoritma secara keseluruhan dapat dihitung dengan cara membandingkan kedua proses di atas dengan cara:
Bisa disederhanakan dengan hanya membandingkan: |
Karena untuk penelitian yang dilakukan penulis menggunakan nilai , maka
untuk kompleksitas algoritma ini adalah . Dengan nilai
81 35 2835. Sehingga kompleksitas algoritm: 2835 .
Dengan kompleksitas yang diketahui, bisa dicermati bahwa ukuran jumlah asisten akan mempengaruhi besaran dari kompleksitas algoritma harmony search yang digunakan. Semakin besar nilai kompleksitas akan menandakan kecilnya efektivitas dari algoritma tersebut, dan akan mempengaruhi waktu proses algoritma.