e-Books |

(1)

BA B I

KETELITIA N DA LA M PEMRO G RA MA N

1.1

Pe m o g ra m a n d a la m ukura n ke c il

1.1.1

Ba g a im a na m e nulis p ro g ra m - p ro g ra m ya ng b e na r d a n m e ng e ta huinya

• Pa nd a ng a n la ma te nta ng sua tu p e mo g ra ma n a d a la h : 1. Pe mo g ra ma n c e nd e rung a ka n me miliki ke sa la ha n 2. Pe nd e ka ta n ya ng d ila kuka n a d a la h “ C ut-a nd -Try”

• Pa nd a ng a n b a ru te nta ng sua tu p e mo g ra ma n a d a la h

1. Kita d a p a t me mp e la ja ri p e mo g ra ma n ya ng p e ra nc a ng a n ya ng ko nsiste n d a n p e nulisa n p ro g ra m ya ng b e na r d a ri a wa l

2. Da p a t me mb e rika n “ e rro r fre e ” p a d a uji c o b a nya d a n p e ng g una a n b e rikutnya

• De ng a n b e rla tih me ne ra p ka n p rinsip -p rinsip p e mo g ra ma n te rstruktur d a n ma te ma tika nya kita d iha ra p ka n d a p a t me nulis p ro g ra m ya ng b e na r d a n me ya kinka n p a d a kita d a n o ra ng la in b a hwa p ro g ra m ya ng d ituliska n a d a la h b e na r me nurut lo g ika d a n a ka l, d ib a nd ing d e ng a n “ Tria l d a n Erro r”

• Se ka lip un jika kita sud a h me ne muka n “ la st e rro r” ya ng te rsisa d a la m p ro g ra m , kita tid a k d a p a t me ma stika n a p a ka h ha l te rse b ut a d a la h ya ng ke sa la ha n ya ng te ra khir

• Me ning ka tka n p e ng a la ma na n d a la m p e nulisa n p ro g ra m ya ng b e na r, d imula i d a ri p ro g ra m ya ng ke c il, ke mud ia n ya ng b e sa r, a ka n me mb e rika n sua tu b a sis se c a ra p syko lo g i b a ru untuk me nunja ng d a la m p e mo g ra ma n

• Me to d e Pe mo g ra ma n Te rstruktur a ka n me mb e rika n kita untuk me nulis rib ua n b a ris p ro g ra m d a la m d ua p uluh la ng ka h d a ri lima p uluh, tid a k se b a g a i sub p ro g ra mn ya ng te rp isa h, te ta p i se b a g a i p e rlua sa n ya ng te rus me ne rus d a n p e la ksa na a n p ro g ra m se c a ra b a g a ia n p e r b a g ia n


(2)

• Sua tu p ro g ra m ya ng b e na r me nd e finisika n sua tu p ro se d ur untuk sua tu ke te ta p a n p e mro se sa n ya ng d itujuka n untuk me me nuhi sua tu sp e sifika si ya ng d ite ta p ka n

• Pro g ra m d a p a t sa ja b e rub a h-ub a h ya ng d ise b a b ka n ka re na 1. Pe rub a ha n sp e sifika si

2. Ke sa la ha n p e mo g ra ma n 3. Pe rb e d a a n p e mro se sa n

• Pe nulisa n p ro g ra m ya ng b e na r tid a k b e ra rti b a hwa p ro g ra m-p ro g ra m d a p a t d itulis se ka li d a n se la ma nya . Ini a rtinya b a hwa p ro g ra m he nd a knya d itulis te p a t d e ng a n ya ng d iha ra p ka n.

Pe m b uktia n d a ri ke b a na ra n sua tu p ro g ra m

• De ng a n me ne ra p ka n p rinsip -p rinsip p e mo g ra ma n te rstruktur se c a ra ma te ma tis p a d a p e nulisa n p ro g ra m se c a ra ko nsiste n ma ka d imung kinka n se o ra ng p ro g ra mme r d a p a t d ib a ntu d a la m p e nulisa n se b ua h p ro g ra m

• Pe mb uktia n se c a ra ma te ma tika a d a la h d e ng a n me la kuka n se ra ng ka ia n p e rc o b a a n untuk me nja wa b a ta s hito p te sa ya ng kita b e rika n se nd iri

• No ta si ma te ma tika

1 Me mb e rika n ke se mp a ta n untuk me ng g una ka n p e nsil d a n ke rta s d a la m me lua ska n p e mikira n

2 Me mb e rika n ke se mp a ta n ke p a d a ma nusia untuk se tuju p a d a a tura n-a turn-a n untuk ke se p n-a tn-a kn-a n te rhn-a d n-a p kln-a im p e mb uktin-a n

• Ma te ma tika me mb e rika n sua tu b e ntuk b a ha sa d a n p ro se d ur untuk p o la p ikir kita

II.4 Sua tu p e nd e ka ta n intuisi (Intuitive A p p ro a c h) m e nuju Ke b e na ra n Pro g ra m

• Dika ta ka n p e nd e ka ta n intuisi ka re na p e nd e ka ta n ini b e rhub ung a n la ng sung d e ng a n o p e ra si d a ri p ro g ra m d a n tid a k me ng g una ka n b e ntuk a lja b a r d a ri p e mo g ra ma n te rstruktur


(3)

p e mb uktia n d a ri ke b e na ra n p ro g ra m a d a la h mung kin d ila kuka n


(4)

Y := 0

in : [X > 0]

out : [ X tidak berubah and Y2 < X < Y (Y+1)2]

Decision Yes

Y := Y + 1

No

init : [X > 0 and Y = 0]

loop : [Y2 < X] cont : [Y2 < X]

yes : [(Y+1)2 < X]

Pe m o g ra m a n d a la m ukura n b e sa r Inte g rita s se c a ra ko nse p

• Inte g rita s se c a ra ko nse p (C o nc e p tua l Inte g rity) a d a la h ha l ya ng te rp e nting d a la m p e rtimb a ng a n p a d a p e ra nc a ng a n syste m

Pe rb e d a a n a nta ra “He uristic De sig nd a nRig o ro us De sig n

• Ra nc a ng a n : 1. He uristic De sig n 2. Rig o ro us De sig n

He uristic De sig n me rujuk p a d a "Tria l a nd Erro r"

Rig o ro us De sig n me nye rta ka n sua tu sta te m a c hine ya ng me nd e finisika n sua tu himp una n te rtutup d a ri tra nsisi syste m, a ta u

Re c ursive Func tio n ya ng me nd e finisika n sua tu se a rc h sp a c e, a ta u mung kin fo rm a l g ra m m a r ya ng me nd e finisika n se mua ke mung kina n inp ut d a n o utp ut untuk sua tu p ro g ra m


(5)

Rig o ro us De sig n me nja d i b a sis d a la m me ra wa t inte g rita s d a la m p e ng e mb a ng a n p e ra ng ka t luna k

Pe m ro g ra m a n Te rstuktur d a n Pe ra nc a ng a n ya ng b a ik

• Pe mro g ra ma n Te rstruktur d itulis untuk o ra ng la in ya ng me mb a c a d a n untuk d ime ng e rti.

• Pe ra nc a ng a n ya ng b a ik b e ra rti p e ne mua n so lusi ya ng b a ik p a d a se b ua h p e rma sa la ha n ya ng se ring te rd e finisika n

• La ng ka h-la ng ka h ya ng d ila kuka n

1. De finisika n sua tu p e rma sa la h ya ng b e na r 2. Te muka n so lusi ya ng b a ik

• Sua tu p e mo g ra ma n te rstruktur tid a k me nja min p e ra nc a ng a n ya ng b a ik, me la inka n ha nya me mb e rika n sua tu ke mung kina n te rha d a p p e ra nc a na n ya ng b a ik

• Sua tu p e ra c a ng a n ya ng b a ik d id a sa rka n a ta s d a la mnya ke se d e rha na a n p a d a sua tu tug a s lo g ika ya ng ko mp le ks

1.2.4 Pe rb e d a a n a nta ra Pe nd e ta ila n d a n Pe ra nc a ng a n

• Sua tu p ro g ra m ko mp ute r tid a k me mb utuhka n ra nc a ng a n, te ta p i “c o d e” , d ima na a p a b ila ko d e b e na r ma ka ko mp ute r a ka n me ng ha silka n se sua tu ya ng b e na r

• Te rd a p a t sa tu ke suka ra n d e ng a n p e rnya ta a n d i a ta s; wa la up un lo g ika ya ng d ib e rika n “ b e na r” te ta p i musta hil se se o ra ng d a p a t me mb a ng un sua tu p ro g ra m ya ng ko mp le ks d a n b e sa r ta mp a te rja d i sua tu b e ntuk ma sa la h

• Pa d a ke nya ta a nnya istila h p e ra nc a ng a n d ig una ka n d a la m p e mo g ra ma n, te ta p i istila h p e nd e ta ila n a d a la h le b ih c o c o k

• Pe ra nc a ng a n me ng ha silka n De ta il-d e ta il, te ta p i p e nd e ta ila n tid a k me ng ha silka n ra nc a ng a n

