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