PENGANTAR BAHASA PROLOG

Slides:



Advertisements
Presentasi serupa
PEMROGRAMAN TERSTRUKTUR BAHASA C/C++ Pemrograman Terstruktur Bahasa C
Advertisements

WELCOME TO VISUAL BASIC
Pasangan Pola Pasangan Pola.
Pengenalan Prolog Pengenalan Prolog.
- PERTEMUAN 1 - DASAR-DASAR ALGORITMA, PROGRAM, DAN PEMROGRAMAN
ALGORITMA & PEMROGRAMAN I-A
Teknik Kompilasi Febuari 2013.
Matakuliah : Algoritma & Struktur Data Versi Materi
PEMROGRAMAN TERSTRUKTUR
Pengantar Intelegensia Buatan (IB) M. Haviz Irfani, S.Si, M.T.I.
M. Haviz Irfani, S.Si, M.T.I. Menurut Alan Turing “Jika sebuah mesin dapat membuat seseorang percaya bahwa dirinya mampu berkomunikasi dengan orang lain,dapat.
PENGANTAR BAHASA PROLOG
STRUKTUR DATA.
Pengantar Intelegensia Buatan (IB). Pengertian IB H. A. Simon [1987] : “ Kecerdasan buatan (artificial intelligence) merupakan kawasan penelitian, aplikasi.
Representasi Pengetahuan
Pengendalian Alur.
Pengantar Intelegensia Buatan (IB)
Logika & Algoritma -- Pertemuan II: Variabel dan Operator Logika & Algoritma --
Pengenalan dan Instalasi Dbase
BAHASA PEMROGRAMAN PROLOG
1. Goal Majemuk dan Unifikasi 2. Runut Balik 3. Input/Output Prolog
Tipe Data, Variabel, dan Konstanta
Praktikum Dasar-Dasar Pemrograman
Pendahuluan Definisi :
Penggunaan Data dan Variabel
PENGANTAR INTELEGENSIA BUATAN (IB) M. Ezar Al Rivan.
SEKUENSIAL Christine Dewi S.Kom, M.Cs,. bestfriends406.blogspot.com
Pengantar Intelegensia Buatan (IB)
Algoritma dan Pemrograman
Pemrograman Dasar Kelas X.
ALGORITMA PEMROGRAMAN 1C (KONSEP BAHASA PEMROGRAMAN)
ANALISA DAN DESAIN ALGORITMA
Pengantar Pemrograman Basis Data (PPBD)
PRAKTIKUM ALGORITMA PEMROGRAMAN
Notasi Algoritma & Tipe Data
Bahasa Pemprograman Dasar Pertemuan 2
1. Goal Majemuk dan Unifikasi 2. Runut Balik 3. Input/Output Prolog
Bab VI : Inferensi pada FOL
Pemrograman Visual Oleh : Erni Fatmawati.
KONSEP DASAR PEMROGRAMAN
Intelegensia Buatan Silabus Perkembangan AI
Pemrograman Terstruktur
BAB 1 BAHASA PEMROGRAMAN
Algoritma dan Pemrograman 2A
BAHASA PEMROGRAMAN TERSTRUKTUR
Representasi & penalaran
Materi 1 Pengantar Kecerdasan Buatan
BAHASA PEMROGRAMAN PROLOG
BAHASA PEMROGRAMAN.
Kecerdasan buatan.
ALGORITMA PEMROGRAMAN 1C (KONSEP BAHASA PEMROGRAMAN)
Pertemuan 2 (Perkenalan Bahasa C) .:: Erna Sri Hartatik ::.
Konsep Dasar Bahasa Pascal
Sindy Nova Algoritma dan Pemrograman 1A
1. Goal Majemuk dan Unifikasi 2. Runut Balik 3. Input/Output Prolog
Pengenalan Visual Basic
ALGORITMA PEMROGRAMAN DASAR
PARADIGMA DALAM PEMOGRAMAN
Praktikum pengantar kecerdasan buatan (pkb)
Representasi Pengetahuan
DASAR PEMROGRAMAN KOMPUTER
REPRESENTASI PENGETAHUAN (KNOWLEDGE REPRESENTATION)
Pengenalan Borland Delphi 7.0
Keterampilan komputer 1AB
STRUKTUR DATA Konsep Dan Arsitektur.
Pemrograman, Bahasa C dan Jenis Data Utama
Pemrogram 1 Agus Darmawan, S.kom.
ALGORITMA DAN PEMROGRAMAN
Ilustrasi Proses Kompilasi
PEMROGRAMAN BERBASIS AI (PROLOG)
Transcript presentasi:

PENGANTAR BAHASA PROLOG M. Haviz Irfani, S.Si, M.T.I PENGANTAR 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 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) 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 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 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

Jendela Utama 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) 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 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 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 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 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 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 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/Rules Setiap aturan terdiri dari kesimpulan(kepala) dan tubuh. Tubuh dapat terdiri dari 1 atau lebih pernyataan atau aturan yang lain, disebut subgoal dan dihubungkan dengan logika “and”. Aturan memiliki sifat then/if conditional “Kepala(head) benar jika tubuh (body) benar”.

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 “.”.

Prolog dan Jawaban Program Contoh Query: Pertanyaan Prolog dan Jawaban Program Apakah Tini suka boneka ? ?- suka(tini,boneka). Yes ……. (jika faktanya Tini suka boneka) No……..…(jika tidak sesuai fakta). Apakah yang disukai Tini ? ?- suka(tini,Apa). Apa=boneka Siapakah yang suka boneka ? ?- suka(Siapa,boneka). Siapa=tini Dari contoh silsilah keluarga di atas : Siapakah kakek Budi ? Siapakah cucu Slamet ? ?- kakek(Siapa,budi). Siapa=slamet ?- kakek(slamet,Cucu). Cucu=budi ; Cucu=badu (jika kemungkinan ada lebih dari satu jawaban gunakan tanda “;” pada akhir setiap jawaban).

Struktur Bahasa Prolog Bagian 1: DOMAINS Bagian 2: PREDICATES Bagian 3: GOAL Bagian 4: CLAUSES

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

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.

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) 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 CLAUSES ayah(mahmud, jamal). ayah(mahmud,wawan). ayah(jamal,tukul). kakek(mahmud,tukul).

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: DOMAINS x,y = symbol PREDICATES suka(x,y) CLAUSES SUKA(tono,jeruk). SUKA(tina,Sesuatu) if suka(tono,Sesuatu).

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

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

ATURAN. / Kakek adalah kakek Cucu 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).

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

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

SELESAI