Finite Automata (FA) adalah model matematika untuk sistem komputasi dengan memori terbatas.
FA digunakan untuk:
- Pengolahan teks (regex, lexical analyzer)
- Sistem kendali otomatis
- Pendeteksi pola
A. Jenis FSA
- Deterministic Finite Automata (DFA)
Dari suatu state ada tepat satu state berikutnya untuk setiap symbol masukan yang diterima. - Non-deterministic Finite Automata (NFA)
Dari suatu state ada 0, 1 atau lebih state berikutnya untuk setiap simbol masukan yang diterima.
Sebuah FA didefinisikan sebagai 5-tuple:
M = (Q, Σ, δ, q0, F)
Q: Himpunan hingga dari stateΣ: Himpunan hingga dari simbol input (alfabet)δ: Fungsi transisi,Q × Σ → Qq0: State awal (q0 ∈ Q)F: Himpunan state akhir (F ⊆ Q)
B. Cara kerja Finite Automata
- Mesin membaca memori masukan berupa tape yaitu 1 karakter tiap saat (dari kiri ke kanan) menggunakan head baca yang dikendalikan oleh kotak kendali state berhingga dimana pada mesin terdapat sejumlah state
- Finite Automata selalu dalam kondisi yang disebut state awal pada saat Finite Automata mulai membaca tape.
- Perubahan state terjadi pada mesin ketika sebuah karakter berikutnya dibaca.
- Ketika head telah sampai pada akhir tape dan kondisi yang ditemui adalah state akhir, maka string yang terdapat pada tape dikatakan diterima Finite Automata (String-string merupakan milik bahasa bila diterima Finite Automata bahasa tersebut). FA untuk mengenali Bilangan Cacah
C. Graph Transisi

D. Himpunan State = Q
Q = {q0 , q1, q2 , q3 , q4 , q5}

- State awal = q0

2. State Akhir = F
F = {q4}


