~:Catatan Belajar MazHel:~

membuat silsilah keluarga menggunakan turbo prolog 1.1

Posted in Programming by m42h31 on 30 Desember 2008

minggu yang melelahkan, teringat olehku keluarga di kampung halaman, sambil membayangkan berkumpul bersama mereka menghabiskan sore hari ditemani secangkir teh manis di depan surau mewah (mepet sawah). di depan sana berkilauan hijaunya sawah di terpa hangatnya mentari sore.

sambil membayangkan keluarga, kayaknya asyik juga ya klu kita buat sebuat program sederhana silsilah keluarga, di saat kita lupa siapakah status si A itu di keluarga kita tinggal tanya aja ama komputer. wahh, menarik yaa… yuuk kita buat..😀

Code:
/* code written by m42h31 */

/* domains */
Domains
sym = Symbol

Predicates

anak(sym,sym)
kakek(sym,sym)
nenek(sym,sym)
ayah(sym,sym)
ibu(sym,sym)
ortu(sym,sym)
paman(sym,sym)
bibi(sym,sym)
sdr_kandung(sym,sym)
sdr_tiri(sym,sym)
sepupu(sym,sym)
sodara(sym,sym)
keponakan(sym,sym)
menikah(sym,sym)
mertua(sym,sym)
menantu(sym,sym)
cucu(sym,sym)
pria(sym)
wanita(sym)

/* FAKTA */

Clauses
/* gender */
pria(namaKakek1).
pria(namaKakek2).
pria(namaKakek3).
pria(namaAyah1).
pria(NamaAyah2).
pria(NamaAnakLk1).
pria(NamaAnakLk2).
pria(NamaANakLk3).
wanita(NamaNenek1).
wanita(NamaNenek2).
wanita(NamaNenek3).
wanita(NamaIbu1).
wanita(NamaIbu2).
wanita(NamaAnakPr1).
dan seterusnya ..

/*anak*/
anak(namaAyah1,namaKakek1).
anak(namaAyah1,namaKakek1).
anak(NamaIbu1,namaKakek1).
anak(NamaIbu1,namaKakek1).
anak(namaAyah1,NamaNenek1).
anak(namaAyah1,NamaNenek1).
anak(NamaIbu1,NamaNenek1).
anak(NamaIbu1,NamaNenek1).
anak(NamaAyah2,namaKakek2).
anak(NamaAyah2,namaKakek2).
anak(NamaAyah2,namaNenek2).
anak(NamaAyah2,namaNenek2).
anak(NamaAyah2,namaNenek2).
dan seterusnya…

/*menikah*/
menikah(NamaKakek1,NamaNenek1).
menikah(NamaNenek1,NamaKakek1).
menikah(NamaAyah1,NamaIbu1).
menikah(NamaIbu1,NamaAyah1).
dan seterusnya ..

/* ATURAN RULES */

ayah(Parent,Child):-
anak(Child,Parent),
pria(Parent).

ibu(Parent,Child):-
anak(Child,Parent),
wanita(Parent).

ortu(Parent,Child):-
ayah(Parent,Child);
ibu(Parent,Child).

kakek(Kakek,Cucu):-
ortu(Kakek,Parent),
ortu(Parent,Cucu),
pria(Kakek).

nenek(Nenek,Cucu):-
ortu(Nenek,Parent),
ortu(Parent,Cucu),
wanita(Nenek).

paman(Uncle,Person):-
sodara(Uncle,Parent),
ortu(Parent,Person),
pria(Uncle);
ortu(Parent,Person),
sodara(Uncle1,Parent), /*paman karena menikah dengan bibi*/
menikah(Uncle,Uncle1),
pria(Uncle).

bibi(Uncle,Person):-
sodara(Uncle,Parent),
ortu(Parent,Person),
wanita(Uncle);
ortu(Parent,Person),
sodara(Uncle1,Parent), /*bibi karena menikah dengan paman*/
menikah(Uncle,Uncle1),
wanita(Uncle).

sdr_kandung(Nama,Name):-
ayah(Ayah,Nama), /*sodara kandung seayah seibu*/
ayah(Ayah,Name),
ibu(Ibu,Nama),
ibu(Ibu,Name),
Nama <> Name.

sdr_tiri(Nama,Name):-
ayah(Ayah,Nama), /*sodara tiri seayah*/
ayah(Ayah,Name),
ibu(Ibu1,Nama),
ibu(Ibu2,Name),
Nama <> Name,
Ibu1 <> Ibu2;

ayah(Ayah1,Nama), /*sodara tiri seibu*/
ayah(Ayah2,Name),
ibu(Ibu,Nama),
ibu(Ibu,Name),
Nama <> Name,
Ayah1 <> Ayah2.

sepupu(Nama,Name):-
ortu(Parent1,Nama), /* sodara sepupu anak paman bibi */
ortu(Parent2,Name),
sdr_kandung(Parent1,Parent2).

sodara(Nama,Name):-
sdr_kandung(Nama,Name); /*walau bagaimanapun semuanya sodara-sodaraku*/
sdr_tiri(Nama,Name);
sepupu(Nama,Name).

keponakan(Person,Uncle):-
anak(Person,Parent),
sodara(Parent,Uncle);
anak(Person,Parent), /* menjadi keponakan karena menikah */
sodara(Parent,Uncle1),
menikah(Uncle1,Uncle).

mertua(ParentLaw,Nikah):-
ortu(ParentLaw,Married),
menikah(Married,Nikah).

cucu(Nama,GrandParent):-
kakek(GrandParent,Nama);
nenek(GrandParent,Nama).

menantu(Nama,Mertua):-
menikah(Nama,Name),
anak(Name,Mertua).

9 Tanggapan

Subscribe to comments with RSS.

  1. xuma_ai said, on 15 Januari 2009 at 03:46

    mantap mass..
    izin koppas yaah..

  2. m42h31 said, on 17 Januari 2009 at 23:30

    ok mas silahkan. smoga bermanfaat…🙂

  3. Aan Sam said, on 23 Februari 2009 at 03:06

    permisi,
    ikutan mohon izin juga nich mas.

  4. m42h31 said, on 25 Februari 2009 at 01:11

    yups, silahkan dikembangkan lagi yaa…

  5. kholil aswan said, on 11 Juni 2012 at 09:27

    mass izin copi ya untuk belajar prolog..?

  6. Kirby said, on 6 September 2012 at 04:54

    For most up-to-date information you have to pay a visit web
    and on web I found this web page as a finest web page for
    latest updates.

  7. fat loss supplements for men said, on 25 Oktober 2012 at 16:14

    Scientific studies own proved that there’s a eating habits study caralluma fimbriata not to mention weight loss. But, on the internet dietary supplement that you just take, it is good to reconsider to be on that safe part previously working with as well as having to take all weight loss health supplement. Do not forget to check with medical attention before thinking about medicine that means to assist you to lose weight.

  8. aji said, on 26 Juli 2013 at 10:45

    wah, pas banget utk belajar prolog

  9. spirulina health benefits said, on 26 Juli 2013 at 17:48

    It’s in fact very complicated in this active life to listen news on TV, thus I only use world wide web for that reason, and take the hottest information.


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: