TEORI GRAF DAN OTOMATA PROGRAM STUDI TEKNIK INFORMATIKA

  • Slides: 32
Download presentation
TEORI GRAF DAN OTOMATA PROGRAM STUDI TEKNIK INFORMATIKA STIMIK AMIKOM PURWOKERTO REGULAR EXPRESSION BAGUS

TEORI GRAF DAN OTOMATA PROGRAM STUDI TEKNIK INFORMATIKA STIMIK AMIKOM PURWOKERTO REGULAR EXPRESSION BAGUS ADHI KUSUMA, S. T. , M. Eng.

Ekspresi Reguler • Sebuah bahasa dinyatakan memiliki ekspresi regular jika terdapat Finite State Automata

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) • Contoh penerapan: Searching string pada file

Notasi Ekspresi Reguler ‘*’ bisa tidak muncul, bisa juga muncul berhingga kali ER :

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

Hukum Aljabar Ekspresi Reguler 1. 2. 3. 4. Sifat Komutatif dan Asosiatif Identitas dan

Hukum Aljabar Ekspresi Reguler 1. 2. 3. 4. Sifat Komutatif dan Asosiatif Identitas dan Anihilator Hukum Distributif Hukum Idempoten

Hukum Aljabar Ekspresi Reguler 1. Sifat Komutatif dan Asosiatif Sifat Komutatif Dapat membalik urutan

Hukum Aljabar Ekspresi Reguler 1. Sifat Komutatif dan Asosiatif Sifat Komutatif Dapat membalik urutan operand-operand nya dan tetap memperoleh hasil akhir yang sama Sifat Asosiatif Memungkinkan kita untuk mengelompokkan operand nya ketika operator dikenakan dua kali

Sifat Komutatif & Asosiatif yang berlaku pada ER 1) A + B = B

Sifat Komutatif & Asosiatif yang berlaku pada ER 1) 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 2) (A + B) + C

Sifat Komutatif & Asosiatif yang berlaku pada ER 2) (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 3) (AB) C = A (BC)

Sifat Asosiatif & Komutatif yang berlaku pada ER 3) (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

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 2. Identitas dan Anihilator Identitas suatu operator Nilai yang sedemikian

Hukum Aljabar Ekspresi Reguler 2. 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 xx=xx 1=x

Anihilator untuk suatu operator Nilai yang sedemikian sehingga ketika operator tersebut dikenakan pada anihilator

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 xx=xx 0=0

Hukum Identitas dan Anihilator yang berlaku pada ER 1) θ + L = L

Hukum Identitas dan Anihilator yang berlaku pada ER 1) θ + L = L + θ = L Hukum ini menegaskan bahwa θ adalah identitas untuk operasi gabungan 2) Є L = L Є = L Hukum ini menegaskan bahwa Є adalah identitas untuk operasi concatenation 3) θ L = L θ = θ Hukum ini menegaskan bahwa θ adalah anihilator untuk operasi concatenation

Hukum Aljabar Ekspresi Reguler 3. Hukum Distributif Hukum distributif melibatkan dua operator, dan menyatakan

Hukum Aljabar Ekspresi Reguler 3. 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 1) A ( M + N) = AM

Hukum Distributif yang berlaku pada ER 1) A ( M + N) = AM + AN Hukum ini adalah hukum distributif kiri concatenation terhadap gabungan (union) 2) (M + N)A = MA + NA Hukum ini adalah hukum distributif kanan concatenation terhadap gabungan (union) Gabungan dan Irisan adalah contoh sederhana operator idempoten

Hukum Aljabar Ekspresi Reguler 4. Hukum Idempoten Suatu operator dikatakan idempoten jika hasil penerapannya

Hukum Aljabar Ekspresi Reguler 4. 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 Gabungan dan Irisan adalah contoh sederhana operator idempoten

Hukum Idempoten yang berlaku pada ER 1) L + L = L Hukum ini

Hukum Idempoten yang berlaku pada ER 1) L + L = L Hukum ini (hukum idempoten untuk gabungan) menyatakan bahwa jika kita mengambil gabungan dari dua ekspresi yang identik, kita dapat mengganti keduanya dengan satu salinan ekspresi tersebut

Contoh Ekspresi Regular 1. ER : ab*cc Maka b bisa tidak muncul atau muncul

Contoh Ekspresi Regular 1. ER : ab*cc Maka b bisa tidak muncul atau muncul sejumlah berhingga kali Contoh string yang bisa dibangkitkan: abcc, abbcc, abbbcc, dan lainnya. 2. ER : 010* Maka 0 bisa tidak muncul atau muncul sejumlah berhingga kali Contoh string yang bisa dibangkitkan: 01, 0100, 01000, dan lainnya.

Contoh Ekspresi Regular 3. ER : Maka a minimal muncul satu kali Contoh string

Contoh Ekspresi Regular 3. ER : Maka a minimal muncul satu kali Contoh string yang bisa dibangkitkan: ad, aaad, aaaad dan lainnya. 4. ER : a* U b* Contoh string yang bisa dibangkitkan: a, b, aa, bb dan lainnya. 5. ER : 01* + 0 Sama dengan U Contoh string yang bisa dibangkitkan: 00, 0110 dan lainnya.

