Efficiency Improvement of Exam Scheduling System Using Answer Set Programming

PENINGKATAN EFISIENSI SISTEM PENJADWALAN UJIAN
MENGGUNAKAN ANSWER SET PROGRAMMING

PAULUS BANGUN KURNIANTO

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012

PENINGKATAN EFISIENSI SISTEM PENJADWALAN UJIAN
MENGGUNAKAN ANSWER SET PROGRAMMING

PAULUS BANGUN KURNIANTO

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
Departemen Ilmu Komputer


DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012

ABSTRACT
PAULUS BANGUN KURNIANTO. Efficiency Improvement of Exam Scheduling System Using
Answer Set Programming. Supervised by MUSHTHOFA.
Scheduling tasks has been known to be computationally expensive and some of this problem has
been shown to be NP-complete. Previous research has been done to build a system that applied
Answer Set Programming (ASP) to solve the problem of exam scheduling for the undergraduate
Major-Minor System in Bogor Agricultural University. The results showed that the system is capable
of generating exam schedule in acceptable time for relatively small-sized datasets, but not for biggersized datasets. The purpose of this research is to improve the performance of the exam scheduling
system. In this research, we used clingo, a part of Potassco, as the ASP solver. The results of this
system showed that there were efficiency improvements in the process time by 33,72% and the space
used during the process by 51,93%. This system is also capable of generating exam schedule for
bigger-sized data than the previous system.
Keywords: answer set programming, clingo, Potassco, scheduling


Judul Skripsi : Peningkatan Efisiensi Sistem Penjadwalan Ujian Menggunakan Answer Set
Programming
Nama
: Paulus Bangun Kurnianto
NIM
: G64070099

Menyetujui:
Pembimbing

Mushthofa, S.Kom, M.Sc
NIP. 19820325 200912 1 003

Mengetahui:
Ketua Departemen,

Dr. Ir. Agus Buono, M.Si., M.Kom.
NIP. 19660702 199302 1 001

Tanggal Lulus:


KATA PENGANTAR
Pujian dan syukur kepada Tuhan Yesus atas karunia dan penyertaan-Nya sehingga karya tugas
akhir ini dapat terselesaikan dengan baik.
Penulis menyampaikan terima kasih kepada:
1 Kedua orang tua, atas doa, nasihat, kesempatan, dan dukungan sehingga penulis dapat
menyelesaikan karya ini,
2 Bapak Mushthofa, S.Kom, M.Sc yang telah membimbing hingga terselesaikannya karya ini.
Terima kasih atas bimbingan, saran, nasihat, motivasi, dan pelajaran yang diberikan sehingga
penulis dapat mencapai tahap ini,
3 Sahabat-sahabat penulis dari Pink House, Wisma Galih, Sigap, rekan Dota, terima kasih atas
tawa-canda-cerita, kebersamaan, dan saran selama proses penyelesaian karya ini,
4 Teman-teman seperjuangan Ilkom 44,
5 Segenap dosen dan staf pendukung Departemen Ilmu Komputer, dan
6 Semua pihak yang telah memberikan doa, semangat, dan bantuan dalam penyelesaian karya
ini.
Penulis menyadari bahwa karya ini masih terdapat kekurangan. Penulis berharap semoga hasil
karya dan penelitian ini dapat berguna dan memberikan manfaat.

Bogor, September 2012


Paulus Bangun Kurnianto

RIWAYAT HIDUP
Penulis dilahirkan di Jakarta pada tanggal 1 September 1989 dan merupakan bungsu dari tiga
bersaudara yang terlahir dari pasangan Basuki dan Muryani. Penulis lulus dari Sekolah Menengah
Atas Katolik Ricci II Tangerang di tahun 2007. Di tahun yang sama, Penulis melanjutkan pendidikan
di Institut Pertanian Bogor melalui Seleksi Penerimaan Mahasiswa Baru sebagai mahasiswa
Departemen Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam IPB.
Selama kuliah, Penulis berkesempatan menjadi asisten Mata kuliah Pengantar Pengolahan
Citra Digital, berpartisipasi dalam kegiatan IT Today, dan melaksanakan Praktik Kerja Lapangan di
PT Pertamina Refinery Unit VI Balongan Indramayu.

DAFTAR ISI
Halaman
DAFTAR TABEL....................................................................................................................... vi
DAFTAR GAMBAR .................................................................................................................. vi
DAFTAR LAMPIRAN ............................................................................................................... vi
PENDAHULUAN ....................................................................................................................... 1
Latar Belakang ........................................................................................................................ 1

Tujuan ..................................................................................................................................... 1
Ruang Lingkup ........................................................................................................................ 1
Manfaat Penelitian ................................................................................................................... 1
TINJAUAN PUSTAKA ............................................................................................................... 1
Logic Programming ................................................................................................................. 1
Answer Set Programming......................................................................................................... 2
Answer Set Programming Syntax.............................................................................................. 2
Answer Set Programming Semantics ........................................................................................ 2
Answer Set Solver .................................................................................................................... 4
METODE PENELITIAN ............................................................................................................. 5
Analisis Permasalahan ............................................................................................................. 5
Praproses Data ......................................................................................................................... 5
Representasi dengan ASP......................................................................................................... 5
Pengembangan Sistem ............................................................................................................. 5
Pengujian Penjadwalan ............................................................................................................ 6
Evaluasi ................................................................................................................................... 6
HASIL DAN PEMBAHASAN..................................................................................................... 6
Permasalahan Penjadwalan Ujian ............................................................................................. 6
Praproses data .......................................................................................................................... 6
Representasi dengan ASP......................................................................................................... 7

Pengembangan Sistem ........................................................................................................... 11
Pengujian Penjadwalan .......................................................................................................... 12
Evaluasi ................................................................................................................................. 12
KESIMPULAN DAN SARAN................................................................................................... 15
Kesimpulan ........................................................................................................................... 15
Saran ..................................................................................................................................... 15
DAFTAR PUSTAKA ................................................................................................................ 15
LAMPIRAN .............................................................................................................................. 17

v

DAFTAR TABEL
Halaman
1
2
3
4
5
6
7


Daftar tabel dan deskripsi tabel pada database ..................................................................... 6
Pembagian slot waktu .......................................................................................................... 8
Keterangan gabungan fakultas-fakultas pada dataset kelompok II ...................................... 12
Hasil penjadwalan dataset kelompok I oleh kedua sistem ................................................... 12
Pemakaian memori maksimal setiap dataset kelompok I oleh kedua sistem ........................ 13
Hasil penjadwalan dataset kelompok II oleh kedua sistem.................................................. 14
Pemakaian memori maksimal setiap dataset kelompok II oleh kedua sistem ....................... 14

DAFTAR GAMBAR
Halaman
1
2
3
4
5
6
7
8
9

10
11
12
13
14

