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 a l a m a n
Cara 1: ?- ['C:/SWIProlog/manusia.pl']. % C:/SWIProlog/manusia.pl compiled 0.00 sec, 1,712 bytes Yes Cara 2: 4 ?- consult('C:/SWIProlog/manusia.pl'). % C:/SWIProlog/manusia.pl compiled 0.00 sec, 0 bytes Yes 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 Yes
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 a l a m a n
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 Yes
Lakukan proses query melalui prompt dengan mengetikkan perintah berikut. ?- dog(fido). Yes
Lakukan proses query melalui prompt dengan mengetikkan perintah berikut. ?- dog(jane). No
Lakukan proses query melalui prompt dengan mengetikkan perintah berikut. ?- animal(fido). Yes
Lakukan proses query melalui prompt dengan mengetikkan perintah berikut untuk menampilkan ?- dog(X). X = fido ; X = rover ; X = henry Yes
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). Yes
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 a l a m a n
selanjutnya coba jalankan program suka.pl ?- consult('C:/SWIProlog/suka.pl'). % C:/SWIProlog/suka.pl compiled 0.00 sec, 720 bytes Yes ?- suka(totok,Siapa). Siapa = ady Yes
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 Yes
b) Solusi, siapa saja yang lulus multimedia? ?- lulus(X,multimedia). X = totok Yes
c) Solusi, apakah totok lulus matakuliah multimedia ?- lulus(totok,multimedia). Yes Jika dicoba untuk menguji apakah lia lulus, maka akan diperoleh hasil. ?- lulus(lia,multimedia). No
4 | H a l a m a n
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:
(M. Miftakul Amin, S. Kom., M. Eng.) NIP. 197912172012121001 Sumber referensi: Suyoto. 2004. Intelegensi Buatan Teori dan Pemrograman. Yogyakarta: Penerbit Gava Media
5 | H a l a m a n
Nama Laboratorium :
Nomor Komputer :