1.2.5 Va lid a si Pe ra nc a ng a n d e ng a n Pe ng e m b a ng a n To p - Do wn

• Ya ng p e nting d a ri p e ng e mb a ng a n To p -Do wn p a d a so ftwa re ya ng b e sa r a d a la h b e ra sa l d a ri p e ng a la ma n p a hit d ima na p e ng e mb a ng a n To p -Do wn d i-ikuti o le h p e ng e mb a ng a n Bo tto m-Up


(6)

• Pa d a Pe ng e mb a g a n Bo tto m-Up d ima na “ Lo w Le ve l c o d e ” d itulis te rle b ih d a hulu d a la m p e ng inte g ra sia n d ila kuka n ke mud ia n.

• Ra nc a ng a n ya ng kura ng b a ik a ka n te rliha t p a d a sa a t d ila kukka nnya p e ng inte g ra sia n

• Se b a liknya , p a d a p e ng e mb a ng a n To p -Do wn, p ro g ra m-p ro g ra m ko ntro l ya ng me ng inte g ra sika n se c a ra fung sio na l d a ri ko d e , d itulis d a n d i te st te rle b ih d a hulu, d a n func tio na l c o d e d ita mb a hka n d e ng a n b e rg e ra k ma ju.

• Pa d a Siste m So ftwa re , p e ng e mb a ng a n To p -Do wn d imula i d e ng a n ra nc a ng a n se c a ra lo g ika untuk me nye la ra ska n ko o p e ra si d a ri b e b e ra p a p ro g ra m me la lui a kse s te rha d a p b e b e ra p a himp una n “ sha re d d a ta ”

• Pe rma sa la ha n ya ng ya ng a d a p a d a p e mng e mb a ng a n To p -Do wn a d a la h tid a k ha nya b a g a ima na b e ntuk a khir d a ri siste m , te ta p i jug a b a g a ima na b e ntuk d a ri siste m se la ma p e ng e mb a ng a n

1.2.6 Da sa r d a ri “So ftwa re Re lia b lility” a d a la h p a d a p e ra nc a ng a n b uka n p a d a uji c o b a

• De ng a n te sting tid a k mung kin so fttwa re d a p a t d ib ua t re lia b le

• Ra nc a ng a n d a p a t

1. me ng ura ng i ukura n d a ri siste m 2. me ng ura ng i inte rko ne ksi

3. me ng ura ng i ko mp le ksita s sp e sifika si p ro g ra m

• Se o ra ng p e ra nc a ng me miliki ke se mp a ta n untuk me ng g una ka n ra nc a ng a n To p -Do wn d a n d isip lin p e ng e mb a ng a n p e mo g ra ma n te rstruktur, untuk te ta p me mp e rlua s ra nc a ng a n d ib a wa h p e ng a wa sa n p e ng e ta hua n ya ng b a ik untuk me ne muka n ke se d e rha na a n ya ng te rd a la m ya ng mung kin munc ul p a d a se tia p le ve l, la ng ka h d e mi la ng ka h


(7)

BA B II

ELEMEN- ELEMEN EKSPRESI LO G IKA 1. O ve rvie w

• Pe mo g ra ma n a d a la h sua tu b e ntuk khusus d a ri kre a tifita s p e ra nc a ng a n

• Pa d a a wa lnya p ro g ra m d ib ua t ha nya untuk d ime ng e rti o le h me sin, p a nd a ng a n te rse b ut sa a t ini b e rub a h, b a hwa sua tu p ro g ra m d ib ua t a d a la h jug a untuk d ime ng e rti o le h ma nusia

• Da sa r d a la m me mb e ntuk sua tu b e ntuk p e mo g ra ma n ya ng b a ik me nc a kup e le me n ya itu Eng lish (Ba ha sa ), ma te ma tika , b e ntuk-b e ntuk e ksp re si lo g ika

2. Ba ha sa ya ng b a ik

• Be ntuk b a ha sa ya ng b a ik d a la m me nd e srip sika n sua tu p e mo g ra ma n a d a la h d e ng a n me mb e ntuk b a ha sa ya ng te rstruktur

• Pse ud o c o d e a d a la h sa la h sa tu b e ntuk b a ha sa ya ng te rstruktur (Eng lish Struc ture )

3. Fo rm a l Lo g ic

3.1 Lo g ic a l Pro p o sitio ns

• Fo rma l Lo g ic b e rhub ung a n d e ng a n ko munika si ma nusia d a n sua tu b e ntuk ya ng d a p a t me ya kinnya d i a nta ra ma nusia te nta ng sua tu ke b e na ra n d a ri sua tu p e rnya ta a n

• Fo rma l Lo g ic me nye d ia ka n sua tu “ a xio ma tic c a lc ulus” a ta u sua tu p e rhitung a n ya ng d id a sa rka n a ta s sua tu himp una n a xio m


(8)

• Dua mo d e l fo rma l lo g ic a d a la h 1. Pro p o tio na l C a lc ulus

2. Pre d ic a te C a lc ulus

• Sua tu p e rnya ta a n d ise b ut lo g ic a l p ro p o sitio n a p a b ila te rd a p a t sua tu nila i ya ng me nya ta ka n ke b e na ra n te rha d a p p e rnya ta a n te rse b ut

• Nila i a d a la h True d a n Fa lse

3.2 Pro p o sitio na l C a lc ulus

• Pa d a sa a t sua tu kump ula n p e rnya ta a n d i ka ta ka n se b a g a i p ro p o sitio n, d e ng a n p e nya ta a n b e na r se mua nya , Pro p o sitio na l C a lc ulus me mb e rika n sua tu himp una n ya ng te ta p d a ri b e rb a g a i c a ra p e ng ko mb ina sia n p ro p o sitio n la ma ke d a la m b e ntuk b a ru

• Pro p o sito na l C a lc ulus me mb e rika n c a ra -c a ra b a g a ima na me la kuka n “ Bre a king Do wn” sua tu p ro p o sitio n ya ng ko mp le ks ke d a la m b e ntuk ya ng se d e rha na

• Ko mb ina si d a ri p ro p o sitio n d ise b ut sua tu lo g ic a l e xp re ssio n

• Tip e umum d a ri lo g ic a l e xp re sio n a d a la h

1. no t ; sua tu p ro p o sitio n p, p e no la ka n, d ita nd a i ~p

2. a nd ; d ua p ro p o sitio n p,q, p e rnya ta a n d a ri ke d ua -d ua nya , d ita nd a i d e ng a n no ta si p

q

3. o r ; d ua p ro p o sitio n p,q, p e rnya ta a n untuk se tid a k-tid a knya sa tu, d ita nd a i p

q

4. e q ua l ; d ua p ro p o sitio n p,q, p e rnya ta a n ya ng p d a n q me miliki nila i lo g ika ya ng sa ma , d ita nd a i p

q

5. imp lie s ; d ua p ro p o sitio n p, q, p e rnya ta a n d ima na jika p a d a la h b e na r ma ka q p a sti b e na r, d ita nd a i d e na n p

q

• Nila i ke b e na ra n p a d a sua tu e ksp re si te rg a ntung p a d a nila i se tia p p ro p o stio n d a n ke mud ia n d ite ra p ka n p a d a ta b e l ke b e na ra n


(9)

Rule p q ~p p

q p

q p

q p

q

1 T T F T T T T 2 T F F F T F F 3 F T T F T F T 4 F F T F F T T

• C o mp o und Lo g ic a l Exp re ssio n a d a la h me rup a ka n kump ula n d a ri b e b e ra p a e ksp re si lo g ika


(10)

• c o nto h

(F ∧ (~T)) ∨ ((F → T) ∨ (T ↔ T))

(F ∧ F ) ∨ ((F → T) ∨ (T ↔ T)) no t, o le h a tura n 1 F ∨ ((F → T) ∨ (T ↔ T)) a nd, o le h a tura n 4 F ∨ ( T ∨ (T ↔ T)) imp lie s, o le h a tura n 3 F ∨ ( T ∨ T ) e q ua ls, o le h a tura n 1 F ∨ T o r, o le h a tura n 1

T o r, o le h a tura n 3

a . Pre d ic a te C a lc ulus

• Pro p o sio na l c a lc ulus me nc a kup a na lisa d a ri p ro p o sitio n ya ng d ip e c a h me nja d i p ro p o sitio n ya ng se d e rha na ; d ima na b e ntuk ya ng p a ling se d e rha na sud a h tid a k d a p a t d ib a g i la g i

• Bia r b a g a ima na p un, me liha t p ro p o sitio n ya ng se d e rha na me rup a ka n sua tu b e ntuk struktur sub ye k d a n p re d ika t, d a n khususnya sua tu p e rnya ta a n ya ng sub ye knya tid a k d ike ta hui

• Be ntuk ini d ika ta ka n se b a g a i Pre d ic a te C a lc ulus

• Sua tu p e rnya ta a n te rd iri d a ri 1. va ria b le

2. p re d ic a te

