Penjadualan Mata Kuliah Dengan Metode Graph Coloring Heuristic

(1)

PENJADUALAN MATA KULIAH DENGAN METODE

GRAPH COLORING HEURISTIC

SKRIPSI

SANTI PRAYUDANI

041401011

DEPARTEMEN S-1 ILMU KOMPUTER

PROGRAM STUDI ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

M E D A N

2 0 1 0


(2)

PENJADUALAN MATA KULIAH DENGAN METODE GRAPH COLORING HEURISTIC

   

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

SANTI PRAYUDANI 041401011

\

DEPARTEMEN ILMU KOMPUTER PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2010


(3)

PERSETUJUAN

Judul : PENJADUALAN MATA KULIAH DENGAN

METODE GRAPH COLORING HEURISTIC Kategori : SKRIPSI

Nama : SANTI PRAYUDANI

Nomor Induk Mahasiswa : 041401011

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, 25 Maret 2010 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Ir. Arman Sani, MT Syahril Efendi, S.Si, MIT

NIP. 131 945 349 NIP. 196711101996021001

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Prof. Dr. Muhammad Zarlis NIP. 195707011986011003


(4)

PERNYATAAN

PENJADUALAN MATA KULIAH DENGAN METODE GRAPH COLORING HEURISTIC

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 25 Maret 2010

Santi Prayudani 041401011


(5)

PENGHARGAAN

Alhamdulillah, segala puji dan syukur penulis panjatkan kepada Allah SWT, dengan limpahan rahmat dan karunia-Nya kertas kajian ini berhasil diselesaikan juga.

Ucapan terima kasih penulis sampaikan kepada Bapak Syahril Efendi, S.Si, MIT dan Ir. Arman Sani, MT selaku pembimbing pada penyelesaian skripsi ini yang telah memberikan panduan kepada penulis untuk menyelesaikan kajian ini. Ucapan terima kasih juga ditujukan kepada Bapak Prof. Dr. Muhammad Zarlis selaku Ketua Program Studi Ilmu Komputer sekaligus pembanding dan Bapak Umar Saleh S ST, yang telah memberikan petunjuk, saran, dan kritik dalam penyelesaian skripsi ini. Ucapan terima kasih juga ditujukan kepada Bapak Syahriol Sitorus, S.Si, MIT selaku Sekretaris Program Studi Ilmu Komputer, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen pada Program Studi Ilmu Komputer FMIPA USU serta pegawai di FMIPA USU, khususnya pegawai di Ilmu Komputer FMIPA USU. Ucapan terima kasih juga ditujukan kepada Bapak Husni Fahmi dan Bapak Ary Syahriar yang telah banyak membantu dan membimbing penulis dalam penyelesaian skripsi ini.

Akhirnya, tidak terlupakan ucapan terima kasih sedalam-dalamnya kepada Ayahanda Drs. Amri Mahmoed dan Ibunda Suryati .A, selaku orangtua yang selalu sabar dalam mendidik serta memotivasi penulis. Adek tercinta, Fauzan yang selalu menyemangati penulis, serta segenap keluarga yang senantiasa memberikan dukungan. Semoga Allah SWT akan membalasnya. Selanjutnya untuk teman-teman terbaik, Baby, Hermi, Gita, Ririn, Popi atas perhatian dan motivasinya, Adi yang selalu mengingatkan penulis, Risi yang telah banyak membantu, dan Farida, teman senasib seperjuangan disaat akhir, serta rekan-rekan kuliah angkatan 2004 yang telah banyak memberikan bantuan kepada penulis.

Akhir kata penulis mengharapkan kiranya skripsi ini dapat bermanfaat dan membantu semua pihak yang memerlukannya, terutama rekan mahasiswa Ilmu Komputer.


(6)

ABSTRAK

Membangun jadwal mata kuliah bebas konflik sering menjadi suatu masalah yang dihadapi oleh tiap universitas pada awal semester karena banyaknya komponen yang saling berkaitan dan adanya batasan-batasan yang harus dipenuhi. Masalah-masalah penjadualan ini dapat diselesaikan dengan menggunakan algoritma greedy dan metode

graph coloring heuristic. Dengan alogritma greedy dan metode graph coloring heuristic diharapkan dapat memenuhi batasan pokok dan batasan tambahan dalam penjadualan sehingga menghasilkan penjadualan mata kuliah bebas konflik.


(7)

COURSE TIMETABLING WITH GRAPH COLORING HEURISTIC METHOD

ABSTRACK

Constructing a conflict-free courses timetabling are often become a problem faced by university at the beginning of semester, because of many related components and the constraints must be fullfill. Timetabling problems can be solved using greedy algorithm and graph coloring heuristic method. With greedy algorithm and graph coloring method is expected to fullfill hard constraint and soft constraint in timetabling so conflict-free courses timetabling may be produced.


(8)

DAFTAR ISI Halaman Persetujuan ii Pernyataan iii Penghargaan iv Abstrak v Abstract vi

Daftar Isi vii

Daftar Tabel ix

Daftar Gambar x

Bab 1 Pendahuluan

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Ruang Lingkup 2

1.4 Tujuan Penelitian 4

1.5 Manfaat Penelitian 4

1.6 Metode Penelitian 4

1.7 Sistematika Penulisan 5

Bab 2 Landasan Teori

2.1 Penjadualan 7

2.1.1 Penjadualan Perkuliahan 8

2.1.2 Batasan-Batasan (Constraints) pada Penjadualan Mata Kuliah 9

2.2 Graph 11

2.2.1 Sejarah Teori Graph 12

2.2.2 Definisi Graph 13

2.2.3 Teori Pewarnaan Graph(Graph Coloring) 15

2.2.3.2 Masalah Pada Pewarnaan Graph 16

2.2.3.2 Metode Graph Coloring pada Masalah

Penjadualan Perkuliahan 17

2.3Algoritma Greedy

2.4Heuristic 20

2.5Graph Coloring Heuristic 20

2.5 Microsof Visual C#.NET 21

2.6 XML (eXtensible Markup Language) 21

Bab 3 Analisis Sistem

3.1 Analisis Masalah Utama 24

3.2 Spesifikasi Umum Sistem Prototype 25

3.2.1 Batasan Sistem Prototype 26

3.2.2 Database 28

3.2.3 Perancangan Penjadualan Mata Kuliah 30


(9)

3.2.3.2 Pengelompokkan Mata Kuliah 34 3.3.3.3 Membuat Mata Kuliah Konflik 36 3.3.3.4 Menyusun Mata Kuliah Bebas Konflik 39

3.3 Perancangan Antarmuka (Interface) 41

3.3.1 Antarmuka Data Awal 41

3.3.2 Antarmuka Tab Langkah Satu 43

3.3.3 Antarmuka Tab Langkah Dua 44

3.3.4 Antarmuka Tab Langkah Tiga 44

3.3.5 Antarmuka Tab Langkah Empat 45

3.3.6 Antarmuka Tab Langkah Lima 46

3.3.7 Antarmuka Mata Kuliah Bebas Konflik 47 Bab 4 Implementasi dan Pengujian

4.1 Implementasi 48

4.1.1 Lingkungan Implementasi 48

4.2 Pengujian 49

4.2.1 Data Awal 48

4.4.2 Langkah Satu 51

4.4.3 Langkah Dua 51

4.4.4 Langkah Tiga 52

4.4.5 Langkah Empat 53

4.4.6 Langkah Lima 54

4.4.7 Mata Kuliah Bebas Konflik 55

Bab 5 Kesimpulan dan Saran

5.1 Kesimpulan 57

5.2 Saran 58

Daftar Pustaka


(10)

DAFTAR TABEL

Halaman

Tabel 2.1 Penjadualan Mata Kuliah 17


(11)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Jembatan Konigsberg 12

Gambar 2.2 Model Graph Jembatan Konigsberg 13 Gambar 2.3 Graph yang Memiliki χ(G) = 4 15 Gambar 2.4 Graph Sederhana Jadwal Mata Kuliah Graph Bebas Konflik 18 Gambar 3.1 Flowchart Pembuatan Penjadualan Mata Kuliah Secara Umum 26 Gambar 3.2 FlowchartQuick Sort pada Mata Kuliah 33

Gambar 3.3 Flowchart Pengelompokkan Grup 35

Gambar 3.4 Flowchart Pembuatan dan Pengecekan Vertex (Mata Kuliah)

Konflik serta Pewarnaan Vertex (Mata Kuliah) Konflik 38 Gambar 3.5 Flowchart Penyusunan Mata Kuliah Bebas Konflik 40

Gambar 3.6 Antarmuka Tab Data Awal 41

Gambar 3.7 Antarmuka Tab Data Awal setelah data mata kuliah dipilih 42 Gambar 3.8 Antarmuka form tambah dan ubah data 43

Gambar 3.9 Antarmuka Tab Langkah Satu 43

Gambar 3.10 Antarmuka Tab Langkah Dua 44

Gambar 3.11 Antarmuka Tab Langkah Tiga 45

Gambar 3.12 Antarmuka Tab Langkah Empat 46

Gambar 3.13 Antarmuka Tab Langkah Lima 47

Gambar 3.14 Antarmuka Jadwal Mata Kuliah Bebas Konflik 47 Gambar 4.1 Daftar Mata Kuliah pada Tab Data Awal 49 Gambar 4.2 Memilih Data Mata Kuliah yang akan dijadwalkan 50

Gambar 4.3 Data Mata Kuliah file dataMK 50

Gambar 4.2 Daftar Mata Kuliah pada Langkah Satu 51 Gambar 4.3 Daftar Mata Kuliah pada Langkah Dua 52 Gambar 4.4 Daftar Mata Kuliah dan Jadwal Sementara pada Langkah Tiga 53 Gambar 4.5 Daftar Mata Kuliah Konflik dan Jadwal Sementara pada Langkah

Empat 54 Gambar 4.6 Daftar Mata Kuliah Konflik dan Jadwal Sementara pada

Langkah Lima 55


(12)

ABSTRAK

Membangun jadwal mata kuliah bebas konflik sering menjadi suatu masalah yang dihadapi oleh tiap universitas pada awal semester karena banyaknya komponen yang saling berkaitan dan adanya batasan-batasan yang harus dipenuhi. Masalah-masalah penjadualan ini dapat diselesaikan dengan menggunakan algoritma greedy dan metode

