Sistem Penjadwalan Ujian Menggunakan Answer

advertisement
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
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
instance dari aturan
( )
dinotasikan dengan
Semantik
dari
program
harus
mempertimbangkan program ground positif.
Sebuah himpunan dari literal
dikatakan konsisten jika dan hanya jika setiap
+
atom
memenuhi *
. Sebuah
interpretasi pada program
adalah sebuah
himpunan bagian konsisten dari
. Sebuah
himpunan dari literal
memenuhi sebuah
aturan
jika dan hanya jika ( )
( )
( )
dengan
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,
*
+ diperoleh
sedangkan untuk
:
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
bm.
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
Pubian
minimal. Fakta yang ditambahkan adalah
sebagai berikut:
Biru
Metro
Biru
Batanghari
Biru
harga(merah,100).
harga(hijau,200).
harga(biru,100).
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]): <[400:1]>
Best model: {warna(natar,biru),
warna(metro,merah),
warna(batanghari,biru),
warna(pubian,biru)}
Cost ([Weight:Level]): <[400:1]>
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
Biru
Batanghari
Merah
Merah
Natar
Gambar 5 Ilustrasi answer set pertama.
Biru
Metro
Hijau
METODE PENELITIAN
Batanghari
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
Download