Minggu, 18 November 2012

Laporan Kecerdasan Buatan 3

LAPORAN PRAKTIKUM
KECERDASAN BUATAN
Pertemuan 3




logo-akakom-hitam-putih





























DISUSUN OLEH:
NIM    : 115410144
NAMA  : Ari Lutfiani


Teknik Informatika
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER

AKAKOM YOGYAKARTA

 2012


Modul 3
PROGRAM VISUAL PROLOG

A.     TUJUAN
1)     Mengerti dan dapat menerapkan section-section dasar yang ada di Visual Prolog ( Predicates, Domains, Clauses, dan Goal ).
2)     Mengetahui section-section lainnya  yang ada di Visual Prolog ( Facts, Constant, dan Global )
3)     Mengerti tentang Compiler Directives.
4)     Mengerti dan dapat menerapkan aritas jamak (multiple arity)
5)     Mengerti konsep aturan (rule) pada prolog dan perbedaannya dengan bahasa lain
6)     Mengerti mengenai konversi tipe otomatis.

B.     DASAR TEORI
Program Visual Prolog
1.     Section dasar Visual Prolog
Program visual prolog terdiri dari 4 section dasar yaitu section clauses, section predicates, section domains, dan goal.
Section Clauses
Merupakan section yang paling penting pada program visual prolog. Section ini tempat meletakkan fakta dan aturan.
Section Predicates
Sebelum mendefinisikan predikat di section clauses maka predikat tsb harus dideklarasikan terlebih dahulu di section predicates. Ketika mendeklarasikan suatu predikat, kita memberi tahu visual prolog domain dari argumen yang dimiliki predikat tsb. Visual prolog mempunyai perpustakaan predikat yang kalau dipakai tidak perlu dideklarasikan, karena sudah built-in. Untuk melihat predikat apa saja serta manfaatnya yang ada diperpustakaan Visual Prolog dapat melihat help | Contens.
Deklarasi Predikat
Dimulai dengan nama predikat diikuti tanda kurung buka, kemudian diikuti nol atau lebih argumen dari predikat ( setiap argumen dipisah dengan tanda koma) kemudian ditutup tanda kurung tutup. Tidak perlu diakhiri dengan tanda titik.
Nama Predikat
Harus dimulai dengan huruf diikuti dengan serangkaian huruf, angka dan atau garis bawah. Bisa dimulai dengan huruf besar, namun sangat direkomendasikan untuk memakai huruf kecil diawal nama predikat. Panjang nama predikat bisa mencapai 250 karakter.
Argumen Predikat
Harus sudah dikenal oleh domain Visual Prolog. Suatu domain bisa merupakan domain standar atau bisa juga domain yang sudah dideklarasikan pada section domains.
Section Domains
Setiap domains mempunyai 2 manfaat utama yaitu kita dapat memberikan nama yang berarti untuk domain, walaupun secara internal domain tsb sama tipenya dengan domain yang telah ada dan kita juga dapat mendeklarasikan domain khusus yang digunakan untuk mendeklarasikan struktur data yang tidak didefinisikan oleh standar domain. Dengan mendeklarasikan domain dapat mencegah kesalahan logika pada program.
Standar Domain Visual Prolog
Mempunyai standar domain built-in. Kita dapat menggunakan standar domain ketika mendeklarasikan tipe dari argumen suatu predikat. Standar domain sudah dikenal Visual Prolog dan tidak perlu didefinisikan lagi pada section domains.
Section Goal
Secara esensial, section goal sama dengan body dari sebuah aturan (rule) yaitu sederetan sub-sub goal. Perbedaan antara section goal dengan suatu aturan adalah setelah kata kunci goal tidak diikuti tanda :- dan visual prolog secara otomatis mengeksekusi goal ketika program dijalankan.
2.     Section Program Lainnya
Section Facts
Visual Prolog menyediakan section khusus untuk mendeklarasikan fakta di program yang menjadi bagian dari database dinamis yaitu Section Facts. Kata kunci facts untuk memulai section facts. Visual Prolog menyediakan sejumlah predikat built-in yang mempermudah penggunaan section fakta dinamis ini.
Section Contants
Konstanta simbolis dapat digunakan di program Visual Prolog. Untuk itu sebelumnya dideklarasikan terlebih dahulu.

C.      PERTANYAAN DAN TUGAS

a.      Nama mhs yang mengikuti matakuliah Intelejensi Buatan
Program dalam visual prolog:

PREDICATES
nondeterm intelejensi(symbol,symbol)
nondeterm pde(symbol,symbol)
nondeterm so(symbol,symbol)

