Prolog
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.
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 sebut heuristik (heutistic) dengan menggunakan pohon logika.
SEJARAH PROLOG
Prolog
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
awalnya, Prolog dan LISP sangat lambat dalam eksekusi program dan memakan
memori yang besar sehingga hanya kalangan tertentu yang menggunakannya. Dengan
adanya Compileer Prolog, kecepatan eksekusi program dapat ditingkatkan, namun
Prolog masih dipandang sebagai bahasa yang terbatas (hanya digunakan di
kalangan perguruan tinggi dan riset.
Pandangan
tersebut 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 diatas, 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 Prolog :
- Object oriented languange atau 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
Aplikasi Prolog :
Ø 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.
Macam-macam PROLOG
- strawberry prolog
- visual prolog
- swi-prolog
- turbo prolog
Strawberry Prolog
Strawberry
Prolog dihasilkan oleh Institut
Matematika dan Informatika pada Akademi Ilmu Pengetahuan Bulgaria . Versi
pertama dirilis pada tahun 1996. Pemimpin tim Strawberry Dimiter Dobrev.
Strawberry
Prolog adalah dialek dari bahasa pemrograman Prolog. Sintaks-nya adalah sangat
dekat dengan ISO-Prolog tetapi memiliki banyak ekstensi yang bukan bagian dari
standar. Gagasan utama dari Strawberry Prolog adalah sangat mudah digunakan dan
itulah sebabnya beberapa universitas menggunakannya untuk kursus mereka Prolog
Strawberry
Prolog sedang dikembangkan di Institut Matematika dan Informatika dan di
Fakultas Matematika dan Informatika.
Kompiler
Prolog ini merupakan bagian dari proyek AI.
Pada praktikum kali ini saya akan mencoba menbuat sebuah
program sederhana pada Prolog. Pertama yang harus kita lakukan adalah membuka Strawberry Prolog tersebut. Kemudian
klik File pada toolbar, lalu pilih New. Setelah itu kita pilih Strawberry Project atau Prolog File. Lalu kita beri nama file
tersebut, kemudian kita ketik script-nya seperti di bawah ini :
LISTING PROGRAM
LOGIKA PROGRAM
Pada pertemuan pertama ini saya akan menjelaskan cara membuat
gambar pemandangan gunung dan rumah dengan menggunakan strawberry prolog.
Strawberry prolog adalah aplikasi yang menggunakan bahasa pemograman prolog.
Berikut adalah beberapa penjelasan syntax yang digunakan dalam pembuatan gambar
pemandangan rumah dan gunung.
Sebelum
menulis syntax pada strawberry prolog harus di dahului dulu oleh ?- karena itu merupakan awalan dari
strawberry prolog. Kemudian window(win_func(),
title(“Ini Gunung”), size(1000, 550)). adalah syntax untuk memunculkan
fungsi window dengan judul Ini Gunung dan dengan ukuran 1000 x 550 pixel. Lalu win_func(paint):- adalah syntax untuk
mengaktifkan fungsi paint pada strawberry prolog.
Sebelum
masuk pada bagian syntax penggambaran terlebih dahulu gunakan perintah pen(0, rgb(255,255,255)), . Perintah
tersebut berguna untuk mendefinisikan garis gambar yang akan digunakan. Angka
yang paling pertama mendefinisikan ketebalan dari garis yang akan digunakan.
Pada kasus ini angka yang digunakan adalah 0
sehingga tidak akan menghasilkan garis outline. Pada bagian dalam fungsi pen terdapat fungsi rgb yang akan digunakan untuk
mendefinisikan warna dari garis yang akan digunakan dan angka yang digunakan
adalah red untuk angka pertama, green untuk angka kedua, dan blue angka ketiga.
Selanjutnya
ada fungsi brush yang berguna untuk
mengisi warna pada suatu shape atau bentuk dengan pembatas garis. Pada bagian
dalam fungsi brush juga harus diisi oleh fungsi rgb untuk mendefinisikan warna
dari fill yang akan digunakan. Pada kasus ini warna yang digunakan adalah biru
langit untuk mewarnai warna langit.
Fungsi
berikutnya adalah rect yang
merupakan fungsi dari rectangle atau dapat disebut juga persegi empat. Pada
persegi empat menggunakan titik koordinat untuk mendefinisikan lokasi dan besar
dari persegi empat yang diinginkan. Sebagai contoh pada kasus ini fungsi rect
dibuat pada titik (0,0) sampai pada titik (1000,200).
Pada syntax
berikutnya terdapat fungsi ellipse yang
berguna untuk menggambarkan lingkaran. Lingkaran tersebut digambarkan dengan
cara mendifinisikan titik koordinat yang sama dengan fungsi rectangle.
Ringkasnya fungsi ini adalah dengan mengimplementasikan sebuah lingkaran dalam
fungsi persegi empat. Pada kasus ini fungsi ellipse akan digambarkan dimulai
dari titik koordinat (800,20) sampai dengan (900,120) jadi hasilnya akan
tergambarkan lingkaran dengan diameter 780 pixel.
Selanjutnya
terdapat fungsi line yaitu fungsi
untuk menggambarkan sebuah garis yang ditentukan oleh titik koordinat. Caranya
adalah dengan menarik garis dari koordinat awal ke koordinat selanjutnya.
Sebagai contoh pada kasus ini akan digunakan fungsi garis line(0,200,800,200) sehingga akan ditarik sebuah garis lurus dari
titik (0,200) ke titik (800,200).
Terakhir
adalah fungsi fill_polygon yaitu
fungsi yang berguna untuk membuat persegi banyak dan langsung mengisinya dengan
warna full. Pada kasus ini akan dibuat polygon fill_polygon(100,500,400,200,200,500) sehingga akan membentuk
sebuah segitiga dengan warna yang ditentukan oleh fungsi pen sebelumnya yaitu merah.
OUTPUT PROGRAM
EmoticonEmoticon