QR Code dengan ZXing.Net

Soeleman 1 Maret 2017

QR Code dengan ZXing.Net

Barcode adalah cara agar mesin/sensor dapat membaca tanda dan menggunakan data yang ada didalamnya. Perkembangannya cukup banyak jenis yang dibuat. Jenis yang populer sekarang adalah QR Code. Kita mendapati itu dimana-mana, apalagi kebanyakkan pengguna mobile dapat menggunakan perangkatnya itu sebagai barcode scanner.

Tentu sebagai developer dituntut juga bisa ikut 'trend' yang ada. Yang muncul dipikiran adalah betapa rumitnya bilamana harus mempelajari, menggunakan dan membuat barcode seperti itu. Apakah begitu? Kalau kita mencari di internet lewat mesin pencari semacam Google. Kita dengan mudah mendapakan contoh QR Code. Mari kita gunakan itu sebagai sumber test barcode.

Google Image QR Code

ZXing.Net

Banyak library di .Net untuk membaca dan membuat barcode. Salah satunya ZXing.Net. Walaupun masih Beta, tapi hasil dari library baik sekali dan tersedia di banyak platform. Entah belum di "Release", mungkin masih ingin di tambahkan Barcode Format-nya?. Untuk menggunakannya sederhana, bisa add reference atau lewat NuGet(Package ZXing.Net).

alt text

ZXing.Net adalah port dari Java project ZXing yang bertujuan sama; barcode. Dan library ini, media barcode yang di gunakan adalah Image/Bitmap. Jadi lebih bisa di bilang, bekerja dengan ZXing.Net adalah membaca dan membuat barcode lewat Image Barcode.

Dengan bantuan ZXing.Net, membaca QR Code seperti ini tidak masalah. Note: QR Code Monalisa di bawah bukan QR Code yang umum. Ini sudah di modifikasi sedemikan rupa, sehingga walaupun terlihat seperti itu -- tepat valid dan bisa di baca.

alt text

Gambar di bawah dengan software yang sama, juga secara automatis membaca barcode dengan format lain. Terlihat jenis barcode yang di baca.

alt text

Membaca Barcode

Dengan ZXing.Net dapat membaca image barcode dalam banyak format. Format seperti UPC-A, UPC-E, EAN-8, EAN-13, Code 39, Code 93, Code 128, ITF, Codabar, MSI, RSS-14 (semua variasi), QR Code, Data Matrix, Aztec dan PDF-417.

ZXing.Net dapat membaca image barcode ini dengan menganalisa dan mengenali berdasarkan pattern yang terdapat dalam library ini. Prosesnya cukup panjang dan bisa dilihat source-code-nya.

Enaknya developer yang akan menggunakannya cukup sederhana sekali. Seperti yang terlihat pada code di bawah.

Ada beberapa opsi (tidak terlihat di sini) untuk meningkatkan kemampuan membacanya. Seperti AutoRotate, yang akan berguna bila mendapatkan image barcode dari kamera (Video). Code disini hanya untuk memberi gambaran pengunaan dasar library ini.

< VB.NET >

alt text

< C# >

alt text

Dengan dua baris code, kita sudah dapat membaca isi dari image barcode. Dan menggunakan method itu juga sederhana. Seperti code dibawah.

< VB.NET >

alt text

< C# >

alt text

Membuat Barcode

Format yang didukung oleh ZXing.Net untuk membuat barcode cukup banyak. Seperti UPC-A, EAN-8, EAN-13, Code 39, Code 128, ITF, Codabar, Plessey, MSI, QR Code, PDF-417, Aztec dan Data Matrix.

Dan designer library ini juga membuat API-nya sederhana. Yang perlu di perhatikan adalah Format Property pada Class BarcodeWriter. Dan juga pengetahuan atas Format yang akan di gunakan.

Seperti pada code di bawah, kita akan membuat QR Code. Dan untuk jenis barcode seperti ini, ukurannya diharapkan berbentuk kotak. Yang maksud, panjang dan lebarnya sama. Untuk jenis barcode lainnya, tentu akan berbeda ukuran dan data yang bisa di-simpan/encode ke dalam image barcode-nya.

< VB.NET >

alt text

< C# >

alt text

Dan penggunaanya juga sederhana. Seperti yang terlihat di bawah.

< VB.NET >

alt text

< C# >

alt text

Penutup

Bekerja dengan barcode dalam .Net akan terbantu sekali dengan menggunakan ZXing.Net. Kalau berpikir bekerja dengan QR Code adalah pekerjaan sulit. Semoga jadi lebih mudah dengan tulisan ini.

Referensi

Perhatian! Code yang ditampilkan dalam tulisan ini merupakan ilustrasi dari yang ingin dipaparkan dan bukan production ready code. Sudah banyak kejadian karena asal meng-copy-and-paste tanpa mengerti code yang diambil itu ke dalam production. Selain itu perlu ada tambahan code dan test sebelum siap untuk digunakan secara utuh.