Monday, December 7, 2009

Program Prolog

Pada kesempatan ini kami mencoba menyelesaikan tugas matematika dasar yang diberikan oleh Bapak Windu untuk membuat program sederhana menggunakan salah satu software bahasa pemrograman yaitu “ Borland Turbo Prolog”. Kami mencoba membuat program dengan tema “ Jadwal Kuliah”. Adapun program kami tersebut adalah sebagai berikut :

domains
nama=symbol
predicates
matkul(nama,nama)
hkul(nama,nama)
rkul(nama,nama)
jkos(nama,nama)
dosen(nama,nama)
ruang(nama,nama)
dosenhari(nama,nama)
matakulhari(nama,nama)
jamkoshari(nama,nama)
ruanghari(nama,nama)
clauses
matkul(agama,pak_cok).
matkul(kwn,pak_narta).
matkul(kalkulus,bu_egy).
matkul(pp,bu_widiartini).
matkul(dsk,pak_sunarya).
matkul(matdas,pak_windu).
matkul(pemrograman,pak_sunarya).
matkul(sisdig,pak_ratnaya).
hkul(senin,agama).
hkul(selasa,kwn).
hkul(selasa,kalkulus).
hkul(rabu,pp).
hkul(rabu,dsk).
hkul(kamis,matdas).
hkul(kamis,pemrograman).
hkul(jumat,sisdig).
hkul(sabtu,kosong).
hkul(libur,minggu).
rkul(agama,ftk4).
rkul(kwn,gku).
rkul(kalkulus,ftk4).
rkul(pp,ftk4).
rkul(dsk,ftk3).
rkul(matdas,ftk4).
rkul(pemrograman,lab).
rkul(sisdig,ftk1).
rkul(kosong,di_rumah_masing_masing).
jkos(c_d_e_f_g_h_i_j_k_l_m_n,senin).
jkos(c_g_h_i_j_k_l_m_n,selasa).
jkos(c_g_h_i_j_k_l_m_n,rabu).
jkos(c_d_e_f_g_h_i_m_n,kamis).
jkos(a_b_c_g_h_i_j_k_l_m_n,jumat).
jkos(wee_sabtu_libur,sabtu).

dosen(X,Y):-
matkul(Y,X).

ruang(X,Y):-
rkul(Y,X).

dosenhari(X,Y):-
matkul(Z,X),
hkul(Y,Z).

matakulhari(X,Y):-
hkul(Y,X).

jamkoshari(X,Y):-
jkos(X,Y).

ruanghari(X,Y):-
hkul(Y,Z),
rkul(Z,X).

Universe of Discourse : Perkuliahan
Object Constant : matkul, hkul, rkul, jkos, dosen, ruang, dosenhari, matakulhari, jamkos, ruanghari
Relation constant :
matkul(X,Y) : true if X mata kuliah Y
hkul(X,Y) : true if X hari kuliah Y
rkul(X,Y) : true if X ruang kuliah Y
jkos(X,Y) : true if X jam kosong dari Y
dosen(X,Y) : true if X dosen dari Y
ruang(X,Y) : true if X ruang dari Y
dosenhari(X,Y) : true if dosen X mengajar pada hari Y
matakulhari(X,Y) : true if matakuliah X pada hari Y
jamkoshari(X,Y) : true if ada jam kosong X pada hari Y
ruanghari(X,Y) : true if ruang X digunakan pada hari Y


Berikut beberapa output dari program yang telah kami buat :
Goal : dosen(X,pp)
X = bu_widiartini
1 solution
Goal : dosenhari(X,selasa)
X = pak_narta
X = bu_egy
2 solutions
Goal : jamkoshari(X,selasa)
X = c_g_h_i_j_k_l_m_n
1 solutions



Dari program di atas permasalahan yang coba kami pecahkan adalah diantaranya bagaimana mencari ruang kuliah pada saat dosen tertentu mengajar, dosen yang mengajar mata kuliah tertentu dan jam kosong pada hari tertentu, ke semua permasalahan itu dapat dipecahkan karena mengacu pada klausa – klausa yang telah kami buat pada program dengan tema jadwal kuliah tersebut sehingga memperoleh suatu solusi dari permasalahan itu. Jadi, program kami ini digunakan untuk mencari dosen yang mengajar mata kuliah pada hari tertentu, ruang kuliah, jam kuliah kosong, dan mata kuliah pada hari tertentu.

Kami menyadari program sederhana yang kami rancang ini jauh dari sempurna, untuk itu kami sangat mengharapkan petunjuk, bimbingan dan saran dari teman – teman serta tentunya dari dosen yaitu Bapak Windu guna dapat menyempurnakan program sederhana kami ini. Terima kasih.

No comments:

Post a Comment