4. fungsiBiaya_jadwal_Awal, fungsiBiaya_jadwal_skrg, fungsiBiaya_jadwal baru, fungsiBiaya_terbaik, untuk menyimpan dan menghitung pelanggaran
jadwal. 5. Permintaan, yaitu untuk menyimpan jadwal permintaan.
Berikut ini adalah Algoritma Metod menetapkan jadwal awal secara random tanpa duplikat kelas matakuliah,
“TimeSlot” terhadap “Ruang” untuk mendapatkan “Kelas Matakuliah”.
1. Algoritma Menetapkan Jadwal Awal Algoritma 3.1
1. Mulai. 2. Buat metod dengan nama MenetapkanJadwalAwal, type pengembalian
static void. 3. Buat variable Objek baru untuk menyimpan
kodetimeslot” dan “kodeRuang” didalam list Object java.
ListObject bantuSimpantimeslotRuang= new ArrayListObject; 4. Buat variable Objek baru untuk menyimpan Permintaan dalam list.
List
Jadwal
jadwal_permintaan= KontrolPermintaan.getKoneksi.getAllPermintaan;
5. Buat variable Objek baru untuk menyimpan timeslot didalam list. List
TimeSlot timeslot= KontrolTimeSlot.getKoneksi.getAllTimeSlot;
6. Buat variable Objek baru untuk menyimpan ruang didalam list. List
Ruang ruang = KontrolRuang.getKoneksi.getAllRuangTeori; 7. Buat matrik 2 dimensi untuk menyimpan timeslot dan ruang sementara.
String[][] matrikJadwal = new String[timeslot.size][ruang.size]; 8. Untuk
i=0 sampai i sebanyak “timeslot”, lakukan, 1.
Untuk j=0 sampai j sebanyak “ruang” , lakukan - Set matrikJadwal[i][j]= kodetimeslot, koderuang, kodewaktu
dan kodehari.
-
Simpan matrikJadwal[i][j] kedalam “bantuSimpantimeslotRuang”.
Keterangan : 9. Cek, jika jadwal permintaan tidak kosong maka, lakukan langkah
berikut: -
Untuk i=0 sampai i sebanyak jadwal_permintaan, lakukan -
Buat variable Objek baru untuk menyimpan atribut solusi.
Jadwal
solusi=new
Jadwal
; -
Set semua atribut solusi dan simpan kedalam Larik jadwalAwal, solusiBaru, dan permintaann.
1. Untuk j=0 sampai j sebanyak “bantuSimpantimeslotRuang”,
lakukan -
Cek apakah kodetimeslot dan koderuang pada “jadwal_permintaan” = kodetimeslot dan koderuang pada
“bantuSimpantimeslotRuang”. -
Jika ya, maka dihapus dari “bantuSimpantimeslotRuang”. 10. Random kelasmatakuliah.
ListObject BantukodeKM = RandomKelasMatakuliah; 11. Cek, apakah jumlah BantukodeKM = bantuSimpantimeslotRuang.
1. Ya, Untuk i=0 sampai i sebanyak “BantukodeKM”, lakukan
- Ambil kodeKelasMatakuliah dari “bantukm” ke i
- Ambil kodeTimeslot dan koderuang dari “bantutimeslot” ke i.
- Simpan dalam Larik jadwalAwal dan jadwalBaru.
12. Selesai.
7.
Jadwal
solusi=new
Jadwal
, solusi digunakan untuk mengeset semua atribut
Jadwal
untuk disimpan kedalam jadwalAwal,jadwalBaru, dan permintaan. 8. BantukodeKM, fungsinya untuk menyimpan satu data kelas matakuliah
matakuliah hasil random. 9. ListJadwaljadwal_permintaan=KontrolPermintaan.getKoneksi.getAllPer
mintaan, fungsinya mengambil semua jadwal permintaan ke database menggunakan perintah sql kemudian dimasukan kedalam list.
10. ListTimeSlottimeslot=KontrolTimeSlot.getKoneksi.getAllTimeSlot, fungsinya mengambil semua timeslot ke database menggunakan perintah sql
kemudian dimasukan kedalam list. 11. ListRuangruang=KontrolRuang.getKoneksi.getAllRuangTeori,
fungsinya mengambil semua ruang ke database menggunakan perintah sql kemudian dimasukan kedalam list.
Sebelum membuat random jadwal awal, terlebih dahulu membuat metod random kelas matakuliah tanpa duplikat serta pengecekan dengan jadwal permintaan.
2. Metod RandomKelasMataKuliah tanpa terjadi duplikat Algoritma 3.2.