Prerequisites. Computational Logic Bagian Kedua: Logic Programming. Software : Textbook:

dokumen-dokumen yang mirip
ALGORITMA PEMROGRAMAN 1C PEMROGRAMAN LOGIK

Pemrograman Lanjut. Interface

Bahasa Pemrograman :: Pendahuluan

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

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

KOM204 : BAHASA PEMROGRAMAN

MI1264 DASAR ALGORITMA DAN PEMROGRAMAN

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

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

ABSTRACT. Keyword: Algorithm, Depth First Search, Breadth First Search, backtracking, Maze, Rat Race, Web Peta. Universitas Kristen Maranatha

ABSTRAK. Kata kunci: Sistem Tanya Jawab, Semantic Web, Ontology, domain terbatas. v Universitas Kristen Maranatha

PIRANTI LUNAK UNTUK MENDESAIN PROGRAM DALAM BAHASA PEMROGRAMAN C BERDASARKAN HOARE LOGIC

DAFTAR ISI.. LEMBAR PENGESAHAN SURAT PERNYATAAN ABSTRAK.. ABSTRACT... DAFTAR TABEL.. DAFTAR PERSAMAAN..

DAFTAR ISI ABSTRAK ABSTRACT KATA PENGANTAR

Pemrograman Web. Object Oriented Programming in PHP 5

1/5. while and do Loops The remaining types of loops are while and do. As with for loops, while and do loops Praktikum Alpro Modul 3.

TIF APPLIED MATH 1 (MATEMATIKA TERAPAN 1) Week 3 SET THEORY (Continued)

Adam Mukharil Bachtiar English Class Informatics Engineering Algorithms and Programming Searching

ABSTRAK. Universitas Kristen Maranatha

Membuat sebuah program

T DAR INTEGRAL TAK MUTLAK

Sistem Basis Data. Pertemuan 3 : Modeling Data in Organization Andronicus Riyono, M.T.

Nama Soal Pembagian Ring Road Batas Waktu 1 detik Nama Berkas Ringroad[1..10].out Batas Memori 32 MB Tipe [output only] Sumber Brian Marshal

programming Proses perancangan, penulisan, pengujian,

Pemrograman Lanjut Class and Object PTIIK

Kecerdasan Buatan B Artificial Inttelligent CEH3I3 PRODI SISTEM KOMPUTER UNIVERSITAS TELKOM BANDUNG 2017

ORGANISASI DAN ARSITEKTUR KOMPUTER

Aplikasi Penyebaran CA ISO20022 Indonesia English

KRIPTOGRAFI VISUAL DENGAN ALGORITMA ELGAMAL YANG DIMODIFIKASI UNTUK CITRA BERWARNA DENGAN TIGA CITRA HASIL ENKRIPSI MENGGUNAKAN PERANGKAT LUNAK MATLAB

IKI 30320: Sistem Cerdas Kuliah 11: Logical Inference & Wumpus Agent

PRAKTIKUM PEMROGRAMAN DASAR

LANGUAGES AND TRANSLATOR

CSG2H3 Object Oriented Programming. Inheritance -RSM-

ANALISIS CAPAIAN OPTIMASI NILAI SUKU BUNGA BANK SENTRAL INDONESIA: SUATU PENGENALAN METODE BARU DALAM MENGANALISIS 47 VARIABEL EKONOMI UNTU

ABSTRAK. Kata kunci: chatbot, information state, mixture-language model. v Universitas Kristen Maranatha

Outline. Struktur Data & Algoritme (Data Structures & Algorithms) Pengantar. Definisi. 2-3 Trees

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

Konsep Bahasa Pemrograman

GAME CATUR JAWA WITH REINFORCEMENT LEARNING

JURUSAN PENDIDIKAN BAHASA INGGRIS Alamat: Karangmalang, Yogyakarta (0274) , Fax. (0274) http: //

SYLLABUS DAN PENDAHULUAN. Astrid Lestari Tungadi, S.Kom., M.TI.

Pemrograman dan Bahasa Pemrograman

Konsep. Bahasa Pemrograman. Evangs Mailoa. Pertemuan 7

SENTENCE ANALYSIS WITH ARTIFICIAL INTELLIGENCE MACHINE LEARNING USING FINITE STATE AUTOMATA

PEMANFAATAN TRANSFORMASI WAVELET SEBAGAI EKSTRAKSI CIRI PADA KLASIFIKASI BERTINGKAT SINYAL EKG

Rahasia Cermat & Mahir Menguasai Akuntansi Keuangan Menengah (Indonesian Edition)

