LABORATORIUM PEMBELAJARAN ILMU KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA
BAB NAMA
NIM
TANGGAL JENIS ASISTEN
: LOGIC PROGRAMING : -RENDY PUTRA JALIASMAR JALIASMAR -ABDUL KHALIK SEMBIRING -MUHAMMAD RIFQI -MUHAMMAD IQBAL ALVIN : -165150200111148 -165150200111148 -165150200111153 -165150207111076 -165150201111186 : 25/04/2018 : TUGAS : -DINDY FITRIANNORA -WINDYA HARTASIH
ACC
A. DEFINISI MASALAH 1. Kesukaan
a. Terjemahkan pengetahuan di bawah ke dalam KB FOL 1. Budi suka apapun yang disukai Ani 2. Budi suka siapapun yang suka teh anget atau suka soto 3. Amir tidak suka siapapun yang suka soto 3. Ani suka Soto 4. Budi suka teh anget 5. Budi suka Ani 6. Ani suka Amir 7. Amir suka soto b. Terjemahkan query ke dalam FOL 1. Apakah Ani suka Soto? 2. Apakah Budi suka teh anget? 3. Apakah Budi suka Soto? 4. Apakah Ani suka Budi? 5. Apakah Budi suka Amir? 6. Apakah Amir suka Ani? 7. Apakah Amir suka Budi? 8. Apakah Amir suka teh anget? c. Menuliskan FOL ke dalam Bahasa prolog d. Menuliskan hasil dari masing-masing query 2. Lemari novel
a. Menerjemahkan kalimat ke dalam KB FOL b. Menerjemahkan query ke dalam FOL c. Menuliskan FOL ke dalam Bahasa prolog d. Menuliskan hasil dari masing-masing query Knowlede Base untuk lemari novel :
Dalam lemari novel Budi, semua lemari berisi buku karya penulis Indonesia dan bagus menurut budi. Menurut Budi, buku yang bagus mempunyai ciri ciri yaitu memiliki alur cerita yang bagus dan best seller. Apabila buku terjual lebih dari 50 ribu buku per tahun maka buku tersebut dikatakan best seller. Pada lemari novel Ani, semua lemari novelnya berisi novel-novel best seller dan memiliki penghargaan nasional atau internasional. Laskar pelangi merupakan novel yang memiliki alur cerita yang bagus, memiliki penghargaan nasional maupun internasional dan sudah terjual lebih dari satu juta kopi, melebihi syarat 50 ribu novel per tahun serta novel ini merupakan karya penulis Indonesia yang bernama Andrea Hirata. Novel berjudul Pulang karya penulis Indonesia yang bernama Leila S. Chudori memiliki alur cerita cukup bagus, sudah mendapatkan penghargaan nasional namun tidak terlalu banyak terjual di pasaran. Karya penulis asal Brazil bernama Paulo Coelho yang berjudul Alchemist memiliki alur cerita yang sama bagusnya dengan Laskar pelangi. Novel ini telah mendapatkan banyak penghargaan internasional serta sudah terjual banyak hingga melebihi 50 ribu novel per tahunnya. Query :
1. Apakah Novel Laskar Pelangi ada di lemari novel Budi? 2. Apakah Novel Alchemist ada di lemari novel Budi? 3. Apakah Novel Pulang ada di lemari novel Budi? 4. Apakah Novel Laskar Pelangi ada di lemari novel Ani? 5. Apakah Novel Alchemist ada di lemari novel Ani? 6. Apakah Novel Pulang ada di lemari novel Ani? 7. Novel apakah yang ada di lemari novel Budi dan Ani? 8. Novel apakah yang tidak ada di lemari novel Budi maupun Ani?
B. JAWAB 1. a) KB FOL 1. ∀ X, Y (Ani (x) ∧ budi(y)) → (menyukai (y,z) ∧ menyukai (x,z)) 2. ∀ X, K, T (budi(x) ∧ soto(k) ∧ the anget (t)) → ∀Z (menyukai(x,z) ∧
(menyukai(x,k) ∨ (menyukai(z,t) 3. ∀ X ∧ → (Amir (x) ∧ soto (k )) → (menyukai (x,y) ∧ menyukai (y,k)) 4. ∀ X, Y ∧ → (Ani (x) ∧ soto (k )) → (menyukai (x,y) 5. ∀ X, Y ∧ → (budi (x) ∧ teh anget (y)) → (menyukai (x,y) 6. ∀ X, X ∧ → (budi (x) ∧ ani (y)) → (menyukai (x,y) 7. ∀ X, Y ∧ → (ani (x) ∧ amir (y)) → (menyukai (x,y) 8. ∀ X, Y ∧ → (amir (x) ∧ soto (y)) → (menyukai (x,y) b) Query 1. ∀ X, K (Ani (x) ∧ soto(k )) → (menyukai (x,k) ∨ ¬ menyukai (x,k)) 2. ∀ X, T (budi (x) ∧ the anget(t)) → (menyukai (x,t) ∧ ¬ menyukai (x,t)) 3. ∀ X, k (budi (x) ∧ soto(t)) → (menyukai (x,k) ∧ ¬ menyukai (x,k)) 4. ∀ X, Y (Ani (x) ∧ budi(y)) → (menyukai (x,y) ∨ ¬ menyukai (x,y)) 5. ∀ X, Y (budi (x) ∧ amir(y)) → (menyukai (x,y) ∨ ¬ menyukai (x,y)) 6. ∀ X, Y (Amir (x) ∧ ani(y)) → (menyukai (x,y) ∨ ¬ menyukai (x,y)) 7. ∀ X, Y (budi (x) ∧ amir(y)) → (menyukai (x,y) ∨ ¬ menyukai (x,y)) 8. ∀ X, Y (Amir (x) ∧ the anget(y)) → (menyukai (x,y) ∨ ¬ menyukai (x,y)) c) FOL
d) Hasil querry
2. a) KB FOL 1. ∀ X, Y, Z,A (novel (x) ∧ LemariBudi (y) ∧ terdapat (x,x) ∧ Indonesia (z)) ∧ budi (a) → ( penuli (x,z) ∨ bagus (x,a)) 2. ∀ X, Y, Z (novel (x) ∧ bestseller (x) ∧ bagus (x) ∧ budi (z) ∧ cerita (x,y)) → ( bagus (x,z)) 3. ∀ X, Y, Z,A (novel (x) ∧ LemarAni (a) ∧ terdapat (x,x) ∧ nasional (y)) ∧ internasional (z) → ( bestseller (x) ∧ award (x,y) ) ∨ award (x,z)) 4. ∀ X, A (novel (x) ∧ lebihdari (a) ∧ terjual (x,a)) → (award (x,z)) 5. ∀ X, Y (novel (x) ∧ alchemist (y) ∧ penulis (x,y)) → ( brasil (x) 6. ∀ X, Y (novel (x) ∧ laskarpelangi (y) ∧ penulis (x,y)) → indonesia (x) 7. ∀ X, Y (novel (x) ∧ pulang (y) ∧ penulis (x,y)) → indonesia (x) 8. ∀ X, Y, Z (novel (x) ∧ laskarpulangi(x) ∧ nasional (y) ∧ internasional (z)) → (awrd (x,y) ∨ award (x,z)) 9. ∀ X, Y (novel (x) ∧ laskarpelangi (x) ∧ lebihdari (y)) → (terjual (x,y)) 10. ∀ X, Y (novel (x) ∧ pulang (x) ∧ nasional (y)) → (award (x,y)) 11. ∀ X, Y (novel (x) ∧ alchemist (x) ∧ internasional (y)) → (terjual (x,y)) 12. ∀ X, Y (novel (x) ∧ alchemist (x) ∧ lebihdari (y)) → (terjual (x,y)) 13. ∀ X, Y (novel (x) ∧ laskarpelangi (x) ∧ bagus (y)) → (alur (x,y)) 14. ∀ X, Y (novel (x) ∧ lpulang (x) ∧ bagus (y)) → (alur (x,y)) 15. ∀ X, Y (novel (x) ∧ alchemist (x) ∧ bagus (y)) → (alur (x,y)) b) Query 1. ∀ X, Y (novel (x) ∧ laskar pelangi (x) ∧ budi (y)) → (lemari (x,y) ∨ ¬ lemari (x,y)) 2. ∀ X, Y (novel (x) ∧ ani (x) ∧ budi (y)) → (lemari (x,y) ∨ ¬ lemari (x,y)) 3. ∀ X, Y (novel (x) ∧ ani (x) ∧ budi (y)) → (lemari (x,y) ∨ ¬ lemari (x,y))
4. ∀ X, Y (novel (x) ∧ laskar pelangi (x) ∧ ani (x)) → (lemari (x,y) ∨ ¬ lemari
(x,y)) 5. ∀ X, Y (novel (x) ∧ ani (x) ∧ ani (x)) → (lemari (x,y) ∨ ¬ lemari (x,y)) 6. ∀ X, Y (novel (x) ∧ ani (x) ∧ ani (x)) → (lemari (x,y) ∨ ¬ lemari (x,y)) 7. ∀ X, Y, Z (novel (x) ∧ ani (x) ∧ budi (x), ani (z)) → (lemari (x,y) ∨ ¬ lemari (x,z)) 8. ∀ X, Y, Z (novel (x) ∧ budi(x), ani (z)) → (lemari (x,y) ∨ ¬ lemari (x,z)) c) FOL
d) Hasil Querry
C. Kesimpulan 1. Apa pengertian dari Logic Programming? Jelaskan. Jawab: Logic Programming (PROLOG) yang berarti pemrograman berbasis l ogika. Logika merupakan sebuah Bahasa yang memiliki syntax dan semantic serta memiliki inference rules. Pemrograman Prolog menggunakan bahasa deklaratif, dimana pemrogram memberi fakta dan aturan untuk selanjutnya diselesaikan oleh Prolog secara deduktif sehingga menghasilkan suatu kesimpulan. Hal ini berbeda dengan bahasa prosedural seperti Pascal, Fortran, C, atau yang sejenis, dimana pemrogram memberi perintah atau penugasan untuk memecahkan persoalan langkah demi langkah.
2. Apa perbedaan logic programming dengan First Order Logic? Jawab: Pada First Order Logic cara menyelesaikan masalah dengan kalimat yang merepresentasikan fakta dan term yang merepresentasikan objek. Sedangkan logic programing adalah Bahasa yang menggunakan FOL sebagai dasarnya. 3. Bagaimana struktur pemrograman prolog? Jelaskan Jawab: - Fakta : Suatu kenyataan yang diketahui dan dinyatakan dalam relasi antar dua objek atau lebih. - Aturan : Logika yang dirumuskan dalam bentuk relasi sebab akibat dan hubungan implikasi. - Klausa : Aturan yang di tulis dan terdiri dari he ad dan tail yang dipisiahkan oleh tanda :- Variabel : Argumen suatu predikat, dapat berupa konstanta, atau objek lain. Terdapat dua variabel yaitu variabel bernama dan tidak bernama 4. Jelaskan langkah-langkah dalam melakukan logic programing Jawab: - Cari predikat – predikat pada sebuah kalimat - Buat atomic formula bedasarkan kalimat tersebut dengan menggunakan predikatnya - Ubah menjadi bentuk FOL dari masing masing kalimat - Dari FOL ubah ke bentuk PROLOG - Masukan pengetahuan yang terdiri dari fakta dan aturan yang telah diubah - Buat sebuah query untuk memperoleh jawaban dari suatu masalah