P(x) a d a la h sua tu p re d ic a te ya ng me nja d i sua tu p ro p o sitio n p a d a sa a a t x d ib e rika n sua tu ke mung kina n nila i.


(11)

b a ru

te rd a p a t b e b e ra p a (∃x)

Existe ntia l q ua ntifie r

p(x) = true

d itulis ∃xp(x), a ta u ∃x(p(x)), a ta u (∃x)(p(x)) untuk se mua (∀x)

Unive rsa l q ua tifie r

p(x) = true

d itulis ∀xp(x), a ta u ∀x(p(x)), a ta u (∀x)(p(x))

• Pe rtimb a ng ka nla h d ua e ksp re si lo g ika d i b a wa h ini, a p a ka h me rup a ka n p ro p o sitio n ?

x(p(x,y))

x(p(x)) ∧q(x)

• Te rd a p a t d ua je nis sko p e d a ri va ria b e l 1. Bo und

2. Fre e

• Pe rtimb a ng ka n d ua e ksp e rsi lo g ika d i b a wa h ini, a p a ka h me rup a ka n p ro p o sitio n ?

y(∃x(p(x,y)))

y (∃x(p(x)) ∧q(x))

• C o nto h

xy r(x,y) ↔∀yxr(x,y)

∀x(~(p(x) ∨q(x)) ↔ ~p(x) ∧ ~q(x))

a . Him p una n d a n Fung si


(12)

• Sua tu himp una n a d a la h se kump ula n o b ye k ya ng te rd e finisi d e ng a n je la s

• Kump ula n o b ye k p a d a sua tu himp una n d ise b ut a ng g o ta (me mb e r) a ta u e le me n (e le me nt)

• Re la si a nta ra ke a ng g o ta a n a nta ra sa tu a ng g o ta m d a n himp una n S

d inya ta ka n

mS

• Jika m a d a la h b uka n a ng g o ta d a ri S, d inya ta ka n

mS

• Himp una n ta mp a a ng g o ta d ika ta ka n se b a g a i himp una n ko so ng d e ng a n no ta si

• Himp una n d ika ta ka n sa ma jika a ng g o ta -a ng g o ta ya ng a d a p a d a d ua himp una n a d a la h sa ma d e ng a n ta mp a me mp e rha tika n d up lika si ya ng a d a p a d a a ng g o ta nya

• Jumla h e le me n p a d a himp una n S, d i no ta sika n se b a g a i |S|

• Sua tu himp una d a p a t d ib e rika n a tura n (rule ) untuk me ng e ne ra te a ng g o ta d a ri sua tu himp una d e ng a n me ng g una ka n sua tu Se t Build e r c o nto h

fruit = {x | x = a p p le o r x = g ra p e o r x = o ra ng e }

• Unio n AB ; AB = BA = { x | xAxB }

• Inte rse c tio n AB ; AB = BA = { x | xAxB }

• Diffe re nc e A - B ; A - B = { x | xAxB }

• Jika se mua a ng g o ta d a ri himp una A me nja d i a ng g o ta d a ri himp una n

B ma ka d ika ta ka n A a d a la h sub se t d a ri B d e ng a n no ta si AB, ma ka :

AAB, ABA, A - BA

• C a rte sia n Pro d uc t d a ri (A1, A2, .... An), d ima na se tia p e le me n a d a la h sua tu na ma himp una n d a n n a d a la h sua tu inte g e r, a d a la h sua tu himp ua n list-list, d itulis


(13)

A1 x A2 x ... x An = {(a 1,a 2,...a n) | a 1A1a 2A2a nAn}

ii. Re la si

• Sua tu re la si a d a la h sua tu himp una n ya ng me miliki a ng g o ta (jika a d a ) d ima na se mua me rup a ka n p a sa ng a n ya ng b e ruruta n

• Pa d a himp una n, a ng g o ta p e rta ma untuk se tia p p a sa ng d ise b ut d o ma in d a ri sua tu re la si r d ino ta sika n d e ng a n D(r)

• Ang g o ta d a ri D(r) d ise b ut a rg ume n d a ri r

• Pa d a himp una n a ng g o ta ke d ua untuk se tia p p a sa ng d ise b ut ra ng e d a ri sua tu re la si r d ino ta sika n d e ng a n R(r)

• Ang g o ta d a ri R(r) d ise b ut nila i d a ri r

• Re la si d a p a t d ikla sifika si p a d a b e b e ra p a c a ra

1. r a d a la h re fle xive jika xD(r) me nunjuka n (x,x) ∈ r, d ima na , r

me rup a ka n re la si “ a d a la h sa ma se p e rti”

2. r a d a la h sym m e tric jika (x,y) ∈ r me nunjuka n (y,x) ∈ r, d ima na r

me rup a ka n re la si “ a d a la h ke b a lika n d a ri”

3. r a d a la h tra nsitive jika (x,y) ∈r, (y,z) ∈r me nunjuka n (x,z) ∈r, d ima na

r me rup a ka n re la si “ a d a la h p ind a ha n d a ri”

• Pe rtimb a ng ka n untuk c o nto h d ib a wa h ini e q ua l {(x,y) | x = y}

le ss tha n {(x,y) | y < x} o p p o site sig n {(x,y) | x * y , 0 } kita me liha t

e q ua l a d a la h sua tu re fle xive re la tio n ( 7 = 7 a d a la h true)


(14)

e q ua l a d a la h sua tu symme tric re la tio n ((2/ 4 = 1/ 2) → (1/ 2 = 2/ 4)) le ss tha n b uka n sua tu symme tric re la tio n ((2 < 7) → (7 < ) fa lse) le ss tha n a d a la h tra nsitive re la tio n (((2 < x) ∧ ( x < y )) → (2 < y )) o p p o site sig n b uka n tra nsitive re la tio n


(15)

1.2.7 Fung si

• Sua tu fung si a d a la h sua tu re la si, ka ta ka n f , d i ma na untuk se tia p xD(f) te rd a p a t sua tu e le me n ya ng unik (x,y) ∈ f, se ring d itulis se b a g a i y =

f(x).

• Untuk me nd e finisika n sua tu fung si f d e ng a n p e mb e ria n d o ma in, D(f) d a n sua tu rule (a tura n) untuk p e ng hitung a n nila i ko re sp o nd e nsi untuk se tia p a rg ume n p a d a d o ma in

• Pe rtimb a ng ka n c o nto h d i b a wa h ini

f = {(x,y) | x∈ {0,1}, y = x2+3x+2}

d i ma na (x ∈ {0,1}) me rup a ka n d o ma in d a n (y = x2+3x+2) me na nd a i rule

(a tura n), se hing g a d a p a t me mb e rika n sua tu p e mb ila ng a n d e ng a n b e ntuk

f = {(0,2),(1,6)}

• Fung si d e ng a n “Dummy Va ria b le” a d a la h se b a g a i b e rikut

f = {(x,y)|x(x-1)=0, y-x2-3x-2=0}

• Jika f d a n g a d a la h fung si ma ka {(x,y)|y=f(g(x))}

d ise b ut “ func tio n c o mp o sitio n” d a ri g d a n f, d i no ta sika n se b a g a i fg

• Sua tu fung si f a d a la h re fle ksif d ise b ut “id e ntity func tio n” d ima na f(x) = x

untuk se tia p xD(F)

• Jika p e rtuka ra n sua tu fung si f a d a la h fung si, ma ka f t(f(x)= f(f t(x)) = x

d a n f t d ika ta ka n se b a g a i “inve rse func tio n” d a ri f

• Jika ra ng e d a ri sua tu fung si f a d a la h ha nya b e risi 1 e le me n ma ka fung si te rse b ut d ika ta ka n se b a g a i “c o nsta nt func tio n

• Jika ra ng e d a ri sua tu fung si a d a la h sub se t tid a k ko so ng d a ri {true,

fa lse}, d ise b ut sua tu “p re d ic a te func tio n” c o nto h


(16)

• Pre d ic a te func tio n b ia sa d ig una ka n untuk me nya ta ka n sua tu ko nd isi a tura n d e ng a n b e ntuk (p re d ic a terule) d e ng a n b e ntuk se b a g a i b e rikut ( p 1r1 | p 2r2 | . . . | p nrn )

c o nto h

f = {(x,y) | xD, (x d a p a t d ib a g i o le h 2 →y = x/ 2 |

x d a p a t d ib a g i o le h 3 →y = x/ 3 | true →y = x }

2.4.4 Re c ursive Func tio n

• Re c ursive func tio n (Fung si Re kursif) a d a la h sua tu fung si ya ng d id e finisika n d e ng a n me ng g una ka n fung si itu se nd iri

• Pe rtimb a ng ka n

o d d e ve n = {(x,y) | (x∈ {0,1} →y = x |

x > 1 →y = o d d e ve n(x-2) |

x < 0 →o d d e ve n(x+2))}

2.4.5 Dig ra p h

• Sua tu re la si g jug a d ise b ut d ig ra p h. d id e finisika n se b a g a i sua tu himp una n d a ri g a ris la ng sung , d ima na se tia p g a ris me ng ko ne ksika n sua tu a ng g o ta d a ri D(g) ke a ng g o ta d a ri R(g)

• Pe rtimb a ng ka n


(17)

D

R

2.4.6 Sta te m a c hine

• Sua tu sta te ma c hine a d a la h sua tu fung si ya ng me miliki a ng g o ta se b a g a i "o rd e re d p a ir" d a ri "o rd e re d p a irs", ya ng d ino ta sika n se b a g a i

m = {((sta te,inp ut),(ne wsta te,o utp ut))}

• Pe rtimb a ng ka n

inp ut

sta te b la nk no nb la nk

e xc e ss no ne xc e s s

e xc e ss, λ e xc e ss, inp ut

no ne xe c e ss, inp ut no ne xe c e ss, inp ut


(18)

excess

nonexcess

blank /

nonblank / input

blank / input

nonblank / input

2.5 List d a n String

2.5.1 Struktur List

• Sua tu list a d a la h sua tu uruta n d a ri ite m

• O p e ra si ya ng d a p a t d ila kuka n p a d a list a d a la h 1. Me na mb a hka n ite m b a ru, a + L

2. Me ng g a b ung ka n d ua List, L + M

• Pe mb a ng un list +, p e na mb a ha n sua tu ite m p a d a he a d d a ri sua tu list d e ng a n no ta si

a + ( L + M)

• Pe rha tika n c o nto h b e rikut

a p p le :(le ttuc e ,"Mc Into sh","Wine sa p ") me lo n:(p e a c h,"C a nta lo up e ","Ho ne yd e w") le ttuc e :(me lo n,"Ic e b e rg ","Ro m a ine ")


(19)

ma ka

a p p le .1.1.2 = "C a nta lo up e "

a p p le (2:3) = ("Mc Into sh","Wine sa p ")

2.5.2 String d a n La ng ua g e

• Ba ha sa a d a la h me rup a ka n himp una n d a ri string

• Sua tu fo rma l la ng ua g e a d a la h me rup a ka n himp una n string ya ng d id e finisika n se c a ra e kslusif o le h se kump ula n himp una n o p e ra si d a n re la si ta mp a te rd a p a t sua tu b e ntuk a la mi

• Pe rtimb a ng ka n

D={0,1,2,3,4,5,6,7,9}

I = D∪ ( D x D ) ∪ (D x D x D) ∪ . . . .

• Se tia p d e finisi d ise b ut sua tu Pro d uc tio n

• Na ma himp una n ya ng d id e finisika n d ise b ut Phra se

• Simb o l d a ri b a ha sa d ise b ut Te rmina l symb o ls

• Phra se khusus ya ng me nd e finisika n se luruh b a ha sa d ise b ut “Disting uise d p hra se ”

• La ng ua g e p ro d uc t d id e finisika n se b a g a i

A xx B = {x | aA, bB, x = a || b}

• Ya ng me mb e d a ka n a nta ra A x B d a n A xx B

• Pe rtimb a ng ka n jika


(20)

ma ka

( a || b ) ∈A xx B te ta p i ( a || b ) ∉A x B

d a n

( a , b ) ∈A x B te ta p i ( a , b ) ∉ A xx B

2.5.3 Fo rm a l G ra m m a r

• No ta si ya ng se ring d ig una ka n untuk fo rma l g ra mma r a d a la h Ba c kus Na ur Fo rm (BNF), ya ng d a p a t d isimp ulka n se b a g a i b e rikut

1 O p e ra si La ng ua g e p ro d uc t d ino ta sika n d e ng a n "Juxta p o sting p hra se s" 2 "Juxta p o sting Phra se " ha rus d ip isa hka n d a ri d irinya se nd iri d e ng a n me ng g una ka n ta nd a b ra c ke t (<>), c o nto h <a p p le>

3 Ang g o ta d a ri La ng ua g e Alp ha b e t d i no ta sika n d e ng a n lite ra l simb o lnya

4 De finisi p hra se me ng g una ka n no ta si ::= c o nto h <inte g e r> ::= <d ig it> 5 Simb o l Unio n (∪) d ig a ntika n d e ng a n no ta si ve rtic a l b a r |

6 Jika sua tu p hra se te rd a p a t d ua d e finisi ma ka d ig una ka n ta nd a | , c o nto h

<inte g e r> ::= <d ig it>

<inte g e r> ::= <d ig it><d ig it> ma ka

<inte g e r> ::= <d ig it> | <d ig it><d ig it>

7. O p e ra si ite ra tive la ng ua g e d ino ta sika n d e ng a n me mb e rika n a wa la n *,+


(21)

<na m e> ::= (a p a p un b e ntuk e ksp re si b a ha sa) d ise b ut “c o nte xt fre e g ra mma r

c o nto h

<c lo c ktime> ::= <ho ur> : <m inute>

<ho ur> ::= 0<d ig it> | 1<d ig it> | 2<d ig it to 3> <m inute> ::= <d ig it to 5><d ig it>

<d ig it to 3> ::= 0| 1| 2| 3

<d ig it to 5> ::= <d ig it to 3>| 4| 5 <d ig it> ::= <d ig it to 5>| 6| 7| 8| 9

• Re g ula r g ra mma r me miliki b e ntuk <na me> ::= x <na m e l>

• Sinta x Dia g ra m me nd e finisi sua tu b a ha sa d a la m b e ntuk d ia g ra m c o nto h

2.5.4 Re g ula r Exp re ssio n

• Re g ula r e xp re sio n a d a la h b a g ia n se b e la h ka na n d a ri sua tu p ro d uc tio n tung g a l ya ng me nd e finisika n sua tu b a ha sa d e ng a n o p e ra si c o nc a te na tio n (la ng ua g e p ro d uc t), unio n, ite ra tio n

• No ta si d a ri re g ula r e xp re sio n me ng ijinka n b e b e ra p a a lte rna tive untuk me re p re se nta sika n b a ha sa se c a ra id e ntik, ya ng ma na sua tu p e nye d e rha na a n d ib utuhka n, d e ng a n ke te ntua n

+(A)*(A) = *(A)+(A) = +(A) *(A)*(A) = *(A)


(22)

A∅ = ∅A = A *(*(A)) = *(A)

A(B|C ) = (AB)|(AC ), (B|C )A = (BA)|(C A) A(BC ) = (AB)C

+(A)| ∅ = *(A)

• Imp le me nta si re g ula r e ksp re ssio n d a la m p e mg o g ra ma n d a p a t d ig a mb a rka n sb b

A

B

A

B

A

A

A

A

B

AB

A|0

A|B

*(A)

+(A)

A+(A|B)


(23)

B

p

C

A

A

q

A

q

A

((BA)| (C A))(+(A)|∅) = ((BA|(C A))*(A) = ((B|C )A)*(A) = (B|C )(A*(A)) = (B|C )+(A)

B

p

C

q


(24)

BA B III

ELEMEN- ELEMEN EKSPRESI PRO G RA M

3.1. O ve rvie w

• Pe mb a ha sa n p a d a b a g ia n ini a d a la h untuk me ng e na lka n b e ntuk b a ha sa untuk p e mb ua ta n e ksp e rsi ya ng te p a t d a n ring ka s p a d a p e ra nc a ng a n p ro g ra m

• Be ntuk b a ha sa te rse b ut d ib e d a ka n ke d a la m o ute r synta x d a n Inne r synta x

• O ute r synta x me mb a ha s te nta ng struktur ko ntro l d a n struktur d a ta d a n struktur mo d ul

• Inne r synta x me mb a ha s o p e ra si-o p e ra si d a n te st te rha d a p d a ta

3.2. Pro c e ss De sig n La ng ua g e

3.2.1. Id e d a ri PDL

• De ng a n a d a nya p e ng e mb a ng a n d a n e vo lusi te rha d a p p e ra ng ka t luna k ma ka d ip e rluka n se sua tu ya ng d a p a t d ig una ka n untuk me nje la ska n te nta ng ra nc a ng a n sua tu p ro g ra m

• Ba ha sa p e mo g ra ma tid a k b a ik d ig una ka n untuk me nd e skrip sika n sua tu p ro g ra m, ha l ini d ise b a b ka n ka re na sua tu b a ha sa p e mo g ra ma n me mb e rika n b e ntuk d e skrip si ya ng te r-sp e sia lisa si

• PDL a d a la h sua tu b e ntuk khusus a khir ya ng te rb uka d a ri b a ha sa a la mi d a n ma te ma tika


(25)

• PDL d a p a t me mb e rika n d e skrip si d a ri sisi lo g ika hing g a b e ntuk a khir p a d a me d ia p e nyimp a na n d a ta nya

3.2.2 O ute r Synta x d a n Inne r Synta x p a d a PDL

• O ute r Synta x me nje la ska n b a g a ima na o p e ra si-o p e ra si d ib e rla kuka n d a n d iko ntro l, b a g a ima na d a ta d i-o rg a nisa sika n, d ia kse s d a n d i‘ a ssig n’ , d a n b a g a ima na p ro g ra m-p ro g ra m d id e finisika n d a n d io rg a nisa sika n ke d a la m mo d ul

• Inne r Synta x d a ri PDL me nje la ska n te nta ng tip e d a ta d a n o p e ra si-o p e ra si

• Struktur ko ntro l O ute r Synta x p a d a PDL a d a la h 1. Se q ue nc e Struc ture (Struktur Urut)

- Se q ue nc e (urut)

- Ind e xe d se q ue nc e (Fo r d o )

2. Alte rna tio n Struc ture (Struktur Alte rna si) - IfThe nElse

- IfThe n

- Ind e xe d Alte rna tio n (C a se )

3. Ite ra tio n Strukture (Struktur Pe ng ula ng a n) - While Do

- Do Until - Do While Do

• Da ta d ig o lo ng ka n 1. Da ta ya ng d ina ma i


(26)

- Sc a la r - Arra y - Re c o rd

2. Da ta ya ng tid a k d ike na l, d io rg a nisa sika n - Se q ue nc e

- Q ue ue - Sta c k - Se t

• Tig a le ve l o rg a nisa si d a la m struktur p a d a O ute r Synta x : Jo b , Pro c e d ure , Mo d ul

• Jo b me nje la ska n le ve l te rting g i d a ri p e ng e kse kusia n p ro g ra m d ima na d a la m p e ng e kse kusia nnya me lib a tka n fa kto r-fa kto r d a ri lua r se p e rti o p e ra to r, wa ktu, d ll

• Pro c e d ure me rup a ka n unit ya ng d a p a t d ie kse kusi p a d a sua tu p ro g ra m ta mp a d ip e ng a ruhi o le h fa kto r lua r

• Mo d ul a d a la h syste m unit, d ima na b e b e ra p a p ro c e d ure d io rg a nisa sika n untuk d ip a ng g il o le h use r (Jo b la in a ta u p ro c e d ure la in) d e ng a n me ng a kse s sua tu himp una n d a ta ya ng a d a

• Sua tu Pro c e d ure me mb e rika n a tura n (rule) untuk sua tu fung si (func tio n)

• Sua tu Mo d ul me mb e rika n sua tu a tura n untuk sua tu sta te m a c hine


(27)

• Pe nulisa n Da ta a ssig nme nt d e ng a n me ng g una ka n no ta si ":=", c o nto h

x:=y+z, d e ng a n a rti x d ib e rika n nila i d a ri y + z

• Sisi kiri te rd iri d a ri sa tu na ma d a ta sing le

• Sisi ka na n a d a la h sua tu e ksp re si p a d a na ma -na ma d a ta

• Sua tu Multip le (C o nc ure nt) a ssig nm e nt d ino ta sika n d e ng a n sua tu list na ma p a d a sisi kiri d a n sua tu list e ksp re si p a d a sisi ka na n, c o nto h

x,y,z := x+y, m in(x,z), a b s(x-y)

• d ima na a rtinya a d a la h me ng hitung se mua nila i p a d a sisi ka na n d a n me mb e rika n nila i se c a ra simulta n untuk na ma d a ta p a d a sisi kiri

3.3. Struktur Ko ntro l O ute r Synta x

3.3.1. Se q ue nc e Struc ture (Struktur Urut)

• O p e ra si p a d a stuktur urut a d a la h p e ng o p e ra sia n se ra ng ka ia n o p e ra si se c a ra urut, se c a ra umum d a p a t d ig a mb a rka n se b a g a i b e rikut


(28)

... firstp a rt se c o nd p a rt ...

nthp a rt ...

firstpart

Secondpart

nthpart

• Pa d a PDL o p e ra si-o p e ra si d isp e sifika sika n d e ng a n p e rnya ta a n b a ha sa a la mi d a n o ute r synta x symb o l (;) me mb e rika n p e misa h a nta ra b a g ia n ya ng sa tu d e ng a n b a g ia n ya ng la in

• Pa d a PDL b ia sa nya untuk sua tu struktur urut d ig una ka n synta x d o d a n

o d, c o nto h . . .

do

so rt tra nsa c tio n file ;

up d a te inve nto ry file with tra nsc a tio n;

o d

p rint inve nto ry re p o rt; . . .


(29)

Ind e xe d Se q ue nc e a ta u fo rd o p a d a struktur ko ntro l a d a la h b e ntuk ya ng me milik no ta si se b a g a i b e rikut

...

fo r

ind e xlist

do

d o p a rt

o d

...

Index list dicapai

Assing anngota berikut ke list

Dopart

T

F

d ima na

ind e xlist a d a la h sua tu e ksp re si inne r synta x ya ng me nd e finisika n b a ik va ria b e l ind e x d a n sua tu list ya ng me miliki nila i untuk d ic a p a i d o p a rt

a d a la h b a g ia n ya ng d ie kse kusi se c a ra urut


(30)

...

fo r

i:∈1 to 20 b y 2

do

j:=ta b le (i)+ta b le (i+1) p rint j

o d

...

...

j:=ta b le (1)+ta b le (2) p rint j

j:=ta b le (3)+ta b le (4) p rint j

...

j:=ta b le (19)+ta b le (20) p rint j

...

3.3.2. A lte rna tio n Struc ture s (Struktur A lte rna tif)

• Be ntuk untuk d a ri ifthe ne lse

...

if

ifte st

the n

the np a rt

e lse

e lse p a rt

fi

iftest

Elsepart

thenpart


(31)

...

ifte st me ng e va lua si te rha d a p inne r synta x untuk me nd a p a tka n nila i

true a ta u fa lse, c o nto h ...

if

d a ta re q ue ste d is c urre nt sta tus

the n

se a rc h o nline p e rso ne l file

e lse

se a rc h a rc hive p e rso na l file

fi

...

• Struktur ifthe n a d a la h b e ntuk khusus d a ri ifthe ne lse d ima na untuk ifte st

d e ng a n ha sil e va lua si fa lse tid a k d ib e rika n o p e ra si. Be ntuk umum untuk ini a d a la h

...

if

ifte st

the n

the np a rt

fi

...

iftest

thenpart


(32)

c o nto h ...

if

inve nto ry tra nsa c tio ns a va ila b le

the n

up d a te inve nto ry file

fi

...

Struktur Ind e xe d Alte rna tio n a d a la h sua tu m ultib ra nc h c o ntro l struc ture

d e ng a n b e ntuk umum sb b ...

c ase

c a se te st

part(c a se list1) c a se p a rt1

part(c a se list2) c a se p a rt2 ...

part(c a se list n) c a se p a rtn

e lse

e lse a p a rt

e sac

...

casetest

casepart1 casepart1 casepartn

elsepart

(Caselist 1) (Caselist 2) (Caselist n)

• c o nto h ...


(33)

c ase

o p

part('a d d ')

a d d p e rso ne l re c o rd

part('d e le te ')

d e le te p e rso ne l re c o rd

part('mo d ify')

mo d ify p e rso ne l re c o rd

part('d isp la y fo r sa la ry','d isp la y fo r te nure ') d isp la y p e rso ne l re c o rd

e lse

d isp la y 'o p e ra tio n inc o rre c sp e c ifie d '

e sac

...

3.3.3. Ite ra tio n Struc ture (Struktur b e rula ng )


(34)

...

while

while te st

do

d o p a rt

o d

...

whiletest

dopart

T

F

d ima na d o p a rt a ka n d ie kse kusi se la ma while te st a ka n me ng ha sila kn nila i

true, c o nto h

...

while

p a y up d a te s re ma in

do

re trie ve ne xt p a y up d a te re c o rd

up d a te c o rre sp o nd ing re c o rd in ma ste r p a y file

o d


(35)

• Be ntuk umum d a ri d o until

...

do

d o p a rt

until

untilte st

o d

...

untiltest

dopart

T

F

d ima na d o p a rt a ka n d ie kse kusi se la ma untilte st a ka n me ng ha silka n nila i

fa lse, c o nto h ...

do

re trie ve ne xt p a y up d a te

up d a te c o rre sp o ng inh in ma ste r p a y file

until

no p a y up d a te s a re ma in

o d


(36)

• Be ntuk umum d a ri struktur d o while d o

...

do 1

d o p a rt1

while

while te st

do 2

d o p a rt2

o d

...

whiletest

dopart1

T

F

dopart2

• c o nto h ...

do 1

c a lc ula te e rro r in va lue

while

e rro r>to le ra nc e

do 2

c a lc ula te ne w va lue

o d


(37)

3.3.4 C o m m e nt

• C o mme nt p a d a PDL d ituliska n d e ng a n me ng g una ka n Bra c ke t '[]'

• c o nto h ... [se t x to min(a ,b ,c )]

if a < b

the n [se t x to min(a ,c )]

if a < c the n x := a e lse x := c fi e lse

if b < c the n x := b e lse x := c fi fi [x = min(a ,b ,c )]

...

3.3.5 Pe rlua sa n d a n Pe ng ura ia n struktur ko ntro l PDL

• Struktur ko ntro l PDL a d a la h struktur 'o ne -e ntri o ne -e xit' ya ng d a p a t d ig una ka n untuk me mp e rlua s o p e ra si se c a ra ind ivid u ke d a la m d e ta il-d e ta il ya ng le b ih il-d e ta il

• C o nto h sa tu b e ntuk a wa l d a ri sua tu b a g ia n PDL a d a la h sb b ...

do

if ne c e ssa ry, c o mp ute ta x p a yme nt o r re fund fo r ne xt re c o rd fro m ta x file

until


(38)

o d

...

• p e rlua sa n d a ri PDL d i a ta s d id a p a tka n ...

do [if ne c e ssa ry c o mp ute ta x p a yme nt o r re fund fo r ne xt re c o rd fro m ta x file ]

re a d ne xt re c o rd fro m ta x file if

ta x d ue no t e q ua l to withho ld ing the n

if

ta x d ue g re a te r tha n withho ld ing the n

c o mp ute ta x p a yme nt fi

fi

until

a ll ta x re c o rd p ro c e sse d

o d

...

• Pa d a d a sa rnya p e ng ura ia n d a ri struktur PDL a d a la h d e ng a n me la kuka n p e rlua sa n ya ng p a d a a khirnya a ka n hira rki ya ng unik


(39)

p e ng g a mb a ra n struktur hira rki d e ng a n d ia g ra m p o ho n

Se q ue nc e

...

m.1 firstp a rt

m.2

se c o nd p a rt ...

m.n nth p a rt ...

ifthe ne lse

m.1 if

m.2 ifte st

m.3 the n

m.4 the np a rt

m.5 e lse

m.6 e lse p a rt

m.7 fi

while do

m.1 while

2 while te st 3 do

4 d o p a rt 5 o d

do until

m.1 do

2 d o p a rt 3 until

4 untilte st 5 o d

• c o nto h ...

m.1 do [if ne c e ssa ry c o mp ute ta x p a yme nt o r re fund fo r ne xt re c o rd fro m ta x file ]

2.1 re a d ne xt re c o rd fro m ta x file 2.1 if

2 ta x d ue no t e q ua l to withho ld ing 3 the n

4.1 if

2 ta x d ue g re a te r tha n withho ld ing 3 the n

4 c o mp ute ta x p a yme nt 5 e lse


(40)

6 c o mp ute ta x re fund 7 fi

5 fi

3 until

4 a ll ta x re c o rd p ro c e sse d 5 o d

...

• p a d a b e b e ra p a PDL struktur ko ntro l d a p a t d id ia g ra mka n se b a g a i sua tu p o ho n untuk me ng g a mb a rka n p e ng ura ia nnya d e ng a n me ng g una ka n a tura n sb b

SEQ

firstp a rt se c o nd p a rt ... nthp a rt

FDO

ind e xlist d o p a rt


(41)

ifte st the np a rt ifte st the np a rt e lse p a rt

WDO

while te st d o p a rt

C ASE

c a se te st (c a se list1) (c a se list2) (c a se listn)

c a se p a rt1 c a se p a rt2 c a se p a rtn e lse p a rt

DO U

d o p a rt untilte st

DWDO

d o p a rt1 while te st d o p a rt2

3.4 O utte r Synta x Da ta Struc ture

1

Struktur Da ta Be rna m a

• se kump ula n d a ria d a n fung si a kse snya p a d a b e b e ra p a struktur d a ta khusus d a ri d a ta ya ng b e rna ma d a n a no nim o us d a ta


(42)

d e ng a n ta mp a sub struktur ya ng d a p a t d ia kse s

• De kla ra si p a d a PDL a d a la h sb b ...

sc alar x,y,z ...

Array, Arra y a d a la h sua tu list d a ri struktur PDL ya ng d iind e ks o le h sua tu

c a rte sia n p ro d uc t d a ri ind e ks-ind e ks. c o nto h

x(1, 1) x(1, 2) ... x(1, n)

x(2, 1) x(2, 2) ... x(2, n)

x(3, 1) x(2, 2) ... x(3, n)

... ... ... ...

x(m , 1) x(m , 2) ... x(m , n)

d ima na ind e x ya ng a d a a d a la h c a rte sia n p ro d uc t d a ri : {1,2,...,m } x {1,2,...,n}

• Pe nd e kla ra sia n p a d a PDL d ila kuka n d e ng a n c a ra sb b ...

array a (3),b (2,4),c (3,2,4) ...

• Ele me n-e le me n p a d a a rra y me miliki tip e d a ta ya ng sa ma

Re c o rd, Re c o rd a d a la h sua tu struktur d a ta ya ng d a p a t

d ire p re se nta sika n o le h sua tu tre e se p e rti stud e nt = (na me ,a d d re ss, c la ss)


(43)

• Sua tu a ng g o ta a d a la h no d e p a d a sua tu p o ho n

• Sua tu fie ld a d a la h a ng g o ta ya ng tid a k me miliki turuna n

3.4.2 Struktur d a ri A no nim o us Da ta

• Struktur d a ta d a p a t d imo d ifika si d ima na d a la m me ng a kse s d a ta nya d ila kuka n ta mp a sa tu d a ta ind ivid u

• Emp a t b e ntuk ini a d a la h : se q ue nc e ,sta c k,q ue ue ,se t

• List Build e r : + d a n ⊕

a + b : me na mb a h a ng g o ta a d i d e p a n list b a ⊕ b : me na mb a h a ng g o ta b d i b e la ka ng list a

• List Bre a ke r : H+T+, H-T

-H+(a +b ) = a

T+(a +b ) = b

H-(ab ) = b

T-(ab ) = a

• Pe rtimb a ng ka n list a = (A B C ), b = (E F), ma ka M + a = (M A B C )

b ⊕ N = (E F N) H+(a ) = A T+(b ) = (F) H-(b ) = F


(44)

T-(a ) = (A B)

Stac k, Sua c k a d a la h sua tu struktur d a ta ya ng me mb e rika n a kse s LIFO (Le a st In First O ut) te rha d a p a ng g o ta nya , d e ng a n ke ywo rd to p

O p e ra si De finisi List

c :=to p(a ) c ,a := H(a ),T(a ) (a≠0)

to p(a ) := d d ,a := d ,d +a a := e m pty a := ∅

• c o nto h p a d a PDL ...

1 stac k a 2 sc alar b ,c 3 to p(a ):= b 4 c := to p(a ) ...

Q ue ue, Q ue ue a d a la h struktur d a ta ya ng me mb e rika n a kse s FIFO te rha d a p a ng g o ta nya , d e ng a n ke ywo rd e nd

O p e ra si De finisi List

c :=e nd(a ) c ,a := H(a ),T(a ) (a≠0)

e nd(a ) := d d ,a := d ,d ⊕ a

a :=e m p ty a := ∅

• c o nto h p a d a PDL ...


(45)

1 q ue ue a 2 sc alar b ,c 3 e nd(a ):= b 4 c := e nd(a ) ...

Se t, Se t a d a la h struktur d a ta ya ng me mb e rika n a kse s se c a ra a c a k te rha d a p a ng g o ta nya , d e ng a n ke ywo rd m e m b e r

O p e ra si De finisi List

c :=m e m b e r(a ) c ,a := H(a ),T(a ) (a≠0)

m e m b e r(a ) := d d ,a := d ,P(d + a )

a :=e m pty a :=∅

• c o nto h p a d a PDL ...

1 se t a 2 sc alar b ,c 3 b :=m e m b e r(a ) 4 m e m b e r(a ):=c ...

Se q ue nc e, Se q ue nc e a d a la h struktur d a ta ya ng me mb e rika n a kse s te rha d a p a ng g o ta nya d e ng a n me ng g una ka n p o inte r d e ng a n me ng g una ka n ke ywo rd c urre nt, ne xt, re se t

• Dib e rika n sua tu se q ue nc e d e ng a n na ma a , list p e rta ma d a n ke d ua d ino ta sika n d e ng a n a+ d a n a- ja d i a d ino ta sika n d e ng a n a = a-.a+,

c o nto h (A B C D E F G ) d a n p o inte r b e ra d a d i a nta ra C d a n D, ma ka d a p a t d ituliska n a = (A B C ).(D E F G ) d ima na a - = (A B C ) d a n a + = (D E F G )


(46)

p e rtimb a ng ka n a- = (A) | | (B C )

a+ = D + (E F G )

a = (A) | | (B C ) . D + (E E G )

• Ke ywo rd untuk se q ue nc e a d a la h c urre nt d a n ne xt d ima na

c urre nt(a ) = H-(a -)

ne xt(a ) = H+(a +)

O p e ra si De finisi List

re se t(a ) a :=∅.a-| | a+

c :=c urre nt(a ) c .a :=H-(a-),a (a-≠∅)

c urre nt(a ):=d d .a :=d .T-(a-)d .a+

c :=ne xt(a ) c .a :=H(a+),a-⊕H(a+).T(a+) (a+≠∅)

ne xt(a ) := d d .a :=d ,a-⊕d .

a :=e m pty a :=a-.

• C o nto h p a d a PDL ...

1 se q ue nc e inp ut,o utp ut 2 c :=ne xt(inp ut)


(47)

...

3.4.3 Pe rlua sa n d a ri Se q ue nc e

O p e ra si De finisi List

b ac kspac e(a ) a := T-(a-).H-(a-)+a+ (a-≠∅)

c := b ac k(a ) c ,a := H-(a-), T-(a-).H-(a-)+a- (a-≠∅)

addafte rc urre nt(a ) := d d ,a := d , a-⊕ d .a+

c := re adandde le te ne xt(a ) c ,a := H(a+), a-.T(a+) (a+≠∅)

c := m id(a ) c ,a := H-(a-), T-(a-).a+ (a-≠∅)

m id(a ) := d d ,a := d ,(T-(a-) d ) H- (a-).a+

3.4.4 Pe rlua sa n d a ri Se t

O p e ra si De finisi List

d := value(a , c ) a , c , d := a , c , x1 (a ≠∅)

value(a , c ) := d a , c , d := x2, c , d

c := arg um e nt(a , d ) a , c , d := a , x3, d (a ≠∅)

arg um e nt(a , d ) := c a , c , d := x4, c , d

b := do m ain(a ) a , b := a , d o m a in(a ) b := rang e(a ) a , b := a , ra ng e (a )

c ∈do m ain(a ) c ∈ d o m a in(a )


(48)

de le te(a ,c ,d ) ha p us p a sa ng a n (c , d ) d a ri a jika a d a d ima na

x1 ∈ {x | (c , x) ∈ a } x2 ∈ P((c , d ) + a ) x3 ∈ {x | (x, d ) ∈ a } x4 ∈ P((c , d ) + a )

3.4.5 Da ta Sp a c e

Da ta Sp a c e rua ng d ima na sua tu d a ta d i a lo ka sika n

• Ke ywo rd untuk me nsp e sifika sika n, d ig una ka n intia l d a n fre e

• Pe rtimb a ng ka n a p a b ila S a d a la h Da ta Sp a c e ma ka

Initialna me := va lue

Fre e na m e

Jika na me a d a la h sa tu a ng g o ta

S, va lue d ile ta ka n p a d a sta c k; ka la u tid a k ta mb a hka n na m e ke d a la m S d a n va lue se b a g a i nila inya

Jika na me a d a la h sa tu a ng g o ta S, ha p us a ng g o ta te ra ta s d a la m S, d a n jika a kib a t ini S ko so ng ma ka ha p us na me d a ri S; ka la u b uka n ma ka g a g a l (d a la m p e la ksa na a n)


(49)

• C o nto h

Assumsika n te la h a ktif S : (x : (‘ a b ’ ), z: (8,1))

sc alar y S : (x : (‘ a b ’ ), z: (8,1))

y := z S : (x : (‘ a b ’ ), y: (8), z: (8,1))

initial y := 3 S : (x : (‘ a b ’ ), y: (8,3), z: (8,1))

y := z S : (x : (‘ a b ’ ), y: (8,8), z: (8,1))

fre e z S : (x : (‘ a b ’ ), y: (8,8), z: (1))

initial x := ‘ c d ’ S : (x : (‘ c d ’ , ‘ a b ’ ), y: (8,8), z: (1))

fre e z S : (x : (‘ c d ’ , ‘ a b ’ ), y: (8,8))

initial z := 0 S : (x : (‘ c d ’ , ‘ a b ’ ), y: (8,8), z: (0))

• untuk me nc e k ke a ktifa n d a ri sua tu ite m d a ta d ig una ka n ke ywo rd

a c tive d e ng a n me nb e rika n nila i true jika ite m d a ta te rse b ut a ktif d a n fa lse

jika tid a k a ktif, c o nto h

ac tive(a ∨ ( b ∧ c ) ∨ ( ~ d ))

3.5 Struktur Siste m O ute r Synta x

3.5.1 Jo b d a n Pro c e d ure

• PDL p ro c e d ure a d a la h p ro g ra m ya ng d isimp a n untuk p e ma ng g ila n o le h p ro g ra m la in

• Pro c e d ure b e rhub ug a n d e ng a n p ro g ra m-p ro g ra m ya ng d isimp a n p a d a syste m lib ra ry untuk p e ng e kse kusia n d i b a wa h siste m o p e ra si

• Pro c e d ure p a d a PDL d id e finisika n d ia nta ra ke ywo rd p ro c d a n c o rp

• Pro c e d ure d ip a ng g il o le h p ro g ra m a ta u p ro c e d ure la in d e ng a n me ng g una ka n ke ywo rd run


(50)

• C o nto h

jo b p rintre ve rse

q ue ue inq ue ue ,o utq ue ue run re ve rse

b o j

pro c re ve rse stac k a a := e m pty

o utq ue ue :=e m pty

while

inq ue ue ≠e m pty

do

to p(a ) := e nd(inq ue ue ) o d

while

a ≠e m pty

do

e nd(o utq ue ue ) := to p(a ) o d

c o rp

Pa sse d d a ta a d a la h d a ta ya ng d ikirimka n ke se b ua h p ro c e d ure

me la lui p a ra me te rnya


(51)

p ro c e d ure itu se nd iri

• Da ta ya ng le wa tka n d a ri d a n ke sua tu jo b d ise b ut e xte rna l d a ta, se me nta ra itu d a ta la innya d ika ta ka n se b a g a i inte rna l d a ta

• c o nto h

jo b p rintre ve rse (inq ue ue mo utq ue ue ) q ue ue inq ue ue ,o utq ue ue

run re ve rse (inq ue ue ,o utq ue ue )

b o j

• Da ta ya ng d ile wa tka n ke a ta u d a ri sua tu p ro c e d ure d a n e xte rna l d a ta ke a ta u d a ri sua tu jo b d a p a t d ika ra kte ristika n se b a g a i a lte ra b le d a ta a ta u fixe d d a ta, d ima na a lte ra b le d a ta a d a la h d a ta ya ng d a p a t d irub a h d a n fixe d d a ta a d a la h d a ta ya ng tid a k d a p a t d irub a h

• C o nto h

Jo b o d d e ve n(in,o ut) se q ue nc e in,o ut

run o d d e ve n(alt o ut, fix in)

b o j

pro c o d d e ve n(alt o utp ut, fix inp ut) se q ue nc e inp ut, o utp ut

sc alar x while

inp ut ≠e m pty

do


(52)

if x > 0 the n

run p o sitive (alt x) e lse

run no np o sitive (alt x) fi

ne tx(o utp ut) := x o d

c o rp

pro c p o sitive (alt x) sc alar x

while

x > 1 do

x := x - 1 o d

c o rp

pro c no np o sitive (alt x) sc alar x


(53)

x < 0 do

x := x + 1 o d

c o rp

3.5.2 Syste m d a n Mo d ul

• Sua tu c a ra ya ng b a ik d a la m p e ng e mb a ng a n siste m a d a la h d e ng a n me ng o rg a nisa sika n siste m ke d a la m unit-unit ya ng te rd iri d a ri se kump ula n p ro g ra m-p ro g ra m, himp una n d a ta d a n se jumla h mo d ul ya ng me nd ukung siste m

• Pe mb e ntuka n ini p a d a PDL d id e kla ra sika n d e ng a n me ng g una ka n ke ywo rd m o d, d o m, p ro g ra m s, d a ta se ts, m o d ule s, d e ng a n b e ntuk umum :

m o d na me

pro g ram s p ro g ra m na me list datase ts d a ta na me list m o dule s mo d ule na me list

do m

• c o nto h

m o d ma ssto ra g e


(54)

datase ts te xtfile s, a rc hive s, c he c kp o int ... m o dule s d ire c to ryse rvic e ...

do m

• Pe mb e ntuka n d i a ta s p a d a a khirnya a ka n me mb e ntuk sua tu a b stra ksi (d a ta a b stra c tio n)

3.6 Inne r Synta x

3.6.1 Inne r synta x Exp re ssio n

• Tujua n d a ri inne r synta x p a d a PDL a d a la h untuk me mb e ntuk d a ta ya ng fle xib e l, se d e rha na , o p e ra si ya ng d ike na ka n d a n te st p a d a p e ra nc a ng a n p ro g ra m

• O p e ra si-o p e ra si te rha d a p d a ta d ig a mb a rka n d a ri a rime tika , lo g ic , d a n p e mro se sa n ka ra kte r d a n o b ye k d a ta d ite muka n p a d a b a ha sa p e mo g ra ma n ting ka t ting g i se p e rti c ha ra kte r string , nume ra l, d a n nila i lo g ic a l

• Assig nme nt p a d a PDL ha rus me nsp e sifika sika n sua tu e ksp re si d a ta ya ng me miliki p ro se s e va lua si sua tu nila i te rha d a p d a ta untuk p e nug a sa n p a d a sua tu id e ntifie r tujua n ya ng te la h sip e sifika si

• C o nto h

O p e ra si-o p e ra si Arime tika a :=a -2


(55)

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”


(56)

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 ≥ 0

array h : lo g ic a l


(57)

(58)

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


(59)

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)


(60)

• 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


(61)

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


(62)

• 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


(63)

f

q

g

p

2

1

q

g

p

2

1

f

2


(64)

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:


(65)

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 x(y , 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

zu = y ) ∨ ( zyu = 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


(66)

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 = f(X)}

• 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 = h(g(X))}


(67)

• 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(f(X)) ∧Y = g(f(X))}

