x := x - y
x
3
= x
2
- y
2
y
3
= y
2
Ke mung ka ina n se c a ra ma te ma tis
x
3
= x
2
- y
2
= x
1
- x
1
- y
1
= y
1
= y y
3
= y
2
= x
1
- y
1
= x + y
- y = x
ma ka d id a p a t x
, y := y, x
6.4.2. Disjo int Rule
•
Disjo int rule d ig una ka n d a la m me nja b a rka n p e rta mb a ha n se tia p p re d ic a te ne g a si d a ri se mua p re d ic a te te rd a hulu
•
c o nto h sua tu c o nd itio na l rule
x 0
→
z := ma xx, y | y 0
→
z := minx, y d a p a t d ina ya ta ka n se b a g a i
x0
→
xy
→
z :=x | true
→
z :=y | y0
→
xy
→
z :=x | true
→
z := y d iko nve rsika n ke d a la n Disjo int Rule a d a la h
x 0
→
x y
→
z := x | x
≤ →
z := y | x
≤ ∧
y0
→
xy
→
z := x | x
≥
y
→
z := y a ka n sa ma ha lnya
x 0
∧
x y
→
z := x | x 0
∧
x
≤
y
→
z := y | x
≥ ∧
y 0
∧
x y
→
z := x | x
≥ ∧
y 0
∧
x
≥
y
→
z := y Pre d ic a te te ra khir a d a la h fa lse untuk x,y o le h ka re na itu
x
≤ ≤
y
∧
x
≥
y d a p a t d iha p us d a ri d isjo int rule . sisa d a ri rule d a p a t d ig a mb a rka n d a la m
b e ntuk
•
C a se Struc ture Tra c e Ta b le
•
C o nto h x
≥ →
x := x + y | true
→
y := y + x y 0
→
y := x - y | true
→
x := y - x x
≥ →
x := x - y | true
→
y := y - x d a p a t d iko nve rsika n
x
≥ →
x := x + y | x 0
→
y := y + x y 0
→
y := x - y | y 0
→
x := y - x x
≥ →
x := x - y | x 0
→
y := y - x te rd a p a t 8 ka sus d ima na se tia p ka sus me lib a tka n tra c e ta b le
Ka sus 1,1,1 Pa rt Ko nd isi
x y
x := x + y y := x - y
x
≥
y
1
≥
x
1
= x + y
x
2
= x
1
y
1
= y y
2
= x
1
- y
1
x := x - y x
2
≥
x
3
= x
2
+ y
2
y
3
= y
2
ko nd isi x
≥ ∧
y
1
≥ ∧
x
2
≥
0 = x
≥ ∧
y
≥ ∧
x
1
≥
= x
≥ ∧
y
≥ ∧
x +y
≥
= x
≥ ∧
y
≥
a ssig nme nt x
= x
2
- y
2
= x
1
- x
1
- y
1
= y
1
= y y
3
= y
2
= x
1
- y
1
= x + y
- y = x
Ka sus 1,1,2 Pa rt Ko nd isi
x y
x := x + y y := x - y
y := x - y x
≥
y
1
≥
x
2
x
1
= x + y
x
2
= x
1
x
3
= x
2
y
1
= y y
2
= x
1
- y
1
y
3
= y
2
- x
2
ko nd isi x
≥ ∧
y
1
≥ ∧
x
2
0 = x
≥ ∧
y
≥ ∧
x
1
= x
≥ ∧
y
≥ ∧
x + y
= fa lse Assig me nt : Tid a k p e rlu
Ka sus 1,2,1 Pa rt Ko nd isi
x y
x := x + y x
≥
x
1
= x + y
y
1
= y
x := y - x x := x - y
y
1
x
2
≥
x
2
= y
1
- x
1
x
3
= x
2
- y
2
y
2
= y
1
y
3
= y
2
ko nd isi x
≥ ∧
y
1
∧
x
2
≥
0 = x
≥ ∧
y
∧
y
1
- x
1
≥
= x
≥ ∧
y
∧
y - x
+ y
≥
= x
≥ ∧
y
∧
x
≤
= x = 0
∧
y a ssig nme nt
x
3
= x
2
- y
2
= x
1
- y
1
- y
1
= -x
1
= - x - y
y
3
= y
2
= y
1
= y
Ka sus 1,2,2 Pa rt Ko nd isi
x y
x := x + y x := y - x
y := y - x x
≥
y
1
x
2
x
1
= x + y
x
2
= y
1
- x
1
x
3
= x
2
y
1
= y y
2
= y
1
y
3
= y
2
- x
2
ko nd isi x
≥ ∧
y
1
∧
x
2
0 = x
≥ ∧
y
∧
y
1
- x
1
= x
≥ ∧
y
∧
y - x
+ y = x
≥ ∧
y
∧
x = x
∧
y a ssig nme nt
x
3
= x
2
= y
1
- x
1
= y - x
+ y = - x
y
3
= y
2
- x
2
= y
1
- y
1
- x
1
= x
1
= x + y
Ka sus 2,1,1 Pa rt Ko nd isi
x y
y := y + x y := x - y
x := x - y x
y
1
≥
x
2
≥
x
1
= x x
2
= x
1
x
3
= x
2
- y
2
y
1
= y + x
y
2
= x
1
- y
1
y
3
= y
2
ko nd isi x
∧
y
1
≥ ∧
x
2
≥
0 = x
∧
y + x
≥ ∧
x
1
≥
= x
∧
y + x
≥ ∧
x
≥
= fa lse a ssig nme nt tid a k p e rlu
Ka sus 2,1,2 Pa rt Ko nd isi
x y
y := y + x y := x - y
y := y - x x
y
1
≥
x
2
x
1
= x x
2
= x
1
x
3
= x
2
y
1
= y + x
y
2
= x
1
- y
1
y
3
= y
2
- x
2
ko nd isi x
∧
y
1
≥ ∧
x
2
0 = x
∧
y + x
≥ ∧
x
1
= x
∧
y + x
≥ ∧
x
= x
∧
y + x
≥
a ssig nme nt x
3
= x
2
= x
1
= x y
3
= y
2
- x
2
= x
1
- y
1
- x
1
= - y
1
= - y - x
Ka sus 2,2,1 Pa rt Ko nd isi
x y
y := y + x x := y - x
x := x - y x
y
1
x
2
≥
x
1
= x x
2
= y
1
- x
1
x
3
= x
2
- y
2
y
1
= y + x
y
2
= y
1
y
3
= y
2
ko nd isi x
∧
y
1
∧
x
2
≥
0 = x
∧
y + x
∧
y
1
- x
1
≥
= x
∧
y + x
∧
y + x
- x
≥
= x
∧
y + x
∧
y
≥
a ssig nme nt x
3
= x
2
- y
2
= y
1
- x
1
- y
1
= - x
1
= - x y
3
= y
2
= y
1
= y + x
Ka sus 2,2,2 Pa rt Ko nd isi
x y
y := y + x x
x
1
= x y
1
= y + x
x := y - x y := y - x
y
1
x
2
x
2
= y
1
- x
1
x
3
= x
2
y
2
= y
1
y
3
= y
2
- x
2
ko nd isi x
∧
y
1
∧
x
2
0 = x
∧
y + x
∧
y
1
- x
1
= x
∧
y + x
∧
y + x
- x = x
∧
y + x
∧
y = x
∧
y a ssig nme nt
x
3
= x
2
= y
1
- x
1
= y + x
- x = y
y
3
= y
2
- x
2
= y
1
- y
1
- x
1
= x
1
= x
Ma ka fung si ya ng d id a p a tka n a d a la h
x
≥ ∧
y
≥ →
x, y := y, x | x = 0
∧
y 0
→
x, y := - x - y, y | x 0
∧
y 0
→
x, y := - x, x + y | x 0
∧
x + y
≥ →
x, y := x, - x - y | x 0
∧
x + y 0
∧
y
≥ →
x, y := - x, x + y | x 0
∧
y 0
→
x, y := y, x
BAB VII PENULISAN PRO G RAM TERSTRUKTUR
7.1. O ve rvie w
•
Ste p wise Re fine me nt a d a la h me rup a ka n p ro se s p e rlua sa n d a ri fung si- fung si ke d a la m b e ntuka n p rime p ro g ra m d a n fung si ya ng le b ih
se d e rha na . Pe nd e ka ta n ini me rup a ka n stra te g i To p -Do wn
•
Pe me riksa a a n ke b e na ra n d ila kuka n d e ng a n “ d e vid e , c o nne c tm d a n c he c k”
•
Ste p wise Re o rg a niza tio n a d a la h p ro se s ya ng d ib e rika n te rha d a p p ro g ra m
7.2. Da sa r- d a sa r p e nulisa n 7.2.1. Pe ne m ua n Pro g ra m Te rstruktur
•
Pe nulisa n p ro g ra m te rstruktur a d a la h sua tu p ro se s me nta l kre a tif ya ng me mb utuhka n stud i d a n la tiha n untuk p ro fe si.
•
Pe rtimb a ng ka n
x
≥ ∧
y
≥ →
x, y := x - y, fre e
d ia sumsika n tid a k a d a o p e ra si p e ng ura ng a n d a n p e ng ura ng a n ha rus d ig una ka n, d a la m ha l ini d a p a t d ib e rika n d iskrip si ve rb a l se b a g a i so lusi.
Kura ng ka n x d a n y d e ng a n 1 sa mp a i sa la h sa tu sa ma d e ng a n 0. Ke mud ia n ha sil d a ri p e ng ura ng a n, tid a k te rma suk ta nd a nya , a d a la h
va ria b e l la in :
jika y a d a la h 0, ma ka x a d a la h ha silnya te ta p i jika x a d a la h o , ma ka -y a d a la h ha sil ya ng d ib utuhka n.
•
Pe rta nya a n ya ng mung kin munc ul a d a la h me nta l d a n d isp lin ya ng b a g a ima na ya ng me ng a ra h p a d a p e nye le sa ia n ya ng te rstruktur.
•
Pe ne mp a ta n no d e func tio n d a n p re d ic a te se c a ra ind ivid u, d ig a b ung ka n ke d a la m struktur p e ng a wa sa n ya ng te ra tur
•
Da ri p e nje la sa n ve rb a l p a d a ka sus d i a ta s d a p a t d inya ta ka n se b a g a i 3 sub ma sa la h:
1. Me ng hitung inti d a ri p e rb e d a a n a nta ra x d a n y 2. Me ne ntuka n ta nd a p e rb e d a a n
3. Me mb e b a ska n y se hig g a PDL ya ng d id a p a tka n a d a la h
[Me ng hitung inti d a ri x - y]
while
x 0
∧
y 0
do
x, y = x - 1, y - 1 o d
[Me ne ntuka n ta nd a ]
if
y 0 the n
x := -y fi
fre e
y
7.2.2. Disip lin Pe ng e m b a ng a n Fung si