graph coloring heuristic. Dengan alogritma greedy dan metode graph coloring heuristic diharapkan dapat memenuhi batasan pokok dan batasan tambahan dalam penjadualan sehingga menghasilkan penjadualan mata kuliah bebas konflik.


(13)

COURSE TIMETABLING WITH GRAPH COLORING HEURISTIC METHOD

ABSTRACK

Constructing a conflict-free courses timetabling are often become a problem faced by university at the beginning of semester, because of many related components and the constraints must be fullfill. Timetabling problems can be solved using greedy algorithm and graph coloring heuristic method. With greedy algorithm and graph coloring method is expected to fullfill hard constraint and soft constraint in timetabling so conflict-free courses timetabling may be produced.


(14)

BAB 1

PENDAHULUAN

1.1Latar Belakang

Masalah penjadualan terlihat seperti masalah biasa yang dapat diselesaikan dengan metoda pemikiran biasa, akan tetapi jika sudah dalam jumlah data yang banyak akan memerlukan banyak waktu untuk menyelesaikannya, contohnya penjadualan mata kuliah. Jumlah data dalam penjadualan mata kuliah sangat banyak dan saling berkaitan antara satu data dengan data lainnya dan adanya berbagai batasan sehingga sulit untuk melakukan proses penjadualan secara cepat. Permasalahan semakin bertambah dengan ketersediaan ruang kelas yang terbatas disertai banyaknya mata kuliah yang harus ditempatkan, terlebih lagi jika hasil penjadualan harus memenuhi kesediaan waktu mengajar dosen, distribusi jadwal yang merata di ruangan kelas dan pemakaian ruangan yang seimbang dalam satu hari. Dengan permasalahan sebanyak itu tidak dapat diselesaikan dengan hanya coretan di atas kertas untuk memperoleh jadwal yang optimal. Dengan penggunaan komputer saat ini, dapat digunakan untuk membuat suatu komputasi masalah penjadualan perkuliahan dengan menggunakan metode graph coloring.

Teori graph coloring merupakan salah satu objek yang menarik dan terkenal dalam bidang teori graph. Teori graph merupakan topik yang banyak mendapat perhatian saat ini, karena model-model yang ada pada teori graph berguna untuk aplikasi yang luas. Walaupun teori graph berasal dari bidang ilmu Matematika, namun pada penerapannya teori graph dapat dihubungkan dengan berbagai bidang ilmu dan juga kehidupan sehari-hari. Contohnya masalah dalam jaringan komunikasi, penjadualan, optimisasi, transportasi, ilmu komputer, riset operasi, ilmu kimia, Sosiologi, Kartographi dan lain sebagainya.


(15)

Dalam pengimplementasian metode graph coloring pada suatu aplikasi penjadualan juga dibutuhkan suatu metode yang dapat digunakan dalam permasalahan

coloring. Dengan pemanfaatan metode yang bagus maka akan didapatkan hasil komputasi yang lebih baik. Oleh karena itu, penulis menggunakan algoritma greedy

dan metode graph coloring heuristic untuk menyelesaikan masalah penjadualan perkuliahan.

1.2Rumusan Masalah

Untuk menentukan solusi yang tepat dalam suatu permasalahan, maka terlebih dahulu permasalahan tersebut dianalisis dan disusun ke dalam bentuk formulasi yang sistematis. Adapun perumusan masalah yang akan dibahas pada skripsi ini adalah:

1. Bagaimana menangani pembuatan jadwal mata kuliah berdasarkan data kelas yang ditawarkan pada semester ganjil Departemen/Program Studi Biologi, Fisika, Kimia, dan Matematika Fakultas MIPA (Matematika dan Ilmu Pengetahuan Alam) USU (Universitas Sumatera Utara).

2. Bagaimana mengatur jadwal mata kuliah agar sesuai dengan ruangan kelas yang tersedia dan tidak terjadi bentrokan waktu perkuliahan.

3. Bagaimana mengatur jadwal mata kuliah agar memenuhi berbagai batasan dan aturan yang dicantumkan dalam batasan masalah.

1.3Ruang Lingkup

Untuk memfokuskan pada tujuan penelitian maka penulis membatasi ruang lingkup skripsi ini. Adapun yang menjadi ruang lingkup adalah sebagai berikut:

a. Metode graph coloring yang dipakai dalam skripsi ini adalah coloring vertex.

b. Ada 3 komponen utama dalam graph yang digunakan sebagai representasi masalah perkuliahan dalam graph, yaitu:


(16)

2. Edge menunjukkan pasangan mata kuliah yang mempunyai jadwal yang sama, karena itu harus berada di ruangan kelas yang berbeda. 3. Warna untuk membedakan mata kuliah konflik dengan mata kuliah

tidak konflik.

c. Data mata kuliah yang dijadikan contoh masalah dalam skripsi ini adalah mata kuliah empat departemen/program studi FMIPA USU Strata 1, yaitu Biologi, Fisika, Kimia, dan Matematika pada semester ganjil Tahun Ajaran 2008/2009.

d. Semua mata kuliah pilihan pada departemen/program studi Kimia dan Matematika diikutsertakan, begitu juga dengan mata kuliah kosentrasi/penjurusan pada departemen/program studi Matematika dan Fisika. Sedangkan konsentrasi/penjurusan pada departemen/program studi Biologi diabaikan.

e. Penjadualan mata kuliah memiliki batasan pokok (hard constraints) dan batasan tambahan (soft constraints).

f. Prototype sistem penjadualan perkuliahan yang dibangun tidak memiliki sistem login.

g. Prototype sistem penjadualan perkuliahan yang dibangun hanya menjadwalkan mata kuliah, tidak menjadwalkan ujian dan pemakaian laboratorium.

h. Prototype sistem penjadualan yang dibangun memiliki waktu perkuliahan dari hari Senin s.d. hari Jumat.

i. Prototype sistem penjadualan mata kuliah yang dibangun tidak mendukung adanya pergantian jadwal yang sudah ditentukan dan tidak mendukung adanya pengambilan mata kuliah dua semester di atas maupun dua semester di bawahnya.

1.4Tujuan Penelitian

Adapun tujuan penelitian ini adalah untuk membuat suatu prototype sistem penjadualan mata kuliah dengan menggunakan algoritma greedy dan metode graph coloring heuristic untuk mengoptimalkan penggunaan ruangan kelas yang tersedia


(17)

sesuai dengan mata kuliah yang ada dengan memperhatikan aturan dan batasan yang ditetapkan.

1.5Manfaat Penelitian

Manfaat dari skripsi ini adalah diharapkan dapat memberikan suatu penyelesaian masalah dan mencari hasil penjadualan perkuliahan yang paling optimal sesuai dengan batasan-batasan penjadualan yang telah ditetapkan.

1.6Metode Penelitian

Penelitian yang akan dilakukan nantinya direncanakan ke dalam tahapan langkah-langkah secara sistematis. Penelitian dilakukan dengan beberapa tahapan, yaitu:

1. Studi Literatur

Penulisan ini dimulai dengan studi kepustakaan yaitu mengumpulkan bahan-bahan referensi baik dari buku, artikel, paper, jurnal, makalah, maupun situs internet mengenai penjadualan mata kuliah, masalah graph coloring, algoritma

greedy, metode graph coloring heuristic, dan xml.

2. Analisis Permasalahan

Pada tahap ini dilakukan analisis permasalahan yang ada, batasan yang dimiliki dan kebutuhan yang diperlukan.

3. Perancangan dan Implementasi Algoritma

Pada tahap ini dilakukan pendefinisian beberapa aturan dalam penjadualan sesuai dengan batasan yang telah ditetapkan dan perancangan graph konflik, penerapan algoritma greedy dan metode graph coloring heuristic dalam penjadualan mata kuliah.


(18)

4. Pengujian

Pada tahap ini dilakukan pengujian terhadap aplikasi yang telah dibangun serta menguji algoritma greedy dan metode graph coloring heuristic.

5. Penyusunan Laporan dan Kesimpulan Akhir

Pada tahap ini dilakukan pendokumentasian hasil analisis dan implementasi secara tertulis dalam bentuk laporan skripsi.

1.7Sistematika Penulisan

Sistematika penulisan skripsi ini dibagi dalam lima bab, masing-masing bab diuraikan sebagai berikut:

BAB 1: PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang pemilihan judul, perumusan masalah, tujuan penelitian, ruang lingkup, metode penelitian, manfaat penelitian dan sistematika penulisan.

BAB 2:LANDASAN TEORI

Bab ini akan membahas teori-teori yang berkaitan dengan penjadualan, graph, graph coloring, algoritma greedy, metode graph coloring heuristic, xml, dan bahasa pemrograman yang dipakai.

BAB 3:ANALISIS DAN PERANCANGAN

Bab ini akan membahas aturan-aturan yang berkaitan dengan penjadualan, flowchart, spesifikasi umum, perancangan mata kuliah konflik, algoritma quick sort, penerapan algoritma greedy,dan penerapan metode graph coloring heuristic.


(19)

BAB 4: IMPLEMENTASI DAN PENGUJIAN

Bab ini menjelaskan implementasi dari penerapan metode graph coloring heuristic

sehingga mendapatkan mata kuliah bebas konflik.

BAB 5: PENUTUP

Bab terakhir akan memuat kesimpulan isi dari keseluruhan uraian bab-bab sebelumnya dan saran-saran dari hasil yang diperoleh yang diharapkan dapat bermanfaat dalam pengembangan selanjutnya.


(20)

BAB 2

LANDASAN TEORI

2.1 Penjadualan

Kadang kata schedule, sequence, dan timetable serta roster sering digunakan sebagai kata yang memiliki arti yang sama. Namun, terdapat perbedaan antara istilah diatas yang telah amati oleh beberapa orang dan dituangkan dalam beberapa literatur, antara lain Wer (1985), Anthony Wren (1996), S. Abdennadher dan M. Marte (1999), dan lain-lain.

Dalam buku Practice and Theory of Automated Timetabling (Wren, 1996, hal: 46-75) didefinisikan scheduling, timetabling, sequencing, dan rostering sebagai berikut:

a. Schedule biasanya keinginan yang mencakupi semua informasi khusus dan umum yang diperlukan untuk proses yang akan dilakukan. Keinginan ini mencakupi waktu dimana tempat aktivitas-aktivitas itu dilakukan. Tujuan dari

