BAB III
ANALISIS DAN PERANCANGAN PROGRAM APLIKASI
3.1 Analisis Program Aplikasi 3.1.1 Analisis Database
Program Database yang digunakan adalah SQL server 2000, dengan metode client-server yang terintegrasi dengan component ADO pada Delphi. Pada program aplikasi ini dibutuhkan 3 tabel pada database, yaitu:
Tabel Karyawan
Dengan atribut ‘id’ sebagai field nomor induk dari karyawan, ‘nama’ sebagai field nama lengkap karyawan, ‘Alamat, dan ‘Tgl_lahir’.
Tabel 1. Database karyawan
Attribut Tipe Ukuran ID Nchar 6 Nama Varchar 16 Alamat Varchar 50
Tgl_Lahir datetime 8
Tabel Sound
Dengan atribut ‘id’ sebagai field nomor induk dari karyawan, ‘rec1’,’rec2’,dan ‘rec’3’ sebagai field boelan rekaman 0=belum 1=sudah.
Tabel 2. Database sound
Attribut Tipe Ukuran ID Nchar 1 Rec1 Bit 1 Rec2 Bit 1 Rec3 bit 1
Tabel Absen
Dengan atribut ‘tgl’ sebagai field tanggal absensi, ‘id’ sebagai field nomor induk karyawan, ‘masuk’ field text data jam absensi masuk, dan ‘keluar’ field text data jam absensi keluar.
Tabel 3. Database absen
Attribut Tipe Ukuran Tgl datetime 8
ID Nchar 6
Masuk Smalldatetime 4
keluar Smalldatetime 4
Gambar 3.1. Database Relation Diagram 3.1.2 Analisis Proses I/O File Wave
Proses perekaman dan penyimpanan file wave dilakukan dengan bahasa pemograman Borland Delphi 6 yang memanfaatkan componentTwave dan buffer string
3.1.1 Analisis File Wave
Proses pengklarifikasian dan pengimplementasian metode gaussian mixture
model dan MABC dilakukan dengan program Matlab V.7 R.13. Memanfaatkan toolbox
wavelet yang tersedia dan toolbox set dari project Pekka Paalanen ‘bayesian
classification using gaussian mixture model and EM estimation’ dengan pengubahan dan
penambahan beberapa m file untuk mendapatkan dan memroses data yang diperlukan dari file wave.
3.2 Perancangan Program Aplikasi 3.2.1 Perancangan Struktur Menu
Struktur Menu pada rancangan ini yang dapat dilihat pada gambar 3.2 memperlihatkan susunan dari menu-menu rancangan yang ada, dimana pengguna dapat memilih menu yang ingin digunakannya.
Start
Menu Utama
End
Database Sound Absen
View Absen Add Del
Tabel Absen Add Database Delete Record Database Karyawan Update Database Karyawan Exit Add Database
save Cancel (return 0) Record Analisa Wave matlab absensi.m Status Pengenalan Suara Exit Exit Temp.wav Update Database Absen Memo Status Play
Play .wav Add Sound
Record Update Database Sound save Add Database Save .wav record Cancel (return 0) Add Sound Delete Delete .wav Exit Exit
Gambar 3.3 Flowchart Algoritma Staddling
3.2.2 Perancangan Modul
Modul yang digunakan di program ini ada tiga modul, modul menu utama, modul open wave, dan modul record.
3.2.2.1 Modul Menu Utama
Modul utama ini berisikan tiga menu pilihan yaitu menu database, menu
sound dan menu absen. Pengguna dapat memilih menu yang sesuai dengan
kebutuhannya. Bila pengguna ingin melihat dan mengatur record data karyawan
beserta status file wave nya, maka pengguna dapat memilih menu database
untuk memilih file wave yang akan diedit. Untuk memasukkan data file wave karyawan ataupun untuk training pengenalan suara nya, maka pengguna dapat memilih menu sound. Bila pengguna ingin melakukan absensi dengan
pengenalan suara maka pengguna dapat memilih menu absen.
3.2.2.2 Modul Database
Modul database adalah modul yang digunakan untuk melihat data dari
karyawan yang sudah mempunyai data suaranya. Modul ini berisikan fungsi view dari tabel record data karyawan beserta status file wave nya (view), fungsi untuk menambah data karyawan (add), fungsi untuk mengedit data karyawan
(edit), dan fungsi menghapus record data (delete).
3.2.2.3 Modul Sound
Modul sound adalah modul yang digunakan untuk memasukkan data file
wave suara karyawan dan untuk melatih pengenalan suara. Modul ini berisikan fungsi play untuk memutar file wave (play) dan fungsi untuk menambah data file
wave karyawan maksimum 3 (add), dan fungsi untuk menghapus data suara
3.2.2.4 Modul Absen
Modul Absen adalah modul yang digunakan untuk merekam suara dari microphone yang digunakan untuk pengenalan suara. modul ini berisikan fungsi untuk merekam suara (start), dan kolom status dari proses. Suara yang direkam
akan langsung diproses dibandingkan dengan data file wave yang ada, dan pada kolom status akan memberikan hasil dari pengenalan suara.
3.3. Perancangan Proses Wave 3.3.1. Modul M-file
Pada Program Matlab, akan dibuat 3 m-file utama sebagai . Yang Pertama adalah MABC.m sebagai pemanggil proses penghitungan file wave dengan metode MABC, yang kedua gmmb.m sebagai pemanggil proses penghitungan Gaussian Mixture Model, dan yang terakhir adalah Absensi.m sebagai pengaktif model pengenalan suara yang akan memberikan nilai kalkulasi probabilitas.
Setiap m-file proses seperti gmmcreate, gmmclass, dan lain-lain, akan dibuat permodul m sehingga memudahkan untuk mengatur setiap fungsi proses. Proses train menggunakan ‘gmm_create.m’ memanggil m file lainnya untuk mendapatkan komponen bayes fungsi GMM dari data wave, dan MABC_create.n untuk mendapatkan komponen metode MABC. Pada proses Absensi digunakan absensi.m untuk memulai perhitungan probabilitas dan pengenalan suara.
3.3.2. Algoritma Proses Wave
Gambar 3.4 Algoritma proses train
Pada show_result pada gambar 3.5 bila hasil pengenalan MABC telah mencapai 80% keatas, suara dapat diterima. Bila suara setelah dilakukan proses GMM masih tidak mencukupi 30% maka suara ditolak artinya tidak dikenali.
Gambar 3.5 Algoritma proses pengenalan suara
3.4. Perancangan Tampilan
3.4.1. Rancangan Tampilan Utama
Pada rancangan tampilan utama, terdapat 4 button yang dapat diklik,
“Database” untuk membuka dan mengedit record data karyawan, “Sound” untuk
merekam data file wave karyawan yang secara automatis menghilangkan noise
serta untuk memutar dan melatih pengenalan suara, “Absen” untuk proses absensi dengan pengenalan suara, dan “Exit” untuk keluar dari program. Button exit akan tersedia pada setiap form sebagai button penutup form dan kembali ke menu utama atau juga untuk keluar dari program.
Gambar 3.6 rancangan tampilan utama 3.4.2. Rancangan Tampilan Database
Pada form “Database” terdapat empat button utama; view, add, edit,
delete, dan terdapat sebuah tabel record data. “view” untuk membuka form baru
berisi data karyawan yang sebelumnya telah disorot pada tabel record data secara detail. Button “add” untuk menambah data karyawan, setelah diklik akan muncul
dialog box dengan field-field yang tersedia untuk diisi sebagai data karyawan. “Edit” digunakan untuk mengedit record data karyawan yang disorot, sama
seperti add akan muncul dialog box berisi field-field yang sudah berisi data
sebelumnya yang dapat diubah. “Delete” digunakan untuk menghapus record
data yang disorot, akan ada dialog box untuk meminta confirmasi penghapusan data.
Pada tabel record data akan menampilkan kolom ”ID”(Nomor Induk), “Nama”,”Alamat”,”Rec1”,”Rec2”,“Rec3”. Kolom Wave# mengenai informasi apakah file wave ke-# telah tersedia atau belum.
Gambar 3.7 rancangan tampilan database
3.4.3. Rancangan Tampilan Sound
Pada rancangan tampilan Sound, terdapat 1 editbox yang berisi nama karyawan pada database, 3 kolom wave yaitu “rec1”, “rec2”, dan “rec3” sebagai indikator tersedianya file wave.
Terdapat 4 button yang dapat diklik, “play” untuk memutar file wave
pada database, “add” untuk menambah data file wave karyawan dengan
merekam suara karyawan ke dalam file wave yang secara automatis dihilangkan
noise, file akan otomatis masuk pada kolom wave dengan urutan otomatis, bila
data file wave sudah ada tiga maka tombol “add” akan tidak aktif. “Delete”
kolom wave, dan “Exit” untuk keluar dari program. Buttonexit akan tersedia
pada setiap form sebagai button penutup form dan kembali ke menu utama atau
juga untuk keluar dari program.
Gambar 3.8 rancangan tampilan sound
3.4.4. Rancangan Tampilan Absen
Pada tampilan rancangan “Record”, tersedia button “Start” untuk mulai
merekam suara yang masuk ke microphone pada komputer. Kolom info status akan memberikan informasi status proses seperti perekaman, hasil proses, proses gagal, dan sebagainya. Button exit di sini berfungsi sama pada menu open wave,