SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
BAHASA PEMROGRAMAN
(IKP213)
Pertemuan 5: Prolog, 22 November 2011
Pemrograman Prolog
2


       Pemrograman Deklaratif
         Fakta

         Aturan-aturan   deduksi
       First-Order Predicate Logic
       Execution Engine
         unification

         resolution




                             Pemrograman Prolog – IKP213
Pemrograman Prolog
3


       Konstanta, Entitas, Atom
         rangkaian   huruf lower case
         pat, jim, bob, . .

       Variabel
         huruf  UPPER CASE
         X, Y, Z, . .




                              Pemrograman Prolog – IKP213
SWI-Prolog
4


       http://www.swi-prolog.org/
       Implementasi Prolog di Windows
       Tuliskan fakta dan rules dalam berkas teks
       Consult berkas teks dari IDE SWI-Prolog
         File    Consult
       Tuliskan kueri / goals




                             Pemrograman Prolog – IKP213
Contoh Silsilah Keluarga
5




                 Pemrograman Prolog – IKP213
Fakta Silsilah Keluarga
6


    parent(tom,bob).
    parent(pam,bob).
    parent(tom,liz).
    parent(bob,ann).
    parent(bob,pat).
    parent(pat,jim).
       Relasi dengan arity 2
       parent/2

                          Pemrograman Prolog – IKP213
Kueri Prolog
7


    parent(tom, X).
    X = bob ;
    X = liz ;
    false.
     Siapa yang memiliki tom sebagai orang tua?

    parent(Y, ann).
    Y = bob ;
    false.
     Siapa orang tua dari ann?


                      Pemrograman Prolog – IKP213
Kueri Prolog
8


    parent(X, Y).
     Menampilkan semua fakta

     Cari semua X dan Y yang memenuhi relasi parent

     Substitusi variabel dengan atom di dalam fakta

      yang ada
     Tidak ada atom yang dapat mensubstitusi: false

    parent(badu, Y).
    false.

                       Pemrograman Prolog – IKP213
Konjungsi Kueri
9


       Siapa grandparent dari jim?
         Siapa parent dari jim? Y
         Siapa parent dari Y? X

         X adalah grandparent dari jim

       parent(Y, jim), parent(X, Y).
       Cari seseorang, Y, yang menjadi parent dari jim
        dan cari X yang menjadi orang tua dari Y



                           Pemrograman Prolog – IKP213
Fakta-fakta Baru
10


     female(pam).
     female(liz).
     female(pat).
     female(ann).
     male(tom).
     male(bob).
     male(jim).
      Relasi dengan arity 1


                         Pemrograman Prolog – IKP213
Rules
11


     offspring(X, Y) :- parent(Y, X).
      X adalah offspring dari Y, jika Y adalah parent

       dari X
     mother(X,Y) :- parent(X,Y),
       female(X).
      X adalah mother dari Y, jika X adalah parent dari

       Y dan X adalah female



                         Pemrograman Prolog – IKP213
Unifikasi
12


        parent(X, liz).
          Periksa semua fakta yang diberikan
          Untuk fakta yang sama, terapkan algoritma Unifikasi
          Disagreement set

        parent(X, liz) dengan parent(tom, bob).
          disagreement    set {X, tom}
          fail

        parent(X, liz) dengan parent(tom, liz).
          disagreement    set {X, tom}
          success

                               Pemrograman Prolog – IKP213
Resolusi
13


        offspring(X, liz)
          Terapkan   algoritma unifikasi untuk rule offspring(X, Y)
          disagreement set {liz, Y}

          resolusi / menggantikan Head Goal offspring(X, Y)
           dengan sub-goal parent(Y, X)
          unifikasi Y dengan liz pada sub-goal parent(Y, X)

        Unifikasi sub-goal parent(liz, X)



                              Pemrograman Prolog – IKP213
Monkey and Banana Problem
14


        States
          Monkey  at door
          Monkey on floor

          Box at window

          Monkey does not have banana

        Ultimate goal
          state(X,   Y, Z, has).



                                    Pemrograman Prolog – IKP213
Monkey and Banana Problem
15


        Allowable moves
          grasp banana
          climb box

          push box

          walk around

        Prolog rule
          move  ( state(middle, onbox, middle, hasnot), grasp,
           state(middle, onbox, middle, has) ).


                             Pemrograman Prolog – IKP213
Monkey and Banana Problem
16


        canget(state(atdoor, onfloor, atwindow, hasnot) ).




                            Pemrograman Prolog – IKP213