CLAUSES
intelejensi(irfan,A).
intelejensi(komeng,D).
intelejensi(dati,C).
intelejensi(fatima,B).
intelejensi(maspion,C).

pde(ricky,E).
pde(embang,A).
pde(salmin,D).
pde(vina,B).
pde(sondang,C).
so(pamuji,D).
so(luki,E).
so(sadek,B).
so(yusida,A).
so(eka,A).

GOAL
intelejensi(Orang, _).

Hasil GOAL:





b.     Nama mhs yang lulus
PREDICATES                                                                          Hasil GOAL:
nondeterm intelejensi(symbol,symbol)
nondeterm pde(symbol,symbol)
nondeterm so(symbol,symbol)
lulus(symbol)
tidaklulus(symbol)

CLAUSES
lulus(A).
lulus(B).
lulus(C).
tidaklulus(D).
tidaklulus(E).

intelejensi(irfan,lulus).
intelejensi(komeng,tidaklulus).
intelejensi(dati,lulus).
intelejensi(fatima,lulus).
intelejensi(maspion,lulus).

pde(ricky,tidaklulus).
pde(embang,lulus).
pde(salmin,tidaklulus).                                                        
pde(vina,lulus).
pde(sondang,lulus).

so(pamuji,tidaklulus).
so(luki,tidaklulus).
so(sadek,lulus).
so(yusida,lulus).
so(eka,lulus).

GOAL
intelejensi(Orang,lulus);
pde(Orang,lulus);
so(Orang,lulus).



c.      Nama Mahasiswa yang tidak lulus                                Hasil GOAL:
Dari program prolog yang b, GOAL diganti dengan:
GOAL                                                                                     
intelejensi(Orang,tidaklulus);
pde(Orang,tidaklulus);
so(Orang,tidaklulus).



d.     Seluruh matakuliah yang diajarkan                             Hasil GOAL:
Bagian Predicates ditambah:
matakul(symbol)
Bagian Clauses ditambah:
matakul(intelejensi).
matakul(pde).
matakul(so).
Dan Goal diganti dengan:
GOAL
matakul(Apa).

e.      Seluruh Mahasiswa yang ada
PREDICATES
lulus(symbol)
tidaklulus(symbol)
nondeterm kul(symbol,symbol)

CLAUSES
lulus(A).
lulus(B).                                                                      Hasil GOAL:
lulus(C).                                                                                  
tidaklulus(D).
tidaklulus(E).

kul(irfan,lulus).
kul(komeng,tidaklulus).
kul(dati,lulus).
kul(fatima,lulus).
kul(maspion,lulus).

kul(ricky,tidaklulus).
kul(embang,lulus).
kul(salmin,tidaklulus).
kul(vina,lulus).
kul(sondang,lulus).

kul(pamuji,tidaklulus).
kul(luki,tidaklulus).
kul(sadek,lulus).
kul(yusida,lulus).
kul(eka,lulus).

GOAL
kul(Orang,tidaklulus);
kul(Orang,lulus).

2.       Program Rute Jalan
PREDICATES
jalan(symbol,symbol)
rute(symbol,symbol)
cari(symbol,symbol,symbol)

CLAUSES
jalan(sudirman,uripsumoharjo).
jalan(uripsumoharjo,gejayan).
jalan(uripsumoharjo,adisucipo).
jalan(adisucipto,janti).
jalan(janti,gedongkuning).
jalan(gedongkuning,janti).
jalan(janti,adisucipto).
jalan(adisucipto,uripsumoharjo).
jalan(uripsumoharjo,sudirman).
jalan(gejayan,uripsumoharjo).
jalan(adisucipto,babarsari).
jalan(babarsari,adisucipto).
jalan(adisucipto,prambanan).
jalan(prambanan,adisucipto).
jalan(janti,ringroadselatan).
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,Lewat,Temp2),
write(" Kemudian dari ",Lewat," ke ",Tujuan),nl.

GOAL
cari(babarsari, prambanan, janti).

HASIL GOAL:




D.     PEMBAHASAN
1. Nama mhs yang mengikuti matakuliah Intelejensi Buatan

