PROLOG

Pengertian Prolog 

Prolog adalah bahasa, tepatnya merupakan bahasa komputer atau bahasa pemrograman logika. Bahasa pemrograman dituliskan dalam bentuk bahasa natural atau bahasa yang dikenal manusia, misal bahasa Inggris. Bahasa yang dikenal manusia ini jelas tidak mungkin dikenal oleh komputer yang hanya mengenal bahasa mesin. Untuk menjembatani kedua bahasa itu dibutuhkan interpreter atau compiler yang akan mengubah bahasa yang dipahami manusia menjadi bahasa yang mudah dipahami mesin.
Prolog dikenal sebagai bahasa deskriptif (descriptive language), yang berarti dengan diberikan serangkaian fakta-fakta dan aturan-aturan, Prolog, dengan menggunakan cara berpikir deduktif (deductive reasoning), akan dapat menyelesaikan permasalahan suatu program. Ini dikontraskan dengan bahasa komputer tradisional seperti C, BASIC, Pascal yang dikenal sebagai bahasa prosedural (procedural language). Dalam bahasa prosedural, programmer harus memberikan instruksi tahap demi tahap agar komputer dapat dengan pasti bagaimana menyelesaikan permasalahan yang diberikan. Dengan kata lain, programmer harus tahu lebih dahulu bagaimana cara menyelesaikan permasalahan sebelum diinstuksikan ke komputer. Lain jika dibandingkan dengan programmer Prolog. Programmer Prolog hanya membutuhkan deskripsi/gambaran permasalahan, lalu menerjemahkannya ke bahasa Prolog. Selanjutnya tinggal sistem Prolog yang menentukan bagaimana mencari solusinya.
Prolog didasarkan pada klausa-klausa Horn (Horn clauses), yang merupakan himpunan bagian dari sistem formal yang dinamakan logika predikat (predicate logic). Logika predikat menyederhanakan cara agar jelas bagaimana berpikir akan dilakukan. Prolog menggunakan variasi sintak logika predikat yang telah disederhanakan dengan demikian sintaknya mudah dimengerti dan sangat mirip dengan bahasa natural.
Prolog mempunyai mesin inferensi (infrence engine) yang merupakan suatu proses berpikir logis mengenai informasi. Mesin inferensi mempunyai pencocok pola (pattern matcher) yang akan mengambil informasi yang telah disimpan (diketahui) dan kemudian mencocokkan jawaban atas pertanyaan. Satu feature penting dari Prolog adalah bahwa, sehubungan mencari jawaban logis atas pertanyaan yang diajukan, ia dapat berhubungan dengan banyak alternatif dan mencari semua kemungkinan dari pada hanya satu solusi

Dasar-Dasar Prolog 

Fakta dan Relasi :
a. Prolog terdiri dari kumpulan data-data obyek yang merupakan suatu fakta.
b. Fakta selalu benar (true).
c. Dalam prolog, fakta dibedakan menjadi 2 macam yaitu menunjukan relasi dan milik/sifat.
Contoh :
• Slamet adalah ayah Amin
– ayah(slamet,amin).
• Anita adalah wanita
– wanita(anita).

Aturan (Rules)

a. Programmer Prolog mendefinisikan object-object dan relasi-relasi, kemudian mendefinisikan aturan mengenai kapan relasi-relasi ini dikatakan benar (true).
b. Suatu pernyataan yang menunjukkan bagaimana fakta-fakta berinteraksi satu dengan yang lain untuk membentuk suatu kesimpulan.
c. Dinyatakan sebagai suatu kalimat bersyarat.
Contoh :
– Fakta : Tino suka apel
– Aturan : Yuli suka sesuatu yang disukai Tino
Dalam prolog ditulis :
– suka(tino,apel).
– suka(yuli,Sesuatu) if suka(tino,Sesuatu).

 Pertanyaan (Query)

