Diberdayakan oleh Blogger.
RSS

Studi Kasus : Prolog

Studi Kasus : Prolog

PROGRAM KELUARGA SEDERHANA
suami(muktar,kiyah). // muktar adalah suami dari kiyah
isteri(kiyah,muktar). // kiyah adalah isteri dari muktar
ibu(kiyah,ani). 
ibu(kiyah,kholik).
ibu(kiyah,mutia). // kiyah adalah ibu dari mutia
ayah(muktar,ani).
ayah(muktar,kholik). // muktar adalah ayah dari kholik
ayah(muktar,mutia).
adik(kholik,ani).
adik(mutia,ani). // mutia adalah adik dari ani
adik(mutia,kholik).
kaka(ani,kholik).
kaka(ani,mutia). // ani adalah kaka dari mutia
kaka(kholik,mutia).
//melakukan pengambilan kesimpulan, pernyataan baru
anak(Y):- // akan benar anak si Y apabila
ibu(kiyah,Y),ayah(muktar,Y). // ibunya adalah kiyah dan ayahnya adalah muktar
menikah(X,Y):- //akan benar menikah si X dengan Y apabila
suami(X,Y),isteri(Y,X). // suami (X,Y) dan isteri (Y,X)
menikah(Y,X):-
suami(X,Y),isteri(Y,X).
saudara(X,Y):-
adik(X,Y),kaka(Y,X).
saudara(Y,X):-
adik(X,Y),kaka(Y,X).
OUTPUT


  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Bahasa Pemrograman untuk Aplikasi Inteligensi Buatan : Prolog

Bahasa Pemrograman untuk Aplikasi Inteligensi Buatan : Prolog


DASAR-DASAR PROLOG

Fakta dan Relasi
            Fakta Adalah suatu unit yang selalu bernilai benar,fakta ini merupakan kumpulan data-data objek. Suatu fakta dibedakan dalam 2 jenis, yaitu fakta yang menunjukan relasi dan fakta yang menunjukan milik/sifat, penulisan suatu fakta selalu di akhir dengan (.)
Contoh :
Fakta
Prolog
Slamet adalah ayah Amin
ayah (slamet, amin).
Anita adalah seorang wanita
wanita (anita).
Angga suka renang dan tenis
suka(angga,renang).dan suka(angga,tenis).
Jeruk berwarna jingga
jngga(jeruk).


Aturan (“Rules”)
            Aturan adalah suatu pernyataan yang menunjukan bagaimana fakta-fakta berinteraksi satu dengan yang lain untuk membentuk suatu kesimpulan. Sebuah aturan dinyatakan sebagai suatu kalimat bersyarat. Kata “if” adalah kata yang dikenal Prolog untuk menyatakan kalimat bersyarat atau disimbolkan dengan “:-“.
Contoh :
Fakta dan Aturan
Prolog
F : Tino suka apel
A : Yuli suka sesuatu yang disukai Tino
suka(tino, apel).
suka(yuli,Sesuatu) :-  suka(tino,Sesuatu).

Setiap aturan terdiri dari kesimpulan (kepala) dan tubuh. Tubuh dapat terdiri dari 1 atau lebih pernyataan atau aturan yang lain, disebut subgoal dan dihubungkan dengan logika “and”. Aturan memiliki sifat then/if conditional “Kepala(head) benar jika tubuh (body) benar”.

Pertanyaan (“Query”)
Setelah memberikan data-data berupa fakta dan aturan, selanjutnya kita dapat mengajukan pertanyaan berdasarkan fakta dan aturan yang ada. Penulisannya diawali simbol “?-“ dan diakhiri tanda “.”.
Contoh :
Pertanyaan
Prolog dan Jawaban Program
Apakah Tini suka boneka ?
?- suka(tini,boneka).
Yes ……. (jika faktanya Tini suka boneka)
No……..…(jika tidak sesuai fakta).
Apakah yang disukai Tini ?
?- suka(tini,Apa).
Apa=boneka
Siapakah yang suka boneka ?
?- suka(Siapa,boneka).
Siapa=tini
Dari contoh silsilah keluarga di atas :
Siapakah kakek Budi ?


Siapakah cucu Slamet ?


?- kakek(Siapa,budi).
Siapa=slamet

?- kakek(slamet,Cucu).
Cucu=budi ;
Cucu=badu

(jika kemungkinan ada lebih dari satu jawaban gunakan tanda “;” pada akhir setiap jawaban).

STRUKTUR PROGRAM PROLOG
STRUKTUR PROGRAM PROLOG
Program Prolog terdiri dari :
  1. Domains
  • Domains menyatakan jenis suatu variabel.
  • Domains seperti tipe data dalam bahasa prosedural (Pascal,C)
  • Beberapa domains standar  dalam prolog: char, integer, real, string, symbol.
  • contoh:
namaBunga = symbol
mataKuliah = string
nilai = integer
  • Domains char dipakai pada predikat yang argumennya memiliki nilai berupa karakter tunggal,  yaitu abjad,  angka,  pungtuasi (?.!,<,...), dan operasi (+,,...). Penulisan argumen bertipe char dalam prolog diapit tanda ’...’.
contoh: nilai (dita, ’A’).
  • Domains string dipakai pada predikat yang argumennya memiliki nilai berupa karakter jamak yang dapat berupa kata maupun suatu tulisan (kumpulan katakata termasuk di dalamnya pungtuasi dan tanda operasi yang dapat dipisahkan spasi). Penulisan argumen bertipe string dalam prolog diapit tanda ”...”.
contoh: hobi(rina,”Memasak”).
  • Domains integer dipakai pada predikat yang argumennya memiliki nilai berupa bilangan bulat.
Contoh: nilai(tini,”Kalkulus”,75).
  • Domains real dipakai pada predikat yang argumennya memiliki nilai berupa bilangan pecahan. Penulisan argumen bertipe real dalam prolog untuk nilai pecahan ditulis di belakang tanda titik (.).
contoh: nilai(ivan, 8.75).
  • Domains symbol dipakai pada predikat yang argumennya memiliki nilai berupa kumpulan karakter yang hanya terdiri dari huruf atau kata tanpa dipisahkan oleh spasi. Suatu kata  dapat disambungkan dengan kata lain dengan  tanda _ (underscore).
contoh: lelaki(toni_setiawan).
b.  Predicates
  •  Predicates digunakan untuk mendeklarasikan predikat.
  •  Penulisan dalam Prolog :
Diawali dengan huruf kecil.
Contoh:
saudara(x,y)
suka(nama,hobi)
manis(x)
c.  Clauses
  • Clauses digunakan untuk mendefinisikan predikat.
  • Clauses terdiri dari fakta dan aturan:
1.  Fakta
Fakta merupakan suatu kenyataan atau kebenaran yang diketahui.
Fakta menyatakan hubungan/relasi antara dua obyek atau lebih atau menunjukkan sifat suatu obyek.
Penulisan dalam Prolog :
Diawali dengan huruf kecil dan diakhiri dengan tanda titik.
Contoh :
saudara(tina,tini).
suka(lia,menyanyi).
manis(gula).
2.  Aturan
Aturan penulisan :
If ditulis sebagai  ‘titik dua + strep’ (:
)
And ditulis sebagai  ‘koma’ (,)
Or ditulis sebagai ‘titik koma (;)
d.  Goal
  • Goal adalah tempat pernyataan (query) diberikan atau meminta prolog untuk
mencapai tujuan yang dikehendaki.


  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS