Anda di halaman 1dari 37

PERTEMUAN I

KAMIS, 11 MARET 2010

TEORI BAHASA AUTOMATA (TBA)

Automata ≈ Automatic ≈ regulasi yang terjadi bukan dengan dasar kontrol.


TBA yaitu aktivitas yang mengatur teknik formalisasi tatabahasa (grammar) dengan
alat bantu mesin matematis.
Bahasa yaitu kumpulan kalimat (sentence) yang terintegrasi untuk membentuk satu
kesatuan makna.
* Fungsi bahasa yaitu sebagai alat komunikasi, dimana alat komunikasi ini diatur
oleh protocol. Protocol yaitu alat yang mengatur bagaimana cara berkomunikasi.
* Model bahasa yaitu berupa suara, gerakan, sandi, naluri (insting), dan lain-lain.
Kalimat yaitu kumpulan sejumlah kata (word) yang membentuk satu kesatuan arti.
Dimana kata (word) tersebut harus disusun berdasarkan grammar.

Kalimat → S + P | S + P + O | S + P + K | S + P + O + K |
Grammar : S + P + O1 + O2 + K1 + K2

Word yaitu kumpulan simbol-simbol yang membentuk kesatuan.


Simbol ≈ {huruf, angka, tanda khusus}

Programming Language Language Processing Apllication Language


Level : - H.L.L - Package
Trans
- M.L.L formasi Run - CAD
- L.L.L Automata Compiler
- Office
Type : - O.O.P - Program Aplikasi
- Structured

Catatan Automata : Sinar Sinurat, S.T


Penjelasan:
Transformasi dapat didefenisikan tentang masalah instalasi yang berupa setting
konfigurasi di autoexec.bat dan config.sys.
Language Processing adalah tempat symbol table, error handle,dan library function.
Contoh : - H.L.L : Pascal, Cobol, Fortran, dan lain-lain.
- M.L.L : C / C++/ C#, Java, Ruby, Smaltak, Pypthon, dan lain-lain.
- L.L.L : Assembler dan Mesin.
Programming language membutuhkan editor:
• DOS : Edit / Edit / Si De Kick
• WIN : notepad
• LINUX : Vi
• Editor-editor bawaan bahasa.

Dalam automata terdapat :


* Grammar
* Parsing (mengurai string-string dalam buffer)
* Scanning (membaca data streaming ke dalam buffer)

Compiler (melalui dua tahapan)


I. Analisis
1. Leksikal (arti perkata)
2. Sintaks (tata tulis)
3. Semantik (makna susunan)
II. Sintesis
4. Intermidiate Code Generatox
5. Code Optimizer
6. Code Generatox (menghasilkan target yang berupa 0bj, MAP, IST)

Catatan Automata : Sinar Sinurat, S.T


Algoritma Parsing
Contoh : kata = abc
Baca (kata) maka : A[1] = a
For i:=1 to length (kata)
A[2] = b
A[i]:=kata[i]
A[3] = c
Length (kata) = 3
Misal: w = abcd
|w| = 4
Set of w = {a,b,c,d}
Power set of w = 24 = 16 = {a,b,c,d,ab,ac,ad,bc,bd,cd,abc,abd,bcd,acd,abcd,Φ}
Φ = {}→ empty string
|Φ| = 0

Prefix (w) = ∑ terhadap abcd Suffix (w) = ∑ terhadap abcd


(Left) a terhadap bcd (Right) d terhadap abc
(LTRIM) ab terhadap cd (RTRIH) cd terhadap ab
abc terhadap d bcd terhadap a
abcd terhadap ∑ abcd terhadap ∑

= {∑,a,ab,abc,abcd} = {∑,d,cd,bcd,abcd}

Infix (w) = ∑ antara a & bcd


∑ antara ab & cd
∑ antara abc & d
c antara a & d
c antara ab & d
bc antara a & d

= {∑,b,c,bc}
Proses :
Dalam proses tidak melibatkan empty string proper. Maka hasilnya adalah
Prefix (w) = {a,ab,abc}
Suffix (w) = {d,cd,bcd}

Catatan Automata : Sinar Sinurat, S.T


PERTEMUAN II
KAMIS, 18 MARET 2010

MANIPULASI STRING

Yang dimaksud dengan manipulasi string adalah