scheduling adalah untuk memecahkan masalah praktikal yang berhubungan dengan alokasi, subjek dengan batasan, dari sumber-sumber sampai objek-objek yang akan ditempatkan pada space-time, dengan menggunakan atau membangun tools yang cocok. Masalah ini akan sering terkait dengan kepuasan dari objek-objek tertentu. Contoh umum dari scheduling adalah

scheduling transportasi atau rute kenderaan pengantar.

b. Timetable menunjukkan kejadian tertentu yang membutuhkan tempat, tidak perlu secara langsung mengutarakan alokasi dari sumber. Sebagai contoh,

timetable bus atau kereta api menunjukkan rute perjalanan, tetapi tidak menunjukan kendaraan dan supir mana yang akan ditempatkan dalam


(21)

perjalanan itu. Alokasi dari kendaraan dan supir merupakan bagian dari proses

schedulling. Contoh dari timetabling adalah timetabling kelas dan timetabling

ujian.

c. Sequence adalah urutan sederhana dimana aktivitas dilakukan. Sebagai contoh, urutan dari proses jobs suatu mesin pabrik. Jika job melalui tiap mesin dengan urutan yang sama, maka disebut sequence. Masalah dari sequencing jobs

biasanya dikenal sebagai flow shop problem. Contoh dari sequencing adalah

flow-shop scheduling dan traveling salesman problem (TSP).

d. Rostering adalah penempatan, batasan tentang penempatan sumber-sumber ke slot-slot yang tersusun. Dengan tujuan untuk meminimalkan beberapa objek atau secara sederhana, untuk mendapatkan alokasi yang cocok/layak. Sering kali sumber-sumber akan berputar dalam satu roster.

2.1.1 Penjadualan Perkuliahan

Secara umum penjadualan perkuliahan adalah pengalokasian waktu dan tempat untuk suatu kegiatan perkuliahan yang pada umumnya memiliki batasan-batasan yang harus dipenuhi. Secara spesifik, masalah penjadualan perkuliahan untuk mata kuliah dan ujian akhir dapat dilihat sebagai perbaikan urutan waktu dan ruangan pertemuan antara pengajar dengan mahasiswa, sambil secara sekaligus memenuhi jumlah dari variasi kondisi atau batasan pokok dan batasan preferensial (Wren, 1996, hal: 47).

Ada tiga klasifikasi dari penjadualan akademik (academic timetables) (Schaerf, 2005, hal: 2-28), yaitu:

a. Penjadualan Sekolah (School Timetabling)

Penjadualan sekolah mendeskripsikan dimana tiap kelas memiliki pelajaran tertentu dan di ruangan mana akan dilangsungkan. Isi sebenarnya dari jadwal secara besar diatur oleh kurikulum, jumlah dari waktu tiap pelajaran yang diajar tiap minggu sering ditetapkan secara nasional. Tiap kelas terdiri dari kumpulan pelajar, yang harus ditempati dari saat mereka tiba sampai mereka


(22)

meninggalkan sekolah, dan guru tertentu bertanggung jawab atas kelas dalam satu periode. Guru biasanya dialokasikan di awal proses penjadualan, yang menjadi masalah adalah menyesuaikan pertemuan dari guru dengan kelas untuk slot waktu tertentu sehingga setiap guru tertentu mengajar tiap kelas yang diwajibkan kepadanya. Sangat jelas sekali bahwa, tiap kelas atau guru tidak dapat terlibat lebih satu pertemuan pada saat waktu yang sama. Seringkali, diharuskan bahwa tiap guru mempunyai setidaknya satu waktu kosong pagi atau sore tiap minggunya dan ada banyak kendala yang serupa.

b. Penjadualan Mata Kuliah (Course Timetabling)

Penjadualan mata kuliah mencakup kumpulan scheduling dari perkuliahan, dimana dalam setiap matakuliah diberikan sejumlah ruangan dan periode waktu. Penjadualan mata kuliah memiliki beberapa karakteristik, antara lain: 1. Setiap pelajar dapat memiliki jumlah matakuliah yang berbeda.

2. Ketersediaan ruangan berperan sangat penting.

3. Jika dua ruangan memiliki pelajar yang sama, maka ruangan tidak dapat dijadwalkan pada waktu yang sama.

c. Penjadualan Ujian (Exam Timetabling)

Penjadualan ujian memiliki beberapa karakteristik, antara lain: 1. Hanya ada satu ujian untuk tiap objek (mata kuliah).

2. Ada banyak batasan yang berbeda, contohnya pada hari yang sama ada pelajar yang memiliki ujian yang sangat banyak dan berurutan waktunya, tetapi ada juga yang tidak.

3. Satu ujian dapat memiliki lebih dari satu ruangan.

2.1.2 Batasan-Batasan (Constraints) pada Penjadualan Mata Kuliah

Masalah penjadualan mata kuliah melibatkan beberapa batasan pada mata kuliah yang akan dijadwalkan, jadi ada batasan dimana mata kuliah-mata kuliah tersebut dapat dijadwalkan secara bersamaan (memiliki waktu periode yang sama).


(23)

Batasan-batasan yang terlibat dalam pembuatan jadwal dari mata kuliah dapat dibagi menjadi dua kategori, yaitu:

a. Essential Timetabling Conditions (Hard Constraints)

Essential timetabling condition atau batasan pokok penjadualan (yang umumnya disebut juga sebagai hard constraint) adalah batasan atau kondisi yang harus dipenuhi agar menghasilkan jadwal yang layak atau dapat dilaksanakan. Batasan atau kondisi pokok dalam penjadualan, antara lain sebagai berikut:

1. Dua atau lebih mata kuliah yang diajarkan oleh pengajar 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).

2. Dua atau lebih mata kuliah yang membutuhkan ruangan kelas yang sama tidak bisa dijadwalkan pada waktu yang sama (dua atau lebih jadwal mata kuliah pada waktu yang sama tidak dapat ditempatkan pada ruangan yang sama).

3. Jadwal mata kuliah paralel dapat ditempatkan pada waktu yang bersamaan, dengan syarat dosen pengajarnya berbeda.

4. Beberapa mata kuliah perlu disesuaikan dengan beberapa jadwal waktu yang tetap setiap minggunya (misalnya, 3 kali seminggu, 2 kali seminggu atau 1 kali seminggu).

5. Setiap mata kuliah harus dijadwalkan pada sebuah ruang kelas yang tersedia yang dapat menampung jumlah mahasiswa pada mata kuliah tersebut.

6. Mahasiswa yang mengambil mata kuliah yang memiliki waktu yang sama dengan jadwal praktikumnya tidak dapat dijadwalkan pada waktu yang sama.

7. Informasi spesifik mengenai kebutuhan/jenis ruang kelas untuk mata kuliah tertentu, jika membutuhkan alat-alat bantuan (seperti projector) sebaiknya dilampirkan dalam laporan.


(24)

b. PreferentialTimetabling Conditions (Soft Constraints)

Preferential timetabling conditions atau batasan tambahan penjadualan (umumnya disebut juga soft constraint) adalah batasan atau kondisi tambahan yang tidak terlalu diperlukan untuk menghasilkan jadwal yang layak, tetapi jika dipenuhi dapat menghasilkan jadwal yang lebih cocok untuk seluruh anggota fakultas. Kondisi tambahan ini dapat dipenuhi, jika memungkinkan, dan berperan sebagai tambahan pada kondisi pokok. Batasan atau kondisi tambahan dalam penjadualan, antara lain sebagai berikut:

1. Seorang pengajar mungkin memiliki pilihan waktu kapan mata kuliah akan dijadwalkan, baik umum (misalnya, pada pagi hari, siang hari, atau sore hari) maupun spesifik (misalnya, pada jam 8 pagi).

2. Seorang pengajar mungkin meminta ruangan specifik untuk suatu mata kuliah, diluar persyaratan ruang kelas yang telah ditetapkan.

3. Seorang pengajar mengajar mata kuliah satu kali perminggu mungkin mempunyai pilihan hari apa pertemuan selama satu minggu itu.

4. Mungkin lebih baik menetapkan tiap mata kuliah pada ruang kelas yang berlokasi di dalam atau dekat dengan bangunan dimana departemen mata kuliah berada atau dekat dengan ruangan kantor pengajar.

5. Sebagaian besar mata kuliah tidak dijadwalkan pada sore hari, tetapi cukup selama jam pagi, dan jam sore dipakai/selama jam sibuk normal, kecuali jika slot waktu sore digunakan untuk permintaan mata kuliah tertentu. 6. Ruang kelas seharusnya cukup besar untuk suatu mata kuliah agar dapat

mengurangi adanya ruang kosong yang tidak digunakan karena tidak cukup daya tampungnya.

2.2 Graph

Secara kasar, graph adalah suatu diagram yang memuat informasi tertentu jika diinterpretasikan secara tepat. Dalam kehidupan sehari-hari, graph digunakan untuk menggambarkan berbagai macam struktur yang ada. Tujuannya adalah sebagai visualisasi objek-objek agar lebih mudah dimengerti.


(25)

Teori graph merupakan cabang ilmu matematika diskrit yang banyak penerapannya dalam berbagai bidang ilmu seperti engineering, fisika, biologi, kimia, arsitektur, transportasi, teknologi komputer, ekonomi, sosial dan bidang lainnya. Teori

graph juga dapat diaplikasikan untuk menyelesaikan persoalan-persoalan, seperti

Travelling Salesperson Problem (TSP), Chinese Postman Problem, Shortest Path,

ElectricalNetwork Problems, Seating Problem, dan Graph Coloring.

2.2.1 Sejarah Teori Graph

Teori graph berawal dari permasalahan yang muncul di kota Konigsberg pada awal abad ke 17. Kota ini meliputi bagian dari sungai Prigel yang ditengahnya terdapat dua pulau yang dihubungkan oleh satu jembatan dan masing-masing pulau dihubungkan oleh beberapa jembatan ke tepi sungai, seperti yang diperlihatkan pada Gambar 2.1.

Gambar 2.1 Jembatan Konigsberg

Permasalahan yang muncul saat itu adalah bagaimana seseorang dapat melalui seluruh jembatan yang menghubungkan kedua pulau, dan pulau dengan tepi pulau tepat satu kali. Untuk mempermudah pemecahan masalah ini seorang Ahli Matematika Swiss, Leonhard Euler memodelkan masalah ini ke dalam graph. Daratan


(26)

(titik-titik yang dihubungkan oleh jembatan) dinyatakan sebagai titik (noktah) yang disebut vertex (vertek) dan jembatan dinyatakan sebagai garis yang disebut edge (sisi).

