Pengenalan nada Belira menggunakan Row Mean DST

(1)

i

TUGAS AKHIR

PENGENALAN NADA BELIRA

MENGGUNAKAN ROW MEAN DST

Diajukan untuk memenuhi salah satu syarat

memperoleh gelar Sarjana Teknik pada

Program Studi Teknik Elektro

Jurusan Teknik Elektro

Fakultas Sains dan Teknologi Universitas Sanata Dharma

Oleh :

EDUARDO SATRIO PRATAMA

NIM : 135114051

PROGRAM STUDI TEKNIK ELEKTRO

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA


(2)

ii

FINAL PROJECT

BELLYRA TONE RECOGNITION

USING ROW MEAN DST

In a partial fulfilment of the requirements

for the degree of Sarjana Teknik

in Electrical Engineering Study Program

Department of Electrical Engineering

Faculty of Science and Technology, Sanata Dharma University

By :

EDUARDO SATRIO PRATAMA

NIM : 135114051

ELECTRICAL ENGINEERING STUDY PROGRAM

DEPARTMENT OF ELECTRICAL ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2017


(3)

(4)

(5)

v

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.

Yogyakarta, 8 Juni 2017


(6)

vi

HALAMAN PERSEMBAHAN DAN MOTTO HIDUP

Motto :

Pursue for excellence, success will chase you

-Ranchoddas Shamaldas Chancad-

Skripsi ini kupersembahkan kepada…

Tuhan Yesus Kristus pembimbingku yang setia

Bapak, Mama, saudara/saudari, dan seluruh keluarga tercinta

Teman-

teman TE ’13 tersayang


(7)

vii

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI ILMIAH

UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Eduardo Satrio Pratama

Nomor Mahasiswa : 135114051

Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :

PENGENALAN NADA BELIRA MENGGUNAKAN ROWMEAN DST

beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.

Demikian pernyataan ini yang saya buat dengan sebenarnya.

Yogyakarta, 8 Juni 2017


(8)

viii

INTISARI

Musik merupakan sebuah fenomena yang sangat unik yang bisa dihasilkan oleh beberapa alat musik. Belira adalah salah satu alat musik yang digunakan untuk memainkan nada-nada melodi, yakni nada-nada lagu yang dimainkan oleh pemain drum band sehingga pendengar bisa mengetahui lagu apa yang sedang dimainkan. Tinggi rendahnya nada ditentukan oleh frekuensi dasar gelombang bunyi. Semakin tinggi frekuensi dasar gelombang bunyi, semakin tinggi nada yang dihasilkan. Indera pendengaran manusia tidak dapat mengetahui secara pasti nada apa yang didengar olehnya, terkecuali pemusik profesional. Hal ini sangat penting khususnya bagi pemusik pemula yang ingin mengetahui nada-nada yang dihasilkan oleh alat musik yang dimainkannya. Tujuan dari penelitian ini adalah menghasilkan perangkat lunak pengenalan nada belira menggunakan metode row mean DST.

Sistem pengenalan nada belira dioperasikan menggunakan komputer. Pembuatan program pengenalan nada belira dilakukan menggunakan Matlab. Sistem akan bekerja apabila user memberikan perintah melalui komputer. Sistem akan mengolah perintah yang diterima kemudian menyajikannya sebagai sumber informasi dalam bentuk teks. Pengambilan data dan pengujian dilakukan secara tidak real-time dan real-time dengan mengubah-ubah nilai frame blocking yang digunakan yaitu 4096, 1024, 256, dan 64. Analisa dan penyimpulan hasil pengujian dilakukan dengan mengamati pengaruh panjang DST (64, 32, 16, 8, 4) terhadap tingkat pengenalan nada dan mencari nilai DST terkecil yang menghasilkan tingkat pengenalan nada terbaik.

Sistem pengenalan nada belira dapat berjalan sesuai dengan perancangan. Sistem dapat menampilkan plot hasil perekaman nada, nilai jarak Euclidean terkecil, dan teks hasil pengenalan nada. Dalam pengujian yang dilakukan secara real-time, sistem dapat menghasilkan tingkat pengenalan 100% melalui panjang DST minimal 16 titik.

Kata kunci : belira, row mean DST (Discrete Sine Transform), fungsi jarak Euclidean, pengenalan nada.


(9)

ix

ABSTRACT

Music is a very unique phenomenon that can be produced by some musical instruments. Bellyra is one of the musical instruments used to play melodic tones, namely the tone of the song played by the drum band players so that listeners can know what song is being played. High and low of tones determined by the basic frequencies of sound waves. Higher basic frequency of sound waves, will produce higher tone. Human’s hearing sense can not recognize well which tone that is heard by them, except professional ones. This is very important especially for beginner musicians who want to know the tones produced by the musical instrument that they play. The purpose of this research is to produce bellyra tone recognition software using row mean DST method.

Bellyra tone recognition system is operated by computer. Creation of bellyra tone recognition program is done using Matlab. The system will work if the user gives commands via computer. The system will process the received command and then present it as a source of information as text. Data collection and testing are performed in not time and real-time condition by varying the frame blocking values used are 4096, 1024, 256, and 64. The analysis and conclusion of the test results is done by observing the effect of DST length (64, 32, 16, 8, 4) on tone recognition rate and find the smallest DST value that produces the best tone recognition rate.

Bellyra tone recognition system can work according to the design. The system can display the plot of the tone recording, the smallest euclidean distance value, and the tone recognition text. In tests performed in real-time, the system can generate 100% recognition rate through DST length of at least 16 dots.

Keywords : bellyra, row mean DST (Discrete Sine Transform), Euclidean distance function, tone recognition.


(10)

x

KATA PENGANTAR

Puji dan syukur kepada Tuhan Yesus Kristus karena atas berkat dan penyertaannya, tugas akhir ini dapat diselesaikan dengan baik.

Tugas akhir ini merupakan salah satu syarat bagi mahasiswa Jurusan Teknik Elektro untuk memperoleh gelar Sarjana Teknik di Universitas Sanata Dharma Yogyakarta. Tugas akhir ini dapat diselesaikan dengan baik atas bantuan, gagasan, dan dukungan dari berbagai pihak. Oleh karena itu, penulis ingin mengucapkan terima kasih kepada :

1. Sudi Mungkasi, Ph.D., selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma.

2. Petrus Setyo Prabowo, S.T., M.T., selaku Ketua Program Studi Teknik Elektro Universitas Sanata Dharma.

3. Dr. Linggo Sumarno, selaku dosen pembimbing tugas akhir yang selalu sabar membantu dan membimbing dalam menyelesaikan tugas akhir ini.

4. Wiwien Widyastuti, S.T., M.T. dan Dr. Damar Widjaja, selaku dosen penguji yang telah memberikan bimbingan, saran, dan merevisi tugas akhir ini.

5. Ir. Theresia Prima Ari Setiyani, M.T., selaku dosen pembimbing akademik yang telah mendampingi dan membimbing penulis selama menempuh pendidikan di Universitas Sanata Dharma.

6. Bapak dan Ibu dosen yang telah mengajarkan banyak ilmu yang bermanfaat selama menempuh pendidikan di Universitas Sanata Dharma.

7. Bapak, Mama, dan adik-adik serta seluruh keluarga yang selalu mendoakan, mendukung, dan membantu segala sesuatunya mulai dari awal hingga akhir studi di jenjang perkuliahan.

8. Segenap staf sekretariat dan laboran Teknik Elektro yang secara tidak langsung telah memberikan bantuan dan dukungan dalam kelancaran penyelesaian tugas akhir ini.

9. Teman-teman kelompok skripsi, Almedio, Andre, Zemmy, Dirga, Oyen, Odip, Valdi, Sandy yang selalu membantu dan mendukung dalam menyelesaikan tugas akhir ini.

10.Seluruh teman-teman Teknik Elektro 2013 yang telah membantu, menemani, dan mendukung selama menempuh pendidikan di Universitas Sanata Dharma.


(11)

xi

11.Semua pihak yang tidak bisa disebutkan satu persatu yang telah memberikan bantuan dan dukungan dalam menyelesaikan tugas akhir ini.

Penulis menyadari bahwa dalam penyusunan skripsi ini masih mengalami kesulitan dan tidak lepas dari kesalahan. Oleh karena itu, penulis mengharapkan masukan, kritik, dan saran yang membangun agar skripsi ini menjadi lebih baik dan dapat bermanfaat sebagaimana mestinya.

Yogyakarta, 8 Juni 2017 Penulis,


(12)

xii

DAFTAR ISI

HALAMANJUDUL ... i

HALAMANPERSETUJUAN ... iii

HALAMAN PENGESAHAN ... iv

PERNYATAANKEASLIANKARYA ... v

HALAMANPERSEMBAHANDANMOTTOHIDUP ... vi

LEMBARPERNYATAANPERSETUJUANPUBLIKASIKARYAILMIAH UNTUKKEPENTINGANAKADEMIS ... vii

INTISARI ... viii

ABSTRACT ... ix

KATA PENGANTAR ... x

DAFTAR ISI ... xii

DAFTAR GAMBAR ... xv

DAFTAR TABEL ... xvii

BAB I PENDAHULUAN ... 1

1.1. Latar Belakang ... 1

1.2. Tujuan dan Manfaat ... 2

1.3. Batasan Masalah ... 2

1.4. Metodologi Penelitian ... 2

BAB II DASAR TEORI ... 4

2.1. Belira ... 4

2.2. Sampling ... 4

2.3. Normalisasi ... 5

2.4. Pemotongan Sinyal ... 7

2.5. FrameBlocking ... 8

2.6. RowMean DST (DiscreteSineTransform) ... 8

2.6.1. DiscreteSineTransform (DST) ... 9

2.6.2. Rerata Baris ... 11

2.7. Pengenalan Pola ... 11

2.8. TemplateMatching ... 12


(13)

xiii

BAB III PERANCANGAN ... 14

3.1. Sistem Pengenalan Nada Belira ... 14

3.1.1. Belira ... 14

3.1.2. Mikrofon ... 14

3.1.3. Proses Perekaman ... 15

3.1.4. Proses Pengenalan Nada ... 15

3.1.5. Keluaran... 16

3.2. Perancangan Nada Referensi ... 16

3.3. Nada Uji ... 17

3.4. Tampilan GUI Matlab ... 17

3.5. Perancangan Alur Program ... 19

3.5.1. Rekam ... 19

3.5.2. Normalisasi 1 ... 20

3.5.3. Pemotongan Sinyal ... 21

3.5.4. FrameBlocking ... 22

