TUGAS AKHIR
PERANCANGAN SISTEM PENGAMANAN FILE DENGAN PASSWORD SUARA Diajukan Guna Melengkapi Salah Satu Persyaratan Untuk Memperoleh Gelar Sarjana ( S1 ) Program Study Teknik Telekomunikasi
Disusun Oleh : Udit Iwandito ( 01403 – 004 )
JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCU BUANA JAKARTA 2010
ABSTRAK Perancangan sistem pengamanan file dengan password suara pada penelitian ini dilakukan untuk menciptakan suatu aplikasi enkripsi file yang lebih aman dibandingkan dengan aplikasi enkripsi standar yang hanya memerlukan password berupa karakter. Solusi yang dipilih yaitu dengan penggunaan speaker verification sebagai pengganti password. Dengan kata lain, untuk membuka proteksi, user perlu megucapkan passwordnya. Metode penelitian yang dipakai yaitu studi pustaka dan analisis mengenai algoritma enkripsi dan metode pengenalan suara yang paling baik. Hasilnya merupakan sebuah aplikasi enkripsi file dengan password suara yang menggunakan algoritma enkipsi blowfish dan menggunakan metode Mel-Frequency Cepstrum Coefficients (MFCC) dan Vector Quantization sebagai metode untuk melakukan pengenalan pembicara (Speaker Verification). Setelah penelitian selesai, dapat disimpulkan bahwa enkripsi Blowfish termasuk algoritma enkripsi yang paling aman saat ini, dan MFCC – Vector Quantization (dengan VQ-distortion antara 2 sampai 3) merupakan metode pengenalan pembicara yang cukup baik, walaupun masih memerlukan lingkungan
yang
tidak
bising
dalam
perekaman
suara,
dan
cara
pengucapan/intonasi yang tidak berubah. Kata Kunci Pengenalan suara, speaker verification, enkripsi Blowfish, Mel-frequency Cepstrum Coefficients, Vector Quantization
KATA PENGANTAR Alhamdulillah, puji dan syukur kami panjatkan kehadirat ALLAH SWT, yang telah melimpahkan nitmat,rahmat dan karunia-Nya menyelesaikan penyusunan laporan Tugas Akhir ini dengan baik. Laporan Tugas Akhir ini kami susun sebagai pertanggung jawaban kami untuk memenuhi salah satu syarat dalam menyelesaikan program studi Strata 1 (S1), dengan beban sebanyak 6 sks. Laporan Tugas Akhir ini mengambil judul “PERANCANGAN SISTEM PENGAMANAN FILE DENGAN PSSWORD SUARA”. Yaitu sistem proteksi file dengan menggunakan password suara, dan file-file yang telah diproteksi tersebut dapat dibuka dengan mengucapkan password -nya kembali. Dengan ikhlas dan perasaan yang tulus kami ingin mengucapkan “terima kasih” kepada pihak yang telah membantu baik secara moril ataupun materil atas tersusunnya laporan Tugas Akhir ini. Ucapan terima kasih ini kami tujukan kepada: 1. Ibu dan Ayah kami tercinta, selaku orang tua yang telah memberikan doa dan biayanya dalam menyelesaikan Tugas Akhir ini. 2. Bapak. Dr,-ing. Mudrik Alaydrus, selaku pembimbing Tugas Akhir dan juga memberikan motivasi dan dukungannya. 3. Bapak Ir. Yudhi Gunardi, MT, selaku ketua jurusan Teknik Elektro, dan Koordinator Tugas Akhir. 4. Saudara Albertus Pramayudha, yang telah membantu dalam pengerjaan pembuatan program ini. 5. Teman-teman Angkatan 2003, yang telah memberikan dukungan serta doa tanpa saya sebutkan nama satu-persatu. 6. Semua pihak yang tak dapat penulis sebutkan satu persatu yang telah banyak membantu secara langsung maupun tidak langsung.
ii
Kami menyadari bahwa laporan TA ini masih banyak terdapat kekurangan ataupun kesalahan baik berupa penulisan, penyajian dan penyusunan. Oleh karena itu kami sangat mengharapkan kritik dan saran yang positif dan bersifat membangun dari semua pihak, sehingga penyusunan laporan TA ini akan menjadi lebih baik dan bermanfaat.
Jakarta, Agustus2010
Penulis
iii
DAFTAR ISI
HALAMAN JUDUL ..................................................................
i
KATA PENGANTAR .................................................................
ii
DAFTAR ISI ...............................................................................
iv
DAFTAR GAMBAR ..................................................................
vii
DAFTAR TABEL ....................................................................................
ix
BAB I
PENDAHULUAN ...................................................................
1
1.1
Latar Belakang .............................................................
1
1.2
Tujuan Penulisan ...........................................................
2
1.3
Batasan Masalah ...........................................................
2
1.4
Metode penelitian
........................................................
3
1.5
Sistematika Penulisan .....................................................
3
BAB II
LANDASAN TEORI 2.1
2.2
2.3
............................................................
4
Kriptografi ....................................................................
5
2.1.1
Sejarah Singkat...................................................
6
2.1.2
Symmetric dan Asymmetric Cryptosystem .......
6
2.1.3
Serangan Cryptanalyst .......................................
7
2.1.4
Password dan jenis kunci enkripsi lainnya.........
8
2.1.5
Penggunaan Enkripsi..........................................
9
Teknik Enkripsi Blowfish ..............................................
10
2.2.1
Latar Belakang ...................................................
10
2.2.2
Algoritma Blowfish............................................
11
Pengenalan Suara ...........................................................
13
2.3.1
Aplikasi Pengenalan Suara.................................
14
2.3.2
Proses Pengenalan Suara Secara Identifikasi dan Verifikasi..................................
iv
15
2.3.3
Aplikasi Pengenalan Suara secara Online dan offline ..............................................
16
2.3.4
Parameter Pengenalan Suara .............................
17
2.3.5
Faktor penyebab kesalahan proses Identifikasi dan verifikasi...................................
19
2.4
Pemprosesan Suara ........................................................
21
2.5
Pemprosesan Sinyal ........................................................
23
2.5.1
Mel-Frequency Cepstrum Coefficients ..............
25
2.5.1.1 Frame Blocking
.................................
26
........................................
27
2.5.1.3 FFT........................................................
29
2.5.1.4 Mel-Frequency wrapping ....................
33
2.5.1.5 Cepstrum .............................................
34
Vector Quantization ...........................................
34
PEMBAHASAN .......................................................
36
3.1
Gambaran Umum Sistem .............................................
36
3.2
Proses Enkripsi ...............................................................
37
3.2.1
Pemilihan File ....................................................
37
3.2.2
Perekaman Suara................................................
38
3.2.3
Enkripsi Blowfish ..............................................
38
3.2.4
Penyimpanan Hasil Deskripsi ............................
39
Proses Deskripsi .............................................................
39
3.3.1
Pemilihan File ....................................................
39
3.3.2
Perekaman Suara................................................
40
3.3.3
Feature Extraction ..............................................
40
3.3.4
Perhitungan Euclidean Distance ........................
40
3.3.5
Dekripsi Blowfish ...............................................
41
3.3.6
Penyimpanan Hasil Dekripsi..............................
41
2.5.1.2 Windowing
2.5.2
BAB III
3.3
v
3.4
Rancangan Layar ............................................................
41
3.4.1
Rancangan Layar Utama ....................................
42
3.4.2
Rancangan Layar Informasi ...............................
42
3.4.3
Perancangan Layar Enkripsi ..............................
43
3.4.4
Perancangan Layar Deskripsi.............................
44
State Transition Diagram ................................................
45
IMPLEMENTASI DAN EVALUASI ....................
47
3.5
BAB IV
4.1 4.2
4.3
Spesifikasi software dan Hardware yang Digunakan dalam Penelitian ..........................................
47
Tampilan Layar ...............................................................
47
4.2.1
Tampilan Layar Menu Utama ............................
48
4.2.2
Tampilan Layar Informasi..................................
48
4.2.3
Tampilan Layar Enkripsi....................................
49
4.2.4
Tampilan Layar Deskripsi..................................
51
Evaluasi Hasil Penelitian ................................................
54
4.3.1
Percobaan dengan menggunakan Password Sama Dengan User yang Sama ..........................
4.3.2
Percobaan dengan menggunakan Password Sama Pada User yang Berbeda ..........................
4.3.3
BAB V
57 61
Percobaan dengan menggunakan Password berbagai Macam Password ...............................................
63
PENUTUP .................................................................
65
5.1
Kesimpulan ..................................................................
65
5.2
Saran................................................................................
66
DAFTAR PUSTAKA
..........................................................................
67
LAMPIRAN .............................................................................................
68
vi
DAFTAR GAMBAR
Gambar 2.1
Perbedaan proses verifikasi suara pada proses Offline (atas) dan Online (bawah) .........................................................................
16
Gambar 2.2 Organ wicara manusia................................................................
21
Gambar 2.3a Sederet impuls yang sama ........................................................
22
Gambar 2.3b Variasi pada frekuensi pitch.....................................................
22
Gambar 2.4 Proses produksi suara, pembangkian ucapan /a/ panjang (atas), pembangkitan ucapan /f/ (bawah) ............................................
23
Gambar 2.5
Diagram Block Prapemprosesan Sinyal ..................................
24
Gambar 2.6
Input Suara ................................................................................
24
Gambar 2.7
Prosesor Mel-frequency Cepstrum Coefficients ........................
26
Gambar 2.8
Input Suara Setelah Melalui Tahap Frame Blocking ................
26
Gambar 2.9
Spektrum dengan Window Hanning .........................................
28
Gambar 2.10 Spektrum dengan Window Hamming .......................................
29
Gambar 2.11 Waktu Komputasi yang Diperlukan untuk Proses O(NlogN) ...
30
Gambar 2.12 Suatu Filter Segitiga ke i dengan tinggi l ..................................
33
Gambar 3.1 Skema Sistem ...........................................................................
36
Gambar 3.2 Hirarki Layar......................................... ....................................
41
Gambar 3.3 Rancangan Layar Utama...................................... ......................
42
vii
Gambar 3.4 Rancangan Layar Informasi...................................... .................
43
Gambar 3.5 Rancangan Layar Enkripsi...................................... ...................
44
Gambar 3.6 Rancangan Layar Deskripsi...................................... .................
44
Gambar 3.7 State Transition Diagram Pada Proses Enkripsi.......................................................................................
45
Gambar 3.8 State Transition Diagram Pada Proses Deskripsi...................................... ...............................................
46
Gambar 4.1 Tampilan Layar Menu Utama................................. ...................
51
Gambar 4.2 Tampilan Layar Informasi..........................................................
42
Gambar 4.3 Tampilan Layar Enkripsi............................................................
52
Gambar 4.4 Tampilan Layar Enkripsi Saat Memilih File............................................................................................
53
Gambar 4.5 Tampilan Kotak Pesan saat akan merekam Password pada Enkripsi.......................................................................................
53
Gambar 4.6 Tampilan Layar Enkripsi Dengan Pesan Berhasil......................
54
Gambar 4.7 Tampilan Layar Deskripsi..........................................................
55
Gambar 4.8 Tampilan Layar Deskripsi Saat Memilih File.......................... ..
55
Gambar 4.9 Tampilan Layar Deskripsi Dengan Pesan Berhasil....................
56
Gambar 4.10 Tampilan Layar Deskripsi Dengan Pesan Gagal......................
57
viii
DAFTAR TABEL
Tabel 2.1 Parameter Pengenalan Suara ......................................................... .. 17 Tabel 4.1 Percobaan dengan Password yang Sama dari User yang Sama yang diucapkan oleh Udit............................................................... .. 58 Tabel 4.2 Percobaan dengan Password yang Sama dari User yang Sama yang diucapkan oleh Harry ............................................................ .. 59 Tabel 4.3 Percobaan dengan Password yang Sama dari User yang Berbeda dengan password yang diucapkan oleh Udit ................................. .. 61 Tabel 4.4 Percobaan dengan Password yang Sama dari User yang Berbeda dengan password yang diucapkan oleh Harry................................ .. 62 Tabel 4.5 Percobaan dengan berbagai macam password dengan 5 percobaan ........................................................................................ .. 63
ix
BAB I PENDAHULUAN
1.1
Latar Belakang Masalah Di era teknologi informasi khususnya internet, keberadaan sistem proteksi
yang aman semakin diperlukan untuk menjamin keamanan data. Berbagai solusi proteksi tersedia seperti penggunaan password dalam bentuk karakter, pengenalan tanda tangan, pemindaian sidik jari, pemindaian retina/iris mata, dan lain-lain. Namun ada solusi yang cukup sederhana jika dilihat dari kebutuhan hardware, dan memiliki tingkat keamanan yang cukup tinggi. Solusi tersebut adalah pengenalan suara / voice recognition. Pengenalan suara semakin banyak digunakan saat ini. Mulai dari penggunaan suara untuk memberikan perintah-perintah pada komputer, voicedialing pada telepon selular, sampai penggunaan ucapan untuk mencatat report di bidang kedokteran. Pada sistem keamanan komputer pun pengenalan suara sudah mulai banyak digunakan, karena sistem ini tidak mudah untuk ditembus, dan tidak terlalu memerlukan hardware tambahan. Cukup dengan mikrofon dan sound card standar. Dalam penelitian ini, sistem proteksi dikhususkan pada enkripsi file. Sistem enkripsi file yang kebanyakan tersedia sekarang ini hanya membutuhkan karakter
1
beberapa digit sebagai password untuk memproteksi dan membuka proteksi. Namun, seringkali password berupa karakter ini dianggap kurang memadai, karena bila password tersebut diperoleh orang lain, maka orang tersebut akan dapat membuka proteksi dengan mudah. Di bagian inilah pengenalan suara diterapkan. Password itu diganti bentuknya menjadi sinyal suara. Suara setiap orang adalah khas. Maka, hanya orang yang melakukan proteksi yang dapat membukanya. Gabungan dari teknik enkripsi yang baik dan pengenalan suara yang akurat menjadikan sistem proteksi seperti ini mempunyai tingkat keamanan yang tinggi.
1.2
Tujuan Penulisan Pembuatan aplikasi ini bertujuan untuk menyediakan sistem proteksi file
dengan menggunakan password suara, dan file-file yang telah diproteksi tersebut dapat dibuka dengan mengucapkan password -nya kembali. Manfaatnya adalah memberikan alternatif pengamanan data yang mudah dan terjamin keamanannya.
1.3
Batasan Masalah Aplikasi dari perancangan sistem ini, penulis membatasi masalahnya pada
Membahas analisa, perancangan sistem, implementasi dan evaluasi program tersebut.
2
1.4
Metode Penelitian Untuk menyelesaikan skripsi ini, dilakukan dengan menggunakan metode
penelitian sebagai berikut : a. Studi Kepustakaan Mencari dan mempelajari teori-teori yang diperlukan melalui buku-buku, dokumen-dokumen, diktat dan catatan kuliah serta artikel-artikel yang diperoleh dari internet b. Penelitian Perancangan aplikasi dan simulasi sistem pengamanan file dengan menggunakan perangkat lunak visual basic 6.0, dilanjutkan dengan implementasi dan evaluasi dari aplikasi sistem tersebut.
1.5
Sistematika Penulisan Isi dari skripsi yang terdiri dari 5 bab ini secara garis besar adalah : Bab 1: Pendahuluan Pada Bab ini dibahas tentang latar belakang , tujuan, dan manfaat dari penulisan skripsi ini. Selain itu juga dibahas mengenai metodologi penelitian yang dipakai dalam penulisan skripsi ini. Bab 2: Landasan Teori Pada bab ini akan dibahas mengenai teori-teori yang menunjang untuk membuat aplikasi ini. Teori-teori itu antara lain teori mengenai teknik enkripsi yang kami gunakan (Blowfish Encryption), teori dalam melakukan ekstraksi fitur (feature extraction ) yaitu Mel-frequency
3
Cepstrum Coefficient, dan teori untuk melakukan pengenalan suara, yaitu Vector Quantization Bab 3: Analisis dan Perancangan Pada yang
dibagi
bab
ini
menjadi
diuraikan
mengenai
rancangan
aplikasi,
dua bagian, yaitu proses enkripsi dan proses
dekripsi. Masing-masing proses dibahas secara detil mulai dari proses pengambilan suara, proses ekstraksi fitur, proses pengenalan suara, dan proses enkripsi/dekripsi. Bab ini juga berisi State Transition Diagram (STD) dan rancangan layar yang akan digunakan sebagai antarmuka aplikasi ini. Bab 4: Implementasi dan Evaluasi Setelah
program
selesai
dibuat,
selanjutnya
dilakukan
implementasi dan evaluasi program tersebut. Evaluasi dilakukan dengan melakukan serangkaian uji coba / testing untuk mengetahui, seberapa baik tingkat pengenalan suaranya. Bab 5: Kesimpulan dan Saran Berisi tentang kesimpulan dan saran bahasan permasalahan dari Tugas akhir ini.
4
BAB II LANDASAN TEORI
Bab ini menjabarkan teori-teori yang kami gunakan sebagai landasan untuk membuat aplikasi ini, dan juga sejarah dibalik perkembangannya. Dimulai dari kriptografi, sebagai landasan untuk enkripsi, algoritma enkripsi Blowfish, sejarah pengenalan suara, sinyal analog, sinyal digital, dan pengenalan pembicara (speaker recognition).
2.1
Kriptografi Kriptografi menurut Burton (2002, p144) adalah suatu teknik atau metode
yang bertujuan untuk melindungi informasi yang dikirimkan melalui jaringan komunikasi publik. Proses kriptografi dilakukan dengan memberikan suatu nilai untuk setiap satuaninformasi terkecil, lalu juga membutuhkan variabel lain yang disebut kunci enkripsi (encryption key) untuk melakukan transformasi pergeseran terhadap informasi yang akan dienkripsi (Denning, 1983, p1). Kriptanalisis (cryptanalysis) merupakan ilmu dan seni pembongkaran data, informasi atau pesan. Kriptologi adalah paduan dari kriptografi dan kriptanalisis.Fungsi-fungsi yang mendasar dalam kriptografi adalah enkripsi dan dekripsi. Enkripsi adalah suatu proses mengubah pesan asli (plain text) menjadi suatu pesan dalam bahasa sandi (cypher text). Sedangkan dekripsi adalah proses mengubah pesan dalam suatu bahasa sandi menjadi bahasa asli kembali. Cryptanalyst adalah seorang
5
pakar kriptografi yang mempelajari atau mengamati suatu cyphertext dan pada umumnya bermaksud untuk membongkar ciphertext tersebut. 2.1.1 Sejarah Singkat Enkripsi bukanlah barang baru dalam memproteksi suatu informasi. Enkripsi sudah dimulai digunakan sejak tahun 1900 SM, yaitu berupa surat rahasia dimana hanya orang tertentu yang dituju mengetahui cara membacanya. Salah satu yang dikenal pada saat itu adalah ‘Julius Cipher’ atau ‘Caesar Cipher’(Stallings, 1995, p29), enkripsi sederhana yang dibuat oleh Julius Caesar untuk mengirimkan surat rahasianya, yang nantinya dikenal juga dengan shift transformation cryptosystem, yaitu sistem enkripsi dengan cara menggeser hurufhuruf dalam setiap pesannya sejauh tiga huruf. 2.1.2
Symmetric dan Asymmetric Cryptosystem Cryptography dibagi menjadi dua jenis berdasarkan jumlah kunci yang
dipakai, yaitu symmetric cryptosystem dan asymmetric cryptosystem. Symmetric cryptosystem adalah cryptosystem yang menggunakan satu kunci enkripsi yang sama untuk proses enkripsi maupun dekripsi (Columbitect, 2001). Contohnya adalah Shift Transformation Cryptosystem. Asymmetic cryptosystem adalah cryptosystem yang menggunakan dua kunci enkripsi berbeda yang dikenal dengan public key dan private key untuk melakukan enkripsi dan dekripsi (Columbitech, 2001). Jenis enkripsi ini pertama kali diperkenalkan oleh Whitfield Diffie (1975) yangdikenal sebagai Public-Key Cryptography (Stallings, 1995, p164-165). Jadi
6
kita dapat memberikan private key kepada orang lain yang ingin mengakses informasi yang kita enkripsi tanpa diketahui kunci enkripsinya. 2.1.3 Serangan Cryptanalyst Cryptanalysis
adalah
ilmu
pembongkaran
suatu
plaintext
tanpa
menggunakan key. Cryptanalysis yang berhasil dapat membongkar plaintext atau key dari suatu cryptosystem dan dapat menemukan kelemahan dalam suatu cryptosystem sehingga pada akhirnya memudahkannya membongkar plaintext atau key tersebut. Suatu percobaan untuk membongkar suatu cryptosystem disebut attack (serangan). Terdapat enam jenis serangan cryptanalysis, diurutkan berdasarkan kekuatan. Setiap serangan berasumsi bahwa seorang cryptanalyst mempunyai pengetahuan lengkap mengenai algoritma enkripsi yang digunakan. a. Ciphertext-only attack Pada serangan ini cryptanalyst mempunyai ciphertext dari beberapa pesan, yang kesemuanya telah di-encrypt menggunakan algoritma enkripsi yang sama. b. Known-plaintext attack Cryptanalyst tidak hanya mempunyai ciphertext dari beberapa pesan, tetapi juga mempunyai plaintext dari pesan-pesan tersebut. c. Chosen-plaintext attack Cryptanalyst tidak hanyak mempunyai pasangan ciphertext dan plaintext dari beberapa pesan tetapi juga memilih plaintext yang telah diencrypt. Serangan jenis ini lebih kuat dari known-plaintext attack karena
7
cryptanalyst dapat memilih blok plaintext tertentu yang mungkin menghasilkan lebih banyak informasi mengenai key-ny d. Adaptive-chosen plaintext attack Ini
adalah
kondisi
khusus
dari
chosen-plaintext
attack.
Cryptanalyst tidakhanyak dapat memilih plaintext untuk di-encrypt tetapi juga
dapat
memodifikasi
pilihannya
berdasarkan
hasil
enkripsi
sebelumnya. Dalam chosen-plaintext attack, cryptanalyst mungkin hanya dapat memilih satu blok besar plaintext untuk di-encrypt, sedangkan pada adaptive-chosen-plaintext attact cryptanalyst dapat memilih suatu blok plaintext yang lebih kecil dan kemudian memilih blok lainnya berdasarkan hasil enkripsi sebelumnya. e. Chosen-ciphertext attack Cryptanalyst dapat memilih ciphertext yang berlainan untuk didecrypt dan mempunyai akses terhadap plaintext hasil dekripsi. f. Chosen-key attack Ini bukanlah suatu attack jika key-nya diberikan.
2.1.4
Password dan Jenis Kunci Enkripsi Lainnya Cryptosystem yang dibuat saat ini bisa menerima kunci enkripsi berupa
password yaitu sederetan huruf dan atau angka (pass-phrase) membentuk satu kata atau lebih (Denning, 1983, p162). Menurut Stallings (1995, p213), password sebagai kunci enkripsi merupakan jenis enkripsi yang paling sering digunakan orang dalam melakukan pengamanan atau pembatasan akses informasi pribadi.
8
Sekarang dengan bantuan teknologi canggih dan digital/abstract multimedia interfaces, maka pola muka, sidik jari, sidik retina, pola suara, atau pola panas tubuh (atau gabungan keseluruhannya) bisa dijadikan kunci enkripsi yang paling baik. 2.1.5 Penggunaan Enkripsi Miller (2000) membuat tiga kelompok yang membutuhkan cryptography, yaitu: a. Pengguna Individual Cryptography sebagai kebutuhan individual terlihat dengan dibuatnya software enkripsi yang mampu mengamankan direktori atau software khusus untuk pembuatan suatu dokumen pasti memiliki kemampuan untuk mengamankan informasi di dalamnya dengan suatu enkripsi. Di internet terdapat pula jasa e-mail yang memiliki fasilitas enkripsi. b. Perdagangan Sejak booming-nya perdagangan dan penggunaan internet maka peranan cryptography dalam dunia perdangan semakin diperlukan. Kebutuhan enkripsi ini dapat berupa kebutuhan pelanggan akan keamanan ketika melakukan transaksi online. Misalnya ketika seorang nasabah melakukan online-banking, pembelian, penjualan atau transaksi bisnis lainnya, maka data rahasia nasabah berupa nomor rekening, PIN, dan lainnya perlu dijaga dari pihak lain. Dan untuk melakukannya, diperlukan teknik enkripsi yang baik. Hal ini juga mendorong diciptakannya berbagai macam algoritma dan teknik crpytography.
9
c. Pihak militer Di bidang militer, cryptography digunakan untuk telekomunikasi melalui telepon, radio, visual, dan untuk pengamanan jaringan komputer dalam ruang militer. Sebagai contoh, pengacakan sinyal sistem pelacakan melalui satelit pada Global Positioning System (GPS) ke alat telekomunikasi agar arah bicara dan transfer suara melalui alat tersebut tidak dapat disadap oleh pihak lain.Kebalikan dari itu seorang crpytanalyst juga diperlukan untuk mendekripsi informasi dari seluruh musuh atau pihak lain yang ingin disadap balik, jadi ada sifat kebutuhan timbal-balik.
2.2
Teknik Enkripsi Blowfish Blowfish Encryption adalah enkripsi 64-bit block cipher dengan
menggunakan variable-length key, yang bisa mencapai 448 bit. Blowfish diciptakan oleh Bruce Schneier pada tahun 1993. 2.2.1 Latar Belakang Blowfish muncul sebagai standar baru, setelah algoritma enkripsi DES, yang sudah dipakai selama 15 tahun dan menggunakan 56-bit key, sudah sangat rentan terhadap penyerangan. Banyak algoritma enkripsi rahasia seperti Khufu, REDOC, atau IDEA. Namun algoritma-algoritma tersebut dilindungi oleh hak paten, sehingga masyarakat tidak dapat menggunakannya dengan bebas. Dunia tentu saja memerlukan algoritma enkripsi yang aman, tidak dipatenkan,dan dapat digunakan secara gratis. Maka itu, dikembangkanlah algoritma yang dapat memenuhi tuntuan tersebut.
10
Blowfish muncul sebagai algoritma yang dianggap paling memenuhi tuntuan diatas, selain berbagai tuntutan teknis lainnya. Namun algoritma ini juga memiliki keterbatasan. Blowfish hanya cocok untuk aplikasi yang key-nya tidak terlalu sering berganti, seperti communications link atau automatic file encryptor. Namun Blowfish lebih cepat secara signifikan dibanding DES ketika diimplementasikan pada mikroprosesor 32-bit dengan data caches yang besar, seperti Pentium dan PowerPC. 2.2.2 Algoritma Blowfish Algoritma Blowfish terdiri dari dua bagian, yaitu bagian key-expansion, dan bagian data-encryption. Key-expansion mengubah key 448 bit menjadi beberapa array subkey dengan total 4168 byte. Enkripsi data berlangsung via Fiestel network sebanyak 16 round. Setiap round terdiri dari permutasi key-dependent, dan key-and-data-dependentsubstitution. Semua operasi adalah operasi XOR dan penjumlahan 32 bit. Satusatunya operasi tambahan adalah pencarian array ber-indeks 4 pada setiap round. Blowfish menggunakan banyak subkey, yang harus dihitung sebelum melakukan enkripsi atau dekripsi. P array terdiri dari 32-bit subkey yang berjumlah 18 (P1, P2,...,P18) dan ada 4 buah 32-bit S-box, masing-masing dengan 256 entry, yaitu : S1,0, S1,1, ..., S1,255; S2,0, S2,1, ..., S2,255; S3,0, S3,1, ..., S3,255; S4,0, S4,1, ..., S4,255.
11
Berikut adalah langkah-langkah dalam membuat subkey: 1.
Inisialisasikan terlebih dahulu P-array, lalu 4 S-boxes, secara berurutan dengan panjang string tetap. String ini terdiri dari digit heksadesimal dari Pi. Contoh: P1 = 0x243f6a88 P2 = 0x85a308d3 P3 = 0x13198a2e P4 = 0x03707344
2.
XOR P1 dengan 32-bit pertama dari key, XOR P2 dengan 32-bit kedua dari key, dan selanjutnya untuk semua bit dari key. Lakukan perulangan sampai seluruh P-array sudah di-XOR dengan key.
3. Enkrip semua string nol dengan algoritma Blowfish, menggunakan subkey yang dipakai pada langkah (1) dan (2). 4.
Ganti P1 dan P2 dengan output dari langkah (3).
5.
Enkrip output dari langkah (3) dengan menggunakan algoritma Blowfish dengan menggunakan subkey yang sudah dimodifikasi.
6. Ganti P3 dan P4 dengan output dari langkah (5). 7. Lanjutkan proses, mengganti semua entry dari P- array, lalu ke-empat Sbox secara berurutan, dengan output dari algoritma Blowfish yang berganti secara kontinu. Input sebanyak 64 bit dibagi menjadi dua bagian, lalu dilakukan operasi XOR dengan ke-16 subkey pertama, dan operasi pertukaran antara kedua bagian tersebut dalam sebuah perulangan sebanyak 16 kali. Setelah itu, kembali
12
dilakukan pertukaran,dan dilanjutkan dengan operasi XOR dengan subkey ke-17 dan ke-18. Akhirnya, kedua bagian tersebut digabungkan kembali, dan proses enkripsi telah selesai. Untuk melakukan dekripsi, prosesnya sama persis dengan enkripsi, hanya saja,P1, P2, ... , P18 digunakan dalam urutan terbalik. Filosofi dari Blowfish adalah kesederhanaan design membuat algoritma lebih mudah untuk dimengerti dan diimplementasi. Algoritma Blowfish tidak dipatenkan, dan algoritma tersebut dapat diakses oleh publik dan dapat dipergunakan dengan bebas. Sehingga, orang-orang yang membutuhkan algoritma enkripsi yang aman dapat mempergunakannya tanpa memerlukan ijin atau hak cipta apapun.
2.3
Pengenalan Suara Pengenalan suara (speech recognition) adalah suatu proses untuk
mengenali huruf, kata atau kalimat yang diucapkan. Pengenalan suara lebih dikenal dengan istilah Automatic Speech Recognition atau Computer
Speech
Recognition dimana penggunaan sebuah mesin/komputer untuk mengenali sebuah suara atau identitas seseorang dari suara yang diucapkan. Umumnya pengucap berbicara di depan komputer/mesin kemudian komputer/mesin mengenali suara/identitas seseorang dengan tepat sesuai yang diucapkan. Pengenalan pola suara dikenali ke dalam berbagai level tugas, pengenalan dalam tingkat sinyal akustik berupa uji tingkatan dalam susunan unit sub kata berupa fonem, kata, frase dan kalimat. Pengenalan suara huruf vokal merupakan dasar dari pengenalan
13
suara sebab susunan kata merupakan susunan dari beberapa huruf salah satunya adalah huruf vokal sehingga jika diperoleh prinsip dasar proses pengenalan dari suara huruf vokal dapat digunakan dalam penelitian lebih lanjut. 2.3.1 Aplikasi Pengenalan Suara Pengenalan suara sudah banyak digunakan dalam berbagai aplikasi sebagai berikut : a. Kesehatan. Sebagai proses pencatatan dokumentasi medis (Electronic Medical Records), hal ini berperan dalam proses pencarian, seleksi data, pengisian data pasien, kasus, dan
obat yang digunakan sehingga memungkinkan
mempercepat tugas jika dibandingkan dengan menggunakan keyboard. b. Militer. Penggunaan pengenalan suara misalnya dalam sistem Advanced Fighter Technology Integration dimana berguna untuk menghasilkan performa seorang pilot yang tinggi yaitu dalam hal seting frequensi radio, perintah sistem autopilot, seting titik kendali koordinat dan seting parameter senjata, dan mengontrol tampilan penerbangan. Umunya hanya diterapkan dalam beberapa kata dan usaha lebih lanjut telah diterapkan dalam sistem Avionic. c. Telekomunikasi. Pada bidang telekomunikasi hal ini bukan saja mengantikan fungsi keyboard namun sudah berkembang pesat dalam permainan dan simulasi. d. Alat bantu orang cacat. Orang cacat merupakan pihak yang sangat diuntungkan dalam penggunaan pengenalan suara terutama bagi orang yang tidak bisa menggunakan tangan, dari secara fisik lemah sampai orang yang mengalami stres menahun.
14
e. Bidang lain 1) Penerjemah otomatis 2) Otomotif (misalnya pada mobil Ford Sync) 3) Laporan persidangan (penulisan suara secara real time) 4) Pengenalan suara sebagai biometric 5) Komputer hands-free, perintah pengenalan suara sebagai user interface pada komputer 6) Otomatisasi rumah 7) Respon suara secara interaktif 8) Transkripsi medis 9) Evaluasi pengucapan ejaan dalam aplikasi pembelajaran bahasa melalui komputer 10) Robotika 11) Suara ke teks: Layanan gambaran visual pada Voicemail untuk telepon genggam. 2.3.2 Proses Pengenalan Suara Secara Identifikasi dan Verifikasi Proses pengenalan suara terbagi menjadi Verification dan Identification. Speech Identification adalah proses pelatihan seseorang atau huruf yang diucapkan ke pengenalan suara dengan cara mendaftarkan pembicara dari ucapan yang diberikan. Speech Verification adalah proses penentuan identitas pembicara atau arti dari suara yang diucapkan oleh pembicara yang dibandingkan dengan data yang telah tersimpan pada sistem.
15
2.3.3 Proses Pengenalan Suara Offline dan Online Sistem offline adalah suatu sistem yang menghasilkan output dengan bantuan proses secara manual oleh user. Sedangkan sistem online adalah sistem yang menghasilkan output tanpa bantuan proses secara manual oleh user. Umumnya pengenalan suara memiliki tahap pelatihan/identifikasi
dan
verifikasi. Pada proses identifikasi memiliki tahap normalisasi, ekstraksi ciri, klasifikasi. Proses pengenalan suara offline maupun online terdapat proses identifikasi namun terdapat perbedaan pada proses verifikasi, pada pengenalan suara secara offline verifikasi dilakukan dengan cara suara yang akan dikenali direkam terlebih dahulu sebelum memulai proses pengenalan suara sedangkan jika pada proses secara online verifikasi dilakukan dengan dinamis yaitu menggunakan pengucapan suara langsung tanpa melalui proses perekaman terlebih dahulu.
Gambar 2.1: Perbedaan proses verifikasi suara pada proses Offline (atas) dan Online (Bawah)
16
2.3.4 Parameter Pengenalan Suara Aplikasi pengenalan suara dibatasi berdasarkan parameter pengenalan suara yang digunakan. Hal ini dapat membedakan keberhasilan antara satu aplikasi dengan yang lain. Keberhasilan aplikasi dengan parameter tertentu belum tentu dapat diaplikasikan dalam aplikasi lain dengan parameter berbeda. Beberapa parameter yang paling penting terdapat pada tabel berikut: Tabel 2.1 Parameter Pengenalan Suara Parameter
Range
Speaking Mode
Isolated words sampai continuous speech
Speaking Style
Read speech sampai spontaneous speech
Enrollment
Speaker-dependent sampai Speaker-independent
Vocabulary
Sedikit (< 20 kata) sampai Banyak ( >20.000 kata)
Language Model
Finite state
SNR
Tinggi (>30 dB) sampai Rendah (<10 dB)
Transducer
Ucapan pada mikropon sampai ucapan pada telepon
sampai context-sensitive
Parameter tersebut adalah: 1. Speaking Mode, model pengucapan isolated word artinya pembicara memerlukan jeda untuk pengucapan antara satu kata dengan kata yang lain, sedangkan continous speech tidak. 2. Speaking style, pembicara berbicara dengan cara spontan atau dengan persiapan, seperti kasus pengucapan pidato atau orang yang berbicara secara langsung. Orang yang berbicara secara langsung lebih sulit dikenali dari pada orang berpidato. 3. Enrollment, mendaftarkan sumber suara dari pembicara, speaker dependent artinya sistem digunakan hanya untuk mengenali satu orang pembicara
17
sedangkan speaker independent artinya sistem dapat digunakan bebas untuk pembicara mana pun. 4. Vocabulary maksudnya bahwa range suku kata yang diucapkan jika lebih kecil dari 20 kata disebut Small Vocabulary dan jika lebih dari 20.000 kata disebut Large Vocabulary. 5. Language Model adalah
proses pengenalan suara model bahasa yang
digunakan seperti, gaya suara, mood, dll. Hal ini terbagi dua, yaitu: finite state artinya model bahasa terbatas sedangkan context-sensitive dapat mengenali berbagai model bahasa. 6. Perplexity, maksudnya tingkat error pengenalan pengucapan pada kata yang berbunyi sama (kebinggungan menentukan maksud huruf/kata yang diucapkan), hal ini berkaitan dengan tingkat Vocabulary yang digunakan misalnya penelitian 10 digit suara “Zero” sampai “Nine” dapat dikenali dengan baik (Doddington 1989), tetapi jika ukuran vocabulary 200, 500, atau 10.000 memiliki rata-rata error 3%, 7% atau 45 % (Itakura 1975, Miyatake 1990, Kimura 1990). Namun hal ini dapat memiliki hasil berbeda jika memiliki kata yang berbunyi sama, seperti pada kasus pengenalan 26 huruf bahasa Inggris sulit membedakan kata yang berbunyi berset-E, seperti huruf B, C, D, E, G, P, T, V, Z dalam hal ini jika dihasilkan error 8 % sudah termasuk bagus (Hild & Waibel 1993). 7. SNR (Signal to Noise Ratio), adalah ratio perbandingan daya sinyal dengan daya background noise, disebut SNR tinggi di lingkungan jika di atas 30 dB dan disebut SNR rendah jika kurang dari 30dB. Tingkat SNR menunjukkan
18
apakah noise berpengaruh pada kejelasan sinyal sehingga jika SNR yang tinggi maka dihasilkan informasi yang semakin banyak untuk diperoleh dan pengenalan semakin tinggi sedangkan jika pada SNR rendah maka proses pengenalan suara memiliki keberhasilan yang lebih sedikit. 8. Transducer, artinya proses perubahan besaran suara dari sinyal analog ke sinyal digital, hal ini biasanya penggunaan media dalam pengaturan frekuensi sampling, filter noise, dsb. Hal ini berbeda sekali jika menggunakan mikropon yang suara disekat-sekat dengan menggunakan telepon yang memiliki karakteristik alat berbeda dimana mikropon biasanya memiliki frekuensi sampling 16 KHz dan telepon 8 KHz, begitu pula tingkat noise yang perlu diredam.
2.3.5 Faktor Penyebab Kesalahan Proses Verifikasi dan Identifikasi Beberapa faktor dapat menyebabkan kesalahan dalam proses verifikasi dan identifikasi antara lain : a) Frekuensi Frekuensi merupakan pengukuran terhadap berapa banyak atau berapa kali suatu kejadian berlaku per satuan waktu. Untuk menghitung frekuensi suatu event, berapa banyak event terjadi dalam interval waktu tertentu dihitung dan dibagi dengan panjang waktu interval tersebut. b) Intonasi Intonasi merupakan suatu variasi nada yang digunakan ketika berbicara. Intonasi pembicara sangat menentukan tingkat keberhasilan dari proses verifikasi
19
pembicara karena intonasi berbeda ketika mengucapkan suata kata dapat diartikan lain oleh komputer. c) Tingkat kebisingan Dalam pengertian umum, noise merupakan suara yang tidak diinginkan. Ketika berbicara noise dalam relasinya dengan suara, noise merupakan suara yang lebih besar dari volume biasa. Pembicaraan orang lain dapat disebut noise bagi seseorang yang tidak terlibat dalam pembicaraan tersebut, dan noise dapat berupa suara yang tidak diinginkan seperti suara kapal terbang, kebisingan jalan raya, dan sebagainya. Noise sangat berpengaruh sekali terhadap hasil verifikasi pembicara karena dengan banyaknya noise komputer tidak dapat membedakan suara asli dengan noise yang ada. d) Volume suara Volume berarti sebuah kuantifikasi dari seberapa banyak suatu objek menempati ruang kosong. Dalam hal ini volume berarti besar kecilnya suara yang dihasilkan. Faktor-faktor ini secara umum di luar area algoritma atau koreksi yang lebih baik dengan pengertian lain dari algoritma, misalnya mikropon yang lebih baik. Faktor-faktor ini penting, bagaimanapun, karena tidak ada materi sebaik sebuah
algoritma
dari
speech recognition,
human
error
(misalnya
misspeaking atau misreading) pada akhirnya mengurangi performa pengenalan suara.
20
2.4
Pemprosesan Suara Speech (wicara) dihasilkan dari sebuah kerjasama antara lungs (paru-
paru), glottis (dengan vocal cords) dan articulation tract (mouth mouth/mulut dan nose cavity/rongga /rongga hidung). Gambar 2.2 menunjukkan penampang melintang dari organ wicara manusia. Untuk menghasilkan sebuah
voiced sounds (suara
ucapan), paru-paru paru menekan udara melalui
vocal cords bergetar,
epiglottis,
menginterupt udara melalui aliran udara dan menghasilkan sebuah gelombang tekanan quasi-periodic periodic (hampir periodik).
Gambar 2.2: Organ wicara manusia Impuls tekanan pada umumnya disebut sebagai
pitch impulses dan
frekuensi sinyal tekanan adalah pitch frequency atau fundamental frequency frequency. Di dalam Gambar 2.3a sederetan impuls (fungsi tekanan suara) dihasikan oleh vocal cords untuk sebuah suara. Ini merupakan bagian dari sinyal voice (suara) yang mendefinisikan speech melody (melodi wicara). Ketika kita berbicara dengan sebuah frekuensi pitch konstan, suara sinyal wicara monotonous tetapi dalam kasus normal sebuah perubahan permanen pada frekuensi terjadi. Variasi frekuensi pitch dapat dilihat seperti pada Gambar 2.3b
21
Gambar 2.3a: Sederet impuls yang sama
Gambar 2.3b: Variasi pada frekuensi pitch Impuls pitch merangsang udara di dalam mulut, dan untuk suara terten tertentu (nasals)) juga merangsang nasal cavity (rongga hidung). Ketika rongga beresonansi, akan menimbulkan radiasi sebuah gelombang suara yang mana merupakan sinyal wicara. Kedua rongga beraksi sebagai resonators dengan karakteristik frekuensi resonansi masing-masing, masing masing, yang disebut
formant
frequencies.. Pada saat rongga mulut dapat mengalami perubahan besar, manusia mampu untuk menghasilkan beragam pola ucapan suara yang berbeda. mampu untuk menghasilkan beragam pola ucapan suara yang berbeda.
22
Di dalam kasus unvoiced sounds (suara tak terucap), eksitasi pada vocal tract lebih menyerupai noise (derau). Gambar 2.4 menampilkan proses produksi suara-suara suara /a/, dan /f/. Untuk sementara perbedaan bentuk dan posisi pada organ artikulasi diabaikan saja.
Gambar 2.4: Proses produksi suara, pembangkian ucapan /a/ panjang (atas), pembangkitan ucapan /f/ (bawah)
2.5
Prapemprosesan Sinyal Prapemprosesan sinyal mengekstrak informasi yang diinginkan dari
sebuah sinyal suara. Untuk hal itu proses Normalisasi seperti pe penggunaan filter untuk mengurangi noise dan sampling perlu dilakukan. Sehingga dari input suara Raw (suara asli) menjadi sinyal suara yng telah digitalisasi. Seperti diperlihatkan pada gambar 2.5:
23
Gambar 2.5: Diagram Blok Prapemprosesan Sinyal
Awalnya sebuah mikropon atau handset telepon dapat digunakan untuk merubah gelombang akustik ke dalam sebuah sinyal analog. Sebelum proses perubahan sinyal, suara difiltering terlebih dahulu dengan filter noise seperti antialiasing filter (dan mungkin filter tambahan untuk mengimbangi setiap perusakan channel). Aliasing adalah fenomena gelombang sinus merubah frekuensi ketika proses sampling. Hal ini dapat menghancurkan penampilan sample sehingga data menjadi rusak. Oleh karena itu dengan Antialiasing filter membatasi bandwidth sinyal menjadi kira-kira Nyquist rate (setengah sampling rate/frekuensi). Sinyal analog terkondisikan kemudian diubah ke dalam bentuk sebuah sinyal digital oleh sebuah analog-to-digital (A/D) converter. Proses perubahan sinyal analog ini menggunakan proses Sampling [6], yaitu proses merubah sinyal analog yang berbentuk sinyal kontinu terhadap waktu menjadi sinyal diskrit atau sering disebut Sample yang berulang, suatu sample menunjukkan suatu set nilai yang pada sebuah titik dalam suatu waktu atau ruang. Proses sampling perlu memenuhi teorema Nyquist yang menyatakan :
24
≥2
=
Pada komputer proses sampling dilakukan oleh sound card sehingga sistem aplikasi yang akan dibangun perlu proses pengaksesan sound card agar informasi yang diperoleh dari sinyal dapat diketahui.
2.5.1 Mel-Frequency Cepstrum Coefficients Input suara biasanya direkam pada sampling rate diatas 8000 Hz. Frekuensi sampling ini dipilih untuk meminimalisasi efek dari aliasing dalam konversi analog kedigital. Sinyal yang telah di-sampling ini dapat menangkap semua frekuensi sampai dengan 5 kHz, yang meliputi kebanyakan energi suara yang dihasilkan oleh manusia. Seperti telah disebutkan pada bagian sebelumnya, tujuan utama dari prosesor MFCC adalah untuk menirukan perilaku telinga manusia.
Gambar 2.6 Input Suara
25
Gambar 2.7 Prosesor Mel-frequency Cepstrum Coefficients
Seperti terlihat pada gambar, prosesor MFCC mempunyai lima tahap, yaitu Frame Blocking, Windowing, FFT, Mel-frequency Wrapping, dan Cepstrum. Berikut adalah penjelasan dari masing-masing bagian tersebut. 2.5.1.1.
Frame Blocking
Dalam tahap ini sinyal suara diblok menjadi banyak frame dengan N sampel, dengan frame-frame selanjutnya dipisahkan oleh M
Gambar 2.8 Input Suara Setelah Melalui Tahap Frame Blocking
26
Frame yang pertama terdiri dari N sampel yang pertama. Frame yang kedua mulai M sampel setelah frame yang pertama dan di-overlap oleh N-M sampel. Frame yang ketiga mulai dari 2M sampel setelah frame yang pertama atau M sampel setelah frame yang kedua dan di-overlap oleh N-2M sampel. Proses ini berlangsung kontinu hingga seluruh suara atau ucapan dihitung sebagai satu atau lebih frame. Nilai untuk N dan M yang umum adalah N=256 (yang ekuivalen dengan 30 msec windowing dan memfasilitasi radix-2 FFT) dan M=100.
2.5.1.2. Windowing: Window sangat berkaitan pada proses FFT hal ini berguna untuk, sbb: 1. Mengurangi dampak dari batas ketidak-kontinuan (boundary of discontinues). Ketidak-kontinuan berada pada awal dan akhir tiap frame. Window berupaya untuk mengurangi kerusakan spektrum dengan cara meruncingkan sinyal dengan menset nol pada awal dan akhir tiap frame 2. Diaplikasikan dalam sinyal domain waktu sebelum digunakan pada FFT. 3. Tersedia berbagai macam window untuk mengurangi kebocoran sinyal. Sinyal dengan ketidak-kontinuan jika dikalikan dengan fungsi window maka menjadi sinyal kontinu.
27
Berikut beberapa fungsi Window pada domain waktu, sbb:
Window Hanning Persamaan samaan window Hanning adalah sebagai berikut:
Window Hanning memiliki lobe utama dua kali lebih lebar dari window rectangular, dan hampir tiga baris spektral akan selalu dibangkitkan. Frekuensi bandwidth noise adalah 1,5 dan sidelobe paling tinggi turun 32dB, dan sidelobe turun 18 dB tiap oktav. Grafik spektrum hasil window dapat diperlihatkan pada gambar 2.6:
Gambar 2.9: Spektrum dengan Window Hanning
Window Hamming Persamaan Window Hamming adalah sebagai berikut: untuk i=0….n-1 Window Hamming diperoleh dengan memodifikasi koefisien window Hanning untuk mencegah dengan tepat pada sidelobe pertama, tapi menjadi
28
sangat kurang tepat bernilai nol pada tiap tepi. Dengan alasan ini window Hamming menaikkan 42 dB di bawah lobe utama, namun secara asimtot sidelobe decay dengan 6 dB per oktav, dan noise berada 1,36.
Grafik
spektrum hasil window dapat diperlihatkan pada gambar 2.7:
Gambar 2.10: Spektrum dengan Window Hamming . 2.5.1.3 FFT: Fast Fourier Transform (FFT) Transformasi Fourier merubah sebuah sinyal domain waktu untuk ditampilkan menjadi sinyal domain Frekuensi. Bagaimanapun juga, sebuah sample yang berbentuk gelombang (waveform) ( dan ditransformasikan dalam bentuk nilai diskrit. Karena transformasi ini, transformasi Fourier tidak akan bekerja dalam bentuk data diskrit. Akhirnya digunakan Discrete Fourier Transform (DFT), yang menghasilkan hasil akhir dalam domain frekuensi dengan nilai ilai diskrit atau disebut bins. Fast Fourier Transform merupakan algoritma yang efisien untuk proses perhitungan DFT (Discrete (Discrete Fourier Transform Transform) dan inversenya dengan membutuhkan sedikit proses aritmetika.
29
Dimana DFT didefinisikan dengan rumus : =
= 0, … ,
−1
dimana: x0, ...., xN-1 berupa angka komplek Proses penjumlahan rumus tersebut secara langsung dapat menghabiskan O(N2) operasi aritmetika. Namun jika digunakan algoritma FFT hanya diperlukan O(NlogN) operasi. Perbandingan kecepatan eksekusi DFT dan FFT dapat dilihat pada gambar 2.10:
N
10
100
1000
106
109
N2
100
104
106
1012
1018
NlogN
10
200
3000
6x106
9x109
Gambar 2.11: Waktu komputasi yang diperlukan untuk proses O(NlogN) Misalnya jika sebuah mesin memiliki 1 MFLOP (satu juta floating point per detik). Dimana N = 1 juta = 106. Sehingga sebuah algoritma O(N2) memerlukan 1012 flot atau 106 detik ≃ 11.5 hari. Jika sebuah algoritma O(NlogN) memerlukan
6x106 Flot atau 6 detik. Namun N = 1 juta tidak mungkin. Contohnya, 3 mega
pixel kamera digital dapat menghasilkan 3x106 angka untuk tiap foto. Sehingga untuk dua titik N berulang f[n] dan h[n]. Jika menghitung (f[n]⊛h[n]) secara
langsung memerlukan sejumlah O(N2) operasi.
30
Perhitungan FFT -- O(NlogN) Perkalian FFT -- O(N) Inverse FFT -- O(NlogN). Total kompleksitas adalah O(NlogN). Sedangkan Persamaan FFT adalah sebagai berikut ini: ∞
X(f) = F{x(t)} = ∫ ∞ x(t)e
π
dt
FFT Sama seperti DFT yaitu memetakan perulangan dalam bentuk nilai diskritwaktu kemudian direpresentasikan menjadi diskrit-frekuensi. Ketika menggunakan DFT, transformasi Fourier pada tiap perulangan x, dimana x berbentuk nilai real atau komplek, selalu menghasilkan dalam sebuah keluaran perulangan nilai komplek X sesuai dengan persamaan berikut:
F(x) = X = X
+ jX
= Re{X} + jIm{X}
Suatu hal yang tidak dipisahkan dengan properti DFT berikut ini: X
=X
Dimana elemen (n-i) dari X berisi hasil –i yang harmonik. Selanjutnya jika x real, maka i harmonik dan –i harmonik adalah bernilai komplek konjugate:
Konsekuensinya,
dan
X Re(X ) = Re(X
=X
= X∗
)
Im(X ) = −Im(X
)
31
Properti Fourier yang simetris ini adalah perulangan real mengacu sebagai simetri konjugate simetris atau genap-simetris, dan anti-simetris atau ganjil-simetris Penggunaan FFT untuk analisa frekuensi menandakan dua relasi penting , yaitu: 1) Relasi pertama yaitu frekuensi tertinggi dapat dianalisa (Fmax) dengan frequensi sampling ( fs ).
F
=
2) Relasi kedua yaitu resolusi frekuensi ( f ) sampai total waktu akuisisi (T), yang berhubungan dengan frekeunsi sampling ( fs ) dan ukuran blok FFT (N). Δf =
=
Keluaran spektrum FFT bernilai komplek, sehingga setiap komponen frekuensi memiliki sebuah amplitudo dan fasa. Nilai fasa tergantung waktu perekaman, atau tergantung dari gelombang cosinus yang dimulai pada waktu pertama perekaman. Pengukuran chanel satu fasa bernilai stabil hanya jika sinyal input dibangkitkan. Sedangkan pengukuran dua chanel fasa perhitungan perbedaan fasa berbeda antara chanel-chanel lain sehingga jika chanel secara simultan disample, pembangkitan biasanya tidak penting. Untuk mencari amplitudo dapat diperoleh dengan persamaan berikut:
A[k] =
Re(X[k]) + Im(X[k])
32
Dan fasa dihitung dengan persamaan:
Fasa(X[k]) = arctan
( [ ])
( [ ])
.
2.5.1.4. Mel-Frequency wrapping: tahap ini merupakan proses pengfilteran dari spektrum
setiap
frame
yang
diperoleh
dari
tahapan
sebelumnya,
menggunakan sejumlah M filter segitiga dengan tinggi satu. Filter ini dibuat dengan mengikuti persepsi telinga manusia dalam menerima suara. Persepsi ini dinyatakan dalam skala ’mel’ (berasal dari Melody) yang mempunyai hubungan tidak linear dengan frekuensi suara, Dalam hal ini skala melfrequency adalah linear untuk frekuensi kurang dari 1000 Hz dan logaritmik untuk frekuensi di atas 1000 Hz. Satu relasi antara frekuensi bunyi (dalam Hz) dengan skala mel adalah,
Grafik
relasi
di
atas
= 2569 ∗
disajikan
pada
1+
700
Gambar
dibawah
ini.
Gambar 2.12: Suatu Filter Segitiga ke i dengan Tinggi 1
33
2.5.1.5.Cepstrum : Pada tahap ini dilakukan konversi dari koefisien spektrum mel kembali ke domain waktu menggunakan transformasi kosinus berikut : =
∗( − 0.5) ∗ 20
cos
dengan j = 1, 2, 3,…,K; K adalah banyaknya koefisien MFCC yang diinginkan; M adalah banyaknya filter segitiga; Xi adalah koefisien spektrum mel yang diperoleh dengan Pers. (2). Dalam hal ini Cj disebut sebagai koefisien ke j dari mel frequency cepstrum coefficients (MFCC).
2.5.2 Vector Quantization Vector Quantization adalah proses untuk memetakan vektor dari ruang vector yang sangat luas, menjadi region-region dengan jumlah terbatas di dalam ruang itu. Setiap region disebut cluster, dan dapat direpresentasikan dengan intinya, yang disebut codeword. Kumpulan dari codeword adalah codebook. Jarak vektor ke codeword yang terdekat dalam suatu codebook disebut VQdistortion. Dalam fase pengenalan, suara seorang pembicara yang tak dikenal di-“vector quantize” menggunakan codebook, lalu total VQ-distortion dihitung. VQ-distortion
dengan
codeword
yang
terkecil
diidentifikasi
sebagai
pembicaranya. Namun, dalam aplikasi ini, permasalahannya sedikit berbeda. Algoritma Vector Quantization yang sebenarnya, digunakan untuk mengidentifikasi suara pembicara tidak dikenal dengan beberapa sample suara dari pembicara yang berbeda, yang sudah disimpan sebelumnya (dalam codebook). Namun dalam
34
aplikasi ini, suara pembicara yang disimpan hanya satu. Yaitu si pelaku enkripsi. Dalam Vector Quantization, VQ-distortion di-inisialisasikan sebagai infinite. Kemudian, jika ditemukan VQ-distortion yang lebih kecil dari sebelumnya dalam suatu pengulangan, VQ-distortion itu akan disimpan. Jadi, VQ-distortion yang terkecil yang akan muncul sebagai pembicara yang di-identifikasi. Sedangkan pada aplikasi ini, algoritma tersebut diubah sedikit menjadi: Hitung nilai VQdistortion. Jika VQ-distortion-nya cukup kecil, maka kembalikan nilai true. Dalam mengaplikasikan metode Vector Quantization pada aplikasi pengenalan pembicara, jumlah centroid yang paling optimal adalah 16 buah untuk memudahkan dalam pencarian Euclidean Distance.
35
BAB III PEMBAHASAN
3.1
Gambaran Umum Sistem Aplikasi yang kami namakan ”Miracle Voice Data Protection” ini,
mempunyai alur program sebagai berikut:
Gambar 3.1 Skema Sistem
36
Aplikasi Miracle Voice Data Protection ini diawali dengan dua pilihan, yaitu Enkripsi dan Dekripsi. Untuk melakukan enkripsi pada file, langkahlangkahnya adalah: pilih file yang akan di-enkripsi, rekam suara, lalu membaca MD5 atau signature yang berguna sebagai kunci blowfish file. Setelah itu file akan dienkripsi oleh program menggunakan metode blowfish dengan kunci MD5 yang telah kita dapatkan tadi. Lalu file master akan dihapus dan file enkripsi dirubah ekstensi menjadi (.mvdp) Untuk melakukan deskripsi file langkah-langkahnya adalah pilih file yang telah dienkripsi dan harus berekstensi (.mvdp) lalu rekam suara yang akan digunakan untuk membuka file setelah direkam maka suara tadi akan dicocokan dengan suara yang kita rekam sebelumnya sebagai password apabila kedua file tersebut cocok maka proses deskripsi akan dilanjutkan dan file akan dikembalikan ke nama dan ekstensi sebelumnya. Apabila suara yang kita rekam tidak cocok dengan suara password maka proses deskripsi akan dihentikan dan harus merekam suara lagi.
3.2
Proses Enkripsi Proses Enkripsi terdiri dari beberapa langkah, sesuai dengan Gambar 3.1.
Detil dari langkah-langkah tersebut akan dijabarkan disini. 3.2.1 Pemilihan File File yang akan di-enkripsi bisa berupa file apa saja, kecuali file hasil dekripsi.
37
Ukuran file tidak dibatasi, namun, sebaiknya ukuran file tidak terlalu besar dan nama file jangan terlalu panjang. Seratus Mega byte adalah limit yang direkomendasikan. File ini nantinya akan dihapus, dan digantikan dengan file yang sudah di-enkripsi. Dalam melakukan pemilihan file, user akan menggunakan dialog untuk membuka file, yang umum digunakan dalam system operasi Windows. 3.2.2 Perekaman Suara Untuk merekam suara, user perlu menekan tombol record, dan Miracle Voice Data Protection akan merekam suara melalui microphone selama 5 detik. Bila user merasa perekamannya kurang baik, ia dapat menekan tombol record kembali, untuk merekam ulang. Hasil perekaman suara akan disimpan sementara di folder enskrip yang berada difolder aplikasi. Perekaman suara harus dilakukan dengan mendekatkan mikrofon ke mulut, dan mengucapkan passwordnya dengan cukup keras, sehingga nantinya akan memudahkan dalam melakukan pengenalan. Dan akan lebih baik jika dalam melakukan perekaman, kondisi ruangan tidak bising.Sebaiknya, password diucapkan dengan nada yang datar, atau dengan nada yang biasa dan tidak dibuat-buat. Ini penting karena jika nada yang dipakai dalam enkripsi dan dekripsi terlampau berbeda, pengenalan akan tidak dapat untuk dilakukan. 3.2.3 Enkripsi Blowfish Setelah suara disimpan, berarti file sudah siap di-enkripsi. Enkripsi dilakukan dengan metode Blowfish dengan kunci MD5 (digital signature) dari file, yang mempunyai tingkat keamanan tinggi dan tidak dipatenkan. Baris program
38
untuk enkripsi Blowfish ini akan ditulis dalam Visual Basic, karena operasi yang diperlukan hanya operasi-operasi byte seperti XOR.
3.2.4 Penyimpanan File Hasil Enkripsi Setelah file selesai di-enkripsi, file tersebut akan ‘berubah’ menjadi file berekstensi .mvdp (Miracle Voice Data Protection). Artinya adalah, file ekstensi asli akan dihapus, dan file berekstensi .mvdp akan dibuat untuk menggantikannya. User harus menyimpan file ini. Jika user mencoba membuka file hasil enkripsi dengan program seperti Notepad, yang akan muncul adalah deretan karakterkarakter aneh yang tidak dapat dibaca.
3.3
Proses Dekripsi Proses dekripsi terdiri dari beberapa langkah, sesuai dengan Gambar 3.1.
Detil dari langkah-langkah tersebut akan dijabarkan disini. 3.3.1 Pemilihan file File yang dapat dipilih untuk di-dekripsi adalah file dengan ekstensi .mvdp Open File Dialog akan memakai filter agar hanya file tersebut yang dapat dibuka. mvdp adalah kependekan dari Miracle Voice Data Protection. Sehingga, user dapat mengidentifikasi file tersebut sebagai file yang terenkripsi. Untuk melakukan dekripsi, file tersebut harus mempunyai file suara yang disimpan pada folder enskrip terletak di folder aplikasi dengan ekstensi Wav. File tersebut berisi suara yang akan digunakan sebagai password untuk mendeskripsi file. Jika salah satu file hilang, maka dekripsi tidak dapat dilakukan.
39
3.3.2 Perekaman Suara Proses perekaman suara sama dengan yang terdapat pada enkripsi. User harus mengucapkan password-nya dengan jelas dan cukup keras, dengan mendekatkan mikrofon ke mulut. Suasana ruangan pun harus tidak bising, untuk memudahkan dalam melakukan pengenalan. Dalam mengucapkan password, user harus mengucapkannya dengan nada yang mirip seperti yang diucapkan saat melakukan enkripsi. Hal ini diperlukan karena pengenalan dilakukan dengan berbasis frekuensi. Maka apabila beda frekuensi dan amplitudonya terlalu jauh, meskipun kata yang diucapkan sama, user tidakakan dikenali. Untuk mencegah hal yang tidak dinginkan, sebaiknya password diucapkan dengan nada yang biasa atau datar. 3.3.3
Feature Extraction Ekstraksi ciri (feature extraction), yaitu dengan MFCC (Mel-frequency
Cepstrum Coefficients) dan dilanjutkan dengan Vector Quantization. untuk dibandingkan dengan vektor suara pada saat enkripsi, agar bisa dilakukan pengenalan atau verifikasi, apakah pemilik suara tersebut berhak membuka file atau tidak. Yang dibandingkan adalah Euclidean Distance-nya, yang merupakan langkah berikutnya dari proses dekripsi ini. 3.3.4 Perhitungan Euclidean Distance Dalam metode Vector Quantization, untuk melakukan pengenalan perlu dicari besar VQ-distortion. VQ-distortion ini dilakukan dengan mencari Pairwise Euclidean Distance antara kedua vektor suara. Apabila VQ-distortion tersebut masuk dalam range yang diatur, maka dekripsi akan dilakukan. Namun apabila
40
tidak masuk dalam range, deskripsi tidak dilakukan, dan user dianggap tidak berhak untuk membuka file tersebut. Modul ini juga ditulis dalam program Visual Basic. 3.3.5 Dekripsi Blowfish Dekripsi dengan metode Blowfish sama persis dengan enkripsinya.. Modul ini dibuat dengan menggunakan Visual Basic, dan operasi-operasi utamanya adalah operasi byte XOR. Dekripsi dilakukan per 8 byte data, sampai data tersebut terdekripsi seluruhnya. 3.3.6 Penyimpanan Hasil Dekripsi Hasil dari dekripsi akan disimpan dalam ekstensi file yang asli, pada folder dimana file enkripsi berada.
3.4
Rancangan Layar Layar yang ada pada aplikasi, di luar layar-layar peringatan, berjumlah
empat buah, yaitu: Layar Utama, Layar Informasi, Layar Enkripsi, dan Layar Dekripsi. Hirarki dari layar-layar tersebut adalah sebagai berikut :
Gambar 3.2 Hirarki Layar
41
3.4.1 Rancangan Layar Utama Menu utama didapat ketika program dieksekusi dengan meng-klik icon program MVDP. Dalam menu utama terdapat 3 tombol, yakni: ”Enkripsi”, ”Dekripsi”,”Informasi”, dan ”Keluar”. Tombol ”Enkripsi” berfungsi untuk melakukan enkripsi dengan menampilkan layar Enkripsi. Sedangkan tombol ”Dekripsi” berfungsi untuk melakukan dekripsi dengan menampilkan layar Dekripsi. Apabila user ingin melihat informasi seputar cara pemakaian program secara rinci, user dapat menekan tombol ”Informasi”.Tombol ”Keluar” berguna untuk keluar dari aplikasi.
Enkripsi
Dekripsi
Informasi
Keluar
Gambar 3.3 Rancangan Layar Utama
3.4.2 Rancangan Layar Informasi Layar Informasi ini akan ditampilkan apabila user mengklik tombol ”Informasi” pada menu utama. Layar Informasi akan menampilkan informasi tentang bagaimana cara Miracle Voice Data Protection Enkripsi Dekripsi Informasi Keluar menggunakan aplikasi. Untuk kembali ke menu utama user dapat menekan tanda silang di pojok kanan atas layar.
42
Gambar 3.4 Rancangan Layar Informasi
3.4.3 Perancangan Layar Enkripsi Setelah menekan tombol ”Enkripsi” pada layar utama maka user akan masuk pada layar Enkripsi. Untuk melakukan enkripsi, user harus terlebih dahulu memilih file yang akan di-enkripsi dengan menekan tombol ”Buka File”. Setelah memilih file, user perlu merekam password suaranya dengan menekan tombol record. Voice Protect akan merekam suara selama tiga detik, jadi user harus bersiap-siap di depan microphone-nya. Setelah merekam suara, proses enkripsi siap dilakukan. Untuk melakukan enkripsi, user perlu menekan tombol ”Buat!”. Lalu, Miracle Voice Data Protection akan meng-enkripsi file yang telah dipilih. Setelah proses selesai, sebuah pesan akan muncul,apakah enkripsi berhasil dilakukan, atau tidak. Untuk kembali ke ke layar utama, user dapat menekan tombol ”Kembali”.
43
Gambar 3.5 Perancangan Layar Enkripsi
3.4.4 Rancangan Layar Dekripsi Setelah memilih file dengan menekan tombol “Buka File!”, user perlu mengucapkan password dengan menekan tombol record. Dan, proses dekripsi siap dilakukan. Untuk melakukan dekripsi (dan verifikasisuara tentunya), user perlu menekan tombol ”Buat!”.
Gambar 3.6 Perancangan Layar Dekripsi
44
Apabila setelah dilakukan feature extraction dan Vector Quantization suara tersebut cocok dengan suara yang tersimpan, maka dekripsi akan dilakukan. Apabila Enkripsi tidak cocok, maka akan muncul pesan bahwa user tidak berhak untuk membuka file tersebut. Untuk kembali ke menu utama, user dapat menekan tombol ”Kembali 3.5
State Transition Diagram Berikut ini adalah State Transition Diagram (STD) untuk proses enkripsi
dan dekripsi. Kedua diagram ini akan digunakan sebagai panduan dalam membuat alur program, sehingga dapat dihasilkan aplikasi yang terstruktur dengan baik.
45
Gambar 3.7 State Transition Diagram pada Proses Enkripsi
Gambar 3.8 State Transition Diagram pada Proses Dekripsi
46
BAB IV IMPLEMENTASI DAN EVALUASI
4.1
Spesifikasi Hardware dan Software yang digunakan dalam penelitian Penelitian ini dilakukan dengan menggunakan satu set komputer dengan
prosesor berkecepatan 1,18 GHz, memori sebanyak 1024 Mb, dan sound card onboard. Untuk kemampuan multimedia, khususnya suara, komputer tersebut dilengkapi dengan mikrofon dan speaker standar. Dari sisi software, sistem operasi yang dipakai adalah Microsoft Windows XP Proffesional Edition. Dan software yang digunakan untuk menulis program ini adalah Visual Basic 6.0 dan metod yang digunakan dalam verifikasi suara adalah metode MFCC.
4.2
Tampilan Layar Tampilan layar pada aplikasi ini terdiri dari empat tampilan, yaitu: Menu
Utama, Informasi, Enkripsi, dan Dekripsi. Namun disini disertakan juga tampilantampilan dengan error message dan konfirmasi, yang disusun berdasarkan uruturutan proses dalam melakukan enkripsi dan dekripsi.
47
4.2.1 Tampilan Layar Menu Utama Gambar di bawah ini merupakan tampilan utama dari aplikasi Miracle Voice Data Protection yang memiliki empat buah tombol, yaitu: “Enkripsi”, “Dekripsi”, “Informasi”, dan “Keluar”. Tombol “Enkripsi” berfungsi untuk menampilkan layar Enkripsi, sedangkan tombol “Dekripsi”,tentu saja berfungsi untuk menampilkan layar “Dekripsi”. Tombol “Informasi” berfungsi untuk menampilkan informasi mengenai aplikasiini dan cara-cara penggunaannya. User disarankan untuk membaca isi Informasi dahulu sebelum memakai aplikasi.Untuk dapat keluar dari program Miracle Voice Data Protection user dapat menekan tombol “Keluar”.
Gambar 4.1 Tampilan Layar Menu Utama
4.2.2 Tampilan Layar Informasi Layar di bawah ini akan muncul apabila user menekan tombol ”Informasi” pada menu utama. Layar Informasi akan menampilkan cara-cara menggunakan
48
aplikasi secara detail, dan juga informasi-informasi lain seputar aplikasi Miracle Voice Data Protection..
Gambar 4.2 Tampilan Layar Informasi
4.2.3 Tampilan Layar Enkripsi Tampilan ini akan muncul bila user menekan tombol ”Enkripsi” di menu utama.
Gambar 4.3 Tampilan Layar Enkripsi
49
User terlebih dahulu memilih file yang akan dienkripsi. Format file yang dienkripsi bisa berupa .jpg, .doc, .mp3. Untuk memilih file yang dienkripsi user hanya menekan tombol “buka file” yang ada di layar enkripsi.
Gambar 4.4 Tampilan Layar Enkripsi Saat Memilih File Setelah user memilih file yang dienkripsi barulah merekam paswordnya dengan menekan tombol rekam password. Jika user menekan tombol “rekam suara” akan muncul kotak pesan yang bertuliskan “Tolong pastikan anda tidak memutar player music saat merekam suara anda”.
Gambar 4.5 Tampilan Kotak Pesan Saat Akan Merekam Password Pada Enkripsi
50
Jika user sudah memilih file dan merekam suara, lalu menekan tombol ”Buat”untuk melakukan proses enkripsi, maka muncul pesan bahwa enkripsi berhasil dilakukan.
Gambar 4.6 Tampilan Layar Enkripsi dengan Pesan Berhasil
4.2.4 Tampilan Layar Deskripsi Setelah menekan tombol ”Dekripsi” pada menu utama, maka user akan masuk pada menu Dekripsi. Untuk melakukan dekripsi, user harus terlebih dahulu membuka file yang ingin di-dekripsi dengan menekan tombol “buka file”. Setelah itu user memilih file yang akan dideskripsi
51
Gambar 4.7 Tampilan Layar Dekripsi
Gambar 4.8 Tampilan Layar Deskripsi Saat memilih File
Setelah memilih file user merekam suara yang sama dengan suara saat merekam file enkripsi. Setelah merekam suara user menekan tombol “Buat” untuk melakukan proses deskripsi, maka ada dua kemungkinan yaitu jika gelombang suara sama dengan gelombang pada saat merekam file enskripsi maka deskripsi
52
berhasil dilakukan dan file akan terbuka, dan sebaliknya jika gelombang suara tidak sama dengan gelombang pada saat merekam file enskripsi maka deskripsi tidak berhasil dilakukan dan file tidak dapat terbuka. Tetapi prosentase file tersebut dapat terbuka adalah 40% dikarenakan apabila dibuat prosentase 100% maka file akan sulit untuk terbuka karena gelombang suara harus benar-benar sama. Pesan jika file dapat terbuka :
Gambar 4.9 Tampilan Layar Deskripsi Dengan Pesan Berhasil bila user tidak diidentifikasi sebagai orang yang berhak membuka file, maka pesan di bawah ini akan muncul.
53
Gambar 4.10 Tampilan Layar Dekripsi dengan Pesan Gagal
4.3
Evaluasi Hasil Penelitian Setiap sinyal suara yang dihasilkan disampling dengan durasi 1,28 detik
pada sampling rate 16 kHz, Oleh karena itu, secara keseluruhan diperoleh 2 x 2 = 4 data suara dari 2 pembicara. Dari 2 data untuk setiap pembicara dipisahkan menjadi 2 set, yaitu satu set sebagai data training dan sisanya sebagai data uji. Dalam hal ini dilakukan 3 jenis pembagian dengan rasio data training: data uji sebagai 60:20, 40:40, dan 20:60. Berikutnya data suara pada setiap set dibaca dari frame demi frame dengan lebar frame 512 sample dan overlap antar frame 256 sample. Setiap frame yang dihasilkan dihitung nilai bispektrum untuk frekuensi 128 x 128. Dari sini dihitung nilai cirinya dengan menggunakan MFCC untuk mendapatkan 13 koefisien MFCC dari data bispektrum setiap frame tersebut.
54
Untuk mengetahui seberapa besar komponen koefisien. Hasil yang di dapatkan tidak selalu menunjukan hasil yang akurat. Hal ini disebabkan oleh berbagai macam factor seperti yang telah disebutkan pada bab III. Dan percobaanpercobaan yang dilakukan berikut ini dilakukan untuk mencari tahu bagaimana cara meminimalkan kesalahan yang dapat terjadi, dan juga untuk mengetahui, seberapa baik tingkat keamanan dan tingkat pengenalan dari algoritma MFCC. Sebelum melakukan percobaan, dilakukan analisa mengenai verifikasi suara yang melalui beberapa tahap Penjelasan mengenai beberapa tahap sebagai berikut:
1) HASIL FRAME BLOCKING dan WINDOWING DARI SAMPLE SUARA
Panjang Frame (N)
Tujuan windowing adalah mengurangi kebocoran spektral
Tujuan overlaping adalah agar diperolah korelasi
Overlaping antar frame (M) Pada penelitian ini dipilih N = 256 (30ms)
antar frame yang berdampingan Sehingga Jumlah Frame = ((l-N)/M) + 1 = ((44091 – 256)/100)+1 = 439
M = 100
55
2) Fast Fourier Transform (FFT) FFT akan mengkonversi masing-masing frame dari domain waktu ke domain frekuensi. FFT adalah sebuah algoritma yang cepat untuk mengimplementasikan Discrete Fourier Transform (DST)
F R R
=
A M
= 0, … ,
−1
E
3) Mel Frequency Wrapping Skala mel frequency adalah frekuensi linier pada daerah di bawah 1 KHz dan logaritmik untuk daerah diatas 1 KHz. Sebagai pendekatqan diberi formula sebagai berikut: mel(f) = 2595*log10 (1 + f / 700)
4) cepstrum Spektrum Log mel dikonversi kembali ke dalam waktu. Hasilnya disebut sebagai mel frequency cepstrum coefficients (MFCC). Oleh karena koefisien mel spekrum merupakan bilangan real, kita dapat mengkonversinya dalam domain waktu menggunakan discrete cosine transform (DCT) , kita dapat menghitung MFCC sebagai :
56
=
cos
∗( − 0.5) ∗ 20
Setelah itu vector dikelompokan berdasarkan jarak terdekat antara vector ciri (MFCC) dengan menggunakan rumus Euclidean Distance:
Setelah
menganalisa
mengenai
MFCC,
barulah
melakukan
serangkaian
percobaan. Percobaan dilakukan oleh 2 User berbeda dengan sampel suara “selamat pagi” dan “terima kasih”. 4.3.1 Percobaan Dengan menggunakan Password Sama Dengan User yang Sama. Percobaan ini dilakukan untuk mengetahui tingkat pengenalan password suara dari user yang sama. Percobaan dilakukan tiga kali, dengan dua orang yang berbeda. Password : “Selamat Pagi” User : Udit Percobaan dengan menggunakan password yang sama dari user yang sama
57
Tabel 4.1 Percobaan dengan Password yang Sama dari User yang Sama yang diucapkan oleh udit Password
Udit
Selamat Pagi
√ (berhasil)
Selamat Pagi
X (gagal)
Selamat Pagi
√ (berhasil)
Keterangan tabel : √ = diterima X = ditolak
58
Dari tiga kali percobaan yang dilakukan user Udit kedua filenya berhasil dibuka dan satu file gagal terbuka tetapi setelah dilakukan berulang-ulang file berhasil terbuka. Ini dikarenakan beberapa faktor, yaitu: a) Intonasi : Intonasi yang berbeda pada saat mengucapkan password dan pada verifikasi sangat mempengaruhi karena jika berbeda maka dapat diartikan berbeda oleh sistem tersebut. b) Tingkat Kebisingan : Jika user mengucapkan password pada keadaan sunyi dan membuka file tersebut pada keadaan ramai maka akan timbul noise yang akan mempengaruhi tingkat keberhasilan. c) Volume Suara : jika kita mengucapkan password dengan volume kecil dan membukanya kembali dengan volume sangat besar maka proses verifikasi tidak akan berhasil. Password : “Selamat Pagi” User : Harry Tabel 4.2 Percobaan dengan Password yang Sama dari User yang Sama oleh Harry
Password
Harry
Selamat Pagi
√ (berhasil)
Selamat Pagi
X (gagal)
59
Selamat Pagi
√ (berhasil)
Keterangan tabel : √ = diterima X = ditolak
Begitu juga ketiga percobaan yang dilakukan oleh user Harry dua filenya juga berhasil dibuka dan satu filenya gagal terbuka. Ini disebabkan karena dalam proses verifikasi suara dan kata-kata yang keluarkan mungkin sama, hanya saja intonasi dan volume yang diucapkan agak sedikit berbeda dengan yang aslinya. Dari data tersebut, dapat disimpulkan bahwa, dengan mengucapkan password yang benar, user dapat dengan mudah membuka proteksi file. Namun ada kalanya Miracle Voice Data Protection tidak dapat mengenali, sekalipun passwordnya dengan benar. Ini disebabkan oleh perbedaan suara yang diucapkan oleh user, baik dalam volume, kecepatan pengucapan, kejelasan suku kata, ataupun frekuensi. Namun, setelah melakukan percobaan lebih lanjut, biasanya user tetap dapat membuka file setelah beberapa kali mencoba.
60
4.3.2 Percobaan dengan Menggunakan Password Sama pada User yang Berbeda Percobaan ini dilakukan, untuk mengetahui, seberapa amankah aplikasi yang kami buat terhadap orang lain yang mencoba membuka proteksi file. Password : “Terima Kasih” User : Udit Tabel 4.3 Percobaan dengan Password yang Sama dari User yang Berbeda dengan password yang diucapkan oleh Udit Password
Udit
Harry
Terima Kasih
√ (berhasil)
X (gagal)
Terima Kasih
√ (berhasil)
X (gagal)
Keterangan tabel : √ = diterima X = ditolak
61
Password : “Selamat Pagi” User : Harry Tabel 4.4 Percobaan dengan Password yang Sama dari User yang Berbeda dengan password yang diucapkan oleh Harry Password
Udit
Harry
Terima Kasih
X (gagal)
√ (berhasil)
Terima Kasih
X (gagal)
√ (berhasil)
Keterangan tabel : √ = diterima X = ditolak
Tabel di atas menunjukkan bahwa user lain tidak pernah berhasil membuka proteksi, sekalipun user tersebut mengetahui passwordnya. Sehingga, dapat disimpulkan bahwa, tingkat keamanan aplikasi Miracle Voice Data Protection sangat baik. Namun, ada kalanya, orang yang berhak membuka filenya pun mengalami penolakan ketika ingin membuka filenya sendiri. Seperti yang
62
sudah disebutkan pada bagian sebelumnya, hal ini disebabkan karena perbedaan suara yang terlalu besar yang diucapkan user. 4.3.3
Percobaan dengan Menggunakan Berbagai Macam Password Percobaan ini bertujuan untuk mengetahui, password yang seperti apa
yang lebih mudah dikenali oleh Miracle Voice Data Protection. Password yang dicoba adalah kata /gabungan kata dengan berbagai macam suku kata, dan password tersebut masing-masing dicoba 5 kali oleh seorang user. Password-password yang dipilih pada percobaan ini antara lain: ”Apa Kabar”, ”Selamat Datang”, ”Tangis Histeris”, ”Kisi-kisi”, ”Terima Kasih”, ”Ilmu Komputer”, ”Mercu Buana”, ”Basis Data”, ”Bisnis Kismis”, dan ”Warta Berita”. Hasil percobaan ditampilkan pada tabel berikut ini: Tabel 4.5 Percobaan dengan Berbagai Macam Password dengan 5 kali percobaan
Password
Jumlah Keberhasilan
Apa Kabar
5
Selamat Datang
5
Tangis Histeris
2
Kisi-kisi
3
Terima Kasih
4
Ilmu Komputer
4
Mercu Buana
4
Basis Data
4
Bisnis Kismis
2
Warta Berita
4
63
Ada yang dapat disimpulkan dari data-data pada tabel di atas. Sebaiknya, kata-kata yang dipakai untuk password menghindari suku kata yang berakhir dengan huruf ’s’ atau berdesis. Walaupun tidak terlalu signifikan, kata-kata yang seperti itu cenderung susah untuk diucapkan secara tepat, dalam arti, bisa terlalu panjang, atau terlalu pendek. Percobaan tersebut adalah percobaan yang terakhir, yang membawa kita pada kesimpulan sebagai berikut : metode MFCC dan Vector Quantization cukup baik dalam melakukan pengenalan pembicara, perekaman suara pada saat dekripsi harus dilakukan dengan pengucapan yang mirip dengan perekaman suara pada saat enkripsi, dan password yang dipilih sebaiknya menghindari bunyi desis.
64
BAB V PENUTUP
5.1
Kesimpulan Setelah dilakukan pembuatan aplikasi Miracle Voice Data Protection,
yang dapat melakukan enkripsi file dengan password berupa suara, dapat disimpulkan beberapa hal, yaitu Ada dua macam autentifikasi pembicara, yaitu identifikasi, dan verifikasi. Identifikasi pembicara adalah proses untuk menentukan siapa pembicara tersebut berdasar data yang telah didapat sebelumnya. Sedangkan verifikasi pembicara adalah suatu proses menerima atau menolak identitas yang diklaim sebagai pembicara. Pada aplikasi ini, jenis yang dipakai adalah jenis yang disebutkan terakhir, yaitu sebagai proses menerima atau menolak identitas orang yang mencoba untuk membuka proteksi file. Aplikasi proteksi file dengan password suara cukup baik dibandingkan password dalam bentuk karakter karena password berupa karakter bila password tersebut diperoleh orang lain maka orang tersebut akan dapat membuka proteksi dengan mudah, tetapi jika password berupa suara bila orang lain mengetahui passwordnya maka orang lain belum tentu bisa membukanya. Setelah dilakukan serangkaian percobaan dengan user yang berbeda dapat disimpulkan bahwa meskipun kita yang membuat password tetapi adakalanya kita sendiri tidak bisa membuka karena disebabkan beberapa faktor seperti frekuensi, intonasi, noise, dan volume suara. Tetapi setelah dilakukan secara berulang-ulang maka file tersebut dapat berhasil dibuka.
65
Pengenalan suara akan maksimal bekerja pada kondisi yang tingkat noisenya rendah. Sampai sekarang, penelitian pada bidang ini masih terus dilakukan. Karena, aplikasinya bisa memudahkan banyak orang dalam melakukan pekerjaannya. Penelitian terus dilakukan agar dapat diciptakan suatu sistem pengenalan suara (atau khususnya, pengenalan pembicara) yang mempunyai tingkat kesalahan yang semakin kecil dan toleransi terhadap noise yang semakin besar.
5.2
Saran Beberapa saran yang berguna, baik dalam menggunakan aplikasi ini,
ataupun dalam mengembangkan aplikasi yang menggunakan sistem pengenalan pembicara, adalah sebagai berikut: a. Dalam menggunakan aplikasi Miracle Voice Data Protection, user hendaknya mengingat password yang telah dilakukan pada saat melakukan enkripsi. Hal ini sangat penting, guna mencegah tidak bisanya kita melakukan dekripsi pada file tersebut. b. Password yang dipilih hendaknya menghindari kata-kata yang mempunyai bunyi desis seperti kata ’basis’, ’histeris’, dan lain lain. c. Dalam melakukan perekaman suara, baik pada saat dekripsi maupunenkripsi, sebaiknya dilakukan pada kondisi yang tidak terlalu bising.Mikrofon yang anti noise juga disarankan untuk memaksimalkankeakuratan. Kata yang diucapkan pun harus jelas dan keras, agar tidak susah dalam membuka proteksi nantinya.
66
DAFTAR PUSTAKA
Rabiner,Lawrence dan Jang, Bing Hwang.(1993). Fundamental of Speech Recognition. Prentice Hall, New Jersey. James Matthews, How Does Speech Recognition Work? http://www.generation5.org/content/2002/howsrworks.asp Melvyn J. Hunt, Signal Representation http://cslu.cse.ogi.edu/HLTsurvey/ch1node5.html Bruce Schneier, Blowfish Encryption http://www.schneier.com/paper-blowfish-fse.html
67
LAMPIRAN
LISTING PROGRAM Main Program Private Sub Form_Load() If App.PrevInstance = True Then MsgBox "Tidak dapat menjalakan program yang sama pada saat bersamaan", vbInformation, "MVDP Sudah berjalan" Exit Sub End If Me.Height = 3645 'Setting awal variable Me.TOp = 0 Me.Left = 0 Me.Caption = App.Title & " ver. " & App.Major & "." & App.Minor & " Versi Beta" If Right(App.Path, 1) <> "\" Then PathKu = App.Path & "\Enskrip\" Else PathKu = App.Path End If If FolderAda(PathKu) = False Then MkDir PathKu End If Test1 = 0 Test2 = 0 If GetINI("MVDP SETTING", "WAVE FILE1") = "" Then Call SetINI("MVDP SETTING", "WAVE FILE1", App.Path & "\Password.wav") Call SetINI("MVDP SETTING", "WAVE FILE2", App.Path & "\Verifikasi.wav") End If NamaFileWave1 = GetINI("MVDP SETTING", "WAVE FILE1") NamaFileWave2 = GetINI("MVDP SETTING", "WAVE FILE2") SettingSkala picWav1, 0, 1000, -500, 500 SettingSkala picWav2, 0, 1000, -500, 500 optIsolate.value = True pbar.Max = 100 pbar.Min = 0 Cnt = 0 FrameAwal.Visible = True FrameDeskripsi.Visible = False
68
FrameEnskripsi.Visible = False Dim backPic As String backPic = App.Path & "\background.jpg" If FileAda(backPic) Then imgBack.Picture = LoadPicture(backPic) End If ' Bicara "Selamat datang di Miracle Voice Data Protection" ' Bicara "Untuk memulai program, anda dapat memilih 2 Operasi yang terdapat di form ini, yaitu operasi Enskripsi dan deskripsi" End Sub Enkripsi File Public Function EncryptFile(inFIle As String, OutFile As String, Overwrite As Boolean, Optional Key As String, Optional OutputIn64 As Boolean) As Boolean 'Panggil Fungsi class_Initialize Class_Initialize 'Cek apakah file sumber ada If FileExist(inFIle) = False Then 'Jika tidak ada maka proses enskripsi akan berhenti EncryptFile = False Exit Function End If 'Cek apakah file tujuan ada atau tidak If FileExist(OutFile) = True And Overwrite = False Then 'Jika file tujuan ada dan variable Overwrite = false maka proses enskripsi di batalkan EncryptFile = False Exit Function End If 'Inisialisasi Variable Dim Buffer() As Byte, FileO As Integer FileO = FreeFile 'Buka file yang akan di enskripsi Open inFIle For Binary As #FileO 'set variable buffer agar bisa menampung isi data data file yang akan di enskripsi ReDim Buffer(0 To LOF(FileO) - 1) 'Baca semua data yang ada di file lalu masukan ke dalam variable buffer yang telah disiapkan diatas Get #FileO, , Buffer() Close #FileO 'Enskripsikan semua data yang ada di dalam variable buffer Call EncryptByte(Buffer(), Key)
69
'Apabila file tujuan sudah ada maka akan kita hapus If FileExist(OutFile) = True Then Kill OutFile FileO = FreeFile 'Buat File tujuan Open OutFile For Binary As #FileO 'Test apakah Variable OutputIn64 di setting If OutputIn64 = True Then 'Jika Variable OutputIn64 bernilai true lalu kita isikan file tujuan dengan data hasil EncodeArray64 variable buffer diatas Put #FileO, , EncodeArray64(Buffer()) Else 'Jika Tidak kita masukan file tujuan dengan data dari variable buffer diatas yang trelah di enskripsi terlebih dahulu Put #FileO, , Buffer() End If 'Tutup File tujuan Close #FileO EncryptFile = True 'Hapus isi variable-variable yang telah digunakan Erase Buffer(): Key = "": inFIle = "": OutFile = "" Exit Function errorhandler: 'Hapus isi variable-variable yang telah digunakan Erase Buffer(): Key = "": inFIle = "": OutFile = "" EncryptFile = False End Function
Enkripsi Byte Public Sub EncryptByte(byteArray() As Byte, Optional Key As String) 'Inisialisasi semua variable yang akan digunakan Dim Offset As Long, OrigLen As Long, LeftWord As Long, RightWord As Long, CipherLen As Long, CipherLeft As Long, CipherRight As Long, CurrPercent As Long, NextPercent As Long 'Cek apakah kunci enskripsi yang digunakan ddi masukan atau tidak oleh user, apabila tidak maka kita menggunakan kunci default If (Len(Key) > 0) Then Me.Key = Key 'Set Variable OrigLen agar sama panjang dengan ByteArray OrigLen = UBound(byteArray) + 1 'isi variable Chipherlen dengan data OrigLen +12 CipherLen = OrigLen + 12 'Jika nilai ChiperLen Modules 8 tidak kosong maka nilai ChiperLen = Chiperlen +8 -(CipherLEn Mod 8)
70
If (CipherLen Mod 8 <> 0) Then CipherLen = CipherLen + 8 - (CipherLen Mod 8) 'Reset varable ByteArray agar sama dengan variable ChiperLen ReDim Preserve byteArray(CipherLen - 1) 'Copy isi data variable bytearray(0) sepanjang OrigLen ke dalam variable ByteArray(12) Call CopyMem(byteArray(12), byteArray(0), OrigLen) Call CopyMem(byteArray(8), OrigLen, 4) Call Randomize Call CopyMem(byteArray(0), CLng(2147483647 * Rnd), 4) Call CopyMem(byteArray(4), CLng(2147483647 * Rnd), 4) 'Mulai proses enskripsi For Offset = 0 To (CipherLen - 1) Step 8 'Ambil data dari variable pada blok di sebelah kiri dari variable byterarray Call GetWord(LeftWord, byteArray(), Offset) 'Ambil data pada blok disebalh kanan pada file sebanyak 4 buah Call GetWord(RightWord, byteArray(), Offset + 4) 'Xorkan nilai blok kiri tadi dengan nilai CipherRight LeftWord = LeftWord Xor CipherLeft 'XORkan nilai blok kanan dengan nilai CipherRight RightWord = RightWord Xor CipherRight 'Mulai fungsi EnsripsiBlok di sebelah kanan dan kiri Call EncryptBlock(LeftWord, RightWord) 'Masuakn nilai di hasil ensripsi blok kiri tadi ke dalam variable bytearray Call PutWord(LeftWord, byteArray(), Offset) 'Masuakn niali hasil Ensripsi blok kanan ke dalam variable ByteArray lagi Call PutWord(RightWord, byteArray(), Offset + 4) 'Samakan niali CipherLeft dengan Blok Kiri CipherLeft = LeftWord 'Samakan nilai CipherRight dengan Nilai Blok Kanan CipherRight = RightWord 'Untuk progress Ensripsi If (Offset >= NextPercent) Then CurrPercent = Int((Offset / CipherLen) * 100) NextPercent = (CipherLen * ((CurrPercent + 1) / 100)) + 1 RaiseEvent Progress(CurrPercent) End If Next If (CurrPercent <> 100) Then RaiseEvent Progress(100) End Sub Deskripsi File Public Function DecryptFile(inFIle As String, OutFile As String, Overwrite As Boolean, Optional Key As String, Optional IsFileIn64 As Boolean) As Boolean On Error GoTo errorhandler If FileExist(inFIle) = False Then
71
DecryptFile = False Exit Function End If DoEvents If FileExist(OutFile) = True And Overwrite = False Then DecryptFile = False Exit Function End If Dim Buffer() As Byte, FileO As Integer FileO = FreeFile Open inFIle For Binary As #FileO ReDim Buffer(0 To LOF(FileO) - 1) Get #FileO, , Buffer() Close #FileO If IsFileIn64 = True Then Buffer() = DecodeArray64(StrConv(Buffer(), vbUnicode)) Call DecryptByte(Buffer(), Key) If FileExist(OutFile) = True Then Kill OutFile Open OutFile For Binary As #FileO Put #FileO, , Buffer() Close #FileO DecryptFile = True: DoEvents Erase Buffer(): Key = "": inFIle = "": OutFile = "" Exit Function errorhandler: Erase Buffer(): Key = "": inFIle = "": OutFile = "" DecryptFile = False End Function Deskripsi Byte Public Sub DecryptByte(byteArray() As Byte, Optional Key As String) On Error GoTo errorhandler Dim Offset As Long, OrigLen As Long, LeftWord As Long, RightWord As Long, CipherLen As Long, CipherLeft As Long, CipherRight As Long, CurrPercent As Long, NextPercent As Long If (Len(Key) > 0) Then Me.Key = Key CipherLen = UBound(byteArray) + 1 For Offset = 0 To (CipherLen - 1) Step 8 Call GetWord(LeftWord, byteArray(), Offset) Call GetWord(RightWord, byteArray(), Offset + 4) Call DecryptBlock(LeftWord, RightWord) LeftWord = LeftWord Xor CipherLeft RightWord = RightWord Xor CipherRight
72
Call GetWord(CipherLeft, byteArray(), Offset) Call GetWord(CipherRight, byteArray(), Offset + 4) Call PutWord(LeftWord, byteArray(), Offset) Call PutWord(RightWord, byteArray(), Offset + 4) If Offset >= NextPercent Then CurrPercent = Int((Offset / CipherLen) * 100) NextPercent = (CipherLen * ((CurrPercent + 1) / 100)) + 1 RaiseEvent Progress(CurrPercent) End If Next Call CopyMem(OrigLen, byteArray(8), 4) If (CipherLen - OrigLen > 19) Or (CipherLen - OrigLen < 12) Then Call Err.Raise(vbObjectError, , "Incorrect size descriptor in Blowfish decryption") Call CopyMem(byteArray(0), byteArray(12), OrigLen) ReDim Preserve byteArray(OrigLen - 1) If CurrPercent <> 100 Then RaiseEvent Progress(100) errorhandler: End Sub Menggambar Wav 'Fungsi untuk menggambar Amplitudo wav Private Sub GambarWav(picWav As PictureBox, Path As String, values() As Double, _ Y() As Double, Optional Col = vbYellow, Optional AllWave As Boolean = True) Dim i As Long, buff As Long, Xrate As Double, Yrate As Double Dim LastX As Double, LastY As Double, Min As Double, Max As Double Dim CurrX As Double, j As Long, imin As Long, imax As Long 'Not using other variables just for lack of will: 'values(0)= Titik awal 'values(1)= Titk akhir " " 'values(3)=number of low peaks 'values(4)=number of high peaks On Error Resume Next 'Baca isi File dari varible Path dan masukan semua data ke variable i = 44 'Set nilai i = 44, Sample suara di mulai pada byte ke 44. Open Path For Random As #1 Do Get #1, i, buff
73
i = i + 1: ReDim Preserve values(i) If buff < Min Then Min = buff If buff > Max Then Max = buff values(i) = buff Print #2, , values(i) Loop Until EOF(1) Close #1 With picWav 'Operasi untuk menggambar file wave Xrate = (.ScaleWidth / i) Yrate = (Max - Min) / (.ScaleTop) LastY = 0 Max = (Max / Yrate) Min = (Min / Yrate) 'Rubah nilai dari File wave ke dalam koordinat kartesian For j = 44 To UBound(values) ReDim Preserve Y(j - 43) Y(j - 43) = (values(j) / Yrate) 'Hitung nilai terrendah/tertinggi untuk dijadilkan koordinat If Y(j - 43) > (.ScaleTop / 3.5) Then values(4) = values(4) + 1 If Y(j - 43) < (-.ScaleTop / 3.5) Then values(3) = values(3) + 1 Next j 'Pengulangan untuk mengisolasikan bagian terpenting dari file wav If (AllWave = False And optIsolate.value = True) Or (AllWave = False And NamaFileWave2 = NamaFileWave1) Then For j = 1 To UBound(Y) - 1 'File Suara di mulai dari sini If (Abs(Y(j) - Y(j + 1))) > 100 Then values(0) = j: Exit For Next j For j = UBound(Y) To 1 Step -1 'File Suara di berakhir disini If (Abs(Y(j) - Y(j - 1))) > 100 Then values(1) = j: Exit For Next j imin = values(0): imax = values(1) ElseIf AllWave = False And optManually.value = True And NamaFileWave2 <> NamaFileWave1 Then imin = values(0): imax = values(1) 'Nilai yang di pilih oleh pengguna ElseIf AllWave = True Then imin = 1: imax = UBound(Y) End If 'Masukan bagian terpenting dari file wav ke dalam gambar amplitudo Xrate = (.ScaleWidth / (imax - imin)) Yrate = (Max - Min) / (.ScaleTop)
74
'Mulai menggambar amplitudo picWav.Line (0, 0)-(.ScaleWidth, 0), Col For i = imin To imax CurrX = CurrX + Xrate picWav.Line (LastX, LastY)-(CurrX, Y(i)), Col LastX = CurrX LastY = .CurrentY If CurrX > .ScaleWidth Then Exit For DoEvents Next i End With Exit Sub errBoz: MsgBox Err.Description If Err.Number = 95 Then Resume Next End Sub Verifikasi Suara Function Verifikasi() As Boolean Dim Cnt1, Cnt2 As Double Cnt1 = 25 Cnt2 = 40 Test1 = 0 Test2 = 0 Test1 = Perbandingan_DariTitikKeTitik(Y1, Y2) Test2 = Perbandingan_Statis(Y1, Y2) If Abs(UBound(values1) - UBound(values2)) > 300 Then Verifikasi = False: Exit Function ' If Perbandingan_DariTitikKeTitik(Y1, Y2) >= Cnt And (Abs(values1(3) values2(3)) < 10) And (Abs(values1(4) - values2(4)) < 10) And _ ' (Abs(ArithmeticMean(Y1, values1(0), values1(1)) - ArithmeticMean(Y2, values2(0), values2(1))) < 6) And _ '(Abs(StandardDeviation(Y1, values1(0), values1(1)) - StandardDeviation(Y2, values2(0), values2(1))) < 10) Then If Perbandingan_DariTitikKeTitik(Y1, Y2) >= Cnt2 And Perbandingan_Statis(Y1, Y2) >= Cnt1 Then Verifikasi = True Else Verifikasi = False End If End Function
75