LAPORAN PRAKTIKUM KECERDASAN BUATAN Modul 1 LINGKUNGAN VISUAL PROLOG (VISUAL PROLOG ENVIRONMENT,VPE)


              LAPORAN PRAKTIKUM
KECERDASAN BUATAN
Modul 1
LINGKUNGAN VISUAL PROLOG
(VISUAL PROLOG ENVIRONMENT,VPE)









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

Bab 3  : Analisa Hasil Praktikum……………………………………………….        07
              A.Praktikum 1……………………………………………………………………………….         07
              B.Praktikum 2……………………………………………………………………………….         09

Bab 4  : Kesimpulan…………………………………………………………………        13

Bab 5  : Tugas…………………………………………………………………………..       14



                       













Bab 1
Pendahuluan

A.Tujuan
      Mahasiswa mampu :
1.      Mengetahui cara memulai program VPE.
2.      Dapat membuat program menggunakan jendela editor VPE.
3.      Dapat menjalankan dan menguji program pada VPE.
4.      Dapat membuka file dari disk.
5.      Mengetahui (jika) adanya kesalahan dan di baris mana pada program kesalahan itu                                                                   terjadi

B.    DASAR TEORI

1.      Visual Prolog Environment (VPE)
VPE didesain agar seorang programmer dapat dengan mudah, nyaman dan cepat dalam membangun, menguji dan memodifikasi suatu aplikasi atau program yang ditulis dalam Visual Prolog. VPE memiliki beberapa varian sehingga mendukung untuk digunakan di beberapa platform sistem operasi seperti MS-DOS, MS Windows 3.1, MS Windows 95, MS Windows NT, Win-OS/2, atau OS/2 PM, yang digunakan pada platform prosesor 16 bit ataupun prosesor 32 bit dari keluarga prosesor Intelâ 80x86 ataupun kompatibelnya seperti prosesor AMDâ.
Pengguna VPE diasumsikan mempunyai pengalaman dan pengetahuan dalam menggunakan sistem GUI (Graphical User Interface), seperti menggunakan menu, menutup, meminimize, memaximize ataupun meresize suatu jendela (window), meloading file dari jendela File Open dialog, mengklik toolbar dan lain-lain. Jika praktikan belum punya pengetahuan ini, praktikan dapat mempelajari dari literatur yang berkaitan dengan sistem operasi terkait, seperti buku cara menggunakan MS Windows 95 atau yang lainnya.

  1. Menjalankan VPE
Sebelum menjalankan VPE, tentu saja, diasumsikan program VPE sudah terinstall di komputer yang digunakan. Program instalasi akan membuat sebuah program group yang di dalamnya terdapat icon yang digunakan untuk menjalankan VPE, yaitu dengan cara mengklik icon tersebut. Namun ada banyak cara untuk menjalankan VPE, seperti, dengan menggunakan Windows Explorer, men-double klik file VIP.EXE di direktori BIN\WIN\16 untuk platform 16 bit atau direktori BIN\WIN\32 untuk platform 32 bit yang direktori tersebut terletak di bawah direktori utama VIP.
Jika Visual Prolog telah pernah membuka suatu project (dengan ekstensi .VPR) terakhir kali dan VPE ditutup, maka secara otomatis akan membuka project tersebut ketika VPE dijalankan kembali.

  1. Membuka jendela editor (editor window)
Untuk menciptakan jendela editor yang baru, praktikan dapat menggunakan menu perintah File | New. Setelah itu akan muncul jendela editor baru dengan judul “NONAME”.  Editor ini layaknya seperti editor teks standar lainnya, seperti NOTEPAD yang dimiliki oleh MS Windows. Praktikan dapat menggunakan tombol kursor (tanda panah atas, bawah, kiri dan kanan) dan mouse untuk menggerakkan kursor seperti layaknya editor lain. Juga editor ini mendukung operasi cut, copy and paste, undo/redo yang diaktifkan dari menu Edit atau melalui penekanan tombol akselerator yang dapat dilihat pada menu Edit.
Untuk lebih mendalami editor ini lebih jauh praktikan dapat membaca dari manual Visual Development Environment (VDE) pada file VDE.DOC di direktori DOC yang terletak di bawah direktori utama VIP.































