Anda di halaman 1dari 7

Modul Pratikum 1

TOPIK : PROGRAM SILSILAH KELUARGA KERAJAAN INGGRIS

Dalam Praktikum kali ini, setelah anda berkenalan dengan Prolog ,kini coba anda
implementasikan persoalan silsilah kerajaan Inggris ini ke dalam Prolog.

ATURAN DASAR
Aturan dasar yang harus anda buat pada predicates program anda adalah sebagai
berikut :
male(name)
female(name)
parent(name,name)
couple(name,name)

ATURAN TURUNAN
husband(name,name)
wife(name,name)
son(name,name)
daughter(name,name)
child(name,name)
father(name,name)
mother(name,name)
brother(name,name)
sister(name,name)
grandpa(name,name)
grandma(name,name)
cousin(name,name)
niece(name,name)
nephew(name,name)
uncle(name,name)
aunt(name,name)
daughter_in_law(name,name)
son_in_law(name,name)
father_in_law(name,name)
mother_in_law(name,name)
brother_in_law(name,name)
sister_in_law(name,name)

clauses
/* male(X) : X adalah pria */
Yang termasuk Male :
"Philip"
"Charles".
"Andrew".
Modul Pratikum 2

"Edward".
"Mark"
"William".
"Harry".
"Peter"

/* female(X) : X adalah wanita */


yaitu :
"Elizabeth".
"Diana".
"Anne".
"Sarah".
"Zara".
"Beatrice".
"Eugenie".

/* parent(X,Y) : X adalah orangtua dari Y */


 “Philip” dan “Elizabeth” adalah orang tua (Parent ) dari :
"Charles".
"Anne".
"Andrew" .
"Edward".
 “Charles” dan “Diana” adalah orang_tua(parent ) dari :
"William".
"Harry".
 “Mark” dan “Anne” adalah orang_tua dari :
"Peter".
"Zara".
 “Andrew” dan “Sarah” adalah orang_tua dari :
"Beatrice"
"Eugenie".

Untuk couple(X,Y) lihat kembali Parent(X,Y).


/* couple(X,Y) : X adalah pasangan dari y */

ALGORITMA-ALGORITMA
/*husband(X,Y) : X adalah suami dari Y */
husband(X,Y) :-
Algoritma
husband(X,Y) male(X) and couple(X,Y).
Modul Pratikum 3

/* wife(X,Y) : X adalah isteri dari Y */


wife(X,Y) :-
Algoritma
wife(X,Y)  female(X) and couple(X,Y)

/* son(X,Y) : X adalah anak lelaki dari Y */


son(X,Y) :-
Algoritma
son(X,Y)  (male(X)and father(Y,X)) or (male(X) and
mother(Y,X))

/* daughter(X,Y) : X adalah anak wanita dari Y */


daughter(X,Y) :-
Algoritma
daughter(X,Y)  female(X)and father(Y,X)) or (female(X)
and mother(Y,X))

/* child(X,Y) : X adalah anak dari Y */


child(X,Y) :-
Algoritma
child(X,Y) son(X,Y) or daughter(X,Y).

/* father(X,Y) : X adalah ayah dari Y */


father(X,Y) :-
Algoritma
father(X,Y)  male(X) and parent(X,Y).

/* mother(X,Y) : X adalah ibu dari Y */


mother(X,Y) :-
Algoritma
mother(X,Y) female(X) and parent(X,Y).
Modul Pratikum 4

/* brother(X,Y) : X adalah saudara laki-laki dari Y */


brother(X,Y) :-
Algoritma
brother(X,Y) male(X) and parent(F,X) and parent(F,Y) and
X  Y.

/* sister(X,Y) : X adalah saudara wanita dari Y */


sister(X,Y) :-
Algoritma
sister(X,Y) female(X) and parent(F,X) and parent(F,Y) and
X  Y.

/* grandpa(X,Y) : X adalah kakek dari Y */


grandpa(X,Y) :-
Algoritma
grandpa(X,Y)  and parent(X,Z) and
parent(Z,Y). male(X)

/* grandma(X,Y) : X adalah nenek dari Y */


grandma(X,Y) :-
Algoritma
grandma(X,Y)  female(X) and parent(X,Z) and
parent(Z,Y).

/* cousin(X,Y) : X adalah saudara sepupu dari Y */


cousin(X,Y) :-
Algoritma
cousin(X,Y)  (brother(Z,W) and parent(Z,Y) and
parent(W,X) and Z W) or(sister(Z,W) and parent(Z,Y) and
parent(W,X) and Z  W)

/* niece(X,Y) : X adalah kemenakan wanita dari Y */


niece(X,Y) :-
Algoritma
niece(X,Y)  (brother(U,Y) and parent(U,X) and
female(X))
Modul Pratikum 5

or (sister(U,Y)andparent(U,X)and
female(X))

/* nephew(X,Y) : X adalah kemenakan laki-laki dari Y */


nephew(X,Y) :-
Algoritma
nephew(X,Y)(male(X) and parent(U,X)and brother(U,Y))
or(male(X) and parent(U,X) and
sister(U,Y))

/* son_in_law(X,Y) : X adalah menantu laki-laki dari Y */


son_in_law(X,Y) :-
Algoritma
son_in_law(X,Y) couple(U,X) and daughter(U,Y).

/* daughter_in_law(X,Y) : X adalah menantu wanita dari Y */


daughter_in_law(X,Y) :-
Algoritma
daughter_in_law(X,Y)  couple(U,X) and son(U,Y).

/* father_in_law(X,Y) : X adalah bapak mertua dari Y */


father_in_law(X,Y) :-
Algoritma
father_in_law(X,Y)  couple(U,Y) and father(X,U).

/* mother_in_law(X,Y) : X adalah ibu mertua dari Y */


mother_in_law(X,Y) :-
Algoritma
mother_in_law(X,Y)  couple(U,Y) and mother(X,U).

/* sister_in_law(X,Y) : X adalah ipar wanita dari Y */


sister_in_law(X,Y) :-
Algoritma
sister_in_law(X,Y) female(X) and parent(U,Y) and
daughter_in_law(X,U) and not (couple(X,Y)).

/* brother_in_law(X,Y) : X adalah ipar pria dari Y */


Modul Pratikum 6

brother_in_law(X,Y) :-
Algoritma
brother_in_law(X,Y) male(X) and parent(U,Y) and
son_in_law(X,U) and not(couple(X,Y)).

/* uncle(X,Y) : X adalah paman dari Y */


uncle(X,Y) :-
Algoritma
uncle(X,Y)  (parent(U,Y) and brother(X,U))
or (parent(U,Y) and
brother_in_law(X,U))

/* aunt(X,Y) : X adalah bibi dari Y */


aunt(X,Y) :-
Algoritma
aunt(X,Y)  (parent(U,Y) and sister(X,U)) or
(parent(U,Y)and sister_in_law(X,U))

CONTOH QUERY-QUERY
Goal: Male("Philip")
Yes

Goal: Parent(X,"Charles")
X=Philip
X=Elizabeth
2 Solutions

Goal: Son(X,"Philip")
X=Charles
X=Andrew
X=Edward
3 Solutions

Goal: Child("Harry","Charles")
Yes

Goal: Mother("Diana",X)
X=William
X=Harry
2 Solutions
Modul Pratikum 7

Goal: father_in_law("Philip",X)
X=Diana
X=Mark
X=Sarah
3 Solutions

Anda mungkin juga menyukai