Nodeflux Central

Plate Enrollment

Daftarkan plat nomor kendaraan ke sistem untuk dipakai dalam License Plate Recognition matching, lengkap dengan data kendaraan, foto, dan pengelolaan CRUD.

Pengenalan

Plate Enrollment adalah proses mendaftarkan plat nomor kendaraan ke dalam sistem sebagai data referensi yang digunakan oleh mesin License Plate Recognition (LPR). Konsepnya serupa dengan Face Enrollment, namun objek yang diidentifikasi adalah kendaraan, bukan wajah orang.

AspekFace EnrollmentPlate Enrollment
ObjekWajah manusiaPlat nomor kendaraan
Data referensiFoto wajah + data identitasFoto kendaraan + data kendaraan
Dipakai olehMesin Face RecognitionMesin License Plate Recognition
Pengenal unikface_idunique_id + plate_number
KeyspaceYa (isolasi populasi)Tidak (global)

Setiap enrollment plat menyimpan satu atau lebih foto kendaraan beserta atribut kendaraan: nama pemilik, nomor plat, merek, warna, jenis, dan status. Ketika kamera LPR membaca plat nomor dari kendaraan yang melintas, sistem mencocokkan hasilnya dengan database enrollment ini dan menghasilkan event yang merujuk pada data kendaraan yang terdaftar.

Berbeda dengan Face Enrollment, Plate Enrollment tidak menggunakan embedding vector. Pencocokan dilakukan berdasarkan kesamaan string plat nomor yang dibaca oleh kamera LPR, sehingga akurasi sangat bergantung pada kualitas pembacaan kamera.

Akses halaman ini memerlukan izin ENROLLMENT_PLATE. Jika halaman tidak muncul di sidebar Anda, hubungi administrator untuk mengatur hak akses yang sesuai.


Cara Menggunakan

Menambah Plat Nomor Baru

Buka menu Plate Enrollment

Akses halaman /plate-enrollment dari sidebar Lenz Dashboard. Anda akan melihat tabel daftar plat nomor yang sudah terdaftar beserta toolbar pencarian di bagian atas.

Klik tombol "Daftarkan Kendaraan Baru"

Di toolbar, klik tombol Daftarkan Kendaraan Baru untuk membuka form pendaftaran. Form akan muncul sebagai modal dialog.

Isi data kendaraan

Lengkapi informasi berikut pada form:

  • Nama Pemilik — nama pemilik atau penanggung jawab kendaraan, wajib diisi
  • Nomor Plat — nomor plat kendaraan sesuai format resmi Indonesia, wajib diisi
  • Merek — merek kendaraan (contoh: Toyota, Honda, Mitsubishi), wajib diisi
  • Warna — warna bodi kendaraan, opsional
  • Jenis Kendaraan — pilih salah satu: Mobil, Motor, Truk, atau Bus, opsional
  • Status — status kendaraan (contoh: whitelist, blacklist), opsional

Nomor plat disimpan persis seperti yang Anda masukkan. Gunakan format standar agar pencocokan dengan hasil pembacaan kamera LPR konsisten — misalnya B 1234 ABC dengan spasi sebagai pemisah.

Upload foto kendaraan

Gunakan area Gambar Kendaraan untuk mengunggah satu atau lebih foto. Foto harus berformat JPEG/JPG. Seret file ke area dropzone, atau klik untuk memilih dari file manager.

Anda dapat mengunggah lebih dari satu foto per kendaraan. Setiap foto akan tersimpan sebagai variasi gambar yang dapat dilihat di halaman detail. Minimal satu foto diperlukan saat pendaftaran.

Klik "Daftarkan Kendaraan"

Klik tombol Daftarkan Kendaraan untuk menyimpan. Sistem akan mengirimkan data ke POST /api/enrolled-plates menggunakan multipart/form-data. Setelah berhasil tersimpan, data akan muncul di tabel enrollment.


Mengedit Enrollment Plat

Buka enrollment yang ingin diedit

Klik baris manapun pada tabel, atau klik ikon Edit di kolom Aksi pada baris yang sesuai. Form edit akan terbuka sebagai modal dialog dengan data yang sudah terisi.

Ubah field yang diinginkan

Semua field yang tersedia pada form tambah dapat diubah di sini: nama pemilik, nomor plat, merek, warna, jenis kendaraan, dan status.

Kelola foto kendaraan (opsional)

  • Lihat foto saat ini — foto yang sudah tersimpan ditampilkan di bagian Gambar Saat Ini
  • Tambah foto baru — gunakan area Tambah Gambar Baru untuk mengunggah foto tambahan
  • Hapus foto lama — klik ikon hapus pada foto yang ingin dihapus dari daftar gambar saat ini

Pastikan minimal satu foto tetap tersimpan setelah pengeditan. Sistem akan menolak penyimpanan jika tidak ada foto yang tersisa.

Simpan perubahan

Klik Perbarui Kendaraan untuk menyimpan. Sistem akan memanggil PUT /api/enrolled-plates/:id.


Menghapus Enrollment Plat

Penghapusan bersifat permanen. Data tidak dapat dipulihkan setelah dihapus.

