PROLOG KLASIFIKASI KELUARGA
Friday, December 20, 2013
Kemarin dapat tugas dari dosen buat PROLOG Klasifikasi keluarga,,
untuk share ilmu ini dia Klasifikasi keluarga dari keluarga besar ibuku..
B.
Pendeklarasian
library (Prolog Declarative)
C.
Hasil
dari Testing Membership
25. Siapa saudara kandung dari fircha?
untuk share ilmu ini dia Klasifikasi keluarga dari keluarga besar ibuku..
A. Pohon Keluarga
Dalam klasifikasi keluarga “Kuslan dan
Khalifah” sedalam 4 level.
a.
Jumlah
anggota laki-laki ada 12 orang.
b.
Jumlah
anggota perempuan ada 13 orang.
c.
Jumlah
anak “Kuslan dan Khalifah” ada 5 orang.
d.
Jumlah
cucu “Kuslan dan Khalifah” ada 11 orang.
e.
Jumlah
cicit dari “Kuslan dan Khalifah” ada 1 orang.
f.
Jumlah
menantu laki-laki “Kuslan dan Khalifah” ada 4 orang.
g.
Jumlah
menantu perempuan “Kuslan dan Khalifah” ada 1 orang.
h.
Jumlah
cucu menantu laki-laki “Kuslan dan Khalifah” ada 1 orang.
i.
Jumlah
cucu menantu perempuan “Kuslan dan Khalifah” 0 orang (tidak ada).
B.
Pendeklarasian
library (Prolog Declarative)
Dengan cara membangun clauses. Clauses dapat berisi fakta ataupun rules/aturan. Didalam tugas ini clauses
yang berupa fakta adalah
%keluarga berjenis kelamin laki-laki
laki(kuslan).
laki(yazid).
laki(ghozali).
laki(muzayin).
laki(reni).
laki(yaswito).
laki(fiky).
laki(ziky).
laki(masyfu).
laki(juna).
laki(imam).
laki(izzu).
%keluarga berjenis kelamin perempuan
perempuan(khalifah).
perempuan(roisa).
perempuan(kalimah).
perempuan(istiqomah).
perempuan(kundayati).
perempuan(khabibah).
perempuan(fika).
perempuan(fida).
perempuan(rurul).
perempuan(fircha).
perempuan(atik).
perempuan(aning).
perempuan(bella).
%orang tua dari masing-masing anak
orangtua(kuslan,yazid).
orangtua(kuslan,kalimah).
orangtua(kuslan,istiqomah).
orangtua(kuslan,kundayati).
orangtua(kuslan,khabibah).
orangtua(khalifah,yazid).
orangtua(khalifah,kalimah).
orangtua(khalifah,istiqomah).
orangtua(khalifah,kundayati).
orangtua(khalifah,khabibah).
orangtua(yazid,fiky).
orangtua(yazid,fika).
orangtua(yazid,fida).
orangtua(roisa,fiky).
orangtua(roisa,fika).
orangtua(roisa,fida).
orangtua(kalimah,rurul).
orangtua(kalimah,ziky).
orangtua(ghozali,rurul).
orangtua(ghozali,ziky).
orangtua(istiqomah,masyfu).
orangtua(istiqomah,fircha).
orangtua(muzayin,masyfu).
orangtua(muzayin,fircha).
orangtua(kundayati,atik).
orangtua(kundayati,aning).
orangtua(reni,atik).
orangtua(reni,aning).
orangtua(khabibah,bella).
orangtua(khabibah,juna).
orangtua(yaswito,bella).
orangtua(yaswito,juna).
orangtua(rurul,izzu).
orangtua(imam,izzu).
Clauses yang
berupa rule/peraturan adalah
%query untuk
mencari anggota keluarga dalam silsilah
ibu(X,Y):-orangtua(X,Y),perempuan(X).
ayah(X,Y):-orangtua(X,Y),laki(X).
anak(X,Y):-orangtua(Y,X).
anaklaki(X,Y):-orangtua(Y,X),laki(X).
anakperempuan(X,Y):-orangtua(Y,X),perempuan(X).
suami(X,Y):-anak(P,X),anak(P,Y),laki(X).
istri(Y,X):-anak(P,X),anak(P,Y),perempuan(Y).
mertua(X,Y):-(suami(Y,Z);istri(Y,Z)),anak(Z,X).
bapakmertua(X,Y):-(suami(Y,Z);istri(Y,Z)),anak(Z,X),laki(X).
ibumertua(X,Y):-(suami(Y,Z);istri(Y,Z)),anak(Z,X),perempuan(X).
menantulaki(X,Y):-suami(X,Z),anak(Z,Y),perempuan(Z).
menantuperempuan(X,Y):-istri(X,Z),anak(Z,Y),laki(Z).
kakek(X,Z):-orangtua(X,Y),orangtua(Y,Z),laki(X).
nenek(X,Z):-ibu(X,Y),ibu(Y,Z).
cucu(X,Z):-orangtua(Z,Y),anak(X,Y).
cuculaki(X,Z):-orangtua(Z,Y),anak(X,Y),laki(X).
cucuperempuan(X,Z):-orangtua(Z,Y),anak(X,Y),perempuan(X).
cicit(X,Z):-anak(X,Y),cucu(Y,Z).
cicitperempuan(X,Z):-anak(X,Y),cucu(Y,Z),perempuan(X).
cicitlaki(X,Z):-anak(X,Y),cucu(Y,Z),laki(X).
buyut(X,Y):-cicit(Y,X).
buyutlaki(X,Y):-cicit(Y,X),laki(X).
buyutperempuan(X,Y):-cicit(Y,X),perempuan(X).
saudarakandung(Y,Z):-anak(Y,X),anak(Z,X).
saudarakandunglaki(Y,Z):-anak(Y,X),anak(Z,X),laki(Y).
saudarakandungperempuan(Y,Z):-anak(Y,X),anak(Z,X),perempuan(Y).
tantekandung(X,Y):-saudarakandung(X,Z),anak(Y,Z),perempuan(X),not(ibu(X,Y)).
tanteipar(X,Y):-istri(X,Z),saudarakandung(Z,W),anak(Y,W),perempuan(X),not(ibu(X,Y)),not(tante(X,Y)).
omkandung(X,Y):-saudarakandung(X,Z),orangtua(Z,Y),laki(X),not(ayah(X,Y)).
omipar(X,Y):-suami(X,Z),saudarakandung(Z,W),anak(Y,W),laki(X),not(ayah(X,Y)),not(om(X,Y)).
ipar(X,Y):-(suami(X,Z);istri(X,Z)),saudarakandung(Z,Y),not(saudarakandung(X,Y)),not((suami(X,Y);istri(X,Y))).
iparlaki(X,Y):-suami(X,Z),saudarakandung(Z,Y),laki(X),not(saudarakandung(X,Y)),not(suami(X,Y)).
iparperempuan(X,Y):-istri(X,Z),saudarakandung(Z,Y),perempuan(X),not(saudarakandung(X,Y)),not(istri(X,Y)).
ponakan(X,Y):-anak(X,Z),saudarakandung(Z,Y),not(anak(X,Y)).
ponakanlaki(X,Y):-anak(X,Z),saudarakandung(Z,Y),not(anak(X,Y)),laki(X).
ponakanperempuan(X,Y):-anak(X,Z),saudarakandung(Z,Y),not(anak(X,Y)),perempuan(X).
sepupu(X,Y):-anak(X,Z),anak(Y,W),saudarakandung(Z,W),not(saudarakandung(X,Y)).
sepupuperempuan(X,Y):-anak(X,Z),anak(Y,W),saudarakandung(Z,W),not(saudarakandung(X,Y)),perempuan(X).
sepupulaki(X,Y):-anak(X,Z),anak(Y,W),saudarakandung(Z,W),not(saudarakandung(X,Y)),laki(X).
C.
Hasil
dari Testing Membership
Testing
membership adalah dengan
memasukkan query untuk mencari silsilah
dalam keluarga. Hasilnya dilihat dari fakta/kondisi yang sudah ada.
1.
Siapa
anak dari Kuslan?
?-anak(X,kuslan).
2.
Siapa
anak dari Khalifah?
?-anak(X,khalifah).
3.
Siapa
anak laki-laki dari Kuslan?
?-anaklaki(X,kuslan).
4.
Siapa
anak perempuan dari Kuslan?
?-anakperempuan(X,kuslan).
5.
Siapa
ayah dari istiqomah?
?-ayah(X,istiqomah).
6.
Siapa
ibu dari yazid?
?-ibu(X,yazid).
7.
Siapa
suami dari roisa?
?-suami(X,roisa).
8.
Siapa
istri dari ghozali?
?-istri(X,ghozali).
9.
Siapa
mertua dari imam?
?-mertua(X,imam).
10. Siapa ibu mertua dari muzayin?
?-ibumertua(X,muzayin).
11. Siapa bapak mertua dari reni?
?-bapakmertua(X,reni).
12. Siapa menantu wanita dari kuslan?
?-menantuperempuan(X,kuslan).
13. Siapa menantu laki-laki dari khalifah?
?-menantulaki(X,khalifah).
14. Siapa kakek dari fircha?
?-kakek(X,fircha).
15. Siapa nenek dari fircha?
?-nenek(X,fircha).
16. Siapa cucu dari kalimah?
?-cucu(X,kalimah).
17. Siapa cucu laki-laki dari kuslan?
?-cuculaki(X,kuslan).
18. Siapa cucu wanita dari khalifah?
?-cucuperempuan(X,khalifah).
19. Siapa cicit dari kuslan?
?-cicit(X,kuslan).
20. Siapa cicit laki-laki dari khalifah?
?-cicitlaki(X,khalifah).
21. Siapa cicit wanita dari khalifah?
?-cicitperempuan(X,khalifah).
22. Siapa buyut dari izzu?
?-buyut(X,izzu).
23. Siapa buyut laki-laki dari izzu?
?-buyutlaki(X,izzu).
24. Siapa buyut wanita dari izzu?
?-buyutperempuan(X,izzu).
?-saudarakandung(X,fircha).
26. Siapa saudara kandung laki-laki dari fika?
?-saudarakandunglakii(X,fika).
27. Siapa saudara kandung wanita dari fiky?
?-saudarakandungperempuan(X,fiky).
28. Siapa tante kandung dari fircha?
?-tantekandung(X,fircha).
29. Siapa tante kandung dari rurul?
?-tantekandung(X,rurul).
30. Siapa om kandung dari juna?
?-omkandung(X,juna).
31. Siapa om kandung dari izzu?
?-omkandung(X,izzu).
32. Siapa ponakan khabibah?
?-ponakan(X,khabibah).
33. Siapa ponakan laki dari yazid?
?-ponakanlaki(X,yazid).
34. Siapa ponakan wanita dari kundayati?
?-ponakanperempuan(X,kundayati).
35. Siapa sepupu dari masyfu?
?-sepupu(X,masyfu).
36. Siapa sepupu laki dari fika?
?-sepupulaki(X,fika).
37. Siapa sepupu wanita dari rurul?
?-sepupuperempuan(X,rurul).
tag : PROLOG, SOUR CODE PROLOG, PROLOG KLASIFIKASI KELUARGA, PROGRAM LOGIC, PROGRAM LODIC SOURCE CODE, Artificial Intelegence, Kecerdasan Buatan