1. Pemotongan atau Siliting (prefix, suffix, infix
2. Concatenate (Penyambungan)
Notasi Set (Union, Intersection, Difference)

Contoh : w = Approach p(w) = 28 = 256


x = Licationalisme p(x) = 214 = 256 x 64 = 16384
|w| = 8 ; |x| = 14
Set of w = {a,p,r,o,c,h}= 6
Set of x = {l,i,c,a,t,o,n,s,m,e}= 10
|w| ≠ |set w| ; |x| ≠ |set x|
Maka,
Prefix (w) = {∑,a,ap,app,appr,appro,approa,approac,approach}= 9
Prefix (x) = {∑,l,li,lic,lica,licat,licati,locatio,lication,licationa,licational,
licationali,licationalis,licationalism,licationalisme}= 15
Suppose item set of w = App
Suppose item set of x = Lication
Concatenate (w,x) = Application
Set UNION ≈ gabungan ≈ {x | p(x)} ≡ {x | XЄA atau XЄB}

Catatan Automata : Sinar Sinurat, S.T


FINITE VS INFINITE

Himpunan semua wanita


S A ∧ B
A = {1,2,3,5,6,7,8}≈ inite

3 B = {3,4,5,6,7,9,10,11}
1 4
5 9 A ∨ B = {1,2,3,4,5,6,7,8,9,10,11}
2
6 10
8 A ∧ B = {3,5,6,7}
7 11
A – B = {1,2,8}
A–B B–A
S=A ∨ B B – A = {4,9,10,11}

Intersection ≈ irisan = { X | X Є A & X Є B }


Difference ≈ pengurang = { X | X Є A & X Є B } atau { X | X Є B & X Є A }
Cartesian product
Power set

WX = {AL,AI,AC,AA,AT,AO,AN,AS,AM,AE,PL,PI,PC,PA,PE,PO,PN,…} = 60
W ∨ X = {A,P,R,O,C,H,L,I,T,N,S,M,E} = 13
W ∧ X = {A,O,C} = 3

Jadi, disebut sebuah language dalam automata bila didalamnya ada aktivitas
penggunaan : - set (finite,infinite)
- manipulasi string
- closure

Finite ≈ apabila elemen-elemen set dalam batas hitungan


Infinite ≈ apabila elemen-elemen set tak dalam batas hitungan.

Catatan Automata : Sinar Sinurat, S.T


CLOSURE LANGUAGE

Notasi * ; + ; U ; L

~ ~
L* = ULi Kleene closure L+ = ULi Possitive closure
i=0 i=1

L* = L0U L1U L2U L3U … , UL2 = LULULLULLLU… UL2 ≡ LUL2


L+ = L1U L2U L3U L4U … , UL2 = LULLULLLULLLLU…

L1 L2 L3 L4… Ln
a+ = a . a*
+
a = {a, aa, aaa, aaaa,…} Bentuk PT :
and

Contoh : L0, L1, L2, L3


a* = {ε, a, aa, aaa, …}

Bentuk diagram transisi untuk input “aaa”


(State Transition Diagram) proses PT.

a w
Start 0 1 2

Find
state

0 1 0 1 0 1 0 1 2
a ∑ a ∑ a ∑ a ∑

Karena empty tidak mempengaruhi


transtruksi string, maka :
aaa ∴ input diterima

Catatan Automata : Sinar Sinurat, S.T


PERTEMUAN III
KAMIS, 1 APRIL 2010

CONTOH TRANSISI BAHASA OLEH AUTOMATA

Position = initial + rate * 60


Transformasi
I Lexical Analyzer
Id1:= id2 + id3 * 60
II Syntax Analizer

:=
Analisis
id1 +
Automata
id2 *

id3 60

III Semantic Analyzer IV Intermediate code generator


Temp1 := into real (60)
:= Temp2 := id3 * Temp1
Temp3 := id2 + Temp2
id1 + id1 := Temp3 Analisis
Automata
id2 into real code optimizer

id3 60 V Temp1 := id3 * 60.0


id1 := id2 + Temp1

VI Code generator

mov R2,id3 ≈ R2 id3


mov R2,id3
mul R2,60.0 ≈ R2 R2 * 60.0 muL R2,60.0
mov R1,id2 ≈ R1 id2 Didapat dari mov R1,R2
add R1,R2 ≈ R1 R1+R2 mov id1,R1 Target Program
mov id3,R1 ≈ id – R1

Catatan Automata : Sinar Sinurat, S.T


Penjelasan
Position = initial + rate * 60
Position adalah program yang di typing melalui Editor (Non Document)
Ciri – ciri non document : No page, No header, No footer, No footnote,
No foot variate.

Editor ( non document) berfungsi menghasilkan suatu file dengan ekstention


bergantung pada tipe kompiler yang akan digunakan.

I. Analisis Leksikal
Yaitu, analisis yang menerima transisi output dengan melakukan
pengelompokkan identifier(id), keyword dan token. Tujuannya untuk
mengenali word by word.
Contoh : position := initial + rate * 60

II. Analisis Sintaks


Yaitu, analisis yang membentuk pohon parsing untuk mengenali meaning
(arti) dengan cara skala prioritas.

Prioritas Statement
1 ( )
2 Assign
3 Exponential
4 *, /
5 +,-

Catatan Automata : Sinar Sinurat, S.T


Contoh :
id1 := id2 + id3 * 60
:=

id1 +

id2 *

id3 60

V. Code Optimizer
Berfungsi membuang.
- redudancy (berlebih)
- overlapping (tumpang tindih)
- collison (bersebrangan)
- dll.

Catatan Automata : Sinar Sinurat, S.T


PERTEMUAN IV
KAMIS, 8 APRIL 2010

RELASI

Relasi = hubungan ; makna relasi ≈ interaksi antar elemen set.


Fungsi relasi = interaksi.
Lambang relasi ≡ R ; R harus jelas atributnya juga kontent-nya.

Contoh
Dosen berelasi dengan mahasiswa
(D) (M)
Dimana berelasi disini maksudnya dalam hal mengajar, membimbing / konseling,
atau sebagai dosen konseling.

I. dRm ≡ mRd II. mRd


1. untuk dRm ; (d,m) Є R 1. (m,d) Є R ; (mengajar)
2. untuk dRm ; (d,m) Є R 2. (m,d) Є R ; (konseling)
3. untuk dRm ; (d,m) Є R 3. (m,d) Є R ; (dosen wali)

Contoh
aRb ; R = lebih besar
Jika a= 2 ; b= 10 ; aRb ≡ (a,b) Є R
a=20 ; b=10 ; aRb ≡ (a,b) Є R

iRa ; R = melahirkan
jika i=ibu ; a=anak
iRa ; (i,a) Є R
jika i=ibuku ; a= aku
iRa≡ (I,a) Є R

Catatan Automata : Sinar Sinurat, S.T


Sifat – Sifat Relasi
1. Reflesive ; aRa ; ∀ a ; aЄA
Contoh : Budi mencuci piringnya sendiri.
R= cuci piring bRb ≡ bЄR
Dalam matrik ; berelasi dengan diri sendiri diagonal.
⎡1 0 1 0⎤
⎢0 1 0 1⎥⎥
A ⎢
⎢1 1 1 1⎥
⎢ ⎥ nilai ini antara true or false diagonal true maka
⎣0 0 0 1⎦ matriks adalah reflesive.

2. Irreflexive ; aRa ; ∀ a ; a Є R
Contoh : Budi tidak pernah cuci pakaiannya. ; R = cuci pakaian
bRb bЄR
dalam matriks ; posisi diagonal bernilai false.
⎡0 0 1 0⎤
⎢0 0 0 1⎥⎥
A ⎢
⎢1 1 0 1⎥
⎢ ⎥ Diagonal bernilai false sehingga matrik ini
⎣0 0 0 0⎦ disebut irreflexive.

3. Not Reflexive ; aRa ; ∀ a ; a Є R


Contoh : Budi terkadang cuci piringnya.
b R b or b R b
Dalam matrik, posisi diagonal dengan nilai bervariasi antara falsedan true.
⎡1 0 1 0⎤
⎢0 0 0 1 ⎥⎥
A ⎢
⎢1 1 1 1⎥
⎢ ⎥ Diagonal bervariasi disebut not reflexive.
⎣0 0 0 1⎦

Algorithma + struktur data = program

Read (n) ; n digunakan untuk menentukansize ordo.

Catatan Automata : Sinar Sinurat, S.T


I=1

While (I ≤ n) do
J=I
If(A[I,j]=1) then
I Status=‘OK’
Else
I Status=‘NO’
I exit
Final
Inc(i)
E-While
I=1
While(i ≤ n)do
J=i
If(a[I,j]=0)
Then
Status1=’OK’
Else
Status1=’NO’
Exit
Final
Inc(i)
E-While
if(Status=’OK’) then
I Relasi=’Reflexive’
Else
If(Status1=’OK’) then
I Relasi=’Irreflexive’
Else
I Relasi=’Not Reflexive’
Final
Final

Catatan Automata : Sinar Sinurat, S.T


PERTEMUAN V
KAMIS, 15 APRIL 2010

THOMPSON CONSTRACTION ALGORITHMA

Reguler Expression (RE) = a+b (a|b)*


Vs
Reguler Defenition (RD) = E E+E|E–E

a
1 2
1) Buat DT untuk a : ∑
a
2) Buat DT untuk a+ : 1 2
b
3) Buat DT untuk b : 3 4 ∑
+ a b
4) Buat DT untuk a b ; Gabung (2) & (3) : 1 2 4
a
5) Buat DT untuk a : 5 6

6) Buat DT untuk b : 7
b
8

7) Buat DT untuk (a|b) ; Gabung (5) & (6) :


∑ a ∑
5 6
4 9
∑ b
7 8 ∑

8) Buat DT untuk (a|b)* :



a ∑
∑ 5 6

10
4 9
b ∑
∑ 7 8

10) Buat DT untuk a+b (a|b)* ; Gabung (4) & (8) :



∑ a
∑ 5 6 ∑
Start ∑
a b 10
1 2 4 9

∑ b ∑
7 8

Catatan Automata : Sinar Sinurat, S.T


PERTEMUAN VI
KAMIS, 15 APRIL 2010

PUSH DOWN AUTOMATA (PDA)


PDA menggunakan operasi stack untuk mengeksekusi statement.
Model kerja :
Push Pop P

Top of stack
Data

Contoh
1. Push A

Operasi stack terjadi bila operator


masuk kedalam stack.
A

2. Push + Pop A
Bila ada operator masuk yang
hirarkinya lebih tinggi maka
operator yang ada dalam stack
+ A tidak boleh dikeluarkan.

3. Push B 7. Push E 9. Push F

E F
B / -
+ + ABC*
A ABC*E/ +

4. Push * Pop B 8. Push - Pop E/+ 10.Push end Pop F-