Problem solving dalam ASP. ............................................................................................... 2
Semua interpretasi terhadap program . ............................................................................. 3
Graph dengan 6 nodes dan 17 edges .................................................................................... 4
Ilustrasi answer set dari graph. ............................................................................................ 4
Tahapan metode penelitian .................................................................................................. 5
Diagram alir Sistem Penjadwalan Ujian IPB. ....................................................................... 5
Pengelompokkan data mahasiswa ........................................................................................ 7
Persebaran jadwal................................................................................................................ 8
Grafik jadwal waktu setelah aturan pemerataan .................................................................... 9
Arsitektur Sistem Penjadwalan .......................................................................................... 11
Grafik waktu penjadwalan dataset kelompok I oleh kedua sistem ....................................... 13
Grafik pemakaian memori dataset kelompok I oleh kedua sistem ....................................... 13
Grafik waktu penjadwalan dataset kelompok II oleh kedua sistem...................................... 14
Grafik pemakaian memori dataset kelompok II oleh kedua sistem ...................................... 15


DAFTAR LAMPIRAN
Halaman
1
2
3
4
5
6
7

Kode ASP fakta pengambilan oleh grup mahasiswa ........................................................... 18
Kode ASP fakta mata kuliah .............................................................................................. 19
Kode ASP fakta paralel ..................................................................................................... 20
Kode ASP fakta ruangan.................................................................................................... 21
Data ukuran data KRS, banyak mahasiswa, jumlah mata kuliah serta paralel dataset
kelompok I ........................................................................................................................ 22
Data ukuran data KRS, banyak mahasiswa, jumlah mata kuliah serta paralel dataset
kelompok II....................................................................................................................... 23
Hasil Penjadwalan ............................................................................................................. 24


vi

1

PENDAHULUAN
Latar Belakang
Penjadwalan adalah sebuah permasalahan
komputasional yang banyak terdapat pada
institusi, salah satunya adalah IPB. Penjadwalan
yang dilakukan di IPB, dalam kasus ini
penjadwalan ujian, masih dilakukan secara
manual. Hal ini sendiri bukan merupakan hal
yang mudah dan hasil yang didapat pun masih
kurang baik karena masih terdapat bentrokan
waktu pelaksanaan ujian. Bentrokan waktu
pelaksanaan ujian adalah ketika terdapat satu
atau lebih mahasiswa yang mendapat jadwal
ujian untuk dua atau lebih mata kuliah yang
berbeda, dan biasanya akan sulit mencari jadwal

pengganti dari mata kuliah tersebut. IPB
menerapkan sistem
Mayor-Minor
yang
membuat setiap mahasiswa dapat mengambil
mata kuliah di luar departemen utamanya
(Mayor) melalui program Minor dan Supporting
Course. Menurut buku panduan program
sarjana IPB edisi 2007, terdapat 36 mayor dan
70 minor di IPB yang membuat semakin
beragamnya pengambilan mata kuliah oleh
mahasiswa. Hal ini menambah kerumitan dalam
pembuatan jadwal ujian.
Answer set programming merupakan teknik
pemrograman berparadigma deklaratif yang
cenderung lebih cepat untuk mendapatkan
solusi dari suatu permasalahan dibandingkan
dengan pemrograman imperatif (Lifschitz
2008). Pemrograman berparadigma deklaratif
bekerja dengan pernyataan-pernyataan logika
berupa aturan-aturan dan fakta-fakta untuk
mendapatkan solusi dari suatu permasalahan,
sedangkan
pemrograman
berparadigma
imperatif bekerja dengan perintah-perintah
komputasi yang harus dilakukan oleh komputer
untuk permasalahan yang sama. Answer set
programming menjadi metode yang sering
digunakan untuk penyelesaian masalah secara
deklaratif di bidang Knowledge Representation
and Reasoning karena kemudahannya dalam
pemodelan dan performa yang tinggi dalam
penyelesaian permasalahan.
Potassco adalah kumpulan tool untuk
answer set programming yang dikembangkan di
University of Potsdam. Potassco memiliki
performa yang baik dan merupakan pemenang
dalam The Second Answer Set Programming
Competition dengan skor paling tinggi di antara
sistem-sistem ASP yang dipertandingkan
(Denecker et al. 2009).
Penelitian
memodelkan

Hunt
(2010)
berhasil
permasalahan
penjadwalan

perkuliahan
menggunakan
Answer
Set
Programming.
Pada penelitian
tersebut
dilakukan pendaftaran mahasiswa terhadap
mata kuliah dan kemudian ditempatkan dengan
jadwal yang sesuai. Penelitian sebelumnya oleh
Zulkaryanto (2011) telah mengembangkan
model penyelesaian permasalahan penjadwalan
ujian Program Studi S1 Sistem Mayor-Minor
Institut Pertanian Bogor beserta prototipe
sistemnya. Penelitian tersebut masih memiliki
beberapa kekurangan, yaitu belum adanya
mekanisme penjadwalan untuk kelas paralel dan
belum mampu menjadwalkan seluruh data KRS.
Oleh karena itu, penelitian ini akan
memperbaiki representasi logika penjadwalan
pada penelitian Zulkaryanto (2011) dengan
menambahkan mekanisme penjadwalan untuk
kelas paralel serta memperbaiki efisiensi agar
dapat menjadwalkan menggunakan data yang
lebih besar.
Tujuan
Tujuan penelitian ini ialah:
 memperbaiki
representasi
logika
penjadwalan pada penelitian sebelumnya
dengan
menambahkan
mekanisme
penjadwalan untuk kelas paralel.
 memperbaiki efisiensi penjadwalan pada
penelitian
sebelumnya
agar
dapat
menjadwalkan menggunakan data yang
lebih besar.
Ruang Lingkup
Ruang lingkup dari penelitian ini ialah:
 Penjadwalan ujian hanya untuk Program
Studi S1 Sistem Mayor-Minor Institut
Pertanian Bogor pada satu masa ujian
semester.
 Pengembangan sistem terbatas pada
pembentukan representasi logika, belum
pengembangan sistem informasi lengkap.
Manfaat Penelitian
Penelitian ini diharapkan dapat menjadi
referensi untuk pemodelan dan pengembangan
sistem penjadwalan ujian di IPB lebih lanjut.

TINJAUAN PUSTAKA
Logic Programming
Logic programming adalah sebuah teknik
pemrograman dengan paradigma deklaratif
yang dikodekan dalam bentuk aturan (rule) dan
fakta (fact). Kowalski (1979) menyatakan
bahwa sebuah algoritme A terdiri atas

2

komponen logika L dan komponen kontrol C.
Komponen logika L merupakan komponen yang
menjelaskan logika algoritme dan komponen
kontrol C merupakan komponen yang
menentukan cara yang digunakan. Secara
simbolis ditulis dengan persamaan berikut:
Kowalski (1979) menambahkan bahwa
efisiensi dari sebuah algoritme dapat
ditingkatkan dengan meningkatkan efisiensi
dari komponen kontrol tanpa mengganti
komponen logika dan tanpa mengubah arti
algoritme tersebut.
Answer Set Programming
Answer set programming (ASP) merupakan
sebuah pemrograman berparadigma deklaratif
yang ditujukan untuk permasalahan pencarian
yang sulit, seperti NP-hard. Dalam ASP,
masalah pencarian direduksi dengan melakukan
komputasi stable model dan dengan answer set
solver, sebuah program untuk membangkitkan
stable model, digunakan untuk melakukan
pencarian (Lifschitz 2008).
Pada pemrograman menggunakan ASP,
algoritme
untuk
memecahkan
sebuah
permasalahan tidak perlu dituliskan seperti
halnya pada pemrograman imperatif. Hal yang
haruslah dilakukan ialah menuliskan aturanaturan yang bersesuaian untuk mendapatkan
solusi dari masalah yang dikerjakan. Karena
seperti yang telah dikemukakan oleh Kowalski
(1979), Algoritme = Logika + Kontrol. Langkah
kerja ASP ditunjukkan pada Gambar 1 .