Adam Hendra Brata Teknik Informatika FILKOM UB Semester Genap 2015/2016

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

APLIKASI SIMULASI METODE PENCARIAN LINIER, BINER DAN INTERPOLASI SEBAGAI MEDIA PEMBELAJARAN

Pendahuluan. Algoritma


Apa yang harus kita kenali?

E-Commerce. Lesson 2. Nizar Rabbi Radliya PHP : Variable, Constant, Data Type, Operator. 2 SKS Semester 7 UNIKOM

Sistem Informasi. Soal Dengan 2 Bahasa: Bahasa Indonesia Dan Bahasa Inggris

PERANCANGAN APLIKASI ABSENSI KELAS BERBASIS SMS GATEWAY

PAM 271 PENGANTAR TEORI GRAF

Virtual Memory Ch. 9. Virtual Memory. SISTIM OPERASI (Operating System) IKI Johny Moningka

USER INTERFACE DALAM DESAIN MODEL PENAKSIR RESPON EMOSI

12/8/2012 MODUL -10. Apa itu SPSS? Apa yang bisa dilakukan SPSS? Apa kesamaan SPSS dengan Microsoft Office Excel?

Data Structures. Class 5 Pointer. Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved.

32-bit and 64-bit Windows: Frequently asked questions

E-R Diagram. Bagian IIb Relationship Terminologi

SKRIPSI PEMBANGUNAN PERANGKAT LUNAK PENCARIAN JUDUL BUKU DENGAN MENGGUNAKAN ALGORITMA MINIMUM EDIT DISTANCE

ABSTRAK. Kata Kunci: Data Fisik, Data Digital, Kehilangan Data, Backup Manager. vi Universitas Kristen Maranatha

SIMULASI GERBANG LOGIKA MENGGUNAKAN BAHASA PEMROGRAMAN BORLAND DELPHI 7.0. Disusun oleh: MOHAMAD FATCHUR ROHMAN J0D

Fungsi Bahasa pemrograman adalah sebagai media untuk menyusun dan memahami serta sebagai alat komunikasi antara pemrogram dengan computer.

Deadlock. Pada kasus ini juga bisa terjadi kelaparan, yaitu ada proses yang tidak terlayani

RANCANG BANGUN PERANGKAT LUNAK PENGEMBANG SISTEM PAKAR BERBASIS ATURAN DENGAN METODE FORWARD CHAINING

PENELITIAN OPERASIONAL I (TIN 4109)

Kualitas bahasa pemrograman: Ekspresivitas : secara jelas menggambarkan algoritma yang dibuat oleh programmer

Pengantar Teknologi Informasi

Easy & Simple - Web Programming: Belajar Pemprograman Website Secara Efektif dan Efisien (Indonesian Edition)

Evaluasi dan Usaha Optimalisasi Algoritma Depth First Search dan Breadth First Search dengan Penerapan pada Aplikasi Rat Race dan Web Peta

PENELITIAN OPERASIONAL I (TIN 4109)

How to Desain World Class Slide Presentation (Indonesian Edition)

ABSTRACT. Key : Social Web, Schedule, Appointment, ASP.net, C#.

KEMAMPUAN MENDENGARKAN LAGU BERBAHASA INGGRIS PADA SISWA KELAS X SMA ISLAMIC CENTRE DEMAK PADA TAHUN AJARAN 2006/2007

Relasi Negara & Agama: Redefinisi Diskursus Konstitusionalisme (Rangkaian Studi IMR)

DIG1G3 Implementasi Struktur Data

MODIFIKASI METODE BACKTRACKING UNTUK MEMBANTU MENCARI PENYELESAIAN PERMAINAN PEG SOLITAIRE

Membangun Menara karakter (Indonesian Edition)

ABSTRAK. Kata kunci : Perpustakaan Tugas Akhir PHP (Php Hypertext Preprocessor) Universitas Kristen Maranatha

ABSTRAK. Kata Kunci : MVC (Model View Controller), Codeigniter PHP Framework, MySQL. Universita s Kristen Maranatha

2.2. Fitur Produk Perangkat Lunak Fitur Pengolahan Data Fakultas Fitur Pengolahan Data Jurusan

ABSTRAK. Kata kunci : sistem pakar, diagnosa penyakit anjing, basis pengetahuan, rule. Universitas Kristen Maranatha

Implementasi OOP Pada Perangkat Lunak Pemrograman

PENGENALAN KOMPUTER DAN SOFTWARE II. Semester: 2 Pengenalan Komputer dan Software II. Introduction to Computer and Software II

ALGORITMA PEMROGRAMAN 1A** (PP :S1-KA) Pertemuan 3