Bab 2
Hasil Praktikum

PROGRAM 01:

PREDICATES
putra (STRING,STRING)
saudara_perempuan (STRING,STRING)
saudara_laki (STRING,STRING)
menikah (STRING,STRING)
ayah (STRING ayah,STRINGputra)
kakek (STRING kakek,STRINGcucu)
nondetermipar_perempuan (STRING,STRING)

CLAUSES
putra ("Ikhsan","Bentang").
saudara_perempuan ("Dini","Dina").
saudara_laki ("Adi","Lintang").
menikah ("Ikhsan","Dini").
menikah ("Lintang","Surga").

ayah(A,B) :-putra(B,A).
kakek(A,B) :-ayah(A,C), ayah(C,B).

ipar_perempuan(A,B) :-menikah(A,C), saudara_perempuan(C,B).
ipar_perempuan(A,B) :-saudara_laki(A,C), menikah(C,B).

GOAL
ipar_perempuan ("Ikhsan",X).


RUNNING PROGRAM:

PROGRAM 02:

PREDICATES
putra (STRING,STRING)
saudara_perempuan (STRING,STRING)
saudara_laki (STRING,STRING)
menikah (STRING,STRING)
ayah (STRING ayah,STRING putra)
kakek (STRING kakek,STRING cucu)
nondeterm ipar_perempuan (STRING,STRING)

CLAUSES
putra ("Ikhsan","Bentang").
saudara_perempuan ("Dini","Dina").
saudara_laki ("Adi","Lintang").
menikah ("Ikhsan","Dini").
menikah ("Lintang","Surga").

ayah(A,B) :-putra(B,A).
kakek(A,B) :-ayah(A,C), ayah(C,B).

ipar_perempuan(A,B) :-menikah(A,C), saudara_perempuan(C,B).
ipar_perempuan(A,B) :-saudara_laki(A,C), menikah(C,B).

GOAL
ipar_perempuan ("Adi",Y).

RUNNING PROGRAM:

















Bab 3
Analisa Hasil Praktikum

A.PROGRAM 01:

PREDICATES
Ø  Section Predicates merupakan section untuk menunjukkan relasi atau menunjukkan symbol-simbol.
Ø  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,Dan tidak seperti section clauses, deklarasi predikati tidak perlu diakhiri tanda titik.
Ø  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)
Ø  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
 
  putra (STRING,STRING)
Ø  Ini adalah suatu deklarasi predikat dengan nama Predikat putra dengan tipe Predikat yakni STRING.(STRING,STRING)dibaca STRING dan STRING.

saudara_perempuan (STRING,STRING)
Ø  Ini adalah suatu deklarasi predikat 2 dengan nama Predikat saudara_perempuan dengan tipe Predikat yakni STRING.(STRING,STRING) dibaca STRING dan STRING.

saudara_laki (STRING,STRING)
Ø  Ini adalah suatu deklarasi predikat 3 dengan nama Predikat saudara_laki dengan tipe Predikat yakni STRING. (STRING,STRING)dibaca STRING dan STRING.

menikah (STRING,STRING)
Ø  Ini adalah suatu deklarasi predikat 4 dengan nama Predikat menikah dengan tipe Predikat yakni STRING.(STRING,STRING)dibaca STRING dan STRING.


ayah (STRING ayah,STRING putra)
Ø  Ini adalah suatu deklarasi predikat dengan nama Predikat ayah dengan tipe Predikat yakni STRING.(STRING ayah,STRING putra)dibaca nama predikat ayah dengan tipe STRING dan nama predikat putra dengan tipe STRING.

kakek (STRING kakek,STRING cucu)
Ø  Ini adalah suatu deklarasi predikat dengan nama Predikat kakek dengan tipe Predikat yakni STRING.(STRING kakek,STRING cucu)dibaca nama predikat kakek dengan tipe STRING dan nama predikat cucu dengan tipe STRING.