Ringkasan
17


        Deklarasi clauses berupa fakta dan rules
        Fakta dinyatakan dengan relasi
        Fakta memuat Atom
        Rules memuat Variabel
        Kueri (Goals) memuat Variabel atau Atom




                          Pemrograman Prolog – IKP213
Latihan
18


        Siapa grandparent dari ann?
        Siapa grandchild dari bob?
        Tuliskan rule aunt(X, Y)
        Tuliskan rule hastwochildren(X)
        Tuliskan rule hasdaughter(X)
        Tuliskan rule grandchildren(X, Y)



                            Pemrograman Prolog – IKP213
Pustaka
19


        SWI-Prolog, http://www.swi-prolog.org/
        GNU-Prolog
        Ivan Bratko, "Prolog Programming for Artificial
         Intelligence"
        http://tjerdastangkas.blogspot.com/search/label/ikp213




                             Pemrograman Prolog – IKP213
AKHIR PERTEMUAN 4
Rabu, 19 Oktober 2011

Weitere ähnliche Inhalte

Andere mochten auch

Anders Introductie Presentatie
Anders Introductie PresentatieAnders Introductie Presentatie
Anders Introductie PresentatieAndre_Vondeling
 
Quesnel.Adolescent Literacy.Feb 2016
Quesnel.Adolescent Literacy.Feb 2016Quesnel.Adolescent Literacy.Feb 2016
Quesnel.Adolescent Literacy.Feb 2016Faye Brownlie
 
How Do You Measure The Power Of Words
How Do You Measure The Power Of WordsHow Do You Measure The Power Of Words
How Do You Measure The Power Of WordsPrashant Gandhi
 
Matsqui/Swift - Differentiation and Engagement
Matsqui/Swift - Differentiation and EngagementMatsqui/Swift - Differentiation and Engagement
Matsqui/Swift - Differentiation and EngagementFaye Brownlie
 
Scientific Applications of The Data Distribution Service
Scientific Applications of The Data Distribution ServiceScientific Applications of The Data Distribution Service
Scientific Applications of The Data Distribution ServiceAngelo Corsaro
 
Cyberpolitics 2009 W5
Cyberpolitics 2009 W5Cyberpolitics 2009 W5
Cyberpolitics 2009 W5oiwan
 
CIC 17 - Nominal Scaling of Print Substrates
CIC 17 - Nominal Scaling of Print SubstratesCIC 17 - Nominal Scaling of Print Substrates
CIC 17 - Nominal Scaling of Print Substratesnmoroney
 
Как найти, заполучить и удержать CTO
Как найти, заполучить и удержать CTOКак найти, заполучить и удержать CTO
Как найти, заполучить и удержать CTOGregory Sitnin
 
Rupert - AFL - Jan, 2014
Rupert - AFL - Jan, 2014Rupert - AFL - Jan, 2014
Rupert - AFL - Jan, 2014Faye Brownlie
 
How to Embed Innovation into Organization Culture Part 2
How to Embed Innovation into Organization Culture Part 2How to Embed Innovation into Organization Culture Part 2
How to Embed Innovation into Organization Culture Part 2cfrangos
 
John Mucci Profile
John Mucci ProfileJohn Mucci Profile
John Mucci Profilejmucci
 
Rupert. 1st sessions.nov
Rupert. 1st sessions.novRupert. 1st sessions.nov
Rupert. 1st sessions.novFaye Brownlie
 

Andere mochten auch (20)

The Ride of Your Life
The Ride of Your LifeThe Ride of Your Life
The Ride of Your Life
 
Anders Introductie Presentatie
Anders Introductie PresentatieAnders Introductie Presentatie
Anders Introductie Presentatie
 
Pintura 2 Eso
Pintura 2 EsoPintura 2 Eso
Pintura 2 Eso
 
Science world
Science worldScience world
Science world
 
Madurodam
MadurodamMadurodam
Madurodam
 
Quesnel.Adolescent Literacy.Feb 2016
Quesnel.Adolescent Literacy.Feb 2016Quesnel.Adolescent Literacy.Feb 2016
Quesnel.Adolescent Literacy.Feb 2016
 
Camel
CamelCamel
Camel
 
How Do You Measure The Power Of Words
How Do You Measure The Power Of WordsHow Do You Measure The Power Of Words
How Do You Measure The Power Of Words
 
Matsqui/Swift - Differentiation and Engagement
Matsqui/Swift - Differentiation and EngagementMatsqui/Swift - Differentiation and Engagement
Matsqui/Swift - Differentiation and Engagement
 
