Anda di halaman 1dari 3

Nama : Muhammad Haikal Fatahillah

NIM : 21120110027
Prodi : Sistem Informasi (Malam) Smt_4
Jawaban Teknik Kompilasi

Halaman 1
1. Automata disini adalah NFA (Nondeterministic Finite Automaton) karena memiliki lebih
dari satu transisi keluar dari satu state untuk simbol yang sama. Dalam hal ini, state q0
memiliki dua transisi keluar untuk simbol 0 dan state q1 memiliki dua transisi keluar untuk
simbol 1.
3. Berikut adalah representasi NFA-ε (Nondeterministic Finite Automaton with ε-moves)
yang memenuhi kondisi L(M) = L(r) dengan r = a*b+ab*:

 Buat keadaan awal (state) q0.


 Buat dua keadaan tambahan, q1 dan q2.
 Tambahkan transisi dari q0 ke q1 dengan simbol ε (ε-transition).
 Tambahkan transisi dari q1 ke q1 dengan simbol 'a'.
 Tambahkan transisi dari q1 ke q2 dengan simbol 'b'.
 Tambahkan transisi dari q2 ke q2 dengan simbol 'b'.
 Tambahkan transisi dari q2 ke q1 dengan simbol 'a'.
 Buat q2 sebagai keadaan akhir (final state).
Representasi NFA-ε secara tekstual adalah sebagai berikut:
Σ = {a, b}
Q = {q0, q1, q2} q0 = {q0}
F = {q2}
δ(q0, ε) = {q1}
δ(q1, a) = {q1}
δ(q1, b) = {q2}
δ(q2, b) = {q2}
δ(q2, a) = {q1}
Simbol ε mengindikasikan ε-transition atau langkah kosong yang memungkinkan
perpindahan antara keadaan tanpa membaca simbol apa pun.

Halaman 2
1. Berikut merupakan bahasa non reguler kecuali
a. L = {a2,a3,a5,…}
b. L = {10,11,101,111,1011,1101,10001,…}
c. L = {anbn| n ≥ 0}
d. L = {a2,a5,a8…}

2. Misalkan ekspresi regular berikut saling identic kecuali


a. R = (0*1*)*
b. R = (0+1)*01(0 + 1)* + 1*0*
c. R = (0+1)*
D. R = 0*+1*

Halaman 3
2. Diberikan ekspresi reguler : misalkan

r = ( b + ab * a )* ab *b ( a + b )*
Tuliskan dalam bahasa reguler dan tentukan dfa yang menerima bahasa reguler tersebut!
Untuk menulis ekspresi tersebut dalam bahasa reguler, kita perlu menguraikan setiap
bagian ekspresi dan mengubahnya menjadi operator reguler yang sesuai. Berikut adalah
penjabaran langkah demi langkah:

 ( b + ab * a ) -> Bagian ini akan menerima semua string yang mengandung b atau
string yang diawali dengan ab diikuti oleh nol atau lebih a (a*), diikuti oleh a. Dalam
bahasa reguler, dapat ditulis sebagai: (b + ab*a).
 ab * b -> Bagian ini akan menerima semua string yang diawali dengan ab, diikuti oleh
nol atau lebih b (b*). Dalam bahasa reguler, dapat ditulis sebagai: ab*b.
 ( a + b )* -> Bagian ini akan menerima semua string yang terdiri dari nol atau lebih a
atau b. Dalam bahasa reguler, dapat ditulis sebagai: (a + b)*.
Setelah menguraikan ekspresi menjadi bagian-bagian yang lebih sederhana, kita dapat
menggabungkannya untuk membentuk bahasa reguler keseluruhan:
r = ( b + ab * a )* ab b ( a + b )
= (b + aba)(abb)(a + b)*
DFA:

States: {q0, q1, q2, q3, q4, q5, q6, q7}


Alphabet: {a, b}
Start state: q0
Accept states: {q7}

Transitions: (q0, a) -> q0


(q0, b) -> q1

(q1, a) -> q2
(q1, b) -> q1

(q2, a) -> q2
(q2, b) -> q3

(q3, a) -> q4
(q3, b) -> q1

(q4, a) -> q5
(q4, b) -> q6

(q5, a) -> q5
(q5, b) -> q6

(q6, a) -> q7
(q6, b) -> q1

Anda mungkin juga menyukai