Logic Programming (GNU PROLOG)

dokumen-dokumen yang mirip
Pemrograman Logika 03/09/2014. Julio Adisantoso 1. Learning Outcomes KOM204 : BAHASA PEMROGRAMAN. Outline Materi. Logic Programming.

BAB III LOGIC PROGRAMMING

Modul Pratikum Sistem Pakar (Modul 3)

Sistem Pakar Pencarian Silsilah Keluarga Menggunakan Pemrograman Prolog

REPRESENTASI PENGETAHUAN

REPRESENTASI PENGETAHUAN

ALGORITMA PEMROGRAMAN 1C PEMROGRAMAN LOGIK

BAB IV STRUKTUR PROGRAM PROLOG

REPRESENTASI PENGETAHUAN

Konsep. Bahasa Pemrograman. Evangs Mailoa. Pertemuan 7

BAB IV STRUKTUR PROGRAM PROLOG

BAB I PENDAHULUAN. 1.1 Latar Belakang

Tools Pembangun Sistem Pakar

Pengenalan Prolog. Teny Handhayani. Referensi: Programming in Prolog by William F. Clocksin & Christopher S. Mellish

Penggunaan Algoritma Runut-Balik dalam Proses Resolusi Query dari Eksekusi Program dalam Bahasa Prolog

PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG TK Pengantar Prolog Hand On Lab 1 Inteligensi Buatan 100 menit

Back end. Generate soal. logic. Generate plan. output. N-puzzle solved GUI. Parsing output dari solver

Implementasi OOP Pada Perangkat Lunak Pemrograman

Modul 1 PENGENALAN PROLOG

REPRESENTASI PENGETAHUAN

ALGORITMA DAN PEMROGRAMAN #2

PENGANTAR LOGIKA INFORMATIKA

ARGUMENTASI. Kalimat Deklaratif Kalimat Deklaratif (Proposisi) adalah kalimat yang bernilai benar atau salah, tetapi tidak keduanya.

P3 Pengantar Pemrograman C

Pertemuan 1. Pendahuluan Proposisi Jenis-Jenis Proposisi

ANALISIS PERMAINAN KATA MENGGUNAKAN ALGORITMA PEMROGRAMAN ANAGRAM DAN SUBANAGRAM

LOGIKA PREDIKAT. Logika predikat disebut juga kalkulus predikat (predicate calculus) atau first order predicate logic.

Perkenalan. Kuliah Kecerdasan Buatan Semester genap 2006/2007. Feb 28, KB-Slide-01

Part 2 - Algoritma & Pemrograman Konsep dasar Pemrograman

Logika Proposisi. Pertemuan 2 (Chapter 10 Schaum, Set Theory) (Chapter 3/4 Schaum, Theory Logic)

DASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom

3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta

LOGIKA PREDIKAT. Altien Jonathan Rindengan, S.Si, M.Kom

Berpikir Komputasi. Sisilia Thya Safitri, MT Citra Wiguna, M.Kom. 5 Problem Decomposition 24 Oktober 2017

SATUAN ACARA PERKULIAHAN (SAP)

Saifoe El Unas 2. Free Format

Algoritma dan Pemrograman. Pertemuan Ke-1 Pengantar Algoritma

DISTRIBUSI SATU PEUBAH ACAK

p2(x)

Alat bantu (tools) dalam pembuatan parser/ analisis sintaksis. Menggunakan simbol persegi panjang untuk non terminal

Matematika Industri I

Pemrograman dan Bahasa Pemrograman

SUMBER BELAJAR PENUNJANG PLPG

Pertemuan 1: Pendahuluan dan Pengantar Algoritma

BAB II DASAR TEORI. Sistem pakar atau Expert System biasa disebut juga dengan knowledge

BAB 2 PENGANTAR LOGIKA PROPOSISIONAL

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++

PEMROGRAMAN TERSTRUKTUR MENGGUNAKAN MATLAB

BAB III ANALISA DAN PERANCANGAN

KONTRAK PERKULIAHAN BAHASA PEMROGRAMAN KOM204

BAB II DASAR TEORI. 2.1 Sistem Diagnosa Penyakit berbasis Perangkat Lunak. sekali penyakit-penyakit yang pada akhirnya terlambat didiagnosa sehingga

SATUAN ACARA PERKULIAHAN MATA KULIAH : SISTEM CERDAS (AK014226) FAKULTAS / JURUSAN : TEKNIK KOMPUTER / D3 SKS/SEMESTER : 2/5

KALIMAT DEKLARATIF (Minggu ke-1 dan 2)

Distribusi Peluang Kontinu. Bahan Kuliah II2092 Probabilitas dan Statistik Oleh: Rinaldi Munir Sekolah Teknik Elektro dan Informatika ITB

Algoritma dan Struktur Data

PERNYATAAN (PROPOSISI)

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular

IT234 ALGORITMA DAN STRUKTUR DATA