*
+ - ABC*E/ +
AB end ABC*E/ +F-

5. Push C
Bila tanda kurung tutup masuk,
C maka semua operator dan operand
* harus dikeluarkan dari dalam
+ AB stack selama tanda kurung buka.

6. Push / Pop C*

Operand dan operator dibawah


tanda kurung buka tidak boleh
/ dioperasikan selama tanda kurung
+ ABC* tutup belum masuk.

Catatan Automata : Sinar Sinurat, S.T


Skala prioritas :
Prioritas Statement
1 ( )
2 Assign
3 Exponential
4 *,/
5 +,-

Operasi stack dapat menggunakan


* Prefix (tanda [operator] di depan)
* postfix / suffix (tanda [operator] di belakang)

Contoh operasi stack :


Misal : expression : A + (B * C - D) * E / F
BC*

BC*D-

BC*D- E*

BC*D- E*F/

BC*D- E*F/+

Operasi stack :
Push D
1. Push A 8.
D
-
A (
+ ABC*

2. Push + Pop A 9. Push ) Pop D-

+ A + ABC*D-
buffer

Jika yang dipush adalah operator Pada saat di push ) dalam stack
dan sebelumnya dalam stack sudah ada ( , sehingga semua isi
terdapat operand, maka operand stack data ( s/d ) di pop.
harus dikeluarkan (pop).

Catatan Automata : Sinar Sinurat, S.T


Push ( Push *
3. 10.

( *
+ + ABC*D-
A

4. Push B 11. Push E

B E
( *
+ + ABC*D-
A
Push / Pop E*
5. Push * Pop B 12. Pada saat dipush / maka
operand dalam stack bus dipop,
* / dan dalam stack sudah ada
( AB + ABC*D- E* operator * , dimana operator *
+ harus dipop juga.
Push F
Push C
6. 13.
C F
* /
(
+
+
ABC*D- E*
AB
Push end Pop F/+
Push -
7. Pop C* 14.
-
(
+
end ABC*D- E*F/+
ABC*

Pada saat – dipush, maka Jika dipush end , maka semua


operand dipop, tetapi prioritas - data dalam stack dipop sekaligus.
< dari prioritas * sehingga
tanda * juga dipop.

Catatan Automata : Sinar Sinurat, S.T


PERTEMUAN VII
KAMIS, 22 APRIL 2010

KONVERSI RE KE DFA

RE : (a|b)*abb
1) Tambahkan augmented pada RE
RE : (a|b)*abb#
2) Beri label pada masing-masing posisi node
RE : (a|b)*abb#
i : 1 2 3456
3) Buat pohon parsing dari RE diatas
(A|B) (A|B)* (ABB)
| * .

A B | . C

A B A B

(A|B)*ABB# {1,2,3} {6}


.

{1,2,3} . {5} {6} # {6}


F
F

{1,2,3} . {4} {5} C {5}


F
F

{1,2,3} . {3} {4} B {4}


F
F

{1,2} * {1,2} {3} A {3}


T F

{1,2} | {1,2}

F
{1} A {1} {2} B {2}
Root = A = {1,2,3}
F F

Catatan Automata : Sinar Sinurat, S.T


4) Buat tabel follow post (fp)
RE : (a|b)*abb#
i : 1 2 3456

Node Fp
1 {1,2,3}
2 {1,2,3}
3 {4}
4 {5}
5 {6}
6 -

5) Buat diagraph tabel follow post


Start
1

3 4 5 6

6) Buat tabel diagram transisi berdasarkan root


Input
State
A B
A = {1,2,3} Fp(1) & Fp(3) = {1,2,3,4} = B Fp(2) = {1,2,3} = A
B = {1,2,3,4} B Fp(2) & Fp(4) = {1,2,3,5} = C
C = {1,2,3,5} B Fp(2) & Fp(5) = {1,2,3,6} = D
D = {1,2,3,6} B A

7) Buat DT dari tabel DFA A


