Anda di halaman 1dari 22

LAPORAN PRAKTIKUM

KECERDASAN BUATAN
Pertemuan 2 & 3

Disusun Oleh :

MUHAMMAD TAUFIK IRAWAN

TI-S1

115410074

LABORATORIUM TERPADU
Sekolah Tinggi Manajemen Informatika dan Komputer

AKAKOM

Yogyakarta

2012

1
MODUL 2

DASAR – DASAR PROLOG

A. TUJUAN
a) Mahasiswa dapat mengetahui apa yang dimaksud dengan pemrograman logika
(PROgramming in LOGic).
b) Mahasiswa dapat mengkonversikan dari bahasa natural (natural language) ke bahasa
PROLOG dan begitu juga sebaliknya.
c) Mahasiswa dapat mengetahui konsep dasar fakta-fakta (facts), aturan-aturan (rules),
predikat-predikat (predicates) dan variabel.

B. DASAR TEORI
Pemrograman Logika (PROLOG) dikenal sebagai bahasa deskriptif (descriptive
language), yang berarti dengan diberikannya serangkaian fakta-fakta dan aturan-aturan,
Prolog, dengan menggunakan cara berpikir deduktif (deductive reasoning), akan dapat
menyelesaikan permasalahan suatu program.

Prolog mempunyai mesin inferensi (inference engine) yang merupakan suatu proses
berpikir logis mengenai informasi.

Logika predikat dibangun agar mudah menerjemahkan ide-ide berbasis logika


menjadi bentuk tulis. Prolog mengambil keunggulan dari sintak ini untuk membangun suatu
bahasa pemrograman yang berbasis logika. Dalam logika predikat, pertama kali harus
membuang semua kata-kata yang tidak dibutuhkan dari suatu kalimat. Kemudian
mentransformasikan kalimat tersebut dengan mencari relasi terlebih dahulu, kemudian setelah
itu melakukan pengelompokan object. Object kemudian menjadi argumen dari relasi atas
object tersebut. Berikut ini merupakan contoh kalimat bahasa natural ditransformasikan
menjadi sintak logika predikat :
Bahasa Natural Logika Predikat
Esdegan rasanya enak Enak(esdegan)
Anggrek berwarna ungu Anggrek(ungu)
Iwan menyukai motor Suka(iwan, motor)

2
Tika suka soto jika soto rasanya Suka(tika, soto) if enak(soto)
enak

Rangkaian yang diberikan oleh PROLOG :


a) Kaliamat Fakta dan Aturan
b) Query
c) Variabel
d) Komentar

C. PEMBAHASAN TUGAS
1. Bahasa Prolog menjadi bahasa natural :
a. orang(dian).
Dian adalah orang.
b. mobil(atoz)
Atoz adalah mobil.
c. suka(dian,atoz).
Dian menykai Atoz.
d. dijual(atoz).
Atoz dijual.
e. dapat_membeli(X,Y) :-

orang(X),

mobil(Y),

suka(X,Y),

dijual(Y).
X dapat membeli Y jika X adalah orang dan Y adalah
mobil dan X menyukai Y dan Y dijual.
f. suka(_,Apa).
Setiap orang menyukai apa.

3
2. Bahasa Natural menjadi bahasa Prolog
 Bahasa Natural :
a. Ricky mempunyai hobi bermain catur
b. Embang orangnya pemalas
c. Yusida seorang vegetarian
d. Kusdiar pandai bermain gitar
e. Mobil yang berwarna merah itu milik Sadek, bermerk
BMW
f. Awan seorang pemain piano, berasal dari Pontianak
bersuku Jawa
g. Seseorang dikatan baik jika mempunyai sifat
penyayang dan dermawan
h. Seseorang dikatan pintar jika salah satu dari
Matematika atau IPA atau IPS mendapat nilai tinggi.
i. Setiap orang pasti mati

 Bahasa Prolog :
a. Hobi(Ricky, catur).
b. Orang(Embang, pemalas).
c. Orang(Yusida, vegetarian).
d. Pandai(Kusdiar, catur).
e. Warna(mobil, merah), milik(mobil, sadek),
merk(mobil, bmw).
f. Pemain(Awan, piano), asal(Awan, pontianak),
suku(Awan, jawa).
g. Baik(orang):- sifat(punya, penyayang) , sifat(punya,
dermawan).
h. Pintar(orang):- nilai(Matematika, tinggi);
nilai(IPA, tinggi);
nilai(IPS, tinggi).
i. mati(_).

4
3. Script program Prolog :
PREDICATES
nondeterm anak(STRING,STRING)
nondeterm istri(STRING,STRING)
nondeterm pria(STRING)
nondeterm wanita(STRING)
nondeterm ibu(STRING ibu,STRING anak)
nondeterm ayah(STRING ayah,STRING anak)
nondeterm kakek(STRING kakek,STRING cucu)
nondeterm menikah(STRING,STRING)
usia(STRING,STRING)
cucu(STRING,STRING)
adik(STRING,STRING)
 Script program diatas merupakan pendeklarasian relasi antara variabel-variabel yang
ada, dalam program ini predikat yang dideklarasikan diberi nama anak, istri, pria,
wanita, ibu, ayah, kakek, menikah, usia, cucu, dan adik. Predikat - predikat tersebut
dideklarasikan bertipe symbol, jika bertipe symbol maka fakta-fakta pada clauses tidak
diapit tanda pertik dua (“…”).
Kata kunci nondeterm pada PREDICATE diatas yang mendahului predikat anak, istri,
pria, wanita, ibu, ayah, kakek, dan menikah berfungsi untuk memberitahukan ke
compiler Visual Prolog bahwa predikat tersebut mempunyai lebih dari satu
kemungkinan jawaban (non-deterministik)

CLAUSES
ayah(A,B):- anak(B,A).
kakek(A,B):- ayah (A,C), ayah(C,B).
ibu(A,B):- menikah(A,C), ayah(C,B).

anak("Jhon","James").
anak("James","Peter").
anak("Sue","Ann").

adik("John","Sue").

5
istri("Mary","Peter").
istri("Ann","James").

menikah("Mary","Peter").
menikah("Ann","James").

cucu("Jhon","Peter").

pria("Jhon").
pria("James").
pria("Peter").

wanita("Mary").
wanita("Sue").
wanita("Ann").

usia("Jhon","10").
usia("Sue","13").
 Scrip program diatas merupakan bagian dari CLAUSES yaitu berupa aturan. Aturan
merupakan suatu konklusi diketahui benar jika satu atau lebih konklusi atau fakta lain
ditemukan benar. Bagian ini juga tidak kalah penting dari bagian fakta karena pada
saat mencari jawaban, Visual Prolog akan melihat setiap aturan yang ada.
Simbol (:-) dapat dibaca dengan “jika” dan tanda koma (,) dibaca “dan” serta aturan
ini diakhiri tanda titik (.) .

 Aturan-aturan diatas dapat dibaca dalam bahasa natural sebagai berikut :


a. ayah(A,B):- anak(B,A).
b. kakek(A,B):- ayah (A,C), ayah(C,B).
c. ibu(A,B):- menikah(A,C), ayah(C,B).

 Dalam bahasa Naturalnya adalah:


a. A ayah B jika B anak A.

6
b. A kakek B jika A ayah C dan C ayah B.
c. A ibu dari B jika A menikah dengan C dan C ayah
dari B.

 Uji Goal Cucu

GOAL
cucu(X,Y).
GOAL diatas adalah untuk mengetahui X cucu Y. Variabel cucu akan di-link-kan
dengan variabel pertama dari masing-masing fakta pada bagian CLAUSES. Berikut
aturan pada bagian CLAUSES : kakek(A,B):- ayah (A,C), ayah(C,B).Dan
hasil GOAL adalah :

Hasil diatas menunjukan bahwa penguji berhasil mendapatkan solusi bahwa Jhon adalah
cucu Peter.

 Uji Goal Ibu

GOAL
ibu(X,Y).
GOAL diatas adalah untuk mengetahui X ibu Y. Variabel cucu akan di-link-kan dengan
variabel pertama dari masing-masing fakta pada bagian CLAUSES. Berikut aturan pada
bagian CLAUSES : ibu(A,B):- menikah(A,C), ayah(C,B).
Dan hasil GOAL adalah :

7
Hasil diatas menunjukan bahwa penguji berhasil mendapatkan 2 solusi yaitu Marry adalah
ibunya James dan Ann adalah ibunya Jhon.

 Uji Goal Adik


GOAL
adik(X,Y).

GOAL diatas adalah untuk mengetahui X adik Y. Variabel cucu akan di-link-kan dengan
variabel pertama dari masing-masing fakta pada bagian CLAUSES. Berikut aturan pada
bagian CLAUSES : adik("John","Sue").
Dan hasil GOAL adalah :

Hasil diatas menunjukan bahwa penguji berhasil mendapatkan 1 solusi yaitu Jhon adalah
adiknya Sue.

 Uji Goal Kakek


GOAL
kakek(X,Y).

8
GOAL diatas adalah untuk mengetahui X kakek Y. Variabel cucu akan di-link-kan
dengan variabel pertama dari masing-masing fakta pada bagian CLAUSES. Berikut
aturan pada bagian CLAUSES : kakek(A,B):- ayah (A,C), ayah(C,B).Dan
hasil GOAL adalah :

Hasil diatas menunjukan bahwa penguji berhasil mendapatkan 1 solusi yaitu Peter adalah
kakeknya Jhon.

D. KESIMPULAN
Pada pertemuan kedua ini membahas tentang dasar-dasar prolog dimana dalam pertemuan
kedua ini melatih tentang penggunaan konversi bahasa natural dan sebaliknya serta dapat
membuat aturan-aturan atau rules serta fakta dan predikat serta variable-variable dalam
program prolog.
Tipe symbol tidak di ikuti tanda petik dua ganda di dalam kurung pada penulisan fakta bagian
CLAUSES . Kata kunci nondeterm pada PREDICATES berfungsi untuk memberitahu ke
compiler Visual Prolog bahwa predikat tersebut mempunyai lebih dari satu kemungkinan
jawaban (non-deterministik). Simbol :- dapat dibaca dengan “jika” dan tanda koma (,) dibaca
“dan” serta aturan ini diakhiri tanda titik (.) Tanda garis bawah tunggal yang berarti variabel
anonim. Variabel anonim digunakan jika hanya dibutuhkan informasi tertentu dari suatu
query.

E. LISTING TERLAMPIR

9
MODUL 3
PROGRAM VISUAL PROLOG

A. TUJUAN
a) Mahasiswa dapat mengrti dan dapat menerapkan section – section dasar yang ada di
Visual Prolog seperti PREDICATES, DOMAINS, CLAUSES, dan GOAL.
b) Mahasiswa dapat mengetahui section-section lainya yang ada di Visual Prolog seperti
FACTS, CONSTANT, GLOBAL.
c) Mahasiswa dapat mengerti tentang Compiler Directives.
d) Mahasiswa dapat mengerti dan menerapkan aritas jamak ( multiple arity ) pada Visual
Prolog.
e) Mahasiswa dapat mengerti konsep aturan ( rule ) pada Prolog dan perbedaanya
dengan bahasa lain.
f) Mahasiswa dapat mengenai konversi tipe otomatis ( automatic type conversion )

B. DASAR TEORI
Pemrograman Visual Prolog
a) Section Dasar Visual Prolog
Secara umum, program Visual Prolog terdiri dari empat section dasar, yaitu section
clauses, section predicates, section domains, dan section goal.
 Section Clauses
Merupakan section yang paling penting pada program Visual Prolog. Pada section ini
programer bisa meletakkan aturan dan fakta. Ketika mencari jawaban, Visual Prolog
akan mencari dari bagian paling atas dari section clauses, melihat setiap fakta dan aturan
untuk mendapatkan jawaban benar, hingga ke bagian paling bawah dari section.
 Section Predicates
Merupakan predikat yang harus dideklarasikan dahulu sebelum sectioon clauses. Kalau
tidak, Visual Prolog tidak akan mengenal predikat yang kita tuliskan tersebut.
 Section Domains
Merupakan section yang mempunyai dua manfaat utama, yaitu
 Programer dapat meberikan nama yang berarti untuk domain, walaupun secara
internal domain tersebut sama tipenya dengan domain yang telah ada.

10
 Programer dapat mendeklarasi domain khusus yang digunakan untuk
mendeklarasikan struktur data yang tidak didefinisikan oleh standar domain.
 Section Goal
Secara esensial, section goal sama dengan body dari sebuah aturan (rule), yaitu sederatan
sub-sub goal.

b) Section program lainya


 Section facts
 Section contans
 Global
c) Compiler drectifes
d) Aritas jamak (multiple arity)
e) Sintak Aturan (rule syntax)

C. PEMBAHASAN TUGAS
Tugas 1
PREDICATES
nondeterm mahasiswa(symbol, symbol)
nondeterm mahasiswa_makul(symbol,symbol)
 Bagian predicats di atas merupakan pendeklarasian relasi antara variabel-variabel yang
ada, dalam program ini predikat yang dideklarasikan diberi nama mahasiswa dan
mahasiswa_makul. Setiap predikat memiliki argumen. Predikat mahasiswa memiliki 2
argumen yaitu (symbol, symbol) dan predikat mahasiswa_makul juga memiliki 2 argumen
yaitu (symbol, symbol). Nondeterm berfungsi untuk memberitahu ke compiler Visual
Prolog bahwa predikat mempunyai lebih dari satu kemungkinan jawaban.

CLAUSES
mahasiswa("Irfan","A").
mahasiswa("Komeng","D").
mahasiswa("Dati","C").
mahasiswa("Fatima","B").
mahasiswa("Maspion","C").
mahasiswa("Ricky","E").
mahasiswa("Embang","A").

11
mahasiswa("Salmin","D").
mahasiswa("Vina","B").
mahasiswa("Sondang","C").
mahasiswa("Pamuji","D").
mahasiswa("Luki","E").
mahasiswa("Sadek","B").
mahasiswa("Yusida","A").
mahasiswa("Eka","A").

mahasiswa_makul("Irfan","Intelejensi Buatan").
mahasiswa_makul("Komeng","Intelejensi Buatan").
mahasiswa_makul("Dati","Intelejensi Buatan").
mahasiswa_makul("Fatima","Intelejensi Buatan").
mahasiswa_makul("Maspion","Intelejensi Buatan").
mahasiswa_makul("Ricky","PDE").
mahasiswa_makul("Embang","PDE").
mahasiswa_makul("Salmin","PDE").
mahasiswa_makul("Vina","PDE").
mahasiswa_makul("Sondang","PDE").
mahasiswa_makul("Pamuji","Sistem Operasi").
mahasiswa_makul("Luki","Sistem Operasi").
mahasiswa_makul("Sadek","Sistem Operasi").
mahasiswa_makul("Yusida","Sistem Operasi").
mahasiswa_makul("Eka","Sistem Operasi").
 Scrip proogram diatas merupakan bagian dari clauses yaitu berupa aturan. Aturan
merupakan suatu konklusi diketahui benar jika satu atau lebih konklusi atau fakta lain
ditemukan benar. Simbol ( , ) dapat dibaca dengan “dan” dan pada akhir bagian clauses
ini harus diakhiri tanda titik (.).
Pernyataan diatas dapat saya jelaskan bahwa mahasiswa("Irfan","A".,dapat
diartikan Irfan mendapat nilai A
kemudian mahasiswa_makul("Irfan","Intelejensi Buatan"). , dapat
diartikan Irfan mengambil matakuliah Intelejensi Buataan.

12
1. Uji Goal untuk mencari Nama mahasiswa yang mengikuti matakuliah Intelejensi
Buatan

GOAL
mahasiswa_makul(Siapa,"Intelejensi Buatan").
a. GOAL diatas bertujuan untuk mengetahui Siapa saja mahasiswa matakuliah
Intelejensi Buatan. Variabel mahasiswa_makul akan di-link-kan dengan variabel
pertama dari masing-masing fakta pada bagian CLAUSES .
Berikut adalah aturan pada bagian CLAUSES:
mahasiswa_makul("Irfan","Intelejensi Buatan").
mahasiswa_makul("Komeng","Intelejensi Buatan").

mahasiswa_makul("Dati","Intelejensi Buatan").

mahasiswa_makul("Fatima","Intelejensi Buatan").

mahasiswa_makul("Maspion","Intelejensi Buatan").
Maka hasilny adalah:

Hasil diatas menunjukan bahwa penguji berhasil mendapatkan 5 solusi dari Goal
mahasiswa_makul(Siapa,"Intelejensi Buatan"). yaitu Irfan, Komeng,
Dati, Fatima, Maspion.

13
2. Uji Goal untuk mencari Nama mahasiswa yang tidak lulus
a. Dengan syarat menambahksn predicat dibawah ini :
nondeterm mahasiswa_tidak_lulus(symbol)
Mendeklarasikan variabel baru untuk mengetahui siapa saja mahasiswa yang tidak
lulus. Dengan nama variabel yaitu, mahasiswa_tidak_lulus dan serta argumen
(symbol).

b. Pada CLAUSES kita tambahkan


mahasiswa_tidak_lulus(Nama):-

mahasiswa(Nama, Nilai), Nilai > "C".


Memberikan aturan dari fakta yang ada dengan :
Nama mahasiswa itu tidak lulus jika nama mahasiswa dengan nilai tersebut dan nilai
lebih besar dari nilai C.

c. Pada GOAL kita tambahkan


GOAL
mahasiswa_tidak_lulus(X).
Pada bagian GOAL diatas adalah untuk mengetahui mahasiswa yang tidak lulus
dengan memanggil variabel mahasiswa_tidak_lulus. Variabel mahasiswa_tidak_lulus
akan di-link-kan dengan variabel pertama dari masing-masing fakta pada bagian
CLAUSES.
Berikut adalah aturan pada bagian CLAUSES :
mahasiswa("Irfan","A").
mahasiswa("Komeng","D").
mahasiswa("Dati","C").
mahasiswa("Fatima","B").
mahasiswa("Maspion","C").
mahasiswa("Ricky","E").
mahasiswa("Embang","A").
mahasiswa("Salmin","D").
mahasiswa("Vina","B").
mahasiswa("Sondang","C").
mahasiswa("Pamuji","D").

14
mahasiswa("Luki","E").
mahasiswa("Sadek","B").
mahasiswa("Yusida","A").
mahasiswa("Eka","A").

Maka hasilny adalah:

Hasil diatas menunjukan bahwa penguji berhasil mendapatkan 5 solusi dari Goal
mahasiswa_tidak_lulus(X).yaitu Komeng, Ricky, Salmin, Pamuji, Luki. Karena
nilai mereka ada yang D atau E.

3. Uji Goal untuk mencari Nama mahasiswa yang tidak lulus mencari Nama mahasiswa
yang lulus.
a. Dengan syarat menambahksn predicat dibawah ini :

nondeterm mahasiswa_lulus(symbol) Mendeklarasikan variabel baru untuk


mengetahui siapa saja mahasiswa yang lulus. Dengan nama variabel yaitu,
mahasiswa_lulus dan serta argumen (symbol).

b. Pada CLAUSES kita tambahkan


mahasiswa_lulus(Nama):-
mahasiswa(Nama, Nilai), Nilai <= "C".

Memberikan aturan dari fakta yang ada dengan :


Nama mahasiswa itu lulus jika nama mahasiswa dengan nilai tersebut dan nilai lebih
kecil dari nilai C.

15
c. Pada GOAL kita tambahkan
GOAL
mahasiswa_lulus(X).
Pada bagian GOAL diatas adalah untuk mengetahui mahasiswa yang tidak lulus
dengan memanggil variabel mahasiswa_lulus. Variabel mahasiswa_lulus akan di-link-
kan dengan variabel pertama dari masing-masing fakta pada bagian CLAUSES .
Berikut adalah aturan pada bagian CLAUSES :
mahasiswa("Irfan","A").
mahasiswa("Komeng","D").
mahasiswa("Dati","C").
mahasiswa("Fatima","B").
mahasiswa("Maspion","C").
mahasiswa("Ricky","E").
mahasiswa("Embang","A").
mahasiswa("Salmin","D").
mahasiswa("Vina","B").
mahasiswa("Sondang","C").
mahasiswa("Pamuji","D").
mahasiswa("Luki","E").
mahasiswa("Sadek","B").
mahasiswa("Yusida","A").
mahasiswa("Eka","A").

Maka hasilny adalah:

16
Hasil diatas menunjukan bahwa penguji berhasil mendapatkan 10 solusi dari Goal
mahasiswa_lulus(X). yaitu Irfan, Dati, Fatima, Maspion, Embang, Vina, Sondang,
Sadek, Yusida, Eka. Terbukti nilai mereka ada yang A atau B atau C.

4. Uji Goal untuk mencari Nama mahasiswa yang tidak lulus mencari Nama Matakuliah
yang diajarkan
a. Dengan syarat menambahksn predicat dibawah ini :

nondeterm mahasiswa_makul(symbol,symbol)Mendeklarasikan variabel


baru untuk mengetahui siapa saja mahasiswa yang mengambil matakuliah. Dengan
nama variabel yaitu, mahasiswa_makul dan serta argumen (symbol).

b. Pada GOAL kita tambahkan


GOAL
mahasiswa_makul(Siapa,Apa).Pada bagian GOAL diatas adalah untuk
mengetahui mahasiswa yang ambil mata kuliah dengan memanggil variabel
mahasiswa_makul. Variabel mahasiswa_makul akan di-link-kan dengan variabel
pertama dari masing-masing fakta pada bagian CLAUSES .
Berikut adalah aturan pada bagian CLAUSES :

mahasiswa_makul("Irfan","Intelejensi Buatan").
mahasiswa_makul("Komeng","Intelejensi Buatan").
mahasiswa_makul("Dati","Intelejensi Buatan").
mahasiswa_makul("Fatima","Intelejensi Buatan").
mahasiswa_makul("Maspion","Intelejensi Buatan").

mahasiswa_makul("Ricky","PDE").
mahasiswa_makul("Embang","PDE").
mahasiswa_makul("Salmin","PDE").
mahasiswa_makul("Vina","PDE").
mahasiswa_makul("Sondang","PDE").

mahasiswa_makul("Pamuji","Sistem Operasi").

17
mahasiswa_makul("Luki","Sistem Operasi").
mahasiswa_makul("Sadek","Sistem Operasi").
mahasiswa_makul("Yusida","Sistem Operasi").
mahasiswa_makul("Eka","Sistem Operasi").

Maka hasilny adalah:

Hasil diatas menunjukan bahwa penguji berhasil mendapatkan 15 solusi dari Goal
mahasiswa_makul(Siapa,Apa). Yaitu ada seperti pada output diatas.

5. Uji Goal untuk mencari Nama mahasiswa yang tidak lulus mencari Nama Matakuliah
yang diajarkan
a. Dengan syarat menambahksn predicat dibawah ini :

nondeterm nama_mahasiswa(symbol)Mendeklarasikan variabel baru untuk


mengetahui siapa saja mahasiswa yang lulus. Dengan nama variabel yaitu,
mahasiswa_lulus dan serta argumen (symbol).

b. Pada CLAUSES kita tambahkan


nama_mahasiswa(Nama):- mahasiswa(Nama,_). Memberikan aturan dari
fakta yang ada dengan :
Nama mahasiswa itu lulus jika nama tersebut adalah mahasiswa yang ada.
Tanda garis bawah tunggal yang berarti variabel anonim. Variabel anonim digunakan
jika hanya dibutuhkan informasi tertentu dari suatu query.

18
c. Pada GOAL kita tambahkan
GOAL
nama_mahasiswa(Siapa).Pada bagian GOAL diatas adalah untuk mengetahui
mahasiswa yang tidak lulus dengan memanggil variabel GOAL
nama_mahasiswa(Siapa). Variabel mahasiswa_makul akan di-link-kan dengan variabel
pertama dari masing-masing fakta pada bagian CLAUSES .
Berikut adalah aturan pada bagian CLAUSES :
mahasiswa("Irfan","A").
mahasiswa("Komeng","D").
mahasiswa("Dati","C").
mahasiswa("Fatima","B").
mahasiswa("Maspion","C").
mahasiswa("Ricky","E").
mahasiswa("Embang","A").
mahasiswa("Salmin","D").
mahasiswa("Vina","B").
mahasiswa("Sondang","C").
mahasiswa("Pamuji","D").
mahasiswa("Luki","E").
mahasiswa("Sadek","B").
mahasiswa("Yusida","A").
mahasiswa("Eka","A").
Maka hasilny adalah:

19
Hasil diatas menunjukan bahwa penguji berhasil mendapatkan 15 solusi dari Goal
nama_mahasiswa(Siapa). Yaitu ada seperti pada output diatas.

Tugas 2
 Membuat Goal dan menguji hasilnya :

PREDICATES

nondeterm jalan(symbol,symbol)

nondeterm rute(symbol,symbol)

nondeterm cari(symbol,symbol,symbol)

CLAUSES

jalan(sudirman,oeripsumoharjo).

jalan(oeripsumoharjo,gejayan).

jalan(oeripsumoharjo,adisucipto).

jalan(adisucipto,janti).

jalan(janti,gedongkuning).

20
jalan(gedongkuning,janti).

jalan(janti,adisucipto).

jalan(adisucipto,oeripsumoharjo).

jalan(oeripsumoharjo,sudirman).

jalan(gejayan,oeripsumoharjo).

jalan(adisucipto,babarsari).

jalan(babarsari,adisucipto).

jalan(adisucipto,prambanan).

jalan(prambanan,adisucipto).

jalan(janti,rinroadselatan).

jalan(ringroadselatan,janti).

rute(Awal,Tujuan):-cari(Awal,Tujuan,Tujuan).

cari(Awal,Tujuan,_):-jalan(Awal,Tujuan),

write("pergi dari ",Awal," ke ",Tujuan),nl.

cari(Awal,Tujuan,Temp):-Temp2=Tujuan,jalan(Lewat,Tujuan),
Lewat<>Temp,cari(Awal,Tujuan,Temp2), write("kemudian
dari",Lewat," ke ",Tujuan),nl.

GOAL

rute (janti,adisucipto).

21
Maka hasilny adalah:

Goal diatas berarti bahwa janti rute adisucipto, maka hasil goalnya pergi dari janti ke
adisucipto.

D. KESIMPULAN
Dari laporan yang telah saya jelaskan diatas maka dapat saya jelaskan dan simpulkan bahwa
domains merupakan bagian yang digunakan untuk mendeklarasikan tipe – tipe dari argumen
yang ada, predicates merupakan bagian yang digunakan untuk mendeklarasikan relasi antar
argumen (variabel – variabel), clauses merupakan bagian yang paling penting karena clauses
berupa fakta dan aturan yang digunakan visul prolog untuk mencari jawaban dari sebuah
program dan goal merupakan bagian yang digunakan untuk meletakkan pertanyaan atau
berupa pernyataan untuk di uji oleh visual prolog.

E. LISTING TERLAMPIR

22

Anda mungkin juga menyukai