Pengantar bahasa prolog
This presentation is the property of its rightful owner.
Sponsored Links
1 / 35

PENGANTAR BAHASA PROLOG PowerPoint PPT Presentation


  • 111 Views
  • Uploaded on
  • Presentation posted in: General

PENGANTAR BAHASA PROLOG. M. Ezar Al Rivan, S.Kom. Bahasa PROLOG.

Download Presentation

PENGANTAR BAHASA PROLOG

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Pengantar bahasa prolog

PENGANTAR BAHASA PROLOG

M. Ezar Al Rivan, S.Kom


Bahasa prolog

Bahasa PROLOG

Merupakan bahasa pemrograman berjenis “Programming in Logic”. Dikembangkan oleh Alain Colmerauer dan P.Roussel di Universitas Marseilles Perancis, tahun1972. Prolog populer di Eropa untuk aplikasi artificial intelligence, sedangkan di Amerika peneliti mengembangkan aplikasi yang sama, yaitu LISP (John McCarthy-1956).


Kegunaan prolog

Kegunaan Prolog

Prolog digunakan secara khusus dalam bidang kecerdasan buatan yang meliputi:

sistem pakar (expert system),

pengolahan bahasa alami(natural language processing),

robotika,

logika dan ketidakpastian,

pengenalan pola dan gambar,

belajar, dan

simulasi pengolahan simbol.


Prolog dan bahasa pemrograman lainnya 1

Prolog danBahasaPemrogramanlainnya (1)

Bahasa pemrograman seperti: Basic, Pascal, C, Fortran, Java, dll disebut sebagai procedural Language.

Diperlukan algoritma atau prosedur-prosedur dalam memecahkan permasalahan.

Pemrogram harus memberitahu komputer bgm komputer hrs memecahkan masalah.


Prolog dan bahasa pemrograman lainnya 2

Prolog danBahasaPemrogramanlainnya (2)

Prolog disebut sebagai Object-Oriented Language atau Declarative Language.

Tidak mempunyai prosedur, tetapi mempunyai kumpulan data-data object (fakta) yang diolah dan direlasikan antar objek yang membentuk aturan (heuristik).


Prolog dan bahasa pemrograman lainnya 3

Prolog danBahasaPemrogramanlainnya (3)

Prolog menentukan Goal (tujuan) dan prolog menentukan bgm cara mencapainya. Cara dengan Formal Reasoning (membuktikan cocok tidaknya tujuan dg data-data yg ada dan relasinya).

Prolog bahasa pemrograman yang tidak terstruktur dan tidak mempunyai algoritma (prosedur) pemecahan, serta memecahkan permasalahan Non-Numerik.


Jendela utama prolog

JendelaUtama Prolog


Jendela utama prolog 1

JendelaUtama Prolog (1)

Editor: Tempat menuliskan program

Dialog: tempat keluaran hasil eksekusi program, dan tanyajawab antara prolog dan pemrogram.

Message:tempat tampilan pesan-pesan tentang aktivitas yg sedang dilakukan prolog seperti load program, save program, kompilasi serta tampilan pesan kesalahan.

Trace: digunakan waktu proses trace (eksekusi langkah demi langkah)


Menu utama prolog 2

Menu Utama Prolog (2)

Files : Penanganan File (load, save dll)

Edit : Menulis program dengan fasilitas editor

Run : Mengkompilasi dan mengeksekusi program

Compile : Hanya mengkompilasi program

Option : mengedit bagian program yg ditulis terpisah, Compiler Directive dan Option Linker

Setup : memilih warna editor, ukuran jendela, directory., dll


Mengubah jendela

Mengubah Jendela

Menggunakan F5 untuk zoom jendela yang aktif. Untuk kembali semula tekan F5 lagi.

Menggunakan F6 akan mengubah ukuran jendela dengan arah panah (shift –panah). Tekan Esc untuk kembali ke menu utama.


Menu compile

Menu Compile

Memory: mengkompilasi program dan hasilnya diletakkan di memori (sukses/gagal program yg telah dibuat).

Obj File: mengkompilasi dan menciptakan file.

Exe File: mengkompilasi program dan menciptakan file .OBJ dan .EXE

Project: mengkompilasi potongan program menjadi file .EXE

