Potong silence b1=findx1b0 | x1-b0;

Gambar 4.8. Lanjutan Program pemrosesan database frame blocking 4096 x8=wavreadsi8.wav;y8=pdstx8,frame,segmen; x9=wavreadsi9.wav;y9=pdstx9,frame,segmen; x10=wavreadsi10.wav;y10=pdstx10,frame,segmen; z7=y1+y2+y3+y4+y5+y6+y7+y8+y9+y1010; x1=wavreaddot1.wav;y1=pdstx1,frame,segmen; x2=wavreaddot2.wav;y2=pdstx2,frame,segmen; x3=wavreaddot3.wav;y3=pdstx3,frame,segmen; x4=wavreaddot4.wav;y4=pdstx4,frame,segmen; x5=wavreaddot5.wav;y5=pdstx5,frame,segmen; x6=wavreaddot6.wav;y6=pdstx6,frame,segmen; x7=wavreaddot7.wav;y7=pdstx7,frame,segmen; x8=wavreaddot8.wav;y8=pdstx8,frame,segmen; x9=wavreaddot9.wav;y9=pdstx9,frame,segmen; x10=wavreaddot10.wav;y10=pdstx10,frame,segmen; z8=y1+y2+y3+y4+y5+y6+y7+y8+y9+y1010; dbs=[z1 z2 z3 z4 z5 z6 z7 z8]; save dst4096 dbs function z=pdstx0,frame,segmen Batas potong b0=0.3; Normalisasi 1 x1=x0maxabsx0; Pemotongan sinyal 1. Potong silence b1=findx1b0 | x1-b0; x11:b11=[]; 2. Potong transisi bts=floor0.25lengthx1; x11:bts=[]; Frame blocking x2=x11:frame; Normalisasi 2 x3=x2maxx2; Gambar 4.8. Lanjutan Program pemrosesan database frame blocking 4096 Gambar 4.7. merupakan listing program untuk memanggil database dan Gambar 4.8. merupakan listing program pemrosesan database. Database yang dipanggil sesuai dengan pilihan nilai frame blocking yang dipilih oleh user. Proses yang dilakukan selanjutnya adalah membandingkan database dengan data nada belira yang baru menggunakan perhitungan fungsi jarak Euclidean. Gambar 4.9. merupakan listing program untuk memanggil fungsi jarak Euclidean dan menampilkan nilai jarak Euclidean terkecil dan Gambar 4.10 merupakan listing program perhitungan fungsi jarak Euclidean. Setelah melalui proses perhitungan fungsi jarak Euclidean, data diurutkan dari yang paling kecil ke paling besar sort ascending. Program pemanggilan database, pemrosesan database, pemanggilan fungsi jarak Euclidean, dan perhitungan fungsi jarak Euclidean berjalan sesuai dengan diagram alir pada Gambar 3.12. Kolom matriks x4=reshapex3,segmen,[]; DST 2D [baris,kolom]=sizex4; y1=zerosbaris,kolom; y2=y1; for k=1:kolom; y1:,k=dstx4:,k; end for k=1:baris; y2k,:=dsty1k,:; end x5=absy2; Rerata baris x6=x5; x7=meanx6; z=x7 Gambar 4.9. Program untuk memanggil fungsi jarak Euclidean dan menampilkan nilai jarak Euclidean terkecil Gambar 4.10. Program perhitungan fungsi jarak Euclidean Proses selanjutnya merupakan proses terakhir dari seluruh rangkaian proses pengenalan nada belira yaitu penentuan nada. Setelah data diurutkan, penentuan nada dilakukan dengan memilih kelas yang memiliki nilai jarak paling kecil. Jarak Euclidean terkecil ditampilkan pada static text 1 menggunakan program yang ditunjukkan oleh Gambar 4.9. Kelas yang memiliki nilai jarak paling kecil menjadi keluaran untuk proses penentuan nada yang berhasil dikenali. Proses penentuan nada yang ditampilkan dalam bentuk teks di GUI berjalan sesuai dengan diagram alir pada Gambar 3.13. Gambar 4.11. merupakan listing program untuk menampilkan teks hasil pengenalan nada. Gambar 4.11. Program untuk menampilkan teks hasil pengenalan nada Hitung jarak for m=1:8 zm=fungsi_jarakdbs:,m,cn; end minz=minz; sethandles.text9,string,minz; function jec=jarakx,y Jarak Euclidean c1=x-y.2; c2=sumc1; jec=sqrtc2; Keluaran Teks if minz==z1; z1={Do}; sethandles.text6,string,z1; Gambar 4.11. Lanjutan Program untuk menampilkan teks hasil pengenalan nada b. Tombol “Ulang” T ombol “Ulang” berfungsi untuk mengulangi proses pengenalan nada dengan cara mengembalikan tampilan program ke tampilan awal GUI. Listing program yang digunakan untuk tombol “Ulang” ditunjukkan oleh Gambar 4.12. Perintah plot0 adalah perintah untuk menghapus plot yang ada pada kotak axes. Perintah sethandles.text6,string, dan sethandles.text9,string, adalah perintah untuk menghapus teks hasil pengenalan nada dan nilai jarak Euclidean terkecil pada kedua kotak static text. Perintah sethandles.popupmenu1,value,1 adalah perintah untuk mengubah pilihan nilai frame blocking ke case yang tidak terdapat nilai di dalamnya yaitu case 1. elseif minz==z2; z4={Re}; sethandles.text6,string,z2; elseif minz==z3; z5={Mi}; sethandles.text6,string,z3; elseif minz==z4; z4={Fa}; sethandles.text6,string,z4; elseif minz==z5; z5={Sol}; sethandles.text6,string,z5; elseif minz==z6; z6={La}; sethandles.text6,string,z6; elseif minz==z7; z7={Si}; sethandles.text6,string,z7; elseif minz==z8; z8={Do Tinggi}; sethandles.text6,string,z8; end Gambar 4.12. Program untuk mengulangi proses pengenalan nada dari tampilan awal GUI c. Tombol “Selesai” Tombol “Selesai” digunakan untuk mengakhiri proses pengenalan nada dan menutup GUI pengenalan nada belira. Gambar 4.13. merupakan listing program yang digunakan untuk tombol “Selesai”. Gambar 4.13. Program untuk menutup GUI pengenalan nada belira

4.3. Hasil Pengujian Program