3.5.5. Normalisasi 2 ... 23

3.5.6. RowMean DST (DiscreteSineTransform) ... 23

3.5.7. Fungsi Jarak Euclidean ... 24

3.5.8. Penentuan Nada ... 25

3.6. Perancangan Pengujian dan Analisis ... 26

3.6.1. Pengujian Secara Tidak Real-Time ... 26

3.6.2. Pengujian Secara Real-Time ... 26

3.6.3. Analisis Data ... 26

BAB IV HASIL DAN PEMBAHASAN ... 27

4.1. Program Pengenalan ... 27

4.2. Listing Program Pengenalan ... 29

4.2.1. PopUp Menu ... 29

4.2.2. PushButton, Axes, dan StaticText ... 30

4.3. Hasil Pengujian Program ... 40

4.3.1. Pengujian Secara Tidak Real-Time ... 40

4.3.2. Pengujian Secara Real-Time ... 42

BAB V KESIMPULAN DAN SARAN ... 45


(14)

xiv

5.2. Saran ... 45

DAFTAR PUSTAKA ... 46

LAMPIRAN

LAMPIRAN 1 PROSES MENYELURUH YANG DICERMINKAN DALAM

BENTUK FLOWCHART ... L1

LAMPIRAN 2 LISTING PROGRAM TIDAK REAL-TIME ... L7

LAMPIRAN 3 LISTING PROGRAM REAL-TIME ... L16


(15)

xv

DAFTAR GAMBAR

Gambar 2.1. Alat musik belira... 4

Gambar 2.2. Contoh sinyal hasil sampling ... 5

Gambar 2.3. Contoh sinyal normalisasi dari Gambar 2.2. ... 6

Gambar 2.4. Contoh hasil pemotongan bagian silence dari Gambar 2.3. ... 7

Gambar 2.5. Contoh hasil pemotongan bagian transisi dari Gambar 2.4. ... 7

Gambar 2.6. Contoh hasil frameblocking dari Gambar 2.5. ... 8

Gambar 2.7. Contoh proses rowmean DST untuk panjang data 16 titik ... 8

Gambar 2.8. Contoh sinyal pembentukan kolom matriks dari Gambar 2.6. ... 9

Gambar 2.9. Contoh sinyal DST 2D dari Gambar 2.8. ... 10

Gambar 2.10. Contoh sinyal rerata baris dari Gambar 2.9. ... 11

Gambar 3.1. Diagram blok sistem pengenalan nada belira ... 14

Gambar 3.2. Diagram blok proses pengenalan nada ... 15

Gambar 3.3. Diagram blok proses pengambilan nada uji... 17

Gambar 3.4. Tampilan GUI Matlab ... 18

Gambar 3.5. Diagram alir sistem pengenalan nada belira ... 19

Gambar 3.6. Diagram alir rekam ... 20

Gambar 3.7. Diagram alir normalisasi 1 ... 21

Gambar 3.8. Diagram alir pemotongan sinyal ... 21

Gambar 3.9. Diagram alir frameblocking ... 22

Gambar 3.10. Diagram alir normalisasi 2... 23

Gambar 3.11. Diagram alir rowmean DST ... 24

Gambar 3.12. Diagram alir fungsi jarak Euclidean ... 24

Gambar 3.13. Diagram alir penentuan nada ... 25

Gambar 4.1. Tampilan GUI pengenalan nada belira ... 27

Gambar 4.2. Pemilihan nilai frameblocking ... 28

Gambar 4.3. Tampilan GUI pengenalan nada belira yang dijalankan dengan masukan nada re dan nilai frameblocking 64 ... 28

Gambar 4.4. Program variasi nilai frameblocking ... 29

Gambar 4.5. Program untuk melakukan perekaman dan menampilkan plot hasil perekaman nada ... 30


(16)

xvi

Gambar 4.6. Program untuk menghasilkan ekstraksi ciri rowmean DST ... 32 Gambar 4.7. Program pemanggilan database ... 33 Gambar 4.8. Program pemrosesan database frameblocking 4096 ... 33 Gambar 4.9. Program untuk memanggil fungsi jarak Euclidean dan menampilkan

nilai jarak Euclidean terkecil ... 38 Gambar 4.10. Program perhitungan fungsi jarak Euclidean ... 38 Gambar 4.11. Program untuk menampilkan teks hasil pengenalan nada ... 38 Gambar 4.12. Program untuk mengulangi proses pengenalan nada dari tampilan

awal GUI ... 40 Gambar 4.13. Program untuk menutup GUI pengenalan nada belira ... 40 Gambar 4.14. Grafik pengaruh panjang DST terhadap tingkat pengenalan nada

secara tidak real-time... 41 Gambar 4.15. Grafik pengaruh panjang DST terhadap tingkat pengenalan nada

secara real-time ... 43 Gambar L1.1. Flowchart proses menyeluruh ... L1


(17)

xvii

DAFTAR TABEL

Tabel 3.1. Keterangan tampilan GUI Matlab ... 18 Tabel 4.1. Hasil pengujian secara tidak real-time ... 41 Tabel 4.2. Hasil pengujian secara real-time ... 42 Tabel 4.3. Pengaruh panjang DST terhadap tingkat pengenalan nada secara

real-time ... 43 Tabel 4.4. Perbandingan tingkat pengenalan nada dengan penelitian sebelumnya ... 44


(18)

1

BAB I

PENDAHULUAN

1.1.

Latar Belakang

Musik adalah seni pengungkapan gagasan melalui bunyi, yang unsur dasarnya berupa melodi, irama, dan harmoni, dengan unsur pendukung berupa bentuk gagasan, sifat, dan warna bunyi [1]. Dalam penyajiannya, musik masih sering berpadu dengan unsur-unsur lain, seperti: bahasa, gerak, ataupun warna. Musik merupakan sebuah fenomena yang sangat unik yang bisa dihasilkan oleh beberapa alat musik. Belira adalah salah satu alat musik yang digunakan sebagai melodi drum band. Beliraterdiri dari bilah-bilah logam persegi penjang yang setiap logam memiliki nada tersendiri dan dimainkan dengan cara dipukul. Fungsi utama belira adalah memainkan nada-nada melodi, yakni nada-nada lagu yang dimainkan oleh pemain drum band sehingga pendengar bisa mengetahui lagu apa yang sedang dimainkan. Tinggi rendahnya nada ditentukan oleh frekuensi dasar gelombang bunyi. Semakin tinggi frekuensi dasar gelombang bunyi, semakin tinggi nada yang dihasilkan. Indera pendengaran manusia tidak dapat mengetahui secara pasti nada apa yang didengar olehnya, terkecuali pemusik profesional. Hal ini sangat penting khususnya bagi pemusik pemula yang ingin mengetahui nada-nada yang dihasilkan oleh alat musik yang dimainkannya.

Ada dua penelitian yang sudah dilakukan sebelumnya. Pada penelitian pertama, pengenalan nada belira dilakukan menggunakan ekstraksi ciri DCT dan similaritas kosinus [2]. Pada penelitian tersebut, pengenalan nada belira dilakukan dengan membandingkan frekuensi dasar gelombang bunyi alat musik menggunakan similaritas kosinus. Penelitian kedua dilakukan menggunakan analisis amplitudo pada ranah frekuensi [3]. Penelitian tersebut menggunakan look up table untuk proses akhir penentuan nada belira yang dimainkan.

Pada penelitian yang dilakukan menggunakan ekstraksi ciri DCT dan similaritas kosinus, pengujian parameter pengenalan nada dengan panjang DCT 16, 32, 64, 128, 256, dan 512 hanya menghasilkan recognition rate sebesar 84,6%. Berdasarkan hal tersebut, penelitian ini dilakukan untuk mengembangkan sistem pengenalan nada belira menggunakan jenis ekstraksi ciri yang lain agar dapat menghasilkan tingkat pengenalan yang lebih baik. Pengenalan nada belira ini dilakukan menggunakan row mean DST dan


(19)

fungsi jarak Euclidean. Metode tersebut diharapkan dapat menghasilkan recognition rate yang lebih baik dengan jumlah koefisien ekstraksi ciri yang lebih kecil dari sebelumnya. Sistem pengenalan nada belira ini akan disajikan menggunakan antarmuka yang mudah dipahami penggunanya sehingga dapat memudahkan dalam mempelajari atau mengenali nada-nada belira.

1.2.

Tujuan dan Manfaat

Tujuan dari penelitian ini adalah menghasilkan perangkat lunak pengenalan nada belira menggunakan row mean DST.

Manfaat dari penelitian ini adalah sebagai alat bantu bagi masyarakat khususnya bagi pemain drum band pemula yang sedang belajar memainkan belira agar dapat mengenali nada-nada belira yang dimainkannya.

1.3.

Batasan Masalah

Agar tugas akhir ini bisa mengarah pada tujuan dan untuk menghindari terlalu kompleksnya permasalahan yang muncul, maka perlu adanya batasan-batasan masalah yang sesuai dengan judul dari tugas akhir ini. Perancangan sistem ini difokuskan pada pembuatan software komputer untuk mengolah proses pengenalan nada. Beberapa batasan masalah yang ditetapkan adalah sebagai berikut:

1. Menggunakan Matlab untuk pembuatan program pengenalan nada. 2. Menggunakan mikrofon desktop untuk perekaman suara.

3. Pengenalan nada bersifat real-time.

4. Nada belira yang digunakan adalah do (1049 Hz), re (1177 Hz), mi (1325 Hz), fa (1402 Hz), sol (1575 Hz), la (1765 Hz), si (1974 Hz), do (2119 Hz).

5. Frame blocking yang digunakan adalah 4096, 1024, 256, 64, dan 16.

6. Database atau nada referensi didapatkan dengan cara merekam nada belira do, re, mi, fa, sol, la, si, do (tinggi) sebanyak 30 kali.

7. Cara memainkan belira dilakukan seperti biasa.

1.4.

Metodologi Penelitian

Berdasarkan pada tujuan yang ingin dicapai, metode-metode yang dilakukan dalam pengerjaan tugas akhir ini adalah:


(20)

1. Studi literatur, yaitu mencari dan mempelajari berbagai macam referensi seperti buku, jurnal, dan artikel berkaitan dengan permasalahan yang dibahas dalam tugas akhir ini.

2. Perancangan sistem software. Tahap ini bertujuan untuk mencari model yang optimal dari sistem yang akan dibuat dengan mempertimbangkan berbagai faktor permasalahan dan kebutuhan yang telah ditentukan.