B A
Start C B
A B C

A
B B
D

Catatan Automata : Sinar Sinurat, S.T


Contoh lain :

RE : abc(a|b)*cba
1. Tambahkan augmented pada RE
RE : abc(a|b)*cba#
2. Beri label pada masing-masing posisi node
RE : abc(a|b)*cba#
i : 123 4 5 6789
3. Buat pohon parsing dari RE diatas
(AB) (ABC) .
(A|B)* * (CBA) .

. C | . A
A B

A B A B C B

(A|B)*ABB# {1} {9}


.

{1} . {8} {9} # {9}


F
F

{1} . {7} {8} A {8}


F
F

{1} . {6} {7} B {7}


F
F

{1} . {3,4,5} {6} C {6}


F
F

{1} . {3} {4,5} * {4,5}


T
F

{1} . {2} {3} C {3} {4,5} | {4,5}


F
F F
{1} A {1} {2} B {2} {4} A {4} {5} B {5}
F F F F

Root = A = {1}

Catatan Automata : Sinar Sinurat, S.T


4. Buat tabel follow post (fp)
RE : abc(a|b)*cba#
i : 123 4 5 6789
Node Fp
1 {2}
2 {3}
3 {4,5,6}
4 {4,5,6}
5 {4,5,6}
6 {7}
7 {8}
8 {9}
9 -

5. Buat diagraph tabel follow post


Start
1 2 3 4

5 6 7 8 9

6. Buat tabel diagram transisi berdasarkan root


INPUT
STATE
A B C
A = {1} Fp(1) = {2} = B - -
B = {2} - Fp(2) = {3} = C -
C = {3} - - Fp(3) = {4,5,6} = D
D = {4,5,6} Fp(4) = {4,5,6} = D D Fp(6) = {7} = E
E = {7} - Fp(7) = {8} = F -
F = {8} Fp(8) = {9} = G - -
G = {9} - - -

7. Buat DT dari tabel DFA


AB
Start A C C
A B C D

C
B A
B C D

Catatan Automata : Sinar Sinurat, S.T


PERTEMUAN VIII
KAMIS, 6 MEI 2010

KONVERSI REGULER EXPRESSION (RE) KE DFA

RE : (a|b)*abb
1. Tambahkan augmented pada RE
RE : a(b|c)*(a|b)abc#
2. Beri label pada masing-masing posisi node
RE : a(b|c)*(a|b)abc#
i : 12 3 4 5 6789
3. Buat pohon parsing dari RE diatas
(B|C) (B|C)* A(B|C)* (ABC) .
| * .
*
A

B C | . C
|

B C A B
B C

A(B|C)*(A|B)ABC# {1} {9}


.

F
{1} . {8} {9} # {9}
F
F
{1} . {7} {8} C {8}
F
F
{1 } . {6} {7} B {7}
F
F
{1} . {4,5}
{6} A {6}
F