nondeterm ipar_perempuan (STRING,STRING)
Ø  Kata nondeterm untuk memberitahu ke compiler Visual Prolog bahwa predikat tersebut mempunyai lebih dari satu kemungkinan jawaban (non-deterministik).Secara default Visual Prolog akan menganggap predikat yang ada di section predicates sebagai deterministik (kecuali pada section facts, merupakan kebalikannya).
Ø  Kesalahan karena tidak memberikan keyword nondeterm pada predikat yang nondeterministik, pada Visual Prolog 5.1 hanya akan diberi peringatan (warning) tetapi eksekusi program tetap diteruskan dan memberikan solusi yang diinginkan.

CLAUSES
Ø  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.

putra ("Ikhsan","Bentang").
Ø  Ini adalah section clauses yang paling atas sendiri yakni putra ("Ikhsan","Bentang").Dibaca Ikhsan adalah putra Bentang.

saudara_perempuan ("Dini","Dina").
Ø  Ini adalah section clauses yang kedua yakni saudara_perempuan ("Dini","Dina").Dibaca Dini adalah saudara perempuan Dina.

saudara_laki ("Adi","Lintang").
Ø  Ini adalah section clauses yang ketiga yakni saudara_laki ("Adi","Lintang").Dibaca Adi adalah saudara laki Lintang.

menikah ("Ikhsan","Dini").
Ø  Ini adalah section clauses yang keempat yakni menikah ("Ikhsan","Dini").Dibaca Ikhsan menikah dengan Dini.


menikah ("Lintang","Surga").
Ø  Ini adalah section clauses yang kelima yakni menikah ("Lintang","Surga").Dibaca Lintang menikah dengan Surga.

ayah(A,B) :-putra(B,A).
Ø  Ini adalah section clauses yang dimana bertuliskan ayah(A,B) :-putra(B,A).
Yang mana dibaca Jika B putra A maka A ayah B.

kakek(A,B) :-ayah(A,C), ayah(C,B).
Ø  Ini adalah section clauses yakni kakek(A,B) :-ayah(A,C), ayah(C,B). Dibaca Jika A ayah C dan C ayah B maka A kakek B.

ipar_perempuan(A,B) :-menikah(A,C), saudara_perempuan(C,B).
Ø  Ini adalah section clauses yakni ipar_perempuan(A,B) :-menikah(A,C), saudara_perempuan(C,B).Dibaca Jika A menikah dengan C dan C saudara perempuan B maka A ipar Perempuan B.
            
ipar_perempuan(A,B) :-saudara_laki(A,C), menikah(C,B).
Ø  Ini adalah section clauses yakni ipar_perempuan(A,B) :-saudara_laki(A,C), menikah(C,B). Dibaca Jika A saudara laki C dan C menikah dengan B maka A ipar perempuan B.

GOAL
Ø  Ini adalah section goal yang 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.

ipar_perempuan ("Ikhsan",X).
Ø  Ini adalah deklarasi goal dari program tersebut yakni dengan deklarasi ipar_perempuan ("Ikhsan",X).Dibaca Ikhsan adalah ipar perempuan dari X ?.


RUNNING PROGRAM:
Ø  Dan ternyata berdasarkan goal yang tadi dideklarasikan dalam program menyatakan bahwa X = Dina.Berarti Ikhsan adalah ipar perempuan dari Dina.


B.PROGRAM 02:
PREDICATES
Ø  Section Predicates merupakan section untuk menunjukkan relasi atau menunjukkan symbol-simbol.
Ø  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,Dan tidak seperti section clauses, deklarasi predikati tidak perlu diakhiri tanda titik.
Ø  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)
Ø  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
 
  putra (STRING,STRING)
Ø  Ini adalah suatu deklarasi predikat dengan nama Predikat putra dengan tipe Predikat yakni STRING.(STRING,STRING)dibaca STRING dan STRING.

saudara_perempuan (STRING,STRING)
Ø  Ini adalah suatu deklarasi predikat 2 dengan nama Predikat saudara_perempuan dengan tipe Predikat yakni STRING.(STRING,STRING) dibaca STRING dan STRING.

