LAPORAN PRAKTIKUM
KECERDASAN
BUATAN
Modul 1
LINGKUNGAN VISUAL PROLOG
(VISUAL PROLOG
ENVIRONMENT,VPE)
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…………………………………………………………… 05
Bab 3 : Analisa Hasil
Praktikum………………………………………………. 07
A.Praktikum 1………………………………………………………………………………. 07
B.Praktikum 2………………………………………………………………………………. 09
Bab 4
: Kesimpulan………………………………………………………………… 13
Bab 5
: Tugas………………………………………………………………………….. 14
Bab 1
Pendahuluan
A.Tujuan
Mahasiswa mampu :
1.
Mengetahui cara
memulai program VPE.
2.
Dapat membuat
program menggunakan jendela editor VPE.
3.
Dapat menjalankan
dan menguji program pada VPE.
4.
Dapat membuka
file dari disk.
5.
Mengetahui (jika)
adanya kesalahan dan di baris mana pada program kesalahan itu terjadi
B.
DASAR
TEORI
1.
Visual
Prolog Environment (VPE)
VPE didesain agar seorang
programmer dapat dengan mudah, nyaman dan cepat dalam membangun, menguji dan
memodifikasi suatu aplikasi atau program yang ditulis dalam Visual Prolog. VPE
memiliki beberapa varian sehingga mendukung untuk digunakan di beberapa
platform sistem operasi seperti MS-DOS, MS Windows 3.1, MS Windows 95, MS
Windows NT, Win-OS/2, atau OS/2 PM, yang digunakan pada platform prosesor 16
bit ataupun prosesor 32 bit dari keluarga prosesor Intelâ 80x86 ataupun kompatibelnya seperti prosesor AMDâ.
Pengguna VPE diasumsikan
mempunyai pengalaman dan pengetahuan dalam menggunakan sistem GUI (Graphical
User Interface), seperti menggunakan menu, menutup, meminimize, memaximize
ataupun meresize suatu jendela (window), meloading file dari jendela
File Open dialog, mengklik toolbar dan lain-lain. Jika praktikan belum punya
pengetahuan ini, praktikan dapat mempelajari dari literatur yang berkaitan
dengan sistem operasi terkait, seperti buku cara menggunakan MS Windows 95 atau
yang lainnya.
- Menjalankan VPE
Sebelum menjalankan VPE,
tentu saja, diasumsikan program VPE sudah terinstall di komputer yang
digunakan. Program instalasi akan membuat sebuah program group yang di dalamnya
terdapat icon yang digunakan untuk menjalankan VPE, yaitu dengan cara mengklik
icon tersebut. Namun ada banyak cara untuk menjalankan VPE, seperti, dengan
menggunakan Windows Explorer, men-double klik file VIP.EXE di direktori
BIN\WIN\16 untuk platform 16 bit atau direktori BIN\WIN\32 untuk platform 32
bit yang direktori tersebut terletak di bawah direktori utama VIP.
Jika Visual Prolog telah
pernah membuka suatu project (dengan ekstensi .VPR) terakhir kali dan VPE
ditutup, maka secara otomatis akan membuka project tersebut ketika VPE
dijalankan kembali.
- Membuka jendela editor (editor
window)
Untuk menciptakan jendela
editor yang baru, praktikan dapat menggunakan menu perintah File | New.
Setelah itu akan muncul jendela editor baru dengan judul “NONAME”. Editor ini layaknya seperti editor teks
standar lainnya, seperti NOTEPAD yang dimiliki oleh MS Windows. Praktikan dapat
menggunakan tombol kursor (tanda panah atas, bawah, kiri dan kanan) dan mouse
untuk menggerakkan kursor seperti layaknya editor lain. Juga editor ini
mendukung operasi cut, copy and paste, undo/redo yang diaktifkan dari
menu Edit atau melalui penekanan tombol akselerator yang dapat dilihat
pada menu Edit.
Untuk lebih mendalami editor
ini lebih jauh praktikan dapat membaca dari manual Visual Development
Environment (VDE) pada file VDE.DOC di direktori DOC yang terletak di bawah
direktori utama VIP.
Bab 2
Hasil
Praktikum
PROGRAM 01:
PREDICATES
putra
(STRING,STRING)
saudara_perempuan
(STRING,STRING)
saudara_laki
(STRING,STRING)
menikah
(STRING,STRING)
ayah (STRING
ayah,STRINGputra)
kakek (STRING
kakek,STRINGcucu)
nondetermipar_perempuan
(STRING,STRING)
CLAUSES
putra ("Ikhsan","Bentang").
saudara_perempuan
("Dini","Dina").
saudara_laki
("Adi","Lintang").
menikah
("Ikhsan","Dini").
menikah
("Lintang","Surga").
ayah(A,B)
:-putra(B,A).
kakek(A,B)
:-ayah(A,C), ayah(C,B).
ipar_perempuan(A,B)
:-menikah(A,C), saudara_perempuan(C,B).
ipar_perempuan(A,B)
:-saudara_laki(A,C), menikah(C,B).
GOAL
ipar_perempuan
("Ikhsan",X).
RUNNING PROGRAM:
PROGRAM 02:
PREDICATES
putra (STRING,STRING)
saudara_perempuan (STRING,STRING)
saudara_laki (STRING,STRING)
menikah (STRING,STRING)
ayah (STRING ayah,STRING putra)
kakek (STRING kakek,STRING cucu)
nondeterm ipar_perempuan (STRING,STRING)
CLAUSES
putra ("Ikhsan","Bentang").
saudara_perempuan ("Dini","Dina").
saudara_laki ("Adi","Lintang").
menikah ("Ikhsan","Dini").
menikah ("Lintang","Surga").
ayah(A,B) :-putra(B,A).
kakek(A,B) :-ayah(A,C), ayah(C,B).
ipar_perempuan(A,B) :-menikah(A,C), saudara_perempuan(C,B).
ipar_perempuan(A,B) :-saudara_laki(A,C), menikah(C,B).
GOAL
ipar_perempuan ("Adi",Y).
RUNNING PROGRAM:
Bab 3
Analisa Hasil Praktikum
A.PROGRAM 01:
PREDICATES
Ø Section Predicates merupakan section untuk menunjukkan relasi
atau menunjukkan symbol-simbol.
Ø 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,Dan tidak seperti section clauses, deklarasi predikati
tidak perlu diakhiri tanda titik.
Ø 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)
Ø
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
putra (STRING,STRING)
Ø
Ini adalah suatu deklarasi predikat dengan nama Predikat putra dengan tipe Predikat yakni
STRING.(STRING,STRING)dibaca STRING dan STRING.
saudara_perempuan
(STRING,STRING)
Ø
Ini adalah suatu deklarasi predikat 2 dengan nama Predikat saudara_perempuan dengan tipe Predikat
yakni STRING.(STRING,STRING) dibaca STRING dan STRING.
saudara_laki (STRING,STRING)
Ø
Ini adalah suatu deklarasi predikat 3 dengan nama Predikat saudara_laki dengan tipe Predikat yakni
STRING. (STRING,STRING)dibaca STRING dan STRING.
menikah (STRING,STRING)
Ø Ini adalah suatu deklarasi predikat 4 dengan nama
Predikat menikah dengan tipe
Predikat yakni STRING.(STRING,STRING)dibaca STRING dan
STRING.
ayah (STRING ayah,STRING putra)
Ø
Ini adalah suatu deklarasi predikat dengan nama Predikat ayah dengan tipe Predikat yakni STRING.(STRING ayah,STRING putra)dibaca nama predikat ayah dengan tipe STRING dan nama predikat putra dengan tipe STRING.
kakek (STRING kakek,STRING cucu)
Ø
Ini adalah suatu deklarasi predikat dengan nama Predikat kakek dengan tipe Predikat yakni
STRING.(STRING kakek,STRING
cucu)dibaca nama predikat kakek dengan tipe STRING dan nama predikat cucu dengan tipe STRING.
nondeterm ipar_perempuan
(STRING,STRING)
Ø
Kata nondeterm untuk memberitahu ke
compiler Visual Prolog bahwa predikat tersebut mempunyai lebih dari satu
kemungkinan jawaban (non-deterministik).Secara default Visual Prolog
akan menganggap predikat yang ada di section predicates sebagai
deterministik (kecuali pada section facts, merupakan kebalikannya).
Ø Kesalahan karena tidak memberikan keyword nondeterm pada predikat yang nondeterministik, pada Visual
Prolog 5.1 hanya akan diberi peringatan (warning) tetapi eksekusi
program tetap diteruskan dan memberikan solusi yang diinginkan.
CLAUSES
Ø 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.
putra
("Ikhsan","Bentang").
Ø
Ini adalah section clauses yang paling atas sendiri yakni putra ("Ikhsan","Bentang").Dibaca Ikhsan adalah putra Bentang.
saudara_perempuan
("Dini","Dina").
Ø
Ini adalah section clauses yang kedua yakni saudara_perempuan ("Dini","Dina").Dibaca Dini adalah saudara perempuan Dina.
saudara_laki
("Adi","Lintang").
Ø
Ini adalah section clauses yang ketiga yakni saudara_laki ("Adi","Lintang").Dibaca Adi adalah saudara laki Lintang.
menikah
("Ikhsan","Dini").
Ø
Ini adalah section clauses yang keempat yakni menikah ("Ikhsan","Dini").Dibaca Ikhsan menikah dengan Dini.
menikah
("Lintang","Surga").
Ø
Ini adalah section clauses yang kelima yakni menikah ("Lintang","Surga").Dibaca Lintang menikah dengan Surga.
ayah(A,B) :-putra(B,A).
Ø Ini adalah section
clauses yang dimana bertuliskan ayah(A,B) :-putra(B,A).
Yang mana dibaca Jika B putra A maka A ayah B.
kakek(A,B) :-ayah(A,C),
ayah(C,B).
Ø Ini adalah section
clauses yakni kakek(A,B) :-ayah(A,C),
ayah(C,B). Dibaca Jika A ayah C dan C ayah B maka A kakek B.
ipar_perempuan(A,B)
:-menikah(A,C), saudara_perempuan(C,B).
Ø
Ini adalah section clauses yakni ipar_perempuan(A,B)
:-menikah(A,C), saudara_perempuan(C,B).Dibaca Jika
A menikah dengan C dan C saudara perempuan B maka A ipar Perempuan B.
ipar_perempuan(A,B)
:-saudara_laki(A,C), menikah(C,B).
Ø
Ini adalah section clauses yakni ipar_perempuan(A,B)
:-saudara_laki(A,C), menikah(C,B). Dibaca Jika A saudara laki C dan C menikah dengan B maka A ipar perempuan B.
GOAL
Ø Ini adalah section goal yang 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.
ipar_perempuan
("Ikhsan",X).
Ø Ini adalah deklarasi goal dari program tersebut yakni
dengan deklarasi ipar_perempuan
("Ikhsan",X).Dibaca Ikhsan adalah ipar
perempuan dari X ?.
RUNNING PROGRAM:
Ø Dan ternyata berdasarkan goal yang tadi dideklarasikan dalam
program menyatakan bahwa X = Dina.Berarti Ikhsan adalah ipar perempuan dari
Dina.
B.PROGRAM 02:
PREDICATES
Ø Section Predicates merupakan section untuk menunjukkan relasi
atau menunjukkan symbol-simbol.
Ø 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,Dan tidak seperti section clauses, deklarasi predikati
tidak perlu diakhiri tanda titik.
Ø 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)
Ø
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
putra (STRING,STRING)
Ø
Ini adalah suatu deklarasi predikat dengan nama Predikat putra dengan tipe Predikat yakni
STRING.(STRING,STRING)dibaca STRING dan STRING.
saudara_perempuan
(STRING,STRING)
Ø
Ini adalah suatu deklarasi predikat 2 dengan nama Predikat saudara_perempuan dengan tipe Predikat
yakni STRING.(STRING,STRING) dibaca STRING dan STRING.
saudara_laki (STRING,STRING)
Ø
Ini adalah suatu deklarasi predikat 3 dengan nama Predikat saudara_laki dengan tipe Predikat yakni
STRING. (STRING,STRING)dibaca STRING dan STRING.
menikah (STRING,STRING)
Ø Ini adalah suatu deklarasi predikat 4 dengan nama
Predikat menikah dengan tipe
Predikat yakni STRING.(STRING,STRING)dibaca STRING dan
STRING.
ayah (STRING ayah,STRING putra)
Ø
Ini adalah suatu deklarasi predikat dengan nama Predikat ayah dengan tipe Predikat yakni STRING.(STRING ayah,STRING putra)dibaca nama predikat ayah dengan tipe STRING dan nama predikat putra dengan tipe STRING.
kakek (STRING kakek,STRING cucu)
Ø
Ini adalah suatu deklarasi predikat dengan nama Predikat kakek dengan tipe Predikat yakni
STRING.(STRING kakek,STRING
cucu)dibaca nama predikat kakek dengan tipe STRING dan nama predikat cucu dengan tipe STRING.
nondeterm ipar_perempuan
(STRING,STRING)
Ø
Kata nondeterm untuk memberitahu ke
compiler Visual Prolog bahwa predikat tersebut mempunyai lebih dari satu
kemungkinan jawaban (non-deterministik).Secara default Visual Prolog
akan menganggap predikat yang ada di section predicates sebagai
deterministik (kecuali pada section facts, merupakan kebalikannya).
Ø Kesalahan karena tidak memberikan keyword nondeterm pada predikat yang nondeterministik, pada Visual
Prolog 5.1 hanya akan diberi peringatan (warning) tetapi eksekusi
program tetap diteruskan dan memberikan solusi yang diinginkan.
CLAUSES
Ø 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.
putra
("Ikhsan","Bentang").
Ø
Ini adalah section clauses yang paling atas sendiri yakni putra ("Ikhsan","Bentang").Dibaca Ikhsan adalah putra Bentang.
saudara_perempuan ("Dini","Dina").
Ø
Ini adalah section clauses yang kedua yakni saudara_perempuan ("Dini","Dina").Dibaca Dini adalah saudara perempuan Dina.
saudara_laki
("Adi","Lintang").
Ø
Ini adalah section clauses yang ketiga yakni saudara_laki ("Adi","Lintang").Dibaca Adi adalah saudara laki Lintang.
menikah
("Ikhsan","Dini").
Ø
Ini adalah section clauses yang keempat yakni menikah ("Ikhsan","Dini").Dibaca Ikhsan menikah dengan Dini.
menikah
("Lintang","Surga").
Ø
Ini adalah section clauses yang kelima yakni menikah ("Lintang","Surga").Dibaca Lintang menikah dengan Surga.
ayah(A,B) :-putra(B,A).
Ø Ini adalah section
clauses yang dimana bertuliskan ayah(A,B) :-putra(B,A).
Yang mana dibaca Jika B putra A maka A ayah B.
kakek(A,B) :-ayah(A,C),
ayah(C,B).
Ø Ini adalah section
clauses yakni kakek(A,B) :-ayah(A,C),
ayah(C,B). Dibaca Jika A ayah C dan C ayah B maka A kakek B.
ipar_perempuan(A,B)
:-menikah(A,C), saudara_perempuan(C,B).
Ø
Ini adalah section clauses yakni ipar_perempuan(A,B)
:-menikah(A,C), saudara_perempuan(C,B).Dibaca Jika
A menikah dengan C dan C saudara perempuan B maka A ipar Perempuan B.
ipar_perempuan(A,B)
:-saudara_laki(A,C), menikah(C,B).
Ø
Ini adalah section clauses yakni ipar_perempuan(A,B)
:-saudara_laki(A,C), menikah(C,B). Dibaca Jika A saudara laki C dan C menikah dengan B maka A ipar perempuan B.
GOAL
Ø Ini adalah section goal yang 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.
ipar_perempuan
("Adi",Y).
Ø Ini adalah deklarasi goal dari program tersebut yakni
dengan deklarasi ipar_perempuan
("Adi",Y).Dibaca Adi adalah ipar perempuan dari Y ?.
RUNNING PROGRAM:
Ø Dan ternyata berdasarkan goal yang tadi dideklarasikan dalam
program menyatakan bahwa Y = Surga.Berarti Adi adalah ipar perempuan dari
Surga.
Bab 4
Kesimpulan
Dari Program yang dijalan dalam Visual Prolog diatas saya dapat
menggambil kesimpulan bahwa:
1.
Program Visual
Prolog diatas mempunyai struktur dasar sebagai berikut:
PREDICATES
/*------------------------
deklarasi predikat
--------------------------*/
CLAUSES
/*-------------------------------
clauses (fakta dan aturan)
---------------------------------*/
GOAL
/*------------------------
subgoal_1,
subgoal_2,
...,
subgoal_N.
--------------------------*/
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
Bab 5
TUGAS
1).Membuat LISTING untuk silsilah keluarga ???
A.Siapa kakek “Budi”?
LISTING PROGRAM:
PREDICATES
nondeterm
putra(STRING,STRING)
nondeterm
saudara(STRING,STRING)
keponakan(STRING,STRING)
nondeterm ayah(STRING
ayah,STRING putra)
nondeterm paman(STRING
paman,STRING keponakan)
nondeterm kakek(STRING
kakek,STRING cucu)
CLAUSES
putra("Amin","Slamet").
putra("Budi","Amin").
saudara("Amin","Anang").
saudara("Badu","Budi").
keponakan("Dadi","Amin").
paman(A,B):-keponakan(B,A).
paman(A,B):-saudara(A,C),putra(B,C).
ayah(A,B):-putra(B,A).
kakek(A,B):-ayah(A,C),ayah(C,B).
GOAL
kakek(X,"Budi"),
JAWAB
RUNNING PROGRAM
B.Siapa Paman “Dadi”?
LISTING PROGRAM:
PREDICATES
nondeterm
putra(STRING,STRING)
nondeterm
saudara(STRING,STRING)
keponakan(STRING,STRING)
nondeterm ayah(STRING
ayah,STRING putra)
nondeterm paman(STRING
paman,STRING keponakan)
nondeterm kakek(STRING
kakek,STRING cucu)
CLAUSES
putra("Amin","Slamet").
putra("Budi","Amin").
saudara("Amin","Anang").
saudara("Badu","Budi").
keponakan("Dadi","Amin").
paman(A,B):-keponakan(B,A).
paman(A,B):-saudara(A,C),putra(B,C).
ayah(A,B):-putra(B,A).
kakek(A,B):-ayah(A,C),ayah(C,B).
GOAL
paman(Y,"Dadi").
JAWAB
RUNNING PROGRAM
C.Siapa
Saudara “Amin”?
LISTING PROGRAM:
PREDICATES
nondeterm
putra(STRING,STRING)
nondeterm
saudara(STRING,STRING)
keponakan(STRING,STRING)
nondeterm ayah(STRING
ayah,STRING putra)
nondeterm paman(STRING
paman,STRING keponakan)
nondeterm kakek(STRING
kakek,STRING cucu)
CLAUSES
putra("Amin","Slamet").
putra("Budi","Amin").
saudara("Amin","Anang").
saudara("Badu","Budi").
keponakan("Dadi","Amin").
paman(A,B):-keponakan(B,A).
paman(A,B):-saudara(A,C),putra(B,C).
ayah(A,B):-putra(B,A).
kakek(A,B):-ayah(A,C),ayah(C,B).
GOAL
saudara("Amin",Z).
JAWAB
RUNNING PROGRAM
Wow! Such an amazing and helpful post this is. I really really love it. It's so good and so awesome. I am just amazed. I hope that you continue to do your work like this in the future also humidity chamber
ReplyDelete