Modul 1 PENGENALAN PROLOG

dokumen-dokumen yang mirip
Konsep. Bahasa Pemrograman. Evangs Mailoa. Pertemuan 7

MODUL DUA VARIABEL DAN TIPE VARIABEL

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

Tools Pembangun Sistem Pakar

BAB III LOGIC PROGRAMMING

MODUL 3 ALGORITMA PEMROGRAMAN

Bahasa Pemrograman- TIS SKS

Universitas Komputer Indonesia

Bab 2 DASAR-DASAR ALGORITMA

.::BAB II.::MENGENAL PASCAL

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

Algoritma dan Pemrograman. Pertemuan Ke-1 Pengantar Algoritma

STRUKTUR KENDALI. Memanfaatkan struktur kendali untuk kasus komputasi

LOGIKA DAN ALORITMA. Pertemuan II:

PENGERTIAN VARIABEL, KONSTANTA DAN TIPE DATA

REPRESENTASI PENGETAHUAN

Chapter 2. Tipe Data dan Variabel

Pengenalan Pascal/DevPascal

Teori Algoritma. Struktur Algoritma

SUMBER BELAJAR PENUNJANG PLPG

Lab. Pemrograman Visual Basic

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

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

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

LAB SHEET PRAKTIK PEMROGRAMAN KOMPUTER

Keyword,Tipe data & Variabel. Keywords pada c Tipedata Variabel Konstanta

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Chapter 3.2 : Tipe, Nama dan Nilai

Tinjau algoritma dibawah ini

MATA KULIAH : LOGIKA DAN ALGORITMA KONSEP DASAR ALGORITMA

Struktur Bahasa C dan C++

STMIK AMIKOM YOGYAKARTA. Kusnawi, S.Kom, M.Eng

Cara pertama adalah pada saat deklarasi variabel ditambahkan ke- yword const sebelum nama tipe data seperti

STRUKTUR DASAR PEMROGRAMAN

Algoritma,Flowchart, Konsep

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

Implementasi OOP Pada Perangkat Lunak Pemrograman

Teori Algoritma TIPE DATA

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

ALGORITMA PEMROGRAMAN 1C PEMROGRAMAN LOGIK

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

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Modul PVB-POLINEMA V1.0

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

BAB 1 PENGENALAN BAHASA PROLOG

LAPORAN PRAKTIKUM RESMI TIPE DATA, KONSTANTA DAN VARIABEL

Modul Praktikum Ke-2

Algoritma dan Struktur Data

Tipe data dasar merupakan tipe data yang disediakan oleh kompailer, sehingga dapat langsung dipakai Dalam algoritma dan pemrograman yang termasuk dala

Achmad Solichin.

Brigida Arie Minartiningtyas, M.Kom

Algoritma dan Struktur Data

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

CCH1A4 / Dasar Algoritma & Pemrogramanan

Dasar Pemrograman Java

BAB 2 PENGANTAR LOGIKA PROPOSISIONAL

PENYELEKSIAN KONDISI dengan IF

Komentar Program. Komentar program dapat diletakkan dimanapun di dalam program. pembatas (* dan *).

MATERI KULIAH ALGORITMA DAN PEMROGRAMAN I (2 SKS)

Brigida Arie Minartiningtyas, M.Kom

BAB 1 PENGANTAR BAHASA PEMROGRAMAN FORTRAN

ALGORITMA & PEMROGRAMAN

PERKEMBANGAN PASCAL. Pascal adalah bahasa tingkat tinggi ( high level language) yang orientasinya pada segala tujuan

2 TIPE DATA DAN VARIABEL

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

Dasar Komputer & Pemrograman 2A

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

Sesi/Perkuliahan ke: 3

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

Nama, Tipe, Ekspresi, dan Nilai

PRAKTIKUM 4 PENGAMBILAN KEPUTUSAN

STRUKTUR PROGRAM. Secara ringkas, struktur suatu program Pascal dapat terdiri dari : 1.Judul Program 2.Blog Program a.

Dasar Dasar Pemrograman. Fery Updi,S.Kom

MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN

Struktur Data. Pertemuan 2

Matematika Diskrit. Rudi Susanto

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

BAHASA PEMROGRAMAN PROLOG

BAB 1 PENGENALAN KEPADA PROLOG

PENGANTAR LOGIKA INFORMATIKA

RINGKASAN PEMROGRAMAN QUICK BASIC

Algoritma Pemrograman I

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++

Tipe Data dan Variabel

PRAKTIKUM 3 DASAR PEMROGRAMAN C

PEMROGRAMAN BAHASA C BAB II 2.1 STRUKTUR BAHASA C

VARIABEL & TIPE DATA PEMROGRAMAN C++

ALGORITMA PEMROGRAMAN 1C PENDAHULUAN KONSEP BAHASA PEMROGRAMAN

PRAKTIKUM 2. perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh

Modul 3 Percabangan dan Perulangan

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

Tipe Data dan Variabel. Dosen Pengampu Muhammad Zidny Naf an, M.Kom

P A S C A L D A S A R