Untuk menghapus satu enrollment: klik ikon Hapus di kolom Aksi pada baris yang sesuai, kemudian konfirmasi dialog yang muncul. Dialog akan menampilkan nama pemilik dan nomor plat untuk memastikan data yang akan dihapus sudah benar.

Untuk menghapus beberapa enrollment sekaligus: centang baris yang ingin dihapus menggunakan checkbox di kolom paling kiri, lalu klik tombol Hapus Terpilih (N) di toolbar, dan konfirmasi dialog konfirmasi massal.


Pencarian dan Filter

Tabel Plate Enrollment menyediakan beberapa cara untuk menemukan data:

  • Cari berdasarkan nama pemilik atau nomor plat — ketik di kotak pencarian di toolbar; pencarian berjalan setelah jeda singkat (debounce 500ms)
  • Filter Status — pilih status dari dropdown untuk menampilkan hanya enrollment dengan status tertentu
  • Reset Filter — klik tombol Reset Filter untuk menghapus semua filter aktif sekaligus
  • Pagination — navigasi antar halaman dan atur jumlah data per halaman (default: 10 data per halaman)

Konsep Plat Nomor Indonesia

Format plat nomor kendaraan di Indonesia terdiri dari tiga bagian:

[Kode Wilayah] [Nomor] [Seri Huruf]
Contoh: B 1234 ABC
BagianDeskripsiContoh
Kode WilayahSatu atau dua huruf yang menunjukkan daerah registrasiB (Jakarta), D (Bandung), L (Surabaya)
NomorSatu hingga empat digit angka1234
Seri HurufSatu hingga tiga huruf sebagai pengenal tambahanABC

Saat memasukkan nomor plat di form Plate Enrollment, gunakan format yang konsisten dengan output mesin LPR di sistem Anda. Jika kamera LPR mengembalikan plat tanpa spasi (contoh: B1234ABC), maka daftarkan juga tanpa spasi agar pencocokan berhasil.

Beberapa kode wilayah yang umum digunakan:

KodeWilayah
BDKI Jakarta dan sekitarnya
DKota Bandung dan sekitarnya
LKota Surabaya
ABDI Yogyakarta
HKota Semarang
FBogor, Cianjur, Sukabumi
TPurwakarta, Karawang, Subang

Fitur Utama

Multi-foto per Kendaraan

Simpan beberapa foto kendaraan sebagai variasi gambar untuk referensi visual yang lebih lengkap.

CRUD Lengkap

Tambah, lihat detail, edit, dan hapus enrollment melalui antarmuka yang intuitif tanpa perlu mengakses API secara langsung.

Bulk Delete

Hapus banyak enrollment sekaligus dengan memilih baris menggunakan checkbox, menghemat waktu pengelolaan data.

Filter dan Pencarian

Temukan enrollment dengan cepat melalui pencarian nama/plat dan filter berdasarkan status kendaraan.

Status Kendaraan

Tandai kendaraan dengan status khusus (whitelist, blacklist, dan lainnya) untuk keperluan identifikasi dan tindak lanjut.

Integrasi LPR

Data enrollment langsung dipakai oleh mesin License Plate Recognition untuk pencocokan plat nomor secara real-time.


API Reference

Semua endpoint memerlukan header Authorization: Bearer <token>. Basis URL mengikuti variabel lingkungan VITE_API_URL yang dikonfigurasi pada instalasi Lenz.

Seluruh request yang mengirim data kendaraan (POST dan PUT) menggunakan Content-Type: multipart/form-data karena menyertakan file gambar.


GET /api/enrolled-plates — Daftar Plat Terdaftar

Mengambil daftar enrollment plat dengan dukungan pagination, pencarian, dan filter status.

Prop

Type

cURL — Daftar Plat Terdaftar
curl "${VITE_API_URL}/api/enrolled-plates?page=1&limit=10&search=B+1234" \
  -H "Authorization: Bearer ${TOKEN}"
Response — Daftar Plat Terdaftar
{
  "ok": true,
  "message": "successfully get enrolled plates",
  "result": {
    "limit": 10,
    "current_page": 1,
    "total_data": 2,
    "total_page": 1,
    "offset": 0,
    "vehicles": [
      {
        "id": 1,
        "unique_id": "VH-001",
        "name": "Budi Santoso",
        "plate_number": "B 1234 ABC",
        "type": "car",
        "brand": "Toyota",
        "color": "Putih",
        "status": "whitelist",
        "created_at": "2024-01-01T00:00:00Z",
        "updated_at": "2024-01-01T00:00:00Z",
        "deleted_at": null,
        "vehicles": [
          { "id": 1, "enrolled_plate_id": 1, "variation": 1, "created_at": "2024-01-01T00:00:00Z" }
        ]
      }
    ]
  }
}

POST /api/enrolled-plates — Tambah Plat Baru

Mendaftarkan satu kendaraan baru ke sistem. Content-Type harus multipart/form-data.

Prop

Type

