Scan QR Code Menggunakan Library ZXing Android Embedded

Pelajari cara mudah membuat fitur scan QR Code di aplikasi Android menggunakan library ZXing Android Embedded. Lengkap dengan langkah-langkah instalasi, konfigurasi, dan contoh kode.
Apa Itu ZXing Android Embedded?
ZXing (dibaca Zebra Crossing) adalah library open-source untuk membaca dan membuat barcode maupun QR code.
Versi ZXing Android Embedded merupakan implementasi khusus Android yang lebih mudah digunakan, tanpa perlu menginstal aplikasi eksternal seperti Barcode Scanner.
Dengan library ini, kamu dapat menambahkan fitur pemindaian QR Code langsung di dalam aplikasi hanya dengan beberapa baris kode.
Kelebihan ZXing Android Embedded
Beberapa alasan kenapa banyak developer memilih ZXing Android Embedded:
- Integrasi langsung ke aplikasi (tidak perlu app scanner terpisah)
- Performa cepat dan ringan
- Mendukung berbagai format barcode (QR, EAN, UPC, Code128, dll.)
- Mudah dikustomisasi (layout kamera, suara beep, dll.)
- Cocok untuk semua versi Android modern
⚙️ Langkah-langkah Implementasi
1. Tambahkan Dependensi di Gradle
Buka file app/build.gradle
dan tambahkan dependensi berikut:
dependencies {
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
implementation 'com.google.zxing:core:3.5.2'
}
Pastikan juga minSdkVersion
kamu >= 21 agar kompatibel.
2. Tambahkan Permission di AndroidManifest.xml
Kamu membutuhkan izin kamera untuk melakukan pemindaian.
<uses-permission android:name="android.permission.CAMERA" />
Tambahkan juga activity bawaan ZXing (opsional jika tidak membuat custom scanner):
<activity android:name="com.journeyapps.barcodescanner.CaptureActivity"
android:screenOrientation="portrait"
android:stateNotNeeded="true" />
3. Mulai Scan QR Code dari Activity
Gunakan IntentIntegrator untuk memulai proses pemindaian QR code:
import com.journeyapps.barcodescanner.IntentIntegrator;
import com.journeyapps.barcodescanner.IntentResult;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btnScan).setOnClickListener(v -> {
new IntentIntegrator(this)
.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE)
.setPrompt("Arahkan kamera ke QR Code")
.setCameraId(0)
.setBeepEnabled(true)
.setBarcodeImageEnabled(false)
.initiateScan();
});
}
@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, "Hasil: " + result.getContents(), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "Scan dibatalkan", Toast.LENGTH_SHORT).show();
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
}
4. (Opsional) Membuat Custom CaptureActivity
Jika kamu ingin tampilan scanner yang lebih sesuai dengan desain aplikasi, buat custom activity:
public class CustomScannerActivity extends CaptureActivity {
// Kosongkan saja jika hanya ingin mengubah orientasi atau layout
}
Lalu panggil dengan:
new IntentIntegrator(this)
.setCaptureActivity(CustomScannerActivity.class)
.initiateScan();
Tips Optimasi Penggunaan ZXing
- Gunakan Flashlight toggle untuk membantu scanning di tempat gelap
- Batasi format barcode agar proses scan lebih cepat
- Gunakan Thread terpisah jika ingin memproses hasil QR Code (misalnya kirim ke server)
- Untuk tampilan modern, kombinasikan dengan Material Design Components
Kesimpulan
Library ZXing Android Embedded adalah solusi terbaik untuk menambahkan fitur scan QR Code di aplikasi Android dengan cepat dan efisien.
Kamu tidak perlu membuat scanner dari nol, cukup tambahkan dependensi dan beberapa baris kode, aplikasi siap digunakan.