sispak4

7
Uro.abdulrohim/modul/sistempakar/modul4 1 Modul Pratikum Sistem Pakar (Modul 4) TOPIK : PROGRAM SILSILAH KELUARGA KERAJAAN INGGRIS Dalam Praktikum kali ini, setelah anda berkenalan dengan Turbo Prolog ,kini coba anda implementasikan persoalan silsilah kerajaan Inggris ini ke dalam Turbo 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".

Upload: rahmad-wahyudi

Post on 23-Dec-2015

31 views

Category:

Documents


0 download

DESCRIPTION

jjhvh

TRANSCRIPT

Page 1: sispak4

Uro.abdulrohim/modul/sistempakar/modul4

1 Modul Pratikum Sistem Pakar (Modul 4)

TOPIK : PROGRAM SILSILAH KELUARGA KERAJAAN INGGRIS Dalam Praktikum kali ini, setelah anda berkenalan dengan Turbo Prolog ,kini coba anda implementasikan persoalan silsilah kerajaan Inggris ini ke dalam Turbo 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".

Page 2: sispak4

Uro.abdulrohim/modul/sistempakar/modul4

2 Modul Pratikum Sistem Pakar (Modul 4)

"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).

Page 3: sispak4

Uro.abdulrohim/modul/sistempakar/modul4

3 Modul Pratikum Sistem Pakar (Modul 4)

/* 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).

Page 4: sispak4

Uro.abdulrohim/modul/sistempakar/modul4

4 Modul Pratikum Sistem Pakar (Modul 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) ←male(X) and parent(X,Z) and parent(Z,Y). /* 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))

Page 5: sispak4

Uro.abdulrohim/modul/sistempakar/modul4

5 Modul Pratikum Sistem Pakar (Modul 4)

or (sister(U,Y) and parent(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 */

Page 6: sispak4

Uro.abdulrohim/modul/sistempakar/modul4

6 Modul Pratikum Sistem Pakar (Modul 4)

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

Page 7: sispak4

Uro.abdulrohim/modul/sistempakar/modul4

7 Modul Pratikum Sistem Pakar (Modul 4)

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