KECERDASAN
BUATAN
MODUL 2
Oleh :
TRI WIJAYANTO
115410126 /
TI
LABORATORIUM TERPADU
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN
KOMPUTER AKAKOM YOGYAKARATA
2012
PEMBAHASAN
MODUL 2
Praktik 1
Predicates Γ Pada solution predicates terdapat 5 (Lima) Variabel
dan beberapa tipe data yaitu; dapat_membeli
dengan tipe data (symbol, symbol),
orang dengan tipe data (symbol),
mobil dengan tipe data (symbol), suka
dengan tipe data (symbol, symbol), dan
dijual dengan tipe data (symbol). Nondeterm berfungsi untuk memberi tahu
compiler bahwa predikat tersebut mempunyai lebih dari satu kemungkinan jawaban
(non-deterministik).
nondeterm
dapat_membeli (symbol, symbol) Γ variabel dapat_membeli bertipe symbol, dengan
menggunakan Nondeterm berfungsi untuk memberi tahu
compiler bahwa predikat tersebut mempunyai lebih dari satu kemungkinan jawaban
nondeterm
orang (symbol) Γ variabel
orang bertipe symbol dengan menggunakan nondeterm
nondeterm
mobil (symbol) Γ variabel mobil bertipe symbol dengan
menggunakan nondeterm
suka
(symbol, symbol) Γ variabel
suka bertipe symbol
dijual
(symbol) Γ variabel dijual bertipe symbol
script diatas merupakan sebuah
aturan yang berlaku di dalam program ini.
KETERANGAN : Symbol merupakan suatu barisan karakter,
diimplementasikan sebagai pointer ke suatu kunci hash dalam suatu tabel symbol
yang membuat string, sintaksnya sama seperti string.
clauses Γ merupakan sebuah aturan yang berlaku di sebuah script program.
dapat_membeli (X,Y):-
orang
(X),
mobil
(Y),
suka
(X, Y),
dijual
(Y).
Γ¨
script diatas merupakan sebuah
aturan yang berlaku di dalam program ini. X dan Y merupakan sebuah variabel
yang akan berfungsi untuk pernyataan dalam script selanjutnya.
orang
(nur). Γ Nur adalah orang
orang
(yudi). Γ Yudi adalah orang
orang
(dian). Γ Dian adalah orang
orang
(heni). Γ Heni adalah orang
mobil
(atoz). Γ atoz adalah mobil
mobil
(kijang). Γ kijang adalah mobil
suka
(dian, atoz). Γ dian suka mobil atoz
suka
(yudi, pecel). Γ yudi suka pecel
suka
(heri, buku). Γ heri suka buku
suka
(nur, komputer). Γ nur suka komputer
Dijual
(kijang). Γ Mobil kijang dijual
Dijual
(atoz). Γ Mobil atoz dijual
Dijual
(buku). Γ Buku dijual
Script diatas merupakan script
pernyataan dari variabel-variabel yang ada, yaitu ; orang, mobil, suka, dan dijual.
Dengan tipe data yang telah ditentukan pada solution predicates.
Goal Γ merupakan pernyataan hasil akhir, yang akan menentukan
berhasil atau tidaknya suatu program.
dapat_membeli (Siapa, Apa). Γ siapa dapat membeli apa?
Γ¨
Jadi hasil goalnya mencari Siapa
(orang) dan Apa (Mobil).
HASIL
Praktik 2
Tambaakan fakta pada bagian CLAUSES
Menambahkan fakta pada Solution
clauses ”suka (heni, kijang)” setelah
dijalankan program tersebut maka hasilnya seperti gambar dibawah ini:
suka (heni, kijang) Γ heni suka mobil kijang.
HASIL
PEMBAHASAN : Hasil output di atas berubah dari hasil awal karena pada clauses
diubah sehingga mempengaruhi hasil output. Pada
solution goal diganti dengan ”suka
(Siapa,_).” Maka hasil goal akan terfokus pada variabel suka. Outputnya seperti dibawah ini;
Siapa=dian
Siapa=yudi
Siapa=heri
Siapa=nur
Siapa=heni
5 Solutions
Maka akan tampil semua data yang
terdapat dalam variabel suka.
Praktik 3
Jika Goal di ganti dengan
Isi dari PREDICATES dan KLAUSES
SAMA NAMUN GOALnya yang berberda, maka
·
suka (_,Apa). Γ … suka apa, sintak ini akan mengarahkan goal kepada semua object
yang disuka oleh object sebelah kiri. Contoh : object kirim : heri , maka
prolog akan menjawab buku. Hal ini karena prolog tahu jika
heri suka buku.
§
Maka hasilnya : Maka
akan tampil data barang/benda yang terdapat di variabel suka.
·
suka (Siapa, _). Γ
siapa suka , sintak ini akan mengarahkan goal kepada
semua object yang menyukai object sebelah kanan. Contoh: objek
kanan : pecel maka prolog akan secara otomatis menjawab
yudi. Hal ini karena prolog tahu bahwa yudilah yang suka pecel.
§ Maka hasilnya : Maka akan tampil data barang/benda yang terdapat di variable siapa.
·
dapat_membeli (_, Apa). Γ … dapat
membeli apa, sintak ini
mengarahkan goal kepada object kanan yang dapat dibeli oleh object kiri. Contoh:
object kiri : dian. Maka jawabannya adalah atoz. Hal ini karena
prolog tahu bahwa yang dapat membeli atoz adalah dian.
§ Maka hasilnya : Maka akan tampil data yang menyatakan dapat membeli apa (barang/benda).
·
dapat membeli (Siapa, _). Γ Siapa dapat membeli … , sintak ini mengarahkan goal kepada object kiri yang
dapat membeli object kanan. Contoh: object kanan: kijang. Maka jawabannya
adalah heni. Hal ini karena prolog tahu bahwa kijang dapat dibeli oleh heni.
§
Maka hasilnya :
TUGAS MODUL 2
Jawaban
1. Ubah bahasa prolog berikut menjadi bahasa natural:
a. Orang (dian) .
Dibaca dian adalah orang.
b. Mobil (atoz) .
Dibaca atoz adalah merek sebuah mobil.
c. Suka (dian, atoz) .
Dibaca dian suka mobil atoz.
d. Dijual (atoz) .
Dibaca dijual mobil merk atoz
e. Dapat_membeli (X,Y) .
Dibaca X dapat membeli Y
Orang (X) ,
Dibaca X adalah orang.
Mobil (Y) ,
Dibaca Y adalah mobil.
Suka(X,Y) ,
Dibaca X suka Y
Dijual(Y) .
Dibaca Y dijual.
f. Suka (_,Apa) .
Dibaca Apa yang disukai.
2. Ubah bahasa natural berikut menjadi bahasa Prolog:
a. Ricky mempunyai hobi bermain catur.
Hobi (ricky, catur).
b. Embang orangnya pemalas.
Pemalas (embang) .
c. Yusida seorang vegetarian.
Vegetarian (yusida) .
d. Kusdiar pandai bermain gitar.
Pandai(kusdiar,gitar) .
e. Mobil yang berwarna merah itu milik sadek, bermerk BMW.
Mobil (sadek, merah) dan mobil(sadek, bmw) .
f. Awan seorang pemain piano, berasal dari pontianak bersuku
jawa.
Pemain_piano(awan) dan pontianak(asal); jawa (suku) .
g. Seseorang dikatakan baik jika mempunyai sifat penyayang
dan dermawan.
Baik (orang) :- sifat (penyayang,dermawan).
h. Seseorang dikatakan pintar jika salah satu dari Matematika
atau Ipa atau IPS mendapat nilai tinggi.
Pintar (orang) :- mendapat_nilai_tinggi (matematika) ;
mendapat_nilai_tinggi (ipa);
mendapat_nilai_tinggi (ips)
i. Setiap orang pasti mati.
Orang (setiap,mati) .
3. Diberiakn fakta sebagai berikut:
Anak (Jhon, James).
Anak (James, Peter).
Istri (Mary, Peter).
Anak (Sue, Ann).
Istri
(Ann, james).
Pria (Jhon).
Pria (james).
Pria (Peter).
Wanita (Mary).
Wanita (Sue).
Wanita (Ann).
Usia (jhon, 10).
Usia(Sue, 13).
Dari fakta diatas buatlah program dalam bahasa PROLOG dan
ujilah dengan rule-rule sebagai berikut:
a.
Cucu
b.
Ibu
c.
Adik
d.
Kakek
penyelesaian:
a.
cucu
PREDICATES
nondeterm anak (symbol,symbol)
istri (symbol,symbol)
pria (symbol)
nondeterm wanita (symbol)
usia (symbol,integer)
nondeterm cucu (symbol,symbol)
CLAUSES
cucu (X,Z) :-
anak (X,Y) ,
anak (Y,Z) .
cucu (X,Y) :-
anak (X, W) ,
istri (W, Z) ,
anak (Z, Y) .
anak (jhon, james) .
anak (james, peter) .
anak (andi, peter) .
anak (sue, ann) .
istri (mary, peter) .
istri (ann, james) .
pria (jhon) .
pria (james) .
pria (peter) .
pria (andi) .
wanita (mary) .
wanita (sue) .
wanita (ann) .
usia (john , 10) .
usia (sue, 13) .
GOAL
cucu (X, Y) .
b. ibu
PREDICATES
nondeterm anak
(symbol,symbol)
istri
(symbol,symbol)
pria (symbol)
nondeterm wanita
(symbol)
usia
(symbol,integer)
nondeterm ibu
(symbol,symbol)
CLAUSES
ibu (X,Y) :-
anak (Y,Z) ,
wanita (X) ,
pria (Z) ,
istri (X,Z) .
ibu (X,Y) :-
anak (Y,X) ,
wanita (X) .
anak (jhon,
james) .
anak (james,
peter) .
anak (andi,
peter) .
anak (sue, ann) .
istri (mary,
peter) .
istri (ann,
james) .
pria (jhon) .
pria (james) .
pria (peter) .
pria (andi) .
wanita (mary) .
wanita (sue) .
wanita (ann) .
usia (john , 10)
.
usia (sue, 13) .
GOAL
ibu (Siapa, Ibunya) .
c.
adik
PREDICATES
nondeterm anak (symbol,symbol)
istri (symbol,symbol)
pria (symbol)
nondeterm wanita (symbol)
usia (symbol,integer)
nondeterm adik (symbol,symbol)
CLAUSES
adik(X,Y) :-
usia(X,10) ,
usia(Y,13) .
anak (jhon, james) .
anak (james, peter) .
anak (andi, peter) .
anak (sue, ann) .
istri (mary, peter) .
istri (ann, james) .
pria (jhon) .
pria (james) .
pria (peter) .
pria (andi) .
wanita (mary) .
wanita (sue) .
wanita (ann) .
usia (john , 10) .
usia (sue, 13) .
GOAL
adik (X,Y) .
d.
kakek
PREDICATES
nondeterm anak (symbol,symbol)
istri (symbol,symbol)
pria (symbol)
nondeterm wanita (symbol)
usia (symbol,integer)
nondeterm kakek (symbol,symbol)
CLAUSES
kakek(X,Y) :-
anak(Z,X) ,
anak(Y,Z) .
kakek(X,Y):-
anak(Y,W) ,
istri(W,Z) ,
anak(Z,X) .
anak (jhon, james) .
anak (james, peter) .
anak (andi, peter) .
anak (sue, ann) .
istri (mary, peter) .
istri (ann, james) .
pria (jhon) .
pria (james) .
pria (peter) .
pria (andi) .
wanita (mary) .
wanita (sue) .
wanita (ann) .
usia (john , 10) .
usia (sue, 13) .
GOAL
kakek (X,Y) .
LISTING
ΓΌ Terlampir
0 komentar:
Posting Komentar