Link ini

MENGENAL DAN MEMPELAJARI BARCODE
(Bagian I)
1. Berkenalan dengan Barcode.
Mungkin tanpa disadari setiap hari kita akan menemui
barcode, misalnya p ada produk makanan, obat, barang
konsumer yang kita miliki, tiket pesawat, kartu mahasiswa,
bahkan sampai di sampul surat yang kita terima (biasanya dari
luar negeri) pun kita temui barcode, oleh karenanya artikel ini
akan mengulas apa dan bagaimana barcode itu.
Barcode pada dasarnya adalah susunan garis vertikal
hitam dan putih dengan ketebalan yang berbeda, sangat
sederhana tetapi sangat berguna, dengan kegunaan untuk
menyimpan data-data spesifik misalnya kode produksi, tanggal
kadaluwarsa, nomor identitas dengan mudah dan murah,
walaupun teknologi semacam itu terus berkembang dengan
ditemukannya media magnetic, rfid, electronics tags, serial
eeprom (seperti pada smart card), barcode terus bertahan dan
masih memiliki kelebihan-kelebihan tertentu yaitu ,yang paling
utama, murah dan mudah, sebab media yang digunakan adalah
kertas dan tinta, sedangkan untuk membaca barcode ada begitu
banyak pilihan di pasaran dengan harga yang relatif murah

mulai dari yang berbentuk pena(wand), slot, scanner, sampai ke
CCD dan bahkan kita dapat membuatnya sendiri.

Karakter ASCII
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z

.
SPACE
*
$
/
+
%

Gambar 1

B
0
1
0
1
0
1
0
0
1

0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0

0
1
0
1
0
1
0
0
1
0
0
0
0
0
0

S
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1

0

B
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0

0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0

0
1
0
0
0
0
0

Jenis barcode sangatlah banyak mulai dari yang
tradisional yaitu 1 dimensi sampai dengan barcode yang multi
dimensi, dalam artikel ini akan dibahas barcode 1 dimensi dan
dibatasi pada jenis-jenis yang populer digunakan tetapi dapat
memberi pengertian dan gambaran yang jelas mengenai
barcode.
2. Jenis-Jenis Barcode.
2.1 Code 39 / 3 of 9
Code 39 dapat mengkodekan karakter alphanumeric
yaitu angka desimal dan huruf besar serta tambahan karakter
spesial - . * $ / % +
Satu karakter dalam Code 39 terdiri dari 9 elemen yaitu

5 bar (garis vertikal hitam) dan 4 spasi (garis vertikal putih)
yang disusun bergantian antara bar dan spasi. 3 dari 9 elemen
tersebut memiliki ketebalan lebih tebal dari yang lainnya oleh
karenanya kode ini biasa disebut juga code 3 of 9, 3 elemen yang
lebih tebal tersebut terdiri dari 2 bar dan 1 spasi. Elemen yang
lebar mewakili digit biner 1 dan elemen yang sempit mewakili
digit biner 0. Tabel karakter code 39 beserta nilai karakternya
tercantum dibawah ini. Gb1

Karakter Set
Digit Biner
S
B
S
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1

B
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0

S
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1

B
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0

Nilai Karakter
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

III

Stuktur Barcode Code 39 adalah sebagai berikut Gb2
QZ

SC

ICG

CI

ICG C2

ICG

...

CN

ICG CC

ICG PC

QZ

: Lebar Check Character plus 1 inter charcater
gap
: Lebar 2 kali quiet zone (M1 (start margin) + M2
( s t o p
m a r g i n ) ) .

IV

Gambar 2

dimana :
X
: Ketebalan elemen yang sempit (minimum
0.19mm).
QZ
: Quiet Zone atau Start-Stop Margin dengan
ketebalan minimum 6mm atau 10 kali X
SC
: Start Character (karakter *)
ICG
: Inter Character Gap dengan ketebalan 1 kali X
C1 ..CN : Character ke 1 s/d character ke N.
CC
: Check Character
PC
: Stop Character (karakter *)
Untuk dapat membedakan garis vertikal lebar dan
sempit maka perbandingan ketebalan antara garis vertikal lebar
dan sempit minimum 2:1, dimana perbandingan 3:1 akan lebih
baik.
Lebar keseluruhan barcode dapat dirumuskan sebagai
berikut : Gb3

