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 q0 a q1 b q0 q2 c 2 ER : 𝑎𝑏+ q0 a q1 b q0 q2 b
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 a,b q0q1
Contoh transformasi dari Finite State Automata ke ER(Ekspresi Reguler) : No Contoh Finite State Automata ER (Ekspresi Reguler)
1 q0 a q1 b q0q2 c ER : abc* 2 q0 b q1 c q0 q2 c a ER: a ∗ b𝑐+ 3 q0 b,c q0q1 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 a q1 q1 b. q0 0 0 1 1 q1 q1
.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 a q1 ε q2 a q0q3
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 b q1 q2 q0q3
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 a q1 q2 q0q3 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.
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
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 B a 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
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