LOGIC PROGRAMMING (BAHASA PEMROGRAMAN LOGIKA)

99 downloads 194 Views 275KB Size Report
LOGIC PROGRAMMING. (BAHASA PEMROGRAMAN LOGIKA). ALGORITMA DAN PEMROGRAMAN 1 C. HENNY MEDYAWATI. Sumber: Papadopoulos, Harris ...
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

Suggest Documents