ikp213-unifikasi
ikp213-unifikasiikp213-unifikasi
ikp213-unifikasi
 
Scientific Applications of The Data Distribution Service
Scientific Applications of The Data Distribution ServiceScientific Applications of The Data Distribution Service
Scientific Applications of The Data Distribution Service
 
Peqoud
PeqoudPeqoud
Peqoud
 
Cyberpolitics 2009 W5
Cyberpolitics 2009 W5Cyberpolitics 2009 W5
Cyberpolitics 2009 W5
 
CIC 17 - Nominal Scaling of Print Substrates
CIC 17 - Nominal Scaling of Print SubstratesCIC 17 - Nominal Scaling of Print Substrates
CIC 17 - Nominal Scaling of Print Substrates
 
Как найти, заполучить и удержать CTO
Как найти, заполучить и удержать CTOКак найти, заполучить и удержать CTO
Как найти, заполучить и удержать CTO
 
Rupert - AFL - Jan, 2014
Rupert - AFL - Jan, 2014Rupert - AFL - Jan, 2014
Rupert - AFL - Jan, 2014
 
Riz's IRAP Slides
Riz's IRAP SlidesRiz's IRAP Slides
Riz's IRAP Slides
 
How to Embed Innovation into Organization Culture Part 2
How to Embed Innovation into Organization Culture Part 2How to Embed Innovation into Organization Culture Part 2
How to Embed Innovation into Organization Culture Part 2
 
John Mucci Profile
John Mucci ProfileJohn Mucci Profile
John Mucci Profile
 
Rupert. 1st sessions.nov
Rupert. 1st sessions.novRupert. 1st sessions.nov
Rupert. 1st sessions.nov
 

Mehr von Anung Ariwibowo (20)

isd314-06-association-mining
isd314-06-association-miningisd314-06-association-mining
isd314-06-association-mining
 
ikp213-06-horn-clause
ikp213-06-horn-clauseikp213-06-horn-clause
ikp213-06-horn-clause
 
ikp213-01-pendahuluan
ikp213-01-pendahuluanikp213-01-pendahuluan
ikp213-01-pendahuluan
 
ikd312-05-sqlite
ikd312-05-sqliteikd312-05-sqlite
ikd312-05-sqlite
 
ikd312-05-kalkulus-relasional
ikd312-05-kalkulus-relasionalikd312-05-kalkulus-relasional
ikd312-05-kalkulus-relasional
 
ikd312-04-aljabar-relasional
ikd312-04-aljabar-relasionalikd312-04-aljabar-relasional
ikd312-04-aljabar-relasional
 
ikd312-03-design
ikd312-03-designikd312-03-design
ikd312-03-design
 
ikd312-02-three-schema
ikd312-02-three-schemaikd312-02-three-schema
ikd312-02-three-schema
 
ikp213-02-pendahuluan
ikp213-02-pendahuluanikp213-02-pendahuluan
ikp213-02-pendahuluan
 
ikh311-08
ikh311-08ikh311-08
ikh311-08
 
ikh311-07
ikh311-07ikh311-07
ikh311-07
 
ikh311-06
ikh311-06ikh311-06
ikh311-06
 
ikh311-05
ikh311-05ikh311-05
ikh311-05
 
ikp321-svn
ikp321-svnikp321-svn
ikp321-svn
 
ikh311-04
ikh311-04ikh311-04
ikh311-04
 
ikp321-05
ikp321-05ikp321-05
ikp321-05
 
imsakiyah-jakarta-1433-09
imsakiyah-jakarta-1433-09imsakiyah-jakarta-1433-09
imsakiyah-jakarta-1433-09
 
ikh311-03
ikh311-03ikh311-03
ikh311-03
 
ikp321-04
ikp321-04ikp321-04
ikp321-04
 
ikp321-03
ikp321-03ikp321-03
ikp321-03
 