Answer Set Programming Syntax
Sintaks dari answer set programming adalah
himpunan aturan yang berbentuk: A0  A1, ….,
Am, Am+1, …, not Am+1, …, not An, dengan n≥ m
≥0, dan setiap Ai (0 ≤ i ≤ n) adalah atom.
Sintaks terdiri atas simbol-simbol konstanta
dan variabel, simbol predikat, atom, head, dan
body. Head bisa terdiri atas disjungsi fakta atau
atom. Bagian sebelah kanan adalah body. Body
terdiri atas dua jenis yaitu body+ dan body-.
Untuk penulisannya dapat diasumsikan
bahwa setiap simbol konstanta dan simbol
predikat baik string yang dimulai dengan huruf
kecil atau kutip dua(“) contohnya: a,b,c. Di sisi
lain, simbol variabel boleh string yang dimulai
dengan huruf besar, contohnya: X, Y, Z.
Berikut adalah contoh dari sebuah sintaks:
a V b  c, d, not e.
Notasi:
Head adalah {a,b}, body+ adalah {c,d},
body- adalah {e}. Sebuah model dikatakan
safe jika semua yang ada di body+ ada pada
head dan semua yang ada di body- tidak ada
pada head. Contoh model untuk sintaks di atas
adalah: { }, {a}, {a,c}.
Bentuk aturan tanpa head disebut integrity
constraint atau hard constraint. Aturan dengan
minimal satu buah head disebut normal rule.
Bentuk aturan dengan head > 1 disebut
disjunctive rule. Jika bagian body kosong
(
), aturan disebut fakta. Dalam
penulisan, simbol “ ” biasanya dihilangkan.
Himpunan dari aturan-aturan tersebut disebut
dengan extended disjunctive logic program
(EDLP) atau biasa disebut program .
Answer Set Programming Semantics

Gambar 1 Problem Solving dalam ASP.
Pemrograman
pada
ASP
umumnya
menggunakan
metode
generate-and-test.
Program ASP terdiri atas dua bagian utama,
yaitu: aturan-aturan untuk membangkitkan
solusi-solusi yang mungkin terjadi dan aturanaturan untuk melakukan pengecekan terhadap
semua solusi yang terbentuk, apakah memenuhi
persyaratan dari permasalahan yang dihadapi.
Semua solusi yang berhasil melewati
pengecekan adalah jawaban dari permasalahan
tersebut atau yang disebut answer set (Lifschitz
2008).

Semantik
dari
program
logika
didefinisikan untuk program yang telah bebas
dari variabel. Program
yang sudah tidak
mengandung variabel dapat dikatakan sebagai
program ground. Dengan demikian, pertama
kali dilakukan ground instantiation pada
program , yaitu menghilangkan semua variabel
di dalam program .
Herbrand Universe dari program
dinotasikan dengan
merupakan himpunan
semua simbol konstanta yang muncul di . Jika
tidak terdapat simbol kontanta di
,
dengan
merupakan simbol konstanta yang
diambil semena-mena dari , dengan adalah
himpunan semua konstanta. Herbrand Base

3

(
) dari program adalah himpunan semua
literal ground yang dibangun dari simbol
predikat yang muncul di dan simbol konstanta
di
. Sebuah ground instance pada aturan ,
dinotasikan dengan
yang diperoleh
dengan mengganti variabel yang terjadi di
. Himpunan
dengan simbol konstanta di
semua ground instance dari aturan dinotasikan
dengan
Semantik
dari
program
harus
mempertimbangkan program ground positif.
Sebuah himpunan dari literal
dikatakan konsisten jika dan hanya jika setiap
atom
memenuhi
. Sebuah
interpretasi pada program
adalah sebuah
himpunan bagian konsisten dari
. Sebuah
himpunan dari literal memenuhi sebuah aturan
jika dan hanya jika
dengan
Sebuah
dan
himpunan
memenuhi program
jika dan
hanya jika literal memenuhi semua aturanaturan di dalam . Sebuah model dari program
merupakan sebuah interpretasi
dengan memenuhi . Sebuah answer set dari
program
ground positif merupakan
merupakan minimal model dari .
Untuk memperluas definisi semantik pada
program dengan negasi, dikenal transformasi
Gelfond-Lifschitz (transformasi GL) untuk
membebaskan negasi pada program . Pada
transformasi GL dari program P, interpretasi I
adalah atom dari program P. Transformasi GL
yang dilakukan
ini dilambangkan dengan
dengan:
a Menghapus semua aturan
r yang
mempunyai literal negatif
pada tubuh
aturan tersebut dengan
b Menghapus semua literal negatif dari semua
aturan yang tersisa
Sebuah answer set dari program adalah
(dengan
) jika adalah answer set dari
. Semua himpunan answer set dari program
dinotasikan dengan
Program
dikatakan konsisten jika mempunyai paling
tidak satu answer set (
) dan
selainnya dikatakan tidak konsisten.
Pada kasus khusus untuk program definite
Horn (
) diketahui hanya memiliki
satu answer set yang dapat ditemukan dengan
mencari fixpoint terhadap program . Fixpoint
terhadap disebut juga immediate consequence
dan dinotasikan dengan .

didefinisikan sebagai interpretasi dari
program definite Horn. Operator immediate
consequence
didefinisikan sebagai
|
. Selanjutnya , dengan
didefinisikan sebagai
dan
. monoton dan mempunyai satu
least fixpoint, dinotasikan dengan
.
Sebagai contoh, di bawah ini adalah sebuah
program :
a
b
c
c

p, not b
p, not a
a
b
p

Kemungkinan model-model yang sesuai
untuk program di atas dapat dilihat dari
interpretasi pada Gambar 2.
a, b, c, p

a,b,c

a,b

a,b,p

a,c

a,c,p

a,p

a

b,c

b

c

b,c,p

b,p

c,p

p

Ø

Gambar 2 Semua interpretasi terhadap
program .
Dari program tersebut diketahui bahwa
berupa fakta dan selalu bernilai benar serta
harus selalu muncul dalam setiap model. Untuk
menentukan
stable
model
dilakukan
transformasi GL dan menentukan apakah
interpretasi
atau dinotasikan
.
Selanjutnya dipilih
,
,
,
,
,
,
dan
.
Pada
, dilakukan transformasi GL
:
terhadap program sehingga diperoleh
a
b
c
c

p
p
a
b
p

(
Fixpoint dari
{a,b,c,p} sehingga diperoleh

) adalah
. Hal

4

ini berarti bahwa
bukan merupakan stable
model, sedangkan untuk
diperoleh
:
a
c
c

p

buah node yang tersusun dalam sebuah graph
seperti pada Gambar 3.

p
a
b

