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 dijalankankomputer.
Berbeda dengan bahasa
pemrograman yang lain, yang menggunakan algoritma konvensionl
sebagai teknik pencariannya seperti pada Delphi, Pascal, BASIC, COBOL dan bahasa pemrograman yang sejenisnya,
maka prolog menggunakan teknik pencarian yang di sebutheuristik (heutistic)
dengan menggunakan pohon logika.
Sejarah
Prolog
Prolog merupakan
singkatan dari “Programing In Logic” pertama kali dikembangkan oleh Alain
Colmetrouer dan P.Roussel di Universitas Marseilles Prancis tahun 1972. Selama
tahun 70-an, prolog menjadi populer di Eropa untuk aplikasi AI. Sedangkan di
Amerika Serikat, para peneliti juga mengembangkan bahasa lain untuk aplikasi
yang sama yaitu LISP. LISP mempunyai kelebihan dibandingkan prolog , tetapi
LISP lebih sulit dipelajari.
Pada mulanya, Prolog
adalah bahasa yang sangat murni yang didasarkan pada keindahan logika. Sejak
ditemukannya pada tahun 1970-an oleh ketiga orang di atas, Prolog berkembang
dengan lambat dan hanya digunakan oleh para peneliti dari
universitas-universitas terkenal karena hanya merekalah yang dapat mengerti
arti dari pentingnya Prolog. Dalam masa pengembangannya, para peneliti banyak
menemukan kebutuhan-kebutuhan baru yang perlu ditambahkan di Prolog.
Pada awalnya, Prolog
dan LISP sangat lambat dalam eksekusi program dan memakan memori yang besar
sehingga hanya kalangan tertentu yang menggunakannya. Dengan adanya Compiler
Prolog, kecepatan eksekusi program dapat ditingkatkan, namun Prolog masih
dipandang sebagai bahasa yang terbatas (hanya digunakan di kalangan perguruan
tinggi dan riset).
Pada awal tahun
1980-an, dunia industri mulai menyadari kelebihan-kelebihan yang dimiliki oleh
Prolog dibandingkan dengan bahasa konvensional lainnya. Dengan terlibatnya
dunia industri, maka timbul tuntutan-tuntutan baru, misalnya tuntutan akan
eksekusi waktu yang lebih cepat, kebutuhan memori yang lebih kecil dan
kebutuhan praktis lainnya. Namun hal ini justru menimbulkan 2 kelompok yang
mempunyai filosofi yang berbeda.
Di 1 pihak, mereka
menganggap bahwa Prolog adalah bahasa penelitian sehingga mereka menginginkan
banyak hal tercakup dalam Prolog sehingga Prolog dapat digunakan secara luwes
untuk berbagai keperluan penelitian. Di pihak lain, mereka yakin bahwa Prolog
seharusnya dapat menjadi bahasa yang berguna untuk mengembangkan berbagai macam
aplikasi yang bukan penelitian.
Pandangan umum Prolog,
hanya digunakan di kalangan perguruan tinggi dan riset, tiba-tiba berubah di
tahun 1981 pada konverensi internasional I dalam system generasi kelima di
Tokyo, Jepang. Jepang yang saat itu mengalami kesulitan bersaingdalam pemasaran
komputer dengan Amerika Serikat, mencanangkan rencana pengembangan teknologi
hardware dan software untuk tahun 1990-an. Dan bahasa yang dipilih adalah
Prolog.
Sejak saat itu, banyak
orang menaruh minat pada prolog dan saat itu telah dikembangkan versi prolog
yang mempunyai kecepatan dan kemampuan yang lebih tinggi, lebih murah dan lebih
mudah digunakan, baik untuk komputer mainframe maupun komputer pribadi sehingga
Prolog menjadi alat yang penting dalam program aplikasi kecerdasan buatan (AI)
dan pengembangan system pakar (expert system).
Perbedaan
Prolog dengan Bahasa Lain
Hampir semua bahasa
pemrograman yang ada pada saat ini seperti Pascal, C, Fortran, disebut
procedural language untuk menggunakan bahasa tersebut diperlukan algoritma atau
procedure yang dibuat untuk menyelesaikan masalah. Program dapat menjalankan
procedure yang sama berulang-ulang dengan data masukkan yang berbeda-beda.
Procedure serta pengendalian program sepenuhnya ditentukan oleh programmer dan
perhitungan yang dilakukan sesuai dengan procedure yang telah dibuat. Dengan
kata lain, Pemrograman harus memberi tahu komputer bagaimana komputer harus
menyelesaikan masalah.
Prolog mempunyai
sifat-sifat yang berbeda dengan bahasa yang disebutkan di atas, prolog disebut
sebagai object oriented language atau declarative language. Dalam prolog tidak
terdapat prosedur, tapi hanya tampilan data-data object (fakta) yang akan
diolah dengan relasi antar object tersebut yang membentuk suatu aturan.
Aturan-aturan ini disebut HEURISTIK dan diperlukan dalam mencari suatu jawaban,
dengan kata lain, prolog dalam prolog adalah database.
Pemrogram menentukan
tujuan (Goal) dan komputer akan menentukan bagaimana cara mencapai tujuan
tersebut serta mencari jawabannya. Caranya dengan menggunakan “Formal
Reasoning” yaitu membuktikan cocok tidaknya tujuan dengan data-data yang telah
ada dan relasinya. Prolog memecahkan masalah seperti yang dilakukan oleh
fikiran manusia.
Dengan demikian, Prolog
sangat ideal untuk memecahkan masalah yang tidak terstruktur dan yang prosedur
pemecahannya tidak diketahui, khusunya untuk memecahkan masalah non numeric.
Bahasa Pemrograman
yang Umum (Basic, Pascal, C, Fortran):
|
Bahasa Pemrograman
Prolog :
|
1. diperlukan
algoritma/prosedur untuk memecahkan masalah (procedural languange)
2. program
menjalankan prosedur yang sama berulang-ulang dengan data masukan yang
berbeda-beda.
Prosedur dan
pengendalian program ditentukan oleh programmer dan perhitungan dilakukan
sesuai dengan prosedur yang telah dibuat.
|
Object oriented
languangeatau declarative languange.
Tidak terdapat
prosedur, tetapi hanya kumpulan data-data objek (fakta) yang akan
diolah, dan relasi antar objek tersebut membentuk aturan yang diperlukan
untuk mencari suatu jawaban
Programmer menentukan
tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan
tersebut serta mencari jawabannya.
Dilakukan pembuktian
terhadap cocok-tidaknya tujuan dengan data-data yang telah ada dan relasinya.
Prolog ideal untuk
memecahkan masalah yang tidak terstruktur, dan prosedur pemecahannya tidak
diketahui, khususnya untuk memecahkan masalah non numerik.
Prolog bekerja
seperti pikiran manusia, proses pemecahan masalah bergerak di dalam ruang
masalah menuju suatu tujuan (jawaban tertentu). Contoh : Pembuatan program
catur dengan Prolog
|
Keunggulan Prolog
Keunggulan Prolog
terletak pada kemampuannya untuk mengambil kesimpulan (jawaban) dari data-data
yang ada. Karena program dalam bahasa prolog tidak memerlukan prosedur
(algoritma). Prolog sangat ideal untuk memecahkan masalah yang tidak
terstruktur dan yang prosedur pemecahannya tidak diketahui, khususnya untuk
memecahkan masalah non-numerik.
Misalnya, dalam
pembuatan program catur dengan prolog untuk menentukkan gerakan catur anda
tidak perlu menganalisa semua kemungkinan atau menentukkan suatu prosedur tertentu
untuk untuk menentukan gerakan berikutnya. Tetapi anda cukup menuliskan aturan
umum permainan catur dan lebih baik lagi jika ditambah dengan aturan yang
diperoleh dari pengalaman. Prolog akan menentukan sendiri langkah yang akan
diambil berdasarkan data-data yang ada saat itu dan aturan-aturan yang
diberikan.
Aplikasi Prolog
1. Sistem Pakar (Expert
System).
Sistem Pakar (Expert
System) adalah program yang menggunakan teknik pengambilan kesimpulan dari
data-data yang didapat seperti yang dilakukan oleh seorang ahli dalam
memecahkan masalah. Komputer dapat diprogram untuk berbuat seperti orang yang
ahli dalam bidang tertentu. Komputer yang demikian dapat dijadikan seperti
konsultan atau tenaga ahli di bidang tertentu yang dapat menjawab pertanyaan
dan memberikan nasehat yang dibutuhkan. Tujuan utama sistem pakar bukan untuk
menggantikan kedudukan seseorang ahli atau pakar tetapi hanya untuk
memasyarakatkan pengetahuan dan pengalaman pakar-pakar tersebut. System pakar
memungkinkan orang lain meningkatkan produktifitasnya, memperbaiki kualitas
keputusannya, sistem pakar bias memecahkan masalah yang rumit meskipun tidak
ada seorang ahli.
2. Pengolahan
bahasa alami (Natural Language processing).
Natural Language
Processing adalah program yang dibuat agar pemakai dapat berkomunikasi dengan
computer dalam bahasa manusia sehari-hari (bahasa apapun). Sebagai contoh adalah
Lotus HAL, yaitu program Bantu untuk Lotus 1-2-3 agar dapat menerima perintah
bahasa inggris seperti bahasa biasa. Program pengolahan bahasa alami
menggunakan teknik AI dalam analisis input bahasa yang dimasukan melalui
keyboard, program tersebut berusaha mengidentifikasi sintak, semantil dan
konteks yang terkandung dalam suatu kalimat agar bias sampai pada kesimpulan
untuk bias memberikan jawaban.
3. Robotik
Dalam robotik, Prolog
digunakan untuk mengolah data masukan yang berasal dari sensor dan mengambil
keputusan untuk menentukan gerakan yang harus dilakukan. Apalagi kalau robot
menemukan peristiwa yang tidak diharapkan atau situasi yang berbeda.
4. Pengenalan
Pola (Pattern Recognition).
Pengenalan pola banyak
diterapkan dalam bidang robotic dan pengolahan citra (image processing).
Misalkan, bagaimana computer dapat membedakan gambar sebuah benda dan gambar
benda yang lain, atau sebuah obyek yang berada diatas obyek lain.
5. Belajar
Bidang ini berkaitan
dengan program yang dapat belajar dari kesalahan yang pernah dilakukan, dari
pengamatan atau dari hal-hal yang pernah dilakukan. Secara singkat, berarti
membuat sebuah computer mampu untuk mengambil manfaat dari pengalaman yang
pernah ditemuinya.
6. Game
suatu cara belajar yang
digunakan dalam menganalisa interaksi antara sejumlah pemain maupun perorangan
yang menunjukkan strategi-strategi yang rasional. Game adalah permainan
video yang dimainkan pada komputer,
dan bukan pada konsol permainan. Game dibuat berdasarkan logika
yang dikembangkan dan diterapkan ke dalam bentuk visual.
Macam-macam Prolog
1. Strawberry
prolog
2. Visual
prolog
3. SWI
prolog
4. Turbo
prolog
Daftar Pustaka :
0 komentar:
Posting Komentar