Pengenalan Prolog
Pengenalan Prolog
1.1 Sejarah Prolog Prolog singkatan dari Programming in Logic. Dikembangkan oleh Alain Colmenraurer dan P.Roussel di Universitas Marseilles Perancis, tahun 19 !. Prolog "o"uler di #ro"a untuk a"likasi arti$icial intelligence, sedangkan di Amerika "eneliti mengembangkan a"likasi %ang sama, %aitu L&'P. 1.2 Perbedaan Prolog dengan Bahasa Lainnya (ahasa Pemrograman %ang Umum )(asic, Pascal, C, *ortran+, di"erlukan algoritma-"rosedur untuk memecahkan masalah )"rocedural languange+ "rogram men.alankan "rosedur %ang sama berulang/ulang dengan data masukan %ang berbeda/beda. Prosedur dan "engendalian "rogram ditentukan oleh "rogrammer dan "erhitungan dilakukan sesuai dengan "rosedur %ang telah dibuat. (ahasa Pemrograman Prolog , 0b.ect oriented languange atau declarative languange. 1idak terda"at "rosedur, teta"i han%a kum"ulan data/data ob.ek )$akta+ %ang akan diolah, dan relasi antar ob.ek tersebut membentuk aturan %ang di"erlukan untuk mencari suatu .a2aban Programmer menentukan tu.uan )goal+, dan kom"uter menentukan bagaimana cara menca"ai tu.uan tersebut serta mencari .a2abann%a. Dilakukan "embuktian terhada" cocok/tidakn%a tu.uan dengan data/data %ang telah ada dan relasin%a. Prolog ideal untuk memecahkan masalah %ang tidak terstruktur, dan "rosedur "emecahann%a tidak diketahui, khususn%a untuk memecahkan masalah non numerik. Prolog beker.a se"erti "ikiran manusia, "roses "emecahan masalah bergerak di dalam ruang masalah menu.u suatu tu.uan ).a2aban tertentu+. Contoh , Pembuatan "rogram catur dengan Prolog 1.3 A li!asi Prolog 'istem Pakar )#3"ert '%stem+ Program menggunakan teknik "engambilan kesim"ulan dari data/data %ang dida"at, la%akn%a seorang ahli. Contoh dalam mendiagnosa "en%akit Pengolahan (ahasa Alami )4atural Languange Processing+ Program dibuat agar "emakai da"at berkomunikasi dengan kom"uter dalam bahasa manusia sehari/hari, la%akn%a "enter.emah.
/1/
Robotik Prolog digunakan untuk mengolah data masukan%ang berasal dari sensor dan mengambil ke"utusan untuk menentukan gerakan %ang harus dilakukan. Pengenalan Pola )Pattern Recognition+ (an%ak digunakan dalam image "rocessing, dimana kom"uter da"at membedakan suatu ob.ek dengan ob.ek %ang lain. (ela.ar )Learning+ Program bela.ar dari kesalahan %ang "ernah dilakukan, dari "engamata5n atau dari hal/hal %ang "ernah diminta untuk dilakukan.
1." #a!$a dan Relasi Prolog terdiri dari kum"ulan data/data ob.ek %ang meru"akan suatu $akta. *akta dibedakan ! macam , o Menun.ukkan relasi. o Menun.ukkan milik-si$at. Penulisann%a diakhiri dengan tanda titik 6.7 Contoh ,
1.% A$&ran '(R&les)* Aturan adalah suatu "ern%ataan %ang menun.ukkan bagaimana $akta/$akta berinteraksi satu dengan %ang lain untuk membentuk suatu kesim"ulan. 'ebuah aturan din%akatakan sebagai suatu kalimat bers%arat. 8ata 6i$7 adalah kata %ang dikenal Prolog untuk men%atakan kalimat bers%arat atau disimbolkan dengan 6,/6. Contoh ,
'etia" aturan terdiri dari kesim"ulan)ke"ala+ dan tubuh. 1ubuh da"at terdiri dari 1 atau lebih "ern%ataan atau aturan %ang lain, disebut subgoal dan dihubungkan dengan logika 6and7. Aturan memiliki si$at then-i$ conditional 68e"ala)head+ benar .ika tubuh )bod%+ benar7.
/!/
1.+ Per$anyaan '(,&ery)* 'etelah memberikan data/data beru"a $akta dan aturan, selan.utn%a kita da"at menga.ukan "ertan%aan berdasarkan $akta dan aturan %ang ada. Penulisann%a dia2ali simbol 69/6 dan diakhiri tanda 6.7. 1.- Predi!a$ '(Predi.a$e)* Predikat adalah nama simbolik untuk relasi. Contoh , a%ah)slamet,amin+. Predikat dari $akta tersebut ditulis , a%ah)simbol,simbol+. dimana a%ah adalah nama "redikat, sedangkan slamet dan amin adalah menu.ukkan argumen. 'ebuah "redikat da"at tidak memiliki atau memiliki argumen dengan .umlah bebas. :umlah argumen suatu "redikat disebut aritas )arit%+. a%ah)nama+ ;; aritas/n%a 1 a%ah)nama1,nama!+ ;.. aritasn%a ! '%arat/s%arat "enulisan nama "redikat , <arus dia2ali dengan huru$ kecil dan da"at diikuti dengan huru$, bilangan atau garis ba2ah. Pan.ang nama "redikat maksimum !=> karakter. 1idak di"erbolehkan menggunakan s"asi, tanda minus, tanda bintang dan garis miring. 1./ 0ariabel ?aribel adalah besaran %ang nilain%a da"at berubah/ubah. 1ata cara "enulisan variabel , 1. 4ama varibel harus dia2ali huru$ besar atau garis ba2ah)@+ !. 4ama variabel da"at terdiri dari huru$, bilangan, atau simbol dan meru"akan kesatuan dengan "an.ang maksimum !=> karakter. A. 4ama variabel hendakn%a mengandung makna %ang berkaitan dengan data %ang din%atakann%a.
/A/
Contoh , dari silsilah di atas , 9/a%ah)slamet,Anak+. AnakBbudiC AnakBbadu 4o Dari 5uer% di atas akan dicari sia"akah anak dari a%ah %ang bernama 'lamet. 8arena mem"un%ai relasi %ang sama )%aitu a%ah+, variabel Anak akan mencari nilai dari konstanta suatu $akta-aturan %ang se"adan. 1anda 6C7 digunakan bila terda"at kemungkinan ada lebih dari satu .a2aban. 64o7 berarti tidak ada lagi kemungkinan .a2aban. Contoh dari silsilah di atas , 9/ a%ah)slamet,D+,a%ah)D,E+. DBamin EBbudi C DBamin EBbadu C DBanang EBdidi C DBanang EBdidi 4o Contoh , 'ilsilah 8eluarga FF *A81A GFForang tua Ga%ah)slamet,amin+. a%ah)slamet,anang+. a%ah)amin,budi+. a%ah)amin,badu+. a%ah)anang,didi+. a%ah)anang,dadi+. a%ah)santoso,bu@amin+. a%ah)su"ardi,bu@anang+. ibu)bu@slamet,amin+. ibu)bu@slamet,anang+. ibu)bu@amin,budi+. ibu)bu@amin,badu+. ibu)bu@anang,didi+. ibu)bu@anang,dadi+. ibu)bu@santoso,bu@amin+. ibu)bu@santoso,bu@anang+. FF A1URA4 G-
/H/
FF 8akek adalah kakek Cucu Gkakek)8akek,Cucu+ ,/ a%ah)A%ah,Cucu+, a%ah)8akek,A%ah+. kakek)8akek,Cucu+ ,/ ibu)&bu,Cucu+, a%ah)8akek,&bu+. FF 4enek adalah nenek Cucu Gnenek)4enek,Cucu+ ,/ a%ah)A%ah,Cucu+, ibu)4enek,A%ah+. nenek)4enek,Cucu+ ,/ ibu)&bu,Cucu+, ibu)4enek,&bu+. FF 4ama1 adalah saudara kandung 4ama! saudara@kandung)4ama,4ame+ ,/ a%ah)A%ah,4ama+, a%ah)A%ah,4ame+, ibu)&bu,4ama+, ibu)&bu,4ame+, 4ama IB 4ame. FF 'dr1 adalah saudara se"u"u 'dr! saudara@se"u"u)'dr1,'dr!+ ,/ a%ah)A%ah1,'dr1+, a%ah)A%ah!,'dr!+, saudara@kandung)A%ah1,A%ah!+. saudara@se"u"u)'dr1,'dr!+ ,/ a%ah)A%ah,'dr1+, ibu)&bu,'dr!+, saudara@kandung)A%ah,&bu+. saudara@se"u"u)'dr1,'dr!+ ,/ ibu)&bu,'dr1+, a%ah)A%ah,'dr!+, saudara@kandung)&bu,A%ah+. saudara@se"u"u)'dr1,'dr!+ ,/ ibu)&bu1,'dr1+, ibu)&bu!,'dr!+, saudara@kandung)&bu1,&bu!+.
/=/