saudara_laki (STRING,STRING)
Ø  Ini adalah suatu deklarasi predikat 3 dengan nama Predikat saudara_laki dengan tipe Predikat yakni STRING. (STRING,STRING)dibaca STRING dan STRING.

menikah (STRING,STRING)
Ø  Ini adalah suatu deklarasi predikat 4 dengan nama Predikat menikah dengan tipe Predikat yakni STRING.(STRING,STRING)dibaca STRING dan STRING.


ayah (STRING ayah,STRING putra)
Ø  Ini adalah suatu deklarasi predikat dengan nama Predikat ayah dengan tipe Predikat yakni STRING.(STRING ayah,STRING putra)dibaca nama predikat ayah dengan tipe STRING dan nama predikat putra dengan tipe STRING.

kakek (STRING kakek,STRING cucu)
Ø  Ini adalah suatu deklarasi predikat dengan nama Predikat kakek dengan tipe Predikat yakni STRING.(STRING kakek,STRING cucu)dibaca nama predikat kakek dengan tipe STRING dan nama predikat cucu dengan tipe STRING.

nondeterm ipar_perempuan (STRING,STRING)
Ø  Kata nondeterm untuk memberitahu ke compiler Visual Prolog bahwa predikat tersebut mempunyai lebih dari satu kemungkinan jawaban (non-deterministik).Secara default Visual Prolog akan menganggap predikat yang ada di section predicates sebagai deterministik (kecuali pada section facts, merupakan kebalikannya).
Ø  Kesalahan karena tidak memberikan keyword nondeterm pada predikat yang nondeterministik, pada Visual Prolog 5.1 hanya akan diberi peringatan (warning) tetapi eksekusi program tetap diteruskan dan memberikan solusi yang diinginkan.

CLAUSES
Ø  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.

putra ("Ikhsan","Bentang").
Ø  Ini adalah section clauses yang paling atas sendiri yakni putra ("Ikhsan","Bentang").Dibaca Ikhsan adalah putra Bentang.

saudara_perempuan ("Dini","Dina").
Ø  Ini adalah section clauses yang kedua yakni saudara_perempuan ("Dini","Dina").Dibaca Dini adalah saudara perempuan Dina.

saudara_laki ("Adi","Lintang").
Ø  Ini adalah section clauses yang ketiga yakni saudara_laki ("Adi","Lintang").Dibaca Adi adalah saudara laki Lintang.

menikah ("Ikhsan","Dini").
Ø  Ini adalah section clauses yang keempat yakni menikah ("Ikhsan","Dini").Dibaca Ikhsan menikah dengan Dini.


menikah ("Lintang","Surga").
Ø  Ini adalah section clauses yang kelima yakni menikah ("Lintang","Surga").Dibaca Lintang menikah dengan Surga.

ayah(A,B) :-putra(B,A).
Ø  Ini adalah section clauses yang dimana bertuliskan ayah(A,B) :-putra(B,A).
Yang mana dibaca Jika B putra A maka A ayah B.

kakek(A,B) :-ayah(A,C), ayah(C,B).
Ø  Ini adalah section clauses yakni kakek(A,B) :-ayah(A,C), ayah(C,B). Dibaca Jika A ayah C dan C ayah B maka A kakek B.

ipar_perempuan(A,B) :-menikah(A,C), saudara_perempuan(C,B).
Ø  Ini adalah section clauses yakni ipar_perempuan(A,B) :-menikah(A,C), saudara_perempuan(C,B).Dibaca Jika A menikah dengan C dan C saudara perempuan B maka A ipar Perempuan B.
            
ipar_perempuan(A,B) :-saudara_laki(A,C), menikah(C,B).
Ø  Ini adalah section clauses yakni ipar_perempuan(A,B) :-saudara_laki(A,C), menikah(C,B). Dibaca Jika A saudara laki C dan C menikah dengan B maka A ipar perempuan B.

GOAL
Ø  Ini adalah section goal yang 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.

ipar_perempuan ("Adi",Y).
Ø  Ini adalah deklarasi goal dari program tersebut yakni dengan deklarasi ipar_perempuan ("Adi",Y).Dibaca Adi adalah  ipar perempuan dari  Y ?.

