![]() |
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)
- X 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 |
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