{1} . {1,2,3} {4,5} | {4,5}

F
{1} A {1} {2,3} * {2,3} {4} A {4} {5} B {5}
F T F F
{2,3} {2,3}
|
F Root = A = {1}
{2} A {2} {3} B {3}
F F

Catatan Automata : Sinar Sinurat, S.T


4. Buat tabel follow post (fp)
RE : a(b|c)*(a|b)abc#
i : 12 3 4 5 6789
Node Fp
1 {2,3,4,5}
2 {2,3,4,5}
3 {2,3,4,5}
4 {6}
5 {6}
6 {7}
7 {8}
8 {9}
9 -

5. Buat diagraph tabel follow post


2

Start 3
1

4
6 7 8 9

6. Buat tabel diagram transisi berdasarkan root


INPUT
STATE
A B C
A = {1} Fp(1) = {2,3,4,5} = B - -
B = {2,3,4,5} Fp(4) = {6} = C Fp(2) & Fp(5) = Fp(3) = {2,3,4,5} =
{2,3,4,5,6} = D B
C = {6} Fp(6) = {7} = E - -
D = {2,3,4,56} Fp(4) & Fp(6) = D B
{6,7} = F
E = {7} - Fp(7) = {8} = G -
F = {6,7} E G -
G = {8} - - Fp(8) = {9} = H
H = {9} - - -

7. Buat DT dari tabel DFA


C
Start A A A B
A B C E G

B B A B C
A
C D F H

Catatan Automata : Sinar Sinurat, S.T


PERTEMUAN IX
KAMIS, 3 JUNI 2010

GRAMMAR

Grammar yaitu tata bahasa atau susunan, dimana kata-kata tersebut nantinya akan
membentuk suati arti (meaning).
Tujuan grammar dapat tercapai jika didukung oleh suatu sentence :
G = {VT, VN, P, S}
Keterangan :
VT = simbol terminal (biasanya berbentuk : small letter, operator, dan tanda-tanda
baca). Biasanya disebut juga dengan token (anggota dari alfabet).
VN = simbol non terminal (biasanya berbentuk capital letters).
P = produksi
S = start

Tipe grammar ada 4, yaitu :


1. Type – 0 : Unrestricted Grammar (UG). → tidak ada batasan grammar.
α , β ∈ (VT / V N ) * ; | α |> 0
2. Type – 1 : Context Sensitive Grammar (CSG). → tidak boleh salah grammarnya.
α , β ∈ (VT / V N ) * ; 0 < | α | ≤ | β |
3. Type – 2 : Context Free Grammar (CFG). → grammar yang bebas konteks.
α ∈ V N ; β ∈ (VT / V N )
4. Type – 3 : Reguler Grammar (RG). → grammar yang beregulasi (bertahap).
α ∈ V N , β ∈ (VT ,VT V N )
Atau
α ∈ V N , β ∈ (V N , V N VT )
Atau

Catatan Automata : Sinar Sinurat, S.T


α ∈ V N , β ∈ {a, b, c}
Atau
α ∈ V N , β ∈ { A, B, C}

Produksi :
(1) <Sentence> → <Subject><Predicate>
→ <Subject><Predicate><Object>
→ <Subject><Predicate><Object><Adverb>
(2) <Subject> → <Noun>
(3) <Predicate> → <Verb>
(4) <Object> → <Noun>
(5) <Adverb> → <Noun> / <Verb>
(6) <Sentence> → id (identifier = pengenal)
(7) <Subject> → id
(8) <Predicate> → id
(9) <Object> → id
(10) <Noun> → id
(11) <Verb> → id

Penurunan grammar ada 2 model, yaitu:


- Chomsky Normal Form (CNF) → ada 4 pasangan tipe.
- Greibach Normal Form (GNF) → tidak memperhatikan jumlah type yang
didefenisi, tetapi lebih peka dengan ε, karena ε sangat diperlukan.

Tujuan penurunan grammar :


- Overlapping
- Collison
- Redudancy

Catatan Automata : Sinar Sinurat, S.T


Contoh : lampetmu dimakan orang
Start → <sb> <pr> <ob> → <sb> <pr> <ob>
→ <sb> <pr> <noun> → <noun> <pr> <ob>
→ <sb> <verb> id → id <verb> <ob>
→ <noun> id orang → lampetmu id <ob>
→ id dimakan orang → lampetmu dimakan id
→ lampetmu dimakan orang → lampetmu dimakan orang
RHS (Right Hand Side) LHS (Left Hand Side)