Kemudian, diperoleh
Jadi,
sehingga
merupakan stable model.
Dengan cara yang sama untuk semua
interpretasi
diperoleh
dan
sebagai stable model dari program dan juga
merupakan answer set dari program .
Answer Set Solver
Answer set solver adalah perangkat yang
dikembangkan untuk mengevaluasi input
pemrograman logika berbasis ASP. Beberapa
answer set solver yang telah dikembangkan
adalah Lparse (Gelfond & Lifschitz 1991), DLV
(Eiter et al. 2006), Potassco (Gebser et al.
2011), SMODELS (Simons et al. 2002), dan
ASSAT (Lin & Zao 2002). Penelitian ini
menggunakan Clingo sebagai answer set solver
dalam pengembangan sistem.
Potassco, singkatan dari Potsdam Answer
Set Solving Collection, adalah sebuah proyek
open-source yang terdiri atas kumpulan tool
untuk
answer
set
programming
dan
dikembangkan di University of Potsdam. Clingo
sendiri adalah gabungan dua tool utama pada
Potassco, yaitu grounder Gringo dan solver
Clasp. Hal ini membuat Clingo memiliki semua
fitur yang terdapat pada Gringo dan Clasp
(Gebser et al. 2011). Clasp mendukung
beberapa perluasan bahasa seperti aturan
cardinality
constraint
dan
condition.
Cardinality constraint berbentuk:
l {A1, … , Am} u

Gambar 3 Graph dengan 6 nodes dan 17 edges.
Graph tersebut direpresentasikan dengan
fakta-fakta berikut:
% Nodes
node(1..6).
% Edges
edge(1,2;3;4).
edge(2,4;5;6).
edge(3,1;4;5).
edge(4,1;2).
edge(5,3;4;6).
edge(6,2;3;5).
Graph 3-Coloring menggunakan metode
generate and test direpresentasikan dengan
aturan-aturan berikut:
% Generate
color(X,1) v color(X,2) v
color(X,3) :- node(X).
% Test
:- edge(X,Y),
color(X,C),color(Y,C).
Salah satu answer set yang terbentuk adalah
sebagai berikut:
Answer: 1
color(1,2) color(2,1) color(3,1)
color(4,3) color(5,2) color(6,3)
Answer set tersebut diilustrasikan dengan
Gambar 4.

yang bermakna untuk setiap model pada answer
set, terdapat atom-atom dari {A1, … , Am}
sejumlah minimal l dan maksimal u. Condition
berbentuk:
{A1 : B1, . . . , Am : Bm}
dengan B1, … , Bm digunakan untuk membatasi
pembentukan variabel yang muncul di A1, …,
Am.
Berikut diberikan contoh penyelesaian
sebuah permasalahan menggunakan ASP.
Permasalahan yang digunakan adalah Graph 3Coloring (Johnson 1979). Misalkan terdapat 6

Gambar 4 Ilustrasi answer set dari graph.

5

METODE PENELITIAN
Penelitian akan dilakukan dalam beberapa
tahap. Gambar 5 menunjukkan tahapan dari
metode penelitian.

penjadwalan waktu, akan dilakukan pemerataan
jumlah jadwal ujian per harinya di setiap set
jadwal yang akan dibentuk.
Pengembangan Sistem
Pada tahap ini dilakukan perancangan sistem
dengan bahasa pemrograman imperatif yang
diintegrasikan dengan ASP. Sistem akan
melakukan pengolahan data dari pengguna,
menuliskan aturan-aturan logika, melakukan
penjadwalan, dan menampilkan jadwal yang
terbentuk. Sistem penjadwalan secara garis
besar digambarkan dengan diagram alir pada
Gambar 6.

Gambar 5 Tahapan metode penelitian.
Analisis Permasalahan
Pada tahap ini dilakukan analisis
permasalahan ujian di IPB, data yang
digunakan, dan kebutuhan perangkat lunak.
Setelah dilakukan analisis akan diketahui
persyaratan-persyaratan pada penjadwalan ujian
di IPB, pengolahan data yang digunakan, serta
sistem yang akan dibuat.
Praproses Data
Pada tahap ini dilakukan analisis terhadap
data yang digunakan, yaitu data semester genap
tahun ajaran 2010-2011. Tabel-tabel data yang
diperlukan untuk melakukan penjadwalan
dibuat.
Representasi dengan ASP
Pada tahap ini dilakukan penulisan
permasalahan penjadwalan secara logika.
Penjadwalan akan dibagi menjadi dua tahap,
yaitu tahap penjadwalan waktu dan dilanjutkan
dengan tahap penjadwalan ruangan. Pada tahap

Gambar 6 Diagram alir Sistem Penjadwalan
Ujian IPB.
Lingkungan
perangkat
pengembangan sistem adalah:

lunak

dalam

 Sistem operasi: Windows 7 Home Premium
64-Bit.
 IDE: Visual Studio 2010 Professional.
 Bahasa pemrograman: C# .Net.
 Answer Set Solver: Potassco.
 Office Tools: Microsoft Excel 2010.
 DBMS: Microsoft Access 2010.
Lingkungan
perangkat
pengembangan sistem adalah:

keras

dalam

 Prosesor: Intel Core2 Duo P8700 @ 2.53
GHz.
RAM:
4 GB.

 HDD: 320 GB.

6

Pengujian Penjadwalan
Pada tahap ini dilakukan penjadwalan
menggunakan sistem dan dataset dengan
banyak pengambilan yang bervariasi. Pada
tahap ini dilakukan juga penjadwalan
menggunakan sistem yang telah dibuat pada
penelitian sebelumnya oleh Zulkaryanto (2011).
Evaluasi
Hasil penjadwalan akan dievaluasi apakah
setiap paralel mata kuliah telah terakomodasi
dalam jadwal yang terbentuk dan bagaimana
distribusi mata kuliah per harinya serta
dilakukan pencatatan durasi proses penjadwalan
untuk setiap dataset sampai menghasilkan
answer set atau tidak. Proses dinyatakan time
out jika durasi proses melebihi dua jam. Pada
penelitian ini juga dilakukan pencatatan memori
maksimum yang digunakan saat pemrosesan
kode ASP oleh Potassco.

HASIL DAN PEMBAHASAN
Permasalahan Penjadwalan Ujian
Permasalahan yang kerap ditemui dalam
penjadwalan ujian di IPB adalah adanya
bentrokan. Ada dua macam bentrokan, yaitu
bentrokan waktu dan ruangan. Bentrokan waktu
terjadi apabila seseorang atau sekelompok
mahasiswa mendapatkan jadwal pelaksanaan
ujian untuk dua atau lebih mata kuliah yang
berbeda, di hari dan waktu yang sama.
Bentrokan ruangan adalah terdapat jadwal
pelaksanaan ujian di suatu ruangan, untuk dua
atau lebih mata kuliah yang berbeda, di hari dan
waktu yang sama.
Beberapa persyaratan yang harus dipenuhi
dalam permasalahan penjadwalan ujian pada
Sistem Mayor-Minor IPB ialah:
1 Hanya ada satu ujian yang dapat
berlangsung dalam satu ruangan dalam satu
waktu tertentu.
2 Satu kelompok mahasiswa hanya mengikuti
satu ujian dalam satu waktu tertentu.
3 Pelaksanaan ujian kelas-kelas paralel suatu
mata kuliah berlangsung serentak tetapi
dengan ruangan pelaksanaan yang berbeda.
4 Setiap ruangan memiliki keterbatasan
kapasitas daya tampung mahasiswa.
5 Waktu pelaksanaan ujian selama dua belas
hari.
Praproses data
Pada penelitian ini, data sumber yang
digunakan adalah data KRS semester genap