FLOWCHART (DIAGRAM ALIR) P E N G A N T A R T E K N O L O G I I N F O R M A S I ( T I F )

Ekspresi Reguler Definisi. Notasi Ekspresi Regular. Contoh Ekspresi Reguler [2]

TUGAS BROWSING. Diajukan untuk memenuhi salah satu tugas Eksperimen Fisika Dasar 1. Di susun oleh : INDRI SARI UTAMI PEND. FISIKA / B EFD-1 / C

ABSTRAK. Kata kunci: Fungsi Manajemen,Anggaran,Efektifitas Penjualan. vii. Universitas Kristen Maranatha

MEMBANDINGKAN DUA PERSAMAAN REGRESI LINEAR SEDERHANA. Oleh: Giyanto 1) ABSTRACT

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Kata kunci: Sistem Informasi, poin of sale, aplikasi data mining, algoritma apriori, Borland Delphi, SQL 2000, Association rules.

Praktikum Metode Komputasi (Vector Spaces)

Classification. Decision Tree. Decision Tree. Konsep Decision Tree. Penggunaan Decision Tree. When To Consider Decision Tree?

Transkripsi:

Kuliah 1 Slide 1 Computational Logic Bagian Kedua: Logic Programming Pengajar : L. Yohanes Stefanus email: yohanes@cs.ui.ac.id kantor: Fasilkom Gedung A Ruang 1220 Jadwal :Selasa & Kamis, 14:00-16:00 Diselingi istirahat 15 menit. World Wide Web: http://telaga.cs.ui.ac.id/webkuliah/logic/ Tujuan : Mengajarkan konsep dan teknik logic programming dengan bahasa Prolog (versi ISO). Kuliah 1 Slide 2 Textbook: Ivan Bratko. Prolog Programming for Artificial Intelligence, 3rd Edition. Addison-Wesley, 2001. K. R. Apt From Logic Programming to Prolog. Prentice Hall, 1997. Kuliah 1 Slide 3 Software : Implementasi Prolog yang dipakai adalah SWI- Prolog versi 5.4.7. Bisa di-download dari http://www.swi-prolog.org. SWI-Prolog dibangun oleh Jan Wielemaker dari University of Amsterdam. Ada fasilitas GUI. Kuliah 1 Slide 4 Prerequisites Matematika Diskret Struktur Data dan Algoritma Computational Logic, Bagian Pertama

Kuliah 1 Slide 5 Paradigma-Paradigma Pemrograman Bahasa pemrograman (programming language): notasi yang dipakai untuk menentukan, mengorganisasi, dan melakukan penalaran tentang komputasi. Banyak bahasa pemrograman telah diciptakan. Sebagian besar tidak sempat menjadi popular. Contoh-contoh yang (masih) banyak dipakai: LISP, Prolog, C++, FORTRAN, ML, Haskell, Ada, Java,... Kuliah 1 Slide 6 Perancang suatu bahasa pemrograman harus menyeimbangkan antara: membuat komputer mudah (convenient) untuk dipakai membuat komputer dapat dipakai secara efisien. machine language assembly language high-level language Kuliah 1 Slide 7 Keuntungan-keuntungan dari bahasa pemrograman high-level: lebih mudah dibaca oleh manusia tidak bergantung pada jenis mesin tersedia program-library ada pengecekan yang dapat membantu deteksi error Dijkstra: "Program testing can be used to show the presence of bugs, but never to show their absence!" Kuliah 1 Slide 8 Paradigma pemrograman: cara/pola berpikir tentang pemrograman. Ada 4 paradigma utama: 1) imperative programming komputasi dipandang sebagai suatu barisan aksi/tindakan (a sequence of actions). menekankan "how". Contoh bahasa pemrograman yang mendukung: FORTRAN, C,... 2) functional programming komputasi berdasarkan fungsi/kategori, dimana fungsi mempunyai status yang sama dengan nilai-nilai lainnya. (Functions are first-class values). Contoh bahasa pemrograman yang mendukung: LISP, ML, Haskell,...