3. Pembuatan sistem software. Tahap ini dilakukan dengan pembuatan program pengenalan nada belira menggunakan Matlab. Sistem akan bekerja apabila user memberikan perintah melalui komputer. Sistem akan mengolah perintah yang diterima kemudian menyajikannya sebagai sumber informasi dalam bentuk teks. 4. Pengambilan data dan pengujian. Pengambilan data dan pengujian dilakukan

secara tidak real-time dan real-time dengan mengubah-ubah nilai frame blocking yang digunakan yaitu 4096, 1024, 256, 64, dan 16. Jumlah data yang diambil untuk pengujian ini sebanyak 10 kali masing-masing nada tiap nilai frame blocking.

5. Analisa dan penyimpulan hasil percobaan. Analisa dilakukan dengan mengamati pengaruh variasi frame blocking terhadap tingkat pengenalan nada belira. Penyimpulan hasil percobaan dilakukan dengan mencari nilai frame blocking dan koefisien ekstraksi ciri terkecil yang menghasilkan tingkat pengenalan nada terbaik.


(21)

4

BAB II

DASAR TEORI

2.1.

Belira

Belira adalah alat musik melodi drum band yang terdiri dari bilah-bilah logam persegi panjang yang setiap logam memiliki nada tersendiri, dan dimainkan dengan cara dipukul dengan alat pukul (stik) yang terbuat dari mika [4]. Fungsi utama belira adalah memainkan nada-nada melodi, yakni nada-nada lagu yang dimainkan oleh unit drum band sehingga pendengar bisa mengetahui lagu apa yang sedang dimainkan. Belira terdiri dari 16 bilah logam yang memiliki panjang yang berbeda-beda. Masing-masing bilah menghasilkan nada 5<, 6<, 7<, 1, 2, 3, 4, 5, 6, 7, 1>, 2>, 3>, 4>, 5>, 6>. Stik belira mempunyai panjang 30 cm dan terbuat dari plastik padat (mika). Dalam memainkan belira, biasanya terdapat besi penyangga yang digantungkan pada bahu pemusik, kemudian bilah logam dipukul dengan stik.

Gambar 2.1. Alat musik belira

2.2.

Sampling

Sampling adalah proses pencuplikan gelombang suara yang akan menghasilkan gelombang diskrit. Dalam proses sampling, ada yang disebut dengan laju pencuplikan (sampling rate). Sampling rate menandakan berapa banyak pencuplikan gelombang analog dalam 1 detik. Satuan dari sampling rate adalah Hertz (Hz). Pada proses sampling, sebaiknya sampling rate memenuhi kriteria Nyquist. Kriteria Nyquist menyebutkan bahwa sampling rate harus lebih besar dari 2 kali frekuensi tertinggi sinyal suara analog [5]. Secara matematis, kriteria Nyquist dapat dituliskan sebagai berikut:


(22)

fs≥ 2fm (2.1) dengan fs adalah frekuensi sampling (sampling rate) dan fm adalah frekuensi tertinggi sinyal suara analog.

Contoh penentuan nilai frekuensi sampling:

Misalnya, terdapat sinyal suara analog dengan frekuensi tertinggi adalah 2000 Hz. Frekuensi sampling harus sama dengan dua kali frekuensi tersebut yaitu 4000 Hz atau lebih besar dua kali frekuensi tersebut yaitu 5000 Hz atau 7000 Hz atau 10000 Hz. Jika frekuensi sampling 4000 Hz, maka sinyal suara analog harus memiliki frekuensi maksimum 2000 Hz.

Gambar 2.2. Contoh sinyal hasil sampling

2.3.

Normalisasi

Tujuan dari normalisasi adalah memaksimalkan amplitudo. Proses normalisasi sangat diperlukan karena besarnya amplitudo pada suara alat musik selalu berbeda saat melakukan perekaman. Perhitungan matematis untuk mencari nilai normalisasi dirumuskan dengan persamaan sebagai berikut:

Xnorm = Xmasukan

maks abs Xmasukan

(2.2)

0 5000 10000 15000

-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6

A

m

p

lit

u

d

o


(23)

dengan Xnorm adalah data sinyal normalisasi (1,2,3,...,N), Xmasukan adalah data masukan dari

sampling (1,2,3,...,N), dan N adalah banyaknya data sinyal.

Contoh perhitungan normalisasi:

Misalnya, Xmasukan = [0 -0.3 0.45 -0.5 0.6 -0.72]. Nilai maksimum Xmasukan = -0.72.

Penyelesaian:

1. Xnorm = Xmasukan

maks abs Xmasukan = . =

2. Xnorm = Xmasukan

maks abs Xmasukan =

− .

. = − .

3. Xnorm = Xmasukan

maks abs Xmasukan =

.

. = .

4. Xnorm = Xmasukan

maks abs Xmasukan =

− .

. = − .

5. Xnorm = Xmasukan

maks abs Xmasukan =

.

. = .

6. Xnorm = Xmasukan

maks abs Xmasukan =

− .

. = −

Jadi, setelah mengalami proses normalisasi, Xmasukan = [0 -0.3 0.45 -0.5 0.6 -0.72] berubah

menjadi Xmasukan = [0 -0.416 0.625 -0.694 0.83 -1].

Gambar 2.3. Contoh sinyal normalisasi dari Gambar 2.2.

0 5000 10000 15000

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 Data Tercuplik A m p lit u d o


(24)

2.4.

Pemotongan Sinyal

Proses pemotongan sinyal dilakukan setelah proses normalisasi. Pada proses ini, sinyal yang dipotong adalah sinyal pada bagian awal. Tujuannya untuk menghilangkan sinyal efek noise atau suara lain yang ikut terekam pada saat proses perekaman, agar didapatkan sinyal yang benar-benar suara alat musik belira. Proses pemotongan yang pertama yaitu memotong bagian silence atau bagian awal sinyal yang tidak termasuk sinyal nada terekam. Proses pemotongan yang kedua yaitu memotong bagian transisi sinyal.

Gambar 2.4. Contoh hasil pemotongan bagian silence dari Gambar 2.3.

Gambar 2.5. Contoh hasil pemotongan bagian transisi dari Gambar 2.4.

0 2000 4000 6000 8000 10000 12000 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 Data Tercuplik A m p lit u d o

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 A m p lit u d o Data Tercuplik


(25)

2.5.

Frame Blocking

Frame blocking merupakan pembagian sinyal suara menjadi beberapa frame dan satu frame terdiri dari beberapa data sampel [6]. Pengambilan data sampel tersebut tergantung dari tiap detik suara akan dicuplik dan berapa besar frekuensi sampling. Fungsi frame blocking yaitu mereduksi data yang akan diproses dalam sistem pengenalan. Contoh hasil frame blocking yang ditunjukkan oleh Gambar 2.6. didapatkan dengan cara mereduksi atau memilih data dari data tercuplik 0 hingga data tercuplik 256 pada hasil pemotongan bagian transisi sinyal pada Gambar 2.5.

Gambar 2.6. Contoh hasil frame blocking dari Gambar 2.5.

2.6.

Row Mean

DST

(

Discrete Sine Transform

)

Gambar 2.7. Contoh proses row mean DSTuntuk panjang data 16 titik

0 50 100 150 200 250 300

-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8

Data Tercuplik

A

m

p

lit

u

d


(26)

Row mean DST yang diinspirasi dari row mean DCT merupakan proses yang meliputi proses pembentukan matriks, kemudian matriks tersebut akan diubah menjadi matriks kotak (reshape) [7]. Proses selanjutnya adalah proses transformasi matriks reshape ke dalam matriks reshape DST 2D. Pada proses DST 2D ini, setiap kolomnya akan dirata-ratakan sehingga hasil keluarannya adalah row mean DST.

Gambar 2.8. Contoh sinyal pembentukan kolom matriks dari Gambar 2.6.

2.6.1.

Discrete Sine Transform

(DST)

Discrete Sine Transform (DST) adalah algoritma yang digunakan untuk mengubah sampel data dari domain waktu ke domain frekuensi. DST menstabilkan hubungan antara sampel-sampel sinyal domain waktu dan mempresentasikannya ke domain DST. Analisis

frekuensi dari sinyal waktu diskrit y(k) perlu memperoleh representasi domain frekuensi dari sinyal yang biasanya dinyatakan dalam domain waktu.

DST digunakan untuk melakukan analisis frekuensi dari sinyal waktu diskrit. DST dihitung menggunakan persamaan sebagai berikut:

=

�=

���

���

�+ (2.3) dengan k adalah indeks dalam domain DST (1,…, N), n adalah indeks dalam domain

waktu (1,…, N), dan N adalah banyaknya data.

Contoh perhitungan DST:

Misalnya, x = [1 2 3 4 5] N = 5 Penyelesaian:

0 5

10 15

20 0

5 10 15 20 -1.5 -1 -0.5 0 0.5 1

Kolom Baris

A

m

pl

itu


(27)

1. y(1) = ( × ��� , × × + ) + ( × ��� , × × + ) + ( × ��� , × × + ) + ( × ��� , × ×+ ) + ( × ��� , × ×

+ ) = 11,1962

2. y(2) = ( × ��� , × ×

+ ) + ( × ��� , × × + ) + ( × ��� , × × + ) + ( × ��� , × ×+ ) + ( × ��� , × ×

+ ) = -5,1962

3. y(3) = ( × ��� , × ×

+ ) + ( × ��� , × × + ) + ( × ��� , × × + ) + ( × ��� , × ×+ ) + ( × ��� , × ×

+ ) = 3,0000

4. y(4) = ( × ��� , × ×

+ ) + ( × ��� , × × + ) + ( × ��� , × × + ) + ( × ��� , × ×+ ) + ( × ��� , × ×

+ ) = -1,7321

5. y(5) = ( × ��� , × ×

+ ) + ( × ��� , × × + ) + ( × ��� , × × + ) + ( × ��� , × ×+ ) + ( × ��� , × ×

+ ) = 0,8038

Gambar 2.9. Contoh sinyal DST 2D dari Gambar 2.8.

0 5 10 15 20 0 5 10 15 20 0 10 20 30 40 50 Kolom Baris A m p lit u d o


(28)

2.6.2.

Rerata Baris

Rerata baris adalah proses terakhir dari row mean DST. Hasil sinyal pada rerata baris berasal dari hasil sinyal yang diperoleh dari proses sebelumnya yaitu DST 2D sehingga hasil sinyal didapatkan seperti yang ditunjukkan oleh Gambar 2.10.

Gambar 2.10. Contoh sinyal rerata baris dari Gambar 2.9.

2.7.

Pengenalan Pola

