BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Pada Bab ini akan dibahas data yang digunakan,
flowchart
dan
activity diagram
dari sistem, serta tahapan-tahapan yang akan digunakan dalam perancangan sistem yang
akan dibangun.
3.1 Data yang Digunakan
Dalam pembangunan sistem ini, data yang digunakan adalah citra atau gambar dari hasil pemotretan pada meteran air menggunakan
camera smartphone
android. Terdapat dua data dalam pembacaan meteran air, yaitu
QR code
dan
index
meter air.
QR code
berguna untuk menyatakan id pelanggan,
index
meter air berguna sebagai dasar perhitungan tagihan. Indeks meter air terdiri dari dua warna, yaitu hitam yang
menunjukkan satuan m
3
sebagai dasar perhitungan tagihan, dan merah menunjukkan satuan liter untuk pengujian meter air.
Index
meter air yang digunakan adalah yang berwarna hitam, yaitu angka empat
digit
awal.
QR code
dan
Index
meter air dapat dilihat pada Gambar 3.1 dan Gambar 3.2.
Gambar 3.1
QR code
yang terdapat pada meteran air
Gambar 3.2
Index
meter
3.2 Arsitektur Umum
Gambar 3.3 Arsitektur Umum
Pada Gambar 3.3, untuk pertama kalinya user atau petugas akan memindai QR-Code untuk menginisialisasi nomor pelanggan. Apabila pada meteran air tidak
terdapat QR-Code untuk di
scan
,
user
atau petugas dapat mengisi no pelanggan secara
manual
pada
textbox
yang telah disediakan. Setelah informasi no pelanggan telah didapat, dilanjutkan pada proses
capture meter
. Pada proses ini petugas atau user akan memfoto indeks meter air. Setelah selesai difoto, sistem akan melakukan
preprocessing terhadap foto yang telah diambil. Setelah semua praproses selesai
dilakukan, giliran proses pengenalanlah yang akan dilakukan oleh sistem. Apabila pengenalan telah berhasil dilakukan maka petugas akan langsung
mendapatkan result text
.
Result text
ini akan berbentuk sebuah
editable text
.
3.3 Praproses Data
CROPPING
GRAYSCALING
THRESHOLDING
Gambar 3.4 Diagram praproses data
Sebelum masuk ke proses pengenalan, gambar yang diperoleh dari
camera
haruslah melalu tahap praproses terlebih dahulu, dimana pada proses ini gambar yang bersifat
digital image
akan diubah ke
binary image
. Hal ini dilakukan karena
input
yang digunakan dalam proses pengenalan data akan diasumsikan sebagai
binary image
dan juga untuk mempermudah dan menigkatkan tingkat keakurasian pengenalan karakter.
3.3.1 Cropping
Pada proses ini citra yang diambil melalui
camera
akan dilakukan
cropping
untuk dapat memfokuskan pembacaan hanya pada indeks meteran air.
Cropping
sendiri dilakukan dengan menggunakan fitur
bounding box
pada
camera
seperti pada Gambar 3.5.
Gambar 3.5 Hasil
cropping image
3.3.2 Grayscalling
Pada tahapan ini akan dilakukan pengubahan gambar yang berwarna menjadi citra keabuan. Proses pengkonversian ini pun dapat dilihat pada Gambar 3.6.
Start Loading
Image h = image.getHeight
w = image.getWidth x = 0
y = 0 x w ?
y h ? x = x + 1
R = Color.redx,y G = Color.greenx,y
B = Color.bluex,y set pixelx,y with
R 0.299 + G 0.587 + B 0.114 y = y + 1
Grayscaled Image
Selesai No
Yes No
Yes
Gambar 3.6
F lowchart
konversi citra RGB menjadi
grayscale
Pada proses
grayscale
program akan melakukan pengulangan dalam pengecekan gambar per
pixel
sesuai dengan koordinat x,y sebesar ukuran dan panjang lebar gambar. Setiap
pixel
yang terdiri dari 3 informasi warna
RGB red, green, blue
akan dijumlahkan, kemudian dibagi tiga untuk dijadikan warna dasar sebagai nilai rata-rata
dalam penkonversian menjadi
grayscale
. Hasil citra yang telah di
grayscale
dapat dilihat pada Gambar 3.7.
Gambar 3.7 Hasil proses
grayscaling
3.3.3 Thresholding Thresholding
adalah salah bentuk binerisasi gambar dimana gambar
grayscale
akan diubah menjadi gambar yang hanya mempunyai dua kemungkinan nilai yaitu 0 untuk
hitam dan 255 untuk putih. Keberhasilan sistem dalam pengenalan kata sangatlah bergantung pada hasil binerisasi gambar, semakin baik hasil binerisasi gambar maka
akan meningkatkan keberhasilan pengenalan gambar pula. Dalam penelitian ini digunakan global
thresholding
metode
Otsu
yang dipakai pada praproses terakhir. Berikut algoritma untuk metode
Otsu
. tMean = 0;
variance = maxVariance = 0; firstCM = zerothCM = 0;
for I = 0; I h; i++{ for j = 0; j w; j++{
n= Image[j][i]; histogram[n]++; }
} for k = 0; k level; k++{
tMean += k histogram[k] w h; for k = 0; k level; k++ {
zerothCM += histogram[k] w h; firstCM += k histogram[k] w h;
variance = tMean zerothCM – firstCM;
variance = variance; variance ?= zerothCM 1
– zerothCM; if maxVariance variance {
maxVariance = variance; T = k; }
} }
Dari algoritma diatas gambar akan di
scan
per
pixel
sebesar panjang dikali lebar gambar tersebut. Setiap nilai abu-abu yang didapat dari setiap
pixel
akan dimasukkan kedalam histogram yang dipresentasikan dengan
array
. Pada masing-masing
level
akan dilakukan perulangan untuk mendapatkan perbaruan pada nilai
mean, zeroth cumalative moment, first cumulative moment
, dan
variansi
. Lalu nilai
threshold
akan ditentukan. Jika pada
pixel
gambar x,y kurang dari nilai
threshold
maka akan dibuat menjadi hitam atau latar belakang, sebaliknya apabila
pixel
gambar x,y lebih dari
nilai
threshold
maka
pixel
akan dibuat menjadi putih. Hasil citra yang telah di
threshold
dapat dilihat pada gambar 3.8.
Gambar 3.8. Hasil proses
thresholding
3.4 Pemrosesan Data