Tata Bahasa Reguler DASAR TEORI

17 { ab i | i ≥ 0 }adalah regular. Notasi dari ekspresi regular yaitu sebagai berikut: ‘’, ‘ + ’, ‘+’, ‘ ∪’, ‘.’ • yaitu karakter asterisk, berarti bisa tidak muncul, bisa juga muncul berhingga kali 0-n • + pada posisi superscript di atas berarti minimal muncul satu kali 1-n • + atau ∪ berarti union • . titik berarti konkatenasi, biasanya titik bisa dihilangkan, misal: ab bermakna sama seperti a.b Telah disepakati bahwa urutan untuk operator-operator , ∪ dan . adalah pertama, . berikutnya dan ∪ yang terakhir. Contoh ekspresi regular selanjutnya disingkat sebagai ER: ER: abcc Contoh string yang dibangkitkan: abcc, abbcc, abbbcc, abbbbcc, acc b bisa tidak muncul atau muncul sejumlah berhingga kali ER: 010 Contoh string yang dibangkitkan: 01, 010, 0100, 01000 jumlah 0 di ujung bisa tidak muncul, bisa muncul berhingga kali ER: a + d Contoh string yang dibangkitkan: ad, aad, aaad a minimal muncul sekali ER: a ∪ b Contoh string yang dibangkitkan: a, b, aa, bb, aaa, bbb, aaaaa, bbbb 18 ER: a ∪ b Contoh string yang dibangkitkan: a, b ER: a ∪ b Contoh string yang dibangkitkan: a, b, ab, ba, abb, bba, aaaa, bbbb untai yang memuat a atau b ER: 01 0 Contoh string yang dibangkitkan: 0, 01, 011, 0111, 01111 string yang berawalan dengan 0, dan selanjutnya boleh diikuti deretan1 B.2. Aturan Produksi Bahasa Reguler Sebuah otomata berhingga mendefinisikan sebuah bahasa sebagai himpunan semua untai yang menggerakkan dari state awal ke salah satu state yang diterima himpunan state akhir. Sebagai contoh, pandang otomata berhingga yang diterima oleh transisi dalam gambar dibawah ini. a ε b a b ε ε b Q Q 1 Q 3 Q 2 Q 4 Q 4 qq Otomata berhingga diatas menerima bahasa regular aa ∪ bb. Bilamana sebuah lintasan diambil dari kedudukan awal ke yang lain, “keluaran” simbol itu aa 2 b dengan menggerakkan dari kedudukan Q ke Q 1 ke Q 2 ke Q 2 ke Q 2 ke Q 4. 19 Untai yang dipakai dalam bahasa regular aa ∪ bb terdiri dari sebuah a yang diikuti oleh suatu “bagian akhir”. Misal E dianggap bagian akhir, secara simbolis observasi ini menyajikan S → aE. Anak panah → bisa dibaca seperti “dapat ” atau “terdiri dari”. Bagian akhir dari sebuah untai demikian terdiri dari satu dari dua susunan para a dan para b. Jadi bisa ditulis E → A dan E → B untuk menunjukkan kemungkinan ganda untuk E. Dua susunan dari para a dan para b bisa dinyatakan sebagai A → aA bersama dengan A → b untuk menunjukkan sebuah untai dari para a diikuti oleh sebuah b atau sebagai B → bB bersama dengan B → b, yang menunjukkan sebuah untai para b diikuti oleh b yang lain. Ekspresi-ekspresi tersebut dapat diringkas sebagai berikut: S → aE E → A E → B A → b A → aA B → b B → bB Ekspresi-ekspresi tersebut dapat dipandang sebagai aturan-aturan pengganti sewaktu membangkitkan untai-untai. Simbol di sebelah kiri anak panah bisa diganti oleh untai di sebelah kanan. Sebagai contoh, untai aab bisa dihasilkan melalui permulaan S, mengganti S dengan aE, mengganti E dengan aA, dan akhirnya A dengan b. Diperkenalkan simbol | yang di baca “atau”. Dengan menggunakan simbol ini, dua aturan E → A dan E → B dapat dikombinasikan sebagai E → A | B, demikiani juga aturan yang lain. Koleksi aturan sebelumnya untuk PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20 membangkitkan untai-untai tadi kemungkinan bisa ditulis kembali sebagai berikut: 1. S → aE 2. E → A | B 3. A → aA | b 4. B → bB | b Untai a 3 b bisa dibangkitkan dari S dengan pertama kali menerapkan aturan 1 untuk mandapatkan aE, kemudian aturan 2 untuk mendapatkan aA, dan kemudian aturan 3 untuk mendapatkan aaA dan aaaA; akhirnya bagian kedua dari aturan 3 dapat diterapkan untuk mendapatkan aaab. Uraian dari proses pembangkitan ini dapat ditulis seperti berikut: S = aE = aA = aaA = aaaA = aaab Untuk anak panah ganda =Dibaca sebagai “menurunkan”, “menghasilkan”, atau “membangkitkan”. Definisi Kelly, Dean. h 81 Sebuah tata bahasa regular G didefinisikan dengan 4-tupel G = ∑, N, S, P, dimana: ∑ = sebuah abjad N = sebuah koleksi simbol nonterminal S = suatu nonterminal tertentu yang dinamakan simbol awal start simbol P = sebuah koleksi aturan-aturan pengganti, dinamakan produksi- produksi, yang berbentuk A → w, untuk A Є N dan w adalah suatu untai atas ∑ ∪ N yang memenuhi: 21 1. w memuat paling banyak satu nonterminal 2. jika w memuat sebuah nonterminal, maka ia muncul sebagai simbol terkanan dari w. Bahasa yang dihasilkan oleh tata bahasa regular G dinotasikan L G. Contoh: Sebuah tata bahasa regular G = ∑, N, S, P, untuk ∑ = { a, b } N = { S, A } P : S → bA A → aaA| b | ε L G memuat semua untai yang berbentuk ba 2n b dan ba 2n . yaitu L G = b a 2 b ∪ ε.