Pola adalah deskripsi kuantitatif atau struktural pada sebuah obyek. Kelas pola merupakan sekumpulan pola yang terdiri atas beberapa ciri yang sama.

Pengenalan pola merupakan suatu aktivitas manusia secara alami. Manusia menerima informasi melalui sensor tubuh yang diproses seketika oleh otak dan dalam sekejap manusia dapat mengenali sumber informasi secara alami. Keakuratan manusia untuk dapat melakukan tugas-tugas pengenalan dengan kondisi yang tidak ideal, contohnya, ketika informasi yang diperlukan untuk memproses tersebut tidak jelas atau tidak lengkap. Sebenarnya, sebagian besar aktivitas kita berdasarkan pada berhasilnya kita dalam melakukan tugas pengenalan pola. Misalnya, ketika membaca buku, kita mengenali angka, huruf, kata, dan akhirnya pemikiran dan konsep, sinyal visual kemudian diterima oleh otak kita yang diproses secara alami tanpa kita sadari.

Pengenalan pola (pattern recognition) adalah suatu proses untuk mengenali pola-pola yang terdapat pada sekumpulan data dan menggolongkannya sehingga pola-pola yang

0 1 2 3 4 5 6 7 8 9 10

0 1 2 3 4 5 6 7 8 9

Nomor Koefisien

A

m

p

lit

u

d


(29)

berada dalam satu kelompok mempunyai kesamaan yang tinggi dan pola-pola yang berbeda mempunyai tingkat kemiripan yang rendah.

Pengenalan pola bertujuan untuk menentukan kelompok atau kategori pola berdasarkan ciri-ciri yang dimiliki pola tersebut. Dengan kata lain pengenalan pola dapat membedakan suatu obyek dengan obyek yang lain [8].

Sistem pengenalan pola memiliki beberapa pendekatan yaitu:

 Pendekatan template matching

 Pendekatan statistik

 Pendekatan sintatik

 Pendekatan jaringan syaraf tiruan

2.8.

Template Matching

Tahap perbandingan yaitu salah satu tahap dalam proses pengenalan suara. Proses template matching ini akan melakukan perbandingan antara pola data masukan dengan pola database. Salah satu perbandingan metode yang dilakukan dalam template matching yaitu menggunakan fungsi jarak Euclidean. Data masukan yang akan diproses akan dihitung nilai jaraknya sehingga kemiripan yang sesuai dengan database dapat dikenali[9].

2.9.

Fungsi Jarak

Euclidean

Jarak Euclidean adalah jarak antara dua titik yaitu dari titik satu ke titik yang lain dalam satu ruang [10]. Secara umum, yang dimaksud dengan dua titik adalah garis terpendek di antara semua garis yang menghubungkan kedua titik tersebut. Dalam ruang Euclidean, jarak antara dua titik P dan Q dapat dirumuskan sebagai berikut:

P = (p1, p2, p3...pn,) dan = (q1, q2, q3...qn,)

Maka jarak Euclidean P ke Q adalah:


(30)

Contoh perhitungan fungsi jarak Euclidean:

Diketahui matriks hasil ekstraksi ciri masukan P, dan matriks database Q dengan indikasi kelas pola yang bersesuaian. Dengan metode template matching yang menggunakan jarak Euclidean, carilah kelas pola keluarannya.

A B C D

P = [ ] Q = [ ]

Penyelesaian:

d1 = √ − + − + − + −

= √ = 3

d2 = √ − + − + − + −

= √ = 1

d3 = √ − + − + − + −

= √ = 2,64

d4 = √ − + − + − + −

= √ = 3,60 d = [3 1 2,64 3,60]

d = [1 2,64 3 3,60]

Jadi, kelas pola keluarannya adalah d = [1 2,64 3 3,60].


(31)

14

BAB III

PERANCANGAN

3.1.

Sistem Pengenalan Nada Belira

Sistem pengenalan nada belira terdiri dari hardware dan software. Hardware yang digunakan terdiri dari belira, mikrofon, dan laptop. Software yang digunakan adalah Matlab yang berfungsi dalam pembuatan program dan sebagai user interface yang mengatur semua proses pengenalan nada seperti merekam dan mengenali nada belira. Perekaman nada belira dilakukan dengan menggunakan mikrofon yang terhubung ke line in pada laptop. Gambar 3.1. merupakan diagram blok sistem pengenalan nada belira.

Gambar 3.1. Diagram blok sistem pengenalan nada belira

3.1.1.

Belira

Alat musik belira memiliki 16 nada. Pada penelitian ini, hanya 8 nada yang akan digunakan yaitu do, re, mi, fa, sol, la, si, do (tinggi).

3.1.2.

Mikrofon

Mikrofon yang digunakan adalah Mini Multimedia Microphone Genius MIC-01A. Mikrofon berfungsi untuk menangkap suara belira dan menyalurkan ke laptop.

Masukan

Proses

Keluaran

Proses perekaman

Proses pengenalan nada

Teks hasil pengenalan nada


(32)

3.1.3.

Proses Perekaman

Pada proses ini suara belira akan direkam menggunakan mikrofon yang terhubung ke line in laptop. Proses ini merupakan proses masuknya data nada terekam berupa sinyal digital. Saat proses perekaman berlangsung, sinyal analog akan diubah menjadi sinyal digital dengan frekuensi sampling. Sinyal digital kemudian disimpan dan digambarkan dalam sebuah plot. Data nada yang telah disimpan disebut nada terekam yang kemudian dapat diproses untuk dikenali lewat proses pengenalan nada.

3.1.4.

Proses Pengenalan Nada

Proses ini merupakan proses untuk mengenali suara belira yang terekam. Gambar 3.2. merupakan diagram blok proses pengenalan nada.

Gambar 3.2. Diagram blok proses pengenalan nada

1. Masukan (wav)

Masukan merupakan hasil sampling nada belira yang direkam secara real-time menggunakan mikrofon dalam format wav.

2. Normalisasi

Tujuan normalisasi adalah menyetarakan amplitudo suara masukan menjadi maksimum, sehingga efek dari kuat atau lemahnya suara yang dihasilkan oleh alat musik tidak terlalu mempengaruhi proses pengenalan. Dalam penelitian ini, normalisasi dilakukan sebanyak dua kali. Normalisasi pertama dilakukan untuk

Pemotongan sinyal

Frame blocking

Normalisasi 1

Data base

Normalisasi 2 Masukan

(wav)

Row mean DST: 1. Kolom matriks 2. DST 2D 3. Rerata baris Fungsi jarak

Euclidean

Penentuan nada Keluaran


(33)

menyetarakan amplitudo setelah proses sampling, dan normalisasi kedua dilakukan untuk menyetarakan amplitudo setelah melalui proses frame blocking.

3. Pemotongan Sinyal

Pemotongan sinyal dilakukan dengan tujuan untuk menghilangkan efek noise atau suara lain yang ikut terekam pada saat proses perekaman. Sinyal yang dipotong adalah sinyal bagian silence dan bagian transisi yang terdapat di bagian awal sinyal nada terekam.

4. Frame Blocking

Frame blocking merupakan proses memilih data dari nada terekam. Data yang dipilih dapat mewakili semua nada yang terekam.

5. Row Mean DST (Discrete Sine Transform)

Row mean DST merupakan proses yang meliputi proses pembentukan matriks, kemudian matriks tersebut akan diubah menjadi matriks kotak (reshape). Proses selanjutnya adalah proses transformasi matriks reshape kedalam matriks reshape DST 2D. Pada proses DST 2D ini, setiap kolomnya akan dirata-ratakan sehingga hasil keluarannya adalah row mean DST.

6. Fungsi Jarak Euclidean

Sistem pengenalan nada belira ini dilakukan dengan menggunakan fungsi jarak Euclidean.

3.1.5.

Keluaran

Keluaran dari sistem pengenalan nada ini berupa tampilan teks nada yang berhasil dikenali dalam bentuk visual GUI Matlab.

3.2.

Perancangan Nada Referensi

Nada referensi dibutuhkan sebagai penentu pengenalan nada belira. Setiap nada yang akan dikenali (1, 2, 3, 4, 5, 6, 7, 1>), masing-masing akan diambil 30 nada sampel. Pengambilan nada yang akan dijadikan nada referensi harus melalui proses sampling, frame blocking, normalisasi, dan row mean DST sesuai Gambar 3.2. dalam batas garis


(34)

putus-putus. Pengambilan nada dilakukan dengan menggunakan program Matlab yang akan dibuat.

Setelah 30 nada sampel pada setiap nada diperoleh, perhitungan persamaan (3.1) dilakukan untuk mendapatkan nada referensi. Hasil DST yang telah dinormalisasikan digunakan sebagai nada sampel, sehingga sistem pengenalan nada belira tidak melakukan perhitungan kembali dalam mendapatkan nada referensi dan proses pada sistem pengenalan nada belira dapat berjalan dengan baik.

Nada referensi =Ekstraksi ciri1 + Ekstraksi ciri5 2 + …. + Ekstraksi ciri5

(3.1) Nada referensi yang didapat kemudian disimpan dalam fungsi header yang ada dalam sistem pengenalan nada belira, sehingga sewaktu-waktu nada referensi dapat dipanggil dalam proses fungsi jarak yang ada dalam sistem pengenalan nada belira.

3.3.

Nada Uji

Untuk memperoleh nada uji pada setiap nada pada proses pengenalan nada belira, diambil 10 nada sampel pada setiap nada yang akan digunakan untuk pengujian sistem. Semua sampel nada yang diambil dalam proses perekaman akan melalui proses sampling terlebih dahulu sebelum masuk ke tahap selanjutnya. Gambar 3.3. merupakan diagram blok proses pengambilan nada uji.

Gambar 3.3. Diagram blok proses pengambilan nada uji

3.4.

Tampilan GUI Matlab

Tampilan utama program pada GUI Matlab yang digunakan pada penelitian ini ditunjukkan oleh Gambar 3.4.

Sampling

Masukan (suara belira)

Keluaran (wav)


(35)

Gambar 3.4. Tampilan GUI Matlab

Tampilan dibuat agar user dapat dengan mudah menjalankan program yang dibuat, serta memahami hasil pengenalan nada belira. Keterangan dari tampilan GUI Matlab program pengenalan nada dijelaskan pada Tabel 3.1.

Tabel 3.1. Keterangan tampilan GUI Matlab

Nama Keterangan

Frame blocking Memilih nilai frame blocking

Mulai Memulai program

Ulang Mengulangi program

Selesai Mengakhiri program

Plot perekaman Menampilkan grafik hasil perekaman suara Jarak Euclidean terkecil Menampilkan nilai jarak Euclidean terkecil