P : <E> → <(E)>
→ <E> <op> <E>
→ id
<op> → + | - | * | / | ^ Contoh1 : A+B*C
S → E (0) S→E S→E
→ E*E (1) → E*E (2) → E+E (4)
→ E/E (3) → E+E*E (4) → E+E*E (2)
→ E+E (4) → id+E*E (6) → E+E*id (6)
→ E-E (5) → id+id*E (6) → E+id*id (6)
→ id → id+id*id (6) → id+id*id (6)

Contoh2 :
(1)S → aAa ; (2) A → aAa ; (3) A → a
Output : aaaaaaa loop
Top S→ aAa (1)
Kelemahannya :
→ a a Aa a (2) Jika salah membuat rule maka akan terjadi
→ a aaAaa a (2) loop forever.
Down / → a a a a a a a (3) Misal : rule (3) diganti A → 5,
Maka akan terjadi loop forever.
Bottom → a(aaaaa)a (2)
→ a(a(aaa)a)a (2)
→ a(a(a(a)a)a)a (2)
→ a(a(aAa)a)a (2)
→ a(aAa)a (2)
→ aAa (2)
Up →S (1)

Catatan Automata : Sinar Sinurat, S.T


PERTEMUAN X
KAMIS, 10 JUNI 2010

MESIN MEALY

M = (Q,ε,∆,δ,λ,q0)

0/y
Contoh :
P0
0/n

Start q0 1/n 0/n

1/n
P1 1/y

Misal :
1 0 1 1 0 0 1 0 1 0
Start
q0 P0 P1 P0 P0 p0 final
P1 P1 P0 P1 P1

λ= n n n y n y n n n n

Catatan :
*> Start State Fixed
*> Final State Non det
0/n untuk input artinya :
δ (Q0,0) = P0 and
λ (Q0,0) = n

*> Proses bergantung pada input yang berdekatan


Bila sama y
Lainnya n

Catatan Automata : Sinar Sinurat, S.T


MESIN MOORE

M = (Q,ε,∆,δ,λ,q0)

Contoh :
1 0
A B C
q0 P0 P1
1
0
1 0

Catatan :
-^- Start Stae Fixed
-^- Final State Non
-^- Process berorientasi pada output untuk mendapatkan input A (Alphabet Output)

Input :
1 0 1 1 0 0 1 0 1 0
Start
q0 q2 q2 q2 q1 q0 final
q1 q2 q1 q2 q0

λ= A B B C C C B C C B A A
Output transisi alphabetik

Catatan Automata : Sinar Sinurat, S.T


MESIN TURING

0 1 2 3 4 5 6 7 8

9 2 1 8 7 5 3 4 4 cell / gugus / larik / hole / array

Head
position

initial

Misal : cari data = 7


9 2 1 8 7 5 3 4 4
head = 0 ; gerak = 0x ; i = 0
gerak = 1x
head = 1 ; gerak = 1x ; i = 1
gerak = 2x
head = 2 ; gerak = 2x ; i = 2
gerak = 3x
Catatan :
head = 3 ; gerak = 3x ; i = 3 - saat mesin shutdown maka akan terjadi seek
process (meletakkan head pada posisi awal).
gerak = 4x - seek : heal tidak membaca yang sudah pernah
head = 4 ; gerak = 4x ; i = 4 dibaca.

gerak = 5x
posisi akhir head = 4

Contoh : cari data = 5


9 2 1 8 7 5 3 4 4
Gerak = 4 + 5 = 9
Baca = 5 + 1 = 6
∑ gerak = 13x 4 + 9 = 13
∑ baca = 11x 5 + 6 = 11

Catatan Automata : Sinar Sinurat, S.T


PERTEMUAN XI
KAMIS, 24 JUNI 2010

CONTROL FLOW

C / C++ Pascal
1. If (E) S 1. If (E) then S
2. If (E) S1 2. If (E) then S1
Else Else
S2; S2;
3. While (E) S 3. While (E) S

S :=;
|E
| {Slist}
| IF(E) S
| IF(E) S; else S
| While (E) S
| Do S While (E)
| For(Eop;Eop;Eop,Eop) S
| Switch (E) S
| Default ; S

C / C++ / Java

Var1 Var2

If(Var1>Var2)
Besar:=Var1
Else
Besar:=Var2;