Graph yang dibuat oleh Euler diperlihatkan pada Gambar 2.2.

Gambar 2.2 Model Graph Jembatan Konigsberg

Jawaban yang dikemukan oleh Euler adalah: orang tidak mungkin melalui ketujuh jembatan itu masing-masing satu kali dan kembali lagi ke tempat asal keberangkatan jika derajat setiap vertex seluruhnya genap. Yang dimaksud dengan derajat genap adalah banyaknya edge yg bersisian dengan vertex. Sebagai contoh,

vertex V1 dan V3 memiliki derajat tiga karena tiga buah edge bersisian dengannya, vertex V4 berderajat tiga, sedangkan vertex V2 berderajat 5. Karena tidak semua vertex

berderajat genap, maka tidak mungkin dilakukan perjalanan berupa sirkuit pada graph

tersebut. (Munir, 2005, hal: 354-355).

2.2.2 Definisi Graph

Chartrand, G dan Lesniak, L (1996) menyatakan suatu graph G adalah suatu himpunan berhingga tak kosong dari objek-objek yang disebut vertex (minimal tunggal) bersama-sama dengan suatu himpunan yang anggotanya adalah pasangan yang tak berurut dari vertex yang berbeda pada G yang disebut edge (mungkin kosong), dan dinotasikan dengan G{V(G), E(G)}. Himpunan vertex dari G dinotasikan dengan V(G) dan himpunan edge dinotasikan dengan E(G). Banyaknya anggota dari himpunan vertex pada G disebut order G dan dinotasikan dengan p(G), atau dengan singkat ditulis p. Edge e = {x, y} atau juga dapat ditulis e = xy adalah sebuah edge

v4 v1 v2 v3 e1 e4 e3 e2 e7 e5 e6


(27)

dalam G, yaitu x dan y adalah titik-titik ujung dari e, maka x dan y dikatakan adjacent

(berelasi) dimana x dan e adalah incedent (terhubung), begitu juga dengan y dan e. Banyaknya edge yang incedent dengan vertex x disebut degree/valensi/derajat dari x, dengan kata lain degree x adalah banyaknya edge yang memuat x sebagai titik ujung.

Degreex dinotasikan dengan deg(x).

Munir (2005, hal: 356) menyatakan Graph G didefinisikan sebagai pasangan himpunan (V, E), ditulis dengan notasi G = (V, E), yang dalam hal ini V adalah himpunan tidak kosong dari vertex-vertex (vertex atau node) dan E adalah himpunan

edge (edges atau arcs) yang menghubungkan sepasang vertex. Dari definisi tersebut, dapat dikatakan bahwa sebuah graph dimungkinkan tidak mempunyai sebuah edge, tetapi vertexnya harus ada minimal satu. Graph yang hanya mempunyai satu buah

vertex tanpa sebuah edge dinamakan graph trivial.

Iryanto (2003, hal: 2) menyatakan Graph didefinisikan sebagai pasangan himpunan (V, E) yang dinotasikan dengan G = (V, E), dimana:

a. V adalah himpunan titik, vertex, vertex atau node dari G yaitu: i.V = {v1, v2, v3, ..., vn}

b. E adalah himpunan rusuk, edges, atau edge dari G, yaitu: i.E = {e1, e2, e3, ..., em}

Suatu edges yang menghubungkan vertex Vi dan Vj dinyatakan oleh suatu pasangan

(Vi, Vj) atau e1, e2, e3, ..., em atau dapat ditulis e = (Vi, Vj). (Iryanto, 2003, hal: 2).

Graph dapat pula disajikan secara geometri dan untuk ini vertex dinyatakan sebagai titik dan edge sebagai sebuah potongan garis yang menghubungkan vertex

-vertex. Banyaknya vertex pada suatu graph disebut order dan banyaknya edge disebut

size. Pada suatu graph G jika terdapat dua vertex yang dihubungkan lebih dari satu

edge, maka edge seperti itu disebut multiple edges, paralel edges atau edge ganda. Jika suatu edge berasal dari suatu vertex dan ujungnya kembali ke vertex yang sama, maka edge tersebut dinamakan loop atau gelang.


(28)

2.2.3 Teori Pewarnaan Graph (Graph Coloring)

Graph G dikatakan berwarna n jika terdapat sebuah pewarnaan dari G yang menggunakan n warna. Jumlah warna maksimal dari suatu graph sama dengan jumlah

vertex. Jumlah warna minimum yang diperlukan untuk mewarnai G disebut bilangan kromatik (chromatic) dari G, yang disimbolkan dengan χ(G). Suatu graph G yang mempuyai bilangan kromatik k dilambangkan dengan χ(G) = k (Munir, 2005, hal: 426). Gambar 2.3 memperlihatkan graph yang memiliki bilangan kromatik 4.

Gambar 2.3 Graph yang memiliki χ(G) = 4

Beberapa graph tertentu dapat langsung ditentukan bilangan kromatiknya, antara lain:

a. Graph kosong Nn memiliki χ(G) = 1, karena semua vertex tidak terhubung, jadi untuk mewarnai semua vertex cukup dibutuhkan satu warna saja. b. Graph lengkap Kn memiliki χ(G) = n sebab semua vertex saling terhubung

sehingga diperlukan n buah warna (warna maksimum).

c. Graph bipartit Km,n mempunyai χ(G) = 2, satu untuk vertex-vertex

dihimpunan V1 dan satu lagi untuk vertex-vertex di V2.

d. Graph lingkaran dengan n ganjil memiliki χ(G) = 3, sedangkan jika n

genap maka χ(G) = 2. Sembarang pohon T memiliki χ(T) = 2.

e. Untuk graph-graph yang lain tidak dapat dinyatakan secara umum bilangan kromatiknya.


(29)

2.2.3.1 Masalah pada Pewarnaan Graph

Masalah pada pewarnaan graph G adalah bagaimana memberikan sejumlah warna yang tepat pada G seminimum mungkin. Hal ini dikenal sebagai masalah pewarnaan minimum (minimum coloring problem). Pewarnaan graph terbagi 3 jenis, yaitu:

a. Coloring Vertex (Pewarnaan Vertek)

Pewarnaan vertex adalah cara pemberian warna untuk setiap vertex (vertek) suatu graph sedemikian rupa sehingga setiap vertex yang adjacent

(dihubungkan oleh garis/edge yang sama) diwarnai dengan warna yang berbeda.

b. Coloring Edge (Pewarnaan Garis)

Pewarnaan garis adalah cara pemberian warna pada edge sedemikian rupa sehingga setiap edge yang bertumpuan pada vertex yang sama diberi warna yang berbeda. Cara pemberian warna tidak memiliki aturan tertentu, hanya harus seminimal mungkin.

c. Coloring Region (Pewarnaan Wilayah)

Pewarnaan wilayah adalah cara pemberian warna pada setiap region pada

graph sehingga tidak ada region yang bersebelahan yang memiliki warna yang sama.

Komponen utama dalam pewarnaan graph ada 3, yaitu: a. Vertex (vertek)

Vertex merupakan objek yang diperhatikan. b. Edge (garis)

Edge merupakan penghubung dari pasangan objek (vertex) yang konflik. c. Color (warna)

Objek (vertex) konflik diberikan warna yang berbeda.

Masalah-masalah yang dapat dimodelkan dengan menggunakan metode pewarnaan graph, antara lain masalah penjadualan, termasuk masalah penjadualan mata kuliah dan penjadualan ujian, masalah pengalokasian register, masalah penempatan frekuensi, dan lain-lain.


(30)

2.3.3.2 Metode Pewarnaan Graph pada Penjadualan Mata Kuliah

Salah satu aplikasi penting dari graph coloring adalah penjadualan. Banyak permasalahan dalam penjadualan yang melibatkan berbagai macam batasan pada objek dalam hal ini matakuliah yang akan dijadwalkan bersamaan (pada waktu periode yang sama). Sudah sangat jelas kalau dua matakuliah tidak dapat diajar oleh pengajar yang sama pada saat yang bersamaan dan juga dua matakuliah yang menempati ruang kelas yang sama harus dijadwalkan pada waktu yang berbeda. Oleh karena itu, masalah yang melibatkan jumlah waktu minimum dalam penjadualan dengan berbagai macam batasan dapat dikategorikan dalam masalah graph coloring.

Masalah penjadualan mata kuliah pada graph coloring adalah membagi mata kuliah yang direpresentasikan sebagai vertex ke dalam jumlah minimum suatu tempat sehingga tidak ada vertex yang bertetanggaan (vertex bertetanggaan ditandai dengan adanya edge antara dua vertex) dijadwalkan pada waktu yang sama. Kemudian warna yang berbeda diberikan kepada vertex yang bertetanggaan tersebut.

Diberikan contoh masalah pewarnaan graph sederhana, seperti yang diperlihatkan pada Tabel 2.1. Misalkan ada lima mata kuliah, yaitu a, b, c, d, dan e, yang akan dijadwalkan bersamaan dengan konfliknya. Angka 0 menunjukkan tidak adanya konflik antara dua pasang mata kuliah, sedangkan angka 1 menunjukkan adanya konflik antara 2 pasang mata kuliah jika mata kuliah dijadwalkan pada waktu yang sama.

Tabel 2.1 Penjadualan Mata Kuliah

a b c d e

a 0 1 1 1 0

b 1 0 1 1 1

c 1 1 0 1 0

d 1 1 1 0 1


(31)

Berdasarkan Tabel 2.1, dapat dibuat jadwal mata kuliah bebas konflik dengan mengubah Tabel 2.1 ke dalam graphG dan menemukan pewarnaan minimum. Vertex

pada graph G merepresentasikan mata kuliah, edge merepresentasikan pasangan dari mata kuliah yang akan dijadwalkan, dan warna merepresentasikan waktu atau periode dimana mata kuliah akan dijadwalkan. Dari Tabel 2.1 dapat dihasilkan graph seperti pada Gambar 2.4.

Gambar 2.4 Graph Sederhana Jadwal Mata Kuliah Graph Bebas Konflik

Gambar 2.4 memperlihatkan bahwa dapat dibuat graph bebas konflik jadwal

mata kuliah dengan χ(G) = 4. Berdasarkan pewarnaan, kita dapat menjadwalkan mata kuliah a untuk waktu atau periode pertama, mata kuliah b untuk waktu kedua, mata kuliah c dan e untuk waktu ketiga, serta mata kuliah d untuk waktu keempat. Jadi, untuk jadwal mata kuliah berdasarkan Tabel 2.1, hanya diperlukan empat periode waktu dalam satu hari.

