Diagram State DFA

Visualisasi mesin Deterministic Finite Automata untuk memvalidasi format resi AAA999999999999.

graph TD Start(( )) --> q0 q0 -- "A-Z" --> q1 q1 -- "A-Z" --> q2 q2 -- "A-Z" --> q3 q3 -- "0-9" --> q4 q4 -- "0-9" --> q5 q5 -- "0-9" --> q6 q6 -- "0-9" --> q7 q7 -- "0-9" --> q8 q8 -- "0-9" --> q9 q9 -- "0-9" --> q10 q10 -- "0-9" --> q11 q11 -- "0-9" --> q12 q12 -- "0-9" --> q13 q13 -- "0-9" --> q14 q14 -- "0-9" --> q15 q15 -- "[EOF]" --> q_accept(((q_accept))) q0 -. "Selain A-Z" .-> q_reject((q_reject)) q1 -. "Selain A-Z" .-> q_reject q2 -. "Selain A-Z" .-> q_reject q3 -. "Selain 0-9" .-> q_reject q4 -. "Selain 0-9" .-> q_reject q5 -. "Selain 0-9" .-> q_reject q6 -. "Selain 0-9" .-> q_reject q7 -. "Selain 0-9" .-> q_reject q8 -. "Selain 0-9" .-> q_reject q9 -. "Selain 0-9" .-> q_reject q10 -. "Selain 0-9" .-> q_reject q11 -. "Selain 0-9" .-> q_reject q12 -. "Selain 0-9" .-> q_reject q13 -. "Selain 0-9" .-> q_reject q14 -. "Selain 0-9" .-> q_reject q15 -. "Ada karakter" .-> q_reject classDef accept fill:#198754,stroke:#fff,stroke-width:2px,color:#fff; classDef reject fill:#dc3545,stroke:#fff,stroke-width:2px,color:#fff; classDef normal fill:#e9ecef,stroke:#333,stroke-width:1px; class q_accept accept; class q_reject reject; class q0,q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15 normal;
Keterangan:
  • q0 - q2: State untuk membaca 3 huruf kapital (A-Z).
  • q3 - q14: State untuk membaca 12 digit angka (0-9).
  • q15: State terakhir jika tepat 12 digit angka. Membutuhkan akhir string (EOF) untuk diterima.
  • q_accept: State akhir yang menandakan string VALID (Lingkaran Ganda Hijau).
  • q_reject: Trap state jika ada input yang menyalahi aturan (Lingkaran Merah). Garis putus-putus menunjukkan transisi ilegal.