SATUAN ACARA PERKULIAHAN MATA KULIAH PEMROGRAMAN TERSTRUKTUR (D3-TK) KODE / SKS : KK / 4 SKS

LOGIKA PROPOSISI. Bagian Keempat : Logika Proposisi

Algoritma dan Pemrograman

P10 Seleksi & Perulangan

BAB III DASAR DASAR LOGIKA

BAHASA PEMROGRAMAN PROLOG

programming Proses perancangan, penulisan, pengujian,

MA3231 Analisis Real

Algoritma dan Struktur Data

MATEMATIKA INFORMATIKA 2 FUNGSI

BAB 1 KONSEP DASAR BAHASA C

BAB 2 SINTAKs DAN LOGIKA PROLOG

FUNGSI MATEMATIKA SISTEM INFORMASI 1

BAHASA TINGKAT TINGGI

Bahasa Pemrograman :: Pemrograman List

PENGAMBILAN KEPUTUSAN

MATERI I PENGENALAN BAHASA PROLOG

IT132. Ramos Somya, S.Kom., M.Cs.

MATERI KULIAH ALGORITMA DAN PEMROGRAMAN I (2 SKS)

KECERDASAN BUATAN Artificial Intelligence (AI)

Pemanfaatan Pohon dalam Realisasi Algoritma Backtracking untuk Memecahkan N-Queens Problem

P - 3 Bab 2 : Pengantar Pemrograman C

KONSEP DASAR LOGIKA MATEMATIKA. Riri Irawati, M.Kom Logika Matematika - 3 sks

Review: Algoritme dan Program 12/29/2011. Algoritme dan Pemrograman. Review: Bagaimana memecahkan masalah dengan komputer?????

TEKNIK KOMPILASI (TEKKOM) ISTIQOMAH, S.KOM /SEMESTER VI

PRAKTIKUM 4 PENGAMBILAN KEPUTUSAN

11. FUNGSI MONOTON (DAN FUNGSI KONVEKS)

P9 Seleksi & Perulangan

1. Memahami pengertian proposisi dan predikat. 3. Memahami penggunaan penghubung dan tabel kebenaran

Bahasa Pemrograman 2.

Konstruksi Dasar Algoritma

4. Melakukan pengawasan terhadap kinerja proyek merupakan pengertian dari... a. Chronicling b. Perubahan c. Analisa d. Bottlenecks

PEMROGRAMAN BAHASA C BAB II 2.1 STRUKTUR BAHASA C

Universitas Komputer Indonesia

PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG TK Mendalami SWI Prolog Hand On Lab 2 Inteligensi Buatan 100 menit

DASAR DASAR LOGIKA. Kalimat Deklaratif (Proposisi) adalah kalimat yang bernilai benar atau salah, tetapi tidak keduanya.

Pengenalan Logika Informatika. Pertemuan 1 Viska Armalina, ST.,M.Eng

Pengenalan Pascal/DevPascal

DASAR-DASAR LOGIKA 1

Materi Kuliah Matematika Komputasi FUNGSI

Dasar-Dasar Pengujian Perangkat Lunak. Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma

LOGIKA DAN BUKTI. Drs. C. Jacob, M.Pd

Transkripsi:

Logic Programming (GNU PROLOG) Departemen Ilmu Komputer FMIPA IPB 2013 Prolog adalah bahasa yang deklaratif (dari sekumpulan fakta dan aturan, prolog akan menyelesaikan problem secara deduktif menarik kesimpulan dari fakta dan aturan yang ada)

#1. Struktur Program Turbo Prolog Departemen Ilmu Komputer FMIPA IPB 2013

Prolog Fakta: kenyataan/kebenaran yang diakui Menyatakan: Hubungan dua atau lebih obyek Sifat obyek Fakta sebaiknya diletakkan dalam satu kelompok yang sama membentuk prosedur Contoh: Aturan bapak(prawiro, joko). merah(darah). Logika yang dirumuskan dalam bentuk sebab-akibat dan hubungan implikasi Contoh: kakek(a,z) :- bapak(a,x), bapak(x,z). kakek(a,z) :- bapak(a,x), ibu(x,z). Kepala klausa Body (sub clause) cs.ipb.ac.id 3

Prolog Variabel/Term Argumen suatu predikat Berupa atom, variabel, atau obyek lain Jenis variabel: Bernama, misalkan: X, Joko, Orang Tak bernama, misalkan: _ Simbol (diawali dengan huruf kecil), misalkan: joko, orang Proses pencarian fakta dari klausa paling atas sampai paling bawah cs.ipb.ac.id 4

