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

dokumen-dokumen yang mirip
BAB III LOGIC PROGRAMMING

Logic Programming (GNU PROLOG)

ALGORITMA PEMROGRAMAN 1C PEMROGRAMAN LOGIK

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

BAB IV STRUKTUR PROGRAM PROLOG

KONTRAK PERKULIAHAN BAHASA PEMROGRAMAN KOM204

REPRESENTASI PENGETAHUAN

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

BAB IV STRUKTUR PROGRAM PROLOG

11/18/2009. Julio Adisantoso 1. Bahasa Pemrograman Kuliah #1 18 November Tucker & Noonan Chapter 1

Konsep. Bahasa Pemrograman. Evangs Mailoa. Pertemuan 7

2.3 Algoritma Tidak Berhubungan dengan Bahasa Pemrograman Tertentu

Bahasa Pemrograman :: Pendahuluan

KOM204 : BAHASA PEMROGRAMAN

REPRESENTASI PENGETAHUAN

Bahasa Pemrograman :: Pemrograman List

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

Struktur Program Fungsional

Implementasi OOP Pada Perangkat Lunak Pemrograman

PENDAHULUAN 01/31/2013. Julio Adisantoso 1. Kontrak Kuliah. Bahasa Pemrograman Kuliah #1. Tata Tertib Mahasiswa

LOGIKA DAN ALORITMA. Pertemuan II:

Soal Ujian Akhir Semester Pendek TA. 2006/2007 D3-Manajemen Informatika

Modul 1 PENGENALAN PROLOG

BAB I PENDAHULUAN. 1.1 Latar Belakang

Bahasa Pemrograman :: Functional Programming

Paradigma Functional BAHASA PEMROGRAMAN. TIM PENGAJAR PEMROGRAMAN Departemen Ilmu Komputer IPB

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

MATEMATIKA DISKRIT. Logika

1.1 Sistem Komputer... 2

CCH1A4 / Dasar Algoritma & Pemrogramanan

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

Pemrograman Fungsional FAJAR SAPTONO, ST

BY : DRS. ABD. SALAM, MM

Algoritma Pemrograman 2B (Pemrograman C++)

Bahasa Pemrograman- TIS SKS

Refreshing Materi Kuliah Semester Pendek 2010/2011. Logika dan Algoritma. Heri Sismoro, M.Kom.

kusnawi.s.kom, M.Eng version

OPERATOR & UNGKAPAN. Contoh operator : a + b Simbol + merupakan operator untuk melakukan operasi penjumlahan dari kedua operandnya ( yaitu a dan b ).

Modul 1 Pengenalan Prolog

Saifoe El Unas 2. Free Format

KECERDASAN BUATAN Artificial Intelligence (AI)

MODUL 5 JAVA SCRIPT. Sub : PENGENALAN

kusnawi.s.kom, M.Eng version

Materi. Tipe, Variabel dan Operator Algoritma Pemrograman PENULISAN ALGORITMA PENULISAN ALGORITMA 15/03/2010 NAMA DAN EKSPRESI

BAB 5. Kondisional Perulangan. Materi. Pengenalan Perulangan Perulangan For Perulangan While Perulangan dengan menggunakan Kondisional If

BAHASA PEMROGRAMAN PROLOG

MODUL DUA VARIABEL DAN TIPE VARIABEL

BAHASA TINGKAT TINGGI

PERNYATAAN (PROPOSISI)

Rekursif. Rekursif adalah salah satu metode dalam dunia matematika dimana definisi sebuah fungsi mengandung fungsi itu sendiri.

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-5 Rekursif

Selamat Datang. MA 2151 Matematika Diskrit. Semester I 2008/2009

MI1264 DASAR ALGORITMA DAN PEMROGRAMAN

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

MATEMATIKA DISKRIT LOGIKA

Kecerdasan Buatan. Representasi Pengetahuan & Penalaran... Pertemuan 05. Husni

PTI 206 Logika. Semester I 2007/2008. Ratna Wardani

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2016

Logika Predikat (Kalkulus Predikat)

Variabel, Tipe Data, dan Operator. Oleh : Edi Sugiarto, S.Kom, M.Kom

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

Oleh : Fiftin Noviyanto

BAB II PROSES REKURSI DAN ITERASI

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Variabel, Operator Dan Ekspresi. Agus Priyanto, M.Kom

Bahasa FORTRAN. Saifoe El Unas. Apa FORTRAN itu?