Kalau kita sudah memberikan Prolog sekumpulan fakta, selanjutkan dapat diajukan pertanyaan sehubungan dengan fakta-fakta. Ini dikenal dengan nama memberikan query ke sistem Prolog (querying the Prolog system). Pertanyaan yang diajukan ke Prolog sama tipenya seperti dalam bahasa natural
• Untuk mengajukan pertanyaan, misal : Apakah Tini suka boneka?
• Dalam prolog ditulis :
– suka(tini,boneka).
• Prolog akan memberikan jawaban :
– Yes
• Jika pertanyaannya
– suka(tini,mobil-mobilan).
• Prolog akan memberikan jawaban :
– No
• Prolog juga mampu memberikan jawaban atas pertanyaan apakah, siapakah, dan lain-lain.
• Contoh : Apakah yang disukai Tini ?
– suka(tini,Apa).
• Prolog akan memberikan jawaban :
– Apa = boneka
• Siapakah yang suka boneka ?
– suka(Siapa,boneka).
– Siapa = tini

Struktur Program Prolog

  • 1. DOMAINS
Berisi deklarasi (pernyataan) tentang jenis data yang digunakan dalam fakta dan aturan.
Ada 6 buah domain standar :
a. Integer : -32.768 sampai 32.767
b. Real : 1e-307 sampai 1e+308
c. Char
d. String
e. Symbol (kumpulan karakter yang diawali dengan huruf kecil)
f. File (digunakan untuk operasi file)
  • 2. PREDICATES
• Nama simbolik untuk relasi
– ayah(slamet,amin).
• Predikat dari fakta diatas ditulis :
– ayah(symbol,symbol)
• Slamet dan amin disebut argumen
• Jumlah argumen disebut aritas (arity)
• Ditulis tanpa diakhiri tanda titik
• Syarat penulisan nama predikat :
– Diawali huruf kecil dan dapat diikuti huruf, angka, atau garis
bawah
– Panjang nama maksimum 250 karakter
– Tidak diperbolehkan menggunakan spasi, tanda minus, tanda
bintang, dan garis miring.
  • 3. CLAUSES 
a. Berisi fakta dan aturan yang membentuk keseluruhan program.
b. Mirip prosedur pada bahasa pemrograman lain.
c. Bagian fakta umumnya ditulis sebelum bagian aturan.
d. Fakta dan aturan yang mempunyai relasi yang sama harus dituliskan berkelompok.
e. Fakta/aturan ditulis mulai dari fakta/aturan yang paling atas kemudian urut ke bawah.
f. Kemungkinan yang lebih besar ditempatkan lebih awal daripada kemungkinan yang lebih kecil.
  • 4. GOAL 
a. Berisi pertanyaan yang diajukan kepada Prolog.
b. Dapat terdiri dari beberapa bagian yang disebut subgoal
c. Ada 2 jenis goal :
  1. 1. Goal eksternal : goal yang diberikan melalui compiler, dituliskan dalam jendela dialog.
  2. 2. Goal internal : goal yang dituliskan sekaligus dalam program.
  3.   - GOAL : ayah(slamet,badu)
  4.   - True. 

Goal Majemuk

a. Goal yang terdiri lebih dari satu pernyataan
b. Bagian goal tersebut disebut sub goal
- GOAL : mobil(Merk,Warna,Harga), Harga < 50.
- GOAL : mobil(Merk,Warna,Harga),
                Warna = merah,
                Harga < 35.

Variabel 

a. Besaran yang nilainya dapat berubah-ubah
b. Tata cara penulisan variabel :
1. Harus diawali huruf besar atau garis bawah (_).
2. Dapat terdiri dari huruf, angka atau simbol dan merupakan satu kesatuan.
3. Panjang maksimum 250 karakter.
4. Hendaknya mengandung makna yang berkaitan dengan data yang dinyatakannya.
c. Ada 3 macam variabel dalam prolog :
– Variabel bebas (free variable)
– Variabel terikat (bound variable)
– Variabel tak bernama (anonymous variable)

Sumber :
http://www.rumahinformatika.ml/2014/06/26-laporan-praktikum-kecerdasanbuatan.html
lulu.staff.gunadarma.ac.id/Downloads/files/45791/10-PengenalanProlog.pdf

http://www.herowintolo.stta.ac.id/2010/12/kecerdasan-buatan1_21.html

Comments
0 Comments

0 komentar: