BAB 3 METODOLOGI Metode Penelitian. Dalam melakukan penelitian akan permasalahan ini, penulis menggunakan metode

dokumen-dokumen yang mirip
BAB 4 HASIL DAN PEMBAHASAN

BAB 2 LANDASAN TEORI

AUTOMATISASI TIMETABLING ASISTEN PENGAJAR PADA SOFTWARE LABORATORY CENTER MENGGUNAKAN HARMONY SEARCH

OPTIMISASI TOTAL TEMPUH NPC PADA RTS GAME MENGGUNAKAN HARMONY SEARCH ALGORITHM. Herti Miawarni 1* Jl. A. Yani 114, Surabaya 60231, Telp.

BAB 2 LANDASAN TEORI

ALGORITMA HARMONY SEARCH DALAM OPTIMALISASI VEHICLE ROUTING PROBLEM WITH TIME WINDOW (VRPTW)

Struktur Kontrol. (Repetition) 1. Pemilihan (Selection) 2. Pengulangan

BAB 4 IMPLEMENTASI DAN EVALUASI

BAB III PENJADWALAN KULIAH DI DEPARTEMEN MATEMATIKA DENGAN ALGORITMA MEMETIKA. Penjadwalan kuliah di departemen Matematika UI melibatkan

1. Pendahuluan Selama ini penjadwalan pelajaran hampir di semua sekolah yang meliputi jadwal mata pelajaran dan pembagian guru di setiap kelas yang

BAB III METODE PENELITIAN

BAB I PENDAHULUAN. sejumlah aktivitas kuliah dan batasan mata kuliah ke dalam slot ruang dan waktu

BAB III ANALISIS DAN PERANCANGAN APLIKASI

4 BAB 4 IMPLEMENTASI DAN EVALUASI. rencana implementasi dapat dilihat pada Tabel 4.1 di bawah ini : Tabel 4.1 Tabel Rencana Implementasi

Optimisasi Penjadwalan Proses Pada Central Processing Unit Dengan Menggunakan Algoritma Greedy

BAB II LANDASAN TEORI

Manual Penggunaan Algoritma Tabu Search untuk Mengoptimasikan Penjadwalan Job Shop

BAB XII MENCARI DATA MAKSIMUM DAN MINIMUM

BAB 3 PERANCANGAN. Universitas Indonesia

BAB 3 ANALISIS DAN PERANCANGAN

PEMANFAATAN SOLVER EXCEL UNTUK OPTIMASI PENJADWALAN MATA PELAJARAN

BAB II LANDASAN TEORI. Menurut Schroeder (2000) Penjadwalan dapat didefinisikan sebagai suatu

Struktur Kontrol. (Repetition)

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

TEKNIK PENJADWALAN KULIAH MENGGUNAKAN METODE ALGORITMA GENETIKA. Oleh Dian Sari Reski 1, Asrul Sani 2, Norma Muhtar 3 ABSTRACT

Program Studi Sistem Informasi STMI - Kementerian Perindustrian Jakarta 2012

TUGAS RESUME MATERI KULIAH ALGORITMA DAN STRUKTUR DATA STRATEGI ALGORITMA : H

BAB III PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

Perancangan Sistem Penjadwalan Asisten Dosen Menggunakan Algoritma Genetika (Studi Kasus: STIKOM Bali)

RENCANA PEMBELAJARAN SEMESTER (RPS) PEMROGRAMAN KOMPUTER

a[0] a[1] a[2] a[3] a[4] a[5] x

BAB 3 METODOLOGI PENELITIAN

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB III ANALISIS DAN DESAIN SISTEM

BAB III PEMBAHASAN. digunakan untuk membentuk fungsi tujuan dari masalah pemrograman nonlinear

BAB 2 LANDASAN TEORI

PERANCANGAN PROGRAM. struktur/hirarki menu, State Transition Diagram (STD), modul dan pseudocode, serta

BAB 2 TINJAUAN PUSTAKA

BAB III KONSEP DAN PERANCANGAN APLIKASI

Pemanfaatan Algoritma Hybrid Ant Colony Optimization dalam Menyelesaikan Permasalahan Capacitated Minimum Spanning Tree. Tamam Asrori ( )

