4.11 Pengkodean
Pada tahap ini dilakukan pengkodean coding dari rancangan- rancangan sebelumnya, baik rancangan aplikasi, rancangan basis data,
maupun rancangan tampilan. Bahasa pemrograman yang digunakan pada pengembangan aplikasi ini adalah Visual Basic versi 6.0. Selain
itu, database yang digunakan adalah Microsoft Access.
4.12 Implementasi Aplikasi
Aplikasi yang dibuat penulis adalah Aplikasi Pengenalan Wajah, namun lebih lengkapnya adalah Analisis Algoritma Eigenface Pada
Aplikasi Kehadiran Pengajaran Dosen. Disini penulis menerangkan tentang analisis menganalisa tahapan dan proses aplikasi. Analisa
yang dimaksud adalah: 1. Jika seorang dosen Prodi TI ingin mengajar satu matakuliah
maka yang harus dilakukan adalah: a.
Dosen harus pergi ke FST untuk melakukan absensi dengan cara mengcapture wajah yang sudah tersedia
melalui aplikasi pengenalan wajah, jika telah selesai maka dosen akan pergi ke kelas yang akan dituju sambil
membawa map merah, map merah digunakan untuk absensi mahasiswa saja.
b. Adapun proses dosen ketika melakukan absensi wajah
ialah: 1. Login
Ketika akan Login, dosen memasukan username dan password yang sudah disetting oleh admin pegawai fst.
Gambar 4.23 Login 2. Form Utama
Setelah Login, maka akan muncul tampilan aplikasi secara keseluruhan Form Utama. Form tersebut yaitu: Master Data, Presensi
dan Laporan.
Gambar 4.24 Form Utama
3. Form Master Data 3.a1 Dosen [ Data Dosen ]
Kemudian, ketika membuka Form Utama, dosen mengklik Master Data - Dosen - Data Dosen hal ini dilakukan, jika dosen
baru pertama kali mengisi biodata untuk mengajar.
Gambar 4.25 Data Dosen Pada Menu Data Dosen ini, dosen yang akan mengajar wajib
memasukan data, diantaranya: nip, nama lengkap, jenis kelamin, tempat lahir, tanggal lahir, telpon, alamat, golongan, jabatan. Data
dosen yang dimasukan akan disimpan dalam table dosen. Form ini
dilengkapi dengan fasilitas untuk menambahkan foto dosen. Untuk foto dosen bisa diambil dengan metode di-capture langsung dengan
webcam. Foto dosen akan disimpan dalam folder images dengan tipe .jpg, dengan ukuran 80 x 80 piksel. Adapun algoritma normalisasi
gambarnya sebagai berikut: Gambar di-capture menggunakan webcam, dihasilkan citra
wajah bertipe .bmp dengan format RGB, dengan resolusi sesuai resolusi kamera pada saat proses capturing. Gambar yang disimpan
harus memiliki ukuran yang seragam. Disini dipilih ukuran 80 x 80, sehingga gambar harus dinormalisasi.
Citra wajah yang diperoleh dari webcam misalnya berukuran 160 x 120 di-croping sehingga mempunyai ukuran 80 x 80 piksel.
Source code untuk cropping bisa dilihat di Lampiran 3 bagian a. a. Cara Penelitian
a.1 Bahan Penelitian Untuk melakukan penelitian ini, sumber data berupa citra RGB
bertipe .bmp. Citra ini akan di konversi dengan software yang dibangun dengan software Visual Basic. Hasil akhirnya adalah citra
yang telah diubah kedalam format grayscale. a.2 Proses Konversi
Adapun proses pengubahan citra RGB ke dalam citra grayscale dapat dilihat pada gambar 4.34.
Gambar 4.26 Proses Pengubahan Citra RGB ke dalam Citra Grayscale
Proses pertama adalah mengambil nilai R, G dan B dari suatu citra bertipe RGB. Pada tipe .bmp citra direpresentasikan dalam 24 bit,
sehingga diperlukan proses untuk mengambil masing-masing 3 kelompok 8 bit dari 24 bit tadi. Sebagai contoh suatu pixel memiliki
nilai RGB 24 bit sebagai berikut: 111100001111000011111111
untuk mendapatkan masing- masing nilai R, G dan B dilakukan operasi-operasi sebagai berikut:
Untuk mendapatkan nilai R dilakukan operasi modulo dengan bilangan 256 sebagai berikut:
Nilai R = 111100001111000011111111 mod 10000000 = 11111111
Sedangkan untuk nilai G, dapat dicari dengan cara sebagai berikut:
Citra RGB
Ekstraksi Komponen
R, G dan B Nilai
R Nilai
G Nilai
B Kalkulasi
Nilai Grayscale
Citra Grayscale
Nilai G
= 111100001111000011111111
and 1111111100000000 100000000
= 11110000 Untuk Nilai B, dapat dicari dengan menggunakan rumus:
Nilai B = 111100001111000011111111 and 111111110000000000000000
10000000000000000 = 11110000
Sehingga dari nilai pixel 1111000011110000111111112 atau 15790335 diperoleh nilai:
R = 11111111 = 255 G = 11110000 = 240
B = 11110000 = 240 Sehingga diperoleh triplet RGB = 255, 240, 240.
Setelah nilai triplet RGB kita peroleh, maka kita bisa mendapatkan nilai grayscale dari pixel tersebut. Ide dasarnya
sebenarnya adalah membuat band tunggal dari 3 band RGB tadi dengan rumus tertentu. Pada penelitian ini digunakan rumus:
red = red 5 \ 10 green = green 8 \ 10
blue = blue 3 \ 10 gray = red + green + blue 10 \ 16
Dengan mengaplikasikan prosedur tadi pada semua pixel akan kita dapatkan citra dengan format grayscale. Setelah dihasilkan gambar
dengan ukuran 80 x 80 piksel maka gambar RGB format .bmp tadi kita ubah ke dalam format grayscale, dengan tujuan agar kita mempunyai 1
matriks yang berkorespondensi dengan 1 image saja. Adapun source code-nya dapat dilihat di Lampiran 3 bagian b. Hasil langkah ini
adalah citra grayscale ukuran 80 x 80 tetapi masih dalam bentuk .bmp.
Gambar 4.27 Hasil Konversi Citra RGB ke Grayscale Sumber:Hanif al Fatta
, 2009:57
Langkah berikutnya tinggal menyimpan citra yang kita dapatkan dalam format .jpg. Adapun source code-nya dapat dilihat di Lampiran
3 bagian c. Untuk fungsi ConvertBMPtoJPG ditangani oleh file JPGUtils.dll.
3. a2 Dosen [ Daftar Dosen ] Jika dosen sudah mengisi biodata di form Data Dosen, dan ingin
melihat hasil tampilannya, maka klik menu Daftar Dosen yang berada disamping menu Data Dosen.
Gambar 4.28 Daftar Dosen
3.a3 Dosen [ Jadwal mengajar ] Jika dosen sudah mengisi jadwal mengajar yang ada di Master
Data - Kelas - Buat Kelas dan Master Data - Matakuliah, dan ingin melihat hasil tampilannya, maka klik menu Jadwal Mengajar
yang berada disamping menu Daftar Dosen.
Gambar 4.29 Jadwal Mengajar
3.b1 Matakuliah Sebelum menginput form Kelas, terlebih dahulu dosen harus
mengisi form Matakuliah, yang terletak pada Master Data - Matakuliah.
Gambar 4.30 Matakuliah
3.c1 Kelas [ Buat Kelas ] Pada form kelas ini, dosen harus mengklik button tambah untuk
mengisi matakuliah, ruang, jam muka, semester, tahun ajaran dan hari mengajar, setelah itu klik simpan.
Gambar 4.31 Buat Kelas
3.c2 Kelas [ Daftar Kelas ] Hasilnya, bisa dilihat di menu Daftar Kelas, yang berada di
samping menu Buat Kelas.
Gambar 4.32 Daftar Kelas
4. Form Presensi Menu presensi terdiri dari 1 file atau halaman saja yaitu: absensi
dosen. Untuk absensi selanjutnya dosen tidak perlu lagi memasukan data, karena sudah tersimpan di menu Master Data - Dosen. Dosen
yang akan mengajar cukup mengcapture citra wajah saja yang sudah tersedia pada menu Presensi - Absensi. Ketika dosen mengklik
capture, maka tersedia data dosen, dan dosen wajib mengisinya, jika sudah diisi maka klik simpan.
Gambar 4.33 Absensi Dosen Proses absensi ditangani oleh menu Presensi - Absensi. Dosen
menggunakan webcam untuk mengcapture image wajah seperti pada saat pengisian foto untuk data dosen. Hasil capture kemudian
dicocokan dengan foto dosen pada folder image dan dilakukan proses identifikasi dengan langkah sebagai berikut:
Langkah 1: Capture citra wajah dosen. Adapun source code-nya dapat dilihat di Lampiran 3 bagian d.
Langkah 2: Lakukan proses matching dengan citra wajah pada database. Proses matching dilakukan oleh prosedur:
matchpictpicture5.picture6 Adapun source code-nya dapat dilihat di Lampiran 3 bagian e.
Hasil capture pada saat absensi disimpan pada variable pict1, kemudian proses matching dilakukan dengan memanggil baris
perintah: closesImage=Valfaces.Identifypict1
Di mana faces adalah obyek yang merupakan instance dari classFaceRecogniser dan identify adalah salah satu propertinya. Untuk
menjelaskan bagaimana proses identifikasi dilakukan, perhatikan apa yang
dilakukan oleh
classFaceRecogniser berikut
ini, classFaceRecogniser adalah klas yang digunakan untuk melakukan
deteksi wajah berdasarkan algoritma eigenface. Adapun cara kerjanya adalah sebagai berikut:
Pertama kali klas akan menghitung rataan eigenvector. Sebelumnya semua citra wajah yang ada di dalam folder image
diambil dan
dibuat eigenvectornya
dengan subprogram
faceTemplate, kemudian dilakukan perhitungan rataan eigenvector- nya, simpan dalam faceTemplate, dengan sourcecode selengkapnya
yang bisa dilihat di Lampiran 3 bagian f. Rataan eigenvector yang tersimpan pada faceTempalte kita
gunakan untuk menghitung nilai eigen eigenfaces value, untuk semua
image yang ada dalam folder image, sourcecode selengkapnya bisa dilihat di Lampiran 3 bagian g.
Perhitungan dilakukan dengan: nilai eigenface untuk semua wajah disimpan dalam facei. Tinggal sekarang lakukan identifikasi
jika ada citra wajah yang masuk pada saat presensi. Proses identifikasi dilakukan sebagai berikut: citra wajah yang di-capture saat presensi
disimpan dalam testFace. Citra wajah ini kemudian dikalkulasi nilai eigenfacenya berdasarkan faceTemplate yang tadi telah dihitung. Jika
eigenface dari testface sudah dikalkulasi maka tinggal menghitung “jarak” dengan nilai-nilai yang disimpan dalam facei. Jika ditemukan
bahwa i yang berkorespondensi maka i menunjukan urutan citra wajah hasil identifikasi. Sourcecode selengkapnya bisa dilihat di Lampiran 3
bagian h. Langkah 3: Identifikasi data dosen berdasarkan identifikasi
wajah. Pada pencarian ini, eigenface yang dianggap valid adalah nilai dengan jarak terkecil dengan facetemplate, tetapi masih harus dalam
range kemiripan yang di-setting di awal. Misalnya kita mengeset nilai kemiripan 80. Andaikan saja facetemplate yang kita miliki
mempunyai nilai 1000, maka seandainya ditemukan jarak paling dekat adalah 700, maka wajah yang berkorespondensi dengan nilai 700 tidak
akan dapat diambil karena nilai kemiripannya lebih kecil dari 80. Jika citra yang sesuai dengan testface sudah didapatkan, misalnya
facek, kita tinggal mencari file yang sesuai yang tersimpan dalam
folder image. Di sinilah field id berguna. Nama file citra wajah sebenarnya diambil dari id. Misalnya file pict7.jpg
akan berkorespondensi dengan id bernilai 7. Jika id sudah teridentifikasi
maka tinggal mengambil semua data pada record dosen dengan id tersebut. Sourcecode selengkapnya bisa dilihat di Lampiran 3 bagian i.
5. Form Laporan Form Laporan pada aplikasi ini terdiri dari 3 menu yaitu:
a. Menu Absensi Pada menu ini menampilkan absensi dosen perhari, diantaranya:
dapat mencetak id absen, nip, nama dosen, kode, matakuliah, tanggal, jam masuk dan tatap muka.
Gambar 4.34 Cetak Laporan [Absensi] bag.1
Gambar 4.35 Cetak Laporan [Absensi] bag. 2
4.13 Spesifikasi