b :=b c :=
int
c
O p e ra si-o p e ra si String c :=
c o nc ate
a ,b c :=a | | b
c :=
sub string
a ,x,y x:=
inde x
a ,b
3.6.2 Tip e - tip e Da ta
•
Sua tu tip e d a ta a d a la h sua tu himp una n o b ye k ya ng d i-a sso sia sika n sua tu himp una n o p e ra si, sua tu himp una n te st, d a n himp una n simb o l
•
Sua tu sp e sifika si tip e d a ta p a d a PDL d ituliska n d e ng a n ke ywo rd typ e , d ima na d a la m p e nd e finisia nnya jug a d ituliska n na ma d e ng a n ta b e l
o p e ra si d a n te st, c o nto h
ty pe
tric o lo r
de fine d b y
tric o lo r tric o lo r “ b rig hte r o f”
“ b rig hte r tha n”
re d re d
re d fa lse
re d white
white fa lse
re d b lue
re d true
white re d
white true
white white
white fa lse
white b lue
white true
b lue re d
re d fa lse
b lue white
white fa lse
b lue b lue
b lue fa lse
•
Dua je nis typ e d a ta ya itu 1. e nume ra te s typ e , c o nto h typ e we e kd a y = M, Tu, W, Th, F, Sa , Su
2. Sub ra ng e typ e , c o nto h typ e wo rkd a y = M .. F
•
Inne r synta x typ e a ssig nme nt d a p a t d iimp le me nta sika n ke d a la m struktur d a ta o ute r synta x se b a g a i
sc alar
a ,b : inte g e r
•
c o nto h la in
sc alar
a :string 50
se q ue nc e
b ,c : string 4
se t
d : lo g ic a l
stac k
e : string
q ue ue
f,g : inte g e r
≥
array
h : lo g ic a l
re c o rd
k : lo g ic a l, string , inte g e r
BA B IV PRO G RA M- PRO G RA M TERSTRUKTUR
4.1
O ve rvie w
•
Pe rtimb a ng ka n d ua b ua h p ro g ra m d ib a wa h ini
10 INPUT X
20 IF X = 10 THEN G O TO 30 ELSE G O TO 60
30 A = X + 1
40 B = A 2
50 G O TO 80
60 A = X 1 70 B = A 3
80 END
BEG IN READ X;
IF X = 10 THEN BEG IN
A := X + 1; B := A 2;
END
ELSE BEG IN
A := X - 1; B := A 3;
END; END.
•
Pe ng g una a n G O TO se b a g a i instruksi untuk me ng o ntro l p ro g ra m p a d a p ro g ra m ya ng p e rta ma me ng a kib a tka n ke suka ra n b a g i p e mb a c a
d a la m me ng a na lisa p ro g ra m
•
Pe ng g una a n G O TO me ng a kib a tka n p e nstruktura n p ro g ra m me nja d i rumit
•
Pe mo g ra ma n te rstruktur me ng hila ng ka n ha l ya ng d e mikia n
4.2
Ekse kusi Pro g ra m
•
Sua tu flo wc ha rt Ba g a n a rus a d a la h sua tu d ire c t g ra p h ya ng me ng g a mb a rka n a rus d a ri ko ntro l e kse kusi d a ri sua tu p ro g ra m d a n
instruksi-instruksi ya ng d i e kse kusi
•
Se tia p instruksi d a ri p ro g ra m b e rko re sp o nd e nsi d e ng a n sua tu titik no d e p a d a flo wc ha rt
•
Se tia p ke mung kina n ko ntro l a rus b e rko re sp o nd e nsi d e ng a n g a ris
•
Jika sua tu no d e instruksi me miliki le b ih d a ri sa tu g a ris ya ng ke lua r, ini d ika ta ka n se b a g a i instruksi ko ntro l C o ntro l Instruc tio n
•
Jika e kse kusi d a ri instruksi ko ntro l tid a k me mb e rika n e fe k te rha d a p d a ta ya ng d ite rima ma ka ini d ise b ut ‘ p ure instruc tio n c o ntro l’
•
Jika sua tu no d e p a d a flo wc ha rt me miliki sa tu g a ris tung g a l ya ng ma suk d a n sa tu g a ris tung g a l ya ng ke lua r d ise b ut ‘ func tio n no d e ’
f
•
Jika sua tu no d e p a d a flo wc ha rt me miliki sa tu g a ris tung g a l ya ng ma suk d a n d ua g a ris ya ng ke lua r d a n me rup a ka n p ure c o ntro l instruc tio n
d ise b ut ‘ p re d ic a te no d e ’
p
T
F
•
Be ntuk la in d a ri no d e a d a la h b e ntuka n ya ng d ika ta ka n ‘ no -o p ’ no d e ya itu no d e ya ng tid a k me rub a h a ta u me ng e va lua si d a ta , d e ng a n d ua
g a ris ma suka n d a n sa tu g a ris ke lua r d ise b ut ‘ c o lle c ting no d e ’
•
c o nto h struktur c o ntro l
g
h q
p
4.2.2
Pro p e r Pro g ra m
•
Sua tu p ro p e r p ro g ra m a d a la h sua tu p ro g ra m d e ng a n sua tu struktur ko ntro l ya ng
1. me miliki ma suka n tung g a l d a n ke lua ra n tung g a l
2. untuk se tia p no d e , me miliki sa tu p a th ja lur ya ng me le wa ti no d e
te rse b ut d a ri g a ris ma suka n me nuju g a ris ke lua ra n
•
C o nto h p ro p e r p ro g ra m
d q
c b
a
t p
s
•
Ba g ia n d a ri sua tu p ro p e r p ro g ra m d ima na b a g ia n te rse b ut jug a me rup a ka n p ro p e r p ro g ra m d ise b ut ‘ p ro p e r sub p ro g ra m ’
4.2.3
Ba g a n d a n Po ho n Ekse kusi E- C ha rt E- Tre e
•
E-C ha rt me rup a ka n b a g a n ya ng me ng g a mb a rka n a rur e kse kusi p ro g ra m ya ng te rtua ng p a d a sua tu flo wc ha rt
•
Dib e rika n sua tu flo wc ha rt d a ri p ro p e r p ro g ra m , p e mb a ng un E-C ha rt- nya d a ri no d e -no d e d a n g a ris-g a ris d e ng a n b e b e ra p a la ng ka h se b a g a i
me rikut
1. Mula i E-C ha rt d e ng a n g a ris ma suk p a d a flo wc ha rt d a n a d ja c e nt p re d ic a te
, func tio n, a ta u c o lle c ting no d e 2. Pa d a se tia p la ng ka h ko nstruksi, p e rtimb a ng ka n se tia p ja lur e kse kusi
p a d a p e ng e mb a ng a n E-C ha rt.
3. Pa d a sa a t se mua ja lur e kse kusi me nc a p a i te rmina si p a d a g a ris ke lua r a ta u p a d a titik ya ng se b e lumnya d imunc ulka n p a d a ja lur, E-C ha rt se le sa i
•
Sua tu Exe c utio n Tre e E-Tre e d a ri sua tu flo wc ha rt p ro g ra m a d a la h sua tu p o ho n ya ng me milki ja lur p a th d a ri se mua ke mung kina n uruta n
e kse kusi ta np a te rd a p a t re tra c king
•
Pa d a E-Tre e me nja d i finite E-Tre e a p a b ila tid a k te rd a p a t sua tu b e ntuk struktut p e ng ula ng a n, se b a liknya a ka n te rja d i sua tu Infinite E-Tre e jika
te rd a p a t sua tu struktur p e ng ula ng a n
•
Pe rtimb a ng ka n
f
q g
p
2 1
q g
p
2 1
f
2
1
q g
p f
f
p
q g
p f
g
q
4.3
Fung si- fung si p ro g ra m
4.3.1
Da ta A ssig m e nt
•
Pe rnya ta a n a ssing me nt d a p a t d iliha t se b a g a i sua tu p ro g ra m p a d a sisi ka na n ya ng me ntra nsfo rma sika n sua tu initia l d a ta sta te me nja d i sua tu
fina l d a ta sta te d e ng a n sua tu c a ra ya ng sp e sifik
•
Pa d a le ve l ko mp ila si d a n me sin, sua tu p e rnya ta a n a ssig nme nt d a p a t g a g a l d a la m p e ng e kse kusia nnya d e ng a n b e rb a g a i a la sa n:
1. typ e ya ng tid a k ko mp a tib e l 2. Pe mb a g ia n d e ng a n No l
3. Struktur d a ta ya ng tid a k ko mp a tib e l
•
Sua tu p e rnya ta a n a ssig nme nt se b a g a i na ma d a ri sua tu fung si ya ng me nd e finisika n sua tu sta te tra nsitio n untuk se mua d a ta ya ng d ike ta hui
d a la m p ro g ra m
•
Do ma in d a ri fung si b e rko re sp o nd e nsi ke initia l d a ta sta te ya ng d itra nsfo rma sika n o le h p e rnya ta a n a ssig nme nt me nja d i sua tu fina l d a ta
sta te , c o nto h, p a d a sua tu p ro g ra m d e ng a n d a ta sp a c e x, y, z
p e rnya ta a n
x := m a xy , z
b e rko re sp o nd e nsi ke sua tu fung si a ssig nme nt, ya ng me rup a ka n sua tu himp una n d a ri o rd e re d p a ir d e ng a n b e ntuk
m a x = {y , z, u| y
≥
z
∧
u = y
∨
z
≥
y
∧
u = z }
a ta u d a p a t d itulis se c a ra se d e rha na d e ng a n se hing g a b e ntuk d a p a t d inya ta ka n d e ng a n
x := m a x y , z ={x , y , z, m a x y , z , y , z}
4.3.2
Efe k- e fe k p ro g ra m p a d a d a ta
•
Sua tu e kse kusi d a ri sua tu p ro g ra m d a p a t b e ra khir p a d a E-tre e d a n ke mung kina n se tia p e kse kusi a ka n me nc a p a i a khir te rmina te , wa la up un
E-tre e a d a la h sua tu infine te
•
Pe rtimb a ng ka n, untuk se tia p initia l d a ta sta te X ya ng ma na me nc a p a i a khir e kse kusi, sua tu fina l d a ta sta te Y te rd e finisi, nila i Y unik, d ib e rika n d a ri
X , ma ka himp una n ‘ o rd e re d p a ir’ { X , Y } d id e finisika n a d a la h sua tu
fung si, ha l ini d ika ta ka n se b a g a i ‘ p ro g ra m func tio n’
•
Dib e rika n sua tu p ro p e r p ro g ra m d e ng a n na ma P, d ino ta sika n d e ng a n p ro g ra m func tio nnya o le h [P]
f X
Y
P =
[P] = { x , y | Y = fX}
•
Sua tu uruta n d a ri d ua fung si
g X
Y
P = h
Z
g = { X , Y }, h = { Y , Z }
[P] = { X , Z | Z = hg X}
•
Pe rtimb a ng ka n Flo wc ha rt
g p
h f
r q
•
E-C ha rt untuk g a mb a r d i a ta s a d a la h
g q
h g
r f
p
h r
g
Y
N 1
N Y
Y
N Y
N 2
3 4
5 •
Fung si Pro g ra m ya ng d id a p a tka n a d a la h 1 {X,Y | p X
∧
q fX
∧
Y = g fX} 2 {X,Y | p X
∧
~q fX
∧
rhfX
∧
Y = g hfX} 3 {X,Y | p X
∧
~q fX
∧
~rhfX
∧
Y = hfX} 4 {X,Y | ~p X
∧
rhX
∧
Y = g hX}
5 {X,Y | ~p X
∧
~rhX
∧
Y = hX}
•
Fung si p ro g ra m ini d a p a t d id e finisika n jug a d e ng a n sua tu c o nd itio na l rule
[P] = {X,Y | p X
∧
q
•
fX
∧
Y = g
•
fX | p X
∧
~q
•
fX
∧
r
•
h
•
fX
→
Y = g
•
h
•
fX | p X
∧
~q
•
fX
∧
~r
•
h
•
fX
→
Y = h
•
fX | ~p X
∧
r
•
hX
→
Y = g
•
hX | ~p X
∧
~r
•
hX
→
Y = hX}
•
Pe rtimb a ng ka n
g5
p2
1
g4 g1
g2
g3 p3
p1
3 2
1
g4 g1
g2
g3 p1
2 1
3
p2
2
g5 p3
3
E-C ha rt
g4 g1
g2
g3 p1
p2 g5
p3
f1
f3 f2
E-Tre e f1
= {X,Y | Y = f2
•
g 1X} f2
= {X,Y | p 1
•
g 3X
→
Y = f1
•
g 2
•
g 3X | ~p 1
•
g 3X
→
Y = f3
•
g 3X} f3
= {X,Y | p 2X
∧
p 3X
→
Y = f3
•
g 5X | p 2X
∧
~p 3X
→
Y = X | ~p 2X
→
Y = f2
•
g 4X} ma ka
[P] = f1
•
Pe rtimb a ng ka n untuk PDL
[x := x + y ; y := x - y] = {x, y, x + y, x}
[
if
x y
the n
x := y
fi
] = {x , y, minx, y, y} =
x := minx, y
[
while
x 0
do
x := x - 1
o d
] = {x, min0,x =
x := min0, x
[
while
x
≠
do
x := x - 1
o d
] = {x, 0 | x
≥
0} = x
≥ →
x := 0
[
do
x := x + 1
until
x y
o d
] = {x , y, m a xx + 1 , y + 1, y} =
x := m a xx + 1, y + 1
4.3.3
Pro g ra m Eq uiva le nc e
•
Ko nse p p ro g ra m e q uiva le nc e d ig una ka n d a la m me nye d e rha na ka n sua tu p ro g ra m
•
Jika d ua p ro g ra m me miliki E-Tre e ya ng sa ma ma ka ke d ua nya d ika ta ka n e xe c utio n e q uiva le nc e
•
Jika me miliki fung si p ro g ra m ya ng sa ma ma ka d ika ta ka n func tio n e q uiva le nc e
•
Pe rtimb a ng ka n
g
p q
g
q p
4.4.
Struktur- struktur Pro g ra m
4.4.1
Prim e p ro g ra m
•
Prime Pro g ra m a d a la h sua tu p ro p e r p ro g ra m ya ng tid a k me miliki p ro p e r sub p ro g ra m ya ng le b ih d a ri sa tu
Prime Buka n Prime
•
p ro p e r p ro g ra m d a p a t d ihitung d a ri jumla h no d e nya d a n d ikla sifika sika n se b a g a i p rime a ta u b uka n p rime p ro g ra m .
•
Da ri struktur ko ntro l d id a p a tka n [f] = f
[g ;h] = {X,Y | Y = h
•
g x}
[
if
p
the n
g
fi
] = {X,Y | p X
∧
Y = g X o r ~p X
∧
Y = X}
[
while
p
do
g
o d
] = {X, Y |
∃
k
≥ ∀
j , 0
≤
j kp
•
g
j
X
∧
~p
•
g
k
X
∧
Y = g
k
X}
[
do
g
until
p
o d
] = {X,Y |
∃
k
∀
j , 1
≤
j k~p
•
g
j
X
∧
~p
•
g
k
X
∧
Y = g
k
X}
[
if
p
the n
g
e lse
h
fi
] = {X,Y | p X
∧
Y = g X
∨
~p X
∧
Y = hX}
[
do
g
while
p
do
h
o d
] = {X, Y |
∃
k
≥ ∀
j , 0
≤
j kp
•
g
•
h
•
g
j
X
∧
~p
•
g
•
h
•
g
k
X
∧
Y = g
•
h
•
g
k
X}
4.4.2 C o m p o und Struc ture
•
Jika sua tu func tio n no d e d a ri se b ua h p rim e p ro g ra m d ig a ntika n o le h p rime p ro g ra m
ya ng la in ma ka sua tu p ro p e r p ro g ra m b a ru a ka n d iha silka n
•
Sua tu c o mp o und p ro g ra m me nja d i se b ua h p ro g ra m d ib e ntuk o le h p e ne mp a ta n titik-titik fung si d a ri sua tu p rime p ro g ra m d e ng a n b e b e ra p a
p rime p ro g ra m
•
C o m p o und p ro g ra m d a p a t d id e finisika n d a la m b e ntuk ukura n ya ng
tid a k te ntu te ta p i ko mp le ksita s d a ri p ro g ra m d a p a t d ikura ng d e ng a n me ng g una ka n sua tu himp una n ‘ fixe d se t o f p rime ’ ya ng d ise b ut ‘ b a sis
se t ’
•
De finisi
: Sua tu Pro g ra m ya ng te rstruktur a d a la h sua tu c o mp o und p ro g ra m ya ng d isusun d a ri sua tu fixe d b a sis se t d a ri b e b e ra p a p rime
p ro g ra m
4.4.3
Te o re m a Struktur
•
Te o re m a Struktur
: Pro p e r Pro g ra m a p a p un a d a la h func tio n e q uiva le nt d e ng a n sua tu p ro g ra m ya ng te rstruktur d e ng a n b a sis se t {se q ue nc e ,
ifthe ne lse , while d o }, p e ng g una a n fung si-fung si d a n p re d ika t d a ri p ro g ra m a sli d a n a ssig nme nt-a ssig nme nt se rta te st p a d a sa tu ‘ a d d itio na l
c o unte r
’
•
Pe rtimb a ng ka n titik fung si
h
i
j
ma ka ko nstruksi ya ng b a ru a d a la h
h
i
g
i
= L := j
•
Pe ng ikuta n e kse kusi fung si h, p ro g ra m ini me me b rika n nila i j ke sua tu na ma va ria b e l b a ri L se b a g a i “ Pro g ra m C o unte r” ya ng tid a k te rd a p a t
p a d a p ro g ra m a sli
•
Pe rtimb a ng ka n untuk titik p re d ic a te
j
p
k i