Validasi Format Kode Warna Hexadecimal
Masukkan kode warna dalam format #RRGGBB. Sistem akan memvalidasi
menggunakan Deterministic Finite Automaton (DFA) secara langsung saat kamu mengetik
atau menempel (paste) kode warna, tanpa perlu menekan tombol apa pun.
Apa itu DFA?
Deterministic Finite Automaton (DFA) adalah salah satu model komputasi dalam teori bahasa dan otomata yang digunakan untuk mengenali apakah sebuah string termasuk dalam suatu bahasa formal tertentu. DFA bekerja dengan membaca string karakter demi karakter, lalu berpindah dari satu keadaan (state) ke keadaan lain berdasarkan aturan transisi yang sudah ditentukan. Jika setelah seluruh karakter dibaca DFA berhenti di salah satu state akhir (accepting state), maka string tersebut dinyatakan diterima atau valid.
Secara formal, DFA didefinisikan sebagai 5-tuple (Q, Σ, δ, q0, F). Tabel di bawah menunjukkan definisi formal DFA yang diimplementasikan pada aplikasi ini.
| Komponen | Keterangan |
|---|---|
| Q (himpunan state) | {q0, q1, q2, q3, q4, q5, q6, q7, qtrap} |
| Σ (alfabet input) | Karakter '#', digit 0-9, huruf A-F/a-f, dan karakter lain |
| q0 (state awal) | q0 |
| F (state akhir/diterima) | {q7} |
| δ (fungsi transisi) | Lihat tabel transisi di bawah |
Tabel Transisi
| State | Input '#' | Input hex (0-9, A-F) | Input lainnya |
|---|---|---|---|
| q0 (awal) | q1 | qtrap | qtrap |
| q1 | qtrap | q2 | qtrap |
| q2 | qtrap | q3 | qtrap |
| q3 | qtrap | q4 | qtrap |
| q4 | qtrap | q5 | qtrap |
| q5 | qtrap | q6 | qtrap |
| q6 | qtrap | q7 (diterima) | qtrap |
| q7 (diterima) | qtrap | qtrap | qtrap |
| qtrap | qtrap | qtrap | qtrap |
Begitu string mencapai qtrap, tidak ada jalan kembali ke state lain string otomatis dinyatakan tidak valid meskipun sisa karakter belum selesai dibaca.