Link Only: membuat file .EXE dari file .OBJ yg telah dibuat sebelumnya.


Menu option

Menu Option

Map file off: menentukan pada saat kompilasi prolog menghasilkan .MAP atau tidak

Libraries: mengikutsertakan library

Edit PRJ: mengedit file (modul) yg tergabung dalam satu project

Compiler directives: menentukan alokasi memori (code, stack, trail, heap), cek run-time dll.


Menu setup

Menu SetUp

Colors: mengubah warna jendela Edit, Dialog, Message, Trace, Aux edit dan Pop up menu.

Window size: mengubah ukuran jendela

Directories: mengubah direktori yg aktive.

Miscellaneous: mengubah adapter CGA, modus layar, konfigurasi keyboard dan help

Load SYS file: memuat file .SYS yg berisi setting compiler terpadu (warna, direktori ,dll)


Fakta dan relasi

Fakta dan Relasi

Prolog terdiri dari kumpulan data-data objek yang merupakan suatu fakta. Fakta menunjukkan suatu keadaan atau situasi nyata maka fakta selalu benar.

Contoh fakta: Slamet adalah ayah amin

Dalam bahasa prolog: ayah(slamet, amin).

Ayah menunjukkan relasi.

Contoh lain: Anita adalah seorang mahasiswa.

Dalam bahasa prolog: wanita(anita).

  • Fakta dibedakan 2 macam :

    • Menunjukkan relasi.

    • Menunjukkan milik/sifat.

  • Penulisannya diakhiri dengan tanda titik “.”


Aturan rules

Aturan/Rules

Aturan adalah suatu pernyataan yg menunjukkan fakta-fakta berinteraksi satu dg yg lain untuk membentuk sebuah kesimpulan. Sebuah aturan dinyakatakan sebagai suatu kalimat bersyarat. Kata “if” adalah kata yang dikenal Prolog untuk menyatakan kalimat bersyarat atau disimbolkan dengan “:-“ .

Contoh: Tino suka jeruk

Aturan: Jojon suka sesuatu yang disukai oleh Tino

Kesimpulan: Jojon suka jeruk.

Dalam prolog:

Fakta: suka(tino,jeruk).

Aturan: suka(jojon,Sesuatu) if suka(tino,Sesuatu).

Atau: suka(jojon,Sesuatu) :- suka(tino,Sesuatu).


Aturan rules1

Aturan/Rules

Setiapaturanterdiridarikesimpulan(kepala) dantubuh.

Tubuhdapatterdiridari 1 ataulebihpernyataanatauaturan yang lain, disebutsubgoaldandihubungkandenganlogika “and”.

Aturanmemilikisifatthen/if conditional

“Kepala(head) benarjikatubuh (body) benar”.


Pertanyaan query

Pertanyaan/Query

Setelah fakta dan aturan di rangkai dalam sebuah program non prosedural, maka data-data dapat diberikan melui pertanyaan-pertanyaan.

Penulisannya diawali simbol “?-“ dan diakhiri tanda “.”.


Contoh query

Contoh Query:


Struktur bahasa prolog

Struktur Bahasa Prolog

Bagian 1: DOMAINS

Bagian 2: PREDICATES

Bagian 3: GOAL

Bagian 4: CLAUSES


Domains

DOMAINS

Berisi deklarasi (pernyataan) jenis data yg digunakan dalam fakta dan aturan.

Integer(bilangan bulat -32.768 s/d 32.767), Real(E-307 s/d E+308),Char(ex:‘a’,’I’, etc), String(“saya mahasiswa”, etc), Symbol(saya,tini,contoh_1), dan File.


Predicates

PREDICATES

  • Nama simbolik untuk relasi.

  • Syarat-syarat penulisan nama predikat :

    • Harus diawali dengan huruf kecil dan dapat diikuti dengan huruf, bilangan atau garis bawah.

    • Panjang nama predikat maksimum 250 karakter.

    • Tidak diperbolehkan menggunakan spasi, tanda minus, tanda bintang dan garis miring.

      Contoh fakta: ayah(slamet,amin)

      Ayah adalah predikat sedangkan slamet dan amin adalah symbol, dan diakhiri tanpa tanda titik.


Predicates1