(2) {(X,Y) | p(X) ∧ ~q(f(X)) ∧r(h(f(X))) ∧Y = g(h(f(X)))} (3) {(X,Y) | p(X) ∧ ~q(f(X)) ∧ ~r(h(f(X))) ∧Y = h(f(X))} (4) {(X,Y) | ~p(X) ∧r(h(X)) ∧Y = g(h(X))}


(68)

(5) {(X,Y) | ~p(X) ∧ ~r(h(X)) ∧Y = h(X)}

• 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) ∧qf(X) ∧Y = gf(X) |

p(X) ∧ ~qf(X) ∧rhf(X) →Y = ghf(X) | p(X) ∧ ~qf(X) ∧ ~rh f(X) →Y = hf(X) | ~p(X) ∧rh(X) →Y = gh(X) |

~p(X) ∧ ~rh(X) →Y = h(X)}

• Pe rtimb a ng ka n

g5

p2

1

g4

g1

g2

g3

p1

3

p3

2

1

g4

g1

g2

g3

p1

2

1

3

p2

2

g5

p3


(69)

E-C ha rt

g4

g1

g2

g3

p1

p2

g5

p3

f1

f3

f2

E-Tre e

f1 = {(X,Y) | Y = f2g 1(X)}

f2 = {(X,Y) | (p 1g 3(X) →Y = f1g 2g 3(X) | ~p 1g 3(X) →Y = f3g 3(X))}

