Anda di halaman 1dari 12

LAPORAN PRAKTIKUM

KECERDASAN BUATAN

PERTEMUAN 1 & 2

Disusun oleh :

Ahmad Khoerudin

1154100

Sekolah Tinggi Manajemen Informatika dan Komputer


AKAKOM
Yogyakarta
TA 2012

0
PERTEMUAN KE 1
LINGKUNGAN VISUAL PROLOG
(VISUAL PROLOG ENVIRONMET, VPE)

1. TUJUAN
Supaya mahasiswa mengetahui cara memulai program VPE, serta dapat
membuat program dari jendela VPE dan dapat menjalankan serta menguji
program yang telah dibuat dalam jendela VPE.

2. DASAR TEORI
 Visual Prolog Environment (VPE)
Didesain supaya seorang programmer dapat dengan mudah, nyaman dan
cepat dalam membangun, menguji dan memodifikasi suatu aplikasi atau
program yang ditulis dalam visual prolog.
 Menjalankan VPE
Program instalasi akan membuat sebuah program group yang didalamnya
tertdapat icon yang digunakan untuk menjalankan VPE, yaitu dengan cara
mengeklik icon tersebut.
 Membuka jendela editor
Untuk menciptakan jendela editor yang baru, dapat menggunakan menu
perintah file | new.
 Menjalankan dan menguji suatu program
Untuk mengecek bahwa sistem diset dengan baik, praktikan dapat
mencoba mengetikkan teks berikut pada jendela editor.

3. PEMBAHASAN

0
Dalam pembahasan kali ini saya akan belajar membuat program dalam jendela
visual prolog. Dimana contoh programnya seperti dibawah ini.

Output

Hasil ouputnya adalah dina. karena kita bisa mengetahui dalam clauses program
diatas. Dalam program tersebut dapat dijelaskan dengan kita menjabarkan
masing-masing program. Kita awali terlebih dahulu dari ipar_perempuan(A,B):-
menikah(A,C),saudara_perempuan(C,B). yaitu dimana ipar_perempuan (A,B) disini
objek A dapat kita deklarasikan sebagai ikhsan sedengkan symbol B belom ada.
Dimana menikah(A,C) yaitu A (ikhsan) menikah dengan C dimana symbol C
sebagai(dini), saudara_perempuan(C,B) maksudnya saudara perempuan dari dini
yaitu B. Dimana dari hasil penjelasan program tersebut kita bisa mengetahui
siapa ipar perempuan dari ikhsan yaitu dina karena disini ikhsan menikah
dengan dini.

0
4. TUGAS
1. Menyisipkan baris pada source program:

2. Tombol akselator:
copy: Ctrl+C, Cut: Ctrl+X, Redo:Alt+Shift+BkSp, Undo: Alt+BkSp, New:F7,
Open: F8, Save: F2, Exit:Alt+X, Goal: Ctrl+G

3. Ubah kalimat pada section predicates

0
Output

selain muncul hasil no solution, ada munculnya eror waring yang mengatakan
bahwa clause ipar_perempuan lebih dari 1 kemungkinan.

0
5. KESIMPULAN

Dengan kita belajar visual prolog kita diwajibkan untuk bisa belajar logika
pada suatu program. serta Jika melakukan pemanggilan klausa atau matching,
program ini melacaknya dari atas ke bawah. Jika prolog menemukan bandingan
atau klausa yang match, prolog mencatat tempat ditemukannya klausa yang
match. Bagian clauses merupakan inti program ini, dapat juga tanpa clauses
tetapi tentunya goal hanya terdiri dari predikat standar. Jika ada bagian clauses
harus ada bagian predicates atau sebaliknya. Urutan dalam prosedur harus benar
untuk menjaga prolog dapat mencari jawaban dengan benar dan juga
menentukan kecepatan eksekusi program.

LISTING
(terlampir) 

PERTEMUAN KE 2
DASAR-DASAR PROLOG

