Kode Quick Response (QR) merupakan bentuk evaluasi dari barcode yang biasanya kita lihat pada sebuah produk. Kode QR adalah barcode dua dimensi (kode matriks) yang memungkinkan konten diterjemahkan dengan kecepatan tinggi.

Tutorial kali ini saya akan menjelaskan bagaimana menerapkan ZXING library untuk memindai atau decode barcode (memecahkan kode-kode pada barcode). Tutorial ini membuat scanner dengan menggunakan kamera and decode barcode.

1. Buat Project Baru

Untuk implementasi QR Code Scanner, kita buat sebuah project Android baru, buka File -> New -> New Project

2. Tambahkan ZXING library

Tambahkan ZXING library di proyek anda untuk mengimplementasikan pemindai, dengan cara buka file build.gradle (Modul: app) dan tambahkan kode berikut pada bagian dependencies:

compile 'me.dm7.barcodescanner:zxing:1.9'

3. Inisialisasi Scanner View

Untuk memecahkan kode-kode barcode, kita perlu menerapkan pemindai. Kita inisialisasikan ZXingScannerView pada MainActivity.java.

mScannerView = new ZXingScannerView(this);
setContentView(mScannerView);

4. Terapkan ResultHandler

Untuk mendapatkan hasil pindaian QR Code, kita akan menerapkan class ZXingScannerView.ResultHandler. Class ini akan menangani hasilnya dengan menggunakan metode handleResult(). Jadi, kita perlu menambahkan metode ini pada file MainActivity.java. Method handleResult() mendapatkan hasilnya dan menampilkannya pada alert dialog.

@Override
 public void handleResult(Result rawResult) {
        Log.v("TAG", rawResult.getText()); // Prints scan results
        Log.v("TAG", rawResult.getBarcodeFormat().toString()); 
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Scan Result");
        builder.setMessage(rawResult.getText());
        AlertDialog alert1 = builder.create();
        alert1.show();

        mScannerView.resumeCameraPreview(this);
    }

5. Tambahkan Handler untuk hasil scan

Kita tambahkan handler untuk memindai dan memulai kamera pada saat activity onResume() dan berhenti pada saat activity onPause().

 @Override
    public void onResume() {
        super.onResume();
        mScannerView.setResultHandler(this); 
        mScannerView.startCamera();         
    }
    @Override
    public void onPause() {
        super.onPause();
        mScannerView.stopCamera();           
    }

Berikut tampilan source code lengkap pada MainActivity.java:

import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

import com.google.zxing.Result;

import me.dm7.barcodescanner.zxing.ZXingScannerView;

public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler {
    private ZXingScannerView mScannerView;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mScannerView = new ZXingScannerView(this); 
        setContentView(mScannerView);
    }
    @Override
    public void onResume() {
        super.onResume();
        mScannerView.setResultHandler(this); 
        mScannerView.startCamera();          
    }

    @Override
    public void onPause() {
        super.onPause();
        mScannerView.stopCamera();         
    }

    @Override
    public void handleResult(Result rawResult) {
        Log.v("TAG", rawResult.getText()); // Prints scan results
        Log.v("TAG", rawResult.getBarcodeFormat().toString()); 
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Scan Result");
        builder.setMessage(rawResult.getText());
        AlertDialog alert1 = builder.create();
        alert1.show();

        mScannerView.resumeCameraPreview(this);
    }

}

6. Run project anda

Saat proyek anda selesai di run, maka hasil outputnya kurang lebih akan seperti ini :

Bingung tentang sourcecode atau pemrograman yang ingin dipelajari? TANYA DI SINI
Bingung cari modul, soal, pembahasan mata kuliah? CARI DI SINI