Oleh Kelompok 1 :
Fakultas Teknik
2024
KATA PENGANTAR
Puji syukur atas rahmat Allah SWT, berkat rahat serta karunia-Nya sehingga makalah dengan
judul “Nondeterministic Finite State Automata (NFA)” dapat diselesaikan. Makalah ini dibuat
dengan tujuan memenuhi tugas Teori Bahasa dan Automata. Selain itu, penyusunan makalah
ini bertujuan menambah wawasan kepada seluruh pembaca tentang Nondeterministic Finite
State Automata (NFA).
Kami mengucapkan terimakasih kepada Ibu Widya Darwin, S.Pd,.M.Pd.T selaku dosen mata
kuliah Teori Bahasa dan Automata, berkat tugas yang diberikan ini dapat menambah
wawasan kami berkaitan dengan topic yang diberikan.
Kami menyadari bahwa dalam penyusunan dan penulisan masih melakukan kesalahan. Oleh
karena itu kami memohon maaf atas kesalahan dan ketidaksempurnaan yang pembaca
temukan dalam makalah ini. Kami mengharapkan kritik serta saran dari pembaca apabila
menemukan kesalahan dari makalah ini.
Penulis
DAFTAR ISI
BAB I
PENDAHULUAN
A. Latar Belakang
NFA adalah mesin abstrak yang mampu mengenali pola-pola tertentu dalam
sebuah bahasa. Yang membuat NFA menarik adalah kemampuannya untuk
melakukan beberapa pilihan langkah pada suatu waktu tertentu. Bayangkan kita
berada di persimpangan jalan dan dapat memilih untuk pergi ke beberapa arah
sekaligus. NFA bekerja mirip dengan itu; mereka memiliki kebebasan untuk
menjelajahi berbagai kemungkinan jalur secara bersamaan.
Dalam dunia nyata, NFA memiliki aplikasi yang sangat penting, terutama
dalam pengenalan pola dan pemrosesan bahasa. Mereka memungkinkan komputer
untuk mengenali dan memahami pola-pola kompleks, yang merupakan dasar dari
banyak teknologi modern, seperti pemrosesan teks otomatis, pengenalan suara, dan
lainnya.
Dalam makalah ini, kami akan membahas konsep dasar tentang NFA. Kami
akan melihat struktur dasar NFA, bagaimana cara kerjanya, mengapa mereka penting,
dan bagaimana kita dapat menerapkannya dalam berbagai konteks komputasi.
Semoga makalah ini memberikan pemahaman yang lebih baik tentang salah satu
aspek penting dari ilmu komputer, yang akan berguna dalam pengembangan teknologi
masa depan.
B. Rumusan Masalah
C. Tujuan
1. DFA hanya dapat memiliki satu transisi untuk setiap simbol yang keluar dari
keadaan. Namun, NFA dapat memiliki beberapa transisi untuk sebuah simbol dari
keadaan yang sama. Pada gambar di bawah, diagram NFA memiliki a dan b yang
berputar kembali ke dirinya sendiri, dan juga memiliki titik a kedua yang
mengarah ke keadaan lain. (Catatan: Diagram ini tidak setara secara fungsional.
Diagram ini dibuat hanya untuk menunjukkan perbedaan transisi)
NFA tidak diharuskan memiliki transisi untuk setiap simbol . Jadi jika membuat
NFA untuk bahasa dengan alfabet {a, b}, maka valid jika memiliki status seperti
ini:
Dalam hal ini, jika kita mendapatkan simbol b, kita akan tetap berada di negara
bagian tersebut. Hal ini dikarenakan negara tersebut hanya berkepentingan untuk
mendapatkan simbol a agar dapat melanjutkan ke negara berikutnya.
2. NFA dapat memiliki transisi untuk string kosong. DFA tidak dapat melakukan
transisi pada string kosong, karena ini adalah transisi yang tidak valid, tetapi NFA
diperbolehkan melakukan hal ini. Lihat di bawah:
Komponen penting dari NFA yang perlu diperhatikan adalah bahwa NFA dapat
memiliki beberapa hasil dengan bahasa yang sama, namun jika setidaknya salah
satu dari hasil tersebut menghasilkan keadaan menerima, maka diagram dan
bahasa menerima string tersebut. Kami akan mendemonstrasikannya di bagian
selanjutnya.
Definisi formal NFA terdiri dari 5 tupel, yang urutannya penting. Mirip dengan
DFA, definisi formal NFA adalah: (Q, 𝚺, δ, q0, F),
Dimana:
Q = Himpunan state / Kedudukan
𝚺 = Himpunan symbol input / masukan / abjad
δ = Fungsi transisi
q0 = State awal q0, dimana q0 ∈ Q
F = Himpunan state akhir, F ⊆ Q
Note: Jumlah state akhir bisa lebih dari satu
Contoh :
Pada NFA gambar diatas terdapat dua busur keluar berlabel input ‘a’. Dari state q0
bila mendapat input ‘a’ bisa berpindah ke state q0 atau q1 yang secara formal
dinyatakan :
(q0, a) = {q0, q1}
Perhatikan : Dalam cara penulisan state hasil transisi pada tabel transisi untuk NFA,
digunakan kurung kurawal ‘{‘ dan ‘}’karena hasil transisisnya merupakan suatu
himpunan state. Pada bagian ini dapat dilihat NFA dengan lebih dari satu pilihan state
berikutnya.
Contoh 2:
Dari sebuah NFA dapat dibuat bentuk DFA nya yang ekuivalen (bersesuaian).
Ekivalen disini artinya mampu memproduksi atau menerima bahasa yang sama.
Adapun tahap pembuatan DFA yang ekivalen dari suatu NFA adalah sebagai berikut:
Contoh: Diketahui NFA sebagai berikut
Konfigurasi NFA contoh 4 secara formal adalah sebagai berikut :
Q = {q0, q1 }
= {0, 1}
S = q0
F = {q1}
Tabel transisinya :
0 1
q0 {q0, q1} {q1}
q1 Ø {q0, q1}
Hasilnya :
Selanjutnya kita ingat bahwa F = {q1} maka himpunan state akhir (F)
sekarang adalah semua yang mengandung state q1.
F = {{q1}, {q0, q1}}
Hasilnya :
BAB III
PENUTUP
A. Kesimpulan