BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis Masalah Utama
Banyak masalah kompleks seperti masalah penjadualan mata kuliah yang dapat menggunakan metode graph coloring. Pendeskripsian dengan metode graph coloring
dapat dideskripsikan sebagai berikut: misalnya diberikan graph dengan himpunan vertex V dan himpunan edge E, dikatakan ada pasangan vertex R dan vertex S R, S
jika ada edge antara vertex R dan vertex S. Dua vertex dalam graph dikatakan bertetanggaan jika edge berada diantara mereka.
Dalam graph ada tiga komponen utama, yaitu vertex, edge, dan warna. Dalam pemetaan jadwal mata kuliah ke dalam graph, mata kuliah dapat direpresentasikan
oleh vertex, mata kuliah yang konflik atau memiliki jadwal yang sama direpresentasikan oleh edge yang terhubung antara dua vertex, dan warna
merepresentasikan waktu atau jadwal mata mata kuliah.
Masalah dalam penjadualan mata kuliah adalah bagaimana menempatkan suatu mata kuliah pada suatu ruangan dan waktu sehingga tidak terjadi konflik.
Konflik pada penjadualan mata kuliah adalah konflik waktu perkuliahan antarmata kuliah karena berbagai macam kondisi, antara lain dua mata kuliah memakai ruang
perkuliahan yang sama pada waktu yang sama atau dua mata kuliah wajib yang harus diikuti dijadwalkan pada waktu yang sama atau dua mata kuliah yang dijadwalkan
pada waktu yang sama memiliki dosen yang sama.
Masalah pada graph coloring pada penjadualan mata kuliah adalah membagi mata kuliah yang direpresentasikan sebagai vertex ke dalam suatu jadwal sehingga
Universitas Sumatera Utara
tidak ada vertex yang bertetanggaan vertex bertetanggaan ditandai dengan adanya edge antara dua vertex dijadwalkan pada waktu yang sama. Warna yang berbeda
diberikan kepada vertex yang bertetanggaan tersebut untuk menandakan bahwa vertex yang bertetanggaan itu tidak dapat dijadwalkan pada waktu yang sama, sedangkan
vertex yang memiliki warna yang sama dapat dijadwalkan pada waktu yang sama.
3.2 Spesifikasi Umum Prototype Sistem
Membangun sebuah prototype sistem pembuatan penjadualan mata kuliah dimana untuk mencari mata kuliah yang konflik digunakan algoritma greedy sederhana dan
graph coloring heuristic.
Secara garis besar prototype sistem penjadualan mata kuliah dapat dituliskan sebagai berikut:
1. Data awal berupa data mata kuliah biologi, fisika, kimia, dan matematika
yang terdiri dari kode mata kuliah, sks, fakultas. 2.
Urutkan data mata kuliah secara menaik berdasarkan sks dan kode mata kuliah.
3. Kelompokkan mata kuliah berdasarkan sks ke dalam grup.
4. Masukkan mata kuliah ke hari dan waktu yang telah ditentukan sesuia
dengan urutan grup dan didapatkan penjadualan mata kuliah sementara. 5.
Pengecekan mata kuliah konflik. 6.
Penempatan mata kuliah konflik ke dalam ruangan yang kosong. 7.
Mata kuliah bebas konflik penjadwlan mata kuliah bebas konflik.
Universitas Sumatera Utara
Diagram proses pembuatan prototype sistem penjadualan mata kuliah dapat digambarkan ke dalam Gambar 3.1.
Gambar 3.1 Diagram Proses Pembuatan Penjadualan Mata Kuliah Secara Umum
3.2.1 Batasan Prototype Sistem
Pada penjadualan mata kuliah ada dua kategori batasan atau kondisi dalam penjadualan, yaitu:
Universitas Sumatera Utara
a. Batasan Pokok Hard Constraints
Batasan pokok dalam penjadualan adalah batasanaturankondisi yang harus dipenuhi agar menghasilkan jadwal yang layak atau dapat dilaksanakan. Tiap
universitas, termasuk fakultas didalamnya memiliki batasan pokok yang berbeda-beda, sesuai dengan kondisi mata kuliah yang akan dijadwalkan agar
mendapatkan jadwal perkuliahan yang optimal.
Batasan dalam penjadualan empat departemenprogram studi biologi, fisika, kimia, dan matematika, antara lain sebagai berikut:
Dua atau lebih mata kuliah yang diajarkan oleh dosen yang sama tidak
dapat dijadwalkan pada waktu yang sama Tidak ada pengajar yang mempunyai jadwal mengajar yang sama antara satu mata kuliah dengan
mata kuliah lainnya.
Tidak ada dua mata kuliah atau lebih yang menempati ruangan yang sama pada waktu yang sama.
Apabila ada mata kuliah yang memiliki empat kode mata kuliah yang
berawal yang sama, contohnya BIO301 dengan BIO302 tidak dapat dijadwalkan pada waktu yang sama di ruangan yang sama maupun ruangan
yang berbeda.
Tidak terdapat perkuliahan pada hari Jumat jam 12:00 s.d. jam 14:00.
Semua mata kuliah pilihan pada departemenprogram studi Kimia dan Matematika diikutsertakan, begitu juga dengan mata kuliah
kosentrasipenjurusan pada departemenprogram studi Matematika dan Fisika, sedangkan mata kuliah kosentrasipenjurusan pada
departemenprogram studi Biologi diabaikan.
Mengabaikan mata kuliah prasyarat untuk pengambilan atau penempatan mata kuliah pilihan dan kosentrasipenjurusan.
Kesediaan waktu mengajar dosen diabaikan, sehingga dosen harus
memenuhi atau mengikuti jadwal yang telah ditentukan, kecuali dosen yang mempunyai jabatan khusus.
Perkuliahan berlangsung dari hari Senin s.d. hari Jumat. Sedangkan pada
hari Sabtu adalah waktu perkuliahan mata kuliah pengganti.
Universitas Sumatera Utara
Penjadualan praktikum dan laboratorium menyesuaikan dengan mata
kuliah.
Periode waktu mata kuliah satu sks adalah 50 menit.
b. Batasan Tambahan Soft Constraints
Batasan tambahan dalam penjadualan umumnya disebut juga soft constraint adalah batasanaturankondisi tambahan yang tidak terlalu diperlukan untuk
menghasilkan jadwal yang layak, tetapi jika dipenuhi dapat menghasilkan jadwal yang lebih efisien untuk seluruh anggota perkuliahan. Kondisi
tambahan ini dapat dipenuhi, jika memungkinkan, dan berperan sebagai tambahan pada kondisi pokok.
Batasan tambahan dalam penjadualan empat departemenprogam studi biologi, fisika, kimia, dan matematika, antara lain sebagai berikut:
1. Waktu perkuliahan dikelompokkan menjadi tiga slot waktu, yaitu pagi jam
08:00 s.d. jam 09:40, siang jam 09:40 s.d. jam 13:00, dan sore jam 13:00 s.d. jam 15:30.
2. Mata kuliah yang memiliki kredit dua sks dapat dijadwalkan pada hari
senin atau rabu atau jumat. 3.
Mata kuliah yang memiliki kredit tiga sks dapat dijadwalkan pada hari senin atau selasa atau rabu atau kamis atau jumat.
4. Mata kuliah yang memiliki kredit empat sks dapat dijadwalkan pada hari
selasa dan kamis, dimana empat sks itu dibagi menjadi dua sks. Dua sks pada hari selasa dan dua sks lagi pada hari kamis.
5. Pertemuan dua kali dalam seminggu dapat dijadwalkan pada hari selasa
dan kamis.
3.2.2 Database
Prototype sistem penjadualan mata kuliah yang dibangun tidak menggunakan aplikasi database seperti SQL, tetapi menggunakan format file XML sebagai pengganti
database karena file XML mudah untuk diakses dan dimanipulasi.
Universitas Sumatera Utara
Pada prototype ini digunakan satu buah file XML, yaitu dataMK.xml yang terdiri dari data mata kuliah yang berisi kode mata kuliah, nama mata kuliah, sks mata
kuliah, dan fakultas dari mata kuliah, dan empat buah file XML pengkhususan, yaitu: 1.
agama.xml yang terdiri dari semua kode mata kuliah agama. 2.
pilihan.xml yang terdiri dari semua kode mata kuliah pilihan pada departemenprogram studi matematika dan kimia.
3. konsentrasi.xml yang terdiri dari semua kode mata kuliah konsentrasi
penjurusan pada departemenprogram studi matematika, fisika, dan kimia.
4. jumat.xml yang terdiri dari semua kode mata kuliah agama selain agama
Islam.
Berikut format penulisan pada file dataMK.xml:
1 ?
xml version
= 1.0
encoding =
utf-8 ?
2 dataMK
3 matakuliah
4 kodemk
BIO304 kodemk
5 nmmk
Evolusi nmmk
6 sks
2 sks
7 fakultas
BIO fakultas
8 matakuliah
9 dataMK
Berikut penjelasan dari format penulisan file dataMK.xml: a.
Baris 1 menjelaskan pada file ini XML mengacu pada versi 1.0 dan menggunakan standar encoding karakter set ISO-8859-1 Latin-1West
European. b.
Baris 2 merupakan tag pembuka dari element root. Disini menjelaskan bahwa file ini merupakan file yang berhubungan dengan data mata kuliah.
c. Baris 3 merupakan tag pembuka dari element child. Baris ini menjelaskan
bahwa data mata kuliah memiliki elemen mata kuliah. d.
Baris 4 sampai baris 7 menjelaskan bahwa elemen mata kuliah memiliki sub elemen sebagai berikut:
1. Kode mata kuliah dengan nilai BIO304.
2. Nama mata kuliah dengan nilai Agama Islam.
3. Sks mata kuliah dengan nilai 2.
4. Fakultas mata kuliah dengan nilai BIO.
Universitas Sumatera Utara
e. Baris 8 menjelaskan tag penutup dari element child.
f. Baris 9 menjelaskan tag penutup dari element root.
3.2.3 Perancangan Penjadualan Mata Kuliah
Dalam penjadualan mata kuliah ada beberapa hal yang harus diperhatian, antara lain kode mata kuliah, sks mata kuliah, semester dari pada mata kuliah, fakultas, dosen
pengajar, kertersedian waktu mengajara dosen, jumlah ruangan perkuliahan, hari dan waktu pertemuan. Sedangkan pada penjadualan mata kuliah dalam Tugas Akhir ini,
penulis lebih memperhatikan kepada kode mata kuliah, sks mata kuliah, semester dari pada mata kuliah, fakultas, hari dan waktu pertemuan. Banyaknya ruangan tergantung
pada pada banyaknya mata kuliah, sedangkan dosen pengajar dan kertersedian waktu mengajar dosen diabaikan.
3.2.3.1 Pengurutan Mata Kuliah
Data mata kuliah pada file XML diurutkan berdasarkan sks dan kode mata kuliah secara menaik increasing. Algoritma yang digunakan dalam pengurutan ini adalah
algoritma quick sort.
Algoritma quick sort adalah suatu metode pengurutan yang membandingkan suatu elemen pivot dengan elemen lain dan menyusunnya sedemikian rupa sehingga
elemen yang lain lebih kecil daripada pivot terletak disebelah kiri pivot sedangkan elemen yang lebih besar dari pivot diletakkan disebelah kanan pivot Kristanto, 2003.
hal: 262.
Dalam algoritma quick sort, pemilihan pivot adalah hal yang menentukan apakah algoritma quick sort tersebut akan memberikan performa terbaik atau terburuk.
Ada tiga cara untuk memilih pivot, yaitu: 1.
Pivot = elemen pertama, elemen terakhir, atau elemen tengah tabel. Cara ini hanya bagus jika elemen tabel tersusun secara acak, tetapi tidak bagus
Universitas Sumatera Utara
jika elemen tabel semula sudah terurut. Misalnya, jika elemen tabel semula menurun, maka semua elemen tabel akan terkumpul di subtabel kanan.
2. Pivot dipilih secara acak dari salah satu elemen tabel. Cara ini baik, tetapi
mahal, sebab memerlukan biaya cost untuk pembangkitan prosedur acak. Lagi pula, tidak mengurangi kompleksitas waktu algoritma.
3. Pivot = elemen median tabel. Cara ini paling bagus, karena hasil partisi
menghasilkan dua bagian tabel yang berukuran seimbang masing-masing ≈ n2 elemen. Cara ini memberikan kompleksitas waktu yang minimum.
Masalahnya, mencari median dari elemen tabel yang belum terurut adalah persoalan tersendiri.
Pada skripsi ini, pivot yang dipakai adalah pivot sama dengan elemen median tabel. Selain itu pada pengurutan mata kuliah, dilakukan dua kali pengurutan.
Pengurutan pertama dilakukan pada sks mata kuliah, lalu sks di grupkan berdasarkan besar sksnya. Pengurutan kedua dilakukan pada grup sks berdasarkan kode mata
kuliah. Pada pengurutan mata kuliah, ada dua objek yang diidentifikasikan, yaitu pivot yang merupakan objek elemen dan Array merupakan objek dataMK data mata
kuliah, yaitu sks dan kodemk.
Langkah dalam pengurutan mata kuliah berdasarkan sks mata kuliah dengan menggunakan algoritma quick sort adalah sebagai berikut:
1. Cari pivot untuk membagi array menjadi dua bagian elemen median.
2. Simpan nilai awal dalam variabel i dan nilai akhir dalam variable j.
3. Bandingkan nilai i dengan nilai j.
4. Jika nilai i lebih kecil daripada nilai j, maka bandingkan array
dataMK.sksMK pada indeks ke-i dengan nilai pivot.sksMK. Jika nilai array dataMK.sksMK lebih kecil daripada nilai pivot.sksMK, maka nilai i
ditambah 1. Ulangi proses ini sampai nilai array dataMK.sksMK pada indeks ke-i lebih besar daripada nilai pivot.sksMK.
5. Bandingkan array dataMK.sksMK pada indeks ke-j dengan nilai
pivot.sksMK.
Universitas Sumatera Utara
6. Jika nilai array dataMK.sksMK lebih besar daripada nilai pivot.sksMK,
maka nilai j dikurangi 1. Ulangi proses ini sampai nilai array dataMK.sksMK pada indeks ke-j lebih kecil daripada nilai pivot.sksMK.
7. Jika nilai i lebih kecil sama dengan nilai j maka tukar nilai array indeks ke-
i dengan nilai array indeks ke-j, lalu nilai i ditambah 1 dan nilai j dikurangi 1.
8. Ulangi langkah 3.
9. Jika nilai i lebih besar daripada nilai j, maka hentikan proses perulangan.
10. Jika nilai awal lebih kecil daripada nilai j, panggil kembali fungsi secara
rekursi dengan nilai indeks awal tetap dan nilai indeks akhir adalah nilai j. 11.
Jika nilai awal lebih besar atau sama dengan nilai j, maka lanjut ke langkah 13.
12. Jika nilai i lebih kecil daripada nilai akhir, maka panggil kembali fungsi
secara rekursif dengan nilai indeks awal adalah nilai i dan indek nilai akhir tetap.
Universitas Sumatera Utara
Flowchart algoritma quicksort pada mata kuliah berdasarkan sks dapat digambarkan ke dalam Gambar 3.2.
Gambar 3.2 Flowchart Quick Sort pada Mata Kuliah Berdasarkan Sks
3.2.3.2 Pengelompokkan Mata Kuliah
Pengelompokkan mata kuliah ke dalam suatu grup berdasarkan pertemuan mata kuliah tiap minggu numdays, hari pertemuan kuliah tiap minggu days, dan waktu
pertemuan kuliah tiap minggu TimeOfDays, dimana:
Universitas Sumatera Utara
a. NUMDAYS menunjukkan pertemuan mata kuliah tiap minggu yang dikodekan dengan 1 dan 2, dimana 1 adalah pertemuan tiap minggu satu kali dan 2 adalah
pertemuan tiap minggu dua kali. b. DAYS menunjukkan pertemuan mata kuliah tiap minggu, dimana:
1. Pertemuan mata kuliah yang memiliki 2 sks dilaksanakan pada hari senin,
rabu, atau jumat; 2.
Pertemuan mata kuliah yang memiliki 3 sks dilaksanakan pada hari senin, selasa, rabu, kamis, atau jumat; dan
3. Pertemuan mata kuliah yang memiliki 4 sks dilaksanakan pada hari selasa
dan kamis.
c. TIMEOFDAYS menunjukkan waktu pertemuan mata kuliah tiap minggu