BAB 3 METODOLOGI PEMECAHAN MASALAH DAN PERANCANGAN
3.1
Sistem Diagram Sistem diagram adalah diagram dari sebuah sistem, dengan fungsi atau bagian
utamanya diwakili oleh blok yang dihubungkan oleh garis-garis yang menunjukkan hubungan antar blok.
Gambar 3.1 Sistem Diagram
3.2
Teknik Pengumpulan Data
3.2.1
Perekaman suara Suara manusia pada awalnya hanyalah tekanan udara yang kemudian ditangkap
oleh mic dan menjadi sebuah sinyal listrik analog. Setelah sinyal analog didapatkan, sinyal ini kemudian diubah menjadi sinyal digital menggunakan Analog to Digital Converter untuk memudahkan pengolahan data. Sinyal digital memiliki tingkat keakuratan yang tetap tinggi setelah diolah oleh komputer. Dalam penelian ini, suara yang sudah menjadi sinyal digital tersebut disimpan ke dalam file berekstension .WAV.
Gambar 3.2 Contoh sinyal suara yang direkam
28 3.2.2
Konversi Informasi data yang terdapat di dalam file tersebut masih dalam domain waktu,
sehingga harus diubah menjadi informasi data dalam domain frekuensi dengan menggunakan algoritma Fast Fourier Transform. Sinyal suara yang diurai menjadi data berbentuk frekuensi memiliki informasi yang lebih mudah diolah dan juga karena hasil yang ingin dijadikan acuan adalah frekuensi dasar user. Perhitungan untuk menentukan nilai frekuensi dan intensitas suara adalah sebagai berikut : Hz =
M ×L fs (Pers 4 – 1) hz
f =
∑i× f
s
i =0
L (Pers 4 – 2)
I = 20 × log(abs(Y ) + ε )
(Pers 4 – 3) Hz
: Batasan frekuensi
M
: Batas maksimal frekuensi yang ditentukan. (Dalam penelitian ini, menggunakan M = 3000)
L
: Banyak array dalam proses FFT
fs
: Frekuensi sampling
f
: Frekuensi (dalam satuan hertz)
i
: nilai array dalam proses FFT
I
: Intensitas suara ( dalam satuan desibel)
Y
: Nilai dari hasil FFT
ε
: Bilangan epsilon ( ε = 2.22024 x 10-16)
Setelah didapat data yang berbasis frekuensi, data akan diolah lagi dengan menggunakan metode divide and conquer. Frekuensi yang diambil berkisar antara 300Hz sampai maksimum 3000Hz dan memiliki intensitas suara yang lebih besar dari
28
29 20 Db. Frekuensi yang berada di bawah 20Db dianggap tidak berperan dalam menentukan suara seseorang. Kemudian rata-rata dari frekuensi-frekuensi yang didapatkan itu akan disimpan di dalam database.
3.2.3
Database Cara pengumpulan data adalah dengan cara sampling. Jumlah sampel per orang
yang harus diidentifikasi untuk membangun database minimal 20 kali. Random sampel data yang diambil sebanyak 20 data supaya dapat dianggap berdistribusi normal. Database dimaksudkan untuk menyimpan data pribadi user dan juga rata-rata frekuensi yang pada saat pengidentifikasian akan dibandingkan dengan suara yang baru masuk. Pada saat user ingin melakukan identifikasi suara, rata-rata frekuensi tersebut yang akan dibandingkan dengan persentase kecocokan suara minimal 90% atau persentase kesalahan maksimal 10%.
3.3
Algoritma Program Langkah-langkah yang akan dilakukan dalam menjalankan program pengenalan
suara ini adalah sebagai berikut : 1. Masukan yang digunakan adalah suara manusia yang direkam melalui mikrofon. Suara manusia yang merupakan sinyal analog diubah menjadi sinyal digital dalam bentuk file dengan format WAV. 2. Sebelum proses perekaman, komputer akan memberitahukan untuk mengucapkan suatu pengenal, misalnya: mengatakan huruf A.. 3. Hasil rekaman suara tersebut akan diolah kemudian dengan menggunakan
Fast Fourier Transform untuk mengubah data yang berbasis waktu menjadi data yang berbasis frekuensi. 4. Setelah didapat hasil Fast Fourier Transform, data kemudian diolah lagi dengan menggunakan algoritma Divide and Conquer. Spektrum yang ada akan diambil hanya frekuensi yang besarnya berkisar antara 300 Hz sampai 3000 Hz dan memiliki intensitas suara yang lebih besar dari 20 Db.
29
30 5. Frekuensi-frekuensi yang didapat pada langkah sebelumnya akan dihitung rata-ratanya sehingga menghasilkan satu nilai frekuensi sebagai ciri khas spektrum frekuensi suara orang tersebut dan disimpan ke dalam database. 6. Jika user melakukan pengidentifikasian suara, maka nilai frekuensi yang disebutkan pada nomor 5 akan dibandingkan dengan nilai-nilai frekuensi yang ada pada database dengan tingkat kecocokan minimal 90%.
3.4
Perancangan Program
3.4.1
Borland Delphi
Borland Delphi versi 1.0 dikembang pertama kali pada tahun 1995. Borland Delphi memberikan kemudahan kepada para programmer dalam membuat program secara visual, dengan cara menggabungkan kemudahan penggunaan environtment dari
Visual Basic dan ketangguhan object oriented dari Microsoft C++. Umumnya program ini lebih banyak digunakan untuk pengembangan aplikasi desktop dan enterprise berbasis database, tapi sebagai perangkat pengembangan yang bersifat general-purpose ia juga mampu dan digunakan dalam berbagai jenis proyek pengembangan software. Beberapa kelebihan Borland Delphi adalah dapat mengkompilasi menjadi single
executable, memudahkan distribusi dan meminimalisir masalah yang terkait dengan versioning, dan optimasi kompilernya yang cukup cepat.
3.4.2
Matlab Matlab (yang berarti "matrix laboratory") diciptakan pada akhir tahun 1970-an
oleh Cleve Moler. Matlab memungkinkan manipulasi matriks, perencanaan fungsi dan data, implementasi algoritma, pembuatan antarmuka pengguna, dan penggabungan dengan program dalam bahasa lainnya. Karena perintah Matlab serupa dengan cara di mana kita merumuskan langkahlangkah teknik dalam matematika, menulis solusi komputer dalam Matlab jauh lebih cepat dibandingkan dengan menulis solusi komputer menggunakan sebuah bahasa pemrograman tingkat tinggi, seperti C atau Fortran.
30
31 3.4.3
Flowchart Proses
Gambar 3.3 Flowchart proses untuk memasukkan data baru
31
32
Gambar 3.4 Flowchart proses untuk melakukan identifikasi
3.4.4 State Transition Diagram
STD atau State Transition Diagram menggambarkan sebuah sistem yang realtime dan sistem yang online. STD merupakan suatu keadaan yang menggambarkan suatu keadaan pada waktu tertentu (Yourdon, 2006). Perubahan keadaan dapat terjadi karena suatu kejadian dan sebagai akibat dari kejadian tersebut maka akan muncul suatu aksi yang menyebabkan keadaan berubah. STD membantu dalam memberikan gambaran secara keseluruhan dari program. STD untuk program aplikasi ini dapat dilihat pada Gambar 3.5, Gambar 3.6, Gambar 3.7, Gambar 3.8, dan Gambar 3.9.
32
33
Form Utama Klik “New Entry “ Tampilkan menu FormBio
FormBio Klik “Identify Voice” Tampilkan menu FormRekam1
Klik “Exit” Keluar dari Program
FormRekam1
Exit
Gambar 3.5 State Transition Diagram FormUtama
FormRekam1 Klik “Submit”
FormBio
Mengecek keabsahan pengisian biodata dan lakukan rekaman suara
Klik “Cancel” Kembali ke form Utama
FormUtama
Gambar 3.6 State Transition Diagram FormBio
33
34
Record Klik “Record”
Selesai merekam
Merekam suara
Tombol “save” enable
FormRekam1 Klik “Save”
Klik “Continue” Jika pada form utama klik “New Entry” maka ketika akan menampilkan formadd, jika klik”Identify Voice”, maka akan menampilkan form result
Rekaman disave ke dalam file wav
Save Selesai save file Tombol “Continue” enable
FormAdd / FormResult
Gambar 3.7 State Transition Diagram FormRekam1
FormAdd Klik “Add To Database” Masukkan semua data ke dalam tabel suara.
Add To Database Selesai memasukkan data Tampilkan tombol “Back to Home”
Klik “Back to Home” Kembali ke FormUtama
FormUtama
Gambar 3.8 State Transition Diagram FormAdd
34
35
FormResult Klik “Identify Voice” Melakukan perbandingan frekuensi suara dengan database
Add To Database Selesai Melakukan identifikasi Tampilkan tombol “Back to Home”
Klik “Back to Home” Kembali ke FormUtama
FormUtama
Gambar 3.9 State Transition Diagram FormResult
Menu-menu yang terdapat pada program simulasi ini adalah seperti yang dijelaskan pada Tabel 3.1 berikut ini:
Tabel 3.1 Menu-menu Program Simulasi Menu
Tujuan
New Entry
Untuk memasukkan data baru mencakup data pribadi seseorang dan juga frekuensi suaranya.
Identifify Voice
Untuk mengecek identitas pemilik suara tersebut sesuai yang ada di dalam database. Untuk keluar dari program.
Exit
35
36 3.5
Perancangan Layar
3.5.1
Rancangan Layar Menu Utama Voice Recognizer
New Entry Identify Voice
Exit Gambar 3.10 Rancangan Layar Menu Utama
Keterangan yang terdapat pada tampilan layar tersebut adalah sebagai berikut. •
Judul form dengan tulisan ’Voice Recognizer’.
•
Kotak dengan tanda ’X’ di samping judul memiliki fungsi untuk keluar dari program.
•
Kotak dengan tanda ’_’ di samping judul memiliki fungsi untuk menyembunyikan layar.
•
Tombol menu ’New Entry’ memiliki fungsi untuk memasukkan data suara baru ke dalam database.
•
Tombol menu ’Identify Voice’ memiliki fungsi untuk lakukan proses idenfikasi seseorang.
•
Tombol menu ’Exit’ memiliki fungsi untuk keluar dari program.
Pada saat program pertama kali dijalankan, tampilan program yang keluar adalah seperti Gambar 3.10 diatas. Pada menu utama ini terdapat 3 tombol, yaitu tombol ”New Entry”, tombol ”Identify” dan tombol ”Exit”.
36
37 Tombol ”New Entry” berguna untuk memasukkan data yang baru ke database, tampilan menu ”New Entry” dapat dilihat pada Gambar 3.11. Tombol ”Identify” berguna untuk melakukan proses identifikasi suara yang telah direkam, kemudian akan masuk ke dalam layar Rekam Suara pada gambar 3.12. Setelah perekaman selesai, akan dilakukan cek frekuensi berdasarkan data yang terdapat dalam database. ”Tombol ”Exit” berguna untuk keluar dari program.
3.5.2
Rancangan Layar New Entry
Voice Recognizer
Biodata
Name : Date of birth : Gender : Submit
Man
Woman
Cancel
Gambar 3.11 Rancangan Layar New Entry
Keterangan yang terdapat pada tampilan layar tersebut adalah sebagai berikut. •
Judul form dengan tulisan ’Voice Recognizer’.
•
Kotak dengan tanda ’X’ di samping judul memiliki fungsi untuk keluar dari program.
•
Kotak dengan tanda ’_’ di samping judul memiliki fungsi untuk menyembunyikan layar.
•
Text box di samping tulisan ’Name’ berfungsi sebagai masukan nama user.
•
Text box di samping tulisan ’Date Of Birth’ berfungsi sebagai masukan tanggal lahir user.
37
38 •
Radio Button di samping tulisan ’Gender’ berfungsi sebagai masukan jenis kelamin user.
•
Tombol menu ’Submit’ memiliki fungsi untuk melanjutkan ke proses rekam suara.
•
Tombol menu ’Cancel’ memiliki fungsi untuk kembali ke menu utama.
Pada layar ”New Entry” ini, user akan mengisi biodata dirinya. Jika user tidak ingin melanjutkan pengisian database baru, terdapat tombol ”Cancel” yang berfungsi untuk kembali ke layar Menu Utama. Akan tetapi, jika user ingin melanjutkan pengisian database baru, user akan memilih tombol ”Submit” yang akan melakukan pengecekan pengisian biodata. Jika terdapat kesalahan pengisian biodata, maka akan muncul pesan error. Setelah pengisian biodata dilakukan dengan benar, tombol ”Submit” akan membawa user ke layar ”Rekam Suara” yang berfungsi untuk merekam suara.
3.5.3
Rancangan Layar Rekam Suara
Voice Recognizer
Katakan A Save
Record
Continue
Gambar 3.12 Rancangan Layar Menu Rekam Suara
38
39 Keterangan yang terdapat pada tampilan layar tersebut adalah sebagai berikut. •
Judul form dengan tulisan ’Voice Recognizer’.
•
Kotak dengan tanda ’X’ di samping judul memiliki fungsi untuk keluar dari program.
•
Kotak dengan tanda ’_’ di samping judul memiliki fungsi untuk menyembunyikan layar.
•
Tombol menu ’Record’ memiliki fungsi untuk merekam suara yang masuk selama 2 detik.
•
Tombol menu ’Save’ memiliki fungsi untuk menyimpan rekaman suara ke dalam file berekstension wav.
•
Tombol menu ’Continue’ memiliki fungsi untuk melanjutkan ke form selanjutnya.
Pada awalnya, hanya ada 1 tombol yang dapat ditekan, yaitu tombol ”Record”. Tombol ini memiliki fungsi untuk melakukan rekaman suara. Setelah perekaman selesai, maka tombol ”Save” bisa dipilih. Fungsi dari tombol ”Save” ini adalah untuk menyimpan rekaman tadi ke dalam suatu bentuk file berekstension wav. Kemudian tombol ”Continue” yang berguna untuk melanjutkan ke layar berikutnya akan enable. Pada saat tombol ”Continue” dipilih, akan dilakukan pengecekan layar awal. Apabila pada saat menu utama user memilih tombol ”New Entry”, maka layar berikutnya yang akan ditampilkan adalah layar ”Masuk”. Namun, jika pada saat menu utama user memilih tombol ”Identify Voice”, maka layar berikutnya yang akan ditampilkan adalah layar ”Hasil”.
39
40 3.5.4
Rancangan Layar Masuk Voice Recognizer
Frekuensi suara : (Frek) Jumlah record : (Record)
Masukkan data
Back To Home
Gambar 3.13 Rancangan Layar Masuk
Keterangan yang terdapat pada tampilan layar tersebut adalah sebagai berikut. •
Judul form dengan tulisan ’Voice Recognizer’.
•
Kotak dengan tanda ’X’ di samping judul memiliki fungsi untuk keluar dari program.
•
Kotak dengan tanda ’_’ di samping judul memiliki fungsi untuk menyembunyikan layar.
•
Label ’frek’ menunjukkan frekuensi rata-rata suara yang direkam.
•
Label ’record’ menunjukkan jumlah record yang telah direkam.
•
Tombol menu ‘Masukkan data’ memiliki fungsi untuk menghitung frekuensi dasar rata-rata suara kemudian memasukkannya ke dalam database.
•
Tombol menu ‘Back to Home’ memiliki fungsi untuk kembali ke menu utama.
Pada layar ini, terdapat 2 rombol yaitu tombol “Masukkan data” dan tombol “Back to Home”. Pada awalnya yang terlihat hanyalah tombol “Masukkan data”. Fungsi dari tombol ini adalah untuk melakukan perhitungan nilai frekuensi suara, kemudian
40
41 memasukkannya ke dalam database. Sebelum jumlah record mencapai 20, tombol ini akan berubah tulisan menjadi “Record more voice”, yang berfungsi untuk merekam suara untuk kemudian diolah sehingga bisa mencapai jumlah record 20 sehingga data bisa dianggap berdistribusi normal. Ketika jumlah record sudah mencapai angka 20, maka tombol “Back to Home” bisa ditekan. Kegunaan tombol ini adalah untuk kembali ke layar utama.
3.5.5
Rancangan Layar Hasil Voice Recognizer
Name Date of Birth Gender Persentase
Identify Voice
: (nama) : (tgl lahir) : (Pria/Wanita) : (Persen)
Back To Home
Gambar 3.14 Rancangan Layar Hasil
Keterangan yang terdapat pada tampilan layar tersebut adalah sebagai berikut. •
Judul form dengan tulisan ’Voice Recognizer’.
•
Kotak dengan tanda ’X’ di samping judul memiliki fungsi untuk keluar dari program.
•
Kotak dengan tanda ’_’ di samping judul memiliki fungsi untuk menyembunyikan layar.
•
Label ’nama’ menunjukkan nama orang yang sudah teridentifikasi.
•
Label ‘tgl lahir’ menunjukkan tanggal lahir orang yang sudah teridentifikasi.
41
42 •
Label ‘Pria/Wanita’ diisi hanya dengan tulisan ‘Pria’ atau ‘Wanita’, menunjukkan gender orang yang sudah teridentifikasi.
•
Label ‘Persen’ menunjukkan tingkat kecocokan suara yang diambil dengan suara yang terdapat dalam database.
•
Tombol menu ‘Identify Voice’ memiliki fungsi untuk menghitung frekuensi rata-rata suara kemudian membandingkannya dengan database suara yang ada.
•
Tombol menu ‘Back to Home’ memiliki fungsi untuk kembali ke menu utama.
Tombol yang akan ditampilkan pada awalnya hanyalah tombol “Identify Voice”. Tombol ini memiliki fungsi untuk melakukan perhitungan frekuensi suara, kemudian dilakukan pencarian frekuensi suara dalam database yang mirip dengan frekuensi suara yang direkam. Jika terdapat frekuensi yang persentase kecocokannya di atas 90 persen, maka identitas pemilik suara akan ditampilkan berdasarkan tingkat kecocokan tersebut. Setelah selesai, tombol “Back to Home” dapat ditekan. Kegunaan tombol “Back to Home” adalah untuk kembali ke layar utama.
42