LAPORAN PRAKTIKUM KECERDASAN BUATAN Modul Visual Prolog

26
              LAPORAN PRAKTIKUM
KECERDASAN BUATAN
Modul Visual Prolog








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……………………………………………………………      04

Bab 3  : Analisa Hasil Praktikum………………………………………………..       05
              A.Listing Program 1………………………………………………………………….……..       05
.             B.Listing Program 2…………………………………………………………………………       06
              C.Listing Program  3……………………..…………………………………………………       06
              D.Listing Program 4………………………………….…………………………………….       06
              E.Listing Program 5…………………………………….…………………………………..      07
              F.Listing Program 6……………….………………………………………………………..      07
              G.Listing Program 7………………………………………………………………………..       08
              H.Listing Program 8………………………………………………………………………..      08


Bab 4  : Kesimpulan…………………………………………………………………       09

Bab 5  : Tugas…………………………………………………………………………..      11






Bab 1
Pendahuluan

A.Tujuan
      Mahasiswa mampu :
1.       Mengerti dan dapat menerapkan section-section dasar yang ada di Visual Prolog seperti PREDICATES, DOMAINS, CLAUSES, dan GOAL.
2.       Mengetahui section-section lainnya yang ada di Visual Prolog seperti FACTS, CONSTANT, GLOBAL.
3.       Mengerti tentang Compiler Directives.
4.       Mengerti dan dapat menerapkan aritas jamak (multiple arity) pada Visual Prolog.
5.       Mengerti konsep aturan (rule) pada Prolog dan perbedaannya dengan bahasa lain.
6.       Mengerti mengenai konversi tipe otomatis (automatic type  conversion).

B.DASAR TEORI

Pemrograman Visual Prolog
a)      Section Dasar Visual Prolog
Secara umum, program Visual Prolog terdiri dari empat section dasar, yaitu section clauses, section predicates, section domains, dan section goal.
v Section Clauses
Merupakan section yang paling penting pada program Visual Prolog. Pada section ini programer bisa meletakkan aturan dan fakta. Ketika mencari jawaban, Visual Prolog akan mencari dari bagian paling atas dari section clauses, melihat setiap fakta dan aturan untuk mendapatkan jawaban benar, hingga ke bagian paling bawah dari section.
v Section Predicates
Merupakan predikat yang harus dideklarasikan dahulu sebelum sectioon clauses. Kalau tidak, Visual Prolog tidak akan mengenal predikat yang kita tuliskan tersebut.
v Section Domains
Merupakan section yang mempunyai dua manfaat utama, yaitu
·         Programer dapat meberikan nama yang berarti untuk domain, walaupun secara internal domain tersebut sama tipenya dengan domain yang telah ada.
·         Programer dapat mendeklarasi domain khusus yang digunakan untuk mendeklarasikan struktur data yang tidak didefinisikan oleh standar domain.
v SectionGoal
Secara esensial, section goal sama dengan body dari sebuah aturan (rule), yaitu sederatan sub-sub goal.

b)     Section program lainya adalah:
v  Section facts
v  Section contans
v  Global
c)      Compiler drectifes
d)     Aritas jamak (multiple arity)
e) Sintak Aturan (rule syntax)





















Bab 3
Analisa Hasil Praktikum

A.LISTING PROGAM  1
DOMAINS
     kali,jumlah = integer
Ø  Pada sesi ini dsebut seksi domains diamana untuk vaiabel kali dan jumlah mempunyai tipe integer.
PREDICATES
     tambahkan(jumlah,jumlah,jumlah)
     kalikan(kali,kali,kali)
Ø  Bagian baris diatas merupakan bagian variabel-variabel pendeklarasian,yang mana untuk variable tambahkan mempunyai tipe integer yang dideklasikan pada doamains.dan untuk variable kalikan juga dideklarasikan pada domains juga.
CLAUSES
     tambahkan(X,Y,Jumlah) :-
     Jumlah=X+Y.
     kalikan(X,Y,Jumlah) :-
          Kali=X*Y.
