DOMAINS
nama = symbol
PREDICATES
ayah(nama,nama)
ibu(nama,nama)
kakek(nama,nama)
nenek(nama,nama)
saudara_kandung(nama,nama)
saudara_sepupu(nama,nama)
saudara_tiri(nama,nama)
menu
pilihan(integer)
CLAUSES
ayah(indra,budiman).
ayah(indra,hermawan).
ayah(indra,shanti).
ayah(indra,melani).
ayah(indra,putra).
ayah(indra,santoso).
ayah(indra,gilang).
ayah(hendra,hengki).
ayah(hendra,zaki).
ayah(hendra,jono).
ayah(hengki,nena).
ayah(hengki,bayu).
ayah(hengki,burhan).
ayah(hermawan,doni).
ayah(hermawan,evi).
ayah(hermawan,bagus).
ibu(mami,budiman).
ibu(mami,hermawan).
ibu(mami,shanti).
ibu(mami,melani).
ibu(mami,putra).
ibu(x,santoso).
ibu(x,gilang).
ibu(evi,hengki).
ibu(evi,zaki).
ibu(evi,jono).
ibu(shanti,nena).
ibu(shanti,bayu).
ibu(shanti,burhan).
ibu(mawar,doni).
ibu(mawar,evi).
ibu(mawar,bagus).
/* Aturan */
kakek(Kakek,Cucu) :-
ayah(Ayah,Cucu),
ayah(Kakek,Ayah).
kakek(Kakek,Cucu) :-
Ibu(Ibu,Cucu),
ayah(Kakek,Ibu).
nenek(Nenek,Cucu):-
ayah(Ayah,Cucu),
ibu(Nenek,Ayah).
nenek(Nenek,Cucu):-
ibu(Ibu,Cucu),
ibu(Nenek,Ibu).
saudara_kandung(Nama1,Nama2):-
ayah(Ayah,Nama1),
ayah(Ayah,Nama2),
ibu(Ibu,Nama1),
ibu(Ibu,Nama2),
Nama1 <> Nama2.
saudara_sepupu(Sdr1,Sdr2):-
ayah(Ayah1,Sdr1),
ayah(Ayah2,Sdr2),
saudara_kandung(Ayah1,Ayah2).
saudara_sepupu(Sdr1,Sdr2):-
ayah(Ayah,Sdr1),
ibu(Ibu,Sdr2),
saudara_kandung(Ayah,Ibu).
saudara_sepupu(Sdr1,Sdr2):-
ibu(Ibu,Sdr1),
ayah(Ayah,Sdr2),
saudara_kandung(Ibu,Ayah).
saudara_sepupu(Sdr1,Sdr2):-
ibu(Ibu1,Sdr1),
ibu(Ibu2,Sdr2),
saudara_kandung(Ibu1,Ibu2).
saudara_tiri(Nama,Name):-
ayah(Ayah,Nama), /*sodara tiri seayah*/
ayah(Ayah,Name),
ibu(Ibu1,Nama),
ibu(Ibu2,Name),
Nama <> Name,
Ibu1 <> Ibu2.
menu :-
clearwindow,
makewindow(2,27,110,"",5,10,15,60),
write(" Apa yang ingin anda ketahui ? "),nl,nl,nl,
write("1. Saudara kandung "),nl,
write("2. Saudara sepupu "),nl,
write("3. Saudara tiri "),nl,
write("4. Kakek "),nl,nl,
write(" Masukkan pilihan anda : "),
readint(Pilihan),
pilihan(Pilihan),menu.
pilihan(1):-
clearwindow,
makewindow(4,30,150," Saudara Kandung ",0,0,25,80),
write("Saudara kandung dari siapa ? "),readln(X),
saudara_kandung(Y,X),write ("Saudara kandung dari ",X, " adalah ",Y),nl,fail.
pilihan(2):-
clearwindow,
makewindow(4,30,150," Saudara Sepupu ",0,0,25,80),
write("Saudara sepupu dari siapa ? "),readln(X),
saudara_sepupu(X,Y),write ("Saudara sepupu dari ",X, " adalah ",Y),nl,fail.
pilihan(3):-
clearwindow,
makewindow(4,30,150," Saudara Tiri ",0,0,25,80),
write("Saudara tiri dari siapa ? "),readln(X),
saudara_tiri(X,Y),write ("Saudara tiri dari ",X, " adalah ",Y),nl,fail.
pilihan(4):-
clearwindow,
makewindow(4,30,150," Kakek ",0,0,25,80),
write("Kakek dari siapa ? "),readln(X),
kakek(Y,X),write ("Kakek dari ",X, " adalah ",Y),nl,fail.
Goal
menu,makewindow(3,24,67,"",0,0,25,80).
Terimakasih sudah membantu😊
BalasHapus