C. Tata Bahasa Bebas Konteks

C.1. Bahasa-Bahasa Bebas Konteks Definisi 3.3.1 Kelly, Dean. Otomata Dan Bahasa-Bahasa Formal. h.86 Sebuah tata bahasa bebas konteks atau Context-Free Grammer CFG adalah sebuah 4-tupel, G = N, ∑, S, P Untuk: N adalah sebuah koleksi berhingga dari nonterminal-nonterminal ∑ adalah sebuah abjad juga dikenal sebagai sebuah himpunan dari terminal-terminal S adalah sebuah nonterminal spesifik yang dinamakan simbol permulaan P adalah sebuah himpunan dari produksi-produksi PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22 Bahasa yang dihasilkan oleh CFG G dinotasikan L G dan dinamakan bahasa bebas konteks Context-Free Language disingkat CFL. Karena suatu tata bahasa regular adalah sebuah CFG, didapatkan juga bahwa suatu tata bahasa regular adalah sebuah CFL. Seperti sebuah tata bahasa regular, sebuah CFG adalah sebuah cara yang menunjukkan bagaimana menghasilkan untai-untai dalam sebuah bahasa. Di CFG juga menggunakan notasi = untuk menunjukkan aksi dari generasi itu sebagai lawan pada →, yang merupakan bagian dari sebuah aturan produksi. Ketika menurunkan sebuah untai, nonterminal-nonterminal itu masih mewakili bagian- bagian tak terturunkan dari untai itu. Dalam hal tata bahasa-tata bahasa regular, bagian tak terturunkan itu selalu terjadi pada salah satu ujung. Dalam CFG yang tidak merupakan tata bahasa-tata bahasa regular bisa terdapat lebih banyak dari satu bagian tak terturunkan dan bisa terjadi dimana saja dalam untai itu. Ketika penurunan itu telah lengkap, semua bagian tak terturunkan telah diganti oleh untai-untai mungkin kosong dari simbol-simbol terminal. Misal CFG yang ditentukan oleh: S → aSb | ε Terdapat bahasa-bahasa bebas konteks yang bukan bahasa-bahasa regular. Artinya koleksi bahasa-bahasa bebas konteks sepatutnya memuat koleksi bahasa-bahasa regular. Dalam generalisasi ke tata bahasa-tata bahasa bebas konteks, semua pembatasan pada ruas kanan dari aturan-aturan produksi dihapus, dengan mengizinkan ruas kanan dari produksi itu dibentuk dari suatu untai atas N ∪ ∑. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 23 Satu-satunya tempat yang tersisa untuk generalisasi pada ruas kiri dari aturan- aturan produksi itu. Tata bahasa frasa-tersruktur phrase-structured grammer adalah salah satu tata bahasa yang ruas kiri aturan-aturan produksinya itu bisa dibentuk dari suatu untai tak kosong atas N ∪ ∑, yang memuat suatu nonterminal. Jadi untuk sebuah tata bahasa frasa-terstruktur, koleksi dari aturan-aturan produksi P memenuhi: P ⊆ N ∪ ∑ N N ∪ ∑ × N ∪ ∑ Tata bahasa-tata bahasa frasa tersruktur juga dikenal sebagai tata bahasa- tata bahasa tipe 0 atau tak dibatasi. Istilah bebas konteks, apabila diterapkan pada tata bahasa-tata bahasa mengingatkan akan adanya tata bahasa-tata bahasa yang terhadapnya konteks bersifat sensitif. Tata bahasa-tata bahasa konteks sensitif context-sensitive grammer adalah tata bahasa-tata bahasa frasa terstruktur yang disini dibatasi oleh produksi-produksi α → β sedemikian sehingga | α | → | β |. Terdapat sebuah bentuk normal untuk tata bahasa-tata bahasa ini yang setiap produksinya berbentuk α 1 A α 2 → α 1 βα 2 dengan β ≠ ε. Produksi-produksi demikian mengizinkan penggantian nonterminal A dengan untai β hanya bila A terjadi dalam “konteks” dari α 1 dan α 2. Tata bahasa-tata bahasa konteks sensitif tidak dapat menurunkan bahasa yang sama banyak dengan tata bahasa-tata bahasa frasa terstruktur, tetapi tata bahasa-tata bahasa konteks sensitif mengizinkan terjadinya penurunan-penurunan didalam cara yang dapat diduga. Walaupun demikian, perhatikan bahwa karena | S | = 1 dan karena | ε | = 0, tidaklah mungkin untuk menurunkan untai kosong