Tip e - tip e Da ta

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