PREDICATES
Predicates digunakan untuk mendeklarasikan predikat yang ada.
nondeterm intelejensi(symbol,symbol)
berfungsi untuk memberitahu compiler visual prolog bahwa predikat tersebut mempunyai lebih dari satu kemungkinan jawaban. Symbol, symbol yang berada di dalam tanda kurung berfungsi untuk mendeklarasikan intelejensi (sebuah matakul)
nondeterm pde(symbol,symbol)
berfungsi untuk memberitahu compiler visual prolog bahwa predikat tersebut mempunyai lebih dari satu kemungkinan jawaban. Symbol, symbol yang berada di dalam tanda kurung berfungsi untuk mendeklarasikan pde (sebuah matakul).
nondeterm so(symbol,symbol)
berfungsi untuk memberitahu compiler visual prolog bahwa predikat tersebut mempunyai lebih dari satu kemungkinan jawaban. Symbol, symbol yang berada di dalam tanda kurung berfungsi untuk mendeklarasikan so (sebuah matakul)
CLAUSES
Clauses digunakan untuk mendefinisikan predikat. Clauses ini terdiri dari fakta dan aturan. Fakta adalah suatu pernyataan atau kebenaran yang diketahui. Fakta menyatakan hubungan/relasi antara dua obyek atau lebih atau menunjukkan sifat suatu obyek. Aturan digunakan untuk meningkatkan kemampuan / daya nalar program sehingga diperlukan suatu rumusan logika. Penulisan dalam prolog baik fakta maupun aturan harus diakhiri dengan tanda titik.
intelejensi(irfan,A).
Dapat dibaca dengan bahasa natural yaitu “Irfan pada matakuliah intelejensi mendapat nilai A”. intelejensi disini  merupakan sebuah relasi, irfan dan A merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
intelejensi(komeng,D).
Dapat dibaca dengan bahasa natural yaitu “Komeng pada matakuliah intelejensi mendapat nilai D”. intelejensi disini  merupakan sebuah relasi, komeng dan D merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
intelejensi(dati,C).
Dapat dibaca dengan bahasa natural yaitu “Dati pada matakuliah intelejensi mendapat nilai C”. intelejensi disini  merupakan sebuah relasi, dati dan C merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
intelejensi(fatima,B).
Dapat dibaca dengan bahasa natural yaitu “Fatima pada matakuliah intelejensi mendapat nilai B”. intelejensi disini  merupakan sebuah relasi, fatima dan B merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
intelejensi(maspion,C).
Dapat dibaca dengan bahasa natural yaitu “Maspion pada matakuliah intelejensi mendapat nilai C”. intelejensi disini  merupakan sebuah relasi, maspion dan C merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
pde(ricky,E).
Dapat dibaca dengan bahasa natural yaitu “Ricky pada matakuliah PDE mendapat nilai E”. PDE disini  merupakan sebuah relasi, ricky dan E merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
pde(embang,A).
Dapat dibaca dengan bahasa natural yaitu “Embang pada matakuliah PDE mendapat nilai A”. PDE disini  merupakan sebuah relasi, embang dan A merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
pde(salmin,D).
Dapat dibaca dengan bahasa natural yaitu “Salmin pada matakuliah PDE mendapat nilai D”. PDE disini  merupakan sebuah relasi, salmin dan D merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
pde(vina,B).
Dapat dibaca dengan bahasa natural yaitu “Vina pada matakuliah PDE mendapat nilai B”. PDE disini  merupakan sebuah relasi, vina dan B merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
pde(sondang,C).
Dapat dibaca dengan bahasa natural yaitu “Sondang pada matakuliah PDE mendapat nilai C”. PDE disini  merupakan sebuah relasi, sondang dan C merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
so(pamuji,D).
Dapat dibaca dengan bahasa natural yaitu “Pamuji pada matakuliah SO (Sistem Operasi) mendapat nilai D”. SO disini  merupakan sebuah relasi, pamuji dan D merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
so(luki,E).
Dapat dibaca dengan bahasa natural yaitu “Luki pada matakuliah SO (Sistem Operasi) mendapat nilai E”. SO disini  merupakan sebuah relasi, luki dan E merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
so(sadek,B).
Dapat dibaca dengan bahasa natural yaitu “Sadek pada matakuliah SO (Sistem Operasi) mendapat nilai B”. SO disini  merupakan sebuah relasi, sadek dan B merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
so(yusida,A).
Dapat dibaca dengan bahasa natural yaitu “Yusida pada matakuliah SO (Sistem Operasi) mendapat nilai A”. SO disini  merupakan sebuah relasi, yusida dan A merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
so(eka,A).
Dapat dibaca dengan bahasa natural yaitu “Eka pada matakuliah SO (Sistem Operasi) mendapat nilai A”. SO disini  merupakan sebuah relasi, eka dan A merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
GOAL
Goal adalah tempat pertanyaan (query) diberikan atau meminta prolog untuk mencapai “tujuan” (memberi jawaban) yang dikehendaki. Penulisan dalam prolog harus diakhiri dengan tanda titik.
intelejensi(Orang, _).
Tanda garis bawah tunggal merupakan sebuah variabel anonim yang akan mengabaikan nilai-nilai yang tidak dibutuhkan.  Pernyataan dalam GOAL tsb kalau dalam bahasa natural dapat dibaca dengan “Siapa saja orang yang mengambil matakuliah Intelejensi?”

