Cari Blog Ini

Rabu, 01 Oktober 2014

Knowledge Management System: Membuat Silsilah Keluarga dengan Pemrograman Turbo Prolog 2.0

Gambar: Silsilah Keluarga

Berikut adalah sintaks yang untuk membuat silsilah keluarga dengan Turbo Prolog 2.0:

domains
    name = symbol
predicates
    uyut(name,name)
    kakek(name,name)
    nenek(name,name)
    ayah(name,name)
    ibu(name,name)
    anak(name,name)
    cucu(name,name)
    cicit(name,name)
clauses
    uyut(purwa,komeng).
    uyut(purwa,luntung).
    kakek(purwa,surya).
    kakek(purwa,vivi).
    kakek(purwa,robin).
    kakek(purwa,alex).
    nenek(niswa,komeng).
    nenek(niswa,luntung).
    ayah(purwa,maya).
    ayah(purwa,niswa).
    ayah(robin,komeng).
    ayah(alex,luntung).
    ibu(maya,surya).
    ibu(maya,vivi).
    ibu(niswa,robin).
    ibu(niswa,alex).
    anak(maya,purwa).
    anak(niswa,purwa).
    anak(surya,maya).
    anak(vivi,maya).
    anak(robin,niswa).
    anak(alex,niswa).
    anak(komeng,robin).
    anak(luntung,alex).
    cucu(surya,purwa).
    cucu(vivi,purwa).
    cucu(robin,purwa).
    cucu(alex,purwa).
    cucu(komeng,niswa).
    cucu(luntung,niswa).
    cicit(komeng,purwa).
    cicit(luntung,purwa).

Sintaks di atas akan menghasilkan Goal seperti ditampilkan pada gambar di bawah ini:


Dari gambar di atas dapat dilihat apabila Goal kita masukkan premis yang sesuai maka akan menghasilkan kesimpulan "Yes", apabila tidak sesuai akan menghasilkan kesimpulan "No".

Penggunaan Logika "AND" dan "IF" pun dapat diterapkan, di mana "AND" dapat disimbolkan dengan tanda koma "," sedangkan "IF" dapat disimbolkan dengan tanda titik dua minus ":-". Berikut contoh sintaks dengan variasi "AND" dan "IF".

domains
    name = symbol
predicates
    uyut(name,name)
    kakek(name,name)
    nenek(name,name)
    ayah(name,name)
    ibu(name,name)
    anak(name,name)
    cucu(name,name)
    cicit(name,name)
clauses
    uyut(purwa,komeng).
    uyut(purwa,luntung).
    kakek(P,surya):-uyut(P,luntung).
    kakek(P,vivi):-kakek(P,surya).
    kakek(P,robin):-kakek(P,vivi).
    kakek(P,alex):-kakek(P,robin).
    nenek(niswa,komeng).
    nenek(niswa,luntung).
    ayah(P,maya):-uyut(P,luntung),kakek(P,robin).
    ayah(P,niswa):-ayah(P,maya).
    ayah(robin,komeng).
    ayah(alex,luntung).
    ibu(maya,surya).
    ibu(maya,vivi).
    ibu(niswa,robin).
    ibu(N,alex):-ibu(N,robin).
    anak(maya,purwa).
    anak(niswa,P):-anak(maya,P).
    anak(surya,maya).
    anak(vivi,maya).
    anak(robin,N):-ibu(N,alex).
    anak(alex,niswa).
    anak(komeng,robin).
    anak(luntung,alex).
    cucu(surya,P):-kakek(P,surya),ayah(P,maya).
    cucu(vivi,purwa).
    cucu(robin,purwa).
    cucu(alex,purwa).
    cucu(komeng,niswa).
    cucu(luntung,niswa).
    cicit(komeng,purwa).
    cicit(luntung,purwa).

Sintaks di atas akan menghasilkan Goal seperti ditampilkan pada gambar di bawah ini:


Dari gambar di atas juga menghasilkan Goal yang sama, tetapi apabila premis yang kita masukkan adalah inisialnya maka akan mencari kesimpulan yang sesuai dengan fakta. Contohnya kita ketikkan kakek(P,alex) maka inisial "P" akan disesuaikan dengan fakta yang ada yaitu "P=purwa".


by: M. Rhifky Wayahdi (1120000120)

Tidak ada komentar:

Posting Komentar