Pengenalan Programming in Logic ( Prolog )

program
Prolog source foto https://media.licdn.com/media/AAEAAQAAAAAAAAH4AAAAJDBkZmY5MDY4LTRhZTQtNDc1Mi1iNzI1LThmNWQ3MmQ1NWJhOQ.png
PENGENALAN PROLOG


PENDAHULUAN

  • Prolog = Programming in Logic
  • Bahasa yang dibangun atas dasar pemrograman alamiah dan logika
  • Merupakan bahasa deklaratif, artinya jika diberi fakta dan aturan maka Prolog akan menyelesaikan problem secara deduktif, atau menurunkan kesimpulan sebagai jawaban berdasarkan fakta dan aturan.
  • Perbedaan bahasa deklaratif dan prosedural :
  • Pada bahasa deklaratif hanya membutuhkan deklarasi atau uraian masalah, sedangkan pada bahasa prosedural memerlukan perintah.
  • Prolog : Goal oriented (apa yang harus dipecahkan), sedangkan pada bahasa prosedural menjawab bagaimana harus memecahkan masalah.
  • Dalam logika predikat, fakta dan aturan dinyatakan melalui      predikat,

contohnya :
- Lelaki (Iwan)                                                               (fakta)
- Anak (Tina, Iwan)                                                       (fakta)
- Menikah (Iwan, Ira)                                                     (fakta)
- Y [menikah(x,y) lelaki(x)] ~lelaki(y)   (aturan)

CIRI BAHASA PROLOG
  • Bahasa Prolog selain mencari jawaban secara logika terhadap pertanyaan yang diajukan, juga dapat memberi semua kemungkinan jawaban.
  • Predikat :
Menggambarkan relasi atau sifat suatu obyek.
Obyek yang terkait disebut argumen.
Contoh :
Suka (Irwan, permen)       predikat : suka;     argumen : Irwan, permen.
Manis (permen)                predikat  : manis ;   argumen : permen.
·        Deduksi :
           Prolog dapat melakukan penarikan kesimpulan.
            Contoh :
Diberikan fakta :
                            Dede suka Iik
                            Cece suka Ryan
Dan aturan :
                     Celung suka seseorang jika Cece suka orang itu.

Prolog menarik kesimpulan :
                       Celung suka Ryan.

·       Pemadanan/Unifikasi :
 Dalam mencari jawaban atau menarik kesimpulan, Prolog melakukan pemadanan,      yaitu argumen pertama dipadankan dengan argumen pertama pada predikat lain yang sama dan seterusnya.


STRUKTUR PROGRAM PROLOG

Program Prolog terdiri dari :
a.    Domains
-          Menyatakan jenis suatu variabel
-          seperti tipe dalam Pascal
beberapa domains standar : char, integer, real, string, symbols
Contoh
      Domains
              NamaOrg = symbol
              Alamat = string
              Nilai = integer
b.    Predicates
-          terdiri dari fakta dan aturan
1.    Fakta
- suatu kenyataan atau kebenaran yang diketahui.
                     - menyatakan hubungan / relasi antara dua obyek atau lebih atau        menunjukkan sifat suatu obyek.
                     - Penulisan dalam Prolog :
                        Diawali dengan huruf kecil dan diakhiri dengan tanda titik.
                        Contoh :
                        orangtua (Ali, Husein).
                        pedas(cabe).
2.    Aturan
- Aturan penulisan :
                        If                      ditulis sebagai                         :-
                        And                  ditulis sebagai                         ,
                        Or                    ditulis sebagai                          ;
c.    Clauses
d.    Goal

Contoh : UJI KELULUSAN
       domains
                orang = symbol
                mk = string
                nilai = integer
        predicates
                kuliah(orang,mk)
                nilai(orang,mk,nilai)
                lulus(orang,mk)
        clauses
kuliah(adi,”logika”).
kuliah(adi ”fisika”).
kuliah(budi,”logika”).
kuliah(cika,”fisika”).        
kuliah(cika,”logika”).
kuliah(deni,”logika”).
kuliah(eni,”logika”).
nilai(adi,”logika,50).
nilai(adi,”fisika”,45).
nilai(budi,”logika”,80)
nilai(cika,”fisika”,85).
nilai(cika,”logika”,70).
nilai(deni,”logika”, 70).
nilai(eni,”logika”,40).
lulus(X,Y) :- kuliah(X,Y), nilai(X,Y,Z), Z>50.

Jalankan program dengan menekan tombol Alt+R sehingga muncul prompt GOAL. Jawablah pertanyaan-pertanyaan di bawah ini denganmenuliskan perintah-perintah berikut :

a.    Apakah Budi mengikuti kuliah Logika ?
kuliah(budi,”logika”)
b.    Siapa saja yang mengikuti kuliah Logika ?
kuliah(X,”logika”).
c.    Siapa saja yang lulus kuliah Logika ?
lulus(X,”logika”)
d.    Cika lulus mata kuliah apa saja ?
lulus(cika,Y)
e.    Siapa saja yang memperoleh nilai lebih dari 70 untuk mata kuliah Logika?
nilai(X,”logika”,Z) , Z > 70
f.     Siapa saja yang lulus Logika dan Fisika ?
lulus(X,”logika”) , lulus(X,”fisika”)
g.    Siapa saja yang lulus Logika atau Fisika ?
lulus(X,”logika”) ; lulus(X,”fisika”)
h.    Siapa saja yang berhasil lulus dan untuk mata kuliah apa  ?
lulus(X,Y)

Buatlah aturan untuk mencari mahasiswa yang tidak lulus suatu mata kuliah
(nilai <= 50)! Ujilah aturan anda untuk mencari siapa saja yang tidak lulus Logika !





POHON KELUARGA :


Buatlah program dalam bahasa PROLOG yang berisi realisasi dari fakta dan aturan untuk sebuah pohon keluarga. Berikut ini adalah fakta dalam bentuk pohon keluarga.
contoh
Contoh

Buatlah seluruh fakta untuk pohon keluarga di atas dengan definisi berikut :
1.   lelaki(X) : X  adalah laki-laki
2.   perempuan(X) : X adalah perempuan
3.   ayah(X,Y) : X adalah ayah dari Y
4.   ibu(X,Y) : X adalah ibu dari Y
5.   saudara(X,Y) : X adalah saudara kandung Y
                                                               
Buatlah aturan dengan definisi berikut  :
1. anaklelaki(X,Y)              : X adalah anak lelaki dari Y jika Y adalah ayah dari X dan X adalah laki-laki.
                                             X adalah anak lelaki dari Y jika Y adalah ibu dari X             dan X adalah laki-laki.
2. anakperempuan(X,Y)     : X adalah anak perempuan dari Y jika Y adalah ayah dari X dan X adalah perempuan.
                                             X adalah anak perempuan dari Y jika Y adalah ibu dari X dan X adalah perempuan.
3. orangtua(X,Y)                 : X adalah orang tua dari Y jika X adalah ayah dari Y.
                                               X adalah orang tua dari Y jika X adalah ibu dari Y.
4. saudara(X,Y)                  : X adalah saudara kandung dari Y jika ada Z yang merupakan ayah dari X dan Z ayah dari Y, atau ada Z yang merupakan ibu dari X dan Z ibu dari Y.

0 comments

Post a Comment