2.3 Algoritma Greedy

Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi. Persoalan optimasi (optimization problems) yaitu suatu persoalan yang mencari solusi optimasi. Hanya ada dua macam dalam persoalan optimasi, yaitu maksimasi (maximization) dan minimasi (minimization). Solusi optimum (terbaik) adalah solusi yang bernilai minimum atau maksimum dari sekumpulan alternatif solusi yang mungkin.


(32)

Algoritma greedy memiliki dua elemen, yaitu aturan/batasan (constraints) dan fungsi objektif (fungsi optimasi). Solusi yang memenuhi semua kendala disebut solusi layak (feasible solution). Solusi layak yang mengoptimumkan fungsi optimasi disebut solusi optimum.

Sesuai dengan namanya, greedy yang artinya tamak, rakus, prinsip algoritma

greedy adalah “take what you can get now!”. Algoritma greedy membentuk solusi langkah per langkah (step by step). Pada setiap langkahnya, algoritma ini mengambil pilihan terbaik yang dapat diperoleh pada saat itu tanapa memperhatikan konsekuensi ke depan. Pilihan yang telah diambil pada suatu langkah tidak dapat diubah lagi pada langkah selanjutnya.

Pendekatan yang digunakan di dalam algoritma greedy adalah membuat pilihan yang “tampaknya” memberikan perolehan terbaik, yaitu dengan membuat pilihan optimum lokal (local optimum) pada setiap langkah dengan harapan bahwa sisanya mengarah ke solusi optimum global (global optimum). Oleh karena itu, algoritma greedy sering berguna untuk menghasilkan solusi hampiran (approximation) (Munir, 2006, hal: 1-3). Algoritma greedy disusun oleh elemen-elemen berikut:

a. Himpunan kandidat.

Berisi elemen-elemen pembentuk solusi. b. Himpunan solusi

Berisi kandidat-kandidat yang terpilih sebagai solusi persoalan. c. Fungsi seleksi (selection function)

Memilih kandidat yang paling memungkinkan mencapai solusi optimal. Kandidat yang sudah dipilih pada suatu langkah tidak pernah dipertimbangkan lagi pada langkah selanjutnya.

d. Fungsi kelayakan (feasible)

Memeriksa apakah suatu kandidat yang telah dipilih dapat memberikan solusi yang layak, yakni kandidat tersebut bersama-sama dengan himpunan solusi yang sudah terbentuk tidak melanggar kendala (constraints) yang ada. Kandidat yang layak dimasukkan ke dalam himpunan solusi, sedangkan kandidat yang tidak layak dibuang dan tidak pernah dipertimbangkan lagi.


(33)

e. Fungsi obyektif

Fungsi yang memaksimumkan atau meminimumkan nilai solusi (misalnya panjang lintasan, keuntungan, dan lain-lain).

2.4 Heuristic

Algoritma heuristic atau heuristic adalah sebuah algoritma yang mampu menghasilkan solusi yang dapat diterima untuk suatu masalah yang memiliki banyak skenario praktis, tetapi tidak ada bukti formal akan ketepatannya. Secara alternatif, cara ini mungkin benar, tetapi tidak dapat dibuktikan menghasilkan solusi yang optimal. Heuristic biasanya digunakan ketika tidak ada metode yang dikenal untuk menemukan solusi yang optimal dalam batasan-batasan yang diberikan.

2.5 Graph Coloring Heuristic

Ada beberapa teknik heuristik untuk mewarnai graph. Salah satunya ada graph coloring heuristic. Graph coloring heuristic mengambil tiap vertex dengan beberapa urutan tertentu dan mencoba mewarnai vertex dengan salah satu kelas warna yang ada. Jika tidak mungkin untuk mewarnai dengan kelas warna yang ada, maka kelas warna yang baru dibuat dan vertex diwarnai dengan kelas warna baru. Sekali vertex diwarnai, maka warna tidak pernah berubah.

Skema umum dari graph coloring heuristic, sebagai berikut: a. Ambil satu vertex dan berikan warna.

b. Pertimbangkan vertex yang lain, dan berikan warna yang sama jika memungkinkan, dengan kata lain hanya vertex yang tidak bertetanggaan yang diberikan warna sama. Jika tidak berikan warna yang lain.


(34)

2.6 Microsoft Visual C#.NET

Microsoft Visual C#.NET adalah salah satu bahasa pemrograman yang ada di dalam paket Microsoft Visual Studio 2008. Visual C#.NET adalah bahasa pemrograman terbaru yang memadukan kelebihan Java, C, dan C++. Kelebihan Visual C#.NET dibandingkan Visual Basic.NET adalah dalam hal kemampuan mewarisi sifat-sifat yang unggul dari Java, C++, dan kecepatan eksekusi yang lebih tinggi.

Keuntungan menggunakan Microsoft Visual C#.NET antara lain sebagai berikut (Jaenudin, 2005, hal: 17):

1. Mengatasai semua masalah yang sulit disekitar pengembangan aplikasi berbasis windows dan menghilangkan penggunaan DLL serta versi komponen, apalagi mewarisi sifat C++ dan Java.

2. Mempunyai fasilitas penangan bug yang hebat dan real time background compiler, membuat developer visual c# dapat mengetahui kesalahan kode yang terjadi secara up to date.

3. Windows form designer memungkinkan developer memperoleh aplikasi desktop dalam waktu yang singkat.

4. Menyediakan bagi developer modem pemrograman data akses, ActiveX Data Object (ADO) yang sudah dikenali dan diminati, ditambah dengan XML baru yang berbasiskan Microsoft ADO.NET. dengan ADO.NET,

developer akan memperoleh akses ke komponen yang lebih powerful, seperti control DataSet.

5. Mendukung pembangunan aplikasi client-server, terdistribusi, serta aplikasi yang berbasiskan windows serta web.

2.7 XML (eXtensible Markup Language)

XML kependekan dari eXtensible Markup Language, dikembangkan mulai tahun 1996 dan mendapatkan pengakuan dari W3C pada bulan Februari 1998. Teknologi yang digunakan pada XML sebenarnya bukan teknologi baru, tapi merupakan turunan dari SGML yang telah dikembangkan pada awal 80-an dan telah banyak digunakan


(35)

pada dokumentasi teknis proyek-proyek berskala besar. Ketika HTML dikembangkan pada tahun 1990, para penggagas XML mengadopsi bagian paling penting pada SGML dan dengan berpedoman pada pengembangan HTML menghasilkan markup language yang tidak kalah hebatnya dengan SGML. (Junaedi, 2003, hal: 1)

XML (eXtensible Markup Language) adalah sekumpulan aturan-aturan yang mendefinisikan suatu sintaks yang digunakan untuk menjelaskan, dan mendeskripsikan teks atau data dalam sebuah dokumen melalui penggunaan tag. XML merupakan sebuah bahasa markup yang digunakan untuk mengolah metadata

(informasi tentang data) yang menggambarkan struktur dan maksud/tujuan data yang terdapat dalam dokumen XML, namun bukan menggambarkan format tampilan data tersebut. XML juga dapat digunakan untuk mendefinisikan domain tertentu lainnya, seperti musik, matematika, keuangan dan lain-lain yang menggunakan bahasa markup

terstruktur. Fungsi utama dari XML adalah komunikasi antar aplikasi, integrasi data, dan komunikasi aplikasi eksternal dengan partner luaran. Dengan standarisasi XML, aplikasi-aplikasi yang berbeda dapat dengan mudah berkomunikasi antar satu dengan yang lain.

XML merupakan sebuah format yang dapat digunakan untuk pertukaran data (interchange) antar aplikasi dan platform yang berbeda. Metode deskripsi data XML (self-describing) membuatnya menjadi pilihan efektif untuk solusi antar jaringan, e-business, dan aplikasi terdistribusi. XML juga bersifat dapat diperluas (extensible), dapat digunakan pada semua bahasa pemrograman, dan datanya dapat ditransfer dengan mudah melalui protokol standar internet seperti HTTP tanpa dibatasi oleh

firewall.

Sebuah dokumen XML terdiri dari bagian-bagian yang disebut dengan node.

Node-node itu adalah:

a. Root node yaitu node yang melingkupi keseluruhan dokumen. Dalam satu dokumen XML hanya ada satu root node. Node-node yang lainnya berada di dalam root node.

b. Element node yaitu bagian dari dokumen XML yang ditandai dengan tag


(36)

kosong seperti <anggota nama=”budi”/>. Root node biasa juga disebut root element.

c. Attribute notetermasuk nama dan nilai atribut ditulis pada tag awal sebuah elemen atau pada tag tunggal.

d. Text node, adalah teks yang merupakan isi dari sebuah elemen, ditulis diantara tag pembuka dan tag penutup.

e. Comment nodeadalah baris yang tidak dieksekusi oleh parser.

f. Processing Instruction node, adalah perintah pengolahan dalam dokumen XML. Node ini ditandai awali dengan karakter <? Dan diakhiri dengan ?>. Tapi perlu diingat bahwa header standard XML <?xml version=”1.0” encoding=”iso-8859-1”?> bukanlah processing instruction node. Header standard bukanlah bagian dari hirarki pohon dokumen XML.


(37)

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


(38)

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).


(39)

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:


(40)

a. Batasan Pokok (Hard Constraints)

Batasan pokok dalam penjadualan adalah batasan/aturan/kondisi 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 departemen/program 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 departemen/program studi Kimia dan Matematika diikutsertakan, begitu juga dengan mata kuliah kosentrasi/penjurusan pada departemen/program studi Matematika dan Fisika, sedangkan mata kuliah kosentrasi/penjurusan pada departemen/program studi Biologi diabaikan.

 Mengabaikan mata kuliah prasyarat untuk pengambilan atau penempatan mata kuliah pilihan dan kosentrasi/penjurusan.

 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.


(41)

 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 batasan/aturan/kondisi 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 departemen/progam 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


(42)

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 departemen/program studi matematika dan kimia.

3. konsentrasi.xml yang terdiri dari semua kode mata kuliah konsentrasi (penjurusan) pada departemen/program 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-1/West 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.


(43)

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


(44)

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

≈ n/2 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 quicksort 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


