BantuSimpanFungBiaya_JadwalSkrg, metod yang berfungsi untuk Random Kode kelas matakuliah yang harinya berbeda dari yang melanggar Simpan Fungbiaya jadwal_sekarang tanpa duplikat jadwal.Algoritma 8.

3. UpdateKelasMatakuliahsolusi1,solusi2, metod yang berfungsi untuk

menukar kelas matakuliah melanggar dengan kelas matakuliah baru hasil random dari tetangganya.

4. BantuSimpanFungBiaya_JadwalSkrg, metod yang berfungsi untuk

menyimpan semua data pelanggaranfungsi biaya dari jadwal_sekarang yang akan dicari Jadwal barunya. Pada metod ini kode jadwal melanggar yang sama cukup sekali diatasi. Sebelum membuat metod pencarian jadwal baru, ada beberapa metod yang harus dibuat terlebih dahulu yaitu : 1. Random Timeslot dan ruang yang tidak digunakan dan harinya berbeda dari yang melanggar Algoritma 3.6.

2. Random Kode kelas matakuliah yang harinya berbeda dari yang melanggar

Algoritma 3.7. 1. Mulai. 2. Buat metod dengan nama tampung_TS_Ruang_yg_tidak_digunakanDanBerbedaHari dengan parameter string cari, tipe pengembalian ListString. 3. Buat variable Objek baru untuk menyimpan kodetimeslot, kodeRuang, kodeWaktu, kodeHari didalam list String java. ListString kodeTsRg = new ArrayListString; 4. Untuk i=0 sampai i sebanyak timeslot, lakukan langkah berikut: 1. Untuk j=0 sampai j sebanyak ruang, lakukan langkah berikut ini. a. Simpan kodetimeslot, koderuang, kodewaktu, kodehari dalam “kodeTsRg”: 5. Untuk i=0 sampai i sebanyak “jadwal_baru”, lakukan langkah berikut. 1. Untuk j=0 sampai j sebanyak “kodeTsRg”, lakukan langkah berikut. a. Cek apakah kodetimeslot dan koderuang sudah digunakan, Ya, hapus dari “kodeTsRg”. 6. Untuk i=0 sampai i sebanyak kodeTsRg, lakukan langkah berikut: a. Cek jika hari sama dari parameter cari. Ya, Hapus kodetimeslot dan koderuang dari “kodeTsRg”: 7. Kembalikan kodeTSRg. 8. Selesai. 3. Simpan Fungbiaya jadwal_sekarang tanpa duplikat jadwal.Algoritma 3.8. 1. Mulai. 2. Buat metod dengan nama getRandomKelasMatakuliahSolusiBaruOptimal dengan parameter string cari, tipe pengembalian static Jadwal. 3. Buat variable Objek baru menyimpan data solusi didalam List Jadwal java. ListJadwal solusi = new ArrayList; 4. Untuk i=0 sampai i sebanyak “jadwal_baru”, lakukan langkah berikut: - Jika berbeda hari dengan yang dicari. Ya, Simpan data solusi tersebut kedalam “Jadwal”. 5. Untuk i=0 sampai i sebanyak “permintaan”, lakukan langkah berikut: 1. Untuk j=0 sampai j sebanyak “Jadwal”, lakukan langkah berikut: - Jika ada KelasMatakuliah yang terdapat di “Jadwal” sudah ada di permintaan. Ya, hapus dari “Jadwal”. 6. Random untuk mendapatkan kodeKelasMatakuliah yang baru dari Jadwal. Random random = new Random; int next_num = random.nextIntSolusi.size; sett atribut jadwal sesuai indek random “next_num”. Jadwal solusi=new Jadwal . 7. Kembalikan solusi.

3.2.4. Perhitungan Fungsi biaya Jumlah Pelanggaran dari Hard Constraints

dan Soft Constraints. Sebuah jadwal dikatakan belum optimal jika masih terdapat pelanggaran. Pelanggaran didapati dari bobot constraints yang ditetapkan Hard Constraints maupun Soft Constraints. Setiap terjadi pelanggaran 1. Mulai.

2. Buat metod dengan nama BantuSimpanFungBiaya_currentState, tipe