Cara Kerja Barcode: Bagaimana Garis-Garis Menyimpan Data

Kalau minggu lalu kita membedah QR code, sekarang saatnya ke “kakeknya”: barcode. Setiap belanja di supermarket, buku pinjam di perpustakaan, atau paket yang tiba di kurir — selalu ada deretan garis hitam-putih dengan angka di bawahnya. Bentuknya sederhana, tapi teknologi ini sudah dipakai lebih dari 50 tahun dan masih jadi tulang punggung ritel dunia. Bagaimana garis-garis itu bisa menyimpan data? Ini catatan belajar saya.

Sejarah: dari paten 1952 sampai scan pertama 1974

Kisahnya dimulai tahun 1948. Bernard Silver, mahasiswa pascasarjana Drexel Institute of Technology di Philadelphia, tidak sengaja mendengar presiden jaringan supermarket Food Fair meminta riset sistem untuk membaca data produk otomatis di kasir. Silver bercerita ke temannya, Norman Joseph Woodland, dan mereka mulai menggarap ide tersebut. Inspirasinya datang dari kode Morse — titik dan garis yang diperluas menjadi batang tebal dan tipis. Versi awal Woodland bahkan berbentuk lingkaran konsentris (bullseye), dan keduanya memegang paten AS tahun 1952.

Tapi butuh lebih dari 20 tahun sampai idenya benar-benar laku. Tahun 1972, supermarket Sainsbury’s di Inggris sudah memakai sistem barcode (dikembangkan Plessey) untuk rak. Lalu pada 1973, Uniform Grocery Product Code Council memilih desain George Laurer dari IBM — barcode batang vertikal yang lebih mudah dicetak daripada lingkaran Woodland. Desain inilah yang menjadi UPC.

Momen bersejarah: Juni 1974, di supermarket Marsh, Troy, Ohio, sebuah scanner memindai barcode UPC pada bungkus permen karet Wrigley’s — scan komersial pertama yang berhasil. Sejak itu barcode menyebar ke seluruh dunia dan menstandardisasi perdagangan ritel modern.

Cara kerja dasar: garis gelap-terang itu bit

Prinsip barcode 1D (satu dimensi) sederhana: garis gelap (bar) dan terang (spasi) merepresentasikan bit, dan lebarnya bervariasi antara 1 sampai 4 unit. Scanner menyorotkan cahaya (laser atau LED) ke barcode; bar gelap memantulkan sedikit cahaya, spasi terang memantulkan banyak. Sensor membaca pola pantulan itu sebagai deretan 0 dan 1, lalu menerjemahkannya menjadi angka — biasanya 12 atau 13 digit.

Angka di bawah garis bukan sekadar pajangan: itu human-readable, supaya manusia bisa membaca/mengetik kode kalau scanner bermasalah. Barcode yang sama bisa discan dari kiri ke kanan maupun sebaliknya — sistem paritas mengatur itu (lebih detail di bawah).

Anatomi barcode EAN-13

Standar yang paling umum di dunia ritel (termasuk Indonesia) adalah EAN-13 — 13 digit, diatur oleh organisasi global GS1. Ilustrasi di bawah adalah EAN-13 untuk kode 8992809101014 (899 = GS1 Indonesia):

Anatomi barcode EAN-13: quiet zone, guard pattern, 6 digit kiri, guard tengah, 6 digit kanan
Anatomi EAN-13: 95 modul = guard + 12 digit + guard, diapit quiet zone
  • Quiet zone (abu-abu): area kosong di kiri-kanan, wajib ada supaya scanner tahu di mana barcode dimulai/berakhir.
  • Guard pattern (merah): pola pembatas di awal dan akhir (101), dan guard tengah (01010) yang memisahkan dua bagian digit.
  • 6 digit kiri (biru): paritas ganjil/genap mengikuti digit pertama — ini kunci pembacaan dua arah.
  • 6 digit kanan (oranye): pola bar dibalik (mirror) dari kiri, supaya scanner bisa membaca mundur.
  • Check digit (digit ke-13): hasil perhitungan matematis untuk mendeteksi kesalahan baca.

13 digit itu isinya apa?

EAN-13 menyimpan angka yang terstruktur:

  • GS1 prefix (3 digit pertama) — menandai negara/region registrasi. 899 = Indonesia, 690-699 = China, 880 = Korea Selatan, dst.
  • Kode produsen (4-5 digit) — diberikan GS1 ke perusahaan.
  • Kode produk (3-5 digit) — nomor item yang ditetapkan produsen.
  • Check digit (1 digit terakhir) — pengaman kesalahan baca.

Struktur di atas adalah alokasi logis; yang penting secara fisik adalah 13 digit itu di-encode menjadi 95 modul (kotak terkecil) dengan pola tetap: tiap digit = 2 bar + 2 spasi dengan total lebar 7 modul, dan lebar tiap elemen 1-4 unit.

Check digit: pengaman kesalahan baca

Digit terakhir dihitung dari 12 digit sebelumnya dengan rumus bobot selang-seling 3 dan 1 (modulo 10). Contoh untuk 899280910101:

  1. Tulis 12 digit: 8 9 9 2 8 0 9 1 0 1 0 1
  2. Kalikan dari kanan dengan bobot 3,1,3,1,… (digit paling kanan berbobot 3): 8×1 + 9×3 + 9×1 + 2×3 + 8×1 + 0×3 + 9×1 + 1×3 + 0×1 + 1×3 + 0×1 + 1×3 = 76
  3. Check digit = (10 − (76 mod 10)) mod 10 = (10 − 6) = 4

Kalau scanner membaca salah satu digit, hasil perhitungannya tidak cocok dan sistem tahu ada kesalahan. Metode ini mendeteksi semua kesalahan satu digit dan sekitar 90% kesalahan tertukar posisi (transposisi). Itulah kenapa barcode yang kusut pun sering ketahuan “salah baca” daripada diam-diam menghasilkan harga keliru.

Jenis barcode 1D lain

JenisDigit/KarakterDipakai untuk
UPC-A12 digitRitel Amerika Utara
EAN-1313 digitRitel global (termasuk Indonesia)
EAN-88 digitProduk kecil (permen, kosmetik mini)
Code 39A-Z, 0-9, simbolIndustri, logistik, militer
Code 128ASCII penuh (128 karakter)Pengiriman, logistik, label GS1-128
ITF-1414 digitKarton/kemasan luar (GS1)

Contoh barcode EAN-13 (prefix 899 Indonesia)

Ini barcode EAN-13 asli yang di-generate dari kode 8992809101014 — coba scan dengan kamera HP (biasanya aplikasi kamera bawaan atau Google Lens bisa membacanya sebagai teks/angka):

Contoh barcode EAN-13 dengan prefix 899 Indonesia
EAN-13 8992809101014 — coba scan!

Barcode 1D vs QR Code 2D

Perbandingan barcode 1D dan QR code 2D
Barcode 1D vs QR Code 2D
AspekBarcode 1DQR Code 2D
Arah penyimpanan1 arah (horizontal)2 arah (baris + kolom)
Kapasitas12-13 digit / ±100 karakters.d. 7.089 digit / 2.953 byte
Toleransi posisiHarus tegakBisa miring (360°)
Toleransi kerusakanRendahTinggi (s.d. 30% dengan Reed-Solomon)
Penggunaan utamaKode produk retailURL, pembayaran, Wi-Fi, identitas

Kesimpulan

Barcode membuktikan bahwa teknologi paling sukses kadang yang paling sederhana: garis gelap-terang dengan lebar berbeda, dibaca lewat pantulan cahaya. Ditambah check digit untuk pengaman, barcode bertahan puluhan tahun karena murah, andal, dan universal. QR code mewarisi filosofi yang sama — hanya saja “menumpuk” data ke dua arah supaya kapasitasnya jauh lebih besar. Jadi kalau sudah paham barcode, memahami QR code jadi lebih mudah: keduanya adalah cara mengubah data menjadi pola visual yang bisa dibaca mesin.

Sumber

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.