Id e Pe m b a c a a n Pro g ra m A lja b a r d a ri Pro g ra m Te rstruktur

Pe nd e ka ta n ya ng d ila kuka n d a la m p e mb a c a a n p ro g ra m d e ng a n b e ntuk d o kume nta si ya ng b a ik p a d a umumnya a d a la h p e nd e ka ta n ‘ To p Do wn’ Pe nd e ka ta n ya ng d ila kuka n d a la m p e mb a c a a n p ro g ra m d e ng a n b e ntuk d o kume nta si ya ng kura ng b a ik p a d a umumnya a d a la h p e nd e ka ta n ‘ Bo tto m Up ’ a ta u ‘ Ste p wise Ab stra c tio n’

5.2.2 A lja b a r d a ri Pro g ra m Te rstruktur

• Ap a b ila te rd a p a t P a d a la h sua tu p ro p e r sub p ro g ra m d a ri Q , d a n Ap a b ila p e ng g a ntia n P d ig a ntika n o le h P’ ma ka Q me ng ha silka n Q ’ [P] = [P’ ] → [Q ] = [Q ’ ] • Te rd a p a t d ua imp lika si p e nting d a ri a xio m te rse b ut 1. Nila i ke b e na ra n d a ri p ro p o sisi a p a p un ya ng me lib a tka n [Q ] d irub a h a p a b ila P d ig a ntika n o le h P’ 2. Prime p ro g ra m d a p a t d ia b stra ksika n se b a g a i func tio n no d e . Da n func tio n no d e d a p a t d ip e rlua s me nja d i sua tu p rime p ro g ra m Pe rtimb a ng ka n p ro c r a b c o rp p ro c r while p d o c p ro c r while p d o f o d d e c o rp g o d if q the n h e lse I fi e c o rp Pe mb a c a a n Pe nulisa n Va lid a si • Pe rtimb a ng ka n p ro g ra m b e rse rta a b stra ka sinya if x 0 the n y := -x e lse y := x fi y := a b sx [if x 0 the n y := -x e lse y := x fi] = [y := a b sx] • Alja b a r d a ri sua tu p ro g ra m ya ng te rstruktur a d a la h p rinsip d a ri p e mb a c a a n sua tu p ro g ra m te rstruktur 5.2.3 Pe mb a c a a n sua tu p rime p ro g ra m • C a ra ya ng d a p a t d ila kuka n d a la m me mb a c a sua tu p ro g ra m a d a la h d e ng a n me mp e rha tika n Pa th ya ng a d a p a d a E-Tre e • Ya ng me nja d i o b ye k d a ri p e mb a c a a n sua tu p ro g ra m a ta u b a g ia nnya a d a la h untuk me ng e na li la ng sung a p a ya ng te rja d i • Ha sil ya ng d id a p a tka n a d a la h sua tu b e ntuk a b stra ksi ya ng me mb e rika n ke simp ula n d a ri ke mung kina n ha sil ke lua ra n p ro g ra m d e ng a n sua tu p e rtimb a ng a n, tid a k me mp e rha tika n ‘ inte rna l c o ntro l struc ture ’ d a n ‘ d a ta o p e ra tio n’ • C o nto h p e mb a c a a n p a d a PDL Se q ue nc e x := x - y y := x + y Hub ung a n a nta ra d a ta ini d a p a t d itulis d e ng a n me ng g una ka n sub c rip t d ima na untuk Sub c rip t 0 a d a la h untuk nila i a wa l Sub c rip t 1 untuk nila i ya ng me ng ikuti a ssig nme nt Sub c rip t 2 untuk nila i a khir d a ta c o nto h d a ri p ro g ra m d i a ta s x1 = x0 - y0 y1 = x1 + y0 ke mud ia n x2 = x1 = x0 - y0 d a n y2 = x1 + y0 = x0 + y0 + y0 = x0 Eq uiva le nt Se q ue nc e -fre e p ro g ra m d a p a t d ituliska n [ x := x - y; y := x + y] = [x,y := x - y, x] Alte rna tio n if x y the n z := y e lse z := x fi d inya ta ka n d a la m b e ntuk 1. C o nd itio na l a ssig nme nt [x y → x := y | true → z := x ] 2. Ab stra ksi [if x y the n z := y e lse z := x fi] = [ z:= minx , y] Ite ra tio n While x 1 Do x := x - 2 O d Pro g ra m func tio n [While x 1 Do x := x - 2 O d ] = [x := minx, O d d e ve nx] BA B V KEBENA RA N PRO G RA M

6.1. O ve rvie w

• Pa d a d a sa rnya ke b e na ra n d a ri sua tu p ro g ra m te rstruktur d ib uktika n d e ng a n me ng g una ka n te o ri fung si • Ke b e na ra n p ro g ra m p a d a p e mb a c a a n p ro g ra m a d a la h untuk me ng e ta hui inte rp re sta si d a ri sua tu p ro g ra m • Ke b e na ra n p ro g ra m p a d a p e nulisa n p ro g ra m a d a la h untuk me mb e ntuk p ro g ra m ya ng b e na r • Ke b e na ra n p ro g ra m p a d a sa a t va lid a si a d a la h untuk me ng e ta hui a p a ka h p ro g ra m me nja la nka n fung si d e ng a n b e na r • Ke b e na ra n p ro g ra m d ite ntuka n se b a g a i hub ung a n a nta ra se b ua h p ro g ra m d e ng a n fung si ya ng d iing inka n, ko nse p a lja b a r d ig una ka n untuk me ng ura ng i ma sa la h p e ne ntua n ke b e na ra n p ro g ra m c o mp o und ke ma sa la h p e ne ntua n unsur p o ko k • Te knik ya ng d a p a t d ig una ka n untuk ini a d a la h Tra c e Ta b le d a n Disjo int Rule

6.2. Ve rifika si Pro g ra m Te rstruktur

6.2.1. Ke b e na ra n Ve rifika si d a la m Pe m b a c a a n d a n Va lid a si

• Ve rifika si p a d a sa a t p e mb a c a a n p ro g ra m a d a la h untuk se tia p la ng ka h p rime p ro g ra m d a n d isimp ulka n d a la m b e ntuk d a ri se b ua h hip o te sa untuk se b ua h p ro g ra m func tio n. C o nto h if p the n q e lse h fi f = [ if p the n g e lse h fi ] • Ve rifika si p a d a sa a t p e nulisa n p ro g ra m a d a la h untuk se tia p la ng ka h fung si ya ng d ib e rika n, d ike mb a ng ka n ke d a la m struktur p rime ya ng se sua i, d a n ko mp o ne n func tio n d a n p re d ic a te d ite ntuka n d ima na hip o te sa a ka n me ng ha silka n se b ua h p ro g ra m func tio n ya ng id e ntik d e ng a n fung si ya ng d ib e rika n

6.2.2. A lja b a r Ke b e na ra n Pro g ra m Te rstruktur

• Ke b e na ra n p ro g ra m d ite ka nka n p a d a 2 ha l ya itu 1. Ap a ka h f = [p ] ? C o mp le te C o rre c tne ss c e nd e rung me nuju p a d a d e fe nvise p ro g ra mming 2. Ap a ka h f ⊂ [p ] ? Suffic ie nt C o rre c tne ss c e nd e rung me nuju p a d a e xe c p tio n p ro c e ssing • Pe rtimb a ng ka n untuk p ro g ra m d ib a wa h ini f = x ≥ ∧ y ≥ → x, y := x + y, 0