0
1. TUJUAN
Supaya mahasiswa mengetahui apa yang dimaksud dengan pemrograman logika,
serta dapat mengkonversikan dari bahasa natural ke bahasa prolog dan begitu
juga sebaliknya. Mengetahui konsep, aturan preidicat serta variabel dalam
bahasa prolog.

2. DASAR TEORI
Prolog dikenal sebagai bahasa deskreptive yang berarti dengan diberikan
serangkain-serangkain fakta dan aturan-aturan prolog. Dengan menggunakan
cara berfikir dedukatif akan dapat menyelesaikan permasalahan suatu program.
Prolog didasarkan pada kalusa-klausa horn(horn clauses), yang merupakan
himpunan bagian dari sistem formal yang dinamakan logika predikat. Logika
predikat menyederhanakan cara agar jelas bagaimana berfikir akan dilakukan.

3. PEMBAHASAN
Dalam praktikum kali ini saya belajar tentang dasar-dasar prolog dimana contoh
programnya seperti dibawah ini.

Output

0
Jumlah argument dalam predikat disebut aritas (arity). Satu predikat boleh
memiliki aritas yang berbeda (dengan syarat harus dikelompokkan dalam bagian
clausenya). Kata nondeterm pada section predicates berfungsi untuk memberi
tahu compiler bahwa predikat tersebut mempunyai lebih dari satu kemungkinan
jawaban(non-deterministik). Dalam fakta pada bagian Clauses diberi simbol X.
Maksud dari penamaan variabel pada orang(X) adalah menjelaskan bahwa
variabel oarng tersebut mengidentitaskan nama orang tersebut .. Dalam natural
relasi disimbolisasikan oleh suatu kalimat.fakta memiliki relasi yang diikuti
object atau object object didalam yanda kurung. Sebagaimana kalimat, fakta
tersebut diakhiri dengan tanda titik. sebagian sintak clausa jika diartikan dalam
bahasa formal :

 dapat_membeli(X,Y):-orang(X), mobil(Y), suka(X,Y), dijual(Y). Arti sintak


diatas dalam bahasa formal yaitu : X dapat membeli Y jika X adalah orang
dan Y adalah mobil dan X suka Y dan Y dijual.
 orang(nur). Arti sintak diatas dalam bahasa formal yaitu : nur adalah
orang.
 mobil(atoz). Arti sintak diatas dalam bahasa formal yaitu : atoz adalah
mobil.
 suka(yudi, pecel). Arti sintak diatas dalam bahasa formal yaitu : yudi suka
pecel.
 dijual(atoz). Arti sintak diatas dalam bahasa formal yaitu : atoz dijual.

Sehingga pada program diata yang menjelaskan suka(dian, atoz). Dapat


dijelaskan bahwa dian menyukai mobil atoz, suka(yudi, pecel). Menjelaskan dian
suka pecel dan setersunya. Dimana Satu variabel mewakili satu elemen tidak
spesifik.Variabel tidak mempunyai satu nilai yang jelas dan mengambil sebarang
nilai yang diperlukan.Variabel adalah rentetan yang terdiri dari abjad digit dan
aksara baris bawah,dengan diawali huruf besar .

 untuk program selanjutnya disuruh tambahkan suka(heni , kijang) di


dalam CLAUSES. Sehingga hasil outputnya seperti dibwah ini :

0
Dimana dalam output yang baru ini dapat diketahui bahwa dian suka atoz
dan ada pula heni suka kijang.

Kemudian kita ganti goal pada program sebelumnya dengan

 Suka(_,Apa).

Dimana apa tersebut merupakan kesukaan dari masing-masing orang,


dimana dian apa = atoz, yudi apa=pecel, heri apa=buku, nur apa=
komputer dan heni apa=kijang.

 Suka(Siapa,_).

Disini siapa terdiri dari dian, yudi, heri, nur, dan heni. Karena perintah ini
menampilkan nama semua orang.

 Dapat_membeli(_,Apa).

