Professional Documents
Culture Documents
Amalia Tri Rahayu - IF-09-R - Tugas Representasi
Amalia Tri Rahayu - IF-09-R - Tugas Representasi
Kelas : IF-09-R
NIM : 21102237
Tugas Representasi
Jawaban :
besar(kuda).
besar(sapi).
besar(gajah).
kecil(kelinci).
kecil(tikus).
coklat(kuda).
putih(sapi).
abuabu(gajah).
abuabu(tikut).
putih(kelinci).
terang(X):-purih(X)
terang(X):-abuabu(X)
Jawaban :
Query 1: putih(Y),besar(Y).
Hasil dari query ini adalah Y = sapi, karena sapi adalah satu-satunya objek yang memenuhi
kriteria "putih" dan "besar" berdasarkan fakta-fakta yang diberikan. Objek kuda tidak
memenuhi kriteria "putih" meskipun memenuhi kriteria "besar" karena ada fakta bahwa
kuda berwarna coklat.
Query 2: abuabu(Y),kecil(Y).
Hasil dari query ini adalah Y = tikus, karena tikus adalah satu-satunya objek yang
memenuhi kriteria "abuabu" dan "kecil" berdasarkan fakta-fakta yang diberikan. Objek
gajah tidak memenuhi kriteria "kecil" meskipun memenuhi kriteria "abuabu" karena ada
fakta bahwa gajah adalah hewan besar.
Burhan
Bahrun Bisrin
Dari tree tersebut kita dapat membaca bahwa Burhan adalah bawahan langsung dari Adi,
sebaliknya Adi adalah atasan langsung dari Burhan. Fahri dan Farah adalah anak buah dari
Bahrun, sementara Fahri, Farah, Bahrun, Ferdi, Bisrin secara keseluruhan adalah anak buah
dari Burhan.
Jawaban:
anakbuah(adi,burhan).
anakbuah(burhan,bahrun).
anakbuah(burhan,bisrin).
anakbuah(bahrun, fahri).
anakbuah(bahrun, farah).
anakbuah(bisrin,ferdi).
bawahanlangsung(X,Y) :- anakbuah(X,Y).
atasanlangsung(Y,X) :- anakbuah(X,Y).
anakbuahbawahan(X,Y) :- bawahanlangsung(X,Y).
anakbuahbawahan(X,Y) :-
bawahanlangsung(X,XY),anakbuahbawahan(XY,Y)
?- bawahanlangsung(burhan, Y)
Y = bahrun
Y = bisrin
?- bawahanlangsung(bahrun, Y)
Y = fahri
Y = farah
?- bawahanlangsung(bisrin, Y)
Y = ferdi
b. Dengan menggunakan sintaks dari definisi bawahan langsung di atas, terjemahkan untuk
atasan langsung.
?- atasanlangsung(fahri, Y)
Y = bahrun
?- atasanlangsung(bahrun, Y)
Y = burhan
?- atasanlangsung(bisrin, Y)
Y = burhan
?- atasanlangsung(burhan, Y)
Y = adi
?- bawahanlangsung(burhan, Y)
Y = bahrun
Y = bisrin
?- anakbuahbawahan(burhan, X)
X = bahrun
X = bisrin
X = fahri
X = farah
X = ferdi
5. Seorang raja X dengan silsilah keturunannya seperti di bawah ini sedang mencari siapa saja
dari keturunannya yang bisa menggantikan dirinya untuk menjadi raja. Tentu saja ada
syarat untuk menjadi calon raja, yaitu dia adalah keturunan laki-laki atau keturunan laki-
laki dari keturunan laki-laki. Dengan menggunakan representasi logika dan deskripsi
secara rekursif bantulah raja X untuk mencari siapa saja dari keturunannya yang
memungkinkan untuk menggantikan dirinya.
X
Bahrun Farah
Jawaban:
anak(rajaX, bahrun).
anak(rajaX, farah).
anak(bahrun, fahri).
anak(bahrun, salma).
anak(farah, burhan).
anak(farah, ferdi).
anak(fahri, salsa).
anak(fahri, arfan).
anak(salma, farhan).
anak(ferdi, fariz).
anak(ferdi, syifa).
putra(bahrun).
putri(farah).
putra(fahri).
putri(salma).
putra(burhan).
putra(ferdi).
putri(salsa).
putra(arfan).
putra(Farhan).
putra(fariz).
putri(syifa).
anto wati
Jawaban:
Representasi secara logika
anak(ita, anto).
anak(budi, anto).
anak(ida, anto).
anak(ita, wati).
anak(budi, wati).
anak(ida, wati).
anak(hadi, deni).
anak(hadi, ita).
anak(dina, budi).
anak(andi, ida).
anak(rita, ida).
anak(andi, rudi).
anak(rita, rudi).
putra(anto).
putra(budi).
putra(deni).
putra(rudi).
putra(hadi).
putra(andi).
putri(wati).
putri(ita).
putri(ida).
putri(dina).
putri(rita).
lelaki(X) :- putra(X).
wanita(Y) :- putri(Y).
Relasi orangtua
orangtua(X, Y) :- anak(Y, X)
X = anto, Y = ita;
X = anto, Y = budi;
X = anto, Y = ida;
X = wati, Y = ita;
X = wati, Y = budi;
X = wati, Y = ida;
X = ita, Y = budi;
X = ida, Y = andi;
X = ida, Y = rita;
X = rudi, Y = andi;
X = rudi, Y = rita;
X = budi, Y = ita;
X = budi, Y = ida;
X = andi, Y = rita;
putri(X), X \= Y.
X = ita, Y = budi;
X = ita, Y = ida;
X = ida, Y = budi;
X = ida, Y = ita;
X = rita, Y = andi;
Relasi paman
X = deni, Y = dina;
X = budi, Y = hadi;
X = deni, Y = andi;
X = deni, Y = rita;
X = rudi, Y = hadi;
X = rudi, Y = dina;
X = budi, Y = andi;
X = budi, Y = rita;
Relasi bibi
X = ida, Y = hadi;
X = ida, Y = dina;
X = ita, Y = dina;
X = ita, Y = rita;
X = ita, Y = andi;
Relasi kakek
X = anto, Y = hadi;
X = anto, Y = dina;
X = anto, Y = andi;
X = anto, Y = rita;
Relasi nenek
X = wati, Y = hadi;
X = wati, Y = dina;
X = wati, Y = andi;
X = wati, Y = rita;
Relasi cucu
X = hadi, Y = anto;
X = dina, Y = anto;
X = andi, Y = anto;
X = rita, Y = anto;
X = hadi, Y = wati;
X = dina, Y = wati;
X = andi, Y = wati;
X = rita, Y = wati;
7. Dari tree famili dibawah ini, formulasikan dalam bahasa Prolog pertanyaan tentang:
a. Siapa orang tua Basir.
b. Siapa nenek Siti.
c. Apakah Tuti mempunyai anak.
rita husin
abdul rudi
tuti siti
amir basir
Jawaban:
Dari tree family diatas didapat fakta dalam bahasa prolog sebagai berikut
orangtua(rita, abdul)
orangtua(rita, rudi)
orangtau(husin, rudi)
orangtua(rudi, tuti)
orangtua(rudi, siti)
orangtua(siti, amir)
orangtua(siti, basir)
putri(rita)
putra(husin)
putra(abdul)
putri(rudi)
putri(tuti)
putri(siti)
putra(amir)
putri(basir)
a. Untuk mengetahui siapa orang tua Basir, dapat menggunakan query sebagai berikut:
orangtua(X, basir).
sehingga dapat dilihat dari fakta-fakta diatas bahwa yang memenuhi query tersebut adalah
orangtua(siti, basir).
Maka orangtua Basir adalah Siti
b. Untuk mengetahui siapa nenek Siti, kita dapat menggunakan aturan dibawah untuk
mendefinisikan “nenek”:
nenek(X, Y) :- orangtua(X, Z), orangtua(Z, Y), putri(X).
Kemudian menggunakan query berikut:
nenek(X, siti) :- orantua(X, Z), orangtua(Z, siti),
putri(X).
Dimana untuk memenuhi query diatas maka Z = rudi sehingga didapat query
nenek(X, siti) :- orantua(X, rudi), orangtua(rudi, siti),
putri(X).
Dan dari query didapat dapat dilihat pada fakta-fakta diatas yang memenuhi syarat adalah
X = rita
Sehingga didapat bahwa nenek dari Siti adalah Rita
nenek(rita, siti).
c. Untuk mengetahui apakah Tuti mempunyai anak, dapat menggunakan aturan di bawah
untuk mendefinisikan “anak”
anak(X, Y) :- orangtua(Y, X)
kemudian kita dapat menggunakan query sebagai berikut:
anak(X, tuti)
Apabila didilihat dari fakta-fakta diatas tidak ada fakta yang memenuhi query diatas
sehingga artinya Tuti tidak punya anak.
8. Terdapat pohon keluarga seperti dibawah ini. Buatlah dalam bahasa prolog
sekumpulan fakta ayah(A,B) (A adalah ayah B).
a
b c
d e f
buatlah aturan:
a. Predikat sudara_laki(A, B) yang menyatakan A adalah saudara laki-laki B dan
sebaliknya
b. Predikat sepupu(A, B) yang menyatakan A dan B adalah sepupu
c. Predikat cucu(A, B) yang menyatakan A dan B adalah sepupu
d. Predikat turunan(A, B) yang menyatakan A adalah turunan B
?- saudara_laki(A, B)
?- sepupu(A, B)
?- cucu(A, B)
?- turunan(A, B)
Jawaban:
?- saudara_laki(A, B)
Pertanyaan diatas akan mencari dua orang laki-laki yang memiliki ayah yang sama
A = b, B = c;
A = d, B = e;
?- sepupu(A, B)
Pertanyaan diatas akan mencari sepupu dari suatu individu pada tree family diatas
A = d, B = f;
A = e, B = f;
A = f, B = d;
A = f, B = e;
?- cucu(A, B)
Pertanyaan diatas akan mencari cucu dari suatu individu pada tree family diatas
A = d, B = a;
A = e, B = a;
A = f, B = a;
?- turunan(A, B)
Pertanyaan diatas akan mencari turunan dari suatu individu dari tree family diatas
A = b, B = a;
A = c, B = a;
A = d, B = b;
A = e, B = b;
A = f, B = c;
A = d, B = a;
A = e, B = a;
A = f, B = a;
pembuat(terry, shrfdlu)
pembuat(bill, lunar)
pembuat(roger, sam)
pembuat(gottlob, begriffsschrift)
pembuat(Bertrand, principia)
pembuat(Alfred, principia)
buku(begriffsschrift)
buku(principia)
program(lunar)
program(sam)
program(shrdlu)
Untuk mengajukan pertanyaan pada system
?-pembuat(Who,shrdlu).
Terdapat satu orang dari fakta-fakta diatas yang membuat shrdlu yaitu
?-pembuat(Who,shrdlu).
Who = terry;
?-pembuat(Who,principia).
Terdapat beberapa pembuat yang membuat principia pada fakta yaitu
?-pembuat(Who, principia).
Who = Bertrand;
Who = Alfred;
?-buku(Book),pembuat(Person,Book).
Terdapat beberapa buku dan pembuatnya yaitu
X = bertrand;
X = alfred;
X = gottlob, Y = begriffsschrift;
X = Bertrand, Y = principia;
X = Alfred, Y = principia;