Anda di halaman 1dari 15

Modul Praktikum

KECERDASAN BUATAN 1
Fakta,Relasi,Aturan,Goal

Nama
Nim
Kelas

Universitas Ma Chung Malang


2010

Tujuan Umum Pembelajaran


Siswa mampu menggunakan Prolog untuk mencari jawaban atas pertanyaan
yang didasarkan pada pengetahuan yang telah ada

Tujuan Khusus Pembelajaran


Siswa mampu mendemonstrasikan beberapa penggunaan Turbo Prolog 2.0
,yang meliputi:
1. Pengetahuan umum tentang Prolog dan Turbo Prolog 2.0.
2. Menyimpan program dan memengeksekusi program dengan Goal.
3. Mengetahui urutan jalannya eksekusi Goal baik yang internal maupun
yang eksternal.

Referensi
Townsend,Carl. Introduction To Turbo Prolog
Andoko Andrey.Tuntunan Praktis pemrograman Bahasa Prolog

Modul Praktikum Kecerdasan Buatan 1 | Universitas Ma Chung 2010 |


-HS-

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.

Fact ( Fakta ) dan Relasi


Bahasa Prolog terdiri dari kumpulan data-data obyek yang merupakan suatu
fakta, karena fakta menunjukkan suatu keadaan atau situasi nyata maka
fakta selalu benar (true).
Dalam Prolog fakta dapat dibedakan menjadi 2 macam, yaitu:

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)

Modul Praktikum Kecerdasan Buatan 1 | Universitas Ma Chung 2010 |


-HS-

Aturan adalah suatu pernyataan yang menunjukkan bagaimana fakta-fakta


berinteraksi satu dengan yang lain untuk membentuk suatu kesimpulan.
Sebuah aturan dinyatakan sebagai suatu kalimat bersyarat. Misalnya ada
sebuah fakta:
Tino suka apel
Sedangkan ada sebuah aturan yang berbunyi:
Yuli suka sesuatu yang disukai oleh TIno
Dalam Prolog fakta diatas dapat dituliskan sebagai :
suka(tino,apel)
Sedangkan aturan tersebut dapat dinyatakan sebagai berikut :
Yuli suka sesuatu jika Tino suka sesuatu itu juga
Sehingga dapat dituliskan:
suka(yuli,Sesuatu) if suka(tino,Sesuatu)
Penulisan dalam bahasa Prolog menjadi
suka(yuli,Sesuatu) :suka(tino,Sesuatu).
Sebuah relasi yang sama dapat dituliskan lebih dari satu aturan, maka
aturan-aturan tersebut bersifat atau ( sebagai pilihan). Setiap aturan
terdiri dari kesimpulan(kepala) dan tubuh. Tubuh dapat terdiri dari 1 atau
lebih pernyataan atau aturan yang lain yang disebut subgoal. Antara subgoal
yang satu dengan yang lain dihubungkan dengan logika and dengan
symbol , yang bersifat:
Kesimpulan (kepala) menjadi benar jika dan hanya jika semua bagian
tubuh tersebut benar.
Dengan kata lain:
Kepala (head) benar jika tubuh (body) benar. Sifat ini disebut then/if
conditional.
Apabila semua subgoal di dalam aturan tersebut benar, maka eksekusi akan
mencapai tanda titik yang mengakhiri aturan tersebut.Kondisi demikian
disebut berhasil.
Apabila salah satu bagian tubuh tersebut salah, maka kesimpulan (kepala)
tersebut menjadi salah dan eksekusi tidak akan pernah mencapai
akhir(tanda titik) dan kondisi tersebut disebut gagal.

Pengenalan Turbo Prolog 2


3

Modul Praktikum Kecerdasan Buatan 1 | Universitas Ma Chung 2010 |


-HS-

Penjelasan 4buah jendela utama yaitu:


EDITOR

: Tempat untuk menuliskan program

DIALOG

: Tempat keluaran hasil eksekusi program dan Tanya jawab


antara turbo prolog dan pemrogram.

MESSAGE

: Tempat tampilan pesan-pesan tentang aktivitas yang sedang


dijalankan oleh turbo prolog 2, seperti load program, save
program, kompilasi serta tampilan pesan kesalahan

TRACE

: digunakan waktu proses trace ( eksekusi program langkah demi


langkah / debug)

Penjelasan 6 perintah pada menu utama:


1. Files
Load
: memuat file yang ada ke editor
Pick
: mengambil file yang sebelumnya pernah dimuat ke editor
New File : masuk ke editor dengan membuat file baru yang diberi nama
work.pro
Save
: menyimpan file yang sudah diedit ke disk
Write to : menyimpan file yang telah selesai diedit dengan nama lain
Directory : melihat nama-nama file yang ada di directori yang aktif
Change Dir
: mengubah direktori yang aktif
OS Shell : keluar ke dos tanpa meninggalkan turbo prolog 2, untuk
kembali ketik exit
Quit
: keluar dari turbo prolog 2
2. Edit
: untuk menulis ataupun mengubah program yang sudah ada
sebelumnya
3. Run
: untuk mengkompilasi sekaligus mengeksekusi program
4. Compile
: untuk mengkompilasi program
Memory : mengkompilasi program dan meletakkan di memori
OBJ File : mengkompilasi dan menciptakan file .obj (file yang berisi
bahasa mesin hasil terjemahan dari program)
EXE File : mengkompilasi program dan mencipatakan file .obj serta .exe
Project : mengkompilasi beberapa modul (potongan dari program)
menjadi file .exe
Link only : membuat file .exe dan file .obj yang telah dibuat sebelumnya
5. Option
Link
Map file of : menentukan apakah pada saat kompilasi turbo prolog 2
akan menghasilkan file .map atau tidak
Libraries
: mengikutsertakan library (berisi kode bahasa mesin
untuk predikat jadi) yang lain selain PROLOG.LIB
Edit PRJ : mengedit fiel (modul) yang tergabung dalamsatu project
Compiler directives : berisi option lain untuk menentukan alokasi memori
6. Setup
4

