a. Tujuan Pembelajaran
Mahasiswa Dapat Memahami Konsep Regular Expression Dan
Implementasinya Dalam
Regular Language
b. Materi Pembelajaran
Finite State Automata adalah pintu masuk untuk mengenal bahasa-bahasa yang digunakan
dalam komputer. Karena hanya merupakan pintu masuk, maka tidaklah cukup hanya belajar dan
berhenti dari materi tersebut saja.
Regular Expression adalah konsep untuk menyederhanakan bahasa yang luas menjadi
bahasa yang umum, sehingga mudah untuk implementasi kedalam program.
A. Asal Gagasan Ekspresi Reguler
Permulaaan gagasan ekspresi reguler dikemukakan pada tahun 1940 oleh Warren
McCulloch dan Walter Pitts. Bidang keahlian mereka adalah neuro-physiologist.
Mereka mengembangkan model sederhana mengenai sistem syaraf pada level neuron.
Ekspresi reguler menjadi nyata secara formal ketika matematikawan Stephen
Kleene mendeskripsikan model-model yang ditemukan McCulloch dan Pitts ini secara
formal dalam 1 aljabar yang disebut himpunan reguler.
Stephe Kleene mengemukakan notasi sederhana untuk mengekspresikan himpunan
reguler ini disebut ekspresi reguler.
Pada tahun 1950 dan 1960-an, ekspresi reguler memperoleh perhatian para
matematikawan. Pada tahun 1968, Ken Thompson menggunakan ekspresi reguler untuk
persoalan komputasi, ditulis dalam makalah berjudul "Reguler Expression Search
Algorithm" yang mendeskripsikan kompilator ekspresi reguler sehingga menghasilkan
kode objek untuk komputer 8094.
Jadi x* adalah string dari x yang banyaknya tidak dinyatakan secara pasti Sebuah
language L
yang didefinisikan dari alphabet S = {a, b} seperti di bawah ini:
L = { a ab abb abbb abbbb ... }
Dengan memakai notasi *, dapat dituliskan L = language (ab*) Kleene Star dapat
diimplementasikan pada string ab seperti di bawah ini:
(ab)* = Λ atau ab atau abab atau
ababab . . . (ab)* ≠ (ab*) Contoh Kleene Star lainnya:
L1 = language (xx*)
Language L1 di atas berisi sebuah x lalu diikuti dengan sejumlah x (dimana mungkin
saja tanpa
x sama sekali) L1 dapat dituliskan dengan notasi lain, yaitu notasi +, x+ berarti sejumlah
x dalam jumlah yang selalu positif (tidak bisa 0, atau tidak bisa Λ) Notasi * lebih lazim
dipergunakan daripada notasi + L1 dapat juga didefinisikan dengan salah satu contoh di
bawah ini:
xx* x+ xx*x* x*xx* x+x* x*x+ x*x*x*xx*
Perhatikan bahwa ba dan aba tidak termasuk dalam language ini, juga bahwa jumlah a
dan b
tidak perlu sama. Ada pemanfaatan lain dari tanda tambah +.
Ekpresi x + y berarti salah satu dari x atau y (memilih). Berhati-hatilah untuk
membedakan antara + dengan + Contoh: Perhatikan bahasa T yang berasal dari alphabet
Σ={abc}
Semua word di dalam T dimulai dengan a atau c dan diikuti dengan sejumlah b. Secara
simbolik
language T dapat ditulis dengan cara:
T = language ((a + c)b*)
= language (a atau c diikuti sejumlah b)
Tanda + berarti harus dilakukan pilihan untuk memakai ekspresi yang sebelah kiri atau
kanan
Contoh: Sebuah language L akan berisi semua string dari a dan b
dengan panjang selalu tiga
L = { aaa aab aba abb baa bab bba bbb }
TUGAS
1. Buatlah beberapa catatan berupa pertanyaan/hal-hal belum dipahami terkait dengan
materi yang telah disampaikan!