You are on page 1of 10

PROLOG

I.Definisi Prolog Prolog adalah kependekan dari PROgramming in LOGic, yang berarti bahasa pemrograman logika atau bahasa pemrograman non- procedural. Namanya diambil dari bahasa Perancis programmation en logique(pemrograman logika). Bahasa ini diciptakan oleh Alain Colmerauer dan Robert Kowalski sekitar tahun 1972. Pemrograman Prolog menggunakan bahasa deklaratif, dimana pemrogram memberi fakta dan aturan untuk selanjutnya diselesaikan oleh prolog secara deduktif sehingga menghasilkan suatu kesimpulan. Pemrograman Prolog berbeda dengan bahasa procedural seperti Pascal, Fortran, C atau yang sejenisnya, dimana programmer memberi perintah untuk menyelesaikan masalah langkah demi langkah, sehingga disebut programming with assignment. Disamping itu, berbeda dengan pemrograman fungsional, pemrograman logika ini menggunakan relasi, bukan fungsi sehingga sangat sesuai untuk implementasi sistem pakar/ Expert System. Bahasa pemrograman Prolog, biasanya diterapkan dalam: Sistem Pakar (Expert System) Program menggunakan teknik pengambilan kesimpulan dari data-data yang didapat, layaknya seorang ahli. Contohnya mendiagnosa penyakit Pengolahan Bahasa Alami (Natural Languange Processing) Program dibuat agar pemakai dapat berkomunikasi dengan komputer dalam bahasa manusia sehari-hari, layaknya penerjemah. 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 pengamatan atau dari hal-hal yang pernah diminta untuk dilakukan.

Dasar pemrograman Prolog Dalam bahasa pemrograman prolog, dikenal beberapa istilah atau pengertian dasar, yaitu Fakta(Fact), Aturan(Rules), Klausa(Clause), Relasi dan Variabel. a. Fakta Fakta adalah suatu kenyataan atau kebenaran yang diketahui, dan menyatakan relasi antara dua objek atau lebih. Fakta juga dapat berisi sifat suatu objek.

Contoh: bapak(prawiro, joko). merah(darah). asin(garam). bapak dari joko adalah prawiro. warna darah merah. rasa garam asin.

b. Aturan Atruan merupakan logika yang dirumuskan dalam bentuk relasi sebab akibat dan hubungan implikasi. Contoh: Kakek(A,Z):-bapak(A,X),bapak(X,Z). Kakek(A,Z):-bapak(A,X),ibu(X,Z). Misalnya dibuat aturan bahwa jika A adalah bapak dari X dan X adalah bapak atau ibu dari Z maka dapat dipastikan bahwa A adalah kakek Z. c. Klausa Klausa adalah suatu ungkapan atau susunan kata yang didalam Prolog dapat berupa fakta atau aturan. Dalam suatu klausa dapat terdiri dari beberapa sub-klausa, yang dihunbunkan satu dengan yang lain dengan tanda (,) atau (;). Tanda tanda (,) menunujukan sifat hubungan and(konjungsi), sedangkan tanda (;) menunjukan hubungan or(disjungsi). Contoh : orangtua(P,Q) :- bapak(P,Q); ibu(P,Q). kakek(A,Z) :- bapak(A,X), orangtua(X,Z). d. Relasi Istilah merah, asin, bapak, kakek, ibu, orangtua, pada contoh fakta dan aturan sebelumnya disebut sebagai relasi. Relasi adalah table dengan n buah kolom dan terdiri dari beberapa baris fakta maupun aturan. Misalkan relasi append adalah sekumpulan tuple (X,Y,Z) dimana Z terdiri dari elemen X diikuti dengan Y atau Z=X+Y. Anggota relasi append terdiri dari : ([], [], []) ([a], [], [a]) ([a],[b],[a,b]) ([a,b],[c,d],[a,b,c,d]) sedangkan ([a],[b],[]) bukan anggota relasi append. Secara umum, suatu relasi dinyatakan dalam bentuk aturan atau fakta sebagai berikut: P if Q1 and Q2 and ... and Qk untuk k>= 0 e. Variabel Argumen suatu predikat dapat berupa konstanta, variable, atau objek lain. Setiap argument dalam prolog biasa disebut term. Dalam Prolog terdapat dua variabel, yaitu: 1. Variabel bernama, yaitu variabel yang diberi nama seperti X, Orang, dan sebagainya 2. Variabel tak bernama (placeholder), dilambangkan dengan tanda garis bawah (_).