b.     Menampilkan Nama Mahasiswa yang Lulus
PREDICATES
Predicates digunakan untuk mendeklarasikan predikat yang ada.
nondeterm intelejensi(symbol,symbol)
berfungsi untuk memberitahu compiler visual prolog bahwa predikat tersebut mempunyai lebih dari satu kemungkinan jawaban. Symbol, symbol yang berada di dalam tanda kurung berfungsi untuk mendeklarasikan intelejensi (sebuah matakul)
nondeterm pde(symbol,symbol)
berfungsi untuk memberitahu compiler visual prolog bahwa predikat tersebut mempunyai lebih dari satu kemungkinan jawaban. Symbol, symbol yang berada di dalam tanda kurung berfungsi untuk mendeklarasikan pde (sebuah matakul).
nondeterm so(symbol,symbol)
berfungsi untuk memberitahu compiler visual prolog bahwa predikat tersebut mempunyai lebih dari satu kemungkinan jawaban. Symbol, symbol yang berada di dalam tanda kurung berfungsi untuk mendeklarasikan so (sebuah matakul)
lulus(symbol)
Symbol disini akan mendeklarasikan / inisialisasi dari lulus.
tidaklulus(symbol)
Symbol disini akan mendeklarasikan / inisialisasi dari tidaklulus.
CLAUSES
Clauses digunakan untuk mendefinisikan predikat. Clauses ini terdiri dari fakta dan aturan. Fakta adalah suatu pernyataan atau kebenaran yang diketahui. Fakta menyatakan hubungan/relasi antara dua obyek atau lebih atau menunjukkan sifat suatu obyek. Aturan digunakan untuk meningkatkan kemampuan / daya nalar program sehingga diperlukan suatu rumusan logika. Penulisan dalam prolog baik fakta maupun aturan harus diakhiri dengan tanda titik.
lulus(A).
Dapat dibaca dengan bahasa natural yaitu “A maka lulus”. lulus disini  merupakan sebuah relasi, dan A merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
lulus(B).
Dapat dibaca dengan bahasa natural yaitu “B maka lulus”. lulus disini  merupakan sebuah relasi, dan B merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
lulus(C).
Dapat dibaca dengan bahasa natural yaitu “C maka lulus”. lulus disini  merupakan sebuah relasi, dan C merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
tidaklulus(D).
Dapat dibaca dengan bahasa natural yaitu “D maka tidaklulus”. lulus disini  merupakan sebuah relasi, dan D merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.

