• Tidak ada hasil yang ditemukan

Penjadualan Mata Kuliah Dengan Metode Graph Coloring Heuristic

N/A
N/A
Protected

Academic year: 2016

Membagikan "Penjadualan Mata Kuliah Dengan Metode Graph Coloring Heuristic"

Copied!
78
0
0

Teks penuh

(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

(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

(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,

(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

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

(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

(7)

COURSE TIMETABLING WITH GRAPH COLORING HEURISTIC METHOD

ABSTRACK

(8)

DAFTAR ISI

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

(13)

COURSE TIMETABLING WITH GRAPH COLORING HEURISTIC METHOD

ABSTRACK

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

(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

(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

(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

(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

(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,

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

(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

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

(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

(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

(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

(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

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

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

(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

(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

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

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

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

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

(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

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

(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>

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:

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

(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

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

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

(51)

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

Mulai Jika MK empat digit

pertama kode MK

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

(53)

Gambar 3.5 Menunjukkan Flowchart Penyusunan Mata Kuliah Bebas Konflik.

Jika MK empat digit pertama kode MK dan

Fakultas sama

(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

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

(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

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

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

(64)

4.2.2 Langkah Satu

Pada langkah 1, data mata kuliah pada tabel langkah awal diurut secara menaik berdasarkan sks dan kode mata kuliah. Pengurutan dilakukan denga menggunakan algoritma quick sort. Pengurutan berdasarkan sks dmulai dari dua sks s.d. empat sks, sedangkan untuk kode mata kuliah dimulai dari huruf abjad B s.d. huruf abjad U. Isi dari tabel langkah satu mata kuliah dapat dilihat dari Gambar 4.4.

Gambar 4.4 Daftar Mata Kuliah pada Langkah Satu

4.2.3 Langkah Dua

Pada langkah dua, data mata kuliah yang telah terurut pada tabel langkah satu diberikan hari dan waktu berdasarkan pengelompokkan sks, dimana:

a. mata kuliah dengan sks 2 diberikan hari senin atau rabu atau jumat dengan waktu pagi, siang1, siang2 dan sore.

b. mata kuliah dengan sks 3 diberikan hari senin atau selasa atau rabu atau kamis atau jumat dengan waktu pagi, siang1 dan sore.

(65)

Pemberian hari dan waktu dilakukan berulang-ulang sampai semua hari dan waktu data mata kuliah yang ada dalam tabel terpenuhi. Hal ini dapat dilihat pada Gambar 4.5

Gambar 4.5 Daftar Mata Kuliah pada Langkah Dua

4.2.4 Langkah Tiga

(66)

Gambar 4.6 Daftar Mata Kuliah dan Jadwal Sementara pada Langkah Tiga

4.2.5 Langkah Empat

(67)

Gambar 4.7 Daftar Mata Kuliah Konflik dan Jadwal Sementara pada Langkah Empat

4.2.6 Langkah Lima

(68)

Gambar 4.8 Daftar Mata Kuliah Konflik dan Jadwal Sementara pada Langkah Lima

4.2.7 Mata Kuliah Bebas Konflik

(69)
(70)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Kesimpulan yang didapat selama pembangunan prototype sistem penjadualan mata kuliah adalah:

a. Siapa saja dapt menjadi user untuk prototype sistem penjadualan perkuliahan yang dibangun dapat, tetapi diharapkan usernya adalah tata usaha.

b. Graph coloring heuristic hanya sebagai metode yang digunakan untuk memudahkan pengidentifikasian mata kuliah konflik, bukan sebagai hasil akhir.

c. Semakin banyak mata kuliah maka semakin sulit untuk mengatur jadwal mata kuliah sehingga waktu dan ruangan yang telah dibuat kurang optimal (tidak semua ruangan dan waktu dalam satu hari terisi penuh).

d. Dengan adanya banyak aturan dalam pembuatan prototype sistem penjadualan perkuliahan ini, maka ketika pengecekan dan penempatan mata kuliah perlu dibuat sebuah fungsi yang kostum sesuai dengan aturan yang ada. Misalnya: tidak boleh ada mata kuliah pada jam 11:20 s.d. 13:00 (waktu shalat jumat bagi yang muslim) dan juga dengan adanya mata kuliah pilihan dan mata kuliah konsentrasi, dimana mata kuliah kosentrasi tidak boleh dijadwalkan pada jam yang sama dan harus dijadwalkan pada ruangan dan jam yang berbeda.

Gambar

Gambar 2.1 Jembatan Konigsberg
Gambar 2.2 Model Graph Jembatan Konigsberg
Gambar 2.3 Graph yang memiliki χ(G) = 4
Tabel 2.1 Penjadualan Mata Kuliah
+7

Referensi

Dokumen terkait

Terlampir bersama surat ini kami sertakan dokumen-dokumen yang disyaratkan dalam Pengumuman Pelelangan Umum Pengadaan Motor Induction Generator Jacking Oil Pump dan

Dengan kuasa resmi untuk mewakili dan bertindak untuk dan atas nama (………….) dan setelah memeriksa serta memahami sepenuhnya seluruh isi pengumuman Pelelangan

Daftar Pembimbingan Karya Ilmiah 1 SKS Mahasiswa Program Studi Agribisnis Semester Ganjil Tahun Akademik 2018/2019.. Kode MK Nama MK KELAS NIM NAMA ANGKATAN Kelompok

Komputerisasi telah berkembang, yang semula penjualan suku cadang masih dilakukan dengan cara sistem manual yaitu dengan cara konsumen datang langsung ke lokasi maka

5.5 Memaklumkan kepada Unit Panggilan Tender dan Sebut Harga Rasmi Bahagian Pengurusan Perolehan / Unit Perolehan Pejabat Bendahari UiTM Negeri jika tiada wakil dapat hadir pada

Hal ini kemungkinan dikarenakan tenaga pengolah makanan di Instalasi Gizi belum ada yang memiliki sertifikat kursus hygiene sanitasi makanan seperti yang disaratkan

Yaitu situs pembelajaran yang berbasis internet, artikel, rancangan pengajaran dan lain – lainnya.. Berdasarkan pembahasan diatas, nampaklah bagi kita bahwa kehadiran internet

Skripsi yang berjudul ”Pengaruh Perawatan Luka dengan Madu Terhadap Penyembuhan Luka Klien Kusta di Wilayah Kerja Puskesmas Jenggawah Kabupaten Jember” telah diuji