TENTANG APLIKASI

Bagaimana Mesin Ini Bekerja

Aplikasi ini memvalidasi format pelat nomor kendaraan bermotor secara otomatis menggunakan Deterministic Finite Automaton (DFA), sebuah mesin yang membaca pelat karakter demi karakter dan berpindah antar state sampai bisa memastikan formatnya benar atau salah.

Alfabet Input

Mesin ini tidak membaca huruf per huruf secara langsung, melainkan mengelompokkan setiap karakter ke dalam tiga jenis simbol lebih dulu. Hanya tiga simbol inilah yang dikenali mesin.

L Huruf, dari A sampai Z. Dipakai untuk kode wilayah dan huruf seri.
D Digit, dari 0 sampai 9. Dipakai untuk nomor urut.
S Satu karakter spasi. Dipakai sebagai pemisah antar bagian pelat.

Karakter apa pun di luar ketiga jenis ini, misalnya tanda baca atau simbol lain, tidak punya simbol yang cocok sehingga langsung membawa mesin ke state jebakan qtrap.

Apa itu DFA

DFA (Deterministic Finite Automaton) adalah mesin abstrak dengan sejumlah state terbatas, satu state awal, satu atau lebih state akhir, dan aturan transisi yang pasti untuk setiap kombinasi state dan simbol masukan. Karena bersifat deterministik, dari satu state hanya ada tepat satu tujuan untuk setiap simbol. Secara formal DFA didefinisikan sebagai 5-tuple:

M = (Q, Σ, δ, q0, F)

Studi Kasus

Pelat nomor kendaraan bermotor di Indonesia mengikuti pola umum: kode wilayah berupa 1-2 huruf, nomor urut berupa 1-4 digit, lalu huruf seri sebanyak 1-3 huruf, dengan spasi sebagai pemisah antar bagian. Jumlah digit nomor urut memang tidak selalu 4. Nomor registrasi disusun mengikuti urutan waktu pendaftaran kendaraan di suatu wilayah, jadi kendaraan yang didaftarkan lebih awal wajar mendapat nomor yang lebih pendek, ditambah ada juga "pelat nomor cantik" yang sengaja dipilih pemiliknya. Karena itu contoh dengan digit lebih sedikit seperti D 12 AB tetap masuk akal secara umum, di samping contoh 4 digit seperti B 1234 ABC yang paling umum dijumpai. DFA pada aplikasi ini membaca pelat tersebut karakter demi karakter dan memastikan urutannya sesuai pola itu.

Hitam - kendaraan perorangan
Merah - kendaraan dinas pemerintah
Kuning - kendaraan umum
Putih/biru - kendaraan listrik

Aplikasi ini hanya memvalidasi susunan karakternya, bukan warna pelat.

Batasan Aplikasi

DFA ini dirancang khusus untuk pola pelat kendaraan sipil biasa (kode wilayah, nomor urut, huruf seri) seperti dijelaskan di atas. Beberapa jenis pelat khusus di Indonesia memakai pola yang sama sekali berbeda dan tidak akan pernah dinyatakan sah oleh mesin ini, meskipun pelat tersebut asli dan legal:

Kalau kamu memasukkan pelat semacam itu ke validator, hasilnya akan selalu ditolak, dan itu memang perilaku yang benar karena polanya sengaja di luar cakupan DFA ini.

Diagram State

Setiap panah adalah satu transisi, diberi label simbolnya: L huruf, D digit, S spasi. Lingkaran ganda menandakan state akhir (q9, q10, q11), tempat pelat dianggap sah kalau mesin berhenti di sana. Lingkaran merah putus-putus adalah qtrap, state jebakan yang membuat pelat ditolak begitu tercapai.

L L S S D D S D S D S S L L L q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 qtrap
StateArtiState Akhir
q0Kondisi awal, belum ada karakter dibaca-
q1Sudah membaca 1 huruf kode wilayah-
q2Sudah membaca 2 huruf kode wilayah-
q3Menunggu digit pertama nomor urut-
q4Sudah membaca 1 digit nomor urut-
q5Sudah membaca 2 digit nomor urut-
q6Sudah membaca 3 digit nomor urut-
q7Sudah membaca 4 digit nomor urut-
q8Menunggu huruf pertama huruf seri-
q9Sudah membaca 1 huruf seriya
q10Sudah membaca 2 huruf seriya
q11Sudah membaca 3 huruf seriya
qtrapState jebakan, dicapai begitu ada karakter atau urutan yang tidak sesuai, bersifat absorbing sampai akhir input-

Alur Validasi

  1. Input pengguna dibersihkan lalu diubah menjadi huruf kapital.
  2. Setiap karakter diklasifikasikan ke simbol L, D, atau S. Karakter di luar itu langsung membawa mesin ke qtrap.
  3. Mesin berpindah state sesuai tabel transisi untuk setiap karakter, satu per satu.
  4. Setelah seluruh karakter habis, jika state akhir termasuk state akhir yang ditetapkan, pelat dinyatakan sah. Jika tidak, pelat ditolak dan alasannya ditampilkan.

Coba Sekarang

Kembali ke halaman beranda untuk menguji pelat nomor kamu sendiri dan melihat jejak transisi state-nya secara langsung.

Buka Validator