PERTEMUAN PERTEMUAN KE – V PERULANGAN A. TUJUAN
1. Mengerti Mengerti dan dapat dapat membuat membuat proses proses perulangan perulangan pada pada Visu Visual al Prolog. Prolog. 2. Mengerti Mengerti apa yang yang dimaksud dimaksud dengan lacak lacak balik dan dan bagaimana bagaimana mengimplen mengimplentasikan tasikannya. nya. 3. Mengerti apa yang dimaksud dengan lacak balik dengan loop dan bagaimana mengimplentasikannya. B. DA DASA SAR R TE TEOR ORI I
Proses perulangan perulangan atau melakukan melakukan hal yang sama secara berulang-ula berulang-ulang ng bukan menjadi menjadi hal yang yang sulit sulit dilaku dilakukan kan dengan dengan menggu menggunak nakan an komput komputer. er. Dalam Dalam Prolog Prolog tidak tidak ada pernyataan standar untuk menyatakan perulangan seperti dalam bahasa lain (Bahasa lain mengenal mengenal pernyataan pernyataan REPEAT, REPEAT, WHILE, FOR. FOR . Dalam bahasa Prolog! proses perulangan dapat dinyatakan menggunakan lacak balik ( backtracking dan rekursif (prosedur yang memanggil dirinya sendiri.
A. PERULANGAN PERULANGAN DENGAN DENGAN LACAK BALIK
"ekumpulan klausa akan dibaca secara berulang dengan melakukan lacak balik. "aat proses lacak balik berlangsung! Prolog mencari ja#aban lain. $al ini dilakukan terhadap goal yang memiliki alternati% ja#aban dan proses proses akan berlanjut secara berulang-ulang. &ontoh &ontoh proses perulangan dapat dilihat dari program berikut ' /* program contoh_1 */ PREDICATES propinsi (string) tulis_propinsi CLASES propinsi(!DI"!)# propinsi(!D$I!)# propinsi(!%a&a 'arat!)# tulis_propinsi propinsi(-). &rit,(-). nl nl. 0ail# tulis_propinsi#
OUTPUT : DIY DKI Jawa Barat yes
/* lausa tulis_propinsi +ang p,rtama /* m,nc,ta nilai /* new line (aris aru) /* lausa tulis_propinsi +ang ,ua
23AL tulis_propinsi#
Predikat %ail digunakan untuk memberi nilai gagal sehingga proses lacak balik terjadi. lausa tulis_propinsi yang yang pertam pertamaa maksud maksudny nyaa adalah adalah untuk untuk menuli menuliska skan n nama nama propin propinsi! si!
Praktikum Kecerd Kecerdasan asan Buatan
1
maka
carilah propinsi (-)! cetak)tuliskan isi *! mulai baris baru dan kemudian
mengeksekusi predikat %ail. "aat pernyataan propinsi (-) dieksekusi! Prolog tidak melakukan lacak balik. +etapi setelah menuliskan ,a#a Barat ! baris baru! dan sampai pada pernyataan %ail (gagal/ maka Prolog kemudian mengeksekusi pernyataan tulis_propinsi (klausa yang kedua dan tidak menghasilkan apa-apa. 0utput dari program tesebut sebagai berikut ' DIY DKI Jawa Barat yes B.
PERULANGAN DENGAN PREDIKAT ULANG
acak balik tepat digunakan untuk %akta yang bersi%at non deterministik. pabila tiap %akta bersi%at deterministik sehingga tidak memungkinkan adanya lacak balik untuk pengulangan! maka dapat digunakan predikat dua klausa. Boleh disebut sebagai predikat ulang atau repeat atau nama lain yang mencerminkan adanya perulangan. Predikat ini bukan predikat standar. Deklarasinya '
r,p,at# r,p,at r,p,at 3ni merupakan sebuah trik untuk membuat struktur kendali Prolog agar berpikir bah#a terdapat sejumlah ja#aban berbeda yang tak terbatas (cara kerj anya akan dibahas pada bagian mengenai rekursi ekor ) tail recursin. egunaan r,p,at adalah agar lacak balik terjadinya tak terhingga. Berikut ini diberikan contoh implementasinya. /* program contoh_REPEAT */ /* PR3SES A$A4 'ER5E4TI %I$A 6AS$A4 SESAI $ARA$TER ASCII 78 "AIT A*/ PREDICATES non,t,rm r,p,at non,t,rm c,ta CLASES r,p,at# r,p,atr,p,at# c,ta r,p,at. &rit, (!masuan s,marang huru0 $APITAL 9). r,achar($). /* aca s,uah arat,r. iat , :aria,l $ */ &rit,($). nl. char_int ($.78)#/* m,ruah arat,r , ilangan ASCIIn+a */
C. PRAKTIK
Praktikum Kecerdasan Buatan
2
1. &obalah semua program di atas! amati hasilnya 2. &obalah program berikut dan bandingkan dengan program contoh41 di atas kemudian jelaskan logikanya (kaitkan dengan proses perulangan sehingga menghasilkan output yang berbeda dengan program contoh41 /* program contoh_; */ PREDICATES propinsi (string) tulis_propinsi CLASES propinsi(!DI"!)# propinsi(!D$I!)# propinsi(!%a&a 'arat!)# tulis_propinsi propinsi(-). &rit,(-). nl. 0ail# 23AL tulis_propinsi#
D. LATIHAN
Diberikan pada saat praktikum
E. TUGAS :
Diberikan pada saat praktikum.
Praktikum Kecerdasan Buatan
5