Anda di halaman 1dari 23

MODUL

PEMBELAJARAN
Pemrograman Deklaratif

Dosen : Amir Murtako


NIDN :
Prodi : T. Informatika
Fakultas : Teknik
SALAM PANCASILA
POKOK BAHASAN

1 Pengenalan Prolog
Pendahuluan
• Prolog adalah singkatan dari Programming in
Logic.
• Prolog adalah bahasa yang dibangun atas
dasar pemrograman alamiah dan logika.
• Prolog 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 yang diberikan.
Pendahuluan
• Perbedaan bahasa deklaratif dan prosedural :
– Pada bahasa deklaratif hanya membutuhkan
deklarasi atau uraian masalah, sedangkan pada
bahasa prosedural seperti : bahasa C, dll
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.
Contoh
- lelaki(iwan). (fakta) (Dibaca : Iwan lelaki)
- anak(tina,iwan). (fakta) (Dibaca : Tina anak Iwan)
- menikahi(iwan,ira). (fakta) (Dibaca : Iwan
menikahi Ira)
- menikahi(X,Y) :‐ lelaki(X) , perempuan (Y) (aturan)
(Dibaca : X menikahi Y jika X lelaki dan Y
perempuan)
X dan Y (atau kata lain yang dimulai dengan huruf
besar adalah Variabel).
Ciri Bahasa Prolog
• Bahasa Prolog selain mencari jawaban secara logika
terhadap pertanyaan yang diajukan, juga dapat
memberi semua kemungkinan jawaban.
• Predikat :
– Menggambarkan relasi dua buah objek atau lebih atau
sifat suatu objek.
– Objek yang terkait disebut argumen.
– Contoh :

suka(irwan, permen). predikat : suka; argumen : Irwan, permen.


(Dibaca : Irwan suka permen)

manis(permen). predikat : manis ; argumen : permen. (Dibaca :


permen manis)
Ciri Bahasa Prolog
• 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.
Contoh Soal: Kasus Uji Kelulusan
• Fakta:
– kuliah(X,Y). (X kuliah Y)
– nilai(X,Y Z). (nilai X untuk mata kuliah Y adalah Z)
• Aturan:
– lulus(X,Y) : X lulus Y jika X kuliah Y dan nilai X untuk
mata kuliah Y adalah Z dan Z lebih dari 50
Fakta kuliah:
• kuliah(adi,logika).
• kuliah(adi,fisika).
• kuliah(budi,logika).
• kuliah(cika,fisika).
• kuliah(cika,logika).
• kuliah(deni,logika).
• kuliah(eni,logika).
Fakta Nilai:
• 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).
Aturan lulus:
lulus(X,Y) : X lulus Y jika X kuliah Y dan nilai X
untuk mata kuliah Y adalah Z dan Z lebih dari 50

lulus(X,Y) :‐ kuliah(X,Y), nilai(X,Y,Z), Z>50.


Implementasi pada SWI-Prolog
Setelah menjalankan SWI-Prolog, pilih: File  New... Untuk
membuka file baru
Beri nama misal: kelulusan.pl
Maka kemudian muncul menu editor untuk file
kelulusan.pl tersebut
Ketikkan fakta dan aturan yang sudah dicontohkan di atas.
Jangan lupa disimpan setelah selesai mengedit (Bisa
menggunakan File  Save Buffer):
Lalu kembali ke halaman utama SWI-Prolog,
pilih File  Consult...., pilih file kelulusan.pl:
Jika muncul tampilan berikut, maka kita sudah
siap untuk tahap berikutnya yaitu mencari goal
Goal
• Goal adalah tempat pernyataan (query) diberikan
atau meminta prolog untuk mencapai tujuan
yang dikehendaki.
• Contoh goal untuk Kasus Kelulusan:
– Apakah Budi mengikuti kuliah Logika?
• Perintah goalnya: kuliah(budi,logika).
– Berapa nilai Adi untuk Fisika?
• Perintah goalnya: nilai(adi,fisika,N).
– Cika lulus mata kuliah apa saja? Variabel N dan
• Perintah goalnya: lulus(cika,L). variabel L dapat
diganti sesuai selera
Hasil eksekusinya adalah sebagai berikut:

Untuk jawaban yang lebih dari


satu, gunakan “ ; ” untuk melihat
jawaban berikutnya.
Contoh goal yang lebih kompleks
• Siapa saja yang memperoleh nilai lebih dari
atau sama dengan 70 untuk mata kuliah
Logika?
– Perintah goalnya: nilai(X,logika,Z),Z>=70.
• Siapa saja yang lulus Logika dan Fisika?
– Perintah goalnya: lulus(X,logika),lulus(X,fisika).
Di sini prolog menggunakan “ , ” untuk menyatakan “dan”.

• Siapa saja yang lulus Logika atau Fisika?


– Perintah goalnya: lulus(X,logika);lulus(X,fisika).
Di sini prolog menggunakan “ ; ” untuk menyatakan “atau”.
Hasil eksekusinya adalah sebagai berikut:
TERIMAKASIH

Anda mungkin juga menyukai