39
ANALISIS DAN PERANCANGAN
Pada bab 3 ini akan dijelaskan analisis dan perancangan aplikasi yang akan dikembangkan.
3.1Analisis
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 Kegunaan
1 Req_1 Mengambil Citra
Pelatihan
Menyimpan citra untuk pelatihan sebagai bahan pembanding untuk melakukan pengenalan wajah
2 Req_2 Melakukan pengenalan wajah
Mengenali profil pemilik wajah yang diambil
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
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.
3.2Perancangan
Bagian perancangan ini akan menjelaskan mengenai rancangan algoritma, rancangan modul pengenalan wajahbeserta 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 (abu-abu).
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.1Pseude 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 :
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.2Pseude 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.
3. Mencari Nilai Local Binary Pattern Histogram
Contoh komputasi LBP pada 3x3 pixel :
Example thresholded weights
Pattern = 11110001
LBP = 1+16+32+64+128= 241
Gambar 3.3 merupakan pseudo code mencari nilai LBP. i = integer
j = integer
template <typename _Tp>
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<unsigned char>(i-1,j-1) = code; }
} }
Gambar 3.3Pseude code LBP
6 5 2 7 6 1 9 8 7 1 0 0 1 0 1 1 1 1 2 4 128 8 64 32 16
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 untuk mendukung sistem supaya berjalan dengan baik.
Gambar 3.4 Arsitektur Sistem Aplikasi Pengenalan Wajah
Proses Matching user Aplikasi
3.2.3 Arsitektur Aplikasi
Arsitektur program merupakan gambaran dari sistem yang dibuat. Gambar 3.5 merupakan arsitektur aplikasi pengenalan wajah berbasis android.
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.
1. Flowchart Mengambil Citra Trainning
Gambar 3.6 merupakan flowchart untuk mengambil citra training.
Gambar 3.6 Flowchart Mengambil Citra Trainning
Mulai
Masukan nama,nim,ttl
Wajah terdeteksi ? Deteksi wajah secara real time
SELESAI Hadapkan kamera pada wajah
Konversi citra ke
grayscale Equalize histogram
Ulangi ambil citra ? Simpan file
Citra Training Generate file Yes No No Yes
2. Flowchart Aplikasi Melakukan Pengenalan Wajah
Gambar 3.7 merupakan flowchart untuk melakukan pengenalan wajah.
Gambar 3.7 Flowchart Melakukan Pengenalan Wajah
mulai Pilih button mencari
Hadapkan kamera pada wajah Deteksi wajah secara real time Wajah terdeteksi ? Wajah dikenali ? Tampil nama, nim, ttl Cari lagi ? SELESAI Yes Yes No No Yes No
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.
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.
System
user
mengambil citra pelatihan
mengisi informasi citra
melakukan pengenalan wajah <<include>>
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 akanmenjelaskan alur proses bagi user yang akan melakukan pengenalan wajah.
Tabel 3.2 Use Case Scenario Mengambil Citra Pelatihan
IDENTIFIKASI
No UCS01
Nama Mengambil citra pelatihan
Tujuan Untuk menyimpan citra
Deskripsi 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 mengambil citra pelatihan
2. Menampilkan kamera dan form isi data 3. Mengisi data citra yang
akan disimpan
4. Menghadapkan citra pada kamera
5. Mendeteksi area wajah 6. Memilih button simpan 7. Menyimpan data ke database
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
Deskripsi
Proses ini sistem akan menampilkan kemera dan user menghadapkan kamera pada wajah 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
2. Sistem akan menampilkan kamera
3. User menghadapkan kamera ke area wajah
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.
3.1 Activity Diagram Untuk Mengambil Citra Pelatihan
Gambar 3.9 merupakan activity diagram untuk mengambil citra pelatihan.
Gambar 3.9Activity 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.
user sistem
membuka aplikasi menampilkan halaman utama aplikasi
memilih menu ambil citra pelatihan
mengambil citra
mengisi form identitas
melakukan deteksi area wajah
menampilkan form identitas
memilih tombol simpan menyimpan data
memilih tombol simpan citra
3.2 Activity Diagram Untuk Melakukan Pengenalan Wajah
Gambar 3.10 merupakan activity diagram untuk mengambil citra pelatihan.
Gambar 3.10Activity 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.
user sistem
membuka aplikasi menampilkan halaman utama aplikasi
memilih menu pengenalan wajah
mengambil citra mendeteksi area wajah
melakukan pengecekan dengan database
mendapat informasi citra menampilkan informasi citra menampilkan kamera
Ya Tidak
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.1Sequence 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.
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
Frame1
sd
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()
citra yang akan disimpan. Setelah itu sistem akan mengirim data ke database. Database di sini dalam bentuk folder.
4.2Sequence 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.
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
Frame1
sd
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()
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.
Gambar 3.13Class Diagram Aplikasi Pengenalan Wajah
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 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
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 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
Dari gambar 3.13 dapat dilihat jika aplikasi ini memiliki 4 class inti, yaitu class labels, class PersonRecognizer, class FdActivity dan class gallery.
3.3Perancangan 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
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.