Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer...
Transcript of Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer...
![Page 1: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/1.jpg)
Konsep
Evangs Mailoa
Bahasa Pemrograman
Pertemuan 7
![Page 2: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/2.jpg)
PROLOG
![Page 3: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/3.jpg)
PROgramming in LOGic
Kebanyakan dikembangkan untuk Artificial Intelligence
Dibuat oleh Alain Colmerauer dan Phillipe Roussel (University of Aix-Marseille) dan dikembangkan oleh Robert Kowalski (University of Edinburgh)
![Page 4: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/4.jpg)
Perbedaan Prolog dengan Bahasa Lainnya
• Bahasa Pemrograman yang Umum (Pascal & C):
– Diperlukan algoritma/prosedur untuk memecahkan masalah (procedural languange)
– Program menjalankan prosedur yang sama berulang-ulang dengan data masukan yang berbeda-beda.
– Prosedur dan pengendalian program ditentukan oleh programmer dan perhitungan dilakukan sesuai dengan prosedur yang telah dibuat.
![Page 5: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/5.jpg)
Perbedaan Prolog dengan Bahasa Lainnya
• Bahasa Pemrograman Prolog : – “OO” languange atau descriptive languange. – Tidak ada prosedur, hanya kumpulan data-data objek
(fakta) yang akan diolah, dan relasi antar objek tersebut membentuk aturan yang diperlukan untuk mencari suatu jawaban secara deduktif.
– Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya.
– Prolog ideal untuk memecahkan masalah yang tidak terstruktur, dan prosedur pemecahannya tidak diketahui, khususnya untuk memecahkan masalah non numerik.
– Contoh : Pembuatan program catur dengan Prolog
![Page 6: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/6.jpg)
Aplikasi-aplikasi yang dapat dibuat dengan Prolog :
• Sistem Pakar (Expert System)
Contoh: Diagnosa penyakit
• Pengolahan Bahasa Alami (Natural Languange Processing)
Contoh: Drink Box
• Robotik
Prolog digunakan untuk mengolah data masukan yang berasal dari sensor dan mengambil keputusan untuk menentukan gerakan yang harus dilakukan
• Pengenalan Pola (Pattern Recognition)
Banyak digunakan dalam image processing, dimana komputer dapat membedakan suatu objek dengan objek yang lain.
![Page 7: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/7.jpg)
Contoh-contoh PROLOG
![Page 8: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/8.jpg)
Program Structure What you’ll need to know about the
layout in order to use Prolog!
![Page 9: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/9.jpg)
Parts of a Prolog program
Dalam PROLOG, penulisan program akan terdiri dari 4 bagian:
• DOMAINS
• PREDICATES
• CLAUSES
• GOALS
![Page 10: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/10.jpg)
Domains
Domain dalam Prolog seperti type dalam Pascal, yaitu untuk menyatakan jenis variabel atau argumen, misalnya:
domains
kota = symbol
alamat = string
list = symbol*
![Page 11: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/11.jpg)
Domains Ada lima domain baku di dalam Prolog, yaitu:
1. CHAR, karakter tunggal yang diapit oleh tanda kutip tunggal: ‘a’, ‘b’, ‘\13’.
2. INTEGER, bilangan bulat antara –32768 hingga 32767. Notasi $ digunakan untuk menunjukkan bilangan heksa.
3. REAL, bilangan nyata.
4. STRING, deretan karakter yang diapit oleh tanda kutip dobel, contohnya “UKSW”.
5. SYMBOL, rangkaian karakter yang diawali dengan huruf kecil dan tanpa tanda apa pun.
![Page 12: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/12.jpg)
Domains Ada juga DOMAIN yang tidak baku:
1. Domain FILE, yang digunakan untuk memberi nama file secara simbolik seperti contoh berikut:
file = <nama file simbolik 1> ; <nama file simbolik 2> ; …..
2. Domain LIST, digunakan untuk menyatakan list (linked list) dimana elemen pertama mempunyai pointer ke elemen kedua dan seterusnya. Deklarasi list ini dapat dituliskan dengan bentuk:
<nama list> = <domain>*
list_simbol = symbol*
3. Domain MAJEMUK, untuk menyatakan data majemuk, seperti:
alamat(“Jl. Diponegoro”, “Salatiga”)
![Page 13: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/13.jpg)
Predicates • Bagian ini untuk menuliskan setiap relasi predikat
yang digunakan dalam program, kecuali predikat baku seperti cursor, makewindow, readln, readchar, dan sejenisnya tidak perlu didefinisikan.
• Penjelasan lebih lanjut di beberapa slide kemudian!
![Page 14: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/14.jpg)
Clauses • Sekumpulan klausa dari predikat yang sama harus
dikelompokkan dalam bagian ini.
• Dalam melakukan pemanggilan klausa, Prolog melacaknya berurutan dari atas ke bawah.
• Bagian ini merupakan inti dari program Prolog, dimana semua fakta dan aturan diimplementasikan di sini.
• Lihat contoh di slide berikutnya…
![Page 15: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/15.jpg)
Goals
Tempat dimana kita menuliskan hasil yang kita mau agar diproses oleh PROLOG.
![Page 16: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/16.jpg)
Fakta dan Relasi
• Prolog terdiri dari kumpulan data-data objek yang merupakan suatu fakta.
• Fakta dibedakan 2 macam :
– Menunjukkan relasi.
– Menunjukkan milik/sifat.
• Penulisannya diakhiri dengan tanda titik “.”
• Contoh :
Fakta Prolog
Cipto adalah ayah Citra ayah (Cipto, Citra).
Andrew adalah seorang wanita wanita (Andrew).
Andy suka sepakbola dan balet suka(Andy, sepakbola). dan suka(Andy, balet).
Apel berwarna merah merah(Apel).
![Page 17: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/17.jpg)
Aturan (“Rules”)
• Aturan adalah suatu pernyataan yang menunjukkan bagaimana fakta-fakta berinteraksi satu dengan yang lain untuk membentuk suatu kesimpulan.
• Sebuah aturan dinyatakan sebagai suatu kalimat bersyarat.
• Kata “if” adalah kata yang dikenal Prolog untuk menyatakan kalimat bersyarat atau disimbolkan dengan “:-“.
• Contoh :
Fakta dan Aturan Prolog
F : Budi suka durian
A : Yuli suka durian yang disukai Budi
suka(Budi, durian).
suka(Yuli,durian) :- suka(Budi,durian).
![Page 18: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/18.jpg)
• Setiap aturan terdiri dari kesimpulan(kepala) dan tubuh.
• Tubuh dapat terdiri dari 1 atau lebih pernyataan atau aturan yang lain, disebut subgoal dan dihubungkan dengan logika “and”.
• Aturan memiliki sifat if/then conditional
“Kepala(head) benar jika tubuh (body) benar”.
• Contoh silsilah keluarga :
slamet
amin anang
badu budi didi dadi
![Page 19: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/19.jpg)
Fakta dan Aturan Prolog F : Slamet adalah ayah dari Amin
F : Amin adalah ayah dari Badu
F : Slamet adalah kakek dari Badu
A:Slamet adalah benar kakek Badu jika Slamet
adalah benar ayah Amin dan Amin adalah
benar ayah Badu.
ayah(slamet,amin).
ayah(amin,badu).
kakek(slamet,badu).
kakek(slamet,amin) :- ayah(slamet,amin) and
ayah(amin,badu).
F : Amin adalah saudara kandung Anang
F : Amin mempunyai ayah Slamet
F: Anang mempunyai ayah Slamet.
A : Amin adalah benar saudara kandung Anang,
jika Amin mempunyai ayah Slamet dan Anang
juga mempunyai ayah Slamet.
saudara_kandung(amin,anang).
ayah(slamet,amin).
ayah(slamet,anang).
saudara_kandung(amin,anang) :-
ayah(slamet,amin) and
ayah(slamet,anang).
Tugas : Buatlah relasi dari fakta-fakta yang ada dalam penulisan PROLOG
![Page 20: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/20.jpg)
Pertanyaan (“Query”)
• Setelah memberikan data-data berupa fakta dan aturan, selanjutnya kita dapat mengajukan pertanyaan berdasarkan fakta dan aturan yang ada.
• Penulisannya diawali simbol “?-“ dan diakhiri tanda “.”
• Contoh :
Pertanyaan Prolog dan Jawaban Program
Apakah Tini suka boneka ? ?- suka(tini,boneka).
Yes ……. (jika faktanya Tini suka boneka)
No……..…(jika tidak sesuai fakta).
Siapakah yang suka boneka ? ?- suka(Siapa,boneka).
Siapa=tini
Dari contoh silsilah keluarga di
atas :
Siapakah kakek Budi ?
Siapakah cucu Slamet ?
?- kakek(Siapa,budi).
Siapa=slamet
?- kakek(slamet,Cucu).
Cucu=budi ;
Cucu=badu
(jika kemungkinan ada lebih dari satu jawaban
gunakan tanda “;” pada akhir setiap
jawaban).
![Page 21: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/21.jpg)
Predikat (“Predicate”) • Predikat adalah nama simbolik untuk relasi.
• Contoh: ayah(slamet,amin).
Predikat dari fakta tersebut ditulis: ayah(simbol,simbol).
dimana ayah adalah nama predikat, sedangkan slamet dan amin adalah menujukkan argumen.
• Sebuah predikat dapat tidak memiliki atau memiliki argumen dengan jumlah bebas. Jumlah argumen suatu predikat disebut aritas (arity).
ayah(nama) …… aritas-nya 1
ayah(nama1,nama2) ….. aritasnya 2
Syarat-syarat penulisan nama predikat :
- Harus diawali huruf kecil dan dapat diikuti huruf, bilangan atau garis bawah.
- Panjang nama predikat maksimum 250 karakter.
- Tidak diperbolehkan menggunakan spasi,-, * dan /.
![Page 22: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/22.jpg)
Variabel
• Varibel adalah besaran yang nilainya dapat berubah-ubah.
• Tata cara penulisan variabel : Nama varibel harus diawali huruf besar atau garis bawah(_)
Nama variabel dapat terdiri dari huruf, bilangan, atau simbol dan merupakan kesatuan dengan panjang maksimum 250 karakter.
Nama variabel hendaknya mengandung makna yang berkaitan dengan data yang dinyatakannya.
• Contoh : dari silsilah di atas :
?- ayah(slamet,Anak).
Anak=budi ;
Anak=badu
No
Contoh :
?- ayah(slamet,X),ayah(X,Y).
X=amin
Y=budi ;
X=amin
Y=badu ;
X=anang
Y=didi ;
X=anang
Y=didi
No
![Page 23: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/23.jpg)
Contoh Contoh 1. Program untuk menyatakan hubungan kakek, ayah, dan ibu.
![Page 24: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/24.jpg)
Contoh Contoh 2. Program untuk mendefinisikan jenis-jenis binatang.
![Page 25: Konsep suatu jawaban secara deduktif. –Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. –Prolog ideal](https://reader030.fdokumen.com/reader030/viewer/2022020114/5b198a057f8b9a28258cacb8/html5/thumbnails/25.jpg)
Mau bertanya..?