Sistem Penjadwalan Ujian Menggunakan Answer Set Programming

ABSTRACT

EKO ZULKARYANTO. Exam Scheduling System Using Answer Set Programming. Supervised
by MUSHTHOFA.
Scheduling tasks have been known to be computationally expensive. Several scheduling problems
have been shown to be NP-complete. This research deals with the problem of scheduling exams for
the undergraduate Major-Minor System in Bogor Agricultural University. We employ Answer Set
Programming (ASP) to tackle this problem. ASP has been, in the last decade, the subject of active
research in the field of logic programming, knowledge representation, and reasoning. ASP allows for
an intuitive representation of computationally hard problems as well as efficient solving using stateof-the-art solvers, such as DLV. In this research, a representation of scheduling problem in the context
of undergraduate Major-Minor System in Bogor Agricultural University has been formulated and a
prototype application system written using C# .Net and DLV has also been implemented.
Experimental results show that the system is capable of generating feasible exam scheduling in
acceptable time for smaller-sized datasets, but still needs performance improvement for bigger-sized
datasets.
Keywords: stable model, answer set programming, DLV, scheduling

iii

SISTEM PENJADWALAN UJIAN MENGGUNAKAN ANSWER SET
PROGRAMMING


EKO ZULKARYANTO

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2011
i

ABSTRACT

EKO ZULKARYANTO. Exam Scheduling System Using Answer Set Programming. Supervised
by MUSHTHOFA.
Scheduling tasks have been known to be computationally expensive. Several scheduling problems
have been shown to be NP-complete. This research deals with the problem of scheduling exams for
the undergraduate Major-Minor System in Bogor Agricultural University. We employ Answer Set
Programming (ASP) to tackle this problem. ASP has been, in the last decade, the subject of active
research in the field of logic programming, knowledge representation, and reasoning. ASP allows for
an intuitive representation of computationally hard problems as well as efficient solving using stateof-the-art solvers, such as DLV. In this research, a representation of scheduling problem in the context

of undergraduate Major-Minor System in Bogor Agricultural University has been formulated and a
prototype application system written using C# .Net and DLV has also been implemented.
Experimental results show that the system is capable of generating feasible exam scheduling in
acceptable time for smaller-sized datasets, but still needs performance improvement for bigger-sized
datasets.
Keywords: stable model, answer set programming, DLV, scheduling

iii

SISTEM PENJADWALAN UJIAN MENGGUNAKAN ANSWER SET
PROGRAMMING

EKO ZULKARYANTO

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
2011

ii

Judul Penelitian : Sistem Penjadwalan Ujian Menggunakan Answer Set Programming
Nama

: Eko Zulkaryanto

NRP

: G64062250

Menyetujui:

Pembimbing,


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

Mengetahui:

Ketua Departemen Ilmu Komputer,

Dr. Ir. Sri Nurdiati, M.Sc
NIP. 19601126 198601 2 001

Tanggal Lulus:

iv

RIWAYAT HIDUP
Penulis dilahirkan di Lampung Tengah pada Tanggal 15 Juli 1988 dari ayah Akhmad Sutrisno
dan ibu Sumarni. Penulis merupakan anak pertama dari tujuh bersaudara, kakak dari Dwi Khoirianto,
Trio Pambudi, Ahmad Fauzan, Alvin Fauzi, Arif Ramadhan, dan Desti Rahma Rohima.
Tahun 2006 penulis lulus dari SMA Tri Sukses Natar Lampung Selatan dan pada tahun yang
sama diterima di Institut Pertanian Bogor melalui jalur Beasiswa Utusan Daerah (BUD) Kementrian

Agama Republik Indonesia. Tahun 2007 penulis diterima di Departemen Ilmu Komputer, Fakultas
Matematika dan Ilmu Pengetahuan Alam.
Selama masa perkuliahan, penulis aktif di Komunitas .Net dan Komunitas Java, Himpunan
Mahasiswa Ilmu Komputer (HIMALKOM) IPB. Tahun 2009 penulis melakukan Praktik Kerja
Lapangan di PT Microsoft Indonesia dengan bidang kajian Penambahan Fitur-Fitur pada Community
Server 2007 dalam Pengembangan Student Portal Indonesia, http://students.netindonesia.net. Pada
tahun yang sama penulis menjadi asisten dosen untuk mata kuliah Pengembangan Sistem Berorientasi
Objek dan juga penulis ditunjuk sebagai Microsoft Student Partners (MSP) oleh kepala bagian
Academic Developer Evangelist, PT Microsoft Indonesia.

v

KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Allah SWT atas segala curahan rahmat dan karuniaNya sehingga skripsi ini dapat diselesaikan. Skripsi yang berjudul Sistem Penjadalan Ujian
Menggunakan Answer Set Programming ini merupakan hasil penelitian yang dilakukan oleh penulis
yang dimulai dari Bulan September 2010 sampai Bulan Juli 2011.
Penulis mengucapkan terima kasih kepada Bapak Mushthofa, S.Kom, M.Sc sebagai
pembimbing yang telah memberi saran, masukan, dan ide-ide kepada penulis dalam menyusun skripsi
ini. Penulis juga mengucapkan terima kasih kepada seluruh staf pengajar Departemen Ilmu Komputer
atas ilmu yang telah diberikan, serta tidak lupa kepada staf tata usaha yang membantu administrasi

selama kuliah di Institut Pertanian Bogor. Penulis juga tidak lupa mengucapkan terima kepada
Kemenag RI dan staf Direktorat Kerjasama IPB yang telah memberikan dukungan selama penulis
kuliah di IPB.
Penulis berterima kasih setulus-tulusnya kepada orang tua dan adik yang telah memberikan
kasih sayang, perhatian, doa, dan semangat selama kuliah di IPB, serta dukungannya dalam bentuk
moral maupun meteril.
Terima kasih yang sebesar-besarnya kepada teman-teman terbaik dari Ilkomerz 43 yang
memberikan dukungan, bantuan, dan saran kepada penulis selama kuliah sampai penulis menyusun
skripsi. Kepada teman-teman Pondok Asad, Wisma Cemara, dan CSS MoRA IPB juga tidak lupa saya
ucapkan terima kasih. Kepada semua pihak lainnya yang telah memberikan kontribusi yang besar
selama pengerjaan penelitian ini yang tidak dapat disebutkan satu per satu, penulis ucapkan terima
kasih banyak.
Semoga penelitian ini dapat memberikan manfaat kepada pembaca sebagai referensi penelitian
lanjutan dan pengembangan ilmu pengetahuan.

Bogor, 16 Agustus 2011

Eko Zulkaryanto

vi


