Selasa, 29 November 2011

LP SNN 1 (Prolog)


Prolog

1.       Apa yang kalian ketahui tentang prolog?
2.       Sebutkan bentuk umum dan cara penulisan program pada prolog?
3.       Bualah contoh program sederhana dari prolog?
Jawaban
1.       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.
2.       Domain
Ada lima domain baku di dalam Prolog, yaitu:
1. char, karakter tunggal yang diapit oleh tanda kutip tunggal: ‘a’, ‘b’, ‘\13’.
2. integer, bilangan bulat antara –32768 hingga 32767. Notasi $ digunakan untuk
menunjukkan bilangan heksa.
3. real, bilangan nyata antara 1x10 –307 hingga 1 x 10 308.
4. string, deretan karakter yang diapit oleh tanda kutip dobel, misalnya “ipb”.
5. symbol, rangkaian karakter yang diawali dengan huruf kecil da tanpa tanda apa pun.

Disamping itu terdapat domain lainnya yang tidak baku, di antaranya adalah:
1. domain file, yang digunakan untuk memberi nama file secara simbolik seperti contoh
berikut:
file = ; ; …..
2. domain list, digunakan untuk menyatakan list (linked list) dimana elemen pertama
mempunyai pointer ke elemen kedua dan seterusnya. Deklarasi list ini dapat dituliskan dengan bentuk:
= *
list_simbol = symbol*
3. domain majemuk, untuk menyatakan data majemuk, seperti:
alamat(“Jl. Pajajaran”, “Bogor”)

Pada contoh ini, alamat adalah nama obyek dan disebut sebagai fungtor, dan bagian
yang ditulis dalam tanda kurung disebut argumen. Domain majemuk juga dapat
digunakan untuk menyatakan beebrapa kemungkinan nilai yang masing-masing
dipisahkan oleh tanda titik koma (;) seperti contoh berikut:
Tombol = up; down; left; right; karakter(char)
Predicates
Bagian ini untuk menuliskan setiap relasi predikat yang digunakan dalam program,
kecuali predikat baku seperti cursor, makewindow, readln, readchar, dan sejenisnya tidak
perlu didefinisikan. Lihat contoh-contoh program contoh pada bagian selanjutnya dari
bab ini.
Clauses
Sekumpulan klausa dari predikat yang sama harus dikelompokkan dalam bagian ini.
Dalam melakukan pemanggilan klausa, Prolog melacaknya berurutan dari atas ke bawah.
Bagian ini merupakan inti dari program Prolog, dimana semua fakta dan aturan
diimplementasikan di sini.
Goal
Merupakan tujuan dari progam prolog dan merupakan hasil dari output program yang telah dibuat.
3.       Program sederhana dari prolog.
Prolog Perulangan Segitiga Angka

loopa(A,B):-
(A>0,
loopb(B,1),nl,
C is A-1,
D is B+1,
loopa(C,D);
A=0,nl).

loopb(X,Z):-
( X>0,write(Z),
Y is X-1,
W is Z+1,
loopb(Y,W);
X=0,write('')).
menu :-
write('-------MENU-------'),nl,
write('1. Biodata'),nl,
write('2. Segitiga'),nl,
write('3. Keluar'),nl,
write('Masukkan pilihan : '), read(PIL), nl,

(PIL=1,nl,
write('------BIODATA------'),nl,
write('Nama saya : '),read(A),nl,
write('NPM saya : '),read(B),nl,
write('-------------------'),nl,
write('Nama saya : '),write(A),nl,
write('NPM saya : '),write(B),nl,

menu;
PIL=2,nl,
write('Nilai perulangan : '),read(A),loopa(A,1),

menu;
PIL=3,nl,
write('Makasih'),nl).

Tidak ada komentar:

Posting Komentar