Special Instructional
Objectives, Subtopics and
Presentation Time
2.
Membuat Ekspresi
Regular (1)
Ekspresi regular terdiri dari konstanta,
variabel-variabel yang menyatakan
bahasa dan operator union, dot dan star.
Ekspresi regular dapat dinyatakan secara
rekursif.
Definisi ekspresi regular, E, dan bahasa
yang direpresentasikan oleh E yaitu L(E)
terdiri dari basis dan langkah induktif
Membuat Ekspresi
Regular (2)
Basis: terdiri dari 3 bagian :
1. Konstanta dan adalah ekspresi regular,
berturut-turut menyatakan bahasa {}
dan . Bahwa L() ={}, dan L() = .
2. Jika a adalah simbol, maka a adalah
ekspresi regular. Ekspresi ini menyatakan
bahasa {a}, bahwa L(a) = {a}
3. Sebuah variabel, biasanya dicetak tebal
dan miring seperti L, merepresentasikan
suatu bahasa.
Membuat Ekspresi
Regular (3)
Induksi: Langkah induktif terdiri dari 4 langkah:
1. Jika E dan F adalah ekspresi regular, maka E + F
adalah ekspresi regular yang menyatakan union dari
L(E) dan L(F).
Bahwa L(E + F) = L(E) L(F).
2. Jika E dan F adalah ekspresi regular, maka EF adalah
ekspresi regular yang menyatakan perangkaian dari
L(E) dan L(F).
Bahwa L(EF) = L(E).L(F).
Simbol dot bisa digunakan atau tidak untuk
menotasikan operator perangkaian baik dalam bahasa
atau dalam ekspresi regular.
Contoh: 0.1 adalah ekspresi regular yang artinya sama
dengan 01 dan merepresentasikan bahasa {01}.
Membuat Ekspresi
Regular (4)
3. Jika E adalah sebuah ekspresi regular,
maka E* adalah ekspresi regular
menyatakan closure dari L(E).
Bahwa L(E*) = (L(E))*.
4. Jika E adalah ekspresi regular, maka (E),
E dengan tanda kurung juga ekspresi
regular yang menyatakan bahasa yang
sama dengan E.
Bahwa L((E)) = L(E).
Contoh 2
Akan dibuat ekspresi regular untuk
himpunan string yang terdiri dari para 0
dan para 1 secara bergantian.
Langkah-langkah untuk membuat ekspresi
regular tersebut adalah
Pertama dibuat ekspresi regular untuk
bahasa yang terdiri dari string tunggal
01.
Gunakan operator star untuk mendapat
sebuah ekspresi untuk semua string
dengan bentuk 0101...01
Contoh 2 (lanjutan)
Basis: 0 dan 1 adalah ekspresi regular yang
berturut-turut menyatakan bahasa {0} dan
{1}.
Induksi:
Perangkaian dari 0 dan 1 yaitu 01 adalah ekpresi
regular yang menyatakan bahasa {01}.
Untuk mendapat semua string yang terdiri dari nol atau
lebih kemunculan 01 digunakan ekspresi regular (01)*.
Perhatikan bahwa (01)* 01*. 01* menyatakan
bahasa yang terdiri dari sebuah 0 dan sejumlah para 1.
Contoh 2 (lanjutan)
Tetapi, L((01)*) bukan bahasa yang tepat yang
diinginkan.
Bahasa ini hanya mencakup string-string dari para 0
dan para 1 secara bergantian dimulai dengan 0 dan
diakhiri dengan 1
diperlukan kemungkinan terdapat 1 diawal dan 0
diakhir string. Ekspresi regular yang mungkin adalah
(10)* yang terdiri dari para 0 dan para 1 secara bergantian,
diawali 1 dan diakhiri 0.
0(10)* yang diawali dan diakhiri 0.
1(01)* yang diawali dan diakhiri 1.
Skema pembuktian
ekuivalensi notasi-notasi
untuk bahasa regular:
Misalkan x dan y
adalah node dalam
gambar di samping.
Edge dari node x ke y
berarti bahwa dapat
dibuktikan setiap
bahasa yang
didefinisikan oleh kelas
x juga didefinisikan
oleh kelas y.
Contoh 3
Ekspresi regular yang
ekuivalen dengan DFA di
samping adalah
1*0(0+1)*.
Contoh 5
Konversi ekspresi regular
(0+1)*1(0+1) ke sebuah -NFA.
Jawab:
Daftar Pustaka
John E. Hopcroft, Rajeev Motwani,
Jeffrey D. Ullman. 2001. Introduction
to Automata Theory, Languange, and
Computation. Edisi ke-2. AddisonWesley