Penambahan Jumlah Informasi Pada Qr Code Menggunakan Teknik Kompresi Data Lossless.

PENAMBAHAN JUMLAH INFORMASI PADA QR CODE
MENGGUNAKAN TEKNIK KOMPRESI DATA LOSSLESS

WAHYU JULIARIANTO

SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
BOGOR
2015

PERNYATAAN MENGENAI THESIS DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa thesis berjudul Penambahan Jumlah
Informasi pada QR code Menggunakan Teknik Kompresi Data Lossless adalah
benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan
dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang
berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari
penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di
bagian akhir thesis ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut
Pertanian Bogor.

Bogor, Oktober 2015
Wahyu Juliarianto
NIM G651110664

RINGKASAN
WAHYU JULIARIANTO. Penambahan Jumlah Informasi pada QR code
menggunakan Teknik Kompresi Data Lossless. Dibimbing oleh SUGI
GURITMAN dan HERU SUKOCO.
Quick Respond (QR) code adalah barcode dua dimensi yang dirancang
untuk memberikan informasi yang tersimpan dengan cepat. QR code diciptakan
oleh Denso Wave untuk melakukan pengecekan terhadap suku cadang pada saat
produksi. Berkat dorongan dari seorang user, QR code dikembangkan sehingga
dapat digunakan untuk mengkodekan karakter alphanumerik, dan kanji.
Kemampuannya untuk dibaca dari bermacam sudut dan kecepatannya dalam
memberikan informasi tersimpan yang melebihi jenis barcode serupa, serta dapat
menyimpan informasi hingga 2000 jenis karakter biner dan menggunakan
karakter kanji menjadikan QR code sebagai sarana yang populer dalam
menyampaikan informasi terutama sejak meningkatnya perkembangan pada
teknologi smartphone.
Seperti jenis barcode lainnya, semakin banyak informasi yang tersimpan

akan membuat ukuran dari QR code semakin besar sehingga dapat membuatnya
sulit untuk memberikan informasi yang tersimpan. Penelitian ini memfokuskan
pada informasi yang dikompresi menggunakan kompresi data lossless. Pengujian
data dilakukan menggunakan identitas pribadi berupa Kartu Tanda Penduduk
(KTP), Surat Izin Mengemudi (SIM), Surat Tanda Nomor Kendaraan (STNK)
dan Kartu Keluarga (KK) yang ditulis dalam bentuk teks dengan mengambil
sample dari setiap data pribadi sebanyak 10 kali.
Pengujian dilakukan dengan membagi setiap sample dalam tiga jenis
penulisan, yaitu menggunakan huruf besar dan kecil, seluruh penulisan
menggunakan huruf besar, dan menggunakan karakter spesial sebagai pengganti
huruf vokal. Informasi dikompresi menggunakan algoritme kompresi data lossles
dengan karakter unicode sebagai hasil dari kompresi yang akan digunakan dalam
membentuk QR code dengan jenis pengkodean unicode UTF-8. QR code yang
telah dibentuk diuji terlebih dahulu dengan melakukan dekompresi untuk
mendapatkan informasi asli. Bila informasi asli tidak bisa didapatkan maka perlu
dilakukan modifikasi pada algoritme yang digunakan untuk mendapatkan hasil
yang lebih baik. QR code yang menggunakan informasi terkompresi akan
dibandingkan dengan QR code yang menggunakan informasi asli untuk
mengetahui pengaruh tingkat kompresi pada informasi terhadap ukuran pada QR
code.

Hasil pengujian diperoleh tingkat kompresi pada informasi yang mencapai
lebih dari 25% yang dapat mengurangi ukuran dari QR code pada informasi yang
sama. Tingkat kompresi dari informasi yang berada kurang dari 25% akan
menambah ukuran pada QR code. Faktor lain yang mempengaruhi perubahan
pada QR code adalah jenis karakter yang dapat disimpan pada QR code, karena
bila ada karakter yang tidak bisa disimpan pada QR code akan menyebabkan
rusaknya informasi.
Kata kunci: QR Code, Data Pribadi, Kompresi Data Lossless, Unicode, UTF-8

SUMMARY
WAHYU JULIARIANTO. Increasing amount of information on the QR code
using Lossless Data Compression Techniques. Guided by SUGI GURITMAN
and HERU SUKOCO.
Quick Respond (QR) code is a two-dimensional barcode that designed to
provide information stored quickly. QR code created by Denso Wave to checks
on the spare parts at the time of production. Thanks to the encouragement of a
user, the QR code was developed so that it can be used to encode the
alphanumeric characters, and kanji. It's ability to read from a variety of angles
and speed in providing stored information faster than similar types of barcodes,
and can store information for up to 2000 types of binary characters and using

kanji characters make a QR code as a popular tool in conveying information,
especially since the increased growth in smartphone technology.
Like other types of barcodes, the more information stored will make the size
of the QR code is getting bigger and make it difficult to provide the stored
information. This study focuses compressed information using lossless data
compression. Experiment were conducted by using a personal identity in the form
of Kartu Tanda Penduduk (KTP), Surat Izin Mengemudi (SIM), Surat Tanda
Nomor Kendaraan (STNK) and Kartu Keluarga (KK) that written in text form by
taking a sample of any personal data 10 times.
Each sample is testing by divide into three types of writing, using upper
and lower case, all the writing in big letters, and use special characters instead of
vowels. Information is compressed using a data compression algorithm lossles
with unicode character as a result of compression to be used in forming the QR
code with unicode UTF-8 encoding. QR code that has been formed tested first by
decompression to obtain original information. If the original information can not
be obtained, algorithm used must modified to give a better result. QR code that
uses compressed information will be compared with a QR code that uses the
original information to determine the effect of compression on the information on
the size of the QR code.
The test results obtained on the compression rate of the information that

reaches more than 25% can reduce the size of the QR code on the same
information. Compression rate of the information that was less than 25% will
increase the size of the QR code. Other factors affecting the change in the QR
code is a type of characters that can be stored in the QR code, because if there is a
character that can not be stored in the QR code can eliminate the information
stored.
Keywords: QR Code, Data Privacy, Lossless Data Compression, Unicode, UTF-8

