modul 1-ai
TRANSCRIPT
MODUL I
PENGENALAN GNU PROLOG DAN PEMROGRAMAN PROLOG
I. Tujuan
1. Praktikan memahami lingkungan kerja GNU PROLOG
2. Praktikan memahami cara kerja pemrograman prolog
3. Praktikan memahami dasar penulisan sintaks pada prolog
II. Teori
1. Pendahuluan
PROgramming in LOGics atau biasa disingkat Prolog, adalah suatu bahasa pemrograman
khusus yang berbeda dari bahasa pemrograman pada umumnya. Inti dari prolog adalah mesin
penarik kesimpulan yang berdasarkan data yang disediakan oleh programmer. Tidak seperti bahasa
prosedural seperti Java, C++, dll statement prolog seluruhnya adalah eksprsei logika. Prolog
mendukung gaya pemrograman deklaratif, mendeklarasikan suatu logika pada mesin prolog.
Pemrograman di prolog berarti mendeskripsikan dunia, menggunakan program compilingnya
berarti bertanya kepada prolog tentang dunia yang telah kita deskripsikan sebelumnya. Secara
ilustrasi kita seperti mengiasi otak (pikiran), kita membuat logika-logika untuk pikiran tersebut,
sehingga pikiran tersebut dapat berjalan berdasarkan logika-logika yang telah kita bangun
(kecerdasan buatan atau artificial intelligent).
GNU Prolog adalah compiler prolog yang dikembangkan oleh Daniel Diaz dari Departement
of Computing Science University of Paris dan disebarkan secara bebas. Secara teknis, kita tidak
membuat program prolog, namun membuat database prolog.
2. Sintaks Prolog
Ada beberapa hal yang perlu kita perhatikan dalam penulisan program prolog. Program
prolog mengenali objek pada program melalui bentuk sintaksnya, yakni bagaimana bahasa yang
digunakan menyatukan kata-kata. Berikut beberapa hal yang perlu kita ketahui tentang Program
Prolog.
2.2.1 Terms
Terms adalah struktur/jenis data dalam prolog, program prolog dibangun dari terms. Ada 4
jenis terms, antara lain; atoms, number, variables dan compound terms. Atom dan number
terkadang digunakan secara bersamaan dan disebut dengan compound terms.
1. Atoms
Atom adalah satuan terkecil dari informasi pada prolog, yaitu suatu string yang dibangun dari
huruf besar atau kecil, angka, garis bawah dan karakter-karakter lain, yang diawali dengan
huruf kecil atau suatu untaian karakter yang diapit tanda petik satu.
Contoh:
elephant, jono, x_122, ’Negara Kesatuan Republik Indonesia’
2. Numbers
Number adalah angka baik itu bilangan bulat ataupun pecahan
Contoh:
1, 17, 0.67, -893
3. Variables
Variable adalah string yang digunakan untuk menyimpan suatu nilai objek. Penulisan
variable dimulai dengan huruf besar atau garis bawah.
Contoh:
X, Y, _a, Anak, _
4. Compound terms
Compound term adalah struktur data pada prolog yang dibentuk oleh sebuah functor (sebuah
Prolog atom) dan beberapa argumen (Prolog terms, seperti atoms, numbers, variables dan
compound terms) .
Contoh:
big (house, X), element(bumi(X, tanah), 7), functor(cat).
functor argumen
2.2.2 Clauses, Program dan Queries
a. Clause (klausa) adalah statement yang menjadi logika PROLOG. Ada dua jenis clause,
yaitu fact (fakta) dan rules (aturan).
1. Fact
Fact (fakta) adalah suatu logika dunia nyata yang akan kita masukka sebagai basis
pengetahuan prolog. Dalam prolog penulisan fakta dengan cara.
Contoh:
suka(jono, tina). , baca(andi, buku).
suka dan baca adalah relasi yang menghubungkan objek yang ada didalam tanda
kurung. Fakta disebut juga predicate yang diakhiri dengan titik. Predicate adalah
gabungan dari atom dan compound terms atau terms.
2. Rules
Rule (aturan) adalah suatu fakta yang yang tersusun atas fakta-fakta lain. Aturan
terdiri dari head (predicate) dan body (kumpulan dari beberapa predicate yang
dipisahkan oleh tanda koma). Dan antara head dan body dipisahkan oleh tanda :- dan
tentu saja diakhiri dengan tanda titik. Tanda :- kita baca dengan ”jika”.
Contoh:
Bahasa Indonesia:
Seseorang akan dipanggil bibi oleh seorang anak, jika dia adalah adik dari orang tua
anak tersebut.
Bahasa Prolog:
bibi(Bibi, Anak):- adik(Bibi, Orangtua), orangtua(Orangtua, Anak).
adik(ani, jono).
orangtua(jono, budi).
b. Programs
Program adalah kumpulan dari clauses yang disimpan dalam ekstensi prolog (.pl).
c. Queries
Query (Kueri) adalah pertanyaan-pertanyaan yang diajukan pada prolog setelah sebuah
program prolog kita compile. Query memiliki struktur penulisan yang sama dengan
program prolog yang kita compile.
2.2.3 Built-in Predicates
Ada beberapa built-in predicates (predikat yang telah disediakan oleh prolog), beberapa
diantaranya antara lain:
1. Consult
Consult digunakan untuk proses compiling program prolog secara manual.
Contoh: consult(’coba.pl’.)
2. Output
Kita bisa menulis output pada monitor dengan predicate ’write’.
Contoh: write(’Hello world’), nl.
3. GNU PROLOG
Gambar 1.1 Lembar Kerja GNU Prolog
Dalam GNU Prolog -dan compiler-compiler PROLOG lainnya- kita melakukukan
programming prolog dengan 2 langkah, antara lain:
1. Menulis dasar logikanya.
2. Mengecek kebenaran logika-logika tersebut.
1. Menulis Dasar Logika
Menulis dasar logika berarti membuat sebuah basis pengetahuan untuk prolog. Berdasarkan basis
pengetahuan itulah mesin prolog akan menterjemahkan respon yang ia dapatkan lalu
memutuskan tindakan apa yang harus dilakukan, berikut langkah-langkahnya:
1. Untuk menulis dasar logikanya, kita menggunakan word editor berupa notepad, atau word
editor lain yang bisa kita gunakan untuk menyimpan dengan bentuk ekstensi *.pl
Gambar 1.2 Save As *.pl
2. Kita tuliskan basis pengetahuannya sesuai dengan sintaks prolog
Contoh:
baca(budi, buku).
baca(amir, majalah).
baca(koko, tabloid).
buku(matematika).
buku(fisika).
3. Kita simpan dengan ekstensi .pl
2. Mengecek kebenaran logika
1. Kita perlu melakukan compiling program terlebih dahulu.
2. Klik menu File.
3. Akan muncul beberapa sub menu, antara lain:
1. Consult
Consult Kita memilih program yang akan kita compile. Lalu klik Open.
Gambar 1.3 Program yang akan di-compile
Maka akan otomatis ter-compile
Gambar 1.4 program Sukses di-compile
2. Change dir
Berarti kita memilih direktori tempat kita menyimpan program-program prolog kita.
Gambar 1.5 Pilih Direktori Kerja Prolog
Lalu kita tinggal menulis nama program prolog kita untuk kita compile, penulisannya
[’nama_program.pl’]. Lalu tekan Enter.
Gambar 1.6 Compiling Program dengan Change Dir
3. Insert File Name
Insert File Name berarti kita memasukkan nama file program kita kedalam console
prolog.
Kita pilih nama file yang akan dimasukkan
Lalu nama file akan muncul di console
Jika kita ingin melakukan compile, kita ketikkan predicate consult
III.TUGAS
Buatlah silsilah keluarga dari pihak ayah. Mulai dari kakek sampai ke diri kita. Dengan syarat
maksimum saudara ayah 3 orang dan maksimum anak dari masing-masing saudara ayah 3 orang,
seperti diagram dibawah.
a. Buatlah pohon silsilah keluarga tersebut
b. Buatlah program prolog yang memiliki fakta-fakta yang ada pada silsilah keluarga kita
c. Buatlah aturan yang membentuk:
1. Kakek kita memanggil orang tua dari ayah
2. Cucu kakek memanggil anak dari anaknya
3. Paman kita memanggil saudara ayah yang laki-laki
4. Bibi kita memanggil saudara ayah yang perempuan
5. Keponakan saudara ayah memanggil anak dari saudara yang lain
6. Sapupu kita memanggil anak dari saudara ayah.
Gambar 1.3 Tampilan Antar Muka (GUI) Table
Kakek
Ayah
Kita
Saudara Ayah
Saudara Ayah
Anak Anak Anak Anak Anak Anak Anak Anak