DAFTAR ISI
Halaman
DAFTAR TABEL ................................................................................................................................. vi
DAFTAR GAMBAR ............................................................................................................................. vi
DAFTAR LAMPIRAN .......................................................................................................................... vi
PENDAHULUAN .................................................................................................................................. 1
Latar Belakang .................................................................................................................................. 1
Tujuan ............................................................................................................................................... 1
Ruang Lingkup .................................................................................................................................. 1
Manfaat ............................................................................................................................................. 1
TINJAUAN PUSTAKA ......................................................................................................................... 1
Logic Programming .......................................................................................................................... 1
Answer Set Programming.................................................................................................................. 1
METODE PENELITIAN ....................................................................................................................... 5
Analisis Permasalahan ...................................................................................................................... 5
Pembentukan Data ............................................................................................................................ 6
Pengembangan Sistem ...................................................................................................................... 8
Pembentukan Kode DLV .................................................................................................................. 8
Evaluasi ........................................................................................................................................... 10

HASIL DAN PEMBAHASAN............................................................................................................. 10
KESIMPULAN DAN SARAN............................................................................................................. 14
Kesimpulan ..................................................................................................................................... 14
Saran ............................................................................................................................................... 14
DAFTAR PUSTAKA ........................................................................................................................... 14
LAMPIRAN ......................................................................................................................................... 16

v

DAFTAR TABEL
Halaman
1 Dataset dengan banyak pengambilan per fakultas ............................................................................... 6
2 Dataset kelompok I .............................................................................................................................. 6
3 Dataset kelompok II ............................................................................................................................ 7
4 Dataset kelompok III ........................................................................................................................... 7
5 Pembagian slot waktu .......................................................................................................................... 9
6 Ketentuan pembagian shift ................................................................................................................... 9
7 Hasil pengolahan dataset kelompok I ................................................................................................ 11
8 Pemakaian memori oleh masing-masing dataset kelompok I ............................................................ 11
9 Hasil pengolahan dataset kelompok II............................................................................................... 12

10 Pemakaian memori oleh masing-masing dataset kelompok II ........................................................ 12
11 Hasil pengolahan dataset kelompok III ........................................................................................... 12
12 Pemakaian memori oleh masing-masing dataset kelompok III ....................................................... 13

DAFTAR GAMBAR
Halaman
1 Semua interpretasi terhadap program . ........................................................................................... 3
2 Peta Kota Natar, Metro, Batanghari, dan Pubian. ................................................................................ 4
3 Ilustrasi answer set pertama pada kasus tambahan pertama. ............................................................... 5
4 Ilustrasi answer set pertama pada kasus tambahan kedua. ................................................................... 5
5 Ilustrasi answer set pertama. ................................................................................................................ 5
6 Pengelompokkan data KRS mahasiswa. .............................................................................................. 6
7 Diagram alir Sistem Penjadwalan Ujian IPB. ...................................................................................... 8
8 Grafik hubungan antara banyaknya pengambilan terhadap memori. ................................................. 13
9 Grafik hubungan antara banyaknya pengambilan terhadap lama proses. .......................................... 14
DAFTAR LAMPIRAN
Halaman
1 Antarmuka Sistem Penjadwalan Ujian IPB. ...................................................................................... 17
2 Data jumlah mahasiswa pengambil mata kuliah Mayor, Minor, Interdept, dan Supporting Course. 19
3 Kode DLV fakta pengambilan oleh grup mahasiswa (ambil.dl). ....................................................... 19

4 Kode DLV ruangan ujian mata kuliah beserta slot waktunya (ruang.dl). ......................................... 20
5 Kode DLV aturan (rule.dl). ............................................................................................................... 20
6 Kode DLV kendala (constraint.dl). ................................................................................................... 20
7 Analisis regresi antara pengambilan mata kuliah oleh grup mahasiswa terhadap memori ................ 21
8 Analisis regresi antara banyaknya pengambilan terhadap lama proses.............................................. 22

vi

PENDAHULUAN
Latar Belakang
Penjadwalan merupakan pengalokasian
kegiatan ke dalam slot waktu yang telah
disediakan. Permasalahan dalam penjadwalan
saat ini masih menjadi suatu permasalahan yang
rumit untuk diselesaikan secara manual.
Kesulitan
semakin
kompleks
ketika
persyaratan-persyaratan harus dipenuhi dalam

menentukan penjadwalan.

Manfaat
Penelitian ini diharapkan memberikan
gambaran mengenai sistem penjadwalan ujian
Program Studi S1 Sistem Mayor-Minor IPB
sehingga menjadi dasar untuk pengembangan
sistem penjadwalan ujian lebih lanjut.

TINJAUAN PUSTAKA
Logic Programming

Penelitian yang dilakukan oleh Tamba
(2004) menghasilkan sebuah sistem yang
mampu menyelesaikan masalah penjadwalan
perkuliahan menggunakan Algoritme Genetika
(studi kasus FMIPA IPB). Penelitian tersebut
dilanjutkan oleh Syadid (2008) yang telah
berhasil menyempurnakan kekurangan pada
penelitian
sebelumnya
dalam
hal
pengakomodasian
masalah
penjadwalan
ruangan.

Kowalski (1979) menyatakan bahwa sebuah
algoritme A terdiri atas 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:

Penelitian Hunt (2010) telah berhasil
mengimplentasikan Answer Set Programming
untuk permasalahan penjadwalan perkuliahan.
Pada penelitian tersebut dilakukan pendaftaran
mahasiswa terhadap mata kuliah dan kemudian
ditempatkan dengan jadwal yang sesuai. Pada
penelitian ini juga diharapkan Answer Set
Programming mampu diimplementasikan untuk
permasalahan penjadwalan ujian di Institut
Pertanian Bogor.

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.

Tujuan
Tujuan dari penelitian ini adalah:
1. Mengembangkan
model
penyelesaian
permasalahan penjadwalan ujian Program
Studi S1 Sistem Mayor-Minor Institut
Pertanian Bogor dengan menggunakan
Answer Set Programming.
2. Membangun prototipe sistem penjadwalan
ujian Program Studi S1 Sistem MayorMinor IPB yang berbasis ASP.
3. Menguji efektivitas dan efisiensi sistem
penjadwalan ujian terhadap data KRS
Program Studi S1 Sistem Mayor-Minor IPB.
Ruang Lingkup
Penelitian ini dibatasi pada penjadwalan
ujian Program Studi S1 Sistem Mayor-Minor
Institut Pertanian Bogor pada satu masa ujian
semester.
Sistem
penjadwalan
ujian
dikembangkan dengan answer set programming
dan C# .Net.

Answer Set Programming
Answer set programming (ASP) diawali
dengan diperkenalkannya stable model semantic
oleh Gelfond dan Lifschitz pada tahun 1988.
ASP membuka paradigma baru terhadap
pemrograman logika, dengan meningkatkan
semantik dari pemrograman berbasis Prolog
tradisional. Selanjutnya terdapat penambahan
fitur-fitur baru, seperti classical negation dan
disjungsi pada bagian head (Gelfond &
Lifschitz 1991). Saat ini dikenal sebagai answer
set programming.
Lifschitz (2008) menjelaskan bahwa Answer
set programming (ASP) adalah bentuk
formalisme dari pemrograman deklaratif yang
berorientasi
terhadap
sulitnya
masalah
pencarian. Masalah pencarian di ASP telah
dikurangi dengan menentukan stable model dan
answer set solver.
Telah banyak pengembangan pada answer
set
programming
dibanding
dengan
pemrograman logika berbasis Prolog. Prolog
tidaklah murni deklaratif, semantik pada Prolog
masih menggantungkan pada aspek prosedural,
seperti urutan pada literal tubuh pada sebuah
aturan (rule) dan urutan klausa-klausa dalam
program tersebut. Adanya operator cut pada
Prolog (“!”) juga merupakan bukti properti
prosedural Prolog (Mushthofa 2010).

