Minggu, 14 Oktober 2012

Program Prolog


Prolog adalah bahasa pemrograman logika yang berhubungan dengan kecerdasan buatan dan komputasi linguistik atau di sebut juga sebagai bahasa non-procedural. Prolog merupakan salah satu Intrepreter yaitu bahasa program yang menerjemahkan Line-code baris per baris.

Namanya diambil dari bahasa Perancis programmation en logique (pemrograman logika). Bahasa ini diciptakan oleh Alain Colmerauer dan Robert Kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankan komputer.

Dalam Prolog, logika program dinyatakan dalam hal hubungan, proses komputasi dimulai dengan menjalankan query berdasar atas hubungan ini. Bahasa prolog berpedoman pada kepada hubungan kepada kata-kata, anak kalimat, frase dan konstektual secara dinamis sesuai bahasa kita sehari-hari. Prolog  sangat berguna untuk database, matematika simbolik, dan aplikasi parsing bahasa. Prolog dapat memeriksa apakah terdapat predikat palsu yang diakibatkan oleh ketidaksengajaan. Prolog juga memiliki logika tersendiri yang disebut "pure Prolog", serta sejumlah fitur extralogical.

Bahasa prolog dikenal sebagai bahasa yang lebih sederhana dan efisien dibandingkan bahasa pemrograman lainnya meskipun untuk bahasa basic, seperti Pascal.

Secara umum, program Visual Prolog terdiri dari empat section dasar, yaitu section CLAUSES yaitu section yang paling penting pada program Visual prolog yaitu tempay meletakkan Fakta dan Aturan, section PREDICATES yaitu tempat untuk mendeklarasikan predikat , section DOMAINS bermanfaat untuk memberikan nama yang berarti untuk domain, dan juga digunakan untuk mendeklarasikan struktur data yang tidak didefinisikan standar domain, dan section GOAL yaitu merupakan body sebuah aturan.

Terdapat lima aplikasi yang dapat diterapkan melalui program prolog. Yang pertama adalah Expert System, yaitu menggunakan teknik pengambilan kesimpulan dari data-data yang didapat, layaknya seorang ahli. Contoh dalam mendiagnosa penyakit. Kedua adalah Natural Languange Processing, yaitu program dibuat agar pemakai dapat berkomunikasi dengan komputer dalam bahasa manusia sehari-hari, layaknya penterjemah. Ketiga adalah Robotics,  yaitu mengolah data masukan yang berasal dari sensor dan mengambil keputusan untuk menentukan gerakan yang harus dilakukan. Keempat adalah Pattern Recognition, yaitu kemampuan untuk dapat membedakan suatu objek dengan objek yang lain. Sering digunakan pada Image Processing. Yang terakhir adalah Learning, yaitu prolog dapat belajar dari kesalahan yang pernah diminta untuk dilakukan.

FAKTA (FACTS) DAN RELASI (RELATIONS)

Prolog terdiri dari kumpulan data-data objek yang merupakan suatu fakta. Fakta dibedakan 2 macam yaitu fakta yang menunjukkan relasi dan fakta yang menunjukkan sifat/milik. Dalam penulisannya selalu diakhiri dengan tanda titik.

Fakta
Prolog
Tarno adalah paman Budi
paman (tarno, budi).
Santi adalah seorang guru
guru (santi).
Bejo suka mangga dan membaca
suka(bejo, mangga). dan suka(bejo, membaca).
Mawar berwarna merah
Merah(


ATURAN (RULES)

Aturan adalah suatu pernyataan yang menunjukkan bagaimana fakta-fakta berinteraksi satu dengan yang lain untuk membentuk suatu kesimpulan. Sebuah aturan dinyatakan sebagai suatu kalimat bersyarat. Sebuah aturan dinyakatakan sebagai suatu kalimat bersyarat. Kata “if” adalah kata yang dikenal Prolog untuk menyatakan kalimat bersyarat atau disimbolkan dengan “:-“.

Misalnya ada suatu fakta : Prasojo suka durian. Kemudian ada sebuah aturan yang berbunyi : Andri suka sesuatu yang disukai oleh Prasojo. Dari informasi yang diperoleh dari fakta yang diketahui dapat diambil kesimpulan (jawaban) dari aturan tersebut yaitu Andri suka durian.

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”.

Contoh kasus adalah pada Silsilah keluarga.



Fakta dan Aturan
Prolog
F : Slamet adalah ayah dari Amin
F : Amin adalah ayah dari Badu
F : Slamet adalah kakek dari Badu
A : Slamet adalah benar kakek Badu jika Slamet adalah benar ayah Amin dan Amin adalah benar ayah Badu.
ayah(slamet,amin).
ayah(amin,badu).
kakek(slamet,badu).

kakek(slamet,amin) :-
ayah(slamet,amin) and
ayah(amin,badu).
F : Amin adalah saudara kandung Anang
F : Amin mempunyai ayah Slamet
F:  Anang mempunyai ayah Slamet.
A : Amin adalah benar saudara kandung Anang, jika Amin mempunyai ayah Slamet dan Anang juga mempunyai ayah Slamet.
saudara_kandung(amin,anang).
ayah(slamet,amin).
ayah(slamet,anang).

saudara_kandung(amin,anang) :-
ayah(slamet,amin) and
ayah(slamet,anang).

PERTANYAAN (QUERIES)

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 “.”.

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).


PREDIKAT (PREDICATES)

Predikat adalah nama simbolik untuk relasi.

Syarat-syarat penulisan nama predikat :
o   Harus diawali dengan huruf kecil dan dapat diikuti dengan huruf, bilangan atau garis bawah.
o   Panjang nama predikat maksimum 250 karakter.
o   Tidak diperbolehkan menggunakan spasi, tanda minus, tanda bintang dan garis miring.

Referensi:
·         En.wikipedia.org
·         www.slideshare.net
·         jemeinulle.blogspot.com
·         xa.yimg.com

Tidak ada komentar:

Posting Komentar