TUGAS AKHIR
Disusun oleh
AFIF PRIYAMBODO
1101154312
Disusun Oleh
AFIF PRIYAMBODO
1101154312
Pembimbing I Pembimbing II
ii
LEMBAR PERNYATAAN ORISINALITAS
Menyatakan bahwa Tugas Akhir ini merupakan karya orisinal saya sendiri,
dengan di bawah bimbingan Pembimbing I dan II dengan judul :
Atas pernyataan ini, saya siap menanggung resiko / sanksi yang dijatuhkan
kepada saya apabila kemudian ditemukan adanya pelanggaran terhadap kejujuran
akademik atau etika keilmuan dalam karya ini, atau ditemukan bukti yang
menunjukkan ketidakaslian karya ini.
Afif Priyambodo
NIM.1101154312
iii
ABSTRAK
iv
ABSTRACT
v
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Allah SWT atas rahmat dan hidayah-
Nya serta karunia-Nya penulis dapat menyelesaikan Tugas Akhir berjudul
DESAIN DAN IMPLEMENTASI QR-CODE BERBASIS ANDROID
DENGAN METODE ERROR CORRECTION KODE BOSE, CHAUDHURI,
HOCQUENGHEM (BCH) UNTUK SISTEM PRESENSI ini. Tugas Akhir ini
merupakan salah satu syarat menyelesaikan pendidikan dan memperoleh gelar
Sarjana pada Fakultas Teknik Elektro Universitas Telkom.
Penulis menyadari bahwa pada pembuatan Tugas Akhir ini masih banyak
kekurangan baik pada perancangan sistem maupun pada penulisan buku dan masih
jauh dari sempurna. Oleh karena itu, kritik dan saran yang membangun dari
pembaca sangat diharapkan dan semoga tugas akhir ini dapat bermanfaat bagi kita
semua.
Dengan segala kerendahan hati, penulis berharap semoga Tugas Akhir ini
dapat dikembangkan ke arah yang lebih baik dan bermanfaat bagi pembaca dan
penulis, serta bagi dunia pendidikan.
Wassalamu’alaikum Wr. Wb.
Penulis
vi
UCAPAN TERIMA KASIH
2. Mbah kakung, Mbah uyut dan semua keluarga besar penulis yang tidak bisa
disebut satu-persatu.
3. Ayah (Khanifudin Zuchri) dan Ibu (Endang Suwarni), orang tua yang selalu
memberikan kasih sayang, motivasi, semangat, do’a, dan dukungan moril
maupun materil yang tiada henti kepada penulis untuk menyelesaikan kuliah dan
Tugas Akhir ini.
4. Kakak-kakak kandung penulis yaitu Nur Utami Kurniastuti, Nur Adi Nugroho,
Taufik Wahyu Hidayat, Muhammad Nurul Kurniawan yang selalu mendukung
dalam keadaan apapun dan yang telah memberikan kasih sayang dan dukungan
dalam menyelesaikan Tugas Akhir ini.
5. Bapak Dr. Koredianto Usman, S.T., M.Sc., selaku dosen pembimbing I yang
telah membimbing penulis dengan sepenuh hati dalam menyelesaikan Tugas
Akhir ini, mendengarkan segala keluh kesah penulis dan memberikan saran,
solusi dan kasih sayang selama menyelesaikan Tugas Akhir ini.
6. Ibu Ledya Novamizanti, S.Si., MT., selaku dosen pembimbing II yang telah
memberikan topik dan membimbing serta memberikan ilmu yang sangat
bermanfaat, sehingga penulis dapat menyelesaikan Tuhas Akhir.
vii
6. Dr. Ir. Rina Pudji Astuti, M.T, selaku dosen wali kelas TT-39-13 yang telah
membantu penulis selama masa perkuliahan di Telkom University.
7. Seluruh Dosen dan Staff Telkom University yang telah memberikan ilmu selama
penulis menempuh pendidikan di Telkom University.
9. Teman-teman Hidup Baru (Bygas, Mas Panji, Sanmbut, Jeh, Fadli, Angga,
Soba) yang telah menjadi keluarga dekat penulis di Bandung.
viii
DAFTAR ISI
ix
2.6.2 Decoding QR-Code ........................................................................ 30
2.7 MATLAB ............................................................................................... 32
2.8 Android ................................................................................................... 32
2.8.1 Arsitektur Android ......................................................................... 32
2.8.2 Android Studio ............................................................................... 33
2.9 Firebase .................................................................................................. 34
2.9.1 Firebase Authentication ................................................................. 35
2.9.2 Firebase Realtime Database .......................................................... 35
2.10 Black Box Testing ............................................................................... 36
BAB III PERANCANGAN SISTEM ................................................................ 37
3.1 Konfigurasi Sistem ................................................................................. 37
3.2 Sistem Encoder....................................................................................... 37
3.2.1 Encode QR-Code............................................................................ 38
3.2.2 Encode BCH Code ......................................................................... 39
3.2.3 Decode BCH Code ......................................................................... 43
3.3 Sistem Hardware .................................................................................... 48
3.3.1 Perangkat Android (Smartphone)................................................... 48
3.3.2 Kartu Pelajar (QR-Code) ................................................................ 48
3.4 Sistem Decoder ...................................................................................... 49
3.4.1 Deteksi QR-Code ........................................................................... 49
3.4.2 Aplikasi berbasis Android .............................................................. 49
3.4.3 Desain Aplikasi Smart Presence .................................................... 50
3.5 Sistem Presensi Sekolah ......................................................................... 54
3.6 Rencana Pengujian ................................................................................. 55
3.6.1 Pengujian Black box ....................................................................... 56
3.6.2 Pengujian Jarak Deteksi QR-Code ................................................. 56
3.6.3 Pengujian Deteksi QR-Code Berdasarkan Cahaya ........................ 57
3.6.4 Pengujian Ketahanan Kartu Pelajar (QR-Code)............................. 57
3.7 Parameter Performansi ........................................................................... 60
BAB IV HASIL DAN PEMBAHASAN ............................................................ 61
x
4.4 Hasil Pengujian Ketahanan Kartu Pelajar (QR-Code)............................ 67
4.4.1 Pengujian Kotor Tinta ..................................................................... 67
4.4.2 Pengujian Kotor Lumpur................................................................. 68
4.4.3 Pengujian Gesekan atau Goresan .................................................... 69
4.5 Analisis Performansi Pengujian ............................................................. 70
BAB V KESIMPULAN DAN SARAN .............................................................. 71
5.1 Kesimpulan ............................................................................................. 71
5.2 Saran ....................................................................................................... 72
DAFTAR PUSTAKA .......................................................................................... 73
LAMPIRAN ......................................................................................................... 75
LAMPIRAN A ..................................................................................................... 76
LAMPIRAN B ..................................................................................................... 78
LAMPIRAN C ..................................................................................................... 79
LAMPIRAN D ..................................................................................................... 82
LAMPIRAN E ..................................................................................................... 83
xi
DAFTAR GAMBAR
xii
Gambar 3.21 Pengujian kotor tinta (a) Ringan, (b), Sedang, (c) Berat. .............. 58
Gambar 3.22 Pengujian kotor lumpur (a) Ringan, (b) Sedang, (c) Berat. ........... 58
Gambar 3.23 Pengujian gesekan atau goresan (a) Ringan, (b) Sedang, (c) Berat.
............................................................................................................................... 59
Gambar A.1 Jarak deteksi QR-Code (a) 1 cm, (b) 2 cm, (c) 3 cm. ..................... 76
Gambar A.2 Jarak deteksi QR-Code (a) 4 cm, (b) 5 cm, (c) 10 cm. ................... 77
Gambar A.3 Jarak deteksi QR-Code (a) 15 cm, (b) 20 cm, (c) 25 cm, (d) 30 cm.
............................................................................................................................... 77
Gambar A.4 Jarak deteksi QR-Code (a) 35 cm, (b) 40 cm, (c) 45 cm, (d) 50 cm.
............................................................................................................................... 77
Gambar B.1 Intensitas cahaya (a) Ringan, (b) Sedang, (c) Berat. ....................... 78
Gambar C.1 Kotor tinta warna merah (a) Ringan, (b) Sedang, (c) Berat. ........... 79
Gambar C.2 Kotor tinta warna hitam (a) Ringan, (b) Sedang, (c) Berat............. 80
Gambar C.3 Kotor tinta warna kuning (a) Ringan, (b) Sedang, (c) Berat........... 80
Gambar C.4 Kotor tinta warna hijau (a) Ringan, (b) Sedang, (c) Berat. ............. 80
Gambar C.5 Kotor tinta warna biru (a) Ringan, (b) Sedang, (c) Berat. .............. 81
Gambar D.1 Kotor lumpur (a) Ringan, (b) Sedang, (c) Berat. ............................ 82
Gambar E.1 Pengujian gesekan atau goresan (a) Ringan, (b) Sedang, (c) Berat. 83
xiii
DAFTAR TABEL
xiv
DAFTAR ISTILAH
xv
DAFTAR ACHIEVEMENT
xvi
BAB I
PENDAHULUAN
17
18
Tujuan yang ingin dicapai melalui penelitian yang dilakukan Tugas Akhir
ini antara lain:
1. Mendesain dan mensimulasikan sistem presensi menggunakan QR-Code
berbasis android.
2. Menguji ketahanan sistem presensi menggunakan QR-Code terhadap
kerusakan kartu pelajar (kotor tinta, kotor lumpur, goresan atau gesekan).
19
Beberapa hal yang dijadikan batasan masalah pada Tugas Akhir ini adalah :
1. Desain aplikasi merupakan prototipe yang masih membutuhkan
pengembangan.
2. Penelitian berfokus pada desain dan implementasi aplikasi serta sistem
presensi.
3. QR-Code model 1 yang dapat menampung 1.167 angka (73 x 73 modul).
4. Sistem presensi diimplementasikan di SMA/MA sederajat.
5. Data informasi yang dikodekan menjadi QR-Code berupa Nomor Induk
Siswa Nasional (NISN).
6. Setiap siswa akan memiliki QR-Code masing-masing sesuai data informasi
yang dikodekan yang ditempatkan pada Kartu Pelajar.
4. Pengujian sistem
Menguji ketahanan QR-Code pada kartu pelajar terhadap lingkungan.
Pengujian dilakukan dengan memberi noda pada kartu pelajar. Selain itu,
menguji fungsionalitas aplikasi Smart Presence.
5. Penyimpulan hasil
Menarik kesimpulan berdasarkan data hasil kajian dan studi untuk
pengembangan sistem presensi di sekolah.
• BAB I PENDAHULUAN
Membahas latar belakang, tujuan, rumusan dan batasan masalah,
metodologi penelitian, serta sistematika penulisan.
• BAB II DASAR TEORI
Membahas teori QR-Code, BCH Code, MATLAB, Android, Android
Studio, Firebase, Black Box Testing.
• BAB III PERANCANGAN SISTEM
Menjelaskan perancangan sistem encoder berupa proses encode QR-Code
dengan kode BCH sebagai error correction, desain kartu pelajar sebagai
sistem hardware, sistem decoder berupa proses deteksi QR-Code, desain
aplikasi Smart Presence, sistem presensi, pengujian, dan parameter
performansi
• BAB IV HASIL DAN PEMBAHASAN
Berisi hasil dan analisis simulasi pengujian yang dilakukan.
• BAB V KESIMPULAN DAN SARAN
Menjelaskan tentang kesimpulan dan saran yang mendukung untuk
perkembangan penelitian selanjutnya.
BAB II
DASAR TEORI
QR-Code adalah jenis simbol dua dimensi yang dikembangkan oleh Denso
Wave, anak perusahaan Toyota di Jepang tahun 1994. QR-Code memiliki tujuan
untuk menyampaikan informasi secara cepat dan tanggap. QR-Code adalah
perkembangan dari teknologi barcode dimana hanya menyimpan informasi secara
horizontal sedangkan QR-Code dapat menyimpan informasi lebih banyak, baik
secara horizontal maupun vertikal.
21
22
Quite zone digunakan untuk memastikan tidak ada teks atau tanda yang
menyesatkan QR-Code. Gambar 2.2 menunjukan struktur dari QR-Code.
Encoding region terdiri dari area data dan error correction, informasi versi,
serta informasi format. Area data berfungsi untuk menyimpan data dan di area
tersebut terdapat error correction. Informasi versi menunjukan versi dari QR-Code.
Informasi format menunjukan error correction, level, dan mask pattern.
Function patterns adalah bentuk yang harus ditempatkan di area QR-Code
secara spesifik. Hal itu dilakukan untuk memastikan bahwa pemindai QR-Code
dapat mengidentifikasi dengan benar [1]. Ada empat jenis function pattern yaitu :
1. Finder pattern berfungsi untuk identifikasi letak QR-Code yang berada di
tiga sudut (kiri atas, kanan atas, dan kiri bawah).
1:1: 3 :1: 1
A : 3 Modules
B : 5 Modules
A B C
C : 7 Modules
Finder pattern terdiri dari bingkai persegi luar dengan 7 x 7 modul gelap,
bingkai persegi dalam berukuran 5 x 5 modul terang, dan kotak di tengah 3
x 3 modul gelap. Rasio lebar modul pada masing masing pola pendeteksi
adalah 1:1:3:1:1.
2. Separators adalah satu area modul dari jarak antar masing-masing finder
pattern dan encoding region.
3. Timing pattern terdiri dari 2 jenis, yaitu timing pattern horisontal dan timing
pattern vertikal. Timing pattern horisontal ditempatkan di baris keenam QR-
Code diantara separators. Timing pattern yang vertikal terletak dikolom
keenam QR-Code diantara separators. Pola ini sangat membantu dalam
menentukan kerapatan simbol, koordinat modul dan area informasi versi.
4. Alignment pattern dibangun dari 5 x 5 modul gelap, 3 x 3 modul terang dan
modul gelap ditengahnya. Jumlah alignment pattern tergantung pada versi
QR-Code.
QR-Code terdiri dari lima tipe. Setiap tipe memiliki pola QR-Code yang
berbeda. Selain itu, tipe QR-Code berpengaruh terhadap jumlah data informasi yang
dapat dikodekan. Gambar 2.4 adalah contoh dari tipe QR-Code.
(d) (e)
(sumber : https://voltage.tyepad.com) (sumber : https://qrcode.meetheed.com)
Gambar 2.4 Tipe QR-Code (a) Model 1 & 2, (b) Micro, (c) Logo, (d) Encrypted,
(e) iQR-Code.
24
Proses awal kode BCH adalah pembentukan kumpulan checkbit yang akan
dikirimkan bersama informasi. Adapun proses pembentukan sebagai berikut [5] :
1. Penentuan parameter kode BCH.
Parameter digunakan sebagai bahan dalam proses encode-decode kode
BCH. Parameter tersebut meliputi :
o Variabel 𝑚
o Panjang blok yang dikirim : 𝑛 = 2𝑚 − 1
o Panjang bit informasi :𝑘
o Error capability :𝑡
o Checkbit : 𝑐 = 𝑚 ⋅ 𝑡 (ketentuan 𝑛 − 𝑘 ≤ 𝑚𝑡)
Panjang bit informasi berpengaruh terhadap nilai parameter kode BCH.
Nilai parameter ditentukan berdasarkan Tabel 2.2.
26
m n k t n k t n k t m n k T n k t
9 511 457 6 511 322 22 511 193 43 511 58 91 1023 933 9
448 7 313 23 184 45 49 93 923 10
439 8 304 25 175 46 40 95 913 11
430 9 295 26 166 47 31 109 903 12
421 10 286 27 157 51 28 111 893 13
412 11 277 28 148 53 19 119 883 14
403 12 268 29 139 54 10 121 873 15
394 13 259 30 130 55 10 1023 1013 1 863 16
385 14 250 31 121 58 1003 2 858 17
376 15 241 36 112 59 993 3
367 16 238 37 103 61 983 4
358 18 229 38 94 62 973 5
349 19 220 39 85 63 963 6
340 20 211 41 76 85 953 7
331 21 202 42 67 87 943 8
Decode BCH Code merupakan proses error detection dan error correction.
Decode BCH Code mendeteksi error serta mengoreksi jika error ditemukan [5].
Data bit yang didapatkan pada proses encode BCH code menjadi data input pada
proses decode BCH Code. Adapun proses decode BCH Code sebagai berikut :
28
1. Data bit yang akan dikirim (𝑉(𝑥)) dibagi dengan generator polynomial
(𝑔(𝑥)).
𝑉(𝑥)
(1)
𝑔(𝑥)
Apabila hasil pembagian = 0, maka tidak ada error. Namun, apabila hasil
pembagian = 0, itu berarti terdapat error dan harus melalui proses koreksi.
2. Menentukan nilai minimal polynomial (2𝑡).
3. Menghitung syndrome dari codeword (𝑆1 , … , 𝑆2𝑡 ).
4. Membentuk Tabel BCH (algoritma Peterson-Berlekamp).
5. Hasil dari Tabel BCH ( 𝜎 (𝑛) (𝑥) ) adalah polinomial yang berfungi
mendeteksi lokasi jika terdapat error.
6. Menentukan akar persamaan polinomial dengan metode trial dan error.
7. Menentukan nilai kebalikan dari akar persamaan polinomial. Nilai tersebut
merupakan posisi dari bit error.
MULAI 1
1 SELESAI
1. Analisis data
QR-Code mengkodekan serangkaian teks dengan empat mode yaitu
numeric, alphanumeric, byte, dan kanji [1]. Setiap metode pengkodean
dioptimalkan untuk mengkodekan data dengan sekumpulan bit sesingkat
mungkin. Oleh karena itu analisis data digunakan untuk mengetahui apakah
data yang dikodekan dalam mode numeric, alphanumeric, byte, atau kanji
[1].
2. Pengkodean data
Data diubah menjadi serangkaian bit yang dipecah menjadi data codewords
yang masing-masing memiliki 8 bit.
3. Pengkodean error correction
Pengkodean menghasilkan string bit data sebagai error correction
codewords [1]. Pemindai QR-Code membaca codewords data dan error
correction codewords. Dengan membandingkan keduanya, pemindai dapat
menentukan benar atau tidak dalam melakukan pemindaian. Jika pemindai
tidak membaca dengan benar, maka dapat memperbaiki kesalahan.
30
MULAI 1
Pengenalan modul
Error
Detection
Ekstrak format informasi
No error
Error
Penentuan informasi versi
Error correction
Melepas masking
Decode Data Codewords
END
1
2.7 MATLAB
2.8 Android
Android adalah sistem operasi mobile bersifat open source yang dimiliki
oleh perusahaan Google [2]. Android dikembangkan menggunakan kernel linux.
Android merupakan sistem operasi mobile paling populer yang beroperasi pada
miliaran perangkat. Android dikenal pertama kali pada tahun 2008, dengan merilis
Android Beta versi 1.0.
b. Libraries
Pada layer ini terdapat fitur-fitur android yang digunakan untuk menjalankan
aplikasi. Beberapa libraries diantaranya :
• Libraries media
• Libraries manajemen tampilan
• Libraries graphics
• Libraries SQLite
• Libraries SSL dan WebKit
• Libraries Live Webcore
• Libraries 3D
c. Android Runtime
Layer ini digunakan untuk menjalankan aplikasi di android menggunakan
implementasi dari linux. Adapun bagian-bagiannya meliputi :
• Core Libraries, berfungsi menerjemahkan bahasa java atau bahasa C.
• Dalvik Virtual Machine, sebuah mesin untuk menjalankan fungsi-fungsi
android.
d. Aplication framework
Layer ini berisi komponen-komponen yang digunakan untuk membuat alikasi.
Adapun komponen-komponennya sebagai berikut:
• Views
• Content Providers
• Resource Manager
• Notification Manager
• Activity Manager
e. Applications and Widget
Layer yang berhubungan dengan aplikasi inti yang berjalan pada sistem
android.
2.9 Firebase
1. Firebase Analytics
2. Firebase Cloud Messaging and Notifications
3. Firebase Authentication
4. Firebase Remote Config
5. Firebase Real Time Database
6. Firebase Crash Reporting
35
Sistem secara umum terbagi menjadi tiga kategori meliputi sistem encoder,
sistem hardware, dan sistem decoder. Sistem mendesain dan mensimulasikan QR-
Code untuk sistem presensi berbasis android. Gambar 3.1 menunjukan konfigurasi
sistem.
KONFIGURASI SISTEM
Encode-
Data Encode QR- Output Simbol
Decode
Informasi Code QR-Code
BCH
Code
37
38
Input data berupa text mode numeric. Input data berisi sepuluh angka
(NISN). Kemudian, sistem melakukan konfigurasi QR-Code. Konfigurasi tersebut
berpengaruh terhadap format QR-Code. Pada penelitian ini, paramater konfigurasi
QR-Code meliputi 𝑐ℎ𝑎𝑟𝑎𝑐𝑡𝑒𝑟𝑠𝑒𝑡 = 𝑈𝑇𝐹 8 , 𝑉𝑒𝑟𝑠𝑖 𝑄𝑅 − 𝐶𝑜𝑑𝑒 = 1 ,
𝑖𝑛𝑖𝑡𝑖𝑎𝑙 𝑠𝑖𝑧𝑒 = 117 dimana merupakan ukuran citra QR-Code, 𝑞𝑢𝑖𝑡𝑒𝑧𝑜𝑛𝑒 𝑠𝑖𝑧𝑒 =
4 yaitu menambahkan quite zone pada QR-Code, 𝑠𝑖𝑧𝑒 = [𝑖𝑛𝑖𝑡𝑖𝑎𝑙 𝑠𝑖𝑧𝑒 + 4 ⋅
𝑣𝑒𝑟𝑠𝑖 𝑄𝑅 − 𝐶𝑜𝑑𝑒, 𝑖𝑛𝑖𝑡𝑖𝑎𝑙 𝑠𝑖𝑧𝑒 + 4 ⋅ 𝑣𝑒𝑟𝑠𝑖 𝑄𝑅 − 𝐶𝑜𝑑𝑒] sehingga 𝑠𝑖𝑧𝑒 = [117 +
4 ⋅ 1, 117 + 4 ⋅ 1] atau [121 121] dimana merupakan ukuran QR-Code.
Selanjutnya, input data divalidasi untuk mengetahui mode input berupa numeric,
alphanumeric, byte, atau kanji. Proses selanjutnya, input data dikodekan menjadi
serangkaian bit yang dipecah menjadi codewords sesuai dengan konfigurasi QR-
Code. Bit-bit tersebut dipetakan menjadi bit matriks dengan ukuran [121 121].
39
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1
1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1
1 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 1 1
1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 1 1
1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1 1
1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 1 1 1 1
1 1 1 1 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 1
1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1
1 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 1
1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1
1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 1 1
1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1
1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1
1 1 1 1 0 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1
1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Hal pertama yang dilakukan adalah membentuk Galois Field array (2𝑚 )
dengan parameter yaitu 𝑚 = 9 , 𝑛 = 2𝑚 − 1 = 511 𝑏𝑖𝑡 dimana 𝑛 adalah
codeword length, 𝑘 = 121 dimana 𝑘adalah panjang input, 𝑡 = 58 dimana 𝑡 adalah
kemampuan koreksi kesalahan, dan 𝑐 = 𝑚 ⋅ 𝑡 = 522 𝑏𝑖𝑡 dimana 𝑐 adalah checkbit.
Penentuan parameter berdasarkan Tabel 2.2. Pembentukan GF array ( 2𝑚 )
menentukan nilai 𝑚 dan primpoly. Setelah melalui proses pembentukan GF,
didapatkan nilai 𝑚 = 9 dan 𝑝𝑟𝑖𝑚𝑝𝑜𝑙𝑦 = 529. Penentuan nilai 𝑚 dan primpoly
berdasarkan Tabel 2.3. Selanjutnya, menentukan minimal polynomial (2𝑡 − 1).
Untuk 𝑡 = 58 , terdapat 115 buah minimal polinomial, yaitu (𝑚1 (𝑥), … , 𝑚115 (𝑥)).
Kemudian membentuk generator polynomial (𝑔(𝑥)) dengan perhitungan 𝑔(𝑥) =
𝐾𝑃𝐾(𝑚1 (𝑥), … , 𝑚115 (𝑥)) . Langkah selanjutnya, menentukan 𝑏(𝑥) dimana
merupakan bit matriks ditambah bit 0 sebanyak 522 buah. Hitung nilai checkbit
(𝑣(𝑥)) dengan rumus 𝑏(𝑥)𝑚𝑜𝑑 𝑔(𝑥).
Bit matriks dan checkbit merupakan hasil proses encode BCH Code.
Gambar 3.6 menunjukan bit matriks dan checkbit (𝑣(𝑥)). Hasil tersebut kemudian
menjadi inputan pada proses decode BCH Code.
Penelitian ini menggunakan contoh bit pesan agar memudahkan
pemahaman dalam proses encode-decode BCH Code. Bit pesan (p(x)) yang
digunakan adalah 0000000001000001 (16 bit) dengan ketentuan parameter 𝑚 = 5,
𝑛 = 2𝑚 − 1 = 25 − 1 = 31 𝑏𝑖𝑡 , 𝑘 = 16 𝑏𝑖𝑡 , 𝑡 = 3 , dan 𝑐 = 𝑚 ⋅ 𝑡 = 5 ⋅ 3 =
15 𝑏𝑖𝑡 . Penentukan parameter berdasarkan Tabel 2.2. Proses perhitungannya
sebagai berikut :
41
32 elements generated by 𝒙𝟓 + 𝒙𝟐 + 𝟏
Exponential Polynomial Notation Binary Notation
Notation
0 0 00000
1 1 00001
𝛼 𝛼 00010
2 2
𝛼 𝛼 00100
𝛼3 𝛼3 01000
4 4
𝛼 𝛼 10000
5 2
𝛼 𝛼 +1 00101
6 3
𝛼 𝛼 +𝛼 01010
7 4 2
𝛼 𝛼 +𝛼 10100
8 3 2
𝛼 𝛼 +𝛼 +1 01101
9 4 3
𝛼 𝛼 +𝛼 +𝛼 11010
10 4
𝛼 𝛼 +1 10001
11 2
𝛼 𝛼 +𝛼+1 00111
12 3 2
𝛼 𝛼 +𝛼 +𝛼 01110
13 4 3 2
𝛼 𝛼 +𝛼 +𝛼 11100
14 4 3 2
𝛼 𝛼 +𝛼 +𝛼 +1 11101
15 4 3 2
𝛼 𝛼 +𝛼 +𝛼 +𝛼+1 11111
16 4 3
𝛼 𝛼 +𝛼 +𝛼+1 11011
42
𝛼17 𝛼4 + 𝛼 + 1 10011
𝛼18 𝛼+1 00011
𝛼 19 𝛼2 + 𝛼 00110
𝛼 20 𝛼3 + 𝛼2 01100
𝛼 21 𝛼4 + 𝛼3 11000
𝛼 22 𝛼4 + 𝛼2 + 1 10101
𝛼 23 𝛼3 + 𝛼2 + 𝛼 + 1 01111
𝛼 24 𝛼4 + 𝛼3 + 𝛼2 + 𝛼 11110
𝛼 25 𝛼4 + 𝛼3 + 1 11001
𝛼 26 𝛼4 + 𝛼2 + 𝛼 + 1 10111
𝛼 27 𝛼3 + 𝛼 + 1 01011
𝛼 28 𝛼4 + 𝛼2 + 𝛼 10110
𝛼 29 𝛼3 + 1 01001
𝛼 30 𝛼4 + 𝛼 10010
𝑚1 (𝑥) = 𝑥 5 + 𝑥 2 + 1
𝑚2 (𝑥) = 𝑥 5 + 𝑥 2 + 1
𝑚3 (𝑥) = 𝑥 5 + 𝑥 4 + 𝑥 3 + 𝑥 2 + 1
𝑚4 (𝑥) = 𝑥 5 + 𝑥 2 + 1
𝑚5 (𝑥) = 𝑥 5 + 𝑥 4 + 𝑥 2 + 𝑥 + 1
• Menentukan generator polynomial (𝑔(𝑥)).
Menentukan nilai 𝑔(𝑥) dengan mencari KPK dari 𝑚1 (𝑥) … 𝑚5 (𝑥).
𝑔(𝑥) = 𝐾𝑃𝐾(𝑚1 (𝑥) … 𝑚5 (𝑥))
43
Decode BCH Code merupakan proses deteksi error dan koreksi error. Bit
matriks dan checkbit menjadi inputan pada proses ini. Bit matriks dan checkbit
dicek terlebih dahulu agar diketahui apakah terdapat error atau tidak. Gambar 3.7
menunjukan diagram alir proses decode BCH Code.
44
Akar persamaan
Syndrome polinomial
polynommial
(s1(x), ... , s116(x))
Nilai kebalikan
Pengkoreksian dari akar
Substitusi 𝛼 ke error polynomial
persamaan
syndrome
Perbaiki bit pada
posisi error
Tabel BCH
Output symbol
1 QR-Code
Proses pertama pada decode BCH Code adalah pengecekan apakah terdapat
error atau tidak. Pengecekan tersebut dilakukan dengan rumus
𝑏𝑖𝑡 𝑚𝑎𝑡𝑟𝑖𝑘𝑠 | 𝑐ℎ𝑒𝑐𝑘𝑏𝑖𝑡 (𝑣(𝑥))𝑚𝑜𝑑 𝑔(𝑥) . Hasil mod dinamakan 𝑉(𝑥) . Jika
𝑉(𝑥) = 0, maka tidak terdapat error dan bit matriks dikonversi menjadi barcode
format QR-Code. Jika 𝑉(𝑥) ≠ 0 , maka terdapat error kemudian melanjutkan
proses koreksi error.
Gambar 3.8 menunjukan nilai 𝑉(𝑥) ≠ 0, artinya bit matriks terdapat error.
Langkah selanjutnya menghitung nilai minimal polynomial (2𝑡) yang berjumlah
45
Bit matriks berhasil diperbaiki dan dikonversi menjadi barcode format QR-
Code. Gambar 3.9 menunjukan keluaran simbol QR-Code. Simbol QR-Code
merupakan hasil proses sistem encoder.
Pada pembahasan sebelumnya, telah didapatkan blok bit yang dikirim yaitu
𝑝(𝑥) | 𝑣(𝑥) = 0000000001000001 | 100101000100010. Blok bit tersebut mendapat
gangguan saat transmisi data, sehingga blok bit yang diterima menjadi :
𝑝(𝑥) | 𝑣(𝑥) = 000𝟏0000𝟏1000001 | 10010𝟎000100010
Proses pendeteksi dan pengkoreksi error sebagai berikut :
• Menghitung nilai modulus [𝑝(𝑥)|𝑣(𝑥)] 𝑚𝑜𝑑 𝑔(𝑥).
𝑉(𝑥) = 000𝟏0000𝟏100000110010𝟎000100010 𝑚𝑜𝑑 1000111110101111
𝑉(𝑥) = 1111110111010 (nilai modulus ≠ 0, terdapat error)
• Menentukan nilai minimal polynomial (2𝑡) yang berjumlah 6 buah
𝑚1 (𝑥) = 𝑥 5 + 𝑥 2 + 1 = 100101
𝑚2 (𝑥) = 𝑥 5 + 𝑥 2 + 1 = 100101
𝑚3 (𝑥) = 𝑥 5 + 𝑥 4 + 𝑥 3 + 𝑥 2 + 1 = 111101
46
𝑚4 (𝑥) = 𝑥 5 + 𝑥 2 + 1 = 100101
𝑚5 (𝑥) = 𝑥 5 + 𝑥 4 + 𝑥 2 + 𝑥 + 1 = 110111
𝑚6 (𝑥) = 𝑥 5 + 𝑥 4 + 𝑥 3 + 𝑥 2 + 1 = 111101
• Menghitung persamaan syndrome dari keenam minimal polynomial
tersebut :
𝑠1 (𝑥) = 𝑉(𝑥) 𝑚𝑜𝑑 𝑚1 (𝑥)
𝑠1 (𝑥) = 0001000011000001100100000100010 𝑚𝑜𝑑 100101
𝑠1 (𝑥) = 100 = 𝑥 2
𝑠5 (𝛼 5 ) = (𝛼 5 )4 + (𝛼 5 ) = 𝛼 20 + 𝛼 5
𝑠6 (𝛼 6 ) = (𝛼 6 )4 + (𝛼 6 )3 + (𝛼 6 ) + 1 = 𝛼 24 + 𝛼18 + 𝛼 6 + 1
• Membentuk Tabel BCH menggunakan algoritma Peterson-Berlekamp
dengan ketentuan awal kondisi sebagai berikut :
𝜎 (−1) (𝑥) = 1; 𝜎 (0) (𝑥) = 1;
𝑙−1 = 0; 𝑙0 = 0;
𝑑−1 = 1; 𝑑0 = 𝑠1 ;
Hasil perhitungan dimasukan ke dalam Tabel 3.3.
𝒏 𝝈(𝒏) 𝒙 𝒅𝒏 𝒍𝒏 𝒏 − 𝒍𝒏
- 1 1 0 -1
0 1 𝑠1 = 𝛼 2 0 0
1 𝛼2𝑥 + 1 0 1 0
2 𝛼2𝑥 + 1 𝛼 26 1 1
3 𝛼 24 𝑥 2 + 𝛼 2 𝑥 + 1 0 2 1
4 𝛼 24 𝑥 2 + 𝛼 2 𝑥 + 1 𝛼 20 2 2
5 𝛼 27 𝑥 3 + 𝛼 11 𝑥 2 + 𝛼 2 𝑥 + 1 0 3 2
6 𝛼 27 𝑥 3 + 𝛼 11 𝑥 2 + 𝛼 2 𝑥 + 1 - - -
Perangkat yang digunakan dalam uji coba penelitian adalah Sony Xperia C4
Dual (E5333). Perangkat tersebut berbasis android. Sistem operasi yang digunakan
adalah Android Marshmallow (6). Perangkat memiliki CPU Octa-core 1.7 GHz
Cortex-A53 dengan kamera 13 MP. Random Access Memory (RAM) yang tersedia
sebesar 2 GB
Pada tugas akhir ini, kartu pelajar digunakan sebagai media dalam proses
deteksi QR-Code. Dibagian belakang kartu pelajar akan diletakan QR-Code masing
masing siswa. Gambar 3.10 menunjukan desain dari kartu pelajar.
(a) (b)
Gambar 3.10 Desain Kartu Pelajar (a) tampak depan, (b) tampak belakang.
Desain kartu pelajar disesuaikan dengan format pada umumnya. Data siswa
terletak pada bagian depan kartu pelajar. Simbol QR-Code terletak pada bagian
belakang kartu pelajar.
49
MULAI
Login
Pilihan
SELESAI
Gambar 3.14 menunjukan tampilan awal. Tampilan awal terdiri dari dua
pilihan yaitu input presensi dan data siswa. Input presensi dipilih jika akan
melalukan proses penginputan siswa dalam presensi di kelas, sedangkan data siswa
dipilih jika akan menginput, melihat, mengupdate dan menghapus data siswa.
52
(d) (e)
Gambar 3.15 (a) Tampilan data pengajaran, (b) Nama pengajar, (c) Mata
pelajaran, (d) Kelas, (e) Tanggal.
Gambar 3.17 Tampilan Database (a) Input data, (b) Lihat data, (c) Hapus data,
(d) Update data.
Gambar 3.17 merupakan keluaran jika memilih data siswa pada tampilan
awal. Tampilan database berisi perintah membuat, melihat, memperbaruhi, dan
menghapus data siswa. Aplikasi Smart Presence menggunakan firebase sebagai
database dan authentication login. Setiap user memiliki database masing-masing.
MULAI
Admin
Login
Pengajar
Input Data
Pengajaran
Input
Presensi
SELESAI
Gambar 3.21 Pengujian kotor tinta (a) Ringan, (b), Sedang, (c) Berat.
𝑥
𝛽 = 𝑦 × 100% (3.1)
𝑎
𝛾=𝑏 (3.2)
61
62
Jarak
Waktu Komputasi
Deteksi QR- Keterangan
(detik)
Code (cm)
1 - Tidak berhasil
2 - Tidak berhasil
3 2.10 Berhasil
4 2.04 Berhasil
5 1.07 Berhasil
10 0.85 Berhasil
15 0.89 Berhasil
20 1.07 Berhasil
25 1.07 Berhasil
30 1.12 Berhasil
35 1.15 Berhasil
40 1.20 Berhasil
45 1.31 Berhasil
50 - Tidak berhasil
Rata-rata 1.26 -
waktu komputasi rata-rata sebesar 1,26 detik. Data hasil menunjukan semakin jauh
jarak deteksi semakin besar waktu komputasinya. Namun, pada jarak 10 cm hingga
1 cm, waktu komputasi semakin besar. Hal tersebut didasari oleh berkurangnya
fokus pada kamera smartphone dalam mendeteksi QR-Code. Semakin dekat jarak
deteksi, kamera semakin tidak fokus dalam mendeteksi QR-Code.
Intensitas
Akurasi (%) Waktu Komputasi (detik)
Cahaya
Ringan 100 0,89
Sedang 100 1,267
Berat 100 2,257
Rata-rata 100 1,471
Pengujian kartu pelajar terhadap kotor tinta dilakukan dengan lima warna
yang berbeda, yakni hitam, merah, biru, hijau, dan kuning. Tingkat pengujian
meliputi ringan, sedang, dan berat sesuai rencana pengujian. Pengujian dilakukan
sesuai dengan rencana pengujian pada bab 3. Data hasil keseluruhan pengujian
kotor tinta terdapat pada Lampiran C.
Warna
Tingkat Akurasi (%) Waktu komputasi (detik)
Tinta
Ringan 100 1,527
Hitam Sedang 100 2,174
Berat 70 2,755
Ringan 100 1,017
Merah Sedang 100 1,065
Berat 100 1,137
Ringan 100 1,524
Biru Sedang 100 2,082
Berat 90 2,615
Ringan 100 1,124
Hijau Sedang 100 1,171
Berat 100 1,327
Ringan 100 0,913
Kuning Sedang 100 0,916
Berat 100 0,934
Rata-rata 97 1,485
68
Berdasarkan hasil Tabel 4.11, pengujian akibat kotor tinta memiliki akurasi
97% dan rata-rata waktu komputasi sebesar 1,485 detik. Waktu komputasi terkecil,
yakni 0,913 detik, pada kondisi tinta warna kuning tingkat ringan. Sedangkan rata-
rata waktu komputasi terbesar, yakni 2,755 detik, pada kondisi tinta warna hitam
tingkat berat. Warna tinta berpengaruh terhadap hasil waktu komputasi dan tingkat
akurasi. Semakin gelap warna tinta semakin besar waktu komputasinya. Tinta
warna hitam menghasilkan data waktu komputasi terbesar (tingkat ringan, sedang,
dan berat) dibanding dengan warna lain. Kemudian tinta warna biru menghasilkan
data terbesar kedua, dilanjut dengan tinta warna hijau, merah, dan kuning. Tingkat
akurasi terendah, yakni 70% terjadi pada pengujian tinta hitam tingkat berat. Hal
ini disebabkan tinta hitam membuat pola warna gambar pada QR-Code menjadi
berubah dan timpang tindih yang menyebabkan kesalahan pada proses scanning
QR-Code.
Proses pengujian kartu pelajar terhadap kotor lumpur dilakukan dengan tiga
takaran lumpur yang berbeda, yakni ringan, sedang, dan berat. Pengujian dilakukan
sesuai rencana pengujian pada bab 3. Data hasil keseluruhan pengujian kotor
lumpur terdapat pada Lampiran D.
Tingkat Takaran
Akurasi (%) Waktu Komputasi (detik)
Lumpur
Ringan 100 0,89
Sedang 100 1,137
Berat 100 2,164
Rata-rata 100 1,397
detik. Waktu didapat pada kondisi lumpur tingkat berat. Pengujian kotor lumpur
memiliki pengaruh kecil terhadap waktu komputasi dan tingkat akurasi. Hal ini
didasari dengan perbedaan data waktu yang sedikit dengan tingkat akurasi 100%.
5.1 Kesimpulan
71
72
5.2 Saran
73
74
Jarak
No 1 2 3 4 5 10 15 20 25 30 35 40 45 50
(cm)
1 - - 2,1 2,2 1,1 0,82 0,91 1,01 1,1 1,3 1,13 1,21 1,31 -
2 - - 2,2 1,97 1 0,88 0,9 0,98 1,2 1,12 1,1 1,1 1,28 -
3 - - 1,98 1,9 0,99 0,81 0,89 1,12 0,99 1,25 1,2 1,22 1,33 -
Waktu komputasi (detik)
4 - - 2,22 2 1,1 0,83 0,87 1,1 1,1 1,1 1,22 1,31 1,37 -
5 - - 2,13 2,11 1,12 0,82 0,92 0,99 0,98 1,12 1,21 1,25 1,3 -
7 - - 1,98 1,99 0,98 0,9 0,87 1,2 1,1 0,99 1,12 1,1 1,28 -
9 - - 2,3 2,1 1,12 0,91 0,88 1,12 1,12 1,2 1,13 1,21 1,34 -
Rata-rata - - 2,1 2,04 1,07 0,85 0,89 1,07 1,07 1,12 1,15 1,2 1,31 -
.
(a) (b) (c)
Gambar A.1 Jarak deteksi QR-Code (a) 1 cm, (b) 2 cm, (c) 3 cm.
(a) (b) (c)
Gambar A.2 Jarak deteksi QR-Code (a) 4 cm, (b) 5 cm, (c) 10 cm.
Gambar A.3 Jarak deteksi QR-Code (a) 15 cm, (b) 20 cm, (c) 25 cm, (d) 30 cm.
Gambar A.4 Jarak deteksi QR-Code (a) 35 cm, (b) 40 cm, (c) 45 cm, (d) 50 cm.
LAMPIRAN B
Gambar B.1 Intensitas cahaya (a) Ringan, (b) Sedang, (c) Berat.
LAMPIRAN C
Lampiran C berisi hasil pengujian kotor tinta. Tabel C.1 menunjukan data
yang didapat pada pengujian. Hasil didapat berdasarkan akurasi dan waktu
komputasi. Gambar C.1, C.2, C.3, C.4, C.5 menunjukan contoh pengujian.
Warna
Hitam Merah Kuning Hijau Biru
Tinta
N
Tingkat
R S B R S B R S B R S B R S B
Kotor
1 1,45 1,55 2,37 1,1 1,1 1,23 1 1 1 1 1,11 1,18 1,68 1,78 -
2 2 2,75 - 0,81 1,07 1,07 0,85 0,8 0,9 1,13 1,10 1,43 1,30 1,88 2,44
3 1,9 2,1 2,45 1 1,02 1,07 0,91 0,88 0,92 1,07 1,17 1,20 1,78 1,41 2,7
Waktu Komputasi (s)
4 2,36 2,20 2,85 1,01 1,03 1,05 0,85 0,85 0,8 1,04 1,04 1,32 1,84 2,17 2,33
5 1,68 1,52 - 1,15 1,01 1,13 0,9 0,89 0,91 1,17 1,28 1,27 1,56 2,6 2,71
6 1,18 2,05 - 1 1.17 1,24 1 0,9 1 1,01 1,10 1,11 1,68 1,46 2,2
7 1,21 2,16 2,31 1 1,01 1,11 0,88 0,89 0,9 1,15 1,10 1,93 1,15 2,61 2,8
8 1,24 2,31 2,91 1,08 1,05 1,28 0,9 0,91 0,91 1,07 1,07 1,16 1,54 2,24 2,52
9 1,02 2,52 3,23 1,07 1,18 1,14 0,87 0,91 0,9 1,50 1,65 1,61 1,45 2,07 2,73
10 1,23 2,58 3,17 0,95 1,01 1,05 1 1,1 1,1 1,1 1,18 1,06 1,26 2,6 3,11
Rata-rata
waktu 1,52 2,17 2,75 1,01 1,06 1,13 0,913 0,916 0,93 1,12 1,17 1,32 1,52 2,08 2,61
komputasi (s)
Tingkat 100 100 70 100 100 100 100 100 100 100 100 100 100 100 90
Akurasi (%) % % % % % % % % % % % % % % %
Gambar C.1 Kotor tinta warna merah (a) Ringan, (b) Sedang, (c) Berat.
(a) (b) (c)
Gambar C.2 Kotor tinta warna hitam (a) Ringan, (b) Sedang, (c) Berat.
Gambar C.3 Kotor tinta warna kuning (a) Ringan, (b) Sedang, (c) Berat.
Gambar C.4 Kotor tinta warna hijau (a) Ringan, (b) Sedang, (c) Berat.
(a) (b) (c)
Gambar C.5 Kotor tinta warna biru (a) Ringan, (b) Sedang, (c) Berat.
LAMPIRAN D
Gambar D.1 Kotor lumpur (a) Ringan, (b) Sedang, (c) Berat.
LAMPIRAN E
Gambar E.1 Pengujian gesekan atau goresan (a) Ringan, (b) Sedang, (c) Berat.