tahun ajaran 2010-2011. Pada penelitian ini juga
dibuat sebuah database yang berisi tabel-tabel
data yang diperlukan sistem untuk melakukan
penjadwalan. Daftar tabel beserta deskripsinya
dapat dilihat pada Tabel 1.
Tabel 1 Daftar tabel dan deskripsi tabel pada
database
Nama
Tabel

Deskripsi

Atribut

Menyimpan
data asli
pengambilan
nrp, kode_mk
mata kuliah,
(P),
krs
kelas kuliah
kelaskuliah
(paralel),
dan nrp
mahasiswa
Menyimpan
data mata
mk_tpb
kode_mk (P)
kuliah TPB
Menyimpan
data mata
kuliah yang
mk_tdk_ujian
kode_mk (P)
tidak
melakukan
ujian
Menyimpan
data mata
kuliah yang
mk_ujian
kode_mk (P)
melakukan
ujian
Menyimpan
data
pengambilan
mata kuliah
nrp, kode_mk
mk_krs_ujian
yang
(P)
diujiankan
dan nrp
mahasiswa
Menyimpan
data jumlah
data_ruangan,
peserta tiap
paralel (P),
mk_peserta
mata kuliah
peserta
dan
paralelnya
Menyimpan
data kode
koderuang (P),
ruangan,
namaruang,
data_ruangan nama
lokasi,
ruangan,
kapasitas
lokasi dan
kapasitasnya
Tabel mk_krs_ujian didapat dari data KRS
dengan mata kuliah sama dengan mata kuliah
pada tabel mk_ujian. Tabel mk_peserta

7

didapatkan dari data KRS dan tabel
mk_krs_ujian dengan menghitung banyaknya
mata kuliah dengan paralel yang mata kuliahnya
sama dengan mata kuliah pada tabel
mk_krs_ujian.

Predikat am menyatakan pengambilan suatu
mata kuliah, yang dinyatakan dengan kode, oleh
suatu grup. Maka, pernyataan di atas bermakna
grup pengambilan g7 mengambil mata kuliah
kom333.

Data pengambilan mata kuliah oleh
mahasiswa
yang
didapat
dari
tabel
mk_krs_ujian dibentuk menjadi kelompokkelompok berdasarkan pengambilan mata
kuliah yang sama dan setiap mahasiswa dapat
menjadi anggota dari banyak kelompok.
Contohnya, kelompok G1 berisi semua
mahasiswa yang mengambil mata kuliah
MK001 dan MK002, kelompok G2 berisi semua
mahasiswa yang mengambil mata kuliah
MK002 dan MK003, dan kelompok G3 berisi
semua mahasiswa yang mengambil MK003.
Contoh ini diilustrasikan pada Gambar 7.
Tujuan pembentukan data pengambilan ini
adalah untuk memperkecil ukuran data.

Fakta mata kuliah berisi mata kuliah dan
dimodelkan dengan bentuk:
mk(bik304).
Pernyataan di atas bermakna kode bik304
adalah mata kuliah yang diujiankan.
Fakta paralel berisi mata kuliah dengan
paralel dan jumlah peserta dan dimodelkan
dengan bentuk:
mk(bio222,1399,104).
Pernyataan di atas bermakna terdapat mata
kuliah bio222, paralel bernomor 1399
dengan jumlah peserta sebanyak 104 mahasiswa.
Fakta ruangan berisi kode ruangan dan
kapasitas yang dimodelkan dengan bentuk:
ruang(a00000b1,60).
Pernyataan di atas bermakna terdapat ruangan
dengan kode a00000b1 yang mempunyai
kapasitas peserta sebesar 60 orang.
2 Representasi penjadwalan

Gambar 7 Pengelompokkan data mahasiswa.
Data kelompok mahasiswa yang telah
terbentuk disebut sebagai data pengambilan
dan data dari tabel mk_peserta dan tabel
ruangan akan digunakan oleh sistem untuk
membentuk fakta-fakta yang digunakan pada
penjadwalan.
Representasi dengan ASP
Representasi dengan ASP terbagi menjadi
dua bagian, yaitu representasi input dan
representasi penjadwalan. Representasi input
adalah pembentukan kode ASP untuk faktafakta dari data dan representasi penjadwalan
adalah pembentukan kode ASP untuk aturanaturan dan persyaratan penjadwalan.
1 Representasi input
Fakta-fakta (facts) yang dibentuk terdiri atas
pengambilan, mata kuliah, paralel, dan ruangan.
Fakta kelompok pengambilan didapat dari
pengelompokkan
data
mahasiswa
dan
dimodelkan dengan bentuk:
am(g7,kom333).

Representasi penjadwalan terdiri atas
pembentukan kode ASP untuk kendala-kendala
(constraints) dan aturan-aturan (rules).
Aturan-aturan penjadwalan adalah kode
ASP yang digunakan untuk membangkitkan set
jadwal, yang terbagi menjadi dua bagian, yaitu
aturan-aturan untuk menjadwalkan waktu ujian
dan ruangan ujian. Pada aturan penjadwalan
waktu, akan dibentuk kumpulan jadwal yang
terdiri atas semua mata kuliah, waktu, dan hari
pelaksanaan. Untuk setiap jadwal yang
terbentuk, setiap mata kuliah mendapat jadwal
waktu dan hari tepat satu kali. Tidak ada jadwal
untuk dua atau lebih mata kuliah yang sama.
Pada pembentukan jadwal, suatu mata kuliah
akan diberikan suatu slot waktu dan hari
pelaksanaan. Banyak hari yang digunakan ialah
12 hari dan setiap harinya akan dibagi menjadi
empat slot waktu. Penelitian ini menggunakan 4
slot waktu dalam satu hari dengan lama ujian
adalah 2 jam. Pembagian slot waktu dapat
dilihat pada Tabel 2. Hasil dari tahap
penjadwalan waktu ini akan digunakan sebagai
input pada tahap penjadwalan ruangan. Hasil
dari penjadwalan ruangan adalah jadwal
lengkap setiap mata kuliah dan paralel yang
telah memiliki waktu, hari, dan ruangan.

8

Tabel 2 Pembagian slot waktu
Waktu
08.00 – 10.00
10.00 – 12.00
13.00 – 15.00
15.00 – 17.00

Slot
1
2
3
4

Berikut adalah aturan untuk membentuk
jadwal:
1 { ja(M, 1..4, 1..12) }
1 :- mk(M).
Predikat ja menyatakan set jadwal ujian
untuk mata kuliah yang dibangkitkan dan
predikat mk menyatakan fakta mata kuliah yang
akan
dijadwalkan.
Pernyataan
tersebut
bermakna jika terdapat mata kuliah M, buat
jadwal ke dalam suatu slot waktu dan hari. Slot
waktu dinyatakan melalui pernyataan 1..4
yang berarti terdapat satu hingga empat
kemungkinan slot. Slot hari dinyatakan melalui
pernyataan 1..12 yang berarti terdapat satu
hingga dua belas kemungkinan slot.
Aturan tersebut akan menghasilkan banyak
jadwal waktu. Beberapa jadwal pertama yang
dihasilkan oleh aturan tersebut memiliki
karakteristik jadwal yang jumlah mata
kuliahnya tidak merata disetiap hari ujian.
Sebagai contoh, jadwal pertama yang jika
digambarkan dalam grafik terlihat seperti pada
Gambar 8.

