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