BAB III METODE PENELITIAN. Penelitian dilakukan dilingkungan Jurusan Ilmu Komputer Fakultas Matematika

BAB 2 LANDASAN TEORI

Algoritma Evolusi Real-Coded GA (RCGA)

Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Aplikasi Rekursif dalam Analisis Sintaks Program

BAB III METODE PENELITIAN. Tujuan tugas akhir ini akan membangun suatu model sistem yang

BAB 3 PERANCANGAN SISTEM

PERMASALAHAN PENJADWALAN FLOW SHOP DALAM PROSES PENGECATAN BODY MOBIL DENGAN MENGGUNAKAN HARMONY SEARCH ALGORITHM SKRIPSI ANNAS MAIYASYA

SOFTWARE LINDO I KOMANG SUGIARTHA

PENERAPAN ALGORITMA HARMONY SEARCH DALAM PENYELESAIAN RESOURCE-CONSTRAINED PROJECT SCHEDULING PROBLEM

PEMBANGUNAN SISTEM PENJADWALAN KULIAH MENGGUNAKAN ALGORITMA PEWARNAAN GRAF

Algoritma & Pemrograman #9. by antonius rachmat c, s.kom, m.cs

CLIQUE MAKSIMAL SEBAGAI KONSEP DASAR PEMBUATAN ALGORITMA CLIQUE-BACK UNTUK MENYELESAIKAN MASALAH N-RATU

Analisis Penggunaan Algoritma Greedy dalam Program Solusi Fisibel Basis Awal Transportasi

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

BAB II LANDASAN TEORI. sistem kontrol persediaan dan produksi, dan MRP tipe 3 berhubungan dengan. sistem perencanaan manufaktur (Tersine, 1984).

BAB III METODOLOGI PENELITIAN. Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan

BAB III ANALISIS DAN PERANCANGAN. Pada bab ini akan dijelaskan mengenai proses analisa perangkat lunak dan perancangan atau desain perangkat lunak.

BAB VII ALGORITMA DIVIDE AND CONQUER

Prediksi Indeks Saham Syariah Indonesia Menggunakan Model Hidden Markov

MODUL PRAKTIKUM KONSEP PEMROGRAMAN KOMPUTER

OPTIMASI PENJADWALAN CERDAS MENGGUNAKAN ALGORITMA MEMETIKA

BAB 3 PERANCANGAN PROGRAM. dari OOP (Object Oriented Programming) di mana dalam prosesnya, hal-hal

Perbandingan Algoritma Dijkstra Dan Algoritma Ant Colony Dalam Penentuan Jalur Terpendek

BAB III ANALISIS DAN PERANCANGAN

BAB IV ANALISA DAN PERANCANGAN

Menentukan Susunan Pengambil Tendangan Penalti dalam Skema Adu Penalti pada Pertandingan Sepak Bola dengan Algoritma Branch and Bound

PENYUSUNAN PENJADWALAN UJIAN MENGGUNAKAN ALGORITMA RANK BASED ANT SYSTEM INTISARI

KONTRAK BELAJAR. Nama Mata Kuliah : Pemrograman Visual Kode Mata Kuliah : : Wahyu Widodo, S.Kom Semester : 5 Hari Pertemuan : Tempat Pertemuan :

BAB II TINJAUAN PUSTAKA. Job shop scheduling problem (JSSP) adalah permasalahan optimasi


Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP

Analisis Penyelesaian Masalah Penjadwalan Kuliah Menggunakan Teknik Pewarnaan Graph Dengan Algoritma Koloni Lebah

BAB 2 LANDASAN TEORI

Apa Itu Algoritma? Algoritma berasal dari: ahli

6/15/2015. Simulasi dan Pemodelan. Keuntungan dan Kerugian. Elemen Analisis Simulasi. Formulasi Masalah. dan Simulasi

Penggunaan Algoritma Greedy dalam Penyelesaian Masalah Transportasi

BAB 3 LINEAR PROGRAMMING

BAB II LANDASAN TEORI

BAB III PERANCANGAN SISTEM

BAB III METODE FUZZY MAMDANI

Pencarian Lintasan Terpendek Pada Aplikasi Navigasi Menggunakan Algoritma A*