© Hak Cipta Milik IPB, Tahun 2015
Hak Cipta Dilindungi Undang-Undang
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan
atau menyebutkan sumbernya. Pengutipan hanya untuk kepentingan pendidikan,
penelitian, penulisan karya ilmiah, penyusunan laporan, penulisan kritik, atau
tinjauan suatu masalah; dan pengutipan tersebut tidak merugikan kepentingan
IPB
Dilarang mengumumkan dan memperbanyak sebagian atau seluruh karya tulis
ini dalam bentuk apa pun tanpa izin IPB

PENAMBAHAN JUMLAH INFORMASI PADA QR CODE
MENGGUNAKAN TEKNIK KOMPRESI DATA LOSSLESS


WAHYU JULIARIANTO

Tesis
Sebagai Salah Satu Syarat untuk Memperoleh Gelar
Magister Ilmu Komputer
pada
Program Studi Ilmu Komputer

SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
BOGOR
2015

Penguji Luar Komisi pada Ujian Tesis : Dr Ir Sri Wahjuni, MT

Judul Tesis : Penambahan Jumlah Informasi pada QR code menggunakan
Teknik Kompresi Data Lossless
Nama
: Wahyu Juliarianto

NIM
: G651110664

Disetujui oleh
Komisi Pembimbing

Dr Sugi Guritman
Ketua

DrEng Heru Sukoco
Anggota

Ssi MT

Diketahui oleh

Ketua Program Studi
Ilmu Komputer

Dekan Sekolah Pascasarjana


DrEng Wisnu Ananta Kusuma, ST MT

Prof Dr Ir. Nahrowi, MSc

Tanggal Ujian Tertutup :
2015

Tanggal Lulus :

19 Oktober

PRAKATA
Puji dan syukur penulis panjatkan kehadirat Allah S.W.T atas segala
karunia-Nya sehingga sehingga karya ilmiah ini dapat diselesaikan. Tema yang
dipilih pada penelitian ini adalah QR code dengan judul Peningkatan kapasitas
pada QR code menggunakan Kompresi Data Lossless.
Tesis ini disusun sebagai salah satu syarat untuk memperoleh gelar
Magister Sains pada Program Ilmu Komputer, Sekolah Pascasarjana Institut
Pertanian Bogor.

Pada kesempatan ini penulis menyampaikan penghargaan dan ucapan terima
kasih kepada:
1.
2.

3.
4.
5.
6.

Kedua orangtuaku, Bapak Waluyo dan Ibu Sri Rahayu tercinta, yang tak
kenal lelah mendukung baik secara fisik maupun do'a siang dan malam.
Bapak Dr Sugi Guritman selaku ketua komisi pembimbing dan Bapak
DrEng Heru Sukoco selaku anggota komisi pembimbing yang telah
meluangkan waktu, tenaga dan pikiran sehingga tesis ini dapat
diselesaikan.
Ibu Dr Ir Sri Wahjuni, MT selaku dosen penguji yang telah memberikan
arahan dan masukan untuk perbaikan tesis ini.
Bapak DrEng Wisnu Ananta Kusuma, ST MT dan Bapak Toto Haryanto,
SKom MSi yang telah banyak meluangkan waktunya dalam memberikan

arahan untuk menyelesaikan tesis ini.
Staff Administrasi Departemen Ilmu Komputer atas kerja samanya
membantu kelancaran proses administrasi hingga akhir studi.
Teman-teman dari kelas reguler maupun karyawan yang telah banyak
membeerikan masukkan dalam menyelesaikan studi.

Penulis menyadari bahwa masih banyak kekurangan dalam penulisan tesis
ini, namun demikian penulis berharap tesis ini dapat bermanfaat untuk bidang
ilmu komputer, bidang pendidikan dan para bagi individu maupun kolektif
(organisasi, grup, instansi, perusahaan, lembaga, konsumen) pencari informasi
yang ingin mendapatkan informasi yang paling relevan sesuai dengan minat dan
kebutuhannya.
Bogor, Oktober 2015
Wahyu Juliarianto

DAFTAR ISI
DAFTAR ISI
xiii
DAFTAR GAMBAR
xiv

DAFTAR TABEL
xiv
1 PENDAHULUAN
1
Latar Belakang
1
Perumusan Masalah
2
Tujuan Penelitian
2
Ruang Lingkup Penelitian
2
2 TINJAUAN PUSTAKA
2
QR Code
2
Struktur pada QR Code
3
Jenis karakter yang dapat dikodekan dalam QR code
4
Versi pada QR code
4
Error Correction pada QR code
4
Kompresi Data
5
Algoritme LZMA
5
Slide Dictionary algorithm
5
Delta Encoding
7
Range Coder
8
Unicode
8
3 METODE
9
Analisis Masalah
9
Proses pembuatan QR code dengan informasi terkompresi
9
Proses Pengujian QR code dengan Informasi Terkompresi
11
Evaluasi Perbandingan Ukuran QR Code
12
4 HASIL DAN PEMBAHASAN
13
Proses pembuatan QR code dengan informasi terkompresi
13
Proses Pengujian QR code dengan informasi terkompresi
15
Evaluasi Perbandingan Ukuran QR Code
16
Pengujian data pribadi menggunakan huruf besar dan kecil
19
Pengujian data pribadi menggunakan hanya huruf besar
20
Pengujian data pribadi menggunakan huruf besar dan kecil dengan
karakter spesial sebagai pengganti huruf vokal
20
Pengaruh tingkat kompresi terhadap ukuran pada QR code
21
5 SIMPULAN
22
DAFTAR PUSTAKA
23
Lampiran
25
Tabel Error Correction Code pada QR Code
25
RIWAYAT HIDUP
30

DAFTAR GAMBAR
1
2
3
4
5
6
7
8
9
10
11
12

Struktur pada QR code
Perbandingan ukuran QR code pada versi 1 (kiri) dan versi 40
(kanan)
Proses encoding pada Skema Pergeseran Kamus
Proses decoding pada Skema Pergeseran Kamus
Proses pembuatan QR code dengan informasi terkompresi
Proses pengujian QR code dengan informasi terkompresi
Perbandingan QR code menggunakan informasi asli (gambar kiri)
dengan QR code menggunakan informasi hasil kompresi (gambar
kanan)
QR code menggunakan informasi hasil kompresi dengan output
berupa karakter unicode
Pengaruh tingkat kompresi data dengan ukuran QR code untuk
penulisan informasi menggunakan huruf besar dan kecil
Pengaruh tingkat kompresi data dengan ukuran QR code untuk
penulisan informasi hanya menggunakan huruf besar
Pengaruh tingkat kompresi data dengan ukuran QR code untuk
penulisan informasi menggunakan huruf besar dan kecil dengan
karakter spesial sebagai pengganti huruf vokal
Pengaruh tingkat kompresi informasi terhadap tingkat kompresi
Pada QR code