Hasil pengenalan nada Menampilkan teks nada belira yang berhasil dikenali

Frame blocking Ulang Selesai

Plot perekaman Hasil pengenalan nada Mulai

Jarak Euclidean


(36)

3.5.

Perancangan Alur Program

Gambar 3.5. Diagram alir sistem pengenalan nada belira

Pada sistem pengenalan nada belira ini terdapat proses-proses yang harus dilakukan. Berawal dari perekaman hingga hasil akhir yang akan ditampilkan dalam bentuk teks nada yang berhasil dikenali. Gambar 3.5. merupakan diagram alir sistem pengenalan nada belira.

3.5.1.

Rekam

Semua sampel nada yang diambil dalam proses perekaman harus melalui proses sampling terlebih dahulu sebelum masuk ke tahap selanjutnya. Proses sampling bertujuan untuk merekam nada belira dengan nilai frekuensi sampling yang telah ditentukan yaitu 10000 Hz. Keluaran untuk proses perekaman dibuat dalam format wav. Gambar 3.6. merupakan diagram alir perekaman nada belira. Cara sampling nada adalah sebagai berikut:

1. Menentukan durasi perekaman yaitu 1,5 detik [3]. Durasi perekaman ditentukan berdasarkan lamanya bunyi suatu nada yang dipukul.

Rekam

Normalisasi 1

Frame blocking

Pemotongan sinyal

Normalisasi 2

Keluaran: Teks Fungsi jarak

Euclidean

Masukan: Suara belira

Mulai

Ekstraksi ciri

row mean DST

Selesai Penentuan nada


(37)

2. Menentukan frekuensi sampling yaitu 10000 Hz [3]. Frekuensi tertinggi nada belira yang digunakan adalah 2119 Hz untuk nada do tinggi (1>) sehingga memenuhi persamaan (2.1) untuk penggunaan frekuensi sampling sebesar 10000 Hz.

3. Menentukan jumlah sampel dengan mengalikan durasi perekaman dengan frekuensi sampling.

4. Merekam suara masukan dengan perintah wavrecord. 5. Menyimpan hasil rekaman dengan perintah wavwrite. 6. Menampilkan sinyal hasil rekaman dengan perintah plot.

Gambar 3.6. Diagram alir rekam

3.5.2.

Normalisasi 1

Tujuan dari proses normalisasi 1 adalah untuk menyetarakan amplitudo dari data sinyal terekam sehingga dapat terbentuk pada skala yang sama agar kuat atau lemahnya suara nada yang dimainkan tidak terlalu berpengaruh terhadap proses pengenalan. Dalam proses normalisasi, nilai-nilai data masukan nada terekam dibagi dengan nilai absolut maksimal dari data itu sendiri sehingga didapatkan sinyal yang ternormalisasi untuk nada terekam. Diagram alir normalisasi 1 ditunjukkan oleh Gambar 3.7.

Sampling

Mulai

Selesai Keluaran: Plot nada terekam di GUI

Masukan: Tekan tombol


(38)

Gambar 3.7. Diagram alir normalisasi 1

3.5.3.

Pemotongan Sinyal

Gambar 3.8. Diagram alir pemotongan sinyal

Proses pemotongan sinyal adalah pemotongan sinyal yang tidak digunakan yang terdapat disisi kiri atau bagian awal sinyal (bagian silence dan bagian transisi). Pada pemotongan bagian silence, sinyal suara terekam yang bukan sinyal suara nada belira akan

Pemotongan bagian silence

Pemotongan bagian transisi

Mulai

Keluaran: Hasil pemotongan

sinyal Masukan:

Hasil normalisasi 1

Selesai Masukan: Nada terekam

Keluaran: Hasil normalisasi 1

Data nada terekam dibagi dengan nilai absolut maksimal data

nada terekam Mulai


(39)

dipotong atau dihilangkan. Pada pemotongan bagian transisi, sinyal yang terdapat dibagian awal (bagian transisi) setelah pemotongan bagian silence, akan dipotong atau dihilangkan ¼ bagiannya dengan tujuan untuk mendapatkan sinyal yang benar-benar suara nada belira. Setelah melalui dua kali pemotongan sinyal, maka didapatkan keluaran untuk hasil pemotongan sinyal. Diagram alir pemotongan sinyal ditunjukkan oleh Gambar 3.8. Cara pemotongan sinyal bagian silence dan bagian transisi adalah sebagai berikut:

1. Menentukan nilai yang digunakan sebagai batas potong yaitu 0,3 [3]. 2. Mencari bagian sinyal yang > 0,3 dan < (-0,3) (sinyal yang dicari tersebut

diinisialisasi sebagai b1). Sinyal yang tidak termasuk b1 adalah sinyal silence sehingga sinyal tersebut dihilangkan.

3. Pemotongan sinyal transisi dengan mengalikan jumlah data sinyal dengan 0,25 [3]. Hasil perkalian tersebut diinisialisasi sebagai bts.

4. Menghilangkan data sinyal mulai dari indeks 1 sampai dengan indeks bts.

3.5.4.

Frame Blocking

Gambar 3.9. Diagram alir frame blocking

Setelah proses pemotongan sinyal, proses selanjutnya adalah frame blocking. Pada proses ini, nilai frame akan dipilih atau ditentukan oleh user. Pilihan nilai frame yang

Mulai Masukan:

Hasil pemotongan

Mengambil data sepanjang nilai frame

Selesai Keluaran: Hasil frame

blocking

Masukan: Pilih nilai


(40)

diberikan yaitu 4096, 1024, 256, 64, dan 16. Pemilihan nilai frame blocking dijadikan untuk menentukan panjang DST yang digunakan. Dalam proses ini, data diambil mulai dari sinyal yang paling kiri dan akan diambil sepanjang nilai frame yang telah dipilih oleh user sehingga dapat memudahkan dalam perhitungan dan analisa sinyal. Data yang diambil dapat mewakili nada terekam. Data yang diambil tersebut merupakan keluaran untuk proses frame blocking. Gambar 3.9. merupakan diagram alir frameblocking.

3.5.5.

Normalisasi 2

Gambar 3.10. Diagram alir normalisasi 2

Masukan untuk normalisasi 2 adalah sinyal hasil frame blocking. Pada proses frame blocking, sinyal yang dihasilkan tidak maksimal sehingga dibutuhkan normalisasi untuk menyetarakan amplitudo agar menjadi maksimal. Pada proses normalisasi 2, data masukan hasil frame blocking dibagi dengan nilai absolut maksimal dari data hasil frame blocking tersebut. Hasil pembagiannya merupakan keluaran untuk proses normalisasi 2. Gambar 3.10. merupakan diagram alir normalisasi 2.

3.5.6.

Row Mean

DST

(

Discrete Sine Transform

)

Masukan untuk row mean DST adalah hasil normalisasi 2. Proses row mean DST meliputi beberapa proses yaitu proses pembentukan matriks yang kemudian matriks tersebut akan diubah menjadi matriks kotak (reshape), dan proses transformasi matriks reshape ke dalam matriks reshape DST 2D dimana pada proses DST 2D ini setiap

Masukan: Hasil frame blocking

Data hasil frame blocking dibagi dengan nilai absolut maksimal

data hasil frame blocking

Mulai

Selesai Keluaran: Hasil normalisasi 2


(41)

kolomnya akan dirata-ratakan sehingga hasilnya merupakan keluaran untuk proses row mean DST. Gambar 3.11. merupakan diagram alir rowmean DST.

Gambar 3.11. Diagram alir row mean DST

3.5.7.

Fungsi Jarak

Euclidean

Gambar 3.12. Diagram alir fungsi jarak Euclidean

Setelah melalui proses row mean DST, proses selanjutnya adalah perhitungan fungsi jarak. Fungsi jarak yang digunakan pada penelitian ini adalah fungsi jarak Euclidean.

Keluaran: Hasil fungsi jarak Euclidean

Perhitungan fungsi

jarak Euclidean Data base

Selesai Masukan:

Hasil

row mean DST Mulai

Pengurutan hasil perhitungan jarak dari terkecil ke terbesar

Selesai Masukan:

Hasil normalisasi 2 Kolom matriks

Rerata baris Hitung nilai

absolut

DST 2D Mulai

Keluaran: Hasil


(42)

Gambar 3.12. merupakan diagram alir fungsi jarak Euclidean. Masukan untuk perhitungan fungsi jarak Euclidean adalah hasil row mean DST. Jarak Euclidean adalah jarak antara dua titik yaitu dari satu titik ke titik yang lain dalam satu ruang. Secara umum, yang dimaksud antara dua titik adalah garis terpendek diantara semua garis yang menghubungkan kedua titik tersebut. Dalam proses ini, fungsi jarak Euclidean berfungsi untuk membandingkan data suara yang baru dengan data suara yang telah direkam atau database. Setelah melalui proses perhitungan fungsi jarak Euclidean, data diurutkan dari yang paling kecil ke paling besar (sort ascending). Hasil pengurutan merupakan keluaran untuk proses fungsi jarak Euclidean.

3.5.8.

Penentuan Nada

Proses penentuan nada adalah proses terakhir dari seluruh rangkaian proses pengenalan nada belira. Masukan untuk proses penentuan nada berasal dari hasil fungsi jarak Euclidean yaitu data yang telah diurutkan dari yang paling kecil ke paling besar. Setelah data diurutkan, penentuan nada dilakukan dengan memilih kelas yang memiliki nilai jarak paling kecil. Setelah mengetahui kelas yang memiliki nilai jarak paling kecil, maka hasil tersebut menjadi keluaran untuk proses penentuan nada yang berhasil dikenali. Hasil penentuan nada akan ditampilkan dalam bentuk teks. Gambar 3.13. merupakan diagram alir penentuan nada.

Gambar 3.13. Diagram alir penentuan nada

Penentuan nada dengan memilih kelas yang memiliki nilai jarak paling

kecil

Selesai Masukan: Hasil fungsi jarak Euclidean

Mulai

Keluaran: Nilai jarak terkecil dan

teks hasil pengenalan nada di GUI


(43)

3.6.

Perancangan Pengujian dan Analisis

Untuk mengetahui kemampuan sistem pengenalan nada belira yang telah dirancang, maka pengujian dan analisis dilakukan terhadap sistem tersebut. Pengujian sistem dilakukan dengan menguji parameter pengenalan nada belira yang meliputi pengujian secara tidak real-time dan pengujian secara real-time. Parameter yang digunakan pada penelitian ini adalah frame blocking. Pengujian dilakukan dengan mengamati pengaruh variasi frame blocking terhadap tingkat pengenalan nada belira dengan tujuan untuk mengetahui jumlah koefisien ekstraksi ciri dengan tingkat pengenalan nada terbaik. Untuk mendapatkan persentase tingkat pengenalan nada, digunakan rumus sebagai berikut:

Tingkat pengenalan = ∑�

� � � � �� × 1 % (3.2)

dengan ∑v adalah jumlah nada belira yang dikenali dan benar.

3.6.1.

Pengujian Secara Tidak

Real-Time

Nada uji digunakan sebagai masukan pada pengujian secara tidak real-time. Proses pengambilan nada uji sama dengan proses pengambilan database.

3.6.2.

Pengujian Secara

Real-Time

Pengujian secara real-time dilakukan dengan menggunakan masukan nada belira secara langsung. Jumlah data yang diambil untuk pengujian ini sebanyak 10 kali setiap nada.

3.6.3.

Analisis Data

Analisis data dilakukan dengan cara mengamati pengaruh pengubahan nilai frame blocking untuk mendapatkan jumlah koefisien ekstraksi ciri terkecil dengan recognition rate terbaik.


(44)

27

BAB IV

HASIL DAN PEMBAHASAN

Program yang telah dirancang dan dibuat akan diuji untuk mengetahui apakah program dapat bekerja sesuai dengan perancangan. Bab ini akan membahas mengenai hasil pengujian program tersebut. Data yang diperoleh dari hasil pengujian program akan memperlihatkan kemampuan program sehingga dapat dilakukan analisis.

4.1.

Program Pengenalan

Pembuatan program pengenalan dilakukan dengan menggunakan software Matlab Version 7.10.0.499 (R2010a) pada laptop dengan spesifikasi sebagai berikut :

Processor : AMD A8-4500M APU with Radeon(tm) HD Graphics 1.90 GHz RAM : 4,00 GB

Tipe sistem : Sistem Operasi 64-bit

Langkah-langkah menjalankan program pengenalan adalah sebagai berikut :

1. Buka Matlab, sesuaikan current folder dengan tempat penyimpanan program yang telah dibuat, dan ketik perintah “GUI” pada command window lalu tekan Enter. Tampilan GUI pengenalan nada belira ditunjukkan oleh Gambar 4.1.


(45)

2. User memilih nilai frame blocking yang akan digunakan seperti Gambar 4.2. dan menjalankan program dengan menekan tombol “Mulai” diikuti dengan memainkan salah satu nada belira yang ingin dikenali.

Gambar 4.2. Pemilihan nilai frameblocking

3. User dapat melihat plot hasil perekaman nada pada kotak axes, nilai jarak Euclidean terkecil pada kotak statictext 1, dan teks hasil pengenalan nada pada kotak static text 2 seperti Gambar 4.3.

Gambar 4.3. Tampilan GUI pengenalan nada belira yang dijalankan dengan masukan nada re dan nilai frameblocking 64


(46)

4. Tombol “Ulang” untuk mengulangi proses pengenalan nada dari tampilan awal GUI seperti Gambar 4.1.

5. Tombol “Selesai” untuk menutup GUI pengenalan nada belira.

4.2.

Listing

Program Pengenalan

Program pengenalan nada belira dijalankan dengan terlebih dahulu memilih nilai frame blocking. Setelah memilih nilai frame blocking, user dapat memulai proses pengenalan nada dengan menekan tombol “Mulai”. Pada saat menekan tombol “Mulai”, secara otomatis program akan merekam nada belira yang dimainkan dan menampillkan keluaran berupa plot perekaman nada, nilai jarak Euclidean terkecil, dan hasil pengenalan nada dalam bentuk teks. Userdapat mengulangi proses pengenalan nada dengan menekan tombol “Ulang” dan mengakhiri proses pengenalan nada dengan menekan tombol “Selesai”. Pada tampilan GUI pengenalan nada belira terdapat 1 pop up menu, 3 push button, 1 axes, dan 2 static text.

4.2.1.

Pop Up Menu

Dalam program ini, pop up menu digunakan untuk variasi niai frame blocking yaitu 4096, 1024, 256, 64, dan 16. Gambar 4.4. merupakan listing program untuk variasi nilai frame blocking.

Gambar 4.4. Program variasi nilai frameblocking indeks=get(handles.popupmenu1,'Value'); switch indeks

case 2

frame=4096; case 3

frame=1024; case 4

frame=256; case 5

frame=64; case 6

frame=16; end

handles.frame=frame; guidata(hObject,handles);


(47)

Nilai-nilai variasi frame blocking diinisialisasikan dengan nama frame kemudian diproses dengan perintah handles. Program ini berjalan saat pemilihan nilai frameblocking yang dilakukan secara manual oleh user melalui GUI sesuai dengan diagram alir frame blocking pada Gambar 3.9.

4.2.2.

Push Button

,

Axes

, dan

Static Text

Dalam program ini digunakan 3 push button atau tombol yaitu, tombol “Mulai”, tombol “Ulang”, dan tombol “Selesai”. Saat user menekan tombol “Mulai” maka program akan berjalan otomatis mulai dari merekam nada belira yang dimainkan, menampilkan plot hasil perekaman nada pada kotak axes, menampilkan nilai jarak Euclidean terkecil pada kotak static text 1, dan menampilkan teks hasil pengenalan nada pada kotak static text 2. Saat user menekan tombol “Ulang” maka program akan mengulangi proses pengenalan nada dari tampilan awal. Saat user menekan tombol “Selesai” maka proses pengenalan nada akan berhenti dan GUI pengenalan nada akan tertutup.

a. Tombol “Mulai”

Gambar 4.5. Program untuk melakukan perekaman dan menampilkan plot hasil perekaman nada

Gambar 4.5. merupakan listing program untuk melakukan perekaman dan menampilkan plot hasil perekaman nada. Program ini bekerja saat user menekan tombol “Mulai” di GUI untuk selanjutnya melakukan sampling dan menampilkan plot perekaman sesuai dengan diagram alir rekam pada Gambar 3.6. Pada program pengenalan nada, sample length yang digunakan adalah 1,5 detik dengan frekuensi sampling sebesar 10 kHz. Sample

sample_length=1.5; sample_freq=10000;

sample_time=(sample_length*sample_freq); x0=wavrecord(sample_time, sample_freq); wavwrite(x0, sample_freq, 'xxx.wav'); axes(handles.axes1)

plot(x0);

xlabel('Data Tercuplik'); ylabel('Amplitudo');


(48)

time didapatkan dari sample length dikalikan dengan frekuensi sampling. Untuk menyimpan nada yang direkam, perintah yang digunakan adalah wavrecord dan wavwrite. Plot perekaman ditampilkan pada kotak axes.

Dalam program untuk menghasilkan ekstraksi ciri row mean DST, proses pertama yang dilakukan adalah normalisasi awal untuk sinyal nada terekam yang ditampilkan pada kotak axes. Normalisasi dilakukan dengan cara membagi data masukan (data sinyal nada terekam) dengan nilai absolut data tersebut. Proses selanjutnya adalah pemotongan sinyal yang dilakukan sebanyak dua kali. Pemotongan yang pertama pada bagian silence atau bagian awal sinyal yang tidak termasuk sinyal nada dan pemotongan kedua pada bagian transisi. Tujuan dari proses pemotongan adalah untuk menghilangkan sinyal yang tidak termasuk sinyal nada belira dan untuk mengurangi cacat sinyal akibat derau ruangan yang ikut terekam. Pada pemotongan sinyal silence, data yang tingginya lebih besar dari 0,3 dan lebih kecil dari (-0,3) diinisialisasikan sebagai b1. Data yang tidak memenuhi syarat b1 merupakan sinyal silence sehingga sinyal tersebut dihilangkan. Pada pemotongan sinyal transisi, 1 4⁄ bagian sinyal yang terdapat di bagian awal diinisialisasikan sebagai bts. Sinyal tersebut dihilangkan untuk mendapatkan sinyal yang benar-benar sinyal nada belira. Proses selanjutnya adalah frame blocking yang tujuannya untuk mengambil sebagian data sesuai panjang nilai frame blocking yang dipilih oleh user. Data yang diambil tersebut untuk mewakili seluruh data yang terekam. Sinyal hasil frameblocking kemudian melalui proses normalisasi akhir yang bertujuan untuk menyetarakan amplitudo hasil frame blocking. Proses normaliasi akhir sama dengan proses normaliasi awal yaitu membagi data masukan yaitu hasil frame blocking dengan nilai absolut data tersebut. Selanjutnya akan melalui proses row mean DST yang meliputi proses pembentukan matriks, kemudian matriks tersebut akan diubah menjadi matriks kotak (reshape). Proses selanjutnya adalah proses transformasi matriks reshape ke dalam matriks reshape DST 2D. Pada proses DST 2D ini, setiap kolomnya akan dirata-ratakan sehingga hasil keluarannya adalah row mean DST. Rerata baris adalah proses terakhir dari row mean DST. Hasil sinyal pada rerata baris berasal dari hasil sinyal yang diperoleh dari proses sebelumnya yaitu DST 2D. Program untuk menghasilkan ekstraksi ciri rowmean DST berjalan sesuai dengan diagram alir pada Gambar 3.11. Listing program untuk menghasilkan ekstraksi ciri row mean DST ditunjukkan oleh Gambar 4.6.


(49)

Gambar 4.6. Program untuk menghasilkan ekstraksi ciri rowmean DST

% Batas potong b0=0.3;

% Normalisasi 1 x1=x0/max(abs(x0)); % Pemotongan sinyal % 1. Potong silence

b1=find(x1>b0 | x1<-b0); x1(1:b1(1))=[];

% 2. Potong transisi

bts=floor(0.25*length(x1)); x1(1:bts)=[];

% Frame blocking x2=x1(1:frm); % Normalisasi 2 x3=x2/max(x2); % Kolom matriks

x4=reshape(x3,segmen,[]) % DST & 2D

[baris,kolom]=size(x4); y1=zeros(baris,kolom); y2=y1;

for k=1:kolom;

y1(:,k)=dst(x4(:,k)); end

for k=1:baris;

y2(k,:)=dst(y1(k,:)); end


(50)

Gambar 4.6. (Lanjutan) Program untuk menghasilkan ekstraksi ciri rowmean DST

Gambar 4.7. Program pemanggilan database

Gambar 4.8. Program pemrosesan database frame blocking 4096

% Rerata baris x6=x5';

x7=mean(x6); cn=x7'

% Load database

if (frm==16) load dst16;