Kuliah 1 Slide 9 3) Logic Programming Program terdiri dari facts (fakta-fakta) dan rules (aturan-aturan). Komputasi adalah deduksi. Menekankan "what". Contoh bahasa pemrograman yang mendukung: Prolog. 4) Object-Oriented Programming Program adalah simulasi. Objek bereaksi terhadap message. Class mendeskripsikan himpunan objek. Contoh bahasa pemrograman yang mendukung: C++, Smalltalk, Java,... Kuliah 1 Slide 10 Logic programming: Algorithm = Logic + Control -Kowalski Kuliah 1 Slide 11 Kuliah 1 Slide 12 Logic programming is the use of the clausal form of first order logic as a practical computer programming language. program = set of axioms computation = proof of a statement from the axioms Prolog = Programming in Logic Prolog lahir sekitar tahun 1972, dipelopori oleh Colmerauer dan Roussel, di Prancis. Tokoh-tokoh penting lainnya: Kowalski, Apt, dan van Emden. Prolog adalah suatu bahasa declarative, bukan bahasa procedural. Prolog tidak menggunakan assignment sebagai operasi dasar seperti dalam bahasa C atau Java. Prolog cocok untuk komputasi simbolik (nonnumerik). Prolog cocok untuk pemecahan masalah yang menyangkut objek dan relasi antar objek. Contoh: Fakta bahwa Tom adalah parent dari Bob dapat ditulis dalam Prolog: parent(tom,bob).

Kuliah 1 Slide 13 Kuliah 1 Slide 14 /* Figure 1.8 The family program.*/ parent( pam, bob). % Pam is a parent of Bob parent( tom, bob). parent( tom, liz). parent( bob, ann). parent( bob, pat). parent( pat, jim). female( pam). % Pam is female female( liz). female( ann). female( pat). offspring( Y, X) :- % Y is an offspring of X if parent( X, Y). % X is a parent of Y mother( X, Y) :- % X is the mother of Y if parent( X, Y), % X is a parent of Y and female( X). % X is female grandparent( X, Z) :- % X is a grandparent of Z if parent( X, Y), % X is a parent of Y and parent( Y, Z). % Y is a parent of Z male( tom). % Tom is male male( bob). male( jim). Kuliah 1 Slide 15 sister( X, Y) :- % X is a sister of Y if parent( Z, X), parent( Z, Y), % X and Y have the same parent and female( X), % X is female and X \== Y. % X and Y are different predecessor( X, Z) :- % Rule prl: X is a predecessor of Z parent( X, Z). predecessor( X, Z) :- % Rule pr2: X is a predecessor of Z parent( X, Y), predecessor( Y, Z). Kuliah 1 Slide 16 Relations Prolog programming consists of defining relations and querying about relations. Querying about relations, by means of questions, resembles querying a database. Prolog's answer to a question consists of a set of objects that satisfy the question. The arguments of relations can be atoms (such as tom), or variables (such as X). Variables start with a upper-case letter. In the course of computation, a variable can be substituted by another object. We say that a variable becomes instantiated.

Kuliah 1 Slide 17 Clauses A Prolog program consists of clauses. Each clause terminates with a full stop. There are three types of clauses: facts, rules, and questions. Facts declare things that are always true. Rules declare things that are true depending on a given condition. By means of questions the user can ask the program what things are true. A clause consists of a head and a body. The body is a list of goals separated by commas. Commas are understood as conjunctions. Kuliah 1 Slide 18 Facts are clauses that have a head and the empty body. Questions only have the body. Rules have the head and the non-empty body. Rules can be recursive. A procedure is a set of clauses about the same relation. A relation can be specified by facts, simply stating the n-tuples of objects that satisfy the relation, or by stating rules about the relation. Kuliah 1 Slide 19 Conjunction of goals Questions to the system consist of one or more goals. A sequence of goals (separated by commas) means the conjunction of the goals. If several answers satisfy the question then Prolog will find as many of them as desired by the user (by typing a semicolon). To establish whether an object satisfies a query is often a complicated process that involves logical inference, exploring among alternatives and possibly backtracking. All this is done automatically by the Prolog system and is hidden from the user. Kuliah 1 Slide 20 How does Prolog answer questions? Example:?- predecessor( tom, pat ). yes A question is a sequence of one or more goals. To answer a question, Prolog tries to satisfy all the goals. To satisfy a goal means to demonstrate that the goal is true, i.e., the goal logically follows from the facts and rules in the program.

Kuliah 1 Slide 21 If the goals contain variables, Prolog also has to find the particular objects (in place of the variables) satisfying the goals. The particular instantiation of variables to these objects is displayed to the user. If the goals can not be satisfied, the answer is "no". To satisfy a goal, Prolog finds a proof sequence. Prolog starts from the goal and, using rules, substitutes the current goal with new goals, until new goals happen to be simple facts. Kuliah 1 Slide 22 Tree of execution trace by rule pr1 parent(tom,pat) no backtracking precedessor(tom,pat) parent(tom,y), predecessor(y,pat) Y = bob by rule pr2 predecessor(bob,pat) by fact parent(tom,bob) by rule pr1 parent(bob,pat) yes