3
4
5
6
8
10
14
15
20
20
21
21

DAFTAR TABEL
1
2
3
4

Pengaruh Tingkat Kompresi dengan Ukuran QR code pada Kartu
Tanda Penduduk (KTP)
Pengaruh Tingkat Kompresi dengan Ukuran QR code pada Surat
Izin Mengemudi (SIM)
Pengaruh Tingkat Kompresi dengan Ukuran QR code pada Surat
Tanda Nomor Kendaraan (STNK)
Pengaruh Tingkat Kompresi dengan Ukuran QR code pada Kartu
Keluarga (KK)

19
19
20
21

1

1 PENDAHULUAN
Latar Belakang
Barcode adalah representasi dari data pada objek yang dibaca oleh mesin.
Pada generasi awal barcode terdiri dari garis dengan berbagai lebar dan jarak
yang disebut sebagai linear atau satu dimensi (1D). Seiring dengan
perkembangan jaman, garis ini berubah menjadi persegi panjang, titik, segi enam,
dan berbagai pola lainnya dalam bentuk dua dimensi (2D). Meskipun
menggunakan simbol yang berbeda, pola ini disebut sebagai barcode juga.
Barcode sudah menjadi sarana populer yang digunakan untuk menyimpan
informasi. Hampir di setiap tempat memiliki barcode yang digunakan dalam
sebagai identifikasi tanda pengenal, wilayah, ataupun kode dalam bertransaksi.
QR code merupakan jenis barcode dua dimensi yang paling banyak dijumpai
dalam kehidupan sehari-hari. QR code diciptakan oleh Denso Wave pada tahun
1994 dengan tujuan utama untuk membaca nomor dalam mengidentifikasi suku
cadang selama proses produksi. Berkat dorongan dari seorang user, QR code
dikembangkan sehingga dapat digunakan untuk mengkodekan karakter
alphanumerik, dan kanji. Selain itu QR code dapat menampung hingga 4000
karakter numerik dan 1800 karakter kanji. Hanya beberapa bagian dari QR code
yang memiliki data asli, termasuk Error Correction. Beberapa bagian pada QR
code digunakan untuk menyimpan informasi seperti versi, posisi, letak, dan
rentang waktu (Zhang 2012).
Seiring dengan bertambahnya kebutuhan akan informasi yang disimpan, QR
code dikembangkan sehingga dapat menampung lebih dari dua ribu jenis karakter.
Semakin banyak karakter yang disimpan, akan semakin besar ukuran dari QR
code sehingga ukuran QR code akan semakin besar dan kemampuan dalam
membaca informasi yang disimpan akan semakin lama. Ukuran dari QR code
yang besar akan memakan tempat yang lebih besar/banyak, sedangkan media
yang dijadikan sebagai sarana penempatan QR code memiliki ruang yang terbatas
sehingga ukuran dari QR code tidak boleh memakan banyak tempat. Karena
keterbatasan tersebut biasanya QR code yang ditempatkan pada beberapa media
hanya memiliki informasi yang terbatas untuk mengurangi ukuran agar tidak
memakan banyak tempat (Goel 2014).
Beberapa penelitian telah mengidentifikasikan cara untuk mengoptimalkan
data yang tersimpan pada QR code tanpa menambah ukurannya, seperti
mengkonversi tipe data yang disimpan ke dalam tipe data yang berbeda sebelum
dirubah dalam bentuk QR code, optimalisasi QR code (Victor 2012, Farizhah
2013, Goel 2014, Dey 2012), dan kompresi data sebelum dirubah ke dalam
bentuk QR code (Parekar 2014, Arohi 2014, Porwal 2013). Ketika melakukan
kompresi data, data tersebut harus dapat dikembalikan ke dalam bentuk semula
agar informasi asli dapat dibaca (Parekar 2014).
Permasalahan yang diangkat pada penelitian ini adalah jumlah informasi
yang berpengaruh pada besarnya ukuran dari QR code. Ukuran QR code yang
terlalu besar dapat menyebabkan sulitnya membaca informasi yang tersimpan.
Tujuan dari penelitian ini adalah membuat skema untuk menghasilkan ukuran QR
code yang lebih kecil. Skema tersebut adalah melakukan kompresi pada
informasi yang dimiliki menggunakan algoritme kompresi data lossless dengan

karakter unicode sebagai output dari hasil kompresi untuk digunakan dalam
pembentukan QR code. Ruang lingkup yang digunakan yaitu menggunakan data
pribadi seperti Kartu Tanda Penduduk (KTP), Surat Izin Mengemudi (SIM), Surat
Tanda Naik Kendaraan (STNK) dan Kartu Keluarga (KK) yang akan dikompresi
menggunakan algoritme kompresi data lossless. Data pribadi yang akan diproses
adalah data pribadi dalam format teks dengan output dari hasil kompresi berupa
karakter unicode dengan pengkodean UTF-8 untuk diproses menjadi QR code.
Proses encoding dan decoding menggunakan laptop dan tidak menggunakan
smartphone, sehingga hanya perlu menggunakan Error Correction tingkat
terendah yaitu L.
Perumusan Masalah
Permasalahan yang diangkat pada penelitian ini adalah Jumlah informasi
yang berpengaruh pada besarnya ukuran dari QR code. Ukuran QR code yang
terlalu besar dapat menyebabkan sulitnya membaca informasi yang tersimpan.
Tujuan Penelitian
Tujuan dari penelitian ini adalah membuat skema untuk menghasilkan
ukuran QR code yang lebih kecil untuk ukuran informasi yang sama atau
menghasilkan ukuran QR code yang sama dengan jumlah informasi yang lebih
banyak. Skema tersebut adalah dengan melakukan kompresi pada informasi yang
dimiliki menggunakan algoritme kompresi data lossless dengan karakter unicode
sebagai output dari hasil kompresi untuk digunakan dalam pembentukan QR
code.
Ruang Lingkup Penelitian
Ruang lingkup dari penelitian ini yaitu menggunakan data pribadi dalam
Bahasa Indonesia yang meliputi Kartu Tanda Penduduk (KTP), Surat Izin
Mengemudi (SIM), Surat Tanda Naik Kendaraan (STNK) dan Kartu Keluarga
(KK) yang akan dikompresi menggunakan algoritme kompresi data lossless. Data
pribadi ditulis dalam format teks dan dikompresi menggunakan algoritme
kompresi data lossless dengan algoritme LZMA dalam implementasinya.
Karakter unicode digunakan sebagai output dari hasil kompresi untuk diproses
menjadi QR code. Proses encoding dan decoding menggunakan laptop dan tidak
menggunakan smartphone, sehingga hanya perlu menggunakan Error Correction
tingkat terendah yaitu L.

2 TINJAUAN PUSTAKA
QR Code
QR (Quick Respond) code adalah barcode berbentuk matriks dua dimensi
yang merupakan perkembangan dari barcode satu dimensi. Berbeda dengan
barcode satu dimensi, QR code memiliki kapasitas yang tinggi dan dapat
digunakan untuk mengkodekan karakter ASCII sebanyak 256 byte hingga huruf
kanji. Karena itu QR code dapat digunakan untuk menyimpan nama, alamat, url
(alamat website), hingga jenis lainnya. QR code diciptakan pada tahun 1994 oleh
anak perusahaan Toyota Motor Denso Wave untuk melacak suku cadang selama
proses produksi. QR code sendiri berarti quick respond code atau kode dengan

3

respon cepat sehingga dapat digunakan untuk menyampaikan informasi dan
memberikan respon yang cepat pula. QR code mulai populer pada tahun 2011
ketika smartphone mulai mengambil peran penting pada tren pasar. Sebuah QR
code dapat dibaca melalui perangkat kamera yang terdapat pada masing-masing
smartphone. QR code telah mengalami banyak perkembangan. Saat ini QR code
telah mencapai versi 40 yang dapat menampung hingga 4000 karakter numerik
dan 1800 karakter kanji(Zhang 2012).
Struktur pada QR Code
QR code adalah kumpulan modul hitam putih dalam pola persegi dengan
latar belakang putihyang memiliki beberapa struktur seperti finder pattern,
alignment pattern, timing pattern, quiet zone, dan data area seperti yang
ditunjukkan pada Gambar 1.

Gambar 1 Struktur pada QR code
Penjelasan :
1. Finder Pattern: Pola berupa titik hitam berukuran 3x3 yang dikelilingi oleh
titik putih dan titik hitam (total 7x7) yang terletak pada tiga bagian dari
empat sudut matriks. Pola ini memungkinkan QR code untuk dibaca secara
360 derajat (omni-directional) dengan kecepatan tinggi.
2. Timing Pattern: Pola ini menentukan informasi dan masking yang
digunakan pada QR code.
3. Alligment Pattern: Pola berupa persegi besar dengan titik yang ukurannya
lebih kecil dari finder pattern (berukuran 5x5) dan memungkinkan QR reader
untuk mengoreksi noise ketika posisi QR code melengkung. Jumlah
alligment pattern yang muncul tergantung pada seberapa banyak informasi
yang dimiliki dan muncul pada QR code versi 2 dan lebih tinggi.
4. Data Area: Berisi informasi yang disimpan dalam bentuk bilangan biner.
Warna Gelap untuk nilai 1, dan warna terang untuk nilai 0.
5. Quiet Zone: Pola ini digunakan untuk memisahkan kode dari informasi
lainnya. Pola ini terletak pada bagian luar QR code.

-

Jenis karakter yang dapat dikodekan dalam QR code
Numerik
: (0-9)
Setiap 3 karakter dikodekan dengan panjang 10 bit.
Alphanumerik : (0-9,A-Z,spasi,$,,*,+,-,.,/,:)
Setiap 2 karakter dikodekan dengan panjang 11 bit.
Byte
: (karakter 8-bit seperti ASCII dan unicode)
Setiap 1 karakter dikodekan dengan panjang 8 bit.
Kanji
: (Kanji)
Setiap 1 karakter dikodekan dengan panjang 13 bit.

Versi pada QR code
Ukuran pada QR code didefinisikan sebagai versi. Versi pada QR code
berada pada 1 sampai 40 dan akan terus meningkat. Pada versi 1 QR code
berukuran matriks 21 x 21, dan bertambah sebanyak 4 di setiap versinya.
Sehingga QR code pada versi 40 memiliki ukuran matriks 177 * 177.
Perbandingan ukuran pada QR code ditunjukkan pada Gambar 2.

Gambar 2

Perbandingan ukuran QR code pada versi 1 (kiri) dan versi 40
(kanan). (sumber Gambar : http://docs.telerik.com/)

Error Correction pada QR code
QR code memiliki fungsi mengoreksi kesalahan dalam membaca (Error
Correction) untuk setiap blok hitam-putih. Error Correction didefinisikan dalam
4 tingkat seperti berikut.
− L : Sekitar 7 kesalahan atau kurang dapat diperbaiki.
− M : Sekitar 15 kesalahan atau kurang dapat diperbaiki.
− Q : Sekitar 25 kesalahan atau kurang dapat diperbaiki.
− H : Sekitar 30 kesalahan atau kurang dapat diperbaiki.
Semakin tinggi Error Correction yang digunakan akan meningkatkan
kemampuan decoder dalam membaca pesan, tetapi mengakibatkan bertambahnya
informasi yang diproses untuk menjadi QR code.
Proses Pembentukan QR Code
Ada 7 langkah dalam membentuk QR code sebagai berikut:
1. Analisa isi data untuk menentukan jenis encoding yang akan digunakan
2. Melakukan proses encoding untuk data yang dimiliki
3. Membuat Error Correction coding
4. Membentuk data akhir yang akan diproses pada QR code

5

5.
6.
7.

Melakukan alokasi data pada matriks
Memproses data masking untuk menentukan jenis masking yang digunakan
pada QR code
Memproses informasi format dan versi QR code

Kompresi Data
Kompresi data adalah proses untuk merekonstruksi suatu data menjadi lebih
ringkas bila dibandingkan dengan bentuk sebelumnya. Kompresi sangat
membantu dalam memproses, menyimpan, atau mentransfer data yang
membutuhkan banyak ruang penyimpanan. Kompresi data lossless adalah bagian
dari algoritme kompresi data dimana data asli yang telah dikompresi dapat
dikembalikan seperti semula. Lawan dari kompresi data lossless adalah kompresi
data lossy dimana data yang telah dikompresi tidak dapat dikembalikan seperti
semula. Kompresi data lossless digunakan untuk mengkompresi data yang
penting dimana apabila terjadi kesalahan pada saat proses kompresi akan
mengakibatkan kerusakan pada data asli (tidak dapat dikembalikan). Contoh
penggunaan kompresi data lossless terdapat pada program, dokumen teks, source
code, beberapa file Gambar seperti PNG atau GIF, dan file audio yang digunakan
dalam sebagai berkas.
Algoritme LZMA
Lempel–Ziv–Markov chain algorithm (LZMA) adalah salah satu algoritme
yang digunakan untuk melakukan kompresi data lossless. LZMA merupakan
salah satu pengembangan dari algoritme LZ77 yang dibuat oleh Abraham Lempel
dan Jacob Ziv pada tahun 1977. LZMA merupakan variasi dari LZ77 yang
menggunakan skema pergeseran kamus (dictionary compression algorithm) tetapi
memiliki ukuran kamus yang sangat besar dan dukungan terhadap penggunaan
kata yang berulang, dengan output yang diproses menggunakan range encoder,
sehingga menghasilkan model yang sangat kompleks dalam memprediksi nilai
pada setiap bit (Goel 2014). Kamus digunakan untuk menemukan kata yang sama
menggunakan struktur yang dibuat pada kamus, dan menghasilkan data yang
memiliki berbagai macam simbol dan pustaka yang dikodekan menggunakan
range encoder. LZMA juga menggunakan delta encoding untuk mencari tingkat
optimal dalam proses kompresi data.
LZMA menggunakan byte dalam seluruh proses encoding (karakter yang
akan dikompresi dirubah kedalam bentuk byte terlebih dahuilu) sehingga dapat
mencegah adanya bit yang tercampur pada saat proses. Dikarenakan LZMA
menggunakan byte dalam proses kompresinya, ukuran kamus yang digunakan
menjadi lebih besar bila dibandingkan dengan algoritme kompresi yang
menggunakan skema kamus klasik (menggunakan karakter yang tidak dirubah
kedalam bentuk byte) dan proses ini memanfaatkan keuntungan dari jumlah
RAM yang terdapat pada komputer.
Slide Dictionary algorithm
Slide Dictionary algorithm (skema pergeseran kamus) adalah suatu skema
dalam kompresi data dimana setiap karakter menggunakan kamus untuk

kompresi dan isi kamus akan berubah dengan sistem FIFO (First In First Out).
Ukuran kamus dapat ditentukan pada saat mulai (sebelumnya harus melalui
konten sumber setidaknya sekali sebelum menentukan ukuran terbaik) yang
tergantung pada bagaimana programmer ingin mencapai untuk mendapatkan hasil
yang lebih baik (lebih kecil ukuran hasil).
Berikut adalah proses encoding pada Slide Dictionary Algorithm:
Langkah 1. Baca seluruh data untuk inisialisasi pada kamus.
Langkah 2. Baca nilai string asli dengan panjang kecocokan tertinggi.
Langkah 3. Cari nilai string yang memiliki kecocokan dengan ukuran terpanjang
dalam kamus.
Langkah 4. Jika kecocokan ditemukan lebih besar dari atau sama dengan panjang
kecocokan terendah:
Tulis simbol untuk pengkodean, serta offset dan panjang ukuran
untuk output.
Jika tidak, tulis simbol asli dan simbol awal pada output.
Langkah 5. Pergeseran salinan simbol ditulis ke output dikodekan dari string
unencoded ke dalam kamus.
Langkah 6. Baca simbol dari input asli yang sama dengan jumlah simbol ditulis
pada langkah 4.
Langkah 7. Ulangi Langkah 3, sampai semua seluruh input selesai dikodekan.
Gambar 3 menunjukkan contoh proses encoding pada skema pergeseran kamus

Gambar 3

Proses Encoding pada Skema Pergeseran Kamus (Sumber Gambar :
http://faculty.kfupm.edu.sa/)

Berikut adalah proses decoding pada Slide Dictionary Algorithm:
Langkah 1. Baca seluruh data untuk inisialisasi pada kamus.
Langkah 2. Baca simbol yang dikodekan / tidak dikodekan.
Langkah 3. Jika bendera menunjukkan string yang dikodekan:
Baca panjang dikodekan dan offset, kemudian salin jumlah tertentu
simbol dari kamus ke output didekode.
Jika tidak, membaca karakter berikutnya dan tulis terjemahan pada
output.
Langkah 4. Pergeseran salinan simbol ditulis ke output didekode ke dalam
kamus.
Langkah 5. Ulangi langkah 2 sampai semua input selesai diterjemahkan.
Gambar 4 menunjukkan contoh proses decoding pada skema pergeseran kamus

7

yang digunakan pada LZMA.

Gambar 4

Proses Decoding pada Skema Pergeseran Kamus (Sumber Gambar :
http://faculty.kfupm.edu.sa/)
Delta Encoding

Delta encoding adalah aliran (stream) simbol yang dikompresi sebagai
perbedaan antara simbol saat ini dan simbol sebelumnya. Hal ini akan
mengakibatkan kompresi untuk setiap aliran data membutuhkan lebih sedikit bit
untuk mewakili perbedaan antara simbol. Penggunaan delta encoding paling
sering ditemukan pada data audio atau alat pemonitor jantung karena memiliki
banyak kesamaan dalam aliran datanya.
Proses Encoding
Simbol pertama dari delta stream dikodekan selalu ditulis tanpa pengkodean.
Setelah itu, setiap simbol diganti dengan nilai sepanjang S bit yang mewakili nilai
simbol saat ini dikurangi nilai pada simbol sebelumnya (atau sebaliknya jika
Anda suka). Nilai pada S bit mewakili data yang berkisar antara -2S-1 to 2S-1-1.
Menggunakan nilai S bit yang kecil dapat mempercepat proses kompresi, tetapi
nilai yang terlalu kecil bisa membuat perbedaan ukuran simbol dari nilai S bit
tidak muncul. Sehingga untuk mencegah ukuran delta encode yang terlalu besar
karena nilai S bit, simbol escape digunakan sebagai simbol berikutnya yang tidak
dikodekan dengan delta encoding sehingga simbol ast ini bisa digunakan sebagai
output.
Proses encoding pada delta encoding dijelaskan sebagai berikut:
Langkah 1. Tulis simbol pertama yang keluar tanpa pengkodean.
Langkah 2. Baca simbol berikutnya dari input stream. Keluar bila EOF.
Langkah 3. Hitung perbedaan antara simbol saat ini dan simbol sebelumnya.
Langkah 4. Jika perbedaan dapat diwakili dalam S bit:
Tulis perbedaan pada output stream
Kembali ke langkah 2
Langkah 5. Jika perbedaan tidak dapat diwakili dalam S bit:
Tulis simbol escape (nilai minimum dalam S bit)
Tulis simbol saat ini tanpa pengkodean
Kembali ke langkah 2

Proses Decoding
Proses decoding lebih mudah dari saat melakukan encoding. Simbol pertama
dari delta stream selalu ditulis tanpa pengkodean yang dibaca kembali dan ditulis
tanpa ada modifikasi. Setelah itu, baca simbol yang dikodekan sepanjang S bit.
Jika simbol S bit adalah escape, maka baca simbol berikutnya dan tulis sebagai
output, jika tidak, tulis simbol yang mewakili jumlah dan perbedaan dari simbol
yang dikodekan sepanjang S bit sebelumnya.
Berikut adalah proses decoding pada delta encoding:
Langkah 1. Salin simbol pertama pada output yang dikodekan.
Langkah 2. Baca simbol berikutnya dari input stream. Keluar bila EOF.
Langkah 3. Jika delta saat ini adalah simbol escape:
Baca simbol berikutnya sebagai simbol yang tidak dikodekan
Tulis simbol untuk pada output yang dikodekan
Kembali ke langkah 2
Langkah 4. Jika delta saat ini tidak simbol escape:
Hitung nilai dari simbol sebelumnya ditambah delta
Tulis simbol yang dihasilkan untuk output yang dikodekan
Kembali ke langkah 2
Range Coder
Fokus utama dari Range Coder adalah efisiensi pada Sliding Dictionary
Algorithm, yaitu menghapus redudansi pada teks. Selain itu Range Coder
mengkodekan semua simbol pesan kedalam nomor tunggal untuk mencapai rasio
kompresi yang lebih besar (Arohi 2014).
Prosedur dalam range coder :
− Range encoding mengkodekan seluruh karakter dalam satu rentang
− Setiap karakter dihitung jumlah dan kemungkinan muncul
− Nilai awal dibagi sebanyak jumlah karakter, dan dibagi berdasarkan urutan
munculnya karakter
− Setiap karakter dikodekan sesuai kemungkinan munculnya, dengan
mengurangi kisaran saat turun ke hanya bahwa sub-range yang sesuai dengan
karakter berikutnya yang akan dikodekan.
− Ketika semua simbol telah dikodekan, hanya mengidentifikasi sub-rentang
untuk mengkomunikasikan seluruh pesan
Unicode
Pada tahun 1960, ASCII (American Standard code for Information
Interchange) lahir dan digunakan sebagai standar internasional dalam
merepresentasikan karakter. ASCII memiliki 128 jenis pengkodean yang
digunakan dalam merepresentasikan karakter. Seiring dengan berkembangnya
komputasi di seluruh dunia, jumlah karakter pada ASCII menjadi kurang
memadai karena tidak dapat merepresentasikan karakter yang dimiliki
masing-masing bagian dari dunia sehingga mereka memutuskan untuk membuat
sendiri skema dari pengkodean karakter yang mereka gunakan. Hal ini
menyebabkan ketidakcocokan pengkodean karakter dari suatu bagian dunia saat
akan digunakan pada bagian dunia lain sehingga dibutuhkan suatu skema
pengkodean yang dapat digunakan untuk merepresentasikan setiap karakter dari

9

seluruh dunia. Pada tahun 1988, Joe Becker dan Lee Collins memperkenalkan
suatu skema baru yang dapat merepresentasikan karakter dari seluruh dunia yaitu
unicode (Singh 2013).
Unicode adalah skema untuk merepresentasikan setiap karakter dalam nomor
dan kode unik yang dijadikan sebagai rujukan(Vineet 2013). Tujuan dari unicode
adalah menyatukan skema karakter dari seluruh dunia sehingga dapat digunakan
dimana saja tanpa adanya ketidakcocokan dari pengkodean karakter dari setiap
bagian dunia. Pengkodean unicode yang paling umum disebut sebagai sebagai
UTF-n, dimana UTF adalah singkatan dari unicode Transformation Format dan n
adalah angka yang menentukan jumlah bit yang digunakan dalam encoding
(Satyajeet 2014). Dua jenis pengkodean unicode yang paling sering digunakan
adalah UTF-8 dan UTF-16. UTF-8 menggunakan pengkodean 1x8bit untuk
karakter pada rentang 0000h - 007Fh, 2x8bit untuk karakter pada rentang 0080h 07FFh, dan 3x8bit untuk karakter pada rentang 0800h - FFFFh, sedangkan
UTF-16 menggunakan pengkodean 1x16bit untuk karakter pada rentang 0000h FFFFh.

3 METODE
Metode pada penelitian terdiri dari empat tahap, yaitu analisis masalah,
proses pembuatan QR code, proses pengujian QR code, dan evaluasi dari
penelitian yang telah dilakukan.
Analisis Masalah
Pada tahap ini dilakukan analisis terhadap jenis informasi yang akan
dikompresikan menggunakan algoritme kompresi data lossless untuk diproses
menjadi bentuk akhir berupa QR code. Jenis informasi yang akan diolah pada
penelitian ini adalah data pribadi dalam bentuk teks. Pada data pribadi terdapat
informasi berupa Kartu Tanda Penduduk (KTP), Surat Izin Mengemudi (SIM),
Surat Tanda Naik Kendaraan (STNK) dan Kartu Keluarga (KK). Setiap data
pribadi akan dicatat dalam bentuk teks, kemudian diuji menggunakan huruf
depan besar, seluruh huruf besar, dan menggunakan karakter spesial. Selanjutnya
setiap data pribadi akan dikompresi menggunakan kompresi data lossless untuk
dibuat kedalam bentuk QR code. Data pribadi yang belum dikompresi akan
dibuat kedalam QR code untuk membandingkan seberapa besar pengurangan
ukuran yang terjadi pada QR code dengan informasi sebelum dan sesudah
kompresi.
Proses pembuatan QR code dengan informasi terkompresi
Pada tahap ini akan dijelaskan bagaimana proses kompresi informasi hingga
menghasilkan data yang digunakan dalam membuat QR code seperti yang
dijelaskan pada Gambar 5. Langkah-langkah yang dilakukan adalah sebagai
berikut :
1. Informasi berupa data pribadi dibuat dalam bentuk teks
2. Informasi dalam bentuk teks dikompresikan menggunakan algoritme
kompresi data lossless
3. Hasil dari kompresi akan didapatkan nilai berupa byte
4. byte dikonversikan ke dalam bentuk karakter unicode dengan
menghindari nilai yang tidak dapat diproses pada QR code

5.
6.
7.

Didapatkan karakter unicode yang akan diproses menjadi QR code
Buat QR code dari karakter unicode menggunakan pengkodean UTF-8
QR code dengan informasi terkompresi selesai dibuat

Gambar 5

Proses pembuatan QR code dengan Informasi Terkompresi

Pada proses encoding, informasi pada Kartu Tanda Penduduk (KTP), Surat
Izin Mengemudi (SIM), Surat Tanda Naik Kendaraan (STNK) dan Kartu
Keluarga (KK) akan ditulis dalam bentuk teks jenis penulisan yang berbeda untuk
dikompresi. Setelah ditulis dalam bentuk teks, selanjutnya adalah
mengkompresikan informasi tersebut menggunakan algoritme LZMA.
Berikut adalah proses kompresi data lossless menggunakan algoritme LZMA :
1. Inisialisasi kamus untuk pengenalan nilai.
2. Baca karakter yang belum terkodekan untuk mencari nilai terpanjang.
3. Cari kecocokan karakter yang memiliki nilai terpanjang dalam kamus.
4. Jika kecocokan karakter ditemukan lebih besar dari atau sama dengan batas
minimum:
a) Tulis poin untuk offset dan panjang karakter pada pengkodean output.
b) Jika tidak, tulis poin dan simbol untuk melewati karakter pada
pengkodean output.
5. Geser simbol untuk melewati karakter pada bagian karakter yang tidak
dikodekan dalam kamus..
6. Baca sejumlah simbol yang tidak dikodekan sebanyak jumlah simbol yang
ditulis pada langkah 4.
7. Ulangi dari Langkah 3 sampai semua input selesai dikodekan.
Setelah mendapatkan output berupa byte, selanjutnya adalah
mengkonversikan nilai tersebut ke dalam bentuk karakter Unicode. Proses ini
perlu dilakukan karena secara tidak langsung QR code generator dan reader
selalu memproses input data sebagai karakter 8-bit. Apabila tetap menggunakan
byte yang didapat, maka QR code generator akan membaca setiap input sebagai
karakter 8-bit sehingga ukuran dari QR code akan membengkak.
Pada unicode ada jenis karakter yang tidak dapat dicetak pada QR code
(unprintable character), tetapi hal tersebut bukan masalah bagi QR code scanner.

11

Hal ini dikarenakan QR code scanner hanya membaca data mentah (raw byte)
yang kemudian dikonversikan ke dalam karakter sesuai dengan jenis encoding
yang dipakai (numerik, alphanumerik, 8-bit, atau kanji). Selain itu kemampuan
dari QR code generator dalam melakukan encoding dan QR code scanner juga
perlu diperhatikan agar dapat membuat QR code dan membaca data pada QR
code dengan baik. Setelah mendapatkan karakter mana saja yang dapat diproses
oleh QR code generator, selanjutnya adalah melakukan modifikasi pada karakter
unicode sehingga seluruhnya dapat diproses pada QR code generator. Berikut
adalah algoritme yang kami gunakan untuk melakukan konversi byte ke karakter
Unicode:
Setelah mengkonversikan byte ke dalam karakter Unicode, selanjutnya adalah
membentuk QR code dari karakter unicode yang dimiliki.
Berikut adalah proses pembentukan QR code yang telah disederhanakan:
1. Analisa isi data untuk menentukan jenis encoding yang akan digunakan
2. Melakukan proses encoding untuk data yang dimiliki
3. Membuat Error Correction coding
4. Membentuk data akhir yang akan diproses pada QR code
5. Melakukan alokasi data pada matriks
6. Memproses data masking untuk menentukan jenis masking yang digunakan
pada QR code
7. Memproses informasi format dan versi QR code
Proses Pengujian QR code dengan Informasi Terkompresi
QR code yang dengan informasi terkompresi harus diuji untuk mendapatkan
informasi asli. Pada tahap ini akan dijelaskan bagaimana proses membaca data
yang telah dikompresi pada QR code seperti yang dijelaskan pada Gambar 6.
Langkah-langkah yang dilakukan adalah sebagai berikut :
1. Membaca QR code untuk mendapatkan data berupa karakter Unicode.
2. Karakter unicode didapat
3. Mengkonversi karakter unicode yang didapat ke dalam bentuk byte dengan
menggunakan proses terbalik dengan pada saat melakukan proses encoding
4. byte didapat
5. Melakukan proses dekompresi menggunakan algoritme LZMA dari byte
yang didapat.
6. Bila tidak ada error, maka informasi asli akan diapatkan.

Gambar 6

Proses Pengujian QR code dengan Informasi Terkompresi

Proses decoding terlebih dahulu mendapatkan isi data dari QR code dengan
cara menscan QR code tersebut. Setelah melakukan scan terhadap QR code maka
didapatkan data berupa karakter Unicode. Langkah selanjutnya adalah
mengkonversi karakter unicode tersebut ke dalam bentuk bilangan byte.
Setelah mendapatkan byte, selanjutnya adalah mengembalikan informasi
asli. Proses pengembalian pada algoritme LZMA lebih cepat dibanding pada saat
melakukan encoding.
Berikut adalah proses dekompresi pada LZMA :
1.
Inisialisasi kamus untuk nilai awal.
2.
Baca poin untuk pengkodean / bukan pengkodean.
3.
Jika poin menunjukkan karakter pengkodean:
a) Baca panjang karakter pengkodean dan offset, kemudian salin jumlah
tertentu simbol dari kamus ke output untuk decode.
b) Jika tidak, baca karakter berikutnya dan menulis ke output
diterjemahkan.
4.
Pergeseran salinan simbol ditulis ke output didekode ke dalam kamus.
5.
Ulangi dari Langkah 2, sampai semua seluruh input telah diterjemahkan.
Bila tidak ada kesalahan pada saat melakukan encoding / decoding, maka
informasi asli akan didapatkan kembali. Tetapi bila ada kesalahan pada saat
melakukan encoding / decoding, maka informasi asli akan berubah atau tidak
dapat dikembalikan.
Evaluasi Perbandingan Ukuran QR Code
Setelah seluruh data dikompresi dan dibentuk menjadi QR code, selanjutnya
adalah mengukur perbandingan ukuran pada QR code yang menggunakan data
setelah kompresi dan sebelum dikompresi untuk mengetahui pengaruh tingkat
kompresi data terhadap ukuran pada QR code.