BAB 2 PENGANTAR LOGIKA PROPOSISIONAL

RENCANA PEMBELAJARAN SEMESTER (RPS)

Selamat Datang. MA 2151 Matematika Diskrit. Semester I, 2012/2013. Rinovia Simanjuntak & Edy Tri Baskoro

Teknik Informatika, Fakultas Teknik, Universitas Brawijaya,

BAB II Tipe Data pada PHP

SATUAN ACARA PERKULIAHAN(SAP)

SUMBER BELAJAR PENUNJANG PLPG

Logika Matematika. Teknik Informatika IT Telkom

Berpikir Komputasi. Sisilia Thya Safitri, MT Citra Wiguna, M.Kom. 3 Logika Proposisional (I)

TABEL KEBENARAN. Liduina Asih Primandari, S.Si.,M.Si. P a g e 8

OPERATOR DAN UNGKAPAN

PIRANTI LUNAK PEMBUKTIAN PERNYATAAN LOGIKA PROPOSISI DENGAN METODE RESOLUSI MENGGUNAKAN BAHASA PEMROGRAMAN PROSEDURAL

5.3 RECURSIVE DEFINITIONS AND STRUCTURAL INDUCTION

Algoritma dan Struktur Data

Variabel dan Tipe data Javascript

Argumen premis konklusi jika dan hanya jika Tautolog

INTELEGENSI BUATAN. Sistem Pakar. M. Miftakul Amin, M. Eng. website :

Selamat Datang. MA 2251 Matematika Diskrit. Semester II, 2016/2017. Rinovia Simanjuntak & Saladin Uttunggadewa

Pertemuan 1: Pendahuluan dan Pengantar Algoritma

KONSEP DASAR. menyusunnya menjadi potongan-potongan mudah untuk ditangani dibanding. conquer.

Dbase Pendahuluan. Field 1 Field 2 Field 3 Field 4 Field 5

Bahasan Terakhir... Pencarian Iteratif. Pencarian Adversarial. Simulated Annealing Pencarian Tabu Mean Ends. Minimax (Min-Max) Alpha-Beta Pruning

Dasar Komputer dan Pemrograman. Konsep Tipe Data dan Operator Nama dan Nilai Data

LOGIKA MATEMATIKA. 3 SKS By : Sri Rezeki Candra Nursari

Rekursif/ Iterasi/ Pengulangan

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

Lecturer: Abdusy Syarif. Undergraduate Course Informatics Engineering Dept. Universitas Mercu Buana. Tipe Data

5.3 RECURSIVE DEFINITIONS AND STRUCTURAL INDUCTION

Krisna D. Octovhiana. 1.1 Apa itu Operator?

JavaScript (Dialog Box) Oleh : Devie Rosa Anamisa

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

Transkripsi:

KOM204 : BAHASA PEMROGRAMAN Pemrograman Logika Pertemuan 5 Learning Outcomes Mahasiswa dapat memahami prinsip dasar pemrograman logika, horn clause, logika predikat Mahasiswa dapat menulis program sederhana menggunakan Prolog Mahasiswa dapat merumuskan fakta, aturan, dan query dari suatu persoalan Outline Materi Pustaka acuan: Tucker & Noonan Benjamin J. Keller Outline Materi: Pemrograman logika Horn clause, logika predikat, dan bahasa deklaratif Fakta dan aturan Pemrograman logika menggunakan GNU Prolog Latihan Logic Programming Pemrograman deklaratif, mendeklarasikan tujuan komputasi, bukan menyusun algoritme secara detil. Disebut juga rule-based programming. Aplikasinya: Artificial intelligence, misalnya MYCIN Database information retrieval, misalnya SQL Fitur dari pemrograman logika: Nondeterministik, program bisa memperoleh banyak jawaban, tidak hanya satu jawaban Backtracking, lacak balik secara otomatis Horn clauses Program logika menggunakan ekspresi logika matematika untuk jawaban masalah. Dasar pemrograman logika adalah proposisi dan predikat. Salah satu bentuknya adalah Horn clause. Definisi: Horn clause memiliki sebuah head h yang disebut sebagai predikat, dan body sebagai daftar dari predikat p 1, p 2,., p n. Horn clauses Dapat ditulis sebagai h p 1, p 2,., p n Artinya, h adalah benar (true) hanya jika p 1, p 2,., p n secara simultan adalah benar. salju(c) hujan(c), beku(c) Julio Adisantoso 1

