Pengenalan PROLOG -...
Transcript of Pengenalan PROLOG -...
Tools Pembangun Sistem Pakar
• Language
– LISP
– Prolog
– CLIPS
– Planner
– Conniver
• Shell
– EXSYS
– PC+
– CRYSTAL
– 1stClass
– EXPERT EASE– Conniver
– Popler
– OPS5
– AMORD
– SAIL
– LOGO
– Smaltalk
– EXPERT EASE
– INSIGHT2+
– e2glite
Dasar-Dasar Prolog
• Fakta dan Relasi
– Prolog terdiri dari kumpulan data-data obyek yang merupakansuatu fakta
– Fakta selalu benar (true)
– Dalam prolog, fakta dibedakan menjadi 2 macam :
• Menunjukkan relasi• Menunjukkan relasi
• Menunjukkan milik / sifat
– Contoh :
• Slamet adalah ayah Amin
– ayah(slamet,amin).
• Anita adalah wanita
– wanita(anita).
Aturan (Rules)
• Suatu pernyataan yang menunjukkan bagaimana fakta-fakta berinteraksi satu dengan yang lain untuk membentuk suatu kesimpulan
• Dinyatakan sebagai suatu kalimat bersyarat
• Contoh : Contoh :
– Fakta : Tino suka apel
– Aturan : Yuli suka sesuatu yang disukai Tino
• Dalam prolog ditulis :
– suka(tino,apel).
– suka(yuli,Sesuatu) if suka(tino,Sesuatu).
Pertanyaan (Query)
• Untuk mengajukan pertanyaan, misal : Apakah Tini suka boneka?
• Dalam prolog ditulis :
– suka(tini,boneka).
• Prolog akan memberikan jawaban :• Prolog akan memberikan jawaban :
– Yes
• Jika pertanyaannya
– suka(tini,mobil-mobilan).
• Prolog akan memberikan jawaban :
– No
• Prolog juga mampu memberikan jawaban atas
pertanyaan apakah, siapakah, dan lain-lain
• Misal : Apakah yang disukai Tini ?
– suka(tini,Apa).
• Prolog akan memberikan jawaban :• Prolog akan memberikan jawaban :
– Apa = boneka
• Siapakah yang suka boneka ?
– suka(Siapa,boneka).
– Siapa = tini
Struktur Program Prolog
• Program Turbo Prolog 2.0 terdiri dari 4 bagian
utama :
– DOMAINS
– PREDICATES
CLAUSES – CLAUSES
– GOAL
Domains
• Berisi deklarasi (pernyataan) tentang jenis data yang digunakan dalam fakta dan aturan
• Ada 6 buah domain standar:
– Integer : -32.768 sampai 32.767
– Real : 1e-307 sampai 1e+308
Char– Char
– String
– Symbol : kumpulan karakter yang diawali dengan huruf kecil
– File : digunakan untuk operasi file
• Dapat pula mendefinisikan domain lain yang terdiri daridomain standar
Predicates / Predikat
• Nama simbolik untuk relasi– ayah(slamet,amin).
• Predikat dari fakta diatas ditulis :– ayah(symbol,symbol)
• Slamet dan amin disebut argumen
• Jumlah argumen disebut aritas (arity)• Jumlah argumen disebut aritas (arity)
• Ditulis tanpa diakhiri tanda titik
• Syarat penulisan nama predikat :– Diawali huruf kecil dan dapat diikuti huruf, angka, atau garis
bawah
– Panjang nama maksimum 250 karakter
– Tidak diperbolehkan menggunakan spasi, tanda minus, tandabintang, dan garis miring.
Clauses (Klausa)
• Berisi fakta dan aturan yang membentuk keseluruhanprogram
• Mirip prosedur pada bahasa pemrograman lain
• Bagian fakta umumnya ditulis sebelum bagian aturan
• Fakta dan aturan yang mempunyai relasi yang samaharus dituliskan berkelompokharus dituliskan berkelompok
• Fakta/aturan ditulis mulai dari fakta/aturan yang paling atas kemudian urut ke bawah
• Kemungkinan yang lebih besar ditempatkan lebih awaldaripada kemungkinan yang lebih kecil
• Contoh penulisan yang salah :
ayah(slamet,amin).
ayah(slamet,anang).
kakek(slamet,budi).
ayah(amin,budi).
• Contoh penulisan yang benar :
ayah(slamet,amin).ayah(slamet,amin).
ayah(slamet,anang).
ayah(amin,budi).
kakek(slamet,budi).
• Pernyataan if ditulis dengan simbol “:-”
suka(ira, Sesuatu) :- suka(anton,Sesuatu)
Goal / Tujuan
• Berisi pertanyaan yang diajukan kepada Turbo Prolog
• Dapat terdiri dari beberapa bagian yang disebutsubgoal
• 2 jenis goal :• 2 jenis goal :
– Goal eksternal : goal yang diberikan melalui compiler, dituliskan dalam jendela Dialog
– Goal internal : goal yang dituliskan sekaligus dalamprogram
GOAL : ayah(slamet,badu) �
True.
Goal Majemuk
• Goal yang terdiri lebih dari satu pernyataan
• Bagian goal tersebut disebut sub goal
GOAL : mobil(Merk,Warna,Harga), Harga < 50.
GOAL : mobil(Merk,Warna,Harga),
Warna = merah,
Harga < 35.
Variabel
• Besaran yang nilainya dapat berubah-ubahGOAL : ayah(X,didi) �
X = anang
• X adalah variabel
• Tata cara penulisan variabel• Tata cara penulisan variabel
– Harus diawali huruf besar atau garis bawah (_)
– Dapat terdiri dari huruf, angka atau simbol dan merupakan
satu kesatuan
– Panjang maksimum 250 karakter
– Hendaknya mengandung makna yang berkaitan dengan data
yang dinyatakannya
• 3 macam variabel
– Variabel bebas (free variable)
– Variabel terikat (bound variable)
– Variabel tak bernama (anonymous variable)
GOAL : ayah(Ayah,amin), ayah(Ayah,anang)
GOAL : ayah(Ayah,_)
Anonymous variable