Senin, 05 Maret 2012

Membuat barcode dengan php (Script)

Apa sih barcode itu? Barcode adalah suatu simbol berbentuk garis-garis yang menyatakan suatu kode atau string karakter. Simbol ini dapat dibaca oleh suatu barcode scanner. Salah satu contoh barcode adalah simbol yang ada di produk di toko atau supermarket yang sering kita lihat.
Ternyata… di dunia ini ada banyak sekali tipe barcode. Diantara sekian banyak tipe barcode, terdapat 6 kategori barcode berdasarkan kegunaannya, yaitu: barcode untuk keperluan retail, barcode untuk keperluan packaging, barcode untuk penerbitan, barcode untuk keperluan farmasi, barcode untuk keperluan non retail, serta barcode untuk keperluan lain.
Barcode untuk keperluan retail, salah satu contohnya adalah UPC (Universal Price Codes), biasanya digunakan untuk keperluan produk yang dijual di supermarket. Barcode untuk packaging biasanya digunakan untuk pengiriman barang, dan salah satunya adalah barcode tipe ITF. Barcode untuk keperluan penerbitan, sering digunakan pada penerbitan suatu produk, misalkan barcode yang menunjukkan ISSN suatu buku. Sedangkan barcode untuk keperluan farmasi biasanya digunakan untuk identifikasi suatu produk obat-obatan. Salah satu barcode farmasi adalah barcode jenis HIBC. Sedangkan barcode untuk kepentingan non retail, misalkan barcode untuk pelabelan buku-buku yang ada di perpustakaan. Salah satu tipe barcode untuk keperluan non retail ini adalah Code 39.
Nah… pada pada artikel ini, saya hanya akan memfokuskan saja pada barcode Code 39. Barcode ini diperkenalkan oleh ANSI (American National Standards Institute). Karakter yang bisa dinyatakan ke dalam Code 39 meliputi digit angka 0-9, huruf kapital A-Z, karakter spasi, karakter ‘-’, ‘+’, ‘.’, ‘$’ dan ‘/’. Berikut ini adalah salah satu contoh tampilah barcode Code 39 untuk mensimbolkan suatu string ‘ROSIHAN ARI 1979′.


Untuk menyatakan suatu karakter atau string ke dalam bentuk barcode Code 39, caranya adalah mengapit string tersebut dengan tanda asterisk (*). Sehingga pada contoh di atas, string ‘ROSIHAN ARI 1979′ ini harus diapit dengan tanda asterisk menjadi ‘*ROSIHAN ARI 1979*’. Apa akibatnya jika tidak diapit dengan asterisk? Simbol yang muncul nantinya tidak akan bisa dibaca oleh barcode scanner.
OK… saya kira cukup pembahasan mengenai barcode, khususnya jenis Code 39 ini. Nah… kembali pada cara pembuatan barcode. Pembuatan barcode yang akan dibahas hanya akan difokuskan pada Code 39 yang diterapkan pada studi kasus pelabelan buku di perpustakaan.
Pertanyaan pertama yang mungkin ada dalam benak Anda adalah bagaimana menciptakan simbol barcode, khususnya untuk Code 39. Ya… good question.
Untuk membuat barcode Code 39, Anda bisa membeli suatu software untuk mengeneratenya. Beli??? Wah… gak ada uang tuh… So… gimana donk?? He..3x, jangan khawatir karena meskipun Anda tidak punya uang, Anda tetap bisa membuatnya yaitu dengan mendownload True Type Font (TTF) khusus untuk barcode Code 39 ini. Free kah font ini? Ya… 100% free buat Anda. Dimanakah downloadnya? OK.. akan saya bocorkan kepada Anda link untuk downloadnya yaitu di bawah ini
Setelah Anda download, selanjutnya installah ke direktori font pada sistem operasi Anda. Jika Anda menggunakan Windows, installah ke direktori C:\WINDOWS\FONTS. OK… hanya itu caranya. Trus… bagaimana cara menggunakannya?
OK… sekarang kita terapkan ke studi kasus untuk membuat label barcode yang menyatakan kode-kode buku yang ada di perpustakaan. Diharapkan nantinya kode barcode ini akan ditempelkan pada setiap buku dan dimanfaatkan untuk mempermudah transaksi di perpustakaan. Ketika proses peminjaman atau pengembalian buku, petugas perpustakaan tidak perlu mengetikkan kode buku secara manual di komputer namun hanya
melakukan scanning pada label barcode ini.
Nah… kita mulai membuatnya. Pertama-tama kita siapkan database dan tabel untuk keperluan penyimpanan data buku perpustakaan. Ini salah satu contoh query untuk membuat tabel dan datanya:

 CREATE TABLE buku ( 
kodeBuku varchar(5),
judulBuku text,
author varchar(20),
jenis varchar(10),
PRIMARY KEY (kodeBuku));

