Anda di halaman 1dari 5

Android Studio Cara Membuat QR Code

dan Barcode Scanner


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:

Jangan lupa untuk menambahkan permission untuk menggunakan Camera di


AndriodManifest.xml dengan menambahkan baris berikut di atas tag <applications>
</aplication>:

<uses-permission android:name="android.permission.CAMERA"/>
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 'com.journeyapps:zxing-android-embedded:3.4.0'

3. Inisialisasi Scanner View

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

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.

5. Tambahkan Handler untuk hasil scan

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

Berikut tampilan source code lengkap pada MainActivity.java:

package daniyusuf.com.qrcodescanner;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;

import org.json.JSONException;
import org.json.JSONObject;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private Button buttonScan;


private TextView textViewName, textViewAddress;
private EditText editTextAddress;

private IntentIntegrator qrScan;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

buttonScan = (Button) findViewById(R.id.buttonScan);


editTextAddress = (EditText) findViewById(R.id.editTextAddress);
qrScan = new IntentIntegrator(this);

buttonScan.setOnClickListener(this);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode,
resultCode, data);
if (result != null) {
if (result.getContents() == null) {
Toast.makeText(this, "Result Not Found", Toast.LENGTH_LONG).show();
} else {
try {
JSONObject obj = new JSONObject(result.getContents());
textViewAddress.setText(obj.getString("address"));
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(this, result.getContents(),
Toast.LENGTH_LONG).show();
editTextAddress.setText(result.getContents());
}
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
@Override
public void onClick(View view) {
qrScan.initiateScan();
}
}

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/hero9"
android:padding="10dp"
tools:context=".MainActivity">

<Button
android:id="@+id/buttonScan"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Scan QR Code" />

<EditText
android:id="@+id/editTextAddress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/buttonScan"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:ems="10"
android:inputType="textPersonName"
android:text="Url"
android:textColor="@color/zxing_possible_result_points" />

</RelativeLayout>

6. Run project anda

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

Anda mungkin juga menyukai