tidaklulus(E).
Dapat dibaca dengan bahasa natural yaitu “E maka tidaklulus”. lulus disini  merupakan sebuah relasi, dan E merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
intelejensi(irfan,lulus).
Dapat dibaca dengan bahasa natural yaitu “Irfan pada matakuliah Intelejensi, lulus”. intelejensi disini  merupakan sebuah relasi, irfan dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
intelejensi(komeng,tidaklulus).
Dapat dibaca dengan bahasa natural yaitu “Komeng pada matakuliah Intelejensi, tidaklulus”. intelejensi disini  merupakan sebuah relasi, komeng dan tidaklulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
intelejensi(dati,lulus).
Dapat dibaca dengan bahasa natural yaitu “Dati pada matakuliah Intelejensi, lulus”. intelejensi disini  merupakan sebuah relasi, dati dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
intelejensi(fatima,lulus).
Dapat dibaca dengan bahasa natural yaitu “Fatima pada matakuliah Intelejensi, lulus”. intelejensi disini  merupakan sebuah relasi,fatima dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
intelejensi(maspion,lulus).
Dapat dibaca dengan bahasa natural yaitu “Maspion pada matakuliah Intelejensi, lulus”. intelejensi disini  merupakan sebuah relasi, maspion dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
pde(ricky,tidaklulus).
Dapat dibaca dengan bahasa natural yaitu “Ricky pada matakuliah PDE, tidaklulus”. pde disini merupakan sebuah relasi,ricky dan tidaklulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
pde(embang,lulus).
Dapat dibaca dengan bahasa natural yaitu “Embang pada matakuliah PDE, lulus”. pde disini merupakan sebuah relasi, embang dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
pde(salmin,tidaklulus).
Dapat dibaca dengan bahasa natural yaitu “Salmin pada matakuliah PDE, tidaklulus”. pde disini merupakan sebuah relasi, salmin dan tidaklulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
pde(vina,lulus).
Dapat dibaca dengan bahasa natural yaitu “Vina pada matakuliah PDE, lulus”. pde disini merupakan sebuah relasi, vina dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
pde(sondang,lulus).
Dapat dibaca dengan bahasa natural yaitu “Sondang pada matakuliah PDE, lulus”. pde disini merupakan sebuah relasi, sondang dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
so(pamuji,tidaklulus).
Dapat dibaca dengan bahasa natural yaitu “Pamuji pada matakuliah SO, tidaklulus”. pde disini merupakan sebuah relasi, pamuji dan tidaklulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
so(luki,tidaklulus).
Dapat dibaca dengan bahasa natural yaitu “Luki pada matakuliah SO, tidaklulus”. pde disini merupakan sebuah relasi, luki dan tidaklulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
so(sadek,lulus).
Dapat dibaca dengan bahasa natural yaitu “Sadek pada matakuliah SO, lulus”. pde disini merupakan sebuah relasi, sadek dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
so(yusida,lulus).
Dapat dibaca dengan bahasa natural yaitu “Yusida pada matakuliah SO, lulus”. pde disini merupakan sebuah relasi, Yusida dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
so(eka,lulus).
Dapat dibaca dengan bahasa natural yaitu “Eka pada matakuliah SO, lulus”. pde disini merupakan sebuah relasi, eka dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
GOAL
Goal adalah tempat pertanyaan (query) diberikan atau meminta prolog untuk mencapai “tujuan” (memberi jawaban) yang dikehendaki. Penulisan dalam prolog harus diakhiri dengan tanda titik.
intelejensi(Orang,lulus);
Pernyataan dalam GOAL tsb kalau dalam bahasa natural dapat dibaca dengan “Siapa saja orang yang mengambil matakuliah intelejensi dan lulus?” PDE merupakan sebuah relasi, Orang dan lulus merupakan obyek. Tanda titik koma dibelakang tanda kurung merupakan pernyataan “dan”.
pde(Orang,lulus);
Pernyataan dalam GOAL tsb kalau dalam bahasa natural dapat dibaca dengan “Siapa saja orang yang mengambil matakuliah PDE dan lulus?” PDE merupakan sebuah relasi, Orang dan lulus merupakan obyek. Tanda titik koma dibelakang tanda kurung merupakan pernyataan “dan”.
so(Orang,lulus).
Pernyataan dalam GOAL tsb kalau dalam bahasa natural dapat dibaca dengan “Siapa saja orang yang mengambil matakuliah PDE dan lulus?” PDE merupakan sebuah relasi, Orang dan lulus merupakan obyek. Tanda titik dibelakang tanda kurung merupakan pernyataan fakta.

c.      Menampilkan Nama Mahasiswa yang tidak lulus
GOAL
Goal adalah tempat pertanyaan (query) diberikan atau meminta prolog untuk mencapai “tujuan” (memberi jawaban) yang dikehendaki. Penulisan dalam prolog harus diakhiri dengan tanda titik.                                                                       
intelejensi(Orang,tidaklulus);
Pernyataan dalam GOAL tsb kalau dalam bahasa natural dapat dibaca dengan “Siapa saja orang yang mengambil matakuliah intelejensi dan tidaklulus?” PDE merupakan sebuah relasi, Orang dan tidaklulus merupakan obyek. Tanda titik koma dibelakang tanda kurung merupakan pernyataan “dan”.
pde(Orang,tidaklulus);
Pernyataan dalam GOAL tsb kalau dalam bahasa natural dapat dibaca dengan “Siapa saja orang yang mengambil matakuliah PDE dan tidaklulus?” PDE merupakan sebuah relasi, Orang dan tidaklulus merupakan obyek. Tanda titik koma dibelakang tanda kurung merupakan pernyataan “dan”.
so(Orang,tidaklulus).
Pernyataan dalam GOAL tsb kalau dalam bahasa natural dapat dibaca dengan “Siapa saja orang yang mengambil matakuliah PDE dan tidaklulus?” PDE merupakan sebuah relasi, Orang dan tidaklulus merupakan obyek. Tanda titik dibelakang tanda kurung merupakan pernyataan fakta.