elseif (frm==64) load dst64; elseif (frm==256) load dst256; elseif (frm==1024) load dst1024; elseif (frm==4096) load dst4096; end

function dst4096 frame=4096;

segmen=sqrt(frame); % Pemrosesan database

x1=wavread('do1.wav');y1=pdst(x1,frame,segmen); x2=wavread('do2.wav');y2=pdst(x2,frame,segmen); x3=wavread('do3.wav');y3=pdst(x3,frame,segmen); x4=wavread('do4.wav');y4=pdst(x4,frame,segmen); x5=wavread('do5.wav');y5=pdst(x5,frame,segmen); x6=wavread('do6.wav');y6=pdst(x6,frame,segmen); x7=wavread('do7.wav');y7=pdst(x7,frame,segmen); x8=wavread('do8.wav');y8=pdst(x8,frame,segmen); x9=wavread('do9.wav');y9=pdst(x9,frame,segmen);


(51)

Gambar 4.8. (Lanjutan) Program pemrosesan database frame blocking 4096

x10=wavread('do10.wav');y10=pdst(x10,frame,segmen); z1=(y1+y2+y3+y4+y5+y6+y7+y8+y9+y10)/10;

x1=wavread('re1.wav');y1=pdst(x1,frame,segmen); x2=wavread('re2.wav');y2=pdst(x2,frame,segmen); x3=wavread('re3.wav');y3=pdst(x3,frame,segmen); x4=wavread('re4.wav');y4=pdst(x4,frame,segmen); x5=wavread('re5.wav');y5=pdst(x5,frame,segmen); x6=wavread('re6.wav');y6=pdst(x6,frame,segmen); x7=wavread('re7.wav');y7=pdst(x7,frame,segmen); x8=wavread('re8.wav');y8=pdst(x8,frame,segmen); x9=wavread('re9.wav');y9=pdst(x9,frame,segmen); x10=wavread('re10.wav');y10=pdst(x10,frame,segmen); z2=(y1+y2+y3+y4+y5+y6+y7+y8+y9+y10)/10;

x1=wavread('mi1.wav');y1=pdst(x1,frame,segmen); x2=wavread('mi2.wav');y2=pdst(x2,frame,segmen); x3=wavread('mi3.wav');y3=pdst(x3,frame,segmen); x4=wavread('mi4.wav');y4=pdst(x4,frame,segmen); x5=wavread('mi5.wav');y5=pdst(x5,frame,segmen); x6=wavread('mi6.wav');y6=pdst(x6,frame,segmen); x7=wavread('mi7.wav');y7=pdst(x7,frame,segmen); x8=wavread('mi8.wav');y8=pdst(x8,frame,segmen); x9=wavread('mi9.wav');y9=pdst(x9,frame,segmen); x10=wavread('mi10.wav');y10=pdst(x10,frame,segmen); z3=(y1+y2+y3+y4+y5+y6+y7+y8+y9+y10)/10;

x1=wavread('fa1.wav');y1=pdst(x1,frame,segmen); x2=wavread('fa2.wav');y2=pdst(x2,frame,segmen); x3=wavread('fa3.wav');y3=pdst(x3,frame,segmen); x4=wavread('fa4.wav');y4=pdst(x4,frame,segmen); x5=wavread('fa5.wav');y5=pdst(x5,frame,segmen); x6=wavread('fa6.wav');y6=pdst(x6,frame,segmen); x7=wavread('fa7.wav');y7=pdst(x7,frame,segmen); x8=wavread('fa8.wav');y8=pdst(x8,frame,segmen);


(52)

Gambar 4.8. (Lanjutan) Program pemrosesan database frame blocking 4096

x9=wavread('fa9.wav');y9=pdst(x9,frame,segmen); x10=wavread('fa10.wav');y10=pdst(x10,frame,segmen); z4=(y1+y2+y3+y4+y5+y6+y7+y8+y9+y10)/10;

x1=wavread('sol1.wav');y1=pdst(x1,frame,segmen); x2=wavread('sol2.wav');y2=pdst(x2,frame,segmen); x3=wavread('sol3.wav');y3=pdst(x3,frame,segmen); x4=wavread('sol4.wav');y4=pdst(x4,frame,segmen); x5=wavread('sol5.wav');y5=pdst(x5,frame,segmen); x6=wavread('sol6.wav');y6=pdst(x6,frame,segmen); x7=wavread('sol7.wav');y7=pdst(x7,frame,segmen); x8=wavread('sol8.wav');y8=pdst(x8,frame,segmen); x9=wavread('sol9.wav');y9=pdst(x9,frame,segmen);

x10=wavread('sol10.wav');y10=pdst(x10,frame,segmen); z5=(y1+y2+y3+y4+y5+y6+y7+y8+y9+y10)/10;

x1=wavread('la1.wav');y1=pdst(x1,frame,segmen); x2=wavread('la2.wav');y2=pdst(x2,frame,segmen); x3=wavread('la3.wav');y3=pdst(x3,frame,segmen); x4=wavread('la4.wav');y4=pdst(x4,frame,segmen); x5=wavread('la5.wav');y5=pdst(x5,frame,segmen); x6=wavread('la6.wav');y6=pdst(x6,frame,segmen); x7=wavread('la7.wav');y7=pdst(x7,frame,segmen); x8=wavread('la8.wav');y8=pdst(x8,frame,segmen); x9=wavread('la9.wav');y9=pdst(x9,frame,segmen); x10=wavread('la10.wav');y10=pdst(x10,frame,segmen); z6=(y1+y2+y3+y4+y5+y6+y7+y8+y9+y10)/10;

x1=wavread('si1.wav');y1=pdst(x1,frame,segmen); x2=wavread('si2.wav');y2=pdst(x2,frame,segmen); x3=wavread('si3.wav');y3=pdst(x3,frame,segmen); x4=wavread('si4.wav');y4=pdst(x4,frame,segmen); x5=wavread('si5.wav');y5=pdst(x5,frame,segmen); x6=wavread('si6.wav');y6=pdst(x6,frame,segmen); x7=wavread('si7.wav');y7=pdst(x7,frame,segmen);


(53)

Gambar 4.8. (Lanjutan) Program pemrosesan database frame blocking 4096

x8=wavread('si8.wav');y8=pdst(x8,frame,segmen); x9=wavread('si9.wav');y9=pdst(x9,frame,segmen);

x10=wavread('si10.wav');y10=pdst(x10,frame,segmen); z7=(y1+y2+y3+y4+y5+y6+y7+y8+y9+y10)/10;

x1=wavread('dot1.wav');y1=pdst(x1,frame,segmen); x2=wavread('dot2.wav');y2=pdst(x2,frame,segmen); x3=wavread('dot3.wav');y3=pdst(x3,frame,segmen); x4=wavread('dot4.wav');y4=pdst(x4,frame,segmen); x5=wavread('dot5.wav');y5=pdst(x5,frame,segmen); x6=wavread('dot6.wav');y6=pdst(x6,frame,segmen); x7=wavread('dot7.wav');y7=pdst(x7,frame,segmen); x8=wavread('dot8.wav');y8=pdst(x8,frame,segmen); x9=wavread('dot9.wav');y9=pdst(x9,frame,segmen); x10=wavread('dot10.wav');y10=pdst(x10,frame,segmen); z8=(y1+y2+y3+y4+y5+y6+y7+y8+y9+y10)/10;

dbs=[z1 z2 z3 z4 z5 z6 z7 z8]; save dst4096 dbs function z=pdst(x0,frame,segmen)

% Batas potong b0=0.3;

% Normalisasi 1 x1=x0/max(abs(x0)); % Pemotongan sinyal % 1. Potong silence

b1=find(x1>b0 | x1<-b0); x1(1:b1(1))=[];

% 2. Potong transisi

bts=floor(0.25*length(x1)); x1(1:bts)=[];

% Frame blocking x2=x1(1:frame); % Normalisasi 2 x3=x2/max(x2);


(54)

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 frameblocking 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=reshape(x3,segmen,[]); % DST & 2D

[baris,kolom]=size(x4); y1=zeros(baris,kolom); y2=y1;

for k=1:kolom;

y1(:,k)=dst(x4(:,k)); end

for k=1:baris;

y2(k,:)=dst(y1(k,:)); end

x5=abs(y2); % Rerata baris x6=x5';

x7=mean(x6); z=x7'


(55)

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 statictext 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

z(m)=fungsi_jarak(dbs(:,m),cn); end

minz=min(z);

set(handles.text9,'string',minz);

function jec=jarak(x,y) % Jarak Euclidean

c1=(x-y).^2; c2=sum(c1); jec=sqrt(c2);

% Keluaran Teks if minz==z(1); z1={'Do'};


(56)

Gambar 4.11. (Lanjutan) Program untuk menampilkan teks hasil pengenalan nada

b. Tombol “Ulang”

Tombol “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 plot(0) adalah perintah untuk menghapus plot yang ada pada kotak axes. Perintah set(handles.text6,'string',' ') dan set(handles.text9,'string',' ') adalah perintah untuk menghapus teks hasil pengenalan nada dan nilai jarak Euclidean terkecil pada kedua kotak static text. Perintah set(handles.popupmenu1,'value',1) adalah perintah untuk mengubah pilihan nilai frame blocking ke case yang tidak terdapat nilai di dalamnya yaitu case 1.

elseif minz==z(2); z4={'Re'};

set(handles.text6,'string',z2); elseif minz==z(3);

z5={'Mi'};

set(handles.text6,'string',z3); elseif minz==z(4);

z4={'Fa'};

set(handles.text6,'string',z4); elseif minz==z(5);

z5={'Sol'};

set(handles.text6,'string',z5); elseif minz==z(6);

z6={'La'};

set(handles.text6,'string',z6); elseif minz==z(7);

z7={'Si'};

set(handles.text6,'string',z7); elseif minz==z(8);

z8={'Do Tinggi'};

set(handles.text6,'string',z8); end


(57)

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

Pengujian program pengenalan nada belira dilakukan dengan menguji parameter pengenalan nada yang meliputi pengujian secara tidak real-time dan pengujian secara real -time. Parameter yang digunakan pada program ini adalah frame blocking. Pengujian dilakukan dengan mengamati pengaruh variasi frame blocking terhadap tingkat pengenalan nada belira dengan tujuan untuk mengetahui nilai frame blocking dan koefisien ekstraksi ciri terkecil dengan tingkat pengenalan nada terbaik.

4.3.1.

Pengujian Secara Tidak

Real-Time

