Selasa, 28 Februari 2012

PENGENALAN PROLOG


Prolog merupakan suatu bahasa pemrograman yang banyak digunakan dalam pengembangan Artificial Intelliegence. Pertamakali dikembangkan oleh A. Colmerarur dari Uni. d'Aix-Marseile pada tahun 1972, dan dikembangkan lebih lanjut oleh R. Kowalski (Uni. Edinburgh) sejak tahun 1974. Perkembangan selanjutnya banyak dilakukan di University of Melbourne oleh Lee Naish dan John Lloyd. Prolog dalam perkembangannya telah dikombinasikan dengan berbagai bahasa pemrograman, terutama functional programming.
Bahasa prolog memiliki ciri-ciri :
Ø  Bahasa pemrograman yang non sequential
Ø  Bahasa pemrograman yang deklaratif
Ø  Simbolik
Ø  Berdasarkan first order logic.
Kesederhanaan Prolog dibanding bahasa lain adalah :
Ø  Sintaknya sangat sedikit sekali
Ø  Secara teoritis tida ada tipe data, tetapi bilangan bulat terpisah.
Ø  Semantik sangat jelas dan terdefinisi secara matematis.
Karena prolog yang digunakan adalah swi-prolog maka untuk menjalankan program tersebut adalah dengan mengklik 2 kali pada shortcut swi-prolog.
Bagian-bagian dalam program Prolog:
1.      Term
Suatu data yang bukan merupakan variabel disebut term.
2.      Functions
Simbol suatu fungsi disebut Functor.
§  Arti dari suatu fungsi adalah jumlah dari argumennya. Suatu atom adalah fungsi dengan arti sama dengan 0. Argumen dapat berupa term atau variabel.
§  Bisa berstruktur rekursif
§  Dimulai dengan huruf kecil. Contoh : makan (nasi)
Makan adalah functor, dan nasi adalah argument.
3.      Clause
Program prolog dapat dianggap sebagai suatu himpunan fungsi boolean, yang disebut dengan clause. Clause dapat memiliki argumen atau tidak.
Clause dapat memiliki body yang kosong, disebut fact, sedangkan yang memiliki body disebut rule. Suatu query dapat dinyatakan sebagai suatu predicate, artinya jumlah dari argumen yang dipakai.
Contoh program :
1.      Ketikkan dan beri nama lapar.pl
Saya_lapar.
Panggil prolog dan jalankan.
?-consult(lapar).
Yes.
?-saya_lapar.
yes.
2.      Ketikkan program berikut ini dan beri nama prog1_2.pro
bisa_makan_siang:-
punya_makanan.
punya_makanan.

Jalankan dan “consult”
?-bisa_makan_siang.
Yes


VARIABLE DALAM PROLOG DAN LIST

Variable dalam prolog dengan huruf besar atau dimulai dengan garis bawah (_). Variabel dalam klausa selalu tersamakan (unified).

Prolog. List ditandai dengan
[elemen1, elemen 2,....]
List terbagi atas :
[Head|Tail]
Contoh : [saya, kamu, dia, engkau]sama dengan [saya|kamu, dia, engkau]
Contoh program:
1.      Ketikkan klause simpel ini:
dosen(bejo, harvard_graphic).
Lalu consult dan beri pertanyaan:
?-dosen(bejo,Mata_Kuliah).
?-dosen(Siapa, harvard_graphic).
?-dosen(Siapa, Apa).
2.      Ketikkan program di bawah ini:
angka([1,2,3,4]).
Kalimat(kucing,[duduk, di|[atas, meja]]).
?-angka([1,Y|Z]).
?-kalimat(kucing,[Kata_kerja|Sisa]).

Mencari solusi alternatif
Untuk mencari solusi dapat digunakan beberapa klausa:
§  Bagof(Variable, Query, List_of_solution_for_the_variable).
§  Setof(Varible, Query, List_of_solution_for_the_variable).
§  Findall(Variable, Query, List, _of_solution_for_the_variable).
Contoh Program:
pengajar(dewi, harvard).
pengajar(dewi, informix).
pengajar(adang, as400).
pengajar(silfi, ner).
pengajar(silfi, as400).
pengajar(dewi, harvard).
pengajar(tutun, lan).
pengajar(adrian, lan).

Lakukan query :
?-bagof(Mata_kuliah, pengajar(Nama, Mata_kuliah),List_Mata).
?-setof(Mata_kuliah,pengajar(Nama,Mata_kuliah),List_Mata).
?-findall(Mata_kuliah,pengajar(Nama,Mata_kuliah),List_Mata).

Tidak ada komentar:

Posting Komentar