Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

If412 07

754 views

Published on

  • Be the first to comment

  • Be the first to like this

If412 07

  1. 1. IF412 – Konsep Bahasa Pemrograman Pertemuan : 07 LOGIC PROGRAMMING Fortran Lisp Algol 60 CPL BCPL ISWIM Algol 68 Simula 67 Pascal C Scheme Prolog Mesa Concurrent Pascal ML CSP Distributed Modula-2 Smalltalk-80 Processes C++ Ada Oberon Standard ML LOGIC PROGRAMMING • Menggunakan fakta dan aturan (facts and rules) untuk merepre-sentasikan informasi. • Menggunakan deduksi untuk men-jawab query. Algoritma = Logic + Control Facts dan rules yang menerangkan apa yang dilakukan Bagaimana agar algoritma dapat di oleh algoritma implementasikan Manusia Bahasa pemrograman(Prolog) • Menggunakan relasi, bukan fungsi. • Banyak digunakan untuk pemro-sesan bahasa alami (natural language processing), expert system, dan masalah - masalah yang memerlukan pattern matching, backtrack searching. RELASI • Relasi ≈ sebuah tabel dengan n ≥ 0 (n = kolom) dan set baris. • Relasi juga disebut dengan Predicates • ([a],[b],[a b]) adalah relasi append, tetapi ([a],[b],[]) adalah bukan relasi append. BINA NUSANTARA Edisi : 1 Revisi : 1 Sept - 1998
  2. 2. IF412 – Konsep Bahasa Pemrograman Pertemuan : 07 Append X Y Z [] [] [] [a] [] [a] ... ... ... [a, b] [c, d] [a, b, c, d] ... ... ... RULE AND FACT • Relasi dinyatakan dalam aturan, dan ditulis dalam pseudocode sbb: P if Q1 and Q2 and .... and Qk ⇒ (k ≥ 0) Aturan seperti di atas disebut dengan Horn clauses. • Fakta adalah aturan dgn k = 0, & selalu berlaku tanpa harus memenuhi kondisi/syarat. • Contoh : Relasi append dinyatakan dalam dua aturan: o Fakta : ([], Y, Y) Dalam pseudo-english : append [] and Y to get Y o Aturan : Append [H | X1] and Y to get [H | Z1] if append X1 and Y to get Z1 Contoh : append [a,b] and [c,d] to get [a,b,c,d] if append [b] and [c,d] to get [b,c,d] • (H | T) dibaca list dengan head H dan tail T QUERY • Logic programming is driven by queries • Contoh : append [a,b] and [c,d] to get [a,b,c,d]? jawab: yes Is there a Z such that append [a,b] and [c,d] to get Z? jawab : yes, when Z = [a,b,c,d] Is there an X such that append X and [c,d] to get [a,b,c,d]? jawab : yes, when X = [a,b] Is there a Y such that append [a,b] and Y to get [a,b,c,d]? jawab : yes, when Y = [c,d] BINA NUSANTARA Edisi : 1 Revisi : 1 Sept - 1998
  3. 3. IF412 – Konsep Bahasa Pemrograman Pertemuan : 07 PROLOG Term • Facts, rules and queries dinyatakan dengan menggunakan terms. • Simple term adalah : o bilangan ⇒ contoh : 0, 1996 o variabel ⇒ dimulai dgn huruf besar contoh : X, Source o atom ⇒ contoh : lisp, algol60 • Compound term terdiri dari atom dan diikuti oleh ( sub-sub term) Atom disebut juga dengan Functor dan sub-term disebut dengan argument. Contoh : link (bcpl, c) link ⇒ atom atau functor bcpl, c ⇒ arguments • Basic syntax untuk facts, rules dan queries dalam Edinburg Prolog : <fact> ::= <term>. <rule> ::= <term> :- <term>. <query> ::= <terms>. <term> ::= <number> | <atom> | <variabel> | <atom> (<terms>) <terms> ::= term | <term> , <terms> • Contoh : Facts & Rules untuk mencari Path antara dua term Fortran Algol 60 Simula 67 Smalltalk 80 CPL BCPL C C++ BINA NUSANTARA Edisi : 1 Revisi : 1 Sept - 1998
  4. 4. IF412 – Konsep Bahasa Pemrograman Pertemuan : 07 Fakta : link (fortran, algol60). link (algol60, cpl). link (cpl, bcpl). link (bcpl, c). link (c, cplusplus). link (algol60, simula67). link (simula67, cplusplus). link (simula67, smalltalk80). path(L, L). path(L, M) :- link(L, X), path(X, M). QUERY • Query disebut juga dengan Goal. • Sintaks : <term>1, <term>2, ......, <term>k. Perhatikan contoh – contoh di bawah : ?- link (cpl, bcpl), link(bcpl,c). ?- link (algol60, L), link(L, M). ?- link (algol60, L), link(L, M). Negation • Menggunakan operator not • Contoh : ?- link (L, N), link (M,N), not(L=M). BINA NUSANTARA Edisi : 1 Revisi : 1 Sept - 1998

×