RUNNING PROGRAM:
Ø  Dan ternyata berdasarkan goal yang tadi dideklarasikan dalam program menyatakan bahwa Y = Surga.Berarti Adi adalah ipar perempuan dari Surga.
















Bab 4
Kesimpulan
Dari Program yang dijalan dalam Visual Prolog diatas saya dapat menggambil kesimpulan bahwa:
1.   Program Visual Prolog diatas mempunyai struktur dasar sebagai berikut:

PREDICATES
  /*------------------------
        deklarasi predikat
  --------------------------*/
CLAUSES
  /*-------------------------------
        clauses (fakta dan aturan)
  ---------------------------------*/
GOAL
  /*------------------------
        subgoal_1,
        subgoal_2,
        ...,
        subgoal_N.
      --------------------------*/

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
Bab 5
TUGAS
1).Membuat LISTING untuk silsilah keluarga ???

A.Siapa kakek “Budi”?

LISTING PROGRAM:
PREDICATES
            nondeterm putra(STRING,STRING)
            nondeterm saudara(STRING,STRING)
            keponakan(STRING,STRING)
            nondeterm ayah(STRING ayah,STRING putra)
            nondeterm paman(STRING paman,STRING keponakan)
            nondeterm kakek(STRING kakek,STRING cucu)

CLAUSES
            putra("Amin","Slamet").
            putra("Budi","Amin").
            saudara("Amin","Anang").
            saudara("Badu","Budi").
            keponakan("Dadi","Amin").
           
            paman(A,B):-keponakan(B,A).
            paman(A,B):-saudara(A,C),putra(B,C).
            ayah(A,B):-putra(B,A).
            kakek(A,B):-ayah(A,C),ayah(C,B).
           
GOAL
            kakek(X,"Budi"),
           
JAWAB
RUNNING PROGRAM
B.Siapa Paman “Dadi”?
LISTING PROGRAM:
PREDICATES
            nondeterm putra(STRING,STRING)
            nondeterm saudara(STRING,STRING)
            keponakan(STRING,STRING)
            nondeterm ayah(STRING ayah,STRING putra)
            nondeterm paman(STRING paman,STRING keponakan)
            nondeterm kakek(STRING kakek,STRING cucu)

CLAUSES
            putra("Amin","Slamet").
            putra("Budi","Amin").
            saudara("Amin","Anang").
            saudara("Badu","Budi").
            keponakan("Dadi","Amin").
           
            paman(A,B):-keponakan(B,A).
            paman(A,B):-saudara(A,C),putra(B,C).
            ayah(A,B):-putra(B,A).
            kakek(A,B):-ayah(A,C),ayah(C,B).
           
GOAL
            paman(Y,"Dadi").
           
JAWAB
RUNNING PROGRAM
 C.Siapa Saudara “Amin”?
LISTING PROGRAM:
PREDICATES
            nondeterm putra(STRING,STRING)
            nondeterm saudara(STRING,STRING)
            keponakan(STRING,STRING)
            nondeterm ayah(STRING ayah,STRING putra)
            nondeterm paman(STRING paman,STRING keponakan)
            nondeterm kakek(STRING kakek,STRING cucu)

CLAUSES
            putra("Amin","Slamet").
            putra("Budi","Amin").
            saudara("Amin","Anang").
            saudara("Badu","Budi").
            keponakan("Dadi","Amin").
           
            paman(A,B):-keponakan(B,A).
            paman(A,B):-saudara(A,C),putra(B,C).
            ayah(A,B):-putra(B,A).
            kakek(A,B):-ayah(A,C),ayah(C,B).
           
GOAL
            saudara("Amin",Z).    
JAWAB
RUNNING PROGRAM
    Blogger Comment
    Facebook Comment

1 komentar:

  1. Wow! Such an amazing and helpful post this is. I really really love it. It's so good and so awesome. I am just amazed. I hope that you continue to do your work like this in the future also humidity chamber

    ReplyDelete

Thanks For Your Feedback.