13

Berikut adalah persamaan yang digunakan untuk menghitung ukuran QR
pada code.
QR = 8 + (AP x m) + (DAP x n)

(1)

Keterangan :
QR
= Ukuran QR code
AP
= Aligment Pattern (panjang= 5)
DAP
= Jumlah Data area yang berada di antara Aligment Pattern
m
= Banyaknya AP pada satu garis vertikal / horizontal
n
= Banyaknya DAP pada satu garis vertikal / horizontal
Sehingga
QRk = QR2 / QR1

(2)

Keterangan :
QRK
= Perbandingan ukuran QR code menggunakan data setelah kompresi
dan sebelum kompresi
QR1
= Ukuran QR code menggunakan data sebelum kompresi
QR2
= Ukuran QR code menggunakan data setelah kompresi

4 HASIL DAN PEMBAHASAN
Proses pembuatan QR code dengan informasi terkompresi
Informasi dari data pribadi ditulis dalam bentuk teks sebagai untuk
dikompresi menggunakan algoritma kompresi data lossless sebagai berikut.
Nama
Wahyu Juliarianto
Tempat/Tgl Lahir Jakarta, 09/07/1988
Jenis Kelamin Laki/Laki
Alamat Kamp. Sawah
RT/RW 001/011
Kel/Desa Cibinong
Kecamatan
Cibinong
Agama Islam
Status Perkawinan Belum Kawin
Pekerjaan Pelajar/Mahasiswa
Kewarganegaraan WNI
Berlaku Hingga
9/7/2018