Ø  Scrip program diatas merupakan bagian dari clauses yaitu berupa aturan. Aturan merupakan suatu konklusi diketahui benar jika satu atau lebih konklusi atau fakta lain ditemukan benar.Simbol( ,) dapat dibaca dengan “dan” dan pada akhir bagian clauses ini harus diakhiri tanda titik (.).


GOAL
tambahkan(32,54,Jumlah).
Ø  Goal diatas bertuuan untuk mengguji berapakah hasil dari penjumlahan dari 32 dengan 54.

RUNNING PROGRAM
Ø  Dari uji goal diatas ternyata menampilkan  hasilnya adalah dengan jumlah 86 dan hasilnya adalah tepat.




B.LISTING PROGAM  2
GOAL
       kalikan(32,54,Kali).
Ø  Pada praktek yang kedua akan menguji hasil kali dari 32 dan 54.maka kita hanya perlu mengganti goal yang ada saja seperti yang tertampil pada program diatas.
RUNNING PROGRAM
Ø  Ini adalah hasil dari uji goal diatas dengan hasil yakni 1728.

C.LISTING PROGAM  3
GOAL
       kalikan(13,25,Kali).
Ø  Pada uji goal yang ketiga hanya perlu menganti goal yang ada pada program.pada goal ini kita akan mengguji hasil kali dari 13 dan 25.
RUNNING PROGRAM
Ø  Ini adalah hasil output dari program diatas yang mana dengan hasil 325.

D.LISTING PROGAM  4
DOMAINS
  merek,warna = symbol
  usia = byte
  harga, kilometer = ulong
Ø  Baris-baris diatas adalah baris pendeklarasian variable dari tipe yang ada yang mana untuk merek dan warna dengan tipe symbol,usia dengan byte dan harga dan kilometer dengan tipe ulong.

PREDICATES
  nondeterm mobil(merek,kilometer,usia,warna,harga)
Ø  Baris diatas adalah baris pendeklarasian variable yang mana variable mobil mempunyai tipe yang telah deklarasikan secara detail pada bagian domains.
Ø  Nondeterm digunakan karena variable mobil mempunyai nilai atau goal lebih dari satu.

CLAUSES
  mobil(atoz,130000,3,merah,120000000).
  mobil(karimun,90000,4,silver,100000000).
  mobil(ceria,8000,1,hitam,75000000).
Ø  Scrip proogram diatas merupakanbagiandari clauses yaituberupaaturan. Aturan merupakan suatu konklusi diketahui benar jika satu atau lebih konklusi atau fakta lain ditemukan benar.Simbol( ,) dapat dibaca dengan “dan” dan pada akhir bagian clauses ini harus diakhiri tanda titik (.).

GOAL
  mobil(karimun, 90000,4, silver, 100000000).
Ø  Goal diatas ingin mengguji apakan variable mobil mempunyai criteria merk karimun,kilometer 90000 usia 4th warna silver dengan harga 1000000000.
RUNNING PROGRAM
Ø  Dan dari  goal diatas menampilkan bahwa hasilya adalah yes atau benar dari pernyataan goal yang ada.

E.LISTING PROGAM  5
GOAL
 mobil(Merk,Kilometer,Usia,Warna,Harga), Harga < 100000000.
Ø  Pada praktek yang kedua ini kita akan mengguji mobil apa yang mempunyai harga kurang dari 100000000.Untuk melakukan pengujian tersebut cukup mengganti goal yang ada saja dengan skrip yang ada pada diatas.
RUNNING PROGRAM
Ø  Dan dari hasil goal yang ada maka akan muncul hasil goal yang seperti diatas,dan ternyata mobil yang mempunyai harga kurang dari 1000000000 adalah mobil dengan mer ceria

F.LISTING PROGAM  6
PREDICATES
  nondeterm suka(symbol,symbol)