Compiler Prolog 1 GNU Prolog (http://www.gprolog.org ) Free prolog compiler Prosedur: Tulis program prolog dengan menggunakan editor Simpan file source code dengan nama: *.pl Jalankan program gprolog.exe Loading source code yang sudah dibuat [namafile]. Jalankan kueri cs.ipb.ac.id 5

Goal (1) Pada Turbo Prolog Goal Goal ekternal Goal internal Goal internal hanya akan menghasilkan jawaban yang pertama kali ditemukan (tidak akan mencari alternatif jawaban setelah suatu jawaban diperoleh), berbeda dengan goal eksternal yang selalu berusaha mencari jawaban lain sampai habis Non-deterministik : solusi lebih dari satu (meninggalkan lacak balik saat program selesai dieksekusi) cs.ipb.ac.id 6

Goal (2) Change_directory( path ). Contoh program1.pl likes(ellen, tennis). likes(john, football). likes(tom, baseball). likes(tom, swimming). likes(tom, tennis). likes(eric, swimming). likes(mark, tennis). likes(bill, Activity) :- likes(tom, Activity). if cs.ipb.ac.id 7

Goal (3) Goal1: likes(bill,apa) <ENTER> Goal2: likes(tom,apa), write(apa), nl, likes(bill,apa), write(apa),nl. cs.ipb.ac.id 8

Contoh program2.pl ukuran(beruang,besar). ukuran(gajah,besar). ukuran(kucing,kecil). ukuran(harimau,besar). ukuran(singa, besar). ukuran(kuda, besar). warna(beruang,coklat). warna(gajah,kelabu). warna(kucing,hitam). warna(kuda, coklat). warna(singa,coklat). warna(harimau,coklat). gigi(gajah,tak_bertaring). gigi(harimau,bertaring). gigi(singa,bertaring). gigi(kucing,bertaring). gigi(beruang,bertaring). gigi(kuda,tak_bertaring). gelap(z):-warna(z,hitam). gelap(z):-warna(z,coklat). cs.ipb.ac.id 9

Goal (5) Goal1: gelap(apa)<enter> warna(apa, hitam)<enter> ukuran(binatang,_)<enter> Goal2: gelap(z), ukuran(z,besar), write(z). cs.ipb.ac.id 10

Latihan : Berdasar program2.pl Buat program untuk : 1. Clausa yang menyatakan bahwa hewan buas adalah hewan yang berwarna gelap, berbadan besar, dan gigi bertaring. 2. Clausa yang menyatakan bahwa hewan jinak adalah hewan yang berwarna terang, gigi tak bertaring dan berbadan kecil. cs.ipb.ac.id 11

Predikat NOT (1) Contoh clauses predikat () :- predikat (), predikat (),... head body Not tidak boleh dilekatkan pada kepala klausa. cs.ipb.ac.id 12

Predikat NOT \+ (2) Contoh penggunaan NOT (program3.pl) sayang(x):- binatang(x), \+ ular(x). binatang(kucing). binatang(kobra). binatang(ayam). ular(kobra). ular(piton). cs.ipb.ac.id 13

Predikat NOT (3) Goal1: sayang(apa).<enter> Goal2: sayang(x), write(x). cs.ipb.ac.id 14

Lacak Balik (1) Prolog mencari jawaban di tempat terdalam terlebih dahulu (depthfirst search) cs.ipb.ac.id 15

Lacak Balik (2) suka(didit,x) :- makanan(x), berasa(x,keju). berasa(roti,tawar). berasa(pia,coklat). berasa(pia,susu). berasa(pia,keju). makanan(roti). makanan(kripik). makanan(pia). cs.ipb.ac.id 16

Lacak Balik Goal: suka(didit,apa)<enter> cs.ipb.ac.id 17

Latihan 1 Jelaskan proses dan hasil dari lacak balik (backtrack) slide 15. Ilustrasikan proses lacak balik yang terjadi! cs.ipb.ac.id 18

Latihan 2 Apakah output dari program prolog berikut? Jelaskan! type(mamalia, animal). type(fish, animal). is_a(zebra, mamalia). is_a(herring, fish). is_a(shark, fish). lives(zebra, on_land). lives(frog, on_land). lives(frog, in_water). lives(shark, in_water). can_swim(y) :- type(x, animal),is_a(y, X), lives(y, in_water). Goal : can_swim(binatang). cs.ipb.ac.id 19

Latihan 3 : Unifikasi Misalkan f, g, p, q, r : predikat/klasusa A, B, C, D : variabel x, y : masing- masing konstanta yang berbeda s, t : data majemuk apakah statement berikut mengalami unifikasi atau tidak? Jelaskan! 1. f(x) dengan g(x) 9. p(x,y) dengan f(x) 2. f(a) dengan f(b) 10. p(x,a) dengan p(b,y) 3. f(x) dengan f(a) 11. q(a,b,a) dengan q(c,c,y) 4. f(x) dengan f(y) 12. r(s(a),s(b)) dengan r(s(x),c) 5. f(x) dengan f(x) 13. r(a,a) dengan r(b,s(b)) 6. f(x) dengan f 14. f(t(a,b)) dengan f(t(x,y)) 7. p(b,b) dengan p(x,y) 8. p(a,x) dengan p(b,c) cs.ipb.ac.id 20

Latihan 4 Buat program logika untuk menentukan hasil pengurangan bilangan pertama dan kedua cs.ipb.ac.id 21