Hubungan ER dengan FSA Ø Untuk setiap ER ada satu NFA dengan transisi (

Hubungan ER dengan FSA Ø Untuk setiap ER ada satu NFA dengan transisi ( NFA – move) yang ekuivalen Ø Sementara untuk setiap DFA, ada satu ER dari bahasa yang diterima oleh DFA

Contoh: 1. 2. 3. 4. 5. ER : ab ER : a*b ER :

Contoh: 1. 2. 3. 4. 5. ER : ab ER : a*b ER : a U b ER : 010* ER : 0(1 U 0) FSA untuk ER tersebut?

Contoh: ER untuk Mesin FSA berikut? 1. Cara: Amati perilaku otomata tersebut

Contoh: ER untuk Mesin FSA berikut? 1. Cara: Amati perilaku otomata tersebut

üInput yang menuju final state (q 2) adalah 0, atau 10* üPada state q

üInput yang menuju final state (q 2) adalah 0, atau 10* üPada state q 2, menerima input 1 dalam jumlah berapapun (1*) akan tetap di q 2 MAKA Bisa dikatakan mesin itu menerima 01* atau 10*11* ER : 01* U 10*11*

Penerapan Ekspresi Regular ü Ekspresi regular merupakan perkakas ampuh untuk manipulasi teks dan data.

Penerapan Ekspresi Regular ü Ekspresi regular merupakan perkakas ampuh untuk manipulasi teks dan data. ü Perkakas yang mendukung ER biasanya mampu menambah , menghilangkan mengisolasi terhadap semua jenis teks dan data. ü Ekspresi regular biasa digunakan untuk pencarian string dalam sebuah file.

Menemukan Pola dalam Teks Berkaitan dengan penggunaan otomata untuk pencarian sebuah kata dalam file

Menemukan Pola dalam Teks Berkaitan dengan penggunaan otomata untuk pencarian sebuah kata dalam file atau penyimpanan yang besar seperti Web

Contoh : Ingin menglasifikasikan tempat berdasarkan lokasi Hal yang harus dipertimbangkan: • Apakah alamat

Contoh : Ingin menglasifikasikan tempat berdasarkan lokasi Hal yang harus dipertimbangkan: • Apakah alamat jalan yang dimaksud? • Untuk memulai, jalan mungkin akan disebut ‘jalan’, ‘jl’ atau ‘jln’ • Beberapa orang yang tinggal di perumahan dapat pula dituliskan di awal penulisan alamat dengan kata-kata ‘Perum’, atau ‘Perumahan’ Maka ekspresi regulernya: ER : jalan | jln . | Perumahan.

ER : jalan | jln . | Perumahan. Perhatikan bahwa: • Pada ER tersebut

ER : jalan | jln . | Perumahan. Perhatikan bahwa: • Pada ER tersebut kita menggunakan notasi gaya UNIX dengan menggunakan | ketimbang U sebagai operator union/gabungan • Digunakan tanda didepan dot atau ‘. ’ untuk menandakan akhir dari singkatan-singkatan yang mungkin digunakan

§ Biasanya setelah string jalan, alamat dituliskan dengan menyebut nama jalan tersebut, yang diawali

§ Biasanya setelah string jalan, alamat dituliskan dengan menyebut nama jalan tersebut, yang diawali dengan huruf kapital dan diikuti oleh beberapa huruf kecil Maka dapat didesripsikan pola nya dengan ekspresi reguler berikut: [A-Z] [a-z]* § Beberapa nama jalan memiliki nama lebih dari satu kata, misalnya Jalan Jenderal Soedirman Maka deskripsi di atas dapat diubah menjadi: ([A-Z] [a-z]*) ( [A-Z] [a-z]*)* (Jenderal) (Soedirman)

§ Alamat biasanya akan memasukkan nomor rumah sebagai bagian penting untuk menunjukkan sebuah lokasi

§ Alamat biasanya akan memasukkan nomor rumah sebagai bagian penting untuk menunjukkan sebuah lokasi § Sebagian nomor rumah adalah angka namun ada beberapa yang juga merupakan gabungan angka dan huruf, misalnya 28 A Maka dapat didesripsikan pola nya dengan ekspresi reguler berikut: [0 -9]+ [A-Z]? • operator ‘+’ digunakan untuk ‘satu atau lebih’ angka • Operator ‘? ’ digunakan untuk ‘nol (tidak ada) atau satu’ huruf kapital

Ekspresi lengkap untuk alamat yang kita buat adalah: ‘jalan | jln . | Perumahan.

Ekspresi lengkap untuk alamat yang kita buat adalah: ‘jalan | jln . | 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’

Latihan Tentukan FSA dari ER berikut: 1. 2. 3. 4. 5. 6. ER :

Latihan Tentukan FSA dari ER berikut: 1. 2. 3. 4. 5. 6. ER : 0 (1 U 0)* ER : 01*0 ER : 0*10* ER : a(ba)* ER : (ab)*

Latihan Tentukan ER untuk Mesin FSA berikut:

Latihan Tentukan ER untuk Mesin FSA berikut:

Tugas Buatlah ekspresi reguler untuk mendeskripsikan lowongan pekerjaan Pertimbangkan bahwa para pencari pekerjaan bisa

Tugas Buatlah ekspresi reguler untuk mendeskripsikan lowongan pekerjaan Pertimbangkan bahwa para pencari pekerjaan bisa mencari berdasarkan, jurusan yang dibutuhkan, strata pendidikan, jumlah gaji, usia, lama pengalaman kerja di mana masing-masing jumlah stringnya bisa saja berbeda-beda