cURL — Tambah Plat Baru
curl -X POST "${VITE_API_URL}/api/enrolled-plates" \
  -H "Authorization: Bearer ${TOKEN}" \
  -F "name=Budi Santoso" \
  -F "plate_number=B 1234 ABC" \
  -F "brand=Toyota" \
  -F "color=Putih" \
  -F "type=car" \
  -F "status=whitelist" \
  -F "images=@/path/to/foto-kendaraan.jpg"
Response — Tambah Plat Baru
{
  "ok": true,
  "message": "successfully enrolled plate",
  "result": {
    "id": 42,
    "unique_id": "VH-042",
    "name": "Budi Santoso",
    "plate_number": "B 1234 ABC",
    "type": "car",
    "brand": "Toyota",
    "color": "Putih",
    "status": "whitelist",
    "created_at": "2024-06-01T08:00:00Z",
    "updated_at": "2024-06-01T08:00:00Z",
    "deleted_at": null
  }
}

GET /api/enrolled-plates/:id — Detail Plat

Mengambil detail lengkap satu enrollment plat berdasarkan ID numeriknya, termasuk daftar variasi gambar.

cURL — Detail Plat
curl "${VITE_API_URL}/api/enrolled-plates/42" \
  -H "Authorization: Bearer ${TOKEN}"
Response — Detail Plat
{
  "ok": true,
  "message": "successfully get detail enrolled plate",
  "vehicle": {
    "id": 42,
    "unique_id": "VH-042",
    "name": "Budi Santoso",
    "plate_number": "B 1234 ABC",
    "type": "car",
    "brand": "Toyota",
    "color": "Putih",
    "status": "whitelist",
    "created_at": "2024-06-01T08:00:00Z",
    "updated_at": "2024-06-01T08:00:00Z",
    "deleted_at": null,
    "vehicles": [
      { "id": 10, "enrolled_plate_id": 42, "variation": 1, "created_at": "2024-06-01T08:00:00Z" }
    ]
  }
}

PUT /api/enrolled-plates/:id — Update Plat

Memperbarui data enrollment plat yang sudah ada. Content-Type harus multipart/form-data. Field name, plate_number, dan brand tetap wajib diisi meskipun nilainya tidak berubah.

Prop

Type

cURL — Update Plat
curl -X PUT "${VITE_API_URL}/api/enrolled-plates/42" \
  -H "Authorization: Bearer ${TOKEN}" \
  -F "name=Budi Santoso" \
  -F "plate_number=B 1234 ABC" \
  -F "brand=Toyota" \
  -F "status=blacklist" \
  -F "images=@/path/to/foto-baru.jpg"

DELETE /api/enrolled-plates/:id — Hapus Plat

Menghapus enrollment plat secara permanen beserta seluruh data foto yang terkait.

cURL — Hapus Plat
curl -X DELETE "${VITE_API_URL}/api/enrolled-plates/42" \
  -H "Authorization: Bearer ${TOKEN}"
Response — Hapus Plat
{
  "ok": true,
  "message": "successfully deleted enrolled plate"
}

GET /api/vehicles — Daftar Kendaraan

Mengambil daftar kendaraan yang tersedia di sistem. Endpoint ini digunakan secara internal untuk keperluan referensi data kendaraan.

cURL — Daftar Kendaraan
curl "${VITE_API_URL}/api/vehicles" \
  -H "Authorization: Bearer ${TOKEN}"

GET /api/enrolled-plates/statuses — Status Enrollment

Mengambil ringkasan jumlah enrollment yang dikelompokkan berdasarkan status. Digunakan untuk menampilkan pilihan filter status di toolbar.

cURL — Status Enrollment Plat
curl "${VITE_API_URL}/api/enrolled-plates/statuses" \
  -H "Authorization: Bearer ${TOKEN}"
Response — Status Enrollment Plat
{
  "ok": true,
  "message": "success",
  "result": {
    "total": 150,
    "statuses": [
      { "status": "whitelist", "total": 100 },
      { "status": "blacklist", "total": 30 },
      { "status": "normal", "total": 20 }
    ]
  }
}

Format Foto Kendaraan

  • Format file — JPEG atau JPG saja; file PNG atau format lain tidak diterima
  • Jumlah foto — minimal satu foto per enrollment; tidak ada batas maksimum yang didokumentasikan, namun rekomendasi 2–3 foto (tampak depan, tampak belakang, dan tampak samping) untuk referensi visual yang lebih baik
  • Resolusi — rekomendasi minimum 640×480 piksel; foto beresolusi rendah dapat menyulitkan identifikasi visual
  • Komposisi — plat nomor harus terlihat jelas dan tidak tertutup; pencahayaan merata; hindari foto malam hari tanpa lampu yang memadai
  • Kualitas — tidak buram, tidak terpotong di area plat, tidak terhalang benda atau orang lain
  • Ukuran file — tidak ada batasan ukuran yang ditetapkan secara eksplisit, namun disarankan di bawah 5 MB per file untuk performa upload yang optimal

Foto kendaraan di Plate Enrollment berfungsi sebagai referensi visual bagi operator, bukan sebagai input untuk algoritma pencocokan. Pencocokan LPR tetap dilakukan berdasarkan string nomor plat, bukan kesamaan gambar kendaraan.


Tips dan Troubleshooting


Selanjutnya

On this page