PENGGUNAAN DATA DAN VARIABEL KOMPUTER APLIKASI AKUNTANSI V PRODI AKUNTANSI - UNIKOM

BAHASA PEMROGRAMAN PROLOG

Transkripsi:

1

Modul 1 PENGENALAN PROLOG PENDAHULUAN Prolog adalah singkatan dari Programming in Logic. Prolog adalah bahasa yang dibangun atas dasar pemrograman alamiah dan logika. Prolog merupakan bahasa deklaratif, artinya jika diberi fakta dan aturan maka Prolog akan menyelesaikan problem secara deduktif, atau menurunkan kesimpulan sebagai jawaban berdasarkan fakta dan aturan yang diberikan. Perbedaan bahasa deklaratif dan prosedural : Pada bahasa deklaratif hanya membutuhkan deklarasi atau uraian masalah, sedangkan pada bahasa prosedural seperti : bahasa C, dll memerlukan perintah. Prolog : Goal oriented (apa yang harus dipecahkan), sedangkan pada bahasa prosedural menjawab bagaimana harus memecahkan masalah. Dalam logika predikat, fakta dan aturan dinyatakan melalui predikat. contohnya : lelaki(iwan). (fakta) (Dibaca : Iwan lelaki) anak(tina,iwan). (fakta) (Dibaca : Tina anak Iwan) menikahi(iwan,ira). (fakta) (Dibaca : Iwan menikahi Ira) menikahi(x,y) : lelaki(x), perempuan (Y) (aturan) (Dibaca : X menikahi Y jika X lelaki dan Y perempuan) CIRI BAHASA PROLOG Bahasa Prolog selain mencari jawaban secara logika terhadap pertanyaan yang diajukan, juga dapat memberi semua kemungkinan jawaban. Predikat : Menggambarkan relasi dua buah objek atau lebih atau sifat suatu objek. Objek yang terkait disebut argumen. Contoh : suka(irwan, permen). predikat : suka; argumen : Irwan, permen. (Dibaca : Irwan suka permen) manis(permen). predikat : manis ; argumen : permen. (Dibaca : permen manis) Deduksi : Prolog dapat melakukan penarikan kesimpulan. Contoh : Diberikan fakta : Dede suka Iik 2

Dan aturan : Cece suka Ryan Celung suka seseorang jika Cece suka orang itu. Prolog menarik kesimpulan : Celung suka Ryan. Pemadanan/Unifikasi : Dalam mencari jawaban atau menarik kesimpulan, Prolog melakukan pemadanan, yaitu argumen pertama dipadankan dengan argumen pertama pada predikat lain yang sama dan seterusnya. STRUKTUR PROGRAM PROLOG Program Prolog terdiri dari : a. Domains Domains menyatakan jenis suatu variabel. Itu berarti domains seperti tipe dalam Pascal, C, atau bahasa Prosedural lainnya. Beberapa domains standar dalam prolog: char, integer, real, string, symbol. contoh: Domains namaorg = symbol alamat = string nilai = integer Domains char dipakai pada predikat yang argumennya memiliki nilai berupa karakter tunggal, yaitu abjad, angka, pungtuasi (?.!,<,...), dan operasi(+,,...). Penulisan argumen bertipe char dalam prolog diapit tanda.... contoh: nilai(doni, A ). Domains string dipakai pada predikat yang argumennya memiliki nilai berupa karakter jamak yang dapat berupa kata maupun suatu tulisan (kumpulan kata kata termasuk di dalamnya pungtuasi dan tanda operasi yang dapat dipisahkan spasi). Penulisan argumen bertipe string dalam prolog diapit tanda.... contoh: kuliah(joko, Intelegensi Buatan ). Domains integer dipakai pada predikat yang argumennya memiliki nilai berupa bilangan bulat. contoh: nilai(rudi, Statistika,85). Domains real dipakai pada predikat yang argumennya memiliki nilai berupa bilangan pecahan. Penulisan argumen bertipe real dalam prolog untuk nilai pecahan ditulis di belakang tanda. (titik). contoh: ipk(deni, 3.25). 3

Domains symbol dipakai pada predikat yang argumennya memiliki nilai berupa kumpulan karakater yang hanya terdiri dari huruf atau kata tanpa dipisahkan oleh spasi. Suatu kata dapat disambungkan dengan kata lain dengan tanda _ (underscore). contoh: lelaki(toni_setiawan). b. Predicates Predicates digunakan untuk mendeklarasikan predikat. Penulisan dalam Prolog : Diawali dengan huruf kecil. Contoh: orangtua(x,y) lulus(orang,matakuliah) pedas(z) c. Clauses - Clauses digunakan untuk mendefinisikan predikat. - Clauses terdiri dari fakta dan aturan 1. Fakta Fakta merupakan suatu kenyataan atau kebenaran yang diketahui. Fakta menyatakan hubungan / relasi antara dua obyek atau lebih atau menunjukkan sifat suatu obyek. Penulisan dalam Prolog : Diawali dengan huruf kecil dan diakhiri dengan tanda titik. Contoh : orangtua (ali, husein). lulus(deni,kalkulus). pedas(cabe). 2. Aturan Aturan penulisan : If ditulis sebagai : And ditulis sebagai, Or ditulis sebagai ; d. Goal Goal adalah tempat pernyataan (query) diberikan atau meminta prolog untuk mencapai tujuan yang dikehendaki. Contoh : Kasus UJI KELULUSAN Terdapat Fakta dengan definisi sebagai berikut : 4

kuliah(x,y) : X kuliah Y nilai(x,y,z) : nilai X untuk mata kuliah Y adalah Z Terdapat Aturan dengan definisi sebagai berikut : lulus(x,y) : X lulus Y jika X kuliah Y dan nilai X untuk mata kuliah Y adalah Z dan Z lebih dari 50 1. Berdasarkan definisi Fakta dan Aturan yang diberikan di atas ketikan program berikut domains orang = symbol mk = string nilai = integer predicates kuliah(orang,mk). nilai(orang,mk,nilai). lulus(orang,mk). clauses kuliah(adi,"logika"). kuliah(adi,"fisika"). kuliah(budi,"logika"). kuliah(cika,"fisika"). kuliah(cika,"logika"). kuliah(deni,"logika"). kuliah(eni,"logika"). nilai(adi,"logika",50). nilai(adi,"fisika",45). nilai(budi,"logika",80). nilai(cika,"fisika",85). nilai(cika,"logika",70). nilai(deni,"logika", 70). nilai(eni,"logika",40). lulus(x,y) : kuliah(x,y), nilai(x,y,z), Z>50.... Tentukan dulu nya dan jalankan program dengan menekan tombol Ctrl+G sehingga muncul hasil TEST GOAL. 5

2. Test berikut ini a. Apakah Budi mengikuti kuliah Logika? kuliah(budi, logika ). Hasil Eksekusi Goal: yes Goal b. Siapa saja yang mengikuti kuliah Logika? kuliah(x, logika ). Goal Maka akan muncul warning: Nondeterministic Clause : kuliah Mengapa demikian??? Karena clause kuliah(orang,mk) tidak tergantung pada nilai tertentu(nondeterministik). Solusi: Maka Hasil Eksekusi Goal:Yes c. Siapa saja yang lulus kuliah Logika? lulus(x, logika ). Hasil Eksekusi Goal: X=budi X=cika X=deni 3 Solutions d. Cika lulus mata kuliah apa saja? lulus(cika,y). Hasil Eksekusi Goal: Y=fisika Y=logika 2 Solutions 6

Nama : NIM : Kelas : Guided (Berdasarkan Kasus di atas tentukan Goal dan Test Goalnya) : Siapa saja yang memperoleh nilai lebih dari 70 untuk mata kuliah Logika? Siapa saja yang lulus Logika dan Fisika? Siapa saja yang lulus Logika atau Fisika? Siapa saja yang berhasil lulus dan untuk mata kuliah apa? Buatlah aturan untuk mencari mahasiswa yang tidak lulus suatu mata kuliah (nilai <= 50)! Ujilah aturan anda untuk mencari siapa saja yang tidak lulus Logika! Siapa saja yang lulus Logika tetapi tidak lulus Fisika?...... Kasus Pohon Keluarga Iwan >< Ani >< Budi Ana >< Badu Edi Mira Jeni Dodi Nani Berdasarkan pohon keluarga di atas diberikan definisi Fakta dan Aturan sebagai berikut: definisi Fakta : 7

lelaki(x) : X adalah lelaki perempuan(x) : X adalah perempuan ayah(y,x) : Y adalah ayah dari X ibu(y,x) : Y adalah ibu dari X definisi Aturan : anaklelaki(x,y,z) : X adalah anaklelaki dari Y dan Z jika Y adalah ayah dari X dan Z adalah ibu dari X dan X adalah lelaki anakperempuan(x,y,z) : X adalah anakperempuan dari Y dan Z jika Y adalah ayah dari X dan Z adalah ibu dari X dan X adalah perempuan Berdasarkan definisi Fakta dan Aturan yang diberikan di atas maka ketikan program berikut: domains child = symbol father = symbol mother = symbol predicates anaklelaki(child,father,mother). anakperempuan(child,father,mother). lelaki(child). perempuan(child). ayah(father,child). ibu(mother,child). clauses perempuan(mira). perempuan(nani). lelaki(edi). ayah(budi,edi). ibu(ani,edi). ayah(budi,mira). ibu(ani,mira). ayah(badu,nani). ibu(ana,nani). anaklelaki(x,y,z):ayah(y,x),ibu(z,x),lelaki(x). anakperempuan(x,y,z):ayah(y,x),ibu(z,x),perempuan(x). Tentukan Goal Dan Hasil Test Goalnya : Siapa ibu dari mira? 8

...... Siapa ibu dari edi dan nani?...... Siapa anak lelaki Ani tetapi bukan anak lelaki Budi?...... Siapa anak perempuan Iwan tetapi juga anak perempuan Ani tetapi bukan anak perempuan Budi?...... 9