Welcome to my blog, hope you enjoy reading
RSS

Rabu, 23 Desember 2009

Development of Simple Expert System for Event Register at East Java

Fenomena banyaknya pasien rumas sakit jiwa saat ini mengundang kita untuk lebih mendalami tentang fenomena tersebut. Setelah kami membaca beberapa resensi dan artikel, ternyata penyebab utama banyaknya pasien rumah sakit jiwa tersebut adalah karena stress. Stress dan kesibukan yang tinggi akan menjadikan seseorang menjadi terbebani karena kurangnya refreshing. Maka kami membuat ekspert system tentang panduan even-even yang berlangsung dalam satu tahun sebagai panduan untuk berlibur dan melepaskan penat, meliputi nama event, kota, tanggal penyelenggaraan, klasifikasi, dan genre-nya.

We have three facts: daftarEven, jarak, and foodAvailableAt, shown below:

/*******************************************************
 * daftarEven(Name, Place, Month, Start-Date, *
 *               End-Date, Classification, Genre)      *
 *******************************************************/
daftarEven(shopping-festival, surabaya, 5, 1, 31, family, shopping).
daftarEven(bromo-bike-festival, probolinggo, 8, 26, 31, adult, sport).
daftarEvent(valentineday-party, surabaya, 2, 14, 14, adolescent, party).
daftarEvent(pimits, surabaya, 11, 10, 17, student, science).
daftarEvent(sesindo, surabaya, 12, 12, 12, profesional, seminar).
daftarEvent(persebaya-vs-psm, surabaya, 12, 16, 16, family, sport).
daftarEvent(computer-expo, surabaya, 7, 16, 31, family, exibition).
daftarEvent(konser-ultah, surabaya, 5, 31, 31, adolescent, music).
daftarEvent(kbs, surabaya, -1, -1, -1, family, zoo).
daftarEvent(pandan-wangi, surabaya, -1, -1, -1, family, food).
daftarEvent(karapan-sapi, madura, 8, 17, 20, family, culture).
daftarEvent(reog, ponorogo, -1, -1, -1, family, culture).

foodAvailableAt(shopping-festival,expensive).
foodAvailableAt(persebaya-vs-psm,cheap).
foodAvailableAt(kbs,medium).
foodAvailableAt(pandan-wangi,medium).
foodAvailableAt(valentineday-party,expensive).

jarak(surabaya,probolinggo,100).
jarak(surabaya,madura,50).
jarak(surabaya,ponorogo,125).
jarak(madura,probolinggo),150).
jarak(madura,ponorogo,175).
jarak(probolinggo,ponorogo,200).


Then we make rules :

/*************************************
 * U T I L I T Y   F U N C T I O N S *
 *************************************/
dekat(X,Y)           :- X = Y ;
                 (jarak(X,Y,D), D =< 150) ;
                 (jarak(Y,X,D), D =< 150).

/*E=event,M=month,Ds=date start,De=date-end*/
getDates(E,M,Ds,De)  :- daftarEvent(E,_,M,Ds,De,_,_).
allYearEvent(E)      :- daftarEvent(E,_,-1,-1,-1,_,_).
suitableForKids(E)   :- daftarEvent(E,_,_,_,_,family,_).

/*P=place,c=classification,G=genre*/

getEvent(E,P,C,G)    :- daftarEvent(E,P,_,_,_,C,G).

nearEvents(E,P)      :- dekat(P,Y), getEvent(E,Y,_,_).

/*T=tarif*/

foodAvailable(E,T)   :- foodAvailableAt(E,T) ;
                       (getEvent(E,_,T,G), G = food).

Facts and rules di atas kita simpan dalam file event.pl. Kemudian file pl tersebut kita consult dalam program prolog.



Testing Result
* mencari apakah ada tempat makan di pandan-wangi dan seberapa mahal?
   ? foodAvailable(pandan-wangi, P).


* mencari event pada tempat yang dekat dengan surabaya
   ? nearEvents(E,surabaya).















* mencari adult events di surabaya untuk adult.
        ? getEvents(E,surabaya,adult,_).



 Not the best, but  may useful for u :)

Tidak ada komentar:

Posting Komentar