Jadwal waktu yang memiliki persebaran
jumlah mata kuliah tidak merata seperti pada
Gambar 8 akan sangat sulit pada tahap
penjadwalan ruangan untuk menghasilkan
sebuah
jadwal
yang lengkap.
Untuk
menghasilkan jadwal lengkap pada tahap
penjadwalan ruangan dibutuhkan set jadwal
waktu yang memiliki persebaran cukup merata.
Oleh karena itu, perlu ditambahkan suatu aturan
khusus yang berguna untuk memeratakan
jumlah mata kuliah per harinya. Pada dasarnya,
untuk mendapatkan jadwal waktu yang merata,
tanpa menggunakan aturan-aturan tertentu pun
dapat dilakukan, tetapi hal tersebut akan
membutuhkan waktu lebih.
Pemerataan jumlah mata kuliah per harinya
dilakukan dengan menentukan jumlah maksimal
mata kuliah per harinya pada suatu batas. Batas
tersebut ditentukan dengan membagi jumlah
seluruh mata kuliah yang melakukan ujian
dengan banyaknya hari pelaksanaan ujian dan
dilakukan pembulatan ke atas. Formulanya
sebagai berikut:

dengan

⌈ ⌉

B : banyak mata kuliah per hari.
M : jumlah mata kuliah yang diujiankan.
H : jumlah hari ujian.

Gambar 8 Persebaran jadwal.

9

Pada aturan pemerataan, set-set jadwal yang
telah dibentuk pada aturan pembentukan jadwal
akan diperiksa jumlah mata kuliah per harinya.
Apabila melebihi batas, buang set jadwal
tersebut. Sebagai contoh, berikut ini akan
diberikan aturan-aturan pemerataan yang
dibentuk dengan ketentuan jumlah mata kuliah
yang diujiankan sebanyak 398 buah dan jumlah
hari ujiannya sebanyak 12 hari. Dari formula
yang telah disebutkan sebelumnya, perhitungan
banyak mata kuliah per harinya adalah 398
dibagi dengan 12. Didapatkan angka 33.1667,
lalu dilakukan pembulatan ke atas sehingga
banyak mata kuliah per harinya sebesar 34 buah.
Lalu, batas yang digunakan dalam aturan ialah
35 karena batas maksimal jumlah mata kuliah
per harinya ialah 34. Aturan pemerataan akan
bekerja dengan cara jika pada suatu set jadwal
yang terbentuk terdapat 35 atau lebih jadwal
mata kuliah pada suatu hari yang sama, buang
set jadwal tersebut. Dari penggunaan aturan
pemerataan tersebut, akan terbentuk set jadwal
yang jumlah mata kuliah per harinya maksimal
34 atau kurang.
Berikut ini adalah aturan-aturan untuk
pemerataan jadwal ujian perharinya:
:::::::::-

35
35
35
35
35
35
35
35
35

{
{
{
{
{
{
{
{
{

ja(_,_,1)
ja(_,_,2)
ja(_,_,3)
ja(_,_,4)
ja(_,_,5)
ja(_,_,6)
ja(_,_,7)
ja(_,_,8)
ja(_,_,9)

}.
}.
}.
}.
}.
}.
}.
}.
}.

:- 35 { ja(_,_,10) }.
:- 35 { ja(_,_,11) }.
:- 35 { ja(_,_,12) }.
Pernyataan-pernyataan
tersebut,
yang
merupakan aturan-aturan yang berbentuk
cardinality constraint, digunakan untuk
memeriksa set jadwal yang dibangkitkan pada
hari tertentu. Pernyataan-pernyataan tersebut
bekerja dengan cara menghitung banyak
predikat dengan atribut yang sama pada set
jadwal yang terbentuk dan membuang set
jadwal tersebut jika kondisi batas terpenuhi.
Gambar 9 merupakan grafik yang
menggambarkan sebuah jadwal waktu yang
telah menggunakan aturan pemerataan. Pada
gambar terlihat jadwal waktu yang terbentuk
tidak sepenuhnya memiliki jumlah mata kuliah
yang sama per harinya. Hal ini dapat
disebabkan oleh jumlah mata kuliah itu sendiri
tidak sebanyak slot jadwal yang disediakan,
dalam hal ini 34 per harinya selama 12 hari.
Jadwal waktu yang telah merata selanjutnya
akan digabungkan dengan data pengambilan
yang merupakan salah satu input. Setelah
digabungkan dengan pengambilan, dilakukan
pembuangan variabel grup dan penyaringan
agar dapat dilakukan pemeriksaan dengan
kendala penjadwalan waktu.
Aturan-aturannya sebagai berikut:
jw(G,M,J,H) :- ja(M,J,H),am(G,M).
jw1(M,J,H) :- jw(_,M,J,H).
#hide.
#show jw1/3.

Gambar 9 Grafik jadwal waktu setelah aturan pemerataan.

10

Predikat jw menyatakan set mata kuliah
yang telah terjadwal dengan grup pengambilan
yang berkaitan, predikat ja menyatakan mata
kuliah yang telah terjadwal, dan predikat am
menyatakan fakta pengambilan mata kuliah oleh
grup. Pernyataan pada baris 1 merupakan aturan
untuk menggabungkan set jadwal yang telah
terbentuk dengan fakta pengambilan untuk
diperiksa dengan persyaratan penjadwalan yang
pertama. Predikat jw1 menyatakan mata kuliah
yang telah terjadwal dan telah memenuhi
persyaratan penjadwalan yang pertama.
Pernyataan pada baris 2 melakukan pengubahan
dari predikat jw ke predikat jw1 dan
membuang variabel G. Set jadwal yang sudah
memenuhi
persyaratan
akan
disaring
menggunakan aturan pada baris 3 dan 4
sehingga hanya predikat jw1 yang akan
ditampilkan dan disimpan sebagai fakta untuk
melakukan penjadwalan ruangan.
Pada aturan untuk menjadwalkan ruangan,
hasil jadwal waktu yang telah dihasilkan oleh
aturan penjadwalan waktu akan dibentuk jadwal
ruangan yang terdiri atas mata kuliah, kelas
paralel, jumlah peserta, kode ruangan, dan
kapasitas ruangan. Mata kuliah yang telah
memiliki waktu dan hari pelaksanaan ujian
dengan setiap kelas paralelnya akan diberikan
suatu slot ruangan yang kapasitas ruangan
tersebut melebihi banyak peserta dalam kelas
paralel mata kuliah tersebut.
Aturannya sebagai berikut:
1

1 { jr(M,Par,P,Kr,Kap) :
ruang(Kr,Kap) : Kap > P }
1 :- mk(M,Par,P), jw1(M,_,_).