Check character adalah sisa dari jumlah seluruh nilai
karakter dibagi dengan 43, sebagai contoh :
Message
: CODE 39
Karakter
:C
O D E
SPACE 3 9
Nilai karakter
: 12 24 13 14
38 3 9
Jumlah
: 12+24+13+14+38+3+9=113
113/43 = 2 sisa 27
27 adalah nilai dari karakter R, maka
Message + check character
Contoh barcode code 39 Gb4

DT51

L = N(3RX+7X) + (6RX+13X) + (3RX+7X) + (M1 + M2)
I
II
III
IV

: CODE 39R

MINSYS

VER

3

-

0

Gambar 4

Gambar 3

L
N
R
X

2.2 Extended Code 39
Extended code 39 adalah pengembangan dari code 39
yang dapat mengkodekan seluruh karakter ASCII dengan cara
mengkodekannya dengan pasangan code 39, yang dapat dilihat
pada tabel dibawah ini. Gb5

dimana :
: Lebar keseluruhan barcode
: Jumlah karakter
: Perbandingan garis vertikal lebar dan sempit
: Ketebalan garis vertikal sempit

ASCII
NU
SH
SX
EX
ET
EQ
AK
BL
BS
HT
LF
VT
FF
CR
SO
SI
DL
D1
D2
D3
D4
NK
SY
EB
CN
EM
SB
EC
FS
GS
RS
US

Ext. Code 39
%U
$A
$B
$C
$D
$E
$F
$G
$H
$I
$J
$K
$L
$M
$N
$O
$P
$Q
$R
$S
$T
$U
$V
$W
$X
$Y
$Z
%A
%B
%C
%D
%E

ASCII
SP
!

#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?

Karakter Set
Ext. Code 39
ASCII
SPACE
@
/A
A
/B
B
/C
C
/D
D
/E
E
/F
F
/G
G
/H
H
/I
I
/J
J
/K
K
/L
L
/M
M
/N
N
/O
O
/P atau 0
P
/Q atau 1
Q
/R atau 2
R
/S atau 3
S
/T atau 4
T
/U atau 5
U
/V atau 6
V
/W atau 7
W
/X atau 8
X
/Y atau 9
Y
/Z
Z
%F
[
%G
\
%H
]
%I
^
%J
_

Ext. Code 39
%V
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
%K
%L
%M
%N
%O

