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 il1.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
• 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
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
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 n” d a n “Rig 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
• 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
• 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
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
• 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
∧
q3. 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
∨
q4. 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
↔
q5. 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
Rule p q ~p p
∧
q p∨
q p↔
q p→
q1 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 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.
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
∀x∀y r(x,y) ↔∀y∀xr(x,y)
∀x(~(p(x) ∨q(x)) ↔ ~p(x) ∧ ~q(x))
a . Him p una n d a n Fung si
• 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
m ∈S
• Jika m a d a la h b uka n a ng g o ta d a ri S, d inya ta ka n
m ∉S
• 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 A ∪B ; A ∪B = B∪A = { x | x∈A ∨x∈B }
• Inte rse c tio n A ∩B ; A ∩B = B∩A = { x | x∈A ∧x∈B }
• Diffe re nc e A - B ; A - B = { x | x∈A ∧x∉B }
• 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 A ⊂B, ma ka :
A ⊂A ∪B, A ∩B⊂A, A - B⊂A
A1 x A2 x ... x An = {(a 1,a 2,...a n) | a 1∈A1∧a 2∈A2∧a n∈An}
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 x ∈ D(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)
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 ))
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 x ∈ D(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 f• g
• 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 x∈D(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
• 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 te →rule) d e ng a n b e ntuk se b a g a i b e rikut ( p 1→r1 | p 2→r2 | . . . | p n →rn )
c o nto h
f = {(x,y) | x∈D, (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
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
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
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 | a ∈A, b ∈B, 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
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 *,+
<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)
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)
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
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 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
- 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
• 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)
... 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; . . .
• 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
...
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
...
• 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
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
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 )
...
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
• 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
• 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
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
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
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
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
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
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)
• 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-(a⊕b ) = b
T-(a⊕b ) = a
• Pe rtimb a ng ka n list a = (A B C ), b = (E F), ma ka
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
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+,
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)
...
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 )
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
• 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
• 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
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
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
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
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
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 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
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
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 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’
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
• 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
f
q
g
p
2
1
q
g
p
2
1
f
2
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
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
≥
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
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
• 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))}
(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) ∧q •f(X) ∧Y = g •f(X) |
p(X) ∧ ~q •f(X) ∧r•h •f(X) →Y = g • h• f(X) | p(X) ∧ ~q •f(X) ∧ ~r• h •f(X) →Y = h •f(X) | ~p(X) ∧r• h(X) →Y = g •h(X) |
~p(X) ∧ ~r•h(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
E-C ha rt
g4
g1
g2
g3
p1
p2
g5
p3
f1
f3
f2
E-Tre e
f1 = {(X,Y<