Anda di halaman 1dari 7

TEORI BAHASA DAN OTOMATA

1. PENDAHULUAN
Teori Bahasa
 Teori bahasa membicarakan tentang bahasa formal (formal language),
terutama untuk perancangan kompilator (compiler) dan pemroses naskah (text
processor).
 Bahasa formal adalah kumpulan kalimat.
 Semua kalimat dalam sebuah bahasa dibangkitkan oleh sebuah tata bahasa
(grammar).

Otomata (Automata)
Adalah mesin abstrak yang dapat mengenali (recognize), menerima (accept) atau
membangkitkan (generate) sebuah kalimat dalam bahasa tertentu.

2. KONSEP DASAR
 String adalah deretan terbatas (finite) simbol-simbol.
 String hampa adalah string dengan nol buah simbol
 Dalam grammmar, dikenal simbol-simbol, yaitu :
1. Simbol terminal (token)
Adalah symbol-simbol yang dilambangkan dengan huruf kecil, dan
symbol-simbol tersebut sudah tidak dapat diturunkan lagi
Contoh: a, b, c

2. Simbol non terminal (variable)


Adalah symbol-simbol yang dilambangkan dengan huruf besar, dan
symbol-simbol tersebut masih dapat diturunkan lagi
Contoh: A, B, C

3. Simbol Awal (start)


Adalah symbol awal, biasanya dilambangkan dengan S

 Aturan produksi dilambangkan dengan:


α→β : artinya α dapat diganti atau diturunkan dengan symbol β

 Derivasi kalimat (pembentukan kalimat) dilambangkan dengan:


α⇒β : artinya α adalah kalimat yang terdiri dari deretan symbol β

3. GRAMMAR DAN KLASIFIKASI CHOMSCY


Grammar (G) didefinisikan sebagai pasangan 4 tuple yaitu:
VT : himpunan symbol terminal
VN : himpunan symbol non terminal
S : symbol awal (start)
Q : himpunan produksi
Derivasi kalimat dan penentuan bahasa:

Contoh:

Tentukan bahasa dari masing-masing grammar dari aturan produksi berikut :

1. G dengan Q = {1. S→aAa, 2. A → Aa, 3. A→b }


Penyelesaian :
a. Derivasi kalimat terpendek (hindari aturan produksi yang menyebabkan
looping):
S ⇒aAa (1)
⇒aba (3)

b. Derivasi kalimat terpendek 1 (semua aturan produksi terlibat, tetapi tidak ada
looping):
S ⇒aAa (1)
⇒aAaa (2)
⇒aba (3)

c. Derivasi kalimat umum (semua aturan produksi terlibat dan ada looping):
S ⇒aAa (1)
⇒aAaa (2)
⇒aAaaa (2)
⇒aAaaaa (2)
…….
⇒aAan (2)
n
⇒aba (3)

Dari pola kedua buah kalimat dapat disimpulkan L(G) = {aban n≥1}

2. G dengan Q = {1. S→Ab, 2. A → Bc, 3. B→Cb, 4. C→Ca, 5. C→a}


Penyelesaian:
a. Derivasi kalimat terpendek:
S ⇒Ab (1)
⇒Bcb (2)
⇒Cbcb (3)
⇒abcb (5)

b. Derivasi kalimat terpendek 1:


S ⇒Ab (1)
⇒Bcb (2)
⇒Cbcb (3)
⇒Cabcb (4)
⇒aabcb (5)

c. Derivasi umum:
S ⇒Ab (1)
⇒Bcb (2)
⇒Cbcb (3)
⇒Cabcb (4)
⇒Caabcb (4)
⇒Caaabcb (4)
……….
⇒aaaabcb (5)
Dari pola kedua buah kalimat dapat disimpulkan L(G) = {an bcb n≥1}
3. G dengan Q = {1. S→A, 2. A→aB, 3. B→C, 4. C→bD, 5. D→A,
6. D→E, 7. E→F, 8. F→bG}
Penyelesaian:
a. Derivasi kalimat terpendek:
S ⇒A (1)
⇒aB (2)
⇒aC (3)
⇒abD (4)
⇒abE (6)
⇒abF (7)
⇒abbG (8)

b. Derivasi kalimat umum:


S ⇒A (1)
⇒aB (2)
⇒aC (3)
⇒abD (4)
⇒abA (5) … .... looping pertama
⇒abaB (2)
⇒abaC (3)
⇒ababD (4)
⇒ababA (5) ……. looping ke-2
⇒ababaB (2)
⇒ababaC (3)
⇒abababD (4)
⇒abababE (6)
⇒abababF (7)
⇒abababbG (8)
Dari pola kedua buah kalimat dapat disimpulkan L(G) = {(ab)n bGn≥1}

Latihan soal :
Dari aturan produksi dibawah ini cari derivasi kalimat terpendek dan derivasi kalimat
umum untuk menentukan grammar dari masing-masing kalimat:

1. G dengan Q = {1. S→BA, 2. A → aBa, 3. B→b}


2. G dengan Q = {1. S→aS, 2. S → aB, 3. B→bC, 4. C→aC, 5. C→a}
3. G dengan Q = {1. S→aSBC, 2. S→abB, 3. bB→bb, 4. bC→bc, 5. CB→BC,
6. cC→cc}
FINITE STATE AUTOMATA (FSA)

Merupakan model matematika yang dapat menerima input dan mengeluarkan output
Memiliki state yang berhingga banyaknya dan dapat berpindah dari satu state ke state
lainnya berdasar input dan fungsi transisi

Tuple pada FSA:


Q = himpunan state
∑ = himpunan symbol input
δ = fungsi transisi
S = state awal
F = state akhir (dilambangkan dengan lingkaran ganda)

Contoh 1:
a b a
q0 q1 q2 q3

b
c
q4

q5

Q = {q0, q1, q2, q3, q4, q5}


∑ = {a,b,c}
S = q0
F = {q3, q4}

δ a b c
q0 q1 ø ø
q1 ø q2 ø
q2 q3 q4 q5
q3 ø ø ø
q4 ø ø ø
q5 ø ø ø

Dari gambar mesin automata di atas:


Input yang dapat diterima adalah: aba, abb (karena berakhir pada state akhir)
Input yang ditolak adalah: abc (tidak berakhir pada state akhir)

Contoh 2:

Q = {genap, ganjil}
∑ = {0,1}
S = genap
F = ganjil
δ 0 1
Genap genap ganjil
Ganjil ganjil genap

Atau:
δ(genap,0) = genap
δ(genap,1) = ganjil
δ(ganjil,0) = ganjil
δ(ganjil,1) = genap

dari mesin automata tersebut:


input yang diterima adalah: 1, 010, 10
input yang ditolak adalah: 11, 011, 101, 0101, 011

Jenis FSA:
1. Deterministic State Automata (DFA)
2. Non Determinictic State Automata (NFA)
DETERMINISTIC STATE AUTOMATA (DFA)

Dari suatu state ada tepat satu state berikutnya untuk setiap symbol masukan yang
diterima.
Contoh 1:

Q = {q0, q1, q2}


∑ = {a, b}
S = q0
F = q2

Δ a b
q0 q0 q1
q1 q1 q2
q2 q1 q2
δ (q0, a) = q0
δ (q0, b) = q1
δ (q1, a) = q1
δ (q1, b) =q2
δ (q2, a) = q1
δ (q2, b) = q2

contoh 2:

Q = {q0, q1, q2, q3}


∑ = {0,1}
S = q0
F = q0

δ 0 1
q0 q2 q1
q1 q3 q0
q2 q0 q3
q3 q1 q2
δ(q0,0) = q2
δ(q0,1) = q1
δ(q1,0) = q3
δ(q1,1) =q0
δ(q2,0) = q0
δ(q2,1) = q3
δ(q3,0) = q1
δ(q3,1) = q2

Latihan soal
1. Gambarkan mesin automata berdasarkan digram fungsi transisi berikut :
Q = {q0, q1,q2,q3, q4 }
∑ = {a,b}
S = q0
F = {q0, q1, q2}

Fungsi transisi DFA:

δ 0 1
q0 q0 q1
q1 q0 q2
q2 q0 q3
q3 q3 q4

2. Berdasarkan mesin automata berikut gambarkan diagram fungsi transisinya

3. Berdasarkan mesin automata berikut gambarkan diagram fungsi transisinya

Anda mungkin juga menyukai