(45)

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 nke-ilake-i array ke-indeks ke-j, lalu nke-ilake-i ke-i dke-itambah 1 dan nke-ilake-i j dke-ikurangke-i 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.


(46)

Flowchart algoritma quicksort pada mata kuliah berdasarkan sks dapat digambarkan ke dalam Gambar 3.2.

Gambar 3.2 FlowchartQuick 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:


(47)

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 (dikodekan dengan 1, 2, dan 3), dimana:

1. 1 = pagi, 2. 2 = siang, dan 3. 3 = sore.

Berdasarkan ketentuan diatas, maka mata kuliah dapat dibagi menjadi tujuh grup, seperti yang terlihat pada Tabel 3.1.

Tabel 3.1 Pembagian Grup Mata Kuliah

GRUP NUMDAYS DAYS TIMEOFDAY

1 1 Senin, Rabu, atau Jumat (2 sks) 1 (pagi; 08:00-09:40) 2 1 Senin, Rabu, atau Jumat (2 sks) 2 (siang; 09:40-13:00) 3 1 Senin, Rabu, atau Jumat (2 sks) 3 (sore; 13:00-15:30) 4 1

Senin, Selasa, Rabu, Kamis, atau

Jumat - 5 2 Selasa dan Kamis (4 sks) 1 (pagi; 08:00-09:40)

6 2 Selasa dan Kamis (4 sks) 2 (siang; 09:40-13:00) 7 2 Selasa dan Kamis (4 sks) 3 (sore; 13:00-15:30)

Langkah pengelompokkan mata kuliah dapat dituliskan sebagai berikut:

a. Mata kuliah yang telah terurut secara menaik dikelompokkan berdasarkan

numdays, days, dan timeofdays.

b. Jika mata kuliah memiliki kredit dua sks maka mata kuliah dijadwalkan pada hari senin atau rabu atau jumat.


(48)

c. Jika mata kuliah memiliki kredit tiga sks maka mata kuliah dijadwalkan pada hari senin atau selasa atau rabu atau kamis atau jumat.

d. Jika mata kuliah memiliki kredit empat sks maka mata kuliah dijadwalkan pada hari selasa dan kamis.

e. Jika masih ada mata kuliah yang belum dikelompokkan kembali ke langkah 2 sampai semua mata kuliah berhasil ditempatkan.

Flowchart pengelompokkan mata kuliah ke dalam grup dapat digambarkan ke dalam Gambar 3.3.


(49)

3.2.3.3 Membuat Mata Kuliah Konflik

Untuk memudahkan dalam membuat mata kuliah konflik, maka mata kuliah direpresentasikan dalam graph, dimana mata kuliah direpresentasikan sebagai vertex

dan edge merepresentasikan mata kuliah yang konflik. Sedangkan untuk mencari mata kuliah mana saja yang konflik maka digunakan algoritma greedy.

Algoritma greedy melakukan pencarian mata kuliah konflik dalam ruangan dan pada hari serta waktu yang sama. Untuk menandai mata kuliah yang konflik maka dilakukan metode graph coloring heuristic. Langkah-langkahnya dapat dituliskan sebagai berikut:

1. Vertex (mata kuliah) yang telah dikelompokkan ditempatkan ke dalam ruangan yang tersedia sesuai dengan kelompoknya.

2. Pengecekan vertex (mata kuliah) satu persatu pada ruangan dan waktu. 3. Jika mata kuliah semester satu dengan kode mata kuliah agama (UNI101,

UNI102, UNI103, UNI104, dan UNI105) maka mata kuliah semester satu dianggap konflik.

4. Simpan vertex (mata kuliah lain) ke dalam tempat penyimpanan mata kuliah konflik.

5. Tidak ada perkuliahan pada jam 11:20 s.d. jam 13:00.

6. Simpan vertex (mata kuliah lain) ke dalam tempat penyimpanan mata kuliah konflik.

7. Jika mata kuliah tingkat satu dengan mata kuliah tingkat dua, maka bandingkan fakultas. Jika fakultas sama maka mata kuliah tersebut bentrok.

8. Jika mata kuliah tingkat dua dengan mata kuliah tingkat tiga, maka bandingkan fakultas. Jika fakultas sama maka mata kuliah tersebut bentrok.

9. Jika mata kuliah tingkat tiga dengan mata kuliah tingkat empat, maka bandingan fakultas. Jika fakultas sama maka mata kuliah tersebut bentrok. 10.Jika mata kuliah wajib dengan mata kuliah kosentrasi pada semester yang


(50)

11.Simpan vertex (mata kuliah lain) ke dalam tempat penyimpanan mata kuliah konflik.

12.Jika mata kuliah yang memiliki empat digit awal kode mata kuliah yang sama, misalnya kode mata kuliah BIO300 dengan kode mata kuliah BIO304. Tiga huruf pertama pada kode mata kuliah menandakan bahwa mata kuliah itu merupakan mata kuliah departemen/program studi Biologi dan satu angka setelah huruf menandakan bahwa mata kuliah tersebut merupakan mata kuliah semester tiga.

13.Simpan vertex (mata kuliah lain) ke dalam tempat penyimpanan mata kuliah konflik.

14.Lakukan pewarnaan pada mata vertex (mata kuliah) konflik yang belum diwarnai.

15.Hapus mata kuliah konflik dari daftar mata kuliah.

16.Jika masih ada vertex (mata kuliah lain) yang belum dilakukan pengecekan konflik, ulangi dari langkah ke-1.


(51)

Gambar 3.4 menunjukkan flowchart pembuatan dan pengecekan vertex (mata kuliah) konflik serta graph coloring heuristic pada vertex (mata kuliah) konflik.

Mulai

Data Mata Kuliah

Pengecekan Berdasarkan Ruang dan Waktu

Jika ada MK Agama Bertemu dengan MK

semester 1

Data mk konflik Penghapusan data

mata kuliah konflik dr daftar mk

Beri Warna pada Mata Kuliah Konflik yang belum diwarnai Ya Ya Ya Jika Jumat jam11.20-13.00

Jika MK Konsentrasi dengan MK Wajib

Tidak

Tidak

Simpan MK Konflik

Ya Jika MK empat digit

pertama kode MK dan fakultas sama

Tidak

Masih ada MK lain?

Selesai Tidak

Tidak Jika MK tingkat

1 dengan MK tingkat 2

Ya

Jika MK tingkat 2 dengan MK

tingkat 3

Ya

Jika MK tingkat 3 dengan MK

tingkat 4 Tidak Tidak Tidak Ya Pemberian Warna Khusus Bentrok Jumat jam 12-14

Ya

Gambar 3.4Flowchart Pembuatan dan Pengecekan Vertex (Mata Kuliah) Konflik serta Pewarnaan Vertex (Mata Kuliah) Konflik


(52)

3.2.3.4 Menyusun Mata Kuliah Bebas Konflik

Mata kuliah yang konflik dikumpulkan dalam suatu tempat penyimpanan untuk dicarikan waktu dan ruangan yang kosong sehingga bebas konflik. Mata kuliah konflik yang ditempatkan dalam tempat penyimpanan dikeluarkan satu persatu secara FIFO (first in first out).

Langkah-langkah dalam menyusun mata kuliah bebas konflik dapat dituliskan sebagai berikut:

1. Pengecekan ruangan yang kosong dimulai dari hari senin (apabila ada ruangan kosong pada hari senin).

2. Pengecekan sks mata kuliah konflik dengan sks ruangan.

3. Jika sks mata kuliah lebih kecil atau sama besar dengan sks ruangan, maka dilakukan proses pengecekan.

4. Jika mata kuliah memiliki empat digit awal kode mata kuliah dan fakultas yang sama, lanjut ke langkah-6.

5. Jika tidak dilakukan proses penempatan mata kuliah.

6. Jika mata kuliah wajib dengan mata kuliah kosentrasi/penjurusan, lanjut ke langkah-8.

7. Jika tidak dilakukan proses penempatan mata kuliah.

8. Jika masih ada mata kuliah konflik tersimpan, ulangi langkah ke-2. 9. Jika tidak maka selesai.


(53)

Gambar 3.5 Menunjukkan Flowchart Penyusunan Mata Kuliah Bebas Konflik.

Mulai

Pencarian ruang dan waktu yang

kosong

Sks Ruang <= Sks MK Data Mata Kuliah yang

Bentrok

Pengecekan

Jika MK empat digit pertama kode MK dan

Fakultas sama

Penempatan Mata Kuliah Tidak

Ya

Tidak

Jika MK Konsentrasi dengan MK Wajib

Ya

Masih ada MK konflik?

Ya

Tidak

Selesai TIdak Ya


(54)

3.3 Perancangan Antarmuka (Interface)

Rancangan antarmuka dari prototype sistem ini terdiri dari satu form penjadualan mata kuliah yang terdiri dari enam tab, masing-masing tab terdiri dari dua bagian, yaitu bagian kanan dan bagian kiri. Pada bagian kiri tiap tab, terdapat tabel data mata kuliah, sedangkan pada bagian kanan, terdapat combo box yang menunjukkan jumlah ruangan, tabel jadwal, tombol simpan jadwal, tombol buka jadwal, dan textbox

keterangan. Tiap tab memiliki isi tabel yang berbeda, yaitu:

3.3.1 Antarmuka Tab Data Awal

Pada tab data awal, tabel mata kuliah memiliki kolom kode mata kuliah, nama mata kuliah, sks mata kuliah, sks baru, dan fakultas; serta terdapat empat tombol, yaitu tombol buka yang berfungsi untuk mengambil data mata kuliah yang ada dalam

database, tombol tambah yang berfungsi untuk menambah mata kuliah, tombol ubah yang berfungsi mengubah data mata kuliah yang telah ada, dan tombol hapus untuk menghapus mata kuliah, serta tombol lanjut yang berfungsi untuk lanjut ke langkah atau ke tab selanjutnya. Pada tab awal ini isi dari tabel mata kuliah merupakan mata kuliah yang masih bersifat acak. Tab data awal dapat dilihat pada Gambar 3.6.


(55)

Aplikasi Penj adwalan Mata Kuliah

Aplikasi Penj adwalan Mata Kuliah

Penjadwalan Mata Kuliah

Daftar Mata Kuliah

Tambah Ubah Hapus Lanjut

Langkah 1 Langkah 2 Langkah 3 Langkah 4 Langkah 5 Jadwal Kuliah Sementara Ruangan Kuliah:

Simpan Jadwal

