Teori-Bahasa-dan-Otomata Lecture #8 Ekspresi dan Bahasa Regular
Ekspresi Reguler Sebuah bahasa dinyatakan memiliki ekspresi regular jika terdapat Finite State Automata (FSA) yang dapat menerimanya. Bahasa-bahasa yang diterima oleh FSA bisa dinyatakan secara sederhana dengan ekspresi regular (regular expression)
Notasi Ekspresi Reguler ‘*’ bisa tidak muncul, bisa juga muncul berhingga kali ER : ab*cc, 010*, a*d ‘+’ berarti minimal muncul satu kali + atau U union . (titik) konkatenansi Biasanya tanpa ditulis titiknya, misal ab, berarti sama dengan a.b
Sifat Komutatif & Asosiatif yang berlaku pada ER A + B = B + A Hukum ini (hukum komutatif untuk gabungan) menyatakan bahwa kita dapat melakukan gabungan dua bahasa tersebut, baik dengan urutan seperti di sebelah kiri ‘=’ maupun seperti di sebelah kanan ‘=’
Sifat Komutatif & Asosiatif yang berlaku pada ER (A + B) + C = A + (B + C) Hukum ini (hukum asosiatif untuk gabungan) menyatakan bahwa kita dapat melakukan gabungan pada tiga bahasa, baik dengan mengambil gabungan dua bahasa pertama terlebih dahulu maupun dengan mengambil gabungan dua bahasa terakhir
Sifat Asosiatif & Komutatif yang berlaku pada ER (AB) C = A (BC) Hukum ini (hukum asosiatif untuk penyambungan/ concatenation) menyatakan bahwa kita dapat merenteng tiga bahasa dengan menyambung dua bahasa pertama terlebih dahulu atau dua bahasa terakhir terlebih dahulu.
Hukum : AB = BA tidak berlaku dalam ekspresi reguler Contoh: ekspresi reguler 01 dan 10 Ekspresi tersebut berturut-turut melambangkan bahasa {01} dan {10}. ekspresi 0 untuk A dan 1 untuk B tidak dapat disubstitusi. Karena bahasanya berbeda, maka hukum AB=BA tidak berlaku.
Hukum Aljabar Ekspresi Reguler Identitas dan Anihilator Identitas suatu operator Nilai yang sedemikian sehingga ketika dikenakan pada identitas dan suatu nilai lain, maka hasilnya nilai lain lagi Contoh: 0 adalah identitas untuk penjumlahan, karena 0 + x = x + 0 = x 1 adalah identitas untuk perkalian, karena 1 x x = x x 1 = x
Anihilator untuk suatu operator Nilai yang sedemikian sehingga ketika operator tersebut dikenakan pada anihilator dan suatu nilai lain, hasilnya adalah anihilator Contoh: 0 adalah anihilator untuk perkalian, karena 0 x x = x x 0 = 0
Hukum Identitas dan Anihilator yang berlaku pada ER θ + L = L + θ = L Hukum ini menegaskan bahwa θ adalah identitas untuk operasi gabungan Є L = L Є = L Hukum ini menegaskan bahwa Є adalah identitas untuk operasi concatenation θ L = L θ = θ Hukum ini menegaskan bahwa θ adalah anihilator untuk operasi concatenation
Hukum Aljabar Ekspresi Reguler Hukum Distributif Hukum distributif melibatkan dua operator, dan menyatakan bahwa salah satu operator dapat dipaksa untuk dikenakan pada tiap-tiap argumen operator lain secara individual Contoh: hukum distributif perkalian atas penjumlahan x x ( y + z ) = ( x x y ) + ( x x z )
Hukum Distributif yang berlaku pada ER A ( M + N) = AM + AN Hukum ini adalah hukum distributif kiri concatenation terhadap gabungan (union) (M + N)A = MA + NA Hukum ini adalah hukum distributif kanan concatenation terhadap gabungan (union)
Hukum Aljabar Ekspresi Reguler Hukum Idempoten Suatu operator dikatakan idempoten jika hasil penerapannya pada dua nilai yang sama sebagai argumen adalah nilai itu sendiri Operator aritmetika biasa tidak bersifat idempoten; x + x ≠ x dan x x x ≠ x
Contoh Ekspresi Regular ER : ab*cc Maka b bisa tidak muncul atau muncul sejumlah berhingga kali Contoh string yang bisa dibangkitkan: abcc, acc, abbcc, abbbcc, dan lainnya. ER : 010* Maka 0 bisa tidak muncul atau muncul sejumlah berhingga kali Contoh string yang bisa dibangkitkan: 01, 010, 0100, 01000, dan lainnya.
Contoh Ekspresi Regular ER : Maka a minimal muncul satu kali Contoh string yang bisa dibangkitkan: ad, aad, aaad, aaaad dan lainnya. ER : a* U b* Contoh string yang bisa dibangkitkan: a, b, aa, bb dan lainnya. ER : 01* + 0 Contoh string yang bisa dibangkitkan: 0, 01, 011 dan lainnya.
Hubungan ER dengan FSA Untuk setiap ekspresi regular ada satu Nondeterministic Finite Automata dengan transisi (NFA -move) yang ekivalen. Sementara untuk Deterministic Finite Automata ada satu ekspresi regular dari bahasa yang diterima oleh Deterministic Finite Automata. Sederhananya kita bisa membuat suatu Nondeterministic Finite Automata -move dari suatu ekspresi regular . Bisa dilihat contohnya pada gambar berikut. Yang perlu diperhatikan disitu, state akhir akan menandakan apakah suatu input diterima atau tidak
Contoh: ER : ab ER : a*b ER : a U b FSA untuk ER tersebut?
Input yang menuju final state (q2) adalah 0, atau 10* Pada state q2, menerima input 1 dalam jumlah berapapun (1*) akan tetap di q2 MAKA Bisa dikatakan mesin itu menerima 01* atau 10*11* ER : 01* U 10*11*
Menentukan Pola dalam Teks Berkaitan dengan penggunaan otomata untuk pencarian sebuah kata dalam file atau penyimpanan yang besar seperti Web
Ekspresi lengkap untuk alamat yang kita buat adalah: ‘jalan | jl | jln \. | Perum | Perumahan\. [A-Z] [a-z]* ( [A-Z] [a-z])*)* [0-9]+ [A-Z]?’ ‘blank’ digunakan layaknya spasi Tanda petik digunakan untuk mencegah agar ekspresi tersebut tidak seperti beberapa ekspresi yang terpisahkan karena penggunaan ‘blank’
PR Tentukan FSA dari ER berikut: ER : 0 (1 U 0)* ER : 01*0 ER : 0*10* ER : a* ER : a(ba)* ER : (ab)*
PR Tentukan ER untuk Mesin FSA berikut: