Jl Srijaya Negara Bukit Besar Palembang 30139, Telpon : +62711 353414 PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG TK Pengantar Prolog Hand On Lab 1 Inteligensi Buatan 100 menit Lecturer : M. Miftakul Amin, S. Kom., M. Eng. Website : http://mafisamin.blog.ugm.ac.id Tujuan : 1. Mahasiswa dapat menjelaskan konsep pemrograman logika. 2. Mahasiswa dapat mengimplementasikan pemrograman logika dalam bahasa pemrograman prolog. Perlengkapan : Perangkat lunak SWI Prolog 1. Pengantar Prolog Prolog kepanjangan dari Programming Logic merupakan sebuah bahasa pemrograman deklaratif. Aliran kontrol pada Prolog dibuat mundur (Backtracking). Prolog berisi klausa yang terdiri dari basisdata berupa fakta (fact) dan aturan (rule). Jika diberi sekumpulan fakta dan aturan, prolog akan menyelesaikannya secara deduktif, atau menurunkan kesimpulan sebagai jabawan berdasarkan fakta dan aturan dengan pencarian dari atas ke bawah. Prolog merupakan goal oriented jadi fokus kepada apa yang akan dipecahkan atau dicari penyelesaiannya. 2. Menjalankan SWI Prolog Dari Start Programs SWI-Prolog Prolog. Kemudian akan dimunculkan sebuah window yang berisi lingkungan kerja SWI-Prolog. Ditandai dengan munculnya prompt?-. 3. Meload File Program Prolog Program dalam prolog disimpan dengan ekstensi.pl, dan disimpan di folder mana saja dalam harddisk komputer. Kode program dapat ditulis dengan menggunakan editor seperti notepad, kemudian simpan dengan ekstensi file.pl. Untuk menjalankan file program prolog dapat dilakukan dengan mengetikkan perintah dari prompt?- sebagai berikut. 1 H alaman
Cara 1:?- ['C:/SWIProlog/manusia.pl']. % C:/SWIProlog/manusia.pl compiled 0.00 sec, 1,712 bytes Cara 2: 4?- consult('c:/swiprolog/manusia.pl'). % C:/SWIProlog/manusia.pl compiled 0.00 sec, 0 bytes Dengan model pemanggilan ini anda dapat menyimpan file prolog anda di mana saja, dengan catatan pada saat pemanggilan file prolog dipanggil dengan menyertakan full path. 4. Menampilkan pesan dari Prompt Coba ketikkan perintah berikut dari prompt SWI Prolog?- write('selamata Belajar Prolog'),nl,write('Semangat'),nl. Selamata Belajar Prolog Semangat Perintah write digunakan untuk menuliskan pesan atau menampilkan sebuah string, sedangkan nl digunakan untuk membuat baris baru (new line). 5. Keluar dari SWI Prolog Untuk keluar dari lingkungan kerja SWI Prolog cukup dilakukan dengan mengetikkan perintah berikut.?- halt. 6. Menulis Kode Program Anda dapat menulis kode program berikut menggunakan notepad. Perhatikan bahwa setiap klausa di dalam prolog harus diakhiri dengan tanda titik (.). klausa di dalam prolog menggunakan logika predikat dan penulisan predikat menggunakan huruf kecil. Supaya pekerjaan hasil penulisan program prolog terdokumentasi dengan baik, buat satu buah folder di drive C dengan nama SWIProlog. Kemudian tulis program berikut menggunakan notepad. Simpan file berikut dengan nama dog.pl. dog(fido). dog(rover). dog(henry). cat(felix). cat(michael). cat(jane). animal(x) :- dog(x). 2 H alaman
7. Menjalankan kemudian dari jendela SWI Prolog, buka program dengan mengetikkan perintah berikut.?- consult('c:/swiprolog/dog.pl'). % C:/SWIProlog/dog.pl compiled 0.00 sec, 1,216 bytes?- dog(fido).?- dog(jane). No?- animal(fido). Lakukan proses query melalui prompt dengan mengetikkan perintah berikut untuk menampilkan?- dog(x). X = fido ; X = rover ; X = henry Lakukan proses query melalui prompt dengan mengetikkan perintah berikut untuk melihat daftar dari nama-nama dalam kategori dog.?- listing(dog). dog(fido). dog(rover). dog(henry). Tugas Praktikum : 1) Masih mengacu pada file dog.pl jalankan beberapa perintah berikut, dan jelaskan hasil dari masing-masing perintah.?- cat(x),dog(y) 2) Tulis program berikut dan beri nama dengan suka.pl. suka(ady,lia). suka(tanti,ady). suka(totok,x):-suka(tanti,x). 3 H alaman
selanjutnya coba jalankan program suka.pl?- consult('c:/swiprolog/suka.pl'). % C:/SWIProlog/suka.pl compiled 0.00 sec, 720 bytes?- suka(totok,siapa). Siapa = ady 3) Sebuah problem. Totok mengikuti kuliah multimedia dan nilai kuliah tersebut 75. Sedangkan Lia juga mengikuti kuliah multimedia dengan nilai 49. Syarat untuk lulus matakuliah multimedia minimal 50. Tentukanlah: a) Berapa nilai multimedia dari totok? b) Siapa saja yang lulus multimedia? c) Apakah totok lulus matakuliah multimedia? Untuk menyelesaikan problem tersebut, perlu dibuat sebuah program dengan nama multimedia.pl kuliah(totok,multimedia). kuliah(lia,multimedia). nilai(totok,multimedia,75). nilai(lia,multimedia,49). lulus(x,y) :- kuliah(x,y), nilai(x,y,z), Z>50. a) Solusi, berapa nilai multimedia dari totok??- nilai(totok,multimedia,x). X = 75 b) Solusi, siapa saja yang lulus multimedia??- lulus(x,multimedia). X = totok c) Solusi, apakah totok lulus matakuliah multimedia?- lulus(totok,multimedia). Jika dicoba untuk menguji apakah lia lulus, maka akan diperoleh hasil.?- lulus(lia,multimedia). No 4 H alaman
4) Jabarkan permasalah berikut dalam bahasa prolog, dan cari solusi dari masalah yang diberikan. Terdapat 3 orang laki-laki (man) yang bernama adam, peter dan paul. Terdapat 2 orang perempuan (woman) bernama marry dan eve. Adam adalah orang tua dari peter, eve adalah orang tua dari peter, adam orang tua dari paul, marry orang tua dari paul. Buatlah aturan untuk menentukan solusi dari pertanyaan berikut. a) Siapakah ayah dari peter? b) Ayah dari siapakah Adam? c) Siapakah ibu dari peter? d) Ibu dari siapakan eve? Diperiksa tanggal : Dosen Pengampu: Nama Laboratorium : Nomor Komputer : (M. Miftakul Amin, S. Kom., M. Eng.) NIP. 197912172012121001 Sumber referensi: Suyoto. 2004. Intelegensi Buatan Teori dan Pemrograman. Yogyakarta: Penerbit Gava Media 5 H alaman