OBJEKTIF
Umum
Khusus
PENDAHULUAN
7
program prolog tersebut. Pada pertemuan kali ini, materi mengenai
struktur-struktur pada prolog yang akan dibahas antara lain yaitu domain,
predikat, klausa, dan goal beserta fungsi dari masing-masing struktur
tersebut. Untuk itu kita akan membahasnya satu persatu agar lebih
memperjelas struktur yang ada pada prolog. Struktur yang dimiliki prolog
ini lebih detilnya akan kita mulai pada pembahasan dibawah.
URAIAN MATERI
1 Domains (Domain)
Didalam prolog kita mengenal lima buah domain baku didalamnya, yaitu:
a. char : sebuah karakter tunggal yang diapit oleh tanda kutip satu,
contoh: ‘a’, ‘b’, ‘17’
c. real : suatu bilangan nyata antara 1x10 -307 hingga 1x10 308.
8
Disamping domain baku yang telah didefinisikan diatas prolog juga
memiliki domain tak baku, dimana domain ini memiliki fungsi-fungsi
khusus untuk kemajemukkan domain dalam suatu program prolog.
Domain tak baku yang dimiliki prolog antara lain:
2 Predicates (Predikat)
9
Diawali huruf kecil dan dapat diikuti huruf, angka, atau garis bawah
Panjang nama maksimum 250 karakter
Tidak diperbolehkan menggunakan spasi, tanda minus, tanda
bintang, dan garis miring.
Predikat dari suatu fakta didalam prolog dapat ditulis dengan bentuk
umum sebagai berikut:
: Nama_relasi(symbol, symbol)
Contoh:
nama dari ayah pranoto dan kristianto adalah hendra, maka didalam
prolog dapat kita tuliskan:
ayah(hendra,pranoto).
ayah(hendra,kristianto).
diamana hendra, pranoto dan kristianto dapat juga kita sebut sebagai
argument dalam relasi ayah.
DOMAINS
jalan,kota,kode_pos = string
tanggal,bulan,tahun = integer
PREDICATES
alamat(jalan,kota,kode_pos)
kelahiran(tanggal,bulan,tahun)
10
Contoh di atas lebih baik dibandingkan apabila argument suatu
predicates langsung dituliskan dalam domains standard, seperti:
PREDICATES
alamat(string,string,string)
kelahiran(integer,integer,integer)
ayah(nama); ayah(hendra)
ayah(nama,nama); ayah(hendra,pranoto)
3 Clauses (Klausa)
11
Contoh:
/*FAKTA*/ /*Aturan*/
ayah(hendra,pranoto). kakek(Kakek,Cucu):-
ayah(hendra,kristianto). ayah(Ayah,Cucu),
ayah(pranoto,bardan). ayah(Kakek,Ayah).
ayah(pranoto,deni).
ayah(kristianto,harahap). /*Nenek adalah nenek Cucu*/
ayah(kristianto,sutarno). nenek(Nenek,Cucu):-
ibu(Ibu,Cucu),
ibu(bella,pranoto). ibu(Nenek,Ibu).
ibu(bella,kristianto).
ibu(suci,bardan). nenek(Nenek,Cucu):-
ibu(suci,deni). ayah(Ayah,Cucu),
ibu(bu_kristianto,harahap). ibu(Nenek,Ayah).
ibu(bu_kristianto,sutarno).
4 Goal (Tujuan)
Apakah kamu mengetahui tentang istilah Goal? Istilah goal ini biasa
digunakan dalam persepakbolaan, dimana istilah ini memiliki arti suatu
pemain berhasil memasukkan bola ke gawang lawan yang memang
menjadi tujuan dari pemain tersebut. Sama halnya didalam prolog dimana
goal ini memiliki arti yaitu suatu tujuan yang akan dicapai oleh sebuah
program yang dibuat.
12
Goal berisi pertanyaan yang anda ajukan kepada prolog. Bagian
goal ini hanya dituliskan menggunakan kata tunggal, karena hanya boleh
ada sebuah goal. Goal dapat terdiri dari beberapa sub-goal. Perlu diingat
suatu pernyataan baik fakta, relasi atau goal dikatakan satu apabila
diakhiri dengan tanda titik.
4.1 Variabel
Contoh:
GOAL: ayah(hendra,X).
X = pranoto;
13
Untuk menuliskan variable ini, kita dapat menggunakan tata cara
penulisan variable yaitu sebagai berikut:
Contoh: Tanggal_lahir
Nama_ayah
Nama variabel hanya berlaku untuk satu aturan (lokal). Bila variabel
yang sama digunakan pada aturan yang lain, berarti variabel tersebut
mempunyai arti yang berbeda.
kakek(Kakek,Cucu):-
ayah(Kakek,Ayah),
ayah(Ayah,Cucu).
nenek(Nenek,Cucu):-
ibu(Nenek,Ayah),
ayah(Ayah,Cucu).
14
aturan kakek hanya digunakan dalam tersebut, begitu pula dalam aturan
nenek.
Ayah=hendra
Ayah=pranoto
Ayah=pranoto
Ayah=kristanto
Ayah=kristanto
15
Contoh:
Prolog: mempunyai(_,komputer)
Goal juga dapat terdiri lebih dari satu pertanyaan, atau biasa kita
sebut dengan goal majemuk. goal majemuk ini terdiri dari pernyataan-
pernyataan yang tujuannya tidak hanya terpusat pada satu pertanyaan,
tetapi dalam goal majemuk ini tujuan yang dicapai untuk mendapatkan
hasil diperoleh lebih dari satu pertanyaan.
Contoh:
DOMAINS
merk,warna = symbol
tahun,harga = integer
PREDICATES
mobil(merk,warna,tahun,harga)
CLAUSES
16
/* Fakta */
mobil(mercedez,biru,1975,20).
mobil(mercedez,coklat,1986,50).
mobil(kijang,merah,1990,65).
mobil(baleno,hijau,1997,85).
mobil(bmw,putih,1997,100).
mobil(peugeot,metalic,1999,95).
mobil(kijang,hijau,1987,55).
mobil(honda,hitam,1999,98).
mobil(mazda,hijau,1986,35).
mobil(corolla,merah,2000,97).
mobil(corona,biru,1986,45).
mobil(Merk,Warna,Tahun,Harga)
dengan fakta yang ada dimulai dari fakta pertama, kemudian dilanjutkan
ke sub-goal berikutnya yaitu apakah harganya >85, jika benar maka
prolog akan memunculkan solusi dan diteruskan ke fakta yang lain, jika
tidak benar maka Prolog akan mencari kemungkinan yang lain, dst.
Sehingga diperoleh informasi diinginkan yang merupakan solusi sbb:
Goal: mobil(Merk,Warna,Tahun,Harga),Harga>85
17
Merk=peugeot, Warna=metalic, Tahun=1999, Harga=95
4 Solutions
1 Solution
RANGKUMAN
18
TUNTUNAN LATIHAN
19
bagian menu bar, kemudian pilih consult, setelah itu muncul jendela
pilihan file prolog yang sudah di buat, pilihlah program tersebut.
Maka akan muncul tampilan seperti ini setelah tidak terjadi error atau
kesalahan:
Kemudian kita masukkan hubungan ataupun silsilah yang ingin kita cari:
20
Dari contoh yang digunakan maka dapat disimpulkan yuda adalah benar
menikahi nia. Jika silsilah atau hubungan yang dicari tidak ada atau salah
maka program akan menyatakannya dengan false.
Keterangan :
LATIHAN
21
2. Definisikanlah struktur program contoh diatas berdasarkan pembagian
pada domain, predikat, klause, dan goal yang ada!
3. Carilah keterhubungan fakta dari aturan-aturan yang ada!
22