1

1. Sintaks

instance dari aturan

Aturan (rule) adalah sebuah ekspresi yang
mengikuti bentuk:

dengan nilai

,

,

dan
adalah
classical literal. Himpunan {
}
disebut kepala (head) dari aturan (rule) ,
dinotasikan
dengan
Himpunan
{
} disebut tubuh
(body) dari aturan
dan dinotasikan dengan
. Tubuh (body) ada dua jenis, yaitu positive
body literal yang dinotasikan dengan
dan
negative body literal yang dinotasikan dengan
.
dari aturan r tersebut adalah
himpunan {
} dan
adalah
himpunan{
}.

Bentuk aturan tanpa kepala (
) disebut
integrity constraint atau hard constraint. Aturan
dengan minimal satu buah kepala (
)
disebut normal rule. Bentuk aturan dengan
disebut disjunctive rule. Jika bagian
tubuh (body) kosong (
) maka disebut
fakta (fact), dalam penulisan simbol “ ”
biasanya dihilangkan. Himpunan dari aturanaturan tersebut disebut dengan extended
disjunctive logic program (EDLP) atau biasa
disebut program .
2. Semantik
Semantik dari program
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
maka
, dengan
merupakan simbol
konstanta yang diambil semena-mena dari ,
dengan
adalah himpunan semua konstanta.
Herbrand Base (
) 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
dengan simbol
konstanta di
. Himpunan semua ground

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
dan
.
Sebuah himpunan memenuhi program jika
dan hanya jika literal
memenuhi semua
aturan-aturan di dalam . Sebuah model dari
program
merupakan sebuah interpretasi
dengan
memenuhi
. Sebuah
answer set dari program
positif ground
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
ini dilambangkan dengan
, yang dilakukan
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
.

2

Sebagai contoh, di bawah ini adalah sebuah
program :

Kemungkinan model-model yang sesuai
untuk program di atas dapat dilihat dari
interpretasi pada gambar di bawah ini:
a, b, c, p

a,b,c

a,b

a,b,p

a,c

a

a,c,p

a,p

b,c

b

c

b,c,p

b,p

c,p

p

Ø

Gambar 1 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
:

Fixpoint dari
(
) adalah {a,b,c,p},
sehingga diperoleh
. Hal berarti
bahwa
bukan merupakan stable model,
sedangkan untuk
diperoleh
:

Dengan cara yang sama untuk semua
interpretasi , maka diperoleh
dan
sebagai stable model dari program
dan juga merupakan answer set dari program .
3. Answer Set Programming Solver
Answer set programming
solver atau
answer set solver dikembangkan untuk
mengevaluasi input pemrograman logika
berbasis answer set programming. Beberapa
answer set solver yang telah dikembangkan
adalah Lparse (Gelfond & Lifschitz 1991), DLV
(Eiter et al. 2006), clasp/claspD (Gebser et al.
2009 & Drescher et al. 2008), SMODELS
(Simons et al. 2002), dan ASSAT (Lin & Zao
2002). Penelitian ini menggunakan DLV
sebagai answer set solver dalam pengembangan
sistem.
Menurut Eiter et al. (2006), Disjunctive
Logic Programming (DLP) adalah formalisme
canggih untuk representasi pengetahuan dan
penalaran (knowledge representation and
reasoning), yang sangat ekspresif dalam arti
matematis. DLV merupakan sebuah sistem
KRR
(Knowledge
Representation
and
Reasoning) yang didasarkan pada Disjunctive
Logic Programming (DLP) di bawah stabel
model semantic (disebut juga Answer Set
Programming).
Mengikuti ketentuan Prolog, string yang
dimulai dengan huruf besar menunjukkan
variabel, sedangkan string yang dimulai dengan
huruf kecil adalah konstanta. Selain itu, DLV
juga mendukung konstanta bilangan bulat
positif dan konstanta string. Sebuah term adalah
variabel atau konstanta.
Sebuah atom adalah ekspresi p(t1,...,tn),
dengan p adalah predikat n, dan t1,...,tn adalah
term. Sebuah literal klasik (classical literal) l
adalah sebuah atom p (positif) atau sebuah
negasi atom ¬p (negatif). Negation as failure
(NAF) literal l adalah sebuah bentuk l (positif)
atau not l (negatif), dengan l adalah classical
literal.
Mengingat sebuah classical literal l,
pelengkap literal l didefinisikan sebagai ¬p jika
l = p dan p jika l = ¬p. Sebuah himpunan L
literal dikatakan konsisten jika untuk setiap l ϵ
L yang saling melengkapi literal yang tidak
terkandung dalam L.
Rule disjungsi (atau disebut rule saja) r
dirumuskan sebagai berikut:

Kemudian
diperoleh
sehingga
.
merupakan stable model.

,
Jadi

a1 v … v an :- b1,…,bk,not bk+1,…,not
b m.

3

dengan a1 v … v an, b1,…,bk adalah
classical literal dan n ≥ 0, m ≥ k ≥ 0. Konjungsi
a1 v … v an adalah head (kepala) dari
b1,…,bk,not bk+1,…,not bm adalah body
(tubuh) dari r. Sebuah rule tanpa literal kepala
(yaitu n = 0) biasanya disebut sebagai integrity
constraint. Rule memiliki tepat satu head (yaitu
n = 1, tanpa tanda “v”) disebut aturan normal
(normal rule). Jika body kosong (yaitu k = m =
0) disebut fakta (fact), biasanya tanda “:-“
dihilangkan.

predicate. Selain itu bahasa DLV juga sudah
support ODBC (Open Database Connectifity).
Sebagai contoh ASP digunakan untuk
menyelesaikan permasalahan pewarnaan kota.
Misalnya terdapat empat kota, yaitu Kota Natar,
Metro, Batanghari, dan Pubian. Terdapat empat
jembatan yang menghubungkan keempat kota
tersebut. Kota-kota yang dihubungkan oleh
jembatan itu adalah Kota Natar dengan Kota
Metro, Kota Metro dengan Kota Batanghari,
dan Kota Metro dengan Kota Pubian.