d.       Menampilkan Seluruh Matakuliah yang diajarkan
matakul(symbol)
Symbol disini merupakan pendeklarasian dari matakul.
matakul(intelejensi).
Dapat dibaca dengan bahasa natural yaitu “Intelejensi adalah mataku”. Matakul disini  merupakan sebuah relasi, dan intelejensi merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
matakul(pde).
Dapat dibaca dengan bahasa natural yaitu “PDE adalah matakul”. Matakul disini  merupakan sebuah relasi, dan pde merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
matakul(so).
Dapat dibaca dengan bahasa natural yaitu “SO adalah matakul”. Matakul disini  merupakan sebuah relasi, dan so merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
GOAL
Goal adalah tempat pertanyaan (query) diberikan atau meminta prolog untuk mencapai “tujuan” (memberi jawaban) yang dikehendaki. Penulisan dalam prolog harus diakhiri dengan tanda titik.                                                                       
matakul(Apa).
Dapat dibaca dengan bahasa natural yaitu “Apa saja matakul yang ada?”. Matakul disini  merupakan sebuah relasi, dan Apa merupakan sebuah pertanyaan. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.

e.      Seluruh Mahasiswa yang ada
PREDICATES
Predicates digunakan untuk mendeklarasikan predikat yang ada.
lulus(symbol)
Symbol disini akan mendeklarasikan / inisialisasi dari lulus.
tidaklulus(symbol)
Symbol disini akan mendeklarasikan / inisialisasi dari tidaklulus.
nondeterm kul(symbol,symbol)
berfungsi untuk memberitahu compiler visual prolog bahwa predikat tersebut mempunyai lebih dari satu kemungkinan jawaban. Symbol, symbol yang berada di dalam tanda kurung berfungsi untuk mendeklarasikan kul.
CLAUSES
Clauses digunakan untuk mendefinisikan predikat. Clauses ini terdiri dari fakta dan aturan. Fakta adalah suatu pernyataan atau kebenaran yang diketahui. Fakta menyatakan hubungan/relasi antara dua obyek atau lebih atau menunjukkan sifat suatu obyek. Aturan digunakan untuk meningkatkan kemampuan / daya nalar program sehingga diperlukan suatu rumusan logika. Penulisan dalam prolog baik fakta maupun aturan harus diakhiri dengan tanda titik.
lulus(A).
Dapat dibaca dengan bahasa natural yaitu “A maka lulus”. lulus disini  merupakan sebuah relasi, dan A merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
lulus(B).
Dapat dibaca dengan bahasa natural yaitu “B maka lulus”. lulus disini  merupakan sebuah relasi, dan B merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
lulus(C).
Dapat dibaca dengan bahasa natural yaitu “C maka lulus”. lulus disini  merupakan sebuah relasi, dan C merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
tidaklulus(D).
Dapat dibaca dengan bahasa natural yaitu “D maka tidaklulus”. lulus disini  merupakan sebuah relasi, dan D merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
tidaklulus(E).
Dapat dibaca dengan bahasa natural yaitu “E maka tidaklulus”. lulus disini  merupakan sebuah relasi, dan E merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(irfan,lulus).
Dapat dibaca dengan bahasa natural yaitu “Irfan dalam kuliahnya, lulus”. Kul disini  merupakan sebuah relasi, irfan dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(komeng,tidaklulus).
Dapat dibaca dengan bahasa natural yaitu “Komeng dalam kuliahnya, tidaklulus”. kul disini  merupakan sebuah relasi, Komeng dan tidaklulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(dati,lulus).
Dapat dibaca dengan bahasa natural yaitu “Dati dalam kuliahnya, lulus”. Kul disini  merupakan sebuah relasi, Dati dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(fatima,lulus).
Dapat dibaca dengan bahasa natural yaitu “Fatima dalam kuliahnya, lulus”. Kul disini  merupakan sebuah relasi, fatima dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(maspion,lulus).
Dapat dibaca dengan bahasa natural yaitu “Maspion dalam kuliahnya, lulus”. Kul disini  merupakan sebuah relasi, maspion dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(ricky,tidaklulus).
Dapat dibaca dengan bahasa natural yaitu “Ricky dalam kuliahnya, tidaklulus”. kul disini  merupakan sebuah relasi, ricky dan tidaklulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(embang,lulus).
Dapat dibaca dengan bahasa natural yaitu “Embang dalam kuliahnya, lulus”. Kul disini  merupakan sebuah relasi, embang dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(salmin,tidaklulus).
Dapat dibaca dengan bahasa natural yaitu “Salmin dalam kuliahnya, tidaklulus”. kul disini  merupakan sebuah relasi, salmin dan tidaklulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(vina,lulus).
Dapat dibaca dengan bahasa natural yaitu “Vina dalam kuliahnya, lulus”. Kul disini  merupakan sebuah relasi, vina dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(sondang,lulus).
Dapat dibaca dengan bahasa natural yaitu “Sondang dalam kuliahnya, lulus”. Kul disini  merupakan sebuah relasi, sondang dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(pamuji,tidaklulus).
Dapat dibaca dengan bahasa natural yaitu “Pamuji dalam kuliahnya, tidaklulus”. kul disini  merupakan sebuah relasi, pamuji dan tidaklulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(luki,tidaklulus).
Dapat dibaca dengan bahasa natural yaitu “Luki dalam kuliahnya, tidaklulus”. kul disini  merupakan sebuah relasi, luki dan tidaklulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(sadek,lulus).
Dapat dibaca dengan bahasa natural yaitu “Sadek dalam kuliahnya, lulus”. Kul disini  merupakan sebuah relasi, sadek dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(yusida,lulus).
Dapat dibaca dengan bahasa natural yaitu “Yusida dalam kuliahnya, lulus”. Kul disini  merupakan sebuah relasi, yusida dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(eka,lulus).
Dapat dibaca dengan bahasa natural yaitu “Eka dalam kuliahnya, lulus”. Kul disini  merupakan sebuah relasi, eka dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
GOAL
Goal adalah tempat pertanyaan (query) diberikan atau meminta prolog untuk mencapai “tujuan” (memberi jawaban) yang dikehendaki. Penulisan dalam prolog harus diakhiri dengan tanda titik.                                                                       
kul(Orang,tidaklulus);
Dapat dibaca dengan bahasa natural yaitu “Siapakah orang yang kuliah tidak lulus?”. Kul disini  merupakan sebuah relasi, orang dan tidaklulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.
kul(Orang,lulus).
Dapat dibaca dengan bahasa natural yaitu “Siapakah orang yang kuliah dan lulus?”. Kul disini  merupakan sebuah relasi, orang dan lulus merupakan sebuah object. Tanda titik dibelakang tanda kurung merupakan sebuah fakta.


