1 / 35

PENGANTAR BAHASA PROLOG

PENGANTAR BAHASA PROLOG. M. Haviz Irfani , S.Si , M.T.I. Bahasa PROLOG.

matty
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PENGANTAR BAHASA PROLOG M. HavizIrfani, S.Si, M.T.I

  2. Bahasa PROLOG Merupakanbahasapemrogramanberjenis “Programming in Logic”. DikembangkanolehAlain ColmerauerdanP.RousseldiUniversitas Marseilles Perancis, tahun1972. Prolog populerdiEropauntukaplikasiartificial intelligence, sedangkandiAmerikapenelitimengembangkanaplikasi yang sama, yaituLISP (John McCarthy-1956).

  3. Kegunaan Prolog • Prolog digunakansecarakhususdalambidangkecerdasanbuatan yang meliputi: sistempakar (expert system), pengolahanbahasaalami(natural language processing), robotika, logikadanketidakpastian, pengenalanpoladangambar, belajar, dan simulasipengolahansimbol.

  4. Prolog danBahasaPemrogramanlainnya (1) Bahasapemrogramanseperti: Basic, Pascal, C, Fortran, Java, dlldisebutsebagai procedural Language. Diperlukanalgoritmaatauprosedur-prosedurdalammemecahkanpermasalahan. Pemrogramharusmemberitahukomputerbgmkomputer hrs memecahkanmasalah.

  5. Prolog danBahasaPemrogramanlainnya (2) Prolog disebutsebagai Object-Oriented Language atau Declarative Language. Tidakmempunyaiprosedur, tetapimempunyaikumpulan data-data object (fakta) yang diolahdandirelasikanantarobjek yang membentukaturan (heuristik).

  6. Prolog danBahasaPemrogramanlainnya (3) Prolog menentukan Goal (tujuan) dan prolog menentukanbgmcaramencapainya. Cara dengan Formal Reasoning (membuktikancocoktidaknyatujuan dg data-data ygadadanrelasinya). Prolog bahasapemrograman yang tidakterstrukturdantidakmempunyaialgoritma (prosedur) pemecahan, sertamemecahkanpermasalahan Non-Numerik.

  7. JendelaUtama Prolog

  8. JendelaUtama Prolog (1) Editor:Tempatmenuliskan program Dialog: tempatkeluaranhasileksekusi program, dantanyajawabantara prolog danpemrogram. Message:tempattampilanpesan-pesantentangaktivitasygsedangdilakukan prolog seperti load program, save program, kompilasisertatampilanpesankesalahan. Trace: digunakanwaktuproses trace (eksekusilangkahdemilangkah)

  9. Menu Utama Prolog (2) Files : Penanganan File (load, save dll) Edit : Menulis program denganfasilitas editor Run : Mengkompilasidanmengeksekusi program Compile : Hanyamengkompilasi program Option : mengeditbagian program ygditulisterpisah, Compiler Directive dan Option Linker Setup : memilihwarna editor, ukuranjendela, directory., dll

  10. MengubahJendela • Menggunakan F5 untuk zoom jendela yang aktif. Untukkembalisemulatekan F5 lagi. • Menggunakan F6 akanmengubahukuranjendeladenganarahpanah (shift –panah). Tekan Esc untukkembalike menu utama.

  11. Menu Compile Memory: mengkompilasi program danhasilnyadiletakkandimemori (sukses/gagal program ygtelahdibuat). Obj File: mengkompilasidanmenciptakan file. Exe File: mengkompilasi program danmenciptakan file .OBJ dan .EXE Project: mengkompilasipotongan program menjadi file .EXE Link Only: membuat file .EXE dari file .OBJ ygtelahdibuatsebelumnya.

  12. Menu Option Map file off: menentukanpadasaatkompilasi prolog menghasilkan .MAP atautidak Libraries: mengikutsertakan library Edit PRJ: mengedit file (modul) ygtergabungdalamsatu project Compiler directives: menentukanalokasimemori (code, stack, trail, heap), cek run-time dll.

  13. Menu SetUp Colors: mengubahwarnajendela Edit, Dialog, Message, Trace, Aux edit dan Pop up menu. Window size: mengubahukuranjendela Directories: mengubahdirektoriygaktive. Miscellaneous: mengubah adapter CGA, modus layar, konfigurasi keyboard dan help Load SYS file: memuat file .SYS ygberisi setting compiler terpadu (warna, direktori ,dll)

  14. FaktadanRelasi Prolog terdiridarikumpulan data-data objek yang merupakansuatufakta. Faktamenunjukkansuatukeadaanatausituasinyatamakafaktaselalubenar. Contohfakta: Slametadalah ayah amin Dalambahasa prolog: ayah(slamet, amin). Ayah menunjukkanrelasi. Contoh lain: Anita adalahseorangmahasiswa. Dalambahasa prolog: wanita(anita). • Faktadibedakan 2 macam : • Menunjukkanrelasi. • Menunjukkanmilik/sifat. • Penulisannyadiakhiridengantandatitik “.”

  15. Aturan/Rules • Aturanadalahsuatupernyataanygmenunjukkanfakta-faktaberinteraksisatu dg yg lain untukmembentuksebuahkesimpulan. Sebuahaturandinyakatakansebagaisuatukalimatbersyarat. Kata“if”adalahkata yang dikenal Prolog untukmenyatakankalimatbersyaratataudisimbolkandengan “:-“ . Contoh: Tinosukajeruk Aturan: Jojonsukasesuatu yang disukaiolehTino Kesimpulan: Jojonsukajeruk. Dalam prolog: Fakta: suka(tino,jeruk). Aturan: suka(jojon,Sesuatu) if suka(tino,Sesuatu). Atau: suka(jojon,Sesuatu) :- suka(tino,Sesuatu).

  16. Aturan/Rules • Setiapaturanterdiridarikesimpulan(kepala) dantubuh. • Tubuhdapatterdiridari 1 ataulebihpernyataanatauaturan yang lain, disebutsubgoaldandihubungkandenganlogika “and”. • Aturanmemilikisifatthen/if conditional • “Kepala(head) benarjikatubuh (body) benar”.

  17. Pertanyaan/Query Setelahfaktadanaturandirangkaidalamsebuah program non prosedural, maka data-data dapatdiberikanmeluipertanyaan-pertanyaan. Penulisannyadiawalisimbol “?-“ dandiakhiritanda “.”.

  18. Contoh Query:

  19. StrukturBahasa Prolog Bagian 1: DOMAINS Bagian 2: PREDICATES Bagian 3: GOAL Bagian 4: CLAUSES

  20. DOMAINS Berisideklarasi (pernyataan) jenis data ygdigunakandalamfaktadanaturan. Integer(bilanganbulat -32.768 s/d 32.767), Real(E-307 s/d E+308),Char(ex:‘a’,’I’, etc), String(“sayamahasiswa”, etc), Symbol(saya,tini,contoh_1), danFile.

  21. PREDICATES • Namasimbolikuntukrelasi. • Syarat-syaratpenulisannamapredikat : • Harusdiawalidenganhurufkecildandapatdiikutidenganhuruf, bilanganataugarisbawah. • Panjangnamapredikatmaksimum 250 karakter. • Tidakdiperbolehkanmenggunakanspasi, tanda minus, tandabintangdangaris miring. Contohfakta: ayah(slamet,amin) Ayah adalahpredikatsedangkanslametdanaminadalah symbol, dandiakhiritanpatandatitik.

  22. PREDICATES Variabel Varibeladalahbesaran yang nilainyadapatberubah-ubah. Tata carapenulisanvariabel : • Namavaribelharusdiawalihurufbesarataugarisbawah(_) • Namavariabeldapatterdiridarihuruf, bilangan, atausimboldanmerupakankesatuandenganpanjangmaksimum 250 karakter. • Namavariabelhendaknyamengandungmakna yang berkaitandengan data yang dinyatakannya.

  23. PREDICATES Contoh : ?- ayah(slamet,Anak). Anak=budi ; Anak=badu No • Dari query diatasakandicarisiapakahanakdari ayah yang bernamaSlamet. Karenamempunyairelasi yang sama (yaitu ayah), variabelAnakakanmencarinilaidarikonstantasuatufakta/aturan yang sepadan. • Tanda “;” digunakanbilaterdapatkemungkinanadalebihdarisatujawaban. • “No” berartitidakadalagikemungkinanjawaban.

  24. CLAUSES(Klausa) Berisifaktadanaturan yang membentukkeseluruhan program. Bagianinimiripsebuahprosedurdalambahasapemrogramanprosedural. Padawaktumencarijawabanataspertanyaanygdiberikan, maka prolog akanmemeriksaklausamulaidarifaktayg paling atassampaikebawah. Kemungkinanyglebihbesarditempatkan paling awaldaripadakemungkinanyglebihkecil.

  25. Contoh CLAUSES CLAUSES ayah(mahmud, jamal). ayah(mahmud,wawan). ayah(jamal,tukul). kakek(mahmud,tukul).

  26. GOAL Berisipertanyaanygakandiajukanke prolog. Goal dapatterdiridaribeberapabagianygdisebutsubgoal. Note: pernyataan, baikfakta, relasiatau goal dikatkansatuapabiladiakhiritandatitik.

  27. Contoh1: DOMAINS x,y = symbol PREDICATES suka(x,y) CLAUSES SUKA(tono,jeruk). SUKA(tina,Sesuatu) if suka(tono,Sesuatu).

  28. 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).

  29. 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).

  30. 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).

  31. Persoalan: FAKTA */ orangtua */ 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).

  32. ATURAN */ KakekadalahkakekCucu */ kakek(Kakek,Cucu) :- ayah(Ayah,Cucu),ayah(Kakek,Ayah). kakek(Kakek,Cucu) :- ibu(Ibu,Cucu),ayah(Kakek,Ibu). NenekadalahnenekCucu */ nenek(Nenek,Cucu) :-ayah(Ayah,Cucu), ibu(Nenek,Ayah). nenek(Nenek,Cucu) :-ibu(Ibu,Cucu), ibu(Nenek,Ibu).

  33. Nama1 adalahsaudarakandung Nama2 saudara_kandung(Nama,Name) :- ayah(Ayah,Nama),ayah(Ayah,Name),ibu(Ibu,Nama), ibu(Ibu,Name), Nama \= Name. Sdr1 adalahsaudarasepupu Sdr2 saudara_sepupu(Sdr1,Sdr2) :- ayah(Ayah1,Sdr1),ayah(Ayah2,Sdr2), saudara_kandung(Ayah1,Ayah2).

  34. 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).

  35. SELESAI

More Related