Seluruh proses pada LZMA menggunakan byte, sehingga pada proses
encoding data terlebih dahulu dirubah kedalam bentuk byte dikompresi
menggunakan algoritme LZMA.
4E 61 6D 61 09 57 61 68 79 75 20 4A 75 6C 69 61 72 69 61 6E 74 6F 0A 54 65 6D 70 61 74 2F
54 67 6C 20 4C 61 68 69 72 09 4A 61 6B 61 72 74 61 2C 20 30 39 2F 30 37 2F 31 39 38 38 0A
4A 65 6E 69 73 20 4B 65 6C 61 6D 69 6E 09 4C 61 6B 69 2F 4C 61 6B 69 0A 41 6C 61 6D 61
74 09 4B 61 6D 70 2E 20 53 61 77 61 68 0A 52 54 2F 52 57 09 30 30 31 2F 30 31 31 0A 4B 65
6C 2F 44 65 73 61 09 43 69 62 69 6E 6F 6E 67 0A 4B 65 63 61 6D 61 74 61 6E 09 43 69 62 69
6E 6F 6E 67 0A 41 67 61 6D 61 09 49 73 6C 61 6D 0A 53 74 61 74 75 73 20 50 65 72 6B 61

77 69 6E 61 6E 09 42 65 6C 75 6D 20 4B 61 77 69 6E 0A 50 65 6B 65 72 6A 61 61 6E 09 50
65 6C 61 6A 61 72 2F 4D 61 68 61 73 69 73 77 61 0A 4B 65 77 61 72 67 61 6E 65 67 61 72 61
61 6E 09 57 4E 49 0A 42 65 72 6C 61 6B 75 20 48 69 6E 67 67 61 09 39 2F 37 2F 32 30 31 38
0A

