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:

  1. Aplikasi mulai membaca resi dari karakter pertama, dimulai pada state q0 (Start).
  2. Membaca 3 karakter pertama: jika berupa huruf kapital (A-Z), mesin akan bertransisi ke state q1, q2, lalu q3.
  3. Membaca 12 karakter selanjutnya: jika berupa digit angka (0-9), mesin akan bertransisi berturut-turut dari q4 hingga q15.
  4. Jika mesin selesai membaca string tepat di state q15, string akan diterima (ACCEPT).
  5. 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.