Analisis Masalah Utama Spesifikasi Umum Prototype Sistem

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