Anda di halaman 1dari 13

MAKALAH

TEORI BAHASA DAN AUTOMATA


“Nondeterministic Finite State Automata (NFA)”

Dosen : Widya Darwin, S.Pd,.M.Pd.T

Oleh Kelompok 1 :

Jovanka Sabila Pertiwi (22346033)

Miftahhul Hudaiza A. L (223460)

Najwa Alawiyah Siregar (223460)

Natha Fahrezi A (223460)

Prodi Informatika, Dapartemen Elektronika

Fakultas Teknik

Universitas Negeri Padang

2024
KATA PENGANTAR

Assalamualaikum Warahmatullahi Wabarakatuh

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.

Demikian, semoga makalah ini dapat bermanfaat. Terima kasih.

Pesisir Selatan, 6 Maret 2024

Penulis
DAFTAR ISI
BAB I
PENDAHULUAN

A. Latar Belakang

Dalam dunia ilmu komputer, Automata adalah model matematika yang


digunakan untuk menganalisis dan memahami berbagai jenis bahasa. Salah satu
model yang penting dalam hal ini adalah yang dikenal sebagai Nondeterministic
Finite Automata (NFA).

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

Berdasarkan uraian latar belakang di atas maka dapat di tentukan rumusan


masalah dalam makalah ini sebagai berikut:
1. Apa itu Nondeterministic Finite Automata (NFA)
2. Bagaimana Ekuivalensi Non Deterministic Finite Automata dengan
Deterministic Finite Automata

C. Tujuan

1. Memahami Nondeterministic Finite Automata (NFA)


2. Mengetahui Ekuivalensi Non Deterministic Finite Automata dengan
Deterministic Finite Automata
BAB II
PEMBAHASAN

A. Nondeterministic Finite Automata (NFA)


Nondeterministic Finite Automata (NFA) adalah model matematika yang
digunakan untuk mengenali pola-pola tertentu dalam sebuah bahasa. NFA memiliki
kemampuan untuk melakukan beberapa pilihan langkah pada suatu waktu tertentu,
mirip dengan memilih jalur-jalur yang berbeda di persimpangan jalan. Kemungkinan
transisinya ke lebih dari satu state. Dari suatu state bisa terdapat 0, 1 atau lebih transisi
dengan label input yang sama. Perubahan state dapat terjadi secara spontan tanpa input
(transisi kosong). Salah satu tracingnya berakhir di state akhir, atau himpunan state
setelah membaca string tersebut mengandung state akhir. Pada dasarnya ada tiga
perbedaan utama antara NFA dan DFA, yaitu:

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}

Konfigurasi NFA secara formal adalah sebagai berikut :


Q = {q0, q1 }
 = {a, b}
S = q0
F = {q1}

Fungsi-fungsi transisinya sebagai berikut :


 (q0, a) = {q0,q1},  (q0, b) = q1,
 (q1, a) = q1,  (q1, b) = q1,

Jika disajikan dalam tabel transisi :


 a b
q0 {q0,q1} {q1}
q1 {q1} {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:

Konfigurasi NFA contoh 2 secara formal adalah sebagai berikut :


Q = {q0, q1 }
 = {a, b}
S = q0
F = {q1}

Fungsi-fungsi transisinya sebagai berikut :


 (q0, a) = q1,  (q0, b) = q0,
 (q1, a) = q0,  (q1, b) = Ø,

Jika disajikan dalam tabel transisi :


 a b
q0 {q1} {q0}
q1 {q0} Ø

B. Ekuivalensi NFA dengan DFA

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}

 Kita mulai dengan state {q0}

Telusuri state berikutnya :


  (q0, 0) = {q0, q1 }
  (q0, 1) = {q1}
Hasilnya :

 Selanjutnya telusuri untuk setiap state baru yang terbentuk :


o  (q1, 0) = Ø
o  (q1, 1) = {q0, q1}
o  ({q0,q1}, 0) = {q0, q1} adalah hasil gabungan dari  (q0, 0) = {q0,
q1}dengan  (q1, 0) = Ø
o  ({q0,q1}, 1) = {q0, q1} adalah hasil gabungan dari  (q0, 1) =
{q1}dengan  (q1, 0) = {q0, q1}

Hasilnya :

 Selanjutnya telusuri state baru yang terbentuk :


  (Ø, 0) = Ø
  (Ø, 0) = Ø
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

NFA (Nondeterministic Finite Automata) adalah model matematika yang digunakan


untuk mengenali pola dalam bahasa. NFA memungkinkan beberapa pilihan langkah pada
satu waktu, memungkinkan transisi ke lebih dari satu state untuk simbol yang sama, dan
memungkinkan transisi kosong. Perbedaan utama antara NFA dan DFA adalah bahwa
NFA dapat memiliki beberapa transisi untuk simbol yang sama dari state yang sama,
dapat memiliki transisi untuk string kosong, dan memungkinkan keberadaan beberapa
hasil yang sama dengan bahasa yang sama.
DAFTAR PUSTAKA

Anda mungkin juga menyukai