Tuesday, July 12, 2011

Kecerdasan Buatan[2] : Aturan dalam Prolog

Pada materi sebelumnya kita telah dikenalkan pada facts( atau assertions ), questions,variable, syntax dan konjungsi. Dalam materi ini kita akan membahas tentang aturan-aturan yang berlaku dalam bahasa prolog.
1. Ekspresi Aturan-aturan dalam Prolog
Seperti kita lihat sebelumnya, dari informasi dimana interpreter prolog menjawab sebuah pertanyaan berikut ini :
|?-minum(dian,es_jeruk).
yes



Jika kamu memiliki informasi yang sama, dimana dian minum es_jeruk, dan kita bertanya dengan pertanyaan “ Apakah dian suka es_jeruk?” kamu berharap jawabannya adalah yes. Dengan logika tanpa mempertimbangkan kemampuan interpreter prolog, berarti jika dian minum es_jeruk, maka dian harus suka es_jeruk, sehingga pertanyaan yang muncul
|?-suka(dian,es_jeruk).
No


Berarti “Saya tidak dapat membuktikan apakah dian suka es_jeruk”. Bahasa prolog mempertimbangkan kasus-kasus seperti itu dengan memberikan fasilitas relationship antar logika yang dituliskan.
suka(dian,es_jeruk):-
minum(dian,es_jeruk).


Struktur argumen pada predicate pertama dihubungkan dengan operator ‘:-‘ (as if). Secara umu strukturnya sering disebut sebagai rule. Rule merupakan salah satu bagian dari clausa, hanya sebagai fact atau assertion serta clausa, dengan cara praktis clausa ini terdiri dari dua bagian, yaitu head (sebelah kiri ‘:-‘) dan body ( sebelah kanan ‘:-‘). Kelemahan dari rule ini adalah : hanya satu tujuan yang ditempatkan dalam head, dan beberapa tujuan yang ditempatkan dalam body yang dipisahkan dengan tanda koma.Contoh seorang pria bahagia jika dia kaya dan terkenal, yang diruliskan dalam bahasa prolog sebagai berikut :
bahagia(seorang):-
pria(seorang),
kaya(seorang), 
terkenal(seorang).


2. Rekursi

Sama dengan bahasa pemrograman lainnya yang mengenal rekursif, bahwa disebut rekursif jika suatu program dalam bentuk fungsi yang memanggil dirinya sendiri dalam source code fungsi tersebut. Sebagai contoh ada dua orang berinisial A dan B, A suka B, jika A dan B keduanya suka minum. Seseorang saling menyukai jika orang pertama suka minum dan yang lainnya suka minuman yang sama. Dan dituliskan dalam prolog :
suka(orang,lainnya):-
suka(orang,minum),
suka(lainnya,minum).
Contoh :
  1. bicara_tentang(A,B):-
  2. tahu(A,B).
  3. bicara_tentang(P,R):-
  4. tahu(P,Q),
  5. bicara_tentang(Q,R).
  6. tahu(dian,sastro).
  7. tahu(sastro,muni).
  8. tahu(sastro,prawiro).
  9. tahu(prawiro,sastro).
Apa yang terjadi jika kita jalankan dengan perintah dibawah ini dan catatlah hasilnya :
|?-bicara_tentang(X,Y).

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.