PREDICATES

Variabel

Varibel adalah besaran yang nilainya dapat berubah-ubah.

Tata cara penulisan variabel :

Nama varibel harus diawali huruf besar atau garis bawah(_)

Nama variabel dapat terdiri dari huruf, bilangan, atau simbol dan merupakan kesatuan dengan panjang maksimum 250 karakter.

Nama variabel hendaknya mengandung makna yang berkaitan dengan data yang dinyatakannya.


Predicates2

PREDICATES

Contoh :

?- ayah(slamet,Anak).

Anak=budi ;

Anak=badu

No

Dari query di atas akan dicari siapakah anak dari ayah yang bernama Slamet. Karena mempunyai relasi yang sama (yaitu ayah), variabel Anak akan mencari nilai dari konstanta suatu fakta/aturan yang sepadan.

Tanda “;” digunakan bila terdapat kemungkinan ada lebih dari satu jawaban.

“No” berarti tidak ada lagi kemungkinan jawaban.


Clauses klausa

CLAUSES(Klausa)

Berisi fakta dan aturan yang membentuk keseluruhan program. Bagian ini mirip sebuah prosedur dalam bahasa pemrograman prosedural. Pada waktu mencari jawaban atas pertanyaan yg diberikan, maka prolog akan memeriksa klausa mulai dari fakta yg paling atas sampai ke bawah. Kemungkinan yg lebih besar ditempatkan paling awal daripada kemungkinan yg lebih kecil.


Contoh clauses

Contoh CLAUSES

CLAUSES

ayah(mahmud, jamal).

ayah(mahmud,wawan).

ayah(jamal,tukul).

kakek(mahmud,tukul).


Pengantar bahasa prolog

GOAL

Berisi pertanyaan yg akan diajukan ke prolog.

Goal dapat terdiri dari beberapa bagian yg disebut subgoal.

Note: pernyataan, baik fakta, relasi atau goal dikatkan satu apabila diakhiri tanda titik.


Contoh1

Contoh1:

DOMAINS

x,y = symbol

PREDICATES

suka(x,y)

CLAUSES

suka(tono,jeruk).

suka(tina,Sesuatu) if suka(tono,Sesuatu).


Contoh2

Contoh2:

DOMAINS

nama = symbol

PREDICATES

ayah(nama,nama)

kakek(nama,nama)

cucu(nama,nama)

saudara_kandung(nama,nama)

CLAUSES

/* Fakta */

ayah(slamet,jamal).

ayah(slamet,wawan).

ayah(jamal,badu).

ayah(jamal,tukul).

ayah(wawan,jojon).

ayah(wawan,tina).

/* aturan */

kakek(Kakek,Cucu) if ayah(Ayah,Cucu) and

ayah(Kakek,Ayah).

cucu(Cucu,Kakek) if ayah(Ayah,Cucu) and ayah(Kakek,Ayah).

saudara_kandung(X,Y) if ayah(Ayah,X) and ayah(Ayah,Y).


Pengantar bahasa prolog

DOMAINS

nama = symbol

PREDICATES

ayah(nama,nama)

anak(nama,nama)

kakek(nama,nama)

/* cucu(nama,nama)*/

saudarakandung(nama,nama)

sepupu(nama,nama)

CLAUSES

/* Fakta */

anak(jamal,slamet).

anak(wawan,slamet).

anak(badu,jamal).

anak(tukul,jamal).

anak(jojon,wawan).

anak(tina,wawan).

suami(slamet,tuti).

suami(jamal,weni).

ayah(Ayah1,Anak)if anak(Anak,Ayah1).

ibu(Ibu,Anak)if anak(Anak,Ayah)and suami(Ayah,Ibu).

saudarakandung(Anak1,Anak)if anak(Anak1,Ayah)

and anak(Anak,Ayah)

and Anak1<>Anak.

sepupu(X,Y):- anak(X,A1),anak(Y,A2),

saudarakandung(A1,A2).

kakek(Kakek,Cucu) if ayah(Ayah,Cucu) and

ayah(Kakek,Ayah).

/* cucu(Cucu,Kakek) if ayah(Ayah,Cucu) and ayah(Kakek,Ayah).

saudara_kandung(X,Y) if ayah(Ayah,X) and ayah(Ayah,Y).

*/