Logika Predikat Disebut juga kalkulus predikat. Dinyatakan dalam bentuk fakta dan aturan. lelaki(joko) // fakta menikah(joko, tuti) // fakta y x orang(y) ibu(x,y) // aturan x y [menikah(x,y) lelaki(x)] ~lelaki(y) lelaki, menikah, orang, ibu disebut relasi. Bahasa Deklaratif Prawiro adalah bapak dari Joko, ditulis: bapak(prawiro, joko). A adalah kakek dari Z, dibuat aturan: jika A bapaknya X dan X bapaknya Z atau jika A bapaknya X dan X ibunya Z ditulis sebagai kakek(a,z) :- bapak(a,x), bapak(x,z). kakek(a,z) :- bapak(a,x), ibu(x,z). Operator Relasi HANYA JIKA :- DAN, ATAU ; Fakta Kenyataan atau kebenaran yang diakui Menyatakan: Hubungan dua atau lebih obyek Sifat obyek bapak(prawiro, joko). merah(darah). asin(garam). Aturan Logika yg dirumuskan dalam bentuk relasi sebab-akibat dan hubungan implikasi. kakek(a,z) :- bapak(a,x), bapak(x,z). kakek(a,z) :- bapak(a,x), ibu(x,z). Variabel Argumen suatu predikat, berupa atom, variabel, atau obyek lain. Disebut sebagai TERM. Dua jenis variabel (diawali dengan huruf kapital): Bernama, misal: X, Joko, Orang Tak bernama (place holder): _ Simbol (diawali dengan huruf kecil), misalnya: joko, orang Julio Adisantoso 2

Compiler Prolog GNU Prolog (http://www.gprolog.org/) atau SWI Prolog (http://www.swi-prolog.org/) is a free Prolog compiler Prosedur : Tulis program prolog menggunakan editor yang mudah. Simpan file program sumber dengan nama *.pro, misalnya contoh1.pro Jalankan program Prolog Loading program, misalnya [contoh1] atau menggunakan menu File Consult. Jalankan query GNU dan SWI Prolog contoh1.pro kakek(x,z):- ayah(x,y), ayah(y,z). kakek(x,z):- ayah(x,y), ibu(y,z). ayah(john,bill). ayah(bill,mary). ayah(bill,tom). ayah(tom,chris). ayah(tom,bob). ibu(mary,june). ibu(mary,katie). Load and Query (contoh1.pro) LOAD :?- [contoh1]. QUERY :?- ayah(ayah,chris).?- kakek(x,chris). GNU Prolog Console Contoh2.pl ukuran(beruang, besar). ukuran(gajah, besar). ukuran(kucing, kecil). warna(beruang, coklat). warna(kucing, hitam). warna(gajah, kelabu). gelap(z):-warna(z, hitam). gelap(z):-warna(z, coklat). Julio Adisantoso 3

Load and Query (contoh2.pro) LOAD :?- [contoh2]. QUERY :?- gelap(z), ukuran(z,besar). Latihan #1 Buat program logika untuk menentukan hasil pengurangan bilangan pertama dan kedua. minus(a, B, C) :- C is A-B. Latihan #2 Buat program logika untuk menentukan bilangan terbesar dari dua bilangan Latihan #3 Buat program logika untuk menentukan nilai faktorial dari bilangan bulat n, n 0 maks(a, B, A) :- A >= B. maks(a, B, B) :- A < B. faktorial(0,1). faktorial(n,m) :- N1 is N-1, faktorial(n1,m1), M is N*M1. Latihan #4 Buat program logika untuk menentukan nilai deret fibonacci ke n, n 0 fibonacci(0) = 0 fibonacci(1) = 1 fibonacci(n) = fibonacci(n-1) + fibonacci(n-2) fib(0,0). fib(1,1). fib(n,m) :- N1 is N-1, N2 is N-2, fib(n1,m1), fib(n2,m2), M is M1+M2. Latihan #5 Buat program logika untuk menjumlahkan deret 1+2+3+ + n, n 1 jumlah(1,1). jumlah(n,m) :- N1 is N-1, jumlah(n1, M1), M is N + M1. Julio Adisantoso 4

Latihan #6 Buat program logika untuk menentukan a pangkat b, dimana a dan b bilangan bulat dan a,b 0 pangkat(a, 0, 1). pangkat(a, B, C) :- B1 is B-1, pangkat(a, B1, C1), C is A * C1. Julio Adisantoso 5