Nada uji digunakan sebagai masukan pada pengujian secara tidak real-time. Pengambilan nada uji dilakukan melalui proses sampling. Pengujian secara tidak real-time menggunakan nada uji sebanyak 10 data. Pilihan nilai frameblocking yang digunakan yaitu 4096, 1024, 256, 64, dan 16.

axes(handles.axes1); plot(0);

set(handles.text6,'string',' '); set(handles.text9,'string',' '); set(handles.popupmenu1,'value',1)


(58)

Tabel 4.1. Hasil pengujian secara tidak real-time

FrameBlocking Panjang DST (titik) Tingkat Pengenalan (%)

4096 64 100

1024 32 100

256 16 95

64 8 77,5

16 4 44

Gambar 4.14. Grafik pengaruh panjang DST terhadap tingkat pengenalan nada secara tidak real-time

Berdasarkan hasil pengujian secara tidak real-time, dapat dilihat bahwa panjang DST 64 dan 32 menghasilkan persentase tingkat pengenalan 100%. Hasil tersebut menunjukkan bahwa dengan nilai-nilai panjang DST tersebut, semua nada dapat dikenali dengan baik. Namun saat panjang DST 16, 8, dan 4, secara berturut-turut persentase tingkat pengenalan nada turun menjadi 95%, 77,5%, dan 44%. Hasil tersebut menunjukkan bahwa saat panjang DST 16, 8, dan 4, ada beberapa nada yang sulit untuk dikenali dan bahkan tidak bisa dikenali sama sekali. Dari hasil tersebut, dapat diketahui bahwa semakin kecil panjang DST, semakin kecil tingkat pengenalan nada. Pengenalan nada yang baik secara tidak real-time didapatkan melalui pengaturan panjang DST dengan nilai minimal 32 atau frameblocking 1024.

100 100

95

77,5

44

0 20 40 60 80 100 120

64 32 16 8 4

T

ingkat

Pengenal

an

(%

)

Panjang DST (titik)

Pengaruh Panjang DST Terhadap Tingkat Pengenalan Nada Secara Tidak Real-Time


(59)

4.3.2.

Pengujian Secara

Real-Time

Pengujian secara real-time dilakukan dengan menggunakan masukan nada belira secara langsung. Jumlah data yang diambil untuk pengujian ini sebanyak 10 kali masing-masing nada tiap nilai frame blocking. Pilihan nilai frame blocking yang digunakan yaitu 4096, 1024, 256, 64, dan 16.

Tabel 4.2. Hasil pengujian secara real-time

Frame Blocking

Nada Tingkat

Pengenalan (%)

Do Re Mi Fa Sol La Si Do

Tinggi

4096 10 10 10 10 10 10 10 10 100

1024 10 10 10 10 10 10 10 10 100

256 10 10 10 10 10 10 10 10 100

64 9 10 8 9 10 10 10 10 95

16 6 2 2 1 8 7 2 8 45

Rata-rata tingkat pengenalan 88%

Persentase tingkat pengenalan dari masing-masing nilai frame blocking yang akan digunakan untuk membuat grafik pengaruh panjang DST terhadap tingkat pengenalan nada diperoleh menggunakan persamaan 3.2. Salah satu perhitungan untuk mendapatkan persentase tingkat pengenalan adalah sebagai berikut:

Frameblocking 64

Tingkat pengenalan = Banyaknya percobaan∑v ×100% =

80×100% = 95%


(60)

Tabel 4.3. Pengaruh panjang DST terhadap tingkat pengenalan nada secara real-time

Panjang DST (titik) Tingkat Pengenalan (%)

64 100

32 100

16 100

8 95

4 45

Gambar 4.15. Grafik pengaruh panjang DST terhadap tingkat pengenalan nada secara real-time

Berdasarkan hasil pengujian secara real-time, dapat dilihat bahwa panjang DST 64, 32, dan 16 menghasilkan persentase tingkat pengenalan 100%. Hasil tersebut menunjukkan bahwa dengan nilai-nilai panjang DST tersebut, semua nada dapat dikenali dengan baik. Namun saat panjang DST 8 dan 4, secara berturut-turut persentase tingkat pengenalan nada turun menjadi 95% dan 45%. Hasil tersebut menunjukkan bahwa saat panjang DST 8 dan 4, ada beberapa nada yang sulit untuk dikenali dan bahkan tidak bisa dikenali sama sekali. Sama seperti pengujian secara tidak real-time, semakin kecil panjang DST, semakin kecil tingkat pengenalan nada. Pengenalan nada yang baik secara real-time didapatkan melalui pengaturan panjang DST dengan nilai minimal 16 atau frameblocking 256.

100 100 100

95

45

0 20 40 60 80 100 120

64 32 16 8 4

T

ingkat

Pengenal

an

(%

)

Panjang DST (titik)

Pengaruh Panjang DST Terhadap Tingkat Pengenalan Nada Secara Real-Time


(1)

L29

LAMPIRAN 4

HASIL PENGENALAN NADA

SECARA TIDAK REAL-TIME

---

FrameBlocking 4096

--- NadaOut =

Columns 1 through 11

'do' 'do' 'do' 'do' 'do' 'do' 'do' 'do' 'do' 'do' 're'

Columns 12 through 22

're' 're' 're' 're' 're' 're' 're' 're' 're' 'mi' 'mi'

Columns 23 through 33

'mi' 'mi' 'mi' 'mi' 'mi' 'mi' 'mi' 'mi' 'fa' 'fa' 'fa'

Columns 34 through 44

'fa' 'fa' 'fa' 'fa' 'fa' 'fa' 'fa' 'sol' 'sol' 'sol' 'sol'

Columns 45 through 54

'sol' 'sol' 'sol' 'sol' 'sol' 'sol' 'la' 'la' 'la' 'la'

Columns 55 through 65

'la' 'la' 'la' 'la' 'la' 'la' 'si' 'si' 'si' 'si' 'si'

Columns 66 through 73

'si' 'si' 'si' 'si' 'si' 'do tinggi' 'do tinggi' 'do tinggi'

Columns 74 through 79


(2)

L30

'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi'

Column 80 'do tinggi'

---

FrameBlocking 1024

--- NadaOut =

Columns 1 through 11

'do' 'do' 'do' 'do' 'do' 'do' 'do' 'do' 'do' 'do' 're'

Columns 12 through 22

're' 're' 're' 're' 're' 're' 're' 're' 're' 'mi' 'mi'

Columns 23 through 33

'mi' 'mi' 'mi' 'mi' 'mi' 'mi' 'mi' 'mi' 'fa' 'fa' 'fa'

Columns 34 through 44

'fa' 'fa' 'fa' 'fa' 'fa' 'fa' 'fa' 'sol' 'sol' 'sol' 'sol'

Columns 45 through 54

'sol' 'sol' 'sol' 'sol' 'sol' 'sol' 'la' 'la' 'la' 'la'

Columns 55 through 65

'la' 'la' 'la' 'la' 'la' 'la' 'si' 'si' 'si' 'si' 'si'

Columns 66 through 73

'si' 'si' 'si' 'si' 'si' 'do tinggi' 'do tinggi' 'do tinggi'

Columns 74 through 79


(3)

L31

'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi'

Column 80 'do tinggi'

---

FrameBlocking 256

--- NadaOut =

Columns 1 through 11

'do' 'do' 'do' 'do' 'do' 'do' 'do' 'do' 'do' 'do' 're'

Columns 12 through 22

're' 're' 're' 're' 're' 're' 're' 're' 're' 'mi' 'mi'

Columns 23 through 33

'mi' 'mi' 'mi' 'mi' 'mi' 'mi' 'mi' 'mi' 'fa' 'fa' 'sol'

Columns 34 through 43

'fa' 'fa' 'sol' 'sol' 'fa' 'sol' 'fa' 'sol' 'sol' 'sol'

Columns 44 through 53

'sol' 'sol' 'sol' 'sol' 'sol' 'sol' 'sol' 'la' 'la' 'la'

Columns 54 through 64

'la' 'la' 'la' 'la' 'la' 'la' 'la' 'si' 'si' 'si' 'si'

Columns 65 through 73

'si' 'si' 'si' 'si' 'si' 'si' 'do tinggi' 'do tinggi' 'do tinggi'

Columns 74 through 79


(4)

L32

'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi'

Column 80 'do tinggi'

---

FrameBlocking 64

--- NadaOut =

Columns 1 through 11

're' 'do' 'do' 'do' 'do' 'do' 'do' 'do' 'do' 'do' 're'

Columns 12 through 22

're' 're' 'do' 'do' 're' 'do' 'do' 're' 're' 'mi' 'mi'

Columns 23 through 33

'fa' 'fa' 'mi' 'mi' 'mi' 'mi' 'mi' 'fa' 'sol' 'sol' 'sol'

Columns 34 through 43

'mi' 'mi' 'sol' 'sol' 'mi' 'sol' 'sol' 'sol' 'sol' 'sol'

Columns 44 through 53

'sol' 'sol' 'sol' 'sol' 'sol' 'sol' 'sol' 'la' 'la' 'la'

Columns 54 through 64

'la' 'la' 'la' 'la' 'la' 'la' 'la' 'si' 'si' 'si' 'si'

Columns 65 through 73

'si' 'si' 'si' 'si' 'si' 'si' 'do tinggi' 'do tinggi' 'do tinggi'

Columns 74 through 79


(5)

L33

'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi'

Column 80 'do tinggi'

---

FrameBlocking 16

--- NadaOut =

Columns 1 through 11

'do' 're' 'do' 'do' 'do' 're' 'do' 'do' 'do' 're' 'do'

Columns 12 through 22

'fa' 're' 'mi' 'fa' 'fa' 'fa' 'do' 'fa' 'sol' 'sol' 'mi'

Columns 23 through 32

'mi' 'fa' 'mi' 'fa' 'mi' 'mi' 're' 'fa' 'la' 'sol'

Columns 33 through 41

'do tinggi' 'fa' 're' 'do tinggi' 'sol' 'sol' 'sol' 'sol' 'sol'

Columns 42 through 51

'sol' 'sol' 'sol' 'sol' 'sol' 'sol' 'sol' 'sol' 'sol' 'la'

Columns 52 through 62

'la' 'sol' 'sol' 'sol' 'la' 'la' 'la' 'sol' 'la' 'si' 'si'

Columns 63 through 70

'do tinggi' 'si' 'si' 'do tinggi' 'si' 'si' 'do tinggi' 'si'

Columns 71 through 76


(6)

L34

'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi' 'si'

Columns 77 through 80

'do tinggi' 'do tinggi' 'do tinggi' 'do tinggi'