2.      Program Rute Jalan
PREDICATES
Predicates digunakan untuk mendeklarasikan predikat yang ada.
jalan(symbol,symbol)
Symbol disini digunakan untuk pendeklarasian dari jalan.
rute(symbol,symbol)
Symbol disini digunakan untuk pendeklarasian dari rute.
cari(symbol,symbol,symbol)
Symbol disini digunakan untuk pendeklarasian dari cari.
CLAUSES
Clauses digunakan untuk mendefinisikan predikat. Clauses ini terdiri dari fakta dan aturan. Fakta adalah suatu pernyataan atau kebenaran yang diketahui. Fakta menyatakan hubungan/relasi antara dua obyek atau lebih atau menunjukkan sifat suatu obyek. Aturan digunakan untuk meningkatkan kemampuan / daya nalar program sehingga diperlukan suatu rumusan logika. Penulisan dalam prolog baik fakta maupun aturan harus diakhiri dengan tanda titik.
jalan(sudirman,uripsumoharjo).
Dapat dibaca dengan bahasa natural yaitu “Sudirman ke jalan Uripsumoharjo”. Jalan merupakan sebuah relasi, sudirman dan uripsumoharjo merupakan object.
jalan(uripsumoharjo,gejayan).
Dapat dibaca dengan bahasa natural yaitu “Uripsumoharjo ke jalan Gejayan”. Jalan merupakan sebuah relasi, uripsumoharjo dan gejayan uripsumoharjo merupakan object.
jalan(uripsumoharjo,adisucipo).
Dapat dibaca dengan bahasa natural yaitu “Uripsumoharjo ke jalan adisucipto”. Jalan merupakan sebuah relasi, uripsumoharjo dan adisucipto merupakan object.
jalan(adisucipto,janti).
Dapat dibaca dengan bahasa natural yaitu “adisucipto ke jalan Janti”. Jalan merupakan sebuah relasi, adisucipto dan janti merupakan object.
jalan(janti,gedongkuning).
Dapat dibaca dengan bahasa natural yaitu “Janti ke jalan Gedongkuning”. Jalan merupakan sebuah relasi, Janti dan Gedongkuning merupakan object.
jalan(gedongkuning,janti).
Dapat dibaca dengan bahasa natural yaitu “Gedongkuning ke jalan Janti”. Jalan merupakan sebuah relasi, gedongkuning dan janti merupakan object.
jalan(janti,adisucipto).
Dapat dibaca dengan bahasa natural yaitu “Janti ke jalan adisucipto”. Jalan merupakan sebuah relasi, janti dan adisucipto merupakan object.
jalan(adisucipto,uripsumoharjo).
Dapat dibaca dengan bahasa natural yaitu “adisucipto ke jalan uripsumoharjo”. Jalan merupakan sebuah relasi, adisucipto dan uripsumoharjo merupakan object.
jalan(uripsumoharjo,sudirman).
Dapat dibaca dengan bahasa natural yaitu “Uripsumoharjo ke jalan sudirman”. Jalan merupakan sebuah relasi, uripsumoharjo dan sudirman merupakan object.
jalan(gejayan,uripsumoharjo).
Dapat dibaca dengan bahasa natural yaitu “Gejayan ke jalan uripsumoharjo”. Jalan merupakan sebuah relasi, Gejayan dan uripsumoharjo merupakan object.