ASCII
`
a
b
c
d
e
f
g
h
I
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL

Ext. Code 39
%W
+A
+B
+C
+D
+E
+F
+G
+H
+I
+J
+K
+L
+M
+N
+O
+P
+Q
+R
+S
+T
+U
+V
+W
+X
+Y
+Z
%P
%Q
%R
%S
%T

Gambar 5

I
II

: Lebar N karakter plus N inter character gap
: Lebar start dan stop character plus 1 inter character
gap antara start character dan character
pertama

Keterangan :
! Karakter $ / + % mengkodekan karakter ASCII-nya sendiri
jika diikuti oleh digit, atau spasi, atau dirinya sendiri ($ / +

%), atau salah satu dari tiga spesial karakter yang lain (- . *),
atau stop character.
! %X , %Y, %Z mengkodekan karakter ASCII DEL.
2.3 Interleaved 2 of 5 (ITF)
ITF barcode hanya dapat mengkodekan angka saja dan
sering digunakan pada produk-produk yang memiliki kemasan
dengan permukaan yang tidak rata (misalnya corugated box),
hal ini disebabkan struktur dan cara pengkodean ITF yang unik.
Setiap karakter pada ITF barcode dikodekan dengan 5
elemen yaitu 2 elemen tebal dan 3 elemen sempit, dimana
elemen tebal mewakili digit biner 1 sedangkan elemen tipis
mewakili digit biner 0 dengan perbandingan ketebalan antara
elemen tebal dengan elemen tipis 2:1 s/d 3:1.
Keunikan dari ITF adalah pengkodean karakternya
apakah menggunakan bar ataukah menggunakan spasi
tergantung pada posisi sesuai dengan namanya interleaved, atau
lebih jelasnya sebagai berikut : Karakter pertama dikodekan
menggunakan bar setelah start character, sedangkan karakter
kedua dikodekan menggunakan spasi secara interleaved pada
karakter pertama, karena sifat berpasang-pasangan itulah
panjang message termasuk check character haruslah genap jika
jumlahnya ganjil maka harus ditambahkan karakter 0 pada awal
message, sebelum diillustrasikan contoh ITF barcode, akan
lebih jelas jika Anda melihat tabel karater set ITF di bawah ini.
Gb6

Contoh perhitungan
adalah sebagai berikut :
! Message
! Karakter
! Posisi

check character ITF barcode

: 2632534
: 2 63 2 53 4
: EOEOEOE (karakter
paling kanan dimulai sebagai
E)
! Jumlah dari posisi odd
: 6 + 2 + 3 = 11
! Jumlah dari posisi even
: 2 + 3 + 5 + 4 = 14
! Jumlah odd x 3
: 14 x 3 = 42
! Step 6 + step 7
: 11 + 42 = 53
! Angka terkecil untuk menjadi kelipatan 10 : 7
! Check character
:7
! Tag to be encoded
: 26325347
Jumlah keseluruhan karakter plus check character genap
sehingga tidak diperlukan leading zero.
Struktur ITF barcode dapat dilihat pada gambar
dibawah ini : Gb8
Message +
cterStop
Start
Quiet
Zone Character Check Chara Character

Quiet
Zone

Gambar 8

Lebar dan tinggi ITF barcode mengikuti aturan sbb :
Karakter ASCII
1
2
3
4
5
6
7
8
9
0
Start
Stop

Kode Biner
10001
01001
11000
00101
10100
01100
00011
10010
01010
00110
0000*
100*

Nilai karakter
1
2
3
4
5
6
7
8
9
0

Gambar 6

!

Start dan Stop character tidak dikodekan secara interleaved
tetapi bergantian bar dan spasi

Contoh ITF Barcode : Gb7
Karakter II = 1

Space coded
1 0 0 0
1

Check Character = 3

Space coded
1
1 0 0
0

Gb9

L = (C (2R + 3) + 6 + R)X
Gambar 9

dimana :
L : Lebar barcode (tidak termasuk quiet zone)
C : Jumlah karakter
X : Lebar elemen tersempit (minimum 0.19mm)
R : Perbandingan elemen lebar dengan elemen sempit (2:1
s/d 3:1)
Quiet zone minimum 10 kali X
Tinggi barcode minimum 0.15 kali lebar barcode.
Untuk menghindari terjadi partial scan atau
pembacaan barcode yang terpotong yang dapat menyebabkan
kesalahan informasi, maka seringkali ITF barcode diberi
tambahan bearer bar yaitu bar sepanjang barcode yang
ditempatkan di atas dan dibawah barcode seperti tampak
dibawah ini. Gb10

Gambar
Gambar 8
10

0
0 1 1
Start
0
Charact Karakter I = 0
er
Bar coded
Gambar 7

0
1
0 0
1
Karakter III = 2
Bar coded

Stop
Charact
er

2.4 Code 128
Code 128 adalah barcode dengan kerapatan tinggi,
dapat mengkodekan keseluruhan simbol ASCII (128 karakter)
dalam luasan yang paling minim dibandingkan dengan barcode
jenis lain, hal ini disebabkan karena code 128 menggunakan 4

ketebalan elemen (bar atau spasi) yang berbeda (jenis yang lain
kebanyakan menggunakan 2 ketebalan elemen yang berbeda).
Setiap karakter pada code 128 dikodekan oleh 3 bar dan 3 spasi
(atau 6 elemen) dengan ketebalan masing-masing elemen 1
sampai 4 kali ketebalan minimum (module), jika dihitung dngan
satuan module maka tiap karakter code 128 terdiri dari 11
module kecuali untuk stop character yang terdiri dari 4 bar 3
spasi (13 module). Jumlah total module untuk bar selalu genap
sedangkan untuk spasi selalu ganjil, selain itu code 128
memiliki 3 start character yang berbeda sehingga code 128
memiliki 3 sub set karakter yang bersesuaian dengan start
characternya seperti tampak pada tabel karakter set dibawah ini.
Gb11
Value
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

Code Set
A
SP
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y

Code Set
B
SP
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y

Code Set
C
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

Bar/Space Pattern
BSBSBS
212222
222122
222221
121223
121322
131222
122213
122312
132212
221213
221312
231212
112232
122132
122231
113222
123122
123221
223211
221132
221231
213212
223112
312131
311222
321122
321221
312212
322112
322211
212123
212321
232121
111323
131123
131321
112313
132113
132311
211313
231113
231311
112133
112331
132131
113123
113321
133121
313121
211331
231131
213113
213311
213131
311123
311321
331121
312113

58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106

Z
[
\
]
^
_
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
FNC 3
FNC 2
SHIFT
CODE C
CODE B
FNC 4
FNC 1
Start A
Start B
Start C
Stop

Z
[
\
]
^
_
`
a
b
c
d
e
f
g
h
i
j
k
I
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL
FNC 3
FNC 2
SHIFT
CODE C
FNC 4
CODE A
FNC 1
Start A
Start B
Start C
Stop