Predikat jr menyatakan set jadwal mata
kuliah dan ruangan yang dibangkitkan, predikat
mk adalah fakta berisi mata kuliah, paralel dan
jumlah pesertanya, predikat ruang adalah fakta
berisi kode ruangan dan kapasitasnya. Variabel
Par adalah paralel suatu mata kuliah, variabel
P adalah jumlah peserta pada paralel tersebut,
variabel Kr adalah suatu kode ruangan, dan
Kap adalah kapasitas ruangan tersebut.
Pernyataan
tersebut
digunakan
untuk
membangkitkan set jadwal ruangan dengan
jadwal ruangan adalah jadwal ujian untuk setiap
kelas paralel mata kuliah yang telah memiliki
ruangan, waktu dan hari ujian.
Pernyataan tersebut menggunakan perluasan
bahasa condition dan bermakna untuk setiap
mata kuliah yang telah memiliki jadwal waktu,
tempatkan setiap paralel mata kuliah tersebut ke
dalam ruangan yang terdapat pada fakta ruang
dan memiliki kapasitas melebihi jumlah peserta.

Penempatan ruangan saat pembangkitan
memperhatikan kapasitas ruangan dan jumlah
peserta ujian dari setiap paralel mata kuliah.
Sebagai contoh, jika kapasitas ruangan A
melebihi jumlah peserta suatu mata kuliah
dengan paralel X, paralel X tersebut dapat
ditempatkan di ruangan A. Hal ini dinyatakan
pada aturan menggunakan kondisi Kap > P.
Jadwal ruangan yang telah terbentuk
selanjutnya akan digabungkan dengan jadwal
waktu menjadi jadwal lengkap dan selanjutnya
dilakukan penyaringan agar dapat dilakukan
pemeriksaan dengan kendala penjadwalan
ruangan.
Aturan-aturannya adalah sebagai berikut:
2
3
4

jd(M,Par,P,Kr,J,H) :jr(M,Par,P,Kr,_), jw1(M,J,H).
#hide.
#show jd/6.

Predikat jd menyatakan suatu mata kuliah
dan paralel yang telah terjadwal pada suatu
ruangan, jam, dan hari. Pernyataan pada baris 2
menggabungkan set mata kuliah dan ruangan
yang sudah terbentuk dengan set jadwal waktu
dari tahap sebelumnya untuk diperiksa dengan
persyaratan penjadwalan kedua. Penggunaan
predikat jw1 akan mengakibatkan set jadwal
yang terbentuk, untuk setiap paralel berbeda
tetapi memiliki mata kuliah yang sama,
memiliki waktu dan hari ujian bersamaan.
Pernyataan pada baris 3 dan 4 akan menyaring
hasil penjadwalan sehingga hanya predikat jd
yang digunakan oleh sistem untuk ditampilkan
sebagai jadwal lengkap.
Kendala-kendala adalah kode yang akan
memeriksa jadwal yang dibentuk berdasarkan
persyaratan penjadwalan ujian. Ada beberapa
kendala yang dibentuk untuk persyaratan
penjadwalan, yaitu:
1 Kendala yang menyatakan tidak boleh ada
suatu grup pengambilan yang mendapat jadwal
waktu dan hari yang sama untuk dua atau lebih
mata kuliah yang berbeda. Kendala tersebut
dimodelkan sebagai berikut:
:- jw(G,M1,J,H),jw(G,M2,J,H),
M1 != M2.
Predikat jw menyatakan jadwal yang telah
dibangkitkan pada tahap penjadwalan waktu
ujian dan pernyataan tersebut dapat bermakna
suatu mata kuliah yang diambil oleh suatu grup
yang dijadwalkan pada suatu jam dan hari.
Variabel G menyatakan grup pengambilan,
variabel M1 dan M2 menyatakan mata kuliah,
variabel J menyatakan jam/waktu ujian, dan

11

variabel H menyatakan hari ujian. Penyataan
kendala tersebut bermakna untuk set jadwal
waktu yang terbentuk, jika terdapat dua atau
lebih mata kuliah yang berbeda pada jam dan
hari yang sama serta diambil oleh grup yang
sama, buang set jadwal tersebut.
2 Kendala yang menyatakan tidak boleh
terdapat dua atau lebih mata kuliah yang
berbeda terjadwalkan pada satu ruangan di
waktu dan hari yang sama serta kendala yang
menyatakan tidak boleh terdapat paralel berbeda
dari mata kuliah yang sama terjadwalkan di satu
ruangan yang sama. Kendala ini dimodelkan
sebagai berikut:
1

:- jd(M1,_,_,Kr,J,H),
jd(M2,_,_,Kr,J,H), M1 != M2.

2

:- jd(M,Par1,_,Kr,_,_),
jd(M,Par2,_,Kr,_,_), Par1 !=
Par2.

Predikat jd menyatakan jadwal yang telah
dibangkitkan pada tahap penjadwalan ruangan.
Variabel M, M1, dan M2 menyatakan mata kuliah,
variabel Kr menyatakan kode ruangan, variabel
J menyatakan jam/waktu ujian, variabel H
menyatakan hari ujian, dan variabel Par1,
Par2 menyatakan paralel suatu mata kuliah.

Penyataan pada baris 1 dapat bermakna
untuk set jadwal ruangan yang terbentuk, jika
terdapat dua atau lebih mata kuliah yang
berbeda terjadwal pada ruangan, waktu dan hari
ujian yang sama, buang set jadwal tersebut.
Pernyataan pada baris 2 dapat bermakna untuk
set jadwal ruangan yang terbentuk, jika terdapat
dua atau lebih paralel berbeda dari mata kuliah
yang sama, terjadwal pada suatu ruangan yang
sama, buang set jadwal tersebut.
Pengembangan Sistem
Pada penelitian ini telah dibuat prototipe
sistem penjadwalan ujian yang berbasis ASP
dan C# .Net. Pada antarmuka sistem, pengguna
dapat memberikan input berupa data KRS,
menentukan tanggal mulai dan berakhir ujian,
serta menentukan banyak jadwal yang akan
dibuat. Hasil dari sistem penjadwalan ujian
tersebut berupa tabel jadwal ujian yang
ditampilkan pada antarmuka sistem. Pada
penelitian ini, bagian input data, pengolahan
data, pembentukan kode ASP, eksekusi kode
ASP, dan output berupa jadwal ditangani oleh
sistem dengan bahasa C# .Net. Arsitektur sistem
penjadwalan dapat dilihat pada Gambar 10.

Gambar 10 Arsitektur Sistem Penjadwalan.

12

Pengujian Penjadwalan
Pada penelitian
dataset
untuk
Kelompok I berisi
dan kelompok II
beberapa fakultas.

ini dibentuk dua kelompok
pengujian
penjadwalan.
data setiap fakultas di IPB
berisi data gabungan dari

Setiap dataset mengandung pengambilan
mata kuliah oleh mahasiswa dan kelas kuliah
(paralel). Keterangan gabungan fakultasfakultas pada dataset kelompok II dapat dilihat
pada Tabel 3 dan untuk ukuran data KRS,
banyak mahasiswa, jumlah mata kuliah, serta
paralel dataset kelompok I dapat dilihat pada
Lampiran 5 dan dataset kelompok II pada
Lampiran 6.
Tabel 3 Keterangan gabungan fakultas-fakultas
pada dataset kelompok II
Nomor gabungan

Fakultas

1