Catatan Automata : Sinar Sinurat, S.T


Var1 Var2 Var3

A If(Var1>Var2)
C If(Var1>Var3)
Besar:=Var1
D Else
Besar:=Var3;
B Else
E If(Var2>Var3)
Besar:=Var2
F Else
Besar:=Var3;

Var A,B,C,D integer


Begin Read(A,B)
C:=A+B
write(C);
End.

Control IF

A B

C D E F

Catatan Automata : Sinar Sinurat, S.T


Control IF

A B

C D E F

Pascal

Var1 Var2

If (Var1>Var2) then
Besar:=Var1
Else
Besar:=Var2;

|deret instruksi|
If(Var1>Var2) then Besar:=Var1 else besar:=Var2

A If(Var1>Var2) then
C If(Var1>Var3) then
Besar:=Var1
D Else
Besar:=Var3;
B Else
E If(Var2>Var3) then
Besar:=Var2
F Else
Besar:=Var3;

NB: titik koma (;)? dipakai/tidak, maka akan dijawab tidak

Catatan Automata : Sinar Sinurat, S.T


PERTEMUAN XII
KAMIS, 1 JULI 2010

CONTROL FLOW

Suatu proses transformasi bahasa ke compiler.


Bentuk flow:
S::=|E;|{List}|If(E) S1 else S2|While(E) S;|…

Penerapan bentuk control flow ini juga bergantung pada tool (bahasa pemrograman
yang digunakan) akan tetapi, oleh automata menggunakan konsep yang sama.

Pascal / B. Delphi
Kondisi 1
L:=1;
Start=> J:=i*2;
Inc(i);
I:=i+1;

Terdapat proses assign


I=i-1|dec(i);

Kondisi 2
A=2;
B=5; Lazy evaluation

If (A>B) then
Besar:=A
Else Satu baris start
Besar:=B;

Eoln (end of link)

Catatan Automata : Sinar Sinurat, S.T


A B C

I If(A>B) then CONTROL FLOW


III If(A>C) then
VII Besar:=A
I II
IV Else
VIII Besar:=C;
II Else III IV V VI

V If(B>C) then
IX Besar:=B
VII VIII IX X
VI Else
X Besar:=C;

XI

LOOPING
3. For Var:=initial to endpoint do
Contoh :
For I:=1 to 10 do
Pertambahan counter otomatis=1

4. I:=1;
While(I<=10) do
Begin
I:=0;
Repeat
Write(I);
Inc(I);
Until(I>10)

Catatan Automata : Sinar Sinurat, S.T


5. Goto
Contoh :
Program Lampetmu;
Uses crt;
Var I,J,K= integer;
Label muak;
Begin
I:=1
Mulak
Write(I);
If I<=10 then
Begin
Inc(I);
Goto Mulak;
End else exit;
End.

6. Case pil of
1=stant 1;
2=stant 2;
3=stant 3;
Else stant ;
End.

Catatan Automata : Sinar Sinurat, S.T


C / C++ / Java

1. i=1;
j=i*2;
i=i+2;|i++;i--;
i+=1; - pada proses interasi berulang, saat pertama sekali
- tambahan dengan i
- nilai=2 (interasi1)
i++1; = Iterasi I nilai masih 1

Contoh
{ int i,j ;
i=2;j=1;
j+=i, i/j= 1+2;
cout<<j;
}
Output = 3 artinya : j=1+2
Vs
{ int i,j;
i=2
j=+i; //j= j+i
cout<<j
}
Output=2 artinya : j=i

2.
If(A>B)
Ekspressi
Besar=A;
Else
Besar=B;

Catatan Automata : Sinar Sinurat, S.T


3. For (i=1, i<=10 ; C++ stant)
Counter diatur dalam loop

4. i=1;
while(i<=10)
S S* {
Cout<<I;
i++; //input 2=i=+2;
}

I=1;
Do{
S S+ Cout<<I;
i++;
while(i<=10)

5. dalam c++
#include<iostream.h>
Void main()
{int i=1, j,k; jika compiler akan muncul : warning
A mulai;
B cout<<;
C if i<=10 {i++; goto mulak;}
E F

D else
exit
G

Catatan Automata : Sinar Sinurat, S.T


6. Switch pil
1:stant 1;
2: stant 2;
Other wisk
Stant n;

7. Control Flow

C D

E G

Catatan Automata : Sinar Sinurat, S.T

Anda mungkin juga menyukai