Jika r adalah rule mengikuti rumus di atas,
maka H(r) = {a1 v … v an} adalah himpunan
literal kepala dan B(r) = B+(r) U B−(r) adalah
himpunan literal tubuh, dengan B+(r) (tubuh
positif) adalah {b1,…,bk} dan B−(r) (tubuh
negatif) adalah {bk+1,…,bm}.
Bahasa DLV diperluas dengan adanya weak
constraint. Eiter et al. (2006) menyatakan
bahwa weak constraint sebagai varian dari
integrity constraint. Untuk membedakan secara
jelas, weak constraint menggunakan simbol
“:~” bukan “:-”. Selain itu bobot (weight) dan
tingkat prioritas (priority level) ditentukan
secara eksplisit.
Weak constraint wc diekspresikan dengan
bentuk berikut:
:~ b1,…,bk,not bk+1,…,not bm.[w∶l]
dengan m ≥ k ≥ 0, b1,...,bm adalah classical
literal, w (weight) dan l (level atau layer) adalah
konstanta atau variabel bilangan bulat positif.
Himpunan B+(wc), B(wc), B-(wc)dari weak
constraint wc didefinisikan dengan cara yang
sama seperti integrity constraint biasa.
Sebuah program adalah himpunan berhingga
dari rule (mungkin termasuk integrity
constraint) dan weak constraint. Dengan kata
lain, program P adalah disjunctive datalog
program yang mungkin berisi weak constraint.
Untuk program P, WC(P) menandakan
himpunan dari weak constraint di dalam P dan
Rules(P) menandakan himpunan dari rule
(termasuk integrity constraint) di dalam P.
Rule dikatakan aman (safe) jika setiap
variabel di dalam rule muncul setidaknya satu
literal positif di dalam body itu yang bukan
komparatif built-in. Suatu program dikatakan
aman jika setiap rule adalah aman, hanya
program-program
yang
aman
yang
dipertimbangkan.
Bahasa DLV juga mempunyai predikat
built-in,
seperti
aggregate
predicate,
comparative
predicate,
dan
arithmatic

Pubian

Metro
Batanghari

Natar

Gambar 2 Peta Kota Natar, Metro, Batanghari,
dan Pubian.
Dalam kode DLV dituliskan seperti di
bawah ini:
kota(natar).
kota(metro).
kota(batanghari).
kota(pubian).
jembatan(natar,metro).
jembatan(metro,batanghari).
jembatan(metro,pubian).
warna(X,merah) v warna(X,hijau) v
warna(X,biru) :- kota(X).

Answer set yang dibentuk adalah sebanyak
81 answer set. Answer set tersebut adalah
sebagai berikut:
{warna(natar,biru), warna(metro,biru),
warna(batanghari,biru),
warna(pubian,biru)}
{warna(natar,hijau), warna(metro,biru),
warna(batanghari,biru),
warna(pubian,biru)}
.
.
.
{warna(natar,merah), warna(metro,merah),
warna(batanghari,merah),
warna(pubian,merah)}

Answer set pertama menunjukkan bahwa
Kota Natar diberi warna biru, Kota Metro diberi
warna biru, Kota Batanghari diberi warna biru,
dan Kota Pubian diberi warna biru.

4

minimal. Fakta yang ditambahkan adalah
sebagai berikut:

Pubian
Biru

Metro
Batanghari

harga(merah,100).
harga(hijau,200).
harga(biru,100).

Biru
Biru

Kendala
dalam
ditambahkan adalah:

kode

DLV

yang

:~ warna(X,W), harga(W,H). [H:1]

Biru

Terbentuk dua answer set dengan biaya
paling kecil, yaitu:

Natar

Gambar 3 Ilustrasi answer set pertama pada
kasus tambahan pertama.
Kemudian kasus di atas ditambah dengan
kendala yang menyatakan bahwa warna kota
yang terhubung oleh jembatan harus berbeda.
Kendala tersebut dituliskan dalam kode DLV
seperti di bawah ini:
:- warna(X,W), warna(Y,W),
jembatan(X,Y).

Best model: {warna(natar,merah),
warna(metro,biru),
warna(batanghari,merah),
warna(pubian,merah)}
Cost ([Weight:Level]):
Best model: {warna(natar,biru),
warna(metro,merah),
warna(batanghari,biru),
warna(pubian,biru)}
Cost ([Weight:Level]):

Answer set yang sesuai dengan kendala di
atas ada sebanyak 24. Answer set tersebut
adalah sebagai berikut:
{warna(natar,hijau), warna(metro,biru),
warna(batanghari,hijau),
warna(pubian,hijau)}
.
.
.

Answer set pertama berarti bahwa Kota
Natar diberi warna merah, Kota Metro diberi
warna biru, Kota Batanghari diberi warna
merah, dan Kota Pubian diberi warna merah.
Pubian
Merah

Metro

{warna(natar,hijau), warna(metro,merah),
warna(batanghari,hijau),
warna(pubian,hijau)}

Answer set pertama menunjukkan bahwa
Kota Natar diberi warna hijau, Kota Metro
diberi warna biru, Kota Batanghari diberi warna
Hijau, dan Kota Pubian diberi warna hijau.
Pubian

Batanghari
Biru
Merah

Merah

Natar

Gambar 5 Ilustrasi answer set pertama.

Biru

Metro

METODE PENELITIAN
Batanghari

Hijau
Biru

Biru

Natar

Gambar 4 Ilustrasi answer set pertama pada
kasus tambahan kedua.
Selanjutnya kasus di atas ditambah fakta
bahwa masing-masing warna memiliki harga,
warna merah sebesar 100, hijau sebesar 200,
dan biru sebesar 100. Dengan demikian,
melahirkan
penambahan
kendala
yang
menyatakan bahwa biaya pewarnaan kota harus

Penelitian ini dibagi dalam beberapa
tahapan,
yaitu
analisis
permasalahan,
pembentukan data, pembentukan program DLV,
pengembangan sistem, dan evaluasi.
Analisis Permasalahan
IPB memberlakukan Sistem Mayor-Minor
untuk Program Sarjana. Perkuliahan mayor
adalah kegiatan perkuliahan yang diadakan di
departemen
masing-masing
mahasiswa,
sedangkan perkuliahan minor adalah kegiatan
perkuliahan terhadap satu paket mata kuliah
minor yang disediakan oleh departemen lain
sebagai bidang keahlian tambahan mahasiswa.
Selain perkuliahan mayor-minor, mahasiswa

5

IPB juga bisa mengambil mata kuliah
Supporting Course. Sistem Supporting Course
memungkinkan mahasiswa mengambil mata
kuliah dari departemen lain yang telah
disediakan.
Beberapa persyaratan yang harus dipenuhi
dalam permasalahan penjadwalan ujian pada
Sistem Mayor-Minor IPB yaitu:
1. Hanya ada satu ujian yang dapat
berlangsung dalam satu ruangan dalam satu
waktu tertentu.
2. Setiap ruangan memiliki keterbatasan
kapasitas daya tampung mahasiswa.
3. Satu kelompok mahasiswa hanya mengikuti
satu ujian dalam satu waktu tertentu.
4. Dalam satu hari mahasiswa diutamakan
hanya satu kali ujian.

Tabel 1 Dataset dengan banyak pengambilan
per fakultas
Nama
Fakultas

Ukuran Data
KRS

Banyak
Mahasiswa

FAPERTA

4236

1506

FKH

3990

705