jalan(adisucipto,babarsari).
Dapat dibaca dengan bahasa natural yaitu “Adisucipto ke jalan Babarsari”. Jalan merupakan sebuah relasi, adisucipto dan Babarsari merupakan object.
jalan(babarsari,adisucipto).
Dapat dibaca dengan bahasa natural yaitu “babarsari ke jalan adisucipto”. Jalan merupakan sebuah relasi,babarsari dan adisucipto merupakan object.
jalan(adisucipto,prambanan).
Dapat dibaca dengan bahasa natural yaitu “Adisucipto ke jalan Prambanan”. Jalan merupakan sebuah relasi, adisucipto dan prambanan merupakan object.
jalan(prambanan,adisucipto).
Dapat dibaca dengan bahasa natural yaitu “Prambanan ke jalan adisucipto”. Jalan merupakan sebuah relasi,prambanan dan adisucipto merupakan object.
jalan(janti,ringroadselatan).
Dapat dibaca dengan bahasa natural yaitu “Janti ke jalan ringroadselatan”. Jalan merupakan sebuah relasi, Janti dan ringroadselatan merupakan object.
jalan(ringroadselatan,janti).
Dapat dibaca dengan bahasa natural yaitu “ringroadselatan ke jalan janti”. Jalan merupakan sebuah relasi, ringroadselatan dan janti merupakan object.
rute(Awal,Tujuan) :-
Rute merupakan sebuah relasi, Awal dan Tujuan merupakan obyek. Dan tanda “:-“ merupakan pernyataan jika.
cari(Awal,Tujuan,Tujuan).
Cari merupakan sebuah relasi. Awal, tujuan, dan tujuan merupakan obyek yang akan di deklarasikan ke cari.
cari(Awal,Tujuan,_) :-
Cari merupakan sebuah relasi. Awal dan tujuan merupakan obyek yang akan di deklarasikan ke cari. Dan tanda “:-“ merupakan pernyataan jika.
jalan(Awal,Tujuan),
Jalan merupakan sebuah relasi. Awal dan tujuan merupakan obyek yang akan di deklarasikan ke cari. Dan tanda “,“ merupakan pernyataan dan.
write("Pergi dari ",Awal," ke ",Tujuan),nl.
Write merupakan perintah untuk pengawalan tulisan. Sedangkan tulisan yang berada diantara dua tanda petik tsb adalah tulisan yang akan tampil, kata Awal disitu akan mendeklarasikan dari  obyek awal. Begitu juga dengan tujuan.
cari(Awal,Tujuan,Temp):-
Cari merupakan sebuah relasi. Awal, tujuan, temp merupakan obyek yang akan di deklarasikan ke cari. Dan tanda “:-“ merupakan pernyataan jika.
Temp2=Tujuan,
jalan(Lewat,Tujuan),
Jalan merupakan sebuah relasi. Awal dan tujuan merupakan obyek yang akan di deklarasikan ke cari. Dan tanda “,“ merupakan pernyataan dan.
Lewat<>Temp,
cari(Awal,Lewat,Temp2),
write(" Kemudian dari ",Lewat," ke ",Tujuan),nl.
Write merupakan perintah untuk pengawalan tulisan. Sedangkan tulisan yang berada diantara dua tanda petik tsb adalah tulisan yang akan tampil, kata Awal disitu akan mendeklarasikan dari  obyek awal. Begitu juga dengan tujuan.



GOAL
Goal adalah tempat pertanyaan (query) diberikan atau meminta prolog untuk mencapai “tujuan” (memberi jawaban) yang dikehendaki. Penulisan dalam prolog harus diakhiri dengan tanda titik.
cari(babarsari, prambanan, janti).


E.      Kesimpulan
Dalam Visual Prolog memperbolehkan untuk mendeklarasikan beberapa domain, predikat dan klausa menjadi global. Caranya dengan menset secara terpisah section global dinamis.
            Rule pada prolog ketika kebenaran sebuah fakta tergantung pada kesuksesan dari satu atau lebih fakta yang lain. Aturan terdiri dari 2 bagian yaitu Head dan Body.

F.      LAMPIRAN
Listing ( Terlampir ).           

Tidak ada komentar:

Posting Komentar