Setiap term yang ditulis dengan awalan huruf kapital selalu dianggap sebagai variable bernama dalam Prolog, sedangkan awalan dengan huruf kecil dianggap sebagai suatu relasi atau konstanta. Variabel tak bernama digunakan untuk mengabaikan nilai suatu variabel, yang berarti bisa bernilai apa saja. Berikut adalah contoh penggunaan variable bernama dan tidak bernama. member(X,[X|_]). member(X,[_|Y]):-member(X,Y). II. SWI Prolog A. Pengenalan Singkat SWI-Prolog adalah aplikasi pemrograman berbasis prolog yang bersifat open source. SWI-Prolog biasanya untuk membuat teaching dan semantic web application. SWI-Prolog memilki bebragai macam fitur, libraries untuk constraint logic programming, multithreading, unit testing, GUI, literate programming, web server, SGML, RDF, RDFS, developer tools(termasuk IDE dengan GUI debugger dan GUI profiler) dan extensive documentation. SWI-Prolog mulai dikembangkan pada tahun 1987, oleh Jan Wielemaker. Nama SWI merupakan singkatan dari Sociaal-Wetenschappelijke Informatica ("Social Science Informatics"), merupakan nama sebuah grup di Universitas of Amsterdam, dimana Wielemaker merupakan salah satu anggotanya. SWI-Prolog menggunakan Prolog Virtula Machine yang sangat sederhana, bernama ZIP(Bowen et al., 1983,Neumerkel, 1993), yang hanya memiliki 7 instruksi. Prolog apat dicomplie dengan mudah, dan abstract machine code juga dapat dengan mudah di decompiled kembali ke Prolog. Disamping system design nya yang sederhana, SWI-Prolog juga memilki keunggulan sebagai program development; yaitu compilernya sederhana dan cepat, sehingga tidak membutuhkan user dengan skill advance untuk melakukan debugging, karena debugging dilakukan didalam system. Sayangnya, hal ini menyebabkan terjadinya sedikit penurunan performa dan terkadang membutuhkan tambahan memory usage untukj decompiler dan debugger. B. Kelemahan dan Kelebihan SWI Prolog Terdapat beberapa kelemahan SWI Prolog dibanding komersial Prolog system atau academic product lain, yaitu : Karena bersifat open-source, SWI Prolog masih memilliki beberapa bug. Memory requirements dan performance computer cukup tinggi di banding compiler lain. Masih perlu menambahkan beberapa fitur yang belum tersedia di SWI Prolog. Sedangkan di sisi lain, kelebihan dari SWI Prolog sendiri yaitu: Nice environment, menggunakan prinsip Do what I Mean, automatic completion pada nama atom/konstanta, history mechanism dan tracer yang dioperasikan dalam single key-strokes. Very fast compiler, bahkan aplikasi yang besar sekalipun dalam diload secara cepat pada kebanykan mesin. Jika ini tidak cukup, terdapat Quick Load Format.

Transparent compiled code, SWI Prolog compiled code digunakan sebagai interpreted code; kita dapat me-list code, trace code, dan lain-lain. Ini berarti kita tidak perlu menentukan modul yang harus di-load saat debugging. Profiling, SWI Prolog menyediakan tools untuk performance analysis, yang sangat berguna untuk optimasi program. Flexibility, SWI Prolog dapat dintegrasikan dengan bahasa C, selain itu system predicates-nya dapat dideklarasikan ulang agar compatible dengan Prolog system lain. Integrasi dengan XPCE, SWI Prolog terintegrasi dengan Object Oriented Package untuk User Interface Development, yang disebut XPCE(Anjewierden & Wielemaker, 1989). XPCE membuat kita dapat mengimplementasikan GUI yang kompatibel pada Unix,X11, Windows32, dan MacOS X(darwin).

C. Memulai Project dengan SWI Prolog versi 5.10 1) Memulai pada Unix Secara default, SWI Prolog terinstall dengan nama swipl. Command line argument dari SWI Prolog dan utility program terdokumentasi dengan standard Unix main pages. Cara memulai program :

Setelah memulai Prolog, biasanya program akan me-load consult/1. Berikut cara mengompile file likes.pl

2) Memulai pada Windows Setelah SWI Prolog terinstall pada windows system, beberapa hal penting yang muncul setelah terinstall : Folder yang disebut pl, yang berisi executables files, libraries, dll. Tidak ada files yang terinstall diluar folder ini. Swipl-win.exe program, merupakan Prolog interaction window. Sedangkan swipl.exe merupakan SWI Prolog yang berjalan pada MS-DOS. Ekstensi file .pl dapat dijalankan melalui swipl-win.exe. Membuka .pl file akan secara otomatis menjalankan swipl-win.exe. 3) Executing Query Setelah program berjalan, kemudian program akan menjalankan query dalam Prolog. Pada contoh query berikut, akan meminta makanan apa yang disukai sam. System akan merespon dengan X= (value). User dapat memberikan tanda (;) jika user

menginginkan solusi lain atau return jika sudah puas dengan solusi yang tersedia(Jika tersedia solusi prolog akan menjawab Yes). Jika ternyata tidak ada solusi lain, maka Prolog akan menjawab No pada query. Kemudian prolog dapat memberikan error message jika terdapat error pada query.

Disini berarti sam menyukai dahl, tandoori dan chips. Contoh lain, jika kita akan membuat family.pl. (1) Masuk ke emacs editor(atau swipl-win.exe), kemudian pilih file new. Setelah itu kita masukkan fact, clauses, dll.

