26
|
LAPORAN PRAKTIKUM
KECERDASAN
BUATAN
Modul
Visual Prolog
Disusun
Oleh :
HERI PURNAMA
125410101
TI 04
UPT LABORATORIUM
Sekolah Tinggi Manajemen Informatika dan Komputer
AKAKOM
Yogyakarta
2013
DARTAR
ISI
Judul.……………………………………………………………………………………….. 01
Daftar isi..………………………………………………………………………………… 02
Bab 1
: Pendahuluan………………………………………………………………. 03
A.Tujuan……………………………………………………………………….…….. 03
B.Dasar Teori…………………………………………………………………….…. 03
Bab 2
: Hasil Praktikum…………………………………………………………… 04
Bab 3 : Analisa Hasil Praktikum……………………………………………….. 05
A.Listing
Program 1………………………………………………………………….…….. 05
. B.Listing Program 2………………………………………………………………………… 06
C.Listing Program 3……………………..………………………………………………… 06
D.Listing
Program 4………………………………….…………………………………….
06
E.Listing
Program 5…………………………………….…………………………………..
07
F.Listing
Program 6……………….………………………………………………………..
07
G.Listing
Program 7………………………………………………………………………..
08
H.Listing
Program 8………………………………………………………………………..
08
Bab 4
: Kesimpulan………………………………………………………………… 09
Bab 5
: Tugas………………………………………………………………………….. 11
Bab 1
Pendahuluan
A.Tujuan
Mahasiswa mampu :
1.
Mengerti dan dapat menerapkan section-section
dasar yang ada di Visual Prolog seperti PREDICATES, DOMAINS, CLAUSES, dan GOAL.
2.
Mengetahui section-section lainnya yang ada di
Visual Prolog seperti FACTS, CONSTANT, GLOBAL.
3.
Mengerti tentang Compiler Directives.
4.
Mengerti dan dapat menerapkan aritas jamak (multiple
arity) pada Visual Prolog.
5.
Mengerti konsep aturan (rule) pada Prolog
dan perbedaannya dengan bahasa lain.
6.
Mengerti
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.
v 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.
v Section Predicates
Merupakan predikat yang harus dideklarasikan dahulu sebelum sectioon
clauses. Kalau tidak, Visual Prolog tidak akan mengenal predikat yang kita
tuliskan tersebut.
v 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.
·
Programer dapat mendeklarasi
domain khusus yang digunakan untuk mendeklarasikan struktur data yang tidak
didefinisikan oleh standar domain.
v SectionGoal
Secara esensial, section goal sama dengan body dari sebuah aturan (rule),
yaitu sederatan sub-sub goal.
b)
Section program lainya
adalah:
v
Section facts
v
Section contans
v
Global
c)
Compiler drectifes
d)
Aritas jamak (multiple arity)
e) Sintak Aturan (rule syntax)
Bab 3
Analisa Hasil Praktikum
A.LISTING PROGAM 1
DOMAINS
kali,jumlah = integer
Ø
Pada sesi ini dsebut seksi domains
diamana untuk vaiabel kali dan jumlah mempunyai tipe integer.
PREDICATES
tambahkan(jumlah,jumlah,jumlah)
kalikan(kali,kali,kali)
Ø
Bagian baris diatas merupakan bagian variabel-variabel
pendeklarasian,yang mana untuk variable tambahkan mempunyai tipe integer yang
dideklasikan pada doamains.dan untuk variable kalikan juga dideklarasikan pada
domains juga.
CLAUSES
tambahkan(X,Y,Jumlah) :-
Jumlah=X+Y.
kalikan(X,Y,Jumlah) :-
Kali=X*Y.
Ø 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.Simbol( ,) dapat dibaca
dengan “dan” dan pada akhir bagian clauses ini harus
diakhiri tanda titik (.).
GOAL
tambahkan(32,54,Jumlah).
Ø Goal
diatas bertuuan untuk mengguji berapakah hasil dari penjumlahan dari 32 dengan
54.
RUNNING PROGRAM
Ø Dari
uji goal diatas ternyata menampilkan
hasilnya adalah dengan jumlah 86 dan hasilnya adalah tepat.
B.LISTING PROGAM 2
GOAL
kalikan(32,54,Kali).
Ø
Pada praktek yang kedua akan menguji
hasil kali dari 32 dan 54.maka kita hanya perlu mengganti goal yang ada saja
seperti yang tertampil pada program diatas.
RUNNING PROGRAM
Ø Ini
adalah hasil dari uji goal diatas dengan hasil yakni 1728.
C.LISTING PROGAM 3
GOAL
kalikan(13,25,Kali).
Ø Pada
uji goal yang ketiga hanya perlu menganti goal yang ada pada program.pada goal
ini kita akan mengguji hasil kali dari 13 dan 25.
RUNNING PROGRAM
Ø Ini
adalah hasil output dari program diatas yang mana dengan hasil 325.
D.LISTING PROGAM 4
DOMAINS
merek,warna =
symbol
usia = byte
harga, kilometer
= ulong
Ø
Baris-baris diatas adalah baris
pendeklarasian variable dari tipe yang ada yang mana untuk merek dan warna
dengan tipe symbol,usia dengan byte dan harga dan kilometer dengan tipe ulong.
PREDICATES
nondeterm
mobil(merek,kilometer,usia,warna,harga)
Ø Baris
diatas adalah baris pendeklarasian variable yang mana variable mobil mempunyai
tipe yang telah deklarasikan secara detail pada bagian domains.
Ø
Nondeterm digunakan karena variable
mobil mempunyai nilai atau goal lebih dari satu.
CLAUSES
mobil(atoz,130000,3,merah,120000000).
mobil(karimun,90000,4,silver,100000000).
mobil(ceria,8000,1,hitam,75000000).
Ø Scrip proogram diatas merupakanbagiandari
clauses yaituberupaaturan. 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 (.).
GOAL
mobil(karimun,
90000,4, silver, 100000000).
Ø
Goal diatas ingin mengguji apakan
variable mobil mempunyai criteria merk karimun,kilometer 90000 usia 4th
warna silver dengan harga 1000000000.
RUNNING PROGRAM
Ø Dan
dari goal diatas menampilkan bahwa
hasilya adalah yes atau benar dari pernyataan goal yang ada.
E.LISTING PROGAM 5
GOAL
mobil(Merk,Kilometer,Usia,Warna,Harga), Harga
< 100000000.
Ø
Pada praktek yang kedua ini kita akan
mengguji mobil apa yang mempunyai harga kurang dari 100000000.Untuk melakukan
pengujian tersebut cukup mengganti goal yang ada saja dengan skrip yang ada
pada diatas.
RUNNING PROGRAM
Ø Dan
dari hasil goal yang ada maka akan muncul hasil goal yang seperti diatas,dan
ternyata mobil yang mempunyai harga kurang dari 1000000000 adalah mobil dengan
mer ceria
F.LISTING PROGAM 6
PREDICATES
nondeterm
suka(symbol,symbol)
Ø
Pada bagian baris diatas adalah baris
untuk pendeklarasian variable suka
dengan tipe symbol.kata nondeterm dipakakai karena vaiabel suka mempunyai nilai
lebih dari satu.
CLAUSES
suka(asep,membaca).
suka(asari,computers).
suka(nunung,bulutangkis).
suka(vida,bulutangkis).
suka(astana,renang).
suka(astana,membaca).
Ø Skrip-skrip diatas adalah fakta fakta yang
ada,dimana mempunyai 6 fakta yang ada contoh: suka(asep,membaca) dapat dibaca
bahwa aseo suka dengan membaca.
GOAL
suka(Orang,
membaca),
suka(Orang,
renang).
Ø
Goal diatas untuk mengguji siapakah
yang orang orang yang mempunyai kesukaan membaca dan dan orang yang mempunyai
kesukaan renang.
RUNNING PROGRAM
Ø
Dan dari hasil uji diatas yang
mempunyai keukaan renang dan membaca hanya satu orang yakni astana
G.LISTING PROGAM 7
GOAL
suka(Orang,
bulutangkis).
Ø
Pada penggujian yang kedua adalah
ingin mengguji siapa saja yang mempunyai kesukaan bulutangkis dan dari progam
cukup mengganti goalnya saja seperti skrip diatas.
RUNNING PROGRAM
Ø
Dari hasil pengujian diatas orang yang
mempunyai kesukaan bulutangkid adalah nunung dan vida,ini berdasarkan
fakta-fakta yang ada.
G.LISTING PROGAM 8
GOAL
suka(vida,
bulutangkis),
suka(astana,computers).
Ø
Pada praktek yan ini ingin mengguji
apakah vida mempunyai kesukaan bulutangkis dan astana mempunyai kesukaan
computers.
RUNNING PROGRAM
Ø
Dari hasil pengujian diatas satu orang
tidak benar dengan pernyataan diatas yakni dengan nama astana.Maka hasinya
mempunyai keuaran no atau tidak.
Bab 4
Kesimpulan
Dari Program yang dijalan dalam Visual Prolog diatas saya dapat menggambil
kesimpulan bahwa:
1.
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)
2.
PREDICATES (PREDIKAT)
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 dengan tanda kurung tutup,Didalam Predikat terdiri dari Nama,Argumen
predikat.
Nama
predikat harus dimulai dengan huruf
diikuti dengan serangkaian huruf, angka dan atau garis bawah (underscore).
Walaupun bisa dimulai huruf besar, namun sangat direkomendasikan untuk memakai
huruf kecil diawal nama predikat (beberapa versi Prolog yang lain tidak
memperbolehkan nama predikat diawali huruf besar). Panjang nama predikat bisa
sampai 250 karakter
Argumen
predikat harus yang sudah dikenal
oleh domain Visual Prolog. Suatu domain bisa merupakan domain standar atau bisa
juga domain yang sudah dideklarasikan pada section domains.
3.
CLAUSES (KLAUSA)
Section clauses merupakan section
yang paling penting pada program Visual Prolog. Pada section inilah kita
meletakkan fakta dan aturan. Ketika mencari jawaban, Visual Prolog akan mencari
dari bagian paling atas dari section clauses, melihat setiap fakta dan aturan
untuk mendapat jawaban benar, hingga ke bagian paling bawah dari section ini
4.
GOAL (AKHIR)
section goal secara essensial
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
5.
Kata nondeterm yang
artinya untuk
memberitahu ke compiler Visual Prolog bahwa predikat tersebut mempunyai lebih
dari satu kemungkinan jawaban (non-deterministik).
6.
Visual Prolog mempunyai struktur dasar sebagai
berikut:
DOMAINS
/*------------------------
deklarasi domain
--------------------------*/
PREDICATES
/*------------------------
deklarasi predikat
--------------------------*/
CLAUSES
/*-------------------------------
clauses (fakta dan aturan)
---------------------------------*/
GOAL
/*------------------------
subgoal_1,
subgoal_2,
...,
subgoal_N.
--------------------------*/
Bab 5
TUGAS
1). .A.nama mahasiswa yang mengikuti
mata kuliah intelejensi buatan:
LISTING PROGRAM
PREDICATES
nondeterm mahasiswa(symbol, symbol)
nondeterm mahasiswa_matkul(symbol,symbol)
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").
mahasiswa_matkul("Irfan","IntelejensiBuatan").
mahasiswa_matkul("Komeng","IntelejensiBuatan").
mahasiswa_matkul("Dati","IntelejensiBuatan").
mahasiswa_matkul("Fatima","IntelejensiBuatan").
mahasiswa_matkul("Maspion","IntelejensiBuatan").
mahasiswa_matkul("Ricky","PDE").
mahasiswa_matkul("Embang","PDE").
mahasiswa_matkul("Salmin","PDE").
mahasiswa_matkul("Vina","PDE").
mahasiswa_matkul("Sondang","PDE").
mahasiswa_matkul("Pamuji","SistemOperasi").
mahasiswa_matkul("Luki","SistemOperasi").
mahasiswa_matkul("Sadek","SistemOperasi").
mahasiswa_matkul("Yusida","SistemOperasi").
mahasiswa_matkul("Eka","SistemOperasi").
GOAL
mahasiswa_matkul(Siapa,"IntelejensiBuatan").
Running Program:
B.Nama mahasiwa yang tidak lulus.
LISTING PROGRAM
a)
Dengan syarat menambahksn predicat dibawah ini :
nondetermmahasiswa_tidak_lulus(symbol)
b)
Pada CLAUSES kita tambahkan
mahasiswa_tidak_lulus(Nama):-
mahasiswa(Nama, Nilai), Nilai > "C".
c)
Pada GOAL kita tambahkan
mahasiswa_tidak_lulus(X).
RUNNING PROGRAM
C.Nama mahasiswa yang lulus.
LISTING PROGRAM
a)
Dengan syarat menambahksn predicat dibawah ini :
nondetermmahasiswa_lulus(symbol)
b)
Pada CLAUSES kita tambahkan
mahasiswa_lulus(Nama):-
mahasiswa(Nama, Nilai), Nilai < "C".
c)
Pada GOAL kita ganti
mahasiswa_lulus(X).
RUNNING PROGRAM
D.Seluruh nama matakuliah yang
diajarkan.
·
Cukup
mengganti goal dengan:
LISTING PROGRAM
GOAL
mahasiswa_matkul(_,Apa)
RUNNING PROGRAM:
E.Seluruh nama mahasiswa yang ada.
·
Cukup
mengganti goal dengan:
LISTING PROGRAM
GOAL
mahasiswa(Siapa,_).
RUNNING PROGRAM:
2).Membuat Goal dan menguji hasilnya :
LISTING
PROGRAM
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).
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 (prambanan,adisucipto).
RUNNING PROGRAM
·
Dari hasil
goal diatas dapat dijelaskan bahwa kita ingin mengguji rute dari prambanan ke
adisucipto?dan ternyata hasilnya adalah “yes” berarti rute tersebut benar
adanya.Dan tidak dari aturan serta fakta fakta yang ada.
salt likit
ReplyDeletesalt likit
dr mood likit
big boss likit
dl likit
dark likit
5AM8Rİ