yaitu 2.4.1.3 Buat inisialisasi JadwalTerbaik dari jadwal_sekarang Algoritma 3.4.

Yaitu menentukan lamanya proses pembuatan solusi baru, karena semakin tinggi angka yang ditentukan dan kecil nilai reduksi suhu yang digunakan untuk menurunkan, maka semakin lama penurunan suhunya. Penetapan nilai temperatur awal disesuaikan dengan masalah yang dihadapi, telah dikatakan pada dasar teori Bab 2 yaitu 2.4.1.1 “Dalam menentukan temperatur awal secara tepat hingga saat ini belum ada satupun metode yang secara akurat dapat menentukan temperatur awal untuk semua masalah”. Jadi nilai ini bisa diubah tergantung pada saat pengujian algoritma terhadap masalah. Titik akhir penurunan suhu adalah mencapai suhuangka 0. 2. Nilai factor reduksi suhu. Yaitu nilai tetap yang akan digunakan untuk menurunkan temperatur awal. Nilai ini ditetapkan berdasarkan dari dasar teori pada

Bab 2 yaitu 2.4.1.3

“Pengalaman menunjukan bahwa yang sebaiknya digunakan adalah antara 0,8 dan 0,99. Biasanya hasil yang baik diperoleh ketika mendekati 0,99 ”. Jadi penulis memilih menggunakan 0.99 menurunkan secara pelan. 3. Jumlah iterasi. Yaitu nilai konstan yang akan digunakan untuk lama proses pencarian solusi baru sebelum terjadi 1 kali proses penurunan suhu. Dalam satu kali iterasi akan terjadi 2 peristiwa penting, yaitu fungsi pencarian solusi baru menggunakan struktur ketetanggaan dan perhitungan fungsi biaya . Setelah sejumlah iterasi 3 iterasi selesai maka akan dilakukan penurunan suhu, mengunakan rumus 2.1 yaitu � = � ∗ � penurunan nilai temperatur awal tadi. Pada dasar teori Bab 2 yaitu 2.4.1.4 dikatakan “Pada temperatur yang rendah, sebaiknya digunakan sejumlah iterasi sehingga semua optimum local dapat dieksplorasi. Tetapi, pada temperatur yang lebih tinggi, sebaiknya digunakan sedikit iterasi”. Jadi penentuan nilai jumlah iterasi ini juga dapat disesuaikan dengan masalah yang dihadapi dengan merubah saat pengujian. Untuk lebih jelasnya peran ketiga komponen tersebut, berikut proses algoritma SA untuk menyelesaikan pengoptimalan penjadwalan. Mulai Jadwal Awal={S1,Ts1,11,kodekm, …Sn,Ts20,Xav,kodekm} T=5000,a=0.9,L=3 1. Inisialisasi jadwal_sekarang=jadwal_awal jadwal_sekarang={S1,Ts1,11,kodekm, …Sn,Ts20,Xav,kodekm} fungsiBiaya_jadwal_sekarang=fungsibiaya_jadwal_awal 2. Inisialisasi jadwal_terbaikr=jadwal_sekarang Jadwal_terbaik={S1,Ts1,11,kodekm, …Sn,Ts20,Xav,kodekm} fungsiBiaya_terbaik=fungsiBiaya_jadwal_sekarang T0 Int i=0 iL 1. Pencarian jadwal baru dari jadwal sekarang dengan struktur ketetanggaan berdasarkan hari pada timeslot 2. hitung fungsiBiaya_jadwal_baru Delta evaluation ∆E = fungsiBiaya_jadwal_baru- fungsiBiaya_jadwal_sekarang fungsiBiaya_jadwal_baru= Update T=Ta ∆E 0 ganti jadwal_sekarang dengan jadwal_baru r[0,1] exp- ∆ET fungsiBiaya_jadwal_baru fungsiBiaya_Terbaik Ya Ya Tidak Tidak Ya Tidak ganti jadwal_terbaik dengan jadwal_baru Ya i++ Ya Ya Tidak Selesai Tidak Simpan jadwal_terbaik ke database ganti jadwal_terbaik dengan jadwal_baru Tidak Gambar 3. 2 FlowChart Algoritma SA

3.2.3. Proses pencarian jadwal baru Solusi Baru .

Struktur ketetanggaan yang akan digunakan dalam proses pencarian jadwal baru ini adalah berdasarkan hari pada timeslot terjadwal, Jadi, jika jadwal yang melanggar hari senin, maka akan akan dicari jadwal dari tetangganya yaitu hari selasa, rabu, kamis, dan jumat. Setelah itu akan dikumpulkan jadwal-jadwal tetangganya tersebut dan kemudian akan di- random untuk mendapatkan kelas matakuliah kemudian ditukar posisi dengan yang melanggar. Disaat perhitungan fungsi biayajumlah pelanggaran telah disimpan kode “Jadwal” yang melanggar. Kode ini akan digunakan untuk mencari timeslot jadwal hari yang tidak bertetangga dengannya, setelah didapatkan maka akan melakukan proses penukaran “kelasMatakuliah”. Dalam pencarian solusi baru ada 2 cara yang digunakan, yaitu 1. Jika terdapat timeslot yang belum digunakan dan harinya berbeda dari jadwal yang melanggar tersebut, maka timeslot tersebut digunakan kemudian di ambil secara random penukaran timeslot. 2. Jika semua timeslot yang harinya berbeda dari jadwal yang melanggar sudah digunakan, maka akan dilakukan penukaran secara random kelas matakuliah terhadap jadwal hari yang berbeda Penukaran kelas matakuliah. Berikut ini metod pencarian jadwal baru Solusi Baru ’ :

1. ProsesPencarianJadwalbaru Algoritma 3.5.