BAB III ANALISIS DAN PERANCANGAN
Pada bab 3 ini akan dijelaskan analisis dan perancangan aplikasi yang akan dikembangkan. 3.1 Analisis Langkah-langkah yang diuraikan dalam tahapan analisis ini terdiri dari analisis fungsional dan analisis kebutuhan software dan hardware. 3.1.1
Analisis Kebutuhan Fungsional
Analisis kebutuhan fungsional merupakan pemaparan mengenai fitur-fitur yang terdapat pada aplikasi pengenalan wajah ini. Tabel 3.1 merupakan deskripsi kebutuhan fungsional dari pembuatan aplikasi pengenalan wajah. Tabel 3.1 Tabel Kebutuhan Fungsional
No
Kode_Req
Nama Proses
1
Req_1
Mengambil Pelatihan
2
Req_2
Melakukan wajah
Kegunaan
Citra Menyimpan citra untuk pelatihan sebagai bahan pembanding untuk melakukan pengenalan wajah pengenalan Mengenali profil pemilik wajah yang diambil
39
40
3.1.2
Analisis Kebutuhan
Dalam pembuatan aplikasi ini dibutuhkan aspek pendukung, yaitu perangkat keras (hardware) dan perangkat lunak (software) seperti berikut ini. A. Perangkat Keras (Hardware) Perangkat keras merupakan seluruh komponen atau unsur peralatan yang digunakan sebagai penunjang pembangunan suatu sistem. Adapun spesifikasi minimum perangkat keras yang diperlukan meliputi : 1. Kompatibel dengan Pentium(R) Dual-Core CPU 2. Space harddisk yang diperlukan minimal 500 MB (diluar JDK dan Eclipse). 3. RAM minimal 1GB. B. Perangkat Lunak (Software) Analisis perangkat lunak cenderung lebih menekankan kepada aspek pemanfaatan sumber daya (software). Spesifikasi perangkat lunak yang diperlukan untuk membangun aplikasi belajar integral berbasis Android diantaranya: 1. Sistem Operasi yang dapat digunakan untuk menjalankan program Android, yaitu : Windows XP (32 bit)/ Windows Vista (32 atau 64 bit)/ Windows 7 (32 atau 64 bit), Mac OS X 10.5.8 atau yang lebih tinggi, Linux. 2. Java Development Kit (JDK) JDK dibutuhkan karena Android merupakan bahasa yang berbasis Java. Versi minimum yang dianjurkan yaitu JDK 5 atau JDK 6. Java Runtime Environment (JRE) saja tidak cukup untuk melakukan proses compile program.
41
3. Eclipse 3.6 (Helios) Ada beberapa versi Eclipse yang beredar saat ini, namun untuk keperluan pemrograman Android yang dibutuhkan yaitu Eclipse Helios atau versi yang lebih baru. 4. Android SDK Tools Android SDK ini komponen utama untuk pemrograman Android yang harus ada. 5. ADT Plugin untuk Eclipse ADT Plugin merupakan salah satu contoh plugin yang dikembangkan Google agar Eclipse bisa menggunakan Android SDK. 6. OpenCV OpenCV digunakan sebagai library dalam pengolahan citra digital. 7. JavaCV JavaCV merupakan wrapper untuk pustaka-pustaka yang umum digunakan untuk fungsi real time computer cision yang terdapat pada aplikasi OpenCV, FFmpeg, libdcl394, PGR FlyCapture, OpenKinect, CIdeoInput, dan ARToolKitPlus. 8. StarUML version 5.0.2.1570 Digunakan untuk melakukan analisis dan perancangan terhadap sistem yang akan dibangun.
42
3.2 Perancangan Bagian perancangan ini akan menjelaskan mengenai rancangan algoritma, rancangan modul pengenalan wajah beserta cara kerja program yang dihubungkan. 3.2.1
Perancangan Algoritma
1. Konversi Citra Grayscale Gambar 3.1 merupakan pseude code dari konversi citra ke grayscale (abuabu). GS_RED = 0.299 : integer GS_GREEN = 0.587 : integer GS_BLUE = 0.144 : integer R ,G,B : interger x : interger ( indeks baris) y : ingerger (indeks kolom) width : interger ( lebar gambar) height : interger (panjang gambar) for x 0 to width do for y 0 to height do pixel = getPixe(x,y) R = color.red (pixel ) G = color.greed (pixel ) B = color.blue (pixel ) pixel grey = (GS_RED * R + GS_GREEN * G + GS_BLUE *B) endfor endfor
Gambar 3.1 Pseude code Konversi Citra Grayscale Pada proses Gambar 3.1, potongan citra berwarna akan diubah menjadi citra abu-abu (grayscal). Proses citra ke bentuk grayscal dilakuakn dengan mengambil pixel dari suatu citra yang kemudin dihitung dengen menggunakan persamaan : Grayscal = 0,299 *R + 0,587 *G + 0,144*B
43
2. Menentukan Nilai Biner Gambar 3.2 merupakan pseudo code menentukan nilai biner untuk mencari nilai threshold. Pixel : integer X=0 : integer ( indeks baris) Y=0 : integer (indeks kolom) width : integer ( lebar gambar) height : integer (panjang gambar) for x to width do Pixel = getPixe(x,y) Gysclae = (Pixel ) If(Gysclae < threshold) Gysclae = 0 (warna hitam) Else Gysclae = 1 (warna putih) Endif Endfor Endfor
Gambar 3.2 Pseude code threshold biner Pada proses Gambar 3.2, citra grayscal yang dihasilkan dari proses sebelumnya akan dirubah menjadi sebuah citra biner, yaitu citra hanya memiliki dua buah tingkan keabuan yaitu hitam dan putih. Proses penentuan pemberian tingkatan warna hitam atau putih, ditentukan berdasarkan nilai threshold.
44
3. Mencari Nilai Local Binary Pattern Histogram Contoh komputasi LBP pada 3x3 pixel : Example 6 7 9
5 6 8
thresholded 1 1 1
2 1 7
0 1
weights 0 0 1
1 2 4 128 8 64 32 16
Pattern = 11110001 LBP = 1+16+32+64+128= 241 Gambar 3.3 merupakan pseudo code mencari nilai LBP. i = integer j = integer template
void lbp::OLBP_(const Mat& src, Mat& dst) { dst = Mat::zeros(src.rows-2, src.cols-2, CV_8UC1); for(int i=1;i<src.rows-1;i++) { for(int j=1;j<src.cols-1;j++) { _Tp center = src.at<_Tp>(i,j); unsigned char code = 0; code |= (src.at<_Tp>(i-1,j-1) > center) << 7; code |= (src.at<_Tp>(i-1,j) > center) << 6; code |= (src.at<_Tp>(i-1,j+1) > center) << 5; code |= (src.at<_Tp>(i,j+1) > center) << 4; code |= (src.at<_Tp>(i+1,j+1) > center) << 3; code |= (src.at<_Tp>(i+1,j) > center) << 2; code |= (src.at<_Tp>(i+1,j-1) > center) << 1; code |= (src.at<_Tp>(i,j-1) > center) << 0; dst.at(i-1,j-1) = code; } } }
Gambar 3.3 Pseude code LBP
45
3.2.2
Arsitektur Sistem Arsitektur sistem adalah istilah untuk menyatakan bagaimana mendefinisikan
komponen-komponen yang lebih spesifik secara terstruktur. Pada Gambar 3.4 menjelaskan
bagaimana
secara
detail
komponen-komponen
bekerja
mendukung sistem supaya berjalan dengan baik.
user
Aplikasi
Proses Matching
Gambar 3.4 Arsitektur Sistem Aplikasi Pengenalan Wajah
untuk
46
3.2.3
Arsitektur Aplikasi Arsitektur program merupakan gambaran dari sistem yang dibuat. Gambar 3.5
merupakan arsitektur aplikasi pengenalan wajah berbasis android.
openCV
Citra trainning
LBPH
Java
Gambar 3.5 Arsitektur Aplikasi Dari Gambar 3.5 dapat dilihat bahwa aplikasi ini dibangun untuk aplikasi mobile android. Aplikasi ini memanfaatkan library opencv dimana opencv ini merupakan library untuk pengolahan citra digital. Bahasa pemrograman yang digunakan yakni java dan menggunakan metode LBPH (Local Binary Pattern Histrogram) untuk identifikasi citra itu sendiri.
3.2.4
Flowchart Aplikasi
Flowchart adalah suatu bagan dengan simbol tertentu yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan proses lainnya dalam suatu program.
47
1. Flowchart Mengambil Citra Trainning Gambar 3.6 merupakan flowchart untuk mengambil citra training.
Mulai
Masukan nama,nim,ttl
Hadapkan kamera pada wajah
Deteksi wajah secara real time
No Wajah terdeteksi ?
Yes Konversi citra ke grayscale
Equalize histogram
Yes Ulangi ambil citra ?
Simpan file
No Generate file
Citra Training
SELESAI
Gambar 3.6 Flowchart Mengambil Citra Trainning
48
2. Flowchart Aplikasi Melakukan Pengenalan Wajah Gambar 3.7 merupakan flowchart untuk melakukan pengenalan wajah.
mulai Pilih button mencari
Hadapkan kamera pada wajah
Deteksi wajah secara real time No Wajah terdeteksi ? Yes No Wajah dikenali ? Yes Tampil nama, nim, ttl
Yes Cari lagi ?
No
SELESAI
Gambar 3.7 Flowchart Melakukan Pengenalan Wajah
49
3.2.5
Diagram-Diagram Unified Modeling Language (UML) Pada bagian ini akan dijelaskan mengenai Unified Modelling Language
(UML) yang merupakan sebuah metode untuk mendeskripsikan desain dari perangkat lunak.
1.
Use Case Diagram Use case diagram akan memberikan penjelasan secara fungsional mengenai
sistem yang dirancang dan dikembangkan dan juga menjelaskan proses-proses yang dapat dilakukan oleh pengguna dilihat dari sudut pandang si pengguna itu sendiri. Gambar 3.8 merupakan use case diagram aplikasi pengenalan wajah untuk pencarian profil mahasiswa.
System mengambil citra pelatihan <> mengisi informasi citra user
melakukan pengenalan wajah
Gambar 3.8 Use case Diagram Aplikasi Pengenalan Wajah Diagram diatas terdiri dari 1 aktor dan 3 use case. Di dalam diagram ini terdapat sebuah include yang menunjukan bahwa use case tersebut merupakan bagian dari use case tertentu.
50
Alur ini dimulai ketika user mulai menjalankan aplikasi face recognition. Pertama setelah user membuka aplikasi, sistem akan menampilkan dua buah menu. Menu untuk menyimpan citra pelatihan dan menu untuk melakukan pengenalan wajah. Setelah menyimpan citra pelatihan, sistem akan menampilkan form data identitas, dan user diminta untuk mengisi data tersebut. 2. Use Case Scenario Use case scenario digunakan untuk menjelaskan dari gambaran use case yang ada dengan menggambarkan identifikasinya dan skenario per use case. a.
Use Case Scenario Mengambil Citra Pelatihan Tabel 3.2 merupakan skenario dari use case mengambil citra pelatihan yang
akan menjelaskan alur proses bagi user yang akan melakukan pengenalan wajah. Tabel 3.2 Use Case Scenario Mengambil Citra Pelatihan IDENTIFIKASI No Nama Tujuan Deskripsi
UCS01 Mengambil citra pelatihan Untuk menyimpan citra Proses ini sistem akan menampilkan kamera dan form data.
IDENTIFIKASI Aktor User SKENARIO UTAMA Kondisi Awal Tampilan menu awal aplikasi Aksi Aktor Reaksi Sistem 1. User memilih menu 2. Menampilkan kamera dan form isi data mengambil citra pelatihan 3. Mengisi data citra yang akan disimpan 4. Menghadapkan citra pada 5. Mendeteksi area wajah kamera 6. Memilih button simpan 7. Menyimpan data ke database
51
b. Use Case Scenario Melakukan Pengenalan Wajah Tabel 3.3 merupakan skenario dari use case melakukan pengenalan wajah. Tabel 3.3 Use Case Scenario Melakukan Pengenalan Wajah IDENTIFIKASI No UCS02 Nama Melakukan Pengenalan Wajah Tujuan Mendapatkan informasi dari citra yang diambil Proses ini sistem akan menampilkan kemera dan user menghadapkan kamera pada wajah Deskripsi yang ingin dikenali. Secara otomatis sistem akan mendeteksi area wajah lalu mengecek wajah tadi dengan database. Aktor User SKENARIO UTAMA Kondisi Awal Tampilan menu awal aplikasi Aksi Aktor Reaksi Sistem 1. User memilih menu pengenalan wajah 3. User menghadapkan kamera ke area wajah
2. Sistem akan menampilkan kamera 4. Sistem melakukan deteksi sekaligus pengecekan citra dengan citra pelatihan ke database 5. Apabila terkenali oleh sistem, sistem akan menampilkan informasi citra yang dikenali
6. Mendapat informasi dari citra yang diambil
3. Activity Diagram Activity diagram digunakan untuk menjelaskan alur kerja operasional secara step-by-step dari komponen suatu sistem. Activity diagram menunjukan kesuluruhan dari aliran kontrol.
52
3.1 Activity Diagram Untuk Mengambil Citra Pelatihan Gambar 3.9 merupakan activity diagram untuk mengambil citra pelatihan. user
sistem
membuka aplikasi
menampilkan halaman utama aplikasi
memilih menu ambil citra pelatihan
menampilkan kamera
mengambil citra
melakukan deteksi area wajah
memilih tombol simpan citra
menampilkan form identitas
mengisi form identitas
memilih tombol simpan
menyimpan data
Gambar 3.9 Activity diagram Menyimpan Citra Pelatihan Berdasarkan Gambar 3.9, dapat dilihat bahwa alur aplikasi dimulai ketika user memulai membuka aplikasi dan selanjutnya memilih menu ambil citra pelatihan.Setelah itu sistem akan menampilkan kamera dan form data yang harus diisi oleh user. Sebelum mengambil gambar, user harus mengisi data terlebih dahulu, kemudian mengarahkan kamera ke area wajah. Secara otomatis sistem akan memdeteksi area wajah. Setelah terdedeksi, user kemudian memilih button simpan. Dan sistem akan menyimpan gambar dan data ke database.
53
3.2 Activity Diagram Untuk Melakukan Pengenalan Wajah Gambar 3.10 merupakan activity diagram untuk mengambil citra pelatihan. user
sistem
membuka aplikasi
menampilkan halaman utama aplikasi
memilih menu pengenalan wajah
menampilkan kamera
mengambil citra
mendeteksi area wajah
melakukan pengecekan dengan database Tidak Ya mendapat informasi citra
menampilkan informasi citra
Gambar 3.10 Activity Diagram Melakukan Pengenlan Wajah Dari Gambar 3.10 dapat dijelaskan bahwa proses pencarian profil mahasiswa ini dimulai ketika user memilih menu pengenalan wajah. Kemudian sistem akan menampilkan kamera. Lalu user menghadapkan kamera ke area wajah orang yang ingin dikenali. Secara otomatis sistem akan melakukan deteksi sekaligus memproses area wajah yang terdeteksi tadi untuk mencocokan ke databse. Apabila dikenali, maka sistem akan menampilkan informasi pemilik wajah yang ingin dikenali tadi.
54
4. Sequence Diagram Sequence
diagram
mendeskripsikan
bagaimana
entitas
dalam
sistem
berinteraksi, termasuk pesan yang digunakan saat interaksi. Semua pesan dideskripsikan dalam urutan dari eksekusi. Sequence diagram berhubungan erat dengan Use Case diagram, dimana 1 Use Case akan menjadi 1 Sequence Diagram. 4.1 Sequence Diagram Mengambil Citra Pelatihan Gambar 3.11 merupakan sequence diagram pada saat user memilih login. Proses ini menggambarkan gambaran detail dari use case mengambil citra pelatihan. sd Frame1 user
sistem
database
1 : membuka aplikasi()
2 : menampilkan aplikasi()
3 : pilih menu input citra()
4 : menampilkan kamera dan form data()
5 : menghadapkan wajah ke kamera dan mengisi data()
6 : pilih menu simpan()
7 : menyimpan data ke database()
Gambar 3.11 Sequence Diagram Mengambil Citra Pelatihan Adapun proses yang terjadi pada diagram yang digambarkan pada Gambar 3.7 yakni pemilihan menu untuk mengambil citra pelatihan. Prosesnya nanti sistem akan menampilkan kamera dan form isian yang harus diisi oleh user sebagai informasi dari
55
citra yang akan disimpan. Setelah itu sistem akan mengirim data ke database. Database di sini dalam bentuk folder. 4.2 Sequence Diagram Melakukan Pengenalan Wajah Gambar 3.12 merupakan sequence diagram pada saat user memilih melakukan pengenlan wajah. Proses ini menggambarkan gambaran detail dari use case melakukan pengenlan wajah.
sd Frame1
user
sistem
database
1 : membuka aplikasi()
2 : menampilkan halam utama aplikasi() 3 : memilih menu FaceRec()
4 : menampilkan kamera()
5 : menghadapkan area wajah pada kamera()
6 : mendeteksi area wajah()
7 : mengecek wajah yang terdeteksi ke database()
8 : mengirim hasil pengenalan() 9 : menampilkan profil wajah()
Gambar 3.12 Sequence Diagram Melakukan Pengenalan Wajah
Adapun proses yang terjadi pada diagram yang digambarkan pada Gambar 3.8 yakni pemilihan menu untuk melakukan pengenenalan wajah. Prosesnya nanti sistem akan menampilkan kamera. Kemudian user menghadapkan kamera ke area wajah yang ingin dikenali. Sistem secara otomatis akan mendeteksi area wajah orang
56
tersebut sekaligus melakukan identifikasi dengan data wajah yang ada didatabase. Apabila teridentifikasi sistem akan menampilkan informasi orang yang ingin diketahui tadi. 5. Class Diagram Class diagram digunakan untuk menampilkan kelas-kelas dan paket-paket di dalam sistem. Class diagram memberikan gambaran sistem secara statis dan relasi antar mereka. Biasanya, dibuat beberapa class diagram untuk sistem tunggal. Beberapa diagram akan menampilkan subset dari kelas-kelas dan relasinya. Dapat dibuat beberapa diagram sesuai dengan yang diinginkan untuk mendapatkan gambaran lengkap terhadap system yang dibangun. Gambar 3.13 merupakan class diagram aplikasi pengenalan wajah. FdActivity +alimgs: ArrayList<Mat> = new ArrayList<Mat>() +buttonSearch: ToggleButton +mCascadeFile: File +bttonCatalog: Button +countImages: int = 0 +mCascadeFile: File +mFrontCam: MenuItem +mDetectorName: String +mDetectorType: int = JAVA_DETECTOR +mJavaDetector: CascadeClassifier +labelsFile: labels +mGray: Mat +mEigen: MenuItem +mOpenCcCameraView: Tutorial3View +nBackCam: MenuItem +textState: TextView +textresult3: TextView +textresult2: TextView +textresult: TextView +text3: EditText +text2: EditText +text: EditText +FdActivity() +grabarOnClick(): void +onCameraFrame(CvCameraViewFrame): Mat +onCameraViewStarted(int, int): void +onCreateViewStoppes(): void +onCreate(Bundle): void +onCreateOptionsMenu(Menu): boleean +onDestroy(): void +onPause(): void +onResume(): void +setDetectorType(int): void +setMinFaceSize(float): void
labels +mPath: String +thelist: ArrayList +add(String, int): void +get(int): String +get(String): int +isEmpty(): boolean +labels(String) +max(): int +Read(): void +Save(): void
ImageGallery +bmlist: Bitmap( +buttonDel: Button +bttonBack: ImageButton +count: int = 0 +g: Gallery +mPath: STring = "" +mSwitcher: ImageSwitcher +name: TextView +namelist: STring ( +thelabels: label +makeView(): View +onCreate(Bundle): void +onItemSelected(adapterView, View, int, long): void +onNotingSelected(Adapter): void +refresh(): void
PersonRecognizer +faceRecognizer: FaceRecognizer +labelsFile(): labels +mPath(): String +mProb(): int = 999 +Attribute1 +add(Mat, String): void +getProb(): int +load(): void +train(): bolean +predict(Mat): String +canPredict(): boolean +BitmapTolpllmage(Bitmap, inr, inr): lpiimage
Gambar 3.13 Class Diagram Aplikasi Pengenalan Wajah
57
Dari gambar 3.13 dapat dilihat jika aplikasi ini memiliki 4 class inti, yaitu class labels, class PersonRecognizer, class FdActivity dan class gallery.
3.3 Perancangan Antarmuka ( Interface ) Dalam bagian ini akan menunjukan perancangan antarmuka dari setiap form pada aplikasi face recognition untuk pencarian image profile facebook. 1. Antarmuka Halaman Utama Aplikasi Gambar 3.13 merupakan antarmuka halaman utama dari aplikasi pengenalan wajah ini.
Gambar 3.14 Antarmuka Halaman Utama Aplikasi Adapun untuk penjelasan mengenai gambar 3. Sebagai berikut : 1. Button Galeri Button ini berfungsi untuk melihat trainning citra yang telah disimpan. 2. Button Trainning Button ini berfungsi untuk mengambil trainning citra. 3. Button Rec Button ini berfungsi untuk menyimpan trainning citra. 4. Button Kamera Button ini berfungsi untuk menggunakan kemera depan.
58
2. Antarmuka Halaman Untuk Mengambil Citra Trainning Gambar 3.15 merupakan antarmuka saat user memilih untuk mengambil citra trainning.
Gambar 3.15 Antarmuka Halaman Untuk Mengambil Citra Trainning Berdasarkan Gambar 3.15 , sebelum mengambil citra trainning user harus mengisi form isian terlebih dahulu . Disana terdapat 3 form, yaitu form nama, nim , dan tanggal lahir. Setelah mengisi form dengan lengkap, user kemudian dapat mengambil citra. 3. Antarmuka Halaman Untuk Melakukan Pengenalan Wajah Gambar 3.16 merupakan antarmuka saat user memilih untuk melakukan pengenalan wajah.
Gambar 3.16 Antarmuka Halaman Untuk Melakukan Pengenalan Wajah Berdasarkan Gambar 3.16, hasil yang diperoleh ketika sistem berhasil mengidentifikasi citra yaitu nama, nim, dan tanggal lahir citra yang diambil oleh user.