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