FPIK

5384

1513

FAPET

3226

877

FAHUTAN

6307

1717

FATETA

6557

1558

11726

3668

Pembentukan Data

FMIPA

Data KRS mahasiswa dikelompokkan
berdasarkan pengambilan mata kuliah yang
sama. Misalnya, kelompok G1 adalah semua
mahasiswa yang mengambil mata kuliah
MK001 dan MK002, kelompok G2 adalah
semua mahasiswa yang mengambil mata kuliah
MK002 dan MK003, dan kelompok G3 adalah
semua mahasiswa yang hanya mengambil mata
kuliah MK003. Contoh ini diperjelas dengan
Gambar 6.

FEM

8415

2885

FEMA

5198

2014

Ukuran data KRS merupakan banyaknya
baris pada tabel data KRS yang telah dipisahkan
berdasarkan mata kuliah per fakultas. Ukuran
data KRS pada Gambar 6 adalah 11. Tabel 2
sampai dengan Tabel 4 adalah 3 kelompok
dataset yang dibentuk pada penelitian ini.
Banyaknya mahasiswa merupakan jumlah
seluruh mahasiswa yang mengambil mata
kuliah di fakultas tersebut.
Tabel 2 Dataset kelompok I

Fakultas

Mata kuliah
dijadwalkan

Mata kuliah
ruangan
tetap

FAPERTA

29

9

Data KRS pada Gambar 6 diubah menjadi
data KRS oleh kelompok mahasiswa. Data KRS
oleh kelompok mahasiswa pada penelitian ini
disebut sebagai data ambil atau data
pengambilan. Tujuan pembentukan kelompokkelompok pengambilan mata kuliah ini adalah
untuk memperkecil ukuran data.

FKH

29

17

FPIK

39

5

FAPET

18

14

FAHUTAN

37

1

Pada penelitian ini dibuat sebanyak
sembilan buah data berdasarkan fakultas.
Masing-masing data tersebut masih terdapat
mahasiswa dari fakultas lain (mahasiswa
pengambil mata kuliah minor atau Supporting
Course). Ukuran kesembilan data tersebut dapat
dilihat pada Tabel 1.

FATETA

52

18

FMIPA

92

9

FEM

45

5

FEMA

39

9

Gambar 6 Pengelompokkan data KRS
mahasiswa.

6

Mata kuliah yang dijadwalkan pada Tabel 2
merupakan mata kuliah di dalam suatu
departemen yang harus dijadwalkan ujiannya
pada penelitian ini. Data mata kuliah yang
dijadwalkan ini sudah dikurangi dengan mata
kuliah Tingkat Persiapan Bersama dan mata
kuliah yang tidak diujiankan. Pada dataset
kelompok I masih terdapat beberapa mata
kuliah yang belum ditetapkan ruangan ujiannya,
sehingga masih harus ditentukan ruangan
ujiannya oleh sistem pada penelitian ini.
Dataset kelompok II yang dibentuk pada
penelitian ini adalah sebagai berikut:
Tabel 3 Dataset kelompok II

Fakultas

Mata kuliah
dijadwalkan

Mata kuliah
ruangan
tetap

FAPERTA

29

29

FKH

29

29

FPIK

39

39

FAPET

18

18

FAHUTAN

37

37

FATETA

52

52

FMIPA

92

92

FEM

45

45

FEMA

39

39

Dataset kelompok II pada Tabel 3 berisi
jumlah keseluruhan mata kuliah yang
dijadwalkan ujiannya dan semua mata kuliah
tersebut sudah ditetapkan ruangan ujiannya.
Dengan demikian, sistem sudah tidak perlu
menentukan jadwal ruangan untuk masingmasing mata kuliah tersebut.
Dataset kelompok III pada Tabel 4, masingmasing dataset tersebut merupakan gabungan
dari
beberapa
dataset
per
fakultas.
Penggabungan ini dibentuk berdasarkan
banyaknya mahasiswa yang mengambil mata
kuliah minor dan Supporting Course di fakultas
lain. Dataset kelompok III dapat dilihat pada
tabel di bawah ini:

Tabel 4 Dataset kelompok III
Mata kuliah
dijadwalkan

Mata kuliah
ruangan
tetap

FAPERTA
dan FMIPA

121

121

FAPERTA,
FMIPA, dan
FEM

166

166

FKH dan
FAPET

47

47

FKH,
FAPET, dan
FAHUTAN

84

84

FPIK dan
FMIPA

131

131

FPIK,
FMIPA, dan
FEM

176

176

86

86

FAPET,
FKH,
FEMA, dan
FEM

131

131

FAHUTAN
dan FEM

82

82

FATETA
dan FMIPA

144

144

FATETA,
FMIPA, dan
FEMA

183

183

FMIPA dan
FEM

137

137

84

84

Fakultas

FAPET,
FKH, dan
FEMA

FEM dan
FEMA

Banyaknya mahasiswa yang mengambil
mata kuliah minor dan Supporting Course dapat
dilihat pada Lampiran 2. Lampiran 2
menunjukkan bahwa mahasiswa FAPERTA
umumnya mengambil mata kuliah minor dan

7

Supporting Course paling banyak di FMIPA.
Dengan
demikian,
dataset
FAPERTA
digabungkan
dengan
dataset
FMIPA.
Selanjutnya, dataset gabungan FAPERTA dan
FMIPA digabungkan lagi dengan dataset FEM
sebagai fakultas terbanyak kedua setelah
FMIPA dalam hal banyaknya pengambil mata
kuliah minor dan Supporting Course oleh
mahasiswa FAPERTA.
Tabel-tabel yang terdapat dalam masingmasing dataset adalah tabel KRS (tabel krs),
lama ujian (tabel mk_lama_ujian), mata kuliah
TPB (tabel mk_tpb), mata kuliah yang
dijadwalkan ujiannya (tabel mk_ujian), ruangan
ujian (tabel ruangan), ruangan ujian khusus
(tabel ruang_khusus), dan mata kuliah dengan
ruangan tetap (tabel ujian_tetap).

Lingkungan
perangkat
keras
dalam
pengembangan sistem penjadwalan ujian IPB
adalah:
a. Prosesor: Intel Core 2 Duo T5500 @ 1.66
GHz
b. RAM: 3 GB
c. Graphic card: Intel GMA 950
d. HDD: 120 GB
Selain
pembuatan
fakta-fakta,
pada
antarmuka sistem penjadwalan ujian IPB juga
dilakukan pembuatan aturan-aturan dan
kendala-kendala. Selanjutnya output program
DLV ditampilkan oleh antarmuka dalam bentuk
tabel. Sistem Penjadwalan Ujian IPB secara
garis besar digambarkan dengan diagram alir
pada Gambar 7.
Mulai

Dataset dilengkapi dengan dua tabel sebagai
data pelengkap yaitu tabel data mata kuliah
(tabel data_mk) yang berisi kode mata kuliah,
nama mata kuliah, dan dosen dan tabel data
ruangan (tabel data_ruangan) yang berisi kode
ruangan, nama ruangan, lokasi, kapasitas, dan
kapasitas ujian.

