Anda di halaman 1dari 12

LOGIC PROGRAMMING

(BAHASA PEMROGRAMAN LOGIKA)

ALGORITMA DAN PEMROGRAMAN 1 C


HENNY MEDYAWATI

Sumber: Papadopoulos, Harris. ACSC300: Logic Programming,


lecture 1: Introduction to Logic Programming and Prolog
LOGIC PROGRAMMING
• PROBLEM SOLVING =
PROBLEM DESCRIPTION + LOGICAL DEDUCTIONS

Bagaimana kita dapat memiliki kemampuan


membuat logika deduksi?
Idealnya, kita memberitahukan kepada komputer
‘apa’ yang kita ingin kerjakan, bukan ‘bagaimana’
cara mengerjakannya
Bahasa Pemrograman
Imperative vs Deklarative
• Pada bahasa pemrograman imperative,
contohnya Java, Pascal, C++), kita
memberitahu komputer ‘bagaimana/how’
cara menyelesaikan masalah, misalnya cetak
A, kalikan A dan B…dsb
• Pada bahasa pemrograman deklarative
(contohnya Prolog), kita mendeklarasikan
‘apa/what’ permasalahannya dan komputer
yang akan memecahkan masalah nya
Pengenalan Prolog
• Prolog adalah bahasa pemrograman pertama
yang murni menggunakan bahasa
pemrograman deklarative
• Prolog kependekan dari ‘Programmation en
Logique’
• Pertama kali diperkenalkan tahun 1970 oleh
Robert Kowalski dan Maarten van Emden,
Alain Colmerauer , selanjutnya
diimplementasikan oleh David Warren
Pengenalan Prolog
• Pada saat kita menuliskan program dalam bahasa
prolog, artinya kita menuliskan pengetahuan kita
mengenai suatu masalah, kita membuat model
dari suatu masalah
• Prolog secara luas dipergunakan untuk
pemodelan sistem (contoh prototipe perangkat
lunak, desain sirkuit) dan untuk banyak aplikasi
intelegensi buatan seperti Expert System dan
Natural Language Processing
Konsep Prolog
• Program Prolog terdiri dari sekumpulan clauses
• Setiap clause dapat berupa fakta atau aturan (fact or rule)
• Contoh clauses :
Facts : male(philip).
female(anne).
parent(philip,anne).
Rules :
father(X,Y) : - parent(X,Y), male(X).
ancestor(X,Y) :- parent(X,Y).
ancestor(X,Y) :- ancestor(X,Z), parent(Z,Y).
Terms
(Terminologi/Istilah)
• Sebuah terms mewakili suatu objek atau kelas dari objek yang
akan dibahas

• Objek dapat berupa :


- konstanta, yang dapat berupa :
angka : 37, 12.4, -5
string : ‘helo world’, ‘Pete’
atom : philip, monkey
- variabel : X, Person
- compound term : tanggal (May, 1, 2004)
Facts (Fakta)
• Fakta mewakili satu unit informasi yang
diasumsikan bernilai benar
• Kadangkala suatu fakta terdiri dari beberapa
istilah atau merupakan suatu daftar istilah
male(philip).
parent(philip,anne).
Rules (Aturan-aturan)
• Suatu aturan mewakili beragam kondisi
(‘this is true if this is true’)
need_umbrella :- its_raining.

father(X,Y) :- parent(X,Y), male(X).

IF AND
• Secara umum aturan adalah suatu ekspresi dengan
bentuk :
A :- B1, B2,…,Bn
dimana A dan B1, B2, …Bn adalah formula atomik
A adalah head (kepala) dari aturan
B1, B2, …., Bn adalah body (tubuh) dari aturan

Variabel :
Penulisannya dengan huruf besar atau underscores (contoh
: X, TimeTable, _24)
Semua yang dimulai dengan huruf besar pada prolog adalah
variabel (kecuali dalam tanda petik “)
• Suatu clause merupakan statemen prolog, contohnya
fakta atau aturan (fact or rule)

• Semua clause pada prolog harus diakhiri dengan


tanda titik (dot)
• Penggunaan program prolog dilakukan melalui query
contoh :
? –parent(philip, anne).
? –border(wales,scotland).
Interpreter pada Prolog akan merespon : Yes or No
Semua query harus diakhiri tanda titik (dot)
Query
• Query dapat terdiri dari variabel-variabel :
?- parent(philip, who).
interpreter prolog akan memberikan respon
melalui nilai2 yang terdapat pada variabel
sehingga query akan menjadi benar (jika ada),
kalau tidak ada jawaban yang benar, maka
akan direspon dengan no

Anda mungkin juga menyukai