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.