Data

Jalankan
sistem

Dalam proses sistem juga dibentu tabel-tabel
tambahan, yaitu tabel mata kuliah pada KRS
yang dijadwalkan (tabel mk_krs_ujian) dan
tabel peserta mata kuliah dari KRS (tabel
krs_peserta). Selanjutnya, jika sistem berhasil
maka tabel terakhir yang dibentuk adalah tabel
jadwal.

Kode
DLV

Eksekusi
kode DLV

Pengembangan Sistem
Pada Sistem Penjadwalan Ujian IPB,
pengguna memberikan masukan satu berkas
data yang sesuai dengan kebutuhan sistem.
Pengguna memberikan masukan berupa tanggal
ujian dan kendala-kendala yang ada.
Selanjutnya pengguna memperoleh keluaran
berupa jadwal ringkas dan data lengkap, serta
pengguna dapat memperoleh detail peserta ujian
dan jadwal ujian yang tersimpan dalam
Microsoft Access.
Lingkungan
perangkat
lunak
dalam
pengembangan sistem penjadwalan ujian IPB
adalah:
a.
b.
c.
d.
e.
f.
g.

Sistem operasi: Windows 7 Enterprise
IDE: Visual Studio 2010 Ultimate
Bahasa pemrograman: C# .Net
Framework: .Net Framework 4
Answer set solver: DLV (Eiter et al. 2006)
Office Tools: Microsoft Excel 2010
DBMS: Microsoft Access 2010

Ada
answer
set?

Ya

Tampilkan ke
tabel

Tidak
Selesai

Tabel
jadwal

Gambar 7 Diagram alir Sistem Penjadwalan
Ujian IPB.
Pembentukan Kode DLV
Pembentukan kode DLV pada penelitian ini
sesuai dengan kode DLV oleh Eiter et al.
(2006). Program DLV terdiri atas fakta-fakta
(facts), aturan-aturan (rules) dan kendalakendala (constraints). Data yang sudah dibentuk
akan dilanjutkan dengan pembentukan faktafakta dan aturan-aturan. Selanjutnya dibentuk
kendala-kendala
yang
diperoleh
dari
persyaratan penjadwalan ujian.

8

Untuk pembentukan fakta waktu, pada
penelitian ini ditetapkan 4 slot waktu dalam satu
hari dengan lama ujian 2 jam. Pembagian slot
waktu dapat dilihat pada Tabel 5.
Tabel 5 Pembagian slot waktu
Waktu

Dalam
Program DLV

8.00-10.00

slot1_2jam

10.00-12.00

slot2_2jam

13.00-15.00

slot3_2jam

15.00-17.00

slot4_2jam

Selajutnya semua pasangan mata kuliah
dengan ruangannya (misal mata kuliah AGH
211 shift pertama dan dengan ruangan
A144401A) didisjungsikan terhadap slot waktu.
Kode DLV yang dibentuk adalah:
ruang(agh211,shift_1,a144401a,slot1_2jam
) v
ruang(agh211,shift_1,a144401a,slot2_2jam
) v
ruang(agh211,shift_1,a144401a,slot3_2jam
) v
ruang(agh211,shift_1,a144401a,slot4_2jam
).

Untuk pembentukan rule ruangan beserta
slot waktu (ruang.dl), sebelumnya dibentuk
pasangan antara mata kuliah dengan ruangan
ujiannya dengan memperhatikan kapasitas
ruangan untuk ujian. Suatu mata kuliah akan
dipasangkan dengan ruangan-ruangan ujian
yang memenuhi persyaratan penempatan, yaitu
jumlah peserta tidak boleh melebihi kapasitas
ujian ruangan tersebut. Untuk mata kuliah yang
memiliki peserta di atas 95 mahasiswa dibagi
menjadi beberapa shift sesuai dengan ketentuan
pembagian shift (lihat Tabel 6).
Tabel 6 Ketentuan pembagian shift
Jumlah Peserta

Pembagian shift hanya dilakukan pada dataset
kelompok I, sedangkan dataset kelompok II dan
III sudah tidak perlu dilakukan pembagian shift
karena sudah ditetapkan ruangan ujiannya dan
sudah ditetapkan berdasarkan shift-nya.

Aturan-aturan yang dibentuk (rule.dl) adalah
sebagai berikut:
jadwal1(G,M,S,R,J,senin__18_7_2011) v
jadwal1(G,M,S,R,J,selasa__19_7_2011) v
jadwal1(G,M,S,R,J,rabu__20_7_2011) v
jadwal1(G,M,S,R,J,kamis__21_7_2011) v
jadwal1(G,M,S,R,J,jumat__22_7_2011) v
jadwal1(G,M,S,R,J,sabtu__23_7_2011) v
jadwal1(G,M,S,R,J,minggu__24_7_2011) v
jadwal1(G,M,S,R,J,senin__25_7_2011) v
jadwal1(G,M,S,R,J,selasa__26_7_2011) v
jadwal1(G,M,S,R,J,rabu__27_7_2011) v
jadwal1(G,M,S,R,J,kamis__28_7_2011) v
jadwal1(G,M,S,R,J,jumat__29_7_2011) v
jadwal1(G,M,S,R,J,sabtu__30_7_2011) :ambil(G,M), ruang(M,S,R).
jadwal(M,S,R,J,H) :jadwal1(_,M,S,R,J,H).

Banyak
Shift

peserta < 95

1

95 ≤ peserta < 120

2

120 ≤ peserta < 180

3

180 ≤ peserta < 240

4

240 ≤ peserta < 300

5

300 ≤ peserta < 360

6

360 ≤ peserta < 420

7

420 ≤ peserta < 480

8

480 ≤ peserta < 540

9

540 ≤ peserta < 600

10

Pembagian shift ujian hanya akan dilakukan
jika dataset yang dibentuk masih terdapat mata
kuliah yang belum ditetapkan ruangan ujiannya.

Kendala-kendala yang dibentuk secara
default (constraint.dl) adalah sebagai berikut:
a. Mata kuliah tidak boleh bentrok
:- jadwal(M1,_,R,J,H),
jadwal(M2,_,R,J,H), M1 != M2.

b. Mahasiswa tidak boleh bentrok jadwal ujian
:- jadwal1(G,M1,_,_,J,H),
jadwal1(G,M2,_,_,J,H), M1 != M2.

c. Setiap
mata
kuliah
dan
shift-nya
dijadwalkan ujiannya pada waktu yang sama
:- jadwal(M,S1,R,J,H),
jadwal(M,S2,R,J,H), S1 != S2.
:- jadwal(M,_,_,J1,H1),
jadwal(M,_,_,J2,H2), J1 != J2, H1 !=
H2.
:- jadwal(M,_,_,_,H1),
jadwal(M,_,_,_,H2), H1 != H2.

