Home Pemrograman / script

Ketika aplikasi inventaris masih berisi puluhan barang, mengetik kode barang secara manual mungkin belum terasa merepotkan. Kita cukup membuka form, mengetik kode, lalu mencari data yang dibutuhkan.

Masalahnya mulai terasa ketika jumlah barang bertambah.

Kode seperti RL000123, RL000124, dan RL000125 terlihat sederhana. Namun dalam pekerjaan berulang, salah mengetik satu angka saja dapat membuat pencarian mengarah ke barang yang salah atau tidak menemukan data sama sekali.

Salah satu cara yang cukup praktis untuk aplikasi inventaris lama berbasis Microsoft Access 2007 adalah menambahkan barcode pada label barang.

Pada tutorial ini kita akan membuat barcode Code 39 dari field kode barang, menampilkannya pada Report Access, lalu menyiapkan label agar dapat diuji menggunakan barcode scanner.

Tujuan tutorial:
Data asli tetap disimpan sebagai kode barang biasa. Tampilan barcode dibuat pada Query atau Report sehingga kita tidak perlu menyimpan gambar barcode satu per satu di database.

Memahami Cara Kerja Barcode di Microsoft Access

Sebelum membuka Design View, ada satu konsep yang perlu dipahami.

Dalam metode yang kita gunakan, Microsoft Access tidak menggambar barcode sebagai file gambar. Kita menyiapkan teks Code 39, kemudian menampilkannya menggunakan font barcode yang sesuai.

Misalnya kode barang kita adalah:

RL000123

Dokumentasi Libre Barcode untuk Code 39 menjelaskan bahwa teks yang akan dienkode dibungkus dengan karakter asterisk *. Jadi data yang diberikan ke font menjadi:

*RL000123*

Karakter asterisk tersebut berfungsi sebagai penanda start dan stop Code 39. Libre Barcode juga menjelaskan bahwa varian Code 39 biasa mendukung karakter terbatas, termasuk angka, huruf kapital A sampai Z, serta beberapa karakter khusus.

Setelah teks *RL000123* menggunakan font Code 39, bentuknya akan tampil sebagai pola barcode.

Catatan:
Tutorial ini menggunakan Code 39. Jangan menerapkan cara yang sama pada Code 128. Code 128 memerlukan proses encoding yang berbeda dan tidak cukup dibuat hanya dengan menambahkan asterisk lalu mengganti font.

Menyiapkan Font Code 39

Kita membutuhkan font barcode yang dapat digunakan oleh Windows dan dipilih dari daftar font di Microsoft Access.

Salah satu project open source yang dapat digunakan sebagai referensi adalah Libre Barcode. Project ini menyediakan font untuk Code 39, Code 128, serta EAN-13/UPC-12.

Sumber project:

Libre Barcode Project

Dokumentasi khusus Code 39:

Libre Barcode Code 39 Documentation

Libre Barcode menyediakan beberapa varian Code 39. Dua yang mudah dikenali adalah:

  • Libre Barcode 39 — barcode tanpa teks di bawahnya.
  • Libre Barcode 39 Text — barcode dengan teks yang dapat dibaca manusia di bawahnya.

Setelah mendapatkan file font, install font di Windows. Tutup Microsoft Access jika sedang terbuka, kemudian buka kembali database setelah font terpasang.

Tujuannya sederhana: font Code 39 harus muncul pada pilihan font di Property Sheet atau pengaturan format kontrol.

Menyiapkan Field Kode Barang

Anggap kita memiliki tabel inventaris bernama:

tblBarang

Struktur sederhananya dapat dibuat seperti berikut:

Field Data Type Fungsi
IDBarang AutoNumber Primary Key
KodeBarang Text Kode unik barang
NamaBarang Text Nama barang

Karena kita membahas Access 2007, tipe data teks pada versi tersebut dikenal sebagai Text. Pada Access versi yang lebih baru, nama tipe ini dikenal sebagai Short Text.

Contoh isi tabel:

IDBarang KodeBarang NamaBarang
1 RL000123 Laptop Lenovo
2 RL000124 Monitor 24 Inch
3 RL000125 Keyboard USB

Saya menyarankan menyimpan KodeBarang sebagai Text.

Alasannya, kode inventaris sering memiliki huruf dan angka nol di depan. Nilai seperti RL000123 memang bukan angka untuk dihitung. Nilai tersebut adalah identitas barang.

Data asli juga sebaiknya tetap disimpan tanpa karakter asterisk.

RL000123

Bukan:

*RL000123*

Kita akan menambahkan karakter Code 39 hanya ketika data disiapkan untuk ditampilkan sebagai barcode.

Membuat Query Barcode Barang

Microsoft menjelaskan bahwa Access dapat menggunakan expression pada calculated control di Form atau Report. Microsoft juga menyebutkan bahwa jika Form atau Report berbasis Query, expression dapat ditempatkan pada Query.

Untuk tutorial ini, kita akan menggunakan Query agar alurnya lebih mudah dilihat.

Buat Query baru dari tblBarang, lalu tambahkan field:

IDBarang
KodeBarang
NamaBarang

Pada kolom kosong di Query Design, masukkan expression berikut:

BarcodeText: "*" & [KodeBarang] & "*"

Simpan Query dengan nama:

qryBarcodeBarang

Ketika Query dijalankan, hasilnya akan memiliki field tambahan.

KodeBarang NamaBarang BarcodeText
RL000123 Laptop Lenovo *RL000123*
RL000124 Monitor 24 Inch *RL000124*
RL000125 Keyboard USB *RL000125*

Perhatikan bahwa field KodeBarang tidak berubah. Query hanya menghasilkan field baru bernama BarcodeText.

Inilah data yang nantinya kita tampilkan menggunakan font Code 39.

Membuat Report untuk Label Barcode

Setelah Query siap, buat Report baru.

Gunakan:

qryBarcodeBarang

sebagai Record Source Report.

Kita dapat membuat Report melalui Report Wizard, kemudian merapikan tampilannya melalui Design View.

Tambahkan informasi yang memang dibutuhkan pada label. Misalnya:

NamaBarang
BarcodeText
KodeBarang

Susun kontrol secara sederhana.

Monitor 24 Inch

[ BARCODE ]

RL000124

Kode barang tetap ditampilkan menggunakan font biasa. Hal ini berguna sebagai teks yang dapat dibaca manusia jika scanner mengalami masalah.

Mengubah BarcodeText Menjadi Barcode

Buka Report dalam Design View.

Klik Text Box yang menampilkan field BarcodeText. Pastikan Control Source mengarah ke:

BarcodeText

Kemudian ubah font Text Box tersebut menjadi font Code 39 yang sudah di-install.

Misalnya:

Libre Barcode 39

atau:

Libre Barcode 39 Text

Setelah font diterapkan, nilai seperti:

*RL000123*

akan ditampilkan sebagai pola barcode Code 39.

Perbesar ukuran font sampai barcode cukup jelas pada label. Jangan hanya menilai barcode dari tampilan di layar. Hasil akhir harus diuji setelah dicetak.

Bisa Juga Tanpa Membuat Field BarcodeText di Query

Jika Report hanya digunakan sekali dan kita ingin struktur yang lebih singkat, expression dapat ditulis langsung pada Control Source sebuah Text Box.

Microsoft mendokumentasikan bahwa calculated control dibuat dengan memasukkan expression pada properti Control Source.

Pada Text Box barcode, isi Control Source dengan:

="*" & [KodeBarang] & "*"

Setelah itu, ubah font Text Box menjadi font Code 39.

Jadi kita memiliki dua pilihan.

Pilihan pertama: membuat BarcodeText pada Query.

Pilihan kedua: menulis expression langsung pada Control Source di Report.

Untuk project inventaris yang memiliki beberapa Report, saya lebih menyukai Query karena nama field BarcodeText mudah dikenali dan dapat digunakan kembali.

Menata Label Agar Mudah Dipindai

Barcode yang terlihat bagus belum tentu mudah dibaca scanner.

Ketika membuat label, hindari menempelkan border atau teks terlalu dekat dengan barcode. Sisakan ruang kosong di sisi barcode.

Gunakan warna barcode gelap pada latar yang terang. Untuk pengujian awal, kombinasi hitam dan putih adalah pilihan yang sederhana.

Jangan membuat ukuran barcode terlalu kecil hanya karena ingin memasukkan banyak informasi ke dalam satu label.

Jika label berisi terlalu banyak teks, pertimbangkan untuk menampilkan informasi penting saja:

Nama Barang
Barcode
Kode Barang

Informasi lain tetap dapat dilihat dari aplikasi setelah kode barang dipindai.

Prinsipnya:
Label berfungsi sebagai penghubung ke data inventaris. Label tidak harus memuat seluruh isi record barang.

Mencetak Label dari Report Access

Salah satu alasan menggunakan Report adalah karena kita dapat mengatur tata letak cetak.

Atur ukuran Detail Section sesuai ukuran label yang digunakan. Jika kertas label memiliki beberapa kolom, gunakan pengaturan kolom pada Page Setup dan sesuaikan jarak antar-label.

Sebelum mencetak seluruh data inventaris, lakukan uji cetak beberapa barcode.

Misalnya cetak kode:

RL000123
RL000124
RL000125

Kemudian scan ketiganya.

Pastikan scanner mengembalikan kode barang yang benar.

Jangan langsung mencetak ratusan label.
Ukuran font, printer, kualitas cetak, bahan label, dan scanner dapat memengaruhi hasil. Buat sampel dan uji menggunakan perangkat yang benar-benar akan dipakai.

Menguji Barcode Scanner Sebelum Membuat VBA

Sebelum membuat Form dan kode VBA, ada pengujian sederhana yang sebaiknya dilakukan.

Buka Notepad di Windows.

Klik area pengetikan, kemudian scan barcode yang sudah dicetak.

Banyak scanner mendukung mode keyboard wedge. Dalam mode ini, Windows menerima hasil scan seperti input dari keyboard. Dokumentasi Microsoft tentang konfigurasi barcode scanner juga menjelaskan bahwa keyboard wedge memungkinkan data hasil scan masuk pada posisi kursor seperti data yang diketik.

Jika barcode kita berisi:

RL000123

maka Notepad seharusnya menerima:

RL000123

Jika hasil scan salah saat diuji di Notepad, jangan buru-buru mengubah VBA Access. Periksa barcode, font, hasil cetak, dan konfigurasi scanner terlebih dahulu.

Membuat Form Scan Barang di Access

Setelah barcode berhasil dibaca scanner, kita dapat membuat Form sederhana.

Tambahkan Text Box dan beri nama:

txtScanBarcode

Saat scanner bekerja seperti keyboard, hasil scan dapat masuk ke Text Box yang sedang aktif.

Untuk contoh sederhana, kita dapat menggunakan event After Update pada Text Box.

Private Sub txtScanBarcode_AfterUpdate()

    Dim Kode As String

    Kode = Nz(Me.txtScanBarcode.Value, "")

    If Kode = "" Then Exit Sub

    Me.Filter = "[KodeBarang]='" & Replace(Kode, "'", "''") & "'"
    Me.FilterOn = True

End Sub

Contoh di atas mengambil nilai dari txtScanBarcode, lalu memfilter Form berdasarkan field KodeBarang.

Jika scanner membaca:

RL000123

Form akan mencoba menampilkan record dengan KodeBarang tersebut.

Kode ini adalah contoh dasar. Pada aplikasi inventaris yang sebenarnya, proses setelah scan dapat berbeda.

Misalnya:

  • membuka detail barang;
  • mencatat barang masuk;
  • mencatat barang keluar;
  • menambah transaksi stock opname;
  • atau memindahkan fokus ke field jumlah.

Karena itu, bagian scanner sebaiknya disesuaikan dengan alur kerja aplikasi, bukan sekadar menambahkan VBA sebanyak mungkin.

Masalah yang Sering Muncul Saat Membuat Barcode

Barcode tampil sebagai teks biasa

Periksa apakah font Code 39 sudah terpasang dan sudah dipilih pada Text Box barcode.

Nilai *RL000123* memang akan terlihat sebagai teks biasa jika menggunakan Arial atau font teks lainnya.

Barcode terlihat tetapi tidak dapat dipindai

Pastikan data yang diberikan ke font Code 39 sudah memiliki penanda start dan stop sesuai metode font yang digunakan.

*RL000123*

Periksa juga karakter pada kode barang. Dokumentasi Libre Barcode menyebutkan bahwa Code 39 standar memiliki set karakter terbatas dan menggunakan huruf kapital A sampai Z.

Barcode terlalu kecil

Perbesar ukuran font pada Report dan cetak ulang sampel.

Jangan menilai hanya dari Print Preview. Uji hasil fisik menggunakan scanner.

Angka nol di depan hilang

Periksa tipe data KodeBarang.

Jika kode merupakan identitas seperti 000123 atau RL000123, simpan sebagai Text.

Scanner memasukkan kode tetapi Form tidak bereaksi

Uji scanner di Notepad terlebih dahulu.

Perhatikan juga apakah scanner mengirim suffix seperti Enter setelah scan. Konfigurasi scanner berbeda-beda, sehingga event yang digunakan pada Form harus disesuaikan dengan perilaku perangkat.

Kenapa Saya Memilih Code 39 untuk Tutorial Ini?

Code 39 bukan barcode paling padat. Namun untuk tutorial dasar menggunakan font pada Microsoft Access, alurnya mudah dipahami.

IDAutomation, dalam tutorial integrasi Code 39 untuk Microsoft Office, juga menunjukkan pendekatan menambahkan karakter start dan stop pada data sebelum menerapkan font Code 39.

Libre Barcode mendokumentasikan pola yang sama untuk varian Code 39 miliknya: teks yang akan dienkode dibungkus dengan asterisk.

Karena itu, Code 39 cocok untuk menjelaskan hubungan antara:

KodeBarang
↓
Data Code 39
↓
Font barcode
↓
Report
↓
Label cetak
↓
Scanner

Jika kebutuhan aplikasi berkembang dan membutuhkan barcode yang lebih padat, Code 128 dapat dipertimbangkan. Namun gunakan encoder yang benar untuk Code 128 karena prosesnya berbeda dari Code 39.

Alur Akhir Sistem Barcode Inventaris

Setelah semua bagian disusun, alur aplikasi menjadi lebih jelas.

  1. Barang disimpan di tblBarang.
  2. Setiap barang memiliki KodeBarang unik.
  3. Query atau calculated control menambahkan penanda Code 39.
  4. Report menampilkan data menggunakan font Code 39.
  5. Label barcode dicetak.
  6. Scanner membaca barcode.
  7. Hasil scan masuk sebagai kode barang.
  8. Microsoft Access mencari atau memproses record yang sesuai.

Dengan pendekatan ini, kita tidak perlu menyimpan file gambar barcode untuk setiap barang.

Database tetap menyimpan kode barang biasa.

RL000123

Sedangkan tampilan barcode dibuat saat data ditampilkan pada Report.

Kesimpulan

Membuat barcode di Microsoft Access 2007 tidak harus dimulai dengan komponen yang rumit.

Untuk kebutuhan label inventaris sederhana, kita dapat menggunakan Code 39. Kode barang tetap disimpan sebagai teks biasa, kemudian Query atau calculated control membungkus nilainya dengan karakter asterisk.

Nilai tersebut ditampilkan pada Report menggunakan font Code 39.

Setelah label dicetak, lakukan pengujian menggunakan scanner. Uji scanner di aplikasi sederhana seperti Notepad sebelum menghubungkannya dengan Form dan VBA Access.

Pendekatan ini membuat proses troubleshooting lebih mudah. Kita dapat mengetahui apakah masalah berasal dari barcode, hasil cetak, scanner, atau kode pada Form.

Yang perlu diingat, tujuan barcode bukan sekadar membuat garis hitam pada Report. Barcode harus menghasilkan data yang sama dengan kode barang yang tersimpan di database ketika dipindai.

Baca juga :

Tidak ada komentar

Posting Komentar

Punya pertanyaan, saran, atau kritik seputar topik ini? Yuk, tulis di kolom komentar.

to Top