Tentang Proyek
Aplikasi ini adalah bentuk implementasi teori automata, khususnya Deterministic Finite Automata (DFA), dalam menyelesaikan masalah dunia nyata, yaitu validasi format nomor resi pengiriman.
Apa itu DFA?
Deterministic Finite Automaton (DFA) adalah mesin state (state machine) konseptual yang hanya memiliki satu transisi untuk setiap simbol pada alfabet dari sebuah state. Ini berarti untuk input tertentu, mesin akan selalu berpindah ke satu state tertentu saja.
Mengapa menggunakan DFA?
Meskipun kita bisa menggunakan Regular Expression (Regex) untuk validasi string, menggunakan mesin DFA secara murni memiliki kelebihan dalam dunia akademis dan sistem kritis:
- Performa deterministik: Waktu eksekusi validasi O(n) murni, di mana n adalah panjang string, tanpa overhead dari regex engine.
- Error handling yang spesifik: Karena kita melacak di state mana sebuah kegagalan terjadi, kita dapat memberikan pesan error yang sangat spesifik (misalnya: "Angka kurang pada digit ke-5", atau "Ada huruf pada bagian angka").
- Transparansi: Logika dan transisi mudah digambarkan dalam bentuk graf (State Diagram).
Cara Kerja DFA pada Nomor Resi
Nomor resi dengan format AAA999999999999 memiliki logika mesin DFA sebagai berikut:
- Aplikasi mulai membaca resi dari karakter pertama, dimulai pada state
q0(Start). - Membaca 3 karakter pertama: jika berupa huruf kapital (A-Z), mesin akan bertransisi ke state
q1,q2, laluq3. - Membaca 12 karakter selanjutnya: jika berupa digit angka (0-9), mesin akan bertransisi berturut-turut dari
q4hinggaq15. - Jika mesin selesai membaca string tepat di state
q15, string akan diterima (ACCEPT). - Jika sewaktu-waktu ada karakter yang tidak sesuai harapan (misal: huruf kecil, atau ada huruf di bagian angka), maka mesin langsung pindah ke state
q_reject(REJECT).
Tujuan Akademis: Aplikasi ini dikembangkan sebagai bentuk penyelesaian proyek akhir mata kuliah Teori Bahasa dan Otomata.