(2) Kemudian simpan file, File Save (3) Setelah tersimpan, kita perlu menginformasikan isi file yang kita buat pada prolog. Tahap ini disebut consulting file. Caranya, masuk ke swipl.exe kemudian tulis : (4) Setelah prolog mengenal program, kita dapat meberi gaol seperti pada contoh sebelumnya. Misal kita akan mencari nenek dari Liz: Kemudian prolog akan merespon Setelah itu ketik (;) diikuti ,return maka hasilnya: Jika kita mengulangi langkah sebelumnya maka hasil :

Hal ini menunjukan sudah tidak ada solusi lain. III. Visual Prolog 1. Pengenalan Singkat Visual Prolog atau sering disingkat VIP, sebelumnya dikenal sebagai PDC Prolog dan Turbo Prolog, merupakan bahasa pemrograman prolog yang berorientasi obyek atau Object-Oriented Programming Language(OOPL) . Sebelumnya, Turbo Prolog dipasarkan oleh Borland, namun saat ini produk tersebut dikembangkan serta dipasarkan oleh perusahaan asal Denmark, Prolog Development Center, yang sejatinya merupakan perusahaan yang mengembangkan Turbo Prolog. Visual Prolog dapat digunakan untuk membuat aplikasi berbasis grafis untuk sistem operasi Microsoft Windows, aplikasi konsol, berkas pustaka .dll, dan program berbasis CGI. Program yang dibuat dengan Visual Prolog juga dapat memanfaatkan komponen COM milik Windows, dan akses database melalui ODBC. Visual Prolog merupakan bahasa pemrograman yang dikompilasi, dan bukan diinterpretasikan oleh sebuah interpreter. Jika kita mempelajari Visual Prolog, kita akan mempelajari tiga hal sekaligus, pemrograman dalam VIP, pemrograman GUI, dan OOP. 2. Memulai Project dalam Visual Prolog Tampilan awal Visual Prolog

1. Membuat project baru Kita dapat membuat project baru dengan cara Project New

Setelah itu akan muncul window untuk melakukan setting project. Project Settings berisi nama project, file type, direktori, dll.

2. Dalam suatu project sama seperti program OOP lain, kita dapat membuat form atau pun menuliskan fungsi pada console. Jika kita ingin menuliskan goal pada console, kita dapat membuat class baru, dengan cara New in existing Projectclass

Misalnya kita akan membuat class dengan nama Hanoi. Kita masukkan fakta, clausa dan predicates seperti berikut

Program ini memiliki goal untuk memindah dari suatu pole ke pole yang lain. Terdapat tiga pole yaitu left,center,dan right. Pada clauses terdapat perintah untuk memindah dari A(left) ke C(right) dengan B sebagai transit. Karena nilai N= 4, maka akan bergeser sebanyak 4 kali. 3. Jika kita ingin membuat form baru, New in Existing Package Form

Kemudian akan muncul layout form dan kita dapat memberi segala macam fungsi seperti pada OOP diasa. Namun perbedaannya, bahsa yang digunakan adalah prolog, sehingga berbentuk clauses. Misal setelah kita memberikan tools File/New, kita ingin memberikan code pada id_file_new->onFileNew, maka tinggal double click pada item

Maka akan muncul pada text editor

Setelah itu kita tambahkan query yang kita inginkan

Klausa ini akan menampilkan window baru. IV. Kesimpulan Berdasarkan pemaparan dapat diambil beberapa kesimpulan, yaitu : Prolog merupakan bahasa pemrograman logic, dan dapat diimplementasikan untuk system expert, natural language programming, robotic, pengenalan pola, dan learning. Terdapat lima pengertian dasar dalam prolog, yaitu fakta, aturan, relasi, klausa, dan variable. SWI-Prolog merupakan prolog compiler yang bersifat open source, yang dapat berjalan pada system unix, win32 an Mac OS. Karena bersifat open source, SWI-Prolog masih memilki beberapa bug, dan harus menambah beberapa fitur lain. SWI-Prolog membutuhkan memory dan computer performance yang cukup tinggi dibanding compiler lain. Tapi di sisi lain, SWI-Prolog sangat cepat saat meng-compile file. Visual Prolog merupakan prolog compiler ciptaan Microsoft dan hanya dapat berjalan pada system Windows. Visual Prolog, disamping menggunakan pemrograman logika, juga menerapkan OOP dan GUI Programming. Dengan menggunakan Visual Prolog, kita dapat mengembangkan GUI yang berbasis prolog.

Daftar Pustaka Costa, E. (2010). Visual Prolog 7.3 for Tyros. Website : http://wiki.visualprolog.com/index.php?title=Visual_Prolog_for_Tyros

de Boer, Thomas .W. (2008). A Beginners Guide to Visual Prolog Version 7.1. Website :
http://wiki.visual-prolog.com/index.php?title=A_Beginners_Guide_to_Visual_Prolog Wielemaker, J. (2010). SWI-Prolog Reference Manual Version 5.10. Website : http://www.swiprolog.org/index.html SWI-Prolog, From Wikipedia, the Free Encyclopedia. (n.d.). Website : http://en.wikipedia.org/wiki/SWI-Prolog Visual Prolog, From Wikipedia, the Free Encyclopedia. (n.d.). Website : http://en.wikipedia.org/wiki/Visual_Prolog

You might also like