disini outputnya yang muncul cuman 2 karena pada program sebelumnya


goal untuk dapat membeli hanya 2 orang yaitu dian sama heni. Dimana
dian dapat membeli apa=atoz sedangkan heni dapat membeli apa=kijang.

0
 Dapat_membeli(Siapa,_).

Ini kebalikan dari progra dapat membeli apa dimana kalo program ini
menunjukan siapa orang yang membeli yaitu dian sama heni.

4. TUGAS
1. Ubah bahasa prolog menjadi bahasa normal :
A. Orang(daian)  dian adalah orang
B. Mobil(atoz)  atoz adalah mobil
C. Suka(dian,atoz).  dian suka atoz
D. Dijual (atoz)  atoz dijual
E. Dapat_membeli(x,y) :-  x dapat membeli y jika
Orang(x)  x adalah orang
Mobil(y)  y adalah mobil
Suka(x,y)  x suka dengan y
Dijual(y) Y dijual
F. Suka(_,Apa)  apa saja yang ada didalam klausa suka.
2. Ubah bahasa natural menjadi basha prolog
A. Ricky mempunyai hobi bermain catur  hobi (ricky,catur).
B. Embang orangnya pemalas  pemalas (embang).
C. Yusida seorang vegetarian  vegetarian (yusida).
D. Kusidar pandai main gitar  pandai (kusidar, gitar).
E. Mobil yang berwarna merah itu mulik sadek, merk BMW. 
Milik (mobil, Sadek), warna (mobil, merah), merek(mobil, BMW).
F. Awan seorang pemain piano, berasal dari pontianak bersuku jawa. 
Pemain (Awan, piano), berasal( Awan, pontianak), suku(Awan ,
jawa).

G. Seorang dikatan baik jika mempunyai sifat penyayang dan dermawan 


Dikatakan (orang , baik):-sifat (orang, penyayang), sifat( orang,
dermawan).
H. Seseorang dikatakan pintar jika salah satu dari matematika atau IPA atau
iPS dapat nilai tinggi.  Dikatakan(orang, pintar):- dapat(matematika,
tinggi); dapat(ipa, tinggi); dapat (ips, tinggi).
I. Setiap orang pasti mati.  Setiap(Orang, mati).

3. Program :
PREDICATES
anak(STRING,STRING)
istri(STRING,STRING)
pria(STRING)
wanita(STRING)
ayah(STRING,STRING)
ibu(STRING,STRING)

0
cucu(STRING,STRING)
kakek(STRING,STRING)
adik(STRING,STRING)
usia(STRING,INTEGER)

CLAUSES
anak("Jhon","James").
anak("James","Peter").
anak("Sue","Ann").
istri("Mary","Peter").
istri("Ann","James").
pria("Jhon").
pria("James").
pria("Peter").
wanita("Mary").
wanita("Sue").
wanita("Ann").
usia("Jhon",10).
usia("Sue",13).

ayah(A,B):-anak(B,A).
kakek(A,B):-ayah(A,C), ayah(C,B).
ibu(A,B):-istri(B,C), anak(A,C).
cucu(A,B):-anak(A,C), anak(C,B).
cucu(A,B):-anak(A,C), istri(C,D), anak(D,B).
adik(A,B):-usia(A,C), usia(B,D), C<D.

GOAL
cucu(X,Y).

ibu(X,Y).

kakek(X,Y).

0
5. KESIMPULAN
Dalam praktikum kedua ini dapat saya simpulkan bahwa pemrograman
Logika (Proraming In Logic) adalah program logika yang telah memiliki obyek-
obyek yang mudah dalam prolog seperti variabel dan nomor. Dalam logika
predikat menyederhanakan cara agar jelas bagaimana berpikir akan dilakukan.
Dalam logika predikat , pertama harus membuang semua kata-kata yang tidak
dibutuhkan dari suatu kalimat.

LISTING
(terlampir) 

Anda mungkin juga menyukai