If412 07
Upcoming SlideShare
Loading in...5
×
 

If412 07

on

  • 659 views

 

Statistics

Views

Total Views
659
Views on SlideShare
659
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

If412 07 If412 07 Document Transcript

  • 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
  • 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
  • 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
  • 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