ANALISIS PENEKANAN KUNCI DINAMIK UNTUK
VERIFIKASI BIOMETRIK BERBASIS JARINGAN SYARAF
TIRUAN PROPAGASI BALIK
ARIF BUDIMAN
SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
BOGOR
2006
PERNYATAAN MENGENAI TESIS DAN SUMBER INFORMASI
Dengan ini saya menyatakan bahwa Tesis ANALISIS PENEKANAN KUNCI
DINAMIK UNTUK VERIFIKASI BIOMETRIK BERBASIS JARINGAN SYARAF TIRUAN
PROPAGASI BALIK, adalah karya saya sendiri dan belum diajukan dalam bentuk
apapun kepada Perguruan Tinggi mana pun. Sumber informasi yang berasal atau
dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah
disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir tesis ini.
Bogor, Juli 2006
Arif Budiman
NRP. G651034104
ABSTRAK ARIF BUDIMAN. Analisis penekanan kunci dinamik untuk verifikasi biometrik berbasis jaringan syaraf tiruan propagasi balik. Dibimbing oleh SUGI GURITMAN dan HERU T. NATALISA.
Penekanan kunci biometrik mempelajari pola kebiasaan pengetikan seseorang. Jurnal literatur menunjukkan prospek yang bagus sebagai sistem verifikasi dan umumnya menggunakan metode statik (yakni data pelatihan mirip dengan data verifikasi). Penelitian ini menggunakan metode analisis dinamik. Data dianalisis ke dalam pasangan karakter dominan tertentu sehingga memungkinkan data pelatihan berbeda dengan data verifikasi (pemunculan data secara acak). Pasangan karakter dominan diperoleh dari penelitian pendahuluan yang khusus diadakan untuk menganalisis 756 kata dalam bahasa Indonesia dengan berdasarkan pergerakan jari kiri-kanan. Pasangan karakter tersebut adalah an,ng,la,en,ka dan kelompok pasangan karakter yang berdekatan adalah (ng,ba,ma,na,nd), (an,am,ab), (su,au,ay,gu,di,du,di,ai), (pa,is,ia,ya,ua,us), dan (ri,ti,ru,tu,ro,to,ep). Prototipe sistem ini menggunakan tiga variabel yakni durasi (d), interkey (i) dan waktu total (T). Masing-masing mempunyai Jaringan Syaraf Tiruan (JST) yang terpisah dengan pengolahan awal input ke dalam 5 kelas fuzzy (SC,C,S,L,SL). Algoritme pelatihan adalah propagasi balik dan menggunakan dua tipe model pelatihan A (tegas) dan B (berarti dua). Data pelatihan diperoleh dari analisis statistik (rata-rata, median, modus, simpangan baku, minimum, maksimum) dan data komplemen pola kelas fuzzy untuk setiap pasangan karakter tersebut.
Penelitian ini telah dilakukan untuk menguji pengaruh layout keyboard terhadap hasil persentase False Rejection Rate (FRR), pengaruh pengulangan pengambilan data terhadap hasil % FRR, pengaruh uji verifikasi JST dalam memberikan respon terhadap data baru yang secara eksklusif tidak diikutkan dalam proses pelatihan, pengaruh uji identifikasi dalam hal persentase False Acceptance Rate (FAR) terhadap JST model pelatihan A dan B, dan pengaruh respon keseluruhan dalam % FRR terhadap deteksi penyusupan.
Kesimpulan penelitian ini menunjukkan model A memberikan hasil % FRR lebih rendah dan hasil % FAR lebih tinggi daripada model B, namun model B mempunyai nilai batas ambang keputusan yang lebih fleksibel sehingga bisa digunakan dalam model output fuzzy pada penelitian mendatang. Kestabilan sistem sangat ditentukan oleh layout keyboard dan kondisi lingkungan saat pengetikan. Namun, proses pengulangan pengambilan data lebih dari 56 hari masih memberikan hasil yang konsisten. JST mempunyai kemampuan mengenali data eksklusif dengan hasil % FRR yang relatif rendah. Penyusupan bisa dideteksi dengan mudah dengan melihat keberadaan lonjakan % FRR. Model ini mempunyai kemampuan yang bagus untuk verifikasi biometrik penekanan kunci dengan pengetikan teks dinamik, namun membutuhkan beberapa penelitian lanjutan untuk identifikasi biometrik.
Kata kunci: biometrik, perilaku, penekanan kunci, analisis dinamik, jaringan syaraf tiruan, propagasi balik.
ABSTRACT
ARIF BUDIMAN. Dynamic keystroke analysis for biometric verification based on artificial neural network backpropagation. Under the direction of SUGI GURITMAN and HERU T. NATALISA.
Biometric keystroke analysis studies the typing pattern of human behavior. Literature journals show a good prospect for a verification system and commonly use static method (where training data is similar with the verification data). This research uses dynamic analysis method. The data will be analyzed into certain dominant character pairs so that it is possible for training data to be different than the verification data (using random data display). The dominant character pairs were obtained from preliminary research which was conducted to specifically analyze 756 words in the Indonesian language. It is based on left-right finger movement. The character pairs are an, ng, la, en, ka while the cluster of close character pairs are (ng,ba,ma,na,nd), (an,am,ab), (su,au,ay,gu,di,du,di,ai), (pa,is,ia,ya,ua,us), and (ri,ti,ru,tu,ro,to,ep). The system prototype uses three variables, namely duration (d), interkey (i) and total time (T). Each variable has its own separated Artificial Neural network (ANN) by pre-processing input into five fuzzy classes (SC, C, S, L, SL). The training algorithm is backpropagation and uses two types of training models: A (crispy) and B (ambiguity). The training data were obtained by statistical analysis (mean, median, modus, standard deviation, minimum, maximum) and from fuzzy class pattern complementary data for each character pairs.
The research was conducted to study the effect of keyboard layout on False Rejection Rate (FRR) percentage, the effect of data re-taken on % FRR, the effect of ANN verification test on the responses to the new exclusive data (which had never been included in training process). It also studies the effects of identification tests in terms of False Acceptance Rate (FAR) percentage on ANN training model A and B, and the effect of overall response in % FRR on intrusion detection.
The conclusions are that model A gives lower % FRR and higher % FAR than model B while model B has a more flexible value of the decision threshold to be used as fuzzy output model in future research. The system stability is affected significantly by keyboard layout and environment conditions during typing. However, the data re-take process carried out more than 56 days afterwards still gave consistent results. ANN has the capability to recognize exclusive data with relatively lower % FRR results. Intrusion can be detected easily by spotting the existence of the % FRR spike. This model has a good capability for Biometric keystroke verification with dynamic text typing but still requires more research for Biometric identification.
Keywords: Biometric, Behavior, Keystroke, Dynamic Analysis, Artificial Neural Network, Backpropagation.
© Hak Cipta milik Institut Pertanian Bogor, tahun 2006
Hak Cipta dilindungi
Dilarang mengutip dan memperbanyak tanpa izin tertulis dari
Institut Pertanian Bogor, sebagian atau seluruhnya dalam
bentuk apapun, baik cetak, fotokopi, microfilm, dan sebagainya
ANALISIS PENEKANAN KUNCI DINAMIK UNTUK
VERIFIKASI BIOMETRIK BERBASIS JARINGAN SYARAF
TIRUAN PROPAGASI BALIK
ARIF BUDIMAN
NRP : G651034104
Tesis
Sebagai salah satu syarat untuk memperoleh gelar
Magister Sains pada
Departemen Ilmu Komputer
SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
BOGOR
2006
PRAKATA
Puji dan syukur penulis panjatkan kepada ALLAH SWT atas segala karuniaNya
sehingga karya ilmiah ini berhasil diselesaikan. Topik yang dipilih dalam penelitian yang
dilaksanakan sejak bulan Agustus 2005 ini adalah ANALISIS PENEKANAN KUNCI
DINAMIK UNTUK VERIFIKASI BIOMETRIK BERBASIS JARINGAN SYARAF TIRUAN
PROPAGASI BALIK.
Terima kasih penulis ucapkan kepada Bapak Dr. Sugi Guritman dan Bapak Ir.
Heru Triyono Natalisa, M.Math selaku Komisi Pembimbing serta Bapak Ir. Agus Buono,
M.Si, M.Kom selaku penguji luar komisi yang telah banyak memberikan masukan. Serta
teman-teman mahasiswa Pascasarjana Ilmu Komputer yang telah memberikan kritikan
dan saran baik langsung maupun tidak langsung, khususnya kepada rekan Moh. Syafii,
Risanto Darmawan, Mahyus yang telah membantu langsung dalam pengumpulan data.
Ucapan terima kasih juga disampaikan kepada istri Wahyuningsih yang telah
juga membantu langsung dalam pengumpulan data serta seluruh keluarga yang
mendukung.
Semoga karya ilmiah ini bermanfaat.
Bogor, Juli 2006
Arif Budiman
NRP. G651034104
Judul Tesis : ANALISIS PENEKANAN KUNCI DINAMIK UNTUK
VERIFIKASI BIOMETRIK BERBASIS JARINGAN SYARAF
TIRUAN PROPAGASI BALIK
(DYNAMIC KEYSTROKE ANALYSIS FOR BIOMETRIC
VERIFICATION BASED ON BACKPROPAGATION
ARTIFICIAL NEURAL NETWORK)
Nama : Arif Budiman
N R P : G651034104
Disetujui
Komisi Pembimbing
Dr. Sugi Guritman Ketua
Ir. Heru Triyono Natalisa, M.Math Anggota
Diketahui
Ketua Program Studi
Pascasarjana Ilmu Komputer
Dr. Sugi Guritman
Dekan Sekolah Pascasarjana
Dr. Ir. Khairil Anwar Notodiputro, MS
Tanggal Ujian : 9 Juni 2006
Tanggal Lulus :
RIWAYAT HIDUP
Arif Budiman dilahirkan di Tanjung Karang Lampung pada tanggal 25 Januari
1972. Putra pertama dari tiga bersaudara dari orang tua Lokman Muchsin dan Lusiana
Kawidjaja. Penulis beristrikan Wahyuningsih dan mempunyai seorang putra dan putri.
Penulis menempuh pendidikan sarjana Teknik Elektro Universitas Trisakti
Jakarta dari tahun 1990 sampai dengan tahun 1995 dan pada tahun 2004 lulus seleksi
masuk pada Program Pasca Sarjana Ilmu Komputer IPB Bogor.
Penulis mengawali pekerjaan secara konsisten di bidang Teknologi Informasi
sejak tahun 1996 di bidang jaringan, keamanan TI dan platform Microsoft serta
memegang sertikasi profesional sebagai Microsoft Certified System Engineer. Penulis
bekerja di PT Microsoft Indonesia sebagai Technical Account Manager sejak tahun 2003
dan tercatat sebagai IEEE Student Member dengan nomor 80087465.
Penulis saat ini bertempat tinggal di Jakarta dengan alamat Jl. Laut Sulawesi
BB4/32 Duren Sawit I Kecamatan Duren Sawit Jakarta Timur 13440 Telpon (021)
8620335.
DAFTAR ISI Halaman DAFTAR TABEL …………………………………………………………………… xi DAFTAR GAMBAR …………………………………………………………….….. xii DAFTAR LAMPIRAN .……………………………………………………………... xiii 1 PENDAHULUAN Latar Belakang……………………………………………………….. 1 Tujuan Penelitian ……………………………………………………. 5 Manfaat Penelitian ………………………………………………….. 5 Intisari Penelitian Sebelumnya …………………………………….. 6 Perbedaan dari Penelitian Sebelumnya ………………………….. 15 Ruang Lingkup …. ………………………………………………….. 16 2 TINJAUAN PUSTAKA Sistem Biometrik …………………………………………………….. 17 Mode Operasi Biometrik ……………………………………………. 18 Parameter Kinerja …………………………………………………… 21 Penekanan Kunci Dinamik (Dynamic Keystroke) ………………... 23 Prinsip Kerja Keyboard ……………………………………………... 25 Jaringan Syaraf Tiruan ……………………………………………… 27 Variabel Fuzzy ……………………………………………………….. 31 3 METODOLOGI Kerangka Pemikiran ………………………………………………… 34 Tata Laksana ………………………………………………………… 37 Rancangan Percobaan .... …………………………………………. 39 4 RANCANG BANGUN SISTEM Dasar Pemikiran Perancangan .................................................... 41 Perancangan Model Data ............................................................ 41 Perancangan Prototipe Aplikasi ................................................... 50 5 ANALISIS DAN PEMBAHASAN Percobaan Untuk Melihat Pengaruh Perbedaan Perangkat
Keras ………..………………………………………………………..
77 Percobaan Untuk Melihat Pengaruh Pengulangan Pengambilan
Data ……………………………………….…………………………..
79 Percobaan Untuk Melihat Kemampuan Verifikasi Dengan Data
Eksklusif .……………………..……………………………………….
81 Percobaan Untuk Melihat Pengaruh Model Data Pelatihan A
dan B – Uji Identifikasi ……………………………………………….
82 Percobaan Untuk Melihat Pengaruh Model Data Pelatihan A
dan B – Uji Penyusupan (%FRR = 1 - %FAR) ………………..…..
83 Percobaan Untuk Melihat Pengaruh Model Data Pelatihan A
dan B - Pengaruh % FRR dan ambang keputusan (0.5 – 0.9) ...
85 Perbandingan Kelayakan Sistem ……………..........……………... 86 Implementasi Sistem …………………………................................ 87 6 KESIMPULAN DAN SARAN Kesimpulan …………………………………………………….......... 89 Saran ……………………………………………………………......... 91 DAFTAR PUSTAKA ………………………………………………………............. 92 LAMPIRAN ......... ……………………………………………………….............. 95
DAFTAR TABEL
Halaman 1 Perbandingan Biometrik (NCSC,2005) ........……………………………… 3 2 Perkembangan Biometrik Perilaku Penekanan Kunci …………………… 14 3 Perbandingan Karakteristik Biometrik (Anil K. Jain et al, 2004)…..…….. 23 4 Nama, Jenis Dan Sumber Data Penelitian ……………………………….. 38 5 Daftar Kosakata ………………………………………………………………. 42 6 Daftar Kandungan Pasangan Karakter Dari 51 Kata ............................... 42 7 Hubungan Bobot JST Dengan Uji Data Eksklusif ………....……………... 43 8 Penyusunan Data Komplemen Untuk Variabel d, i Dan T ………….…… 45 9 Contoh Nilai Target Yang Bertentangan (Paradoks) …………………….. 46
10 Ringkasan Hasil Uji Abudiman1 dan Abudiman2 Terhadap JST Bobot Abudiman4 …………………………………………………………………….
77
11 Ringkasan Hasil Uji Wningsih1 dan Wningsih2 Terhadap JST Bobot Wningsih4 ……………………………………………………………………..
77
12 Ringkasan Hasil Uji Mahyus2 Terhadap JST Bobot Mahyus1 ..………… 78 13 Ringkasan Hasil Uji Abudiman3 Terhadap JST Bobot Abudiman4 ..…… 79 14 Ringkasan Hasil Uji Wningsih5 Terhadap JST Bobot Wningsih4 ............ 79 15 Ringkasan Hasil Uji Syafii1 Terhadap JST Bobot Syafii2 ........................ 79 16 Ringkasan Hasil Uji Risantod1 Terhadap JST Bobot Risantod2 ......…… 80 17 Cuplikan Analisis Statistik Pada Kasus Risantod ………………………… 80 18 Ringkasan Hasil Uji Data Eksklusif Terhadap JST Bobot Milik Sendiri ... 81 19 Ringkasan Uji Identifikasi Pengguna Di Notebook Nx6125 ..................... 82 20 Ringkasan Hasil Uji Penyusupan Dengan JST Model Pelatihan A ......... 83 21 Ringkasan Hasil Uji Penyusupan Dengan JST Model pelatihan B .......... 84 22 Cuplikan Bentuk Keluaran JST Model Pelatihan B ................................. 85 23 Perbandingan Kelayakan Sistem ............................................................ 86
DAFTAR GAMBAR
Halaman 1 Klasifikasi Biometrik ………………………………….. ……………………… 2 2 Perbandingan Metodologi JST (Obaidat, 1995) …………………………… 7 3 Perbandingan Fungsi Aktivasi JST Propagasi Balik (Obaidat et al,
1997)……………………………………………………………………………..
8 4 Perbandingan Pengukuran keystroke Latencies (Daw-Tung Lin, 1997)
……………………………………………………………………………………
10 5 Acuan Pengukuran Variabel d, i, Dan T ...........……………………………. 15 6 Keyboard QWERTY US English Standard (101/102 Keys) ……...……..... 16 7 Biometrik Untuk Identifikasi (Salil Prabhakar et al, 2003) ........................ 18 8 Biometrik Untuk Verifikasi (Salil Prabhakar et al, 2003) ........................... 19 9 Proses Enrollment Dalam Biometrik (Salil Prabhakar et al, 2003)............ 19
10 Blok Diagram Sistem Biometrik (Simon Liu et al, 2001) ............................ 20 11 Gabungan Metode Biometrik Dalam Satu Sistem (Anil K. Jain et al,
2004) ………………....................................................................................
21 12 Distribusi Kurva Probabilitas Terhadap Skor Pencocokan Pola (Salil
Prabhakar et al, 2003) …………..………....................................................
22 13 Blok Diagram Elektronik Keyboard …………………….……………………. 26 14 Arsitektur Lapisan Jaringan Syaraf Tiruan (JST) ….………………………. 29 15 Pemrosesan Di Satu Sel Neuron……………………………………..……… 29 16 Diagram Alur Kerangka Pemikiran ………………………………................. 34 17 Tahapan Pelaksanaan Penelitian ............................................................. 35 18 Hubungan Histogram Dengan Batas Kelas Fuzzy ....……………………… 44 19 Tujuh Kemungkinan Pola Dari 5 Kelas Fuzzy ........................................... 44 20 Hasil Verifikasi Akibat Data Pelatihan Yang Paradoks .............................. 47 21 Grafik Hubungan Laju Pembelajaran Dengan Penurunan Kesalahan ….. 48 22 Grafik Hubungan Laju Kesalahan Dengan Model Pelatihan A Dan B ….. 49 23 Pengaruh Tingkat Kesalahan (Jumlah epoch) Terhadap Verifikasi……… 50 24 Diagram Alir Aplikasi pengambilan Data …………………………….……… 51 25 Tampilan Pengguna Aplikasi Pengambilan Data ...................................... 52 26 Diagram Status Penguraian Pasangan Karakter Berurutan ...................... 54 27 Diagram Status Pengecekan Urutan Penekanan ...................................... 56 28 Tampilan Pengguna Aplikasi Analisis Data ............................................... 62 29 Struktur Jaringan Syaraf Tiruan Untuk Variabel d, i, Dan T ...................... 65 30 Hasil Uji 1 Program Jaringan Syaraf Tiruan............................................... 74 31 Hasil Uji 2 Program Jaringan Syaraf Tiruan .............................................. 75 32 Perbandingan Notebook EvoN620C Dan Nx6125 .................................... 78 33 Hubungan % FRR Dengan Ambang Keputusan (0.5 – 0.9) ..................... 85 34 Implementasi Dalam Sistem Verifikasi ...................................................... 87
DAFTAR LAMPIRAN
Halaman 1 Penelitian Pendahuluan Analisis Kata Bahasa Indonesia …………........... 96 2 Perancangan Variabel Fuzzy ..............................................……………….. 107 3 Tabel Analisis Statistik Data Biometrik (15 Data Dari 5 Pengguna) ............ 110 4 Contoh Model Data Pelatihan A Dan B – Abudiman4 ................................. 113 5 Uji Parameter Jaringan Syaraf Tiruan …………………………………….… 115 6 Tabel Lengkap Hasil Percobaan ……………………………………………… 123 7 Struktur Basis Data .................................................................................... 139
BAB I
PENDAHULUAN
1.1 Latar Belakang
Isu penting dalam keamanan komputer (computer security) adalah masalah
otentikasi (authentication) yang pada dasarnya bertujuan untuk memastikan orang yang
diberi hak yang berwenang untuk masuk ke dalam sistem. Dengan otentikasi, maka
sistem komputer mengenali (identify) dan memastikan (verify) bahwa orang yang diberi
hak (be authenticated) yang berwenang menggunakan sumber daya sesuai dengan
batasan yang diberikan. Sistem otentikasi yang populer dan lazim digunakan saat ini
adalah penggunaan user name dan password.
Ada tiga macam tipe otentikasi (Simon Liu dan Mark Silverman, 2001; William J.
Lawson, 2003), yakni :
1. Sesuatu yang kita tahu, contohnya password, pin atau sebagian informasi
pribadi;
2. Sesuatu yang kita punya, contohnya kartu pintar (smart card ) atau token seperti
SecurID;
3. Sesuatu tentang kita sendiri, yakni Biometrik.
Tipe pertama dan kedua saat ini tidak lagi cukup efisien dan efektif. Karena
password mudah sekali bocor baik sengaja maupun tidak sengaja kepada orang yang
tidak berhak dan penggunaan kartu pintar bisa dicuri atau dipalsukan dengan mudah.
Selain itu sifat otentikasinya hanya satu kali (once time authentication) ketika pertama
kali pengguna masuk ke dalam sistem dan tidak bisa memberikan jaminan yang bersifat
terus menerus (kontinyu) selama pengguna berada di dalam sistem.
Hal ini mendorong orang untuk mengembangkan konsep yang lebih luas yang
menekankan bagaimana caranya memastikan bahwa benar si A yang melakukan akses
bukan si B atau yang lainnya. Motivasi penelitian untuk mencari apa yang bisa
membedakan individu manusia mendorong perkembangan biometrik. Walaupun
demikian biometrik dengan segala kekurangan dan kelebihannya belum bisa digunakan
untuk sepenuhnya menggantikan sistem otentikasi yang ada melainkan hanya sebagai
pelengkap.
Sesuatu tentang kita sendiri dalam biometrik adalah sesuatu yang ada pada kita
atau sesuatu yang kita lakukan atau hasilkan. Sesuatu yang ada pada kita dikenal
dengan istilah Biometrik Fisiologis (Physiological Biometrics) dan sesuatu yang kita
hasilkan dikenal dengan istilah Biometrik Perilaku (Behavioral Biometrics) (Javier Ortega
Garcia et al, 2004).
Gambar 1 Klasifikasi Biometrik
Teknologi biometrik yang populer digunakan adalah Biometrik Fisiologis sebagai
contoh, sidik jari, iris/retina mata, geometri tangan dan pengenalan wajah. Karakteristik
fisiologis membutuhkan perangkat yang tidak murah untuk tingkat akurasi dan
kestabilan yang tinggi dan kesukaran dalam mengenali tanda kehidupan dan insiden
kesalahan pembacaan. Sebagai contoh, scan sidik jari mempunyai kesulitan mengenali
sidik jari yang kotor dan kesukarannya membedakan replika jari plastik.
Biometrik dengan karakteristik perilaku mempunyai kelemahan dalam hal
akurasi dan kestabilan, namun tidak membutuhkan piranti keras khusus dan cukup
dengan menerapkan sistem program terhadap piranti keras yang tersedia. (Umut
Uludag, et al 2004). Sebagai contoh, menurut William J. Lawson (2003) bahwa
penekanan kunci (keystroke) berdasarkan pada analisis ritme pengetikan dengan cara,
gaya dan kecepatan pengetikan seseorang di papan ketik ( keyboard) bisa menunjukkan
ciri khas perilaku orang tersebut. Kemudian ditegaskan lagi oleh Enzhe Yu et al (2004)
yang mengatakan bahwa ciri khas perilaku pengetikan tersebut menunjukkan pola yang
konsisten.
Penelitian penekanan kunci banyak dipublikasikan di media jurnal internasional
seperti IEEE dan Konsorsium Biometrik (Umut Uludag, et al 2004). Metode dan
kesimpulan yang diperoleh bersifat unik di tiap negara karena cara, gaya dan kecepatan
pengetikan seseorang dipengaruhi oleh bahasa, budaya dan ciri kejiwaan/kecerdasan
orang tersebut. Bagaimana pengaruh ini terjadi adalah topik penelitian di bidang
psikologi dan sosial antropologi bukan objek penelitian di bidang Ilmu Komputer.
Berbagai referensi menyebutkan metode penekanan kunci mempunyai beberapa
keunggulan, tiga di antaranya sebagai berikut.
1. Berbasis piranti lunak dan tidak memerlukan piranti khusus sehingga mudah
diimplementasikan.
2. Sulit ditiru, karena masalah mendasar Biometrik Fisiologis adalah data yang
digunakan bersifat bukan rahasia (terbuka atau bisa diperoleh dengan mudah)
dan perangkat biometrik harus bisa mengenali tanda kehidupan. Sedangkan
penekanan kunci adalah perilaku yang tersembunyi di dalam otak manusia.
3. Dapat meningkatkan keamanan, karena bersifat sebagai pelengkap (bukan
pengganti) sistem otentikasi yang sudah ada dengan kemampuan mem-
verifikasi secara terus menerus (kontinyu).
Namun, metode penekanan kunci juga mempunyai beberapa kekurangan. Hal ini
dapat dilihat dari perbandingan dengan teknologi biometrik lainnya menurut National
Center for State Courts pada tabel 1 sebagai berikut.
Tabel 1 Perbandingan Biometrik (NCSC, 2005)
Biometric Verify ID Accuracy Reliability Error Rate Errors False Pos.
False Neg.
Fingerprint 1 in 500+ dryness, dirt, age
Ext. Diff.
Ext. Diff.
Facial Recognition no data lighting, age,
glasses, hair Difficult Easy
Hand Geometry 1 in 500 hand injury,
age Very Diff. Medium
Speaker Recognition 1 in 50
noise, weather,
colds Medium Easy
Iris Scan 1 in
131,000 poor lighting Very Diff.
Very Diff.
Retinal Scan 1 in
10,000,000 Glasses Ext. Diff.
Ext. Diff.
Signature Recognition 1 in 50 changing
signatures Medium Easy
Keystroke Recognition no data hand injury,
tiredness Difficult Easy
DNA no data None Ext.
Diff.
Ext. Diff.
Biometric Security Level
Long-term Stability
User Acceptance Intrusive Ease of
Use Low Cost Hardware Standards
Fingerprint Somewhat Special, cheap Yes
Facial Recognition Non
Common, cheap ?
Hand Geometry Non
Special, mid-price ?
Speaker Recognition Non
Common, cheap ?
Iris Scan Non Special,
expensive ?
Retinal Scan Very
Special, expensive ?
Signature Recognition Non
Special, mid-price ?
Keystroke Recognition Non
Common, cheap ?
DNA Extremely Special,
expensive Yes
Tabel 1 menunjukkan bahwa penekanan kunci hanya cocok untuk verifikasi;
mempunyai tingkat akurasi yang rendah; tidak mempunyai data standar laju kesalahan;
kesalahan mengidentifikasi yang mudah; stabilitas jangka panjang yang rendah; serta
belum adanya acuan standar yang bisa diterima.
Dari beberapa kekurangan yang telah disebutkan diatas, tidak berarti metode ini
kurang berkembang. Perusahaan yang pertama kali menerapkan metode ini dalam
bentuk produk jadi adalah Biopassword, Inc (http://www.biopasswod.com) yang didirikan
pada tahun 1989 oleh James R. Young dan Robert W. Hammon (Alen Peacock et al ,
2004). Sedangkan registrasi paten pertama kali dilakukan oleh John D. Garcia di tahun
1986. Penyempurnaan lebih lanjut di tahun 1996 oleh Marcus E. Brown dan Samuel J.
Rogers berupa perbaikan dengan menggunakan Jaringan Syaraf Tiruan dan Jarak
Euclidean. Paten terkini di tahun 2002 oleh Zilberman dengan perangkat papan ketik
khusus dan mikrokontroler untuk menyimpan data karakteristik waktu.
Beberapa penelitian jurnal ilmiah internasional menunjukkan penekanan kunci
dengan metode soft computing mempunyai potensi yang layak sebagai metode
verifikasi. Algoritme yang lazim digunakan adalah algoritme klasifikasi pola (pattern
classification). Umumnya, berbagai penelitian menggunakan Jaringan Syaraf Tiruan
(JST) seperti JST propagasi balik yang berfungsi sebagai sarana pengingat dan
pembelajar pola (Machine Learning). Prinsip kerja JST adalah untuk mengingat pola
yang pernah diajarkan dan kemampuannya merespon pola baru berdasarkan atas
kemiripan pola baru tersebut dengan pola yang sudah ada.
Penelitian dalam tesis ini melibatkan sejumlah sampel data yang cukup dari
beberapa partisipan. Hasil penelitian menunjukkan kelayakan sistem prototipe ini dalam
memenuhi sifat penerimaan umum teknologi biometrik, sebagai berikut.
1. Universality, setiap orang mempunyai karakteristik dan kemungkinan-
kemungkinan tidak terpenuhinya harus bisa diantisipasi.
2. Uniqueness, seberapa unik sehingga bisa me mbedakan dua orang yang
berbeda.
3. Permanent, tidak berubah terhadap waktu untuk rentang waktu tertentu/bukan
sekejap.
4. Collectability, dapat diukur secara kuantitatif dan mudah.
5. Performance, akurasi yang ingin dicapai dan kondisi lingkungan yang dibutuhkan
untuk mencapai akurasi tersebut.
6. Acceptability, seberapa luas bisa diterima oleh masyarakat umum.
7. Circumvention, seberapa susah untuk membodohi sistem sehingga bisa
ditembus dan cukup tahan terhadap kemungkinan penyimpangan.
1.2 Tujuan Penelitian
Penelitian ini bertujuan untuk mengembangkan prototipe model Biometrik
Penekanan Kunci berbasis Jaringan Syaraf Tiruan Propagasi Balik dengan pengolahan
input dalam variabel Fuzzy dan analisis terhadap input teks dinamik bahasa Indonesia
sebagai alternatif verifikasi bagi pengguna komputer.
1.3 Manfaat Penelitian
Penelitian ini setidaknya memberikan dua manfaat, yakni :
1. menambah khasanah pengetahuan bidang Biometrik Penekanan Kunci yang
belum semaju bidang Biometrik lainnya, dan
2. memberikan sumbangan pemikiran terhadap perkembangan penelitian bidang
Biometrik Penekanan Kunci pada Ilmu Komputer IPB.
1.4 Intisari Penelitian Sebelumnya
Penelitian dengan tema penekanan kunci telah banyak dipublikasikan dalam
jurnal ilmiah. Antara lain dilakukan oleh Ron Luman II (2002) yang menggunakan
algoritme genetika. Dia menyarankan penelitian selanjutnya untuk analisis dengan
jumlah sampel besar dalam bentuk teks bebas. Daw-Tung Lin (1997) menggunakan
JST Propagasi balik (Backpropagation) dan Keystroke Latencies untuk memperbaiki
hasil penelitian sebelumnya. Sajjad Haider (2000) menggunakan perbandingan metode
Fuzzy, JST dan metode statistik. Leenesh Kumar (1999) membandingkan penggunaan
JST dengan Analisis Kluster (Cluster Analysis) dan menyimpulkan bahwa “pola
pengetikan individu tertentu dapat dinyatakan dalam bobot-bobot hasil pelatihan JST
Multilayer Perceptron.” Jank Mantyjarvis (2002) membandingkan JST dengan metode
K-Nearest Neighbor (K-NN) pada virtual keyboard. Enzhe Yu (2004) menggunakan
algoritme genetika SVM (Support Vector Machine) dengan mengkarakterisasikan vektor
waktu berupa lama dan selang waktu. Dia menyarankan pentingnya pengolahan data
awal untuk mengurangi noise. Fadhli Wong et al (2001) membandingkan JST dengan K-
NN dan menyimpulkan bahwa JST lebih adaptif, namun mempunyai FAR lebih besar
yang bisa dikurangi dengan cara memperbesar jumlah himpunan data pelatihan.
Berikut ini disajikan 13 contoh intisari penelitian sebelumnya yang berkaitan erat
dengan penelitian ini.
1. A Multi -Technique Approach for User Identification through Keystroke Dynamics
oleh Sajjad Haider, Ahmed Abbas dan Abbas K. Zaidi (2000).
Penelitian ini membandingkan penggunaan Logika Fuzzy, JST, metode statistik
dan kombinasinya. Data pelatihan yang digunakan bersifat statik dengan
maksimum panjang 7 karakter. Pengguna mengetik password yang sama
sebanyak 15 kali berturut-turut dengan benar karena tidak ada mekanisme
deteksi kesalahan pengetikan. Parameter yang diukur adalah waktu tunda di
antara pengetikan karakter. Logika Fuzzy menggunakan fungsi keangotaan
segitiga. JST menggunakan algoritme Propagasi Balik dengan 3 lapisan dengan
jumlah sel pada lapisan input ada enam yakni sama dengan jumlah waktu tunda
untuk keseluruhan 7 karakter yang digunakan. Metode statistik menggunakan
rataan deviasi standar serta kurva distribusi normal untuk menghitung selang
kepercayaan setiap waktu tunda. Kesimpulan penelitian ini mengatakan bahwa
kombinasi Logika Fuzzy, JST dan metode statist ik secara bersama-sama bisa
memberikan tingkat kesalahan FRR dan FAR yang paling kecil. Namun, ada
peluang buat penyusup untuk sukses masuk jika diberi kesempatan sampai dua
kali pengetikan. Saran untuk perbaikan metode ini dengan menggunakan waktu
penekanan kunci (key-hold time). Metode ini diterapkan pada sistem rangkaian
pengunci ruangan laboratorium berupa keyboard panel untuk penekanan dengan
satu jari.
2. A Verification Methodology for Computer System Users oleh M.S Obaidat (1995).
Penelitian ini merupakan kelanjutan dari penelitian sebelumnya yang hanya
menggunakan variabel Interkey Time. Data diperoleh dari 15 orang dan karakter
yang dimasukkan adalah User ID dengan panjang maksimum 7 karakter.
Rentang waktu pengumpulan data dilakukan selama 8 minggu. Masing-masing
melakukan penyusupan dengan memasukkan User ID pengguna lain sebanyak
15 kali. Variabel yang digunakan adalah selang waktu penekanan (Interkey time)
dan waktu lama penekanan (Hold Time).
Gambar 2 Perbandingan Metodologi JST (Obaidat, 1995)
Penelitian ini membandingkan beberapa metode JST Backpropagation (BP),
Self Organizing Feature mapping (SOM), Adaptive Resonance Theory 2 (ART-
2), Radial Basis Function (RFBN), Learning Vector Quantization (LVQ),
Reinforcement Neural Network (RNN) dan metode algoritme pengenalan pola
yakni K-Means Algorithm, Cosine measure Algorithm, Minimum Distance
Algorithm dan Bayes’ Decision Rule. Kesimpulan yang diperoleh bahwa dengan
menggunakan dua variabel sebagai penciri klasifikasi adalah pendekatan yang
sangat sukses. Gambar 2 membandingkan untuk tipe kesalahan I (False
Rejection Rate) dengan warna hitam dan tipe kesalahan II (False Acceptance
Rate) dengan warna putih, dan secara keseluruhan metode JST memberikan
hasil yang lebih baik dibandingkan metode lainnya.
3. Verification of Computer Users Using Keystroke Dynamics oleh M.S. Obaidat
dan Balqies Sadoun (1997).
Ini merupakan kelanjutan penelitian yang dilakukan Obaidat. Kesimpulan yang
diperoleh bahwa Hold Time lebih efektif daripada Interkey Time dan kinerja
terbaik didapatkan dengan menggunakan kedua variabel tersebut. Penelitian ini
masih menggunakan data yang dikumpulkan dari 15 orang dengan panjang
maksimum 7 karakter. Setiap pengguna memasukkan 225 kali secara berturut
setiap hari selama 8 minggu. Penelitian ini menggunakan beragam fungsi
aktivasi JST Propagasi Balik dengan hasil grafik pada gambar 3. Kesimpulan
yang diperoleh menunjukkan fungsi sigmoid delta memberikan hasil yang paling
baik.
Gambar 3 Perbandingan Fungsi Aktivasi JST Propagasi Balik(Obaidat et al, 1997)
4. Biometric Identification System based in keyboard Filtering oleh Oscar Coltell,
Jose M. Badia, dan Guillermo Torres (1999).
Penelitian ini menggunakan sampel 20 macam password yang diketik oleh 10
orang berbeda sehingga diperoleh 200 macam pola. Penelitian ini menekankan
pada upaya yang bisa dilakukan untuk mendapatkan pola tertentu dari setiap
user untuk pengetikan tiap password. Penelitian ini menjelaskan konsep
pengaruh derajat kesukaran (difficulty degree). Derajat yang paling mudah
adalah kata yang disusun dari karakter yang lokasinya saling berdekatan pada
jari seorang pengetik yang handal, sebagai contoh, asdf-jkln. Derajat menengah
adalah kata yang disusun dengan 6 karakter dan mempunyai sedikitnya 2 nomor
atau 2 karakter khusus. Derajat yang paling sukar adalah kata yang disusun dari
karakter tidak berarti ditambah dengan kombinasi karakter bilangan dan simbol.
Kesimpulan penelitian ini menunjukkan bahwa untuk password yang sederhana
dan dengan pengetikan yang berulang-ulang memungkinkan diperoleh pola yang
mirip untuk pengguna yang berbeda. Namun pada pengetikan pertama kali, tiap
pengguna menghasilkan pola yang berbeda satu sama lain. Dengan menaikkan
derajat kesukaran, maka peluang sukses untuk pengguna yang tidak sah
menjadi lebih rendah, namun di sisi lain mengakibatkan peluang gagal untuk
pengguna yang sah menjadi semakin besar. Validitas metode ini sangat besar
jika password yang digunakan relatif mudah diketik yang dalam hal ini
menggunakan password dari kata bermakna (intelligible word) dan dengan
menambahkan bilangan sebelum atau sesudahnya. Namun, jika password
tersebut berupa kata, bilangan, atau simbol yang tidak bermakna, maka metode
ini menjadi kurang efektif sehingga diperlukan pengulangan data pelatihan yang
cukup banyak.
5. GA-SVM Wrapper Approach for feature Subset selection in Keystroke Dynamics
Identity Verification oleh Enzhe Yu, Sungzoon Cho (2003).
Penelitian ini menggunakan algoritme Genetika untuk pencarian acak dan
menggunakan Support Vector Machine sebagai pendeteksi perbedaan (Novelty
Detector). Pengumpulan data pelatihan bersifat lebih dinamis dengan panjang 6
sampai 10 karakter. Data diperoleh dari 21 partisipan dengan memasukkan
password yang berbeda-beda hingga 150 sampai 400 kali. Ujicoba penyusupan
dilakukan oleh 15 orang yang telah diberitahukan sebelumnya password yang
dipakai dan diberi kesempatan untuk latihan sebanyak 21 password dengan
masing-masing melakukan 5 kali ujicoba penyusupan. Penelitian ini menghitung
penggunaan tombol enter dan bisa menghitung waktu negatif (Negative
Keystroke interval Time) yang terjadi bila tombol berikutnya sudah ditekan
sementara tombol sebelumnya belum dilepas. Kesimpulan yang diperoleh
menunjukkan bahwa GA-SVM Wrapper ini cukup baik dari sisi akurasi dan
kecepatan belajar.
6. Computer-Access Authentication with neural Network based Keystroke Identity
Verification, oleh Daw-Tung Lin (1997).
Penelitian ini menggunakan JST Propagasi Balik dengan arsitektur 3 lapisan
dengan menggunakan jumlah sel Hidden beragam dari H=2I, H=I, H=(I+O)/2,
H=(I+O)/3, H=(I+O)/4. I menyatakan jumlah sel input dan O menyatakan jumlah
sel output. Hasil yang paling optimum dari sisi kecepatan konvergensi pelatihan
adalah H=(I+O)/2. Penelitian ini menggunakan 90 user sah dan 61 user tidak sah
yang telah diberitahukan sebelumnya password yang dipakai. Password yang
digunakan bersifat statik. Penelitian ini melihat persentase kesalahan False
Acceptance Rate dan Impostor Pass Rate dan mengaitkannya dengan Root
Mean Square Error (RMSE) hasil pelatihan JST. Hal menarik dalam penelitian ini
adalah menggunakan pengukuran baru untuk Keystroke latencies (sebelumnya
Interkey Time), yakni diukur dari karakter ke-i ditekan sampai dengan karakter
ke-i+1 ditekan. Ini bertujuan untuk meningkatkan ketelitian akibat kecepatan
pengetikan yang sangat cepat oleh pengguna tertentu. Gambar 4
memperlihatkan perbedaan L12 dan L21 sebagai berikut.
Gambar 4 Perbandingan Pengukuran Keystroke Latencies (Daw-Tung Lin, 1997)
7. Enhanced user Authentication through Typing Biometrics with Artificial Neural
Networks and K-Nearest Neighbor Algorithm, oleh Fadhli Mohd hasan Wong,
Ainil Sufreena Mohd Supian dan Ahmad Faris Ismail (2001).
Penelitian ini membandingkan penggunaan JST dengan K-Nearest Neighbors
(KNN). Data yang digunakan berasal dari 10 pengguna yang bebas memilih
password yang digunakan dan pengetikan yang dilakukan secara berulang-ulang
selama 1 bulan (bersifat statik). Kemudian sistem dibuka untuk ujicoba umum
untuk melakukan intrusi sehingga didapatkan 100 macam pola tidak sah.
Kesimpulan yang diperoleh menunjukkan bahwa penggunaan JST lebih
adaptif dan toleran terhadap noise. Dengan jumlah data pelatihan yang lebih
besar memungkinkan JST mencapai ketelitian yang lebih tinggi. Penelitian ini
dilakukan selama 1 bulan sehingga terlihat adanya faktor keletihan, stress dan
gangguan fisik dari 10 pengguna tersebut.
8. Identity Verification through dynamic Keystroke Analysis oleh F. Bergadano, D.
Gunetti, dan C. Picardi (2003).
Penelitian ini menjelaskan perbedaan konsep Static Keystroke Analysis dengan
Dynamic Keystroke Analysis dan memfokuskan penelitian pada Dynamic
Keystroke Analysis dengan menggunakan metode Sequential Statistic Analysis.
Penelitian ini menekankan pada analisis teks yang panjang. Data diperoleh dari
dua macam teks berbeda dengan panjang 300 karakter dan melibatkan 40 orang
partisipan. Teks tersebut diketik setidaknya masing-masing satu kali dalam satu
hari hingga diperoleh 137 contoh untuk masing-masing teks tersebut.
Teks pertama dijadikan sebagai model dan teks kedua digunakan untuk test.
Kemudian dilibatkan lagi 90 orang partisipan dan mengetikan teks kedua untuk
dilakukan ujicoba penyusupan. Partisipan diberi keleluasan untuk melakukan
pengetikan secara bebas dan normal. Kedua teks dipilih sedemikian rupa
penggunaan kata dan kalimatnya dalam bahasa Italia. Penelitian ini
menyebutkan istilah digraph , trigraph dan N-graph. Teks yang diperoleh
dilakukan ekstraksi (analisis) berupa pasangan-pasangan karakter. Digraph
mengukur selang di antara satu pasang (dua karakter) yang saling berturutan.
Trigraph mengukur durasi di antara tiga karakter yang saling berturutan
sekaligus dan N-graph berarti ada N karakter yang saling berturutan sekaligus.
Bila teks tersebut panjang, maka digraph yang diperoleh lebih dari satu dan
keseluruhannya kemudian dilakukan perataan secara statistik. Jadi penelitian ini
melakukan analisis terhadap teks yang digunakan.
Kesimpulan penelitian ini memberikan saran untuk peluang penelitian lebih lanjut
untuk verifikasi identitas dengan menggunakan teks bebas dan panjang.
Penyusup (26%) bisa diketahui setelah melakukan beberapa kali pengetikan
(dalam 40 kali pengetikan) dan 82.5 % dalam 150 kali pengetikan dengan FAR
tetap dijaga 0%.
9. Dynamic Keystroke Analysis Using AR Mode oleh Wasil Elsadig Eltahir, M.J.E
Salami, Ahmad Faris Ismail dan W.K. Lai (2004)
Penelitian ini menggunakan disain piranti keras khusus dengan sensor
penekanan sebagai BAS (Biometric Authentication System) daripada keyboard
biasa untuk memberikan hasil yang lebih akurat dan menggunakan metode
Autoregressive Signal Modelling (AR) sebagai pengelompok pola. Penelitian
menggunakan data pengguna yang memasukkan password yang sama hingga
20 kali sehingga didapatkan pola tertentu dan dengan menggunakan AIC (Aikake
Information Criteria) dan FPE (Final Prediction Error) dihasilkan AR Model
sebagai template profile yang sesuai untuk pengguna tersebut. AR Model
digunakan untuk menghasilkan Linear Prediction Model sebagai sistem verifikasi.
Keunggulan yang diungkapkan dalam penelitian ini adalah profil pengguna
dibangun dengan Koefisien AR dan bukan dengan data sehingga lebih hemat
dalam penggunaan memori dan basis data.
10. Applying Hidden Markov Models to Keystroke pattern Analysis for password
Verification, oleh Wendy Chen dan Weide Chang (2004).
Penelitian ini menggunakan Hidden Markov model . Data penelitian diperoleh dari
pengetikan username, password dan nama pertama dan kedua dari pengguna
(data bersifat statik) sebanyak 8 kali.
11. A Parallel Decision Tree-Based Method for User Authentication Based on
Keystroke Patterns, oleh Yong Sheng, V. Phoha, Steven M. Rovnyak (2005).
Penelitian ini menggunakan 43 pengguna dan dua set data untuk pelatihan dan
verifikasi. Data yang digunakan bersifat statik dan diketik sebanyak 9 kali dalam
masa kurun waktu November – Desember 2002. Metode penelitian ini
menggunakan kombinasi metode Monte Carlo untuk menghasilkan data
pelatihan tambahan bersama dengan Parallel Decision Tree sehingga
memungkinkan dilakukan penambahan pengguna baru tanpa perlu melakukan
pemrograman ulang keseluruhan sistem. Kompleksitas keseluruhan algoritme
pelatihan bergantung pada jumlah User (n). Kesimpulan penelitian ini adalah
jumlah pelatihan yang dibutuhkan sejumlah 180(n-1) dan kompleksitas
keseluruhan adalan O(n2). Penelitian ini mengacu ke beberapa penelitian
sebelumnya dan menggunakan asumsi bahwa fitur pengetikan mengikuti
Distribusi Normal Gauss.
12. Deterring Password Sharing: User Authentication via Fuzzy c-Means Clustering
Applied to Keystroke Biometric Data , oleh Salvador Mandujano dan Rogelio Soto
(2004).
Penelitian ini membandingkan penggunaan Crisp Clustering dengan Fuzzy
Clustering dengan fungsi keanggotaan berbentuk segitiga. Data diperoleh dari 15
orang partisipan dengan mengetikan masing-masing password yang sama
secara berulang sebanyak 15 kali. Kesimpulan yang diperoleh menunjukkan
bahwa Fuzzy c-Means Clustering menyediakan tingkat keamanan yang lebih
baik.
13. User Authentication Through Typing Biometrics Features, oleh Livia C. F. Araujo,
Luiz H. R. Sucupira Jr. Miguel G. Lizarraga, Lee L. Ling dan Joao B.T Yabu-Uti
(2005).
Penelitian ini menggunakan 3 mesin dengan 2 keyboard layout yang berbeda
dan melibatkan 30 orang (pria dan wanita umur 20 – 60 tahun). Pelatihan
menggunakan user account masing-masing dengan pengetikan berulang-ulang
15-20 kali (bersifat statik). Kemudian ujicoba penyusupan dilakukan dengan
penyusup mencoba masuk dengan mengetikan user account peserta lain hingga
80 – 120 kali dengan sebelumnya telah mengamati cara pengetikan pengguna
yang sebenarnya. Metode yang digunakan adalah metode statistik dengan
menghitung rataan dan simpangan. Penelitian ini menggunakan beragam
rentang waktu pengukuran untuk Keystroke latencies (Interkey Time), sebagai
berikut.
1. DD (Down-Down) time : tombol ditekan hingga tombol berikutnya ditekan.
2. UD (Up-Down) time : tombol dilepas hingga tombol berikutnya ditekan.
3. DU (Down-Up) time : tombol ditekan hingga tombol berikutnya dilepas.
4. DD dan UD time : kombinasi dari 1 dan 2.
5. DD dan DU time : kombinasi dari 1 dan 3
6. UD dan DU time : kombinasi dari 2 dan 3
7. DD, UD dan DU time : kombinasi dari 1, 2 dan 3.
Kesimpulan terbaik diperoleh jika menggunakan nomor 7.
Berdasarkan intisari jurnal penelitian tersebut, maka biometrik penekanan kunci
mempunyai prospek perkembangan yang cerah (tabel 2) baik ditinjau dari sisi penelitian
Ilmu komputer dan implementasinya.
Tabel 2 Perkembangan Biometrik Perilaku Penekanan Kunci
Hal ini sejalan dengan perkembangan metode pengenalan pola dengan sifat
data yang semakin dinamik dan penggunaan teks bebas. Penggunaan piranti keras dari
berupa keyboard biasa hingga menggunakan piranti khusus dengan sensor penekanan
yang lebih sensitif sehingga bisa diimplementasikan dimana saja (Ruangan, PC, dan
perangkat bergerak). Implementasinya dimulai dari sistem kunci ruangan yang
sederhana hingga sistem verifikasi aplikasi yang kompleks dengan kemampuan
verifikasi terus menerus. Perkembangan di masa depan, metode ini bisa digunakan
sebagai sistem identifikasi identitas pengguna. Alen Peacock (2004) dalam artikel
”Typing Patterns: A Key to User Identification” mengatakan: “… para peneliti
memfokuskan pada biometrik penekanan kunci dalam rangka untuk mencari identitas
individu dari gaya pengetikannya. Namun, bidang ini masih mempunyai banyak
tantangan sebelum dapat diterima sepenuhnya.”
1.5 Perbedaan Dari Penelitian Sebelumnya
Perbedaan penelitian tesis ini dengan penelitian sebelumnya adalah sebagai berikut.
1. Variasi pengembangan penelitian Araujo (2005) dan Daw-Tung Lin (1997)
dengan tiga variabel waktu d, i dan T yang diproses menjadi besaran variabel
Fuzzy. Namun, tidak bisa dikatakan sebagai trigraph karena hanya tetap
menggunakan dua karakter (Digraf diperluas/ Extended Digraph).
Gambar 5 Acuan Pengukuran Variabel d, i Dan T
2. Teks kata yang digunakan diurai (dianalisis) ke dalam pasangan karakter
tertentu yang bersesuaian dengan belahan kanan dan kiri. Hal ini belum pernah
diacu dalam penelitian sebelumnya dan penguraian ke dalam pasangan karakter
mengacu pada penelitian Bergadano et al (2003) mengenai analisis penekanan
kunci dinamik. Pasangan karakter yang digunakan hanyalah yang
menggambarkan pergerakkan kedua belahan tersebut.
3. Variabel Fuzzy menggunakan fungsi keanggotaan segitiga dan trapesium.
Namun, rentang yang digunakan disesuaikan dengan pola data yang diperoleh
sebagai pengembangan penelitian Sajjad Haider et al (2000) dan mengacu pada
penelitian Salvador Mandujano et al (2004).
4. Kata bermakna dalam bahasa Indonesia. Penggunaan kata bermakna mengacu
pada penelitian Coltell et al (1999) mengenai pengaruh derajat kesukaran untuk
mendapatkan pola yang lebih konsisten.
5. Kemunculan kata secara acak berdasarkan waktu (Time Random) untuk
memenuhi kriteria dinamik. Umumnya penelitian sebelumnya menggunakan data
pelatihan dan verifikasi yang bersifat tetap dan selalu sama berulang.
6. Percobaan penggunaan data pelatihan yang tidak lengkap dan data pelatihan
gabungan pasangan karakter yang berkelompok (berdekatan/cluster). Ini
berdasarkan hipotesis bahwa tidak ada perbedaan yang berarti antara
pengetikan pada karakter yang lokasinya saling berdekatan (pada kolom atau
baris yang sama). Sebagai contoh, pola pengetikan an seharusnya tidak berbeda
dengan am, sehingga data pelatihan pola an bisa digabungkan dengan data
pelatihan pola am untuk menyederhanakan jumlah variasi data pelatihan.
1.6 Ruang Lingkup
Penelitian ini mempunyai batasan ruang lingkup sebagai berikut.
1. Kata pendek (maksimum 20 huruf ) dan 26 huruf abjad (bukan huruf besar).
Penggunaan karakter lainnya seperti tanda baca dan angka tidak digunakan
karena tidak menimbulkan makna dan untuk mempersempit ruang lingkup pola.
Gambar 6 Keyboard QWERTY US English Standard (101/102 Keys)
2. Keyboard pada gambar 6 dibagi dalam belahan kanan baris pertama : ”y u i o
p“, baris kedua : ”h j k l“, barisan ketiga : ” b n m“. Belahan kiri baris pertama : ”
q w e r t“, barisan kedua : “a s d f g“, dan barisan ketiga : ” z x c v“. Ini bertujuan
untuk melihat pengaruh pergerakan jari kanan dan kiri.
3. Penekanan dua tombol harus mengikuti urutan ”tombol 1 ditekan – tombol 1
dilepas – tombol 2 ditekan – tombol 2 dilepas”. Urutan lain sebagai contoh,
”tombol 1 ditekan – tombol 2 ditekan – tombol 1 dilepas – tombol 2 dilepas” akan
memberikan data input yang tidak sah (Invalid).
4. Ujicoba untuk melakukan verifikasi dengan target 5 orang berbeda. Verifikasi
bertujuan untuk memastikan memang benar si A (bukan si B) dan bukan untuk
menemukan siapakah si A (identifikasi).
5. Uji kondisi kualitatif sederhana dengan tiga kondisi yakni keletihan, cukup tidur
dan ketrampilan pengetikan (bukan uji Psikologis lengkap) serta hari dan jam
pengambilan data.
BAB II
TINJAUAN PUSTAKA
Sistem Biometrik
Biometrik berasal dari bahasa Yunani yang artinya Bios yakni kehidupan dan
metrikos yakni mengukur. Manusia secara intuitif mengenali karakteristik manusia lain
berdasarkan raut muka, suara, dan aroma. Hal inilah yang mendorong perkembangan
teknologi informasi dan keamanan komputer untuk dapat mengenali karakteristik
manusia sehingga dikenal dengan istilah Biometrik.
Sistem Biometrik pada dasarnya adalah sistem pengenalan pola yang mengenali
individu manusia berdasarkan sejumlah vektor yang diturunkan dari karakteristik
fisiologis atau karakteristik perilaku yang dimiliki seseorang. Kresimir Delac, et al (2004)
dan Javier Ortega-Garcia, et al (2004) mengemukakan bahwa Biometrik memberikan
dimensi baru dengan mengaitkan identitas seseorang dengan sesuatu tentang dia
sendiri atau yang dia hasilkan.
Metode biometrik dibagi dalam dua kategori sebagai berikut.
1. Metode otentikasi berdasarkan perilaku (Behavioral-based authentication methods),
yakni proses otentikasi dengan pengenalan terhadap pola perilaku seseorang.
2. Metode otentikasi berdasarkan fisiologis (Physiological -based authentication
methods), yakni proses otentikasi berdasarkan karakteristik fisiologis seseorang.
Karakteristik fisiologis ini lebih stabil dan tinggi akurasinya dibandingkan dengan
karakteristik perilaku kecuali bila terjadi cacat/kerusakan fisik pada orang tersebut.
Pada dasarnya, menurut Kresimir Delac, et al (2004) bahwa setiap fisiologis dan
perilaku manusia bisa digunakan untuk biometrik asalkan memenuhi kriteria sebagai
berikut.
1. Universality, setiap orang mempunyai karakteristik dan kemungkinan-
kemungkinan tidak terpenuhinya harus bisa diantisipasi.
2. Uniqueness, seberapa unik sehingga bisa membedakan dua orang yang
berbeda.
3. Permanent, tidak berubah terhadap waktu untuk rentang waktu tertentu/bukan
sekejap.
4. Collectability, dapat diukur secara kuantitatif dan mudah.
5. Performance, akurasi yang ingin dicapai dan kondisi lingkungan yang dibutuhkan
untuk mencapai akurasi tersebut.
6. Acceptability, seberapa luas bisa diterima oleh masyarakat umum dan tidak
membahayakan pemakai.
7. Circumvention, seberapa susah untuk membodohi sistem sehingga bisa
ditembus dan cukup tahan terhadap kemungkinan penyimpangan.
Mode Operasi Biometrik
Menurut Salil Prabhakar, et al (2003), operasi biometrik mempunyai dua macam
mode, yakni mode identifikasi dan mode verifikasi. Mode identifikasi bertujuan mencari
jawaban identitas siapa orang tersebut sedangkan mode verifikasi bertujuan
memastikan apakah benar orang yang dimaksud (bukan orang lain).
Sistem dengan mode identifikasi akan mengenali suatu individu dengan mencari
keseluruhan template dalam basis data untuk karakteristik yang cocok dengan
pencocokan satu-ke-banyak (1:M). Identifikasi cocok dibangun untuk sistem aplikasi
pengenalan negatif yang bertujuan untuk menolak/mencegah seseorang menggunakan
lebih dari satu identitas. Untuk sistem pengenalan positif yakni untuk memastikan hanya
pengguna yang benar yang bisa akses. Metode tradisional non Biometrik seperti
password hanya untuk pengenalan positif dan hanya Biometrik yang bisa digunakan
untuk pengenalan negatif.
Gambar 7 Biometrik Untuk Identifikasi (Salil Prabhakar et al, 2003)
Sistem dengan mode verifikasi akan mem-verifikasi identitas seseorang dengan
membandingkan dengan karakteristik Biometrik dari suatu template yang telah disimpan
dalam basis data dengan pencocokkan satu ke satu (1:1). Verifikasi identitas lazimnya
dipakai sebagai pengenalan positif.
Gambar 8 Biometrik Untuk Verifikasi (Salil Prabhakar et al, 2003)
Proses pengambilan template karakteristik Biometrik dan penyimpanannya
dinamakan proses Enrollment. Proses ini melibatkan serangkaian pengecekan kualitas
fitur dan melakukan ekstraksi fitur ke dalam template karakteristik Biometrik untuk
disimpan ke dalam basis data.
Gambar 9 Proses Enrollment Dalam Biometrik (Salil Prabhakar et al, 2003)
Proses ini dalam Biometrik fisiologis melibatkan sejumlah sensor bio-elektronik
yang mampu melakukan proses pembacaan (scanning) fisiologis untuk diubah ke dalam
serangkaian template karakteristik biometrik dan kemudian disimpan ke dalam basis
data. Sensor bioelektronik ini yang menentukan ketepatan sistem Biometrik fisiologis.
Biometrik perilaku lebih menekankan pada algoritme pengenalan pola seperti Jaringan
Syaraf Tiruan (JST) dengan kemampuannya untuk membedakan pola yang kompleks.
Implementasi sistem biometrik secara umum dapat digambarkan dalam gambar
blok diagram berikut ini :
Gambar 10 Blok Diagram Sistem Biometrik (Simon Liu et al, 2001)
Menurut Anil K. Jain, et al (2004), modul komponen yang penting dalam sistem
biometrik sebagai berikut.
1. Feature Extraction Module : modul ini berfungsi sebagai Biometric enrollment untuk
mempersiapkan data biometrik mentah yang dibaca oleh blok Biometric devices dan
dilakukan penyaringan sehingga bisa didapatkan karakteristik Biometrik yang sesuai
untuk disimpan dalam Template storage.
2. Matching Module : modul ini berfungsi sebagai Biometric verification untuk melakukan
pencocokan karakteristik Biometrik dengan informasi yang tersimpan dalam Template
storage. Proses ini melakukan query dan Template storage akan memberikan template
karakteristik yang sesuai.
3. Fusion Module : modul ini merupakan tambahan dan berfungsi sebagai modul
penggabungan beberapa metode Biometrik yang digunakan dengan tujuan untuk
mendapatkan hasil yang lebih teliti dengan cara melakukan penggabungan beberapa
metode sekaligus dalam satu Fusion Module sebagaimana dijelaskan dalam gambar
berikut.
4. Decision Module : modul ini merupakan tambahan dan berfungsi sebagai pembuat
keputusan akhir hasil yang diinginkan apakah diterima atau tidak.
Gambar 11 Gabungan Metode Biometrik Dalam Satu Sistem
(Anil K. Jain et al, 2004)
Gambar 11 (a) memperlihatkankan Fusion Module dilakukan setelah Feature Extraction
Module; Gambar 11 (b) memperlihatkan Fusion Module dilakukan setelah Matching
Module; Gambar 11 (c) memperlihatkan Fusion Module dilakukan setelah Decision
Module.
Parameter Kinerja
Secara umum, pengguna awam beranggapan bahwa dengan sistem biometrik
maka ketelitian 100% akan mudah diperoleh. Seperti halnya sistem password yang
memberikan ketelitian sangat tinggi dengan hanya kesalahan satu bit, maka hasilnya
akan ditolak. Namun, tidak demikian halnya dengan biometrik. Biometrik sidik jari dan
DNA mempunyai jaminan ilmiah bahwa tidak ada satu orang pun yang mempunyai
karakteristik fitur biometrik yang 100% identik walaupun demikian ada ketidaktelitian
yang terjadi akibat ketidakakuratan pembacaan karakteristik biometrik. Sebagai contoh,
pembacaan sidik jari yang tidak jelas akibat permukaan kotor atau tergores sehingga
menimbulkan goresan nyata atau cacat menetap. Jadi kemampuan mengidentifikasi
perbedaan identitas individu (distinctiveness) tidak bisa dikatakan sama dengan
ketelitian (accuracy).
Oleh karena sifat kinerja tersebut, maka dalam sistem biometrik diperlukan
perimbangan toleransi akurasi yang diinginkan. Jika terlalu tinggi, akan berakibat
pembacaan berulang-ulang sehingga tidak efisien. Jika terlalu rendah, akan berakibat
kekeliruan dalam pengambilan keputusan. Perimbangan toleransi akurasi tersebut
dinyatakan dalam ambang keputusan (Decision threshold) dalam kurva distribusi
probabilitas dalam gambar 12 dibawah ini :
Gambar 12 Distribusi Kurva Probabilitas Terhadap Skor Pencocokan Pola
(Salil Prabhakar et al, 2003)
Kurva distribusi probabilitas pencocokan yang asli (Genuine) beririsan dengan
kurva distribusi probabilitas pencocokan yang palsu (Imposter). Daerah irisan False
Match menyatakan probabilitas sistem keliru mengenali pola yang asli sebagai palsu.
Sedangkan False nonmatch menyatakan probabilitas sistem keliru mengenali pola yang
palsu sebagai asli. Banyak istilah yang digunakan dengan maksud yang sama dan agar
tidak membingungkan, maka digunakan acuan sebagai berikut.
1. False Rejection Rate (FRR): persentase dari pengguna yang sah (asli), namun
dikenali oleh sistem sebagai penyusup (imposter). Ini disebut juga False
Positive/False Match/False Alarm Rate.
2. False Acceptance Rate (FAR): persentase dari pengguna yang tidak sah
(penyusup), namun dikenali oleh sistem sebagai pengguna yang sah (asli). Ini
disebut juga False Negative/False Nonmatch.
Kinerja biometrik ditentukan berdasarkan kedua parameter tersebut. Jika tingkat
kesalahannya tinggi, maka sistem biometrik harus ditinjau apakah memang ada
kesalahan algoritme atau kesalahan pembacaan sensor atau memang tipe biometrik itu
sendiri tidak bisa memenuhi kriteria Distinctiveness.
Berdasarkan hal tersebut, maka sistem Biometrik dapat dipahami bukan ditujukan
untuk menggantikan sistem keamanan IT yang sudah ada saat ini, melainkan sebagai
pelengkap untuk memberikan nilai tambah terhadap keamanan.
Penekanan Kunci Dinamik (Dynamic Keystroke)
Keystroke artinya penekanan tombol/kunci (key). Beberapa penelitian Biometrik
perilaku menemukan bahwa ada pola-pola tertentu dalam cara pengetikan seseorang
terhadap suatu kata/kalimat. Sebagaimana halnya orang berbicara mengucapkan kata-
kata, ada intonasi, nada dan warna suara khas, maka demikian halnya dengan pola
pengetikan tombol/kunci. Parameter yang biasa diukur dalam hal ini adalah waktu, yakni
waktu lamanya suatu tombol ditekan dan selang waktu antar penekanan dua tombol
yang berturutan.
Menurut Kresimir Delac et al (2004) bahwa tiap orang dalam mengetik keyboard
mempunyai cara karakteristik tertentu. Namun, tabel 3 menjelaskan bahwa metode ini
tidak terlalu bisa membedakan individu (Distinctiveness), serta dianggap cukup sebagai
informasi untuk membedakan dalam hal proses verifikasi saja.
Tabel 3 Perbandingan Karakteristik Biometrik (Anil K. Jain et al, 2004).
H, M dan L menyatakan Tinggi (baik), Sedang dan Rendah (Jelek)
Penelitian Bergadano et al (2003) menjelaskan lebih lanjut perbedaan
penekanan kunci statik (static keystroke) dengan penekanan kunci dinamik (dynamic
keystroke ). Penekanan kunci statik berdasarkan pada pola pengetikan tombol/kunci dari
kata-kata yang selalu sama (fixed string) dalam proses enrollment maupun dalam
proses verifikasi. Sedangkan penekanan kunci dinamik berdasarkan pada pola
pengetikan tombol/kunci dari kata-kata yang tidak selalu sama saat proses enrollment
maupun saat proses verifikasi.
Pendekatan metode penekanan kunci statik cukup mudah dengan menggunakan
statistik maupun algoritme soft computing. Namun bukan tidak mungkin, pola pengetikan
kata seseorang bisa ditiru dengan mudah. Sebagaimana halnya orang yang bisa meniru
suara orang lain. Walaupun tidak harus sama persis, namun akibat sifat parameter
kinerja Biometrik ada peluang kemungkinan seseorang bisa menerobos masuk ke
dalam sistem. Penekanan kunci dinamik memungkinkan teks kata yang digunakan
berbeda sehingga akan menyusahkan orang yang tidak berhak karena orang tersebut
harus meniru setiap kata-kata yang ada di dalam sistem. Penekanan kunci dinamik
memerlukan adanya analisis sehingga bisa mengambil pola-pola karakteristik
pengetikan yang khas dari keseluruhan kata tersebut.
Penelitian Oscar Coltell , et al (1999) menyebutkan bahwa kestabilan yang lebih
baik bisa diperoleh dengan pengetikan kata-kata yang bermakna daripada pengetikan
kata-kata sembarang. Secara logis memang demikian, seseorang akan lebih mengetik
secara konsisten untuk kata-kata yang dia tahu maknanya dibandingkan dengan kata-
kata yang dia tidak tahu maknanya. Kebanyakan orang mengetik sambil melihat kata
yang diketik dengan letak huruf di keyboard. Sedikit orang yang bisa mengetik tanpa
sama sekali melihat huruf di keyboard dan hanya fokus pada kata yang diketik. Namun
demikian, yang bersangkutan tetap akan mengalami kesulitan saat dia diharuskan
mengetik kata-kata dengan huruf acak dan tidak bermakna. Akibatnya pola pengetikan
yang dihasilkan menjadi tidak konsisten.
Penelitian ini dilakukan untuk pengguna di Indonesia, maka kata-kata bermakna
yang digunakan harus dalam bahasa Indonesia. Bahasa Indonesia mempunyai ciri khas
berbeda dibandingkan bahasa lainnya dalam pemilihan karakter baik vokal maupun
konsonan dalam penyusunan kata. Sebagai contoh, jika bahasa Inggris banyak
menggunakan huruf e, maka bahasa Indonesia banyak menggunakan huruf a.
Penelitian pendahuluan telah dilakukan (lampiran 1) dengan tujuan untuk
mengetahui pasangan karakter apakah yang frekwensinya paling sering muncul dalam
bahasa Indonesia. Penelitian pendahuluan melakukan analisis terhadap kata-kata yang
dipilih acak dan berjumlah 756 kata yang terdiri atas kata-kata bermakna tumbuhan,
tempat, hewan dan perkakas. Analisis dilakukan sedemikian rupa sesuai dengan ruang
lingkup penelitian untuk memperoleh pasangan karakter yang menggambarkan
pergerakan jari kanan dan kiri saja. Kesimpulan penelitian pendahuluan me njelaskan
bahwa pasangan karakter tertentu yang paling sering muncul dalam bahasa Indonesia
adalah pasangan karakter an, ng, la,en, ka (dalam lima besar terbanyak dengan
persentase total 25%).
Berdasarkan kesimpulan tersebut, maka penelitian analisis penekanan kunci
dinamik terhadap pengguna berbahasa Indonesia difokuskan hanya pada kata-kata
yang mengandung pasangan karakter terbanyak dalam lima besar diatas dan tidak perlu
difokuskan pada penggunaan karakter yang jarang atau tidak pernah ditemui sebagai
contoh, zy, xh, cb. Disatu sisi, ini berarti memperkecil ruang lingkup kemungkinan
penggunaan semua pasangan karakter yang mungkin (yakni 26x26) dan secara teknis
akan memperkecil ukuran basis data dan kecepatan pemrosesan saat pelatihan
maupun verifikasi.
2.5 Prinsip Kerja Keyboard
Gambar 13 menerangkan lebih lanjut blok diagram elektronik sebagai berikut.
Ketika kunci keyboard ditekan atau ketika dilepaskan, keyboard Controller
mengirimkan scancode secara serial ke keyboard Interface dalam PC. keyboard
interface mencek jika keyboard diaktifkan dan jika aktif akan melakukan Hardware
Interrupt (IRQ0) ke Programmable Interrupt Controller (PIC). PIC kemudian mengirimkan
scancode yang dikonversikan secara parallel ke Programmable Peripheral Interface
(PPI). PIC yang menerima interupsi hardware IRQ0 dari keyboard kemudian
mengirimkan interupsi hardware IRQ ke CPU agar CPU melakukan penempatan alamat
9h ke dalam bus data. CPU kemudian segera lompat ke proses untuk segera melayani
prosedur Interrupt Services routine 9h didalam BIOS. Proses tersebut akan mengambil
scancode dari I/O port 60h yang dimiliki oleh PPI.
Gambar 13 Blok Diagram Elektronik Keyboard
Scancode tersebut diubah ke dalam kode ASCII dan disimpan dalam keyboard
Buffer dalam BIOS di tempat sementara yang sudah dialokasikan (0000:041E). Setiap
masukan dalam antrian terdiri atas dua nilai 8-bit berupa ASCII (di Low Byte) dan
SCANCODE (di High Byte). Ketika User Program akan membaca sebuah key, maka
program tersebut akan melakukan interrupt 16h. Interrupt 16h ini akan mencek antrian
keyboard pada BIOS untuk melihat jika sebuah tombol telah ditekan atau dilepaskan.
Kapan terjadinya Interrupt 9h (INT 09h) saat tombol ditekan dan dilepas akan
direkam waktunya dan data ini kemudian diolah untuk mendapatkan data input yang
diinginkan. Contoh kutipan kode program dalam MS Visual C++ dengan Microsoft
Foundation Class (MFC) sebagai berikut.
BOOL CMyApp::PreTranslateMessage(MSG* pMsg) {
BOOL ok=FALSE;
if (pMsg->message == WM_KEYDOWN) {
if (pMsg->wParam == your codes here) // look for specific codes you are interested
in
{
pMsg->time ... // do something with the time } }
else if (pMsg->message == WM_KEYUP) {
if (pMsg->wParam == your codes here) // look for specific codes you are interested
in
{
pMsg->time ... // do something with the time }}
return CWinApp::PreTranslateMessage(pMsg); }
Dari hasil penelitian sebelumnya dan penelitian pendahuluan diketahui bahwa
disain piranti keras keyboard lebih menekankan pada perekaman karakter yang masuk
daripada informasi waktu kapan tombol ditekan atau dilepas. Ini merupakan kendala
tersendiri dalam mendesain program sesuai dengan sifat piranti keras tersebut.
Dalam pengetikan yang dilakukan cepat, seringkali urutan tombol tekan dan
lepas sedemikian cepatnya sehingga perekaman waktu menjadi tidak tepat. Oleh karena
itu, pembatasan diperlukan sehingga pembacaan yang tepat dan sah adalah apabila
urutan pengetikan dipatuhi yakni tombol 1 ditekan – tombol 1 dilepas – tombol 2 ditekan
– tombol 2 dilepas. Jika urutan tersebut tidak diikuti, maka pembacaan oleh program
menjadi tidak tepat dan harus dilakukan pengulangan kembali.
2.6 Jaringan Syaraf Tiruan
Jaringan Syaraf Tiruan (Artifical Neural Network) adalah salah satu metode soft
computing yang perkembangannya diinspirasikan dari cara kerja syaraf manusia.
Implementasi dan riset Jaringan syaraf tiruan (JST) berjalan pesat di berbagai bidang
seperti pemetaan pola dan klasifikasi pola, analisis citra dan pengkodean, pengolahan
sinyal, optimisasi, manipulasi grafis, pengenalan karakter, robotik, pengolahan
pengetahuan dan sistem pakar, diagnosis kesehatan, peredaman kebisingan, dan
sebagainya.
Di bidang Biometrik, JST berperan dalam pengklasifikasian pola bersama
dengan metode soft computing lainnya seperti fuzzy logic dan algoritme genetika hingga
bisa diimplementasikan secara nyata saat ini. Peranan JST sebagai Machine Learning
dalam sistem Biometrik sangat penting untuk mengatasi masalah pengenalan dan
klasifikasi pola yang kompleks (S. Y. Kung et al , 2004).
2.6.1 Mengapa JST Propagasi Balik
Metode algoritme JST banyak variasinya dari yang paling sederhana seperti
Perceptron, kemudian berkembang menjadi Adaline (Adaptive Linear) dan Madaline
(Multi -Adaline) di bidang pengolahan sinyal. Metode paling terkenal hingga saat ini
adalah algoritme Propagasi balik (Backpropagation) yang dikembangkan secara formal
oleh Werbos, dan kemudian Parker serta Rummelhart dan McClelland (James A.
Freeman at al, 1992). Kemudian dikenal juga Bidirectional Associative Memory (BAM)
dan Hopfield Memory, Simulated Annealing, Counterpropagation Neural network (CPN),
Self Organizing Maps (SOM), dan Adaptive Resonance Theory (ART) .
JST Propagasi balik dipilih karena metode algoritme JST ini sering dijadikan
acuan dalam beberapa penelitian sebelumnya. M.S. Obaidat, et al (1994) melakukan
perbandingan JST Propagasi Balik, JST Sum-of-Products (Sigma-pi) dan JST Hybrid
Sum-of-Products sebagai kombinasi keduanya. Ketiga JST tersebut mempunyai jumlah
sel input dan output yang sama serta sel lapisan antara yang sama dengan jumlah dan
data pelatihan yang sama. Kesimpulan menunjukkan bahwa JST Propagasi balik
mempunyai hasil ketelitian sebesar 97.5%, dan JST Sum-of-Products menghasilkan
93.7% serta JST Hybrid Sum-of-Products memberikan 96.2% dan waktu
pembelajarannya yang lebih cepat dibandingkan lainnya. Penelitian tersebut
menunjukkan bahwa kinerja jaringan yang lebih baik diperoleh dengan ukuran jumlah
pelatihan yang lebih banyak, namun memerlukan waktu pelatihan dan memori yang
lebih besar.
JST Propagasi balik menggunakan pelatihan terarah (supervised training) yang
memudahkan dalam melakukan pembelajaran. Dengan merancang data pelatihan yang
berupa pasangan pola input dan target output yang diinginkan, maka JST Propagasi
balik akan melakukan pembelajaran sedemikian rupa sehingga diperoleh hasil yang
paling mendekati data pelatihan.
JST bersifat lebih adaptif dan fleksibel jika dibandingkan dengan metode soft
computing lainnya sehingga memudahkan dalam melakukan ragam variasi dan
kombinasi percobaan tanpa memerlukan banyak perubahan pada kode program.
2.6.2 Arsitektur JST Propagasi Balik
Arsitektur JST Propagasi balik cukup sederhana dan terdiri atas lapisan input
dan lapisan output serta di antaranya terdapat satu atau lebih beberapa lapisan antara
yang disebut Hidden Layer. Di setiap lapisan terdapat unit-unit sel yang saling
berhubungan satu sama lain membentuk seperti gambar 14 dibawah ini.
Gambar 14 Arsitektur Lapisan Jaringan Syaraf Tiruan (JST)
Arsitektur JST Propagasi balik untuk tiap sel unitnya mengacu pada algoritme
JST Propagasi balik dalam buku Neural Networks Algorithm, Applications, and
Programming Techniques (James A. Freeman et al, 1992) dan telah diimplementasikan
dalam penekanan keyboard dalam jurnal A Multilayer Neural Network System for
Computer Access Security oleh M.S. Obaidat, et al (1994)
Inputs
Output
Hidden
Gambar 15 Pemrosesan Di Satu Sel Neuron
Setiap koneksi antar sel mempunyai bobot W. Output O adalah fungsi f dari
perkalian bobot W dengan input V yang merupakan output dari sel neuron sebelumnya
yang dinyatakan sebagai berikut.
Bias diikutsertakan dalam penjumlahan dan diasumsikan bernilai 1. Namun, bias ini
bersifat pilihan atau bisa digunakan bisa tidak (Freeman, 1992, hal.105).
f adalah fungsi aktivasi dan yang sering digunakan adalah fungsi sigmoid :
Bobot W akan menentukan besarnya nilai output dan nilai bobot W selalu
berubah selama tahapan pembelajaran. Awalnya bobot diberi inisialisasi nilai acak pada
rentang nilai tertentu. Akhirnya setelah pembelajaran selesai, bobot W mencapai nilai
yang sedemikian rupa, sehingga untuk setiap input yang diberikan maka output bernilai
sesuai dengan pola pembelajaran yang telah dilakukan. Bobot W adalah pengetahuan
yang disimpan dalam JST sebagaimana halnya informasi yang disimpan dalam jaringan
syaraf otak.
Jumlah sel neuron di hidden layer akan menentukan jumlah bobot W yang dapat
disimpan. Beberapa literatur JST mengatakan bahwa :
• Jumlah sel neuron NH terlalu besar mengakibatkan training error menjadi
kecil, namun test error menjadi tinggi.
• Jumlah sel neuron NH terlalu sedikit berakibat training error menjadi tinggi
dan test error menjadi tinggi
Dengan mencari nilai optimum, yakni jumlah sel neuron NH tidak terlalu besar
atau terlalu kecil sedemikian rupa sehingga training error dan test error mencapai nilai
optimum yang cukup memadai. Jika jumlah sel neuron terlalu banyak akan berakibat
pada lamanya waktu pembelajaran dan pemakaian sumber daya memori serta
prosessor untuk proses komputasi (Penelitian Daw-Tung Lin, 1997).
2.6.3 Algoritme Pembelajaran JST Propagasi Balik
Algoritme JST Propagasi balik menggunakan metode training yang diarahkan
(Supervised Training). JST diarahkan dalam proses pembelajaran dengan nilai yang
diinginkan (target) sedemikian rupa sehingga JST akan melakukan perubahan bobot W
dan nilai output akan mendekati nilai target. Nilai kesalahan target dengan output
dinyatakan dalam persamaan berikut.
Nilai kesalahan pada hidden unit akan ditentukan secara berulang (rekursif) sedemikian
rupa oleh unit dan bobot lain yang saling berhubungan secara langsung sebagai berikut.
Fungsi f harus differensiabel dan dengan fungsi sigmoid dinyatakan dalam fungsi
sebagai berikut.
Nilai kesalahan akan menentukan perubahan bobot dalam persamaan berikut :
Laju pembelajaran (Learning rate ?) adalah parameter untuk menentukan seberapa
cepat JST mencapai nilai target yang diinginkan (Convergen). Laju pembelajaran
berupa konstanta atau variabel yang berubah setiap kali terjadi perulangan. Bila laju ini
terlalu besar, maka JST bisa terjebak ke dalam kondisi Local Minima yaitu suatu
keadaan dima na JST mengira sudah konvergen dengan tingkat kesalahan pelatihan
yang kecil, namun masih menghasilkan tingkat kesalahan pengujian yang besar.
Bobot W dalam JST disimpan dan akan dipanggil kembali saat dibutuhkan untuk
melakukan pengenalan pola.
2.7 Variabel Fuzzy
Metode yang populer digunakan dan banyak dibahas dalam beberapa penelitian
sebelumnya adalah Logika Kabur (Fuzzy Logic). Logika Fuzzy pertama kali
dikemukakan oleh Lotfi Zadeh yang mempunyai peranan penting dalam klasifikasi pola
bidang Biometrik, karena karakteristik utama Biometrik adalah adanya unsur yang
menyangkut aspek manusia secara fisiologis maupun perilaku yang bersifat kabur
(Fuzzy) sehingga sukar untuk direpresentasikan secara pasti (Crisp).
Variabel yang bersifat tegas (Crisp) menyatakan bahwa nilai keanggotaan suatu
item x dalam himpunan A (dinyatakan dengan simbol µA[x] ) hanya ada dua
kemungkinan nilai, yakni satu (anggota himpunan) dan nol (bukan anggota himpunan).
Sebagai contoh, kecepatan pengetikan seseorang dinyatakan dalam lima kategori
kecepatan sebagai berikut.
Sangat Cepat (SC) berkisar di antara 210 – 259 ms.
Cepat (C) berkisar di antara 260 – 299 ms.
Sedang (S) berkisar di antara 300 – 359 ms.
Lambat (L) berkisar di antara 360 – 419 ms.
Sangat Lambat (SL) berkisar di antara 420 – 499 ms.
Jika ada perubahan sedikit, sebagai contoh dari 259 ke 261 ms, maka berakibat
perbedaan kategori yang signifikan dan mengakibatkan perubahan keputusan akhir
yang signifikan juga.
Representasi dalam pemahaman bahasa alami (Natural Language), seperti
istilah cepat, sedang, dan lambat untuk tiap kebudayaan, lingkungan dan faktor kondisi
manusia bersifat sangat relatif. Untuk kasus penelitian ini, faktor perbedaan piranti keras
keyboard atau faktor kondisi pengguna bisa berpengaruh terhadap ketepatan
keputusan akhir sehingga variabel kecepatan akan susah sekali bila direpresentasikan
dalam bentuk tegas (Crisp).
Himpunan Fuzzy dapat digunakan untuk mengantisipasi hal tersebut. Kecepatan
pengetikan seseorang dapat masuk ke dalam dua himpunan yang berbeda. Sebagai
contoh, Sangat Cepat (SC) dan Cepat (C) dengan masing-masing mempunyai nilai
fungsi keanggotaan yang berbeda (rentang 0 hingga 1). Apabila bernilai 0, maka x tidak
menjadi anggota himpunan dan bila bernilai 1, maka x menjadi anggota penuh
himpunan.
Nilai keanggotaan Fuzzy tidak sama dengan probabilitas walaupun keduanya
mempunyai rentang yang sama 0 hingga 1. Keanggotaan Fuzzy menyatakan ukuran
terhadap pendapat atau keputusan sedangkan probabilitas menyatakan proporsi
terhadap frekwensi sesuatu bernilai benar untuk jangka yang panjang.
Himpunan Fuzzy mempunyai dua atribut, yakni :
a. Atribut Linguistik : Nama yang mewakili suatu keadaan. Sebagai contoh, Sangat
Cepat, Cepat, Sedang, Lambat, Sangat lambat.
b. Atribut Numeris : Nilai yang menunjukkan ukuran dari variabel tersebut.
2.7.1 Mengapa Digunakan Variabel Fuzzy
Variabel Fuzzy mempunyai banyak keunggulan dalam representasi data
dibandingkan variabel dalam bentuk tegas (crisp). Data yang diperoleh dari karakteristik
pengetikan merupakan karakteristik perilaku yang tidak tegas. Adanya beberapa
penyimpangan akibat faktor perilaku dan lingkungan mengakibatkan sukar untuk ditarik
batas yang tegas. Dalam kasus ini variabel Fuzzy memberikan representasi yang lebih
sesuai dibandingkan representasi dalam himpunan yang tegas.
2.7.2 Struktur Himpunan Fuzzy, Semesta Pembicaraan, Domain dan Fungsi
Keanggotaan
Definisi variabel Fuzzy merujuk pada variabel yang digunakan yakni variabel
waktu. Himpunan Fuzzy adalah grup yang mewakili kondisi yang dibagi menjadi 5
himpunan, yakni : Sangat Cepat (SC), Cepat (C), Sedang (S), Lambat (L), Sangat
Lambat (SL)
Fungsi keanggotaan (membership function) adalah fungsi yang menunjukkan
pemetaan titik input data ke dalam nilai keanggotaan (Degree of membership) yang
memiliki interval 0 hingga 1. Bisa dikatakan tidak ada standar resmi dalam pemilihan
representasi bentuk fungsi keanggotaan dan sangat bergantung pada ruang lingkup dan
karakteristik tiap permasalahan. Namun merujuk pada penelitian sebelumnya (Sajjad
Haider et al, 2000), maka bentuk fungsi keanggotaan yang digunakan adalah fungsi
keanggotaan segitiga.
BAB III
METODOLOGI
Kerangka Pemikiran
Metodologi penelitian ini menggunakan kerangka pemikiran dalam diagram
sebagai berikut.
Gambar 16 Diagram Alur Kerangka Pemikiran
Kerangka pemikiran tersebut telah dilaksanakan dalam gambar sebagai berikut.
Gambar 17 Tahapan Pelaksanaan Penelitian
Garis besar pelaksanaan penelitian dijelaskan sebagai berikut.
a. Penelitian pendahuluan, studi pustaka dan riset jurnal yang bertujuan
untuk merumuskan masalah/tujuan, rancang bangun aplikasi dan
rencana percobaan. Ada tiga aspek yang dilakukan, yakni :
i. Penelitian pengambilan data dan pemecahan masalah yang
berkaitan dengan pemrograman. Hasilnya digunakan dalam
rancang bangun aplikasi pengambilan data.
ii. Penelitian analisis pasangan karakter dominan bahasa Indonesia.
Hasilnya digunakan sebagai basis data kosa kata yang digunakan
dalam rancang bangun aplikasi pengambilan data.
iii. Studi pustaka untuk menentukan rancang bangun parameter
kelas dan fungsi keanggotaan fuzzy dan parameter/arsitektur JST.
Hasilnya digunakan dalam rancang bangun aplikasi analisis data.
b. Rancang bangun aplikasi , yang bertujuan untuk merancang tampilan
antar muka, variabel dan tabel basis data dan meliputi langkah-langkah
pemrograman, debugging, pemecahan masalah dan penulisan kode
dalam bahasa MS Visual C#. Aplikasi yang dibangun adalah :
i. Aplikasi pengambilan data yang bertujuan sebagai alat bantu
pengambilan data Biometrik penekanan kunci sesuai dengan
tujuan dan ruang lingkup penelitian ini. Tanpa aplikasi ini, maka
penelitian tidak bisa diselesaikan.
ii. Aplikasi analisis data yang bertujuan sebagai alat bantu untuk
mempermudah melakukan analisis data dan melaksanakan
percobaan. Tanpa aplikasi ini, maka hasil kesimpulan penelitian
tidak bisa diperoleh.
iii. Keterkaitan kedua aplikasi tersebut tidak ada. Proses konversi log
masih dilakukan secara manual dari text ke MS Excell ke MS
Access.
iv. Bahasa yang digunakan MS Visual Studio.NET 2003 C#. Jenis
aplikasi adalah Windows Form dalam bentuk Managed Code
dengan .NET Framework 1.1.
c. Ujicoba pengambilan data, yang meliputi :
i. Ujicoba pada diri sendiri.
ii. Ujicoba pada orang lain dengan cara mendistribusikan aplikasi
dalam bentuk CD dan disertai petunjuk pelaksanaannya. CD yang
didistribusikan sebanyak 10 buah dan responden yang berminat
membantu pengambilan data sebanyak 4 orang.
d. Analisis data dan perancangan percobaan
i. Analisis data yang dilakukan meliputi proses statistik untuk
menghitung nilai minimum, maximum, median, modus, rata-rata
dan simpangan dari keseluruhan data yang diperoleh dari tiap
pengguna. Analisis data dilakukan menggunakan MS Excell. Hasil
analisis data akan digunakan dalam aplikasi analisis data.
ii. Perancangan percobaan yang berkaitan dengan aplikasi
pengambilan data, yakni :
1. Percobaan pengaruh perangkat keras;
2. Percobaan pengaruh pengulangan pengambilan data;
3. Percobaan kemampuan verifikasi dengan data eksklusif.
iii. Perancangan percobaan yang berkaitan dengan aplikasi analisis
data, yakni :
1. Penyusunan batas kelas fungsi keanggotan Fuzzy
(percobaan pelengkap);
2. Pembuatan dua model data pelatihan JST yang
dinamakan model A dan B (percobaan pelengkap);
3. Percobaan untuk melihat pengaruh model A dan B, yakni
berupa uji identifikasi, uji penyusupan, pengaruh %FRR
dengan ambang keputusan.
e. Pengambilan kesimpulan yang diperoleh dari hasil akhir aplikasi analisis
data dilanjutkan dengan proses statistik yang dinyatakan dalam nilai %
FRR dan % FAR. Hasil akhir berupa pembahasan kesimpulan dan saran-
saran perbaikan untuk penelitian lebih lanjut.
Tata Laksana
Alat Bantu Penelitian
Alat bantu yang digunakan meliputi :
Alat Bantu Pengembangan Perangkat Lunak dan Basis Data
MS Visual C# Versi 2003, MS Access 2003.
Alat Bantu Analisis dan Simulasi Data
MS Office Excel 2003, TextAnalysisTool.NET.
Alat Bantu Perangkat Keras
PC Desktop Intel Pentium IV 2.4 GHz RAM 1 GB
Notebook Compaq nx6125 AMD Turion64 2.19 GHz RAM 1.8 GB
Waktu dan Tempat Pelaksanaan
Penelitian telah dilaksanakan sebagai berikut.
1. Waktu : Januari hingga April 2006.
2. Tempat : Jakarta dan Bogor.
Data Penelitian
Data berasal dari 5 orang dengan jumlah keseluruhan 15 data, sebagai berikut.
a. Lama pengumpulan tiap data : 1 sampai dengan 2 jam.
b. Pengulangan data terbanyak 5 x (wningsih), 4 x (abudiman), dan 2 X
(risantod,syafii,mahyus).
c. Interval pengulangan dari 5 hari sampai dengan 57 hari tanpa adanya proses
latihan.
d. Pengambilan data menggunakan piranti keras: 2 model desktop dan 4 model
notebook yagn berbeda.
Tabel 4 Nama, Jenis Dan Sumber Data Penelitian
No. Nama Data Jenis Data Sumber Data
1. Digraf yang diperluas. Dalam tiga
variabel durasi (d), interkey (i) dan
total (T) per pasangan (2 karakter)
berturutan.
Primer
Numerik
Besaran
waktu (ms)
Pengukuran dan
Percobaan Lapangan
2. Data Kosakata dalam himpunan kata
pendek bermakna
Primer
String
Observasi dan Analisis
3. Bobot dalam bilangan nyata Primer
Numerik
Hasil komputasi
pelatihan JST
4. Nilai Keanggotaan Fuzzy
dalam bilangan nyata (0 hingga 1).
Tiap d, i dan T dalam 5 kelas fungsi
keanggotaan segitiga/trapesium.
Primer
Numerik
Analisis Data hasil
pengukuran
5. Output Verifikasi dalam bilangan
nyata (0 hingga 1). Ambang batas
0,75 atau 0,5.
Primer
Numerik
Komputasi pengolahan
JST
6. Kondisi Psikologis berupa pertanyaan
kualitatif : Apakah anda cukup tidur ?
Apakah anda merasa letih ?
Sekunder
Pilihan
Berganda
Pertanyaan
Ketrampilan pengetikan saat ini ?
(mahir, sedang, kurang)
7 Waktu pengambilan data Sekunder Tanggal/Jam
Rancangan Percobaan
Metode Percobaan
Percobaan dilaksanakan dengan tahapan metode sebagai berikut.
1. Program aplikasi pengambilan data diberikan pada peserta uji untuk diinstall dan
dijalankan.
2. Peserta uji diberi tugas untuk mengetikan kata-kata yang muncul dalam aplikasi
dengan benar. Setiap kata muncul secara acak sebanyak 5 kali untuk diketik
dengan benar.
3. Perekaman waktu dan kondisi selama pengambilan data disimpan dalam file
teks.
4. Perekaman waktu untuk tiap variabel d, i dan T selama pengetikan disimpan
dalam bentuk file-file teks dalam bentuk uraian pasangan karakter untuk tiap
kata. Beberapa file dipisahkan dan hanya digunakan sebagai data uji serta tidak
dilibatkan dalam pembuatan data pelatihan.
5. Data hasil perekaman waktu untuk tiap variabel d, i dan T keseluruhan disaring
berdasarkan pasangan karakter yang telah ditentukan dan kemudian dilakukan
analisis statistik untuk memperoleh nilai minimum, maximum, median, modus,
rataan aritmatik±simpangan baku ditambah data komplemen untuk data
pelatihan JST. Sedangkan keseluruhan 100% data digunakan sebagai data uji.
6. Membangun model data pelatihan dalam dua bentuk model. Model A
menggunakan dua nilai target yakni 0 (SALAH) dan 1 (BENAR). Sedangkan
model B menggunakan tiga nilai target yakni 0 (SALAH), dan 1 (BENAR) serta
0,5 (MUNGKIN).
7. Jaringan Syaraf Tiruan melakukan pelatihan untuk tiap model data pelatihan dan
menyimpan data bobot yang disusun untuk tiap pasangan karakter yang meliputi
tiap variabel d, i dan T untuk masing-masing pengguna dalam basis data
berbeda.
8. JST dengan data bobot hasil pelatihan untuk tiap pasangan karakter untuk
masing-masing variabel d, i dan T pengguna yang bersangkutan akan digunakan
untuk verifikasi dan dihitung hasil keluarannya. Bila hasil keluaran berada di atas
ambang batas (0,5 atau 0,75) berarti verifikasi benar dan bila di bawah ambang
batas berarti verifikasi salah. Keseluruhan berapa persentase verifikasi yang
salah padahal seharusnya benar menyatakan nilai FRR (False Rejection Rate) .
9. Pertukaran data uji antar pengguna, sebagai contoh, data uji pengguna 1 akan
digunakan untuk menguji JST bobot pengguna 5. Bila hasilnya berada di atas
ambang batas berarti verifikasi salah dan bila di bawah berarti verifikasi benar.
Keseluruhan berapa persentase verifikasi yang benar padahal seharusnya salah
menyatakan nilai FAR (False Acceptance Rate). Dalam kasus penyusupan
berlaku rumus % FRR = 1- % FAR
Secara garis besar, percobaan yang dilakukan adalah sebagai berikut.
1. Percobaan untuk melihat pengaruh perbedaan perangkat keras.
2. Percobaan untuk melihat pengaruh pengulangan pengambilan data.
3. Percobaan untuk melihat kemampuan verifikasi data eksklusif.
4. Percobaan untuk melihat Pengaruh Model Pelatihan A dan B, sebagai berikut.
• Uji Identifikasi, Uji penyusupan, Pengaruh %FRR - ambang keputusan.
Percobaan Pelengkap
Percobaan pelengkap adalah percobaan yang dilakukan dengan tujuan untuk
memberikan penalaan pada rancang bangun sistem untuk menunjang percobaan
utama. Hal ini merupakan penyesuaian/penalaan variabel yang digunakan oleh sistem
sehingga bisa digunakan dalam percobaan utama dengan hasil yang baik.
Percobaan yang dilakukan sebagai berikut.
1. Analisis statistik untuk menentukan rentang parameter yang digunakan untuk
tiap kelas Fuzzy SC, C, S, L dan SL.
2. Percobaan untuk menentukan parameter yang digunakan dalam jaringan syaraf
tiruan yakni laju pembelajaran, jumlah iterasi epoch, dan penyusunan model data
pelatihan A dan B berdasarkan analisis statistik.
BAB IV
RANCANG BANGUN SISTEM
4.1. Dasar Pemikiran Perancangan
Prinsip dasar yang digunakan dalam perancangan sistem verifikasi sebagai
berikut.
1. Sederhana (kecepatan tanggap).
Sistem harus sederhana sehingga kecepatan tanggap cukup layak diterima.
Berdasarkan hal tersebut, maka dalam rancang bangun sistem dilakukan upaya
penyederhanaan sebagai berikut.
• Penelitian pendahuluan sebagai acuan untuk menentukan daftar
kosakata dan pasangan karakter dominan dalam bahasa Indonesia
sehingga tidak diperlukan 26x26 kemungkinan pasangan karakter.
• Arsitektur JST yang sama untuk tiap variabel d, i dan T dengan 5 sel
input, 3 sel antara dan 1 sel output.
• Data pelatihan JST berjumlah tetap 15 (hasil analisis statistik) untuk tiap
pasangan karakter yang ditentukan.
• Variabel Fuzzy sebagai pengolahan awal dengan fungsi keanggotaan
segitiga dan trapesium untuk 5 kelas dengan 7 kemungkinan pola.
• Penyaringan data yang masuk (filtrasi) dengan kriteria sah bila lulus cek
urutan pengetikan tombol, cek kesesuaian karakter yang diketik, cek
lama waktu dari kata muncul hingga selesai tidak lebih dari 15 detik.
2. Akurasi (Ketepatan tanggap) dinyatakan dalam % FRR.
4.2. Perancangan Model Data
4.2.1. Perancangan Data Kosakata (Vocabulary)
Rancangan ini mengacu pada penelitian pendahuluan lampiran 1. Dari 756 kata
bermakna tumbuhan, hewan, tempat dan perkakas yang dipilah-pilah berdasarkan
kandungan pasangan karakter dominannya, yakni :
1. Pasangan karakter an, ng, la, en, dan ka;
2. Pasangan karakter yang letaknya pada kwadran kelompok (cluster) yang sama :
a. ng, ba, ma, na, nd;
b. an, am, ab;
c. su, au, ay, gu, di, du, gi, ai;
d. pa, is, ia, ya, ua, us;
e. ri, ti, ru, tu, ro, to,ep.
Sehingga keseluruhan diperoleh tabel kata-kata bahasa Indonesia sebagai
berikut.
Tabel 5 Daftar Kosakata
Masing-masing kata akan muncul sebanyak 5 kali kesempatan secara acak.
Indeks 1 hingga 51 digunakan dalam analisis statistik untuk membuat data pelatihan dan
pengujian sedangkan sisanya (kata topeng, kantong, ganggang) digunakan hanya untuk
data pengujian dan tidak diikutkan dalam data pelatihan/dipisahkan (eksklusif ).
Ke-51 kata yang digunakan dalam pelatihan mengandung pasangan karakter :
Tabel 6 Daftar Kandungan Pasangan Karakter Dari 51 Kata
Sedangkan tiga kata sisanya (topeng, kantong dan ganggang) mempunyai
kandungan pasangan karakter an, en, ka, ng dan to yang digunakan untuk menguji data
bobot pelatihan JST untuk tiap pasangan karakter yang bersesuaian. Data pasangan
karakter to digunakan sebagai data uji terhadap hasil pelatihan bobot ri-ti-ru-tu-ro-ep
karena to berada dalam kelompok (cluster) yang sama dengan ri-ti-ru-tu-ro-ep.
Tabel 7 Hubungan Bobot JST Dengan Uji Data Eksklusif
4.2.2. Model Data Variabel Input
Data input dinyatakan dalam besaran waktu untuk tiap variabel durasi (d),
interkey (i) dan Total (T) untuk uraian tiap pasangan karakternya. Nilai besaran tersebut
dikonversi oleh proses fuzzifikasi sehingga menghasilkan 5 nilai kelas fungsi
keanggotaan Fuzzy untuk tiap variabelnya.
4.2.3. Model Data Output
Bilangan nyata dari 0 hingga +1 diperoleh untuk tiap variabel d, i dan T. Ambang
batas pemisah adalah 0,50 dan 0,75 yang digunakan untuk menghitung hasil % FRR.
4.2.4. Perancangan Variabel Fuzzy
Variabel fungsi keanggotaan Fuzzy ditentukan setelah hasil pengumpulan data
diperoleh. Hasil analisis data statistik yang berasal dari 5 pengguna berbeda, yakni
Abudiman, Wningsih, Syafii, Risantod dan Mahyus (1140 pasangan karakter x 5)
dinyatakan dalam grafik histogram dan dijadikan dasar untuk membangun semesta
pembicaraan himpunan Fuzzy untuk masing-masing variabel d, i dan T. Semesta
pembicaraan berada didaerah interval waktu dengan banyak frekwensi kejadian
(kepadatan frekwensi kejadian). Bila semesta pembicaraan terlalu luas, maka
pembagian rentang pengklasifikasi Fuzzy terlalu luas sehingga hasil keseluruhan akan
berpengaruh terhadap ketelitian sistem. Keseluruhan grafik ada dalam lampiran 2.
Grafik VARd menentukan batas variabel d adalah 50 ms dan 300 ms. Grafik VARi untuk
variabel i adalah 75 ms dan 700 ms. Grafik VART untuk variabel T adalah 125 ms dan
1000 ms. Pemilihan angka juga mengacu pada pemilihan angka bulat terdekat untuk
menyederhanakan fungsi matematis dalam pemrograman.
Gambar 18 Hubungan Histogram Dengan Batas Kelas Fuzzy
Bentuk fungsi keanggotaan mengacu pada penelitian Sajjad Haider, et al (2000)
yang menggunakan bentuk fungsi keanggotaan segitiga dan ditambah sedikit modifikasi
pada kelas Fuzzy paling akhir yakni SL berupa fungsi trapesium. Kelebihannya adalah
jumlah kemungkinan pola yang dihasilkan oleh 5 kelas fungsi keanggotaan bisa
memberikan sebanyak 7 kemungkinan pola sebagai berikut.
Gambar 19 Tujuh Kemungkinan Pola Dari 5 Kelas Fuzzy
4.2.5. Model Data Pelatihan Jaringan Syaraf Tiruan
Kepintaran JST sangat ditentukan oleh kualitas data pelatihannya yakni berupa
pasangan input dan target output untuk setiap pasangan karakter. Input variabel d, i,
dan T hasil fuzzifikasi untuk tiap kelas (Lima kelas) fungsi keanggotaan, dan target nilai
output yang diinginkan (BENAR/1). Data pelatihan yang dipilih berasal dari nilai
minimum (MIN), nilai maximum (MAKS), nilai median (MED), nilai modus (MOD), rataan
aritmetik (MEAN), rataan aritmetik ditambah simpangan baku (MEAN+SD) dan rataan
aritmetik dikurangi simpangan baku (MEAN-SD) dari keseluruhan populasi data
pasangan karakter bersesuian yang dikumpulkan untuk masing-masing pengguna.
Data pelatihan yang baik haruslah mempunyai data komplemen dengan nilai
target output yang berbeda (SALAH/0). Untuk itu disusun data komplemen dengan
target output bernilai 0. Dalam percobaan juga akan dilakukan variasi penyusunan data
pelatihan lain dengan penetapan target output bernilai 0,5 yang bermakna MUNGKIN.
Himpunan data komplemen disusun sedemikian rupa sehingga mengacu pada 7
kemungkinan pola input yang masuk sebagai berikut.
Tabel 8 Penyusunan Data Komplemen Untuk Variabel d, i Dan T
Penelitian ini menggunakan dua macam model data pelatihan, sebagai berikut.
1. Model A, dengan ketentuan sebagai berikut.
a. Bila MIN, MAKS, MED,MOD, MEAN, MEAN+SD,MEAN-SD, maka target
sama dengan +1.
b. Data komplemen, dengan ketentuan sebagai berikut.
i. Bila MIN < x < MAKS, maka target sama dengan +1.
ii. Bila x < MIN atau x > MAKS, maka target sama dengan 0.
2. Model B, dengan ketentuan sebagai berikut.
a. Bila MIN,MAKS, maka target sama dengan 0,5.
b. Bila MED,MOD,MEAN,MEAN+SD,MEAN-SD, maka target sama dengan
+1.
c. Data komplemen, dengan ketentuan sebagai berikut.
i. Bila MIN< x < (MEAN-SD) atau (MEAN+SD) <x< MAKS, maka
target sama dengan 0,5.
ii. Bila x < MIN atau x > MAKS, maka target sama dengan 0.
iii. Bila (MEAN-SD) < x < (MEAN+SD), maka target sama dengan +1.
Keseluruhan model data pelatihan bisa dilihat dalam lampiran 3. Model A dilatar
belakangi keinginan untuk memberikan jawaban BENAR/SALAH (bersifat
tegas/crispy) sedangkan Model B bertujuan untuk memberikan alternatif jawaban
ketiga yakni MUNGKIN BENAR (bersifat berarti dua/ambiguity).
Konsekwensi penyusunan bentuk model data pelatihan tersebut adalah adanya
nilai target yang bersifat paradoks (bertentangan satu dengan lainnya) untuk suatu pola
nilai masukan Fuzzy yang sama.
Tabel 9 Contoh Nilai Target Yang Bertentangan (Paradoks)
Data pelatihan dengan nilai target yang bertentangan (paradoks) pada var i =
700 (kelas SL=1) dengan target = 1 dan var i =1000 (kelas SL=1) dengan target = 0.
Akibatnya, pada hasil verifikasi JST (gambar 20) adalah suatu nilai baru di tengah nilai
target yang diinginkan (0 atau 1). Ini diakibatkan bobot JST selama melakukan epoch
pelatihan mengalami pergerakan naik-turun. Naik saat menerima target = 1 untuk input
SL=1 dan kemudian harus turun kembali (dikoreksi) saat menerima target = 0 untuk
input yang sama dan demikian seterusnya hingga pelatihan selesai dan bobot berada di
kisaran daerah keseimbangan di tengah-tengah.
Gambar 20 Hasil Verifikasi Akibat Data Pelatihan Yang Paradoks
Hasil verifikasi data an oleh bobot an (pelatihan A, eta = 0,1 dan epoch = 1000)
4.2.6. Penentuan Parameter Jaringan Syaraf Tiruan
Berdasarkan referensi beberapa penelitian yang dilakukan oleh Sajjad Haider, Daw-
Tung Lin, dan Obaidat serta studi literatur tentang jaringan syaraf tiruan, maka
ditentukan sebagai berikut.
1. Algoritme pembelajaran yang digunakan adalah algoritme propagasi balik
dengan laju pembelajaran (eta) tetap (konstan);
2. Jumlah lapisan antara (hidden layer) adalah 1 dan jumlah lapisan keseluruhan
adalah 3 lapisan;
3. Jumlah sel pada lapisan antara adalah 3 unit; sel pada lapisan input adalah 5
unit dan sel pada lapisan output adalah 1 unit;
4. Inisialisi bobot awal berupa bilangan acak dengan nilai -1 hingga +1;
5. Fungsi aktivasi yang digunakan adalah fungsi aktivasi sigmoid;
6. Tidak menggunakan unit bias (lampiran 5);
Untuk menentukan besarnya parameter laju pembelajaran (learning rate/eta) dan
jumlah epoch, maka perlu dilakukan percobaan terhadap aplikasi Analisis Data JST
yang telah dibuat. Penelitian dilakukan untuk melihat pengaruh variasi jumlah
pembelajaran dan akibatnya terhadap hasil verifikasi sebagai berikut.
errore
epoch
Rate 0.1
errore
epoch
Rate 0.1
errore
epoch
Rate 0.1
errore
epoch
Rate 0.1
Gambar 21 Grafik Hubungan Laju Pembelajaran Dengan Penurunan Kesalahan
Penurunan kesalahan untuk tiap laju pembelajaran pada model data pelatihan A (kiri)
dan model pelatihan B (kanan) pada su-au-ay-gu-di-du-gi-ai untuk variabel d (atas),
variabel i (tengah) dan variabel T (bawah)
Grafik tersebut sesuai dengan studi literatur Jaringan Syaraf Tiruan tentang laju
pembelajaran, yakni pemilihan laju pembelajaran yang terlalu kecil (0.01 atau 0.05)
akan membutuhkan jumlah epoch yang lebih banyak untuk mencapai tingkat
kesalahan yang diinginkan. Namun, bila laju pembelajaran terlalu besar dapat
berakibat terlalu cepat mencapai tingkat kesalahan yang berakibat terjebak ke dalam
fenomena local minima. Walaupun dalam kasus penelitian ini, dengan jumlah epoch
hingga mencapai 2000X tidak ditemukan fenomena tersebut. Ini disebabkan oleh
model data pelatihan yang sudah disusun rapi dengan proses statistik dan
keberadaan data komplemen sehingga sistem bisa mencapai konvergensi dengan
baik. Berdasarkan hasil ini diputuskan untuk menggunakan laju pembelajaran 0,1
sebagai parameter acuan penelitian ini.
Grafik dibawah ini menjelaskan alasan pemilihan jumlah epoch yang digunakan.
errore
epoch
Rate 0.1 Rate 0.1
errore
epoch
Gambar 22 Grafik Hubungan Laju Kesalahan Dengan Model Pelatihan A dan B
Laju penurunan kesalahan untuk model data pelatihan A dan B untuk pasangan
karakter su-au-ay-gu-di-du-gi-ai untuk variabel d, i dan T dengan eta = 0,1
Gambar 22 memperlihatkan fenomena titik balik dengan laju kesalahan model
data A yang awalnya lebih tinggi daripada model B menjadi berbalik arah sehingga
lebih rendah. Pengambilan epoch yang terlalu kecil mengakibatkan sistem
mempunyai tingkat kesalahan yang lebih besar sedangkan secara umum bisa dilihat
bahwa epoch diatas 1000 cenderung mempunyai laju penurunan kesalahan yang
lebih kecil sehingga jumlah epoch yang terlalu besar menjadi tidak efisien (karena
menghasilkan laju penurunan kesalahan yang tidak berarti). Berdasarkan hasil ini,
maka digunakan epoch = 1000 sebagai parameter acuan penelitian ini. Walaupun
model data pelatihan B cenderung memberikan kesalahan yang lebih besar daripada
model data pelatihan A sehingga membutuhkan jumlah epoch yang lebih banyak
untuk mencapai tingkat kesalahan yang sama.
Gambar 23 memperlihatkan pengaruh tingkat kesalahan (jumlah epoch)
terhadap keakuratan verifikasi. Tingkat kesalahan yang semakin kecil membuat JST
memberikan output yang semakin mirip dengan data pelatihannya. Semakin banyak
jumlah epoch, maka cenderung akan menurunkan tingkat kesalahan tersebut.
Gambar 23 Pengaruh Tingkat Kesalahan (Jumlah Epoch) Terhadap Verifikasi
Hasil verifikasi data an terhadap bobot an untuk variabel d
(Model pelatihan B; eta = 0,1; jumlah epoch = 1000 (kiri) dan 2000 (kanan)
Gambar 23, walaupun dengan peningkatan jumlah epoch 2X lipat, namun tidak
memberikan kontribusi yang berarti terhadap persentase hasil verifikasi sistem
karena menggunakan batas ambang keputusan yang longgar (0,75) kecuali bila
menghendaki batas yang sangat ketat sekali (0,99), maka akan menunjukkan
perbedaan yang signifikan.
4.3. Perancangan Prototipe Aplikasi
Penelitian ini membutuhkan dua macam aplikasi, sebagai berikut.
1. Aplikasi Pengambilan Data Biometrik Penekanan Kunci Dinamik.
2. Aplikasi Analisis Data Fuzzy-Jaringan Syaraf Tiruan.
4.3.1. Aplikasi Pengambilan Data Biometrik Penekanan Kunci Dinamik
Aplikasi ini bertujuan sebagai alat untuk pengambilan data Biometrik penekanan
kunci dinamik yang melakukan perekaman waktu pada saat tombol ditekan dan pada
saat tombol dilepas. Output yang dihasilkan berupa log file yang berisi data perekaman
waktu dalam variabel d, i dan T untuk tiap kata yang diketik. Disertai juga dengan
informasi sekunder mengenai faktor psikologis saat pengetikan, tanggal dan jam serta
sedikit informasi tentang sistem komputer yang digunakan.
Keseluruhan cara kerja dan diagram aliran dapat dilihat dalam diagram aliran
data sebagai berikut.
0
0.2
0.4
0.6
0.8
1
140.
63
156.
25
171.
88
171.
88
171.
88
171.
88
171.
88
187.
50
187.
50
187.
50
187.
50
203.
13
203.
13
203.
13
218.
75
218.
75
234.
38
0
0.2
0.4
0.6
0.8
1
171.
88
203.
13
171.
88
187.
50
156.
25
187.
50
187.
50
171.
88
171.
88
218.
75
187.
50
171.
88
218.
75
187.
50
171.
88
203.
13
218.
75
Gambar 24 Diagram Alir Aplikasi Pengambilan Data
Aplikasi Pengambilan Data ini terdiri dari 3 bagian utama dalam program, yakni :
1. Bagian pengambilan data yang menerima data lingkungan percobaan yang
dipilih pengguna dan event dari pengetikan yang dilakukan pengguna (event
interrupt dari keyboard ) dengan dua kondisi yakni MyKeyUP atau MyKeyDOWN;
2. Bagian pemeriksaan dan perekaman data yang melakukan pengecekan
terhadap hasil event interrupt dan pencatatan waktu tekan dan waktu lepas serta
penghitungan waktu (timespan). Pengecekan yang dilakukan meliputi
pengecekan urutan penekanan, pengecekan karakter dan pengecekan interval
waktu dari kata muncul hingga kata selesai diketik. Jika ada kesalahan, maka
pesan kesalahan ditampilkan dan pengguna harus memulai kembali dari awal.
Jika selesai, maka pesan SELESAI muncul dan dilakukan penyimpanan ke file
log dan kembali ke pemilihan kata berikutnya.
Bagian Pengambilan Data
Bagian Pemeriksaan Dan Perekaman Data
Bagian Pemilihan Kata
3. Bagian pemilihan kata untuk ditampilkan yang berfungsi untuk menampilkan
kata-kata yang ada didalam basis data kosakata.mdb dengan pemilihan indeks
kata secara acak oleh waktu. Jika menerima pesan SELESAI, maka counter kata
yang bersangkutan akan dikurangi 1 dan kembali ke proses pemilihan kata
berikutnya dan seterusnya hingga semua counter kata bernilai 0.
Gambar 25 Tampilan Pengguna Aplikasi Pengambilan Data
Secara lengkap tiap bagian utama dijelaskan sebagai berikut.
Komponen utama dalam bagian pengambilan data adalah UserActivityHook.cs.
Komponen ini merupakan Komponen Kelas yang dibuat oleh George Mamaladze
dari http://www.codeproject.com/csharp/globalhook.asp tahun 2004 untuk Visual
C#.NET. Kelas ini memungkinkan mengambil event yang dibangkitkan oleh
keyboard (KeyEventArgs) dan Mouse (MouseEventArgs). Keyboard bisa
menghasilkan suatu event kapan tombol ditekan dan kapan tombol dilepas. Kelas ini
menggunakan komponen file application extension user32.dll dan bisa memecahkan
masalah urutan pengetikan.
Untuk menjalankan komponen ini, maka terlebih dulu menjalankan fungsi start
(actHook.Start()) sehingga fungsi keyboard dan mouse akan dikait (hook) ke dalam
komponen ini sebelum diterima oleh aplikasi lain. Untuk melepasnya kembali dengan
fungsi stop (actHook.Stop()). Teknik ini sama dengan teknik yang digunakan oleh
aplikasi keyboard Logger.
Proses kerja dalam bagian pemeriksaan dan perekaman data dimulai setelah
dilakukan hook, maka aplikasi akan menunggu event adanya penekanan tombol.
Tombol yang ditekan akan membangkitkan event MyKeyDown dan saat event ini
dihasilkan akan menjalankan fungsi untuk menangkap waktu (DateTime dtdown =
DateTime.Now) dan meneruskan string untuk dilakukan pengecekkan urutan
(checkorder(e.KeyData.ToString(),0)). Pada saat ini belum dilakukan pengecekkan
karakter karena menunggu event berikutnya yakni saat tombol dilepas dan
menghasilkan event MyKeyUp. Ketika event ini terjadi, maka akan kembali
menjalankan fungsi untuk menangkap waktu (DateTime dtup = DateTime.Now;)
dan dilanjutkan dengan pengecekkan urutan (checkorder(e.KeyData.ToString(),1);)
serta pengecekkan karakter (checkchar(e.KeyData.ToString(),counterc);) agar
karakter yang diketik sesuai dengan kata yang muncul. Kemudian dilakukan
perhitungan waktu dengan timespancal(), penjelasan dalam kutipan kode sebagai
berikut.
public void MyKeyDown(object sender, KeyEventArgs e) { DateTime dtdown = DateTime.Now; lbltime.Text = dtdown.ToString(); lblmsdown.Text = dtdown.TimeOfDay.ToString(); lbdebugging.Text = "KeyDown - " + e.KeyData.ToString(); checkorder(e.KeyData.ToString(),0); } public void MyKeyUp(object sender, KeyEventArgs e) { DateTime dtup = DateTime.Now; lbltime.Text = dtup.ToString(); lblmsup.Text = dtup.TimeOfDay.ToString(); lbdebugging1.Text = "KeyUp - " + e.KeyData.ToString(); checkorder(e.KeyData.ToString(),1); checkchar(e.KeyData.ToString(),counterc); if (counterc == 0) { lblbefore.Text = lblbefore.Text+ e.KeyData.ToString(); lblbeforedown.Text=lblmsdown.Text; lblbeforeup.Text=lblmsup.Text; lblswap.Text=lblbefore.Text; lblswapdown.Text=lblbeforedown.Text; lblswapup.Text=lblbeforeup.Text; } else { lblbefore.Text = lblswap.Text+ e.KeyData.ToString(); lblbeforedown.Text=lblswapdown.Text; lblbeforeup.Text=lblswapup.Text; lblswap.Text=e.KeyData.ToString(); lblswapdown.Text=lblmsdown.Text;
lblswapup.Text=lblmsup.Text; } timespancal(); checkdurationtyping(); savetextlog(); counterc ++; } Format yang diinginkan untuk perhitungan waktu dan penyimpanan adalah
dalam bentuk tiap pasangan karakter yang saling berurutan, sebagai contoh, jika
mengetik ang, maka perhitungan yang diinginkan adalah untuk pasangan an dulu
dan kemudian diikuti dengan pasangan ng. Ini dilakukan dengan menggunakan
temporary swap variable (berbentuk text label ) untuk menyimpan informasi karakter
yang ditekan, waktu tombol ditekan dan waktu tombol dilepas. Penjelasan dalam
diagram status sebagai berikut.
Gambar 26 Diagram Status Penguraian Pasangan Karakter Berurutan
Counterc=0 menunjukkan awal kata. Karakter yang didapat ditampung dalam variabel
lblbefore (status 1) dan variabel lblswap (status 2). Kemudian pada karakter berikutnya
yang diketik, variabel lblbefore akan menerima kopi dari nilai lblswap (status 3) dan nilai
lblswap akan diisi oleh karakter baru yang masuk (status 4). Perhitungan waktu
diperoleh dari selisih lblswap dengan lblbefore. Pada counterc=0, maka selisih tersebut
sama dengan 0 dan berikutnya selalu sama dengan lblswap – lblbefore.
Penjelasan dalam kutipan kode sebagai berikut. if (counterc == 0) { lblbefore.Text = lblbefore.Text+ e.KeyData.ToString(); lblbeforedown.Text=lblmsdown.Text; lblbeforeup.Text=lblmsup.Text; lblswap.Text=lblbefore.Text;
lblswapdown.Text=lblbeforedown.Text; lblswapup.Text=lblbeforeup.Text; } else { lblbefore.Text = lblswap.Text+ e.KeyData.ToString(); lblbeforedown.Text=lblswapdown.Text; lblbeforeup.Text=lblswapup.Text; lblswap.Text=e.KeyData.ToString(); lblswapdown.Text=lblmsdown.Text; lblswapup.Text=lblmsup.Text; }
Perhitungan waktu untuk mendapatkan variabel d, I dan T dilakukan dengan
fungsi timespancal . Fungsi ini memanfaatkan sintaks bawaan dengan format TimeSpan
yang khusus digunakan untuk menghitung selang waktu tanpa perlu mendefinisikan
format tanggal dan jam. Format selang waktu yang dihasilkan langsung dalam total
seperseribu detik (ts.TotalMilliseconds.ToString();). Perhitungan dilakukan dengan
fungsi ts = dtEnd.Subtract(dtStart).Duration().
Penjelasan dalam kutipan kode sebagai berikut.
private void timespancal() { try { // Create a TimeSpan instance based on // DateTime values provided on the form. TimeSpan ts; DateTime dtStart; DateTime dtEnd; // Parse the text from the text boxes. // Variabel d Calculation dtStart = DateTime.Parse(lblbeforedown.Text); dtEnd = DateTime.Parse(lblbeforeup.Text); ts = dtEnd.Subtract(dtStart).Duration(); // Display the properties of the TimeSpan // instance you've created. lblMilliseconds.Text = ts.TotalMilliseconds.ToString(); // Variabel i Calculation dtEnd = DateTime.Parse(lblmsdown.Text); ts = dtEnd.Subtract(dtStart).Duration(); lblinterval.Text = ts.TotalMilliseconds.ToString(); //Variabel T Calculation dtEnd = DateTime.Parse(lblmsup.Text); ts = dtEnd.Subtract(dtStart).Duration(); lbltotal.Text = ts.TotalMilliseconds.ToString(); //Variabel Next d Calculation dtStart = DateTime.Parse(lblmsdown.Text); dtEnd = DateTime.Parse(lblmsup.Text); ts = dtEnd.Subtract(dtStart).Duration(); lblduration.Text = ts.TotalMilliseconds.ToString(); //Total Duration Typing
dtStart = DateTime.Parse(lbltkosa.Text); dtEnd = DateTime.Parse(lblmsdown.Text); ts = dtEnd.Subtract(dtStart).Duration(); lbltkosa1.Text = ts.TotalMilliseconds.ToString(); ….
Pemeriksaan apakah urutan penekanan dan pelepasan tombol dilakukan oleh
checkorder(string txt1, int order). Fungsi ini dipanggil setiap kali terjadi event penekanan
(dengan int order = 0) dan saat terjadinya event pelepasan (dengan int order = 1). Cara
kerjanya adalah dengan membandingkan string karakter yang dihasilkan oleh event
MyKeyDown dan MyKeyUp. Pesan kesalahan muncul bila terjadi pengulangan
pengetikan (penekanan terlalu lama), urutan tidak sah bila tombol lain ditekan sebelum
tombol sebelumnya dilepas atau bila menekan dua tombol nyaris bersamaan
(kemungkinan status yang tidak mungkin). Ini dijelaskan dalam diagram alir status
sebagai berikut.
Gambar 27 Diagram Status Pengecekan Urutan Penekanan
Penjelasan dalam kutipan kode sebagai berikut.
private void checkorder(string txt1, int order) { if (order == 0) { LogWrite(txt1); if (orderchar[0]=="") orderchar[0]=txt1;
else { if (orderchar[0] == txt1) {
actHook.Stop(); MessageBox.Show("Tidak Valid : Pengulangan",orderchar[0],MessageBoxButtons.OK,MessageBoxIcon.Error);
} else { actHook.Stop(); MessageBox.Show("Tidak Valid : urutan down-up",orderchar[0],MessageBoxButtons.OK,MessageBoxIcon.Error); }
} } if (order == 1) {
if (orderchar[1]=="") orderchar[1]=txt1; if (orderchar[1] != orderchar[0]) { actHook.Stop(); MessageBox.Show("Tidak Valid : urutan down-up",orderchar[1],MessageBoxButtons.OK,MessageBoxIcon.Error); } else { lbvalid.Text="Urutan Valid"; orderchar[0]=""; orderchar[1]=""; }
} }
Untuk memantau lama waktu pengetikan tidak lebih dari 15 detik sejak kata
muncul dilakukan oleh fungsi checkdurationtyping(). Fungsi ini memantau nilai variabel
lbltkosa1.Text jika lebih dari 15000 ms. Variabel lbltkosa1.Text berasal dari
timespancal() yang menghitung selang waktu dari kata tersebut muncul (lbltkosa.Text)
hingga kejadian suatu tombol ditekan (nilai variabel lblmsdown.Text). Penjelasan dalam
kutipan kode sebagai berikut.
private void checkdurationtyping() { if (Convert.ToDecimal(lbltkosa1.Text)>15000) { actHook.Stop(); … } private void timespancal() { … //Total Duration Typing
dtStart = DateTime.Parse(lbltkosa.Text); dtEnd = DateTime.Parse(lblmsdown.Text); ts = dtEnd.Subtract(dtStart).Duration(); lbltkosa1.Text = ts.TotalMilliseconds.ToString(); … }
Pemeriksaan tombol yang ditekan sesuai dengan karakter yang muncul
dilakukan oleh fungsi checkchar(string txt1,int cc). Int cc adalah urutan pengetikan dan
kemudian dilakukan proses ekstraksi karakter dari teks kata yang tampil pada nomor
urut tersebut oleh txt2 = txtKosakata.Text.Substring(cc,1).ToUpper(). Karakter tersebut
dibandingkan dengan karakter yang diterima oleh keyboard event txt1 apakah sama
atau tidak. Ini dijelaskan dalam kutipan kode sebagai berikut.
private void checkchar(string txt1,int cc) { lblcocok.Refresh(); if (cc <= txtKosakata.Text.Length-1) { lblurutan.Text=cc.ToString(); string txt2 = txtKosakata.Text.Substring(cc,1).ToUpper(); lblurutan2.Text = txt2; lblurutan1.Text = txt1; if (txt1 == txt2) lblcocok.Text = "Karakter Cocok"; else { lblcocok.Text = "Karakter Tidak Cocok"; actHook.Stop(); MessageBox.Show("Tidak Cocok",txt1,MessageBoxButtons.OK,MessageBoxIcon.Error); } if (cc == txtKosakata.Text.Length-1) { lblcocok.Refresh(); lblcocok.Text="SELESAI"; lblguidance.Text = "Pengetikan Berikutnya"; bnStart.Text = "COBA LAGI"; actHook.Stop(); } …
Penyimpanan data ke dalam log file hanya dilakukan setelah kata yang tampil
selesai diketik dengan benar yang dinyatakan dalam kode if (lblcocok.Text ==
"SELESAI"). Nilai lblcocok.Text berasal dari fungsi checkchar(string txt1,int cc), yakni
bila nilai cc sama dengan panjang kata yang tampil pada kode (if (cc ==
txtKosakata.Text.Length-1)). Selain itu, nilai lblcocok.Text == “SELESAI” akan
menjalankan fungsi decrementcounter() untuk melakukan perubahan nilai pada tabel
table_kosakata untuk kolom counter menjadi berkurang 1. Ini dijelaskan dalam kutipan
kode sebagai berikut.
private void savetextlog() { string logfile = txtKosakata.Text+"_"+lblusername.Text+".log"; string info = psiinfo1+"|"+psiinfo2+"|"+psiinfo3; if (((lblcocok.Text == "Karakter Cocok")||(lblcocok.Text == "SELESAI"))&&(lbvalid.Text == "Urutan Valid")&&(lbltkosa2.Text == "IN RANGE")) { lblsavinglog.Text = lblsavinglog.Text+lbltime.Text+"|"+lblcounter.Text+"|"+counterc.ToString()+"|"+lblbefore.Text+"|"+lblMilliseconds.Text+"|"+lblinterval.Text+"|"+lbltotal.Text+"|"+lblusername.Text+"|"+lblcompinfo.Text+"|"+info+CRLF; lblsavinglog.Refresh(); if (lblcocok.Text == "SELESAI") { FileStream s= new FileStream(logfile,FileMode.Append); StreamWriter w = new StreamWriter(s); w.Write(lblsavinglog.Text); w.Close(); lblsavinglog.Text=""; decrementcounter(); } } } private void decrementcounter() { string sConn = "Provider=Microsoft.Jet.OLEDB.4.0;"+"Data Source=" + lbl_browser.Text+";"; lblguidance.Text = "Simpan Log dan decrement counter kosakata"; lblguidance.Refresh(); int x = Convert.ToInt16(lblcounter.Text); x--; string sQuery = "update table_kosakata set Counter_kosakata="+x.ToString()+" where indeks_kosakata = "+lblindeks.Text; try { Cursor.Current = Cursors.WaitCursor; // eksekusi data OleDbConnection conn = new OleDbConnection(sConn); OleDbCommand cmd = new OleDbCommand(sQuery,conn); conn.Open(); int n = cmd.ExecuteNonQuery(); if (n==0) { lblguidance.Text = "Decrement counter kosakata gagal"; lblguidance.Refresh(); } conn.Close(); Cursor.Current = Cursors.Default;
….
Pemilihan indeks dalam basis data untuk kata yang ditampilkan dilakukan secara
acak (random) dengan memilih bilangan integer berkisar dari 1 hingga jumlah kata.
Ketentuan sintaks int random_number1 = rand.Next( 1, totalkosa+1 ) mengharuskan
penggunaan nilai totalkosa+1 sebagai batas atas. Jika kata yang dipilih sudah
mempunyai nilai kolom Counter_kosakata = 0, maka pemilihan indeks diulangi kembali.
Demikian seterusnya sampai semua kata selesai ditampilkan dan diketik dengan benar
(nilai kolom Counter_kosakata semuanya 0). Ini dijelaskan dalam kutipan kode sebagai
berikut.
private void Indeks_selection() { int totalkosa = Convert.ToInt32(lbltotalkosa.Text); Random rand = new Random(( int )DateTime.Now.Ticks ); int random_number1 = rand.Next( 1, totalkosa+1 ); lblindeks.Text = random_number1.ToString(); lblindeks.Refresh(); }
private void Selection_Kosa() { string sConn = "Provider=Microsoft.Jet.OLEDB.4.0;"+"Data Source=" + lbl_browser.Text+";"; bool loopk=true; lblguidance.Text = "Ketikan Sesuai dengan kata yang muncul"; lblguidance.Refresh(); for (int i = 3; i >= 0; i--) { lbltimer.Text = i.ToString(); lbltimer.Refresh(); Thread.Sleep(1000); } do { Indeks_selection(); string sQuery = "select * from table_kosakata where indeks_kosakata = "+lblindeks.Text; try { Cursor.Current = Cursors.WaitCursor; // eksekusi data OleDbConnection conn = new OleDbConnection(sConn); OleDbCommand cmd = new OleDbCommand(sQuery,conn); conn.Open(); OleDbDataReader DataDB = cmd.ExecuteReader(); while(DataDB.Read()) { lblcounter.Text = DataDB.GetInt16(2).ToString(); lblcounter.Refresh(); if (Convert.ToInt16(lblcounter.Text) != 0) { txtKosakata.Text = DataDB.GetString(1); txtKosakata.Refresh();
lbltkosa.Text = DateTime.Now.ToString(); lbltkosa.Refresh(); loopk = false; } else loopk = true; } DataDB.Close(); …
4.3.1.1. Spesifikasi Kebutuhan
Pembuatan aplikasi tersebut memenuhi spesifikasi kebutuhan yang disebutkan
dalam usulan penelitian, sebagai berikut.
1. Kata yang ditampilkan muncul secara acak. Setiap kata mempunyai peluang
muncul sebanyak 5 kali. Ini untuk memenuhi kebutuhan kriteria dinamik.
2. Pembatasan untuk menghasilkan pembacaan yang sah (valid) oleh sistem,
sebagai berikut.
a. Interval timer 15 detik sejak kata muncul hingga selesai diketik.
b. Kata yang diketik harus persis sama.
c. Pengecekan urutan pengetikan (penekanan-pelepasan tombol).
3. Pemisahan/ekstraksi/analisis data ke dalam pasangan-pasangan karakter
beserta nilai variabel d, i dan T untuk tiap pasangan tersebut.
Adapun spesifikasi kebutuhan yang belum bisa dipenuhi adalah sebagai berikut.
1. Aplikasi dengan mode Multi-user. Aplikasi ini hanya untuk single user, jika
diinginkan oleh pengguna yang berbeda, maka perlu dilakukan upaya mengkopi
file kosakata.mdb dan tidak dilengkapi proses pengecekan user name.
2. Aplikasi dengan mode client – server, yang memerlukan penulisan ulang kode di
beberapa bagian dengan menggunakan basis data SQL.
4.3.2. Aplikasi Analisis Data Fuzzy-Jaringan Syaraf Tiruan
Aplikasi ini bertujuan sebagai alat bantu untuk melakukan analisis data ke dalam
bentuk Fuzzy dan untuk melakukan pelatihan JST serta proses verifikasi data dengan
JST. Fungsi-fungsi dalam kode aplikasi ini ditujukan untuk membantu mempercepat
pelaksanaan penelitian ini.
Gambar 28 Tampilan Pengguna Aplikasi Analisis Data
4.3.2.1. Fungsi Fuzzy
Fungsi Fuzzy digunakan untuk meng-konversi nilai dalam tabel training_nofuzzy
dan tabel validasi_nofuzzy menjadi nilai fungsi keanggotaan Fuzzy dalam tabel training_
dan validasi_ untuk tiap d, i dan T. Fungsi tersebut dinyatakan dalam penulisan kode
sebagai berikut.
private float Fuzzy_triangular(float nonFuzzy, float a, float b, float c) { if (nonFuzzy <= a)return 0f; else if ((nonFuzzy >a) & (nonFuzzy <=b)) return (float)(nonFuzzy-a)/(b-a); else if ((nonFuzzy >b) & (nonFuzzy <=c))return (float) (nonFuzzy-c)/(b-c); else if (nonFuzzy > c) return 0f; else return 0f; } private float Fuzzy_trapesium(float nonFuzzy, float a, float b) { if (nonFuzzy <= a) return 0f; else if ((nonFuzzy >a) & (nonFuzzy <=b))return (float)(nonFuzzy-a)/(b-a); else if (nonFuzzy > b) return 1f; else return 0f; } private void convert_Fuzzy(string variabel1) { // sQuery = "select * from "+tbl_nonFuzzy+"_"+variabel1; float [] var1 = new float [TR_MAX];
float [] target = new float [TR_MAX]; float [,] varFuzzy = new float [TR_MAX,INP]; int [] indeks = new int [TR_MAX]; string [] karakter = new string [TR_MAX]; int counterc = 0; try { Cursor.Current = Cursors.WaitCursor; // eksekusi data OleDbConnection conn = new OleDbConnection(sConn); OleDbCommand cmd = new OleDbCommand(sQuery,conn); conn.Open(); OleDbDataReader DataDB = cmd.ExecuteReader(); while(DataDB.Read()) { indeks[counterc] = (int) (DataDB.GetValue(0)); karakter[counterc] = DataDB.GetValue(1).ToString(); var1[counterc] = Convert.ToSingle(DataDB.GetValue(2)); if (tbl_nonFuzzy == "training_noFuzzy") { target[counterc] = Convert.ToSingle(DataDB.GetValue(3)); } counterc++; } DataDB.Close(); conn.Close(); Cursor.Current = Cursors.Default; label2.Text=counterc.ToString(); } … for (int c=0;c < counterc ; c++) { if (variabel1 == "d") { varFuzzy[c,0] = Fuzzy_triangular(var1[c],50,100,150); varFuzzy[c,1] = Fuzzy_triangular(var1[c],100,150,200); varFuzzy[c,2] = Fuzzy_triangular(var1[c],150,200,250); varFuzzy[c,3] = Fuzzy_triangular(var1[c],200,250,300); varFuzzy[c,4] = Fuzzy_trapesium(var1[c],250,300); } else if (variabel1 == "i") { varFuzzy[c,0] = Fuzzy_triangular(var1[c],75,200,325); varFuzzy[c,1] = Fuzzy_triangular(var1[c],200,325,450); varFuzzy[c,2] = Fuzzy_triangular(var1[c],325,450,575); varFuzzy[c,3] = Fuzzy_triangular(var1[c],450,575,700); varFuzzy[c,4] = Fuzzy_trapesium(var1[c],575,700); } else { varFuzzy[c,0] = Fuzzy_triangular(var1[c],125,300,475); varFuzzy[c,1] = Fuzzy_triangular(var1[c],300,475,650); varFuzzy[c,2] = Fuzzy_triangular(var1[c],475,650,825); varFuzzy[c,3] = Fuzzy_triangular(var1[c],650,825,1000); varFuzzy[c,4] = Fuzzy_trapesium(var1[c],825,1000); }
// // if (tbl_nonFuzzy == "training_noFuzzy") sQuery = string.Format("insert into training_"+variabel1+" ("+ "karakter,_SC,_C,_S,_L,_SL,Target)"+ "values('{0}','{1}','{2}','{3}','{4}','{5}','{6}');", karakter[c],varFuzzy[c,0],varFuzzy[c,1],varFuzzy[c,2],varFuzzy[c,3],varFuzzy[c,4],target[c]); else sQuery = string.Format("insert into validasi_"+variabel1+" ("+ "karakter,_SC,_C,_S,_L,_SL)"+ "values('{0}','{1}','{2}','{3}','{4}','{5}');", karakter[c],varFuzzy[c,0],varFuzzy[c,1],varFuzzy[c,2],varFuzzy[c,3],varFuzzy[c,4]); // try { Cursor.Current = Cursors.WaitCursor; // eksekusi data insert OleDbConnection conn = new OleDbConnection(sConn); OleDbCommand cmd = new OleDbCommand(sQuery,conn); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); Cursor.Current = Cursors.Default; } …
4.3.2.2. Fungsi Jaringan Syaraf Tiruan
Arsitektur Jaringan Syaraf Tiruan yang digunakan adalah sebagai berikut.
1. Masing-masing variabel d, i dan T mempunyai JST Propagasi balik dengan data
bobot masing-masing dan keluaran masing-masing.
2. Lapisan input masing-masing variabel ada 5 unit sel berdasarkan kelas Fuzzy
berturut untuk _SC, _C, _S, _L dan _SL.
3. Lapisan antara (hidden layer) mempunyai 3 unit sel (H= (I+O)/2).
4. Lapisan output mempunyai 1 unit sel.
5. Nilai masukan tiap sel berkisar 0 hingga 1, maka keluaran bernilai 0 hingga 1.
Ini disesuaikan dengan karakterisktik fungsi sigmoid yang dipakai yakni berkisar
0 hingga 1.
6. Fungsi Sigmoid yang digunakan dalam kode sebagai berikut.
private float activation_function (float sum) { return ((float) (1/(1 + Math.Exp(-beta*sum))));} Dengan nilai beta sama dengan 1
const float beta = 1.0f;
7. Laju pembelajaran (eta) sebesar 0.1 dan jumlah epoch yang digunakan adalah
1000 untuk tiap model data pelatihan A dan B untuk tiap pasangan karakternya.
8. Inisialisasi bobot awal dalam fungsi random dengan nilai -1 hingga 1.
9. Bias tidak digunakan karena bersifat pilihan (Freeman, 1992, p.105).
Setengah dari jumlah kumulatif dari kesalahan yang dihasilkan oleh tiap pola
pelatihan dinyatakan dalam variabel errore[e] dengan e menunjukkan urutan epoch.
Sedangkan errrord[d] menunjukkan kesalahan dari tiap pola pelatihan dengan d
menunjukkan urutan pola pelatihan. Errord[d] diperoleh dari kuadrat selisih dari nilai
target pelatihan dengan error yang dihasilkan. Ini dijelaskan dalam kutipan kode sebagai
berikut.
errord[d] = (float) (errord[d] + Math.Pow((target[k]-outputout[k]),2)); …. errord[d] = errord[d]/2; errore[e] = errore[e] + errord[d];
Struktur JST yang digunakan dijelaskan dalam gambar sebagai berikut.
Gambar 29 Struktur Jaringan Syaraf Tiruan untuk Variabel d, i, dan T
Tiap variabel d, i dan T mempunyai bobot JST masing-masing dengan arsitektur
yang berdiri sendiri. Tiap JST memberikan nilai output 0 hingga 1 sesuai dengan data
pelatihan yang digunakan saat proses pembelajaran. Tiap-tiap nilai output digunakan
dalam proses statistik untuk melihat keseluruhan persentase tiap nilai dalam %FRR
atau %FAR dalam analisis data penelitian ini. Arsitektur JST yang berdiri sendiri ini
dapat dicapai dengan variabel berstruktur array sederhana dua dimensi sebagai berikut.
float [,] neuronIH = new float [INP,HDN]; float [,] neuronHO = new float [HDN,OUT];
NeuronIH berisi data bobot koneksi lapisan input dengan lapisan antara (hidden) dan
NeuronHO berisi data bobot koneksi lapisan antara dengan lapisan output. Lapisan
input mempunyai 5 sel, lapisan tengah mempunyai 3 sel dan lapisan output mempunyai
1 sel.
Untuk perhitungan tiap variabel d, I dan T dilakukan dengan memanggil kembali
data yang bersesuaian dari tiap tabel basis data (lampiran 7) untuk disimpan ke struktur
array diatas. Ini dijelaskan dalam kutipan kode sebagai berikut.
string [] variabel = {"d","i","T"};
Variabel ini dipanggil setiap kali ada proses loop :
for (short v=0;v<VAR;v++) { tbl_variabel = variabel[v];
…
Nilai tbl_variabel tersebut diteruskan ke variabel string sQuery yang dijalankan oleh
OleDbCommand cmd. Ini dijelaskan dalam kutipan kode sebagai berikut.
private void load_wg_toann() { //Masukkan data bobot ke JST sQuery = "select * from bobot_"+tbl_variabel+tbl_bobot; … OleDbConnection conn = new OleDbConnection(sConn); OleDbCommand cmd = new OleDbCommand(sQuery,conn); conn.Open(); OleDbDataReader DataDB = cmd.ExecuteReader(); while(DataDB.Read()) { for (short i = 0; i<INP;i++) { for (short j=0; j<HDN;j++) { neuronIH[i,j] = Convert.ToSingle(DataDB.GetValue(2+j+i*HDN).ToString()); } } for (short j = 0; j<HDN;j++) { for (short k=0; k<OUT;k++)
{
neuronHO[j,k] = Convert.ToSingle(DataDB.GetValue(2+(INP*HDN)+k+j*OUT).ToString()); …
Keseluruhan proses pelatihan JST dilakukan oleh event private void
btntraining_Click(object sender, System.EventArgs e) sebagai berikut.
ANN_init(); input_toann(true);
backpropagate_train();
ANN_init() adalah fungsi untuk melakukan inisialisasi bilangan random -1
hingga 1 ke nilai bobot sebagai nilai awal dalam kutipan kode sebagai berikut.
const float R_MIN = -1.0f; const float R_MAX = 1.0f;
… private void ANN_init() { for (short i = 0; i<INP;i++) { for (short j=0; j<HDN;j++) {
neuronIH[i,j] = R_MIN + (((float)(rand.Next(1000)))/1000f)*(R_MAX-R_MIN); } } for (short j = 0; j<HDN;j++) { for (short k=0; k<OUT;k++) { neuronHO[j,k] = R_MIN + (((float)(rand.Next(1000)))/1000f)*(R_MAX-R_MIN); …
Proses membaca data input saat pelatihan ke dalam JST dilakukan oleh fungsi
input_toann(bool training) dengan nilai training = true. Nilai training = true bertujuan
untuk memberikan tanda (flag) bahwa tabel yang diambil adalah tabel training_ (bukan
tabel validasi_). Penjelasan dalam kutipan kode sebagai berikut.
private void input_toann(bool training) { //inisialisasi data training if (!training) sQuery = "select * from validasi_"+tbl_variabel+tbl_name; else sQuery = "select * from training_"+tbl_variabel+tbl_name; try { Cursor.Current = Cursors.WaitCursor; // eksekusi data OleDbConnection conn = new OleDbConnection(sConn); OleDbCommand cmd = new OleDbCommand(sQuery,conn);
short counterd = 0; conn.Open(); OleDbDataReader DataDB = cmd.ExecuteReader(); … while(DataDB.Read()) { lvItem = listView1.Items.Add(DataDB.GetValue(0).ToString()); indeksout[counterd] = (int) (DataDB.GetValue(0)); lvItem.SubItems.Add(DataDB.GetValue(1).ToString()); for (short i = 0;i< INP;i++) { lvItem.SubItems.Add(DataDB.GetValue(2+i).ToString()); inputtr[counterd,i] = Convert.ToSingle(DataDB.GetValue(2+i).ToString()); } if (training) { for (short k = 0;k< OUT;k++) lvItem.SubItems.Add(DataDB.GetValue(INP+2+k).ToString()); targettr[counterd,k] = Convert.ToSingle(DataDB.GetValue(INP+2+k).ToString()); } } counterd++; } DataDB.Close(); conn.Close(); label1.Text=counterd.ToString(); …
Proses pelatihan JST Propagasi balik dilakukan oleh fungsi backpropagate_train()
dengan proses kerja sebagai berikut.
1. Deklarasi array yang digunakan, sebagai berikut.
float [] errore= new float[epoch]; float [] errord= new float[counterd]; float [] inputout = new float[INP]; float [] hiddenout = new float[HDN]; float [] hiddenerr = new float[HDN]; float [] outputout = new float[OUT]; float [] outputerr = new float[OUT]; float [] target = new float[OUT];
2. Proses pemasukan data dilakukan untuk setiap kali pengulangan e sampai
dengan jumlah epoch dan dilakukan untuk setiap kali pengulangan d sampai
dengan jumlah seluruh pola pelatihan, maka dilakukan pemasukan input array ke
input JST dan target array ke target JST.
for (int e=0; e< epoch;e++) { errore[e] = 0; lblepoch.Text = e.ToString(); lblepoch.Refresh();
for (short d=0; d < counterd ;d++) { lvItem2 = listView2.Items.Add(indeksout[d].ToString()); // errord[d] = 0; for (short i=0;i<INP;i++) { inputout[i] = inputtr[d,i]; } for (short k=0;k<OUT;k++) { target[k] = targettr[d,k]; }
3. Proses propagasi maju meliputi proses penjumlahan setiap bobot dikalikan nilai
input yang bersesuaian di lapisan input dan hasilnya diberikan ke dalam fungsi
aktivasi sigmoid dan diteruskan sebagai input sel pada lapisan antara. Proses
seterusnya yang sama dilakukan untuk lapisan antara dengan lapisan output.
for (short j=0;j<HDN;j++) { float sum =0; for (short i=0;i<INP;i++) { sum = sum + inputout[i]*neuronIH[i,j]; } if (bias == true) sum = sum + bias_unit; hiddenout[j] = activation_function(sum); lvItem2.SubItems.Add(hiddenout[j].ToString()); } for (short k=0;k<OUT;k++) { float sum =0f; for (short j=0;j<HDN;j++) { sum = sum + hiddenout[j]*neuronHO[j,k]; } if (bias == true) sum = sum + bias_unit; outputout[k] = activation_function(sum);
lvItem2.SubItems.Add(outputout[k].ToString());
4. Proses penghitungan kesalahan output terhadap target dengan menggunakan
turunan dari fungsi aktivasi sigmoid sebagai berikut.
outputerr[k] = outputout[k]*(1-outputout[k])*(target[k]-outputout[k]);
5. Proses kumulatif menghitung kesalahan output terhadap target sebagai
kesalahan keseluruhan pola sebagai berikut.
errord[d] = (float) (errord[d] + Math.Pow((target[k]-outputout[k]),2));
6. Proses propagasi kesalahan balik adalah proses dengan nilai kesalahan pada
proses no. 4 di-propagasi-balikkan ke lapisan antara untuk menghitung nilai
kesalahan pada lapisan antara, sebagai berikut.
//error dari Hidden Unit for (short j=0;j<HDN;j++) { hiddenerr[j] = 0; for (short k=0;k<OUT;k++) { hiddenerr[j] = hiddenerr[j] + outputerr[k]*neuronHO[j,k]; } hiddenerr[j] = hiddenerr[j]*hiddenout[j]*(1-hiddenout[j]); …
7. Proses penyesuaian bobot di tiap unit sel lapisan antara dan lapisan output
berdasarkan nilai kesalahan pada no. 4 dan no. 6 sesuai dengan laju
pembelajaran eta yang telah ditetapkan sebagai berikut.
//Update Bobot Output Unit for (short j=0;j<HDN;j++) { for (short k=0;k<OUT;k++) {
neuronHO[j,k]= neuronHO[j,k]+eta*outputerr[k]*hiddenout[j]; } } //Update Bobot Hidden Unit for (short i=0;i<INP;i++) { for (short j=0;j<HDN;j++) {
neuronIH[i,j]= neuronIH[i,j]+eta*hiddenerr[j]*inputout[i]; } }
8. Proses kumulatif keseluruhan kesalahan pola pelatihan dan separuh nilainya
adalah kesalahan kumulatif untuk tiap perulangan epoch dalam kode sebagai
berikut.
errord[d] = errord[d]/2; errore[e] = errore[e] + errord[d];
9. Setelah training dilakukan sebanyak jumlah epoch, maka bobot akhir disimpan
ke dalam tabel bobot_ untuk tiap pasangan karakter untuk tiap variabelnya.
Penyimpanan dilakukan oleh fungsi save_weight() dengan melakukan perintah
insert record ke dalam tabel bobot_. Penjelasan dalam kutipan kode sebagai
berikut.
private void save_weight() { //inisialisasi data bobot
sQuery = string.Format("insert into bobot_"+tbl_variabel+ " (karakter,WIH00,WIH01,WIH02,"+ "WIH10,WIH11,WIH12,"+ "WIH20,WIH21,WIH22,"+ "WIH30,WIH31,WIH32,"+ "WIH40,WIH41,WIH42,"+ "WHO00,WHO10,WHO20)"+ "values ('{0}','{1}','{2}','{3}',"+ "'{4}','{5}','{6}',"+ "'{7}','{8}','{9}',"+ "'{10}','{11}','{12}',"+ "'{13}','{14}','{15}',"+ "'{16}','{17}','{18}');", pasangan_kar,neuronIH[0,0],neuronIH[0,1],neuronIH[0,2], neuronIH[1,0],neuronIH[1,1],neuronIH[1,2], neuronIH[2,0],neuronIH[2,1],neuronIH[2,2], neuronIH[3,0],neuronIH[3,1],neuronIH[3,2], neuronIH[4,0],neuronIH[4,1],neuronIH[4,2], neuronHO[0,0],neuronHO[1,0],neuronHO[2,0]); ... conn.Open(); cmd.ExecuteNonQuery(); conn.Close();
Proses verifikasi JST dilakukan oleh event private void btn_JSTstart_Click(object
sender, System.EventArgs e) dalam penjelasan kode sebagai berikut.
private void btn_JSTstart_Click(object sender, System.EventArgs e) { … tbl_bobot = string.Format(" where karakter = '{0}' and indeks = {1}",pasangan_kar,textBox2.Text); … load_wg_toann(); … input_toann(false); propagate_output(); …
Fungsi load_wg_toann() melakukan pembacaan nilai bobot dari basis data ke
dalam JST. Pemilihan record ditentukan oleh perintah query sQuery = "select * from
bobot_"+tbl_variabel+tbl_bobot dengan nilai tbl_variabel dan tbl_bobot berupa string
yang diperoleh dari tbl_bobot = string.Format(" where karakter = '{0}' and indeks =
{1}",pasangan_kar,textBox2.Text) . Bobot yang dipilih berasal dari pasangan karakter
yang sama dan bisa dipilih berdasarkan nomor indeks jika data record bobot dari
pasangan karakter lebih dari satu. Penjelasan dalam kutipan kode sebagai berikut.
private void load_wg_toann() { //Masukkan data bobot ke JST
sQuery = "select * from bobot_"+tbl_variabel+tbl_bobot; … conn.Open(); OleDbDataReader DataDB = cmd.ExecuteReader(); while(DataDB.Read()) { for (short i = 0; i<INP;i++) { for (short j=0; j<HDN;j++) { neuronIH[i,j] = Convert.ToSingle(DataDB.GetValue(2+j+i*HDN).ToString()); } } for (short j = 0; j<HDN;j++) { for (short k=0; k<OUT;k++) { neuronHO[j,k] = Convert.ToSingle(DataDB.GetValue(2+(INP*HDN)+k+j*OUT).ToString()); …
Data bobot dan data input dari tabel validasi dimasukkan ke dalam JST.
Perhitungan output dilakukan oleh fungsi propagate_output() dalam penjelasan kode
sebagai berikut.
private void propagate_output() { //prepare display output JST string logfile; if (lbl_browser_lain.Text == "") { logfile= textBox1.Text+"_output_"+label5.Text+"_"+tbl_variabel+".log"; } else { logfile= textBox1.Text+"_output_"+label5.Text+"_"+tbl_variabel+"_val_lain.log"; } FileStream s= new FileStream(logfile,FileMode.CreateNew); StreamWriter w = new StreamWriter(s); if (lbl_browser_lain.Text != "")w.WriteLine(lbl_browser_lain.Text); initListView_output(); ListViewItem lvItem2 = new ListViewItem(); short counterd = Convert.ToInt16(label1.Text); float [] inputout = new float[INP]; float [] hiddenout = new float[HDN]; float [] outputout = new float[OUT]; for (short d=0; d < counterd ;d++) { lvItem2 = listView2.Items.Add(indeksout[d].ToString()); //
for (short i=0;i<INP;i++) { inputout[i] = inputtr[d,i]; } for (short j=0;j<HDN;j++) { float sum =0f; for (short i=0;i<INP;i++) { sum = sum + inputout[i]*neuronIH[i,j]; } if (bias == true) sum = sum + bias_unit; hiddenout[j] = activation_function(sum); lvItem2.SubItems.Add(hiddenout[j].ToString()); } for (short k=0;k<OUT;k++) { float sum =0f; for (short j=0;j<HDN;j++) { sum = sum + hiddenout[j]*neuronHO[j,k]; } if (bias == true) sum = sum + bias_unit; outputout[k] = activation_function(sum); w.WriteLine(d.ToString()+"|"+k.ToString()+"|"+outputout[k].ToString()); lvItem2.SubItems.Add(outputout[k].ToString()); } } w.Close(); }
Hasil yang diperoleh berupa file log teks yang akan digunakan dalam proses
analisis data secara manual dengan menggunakan MS Excell dan Text Analysis Tool.
4.3.2.3 Uji Aplikasi Analisis Data Jaringan Syaraf Tiruan
Aplikasi JST harus diuji untuk memastikan tidak ada kesalahan dalam algoritme
atau penulisan kode dengan cara sebagai berikut.
1. Uji dengan data validasi yang sama dengan data pelatihan.
2. Uji dengan data validasi keseluruhan data untuk pasangan karakter yang
bersangkutan.
Untuk Uji 1, data uji yang diambil berasal dari data pengguna abudiman1 dan
menggunakan model pelatihan A dengan epoch=1000 dan eta = 0,1 (grafik lengkap
pada lampiran 5) :
0
0.2
0.4
0.6
0.8
1
25 5090
.13 100 150
151.0
6169
.98170
.2417
0.24
188.89 200
220.3
2 250 300 450
Uji 1 d – Model A untuk an
0
0.2
0.4
0.6
0.8
1
25 5090.
13 100 150
150.7
816
9.47
170.24
170.24
188.17 200
220.3
2 250 300 450
Uji 1 d – Model A untuk an-am-ab
0
0.2
0.4
0.6
0.8
1
50.00
75.00
200.0
0
250.3
632
5.00
419.0
345
0.00
530.7
653
3.72
575.0
058
0.84
648.4
170
0.00
931.3
4
1000.0
0
Uji 1 i – Model A untuk an
0
0.2
0.4
0.6
0.8
1
50.0
0
75.0
0
200.
00
250.
36
325.
00
426.
94
450.
00
540.
78
541.
90
575.
00
580.
84
656.
85
700.
00
931.
34
1000
.00
Uji 1 i – Model A untuk an-am-ab
Uji 1 T – Model A untuk an
Uji 1 T – Model A untuk an-am-ab
Gambar 30 Hasil Uji 1 Program Jaringan Syaraf Tiruan
Hasil uji 1 dapat disimpulkan bahwa JST memberikan respon output yang sama dengan
pola data pelatihan yang diterimanya, walaupun akibat data pelatihan paradoks
mengakibatkan JST memberikan respon output di kisaran nilai tengah sesuai dengan
yang telah diperkirakan sebelumnya.
Uji 2 menggunakan keseluruhan data yang diambil dari pengukuran sebagai data
uji untuk JST yang sama dengan hasil sebagai berikut.
0
0.2
0.4
0.6
0.8
1
75.00 125.00300.00370.53475.00538.88649.05650.00650.94650.94759.21825.001000.001041.501500.00
Akibat Data Pelatihan Paradoks
0
0.2
0.4
0.6
0.8
1
75.00125.00300.00370.53475.00532.03641.42650.00650.94680.98750.81825.001000.001041.501500.00
Akibat Data Pelatihan Paradoks
Akibat Data Pelatihan Paradoks
Akibat Data Pelatihan Paradoks
0
0.2
0.4
0.6
0.8
1
90.1
3
140.
20
150.
22
160.
23
160.
23
170.
24
170.
24
170.
24
180.
26
180.
26
190.
27
190.
27
200.
29
Uji 2 d – Model A untuk an
0
0.2
0.4
0.6
0.8
1
90.1
3
140.
20
150.
22
160.
23
160.
23
170.
24
170.
24
170.
24
180.
26
180.
26
180.
26
190.
27
200.
29
Uji 2 d – Model A untuk an-am-ab
0
0.2
0.4
0.6
0.8
1
250.
36
380.
55
420.
60
460.
66
480.
69
510.
73
530.
76
550.
79
570.
82
590.
85
620.
89
650.
94
771.
11
Uji 2 i – Model A untuk an
0
0.2
0.4
0.6
0.8
125
0.36
390.
56
430.
62
460.
66
490.
71
520.
75
540.
78
570.
82
590.
85
610.
88
640.
92
721.
04
Uji 2 i – Model A untuk an-am-ab
0
0.2
0.4
0.6
0.8
1
370.
53
480.
69
530.
76
560.
81
600.
86
620.
89
640.
92
660.
95
680.
98
701.
01
721.
04
751.
08
851.
22
Uji 2 T – Model A untuk an
0
0.2
0.4
0.6
0.8
1
370.
53
480.
69
540.
78
570.
82
600.
86
630.
91
650.
94
670.
96
690.
99
711.
02
731.
05
761.
09
861.
24
Uji 2 T – Model A untuk an-am-ab
Gambar 31 Hasil Uji 2 Program Jaringan Syaraf Tiruan
Keluaran hasil uji 2 mendekati nilai +1 kecuali beberapa di ujung MIN atau MAKS.
Hasil uji 2 menunjukkan hasil yang sangat baik sehingga aplikasi JST yang dibuat
bisa digunakan lebih lanjut untuk analisis data dan percobaan serta tidak ada kesalahan
dalam penulisan kode program.
4.3.2.4 Spesifikasi Kebutuhan
Aplikasi ini telah memenuhi kebutuhan sebagai alat bantu untuk melakukan
percobaan dan analisis data sehingga percobaan, analisis data dan kesimpulan akhir
penelitian dapat diperoleh. Adapun spesifikasi kebutuhan yang belum bisa dipenuhi
adalah sebagai berikut.
1. Aplikasi dengan mode client – server dan multi user.
2. Integrasi dan keterkaitan aplikasi ini dengan aplikasi pengambilan data biometrik
penekanan kunci dinamik sehingga prototip aplikasi akhir yang siap pakai bisa
dihasilkan.
3. Modul Penggabungan (Fusion Module) sebagai pembuat keputusan akhir yang
mengolah output yang dihasilkan oleh JST untuk tiap variabel d, i dan T masih
dilakukan secara manual (belum terintegrasi) untuk kepentingan kemudahan
penulisan dalam penelitian ini.
4. Pembuatan model data pelatihan dan beberapa proses statistik yang masih
dilakukan secara manual (belum terintegrasi) yang membutuhkan waktu khusus
lebih lama dalam penulisan program aplikasi akhir yang siap pakai.
BAB V
ANALISIS DAN PEMBAHASAN
5.1 Percobaan Untuk Melihat Pengaruh Perbedaan Perangkat Keras
Percobaan ini bertujuan untuk melihat bagaimana pengaruh perbedaan perangkat
keras keyboard yang dikerjakan oleh orang yang sama dalam hal apakah ada
pengaruh perbedaan ukuran dan layout keyboard terhadap hasil pengambilan data.
Hasil penelitian lengkap bisa dilihat dalam lampiran 6. Kinerja diukur dalam % FRR,
yakni semakin rendah % FRR menunjukkan data uji yang semakin mirip dengan data
pelatihan yang berarti semakin baik untuk hasil verifikasi pengguna yang sama.
Tabel 10 Ringkasan Hasil Uji Abudiman1 dan Abudiman2 Terhadap JST Bobot
Abudiman4
PPeerraannggkkaatt//DDaattaa %% FFRRRR –– VVaarr dd %% FFRRRR –– VVaarr ii %% FFRRRR –– VVaarr TT
AABBUUDDIIMMAANN11--AA EEvvooNN662200CC
3311//0011//22000066 2200::0000
77..4444%% 5511..5544%% 3311..7733%%
AABBUUDDIIMMAANN22--AA DDeesskkttoopp
77//0022//22000066 2222::0000
22..5577%% 33..8811%% 22..7777%%
JST bobot Abudiman4 (Nx6125 18/02/2006 19:52; model data pelatihan A -batas
0.75) digunakan untuk menguji data Abudiman1 dan Abudiman2. Hasil Abudiman2
memberikan %FRR lebih rendah dibandingkan hasil Abudiman1.
Hasil selanjutnya.
Tabel 11 Ringkasan Hasil Uji Wningsih1 dan Wningsih2 Terhadap JST Bobot
Wningsih4
PPeerraannggkkaatt//DDaattaa %% FFRRRR –– VVaarr dd %% FFRRRR –– VVaarr ii %% FFRRRR –– VVaarr TT
WW NNIINNGGSSII HH11--AA EEvvooNN662200CC
11//0022//22000066 2222::0000
6622..8888%% 1188..7799%% 2211..2222%%
WW NNIINNGGSSII HH22--AA DDeesskkttoopp
66//0022//22000066 2222::0000
3355..3333%% 1100..8800%% 1122..1133%%
JST bobot Wningsih4 (Nx6125 17/02/2006 22:25; model data pelatihan A -batas
0.75) digunakan untuk menguji data Wningsih1 dan Wningsih2. Hasil Wingsih2
memberikan %FRR lebih rendah dibandingkan hasil Wningsih1. Walaupun %FRR pada
pada kasus ini lebih tinggi yang kemungkinan diakibatkan oleh faktor keletihan
(mengantuk) dan belum terbiasa menggunakan keyboard pada notebook Nx6125.
Hasil selanjutnya.
Tabel 12 Ringkasan Hasil Uji Mahyus2 Terhadap JST Bobot Mahyus1
PPeerraannggkkaatt//DDaattaa %% FFRRRR –– VVaarr dd %% FFRRRR –– VVaarr ii %% FFRRRR –– VVaarr TT
MMAAHHYYUUSS22--AA NNxx66112255
2222//0044//22000066 1133::1144
1177..1133%% 22..7777%% 22..4499%%
JST Bobot Mahyus1 ( keyboard Desktop LABS2004 24/02/2006 08:41; model data
pelatihan A -batas 0.75 ) digunakan untuk menguji data mahyus2 dengan selisih waktu
pengambilan 57 hari. Hasil menunjukkan bahwa %FRR untuk variabel i dan T yang
rendah padahal selisih waktu pengambilan data adalah 57 hari.
Pembahasan :
1. Keyboard pada desktop/notebook umumnya mempunyai jarak lurus dari q ke p :
18 cm dan jarak diagonal dari q ke z : 5 cm;
2. Keyboard EvoN620C mempunyai posisi relatif di tengah (Kecenderungan posisi
jari berada di tengah) sedangkan desktop, Nx6125, Toshiba 5200, Satellite
mempunyai kecenderungan posisi relatif lebih ke kiri;
Gambar 32 Perbandingan Notebook EvoN620C Dan Nx6125
3. Perbedaan layout dan posisi keyboard mempunyai pengaruh menentukan
dalam kestabilan hasil pengambilan data.
Saran untuk penelitian mendatang :
1. Percobaan pada layout keyboard yang sangat berbeda ( keyboard layout
ergonomis-model melengkung dibandingkan dengan layout lurus);
EvoN620C Nx6125
2. Percobaan pada orang kidal (kecenderungan tangan kiri) karena dalam
penelitian ini semua pengguna adalah bukan kidal dan desain perangkat
keyboard secara umum dirancang bukan untuk khusus orang kidal.
5.2 Percobaan Untuk Melihat Pengaruh Pengulangan Pengambilan Data
Percobaan ini bertujuan untuk melihat bagaimana pengaruh pengulangan
pengambilan data yang dipengaruhi oleh faktor dinamik (faktor acak kemunculan kata)
dan rentang waktu pengambilan data yang cukup lama (tanpa adanya upaya mengingat
atau melatih di selang waktu tersebut).
Tabel 13 Ringkasan Hasil Uji Abudiman3 Terhadap JST Bobot Abudiman4
PPeerraannggkkaatt//DDaattaa %% FFRRRR –– VVaarr dd %% FFRRRR –– VVaarr ii %% FFRRRR –– VVaarr TT
AABBUUDDII MMAANN33--AA NNxx66112255
99//0022//22000066 2211::4477
22..6677%% 22..0000%% 11..6633%%
JST Bobot Abudiman4 (Nx6125 18/02/2006 19:52; model data pelatihan A -batas
0.75) digunakan untuk menguji data abudiman3 dengan selisih waktu pengambilan 9
hari pada perangkat yang sama Nx6125.
Tabel 14 Ringkasan Hasil Uji Wningsih5 Terhadap JST Bobot Wningsih4
PPeerraannggkkaatt//DDaattaa %% FFRRRR –– VVaarr dd %% FFRRRR –– VVaarr ii %% FFRRRR –– VVaarr TT
WWNNIINNGGSSII HH55--AA NNxx66112255
1144//0044//22000066 1111::5544
22..2233%% 55..2244%% 33..0044%%
JST Bobot Wningsih4 (Nx6125 17/02/2006 22:25; model data pelatihan A -batas
0.75) digunakan untuk menguji data wningsih5 dengan selisih waktu pengambilan 56
hari pada perangkat yang sama Nx6125.
Tabel 15 Ringkasan Hasil Uji Syafii1 Terhadap JST Bobot Syafii2
Perangkat/Data % FRR – Var d % FRR – Var i % FRR – Var T
SYAFII1-A
Toshiba 5200A
10-12/02/2006
1.91% 2.58% 4.49%
JST Bobot Syafii2 (Toshiba 5200A 28/02/2006 20:14; model data pelatihan A -batas
0.75) digunakan untuk menguji data syafii1 dengan selisih waktu pengambilan 17 hari
pada perangkat yagn sama Toshiba 5200A.
Ketiga data tersebut menunjukkan % FRR yang rendah (1,63% - 5,24%) yang
memperlihatkan bahwa data biometrik penekanan kunci cenderung stabil selama
rentang waktu tertentu asal diupayakan sedemikian rupa kondisi saat pengambilan data
dalam keadaan tenang/tidak tergesa-gesa dan tidak ada gangguan.
Hasil selanjutnya pada pengguna Risantod sebagai berikut.
Tabel 16 Ringkasan Hasil Uji Risantod1 Terhadap JST Bobot Risantod2
Perangkat/Data % FRR – Var d % FRR – Var i % FRR – Var T
RISANTOD1-A
HIP-NB2
7-8/02/2006
1.31% 24.39% 45.85%
JST Bobot Risantod2 (HIP-NB2 7/03/2006 17:41; model data pelatihan A -batas
0.75) digunakan untuk menguji data Risantod1 dengan selisih waktu pengambilan 22
hari pada perangkat yang sama HIP-NB2. Hasil %FRR tinggi pada variabel i dan T
sedangkan %FRR variabel d tetap rendah.
Risantod mengatakan pada saat pengambilan pertama dilakukan dengan tergesa-
gesa dan sambil mengerjakan pekerjaan lain (tidak kosentrasi). Sedangkan pada
pengambilan kedua diberitahukan untuk tidak tergesa-gesa dan diusahakan sesantai
mungkin. Perbedaan hasil analisis statistik untuk Risantod (lampiran 3) dapat dijelaskan
sebagai berikut.
Tabel 17 Cuplikan Analisis Statistik Pada Kasus Risantod
Data pertama (Risantod1) mempunyai nilai-nilai statistik yang berbeda dengan data
kedua (Risantod2) sehingga secara statistik menunjukkan ketidakmiripan satu sama
lain. Nilai simpangan yang menunjukkan variasi penyebaran data terhadap rata-rata
yang terlalu besar dan nilai jangkauan yang terlalu lebar bisa jadi menunjukkan adanya
ketidakstabilan saat pengambilan data.
Pembahasan :
1. Pengulangan pengambilan data mempunyai kontribusi positif terhadap
kestabilan data dengan %FRR yang rendah (1.63% - 5.24%; rata-rata 2.87%
pada batas 0.75 dengan JST model pelatihan A);
2. Kestabilan data dengan selisih waktu pengambilan 56 hari masih menghasilkan
% FRR dibawah 5.5%.
Saran untuk penelitian mendatang :
1. Percobaan untuk melihat seberapa stabil data biometrik penekanan kunci ini
dalam diri seseorang dengan jumlah peserta yang lebih banyak dan rentang
waktu pengujian yang lebih lama (sebagai contoh, 90 hingga 180 hari).
2. Percobaan untuk membuat ragam cek kondisi yang lebih baik sehingga sistem
dapat mendeteksi kestabilan pengambilan data. Penelitian ini menggunakan
kondisi yang menolak jika pengetikan terlalu lambat dan belum menggunakan
kondisi yang menolak jika pengetikan terlalu cepat atau jika nilai simpangan dan
jangkauan terlalu lebar.
5.3 Percobaan Untuk Melihat Kemampuan Verifikasi Dengan Data Eksklusif
Percobaan ini bertujuan untuk melihat bagaimana kinerja JST dalam menerima data
eksklusif yakni data yang sama sekali tidak diikutkan dalam proses statistik
pembentukan data pelatihan. Data tersebut berasal dari tiga kata yakni ganggang,
kantong dan topeng yang telah diurai ke dalam pasangan karakter an, en, ka, ng, dan
to. Hasil terbaik (lampiran 6) dijelaskan sebagai berikut.
Tabel 18 Ringkasan Hasil Uji Data Eksklusif Terhadap JST Bobot Milik Sendiri
Perangkat/Data % FRR – Var d % FRR – Var i % FRR – Var T
ABUDIMAN4-A -EXC
18/02/2006 19:20
2.38% 2.14% 0.71%
WNINGSIH4-A-EXC
17/02/2006 22:25
2.86% 10.00% 4.76%
SYAFII2-A-EXC
28/02/2006 20:14
2.86% 0.00% 0.00%
JST bobot pengguna (model data pelatihan A - batas 0.75) digunakan untuk menguji
data eksklusif pengguna yang bersangkutan sendiri. Hasil terbaik menunjukkan %FRR
antara 0.00% - 2.86% pada SYAFII2.
Pembahasan :
Percobaan ini memperlihatkan hasil sebagai berikut.
1. JST mempunyai kemampuan mengenali dengan baik data yang tidak pernah
diikut-sertakan dalam proses pelatihan asalkan data tersebut mirip, yakni yang
berasal dari pasangan-pasangan yang saling berdekatan (berkelompok).
Dengan demikian, data pelatihan bisa disederhanakan dengan membuat
kelompok data pelatihan bersama daripada menggunakan data pelatihan untuk
tiap pasangan karakter.
2. Hasil terbaik %FRR diperoleh nilai 0% - 2.86%.
5.4 Percobaan Untuk Melihat Pengaruh Model Data Pelatihan A dan B – Uji
Identifikasi
Percobaan ini bertujuan untuk melihat sejauh mana sistem mampu melakukan
identifikasi mengenali individu X berbeda dengan individu Y. Percobaan ini juga untuk
melihat dan membandingkan hasil yang diberikan oleh JST model pelatihan A dan B
terhadap kemampuan identifikasi.
Dalam uji identifikasi, data biometrik milik individu X digunakan untuk menguji JST
bobot milik individu Y. JST harus mengatakan bahwa data yang diterimanya salah
(bernilai 0). Namun, JST bisa melakukan kesalahan dengan menerima data tersebut
sebagai benar (bernilai 1). Nilai persentase kesalahan dinyatakan dalam % FAR.
Percobaan yang dilakukan memberikan hasil sebagai berikut.
Tabel 19 Ringkasan Uji Identifikasi Pengguna Di Notebook Nx6125
Perangkat/Data % FAR – Var d % FAR – Var i % FAR – Var T
ABUDIMAN4-A
>< WNINGSIH4
92.67% 82.05% 85.53%
ABUDIMAN4-B
>< WNINGSIH4
81.02% 56.79% 65.41%
Perangkat/Data % FAR – Var d % FAR – Var i % FAR – Var T
ABUDIMAN4-A
>< MAHYUS2
23.41% 84.46% 57.20%
ABUDIMAN4-B
>< MAHYUS2
0.85% 54.73% 37.13%
JST bobot Abudiman4 dengan model pelatihan A dan B (epoch=1000, batas 0.75)
masing-masing digunakan untuk menguji data Wningsih4 (atas) dan Mahyus2 (bawah)
yang diambil pada perangkat yang sama nx6125.
Model pelatihan B memberikan hasil berupa penurunan %FAR sebesar 20% hingga
30%. Studi literatur menjelaskan bahwa %FAR digunakan untuk mengukur kemampuan
identifikasi dan membuktikan bahwa Biometrik penekanan kunci ini memang belum
cocok digunakan untuk sistem identifikasi (hanya cocok untuk sistem verifikasi).
5.5 Percobaan Untuk Melihat Pengaruh Model Data Pelatihan A dan B – Uji
Penyusupan (%FRR = 1 - %FAR)
Percobaan ini pada dasarnya sama dengan percobaan 5.4 hanya dilihat dari sisi nilai
%FRR. Dalam hal ini, sistem verifikasi harus bisa mencek apakah seseorang yang
mengaku (menyusup) sebagai X adalah benar si X. Dalam uji penyusupan, berlaku
hubungan %FRR = 1-%FAR.
Percobaan ini membandingkan hasil yang diberikan oleh JST bila menguji data
pengguna yang benar dengan hasil yang diberikan bila menguji data pengguna lain
dalam nilai % FRR.
Tabel 20 Ringkasan Hasil Uji Penyusupan Dengan JST Model Pelatihan A
Perangkat/Data % FRR – Var d % FRR – Var i % FRR – Var T
ABUDIMAN4-A
>< ABUDIMAN3
2.67% 2.00% 1.63%
ABUDIMAN4-A
>< MAHYUS2
76.59%
(1-23.41%)
15.54%
(1-84.46%)
42.80%
(1-57.20%)
ABUDIMAN4-A
>< WNINGSIH4
7.33%
(1-92.67%)
17.95%
(1-82.05%)
14.47%
(1-85.53%)
JST bobot Abudiman4 (model pelatihan A, epoch=1000, eta=0,1 , batas 0.75)
digunakan untuk menguji data abudiman3 (berbeda waktu pengambilan dan pada
perangkat yang sama) dan dibandingkan hasilnya dengan data hasil uji Mahyus2 dan
Wningsih4 yang diambil pada perangkat yang sama nx6125. Jadi Mahyus dan Wningsih
seolah-olah sebagai penyusup yang mengaku sebagai Abudiman.
Hasil percobaan menunjukkan bahwa ABUDIMAN4-A >< MAHYUS2 menghasilkan
lonjakan %FRR > 7X sedangkan ABUDIMAN4-A >< WNINGSIH4 menghasilkan
lonjakan %FRR >2.7X (variabel d) dan >8.9X (variabel i dan T). Kesimpulan yang
diperoleh bahwa cara efektif mengetahui telah terjadinya penyusupan adalah dengan
melihat lonjakan %FRR yang diterima dengan %FRR yang seharusnya. Jadi bukan
melihat pada batas ambang keputusan yang digunakan.
Hasil selanjutnya pada JST model pelatihan B sebagai berikut.
Tabel 21 Ringkasan Hasil Uji Penyusupan Dengan JST Model Pelatihan B
Perangkat/Data % FRR – Var d % FRR – Var i % FRR – Var T
ABUDIMAN4-B
>< ABUDIMAN3
8.46% 2.87% 2.99%
ABUDIMAN4-B
>< MAHYUS2
90.41%
(1-9.59%)
22.42%
(1-77.58%)
48.98%
(1-51.02%)
ABUDIMAN4-B
>< WNINGSIH4
9.59%
(1-90.15%)
27.96%
(1-72.04%)
51.02%
(1-76.48%)
JST bobot Abudiman4 dengan model pelatihan B (epoch=1000, eta=0,1), namun
menggunakan batas ambang keputusan = 0,5.
ABUDIMAN4-B >< MAHYUS2 menghasilkan lonjakan %FRR > 7X sedangkan
ABUDIMAN4-B >< WNINGSIH4 menghasilkan Lonjakan %FRR >1.1X (variabel d) dan
>9.7X (variabel i, dan T). Model pelatihan B memerlukan batas ambang keputusan yang
lebih rendah untuk menghasilkan lonjakan %FRR yang sama dengan model pelatihan A.
Variabel i, dan T paling layak digunakan sebagai indikasi terjadinya penyusupan.
Pembahasan :
1. Jika dikaitkan dengan %FRR = 1-%FAR, maka dalam percobaan ini terlihat
adanya lonjakan %FRR pada saat terjadinya penyusupan. Variabel yang penting
sebagai indikasi adalah variabel i dan T daripada variabel d.
2. Keputusan untuk menyatakan verifikasi benar atau salah (terjadinya
penyusupan) bukan ditentukan oleh nilai ambang keputusan melainkan harus
dilihat dari lonjakan %FRR. Sistem harus menyimpan nilai %FRR yang
semestinya dan membandingkan dengan %FRR yang didapat dari pengukuran.
5.6 Percobaan Untuk Melihat Pengaruh Model Data Pelatihan A Dan B -
Pengaruh % FRR Dan Ambang Keputusan (0,5 – 0,9)
Percobaan ini membandingkan % FRR yang diperoleh JST model pelatihan A
dengan B pada ambang keputusan yang berbeda-beda 0,5 hingga 0,9. Lampiran 6
menunjukkan pada ambang keputusan yang sama (contoh 0,75), maka model pelatihan
B memberikan % FRR yang lebih besar dibandingkan model pelatihan A. Namun, nilai
% FRR pada model B bisa diperbaiki dengan menggunakan batas ambang keputusan
yang lebih rendah (contoh 0,5). Dengan demikian, ada perbedaan yang lebih lebar
dalam % FRR pada model B dibandingkan dengan model A pada batas ambang
keputusan yang berbeda-beda sebagaimana ditunjukkan dalam gambar sebagai berikut.
Gambar 33 Hubungan % FRR Dengan Ambang Keputusan (0.5 – 0.9)
Model B dalam hubungannya dengan batas ambang keputusan memberikan
rentang nilai yang lebih lebar (tidak kaku) sehingga model B bisa menghasilkan keluaran
yang dinyatakan dalam bentuk Fuzzy linguistik seperti YA, MUNGKIN, TIDAK seperti
contoh berikut.
Tabel 22 Cuplikan Bentuk Keluaran JST Model Pelatihan B
ABUDIMAN3-B Jawaban - d Jawaban - i Jawaban - T
% YA BENAR - batas = 0.75 81.47% 84.05% 89.71%
% MUNGKIN BENAR 0.5 = batas < 0.75 10.07% 13.08% 7.30%
% TIDAK BENAR batas < 0.5 8.46% 2.87% 2.99%
Pembahasan :
1. Model pelatihan B mempunyai keunggulan dibandingkan model pelatihan A
dalam hal sebagai berikut.
a. Kemampuan menurunkan %FAR untuk kemampuan identifikasi yang
lebih baik walaupun belum memberikan hasil yang paling baik.
0.5 0.6 0.7 0.8 0.9
0.00%
20.00%
40.00%
60.00%
80.00%
100.00%
% FRR - Var d - A
% FRR - Var d - B
0.5 0.6 0.7 0.80.9
0.00%
20.00%
40.00%
60.00%
80.00%
100.00%
% FRR - Var i - A
% FRR - Var i - B
0.5 0.6 0.7 0.8 0.9
0.00%
20.00%
40.00%
60.00%
80.00%
100.00%
% FRR - Var T - A
% FRR - Var T - B
b. Menghasilkan nilai rentang batas keputusan yang lebih lebar sehingga
memungkinkan sistem keluaran dalam bentuk variabel Fuzzy linguistik
seperti YA, MUNGKIN, TIDAK.
2. Model pelatihan B mempunyai kekurangan dalam hal membutuhkan jumlah
epoch yang lebih banyak untuk mencapai tingkat kesalahan yang mendekati
model pelatihan A (Penelitian ini menggunakan parameter epoch yang sama).
Perbandingan Kelayakan Sistem
Metode dalam penelitian ini merupakan variasi pengembangan atau penggabungan
dari beberapa penelitian sebelumnya dan mengingat belum adanya standar baku yang
bisa digunakan untuk menguji kelayakan sistem biometrik perilaku penekanan kunci,
maka untuk mengetahui seberapa layak prototipe sistem dilakukan perbandingan
dengan beberapa hasil penelitian sebelumnya sebagai berikut.
Tabel 23 Perbandingan Kelayakan Sistem
Penelitian % FRR % FAR Metodologi
Arif Budiman
(2006)
1,63%-5,24%;rata-rata 2,87%
(pada model A-batas 0,75);
2,87%-8,46%;rata-rata 4,80%
(pada model B-batas 0.5).
Terbaik 0.85%
Terburuk 81.02%
(pada model B-batas
0.75).
JST, Fuzzy, statistik;teks
dinamik acak; analisis;
maks selang 56 hari
(5x pengambilan data);
5 orang.
Bergadano et
al (2003)
9.49% (dari 137 koneksi sah) 4.47% (dari 3600
usaha).
Metode analisis text
panjang (2 text maks 300
kar);1X/hari ;Sequential
statistic analysis;
130 orang.
Sajjad Haider
et al (2000)
Fuzzy, JST : 13%;
Fuzzy, JST, Statistik : 2%.
Fuzzy, JST : 18%;
Fuzzy,JST, Statistik :
6%.
Perbandingan Metode
JST, Fuzzy, statistik
pada input statik (maks 7
kar) pengambilan 15X.
Lin Daw-
Tung et al
(1997)
2.22% 6.56% JST dengan input statik
untuk 90 pengguna
Fadhli Wong
et al (2001)
%FRR untuk JST : 1%
% FAR untuk
JST : 29%
Perbandingan JST
dengan KNN dengan
input statik 10X
Tabel tersebut memperlihatkan bahwa dari sisi kemampuan verifikasi dalam % FRR,
prototipe sistem ini memberikan hasil yang cukup layak dibandingkan hasil penelitian
sebelumnya dan ditambah sifat analisis dinamik yang digunakan sehingga memberikan
nilai kompleksitas lebih dibandingkan sistem lainnya yang bersifat statik. Namun, dari
sisi kemampuan identifikasi dalam % FAR, prototipe sistem ini masih memerlukan
banyak penelitian lanjutan untuk memberikan hasil yang lebih baik. Walaupun demikian,
kemampuan prototipe sistem ini dalam mendeteksi penyusupan tidak perlu diragukan
dengan cara melihat adanya lonjakan % FRR dalam mengambil keputusan.
Implementasi Sistem
Prototip sistem hasil penelitian ini dapat diimplementasikan dalam sistem komputer
yang membutuhkan verifikasi identitas pengguna secara kontinyu (terus menerus –
bukan hanya 1X). Sebagai contoh, sistem aplikasi teller perbankan untuk memastikan
bahwa teller yang benar yang berada di depan sistem (bukan orang lain) atau sistem
verifikasi identitas pemegang kartu elektronik dalam aktivasi otomatis sebagai
pelengkap sistem otentikasi klasik yang sudah ada.
Gambar 34 Implementasi Dalam Sistem Verifikasi
Proses kerja sistem verifikasi ini dapat dijelaskan sebagai berikut.
1. Sistem verifikasi akan dimulai hanya setelah pengguna yang bersangkutan
melewati sistem otentikasi klasik dengan benar. Sistem ini bertujuan untuk
memastikan pengguna yang benar yang ada di dalam sistem.
2. Sistem verifikasi akan mencek apakah pengguna telah terdaftar dalam basis
data sistem atau sebagai pengguna baru. Jika pengguna baru, maka menu
pelatihan akan muncul dan jika pengguna telah terdaftar, maka sistem verifikasi
akan mulai bekerja dengan memonitor kata-kata yang diketikkan oleh pengguna.
Kata-kata yang diketikkan telah ditentukan sebelumnya pada basis data
kosakata. Proses monitor dan perekaman data dilakukan oleh aplikasi
pengambilan data.
3. Pengguna baru harus melewati menu pelatihan dan pengguna baru harus
mengetikkan kata-kata yang muncul. Hasil pengetikan akan direkam dan
diteruskan ke proses analisis statistik untuk pembuatan data pelatihan.
4. Hasil perekaman data yang diterima akan dikonversi menjadi nilai fungsi
keanggotaan tiap kelas Fuzzy (proses fuzzifikasi).
5. Hasil konversi fuzzifikasi akan diteruskan sebagai input JST. Untuk pengguna
baru, input JST yang diterima digunakan sebagai data pelatihan dan proses
pelatihan akan dilakukan sampai dicapai tingkat kesalahan yang diinginkan.
Hasil akhir berupa bobot -bobot JST yang disimpan untuk pengguna tersebut.
Pengguna akan kembali ke sistem verifikasi untuk memulai proses verifikasi
pada no. 2.
6. Untuk pengguna yang sudah terdaftar, maka JST akan mengambil data bobot
dari basis data untuk pengguna yang bersesuaian. Kemudian JST akan mulai
menerima nilai hasil konversi fuzzifikasi dan memberikan nilai output.
7. Keseluruhan nilai output yang diterima akan dikumulatifkan dalam proses
statistik untuk menghitung nilai % FRR dan nilai % FRR yang diperoleh
dibandingkan dengan % FRR yang ada dalam basis data. Sistem akan
memberikan peringatan ke administrator bila skor nilai melewati batas ambang
yang telah ditentukan. Administrator akan memutuskan tindakan apa yang harus
dilakukan selanjutnya.
BAB VI
KESIMPULAN DAN SARAN
Kesimpulan
Kesimpulan keseluruhan yang diperoleh dari penelitian ini adalah sebagai berikut.
1. Biometrik penekanan kunci dengan analisis dinamik mempunyai potensi yang
layak digunakan lebih lanjut untuk sistem verifikasi terus-menerus, namun masih
membutuhkan beberapa penelitian lanjutan untuk implementasi sistem
identifikasi.
2. Perbedaan layout dan posisi keyboard mempunyai pengaruh menentukan
dalam kestabilan pengambilan data. Perbedaan layout dan posisi ini berkaitan
erat dengan kebiasaan dan kenyamanan pada saat pengambilan data.
3. Kestabilan pengambilan data untuk memberikan hasil yang paling baik, maka
perlu dilakukan dengan tenang dan tidak tergesa-gesa. Pengambilan data yang
dilakukan berulang akan memberikan hasil yang baik dan bisa menjamin
kestabilan data biometrik perilaku dalam diri seseorang. Ada indikasi bahwa data
biometrik perilaku ini sebenarnya bisa stabil tersimpan untuk jangka waktu lama
asalkan saat pengambilan data dilakukan dengan tenang (menambah studi
literatur perihal seberapa permanen data biometrik perilaku).
4. Kemampuan pengenalan pola JST propagasi balik memberikan hasil yang baik
dalam hal sebagai berikut.
1. Menggunakan kombinasi data pelatihan bersama dari pasangan karakter
yang mempunyai kelompok tetangga saling berdekatan. Ini
memungkinkan penggabungan data pelatihan tanpa menurunkan hasil
kinerja.
2. Memperkirakan hasil yang diperoleh dari pasangan karakter yang sama
sekali tidak diikutsertakan dalam proses pelatihan dengan menggunakan
JST bobot dari kelompok tetangganya. Ini memungkinkan penggunaan
untuk sistem verifikasi dinamik teks bebas dengan data pelatihan yang
paling efisien.
5. Kinerja prototipe sistem berbasis JST ini sangat dipengaruhi oleh pembentukan
model data pelatihannya. Model data pelatihan yang dibentuk dari hasil proses
statistik dan ditambah dengan data komplemen dari pola kelas Fuzzy
memberikan hasil yang efisien dalam hal kecepatan konvergensi pelatihan dan
keakuratan sistem.
6. Penelitian ini menggunakan dua macam model data pelatihan A (tegas/crispy)
dengan jawaban benar/salah dan model data pelatihan B (berarti dua/ambiguity)
dengan jawaban benar/mungkin/salah. Masing-masing mempunyai kelebihan
sebagai berikut.
1. Model data pelatihan A memberikan hasil verifikasi % FRR yang lebih
baik dibandingkan model data pelatihan B.
2. Model data pelatihan B bisa membantu memperbaiki hasil identifikasi %
FAR dibandingkan model data pelatihan A.
3. Model data pelatihan B mempunyai batas ambang keputusan yang lebih
lebar dibandingkan model data pelatihan A untuk mencapai tingkat
kinerja yang sama.
4. Model data pelatihan B membantu memperbaiki akibat data pelatihan
yang paradoks dibandingkan model data pelatihan A.
5. Model data pelatihan B memerlukan proses pelatihan yang lebih lama
untuk mencapai tingkat kesalahan yang sama dengan model data
pelatihan A.
Namun, tidak bisa diambil kesimpulan apakah model data pelatihan B lebih baik
daripada model data pelatihan A karena dikembalikan pada tujuan perancangan
sistem apakah menginginkan jawaban yang bersifat tegas atau menginginkan
kemungkinan jawaban yang lebih linguistik atau variasi model output Fuzzy.
Model data pelatihan ini pun bisa dikembangkan variasi lebih lanjut sesuai
dengan keinginan dalam perancangan sistem.
7. Uji penyusupan bisa diketahui lebih efektif dengan cara melihat terjadinya
lonjakan % FRR dari yang seharusnya ada daripada dengan melihat batas
ambang keputusan. Namun, kombinasi keduanya bisa memberikan hasil yang
lebih efektif dengan batas ambang keputusan bersifat sebagai deteksi lokal dan
lonjakan % FRR bersifat sebagai deteksi global.
8. Ketiga variabel d, i dan T bersifat saling terkait satu sama lain sehingga tidak
bisa ditentukan dengan mudah mana yang bisa diabaikan. Kombinasi ketiga
variabel tersebut bisa memberikan hasil yang optimum. Secara keseluruhan
variabel i dan T paling memberikan hasil yang baik dalam deteksi kestabilan
pengambilan data dan uji penyusupan.
Saran
Saran untuk penelitian lebih lanjut atau perbaikan hasil penelitian ini adalah sebagai
berikut.
1. Penelitian dengan jumlah partisipan penguji yang lebih banyak (termasuk
kebiasaan kidal) dan rentang waktu pengambilan yang lebih lama untuk meneliti
kriteria universality dan uniqueness serta kestabilan data biometrik dalam diri
seseorang.
2. Penelitian di bidang Human Computer Interaction untuk mendesain ragam
variasi kondisi sehingga pengambilan data biometrik selalu bersifat stabil dan
konsisten.
3. Penelitian dengan menggunakan arsitektur JST dan model data pelatihan yang
lebih kompleks yang mengintegrasikan ketiga variabel d, i dan T yang saling
terikat (multi variate) secara simultan untuk melihat sejauh mana kemungkinan
perbaikan hasil keseluruhan.
4. Penelitian lebih lanjut untuk analisis tiga karakter berturutan (trigraph) atau
pengetikan dengan sifat data berupa teks bebas ataupun yang bertujuan untuk
penggunaan sistem identifikasi ataupun penggunaan kombinasi algoritme
pengenalan pola lainnya.
DAFTAR PUSTAKA Araujo, L.C.F., Sucupira, L.H.R.,Jr., Lizarraga, M.G., Ling, L.L., Yabu-Uti, J.B.T. 2005.
User Authentication Through Typing Biometrics Features. Signal Processing IEEE
53(2):851-855.
Bergadano F., Gunetti D., Picardi C. 2003. Identity Verification through Dynamic
Keystroke Analysis. Intelligent Data Analysis (IDA), 7(5):469-496.
Chen,W., Chang,W. 2004. Applying Hidden Markov Models to Keystroke pattern
Analysis for password Verification. Information Reuse and Integration IRI 2004, IEEE
8-10 Nov 2004 467-474.
Coltell,O. Badfa, J.M., Torres,G. 1999. Biometric Identification system Based in
Keyboard Filtering. Security Technology IEEE 33rd Annual 1999 International
Carnahan Conference 5-7 Oct. 1999:203-209.
Daw-Tung, Lin. 1997. Computer-Access Authentication With Neural Network Based
Keystroke Identity Verification. Neural Networks, IEEE 1:174-178.
Deitel,H.M., Deitel,P.J., Nieto, T.R., Strassberger, E.T. Getting Started with Microsoft
Visual C++ 6 with an Introduction to MFC. New Jersey : Prentice Hall.
Delak, K. Grgic, M. 2004. A Survey of Biometric Recognition Methods. Electronics in
Marine 46th International Symposium IEEE, 16-18 June 2004: 184-193.
Eltahir, W.E.,Salami,M.J.E.,Ismail,A.F.,Lai,W.K. 2004. Dynamic Keystroke Analysis
Using AR Model. Industrial Technology ICIT '04, IEEE 3:1555-1560.
Enzhe Yu, Sungzoon Cho. 2003. GA-SVM Wrapper Approach for Feature Subset
Selection in Keystroke Dyanamics Identity Verification. Neural Networks, IEEE
3:2253-2257.
Fadhli Wong Moh Hasan Wong, Supian,A.S.M, Ismail, A.F. 2001. Enhanced User
Authentication through Typing Biometrics with ANN and K-Nearest Neighbor
Algorithm. Signals, Systems and Computers, Thirty-Fifth Asilomar Conference, IEEE
2:911-915.
Freeman, J. A., Skapura, D.M. 1992. Neural Networks Algorithms, Applications, and
Programming Techniques. Houston: Addison-Wesley.
Haider, S., Abbas, A., Zaidi, A.K. 2000. A Multi-Technique Approach for User
Identification through Keystroke Dynamics. Systems, Man, and Cybernetics, IEEE
2:1336-1341
Jain, Anil K., Arun Ross, Salil Prabhakar. 2004. An Introduction to Biometric
Recognition. IEEE Transactions on Circuits and Systems for Video Technology, Vol
14. No.1.
Kung, S.Y., M.W. Mak, S.H. Lin, Kailath,T, editor. 2004. Biometric Authentication A
Machine Learning Approach. New Jersey: Prentice Hall.
Lawson W.J. 2003. Enhancing Assitive Technologies: Through The Theoritical
Adaptation of Biometric Technologies To People of Variable Abilities [Disertasi]
Kennedey-Western University.
http://www.icdri.org/biometrics/THEORETICAL%20ADAPTATION%20OF%20BIOME
TRIC%20TECHNOLOGIES%20TO%20PEOPLE.pdf [24 Nov 2005]
Liu, S., Silverman,M. 2001. A Practical Guide to Biometric Security Technology. IT
Professional, IEEE 3:27-32
Luman II, R. 2002. Dynamic Keystroke Analysis via Genetic Algorithm. Stanford
University. http://www.genetic-programming.org/sp2002/Luman.pdf [14 Mar 2005]
Maisuria, L.K., Cheng Soon Ong, Wen Kin Lai. 1999. A Comparison of Artificial Neural
Networks and Cluster Analysis for Typing Biometrics Authentication. Neural
Networks IJCNN, IEEE 5: 3295-3299.
Mamaladze, George. 2004. Processing Global Mouse and Keyboard Hooks in C#
[Artikel] http://www.codeproject.com/csharp/globalhook.asp [3 Juni 2004]
Mandujano, S.,Soto,R. Deterring Password Sharing: User Authentication via Fuzzy c-
Means Clustering Applied to Keystroke Biometric Data, Computer Science ENC
2004 IEEE 20-24 Sept. 2004:181-187.
Mantyjarvis, J., Koivumaki, J., Vuori, P. 2002. Keystroke Recognition for Virtual
Keyboard. Multimedia and Expo ICME, IEEE 2:429-432.
[NCSC] National Center for State Courts http://ctl.ncsc.dni.us/biomet%20web/
BMCompare.html [4 April 2005]
Obaidat, M.S., Maccahairolo,D.T. 1994. A Multilayer Neural Network System for
Computer Access Security. Systems, Man and Cybernetics, IEEE 24:806-813.
Obaidat, M.S., 1995. A Verification Methodology for Computer System Users.
Proceedings ACM symposium on Applied computing. Nashville, Tennessee
1995:258-262
Obaidat,M.S.,Sadoun, B. 1997. Verification of Computer Users Using Keystroke
Dynamics. Systems, Man and Cybernetics, IEEE 27(2): 261-269.
Ortega-Garcia, J., Biguin,J., Reynolds, D., Gonzalez-Rodriguez,J. 2004. Authentication
Gets Personal with Biometrics. Signal Processing Magazine, IEEE 21:50-62.
Peacock A., Xian Ke, Wilkerson M. 2004. Typing Patterns: A Key to User Identification.
Security & Privacy Magazine, IEEE 2(5):40-47.
Phillips, P. J., Martin,A., Wilson, C.L.,Przybocki,M. 2000. An Introduction to Evaluating
Biometric Systems. Computer, IEEE 33:56-63.
Prabhakar, S., Pankanti, S., Jain, A.K. 2003. Biometric Recognition: Security and
Privacy Concerns. Security & Privacy Magazine, IEEE 1(2): 33-42.
Uludag,U., Pankanti,S., Prabhakar,S., Jain,A.K. 2004. Biometric Cryptosystems : Issues
and Challenges. Proceedings of the IEEE, 92:948-960.
Yong Sheng, Phoha, V.V., Rovnyak,S.M. 2005. A Parallel Decision Tree-Based Method
for User Authentication Based on Keystroke Patte rns. Systems, Man and
Cybernetics IEEE 35(4): 826- 833.
Zhang Changshui, Sun Yanhua. 2000. AR Model for Keystroker Verification. Systems,
Man, and Cybernetics, IEEE 4:2887-2890.
LAMPIRAN
Lampiran 1 Penelitian Pendahuluan Analisis Kata Bahasa Indonesia
Tujuan dan Latar Belakang
Penelitian pendahuluan ini bertujuan untuk melihat kemungkinan dilakukannya
penyederhanaan jumlah pasangan karakter dari semua kemungkinan pasangan
karakter alfabet. Penyederhanaan dilakukan dengan melihat korelasi frekwensi
pasangan karakter tersebut ditemukan dalam kosa kata umum bahasa Indonesia.
Penyederhanaan diperlukan karena jika kita memperhitungkan semua kemungkinan
karakter alfabet sebagai berikut.
Dari sisi ukuran data :
Model data input yang digunakan berupa besaran waktu (satuan ms) dalam tiga
variabel input berupa vektor tiga dimensi d, i dan T seperti dalam gambar berikut.
Secara keseluruhan bila dibuat matriks (M0 dan M1) yang merepresentasikan
keseluruhan variabel yang digunakan akan berupa matriks berukuran 2x12x14x3. Dan
jika dinyatakan dalam besaran fuzzy dengan 5 kelas keanggotaan, maka ukuran
keseluruhan menjadi 2x12x14x3x5 = 5040 data bertipe bilangan real (Float). Jika 1
bilangan real dalam tipe float berukuran 32 bit maka keseluruhannya menjadi 5040x32
bit = 20160 Byte.
y u i o p h j k l b n m
q
w
e
r
t
a
s
d
f
g
z
x
c
v
Ketikan Pertama
Ketikan Kedua
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T
[ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T
[ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
Gambar Matriks Pertama M0 berukuran 14x12
q w e r t a s d f g z x c v
y
u
i
o
p
h
j
k
l
b
n
m
Ketikan Kedua
Ketikan Pertama
[ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T [ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
[ d i ]T
Gambar Matriks kedua M1 berukuran 12x14
Dari sisi kecepatan proses/pencarian jika setiap pasangan karakter diurai sesuai
dengan urutan indeks akan memakan waktu proses komputasi dan meningkatkan
jumlah loop secara signifikan.
Kegiatan Penelitian
Kegiatan Penelitian yang dilakukan adalah :
1. Melakukan analisis terhadap kata-kata umum bahasa Indonesia dan kemudian
menguraikannya ke dalam pasangan-pasangan karakter yang telah ditentukan
kriterianya.
2. Penelitian ini menjadi acuan untuk membatasi lingkup permasalahan yakni
hanya 26 karakter alfabet saja dan tidak lagi menyertakan 10 karakter angka
sehingga secara signifikan mengurangi jumlah pasangan karakter yang mungkin.
a. Jumlah pasangan karakter alfabet yang mungkin adalah : 12x14x2 = 336
pasangan.
b. Jika kita juga menyertakan 10 karakter angka maka : 336+(130x2)
pasangan = 596 pasangan
3. Dari ke-336 pasangan diatas dicari pasangan karakter yang dominan yang akan
digunakan sebagai referensi untuk menentukan data pelatihan dan data
informasi karakteristik biometrik pengguna. Jadi kita tidak perlu menyimpan
informasi semua pasangan karakter kedalam database karena pada faktanya
tidak semua pasangan karakter tersebut umum ditemui dalam bahasa Indonesia.
Informasi yang disimpan hanyalah informasi dari pasangan karakter yang
dominan saja (umum ditemui).
Jika gambar layout keyboard diurai dalam bentuk tabel lengkap untuk ke-26 karakter
sebagai berikut.
Tabel Isian Analisis Kosakata
Keterangan :
Kolom pertama menyatakan karakter yang diketik sebagai urutan pertama
Baris pertama menyatakan karakter yang diketik sebagai urutan kedua.
Tanda X menyatakan pasangan yang tidak dihitung/dikutsertakan misalnya :
y-y menandakan dua kali pengetikan huruf y secara berturutan tidak dihitung.
y-u menandakan pengetikan huruf y dan huruf u yang berada dalam jalur baris yang
sama, ini juga tidak dihitung karena berada di area yang dianggap masih berdekatan
dan tidak menggambarkan pergerakan tangan kanan dan kiri sebagaimana yang
diinginkan dalam penelitian ini.
y-h menandakan pengetikan huruf y dan huruf h yang masih berada dalam jalur kolom
yang berdekatan di peta keyboard, ini juga tidak dihitung karena berada di area yang
masih/terlalu berdekatan dan tidak menggambarkan pergerakan tangan kanan dan kiri
sebagaimana yang diinginkan dalam penelitian ini.
Selanjutnya pengelompokkan kedalam 18 kwadran (sebagaimana dinyatakan
dalam bilangan 1 hingga 18 dalam gambar diatas).
Kwadran 1 menyatakan :
Kwadran 2 menyatakan :
Dan seterusnya sampai dengan 18 (2x3x3) sesuai tabel di atas.
4. Kemudian dilakukan pemilihan kata-kata kedalam kategori bermakna nama
tempat, jenis hewan, jenis tumbuhan dan nama perkakas. Jumlah kata sebanyak
756 kata yang terdiri dari :
a. Kata bermakna nama tempat : 9x27 = 243
b. Kata bermakna jenis hewan : 5x27 = 135
c. Kata bermakna jenis tumbuhan : 6x27 = 162
d. Kata bermakna nama peralatan/perkakas : 8x27 = 216
Contoh perhitungan kata yang dianalisis :
Tabel Contoh Analisis Kosakata
Hasil yang diperoleh sebagai berikut.
1. Untuk Kata bermakna nama tempat diperoleh 871 pasangan karakter yang
bersesuaian.
Tabel Hasil Analisis Kata Bermakna Nama Tempat
Dan jika dikelompokkan kedalam 18 Kwadran, maka :
Gambar Grafik Analisis Kwadran Kata Bermakna Nama Tempat
2. Kata bermakna jenis hewan diperoleh 439 pasangan karakter yang bersesuaian.
Tabel Hasil Analisis Kata Bermakna Jenis Hewan
Kwadran Jumlah
17 143
6 120
4 93
11 91
14 80
10 77
5 71
1 68
3 36
16 34
7 23
13 19
2 14
18 2
8 0
9 0
12 0
15 0
0
20
40
60
80
100
120
140
160
17 6 4 11 14 10 5 1 3 16 7 13 2 18 8 9 12 15
Jika dikelompokkan kedalam 18 kwadran :
Kwadran Jumlah
17 69
1 57
6 41
11 41
14 36
4 35
10 35
5 29
16 24
13 20
2 17
3 15
7 13
12 5
18 2
8 0
9 0
15 0
0
10
20
30
40
50
60
70
17 1 6 11 14 4 10 5 16 13 2 3 7 12 18 8 9 15
Gambar Grafik Analisis Kwadran Kata Bermakna Nama Hewan
3. Untuk Kata bermakna jenis tumbuhan diperoleh 574 pasangan karakter yang
bersesuaian.
Tabel Hasil Analisis Kata Bermakna Jenis Tumbuhan
Jika dikelompokkan kedalam 18 kwadran :
0
10
20
30
40
50
60
70
80
90
17 6 14 4 5 1 11 10 3 13 16 2 7 18 12 8 9 15
Gambar Grafik Analisis Kwadran Kata Bermakna Jenis Tumbuhan
4. Kata bermakna nama perkakas diperoleh 569 pasangan karakter yang
bersesuaian.
Tabel Hasil Analisis Kata Bermakna Nama Perkakas
Jika dikelompokkan kedalam 18 Kwadran, maka :
0
10
20
30
40
50
60
70
80
90
17 6 1 5 14 10 4 3 11 13 16 2 7 18 12 8 9 15
Gambar Grafik Analisis Kwadran Kata Bermakna Nama Perkakas
Jika keseluruhannya dijumlahkan, maka :
Tabel Hasil Analisis Keseluruhan Pasangan
a-nn-gl-ae-nk-ab-ap-aa-lk-ea-ka-mm-ar-ie-lj-ab-ec-i
Gambar Grafik Analisis Keseluruhan Pasangan Karakter
Jika dikelompokkan kedalam 18 kwadran :
17
6
4
11
1
14
5
10
3
16
13
2
7
18
Gambar Grafik Analisis Kwadran Keseluruhan Pasangan Karakter
Kesimpulan
1. Dari keseluruhan kemungkinan 336 pasangan karakter alfabet bisa dilakukan
pengurangan (tidak diperlukan semuanya) karena memang tidak digunakan/tidak
lazim dijumpai dalam kosa kata bahasa Indonesia.
2. Dari 336 pasangan akan menjadi 129 pasangan saja. Dan dari 18 kwadran area
menjadi hanya 15 Kwadran yang digunakan.
3. Dari 129 pasangan karakter bila dilakukan penyederhanaan dengan mengambil
beberapa pasangan karakter yang paling banyak (dominan) maka diperoleh 5
besar terbanyak (25%) yakni an, ng, la, en, ka. Serta dari 15 Kwadran, akan
digunakan 5 kwadran saja (54%) yakni 17,6,4,11,1.
Tabel Lima Kwadran Terbanyak
Kwadran Pasangan Karakter yang sesuai (diatas 0.5%)
17 ng, ba, ma, na, nd
6 an, am, ab
4 su, au, ay, gu, di, du, gi, ai
11 pa, is, ia, ya, ua, us
1 ri, ti, ru, tu, ro, to, ep
4. Penyederhanaan ini menghasilkan penyederhanaan sebagai berikut.
a. Jumlah data pelatihan, yakni kata-kata yang hanya mengandung
pasangan karakter dominan tersebut.
b. Jumlah data dalam database, data hanya berisi untuk pasangan karakter
tersebut saja.
c. Peningkatan kinerja dan kecepatan proses dalam melakukan data
pelatihan, pencarian (searching/lookup database table) dan
penyimpanan/pengambilan data.
Lampiran 2 Perancangan Variabel Fuzzy
Secara lengkap, fungsi keanggotaan disajikan sebagai berikut.
Lampiran 3 Tabel Analisis Statistik Data Biometrik (15 Data Dari 5 Pengguna)
Lampiran 3 Tabel Analisis Statistik Data Biometrik (15 Data Dari 5 Pengguna)
Lampiran 3 Tabel Analisis Statistik Data Biometrik (15 Data Dari 5 Pengguna)
Lampiran 4 Contoh Model Data Pelatihan A Dan B – Abudiman4
Lampiran 4 Contoh Model Data pelatihan A dan B – abudiman4
Lampiran 5 Uji Parameter Jaringan Syaraf Tiruan
0
0.2
0.4
0.6
0.8
1
25 5080.
12 10010
9.83
120.17
128.7
7130
.1914
7.72 150
170.2
4 200 250 300 450
Uji 1 d – Model A untuk en
0
0.2
0.4
0.6
0.8
1
25 5070.
1086.
55 100
100.14
100.1
410
4.15121
.75 150
150.2
2 200 250 300 450
Uji 1 d – Model A untuk ka
0
0.2
0.4
0.6
0.8
1
25 5060.
0979.
7190.
13 100100
.1410
2.43
125.15 150
160.23 200 250 300 450
Uji 1 d – Model A untuk la
0
0.2
0.4
0.6
0.8
1
2540
.06 5092
.27 100
110.1
611
1.43
120.1
713
0.59 150
150.2
2 200 250 300 450
Uji 1 d – Model A untuk ng
0
0.2
0.4
0.6
0.8
1
2540.
06 5090.
21 100
109.4
611
0.16
120.1
712
8.71 150
150.2
2 200 250 300 450
Uji 1 d – Model A untuk ng-ba-ma-na-nd
0
0.2
0.4
0.6
0.8
1
25 5050.
0778
.3890
.1390
.1395
.98 100
113.5
914
0.20 15
020
025
030
045
0
Uji 1 d – Model A untuk pa-is-ia-ya-ua-us
0
0.2
0.4
0.6
0.8
1
25 5080.
12 100
109.3
812
0.17
120.1
712
3.75
138.1
2 150
150.2
2 200 250 300 450
Uji 1 d – Model A untuk ri-ti-ru-tu-ro-ep
0
0.2
0.4
0.6
0.8
1
25 50
70.1
0
100
102.
45
110.
16
120.
17
129.
34 150
156.
24 200
200.
29 250
300
450
Uji 1d –Model A untuk su-au-ay-gu-di-du-gi-ai
Lampiran 5 Uji Parameter Jaringan Syaraf Tiruan
0
0.2
0.4
0.6
0.8
1
50.00
75.00
200.0
0
320.4
632
5.00
386.9
145
0.00
490.7
150
3.90
575.0
059
0.85
620.8
970
0.00
901.3
0
1000.0
0
Uji 1 i – Model A untuk en
0
0.2
0.4
0.6
0.8
1
50.00
75.00
200.00
320.46
325.0
0375
.07440
.6344
6.89
450.00
450.65
518.7
1575
.00700
.0070
1.01
1000
.00
Uji 1 i – Model A untuk ka
0
0.2
0.4
0.6
0.8
1
50.00
75.00
200.0
022
0.32
325.0
0
352.1
040
0.58
420.6
042
9.76
450.0
050
7.42
575.0
062
0.89
700.0
0
1000.0
0
Uji 1 i – Model A untuk la
0
0.2
0.4
0.6
0.8
1
50.00
75.00
180.2
620
0.00
309.6
232
5.00
350.5
039
0.56
418.4
645
0.00
527.2
957
5.00
700.0
0
871.2
5
1000
.00
Uji 1 i – Model A untuk ng
0
0.2
0.4
0.6
0.8
1
50.00
75.00
180.2
620
0.0032
1.63
325.0
040
0.58
400.5
8
428.0
745
0.00
534.5
057
5.00
700.0
087
1.25
1000.0
0
Uji 1 i – Model A untuk ng-ba-ma-na-nd
0
0.2
0.4
0.6
0.8
1
50.00
75.00
200.0
023
0.3332
5.0035
4.9645
0.00
450.6
546
0.0546
0.6656
5.1357
5.00
700.0
082
1.18
1000.0
0
Uji 1 i – Model A untuk pa-is-ia-ya-ua-us
0
0.2
0.4
0.6
0.8
1
50.0
0
75.0
0
200.
00
280.
40
325.
00
362.
60
450.
00
455.
66
473.
25
490.
71
575.
00
583.
90
700.
00
851.
22
1000
.00
Uji 1 i – Model A untuk ri-ti-ru-tu-ro-ep
0
0.2
0.4
0.6
0.8
1
50.00
75.00
200.00
325.0
035
0.50
450.0
047
7.24
575.00
599.4
961
0.88
610.88
700.0
072
1.74
901.3
0
1000.0
0
Uji 1 i –Model A untuksu-au-ay-gu-di-du-gi-ai
Lampiran 5 Uji Parameter Jaringan Syaraf Tiruan
0
0.2
0.4
0.6
0.8
1
75.00
125.00
300.0
0430
.62475
.0050
0.41
580.84
611.00
650.0
0711
.02721
.5882
5.00
951.37
1000.0
0
1500.0
0
Uji 1 T – Model A untuk en
0
0.2
0.4
0.6
0.8
1
75.00
125.0
030
0.0046
0.66
475.0
053
8.70
580.8
4595
.86607
.1265
0.00
675.5
582
5.00
831.2
0
1000
.00
1500
.00
Uji 1 T – Model A untuk ka
0
0.2
0.4
0.6
0.8
1
75.0
0
125.
00
300.
00
380.
55
475.
00
521.
24
580.
84
580.
84
594.
28
650.
00
667.
32
771.
11
825.
00
1000
.00
1500
.00
Uji 1 T – Model A untuk la
0
0.2
0.4
0.6
0.8
1
75.00
125.00
290.42
300.0
043
2.90
475.0
0480
.69510
.7353
2.58
632.2
765
0.00
825.00
991.43
1000
.00
1500
.00
Uji 1 T – Model A untuk ng
0
0.2
0.4
0.6
0.8
1
75.0
0
125.
00
290.
42
300.
00
450.
94
470.
68
475.
00
530.
76
555.
30
650.
00
659.
66
825.
00
991.
43
1000
.00
1500
.00
Uji 1 T – Model A untuk ng-ba-ma-na-nd
0
0.2
0.4
0.6
0.8
1
75.0
0
125.
00
300.
00
390.
56
475.
00
513.
48
600.
86
600.
86
615.
89
650.
00
718.
29
825.
00
941.
35
1000
.00
1500
.00
Uji 1 T – Model A untuk pa-is-ia-ya-ua-us
0
0.2
0.4
0.6
0.8
1
75.00
125.0
030
0.00
370.5
345
6.96
475.0
055
0.79
566.5
362
0.89
650.0
067
6.09
825.0
093
1.34
1000
.00
1500.0
0
Uji 1 T – Model A untuk ri-ti-ru-tu-ro-ep
0
0.2
0.4
0.6
0.8
1
75.00
125.0
030
0.00
470.6
8475
.0058
0.60
650.0
069
8.79
711.0
271
1.02
816.9
9825
.0099
1.43
1000.0
0
1500
.00
Uji 1T–Model A untuksu-au-ay-gu-di-du-gi-ai
Lampiran 5 Uji Parameter Jaringan Syaraf Tiruan
Untuk Uji 2, data uji adalah keseluruhan data yang diambil dari pengukuran.
0
0.2
0.4
0.6
0.8
1
80.1
2
100.
14
110.
16
120.
17
120.
17
120.
17
130.
19
130.
19
140.
20
140.
20
150.
22
150.
22
170.
24
Uji 2 d – Model A untuk en
0
0.2
0.4
0.6
0.8
1
70.10
80.12
90.13
100.1
4
100.1
4
100.1
4
110.1
6
110.1
6
120.1
7
120.1
7
Uji 2 d – Model A untuk ka
0
0.2
0.4
0.6
0.8
1
60.09
70.10
80.12
90.13
90.13
90.13
110.1
6
110.1
611
0.16
120.1
7
120.1
7
150.2
2
Uji 2 d – Model A untuk la
0
0.2
0.4
0.6
0.8
1
40.0
6
80.1
2
90.1
3
100.
14
110.
16
110.
16
110.
16
120.
17
120.
17
120.
17
130.
19
130.
19
140.
20
Uji 2 d – Model A untuk ng
0
0.2
0.4
0.6
0.8
1
40.0
6
80.1
2
90.1
3
100.
14
100.
14
110.
16
110.
16
110.
16
120.
17
120.
17
120.
17
130.
19
140.
20
Uji 2 d – Model A untuk ng-ba-ma-na-nd
0
0.2
0.4
0.6
0.8
1
50.07
80.12
80.12
80.12
90.13
90.13
90.13
100.1
4
100.1
4
110.1
6
110.1
6
120.1
7
Uji 2 d – Model A untuk pa-is-ia-ya-ua-us
0
0.2
0.4
0.6
0.8
1
80.12
110.1
6
110.1
612
0.17
120.1
712
0.17
120.1
7
130.1
913
0.19
140.2
014
0.20
140.2
0
Uji 2 d – Model A untuk ri-ti-ru-tu-ro-ep
0
0.2
0.4
0.6
0.8
1
70.10
100.1
4
110.1
6
110.1
6
110.1
6
120.1
7
120.1
7
130.1
9
140.2
0
150.2
2
160.2
3
180.2
6
Uji 2 d –Model A untuksu-au-ay-gu-di-du-gi-ai
0
0.2
0.4
0.6
0.8
1
320.
46
350.
50
400.
58
410.
59
430.
62
450.
65
490.
71
510.
73
570.
82
590.
85
610.
88
670.
96
901.
30
Uji 2 i – Model A untuk en
0
0.2
0.4
0.6
0.8
1
320.4
6
350.5
0
400.5
8
410.5
9
420.6
0
450.6
5
450.6
5
470.6
8
510.7
3
520.7
5
Uji 2 i – Model A untuk ka
0
0.2
0.4
0.6
0.8
1
220.3
2
350.5
037
0.53
390.5
6
400.5
841
0.59
420.6
044
0.63
450.6
5
510.7
353
0.76
560.8
1
Uji 2 i – Model A untuk la
0
0.2
0.4
0.6
0.8
1
180.
26
330.
48
340.
49
350.
50
360.
52
370.
53
390.
56
400.
58
410.
59
440.
63
480.
69
550.
79
660.
95
Uji 2 i – Model A untuk ng
0
0.2
0.4
0.6
0.8
1
180.
26
330.
48
350.
50
360.
52
370.
53
380.
55
400.
58
410.
59
430.
62
460.
66
500.
72
570.
82
660.
95
Uji 2 i – Model A untuk ng-ba-ma-na-nd
0
0.2
0.4
0.6
0.8
1
230.3
335
0.50
370.5
339
0.5641
0.59
430.6
245
0.6546
0.66
480.6
950
0.7254
0.78
660.9
5
Uji 2 i – Model A untuk pa-is-ia-ya-ua-us
0
0.2
0.4
0.6
0.8
1
280.4
0
370.5
3
390.5
6
400.5
8
420.6
043
0.6246
0.66
480.6
949
0.7153
0.76
550.7
9
761.0
9
Uji 2 i – Model A untuk ri-ti-ru-tu-ro-ep
0
0.2
0.4
0.6
0.8
1
350.5
042
0.6046
0.6651
0.73
560.8
159
0.8561
0.8862
0.8965
0.9469
0.9973
1.0577
1.11
Uji2i –Model Auntuk su-au-ay-gu-di-du-gi-ai
0
0.2
0.4
0.6
0.8
1
430.
62
480.
69
500.
72
530.
76
540.
78
560.
81
580.
84
610.
88
650.
94
701.
01
711.
02
771.
11
951.
37
Uji 2 T – Model A untuk en
0
0.2
0.4
0.6
0.8
1
460.6
654
0.78
550.7
956
0.81
580.8
460
0.86
610.8
865
0.94
670.9
668
0.98
Uji 2 T – Model A untuk ka
0
0.2
0.4
0.6
0.8
1
380.5
5
520.7
554
0.78
550.7
9
560.8
158
0.84
590.8
561
0.88
630.9
1
660.9
567
0.96
731.0
5
Uji 2 T – Model A untuk la
0
0.2
0.4
0.6
0.8
1
290.
42
450.
65
460.
66
470.
68
480.
69
490.
71
510.
73
520.
75
530.
76
550.
79
580.
84
650.
94
761.
09
Uji 2 T – Model A untuk ng
0
0.2
0.4
0.6
0.8
1
290.
42
450.
65
470.
68
480.
69
500.
72
510.
73
530.
76
540.
78
570.
82
590.
85
630.
91
690.
99
771.
11
Uji 2 T – Model A untuk ng-ba-ma-na-nd
0
0.2
0.4
0.6
0.8
1
390.5
6
490.7
153
0.7656
0.81
570.8
259
0.85
600.8
662
0.8964
0.92
670.9
670
1.0179
1.14
Uji 2 T – Model A untuk pa-is-ia-ya-ua-us
0
0.2
0.4
0.6
0.8
1
370.5
345
0.6548
0.6950
0.72
510.7
3
530.7
655
0.79
570.8
261
0.8862
0.8965
0.94
831.2
0
Uji 2 T – Model A untuk ri-ti-ru-tu-ro-ep
0
0.2
0.4
0.6
0.8
1
470.6
852
0.7556
0.8162
0.8966
0.95
701.0
171
1.02
731.0
575
1.08
801.1
5
821.1
8
861.2
4
Uji 2 T – Model Auntuksu-au-ay-gu-di-du-gi-ai
Penentuan Parameter Jaringan Syaraf Tiruan- Pengaruh unit Bias
Pengaruh unit bias=1 terhadap laju penurunan kesalahan (Model pelatihan A –
kiri, model pelatihan B – kanan, epoch=2000, laju pembelajaran=0,1). Unit bias dapat
membantu mempercepat penurunan laju kesalahan namun relatif tidak memberikan
perbedaan berarti pada kisaran epoch=1000 sehingga merupakan alasan untuk tidak
menggunakan unit bias dalam JST di penelitian ini.
0.0000
0.5000
1.0000
1.5000
2.0000
2.5000
1 212 423 634 845 1056 1267 1478 1689 1900
Tanpa Bias
Bias=1
0.0000
0.5000
1.0000
1.5000
2.0000
2.5000
1 213 425 637 849 1061 1273 1485 1697 1909
Tanpa Bias
Bias=1
Lampiran 6 Tabel Lengkap Hasil Percobaan
JST bobot abudiman4 pelatihan A menguji abudiman1 (batas 0,75 atas; 0,5 bawah)
JST bobot abudiman4 pelatihan A menguji abudiman2 (batas 0,75 atas; 0,5 bawah)
JST bobot wningsih4 pelatihan A menguji wningsih1 (batas 0,75 atas; 0,5 bawah)
JST bobot wningsih4 pelatihan A menguji wningsih2 (batas 0,75 atas; 0,5 bawah)
JST bobot abudiman4 pelatihan A menguji abudiman3 (batas 0,75 atas; 0,5 bawah)
JST bobot wningsih4 pelatihan A menguji wningsih3 (batas 0,75 atas; 0,5 bawah)
JST bobot syafii2 pelatihan A menguji syafii1 (batas 0,75 atas; 0,5 bawah)
JST bobot risantod2 pelatihan A menguji risantod1 (batas 0,75 atas; 0,5 bawah)
JST bobot abudiman4 pelatihan B menguji abudiman1 (batas 0,75 atas; 0,5 bawah)
JST bobot abudiman4 pelatihan B menguji abudiman2 (batas 0,75 atas; 0,5 bawah)
JST bobot abudiman4 pelatihan B menguji abudiman3 (batas 0,75 atas; 0,5 bawah)
JST bobot risantod2 pelatihan B menguji risantod1 (batas 0,75 atas; 0,5 bawah)
JST bobot abudiman4 pelatihan A menguji data eksklusif diri sendiri
(batas 0,75 atas; 0,5 bawah)
JST bobot abudiman4 pelatihan B menguji data eksklusif dir sendiri
(batas 0,75 atas; 0,5 bawah)
JST bobot wningsih4 pelatihan A menguji data eksklusif diri sendiri
(batas 0,75 atas; 0,5 bawah)
JST Bobot wningsih4 pelatihan B menguji data eksklusif diri sendiri
(batas 0,75 atas; 0,5 bawah)
JST bobot risantod2 pelatihan A menguji data eksklusif diri sendiri
(batas 0,75 atas; 0,5 bawah)
JST bobot risantod2 pelatihan B menguji data eksklusif diri sendiri
(batas 0,75 atas; 0,5 bawah)
JST bobot syafii2 pelatihan A menguji data eksklusif diri sendiri
(batas 0,75 atas; 0,5 bawah)
JST bobot syafii2 pelatihan B menguji data eksklusif diri sendiri
(batas 0,75 atas; 0,5 bawah)
JST bobot mahyus1 pelatihan A menguji data eksklusif diri sendiri
(batas 0,75 atas; 0,5 bawah)
JST bobot mahyus1 pelatihan A menguji data eksklusif diri sendiri
(batas 0,75 atas; 0,5 bawah)
JST bobot risanto2 pelatihan A menguji data wningsih1 (batas 0,75 atas; 0,5 bawah)
JST bobot risanto2 pelatihan B menguji data wningsih1 (batas 0,75 atas; 0,5 bawah)
JST bobot risanto2 pelatihan A menguji data syafii1 (batas 0,75 atas; 0,5 bawah)
JST bobot risanto2 pelatihan B menguji data syafii1 (batas 0,75 atas; 0,5 bawah)
JST bobot risanto2 pelatihan A menguji data mahyus1 (batas 0,75 atas; 0,5 bawah)
JST bobot risanto2 pelatihan B menguji data mahyus1 (batas 0,75 atas; 0,5 bawah)
JST bobot abudiman4 pelatihan A menguji data wningsih4 (batas 0,75 atas; 0,5 bawah)
JST bobot abudiman4 pelatihan B menguji data wningsih4 (batas 0,75 atas; 0,5 bawah)
JST bobot abudiman4 pelatihan A menguji data mahyus2 (batas 0,75 atas; 0,5 bawah)
JST bobot abudiman4 pelatihan B menguji data mahyus2 (batas 0,75 atas; 0,5 bawah)
Lampiran 7 Struktur Basis Data
Struktur basis data (database) kosakata.mdb (aplikasi pengambilan data)
mempunyai 1 tabel table_kosakata dengan desain sebagai berikut.
Struktur database (aplikasi analisis data) dan tabel yang digunakan dalam
bentuk yang sederhana sebagai berikut.
Desain data pelatihan (training) tiap variabel d, I dan T masing-masing dalam
tabel terpisah.
Desain Data validasi tiap variabel d, I dan T masing-masing dalam tabel terpisah.
Tabel bobot_d, bobot_i dan bobot_T sebagai berikut.
Penulisan dalam tabel basis data menggunakan format teks sedangkan saat
proses pembacaan dilakukan konversi ke format bilangan yang sesuai (integer atau float
single). Ini bertujuan untuk kemudahan dalam melakukan copy-paste tabel dari/ke MS
Excell untuk kepentingan penulisan dan analisis data penelitian ini.
Keseluruhan tabel dalam basis data sebagai berikut.
Tidak ada entity relationship antar tabel dan sifatnya berdiri sendiri.