TEORI bAHASA DAN OTOMATA...Teori Bahasa dan Otomata 5 q 0 q 1 q 2 q 3 d e n qq141 t y q 4 q 5 q 6 q...
Transcript of TEORI bAHASA DAN OTOMATA...Teori Bahasa dan Otomata 5 q 0 q 1 q 2 q 3 d e n qq141 t y q 4 q 5 q 6 q...
Teori Bahasa dan Otomata 1
Teori Bahasa dan Otomata 3
DAFTAR ISI
KATA PENGANTAR
DAFTAR ISI
BAB 1 PENGANTAR TEORI BAHASA DAN OTOMATA
BAB 2 FINITE STATE AUTOMATA
BAB 3 EKUIVALENSI NFA KE DFA
BAB 4 NFA DENGAN ε-MOVE
BAB 5 EKSPRESI REGULER
BAB 6 ATURAN PRODUKSI UNTUK SUATU FINITE STATE AUTOMATA
BAB 7 FINITE STATE AUTOMATA DENGAN OUTPUT (MESIN MOORE)
BAB 8 POHON PENURUNAN
BAB 9 PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS
Teori Bahasa dan Otomata 4
PENDAHULUAN
Ilmu komputer memiliki dua komponen utama yaitu model dan gagasan tentang
komputasi dan teknik rekayasa untuk perancangan sistem komputasi (perangkat keras dan
perangkat lunak). Teori bahasa dan otomata masuk kedalam komponen utama dalam ilmu
komputer. Teori bahasa dan otomata diterapkan pada beberapa perancangan digital seperti
pada pmbuatan bahas apemrograman dan kompilator. Sedangkan tujuan mempelajari Teori
Bahasa dan Otomata sendiri yaitu mengajarkan dasar-dasar teori bahasa formal dan model-
model mesin matematis yang menggambarkan prinsip kerja komputer.
Otomata merupakan suatu bentuk (model matematika) yang memiliki fungsi-fungsi dari
komputer digital yaitu menerima input, menghasilkan output, bisa memiliki penyimpanan
sementara dan mampu membuat keputusan dalam mentransformasikan input ke output. Input
pada mesin otomata dianggap sebagai bahasa yang harus dikenali oleh mesin. Selanjutnya
mesin otomata akan membuat keputusan yang mengindikasikan apakah input ini diterima atau
tidak. Otomata bisa digunakan untuk memodelkan hardware.
Umumnya kita hanya tahu bahasa alami yaitu bahasa inggris atau bahasa indonesia.
Sebuah bahasa merupakan himpunan string-string dari simbol-simbol untuk suatu alphabet.
String sendiri merupakan suatu kata (gabungan dari huruf) dalam bahasa, contoh string adalah
‘Tanjungpinang‘. String juga dapat bernilah kosong dan biasa dilambangkan menggunakan
simbol ε.
Contoh penerapan mesin otomata, misalnya kita akan memodelkan mesin otomata
yang hanya dapat menerima inputan dalam bahasa inggris. Apabila digambarkan pemodelan
bahasanya akan menjadi :
BAB 1
Teori Bahasa dan Otomata 5
q0 q1 q2 q3d e n
q4q11
t
y
q6q5q4
q8
g
a n
q4q7
q9 q10i s t
Gambar 1.1 Mesin Otomata Penerima Input Bahasa Inggris
Pada gambar 1.1 diatas merupakan mesin otomata yang hanya dapat menerima inputan
berupa bahasa inggris, jika mesin mendapatkan string inputan :
dengan : di tolak
deny : diterima
dentist : diterima
suatu string dikatakan diterima apabila mencapai state akhir(lingkaran ganda) untuk
kasus ini ada pada q7 dan q11. State awal selalu diawali oleh panah tanpa inputan (state q0).
HIRARKI CHOMSKY
Tata Bahasa (grammar) didefinisikan sebagai kumpulan dari himpunan-himpunan
variable, simbol-simbol terminal, simbol awal yang dibatasi oleh aturan produksi. Pada tahun
1959, Noam Chomsky menggolongkan tingkatan bahasa menjadi empat yang disebut sebagai
Hirarki Chomsky. Penggolongan Hirarki Chomsky :
Tabel 1.0 Penggolongan Bahasa
Bahasa Mesin Otomata Batasan Aturan Produksi
Regular/Tipe 3 Finite State Automata (FSA) :
1. Deterministic Finite
Automata (DFA)
2. Non- Deterministic Finite
Automata (NFA)
α merupakan sebuah simbol
variable
β maksimal memiliki sebuah
simbol variable yang bila ada
terletak diposisi paling kanan
Teori Bahasa dan Otomata 6
Bahasa Mesin Otomata Batasan Aturan Produksi
Bebas Konteks/Context
Free/Tipe2
Push Down Automata (PDA) α berupa sebuah simbol
variable
Context Sensitive/Tipe1 Linier Bounded Automata |α | ≤ |β|
Unrestricted/Phase
Structure/Natural
Language/Tipe 0
Mesin Turing Tidak ada batasan
Aturan produksi merupakan pusat dari tata bahasa yang menspesifikasikan bagaimana
suatu tata bahasa melakukan transformasi dari suatu string ke bentuk lainnya dan melalui
aturan produksi tersebut didefinisikan suatu bahasa yang berhubungan dengan tata bahasa
tersebut. Suatu aturan produksi dapat dinyatakan dalam bentuk α→β ( dibaca : α
menghasilkan β atau dibaca : α menurunkan β). Suatu α menyatakan simbol-simbol pada ruas
kiri aturan produksi. Sedangkan β menyatakan simbol-simbol pada ruas kanan aturan produksi.
Beberapa istilah dalam aturan produksi :
1. Simbol variable/nonterminal : simbol yang masih dapat diturunkan, biasanya
dilambangkan menggunakan abjad capital.
2. Simbol terminal : simbol yang tidak dapat diturunkan kembali, biasanya
dilambangkan menggunakan abjad non-capital(huruf kecil).
Contoh penerapan tata bahasa “Noam Chomsky” :
Table 2.0 Contoh Tata Bahasa Berdasarkan Penggolongan Noam Chomsky
Bahasa Contoh
Regular/Tipe 3 A → b
Bebas Konteks/Context Free/Tipe2 B → bcA
Context Sensitive/Tipe1 B → Abcd
Unrestricted/Phase Structure/Natural
Language/Tipe 0
AbC → abC
Teori Bahasa dan Otomata 7
Buatlah masing-masing 5 buah contoh tata bahasa yang memenuhi aturan tata bahasa :
1. Regular
2. Bebas Konteks
3. Context Sensitive
4. Unrestricted
LATIHAN SOAL
Teori Bahasa dan Otomata 8
FINITE STATE AUTOMATA
Finite State Automata atau yang dikenal dengan istilah FSA merupakan suatu model
mesin otomata dari bahasa reguler. Suatu Finite State Automata dapat memiliki state banyak
berhingga yang dapat berpindah-pindah dari suatu state ke state lainnya. Jenis otomata ini
tidak memiliki tempat penyimpanan, sehingga kemampuan mengingatnya terbatas. Contoh
penerapan Finite State Automata (Pengecek parity ganjil):
q0
0 0
1
1
q1q1
Gambar 2.0 Contoh Penerapan FSA
1. Pengirim akan menambahkan bit paritas sehingga jumlah bit 1 adalah ganjil. Misal, terdapat
data : 0110
Pengirim akan menambahkan bit 1, sehingga :
Penerima akan memperoleh : 01101
2. Bila suatu saat penerima memperoleh jumlah bit 1 yang genap, misalnya : 10010, maka
penerima akan memutuskan telah terjadi kesalahan/ error dalam pengiriman.
Beberapa hal yang harus diketahui berkenaan dengan symbol gambar sebelum memulai materi
FSA (Finite State Automata) adalah :
1. Lingkaran menyatakan state/kedudukan
2. Label pada lingkaran merupakan nama state
3. Busur menyatakan transisi, yaitu perpindahan state/kedudukan
BAB 2
Teori Bahasa dan Otomata 9
4. Label pada busur merupakan simbol input
5. Lingkaran diawali sebuah busur tanpa label yang artinya state awal
6. Lingkaran ganda menyatakan state akhir/final state
PENERAPAN FINITE STATE AUTOMATA
Secara formal FSA dinyatakan menggunakan beberapa symbol :
• Q = himpunan state
• ∑ = himpunan simbol input
• δ = fungsi transisi
• S = state awal
• F = himpunan state akhir
Contoh misalkan pada gambar pengecek pariti ganjil berikut :
q0
0 0
1
1
q1q1
Gambar 2.1 Contoh Penerapan FSA
Apabila dinyatakan menggunakan symbol, maka :
• Q = {q0,q1}
• ∑ = {0,1}
• δ = fungsi transisi
δ 0 1
q0 {q0} {q1}
q1 {q0} {q0}
• S = q0
• F = {q1}
Teori Bahasa dan Otomata 10
FSA dibagi menjadi dua macam, yaitu DFA( Deterministic Finite Automata ) dan NFA ( Non-
Deterministic Finite Automata ).
Berdasarkan gambar diatas, tentukan :
• Q = ?
• ∑ = ?
• δ = ?
• S = ?
• F = ?
.TEST . TEST . TEST . TEST . TEST . TEST .
TEST .
TEST .
Teori Bahasa dan Otomata 11
A. DETERMINISTIC FINITE AUTOMATA / DFA
Deterministic Finite Automata merupakan bagian dari FSA. Deterministic Finite
Automata/DFA maksudnya dari suatu state ada tepat satu state berikutnya untuk setiap
simbol masukan yang diterima. Contohnya :
• Q = {q0,q1,q2}
• ∑ = {a,b}
• S = q0
• F = {q2}
Suatu fungsi transisi bisa di bentuk menjadi 2 bentuk :
δ a b
q0 {q0} {q1}
q1 {q1} {q2}
q2 {q1} {q2}
Teori Bahasa dan Otomata 12
B. NON-DETERMINISTIC FINITE AUTOMATA / NFA
Non-Deterministic Finite Automata merupakan bagian dari FSA. Non-Deterministic
Finite Automata/NFA maksudnya Dari suatu state bisa terdapat 0, 1 atau lebih busur
keluar (transisi) berlabel simbol input yang sama. Contohnya :
• Q = {q0,q2}
• ∑ = {a,b}
• S = q0
• F = {q2}
δ a b
q0 {q0,q2} {q2}
q2 {q2} {q2}
Apa Perbedaan Antara Deterministic Finite Automata/DFA dan Non-Deterministic Finite
Automata/NFA ????
Dari state q0 ketika memperoleh inputan yang sama yaitu a
dapat menuju ke lebih dari 1 state yaitu {q0,q2}
.ANALISIS.
TEST .
TEST .
Teori Bahasa dan Otomata 13
EKUIVALENSI ANTAR DFA
Dalam suatu Deterministic Finite Automata/DFA suatu mesin dapat di gambarkan berbeda
tetapi tetap memiliki outputan yang sama. Contoh mesin DFA :
q0
a
q0
Gambar 2.2 DFA Mesin 1
q0
a
aq1q0 q1
Gambar 2.3 DFA Mesin 2
Berdasarkan gambar diatas dapat diambil kesimpulan bahwa walaupun kedua gambar DFA
diatas bebeda tetapi hasil output yang diterimanya tetap sama yaitu hanya dapat menerima
inputan yang mengandung a.
Teori Bahasa dan Otomata 14
Gambarkan FSA (Finite State Automata) berikut ini kemudian analisis apakah FSA (Finite State
Automata) tersebut termasuk DFA (Deterministic Finite Automata) atau NFA (Non-
Deterministic Finite Automata) disertai dengan 3 buah contoh string yang diterima dan 3 buah
contoh string yang ditolak :
1. Q = {q0,q1,q2}
Σ = {0,1}
S = {q0}
F = {q2}
δ 0 1
q0 {q1} {q2}
q1 {q2} {q2}
q2 {q1} -
2. Q = {q0,q1,q2,q3,q4}
Σ = {a,b}
S = {q0}
F = {q2,q4}
δ a b
q0 {q0,q3} {q0,q1}
q1 - {q2}
q2 {q2} {q2}
q3 {q4} -
q4 {q4} {q4}
.SOAL LATIHAN.
TEST .
TEST .
Teori Bahasa dan Otomata 15
EKUIVALENSI NON-DETERMINISTIC FINITE STATE AUTOMATA (NFA) KE DETERMINISTIC FINITE
STATE AUTOMATA(DFA)
Ekuivalen artinya sama, pada bahasan materi ini artinya dapat menerima string yang
sama baik itu menggunakan mesin Non-Deterministc Finite Automata (NFA) maupun
Deterministc Finite Automata (DFA).
Sebuah mesin Non-Deterministc Finite Automata (NFA) dapat dibuat menjadi mesin
Deterministic Finite Automata(DFA) yang dapat menerima string yang sama. Ada beberapa
tahap yang dapat ditempuh untuk melakukan ekuivalensi Non-Deterministc Finite Automata
(NFA) ke Deterministc Finite Automata (DFA) :
1. Buat tabel transisi dari Non-Deterministc Finite Automata (NFA)
2. Telusuri state berikutnya dengan memanfaatkan tabel transisi ditambah dengan
state { }
3. Tentukan finish baru jika ada, dengan melihat seluruh state yang mengandung finish
awal.
Contoh kasus diberikan gambar Non-Deterministc Finite Automata (NFA) berikut :
Diketahui :
Q = {qo,q1}
Σ = {0,1}
S = q0
F = {q1} q0
0
0,1q1q1
BAB 3
Teori Bahasa dan Otomata 16
Ditanyakan :
Buatlah Deterministic Finite Automata yang ekuivalen dengan Non-Deterministic Finite
Automata diatas.
Jawab :
1. Buat tabel transisi dari Non-Deterministc Finite Automata (NFA)
δ 0 1
q0 {q0,q1} {q1}
q1 { } { }
2. Telusuri state berikutnya dengan memanfaatkan tabel transisi ditambah dengan
state { }
δ 0 1
q0 {q0,q1} {q1}
q1 { } { }
{ q0,q1} {q0,q1} {q1}
{ } { } { }
3. Tentukan finish baru jika ada, dengan melihat seluruh state yang mengandung finish
awal.
δ 0 1
q0 {q0,q1} {q1}
q1 { } { }
{ q0,q1} {q0,q1} {q1}
{ } { } { }
State baru yang terbentuk dan akan
ditelusuri
Finish
Baru
Teori Bahasa dan Otomata 17
4. Gambar Deterministic Finite Automata :
q0
0,1
0,1q1q1 { }
q0{q0,q1}
0
0
1
1
Teori Bahasa dan Otomata 18
1. Buatlah deterministic Finite Automata yang ekuivalen dengan Non-Deterministic Finite
Automata berikut :
Q = {qo,q1,q2,q3}
Σ = {a,b}
S = q0
F = {q3}
Fungsi Transisinya sebagai berikut :
δ a b
q0 {q0,q1} q1
q1 q3 q3
q2 q4 { }
q3 q4 q4
2. Buatlah deterministic Finite Automata yang ekuivalen dengan Non-Deterministic Finite
Automata berikut :
Q = {p,q,r}
Σ = {0,1}
S = p
F = {q}
Fungsi Transisinya sebagai berikut :
δ 0 1
p q { }
q {q,r} r
r p {q,r}
.SOAL LATIHAN.
TEST .
TEST .
Teori Bahasa dan Otomata 19
NON-DETERMINISTIC FINITE STATE AUTOMATA (NFA) DENGAN ε-Move
Suatu gambar Non-Deterministc Finite Automata (NFA) yang mengandung ε-Move ( ε dapat
dianggap “empty” artinya dapat tidak dibaca inputannya atau diperbolehkan langsung menuju
state berikutnya tanpa membaca inputan ε). Contoh gambar Non-Deterministic Finite
Automata mengandung ε-Move :
q0 q1 q2 q0q3ε
0,1
0 ε
1
Berdasarkan gambar diatas maka dapat di ambil kesimpulan :
Dari q0 tanpa membaca input dapat langsung berpindah ke state q1
Dari q2 tanpa membaca input dapat langsung berpindah ke state q3
Kegunaan transisi ε ini adalah memudahkan dalam mengkombinasikan Finite State Automata.
ε–closure merupakan himpunan state-state yang dapat dicapai dari suatu state tanpa membaca
input. ε–closure sendiri dapat disingkat nantinya menjadi ε–cl. Contoh pada gambar berikut :
BAB 4
.ε – CLOSURE UNTUK SUATU NON-DETERMINISTIC FINITE AUTOMATA DENGAN ε-MOVE.
TEST .
TEST .
Teori Bahasa dan Otomata 20
q0 q1 q2 q0q3ε
0
0 ε
1
Berdasarkan gambar diatas, maka dapat di buat ε–closure nya sebagai berikut :
ε–closure (q0) = {q0,q1}
ε–closure (q1) = {q1}
ε–closure (q2) = {q2,q3}
ε–closure (q3) = {q3}
Buatlah ε–closure dari gambar Non-Deterministic Finite Automata(NFA) berikut :
q0 q1 q2 q0q3ε
0
0ε
1
q4
ε
Dari suatu Non-Deterministic Finite Automata dengan ε – Move dapat dibuat
ekuivalensinya menjadi Non-Deterministic Finite Automata tanpa ε – Move. Langkah-langkah
melakukan ekuivalensi Non-Deterministic Finite Automata dengan ε – Move menjadi Non-
Deterministic Finite Automata tanpa ε – Move :
1. Buat tabel transisi Non-Deterministic Finite Automata yang mengandung ε – Move
2. Tentukan ε- closure untuk setiap state
. LATIHAN .
. EKUIVALENSI NON-DETERMINISTIC FINITE AUTOMATA DENGAN ε-MOVE
KE NON-DETERMINISTIC FINITE AUTOMATA TANPA ε-MOVE .
TEST .
TEST .
Teori Bahasa dan Otomata 21
3. Carilah setiap fungsi transisi hasil perubahan Non-Deterministic Finite Automata ε –
Move ke Non-Deterministic Finite Automata tanpa ε – Move dengan menggunakan rumus :
4. Buat table transisi baru dari hasil perolehan yang sudah dilakukan pada point(3)
5. Tentukan Final State dengan melihat state-state pada ε –closure yang menuju pada state
finish semula
Buatlah NFA tanpa ε- Move yang ekuivalen dengan NFA dengan ε – Move berikut ini :
q0 q1 q2 q0q3ε
0
0 ε
1
Langkah –langkah :
1. Buat tabel transisi Non-Deterministic Finite Automata yang mengandung ε – Move
δ 0 1
q0 { } { }
q1 q2 { }
q2 { } { }
q3 q3 q1
2. Tentukan ε- closure untuk setiap state
ε–closure (q0) = {q0,q1}
ε–closure (q1) = {q1}
ε–closure (q2) = {q2,q3}
ε–closure (q3) = {q3}
δ' (state,input) = ε – closure ( δ (ε – closure(state),input))
. CONTOH .
Teori Bahasa dan Otomata 22
3. Carilah setiap fungsi transisi hasil perubahan Non-Deterministic Finite Automata ε –
Move ke Non-Deterministic Finite Automata tanpa ε – Move dengan menggunakan rumus :
δ' (q0,0) = ε – cl ( δ (ε – cl (q0),0)) ε – cl ( δ{q0,q1},0) ε – cl ({q2})
{ q2,q3}
δ' (q0,1) = ε – cl ( δ (ε – cl (q0),1)) ε – cl ( δ{q0,q1},1) ε – cl ({})
{ }
δ' (q1,0) = ε – cl ( δ (ε – cl (q1),0)) ε – cl ( δ{q1},0) ε – cl ({q2})
{q2,q3}
δ' (q1,1) = ε – cl ( δ (ε – cl (q1),1)) ε – cl ( δ{q1},1) ε – cl ({})
{ }
δ' (q2,0) = ε – cl ( δ (ε – cl (q2),0)) ε – cl ( δ{q2,q3},0) ε – cl ({q3})
{q3}
δ' (q2,1) = ε – cl ( δ (ε – cl (q2),1)) ε – cl ( δ{q2,q3},1) ε – cl ({q1})
{q1}
δ' (q3,0) = ε – cl ( δ (ε – cl (q3),0)) ε – cl ( δ{q3},0) ε – cl ({q3})
{q3}
δ' (state,input) = ε – closure ( δ (ε – closure(state),input))
Teori Bahasa dan Otomata 23
δ' (q3,1) = ε – cl ( δ (ε – cl (q3),1)) ε – cl ( δ{q3},1) ε – cl ({q1})
{q1}
4. Buat table transisi baru dari hasil perolehan yang sudah dilakukan pada point(3)
δ 0 1
q0 {q2,q3} { }
q1 {q2,q3} { }
q2 q3 q1
q3 q3 q1
5. Tentukan Final State dengan melihat state-state pada ε –closure yang menuju pada state
finish semula
Finis semula ada di q3, sehingga lihat state ε –closure yang menuju pada state q3
ε–closure (q0) = {q0,q1}
ε–closure (q1) = {q1}
ε–closure (q2) = {q2,q3}
ε–closure (q3) = {q3}
Berdasarkan ε–closure diatas maka dapat diperoleh state Finish lain selain q3 yaitu q2,
sehingga final state sekarang ada 2 yaitu state q2 dan state q3.
Gambar Non-Deterministic Finite Automata tanpa ε-Move :
δ 0 1
q0 {q2,q3} { }
q1 {q2,q3} { }
q2 q3 q1
q3 q3 q1
q0 q1 q2 q0q3
0
0 0
0
0
0
1
1
Teori Bahasa dan Otomata 24
Buatlah NFA tanpa ε- Move yang ekuivalen dengan NFA dengan ε – Move berikut ini :
q0 q1 q2 q0q3ε
0
0ε
1
q4
ε
.SOAL LATIHAN.
TEST .
TEST .
Teori Bahasa dan Otomata 25
EKSPRESI REGULER
Suatu Finite State Automata dapat dinyatakan menggunakan Ekspresi Regular (ER). Ekspresi
Reguler dapat membuat suatu pola untuk suatu untai/string dari suatu bahasa. Beberapa notasi
dalam Ekspresi reguler :
No Simbol Keterangan String yang dapat dibangkitkan
1 * (karakter asterik) Artinya bisa tidak muncul bisa
juga muncul berkali-kali (0-n)
ER : a* → a,aa,aaa,...
ER : ab*c → ac, abc, abbc, ....
2 + (ditulis pada posisi
diatas/superscript)
Artinya minimal muncul satu kali
(1-n)
ER : 𝑏+ → b, bb, bbb,...
ER : 𝑎𝑏+ → ab,abb,abbb,...
3 + atau (tanda plus) Artinya dapat dipilih salah satu ER : a b → a, b
Suatu Ekspresi Reguler dapat digambarkan kedalam bentuk Finite State Automata begitu pula
sebaliknya.
Contoh transformasi dari ER(Ekspresi Reguler) Ke Finite State Automata :
No Contoh ER Finite State Automata
1 ER : ab*c
q0a
q1
b
q0q2c
2 ER : 𝑎𝑏+
q0a
q1
b
q0q2b
BAB 5
.HUBUNGAN ANTARA EKSPRESI REGULER DENGAN FINITE STATE AUTOMATA.
TEST .
TEST .
Teori Bahasa dan Otomata 26
No Contoh ER Finite State Automata
3 ER : a b
q0 q0q1a,b
Contoh transformasi dari Finite State Automata ke ER(Ekspresi Reguler) :
No Contoh Finite State Automata ER (Ekspresi Reguler)
1
q0a
q1b
q0q2
c
ER : abc*
2
q0b
q1
c
q0q2c
a
ER: a ∗ b𝑐+
3
q0 q0q1b,c
a
ER : a*(b c)
Teori Bahasa dan Otomata 27
1. Buatlah string yang dapat dibangkitkan dari ER berikut :
a. ER : ab*cd
b. ER : 𝑎𝑏+ cd
c. ER : 𝑎𝑏+ 𝑐𝑑∗ d
d. ER : (a b)ab
2. Gambarkan FSA dari ER berikut :
a. ER : 𝑎𝑏+ 𝑐𝑑∗ d
b. ER : (a b)ab
3. Tuliskan ER dari FSA berikut :
a.
q0
a
aq1q1
b.
q0
0 0
1
1
q1q1
.SOAL LATIHAN.
TEST .
TEST .
Teori Bahasa dan Otomata 28
ATURAN PRODUKSI UNTUK SUATU FINITE STATE AUTOMATA
Sebuah otomata berhingga dapat menspesifikasikan suatu bahasa sebagai himpunan
semua untai yang menggerakannya dari state awal hingga ke state akhir. Masih ingat materi
pada bab 1???
Keterangan :
α : Sebuah symbol variable
β : Maksimal memiliki sebuah symbol variable, yang bila ada terletak dipaling
kanan
Ulasan pada bab 1 :
Suatu bahasa / grammar didefinisikan dengan 4 tupel, yaitu :
BAB 6
.ATURAN PRODUKSI BAHASA REGULER.
TEST .
TEST .
Aturan Produksi pada bahasa regular : α → β ( dibaca α menghasilkan β )
Symbol variable atau disebut juga symbol non-terminal ialah symbol yang masih dapat
diturunkan. Biasanya di definisikan menggunakan huruf besar.
Simbol terminal aialah simbol yang sudah tidak dapat diturunkan kembali. Didefinisikan
menggunakan huruf kecil.
V : himpunan symbol variable/non-terminal
T : himpunan symbol terminal
P : kumpulan aturan produksi
S : symbol awal
Teori Bahasa dan Otomata 29
Ada beberapa hal yang harus diperhatikan ketika anda akan mengkonstruksi suatu
FSA(Finite State Automata) terutama state yang akan menuju final state/ state akhir. Contoh
gambar FSA(Finite State Automata) :
q0 q1 q2 q0q3a aε
b q4
ε
Dari gambar diatas dapat diketahui bahwa mesin FSA(Finite State Automata) tersebut memiliki
inputan ‘a‘ dan ‘b‘ dan akan menjadi simbol terminal pada aturan produksi yang akan dibuat.
Misalnya state awal kita simbolkan dengan S (state awal) yaitu q0. Dari q0 mendapat inputan ‘a’
langsung menuju ke state q1. Aturan produksinya dapat ditulis sbb :
S → aA
Dimana A diidentikan dengan q1 (bagian yang belum terbangkitkan mulai dari state q1). Dari q1
mendapatkan inputan transisi-ε (tanpa menerima input) menuju ke q2. Aturan produksinya
dapat ditulis sbb :
A → B
B diidentikan sebagai q2. Dari q2 memperoleh inputan a ke q3 dan inputan transisi-ε (tanpa
menerima input) menuju ke q4. Aturan produksinya dapat ditulis sbb :
B → a
B → C
Dimana C diidentikan sebagai q4. Dari q4 mendapat inputan inputan b menuju state q1.
C → bA
.MENGKONSTRUKSI ATURAN PRODUKSI DARI SUATU FSA.
TEST .
TEST .
Teori Bahasa dan Otomata 30
Aturan produksi diatas dapat dituliskan kembali sbb :
S → aA
A → B
B → a | C
C → bA
Secara formal tata bahasa yang diperoleh dari mesin FSA(Finite State Automata) dapat
dituliskan sbb :
V = {S, A, B, C}
T = {a,b}
P = { S → aA , A → B, B → a | C, C → bA}
S = S
Jika sebelumnya dari suatu FSA dapat di konstruksi bentuk aturan produksinya, sekarang adalah
kebalikannya. Dari suatu aturan produksi dapat digambarkan FSA-nya. Contoh apabila terdapat
aturan produksi berikut :
S → aS | bA | a
A → cB
B → aS
Gambar FSA dari aturan tersebut adalah sbb :
q0 q1 q2 q0q3b
a
c
a
a
.MENGKONSTRUKSI SUATU FSA DARI SUATU ATURAN PRODUKSI.
TEST .
TEST .
Teori Bahasa dan Otomata 31
1. Diberikan gambar FSA (Finite State Automata) berikut :
q0 q1 q2 q0q3a
b
bε
a
q4
ε
Buatlah aturan produksi untuk gambar FSA(Finite State Automata) diatas !!!
2. Diberikan aturan produksi berikut :
S → baA | B |baB | ε
A → bS | a
B → aS
Buatlah gambar FSA (Finite State Automata) dari aturan produksi tersebut !!!
.SOAL LATIHAN.
TEST .
TEST .
Teori Bahasa dan Otomata 32
FINITE STATE AUTOMATA DENGAN OUTPUT (MESIN MOORE)
Pada mesin Moore suatu output akan berasosiasi dengan state. Mesin Moore dapat
didefinisikan kedalam :
Contoh mesin Moore, missal ingin memperoleh sisa pembagian (Mod) suatu bilangan
dengan 2. Dimana suatu inputan dinyatakan menggunakan bilangan biner. Maka
diperoleh :
Q : {q0,q1}
Σ : {0,1} – karena inputan akan diubah menjadi bilangan biner
S : q0
Δ : {0,1} --- karena kemungkinan sisanya jika tidak 0 berati 1
λ (q0) : 0
λ (q1) : 1
BAB 7
Q : himpunan state
Σ : himpunan symbol input
δ : fungsi transisi
S : state awal
Δ : himpunan output
λ : fungsi output untuk setiap state
Final state dari suatu DFA (Deterministic Finite Automata) dihilangkan, karena keputusan dimunculkan sebagai output.
CATATAN
Teori Bahasa dan Otomata 33
Mesin Moore untuk Mod 2adalah sbb :
q0
0 0
1
1
q1
0 1
Implementasi ke dalam studi kasus :
1) 7 Mod 2 = ?
7 = 111, maka jika di masukan kedalam gambar diatas akan inputan terakhir
akan berhenti di state q1 yang bernilai 1, sehingga dapat ditemukan bahwa
7 Mod 2 = 1
2) 12 Mod 2 = ?
12 = 1100, maka jika di masukan kedalam gambar diatas akan inputan
terakhir akan berhenti di state q0 yang bernilai 0, sehingga dapat ditemukan
bahwa
12 Mod 2 = 0
Teori Bahasa dan Otomata 34
POHON PENURUNAN
Pohon penurunan berguna untuk menggambarkan bagaimana memperoleh suatu string(untai)
dengan cara menurunkan simbol-simbol variabel menjadi simbol-simbol terminal. Simbol
variabel akan diturunkan sampai menjadi simbol terminal seluruhnya.
Contoh:
S → AB
A → aA | a
B → bB | b
Berdasarkan tata bahasa bebas konteks diatas maka dapat digambarkan pohon penurunan
untuk memperoleh untai ‘aabbb’ sebagai berikut :
S
A B
a A b B
b Ba
b
BAB 8
Teori Bahasa dan Otomata 35
Proses penurunan atau parsing dapat dilakukan dengan cara berikut :
1. Penurunan terkiri (leftmost derivation) : symbol variable terkiri yang diperluas terlebih
dahulu
2. Penurunan terkanan (rightmost derivation) : symbol variable terkanan yang diperluas
terlebih dahulu
Contoh :
S → AB
A → aA | a
B → bB | b
Untai yang ingin diperoleh : ‘aabbb’
Penyelesaian :
1. Penurunan terkiri (leftmost derivation)
S → AB → aAB → aaB → aabB → aabbB → aabbb
2. Penurunan terkanan (rightmost derivation)
S → AB → AbB →AbbB → Abbb → aAbbb →aabbb
Dalam pohon penurunan ada yang disebut Ambiguitas. Ambiguitas terjadi apabila terdapat
lebih dari satu pohon penurunan yang berbeda tetapi untuk memperoleh untai yang sama.
Contoh :
S → A | B
A → ab
B → ab
Untuk memperoleh untai yang sama yaitu ‘ab’, dapat digambarkan dua pohon penurunan yang
berbeda tetapi untuk mencapai untai yang sama yaitu ‘ab’.
S
a
A
b
atau S
a
B
b
Teori Bahasa dan Otomata 36
1. Gambarkan pohon penurunan untuk memperoleh string ‘bbabbaab’ dari tata bahasa
bebas konteks berikut :
S → AA
A → AAA |a |bA |Ab
2. Buktikan bahwa tata bahasa bebas konteks berikut ambigu :
S → SaS | SbS |c
Untuk untai : ‘cacbc’
.SOAL LATIHAN.
TEST .
TEST .
Teori Bahasa dan Otomata 37
PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS
Penyederhanaan tata bahasa bebas konteks bertujuan untuk melakukan pembatasan sehingga
pohon penurunan tidak memiliki aturan produksi yang tidak berarti. Contoh :
S → A
A → B
B → C
C → D
D → a | A
Berdasarkan aturan produksi diatas terlihat beberapa aturan yang sebetulnya tidak perlu sebab
akhirnya tetap berujung pada S → a, aturan produksi D → A juga menyebabkan kerumitan
karena akan kembali lagi ke atas A → B. Tahap-tahap penyederhanaan tata bahasa bebas
konteks :
1. Penghilangan produksi ε
2. Penghilangan produksi unit
3. Penghilangan produksi useless(tidak berguna)
Produksi ε adalah produksi dalam bentuk :
α →ε
atau dapat disebut produksi kosong (empty). Penghilangan produksi ε dapat dilakukan dengan
mengganti produksi yang mengandung ε. Contoh kasus :
S → aBcd
B → ab|ε
BAB 9
.PENGHILANGAN PRODUKSI ε.
TEST .
TEST .
Teori Bahasa dan Otomata 38
Pada kasus diatas B bernilai nullable, maka penyederhanaannya menjadi :
S → aBcd | acd
B → ab
Produksi unit adalah suatu produksi dimana ruas sebelah kiri dan kanan aturan produksi hanya
berupa sebuah simbol variabel, seperti A → B. Adanya kasus seperti itu membuat tata bahasa
memiliki kerumitan tertentu. Contoh :
S → Sa
S → A
A → B
A → bb
B → cd
Aturan produksi diatas dapat dihilangkan produksi unitnya yaitu dengan cara mengganti aturan
produksi yang mengandung produksi unit.
S → Sa
S → bb |cd
A → bb|cd
B → cd
Produksi useless merupakan suatu aturan produksi yang tidak berguna atau tidak terpakai,
sehingga dapat dihilangkan. Produksi tersebut jika tidak dihilangkan tidak akan pernah terpakai
karena tidak dapat mengalami penurunan apapun atau tidak akan mengalami penurunan
hingga terminal. Contoh :
S → aSa | Abc | Bcd
A → aAb
B → BBB | a
.PENGHILANGAN PRODUKSI USELESS.
TEST .
TEST .
.PENGHILANGAN PRODUKSI UNIT.
TEST .
TEST .
Mengandung
produksi Unit
Teori Bahasa dan Otomata 39
Berdasarkan aturan produksi diatas maka ada aturan produksi yang dapat dihilangkan yaitu :
S → Abc
A → aAb
Sebab penurunan A tidak akan menuju symbol terminal, sehingga apabila tidak dihilangkan
akan mengalami kerumitan tertentu. Sehingga berdasarkan aturan produksi tersebut dapat
disederhanakan menggunakan penghilangan produksi useless menjadi :
S → aSa | Bcd
B → BBB | a
Penyederhanaan tata bahasa bebas konteks harus melewati ketiga tahapan tersebut. Tidak ada
yang boleh terlewatkan, walaupun nantinya bisa jadi dari suatu aturan produksi ada yang tidak
mengandung produksi useless, ε ataupun unit.
Teori Bahasa dan Otomata 40
1. Hilangkan semua aturan produksi useless dari tata bahasa bebas konteks berikut :
S → AD |BC
A → b
B → bD | a
D → DB |AD
2. Hilangkan semua aturan produksi ε dari tata bahasa bebas konteks berikut :
S → C
C → dC | ε
D → bC
3. Hilangkan semua aturan produksi unit dari tata bahasa bebas konteks berikut :
S → Aa | B
B → A |bb
A → a |bc|B
4. Sederhanakanlah tata bahasa bebas konteks berikut menggunakan aturan produksi ε,
produksi unit dan produksi useless :
S → AA| C |bd
A → Bb | ε
B → AB |d
C → de
.SOAL LATIHAN.
TEST .
TEST .