Contoh 3

Contoh 3:

DOMAINS

nama = symbol

PREDICATES

ayah(nama,nama)

kakek(nama,nama)

sepupu(nama,nama)

cucu(nama,nama)

CLAUSES

/* Fakta */

ayah(slamet,jamal).

ayah(slamet,wawan).

ayah(jamal,badu).

ayah(jamal,tukul).

ayah(wawan,jojon).

ayah(wawan,wani).

/* aturan */

kakek(Kakek,Cucu) if ayah(Ayah,Cucu) and

ayah(Kakek,Ayah).

cucu(Cucu,Kakek) if ayah(Ayah,Cucu) and ayah(Kakek,Ayah).

sepupu(Sepupu,Nama) if kakek(Kakek,Cucu) and ayah(Kakek,Ayah).


Contoh 4

Contoh 4:

DOMAINS

nama = symbol

PREDICATES

ayah(nama,nama) kakek(nama,nama)

sepupu(nama,nama) cucu(nama,nama)

saudara_kandung(nama,nama)

CLAUSES

/* Fakta */

ayah(slamet,jamal). ayah(slamet,wawan).

ayah(jamal,badu). ayah(jamal,tukul).

ayah(wawan,jojon). ayah(wawan,tina).

saudara_kandung(jamal,wawan). saudara_kandung(badu,tukul). saudara_kandung(jojon,tina).

/* aturan */

kakek(Kakek,Cucu) if ayah(Ayah,Cucu) and ayah(Kakek,Ayah).

cucu(Cucu,Kakek) if ayah(Ayah,Cucu) and ayah(Kakek,Ayah).

/* saudara_kandung(jamal,wawan) if ayah(slamet,jamal) and ayah(slamet,wawan).*/

sepupu(X,Y) if saudara_kandung(S1,S2) and ayah(S1,X) and ayah(S2,Y).


Persoalan

Persoalan:

FAKTA */

orang tua */

ayah(slamet,amin). ayah(slamet,anang).

ayah(amin,budi). ayah(amin,badu).

ayah(anang,didi). ayah(anang,dadi).

ayah(santoso,bu_amin). ayah(supardi,bu_anang).

ibu(bu_slamet,amin). ibu(bu_slamet,anang).

ibu(bu_amin,budi). ibu(bu_amin,badu).

ibu(bu_anang,didi). ibu(bu_anang,dadi).

ibu(bu_santoso,bu_amin).

ibu(bu_santoso,bu_anang).


Pengantar bahasa prolog

ATURAN */

Kakek adalah kakek Cucu */

kakek(Kakek,Cucu) :- ayah(Ayah,Cucu),ayah(Kakek,Ayah).

kakek(Kakek,Cucu) :- ibu(Ibu,Cucu),ayah(Kakek,Ibu).

Nenek adalah nenek Cucu */

nenek(Nenek,Cucu) :-ayah(Ayah,Cucu),ibu(Nenek,Ayah).

nenek(Nenek,Cucu) :-ibu(Ibu,Cucu),

ibu(Nenek,Ibu).


Pengantar bahasa prolog

Nama1 adalah saudara kandung Nama2

saudara_kandung(Nama,Name) :-ayah(Ayah,Nama),ayah(Ayah,Name),ibu(Ibu,Nama),

ibu(Ibu,Name),

Nama \= Name.

Sdr1 adalah saudara sepupu Sdr2

saudara_sepupu(Sdr1,Sdr2) :- ayah(Ayah1,Sdr1),ayah(Ayah2,Sdr2),saudara_kandung(Ayah1,Ayah2).


Pengantar bahasa prolog

saudara_sepupu(Sdr1,Sdr2) :-ayah(Ayah,Sdr1),ibu(Ibu,Sdr2),

saudara_kandung(Ayah,Ibu).

saudara_sepupu(Sdr1,Sdr2) :- ibu(Ibu,Sdr1), ayah(Ayah,Sdr2),

saudara_kandung(Ibu,Ayah).

saudara_sepupu(Sdr1,Sdr2) :-ibu(Ibu1,Sdr1), ibu(Ibu2,Sdr2),

saudara_kandung(Ibu1,Ibu2).


  • Login