Prolog Pemrograman

  • 1. BAHASA PEMROGRAMAN (IKP213) Pertemuan 5: Prolog, 22 November 2011
  • 2. Pemrograman Prolog 2  Pemrograman Deklaratif  Fakta  Aturan-aturan deduksi  First-Order Predicate Logic  Execution Engine  unification  resolution Pemrograman Prolog – IKP213
  • 3. Pemrograman Prolog 3  Konstanta, Entitas, Atom  rangkaian huruf lower case  pat, jim, bob, . .  Variabel  huruf UPPER CASE  X, Y, Z, . . Pemrograman Prolog – IKP213
  • 4. SWI-Prolog 4  http://www.swi-prolog.org/  Implementasi Prolog di Windows  Tuliskan fakta dan rules dalam berkas teks  Consult berkas teks dari IDE SWI-Prolog  File  Consult  Tuliskan kueri / goals Pemrograman Prolog – IKP213
  • 5. Contoh Silsilah Keluarga 5 Pemrograman Prolog – IKP213
  • 6. Fakta Silsilah Keluarga 6 parent(tom,bob). parent(pam,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim).  Relasi dengan arity 2  parent/2 Pemrograman Prolog – IKP213
  • 7. Kueri Prolog 7 parent(tom, X). X = bob ; X = liz ; false.  Siapa yang memiliki tom sebagai orang tua? parent(Y, ann). Y = bob ; false.  Siapa orang tua dari ann? Pemrograman Prolog – IKP213
  • 8. Kueri Prolog 8 parent(X, Y).  Menampilkan semua fakta  Cari semua X dan Y yang memenuhi relasi parent  Substitusi variabel dengan atom di dalam fakta yang ada  Tidak ada atom yang dapat mensubstitusi: false parent(badu, Y). false. Pemrograman Prolog – IKP213
  • 9. Konjungsi Kueri 9  Siapa grandparent dari jim?  Siapa parent dari jim? Y  Siapa parent dari Y? X  X adalah grandparent dari jim  parent(Y, jim), parent(X, Y).  Cari seseorang, Y, yang menjadi parent dari jim dan cari X yang menjadi orang tua dari Y Pemrograman Prolog – IKP213
  • 10. Fakta-fakta Baru 10 female(pam). female(liz). female(pat). female(ann). male(tom). male(bob). male(jim).  Relasi dengan arity 1 Pemrograman Prolog – IKP213
  • 11. Rules 11 offspring(X, Y) :- parent(Y, X).  X adalah offspring dari Y, jika Y adalah parent dari X mother(X,Y) :- parent(X,Y), female(X).  X adalah mother dari Y, jika X adalah parent dari Y dan X adalah female Pemrograman Prolog – IKP213
  • 12. Unifikasi 12  parent(X, liz).  Periksa semua fakta yang diberikan  Untuk fakta yang sama, terapkan algoritma Unifikasi  Disagreement set  parent(X, liz) dengan parent(tom, bob).  disagreement set {X, tom}  fail  parent(X, liz) dengan parent(tom, liz).  disagreement set {X, tom}  success Pemrograman Prolog – IKP213
  • 13. Resolusi 13  offspring(X, liz)  Terapkan algoritma unifikasi untuk rule offspring(X, Y)  disagreement set {liz, Y}  resolusi / menggantikan Head Goal offspring(X, Y) dengan sub-goal parent(Y, X)  unifikasi Y dengan liz pada sub-goal parent(Y, X)  Unifikasi sub-goal parent(liz, X) Pemrograman Prolog – IKP213
  • 14. Monkey and Banana Problem 14  States  Monkey at door  Monkey on floor  Box at window  Monkey does not have banana  Ultimate goal  state(X, Y, Z, has). Pemrograman Prolog – IKP213
  • 15. Monkey and Banana Problem 15  Allowable moves  grasp banana  climb box  push box  walk around  Prolog rule  move ( state(middle, onbox, middle, hasnot), grasp, state(middle, onbox, middle, has) ). Pemrograman Prolog – IKP213
  • 16. Monkey and Banana Problem 16  canget(state(atdoor, onfloor, atwindow, hasnot) ). Pemrograman Prolog – IKP213
  • 17. Ringkasan 17  Deklarasi clauses berupa fakta dan rules  Fakta dinyatakan dengan relasi  Fakta memuat Atom  Rules memuat Variabel  Kueri (Goals) memuat Variabel atau Atom Pemrograman Prolog – IKP213
  • 18. Latihan 18  Siapa grandparent dari ann?  Siapa grandchild dari bob?  Tuliskan rule aunt(X, Y)  Tuliskan rule hastwochildren(X)  Tuliskan rule hasdaughter(X)  Tuliskan rule grandchildren(X, Y) Pemrograman Prolog – IKP213
  • 19. Pustaka 19  SWI-Prolog, http://www.swi-prolog.org/  GNU-Prolog  Ivan Bratko, "Prolog Programming for Artificial Intelligence"  http://tjerdastangkas.blogspot.com/search/label/ikp213 Pemrograman Prolog – IKP213
  • 20. AKHIR PERTEMUAN 4 Rabu, 19 Oktober 2011