TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D...

28
PERTEMUAN 12 TEORI BAHASA DAN OTOMATA [TBO]

Transcript of TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D...

Page 1: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

PERTEMUAN 12

TEORI BAHASA DAN OTOMATA

[TBO]

Page 2: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Tata Bahasa Bebas Konteks Bila pada tata bahasa regular terdapat pembatasan pada

ruas kanan atau hasil produksinya, maka pada tatabahasa bebas konteks / context free grammar,selanjutnya disebut CFG

Tidak terdapat pembatasan hasil produksinya. Padaaturan produksi:

sebuah nonterminal finite string dari terminaldan atau nonterminal

Batasannya hanyalah ruas kiri () adalah sebuah symbolvariabel

Pada ruas kanan () bisa terdapat simbol terminal saja,nonterminal saja, kombinasi terminal dan nonterminal,atau empty string

Page 3: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

PENYEDERHANAAN CFG [1]

Penyederhanaan tata bahasa bebas konteks bertujuanuntuk melakukan pembatasan sehingga tidakmenghasilkan pohon penurunan yang memiliki kerumitanyang tak perlu atau aturan produksi yang tak berarti.

Misalkan terdapat tata bahasa bebas konteks:

SAB a

Aa

Kelemahan tata bahasa bebas konteks di atas, aturanproduksi SAB tidak berarti karena B tidak memiliki

penurunan.

Page 4: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

PENYEDERHANAAN CFG [2]

Untuk tata bahasa bebas konteks berikut :

SA

AB

BC

CD

Da A

Memiliki kelemahan terlalu panjang jalannya padahalberujung pada Sa

Produksi DA juga menyebabkan kerumitan, karenamembuat produksi yang berulang

Page 5: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Cara Penyederhanaan

Suatu tata bahasa bebas konteks dapatdisederhanakan dengan melakukan :

1. Penghilangan produksi useless

2. Penghilangan produksi unit

3. Penghilangan produksi (empty)

Page 6: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Penghilangan Produksi Useless

Produksi useless didefinisikan sebagai:

Produksi yang memuat symbol variabel yang tidakmemiliki penurunan yang akan menghasilkan terminal-terminal seluruhnya (sebut saja sebagai ‘menujuterminal’)

Produksi ini tidak berguna karena bila diturunkan tidakakan pernah selesai (masih ada symbol variabel yangtersisa)

Produksi yang tidak akan pernah dicapai denganpenurunan apapun dari symbol awal, sehingga produksiitu redundant (berlebih)

Page 7: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Langkah PenyederhanaanProduksi Useless

Hilangkan aturan yang tidak menuju terminal.

Hapus anggota S yang mengandung simbolhimpunan ke terminal yang tidak berguna

Hilangkan Redundant (anggota yang tidak ada di Sdan sebaliknya)

Page 8: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh 1

Contoh, terdapat tata bahasa bebas konteks :

S aSa Abd Bde

A Ada

B BBB a

1. Simbol variabel A tidak memiliki penurunan yang menujuterminal sehingga bisa dihilangkan.

2. Konsekuensi no (1), aturan produksi S Abd tidak memilikipenurunan

Maka tata bahasa bebas konteks setelah disederhanakanmenjadi :

S aSa Bde

B BBB a

Page 9: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh 2 (1)

Contoh, terdapat tata bahasa bebas konteks :

S Aa B

A ab D

B b E

C bb

E aEa

1. Aturan produksi AD, symbol variabel D tidak memiliki penurunan

2. Aturan produksi Cbb, bila kita coba melakukan penurunan dari

symbol awal S, dengan jalan mana pun tidak akan pernah mencapai C

3. Simbol variabel E tidak memiliki aturan produksi yang menuju terminal(EaEa satu-satunya aturan produksi dari E)

4. Konsekuensi no (3) Aturan produksi BE, symbol variabel E tidak

memiliki penurunan

Page 10: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh 2 (2)

Maka dari tata bahasa bebas konteks sebelumnya, produksi yang useless :

ADCbbEaEaBE

Maka tata bahasa bebas konteks setelah disederhanakanmenjadi :

SAa BAabBb

Page 11: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh 3 (1)

Contoh tata bahasa bebas konteks :

SaAb cEB

AdBE eeC

Bff

Cae

Dh

Perhatikan :

1. Aturan produksi ScEB, AdBE (E tidak memilikipenurunan)

2. Aturan produksi Dh, redundant

Page 12: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh 3 (2)

Sisa aturan produksi

SaAb

AeeC

Bff

Cae

Bisa dilihat sekarang Bff juga redundant sehinggahasil penyederhanaan menjadi :

SaAb

AeeC

Cae

Page 13: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Penghilangan Produksi Unit

Produksi unit adalah produksi dimana ruas kiri danruas kanan aturan produksi hanya berupa satusymbol variabel, misalkan A B, C D.

Keberadaan produksi unit membuat tata bahasamemiliki kerumitan yang tak perlu atau menambahpanjang penurunan.

Penyederhanaan ini dilakukan dengan melakukanpengantian aturan produksi unit.

Page 14: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Langkah PenyederhanaanProduksi Unit