Modul Praktikum Kecerdasan Buatan 1 | Universitas Ma Chung 2010 |


-HS-

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

Domain berisi deklarasi ( pernyataan ) tentang jenis data yang digunakan


dalam fakta dan aturan. Ada 6 domain standart yang dikenal dalam Turbo
Prolog:

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

Modul Praktikum Kecerdasan Buatan 1 | Universitas Ma Chung 2010 |


-HS-

File

: digunakan untuk operasi 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.

Klausa berisi fakta dan aturan yang membentuk keseluruhan program.


Goal berisi pertanyaan yang kita ajukan kepada Turbo Prolog 2.0. Goal dapat
terdiri dari beberapa bagian yang disebut subgoal. Goal ada 2 macam yaitu
goal internal ( goal yang secara langsung ditulis dalam program ) dan goal
eksternal ( goal yang ditulis di luar program di jendela Dialog).

Modul Praktikum Kecerdasan Buatan 1 | Universitas Ma Chung 2010 |


-HS-

Task 1. Menyimpan program dan mengajukan


pertanyaan dalam goal (mengajukan Query)
Diketahui silsilah keluarga seperti di bawah ini :
slamet

amin

badu

anang

budi

didi

dadi

Ketikkan pada turbo prolog 2 dengan menggunakan editor sebagai berikut


/* Contoh program silsilah keluarga */
DOMAINS
Nama = symbol
PREDICATES
ayah(nama,nama)
kakek(nama,nama)
CLAUSES
/* Fakta */
ayah(slamet,amin).
ayah(slamet,anang).
7

Modul Praktikum Kecerdasan Buatan 1 | Universitas Ma Chung 2010 |


-HS-

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 :

5. Siapakah ayah slamet dan ayah anang?


Goal:
6. Siapakah nama-nama orang yang mempunyai anak?
Goal :

Modul Praktikum Kecerdasan Buatan 1 | Universitas Ma Chung 2010 |


-HS-

7. Tambahkan rule untuk mengetahui hubungan saudara kandung,


kemudian tuliskan siapakah saudara kandung amin?
Rule

Goal :

8. Tambahkan rule untuk mengetahui hubungan saudara sepupu,


kemudian tuliskan siapakah saudara sepupu badu?
Rule :

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

Modul Praktikum Kecerdasan Buatan 1 | Universitas Ma Chung 2010 |


-HS-

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

Modul Praktikum Kecerdasan Buatan 1 | Universitas Ma Chung 2010 |


-HS-

2. Bila kita ingin memiliki mobil yang harganya kurang dari 35 juta dan
berwarna merah
Goal :

11

Modul Praktikum Kecerdasan Buatan 1 | Universitas Ma Chung 2010 |


-HS-

Task 2. Runtut Balik (Backtracking)


Dalam mencari jawaban suatu persoalan, sering kali kita tidak menemukan
jawaban yang kita inginkan. Tentu saja kita berusaha untuk mencoba
kemungkinan jawaban yang lain dengan kembali ke awal dan mengikuti
kembali cara yang sama dengan sebelumnya. Cara runut balik ini kita
lakukan berulang kali sampai jawaban yang kta inginkan dapat ditemukan
atau sampai semua kemungkinan jawaban telah habis dicoba.
Ketiklah program di bawah ini (Goal eksternal)
Domains
nama = symbol
umur = integer
Predicates
pemain(nama,umur)
Clauses
pemain(bejo,15).
pemain(telo,14).
pemain(cokri,15).
pemain(glempong,15).
pemain(kabul,14)
Carilah 2 orang pemain yang berusia 15 tahun yang dapat saling bertanding
dan nama A tidak sama dengan nama B.
Goal:

Lakukan penelusuran dan tulis apa yang terjadi.

12

Modul Praktikum Kecerdasan Buatan 1 | Universitas Ma Chung 2010 |


-HS-

Ketiklah program di bawah ini (Goal internal)


Domains
nama = symbol
umur = integer
Predicates
pemain(nama,umur)
Goal
pemain(A,15),
pemain(B,15),
A <> B,
Write(A, ,B).
Clauses
pemain(bejo,15).
pemain(telo,14).
pemain(cokri,15).
pemain(glempong,15).
pemain(kabul,14)
Apabila menggunakan goal internal, maka untuk menampilkan hasilnya di
layar monitor kita harus menggunakan predikat write. Amati apa yang terjadi
kemudian berikan penjelasan tentang goal internal dan goal eksternal.

Task 3. Predikat Not


Not digunakan untuk menyatakan lawan logika dari suatu pernyataan. Bila
not dipasangkan pada pernyataan yang benar, maka pernyataan tersebut
menjadi salah, demikian sebaliknya. Not tidak dapat berdiri sendiri dan tidak
dapat dipasangkan pada fakta atau kepala suatu aturan, tetapi hanya dapat
dipasangkan pada bagian aturan.
Contoh :
Sdr1 adalah saudara sepupu Sdr2 jika
Sdr1 dan Sdr2 mempunyai kakek yang sama dan
Sdr1 bukan saudara kandung Sdr2 dan
Sdr1 tIdak sama dengan Sdr2

13

Modul Praktikum Kecerdasan Buatan 1 | Universitas Ma Chung 2010 |


-HS-

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 :

Selamat Bekerja, Semoga Sukses

14

Modul Praktikum Kecerdasan Buatan 1 | Universitas Ma Chung 2010 |


-HS-

Anda mungkin juga menyukai