Ø  Pada bagian baris diatas adalah baris untuk pendeklarasian  variable suka dengan tipe symbol.kata nondeterm dipakakai karena vaiabel suka mempunyai nilai lebih dari satu.
CLAUSES
  suka(asep,membaca).
  suka(asari,computers).
  suka(nunung,bulutangkis).
  suka(vida,bulutangkis).
  suka(astana,renang).
  suka(astana,membaca).
Ø  Skrip-skrip diatas adalah fakta fakta yang ada,dimana mempunyai 6 fakta yang ada contoh: suka(asep,membaca) dapat dibaca bahwa aseo suka dengan membaca.
GOAL
  suka(Orang, membaca),
  suka(Orang, renang).
Ø  Goal diatas untuk mengguji siapakah yang orang orang yang mempunyai kesukaan membaca dan dan orang yang mempunyai kesukaan renang.
RUNNING PROGRAM
Ø  Dan dari hasil uji diatas yang mempunyai keukaan renang dan membaca hanya satu orang yakni astana

G.LISTING PROGAM  7
GOAL
  suka(Orang, bulutangkis).
Ø  Pada penggujian yang kedua adalah ingin mengguji siapa saja yang mempunyai kesukaan bulutangkis dan dari progam cukup mengganti goalnya saja seperti skrip diatas.
RUNNING PROGRAM
Ø  Dari hasil pengujian diatas orang yang mempunyai kesukaan bulutangkid adalah nunung dan vida,ini berdasarkan fakta-fakta yang ada.

G.LISTING PROGAM  8
GOAL
  suka(vida, bulutangkis),
  suka(astana,computers).
Ø  Pada praktek yan ini ingin mengguji apakah vida mempunyai kesukaan bulutangkis dan astana mempunyai kesukaan computers.
RUNNING PROGRAM
Ø  Dari hasil pengujian diatas satu orang tidak benar dengan pernyataan diatas yakni dengan nama astana.Maka hasinya mempunyai keuaran no atau tidak.




Bab 4
Kesimpulan
Dari Program yang dijalan dalam Visual Prolog diatas saya dapat menggambil kesimpulan bahwa:

1.      Domains
 merupakan bagian yang digunakan untuk mendeklarasikan tipe – tipe dari argumen yang ada, predicates merupakan bagian yang digunakan untuk mendeklarasikan relasi antar argumen (variabel – variabel)
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
5.      Kata nondeterm yang artinya untuk memberitahu ke compiler Visual Prolog bahwa predikat tersebut mempunyai lebih dari satu kemungkinan jawaban (non-deterministik).
6.       Visual Prolog mempunyai struktur dasar sebagai berikut:

DOMAINS
      /*------------------------
            deklarasi domain
      --------------------------*/

PREDICATES
      /*------------------------
            deklarasi predikat
      --------------------------*/

CLAUSES
      /*-------------------------------
            clauses (fakta dan aturan)
      ---------------------------------*/

GOAL
      /*------------------------
            subgoal_1,
            subgoal_2,
            ...,
            subgoal_N.
      --------------------------*/



















Bab 5
TUGAS

1). .A.nama mahasiswa yang mengikuti mata kuliah intelejensi buatan:
LISTING PROGRAM
PREDICATES
nondeterm mahasiswa(symbol, symbol)
nondeterm mahasiswa_matkul(symbol,symbol)

CLAUSES
mahasiswa("Irfan","A").
mahasiswa("Komeng","D").
mahasiswa("Dati","C").
mahasiswa("Fatima","B").
mahasiswa("Maspion","C").
mahasiswa("Ricky","E").
mahasiswa("Embang","A").
mahasiswa("Salmin","D").
mahasiswa("Vina","B").
mahasiswa("Sondang","C").
mahasiswa("Pamuji","D").
mahasiswa("Luki","E").
mahasiswa("Sadek","B").
mahasiswa("Yusida","A").
mahasiswa("Eka","A").