Jabarkan masing-masing himpunan

Sederhanakan ruas kiri dan kanan yang hanyaberupa variabel simbol sama

Hapus simbol variabel yang tidak berguna / tidakmempunyai turunan

Page 15: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh 1 (1)

Contoh tata bahasa bebas konteks :

SSb

SC

CD

Cef

Ddd

Dilakukan penggantian berurutan mulai dari aturanproduksi yang paling dekat menuju ke penurunanterminal-terminal (‘=>’ dibaca menjadi) :

CD => Cdd

SC => Sdd ef

Page 16: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh 1 (2)

Sehingga aturan produksi setelah penyederhanaan :

SSb

Sdd ef

Cdd

Cef

Ddd

Page 17: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh 2 (1) Contoh tata bahasa bebas konteks :

SASAaABBCBbCDCabDb

Penggantian yang dilakukan :1. CD => Cb2. BC =>Bb ab, karena Bb sudah ada, maka kita cukup

tuliskan Bab3. AB => Aab b4. SA => Sab b

Page 18: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh 2 (2)

Sehingga aturan produksi setelah penyederhanaan :

Sab b

SAa

Aab b

Bab

Bb

Cb

Cab

Db

Page 19: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Penghilangan Produksi

Produksi adalah produksi dalam bentuk

atau bisa dianggap sebagai produksi kosong.

Penghilangan produksi dilakukan denganmelakukan penggantian produksi yang memuatvariabel yang bisa menuju produksi , atau biasadisebut nullable.

Page 20: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Langkah PenyederhanaanProduksi

Hilangkan simbol yang terdapat empty ( atau Є)dalam himpunan produksi

Simbol variabel tidak di hapus jika terdapat cabangterminal / variabel yang saling berhubungan

Buat himpunan dengan simbol yang dihilangkan danyang tidak

Page 21: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh 1

Prinsip penggantiannya bisa dilihat kasus berikut:

SbcAd

A

Pada kasus di atas A nullable

A satu-satunya produksi dari A, maka variabel A

bisa ditiadakan

Hasil penyederhanaan tata bahasa bebas konteksmenjadi :

Sbcd

Page 22: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh 2

Tetapi bila kasusnya :

SbcAd

Abd

Pada kasus di atas A nullable, tapi A bukan satu-satunya produksi dari A, maka hasil penyederhanaan :

SbcAd bcd

Abd

Perhatikan :

Satu-satunya perkecualian produksi yang tidakdihapus, yaitu produksi yang dihasilkan olehsymbol awal.

Page 23: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Penyederhanaan Bersama (1)

Pada prakteknya ketiga penyederhanaan tersebut(penghilangan useless, unit, ) dilakukan bersama padasuatu tata bahasa bebas konteks,

Yang nantinya menyiapkan tata bahasa bebas kontekstersebut untuk diubah ke dalam suatu bentuk normalChomsky.

Hal yang harus diperhatian adalah penghilangan suatutipe produksi bisa menghasilkan produksi tipe yang lain ,hal ini didasari kenyataan bahwa penghilangan produksi bisa menghasilkan produksi unit.

Perhatikan juga bahwa penghilangan produksi unit tidakmenghasilkan produksi useless

Dan penghilangan produksi useless tidak menghasilkanproduksi unit maupun produksi .

Page 24: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Penyederhanaan Bersama (2) Maka penghapusan semua produksi yang tidak

diinginkan tersebut dengan melakukan urutan sebagaiberikut :

1. Hilangkan produksi

2. Hilangkan produksi unit

3. Hilangkan produksi useless

Bisa dilihat alur penyederhanaan tata bahasa bebaskonteks pada gambar berikut ini :

CFG

Penghilang-an

produksi

Penghilang -an

produksi unit

CFG ygsudah

disederhanakan

Penghilang-an

produksiuseless

Page 25: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh (1)

Hasil yang diperoleh adalah tata bahasa yang sudahbebas dari ketiga jenis produksi tersebut.

Untuk melakukan ketiga penyederhanaan tersebutpada aturan produksi berikut :

S AA C bd

A Bb

B AB d

C de

Page 26: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh (2)

Pertama-tama kita lakukan penghilangan produksi , sehingga aturan produksi menjadi :

S A AA C bd

A Bb

B B AB d

C de

Page 27: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh (3)

Nampak bahwa penghilangan produksi berpotensiuntuk menghasilkan produksi unit yang baru yangsebelumnya tidak ada. Selanjutnya dilakukanpenghilangan produksi unit menjadi :

S Bb AA de bd

A Bb

B AB d

C de

Bisa dilihat, penghilangan produksi unit bisamenghasilkan produksi useless.

Page 28: TEORI BAHASA DAN OTOMATA - kelasqta.files.wordpress.com · Aturan produksi A D, symbol variabel D tidak memiliki penurunan 2. Aturan produksi C bb, bila kita coba melakukan penurunan

Contoh (4)

Terakhir dilakukan penghilangan produksi useless :

S Bb AA de bd

A Bb

B AB d

Bisa diperiksa, hasil akhir aturan produksi tidak lagimemiliki produksi , produksi unit maupun produksiuseless.