Deterministic Finite Automata (DFA)
Definisi formal 5-tuple, cara membaca diagram transisi, merancang DFA, dan simulasi langkah demi langkah.
Slide[kulon] DFA
Finite automaton adalah model mesin paling sederhana: mesin dengan memori terbatas (sejumlah state) yang membaca string simbol demi simbol, lalu di akhir memutuskan menerima atau menolak string itu. Himpunan semua string yang diterima disebut bahasa dari automaton tersebut.
Definisi formal
DFA adalah 5-tuple :
| Simbol | Arti |
|---|---|
| himpunan state yang berhingga | |
| alfabet, himpunan simbol input | |
| fungsi transisi: dari state mana, membaca simbol apa, pindah ke state mana | |
| state awal | |
| himpunan state akhir (accepting/final) |
Deterministic berarti untuk setiap pasangan (state, simbol) ada tepat satu state tujuan. Tidak ada pilihan, tidak ada transisi kosong ().
String diterima jika setelah membaca seluruh dari , mesin berhenti di salah satu state di .
Coba simulasikan
Pada diagram, panah tanpa asal menandai state awal, dan lingkaran ganda menandai state akhir. Tekan “Baca simbol” untuk berjalan satu langkah. Tabel transisinya juga bisa diedit.
Merancang DFA: langkah praktis
- Tentukan informasi minimal yang perlu diingat setelah membaca sebagian string. Setiap kemungkinan informasi = satu state.
- Tentukan state awal (informasi saat belum membaca apa pun) dan state akhir.
- Untuk setiap state dan setiap simbol, tentukan state berikutnya. Jangan lupa: semua pasangan harus terdefinisi. Jika perlu, tambahkan dead state (trap) yang tidak pernah keluar.
- Uji dengan beberapa string, termasuk string kosong .
DFA dalam kode
DFA mudah sekali diimplementasikan, cukup tabel dan satu loop. Inilah inti dari lexer pada compiler dan mesin regex sederhana.
Batas kemampuan DFA
DFA hanya bisa mengenali bahasa reguler. Bahasa seperti (sejumlah a diikuti b yang sama banyaknya) tidak reguler. Untuk mengingat yang bisa sebesar apa pun dibutuhkan memori tak terbatas, padahal state DFA berhingga. Ini dibuktikan formal dengan pumping lemma. Bahasa seperti itu butuh mesin yang lebih kuat: pushdown automata (punya stack).
Latihan UTS & UAS
- UTS 2025 · No. 2Telusuri state dan periksa bahasa yang diterima DFA.