FAPERTA, FMIPA
FAPERTA, FMIPA,
FEM
FKH, FAPET
FKH, FAPET,
FAHUTAN
FPIK, FMIPA
FPIK, FMIPA, FEM
FAPET, FKH,
FEMA
FAPET, FKH,
FEMA, FEM
FAHUTAN, FEM
FATETA, FMIPA
FATETA, FMIPA,
FEM

2
3
4
5
6
7
8
9
10
11
12

FMIPA, FEM

13

FEM, FEMA
Seluruh fakultas di
IPB

semua

jadwal, waktu proses, dan pemakaian memori
saat melakukan proses. Pada penelitian ini,
dilakukan juga penjadwalan menggunakan
sistem penjadwalan yang telah dibuat pada
penelitian sebelumnya oleh Zulkaryanto (2011),
menggunakan kedua kelompok dataset yang
sama. Hal ini dilakukan untuk melihat
perbandingan sistem penjadwalan yang dibuat
pada penelitian kali ini dengan sistem
penjadwalan sebelumnya, dalam hal waktu
pemrosesan dan pemakaian memori pada
lingkungan yang sama.
Proses penjadwalan dilakukan sebanyak tiga
kali untuk kedua kelompok dataset, dan
dilakukan pencatatan lama proses yang
diperlukan serta berhasil tidaknya pembuatan
jadwal. Sistem dikatakan berhasil jika sistem
menghasilkan jadwal ujian terhadap dataset
yang diproses dan tidak berhasil jika sistem
tidak menghasilkan jadwal ujian atau melebihi
batas waktu (time out).
Berikut ini adalah data hasil penjadwalan
dari kedua kelompok dataset dari segi durasi
proses
saat
melakukan
penjadwalan,
keberhasilan pembuatan jadwal, dan pemakaian
memori. Rataan lama proses merupakan ratarata
lama
pemrosesan
sistem
dalam
mengeksekusi kode ASP dan dilakukan
sebanyak tiga kali. Rataan pemakaian memori
maksimal merupakan rata-rata pemakaian
memori maksimal dalam mengeksekusi kode
ASP oleh sistem dan dilakukan sebanyak tiga
kali. Data hasil penjadwalan dataset kelompok I
dapat dilihat pada Tabel 4 dan data pemakaian
memori pada Tabel 5. Grafik untuk Tabel 4
ditunjukkan pada Gambar 11 dan grafik untuk
Tabel 5 ditunjukkan pada Gambar 12.

Tabel 4 Hasil penjadwalan dataset kelompok I
oleh kedua sistem
Sistem

Evaluasi
Pada penelitian ini, hasil penjadwalan oleh
sistem dan kinerja sistem dievaluasi. Evaluasi
hasil penjadwalan memperhatikan dua hal, yaitu
penjadwalan untuk setiap paralel mata kuliah
dan persebaran jumlah jadwal ujian mata kuliah
perharinya. Hasil penjadwalan untuk kedua
dataset yang digunakan telah berhasil
mengakomodasi paralel mata kuliah dalam
jadwal yang terbentuk. Hasil penjadwalan yang
dibuat dari salah satu dataset dapat dilihat pada
Lampiran 7.
Untuk evaluasi kinerja sistem, aspek-aspek
yang diperhatikan adalah keberhasilan membuat

Fakultas

FAPERTA
FKH
FPIK
FAPET
FAHUTAN
FATETA
FMIPA
FEM
FEMA

Rataan
lama
proses
(menit)
0.0124
0.0171
0.0281
0.0095
0.0271
0.0190
0.0411
0.0471
0.0253

Suk
-ses
Ya
Ya
Ya
Ya
Ya
Ya
Ya
Ya
Ya

Sistem
Zulkaryanto
(2011)
Rataan
lama
Sukproses
ses
(menit)
1.3221
Ya
0.5206
Ya
8.9280
Ya
0.1657
Ya
14.2990
Ya
2.0830
Ya
12.1394
Ya
1.7631 Tidak
1.7706
Ya

13

Tabel 5 Pemakaian memori maksimal setiap
dataset kelompok I oleh kedua sistem

Fakultas

FAPERTA
FKH
FPIK
FAPET
FAHUTAN
FATETA
FMIPA
FEM
FEMA

Rataan pemakaian
memori maks. (MB)
Sistem
Zulkaryanto
Sistem
(2011)
18.767
235.544
23.239
144.999
42.801
648.170
17.363
90.630
35.246
1130.00
21.245
356.388
68.791
1013.735
60.000
1609.824
25.083
348.069

Dari data tersebut, terlihat bahwa untuk
penjadwalan dataset kelompok I, terjadi
peningkatan efisiensi dari segi waktu
pemrosesan dan pemakaian memori. Rata-rata
efisiensi yang dilakukan sistem untuk waktu
pemrosesan sebesar 98.23% dan rata-rata
efisiensi untuk pemakaian memori oleh sistem
sebesar 91.49%.
Data hasil penjadwalan dataset kelompok II
dapat dilihat pada Tabel 6 dan data pemakaian
memori pada Tabel 7. Grafik untuk Tabel 6
ditunjukkan pada Gambar 13 dan grafik untuk
Tabel 7 ditunjukkan pada Gambar 14.

Gambar 11 Grafik waktu penjadwalan dataset kelompok I oleh kedua sistem.

Gambar 12 Grafik pemakaian memori dataset kelompok I oleh kedua sistem.

14

Tabel 6 Hasil penjadwalan dataset
kelompok II oleh kedua sistem

Gabung
-an
Fakultas

1
2
3
4
5
6
7
8
9
10
11
12
13
semua

Sistem
Rataan
lama
proses
(menit)
0.0613
0.1555
0.0260
0.0524
0.0863
0.1880
0.0547
0.1501
0.0893
0.0807
0.1406
0.1167
0.1053
0.7337

Sukses

Ya
Ya
Ya
Ya
Ya
Ya
Ya
Ya
Ya
Ya
Ya
Ya
Ya
Ya

Sistem
Zulkaryanto
(2011)
Rataan
lama
Sukproses
ses
(menit)
1.8061 Tidak
0.7870 Tidak
1.2624
Ya
22.382
Ya
1.7935 Tidak
0.8360 Tidak
5.8145
Ya
1.1216 Tidak
1.0552 Tidak
22.916
Ya
4.2480 Tidak
1.1070 Tidak
1.0380 Tidak
4.0621 Tidak

Dari data tersebut, untuk penjadwalan
data gabungan semua fakultas, terjadi
peningkatan efisiensi untuk waktu pemrosesan
sebesar 33.72% dan pemakaian memori sebesar
51.93%. Sistem juga berhasil menghasilkan
jadwal untuk setiap dataset, sedangkan sistem
Zulkaryanto (2011) dapat menemukan jadwal

sebanyak 4 dari 14 dataset di kelompok II.
Peningkatan efisiensi tersebut terjadi karena
pembagian penjadwalan menjadi dua tahap
penjadwalan. Pembagian tersebut menurunkan
kompleksitas dari permasalahan penjadwalan
ujian ini.
Tabel 7 Pemakaian memori maksimal
setiap dataset kelompok II oleh
kedua sistem

Gabungan
Fakultas
1
2
3
4
5
6
7
8
9
10
11
12
13
semua