• Tidak ada hasil yang ditemukan

Teori Bahasa dan Otomata 1

N/A
N/A
Protected

Academic year: 2021

Membagikan "Teori Bahasa dan Otomata 1"

Copied!
40
0
0

Teks penuh

(1)
(2)

Teori Bahasa dan Otomata 2

KATA PENGANTAR

Teori Bahasa dam Otomata merupakan matakuliah wajib yang harus diambil oleh seluruh mahasiswa jurusan Teknik Indonesia di lingkungan Sekolah Tinggi Teknologi Indonesia. Matakuliah ini nantinya akan menjadi matakuliah prasyarat ketika akan mengambil matakuliah teknik kompilasi.

Penulis mencoba menulis sesederhana mungkin dengan tujuan agar pembaca mudah mengerti atau memahami seluruh bahasan materi dalam modul teori bahasa dan otomata ini. Teori bahasa dan otomata dapat dikatakan sebagai bagian dari ilmu informatika klasik. Dalam modul ini akan banyak studi kasus yang diharapkan dapat membantu pembaca untuk memahami konsep yang dibahas dalam materi dalam bahasa dan otomata.

Penulis menyadari masih terdapat kekurangan dalam penulisan modul ini. Penulis ingin menyampaikan ucapkan terimakasih kepada :

1. Bapak Jajang Kusnendar, MT yang telah memberikan perkuliahan teori bahasa dan otomata ketika penulis menempuh program sarjana pada Sekolah Tinggi Ilmu Manajemen dan Komputer Bandung

2. Sekolah Tinggi teknologi Indonesia Tanjungpinang yang bersedia mencetak/ memperbanyak modul ini

3. Pihak-pihak yang tidak dapat disebutkan satu persatu yang telah membantu dalam pembuatan modul ini

Saran dan kritik dari pembaca sangat penulis tunggu dan dapat dikirm melalui e-mail penulis :

dwi.nurulhuda@yahoo.com

Akhir kata, semoga modul ini dapat bermanfaat bagi para pembaca. Khususnya pembaca yang sedang mengambil matakuliah teori bahasa dan otomata. Selamat belajar.

Tanjungpinang, 25 Juni 2014

(3)

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

(4)

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 :

(5)

Teori Bahasa dan Otomata 5 q0 d q1 e q2 n q3 q4 q11 t y q6 q5 q4 q8 g a n q4 q7 q9 q10 i 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

(6)

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

(7)

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

(8)

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 q1 q1

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

(9)

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 q1 q1

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}

(10)

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 .

(11)

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}

(12)

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 .

(13)

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 a

q1

q0 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.

(14)

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 .

(15)

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,1 q1 q1

BAB 3

(16)

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

(17)

Teori Bahasa dan Otomata 17 4. Gambar Deterministic Finite Automata :

q0 0,1 0,1 q1 q1 { } q0 {q0,q1} 0 0 1 1

(18)

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 .

(19)

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 .

(20)

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 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 .

(21)

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))

(22)

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}

(23)

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

(24)

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 .

(25)

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 .

(26)

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)

(27)

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 .

(28)

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

(29)

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 .

(30)

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 .

(31)

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 .

(32)

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.

(33)

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

(34)

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

(35)

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

(36)

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 .

(37)

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 .

(38)

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

(39)

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.

(40)

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 .

Gambar

Gambar 1.1 Mesin Otomata Penerima Input Bahasa Inggris
Table 2.0 Contoh Tata Bahasa Berdasarkan Penggolongan Noam Chomsky
Gambar 2.1 Contoh Penerapan FSA  Apabila dinyatakan menggunakan symbol, maka :
Gambar 2.2 DFA Mesin 1
+2

Referensi

Garis besar

Dokumen terkait

Penyederhanaan tata bahasa bebas konteks bertujuan untuk melakukan pembatasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tidak perlu atau aturan

• Sentensial adalah string yang tersusun atas simbol terminal atau campuran keduanya. • Kalimat adalah string yang tersusun atas merupakan kasus khusus

 ProperSubstring string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol- simbol paling depan dan/atau simbol-simbol paling belakang

 ProperSubstring string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol-simbol paling depan dan/atau simbol- simbol

Tujuan dari penelitian ini adalah menerapkan konsep Finite State Automata (FSA) pada aplikasi simulasi mesin pembuat minuman kopi otomatis dan menghasilkan suatu

Penelitian ini dilakukan untuk memetakan posisi pemain dan alur Strategi Futsal menggunakan Finite State Automata (FSA) dengan konsep Non Deterministic Finite State

Penelitian ini dilakukan untuk memetakan posisi pemain dan alur Strategi Futsal menggunakan Finite State Automata (FSA) dengan konsep Non Deterministic Finite State Automata

Finite State Automata (FSA) dengan model Non Deterministic Finite State Automata (NDFA), dimana dari gejala-gejala yang ada akan menghasilkan suatu simpulan hasil