Answer set pertama yang dibentuk untuk
dataset FAPERTA adalah sebagai berikut:
{jadwal(tsl251,semua,a00000bd,slot2_2jam
,jumat__29_7_2011),
jadwal(tsl360,semua,a00000bd,slot3_2jam,
kamis__28_7_2011),
jadwal(tsl301,semua,a000gmkl,slot3_2jam,

9

jumat__29_7_2011),
jadwal(agh331,shift_1,a0003b21,slot4_2ja
m,senin__25_7_2011),
jadwal(agh331,shift_2,a00000bd,slot4_2ja
m,senin__25_7_2011),
jadwal(tsl331,semua,a00000bd,slot4_2jam,
kamis__28_7_2011),
jadwal(tsl350,semua,a000gmkl,slot4_2jam,
jumat__29_7_2011),
jadwal(tsl321,semua,a00000bd,slot3_2jam,
selasa__26_7_2011),
jadwal(tsl311,semua,a00000bd,slot1_2jam,
kamis__28_7_2011),
jadwal(arl313,shift_1,a144401b,slot4_2ja
m,jumat__22_7_2011),
jadwal(arl313,shift_2,a000gmkl,slot4_2ja
m,jumat__22_7_2011),
jadwal(arl313,shift_3,a144401a,slot4_2ja
m,jumat__22_7_2011),
jadwal(arl313,shift_4,a164401b,slot4_2ja
m,jumat__22_7_2011),
jadwal(arl313,shift_5,a164401a,slot4_2ja
m,jumat__22_7_2011),
jadwal(agh241,shift_1,a164401e,slot4_2ja
m,rabu__20_7_2011),
jadwal(agh241,shift_2,a153301b,slot4_2ja
m,rabu__20_7_2011),
jadwal(agh241,shift_3,a153301a,slot4_2ja
m,rabu__20_7_2011),
jadwal(agh241,shift_4,a144401c,slot4_2ja
m,rabu__20_7_2011),
jadwal(agh240,shift_1,a000b1c2,slot4_2ja
m,selasa__19_7_2011),
jadwal(agh240,shift_2,a00000bd,slot4_2ja
m,selasa__19_7_2011),
jadwal(agh240,shift_3,a000b1c1,slot4_2ja
m,selasa__19_7_2011),
jadwal(agh250,shift_1,a0004b11,slot4_2ja
m,kamis__21_7_2011),
jadwal(agh250,shift_2,a0004b12,slot4_2ja
m,kamis__21_7_2011),
jadwal(agh250,shift_3,a0003b22,slot4_2ja
m,kamis__21_7_2011),
jadwal(agh250,shift_4,a0003b21,slot4_2ja
m,kamis__21_7_2011),
jadwal(arl212,shift_1,a153301b,slot4_2ja
m,rabu__27_7_2011),
jadwal(arl212,shift_2,a153301a,slot4_2ja
m,rabu__27_7_2011),
jadwal(agh341,shift_1,a000b1c2,slot4_2ja
m,selasa__26_7_2011),
jadwal(agh341,shift_2,a000b1c1,slot4_2ja
m,selasa__26_7_2011),
jadwal(agh341,shift_3,a000gmkl,slot4_2ja
m,selasa__26_7_2011),
jadwal(tsl230,semua,a00000bd,slot2_2jam,
kamis__28_7_2011),
jadwal(tsl220,semua,a00000bd,slot4_2jam,
selasa__26_7_2011),
jadwal(tsl240,shift_1,a153301b,slot4_2ja
m,jumat__29_7_2011),
jadwal(tsl240,shift_2,a153301a,slot4_2ja
m,jumat__29_7_2011),
jadwal(agh211,shift_1,a144401a,slot3_2ja
m,selasa__26_7_2011),
jadwal(agh211,shift_2,a000gmkl,slot3_2ja
m,selasa__26_7_2011),
jadwal(agh211,shift_3,a144401b,slot3_2ja
m,selasa__26_7_2011),
jadwal(agh211,shift_4,a0003b21,slot3_2ja
m,selasa__26_7_2011),
jadwal(agh343,semua,a0440404,slot4_2jam,
rabu__27_7_2011),
jadwal(agh344,semua,a0003b21,slot4_2jam,

kamis__28_7_2011),
jadwal(agh398,shift_1,a144401c,slot3_2ja
m,jumat__22_7_2011),
jadwal(agh398,shift_2,a144401a,slot3_2ja
m,jumat__22_7_2011),
jadwal(agh398,shift_3,a144401b,slot3_2ja
m,jumat__22_7_2011),
jadwal(agh342,semua,a0003b21,slot2_2jam,
jumat__29_7_2011),
jadwal(agh350,semua,a0003b21,slot3_2jam,
kamis__28_7_2011),
jadwal(arl321,semua,a000gmkl,slot2_2jam,
kamis__28_7_2011),
jadwal(arl312,semua,a0630301,slot3_2jam,
rabu__27_7_2011),
jadwal(arl398,semua,a042202a,slot4_2jam,
rabu__27_7_2011),
jadwal(arl213,semua,a0630301,slot4_2jam,
kamis__28_7_2011),
jadwal(arl211,semua,a000b1c3,slot2_2jam,
jumat__29_7_2011),
jadwal(arl214,semua,a000b1c1,slot3_2jam,
jumat__29_7_2011)}

Evaluasi
Pada penelitian ini dilakukan pencatatan
lama proses untuk ketiga kelompok dataset
tersebut sampai menghasilkan answer set atau
tidak ada answer set. Lama proses dinyatakan
time out jika dataset tersebut membutuhkan
lama proses melebihi dua jam.
Pada penelitian ini juga dilakukan
pencatatan memori maksimum yang digunakan
dalam pemrosesan kode DLV. Dengan
demikian dapat dilakukan analisis terhadap
hubungan antara banyaknya pengambilan mata
kuliah oleh grup terhadap memori yang
diperlukan dan hubungan antara pengambilan
mata kuliah oleh grup terhadap lama
pemrosesan kode DLV.

HASIL DAN PEMBAHASAN
Pada penelitian ini telah dibuat model-model
untuk
permasalahan
penjadwalan
ujian
Program Studi S1 Sistem Mayor-Minor Institut
Pertanian Bogor dengan menggunakan Answer
Set Programming dan telah dibangun prototipe
sistem penjadwalan ujian Program Studi S1
Sistem Mayor-Minor IPB yang berbasis bahasa
ASP dan bahasa C# .Net. Hasil dari sistem
penjadwalan ujian tersebut berupa tabel jadwal
ujian yang ditampilkan pada antarmuka sistem.
Pada penelitian ini, bagian input data,
pengolahan data, eksekusi kode DLV, dan
output berupa jadwal ditangani oleh sistem
dengan bahasa C# .Net. Eksekusi kode DLV
ditangani oleh kode program C# .Net pada kelas
DLVHandler. Hal ini sesuai dengan penelitian
Ricca (2003) yang telah mengimplementasikan

10

