Tuesday, December 21, 2010

Kecerdasan Buatan[1] : Dasar-dasar Prolog


Prolog adalah bahasa, tepatnya merupakan bahasa komputer atau bahasa pemrograman logika. Bahasa pemrograman dituliskan dalam bentuk bahasa natural atau bahasa yang dikenal manusia, misal bahasa Inggris. Bahasa yang dikenal manusia ini jelas tidak mungkin dikenal oleh komputer yang hanya mengenal bahasa mesin. Untuk menjembatani kedua bahasa itu dibutuhkan interpreter atau compiler yang akan mengubah bahasa yang dipahami manusia menjadi bahasa yang mudah dipahami mesin.

Bentuk dasar dalam penggunaan prolog adalah Interaktif. Setiap pertanyaan yang ditanyakan pada prolog, diartikan dan direspon dengan cepat oleh komputer. Perangkat lunak yang digunakan dalam proses itu disebut Prolog Interpreter, dalam praktikum ini kita menggunakan SWI Prolog (versi 3.2.8).download( http://www.swi-prolog.org/download/old?show=all)

1. Konsep Utama
Beberapa konsep utama prolog yang harus diketahui :
Facts
Questions
Logical variable
Matching
Conjunctions
Rules
2. Contoh
Buatlah suatu listing program dengan menggunakan notepad dan disimpan dengan nama latihan1.pl dalam suatu folder khusus. Listing-nya sebagai berikut :
1. benci(paimo, sayur).
2. suka(paijo, ayam_goreng).
3. suka(paijo, donat).
4. minum(paimo, sprite).
5. minum(paijo, teh).
Masuklah kedalam folder tadi dan klik dua kali file latihan1.pl, secara otomatis file berekstension *.pl akan dikompail. Kemudian tanyakan
1. Apakah paimo suka donat --> suka(paimo,donat).
2. Apakah paijo minum kopi --> minum(paijo,kopi).
3. Facts, Question dan Variable
Facts
Fact merupakan properti dari obyek, atau keadaan beberapa relasi antara dua atau lebih obyek, dimana keadaan tersebut harus diketahui. Fact dibuat dari pridicate dan sejumlah argumen.
Program prolog boleh memiliki banyak facts. Ketika listing program diinterpretasikan atau consulted, kumpulan dari facts yang menjadi bagian dari program semua direperenstasikan menjadi nyata atau kumpulan dari logical assertions yang disimpan dalam suatu database.
Question
Jika suatu pertanyaan ditanyakan pengguna, prolog interpreter mencari pada database dari fact untuk dapat memberikan jawaban dari pertanyaan yang diajukan.
Variable
Jika suatu pertanyaan yang akan kita tanyakan sekiranya jawaban tidak diketahui karena kekurangtahuan kita sebagai user dari program AI yang telah dibuat maka pertanyaan yang diajukan dapat menggunakan statement what. Contohnya :
suka(paijo,what).
4. Sintak dan Terminologi Prolog
Program prolog memiliki 3 macam clausa
Facts
Questions
Rules
3 macam terms :
Constant
Variable
Compound term
3 macam constants :
Atom
Integer
Real number
Atom dibuat dari :
Karkter huruf
Karakter angka
Underscore
Simbol(+, -, *, /, \, ^, >, <, =, ~, :, ., ?, @, #, $, &)
String
Constans digunakan untuk menunjuk ke suatu obyek. Constants dimulai dengan huruf kecil, semua predicate adalah constants. Jangan gunakan penulisan constants sebagai berikut :
X(jane,jim).
Konvensi tertentu digunakan ketika menulis prolog, seperti dalam bahasa lain, prolog memiliki sintax :
Semua predicate dimulai dengan huruf kecil
Semua variable dimulai dengan huruf besar.
Format setiap fact atau assertion :
Predicate diikuti oleh beberapa argumen
Argumen dipisahkan dengan koma dan diantara 2 buah tanda kurung
Tidak ada spasi antara predicate dan kurung buka
Diakhiri dengan titik ( full stop )
Predicate dapat berupa string seperti son_of, benci, minum dan sebagainya
Argumen dapat berupa constans, variable atau assertions lainnya
Interpreter prolog menncetak karakter ‘ |?- ‘ untuk mengindikasikan bahwa menunggu user untuk menanyakan pertanyaan atau perintah lainnya. Ini yang disebut dengan promt prolog.
predicate(argumenpertama, argumenkedua, argumenlainnya)
5. Relasi dalam Prolog
Jika saya akan berkata Minuman kesukaan paijo adalah Sprite, maka dalam prolog dituliskan suka(paijo,sprite). Dimana kita mempunyai ekspresi relasi sukadiantara 2 argumentasi paijo dan sprite. Dan full stop digunakan untuk menghentikan clausa. Relasi dapat lebih dari atau kurang dari 2.
hate(robert,curry,breakfast).
hate_curry_for_breakfast(robert).
robert_hate_curry_for_breakfast.
6. Unifying Terms
Proses dari matching sering dikenal sebagai unification. Ketika dua terms bertemu (match) disebut unify. Ini terjadi dari proses matching atau unification yang menyamakan variabel. Contoh :
?- fred=x è x=fred yes
?- c=letter(c) è no
?- havecar(metro)=havecar(yes) è yes=metro
7. Pertanyaan yang mengandung konjungsi
Di awal sudah dijelaskan bahwa pertanyaan pada prolog sangat sederhana, bagiamana kalau pertanyaannya itu susah seperti :
Benarkah paijo dan paimo suka buah ?
Adakah yang dibenci paijo tetapi disukai paimo?
Jika pertnyaan seperti itu, maka cara penulisannya sebagai berikut :
|?-suka(paijo,buah), suka(paimo,buah).
yes
|?-suka(paijo,ayam_goreng), suka(paimo,ayam_goreng).
yes
|?-suka(paijo,sesuatu), benci(paimo,sesuatu).
sesuatu= bir_bintang ?
yes

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.