Buka Jadwal Data Awal

Buka

 

Gambar 3.6 Antarmuka Tab Data Awal

Tab data awal setalah data mata kuliah dipilih dapat dilihat pada Gambar 3.7.


(56)

Form tambah dan ubah mata kuliah dilengkapi dengan tombol simpan dan batal. Gambar 3.8 ditunjukkan form tambah dan ubah mata kuliah.

Tambah Data

Tambah Data

Daftar Mata Kuliah

Simpan Batal

Kode MK:

Nama MK:

Sks:

Fakultas:

Ubah Data

Ubah Data

Daftar Mata Kuliah

Simpan Batal

Kode MK:

Nama MK:

Sks:

Fakultas:

Gambar 3.8 Antarmuka form tambah dan ubah data

3.3.2 Antarmuka Tab Langkah Satu

Pada tab langkah satu ini isi dari tabel mata kuliah adalah daftar mata kuliah yang telah diurutkan berdasarkan sks dan kode mata kuliah. Pada tab langkah satu, tombol tambah, ubah, dan hapus tidak ada. Tab langkah satu dapat dilihat pada Gambar 3.9.


(57)

3.3.3 Antarmuka Tab Langkah Dua

Pada tab langkah dua, tabel mata kuliah memiliki kolom kode mata kuliah, nama mata kuliah, sks mata kuliah sebenarnya, sks setelah pembagian mata kuliah, sks baru (apabila terjadi perubahan sks), fakultas, dan jadwal waktu perkuliahan.

Pada tab langkah dua ini isi dari tabel mata kuliah adalah daftar mata kuliah yang telah diberikan hari dan jam. Tab langkah Dua dapat dilihat pada Gambar 3.10.

Gambar 3.10 Antarmuka Tab Langkah Dua

3.3.4 Antarmuka Tab Langkah Tiga

Pada tab langkah tiga, tabel mata kuliah memiliki kolom kode mata kuliah, nama mata kuliah, sks mata kuliah sebenarnya, sks setelah pembagian mata kuliah, sks baru (apabila terjadi perubahan sks), fakultas, dan jadwal waktu perkuliahan. Pada tab langkah tiga ini isi dari tabel mata kuliah adalah daftar mata kuliah yang disusun berdasarkan hari dan jam. Sedangkan pada tabel bagian kanan (jadwal kuliah), dimana tabel jadwal mata kuliah itu berisi hari dan jam pertemuan mata kuliah.


(58)

Jadwal waktu pertemuan mata kuliah berlangsung dari jam 08:00 s.d. 16:20. Sedangkan hari pertemuan mata kuliah berlangsung pada hari senin s.d. jumat. Tab langkah tiga dapat dilihat pada Gambar 3.11.

Gambar 3.11 Antarmuka Tab Langkah Tiga

3.3.5 Antarmuka Tab Langkah Empat

Pada tab langkah empat, tabel mata kuliah memiliki kolom kode mata kuliah, sks setelah pembagian mata kuliah, sks baru (apabila terjadi perubahan sks), fakultas, dan jadwal waktu perkuliahan. Pada tab langkah empat isi dari tabel mata kuliah adalah daftar mata kuliah konflik. Sedangkan pada tabel bagian kanan terdapat combo box

untuk melihat ruangan kuliah dan tabel jadwal kuliah dimana tabel jadwal mata kuliah itu berisi hari dan jam pertemuan mata kuliah sementara serta mata kuliah yang konflik diberikan warna yang berbeda dengan mata kuliah yang tidak konflik.

Jadwal waktu pertemuan mata kuliah berlangsung dari jam 08:00 s.d. 16:20. Sedangkan hari pertemuan mata kuliah berlangsung pada hari senin s.d. jumat. Pada

textbox keterangan berisi kode mata kuliah yang konflik. Tab langkah empat dapat dilihat pada Gambar 3.12.


(59)

Gambar 3.12 Antarmuka Tab Langkah Empat

3.3.6 Antarmuka Tab Langkah Lima

Pada tab langkah lima, tabel mata kuliah memiliki kolom kode mata kuliah, sks setelah pembagian mata kuliah, sks baru (apabila terjadi perubahan sks), fakultas, dan jadwal waktu perkuliahan. Pada tab langkah lima isi dari tabel mata kuliah adalah daftar mata kuliah konflik. Pada bagian bawah tabel terdapat tombol mata kuliah bebas konflik. Sedangkan pada tabel bagian kanan terdapat combo box untuk melihat ruangan kuliah dan tabel jadwal kuliah dimana tabel jadwal mata kuliah itu berisi hari dan jam pertemuan mata kuliah..

Jadwal waktu pertemuan mata kuliah berlangsung dari jam 08:00 s.d. jam 16:20. Sedangkan hari pertemuan mata kuliah berlangsung pada hari senin s.d. jumat. Pada textbox keterangan berisi kode mata kuliah yang konflik. Tab langkah lima dapat dilihat pada Gambar 3.13.


(60)

Gambar 3.13 Antarmuka Tab Langkah Lima

3.3.7 Jadwal Mata Kuliah Bebas Konflik

Pada bagian ini, tabel mata kuliah konflik dihapus yang menandakan bahwa mata kuliah konflik sudah dimasukkan dalam jadwal mata kuliah bebas konflik dan tombol mata kuliah bebas konflik tidak aktif serta pada tabel jadwal mata kuliah bebas konflik. Tampilan jadwal mata kuliah bebas konflik dapat dilihat pada Gambar 3.14.


(61)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Prototype yang dibangun ini berbasiskan aplikasi desktop dan stand alone (tidak terkoneksi ke jaringan internet). Prototype penjadualan perkuliahan ini tidak memiliki

form login dan hanya menunjukkan proses dalam menjadwalkan sejumlah mata kuliah sesuai dengan batasan-batasannya ke dalam sejumlah ruangan sehingga dapat mengoptimalkan penggunaan ruangan yang tersedia dan jadwal perkuliahan yang dihasilkan bebas dari konflik.

Contoh kasus yang digunakan dalam Tugas Akhir ini adalah penjadualan mata kuliah Departemen/Program Studi Biologi, Fisika, Kimia, dan Matematika fakultas MIPA (Matematika dan Ilmu Pengetahuan Alam) USU (Sumatera Utara).

4.1.1 Lingkungan Implementasi

Lingkungan implementasi yang akan dijalankan merupakan lingkungan perangkat keras (hardware) dan perangkat lunak (software) yang digunakan dalam penulisan skripsi ini. Adapun spesifikasi perangkat keras yang digunakan adalah sebagai berikut:

1. Processor AMD Turion 64X2 Dual Core 1,6 GHz 2. Memory RAM 1 GB.

3. Partisi harddisk yang digunkan untuk menjadwalan software 1 GB. 4. Perangkat output berupamonitor LCD 13”


(62)

Adapun spesifikasi perangkat lunak yang digunakan adalah sebagai berikut: 1. Operating system Microsoft Windows XP SP2.

