1. Goal Majemuk dan Unifikasi 2. Runut Balik 3. Input/Output Prolog M. Haviz Irfani
Goal Majemuk Dalam editor program, Goal dapat dimasukkan pada program sebelum Clauses dengan kata cadangan GOAL. Goal yg dimasukkan dapat lebih dari satu subgoal. Contoh: GOAL ayah(wawan,Siapa),write(Siapa," "), cucu(badu,Kakek), write(Kakek).
Soal: Buatlah program bahasa prolog dengan pengetahuan seperti dalam tabel berikut: MERK WARNA HARGA (Juta) Toyota Putih 150 Honda Hitam 165 Ford 200 BMW 180 Mitsubisi Merah 120 Buatlah goal internal: Informasi mobil untuk harga dibawah 165 juta Informasi mobil untuk harga 180juta s/d 220 juta Mobil apa saja yang berwarna Hitam dengan harga kurang dari 200juta
Unifikasi Adalah proses yang dilakukan untuk mencari padanan antara pernyataan yang terdapat pada aturan dan fakta atau kepala aturan yg lain. Syarat unifikasi sebagai berikut: Mempunyai relasi yg sama. Mempunyai jumlah argumen yg sama dan posisi argumen yg sama pula. Argumen yg berpadanan hrs mempunyai jenis data yg sama. Semua pasangan argumen (data majemuk) hrs berpadanan juga.
Contoh Unifikasi: * ayah(Bapak,badu) dengan ayah(slamet,badu) * tgl_lhr(Tgl,Bln,Thn) dengan tgl_lhr(10,”Agustus”,1998) *data_pribadi(nama(tono),alamat(jalan,kota)) dengan data_pribadi(nama(tono),alamat(“talang semut”,”Palembang”))
Proses pencarian jawaban: SILSILAH KELUARGA: slamet syamsiah jamal wawan susi tukul hera badu meliani jojon vera yuyun tina kayamba yayuk Okto budi fika jimi siti runia Padanan relasi yg sesuai pada proses pencarian, seperti: * ayah(Bapak,badu) dengan ayah(slamet,badu) * tgl_lhr(Tgl,Bln,Thn) dengan tgl_lhr(10,”Agustus”,1998) *data_pribadi(nama(tono),alamat(jalan,kota)) dengan data_pribadi(nama(tono),alamat(“talang semut”,”Palembang”))
Pertanyaan Soal: Dari silsilah keluarga sebelumnya, *Tentukan fakta untuk relasi: ayah, ibu, suami dan istri ! *Tentukan aturan untuk relasi: kakek, nenek, cucu, saudara_kandung, sepupu, dan ipar !
Runut Balik (BackTracking): Prolog akan mencari jawaban dg cara pemadanan mulai dari bagian klausa yg paling atas Bila prolog mengeksekusi subgoal yg terdiri dari subgoal yg lain (call), maka prolog akan akan melakukan langkah 1. Bila sebuah call berhasil berpadanan maka call kembali ke klausa induk dg membawa variabel yg diperoleh dan eksekusi dilanjutkan pd subgoal berikutnya. Variabel terikat akan menjadi variabel bebas pd saat prolog merunut balik, memungkinkan prolog mendapatkan nilai baru sebagai jawaban yg mungkin.
Soal: Buatlah program bahasa prolog dengan pengetahuan seperti dalam tabel berikut: Nama Pemain Umur (Tahun) Bejo 15 Wowok 14 Cokri Parto Kabul Buatlah goal internal dan eksternal: Goal internal : pemain(A,15),pemain(B,15),A<>B, write(A,” ”,B). Goal eksternal: pemain(A,15),pemain(B,15),A<>B.