58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
CODE B
CODE A
FNC 1
Start A
Start B
Start C
Stop

312311
332111
314111
221411
431111
111224
111422
121124
121421
141122
141221
112214
112412
122114
122411
142112
142211
241211
221114
413111
241112
134111
111242
121142
121241
114212
124112
124211
411212
421112
421211
212141
214121
412121
111143
111341
131141
114113
114311
411113
411311
113141
114131
311141
411131
211412
211214
211232
2331112

Code 128 memiliki fitur untuk dapat bergeser dari sub
set yang satu ke sub set yang lainnya dengan menggunakan
karakter CODE dan SHIFT, CODE X menyebabkan seluruh
message bergeser menjadi sub set X (misalnya CODE A pada
sub set B membuat message menjadi sub set A), sedangkan
SHIFT menyebabkan satu karakter didepannya bergeser sub set
(ini hanya berlaku untuk sub set A ke sub set B atau sebaliknya).
Struktur code 128 barcode seperti terlihat dibawah ini :
Gb12

Gambar 12

dimana tinggi barcode minimum 0.15 kali lebar
barcode dan lebar barcode dinyatakan dalam rumus
Gb13
L = (11C + 35)X untuk alphanumeric (CODE A dan CODE B)
L = (5.5C + 35)X untuk double density numeric only (CODE C)
Gambar 13

dimana :
L : Lebar barcode total termasuk quiet zone
C : Jumlah karakter
X : Lebar module (elemen yang tersempit)
CODE C dikatakan sebagai double densisty numeric
only dan dalam perhitungan lebar per karakternya hanya 5.5X
sebab satu karakter CODE C mewakili 2 digit numeric (lihat
tabel diatas).
Perhitungan check character code 128 sbb :
1. Message
: CODE 128
2. Karakter
: Start A C O D E
1 2 8
3. Nilai karakter : 103
35 47 36 37 0 17 18 24
4. Posisi
:
1 2
3 4 5
6 7 8
5. Perhitungan
Total
: 103 + (35 x 1) + (47 x 2) + (36 x 3) + (37 x
4) + (0 x 5) + (17 x 6) + (18 x 7)
+ (24 x 8) = 908
908 / 103 = 8 remainder 84
84 = DC4
6. Message akhir : (Start A)CODE 128(DC4)(STOP)