2. Microsoft Visual Studio 2008 (Microsoft Visual C#.NET2008) 3. XML.

4.2 Pengujian

Pengujian dilakukan untuk melihat apakah algoritma greedy dan graph coloring heuristic dapat mengoptimalkan penggunaan ruangan yang tersedia tanpa terjadi konflik waktu perkuliahan antarmata kuliah yang berhubungan.

4.2.1 Data Awal

Pada awalnya, tab data awal tidak berisi data apapun. User dapat memilih data mata kuliah mana yang akan digunakan dengan menggunakan tombol buka. Tampilan awal tab data awal dapat dilihat pada Gambar 4.1. Hal ini dapat dilihat dari Gambar 4.1 dan Gambar 4.2


(63)

Gambar 4.2 Memilih data mata kuliah yang akan dijadwalkan

Setelah memilih data mata kuliah yang akan dijadwalkan, maka tabel yang berisi mata kuliah muncul pada tabel data mata kuliah dan data mata kuliah awal ini bersifat acak. Data mata kuliah yang sudah ada dapat ditambah, diubah atau perbaharui dan dihapus selama tidak menyalahi batasan atau aturan atau kondisi yang telah ditetapkan dalam

prototype ini. Sebagai contoh, data mata kuliah yang dipilih adalah dataMK.xml, maka isi tabel data mata kuliah dapat dilihat pada Gambar 4.3.


(1)

Liliana. 2005. Aplikasi Coloring Graf Dalam Menyelesaikan Masalah Penjadualan. http://fportfolio.petra.ac.id/user_files/03-024/SniktiScheduling.doc. Diakses pada tanggal 27 Juni 2008.

Lipschutz, Seymor dan Lipson, M. L. 2002. Seri Penyelesaian Soal Schaum: Matematika Diskrit 2. Jakarta: Salemba Teknika.

Miner, S., Elmohamed, S., dan Yau, H, W. 1995. Optimizing Timetabling Solutions Using Graph Coloring. http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=63347D70633F37D C18D7829165E0A33A?doi=10.1.1.57.6026&rep=rep1&type=pdf. Diakses pada tanggal 10 Oktober 2008.

Munir, Rinaldi. 2005. Matematika Diskrit. Edisi ke-3. Bandung: Informatika.

Musa, P. 2005. Pengantar Inteligensia Buatan – Heuristic Searching. http://p_musa.staff.gunadarma.ac.id/Downloads/files/7664/Heuristic-search.pdf. Diakses tanggal 7 Desember 2009

Narsingh Deo. 1980. Graph Theory with Application to Engineering and Computer Science. New Delhi: Prentice Hall of India Private Limited.

Pinedo, M dan C, Xiuli. 1999. Operations Scheduling with Applications in Manufacturing and Services. http://www.stern.nyu.edu/om/faculty/pinedo/book2/downloads/Nottingham/07_ Graph%20Colouring%20heuristics.pdf. Diakses pada tanggal 11 Agustus 2008.

Reld, T, A. 2004. A Study of University Timetabling that Blends Graph Coloring with the Satisfaction of Various Essential and Preferential Conditions. http://scholarship.rice.edu/bitstream/handle/1911/18687/3122528.PDF?sequence =1. Diakses tanggal 15 Oktober 2008.

Schaerf A. A Survey of Automated Timetabling. 2005. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.20.9160&rep=rep1&t ype=pdf. Diakses tanggal 11 Agustus 2008.


(2)

Lampiran: Data Mata Kuliah Semester Ganjil FMIPA USU T.A 2008/2009

         

ID KodeMK NamaMK SKS Fakultas 1 BIO302 Metode Penelitian dan Teknik Penulisan Ilmiah 2 BIO

2 BIO304 Evolusi 2 BIO

3 BIO306 Prinsip Bioteknologi 2 BIO

4 BIO320 Enzimologi 2 BIO

5 BIO322 Biologi Mikroba Penyakit Tumbuhan 2 BIO

6 BIO324 Mikologi 2 BIO

7 BIO340 Taksonomi Tumbuhan Berpembuluh 2 BIO 8 BIO342 Ikhtiologi/Biologi Ikan 2 BIO

9 BIO344 Biologi Laut 2 BIO

10 BIO360 Mikroteknik 2 BIO

11 BIO366 Botani Ekonomi 2 BIO

12 BIO380 Genetika Tumbuhan 2 BIO

13 BIO420 Mikrobiologi Pangan 2 BIO

14 BIO442 Ekologi Tumbuhan 2 BIO

15 BIO444 Ornitologi 2 BIO

16 BIO446 Pengelolaan Limbah 2 BIO

17 BIO460 Endrokrinologi 2 BIO

18 BIO462 Toksikologi 2 BIO

19 BIO464 Teratologi 2 BIO

20 EKM257 Pengantar Managemen 2 BIO

21 POB413 Ekologi Hutan 2 BIO

22 POB421 Ekologi Hewan Tanah 2 BIO

23 POB423 Ekologi Serangga 2 BIO

24 UNI106 Pendidikan Kewarganegaraan 2 BIO

25 UNI109 Ilmu Budaya Dasar 2 BIO

26 UNI210 Etika dan Estetika 2 BIO

27 BIO100 Biologi Dasar 3 BIO

28 BIO200 Sistematika Tumbuhan 3 BIO

29 BIO202 Sistematika Hewan 3 BIO

30 BIO204 Ekologi Umum 3 BIO

31 BIO206 Biokimia 3 BIO

32 BIO300 Biologi Sel dan Molekuler 3 BIO

33 BIO308 Biostatistika 3 BIO

34 BIO382 Genetika Sel 3 BIO

35 BIO384 Genetika Mikroba 3 BIO

36 BIO422 Genetika Mikroba 3 BIO

37 BIO440 Etnobotani 3 BIO

38 FIS100 Fisika Dasar 3 BIO


(3)

40 MAT100 Matematika Dasar 3 BIO

41 FII401 PLC 2 FIS

42 FII403 Digital Kontrol 2 FIS

43 FII404 Jaringan Komputer 2 FIS

44 FII405 Instrumentasi Analisis 2 FIS 45 FII406 Optoelektronik dan Aplikasi Laser 2 FIS 46 FIM402 Fisika dan Teknologi Polimer 2 FIS 47 FIM404 Fisika Superkonduktor 2 FIS 48 FIM405 Film Tipis dan Nano Teknologi 2 FIS 49 FIM406 Material Listrik dan Magnetik 2 FIS

50 FIM407 Material Komposit 2 FIS

51 FIS202 Fisika Komputasi I 2 FIS

52 FIS204 Elektronika Dasar I 2 FIS

53 FIS205 Fisika Mekanika I 2 FIS

54 FIS301 FIsika Zat Padat I 2 FIS

55 FIS305 Fisika Statistik 2 FIS

56 FIS311 Metode Penelitian dan Seminar 2 FIS

57 FIT401 Analisia Reaktor 2 FIS

58 FIT402 Energi Nuklir 2 FIS

59 FIT403 Fisika Ekonomi 2 FIS

60 FIT404 Metode Fungsi Green 2 FIS 61 FIT405 Fisika Komputasi Lanjutan 2 FIS

62 FIT406 Metode Variasi 2 FIS

63 FIT407 Operasional Riset 2 FIS

64 FIT408 Kapita Selekta 2 FIS

65 FIU101 Fisika Dasar 2 FIS

66 FIU102 Fisika Dasar II 2 FIS

67 FIU105 Metode Eksperimen 2 FIS

68 FIU106 Matematika Dasar I 2 FIS

69 FIU107 Matematika Dasar II 2 FIS

70 FIU110 Kimia Dasar 2 FIS

71 FIU111 Pemrograman Komputer I 2 FIS

72 UNI201 Bahasa Indonesia 2 FIS

73 UNI301 Enterpreneurship 2 FIS

74 FIM401 Fisika dan Teknologi Keramik 3 FIS 75 FIM403 Fisika dan Teknologi Semikondoktor 3 FIS

76 FIS201 Fisika Modern 3 FIS

77 FIS203 Fisika Gelombang 3 FIS

78 FIS207 Fisika Matematika I (Probabilitas dan Statistik) 3 FIS

79 FIS303 Fisika Inti 3 FIS

80 FIU301 Fisika Matematika III 3 FIS 81 FII402 Mikroprosesor dan Interface 4 FIS


(4)

82 FIS304 Fisika Kuantum 4 FIS

83 PAK241 Kimia Fisika II 2 KIM

84 PAK311 Kimia Analitik II 2 KIM

85 PAK341 Kimia Fisika IV 2 KIM

86 PAK343 Kimia Inti Radiasi 2 KIM

87 PAK351 Biokimia I 2 KIM

88 PAK353 Mikrobiologi 2 KIM

89 PAK401 Penelitian Kimia 2 KIM

90 PAK431 Proses Agrokimia 2 KIM

91 PAK441 Kimia Permukaan dan Koloid 2 KIM

92 PAK451 Mikrobiologi 2 KIM

93 PAK461 Kimia Organik Bahan Alam III 2 KIM 94 POK411 Analisis Pencemaran dan Pengendalian 2 KIM

95 POK413 Analisis Renik 2 KIM

96 POK415 Analisis Otomatis 2 KIM

97 POK417 Analisis Bahan Berbahaya di Industri 2 KIM 98 POK421 Teknologi Pengelohan Limbah Anorganik 2 KIM 99 POK423 Bahan Pengisi Anorganik 2 KIM 100 POK425 Kimia Industri Anorganik Terapan 2 KIM 101 POK427 Kimia Organologam Transisi 2 KIM 102 POK431 Kimia Organik Parfum dan Flavor 2 KIM 103 POK433 Proses Industri Kimia Organik 2 KIM 104 POK443 Kimia Elektri dan Korosi 2 KIM 105 POK445 Pengolahan Lombah Polimer Komersil 2 KIM 106 POK447 Pengolahan Kimia Karet 2 KIM

107 POK449 Kimia Katalis 2 KIM

108 POK451 Teknologi Enzim 2 KIM

109 POK453 Biokimia Hormon 2 KIM

110 POK455 Teknologi Pangan 2 KIM

111 POK457 Teknik Penelitian Biokimia 2 KIM 112 POK461 Kimia Organik Bahan Alam Berkhasiat 2 KIM 113 POK463 Teknik Isolasi Kimia Organik Bahan Alam 2 KIM 114 SPU201 Ilmu Sosial Dasar 2 KIM

115 PAB101 Biologi Dasar 3 KIM

116 PAF101 Fisika Dasar I 3 KIM

117 PAK101 Kimia Dasar I 3 KIM

118 PAK211 Kimia Analitik I 3 KIM

119 PAK221 Kimia Anorganik I 3 KIM 120 PAK231 Mekanisme Reaksi Kimia Organik 3 KIM 121 PAK321 Kimia Anorganik III 3 KIM 122 PAK361 Kimia Organik Bahan Alam I 3 KIM


(5)

124 PAM201 Matematika II 3 KIM 125 POK441 Proses Kimia Industri 3 KIM 126 MAK401 Pemrograman Aplikasi Sains 2 MAT

127 MAM404 Manajemen 2 MAT

128 MAO401 Metode Simulasi 2 MAT

129 MAP401 Optimasi Kombinatorik 2 MAT

130 MAP403 Koding Teori 2 MAT

131 MAP405 Metode Nilai Batas 2 MAT

132 MAP407 Ekometrika 2 MAT

133 MAP409 Statistika Multivariat 2 MAT

134 MAP411 Managemen Risiko 2 MAT

135 MAP413 Penambangan Data 2 MAT

136 MAP415 Metodelogi Penelitian Pemasaran 2 MAT

137 MAP417 Jaringan Syaraf 2 MAT

138 MAP419 Gudang Data 2 MAT

139 MAP421 Sistem Database 2 MAT

140 MAP422 Pengantar Kecerdasan Buatan 2 MAT

141 MAP423 Grafika Komputer 2 MAT

142 MAS305 Teori dan Komputasi Matriks 2 MAT 143 MAS405 Sample Survey Teori 2 MAT 144 MAT107 Dasar Pemrograman I 2 MAT 145 MAT201 Kalkulus Peubah Banyak 2 MAT

146 MAT205 Metode Numerik 2 MAT

147 MAT305 Analisis Numerik 2 MAT

148 MAT401 Metode Penelitian 2 MAT

149 MAT403 Seminar Matematika 2 MAT

150 MAK301 Pemrograman Java 3 MAT

151 MAK303 Organisasi Komputer 3 MAT

152 MAM301 Analisis Riel II 3 MAT

153 MAM303 Teori Komputasi Matriks 3 MAT 154 MAM401 Metode Elemen HIngga 3 MAT

155 MAO301 Program Linear 3 MAT

156 MAO303 Teori Keputusan 3 MAT

157 MAS301 Regresi Linear 3 MAT

158 MAS303 Statistik Non Paramatik 3 MAT 159 MAS401 Statistika Multivariat 3 MAT 160 MAT103 Pengantar Teori Peluang 3 MAT 161 MAT105 Konsep Dasar Matematika 3 MAT 162 MAT203 Persamaan Differensial Biasa I 3 MAT 163 MAT209 Pengantar Himpunan Kabur 3 MAT 164 MAT301 Differensial Geometri 3 MAT


(6)

166 MAT307 Kombinatorika 3 MAT 167 MAT405 Persamaan Differensial Parsial 3 MAT

168 MAT407 Proses Stokastik 3 MAT

169 MAT101 Kalkulus I 4 MAT

170 MAT207 Analisis Riel I 4 MAT

171 MAT211 Matematika Diskrit 4 MAT

172 UNI101 Agama Islam 2

173 UNI102 Agama Katolik 2

174 UNI103 Agama Protestan 2

175 UNI104 Agama Budha 2

176 UNI105 Agama Hindu 2

177 UNI107 Bahasa Indonesia 2