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.
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.
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:
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.
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.
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.
- Barang disimpan di
tblBarang. - Setiap barang memiliki
KodeBarangunik. - Query atau calculated control menambahkan penanda Code 39.
- Report menampilkan data menggunakan font Code 39.
- Label barcode dicetak.
- Scanner membaca barcode.
- Hasil scan masuk sebagai kode barang.
- 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.
Tidak ada komentar
Posting Komentar
Punya pertanyaan, saran, atau kritik seputar topik ini? Yuk, tulis di kolom komentar.