Dari proses kompresi akan diperoleh kumpulan byte seperti berikut.
5D 00 00 01 00 0C 01 00 00 00 00 00 00 00 27 18 49 A6 20 55 E7 0C 4D 60 07 98 1D 20 4A 4F
14 8F 13 5C AC 9D DF 5C 0A 76 0C E9 2C 50 5A 69 86 54 FE 8A 83 EE 8D D7 B7 44 24 3C
A7 35 50 4E F8 D3 78 CB 16 DC 98 8F 22 5C D2 49 B7 73 11 24 B8 AA DC E5 68 E2 6F 3D
EC EC DF 9F 7D 50 FC 71 28 67 0F 13 91 EB 70 C6 EA C8 3A 76 9C 7D C9 80 75 77 31 C9 E9
C5 A0 A9 81 EF C5 69 CB 7F 5D 79 0F 05 16 8F 1E 36 8B 51 64 D4 38 18 8F 5D 12 77 DE 98
68 6B 06 39 1D F6 B4 1D F5 4A 38 FD B0 2A BA 89 67 CF 75 7F CF BD 7E 1E 3F D4 D2 68
CB C9 05 F3 E7 B4 B7 FE 11 35 18 49 4F 70 68 D0 E5 14 3F 74 53 71 2E 2B 4E 22 C8 35 E9
DE E2 35 4D 12 AB 4F C9 CC CF 1B 0A D0 38 6F F5 66 16 73 92 01 61 B2 ED F5 1E 3F ED
5F 77 BB C0 99 2C 8E FF 0F 8F FF F7 0F AC 00

Data dari hasil kompresi digunakan untuk diproses menjadi QR code, karena
QR code generator belum memiliki pilihan untuk input jenis byte, maka data
yang dijadikan input harus dirubah menjadi karakter unicode. Bila data hasil
kompresi berupa byte langsung diproses maka akan menghasilkan QR code
generator akan membaca input sebagai karakter biner sehingga menghasilkan
ukuran QR code yang lebih besar dari QR code yang menggunakan informasi asli
seperti yang ditunjukkan pada Gambar 7.

Gambar 7

Perbandingan QR code menggunakan informasi asli (gambar kiri)
dengan QR code menggunakan informasi hasil kompresi (output
berupa byte, gambar kanan)

Untuk menghindari hal tersebut, setiap byte pada hasil kompresi dirubah
menjadi karakter unicode sehingga menghasilkan nilai unicode baru seperti
berikut.
]'I¦ UçM`
 JO \¬ ß\
vé,PZi Tþ î ×·D$