mahasiswa_matkul("Irfan","IntelejensiBuatan").
mahasiswa_matkul("Komeng","IntelejensiBuatan").
mahasiswa_matkul("Dati","IntelejensiBuatan").
mahasiswa_matkul("Fatima","IntelejensiBuatan").
mahasiswa_matkul("Maspion","IntelejensiBuatan").
mahasiswa_matkul("Ricky","PDE").
mahasiswa_matkul("Embang","PDE").
mahasiswa_matkul("Salmin","PDE").
mahasiswa_matkul("Vina","PDE").
mahasiswa_matkul("Sondang","PDE").
mahasiswa_matkul("Pamuji","SistemOperasi").
mahasiswa_matkul("Luki","SistemOperasi").
mahasiswa_matkul("Sadek","SistemOperasi").
mahasiswa_matkul("Yusida","SistemOperasi").
mahasiswa_matkul("Eka","SistemOperasi").

GOAL
mahasiswa_matkul(Siapa,"IntelejensiBuatan").
  
Running Program:


B.Nama mahasiwa yang tidak lulus.
                LISTING PROGRAM
a)      Dengan syarat menambahksn predicat dibawah ini :
nondetermmahasiswa_tidak_lulus(symbol)

b)      Pada CLAUSES kita tambahkan
mahasiswa_tidak_lulus(Nama):-
mahasiswa(Nama, Nilai), Nilai > "C".

c)      Pada GOAL kita tambahkan
mahasiswa_tidak_lulus(X).
       RUNNING PROGRAM
C.Nama mahasiswa yang lulus.
LISTING PROGRAM
a)      Dengan syarat menambahksn predicat dibawah ini :
nondetermmahasiswa_lulus(symbol)

b)      Pada CLAUSES kita tambahkan
mahasiswa_lulus(Nama):-
mahasiswa(Nama, Nilai), Nilai < "C".

c)      Pada GOAL kita ganti
mahasiswa_lulus(X).
       RUNNING PROGRAM

D.Seluruh nama matakuliah yang diajarkan.
·         Cukup mengganti goal dengan:
LISTING PROGRAM

        GOAL
        mahasiswa_matkul(_,Apa)
RUNNING PROGRAM:

E.Seluruh nama mahasiswa yang ada.
·         Cukup mengganti goal dengan:
LISTING PROGRAM

        GOAL
mahasiswa(Siapa,_).

RUNNING PROGRAM:


2).Membuat Goal dan menguji hasilnya :
LISTING PROGRAM
PREDICATES
nondeterm jalan(symbol,symbol)
nondeterm rute(symbol,symbol)
nondeterm cari(symbol,symbol,symbol)

CLAUSES
jalan(sudirman,oeripsumoharjo).
jalan(oeripsumoharjo,gejayan).
jalan(oeripsumoharjo,adisucipto).
jalan(adisucipto,janti).
jalan(janti,gedongkuning).
jalan(gedongkuning,janti).
jalan(janti,adisucipto).
jalan(adisucipto,oeripsumoharjo).

jalan(oeripsumoharjo,sudirman).
jalan(gejayan,oeripsumoharjo).
jalan(adisucipto,babarsari).
jalan(babarsari,adisucipto).
jalan(adisucipto,prambanan).
jalan(prambanan,adisucipto).
jalan(janti,rinroadselatan).
jalan(ringroadselatan,janti).

 rute(Awal,Tujuan):-cari(Awal,Tujuan,Tujuan).

 cari(Awal,Tujuan,_):-jalan(Awal,Tujuan),
 write("pergi dari ",Awal," ke ",Tujuan),nl.

 cari(Awal,Tujuan,Temp):-Temp2=Tujuan,jalan(Lewat,Tujuan),  Lewat<>Temp,cari(Awal,Tujuan,Temp2), write("kemudian dari",Lewat," ke ",Tujuan),nl.

GOAL
rute (prambanan,adisucipto).
RUNNING PROGRAM

·         Dari hasil goal diatas dapat dijelaskan bahwa kita ingin mengguji rute dari prambanan ke adisucipto?dan ternyata hasilnya adalah “yes” berarti rute tersebut benar adanya.Dan tidak dari aturan serta fakta fakta yang ada.
    Blogger Comment
    Facebook Comment

1 komentar:

Thanks For Your Feedback.