KECERDASAN BUATAN 1
Fakta,Relasi,Aturan,Goal
Nama
Nim
Kelas
Referensi
Townsend,Carl. Introduction To Turbo Prolog
Andoko Andrey.Tuntunan Praktis pemrograman Bahasa Prolog
Pengantar Prolog.
Prolog merupakan bahasa pemrograman deklaratif yang mulai banyak
digunakan dalam pembuatan kecerdasan buatan ( artificial neural network )
yang mencakup bidang system pakar (expert system), pengolahan bahasa
alami(natural language processing), games, dan lain sebagainya.
Kelebihan Prolog adalah pada kemampuannya dalam mengambil kesimpulan
dari data yang ada. Karena Prolog tidak memerlukan prosedur (algoritma)
maka Prolog sangat ideal untuk memecahkan masalah yang tidak terstruktur
yang biasa terjadi pada pemecahan masalah non numeris.
Menunjukkan relasi
Contoh : Slamet adalah ayah Amin
Maka dalam bahasa Prolog dituliskan : ayah(slamet,amin).
Dimana ayah menunjukkan relasi antara slamet dan amin. Penulisan
relasi tidakkah baku seperti contoh diatas, melainkan bebas
bergantung pada pembuat program contoh : ayah_dari(slamet,amin)
Menunjukkan milik/sifat
Anita adalah seorang seorang wanita
Dalam bahasa Prolog dituliskan: wanita(anita)
Dalam Prolog, sebuah fakta dituliskan dengan relasi yang diikuti dengan
obyek(tunggal maupun jamak) dan diakhiri dengan tanda titik. Penulisan
relasi selalu diawali dengan huruf kecil sedangkan penulisan obyek
bergantung pada jenis obyek tersebut.
Aturan (Rules)
DIALOG
MESSAGE
TRACE
Colors
: mengubah warna jendela Edit,dialaog,trace, message.
Widow size
: mengubah ukuran jendela yang diinginkkan
Directories
: mengubah directori yang aktif
Miscellaneous : mengubah adapter CGA, modus layar, konfigurasi
keyboard
Load SYS file
: memuat file.sys yang berisi setting compiler terpadu
Turbo Prolog 2 ( warna, directori, dan lain-lain)
Save SYS file
: menyimpan setting compiler turbo prolog 2 dalam file
.sys
Secara garis besar program Turbo Prolog 2.0 terdiri dari 4 bagian utama:
DOMAIN
PREDICATES
GOAL
CLAUSES
Integer
: bilangan bulat dari -32768 sampai 32767
Real
: bilangan dari 1e-307 sampai 1e+308
Char
: Karakter tunggal yang diapit dengan , terdiri atas
huruf,angka atau symbol khusus
String
: Kumpulan karakter yang diapit dengan
Symbol
: kumpulan karakter yang harus diawali dengan huruf
kecil, angka ataupun garis bawah
File
Predicate adalah nama simbolik untuk relasi. Sebuah predikat dapat tidak
memiliki atau memiliki argument dengan jumlah bebas. Jumlah argument
suatu predikat disebut aritas (arity)
contoh ayah(slamet,amin)
dimana
ayah adalah nama predikat,
slamet dan amin adalah argument.
Syarat-syarat penulisan nama predikat:
Harus diawali dengan huruf kecil dan dapat diikuti dengan huruf,
bilangan atau garis bawah
Panjang nama predikat maksimum 250 karakter
Tidak diperbolehkan menggunakan spasi, tanda minus, tanda bintang
dan garis miring.
amin
badu
anang
budi
didi
dadi
ayah(amin,budi).
ayah(amin,badu).
ayah(anang,didi).
/* Aturan */
kakek(Kakek,Cucu):Ayah(Ayah,Cucu),
Ayah(Kakek,Ayah).
Simpan program di hard disk dengan nama silsilah(NIM). Kemudian jalankan
program Anda dan tuliskan goal yang ingin dicapai beserta hasilnya.
Contoh:
1. Apakah amin ayah budi?
Goal : ayah(amin,budi)
Yes
2. Apakah slamet ayah dari badu?
Goal :
3. Siapakah ayah didi?
Goal :
4. Siapakah anak slamet?
Goal :
Goal :
Goal:
UNIFIKASI
Unifikasi adalah proses yang dilakukan oleh Turbo Prolog 2.0 untuk mencari
padanan antara pernyataan yang terdapat pada aturan dengan fakta atau
kepala aturan yang lain.
Syarat terjadi unifikasi antara 2 pernyataan:
1. Mempunyai relasi yang sama
2. Mempunyai jumlah argument yang sama dan posisi argument yang
sama pula
3. Argumen yang berpadanan harus mempunyai jenis dara yang sama
4. Semua pasangan argument (pada data majemuk) harus juga
berpadanan.
9. Siapakah kakek budi?
9
Goal :
Lakukan penelusuran dengan menggunakan trace, kemudian amati dan
tuliskan urutan langkah yang dijalankan oleh turbo prolog2.
GOAL MAJEMUK
Goal yang terdiri dari lebih dari satu pernyataan, bagian goal tersebut
disebut subgoal.
Ketiklah contoh program berikut yang memuat daftar merk mobil dengan
harga dan warna tertentu. Harga dalam hal ini dinyatakan dalam jutaan
DOMAINS
merk,warna= symbol
harga
= integer
PREDICATES
mobil(merk,warna,harga)
CLAUSES
mobil(toyota,putih,50).
mobil(mazda,merah,40).
mobil(honda,biru,55).
mobil(ford,merah,30).
mobil(bmw,biru,80).
mobil(holden,putih,30).
1. Apabila kita ingin mendapatkan mobil yang mempunyai harga di bawah 30
juta maka
Goal : mobil(Merk,Warna,Harga), Harga < 30.
No solution
Tugas : Lakukan penelusuran dengan menggunakan trace kemudian
kemukakan mengapa hasil yang diperoleh no solution.
Jawab :
10
2. Bila kita ingin memiliki mobil yang harganya kurang dari 35 juta dan
berwarna merah
Goal :
11
12
13
Tambahkan program silsilah keluarga pada task 1 dengan rule di bawah ini,
kemudian lakukan trace untuk goal : saudara_sepupu(badu,didi).
Amati jalannya program kemudian jelaskan bagaimana jalannya program
tersebut.
saudara_sepupu(Sdr1,Sdr2):kakek(Kakek,Sdr1),
kakek(Kakek,Sdr2),
not(saudara_kandung(Sdr1,Sdr2)),
Sdr1 <> Sdr2.
Hasil :
14