INSERT INTO `buku` VALUES ('A0001', 'Pemrograman Pascal', 'Rosihan Ari Yuana', 'Referensi');
INSERT INTO `buku` VALUES ('A0002', 'Pemrograman PHP', 'Dwi Amalia Fitriani', 'Referensi');
INSERT INTO `buku` VALUES ('A0003', 'Pengantar Jaringan Komputer', 'Faza Fauzan Kh.', 'Referensi');
INSERT INTO `buku` VALUES ('A0004', 'Teknologi Digital', 'Nada Hasanah', 'Referensi');
INSERT INTO `buku` VALUES ('A0005', 'Pemrograman ASP .NET', 'Muh. Ahsani Taqwim', 'Referensi');

OK… dari SQL di atas dapat Anda lihat terdapat sampel buku sejumlah 5 buah. He.. 3x semua anggota keluarga saya ternyata para pengarang buku 
Nah… bagaimana cara membuat script PHP untuk mengenerate label barcode dari kode semua buku di atas? Bentar… sabar… sebelum kita mulai buat, kita hendaknya pikirkan desain tampilan outputnya.
Misalkan kita ingin nantinya muncul label barcode kode buku yang disusun seperti halnya tabel yang memiliki 2 kolom. Trus… untuk setiap barcode, bagian bawahnya akan terdapat kode buku yang dapat dibaca oleh kita. Mengapa kode buku ini ikut tercantum di bawah barcodenya? Ya… siapa tahu suatu saat barcode scannernya rusak. Bila label barcode ini tidak ada kode buku yang bisa kita baca, bisa-bisa kesulitan untuk mendatanya ketika transaksi di perpustakaan berlangsung.
OK… itu desain tampilannya. Now… let’s start to create the script!

<?php

// koneksi ke database
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

$query = "SELECT * FROM buku";
$hasil = mysql_query($query);

// setting banyaknya kolom
$kolom = 2;

// membuat tabel berisi label barcode
echo "<table border='1'>";

$counter = 1;
while ($data = mysql_fetch_array($hasil))
{
 if (($counter-1) % $kolom == 0) echo "<tr>";
 echo "<td align='center' style='padding: 5px'><font face='Free 3 of 9' size='20'>*".$data['kodeBuku']."*</font><br />".$data['kodeBuku']."</td>";
 if ($counter % $kolom == 0) echo "</tr>";
 $counter++;
}

echo "</table>";
?>

Konsep membuat label berisi barcode ke dalam bentuk tabel 2 kolom ini adalah sebagai berikut
Secara umum, apabila kita membuat tabel dengan n buah kolom maka struktur htmlnya adalah seperti di bawah ini:
<table>
  <tr><td>...</td><td>...</td><td>...</td>... (akan diulang n kali)</tr>
  <tr><td>...</td><td>...</td><td>...</td>... (akan diulang n kali)</tr>
  .
  .
  .
</table>

Nah… dari struktur di atas tampak bahwa untuk setiap baris tabel terdapat n kali tag <td>…</td> yang diulang. Begitu sudah terdapat n kali, maka akan membentuk baris baru dan langkah yang sama akan diulangi lagi.
Dalam pemrograman, untuk mengimplementasikan ide di atas, kita bisa menggunakan bantuan suatu counter. Counter ini akan berjalan mulai dari 1, 2, 3, … hingga sejumlah data yang diinginkan. Bila counter telah mencapai bilangan yang merupakan kelipatan n, maka baris tabel akan diakhiri (cetak </tr>) dan selanjutnya membuat baris tabel baru (cetak <tr>), lihat baris 19 dan 21 pada script PHP di atas.
Oya… untuk mengenerate suatu string menjadi kode barcode Code 39 menggunakan TTF yang telah kita download di atas caranya adalah gunakan tag
<font face="Free 3 of 9" size="...">...</font>

dengan atribut ‘size’ nantinya akan diisi dengan value yang menyatakan ukuran simbol barcode. Pada contoh script di atas menggunakan size=”20″.
Oya… jangan lupa mengaapit string yang akan dibuat barcodenya dengan tanda asterisk (*).
Hasil output dari script di atas adalah seperti di bawah ini:


So… tinggal print saja output di atas, bisa juga langsung diprint di atas stiker label, namun terlebih dahulu Anda atur posisinya dan sesuaikan panjang lebarnya dengan stiker label.
Fiuh… jadi juga akhirnya script dan artikel ini. Panjang sekali yah artikelnya…. but anyway… mudah-mudahan ada manfaatnya buat Anda semuanya...

Artikel Terkait di Bawah posting

0 comments:

Posting Komentar