Java Wrapper dengan proses eksekusi kode
DLV ditangani oleh bahasa pemrograman Java.
Untuk pengolahan pada dataset kelompok
pertama memiliki ukuran data KRS oleh
kelompok mahasiswa atau data pengambilan
mata kuliah oleh kelompok mahasiswa (pada
penelitian ini disebut ambil), rata-rata lama
proses yang diperlukan, dan berhasil atau
tidaknya pembuatan jadwal. Perulangan yang
dilakukan untuk masing-masing dataset adalah
tiga kali. Dikatakan berhasil jika sistem tersebut
menghasilkan jadwal ujian terhadap dataset
yang diproses dan dikatakan tidak berhasil jika
sitem tidak menghasilkan jadwal ujian atau
waktu melebihi batas (time out). Data tersebut
dapat dilihat pada tabel di bawah ini:

Fakultas

Ambil

Tabel 8 Pemakaian memori oleh masingmasing dataset kelompok I

Fakultas

Rataan maks.
pemakaian
memori (MB)

FAPERTA

595.359

FKH

590.125

FPIK

1631.445

FAPET

Tabel 7 Hasil pengolahan dataset kelompok I
Rataan
lama
proses
(menit)

Pencatatan pemakaian memori maksimum
untuk setiap percobaan pada tiap-tiap dataset
dapat dilihat pada Tabel 8.

Berhasil
(Ya/Tidak)

FAPERTA

1316

8.05

Ya

FKH

2657

8.53

Ya

FPIK

3386

77.85

Tidak

FAPET

2039

13.53

Ya

FAHUTAN

3855

1.86

Tidak

FATETA

4104

5.39

Tidak

FMIPA

5927

2.15

Tidak

FEM

5172

1.95

Tidak

FEMA

2588

11.61

Ya

Ambil merupakan ukuran data KRS oleh
kelompok mahasiswa terhadap mata kuliah pada
fakultas tertentu. Rataan lama proses
merupakan rata-rata lama pemrosesan sistem
dalam pengolahan data sampai eksekusi kode
DLV yang dilakukan sebanyak tiga kali
perulangan.
Pada Tabel 7 diketahui bahwa hanya empat
dataset yang menghasilkan jadwal ujian.
Keempat dataset tersebut adalah FAPERTA,
FKH, FAPET, dan FEMA. Selain keempat
dataset tersebut tidak menghasilkan jadwal
ujian atau juga dikatakan tidak berhasil
menghasilkan answer set.

540.473

FAHUTAN

1613.163

FATETA

1904.883

FMIPA

1446.098

FEM

1992.586

FEMA

797.223

Dari Tabel 7 dan Tabel 8 dapat diketahui
bahwa dataset yang mengalami kegagalan
dalam pembuatan jadwal merupakan dataset
yang menggunakan memori mulai dari
1446.098 MB. Ukuran RAM yang digunakan
pada penelitian ini adalah 3 GB. RAM ini sudah
digunakan oleh sistem operasi sendiri sekitar 11.5 GB dengan penggunaan yang tidak tetap.
Dengan demikian, untuk dataset yang
menggunakan memori maksimum mendekati 2
GB tidak akan menghasilkan jadwal ujian atau
dikatakan gagal.
Kemungkinan besar penyebab besarnya
pemakaian memori adalah penentuan ruangan
ujian untuk masing-masing mata kuliah yang
belum ditetapkan ruangan ujiannya. Penetapan
ruangan ujian tersebut menghasilkan rule
penetapan ruangan yang sangat banyak,
sehingga DLV membutuhkan memori yang
sangat besar sampai DLV menemukan answer
set.
Pada dataset kelompok II, ukuran data KRS
oleh kelompok mahasiswa, rata-rata lama
proses dan berhasil atau tidaknya pembuatan
jadwal dapat dilihat pada Tabel 9. Tabel 9
menunjukkan bahwa dataset kelompok II telah
berhasil memperoleh answer set atau jadwal
ujian sesuai dengan kendala yang diberikan.

11

Tabel 9 Hasil pengolahan dataset kelompok II

Fakultas

Ambil

FAPERTA

1316

Rataan
lama
proses
(menit)

Berhasil
(Ya/Tidak)

1.68

Tabel 10 menunjukkan bahwa penggunaan
memori lebih kecil dibandingkan dengan
memori yang digunakan oleh dataset kelompok
I.
Tabel 11 Hasil pengolahan dataset kelompok III

Ya
Fakultas

FKH

2657

4.12

Ya

FPIK

3386

6.34

Ya

FAPET

2039

9.15

Ya

FAHUTAN

3855

16.26

Ya

FATETA

4104

10.43

Ya

FMIPA

5927

8.21

Ya

FEM

5172

19.59

Ya

FEMA

2588

3.58

Ya

Hasil pengolahan dataset kelompok II
menunjukkan bahwa seluruh dataset berhasil
menghasilkan jadwal ujian atau dapat dikatakan
bahwa dataset berhasil dijadwalkan oleh sistem.
Data pencatatan maksimum pemakaian
RAM untuk dataset kelompok II adalah:
Tabel 10 Pemakaian memori oleh masingmasing dataset kelompok II

Fakultas

Rataan maks.
pemakaian
memori (MB)

FAPERTA

159.026

FKH

291.337

FPIK

396.336

FAPET

327.988

FAHUTAN

700.797

FATETA

520.502

FMIPA

779.547

FEM

918.336

FEMA

319.574

Ambil

Rataan
lama
proses
(menit)

Berhasil
(Ya/Tidak)

FAPERTA
dan FMIPA

15962

7.13

Ya

FAPERTA,
FMIPA, dan
FEM

24377

TO

Tidak

7216

5.58

Ya

FKH,
FAPET, dan
FAHUTAN

13523

6.40

Ya

FPIK dan
FMIPA

17110

8.57

Ya

FPIK,
FMIPA, dan
FEM

25525

17.49

Ya

FAPET,
FKH, dan
FEMA

12414

6.62

Ya

FAPET,
FKH,
FEMA, dan
FEM

20829

15.77

Ya

FAHUTAN
dan FEM

14722

25.65

Ya

FATETA
dan FMIPA

18283

9.36

Ya

FATETA,
FMIPA, dan
FEMA

23481

13.61

Ya

FMIPA dan
FEM

20141

24.35

Ya

FEM dan
FEMA

13613

20.57

Ya

FKH dan
FAPET

12

Pada Tabel 11 terdapat dua dataset dengan
rata-rata lama proses melebihi dua jam sehingga
dinyatakan time out (TO). Berikut pemakaian
maksimum RAM untuk dataset kelompok III:
Tabel 12 Pemakaian memori oleh masingmasing dataset kelompok III
Rataan maks.
pemakaian
memori (MB)

FAPERTA
dan FMIPA

493.988

FAPERTA,
FMIPA, dan
FEM

1019.301

FKH dan
FAPET

388.672

FKH,
FAPET, dan
FAHUTAN

565.219

FPIK dan
FMIPA
FPIK,
FMIPA, dan
FEM
FAPET,
FKH, dan
FEMA

Untuk dataset kelompok II dan III dihitung
masing-masing banyaknya data pengambilan
(
) oleh grup. Ha