Logika dan Algoritma Yuni Dwi Astuti, ST 2

SATUAN ACARA PERKULIAHAN MATA KULIAH PEMROGRAMAN PASCAL * (TK) KODE / SKS: KK /2 SKS

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB III ANALISIS ALGORITMA

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

:Mahasiswa dapat mempraktekkan penggunaan array

BAB 3 ANALISIS DAN PERANCANGAN

BAB 2 LANDASAN TEORI. waktu yang diperlukan. Pengukuran waktu yang diperlukan dalam mengeksekusi suatu

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI

BAB IV IMPLEMENTASI DAN EVALUASI. Pada bab ini akan dijelaskan mengenai kebutuhan sistem, implementasi dan

Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP

Struktur Data. PDE - Struktur Data 1

BAB I PENDAHULUAN 1.1 Latar Belakang Permasalahan

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

BAB III ANALISIS. III.1 Analisis Sistem Penjadwalan

Transkripsi:

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: Gambar 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 Management, 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 Management, 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 ~ ~,, ~, 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,. l. adalah bobot untuk setiap matakuliah praktikum,.

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, ditentukan oleh tim Resources Management..

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 Management.. 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 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,, 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. Modifikasi tersebut dibutuhkan untuk penerapan implementasi sesuai dengan batasan-batasan yang dimiliki. Modifikasi 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 // 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 Management. 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: Gambar 2 Flowchart harmony search murni

Dalam penerapan nantinya alur algoritma dari harmony search di atas, akan sedikit dimodifikasi. Flowchart untuk hasil modifikasi: Gambar 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: Gambar 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: Gambar 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 (HMS) 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 Selesai Ya Jumlah bobot asisten < bobot min Tidak Constraint3 += 1 Ya Tidak Jumlah bobot asisten > bobot max Tidak Semua asisten sudah dihitung Ya Menjumlahkan Constraint1, Constraint2, Constraint3 per asisten sebagai nilai objektif Gambar 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. Metode 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. Matriks, Setiap transaksi akan dijabarkan dalam slot waktu dan ruangan, sehingga untuk transaksi dapat diwakili dalam matriks,. Parameter dan masingmasing mewakili jumlah ruangan dan periode praktikum,,.

,,,,,,,,,,,, Matriks, 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,. Matriks, 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,. Matriks-matriks ini dijabarkan melalui baris yang mewakili asisten atau ruangan, dan kolom yang mewakili periode praktikum. 2. Matriks, Matriks 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,,.,,,,,,,,,,,,

Matriks, berisi informasi tentang asisten pengajar yang mendapatkan alokasi mengajar untuk periode di ruangan. Matriks, 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. Matriks, Setiap asisten akan dijabarkan dalam matriks, untuk menjabarkan bobot yang didapatkan per asisten per periode. Matriks ini akan diwakilkan oleh parameter dan masing-masing mewakili jumlah asisten dan periode praktikum.,.,,,,,,,,,,,,

Matriks, 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. Matriks, Setiap asisten akan dijabarkan juga dalam matriks, untuk menjabarkan bobot yang didapatkan per asisten per periode. Matriks ini akan diwakilkan oleh parameter dan masing-masing mewakili jumlah asisten dan periode praktikum.,.,,,,,,,,,,,, Matriks, akan terisi dengan matakuliah yang dialokasikan pada asisten 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 distribusi 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, ). Matriks-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. Matriks, file transaction,, b. Matriks, file resources,, c. Matriks, file qualification,,

d. Matriks file subject Matriks-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 HMCR, PAR, HMS, 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 HMS 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, yang mewakili HM, akan diisi dengan melakukan perulangan sebanyak sesuai dengan dimensi dari matriks. Pengisian matriks, ini akan dilakukan sebanyak parameter HMS, 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 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 HMCR 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 HMCR 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 HMCR dan PAR. Penjelasan untuk setiap metode pemilihan: a. Metode HMCR (memory consideration) Metode ini akan terjadi dengan kemungkinan. Metode 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. Metode PAR (pitch adjustment) Metode ini akan terjadi dengan kemungkinan. Metode 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. Metode random consideration Metode ini akan terjadi dengan kemungkinan 1. Metode 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 digunakan untuk mencari nilai objektif dari.

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.