Prolog adalah bahasa pemrograman logika atau di
sebut juga sebagai bahasa non-procedural.
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.
Programming in Logic atau yang sering
disingkat PROLOG merupakan bahasa pemrograman logika untuk komputasi simbolik,
bukan numerik. Prolog cocok untuk mengatasi problem yang melibatkan objek dan
hubungan antara objek-objek tersebut. Prolog merupakan
bahasa dengan
tingkat yang lebih tinggi. Hal
tersebut telah menjadi keuntungan sekaligus kerugian. Di satu sisi hal tersebut
dapat mempersingkat waktu pengembangan program, di sisi lain hal tersebut akan
mempengaruhi efisiensi. Pada bahasa tingkat rendah, program hanya menggambarkan
cara untuk memecahkan masalah sedangkan pada prolog program hanya menjelaskan
masalah tanpa menjelaskan bagaimana cara menyelesaikan masalah tersebut. Prolog
merupakan paradigma yang programmernya lebih menspesifikan hubungan antara
nilai data (peraturan dalam program logika) dan proses query (perintah). Kelebihan
dari prolog adalah ahli dalam tata bahasa dan bahasa pemrograman. Dan juga
sebagai perwakilan dari pengetahuan dan penalaran. Serta sebagai symbol dari
kecerdasan buatan. Namun kekuranganya adalah buruk dalam repetitive number
crunching dan dalam input / output.
Berbeda
dengan bahasa pemrograman yang lain, yang menggunakan algoritma
konvensionl sebagai teknik pencariannya, seperti pada Delphi, Pascal, BASIC, COBOL, Fortran, dan bahasa pemrograman yang sejenisnya, maka prolog
menggunakan teknik pencarian yang di sebut heuristik
(heutistic) dengan menggunakan pohon logika. Perbedaan lainnya tampak
pada cara menjalankan programnya. Pada pemrograman lainnya, program menjalankan
prosedur yang sama berulang – ulang dengan data masukan yang berbeda – beda. Sedangkan
prolog tidak memiliki prosedur,
tetapi hanya kumpulan data - data objek
(fakta) yang akan diolah, dan relasi antar objek tersebut membentuk aturan yang
diperlukan untuk mencari suatu jawaban. Prolog ideal untuk memecahkan masalah
yang tidak terstruktur, dan prosedur pemecahannya tidak diketahui, khususnya
untuk memecahkan masalah non numeric serta bekerja seperti pikiran manusia,
proses pemecahan masalah bergerak di dalam ruang masalah menuju suatu tujuan
(jawaban tertentu).
Prolog dapat diaplikasi dalam :
-
Sistem Pakar
(Expert System)
Program
menggunakan teknik pengambilan kesimpulan dari data-data yang didapat, layaknya
seorang ahli. Contoh dalam mendiagnosa penyakit
-
Pengolahan
Bahasa Alami (Natural Languange Processing)
Program
dibuat agar pemakai dapat berkomunikasi dengan komputer dalam bahasa manusia
sehari-hari, layaknya penterjemah.
-
Robotik
Prolog
digunakan untuk mengolah data masukanyang berasal dari sensor dan mengambil
keputusan untuk menentukan gerakan yang harus dilakukan.
-
Pengenalan
Pola (Pattern Recognition)
Banyak
digunakan dalam image processing,
dimana komputer dapat membedakan suatu objek dengan objek yang lain.
-
Belajar
(Learning)
Program belajar dari kesalahan yang pernah dilakukan, dari
pengamataqn atau dari hal-hal yang pernah diminta untuk dilakukan.
Algoritma
dalam prolog terdiri dari logika dan control. Logika merupakan fakta dan aturan
yang menerangkan apa yang seharusnya dilakukan oleh algoritma. Sedangkan
control merupakan cara algoritma diimplementasikan dengan menggunakan peraturan.
Perbedaan
operator logika dengan Prolog:
OperatorLogika
|
Prolog
|
^
|
,
|
V
|
;
|
à
|
:-
|
¬
|
Not
|
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 menunjukkan
relasi dan fakta yang menunjukkan milik / sifat. Penulisan suatu fakta diakhiri
dengan tanda ( . ).
Contoh :
Fakta
|
Prolog
|
Agus
adalah ayah Reno
|
ayah
(Agus, Reno).
|
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
merupakan suatu pernyataan yang mengungkap sebuah hubungan diantara fakta - fakta
untuk membentuk suatu kesimpulan dengan implikasi logika (:-). Sebuah aturan dinyatakan sebagai suatu kalimat
bersyarat. Untuk menyatakan kalimat bersyarat dalam prolog kata yang dikenal
adalah kata “if”. Setiap aturan
terdiri dari kesimpulan (kepala) dan 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,
contohnya : “Kepala(head) benar jika tubuh (body) benar”.
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).
|
F : Agus adalah ayah dari Reno
F : Reno adalah ayah dari Badu
F : Agus adalah kakek dari Badu
A :
Agus adalah benar kakek Badu jika Agus
adalah benar ayah Reno dan Reno adalah benar ayah Badu.
|
ayah(Agus, Reno).
ayah(Reno,badu).
kakek(Agus,badu).
kakek(Agus,Reno) :-
ayah(Agus,Reno) and
ayah(Reno,badu).
|
Jenis –
Jenis Prolog :
»
Strawberry Prolog
»
SWI Prolog
»
Virtual Prolog
karmila.staff.gunadarma.ac.id/Downloads/files/3496/Prolog-1.doc
id.wikipedia.org/wiki/Prolog
http://dagdigdugweew.blogspot.com/2010/11/prolog.html