f3 = {(X,Y) | (p 2(X) ∧p 3(X) →Y = f3g 5(X) | p 2(X) ∧ ~p 3(X) →Y = X |

~p 2(X) →Y = f2g 4(X))} ma ka

[P] = f1

• Pe rtimb a ng ka n untuk PDL

[x := x + y ; y := x - y] = {((x, y), ( x + y, x))}


(70)

[if x > y the n x := y fi] = {((x , y), (m in(x, y), y))} = (x := m in(x, y))

[while x >0 do x := x - 1 o d] = {(x, m in(0,x)) =

(x := m in(0, x))

[while x

0 do x := x - 1 o d] = {(x, 0) | x0} =

(x0x := 0)

[do x := x + 1 until x > y o d] = {((x , y), (m a x(x + 1 , y + 1), y))} = (x := m a x(x + 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


(71)

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


(72)

[g;h] = {(X,Y) | Y = hg(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) | ∃k0((∀j, 0 j < k)(pgj(X) ~pgk(X) Y = gk(X))}

[do g until p o d] =

{(X,Y) | ∃k > 0((∀j, 1j < k)(~pgj(X)) ~pgk(X) Y = gk(X))}

[if p the n g e lse h fi] =

{(X,Y) | p(X) ∧Y = g(X)) ∨ (~p(X) ∧Y = h(X))}

[do g while p do h o d] =

{(X, Y) | ∃k0((∀j, 0 j < k)(pg

( h

g )j(X) ~pg

( 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


(1)

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


(2)

Pe mo g ra ma n te rstruktur a d a la h p ro se s p e nye le sa ia n ma sa la h ma nusia ya ng me mb e ntuk struktur lo g ika untuk p ro g ra m-p ro g ra m.

Pe ra la ta n d a sa r untuk p e mo g ra ma n te rstruktur d ita na mka n d a la m fund a me nta l a xio m re p la c e me nt untk p ro g ra m te rstruktur, ya itu p e le ta ka n ke mb a li fung si-fung si o le h p ro g ra m-p ro g ra m p rime se b a g a i d a la m p e rlua sa n p rime PDL

F = g ; h

F = if p the n g e lse h fi F = while p do g o d

7.3. Stra te g i - Stra te g i Pe m o g ra m a n

7.3.1. Pe m o g ra m a n d e ng a n Ste p wise Re fine m e nt

Pe rlua sa n fung si me ng a ra h ke ste p wise re fine me nt p e mo g ra ma n te rstruktur, d imula i d e ng a n fung si ya ng d iing inka n me nja d i d ip ro g ra mka n d a n stra te g i rna c a ng a n, p e mro se sa n me la lui ting ka t ke b e rha sila n e ksp re si, hing g a p ro g ra m se sung g uhnya te la h d ike mb a ng ka n d a la m d e til suffic ie nt

Id e d a la m ste p wise re fine me nt a d a la h “ d e vid e , c o nne c t, a nd c he c k”

Ste p wise re fine me nt a d a lh sua tu p ro se s p e re ka ma n d a n b uka n sua tu p ro se s p e mikira n.


(3)

Ste p wise re fine me nt d a ro p ro g ra m te rstruktur b e sa r d ib a wa ke lua r o le h p e nstruktura n se g me nt.

Se g me nt d ib a ta si o le h Pro c d a n C o rp , d a n mung kin sa ja a ka n me ng a c u ke p a d a se g me nt la in ya ng a ka n d i Run

Pro se s p e mb e ntuka n se g me nt d a la m p e mo g ra ma n tid a k la in a d a la h me rup a ka n stra te g i To p -Do wn Struc ture d Pro g ra mming

O p e ra si-o p e ra si d a ta p a d a sua tu se g me nt d itunjuk p a d a sub sp e sific a tio n (sub func tio n)

7.3.3. Pe m o g ra m a n d e ng a n Ste p wise O rg a niza tio n

Ste p wise re fine me nt d a ri se b ua h ra nc a ng a n p ro g ra m a d a la h me re ka m p ro se s p e nye le sa ia n se b a uh ma sa la h d ib a wa h p e ng a wa sa n ya ng b a ik, ke ko mp le sa n p ro se s ra nc a ng a n d a p a t me mb ua t p ro se s me nja d i sulit.

Ste p wise O rg a niza tio n a d a la h se b ua h stra te g i p e mo g ra ma n ya ng me na mp ilka n ke b e na ra n p ro g ra m

Stra te g i a d a la h se b a g a i b e rikut

1. Ste p wise Re fine me nt,Me ra nc a ng p ro g ra m d e ng a n fung si 2 ya ng

b e na r

2. Ste p wise O rg a niza tio n,Me la kuka n p ro se s ve rifika si te rha d a p p ro g ra m ya ng d iha sillka n

3. Pe nye rta a n Ke b e na ra n Pro g ra m

4. Mo d ifika si p ro g ra m d e ng a n me ng ikuti p o la p e mb uktia n ke b e na ra n d a la m me ng ura ng i ke rumita n p ro g ra m

7.2.3. Pe ng g una a n Ve rifika si Pro g ra m d a la m Ra nc a ng a n Pro g ra m

Dikke ta hui se b ua h p ro g ra m SUB ya ng me miliki ra nc a ng a n ya ng d imo tiva sika n o le h Sub stra c tio n umum d e ng a n p e ng ura ng a n, d ima na x,y


(4)

a d a la h b ila ng a n b ula t

SUB = while

y > 0

do

x ,y := x - 1, y - 1

o d

d ima na SUB a d a la h p e rlua sa n d a ri fung si SUB ya ng d iing inka n

SUB = (x, y := x - y,0)

d a ri ha l d i a ta s a p a ka h

1. SUB = [SUB] (C o mp le te ne ss C o rre c tne s) ? 2. SUB

[SUB] (Suffic ie nt C o rre c tne ss) ?

Pe mb uktia n

Func tio n

SUB = ( x, y := x- y, 0) Pro g ram

SUB = while y > 0 do x, y := x - 1, y - 1 o d Pro ff


(5)

y d ikura ng i p a d a se tia p ite ra si se hing g a while te st y > 0 a ka n g a g a l Pass

While te st true

Pa rt Ko nd isi x y

y > 0

x, y := x-1,y-1 x, y := 0

y0 > 0 x1 = x0 x2 = x1 - 1 x3 = x2 - y2

y1 = y0 y2 = y1 - 1 y3 =0

ko nd isi

y0 > 0 = x3 - y2

=x1 - 1 - ( y1 - 1)

= x0 < 0

y0 + x0 < 0

y0 < 0 = x0 -y0

Pro g ra m func tio n

(y > 0

x, y := x-y ,0)

d ima na me nye tujui SUB untuk while te st true


(6)

while te stfa lse

fung si ya ng d iing inka n a d a la h x, y := x - y, 0

te ta p i p ro g ra m func tio n untuk y

0 a d a la h id e ntik

x, y := x,y

d a n (x - y, 0)

(x, y)

x = y = 1: (0, 0)

(-1, -1) Fail

Re sult Fail

Pe mb uktia n d i a ta s me nya ta ka n fail ka re na d o ma in Sub me ma suka n y < 0, d ima na tid a k d a p a t d ita ng a ni d e ng a n se nd irinyua o le h SUB