Posted by : Unknown Jumat, 04 April 2014

Klausa dan Predikat dalam Prolog

Klausa

Klausa merupakan unit penyusun dari program prolog. Klausa dibagi menjadi dua yaitu

Fakta

Contoh
- suka(andi, eskrim).
     Bisa dibaca andi suka eskrim
- anakperempuan(lila, agus)
Bisa dibaca lila anakperempuan dari agus.
- cat(felix).
     Bisa dibaca felix adalah kucing

Aturan

Contoh
- orangtua(X,Y) :- anak(Y,X).
     Bisa dibaca X adalah orangtua Y jika Y adalah anak dari X
- paman(X,Y) :- orangtua(Z,Y), saudaralaki(X,Z).
     Bisa dibaca X adalah paman dari Y jika Z adalah orangtua dari Y dan X adalah saudaralaki dari Z


Predikat

Hubungan yang merepresentasikan klausa. contoh
- Klausa suka(andi, eskrim) maka predikatnya adalah suka.
- Klausa anakperempuan(lila, agus) maka predikatnya adalah anakperempuan.

Variabel

Variabel merupakan sebuah interpretasi yang digunakan untuk menemukan nilai dari sebuah klausa. Variabel harus diawali dengan huruf besar.
Contoh
- suka(andi,X) .
            X = eskrim
- anakperempuan(lila, X).
            X = agus
 Variabel yang memiliki beberapa value kamu dapat memunculkan nilai lain dengan menekan tombol (;)

Deskripsi Rekrusif dari Sebuah Hubungan
Nah ini yang gak kalah penting, Rekursif ini digunakan untuk mencari seluruh dari child dari sebuah tree. Intinya, misalkan terdapat sebuah keluarga terdapat kakek, ayah, dan anak. Maka untuk mendapatkan seluruh keturunan dari kakek, yaitu kakek, ayah, anak, anaknya anak dan seterusnya kita membutuhkan rekursif.
Representasinya seperti berkut
turunan(X,Y) :- antiturunan(Y,X).
turunan(X,Y) :- antiturunan(Y,Z), turunan(X,Z).

Contoh soal

1.  Dari suatu pohon keluarga berikut buatlah suatu program prolog yang menyatakan predikat anak, perempuan, lakilaki, orangtua, paman, bibi, kakek, nenek, menikah, saudaralaki, saudaraperempuan !



Jawab :
anak(ida, anto).
anak(ida, wati).
anak(ita, anto).
anak(ita, wati).
anak(budi, anto).
anak(budi, wati).
anak(dina, budi).
anak(dina, lila).
anak(hadi, ita).
anak(hadi, deni).
anak(andi, ida).
anak(andi, rudi).
anak(rita, ida).
anak(rita, rudi).

perempuan(wati).
perempuan(ita).
perempuan(ida).
perempuan(rita).
perempuan(dina).

lakilaki(anto).
lakilaki(deni).
lakilaki(budi).
lakilaki(rudi).
lakilaki(hadi).
lakilaki(andi).

menikah(anto,wati).
menikah(deni,ita).
menikah(budi,lila).
menikah(rudi,ida).

orangtua(A,B,C):-anak(C,A),menikah(A,B), (A)\==(B).
saudaralaki(X,Y):-orangtua(A,B,X), orangtua(A,B,Y), lakilaki(Y), (X)\==(Y).
saudaraperempuan(X,Y):-orangtua(A,B,X), orangtua(A,B,Y), perempuan(Y), (X)\==(Y).
paman(X,Y):-anak(Y,Z), saudaralaki(Z,X).
bibi(X,Y):-anak(Y,Z), saudaraperempuan(Z,X).
kakek(X,Y):-anak(Y,Z),anak(Z,X), lakilaki(X).
nenek(X,Y):-anak(Y,Z),anak(Z,X), perempuan(X).

2.   Dari suatu organisasi berikut buatlah suatu program prolog yang menyatakan predikat atasanlangsung, bawahanlangsung, anakbuah !




Jawab :
bawahanlangsung(burhan, adi).
bawahanlangsung(bahrun, burhan).
bawahanlangsung(bisrin, burhan).
bawahanlangsung(fahri, bahrun).
bawahanlangsung(farah, bahrun).
bawahanlangsung(ferdi, bisrin).

atasanlangsung(X,Y):-bawahanlangsung(Y,X).
anakbuah(X,Z):-atasanlangsung(Z,X).
anakbuah(X,Z):-atasanlangsung(Z,Y),anakbuah(X,Y).

Leave a Reply

Subscribe to Posts | Subscribe to Comments

Popular Post

About Us

Diberdayakan oleh Blogger.

Games & Multimedia

SCIENCE & TECHNOLOGY

Like Us

Advertisment

Popular Posts

Follow us on FaceBook

- Copyright © Jurnal Kuliah -Metrominimalist- Powered by Blogger - Designed by Johanes Djogan -