Upload
lehanh
View
220
Download
0
Embed Size (px)
Citation preview
i
TUGAS AKHIR
PENGENALAN NADA SAKSOFON ALTO
MENGGUNAKAN FFT DAN PENGKLASIFIKASIAN K-NN
DENGAN JARAK SIMETRIK PROBABILITAS 2
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Oleh:
FREDERIK MERIS
NIM : 115114023
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
FINAL PROJECT
ALTO SAXOPHONE TONE RECOGNITION USING FFT
AND K-NN CLASSIFIER WITH SYMMETRIC
PROBABILISTIC 2
Presented as Partial Fullfillment of The Requirements
To Obtain Sarjana Teknik Degree
In Electrical Engineering Study Program
By :
FREDERIK MERIS
NIM : 115114023
ELECTRICAL ENGINEERING STUDY PROGRAM
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
HALAMAN PERSETUJUAN
TUGAS AKHIR
PENGENALAN NADA SAKSOFON ALTO MENGGUNAKAN FFT DAN
PENGKLASIFIKASIAN K-NN DENGAN JARAK SIMETRIK PROBABILITAS 2
(ALTO SAXOPHONE TONE RECOGNITION USING FFT AND K-NN
CLASSIFIER WITH SYMMETRIC PROBABILISTIC 2)
Oleh:
Frederik Meris
NIM : 115114023
Telah Disetujui Oleh:
Pembimbing :
Dr. Linggo Sumarno Tanggal :____________
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
HALAMAN PENGESAHAN
TUGAS AKHIR
PENGENALAN NADA SAKSOFON ALTO MENGGUNAKAN FFT DAN
PENGKLASIFIKASIAN K-NN DENGAN JARAK SIMETRIK PROBABILITAS 2
(ALTO SAXOPHONE TONE RECOGNITION USING FFT AND K-NN
CLASSIFIER WITH SYMMETRIC PROBABILISTIC 2)
Oleh :
Frederik Meris
NIM: 115114023
Telah dipertahankan di depan Panitia Penguji
Pada tanggal 20 Agustus 2015
Dan dinyatakan memenuhi syarat
Susunan Panitia Penguji
Nama Lengkap Tanda Tangan
Ketua : Dr. Iswanjono ..........................
Seketertaris : Dr. Linggo Sumarno ..........................
Anggota : Wiwien Widyastuti, S.T.,M.T ..........................
Yogyakarta,……………………
Fakultas Sains dan Teknologi
Universitas Sanata Dharma
Dekan,
Paulina Heruningsih Prima Rosa, S.Si.,M.Sc.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya
orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana
layaknya karya ilmiah.
Yogyakarta, 25 Agustus 2015
Frederik Meris
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
VI
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO :
I’m Not Lucky, I’m Blessed
Persembahan Karya ini ku persembahkan kepada ....
Tuhan Yesus yang selalu ada disetiap perjalanan hidupku.
Papa, Mama danKakak-kakak yang selalu
mendukungku dalam segala hal.
Dan semua orang yang mengasihiku dan mendukungku
dalam Tugas Akhir.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA
ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertandatangan dibawah ini, saya mahasiswa Universitas Sanata Dharma:
Nama
Nomor l\4ahasiswa
: Frederik Meris
: l1 5114023
Dengan pengembangan ilmu pengetahuan. saya memberikan kepada perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berir-radul :
PENGENALAN NADA SAKSOFON ALTO MENGGUNAKAN FFT DANPENGKLASIFIKASIAN K-NN DENGAN JARAK SIMETRIK PROBABILITAS 12
Beserla perangkat yang diperlukan (kalo ada). Dengan demikian saya memberikan kepada
Perpustakaan Universitas Samata Dharma hak untuk menyimpan. rnengalihkan dalam
bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara
terbatas dan mempublikasikannya di internet atau media lainnya untuk kepentingan
akademis tanpa perlu meminta ijin dari saya mallpun rnemberikan royalty kepada saya
selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataa ini saya buat dengan sebenarnya.
(Frederik Meris)
vil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
VIII
INTISARI
Kebanyakan orang hanya bisa mendengarkan suatu nada dari alat musik tanpa
mengetahui nada apa yang sedang dimainkan, karena kurangnya ketajaman pendengaran
serta pengetahuan tentang bermusik sangat terbatas. Alat musik yang digunakan pun juga
bervariasi, salah satunya alat musik tiup. Saksofon adalah merupakan bagian dari banyak
alat musik apabila dengan tiupan akan menghasilkan sebuah bunyi. Sistem pengenalan
sangat diperlukan untuk membantu dalam mengenali nada alat musik, khususnya untuk
nada dasar (do, re, mi, fa, sol, la ,si dan do tinggi) pada alat musik saksofon alto.
Sistem pengenalan nada alat musik saksofon alto pada tugas akhir ini menggunakan
mikrofon dan komputer untuk mengoperasikannya. Mikrofon berfungsi untuk menerima
gelombang suara nada alat musik saksofon alto. Komputer berfungsi untuk memproses
data hasil rekaman, menampilkan gelombang hasil rekaman, menampilkan spektrum
ekstraksi ciri dan menampilkan hasil nada yang dikenali berupa teks. Sistem pengenalan
nada alat musik saksofon alto menggunakan FFT, jarak Simetrik Probabilistik 2 dan
klasifikasi k-NN sudah berhasil dibuat dan dapat bekerja sesuai dengan perancangan.
Pada program pengenalan nada secara real time tanpa thresholding dan
menggunakan thresholding mampu mengenali nada sebesar 100%. Parameter pengenalan
terbaik berada pada variasi frame blocking 128, windowing koefisien 50% dan k=1 pada k-
NN. Tingkat pengenalan nada-nada kromatis saksofon alto mencapai 92%. Dengan
database yang sama, hasil pengenalan nada alat musik pianika mencapai 83,75%.
Kata kunci : Saksofon Alto, FFT (Fast Fourier Transform), Simetrik Probabilistik 2,k-
nearest neighbor (k-NN), Pengenalan Nada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
IX
ABSTRACT
Most of people can only hear a tone from the instrument without knowing what
tone is being played, because of the lack of hearing acuity and knowledge of music is very
limited. Musical instruments used vary, one wind instrument. The saxophone is a part of
many musical instruments when the puffs will produce a sound. Recognition system is
needed to assist in recognizing musical tones, especially for fundamental tones (do, re, mi,
fa, sol, la, si, do’) on a musical instrument the alto saxophone.
Tone recognition system of alto saxophone at the end of this task using a
microphone and a computer to operate. Functioning microphone to receive sound waves
alto saxophone tones of musical instruments. Computer functions to process data
recording, featuring a wave of record results, spectral feature extraction, and displays the
results of a recognizable tone as text. Tone recognition system of alto saxophone musical
instrument uses FFT, Symmetric Probabilistic 2 distance and classification of k-NN has
been created and capable to work in accordance with design.
At real time program of tone recognition with and without thresholding are able
to recognize the ton of 100%. The best recognition parameter can be found at frame
blocking 128 variation, windowing coefficient of 50% and k=1 for k-NN. Introduction
level of a chromatic tones alto saxophone reached 92%. The result of recognition of
musical instrument tones pianica with the same database reached 83.75%.
Keyword: Alto Saxophone, Fast Fourier Transform (FFT), Symmetric Probabilistic 2
Distance Functions, Classifier k-NN, Recognition Tone.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
X
KATA PENGANTAR
Puji dan Syukur kepada Tuhan Yesus karena telah memberikan Berkat-Nya
sehingga penulis dapat menyelesaikan laporan tugas akhir dengan baik, dan dapat
memperoleh gelar sarjana.
Dalam penulisan tugas akhir ini, penulis menyadari bahwa tidak lepas dari seluruh
bantuan dan bimbingan dari berbagai pihak. Oleh karena itu, pada kesempatan ini penulis
mengucapkan banyak terimakasih kepada:
1. Tuhan Yesus Kristus atas berkat dan anugerah-Nya kepada penulis
2. Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma.
3. Petrus Setyo Prabowo, S.T., M.T., selaku Ketua Program Studi Teknik Elekro
Universitas Sanata Dharma
4. Dr. Linggo Sumarno, selaku dosen pembimbing yang dengan tenang dan penuh
kesabaran untuk membimbing dalam menyelesaikan penulisan Tugas Akhir ini.
5. Dr. Iswanjono, Wiwien Widyastuti, S.T., M.T., selaku dosen penguji yang telah
memberikan bimbingan, saran, dan merevisi Tugas Akhir ini.
6. Papa dan Mama, serta kakak-kakak yang selalu mendoakan dan membantu segala
sesuatunya sampai pencapaian menyelesaiakan studi di jenjang perkuliahan
7. Segenap staff sekretariat, dan laboran Teknik Elektro yang telah memberikan
dukungan secara tidak langung dalam kelancaran tulisan tugas Akhir ini.
8. Ketua kelompok sel saya Daddy Uchu dan saudara sel yang selalu memberikan doa
dan selalu memberikan masukan dan nasihat.
9. Mas Wedha dan Ko Ahwie yang sudah bersedia meminjamkan saksofon alto untuk
kelancaran Tugas akhir.
10. Teman-teman singer ”Youth Impact Singers” Marthen, Littabeth, Meika, Haris,
Jeremy, Albert, Angel, Kak Iren, Kak Siska, adek Fila, Topel, dan Cik Zenia yang
selalu mendukung dan mendoakan dalam kelancaran penulisan Tugas Akhir ini.
11. Papsky Lucky dan Om Topel “3 idiots” yang selalu memberikan dukungan dan doa
dan terus mengingatkan untuk menyelesaikan tugas akhir.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
XI
12. Teman-teman group “SKRIPSI” Cahyo, Yohanes, Irfan, Evan, Edwin, Dean, Yugo
yang selalu mendukung, selalu mengingatkan setiap ada konsultasi untuk tugas
akhir dan selalu memberikan semangat.
13. Teman-teman Teknik Elktro 2011 yang telah memberikan semangat pada saat
menempuh pendidikan di Universitas Sanata Dharma.
14. Semua Pihak yang tidak bisa disebutkan satu persatu yang telah banyak
mendukung, dan memberikan banyak bantuan dalam menyelesaikan Tugas Akhir
ini.
Penulis menyadari bahwa dalam penyusunan laporan Tugas Akhir ini masih
mengalami kesulitan dan tidak lepas dari kesalahan. Oleh karena itu, penulis
mengharapkan masukan, saran ,kritikan yang mendukung agar skripsi ini menjadi lebih
baik, dan semoga sripsi ini dapat bermanfaaat sebagaimana mestinya
Penulis
Frederik Meris
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
DAFTAR ISI
Halaman
HALAMAN JUDUL. ............................................................................................... i
HALAMAN PERSETUJUAN.. ........................................................................... iii
HALAMAN PENGESAHAN. .............................................................................. iv
PERNYATAAN KEASLIAN KARYA. ............................................................ v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP............................. vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA
ILMIAH UNTUK KEPENTINGAN AKADEMIS. ..................................... vii
INTISARI. ................................................................................................................... viii
ABSTRACT. ............................................................................................................... ix
KATA PENGANTAR. ............................................................................................ x
DAFTAR ISI. ............................................................................................................. xii
DAFTAR GAMBAR. .............................................................................................. xvi
DAFTAR TABEL. ................................................................................... xviii
BAB I PENDAHULUAN
1.1. Latar Belakang. ................................................................................................. 1
1.2. Tujuan dan Manfaat Penelitian ......................................................................... 2
1.3. Batasan Masalah ............................................................................................... 2
1.4. Metodologi Penelitian ...................................................................................... 3
BAB II DASAR TEORI
2.1. Saksofon Alto .................................................................................................... 4
2.2. Mikrofon ............................................................................................................ 5
2.3. Sound card ......................................................................................................... 6
2.4. Matlab ................................................................................................................ 6
2.5. Teorema Pencuplikan ........................................................................................ 8
2.6. Preprocessing .................................................................................................... 8
2.6.1. Normalisasi... ........................................................................................... 9
2.6.2. Pemotongan Sinyal.... .............................................................................. 9
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
2.6.3. Frame Blocking ....................................................................................... 10
2.6.4. Normalisasi 2.... ....................................................................................... 11
2.6.5 Windowing Hamming... ............................................................................ 11
2.7. Dicerete Fourier Transform (DFT) ................................................................... 12
2.8. Fast Fourier Transform (FFT).. ........................................................................ 12
2.9 Template Matching ............................................................................................ 16
2.9.1. Fungsi Jarak Simetrik Probabilitas 2 .............................................................. 16
2.10. Klasifikasi k-NN. .............................................................................................. 16
BAB III PERANCANGAN
3.1. Sistem Pengenalan Nada Saksofon Alto ........................................................... 18
a. Saksofon Alto... ............................................................................................. 19
b. Mikrofon.... .................................................................................................... 19
c. Sound Card .......... ......................................................................................... 20
d. Proses Perekaman.... ...................................................................................... 20
d. Proses Pengenalan Nada.... ............................................................................ 20
3.2. Perancangan Database Nada ............................................................................. 22
3.3. Nada Uji ............................................................................................................ 23
3.4. Perancangan Tampilan Program GUI MatLab ................................................. 23
3.5. Perancangan Alur Program ............................................................................... 24
3.5.1. Rekam ..................................................................................................... 25
3.5.2. Normalisasi ............................................................................................. 26
3.5.3. Pemotongan Sinyal ................................................................................. 27
3.5.4. Frame Blocking ...................................................................................... 28
3.5.5. Normalisasi 2. ......................................................................................... 29
3.5.6. Windowing Hamming. ............................................................................ 30
3.5.7. Fast Fourier Transform (FFT). .............................................................. 31
3.5.8. Perhitungan Jarak Simetrik Probabilistik 2 ........................................... 32
3.5.9. Penentuan Hasil Nada ............................................................................. 33
3.6. Perancangan Subsistem Pengenalan Nada Saksofon Alto ............................... 34
3.6.1 Subsistem Sampling. ................................................................................ 34
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
BAB IV HASIL DAN PEMBAHASAN
4.1. Pengujian Program Pengenalan Nada Saksofon Alto menggunakan FFT dan
Pengklasifikasian K-NN dan Fungsi Jarak Simetrik Probabilitas 2 ............... 35
4.1.1. Pengenalan Nada ................................................................................... 37
a. Popup Menu............................................... ........................................ 38
b. Tombol “RECORD”........................................................... ............... 40
c. Tombol “RESET”........................................................... .................... 46
b. Tombol “CLOSE”........................................................... ................... 46
4.2. Hasil Pengujian Program Pengenalan Nada Terhadap Tingkat Pengenalan Nada
Saksofon Alto ................................................................................................... 46
4.2.1. Pengujian Parameter Pengenalan Nada ................................................. 47
4.2.1.1 Pengujian secara Tidak Real-Time............................................. 47
4.2.1.2 Pengujian secara Real-Time...................................................... 50
a) Pengujian Tanpa Thresholding............................................. 50
b) Pengujian Untuk Menentukan Batasan Nilai Jarak Optimal... 51
c) Pengujian Mengunakan Thresholding..................................... 52
4.3. Pengujian Dengan Nada Masukan Pianika... .................................................... 53
4.4. Pengujian Dengan Masukan Nada-Nada Kromatis Pada Saksofon Alto... ...... 54
BAB V KESIMPULAN DAN SARAN
5.1. Kesimpulan ...................................................................................................... 56
5.2. Saran ................................................................................................................ 56
DAFTAR PUSTAKA .............................................................................................. 57
LAMPIRAN
LAMPIRAN 1 PERCOBAAN MENCARI SPEKTRUM FREKUENSI UNTUK SISTEM
PENGENALAN NADA ALAT MUSIK SAKSOFON ALTO MENGGUNAKAN
MATLAB 7.04 2008a ..................................................................................................... L1
LAMPIRAN 2 PERCOBAAN MENCARI DURASI PEREKAMAN PENGENALAN
NADA ALAT MUSIK SAKSOFON ALTO MENGGUNAKAN MATLAB 7.0.4 2008a
.................................................................................................................... L6
LAMPIRAN 3 LISTING PROGRAM GUI MATLAB ................................................. L9
LAMPIRAN 4 LISTING PROGRAM TIDAK REAL-TIME ........................................ L21
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
LAMPIRAN 5 HASIL PERSENTASE PENGENALAN NADA SECARA TIDAK REAL-
TIME .................................................................................................................... L27
LAMPIRAN 6 TABEL JARAK OPTIMAL. ................................................................. L33
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
DAFTAR GAMBAR
Halaman
Gambar 2.1. Dimensi Saksofon Alto dan bentuk Saksofon Alto ............................... 4
Gambar 2.2. Sound Card ............................................................................................ 6
Gambar 2.3. Penulisan Program Matlab Secara Langsung ........................................ 7
Gambar 2.4. M-file Matlab ......................................................................................... 8
Gambar 2.5. Sinyal terekam ....................................................................................... 9
Gambar 2.6. Hasil proses normalisasi dari gambar 2.5. ............................................. 9
Gambar 2.7. Hasil pemotongan awal sinyal Gambar 2.6. .......................................... 10
Gambar 2.8. Hasil Pemotongan sinyal untuk daerah transisi dari gambar 2.7. .......... 10
Gambar 2.9. Hasil Frame Blocking dari gambar 2.8. ................................................. 10
Gambar 2.10. HasiL Proses Normalisasi 2 dari gambar 2.9. ....................................... 11
Gambar 2.11. Hasil Proses Windowing dari gambar 2.10. ........................................... 12
Gambar 2.12. Algoritma kupu-kupu FFT DIT dua dimensi untuk DFT 8 Titik .......... 15
Gambar 2.13. Gambar ilustrasi algoritma Sande-Turkey FFT untuk N = = 8 ......... 15
Gambar 3.1. Diagram Blok Sistem Pengenalan Nada Saksfon Alto.. ........................ 18
Gambar 3.2. GoMic Protable USB Microphone by SAMSON ................................... 19
Gambar 3.3. Proses Pengenalan Nada Saksofon Alto ................................................ 20
Gambar 3.4. Proses Pengambilan database Nada ...................................................... 22
Gambar 3.5. Tampilan Utama Sistem Pengenalan Nada Saksofon Alto ................... 23
Gambar 3.6. Diagram Alir Sistem Pengenalan Nada saksofon Alto .......................... 25
Gambar 3.7. Diagram Alir Sub Rutin Rekam ............................................................ 25
Gambar 3.8. Diagram alir Normalisasi....................................................................... 26
Gambar 3.9. Diagram alir Pemotongan Sinyal ........................................................... 28
Gambar 3.10. Diagram Alir Frame Blocking ............................................................... 28
Gambar 3.11. Diagram alir Normalisasi 2.................................................................... 29
Gambar 3.12. Diagram alir Windowing ........................................................................ 30
Gambar 3.13. Diagram alir Ekstraksi ciri FFT ............................................................. 31
Gambar 3.14. Diagram Alir perhitungan jarak Simetrik Probabilitas 2 ..................... 32
Gambar 3.15. Diagram alir K-NN ................................................................................ 33
Gambar 4.1. Ikon Matlab 7.6.0 (R2008a) .................................................................. 35
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
Gambar 4.2. Tampilan Matlab .................................................................................... 36
Gambar 4.3 Tampilan Program Pengenalan Nada Saksofon alto ............................. 36
Gambar 4.4. Tampilan Hasil Pengenalan ................................................................... 37
Gambar 4.5. Grafik Pengaruh Perubahan Windowing Koefisien Terhadap Perenstase
Keberhasilan Pada Frame Blocking 128 ............................................... 48
Gambar 4.6. Grafik Pengaruh Perubahan Windowing Koefisien Terhadap Perenstase
Keberhasilan Pada Frame Blocking 64 ................................................. 48
Gambar 4.7. Grafik Pengaruh Perubahan Windowing Koefisien Terhadap Perenstase
Keberhasilan Pada Frame Blocking 32 ................................................. 49
Gambar 4.8. Grafik Pengaruh Perubahan Windowing Koefisien Terhadap Perenstase
Keberhasilan Pada Frame Blocking 16 ................................................. 49
Gambar 4.9. Gambar Alat Musik Pianika ................................................................. 54
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xviii
DAFTAR TABEL
Halaman
Tabel 2.1. Nilai Frekuensi Nada Saksofon Alto .......................................................... 5
Tabel 2.2. Pembalikan bit ............................................................................................ 14
Tabel 3.1. Spesifikasi GoMic Portable USB Microphone by SAMSON ..................... 19
Tabel 3.1. (Lanjutan) Spesifikasi GoMic Portable USB Microphone by SAMSON ... 20
Tabel 3.2. Keterangan Tampilan Utama Sistem .......................................................... 24
Tabel 4.1. Menggunakan nilai frame blocking 128 dengan 1 database untuk setiap nada
.................................................................................................................... 47
Tabel 4.2. Menggunakan nilai frame blocking 64 dengan 1 database untuk setiap nada
.................................................................................................................... 47
Tabel 4.3. Menggunakan nilai frame blocking 32 dengan 1 database untuk setiap nada
.................................................................................................................... 48
Tabel 4.4. Menggunakan nilai frame blocking 16 dengan 1 database untuk setiap nada
.................................................................................................................... 48
Tabel 4.5. Hasil Pengujian secara real time tanpa Thresholding dengan variasi frame
blocking 128, windowing koefisien 50% dan k=1 pada k-NN dengan
Confusion matriks ...................................................................................... 51
Tabel 4.6. Jarak Optimal Tiap Nada dengan variasi frame blocking 128, windowing koe-
. fisien 50% dan k=1 pada k-NN dengan Confusion matriks ....................... 52
Tabel 4.7. Hasil Pengujian secara real time dengan variasi 128, 50% dan k=1 menggun-
Akan Thresholding dengan Confusion matriks .......................................... 52
Tabel 4.7. (Lanjutan) Hasil Pengujian secara real time dengan variasi 128, 50% dan k=1
menggunakan Thresholding dengan Confusion matriks ............................ 53
Tabel 4.8. Hasil pengujian dengan nada dari alat musik pianika dengan confusion matri-
ks ................................................................................................................ 54
Tabel 4.9. Hasil pengujian dengan masukan nada-nada kromatis pada saksofon alto. 55
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Musik merupakan ekspresi yang timbul dari dalam jiwa manusia yang diwujudkan
dalam bentuk karya seni. Musik terbentuk dari kumpulan nada-nada yang tersusun secara
harmonis sehingga menghasilkan “sesuatu yang indah” menurut indera pendengaran yang
dimiliki manusia. Baik musik tradisional maupun musik pop, rock dan jazz yang masing-
masing memberikan keindahan dalam bermusik. Musik juga bisa menjadi efektif di bidang
akademis dengan membantu pembentukan pola belajar, mengatasi kebosanan dan
menangkal kebisingan eksternal yang mengganggu [1].
Alat musik yang digunakan pun juga bervariasi, salah satunya alat musik tiup yaitu
saksofon. Saksofon merupakan bagian dari banyak alat musik apabila dengan tiupan akan
menghasilkan sebuah bunyi. Tinggi rendahnya nada ditentukan oleh frekuensi dasar
gelombang bunyi [2]. Semakin besar frekuensi dasar gelombang bunyi, maka semakin
tinggi nada yang dihasilkan, demikian pula sebaliknya. Indera pendengaran manusia tidak
dapat mengetahui secara pasti jenis nada apa yang didengar olehnya, terkecuali bagi para
pemusik profesional. Hal ini amatlah penting bagi seorang pemusik untuk mengetahui
apakah alat musiknya sudah menghasilkan nada-nada yang tepat.
Berkaitan dengan hal tersebut, dari beberapa penelitian sebelumnya telah dilakukan
untuk membuat sistem pengenalan nada pada alat musik, seperti suling rekorder dan alat
musik tradisional, seperti “Musical Instruments Sound Recognition”[3] dan “Pengenalan
Nada Suling Rekorder Alto Secara Real Time Menggunakan Ekstraksi Cara DCT dan
Fungsi Korelasi”[4] dan “Pengenalan Nada Gamelan Kenong Secara Real Time
Menggunakan Ekstraksi Ciri DCT Dan Fungsi Jarak Chebyshev”[5]. Kedua sistem ini
meniru kemampuan manusia untuk mengenali nada alat musik yang di gunakan dengan
menggunakan metode Discrete Cosine Transform (DCT) sebagai nada acuan dan nada
acuan tersebut akan dibandingkan dengan nada yang dimainkan dengan menggunakan
fungsi Korelasi dan fungsi jarak Chebyshev.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
Berdasarkan penelitian yang telah dilakukan sebelumnya, penulis ingin membuat
suatu sistem pengenalan nada saksofon yakni dengan jenis saksofon alto. Metode yang
digunakan juga berbeda yaitu dengan menggunakan metode Fast Fourier Transform
(FFT), fungsi Simetrik Probabilistik 2 dan klasifikasi K-NN.
Sistem ini akan secara
otomatis membandingkan nada dari D, E, Fis, G, A, B, Cis dan D’ atau kita kenal dengan
tangga nada do, re, mi, fa, sol, la, si, do’, dengan nada yang yang telah tersimpan pada
sistem tersebut (data base). Setelah itu, Nada D, E, Fis, G, A, B, Cis dan D’, diproses
terdahulu menggunakan metode Fast Fourier Transform (FFT) dan selanjutnya nada
tersebut digunakan sebagai nada acuan. Nada yang dimainkan kemudian akan
dibandingkan dengan kedelapan nada acuan dengan menggunakan perhitungan jarak
Simetrik Probabilistik 2 dan metode K-NN sebagai hasil keluaran pengenalan nada
dimana mencari kelas nilai yang paling banyak muncul.
1.2 Tujuan dan Manfaat Penelitian
Tujuan penelitian ini adalah menghasilkan aplikasi pengenalan nada pada alat
musik saksofon alto.
Manfaat dari penelitian ini adalah:
a. Sebagai alat bantu pendukung pembelajaran musik khusunya untuk mengenali nada
suara D, E, Fis, G, A, B, Cis, D’.
b. Sebagai alat bantu bagi industri alat musik dalam melakukan pengujian alat musik
saksofon alto.
1.3 Batasan Masalah
Batasan masalah dalam penelitian ini adalah:
a. Pengenalan nada bersifat real time.
b. Saksofon yang digunakan adalah jenis saksofon alto.
c. Nada saksofon alto yang dikenali adalah nada D, E, Fis, G, A, B, Cis, D’ atau biasa
di kenal do, re, mi, fa, sol, la, si, do’.
d. Jarak antara saksofon alto dengan mikrofon adalah 80 cm.
e. Menggunakan software MatLab dalam pembuatan program pengenalan nada.
f. Menggunakan metode Fast Fourier Transform (FFT), Hamming window, dan
fungsi Simetrik Probabilistik2 dan K-NN untuk proses pengenalan nada.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
1.4 Metodologi Penelitian
Metodelogi yang digunakan pada tugas akhir ini adalah:
a. Studi literature
Metode ini merupakan sumber utama dalam penulisan penelitian yang sumbernya
diperoleh dari jurnal-jurnal, internet, dan handbook untuk mempelajari hal-hal
mengenai sampling, frame blocking, normalisasi, pemotongan sinyal, Hamming
window, ekstraksi ciri FFT, fungsi jarak Simetrik Probabilistik 2 dan klasifikasi K-
NN.
b. Perancangan subsistem perangkat lunak
Tahap perancangan subsistem perangkat lunak bertujuan untuk mencari bentuk
model yang optimal dari sistem yang akan dibuat dengan mempertimbangkan
berbagai faktor–faktor permasalahan dan kebutuhan yang telah ditentukan
c. Pembuatan subsistem perangkat lunak.
Sistem akan bekerja apabila user memberikan interupsi melalui PC dengan media
push button yang sudah disediakan dalam perangkat lunak. Sistem akan mengolah
interupsi yang diterima dan memulai proses recording sampai user memberikan
interupsi kembali untuk menghentikan proses recording. Setelah itu, user
memberikan interupsi untuk memulai proses pengenalan nada. Komputer akan
mengolah nada dan menyajikannya sebagai sebuah informasi.
d. Analisa dan Kesimpulan
Analisa data dilakukan dengan meneliti pengaruh variasi frame blocking,
Windowing koefisien, nilai k pada K-NN, serta memeriksa keakuratan data terhadap
hasil proses pengolahan nada, dengan cara membandingkan antara data di
komputer dengan data di lapangan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
BAB II
DASAR TEORI
2.1. Saksofon Alto
Saksofon merupakan alat musik yang termasuk ke dalam kelompok aerophone atau
alat musik tiup[6], single-reed woodwind instrument. Sumber bunyi dari getaran udara di
dalam alat berasal dari mulut yang meniup. Pada umumnya saksofon terbuat dari logam
dan dimainkan menggunakan single-reed seperti klarinet. Saksofon umumnya
dihubungkan dengan popular musik, big band musik dan jazz, tapi awalnya ditujukan
sebagai instrumen orkestra dan band militer. Saksofon berbentuk tabung dengan sumber
suara yang dilengkapi dengan lubang-lubang yang berfungsi sebagai pengatur tinggi
rendah suatu nada. Saksofon alto yang digunakan memiliki dimensi 42 x 65 cm. Gambar
2.1 menunjukkan saksofon alto.
Gambar 2.1. Dimensi Saksofon Alto dan bentuk Saksofon Alto
Saksofon memiliki beberapa jenis yang masing-masing dari setiap jenis ini
memiliki ambitus (rentang nada) yang berbeda-beda. Diantaranya ada yang bernama
saksofon Soprano (Bb), Alto (Eb), Tenor (Bb), dan Baritone (Eb). Saksofon jenis sopran
adalah jenis yang paling umum dipakai. Saksofon sopran memiliki suara yang nyaring dan
tinggi khas sopran. Jenis kedua dari saksofon adalah jenis alto. Suara yang dihasilkan
65 c
m
42 cm
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
saksofon alto jauh lebih berat. Berbeda dengan dua jenis saksofon sebelumnya, saksofon
jenis tenor memiliki ukuran yang lebih besar sehingga menghasilkan suara yang lebih
rendah dibandingkan dua jenis saksofon sebelumnya. Jenis saksofon yang terakhir adalah
saksofon bass. Saksofon bass menghasilkan suara rendah khas bass.
Saksofon alto memiliki nada dasar di D. Saksofon alto memiliki nilai frekuensi
yang berbeda-beda untuk setiap nada. Tabel 2.1 menunjukkan contoh nilai frekuensi nada
saksofon alto.
Tabel 2.1. Nilai Frekuensi Nada Saksofon Alto[7]
Nada Saksofon Alto Frekuensi (Hz)
Nada D 349
Nada E 392
Nada Fis 440
Nada G 494
Nada A 523
Nada B 587
Nada Cis 659
Nada D’ 698
Cara meniup saksofon alto juga sangat mempengaruhi terjadinya harmonisa frekuensi.
2.2. Mikrofon
Mikrofon berguna untuk merubah suara menjadi getaran listrik sinyal analog untuk
selanjutnya diperkuat dan diolah sesuai dengan kebutuhan[8] . Pengolahan berikutnya
dengan power amplifier dari suara yang berintensitas rendah menjadi lebih keras terakhir
diumpan ke speaker.
Mikrofon harus dipilih dengan lebih hati-hati. Hal ini dilakukan untuk mencegah
berkurangnya kemampuan mikrofon dari performa yang optimal. Hal ini dilakukan untuk
mencegah berkurangnya kemampuan mikrofon dari performa yang optimal. Karakteristik
mikrofon yang harus diperhatikan ketika akan memilih sebuah mikrofon adalah:
a. Prinsip cara kerja mikrofon dari jenis mikrofon itu sendiri.
b. Daerah respon frekuensi suara yang mampu dicuplik oleh mikrofon.
c. Sudut atau arah pencuplikan mikrofon.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
d. Output sinyal listrik yang dihasilkan mikrofon.
e. Bentuk fisik mikrofon.
Agar lebih efektif, mikrofon yang digunakan haruslah sesuai kebutuhan dan
seimbang antara sumber suara yang ingin dicuplik, misalnya suara manusia, alat musik,
suara kendaraan, atau yang lainnya dengan sistem tata suara yang digunakan seperti sound
sistem untuk live music, alat perekaman, dan sebagainya.
2.3. Sound Card
Sound card merupakan sebuah periperal pada komputer sebagai I/O suara yang
menyediakan kemampuan untuk menghasilkan suara yang dapat didengar oleh pengguna
baik melalui speaker atau headphone [9] . Pada dasarnya setiap kartu suara memiliki:
a. Digital Signal Processor (DSP) yang akan menangani semua jenis komputasi.
b. Digital to Analog Converter (DAC) sebagai keluaran suara ke speaker.
c. Analog to Digital Converter (ADC) sebagai masukan suara.
d. Read Only Memory (ROM) atau Flash sebagai penyimpanan data.
e. Musical Instrument Digital Interface (MIDI) untuk menyambungkan beberapa
peralatan musik eksternal.
f. Jack untuk menyambungkan kartu suara dengan speaker pada jalur line out atau
microphone pada jalur line in.
Beberapa kartu suara sudah terpasang secara pabrikan (on board) pada
motherboard komputer, tetapi bisa juga ditambahkan untuk keperluan pada slot PCI
motherboard.
Gambar 2.2. Sound Card
2.4. MatLab
MATLAB merupakan bahasa pemrograman yang hadir dengan fungsi dan
karakteristik yang berbeda dengan bahasa pemrograman lain yang sudah ada lebih dahulu
seperti Delphi, Basic maupun C++ [10]. MATLAB merupakan bahasa pemrograman level
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
tinggi yang dikhususkan untuk kebutuhan komputasi teknis, visualisasi dan pemrograman
seperti komputasi matematik, analisis data, pengembangan algoritma, simulasi dan
pemodelan, dan grafik-grafik perhitungan. MATLAB adalah software buatan
MathWork.Inc., yang sangat bermanfaat untuk menyelesaikan berbagai masalah komputasi
numerik.
Beberapa bagian penting yang terdapat pada antar muka MATLAB adalah sebagai berikut
:
a. Command Window atau jendela perintah adalah jendela yang dipakai untuk
memberikan perintah secara manual.
b. Workspace berisi daftar variabel yang diciptakan oleh pemakai dan masih ada
dalam memori.
c. Command History mencantumkan perintah-perintah yang pernah diberikan oleh
pemakai.
d. Current Directory menyatakan direktori kerja.
Terdapat dua metode yang digunakan untuk menulis program dalam Matlab. Kedua
metode itu adalah metode langsung dan tidak langsung. Untuk menulis program Matlab
secara langsung maka program itu ditulis langsung di Command window.
Gambar 2.3. Penulisan Program Matlab Secara Langsung
Untuk menulis program Matlab secara tidak langsung maka program itu dapat
ditulis sebagai M-file.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
Gambar 2.4. M-file Matlab
2.5. Teorema Pencuplikan
Sampling merupakan proses pencuplikan sinyal kontinyu atau analog pada
periode-periode tertentu. Dalam proses ini sinyal suara akan dicuplik menjadi gelombang
diskrit. Pada saat proses sampling dilakukan, pengaturan nilai frekuensi sampling harus
diperhatikan [11]. Frekuensi sampling adalah laju pencuplikan yang menandakan banyak
pencuplikan gelombang analog dalam satu detik. Nilai satuan frekuensi sampling adalah
Hertz (Hz).
Nilai frekuensi sampling sebaiknya tertuju pada kriteria Nyquist. Didalam kriteria
Nyquist dituliskan bahwa frekuensi sampling minimal harus lebih besar sama dengan 2
kali nilai frekuensi sinyal analog yang akan dicuplik [11]. Rumus pada kriteria Nyquist
dapat dituliskan:
(2.1)
Keterangan : Fs = frekuensi sampling (Hz)
Fm = frekuensi sinyal analog (Hz)
2.6. Preprocessing
Preprocessing adalah beberapa proses awal dalam pengenalan nada yang bertujuan
untuk pengkondisian sinyal suara. Preprocessing dilakukan sebelum proses ekstraksi ciri.
Preprocessing mempunyai beberapa tahapan proses yaitu pemotongan sinyal, frame
blocking, normalisasi dan windowing.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
0 500 1000 1500 2000 2500 3000 3500 4000 4500-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Data Tercuplik
Am
plitu
do
2.6.1. Normalisasi
Normalisasi merupakan suatu cara untuk mengatasi jarak antara sumber suara
dengan mikrofon. Pada perekaman atau pengambilan suara ini perlu adanya normalisasi
supaya amplitudo nada saat dimainkan dapat menjadi maksimal [12]. Normalisasi
amplitudo dilakukan dengan cara membagi semua nilai input dengan nilai maksimum dari
input sendiri, sehingga untuk semua sinyal masukan memiliki nilai maksimum yang sama
yaitu 1 (satu).
Gambar 2.5. Sinyal terekam
Gambar 2.6. Hasil proses normalisasi dari gambar 2.5
2.6.2. Pemotongan Sinyal
Pemotongan sinyal merupakan proses yang berkaitan dengan ekstraksi ciri. Proses
ini bertujuan untuk memotong beberapa bagian sinyal. Dalam proses perekaman,
pemotongan sering terjadi untuk bagian awal dan akhir sinyal. Pemotongan bagian awal
dan akhir sinyal nada dimaksudkan untuk menghilangkan bagian yang tidak termasuk
bagian dari sinyal nada serta untuk mengurangi cacat sinyal akibat derau ruangan yang ikut
terekam [13].
0 500 1000 1500 2000 2500 3000 3500 4000 4500-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
Data Tercuplik
Ampl
itudo
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
Gambar 2.7. Hasil pemotongan awal sinyal Gambar 2.6
Gambar 2.8. Hasil Pemotongan sinyal untuk daerah transisi dari gambar 2.7
2.6.3. Frame Blocking
Frame blocking merupakan pembagian sinyal suara menjadi beberapa frame dan
satu frame terdiri dari beberapa data sample[14]. Pengambilan sample tersebut tergantung
dari tiap detik suara yang akan disample dan berapa besar frekuensi sampling. Gambar 2.8
menunjukkan contoh frame blocking, keseluruhan frame dibagi menjadi 5 M frame. Setiap
M memiliki jumlah data sama yaitu 2 data, dengan N adalah Nyquist
Gambar 2.9. Hasil Frame Blocking dari gambar 2.8
0 500 1000 1500 2000 2500 3000 3500 4000-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Data Tercuplik
Am
pitu
do
0 500 1000 1500 2000 2500 3000-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
Data Tercuplik
Am
plit
udo
0 20 40 60 80 100 120 140-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
Data Tercuplik (Frame)
Am
plitu
do
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
Fungsi frame blocking yaitu untuk mereduksi data yang akan diproses dalam sistem
pengenalan. Frame blocking juga dapat mempercepat proses perhitungan pada FFT (Fast
Fourier Transform) radix 2 dengan jumlah data pada setiap frame memiliki 2n data sampel
yang di ambil dari keseluruhan data sampel.
2.6.4. Normalisasi 2
Normalisasi 2 merupakan suatu cara untuk mengatasi amplitudo sinyal pada hasil
dari frame blocking yang telah di potong pada bagian transisi dimaksimal. Normalisasi 2
amplitudo dilakukan dengan cara membagi semua nilai input dengan nilai maksimum dari
input sendiri, sehingga untuk semua sinyal masukan memiliki nilai maksimum yang sama
yaitu 1 (satu).
Gambar 2.10. Hasi Proses Normalisasi 2 dari gambar 2.9
2.6.5. Windowing Hamming
Pengenalan nada pada alat musik saksofon alto ini menggunakan windowing
Hamming. Windowing berfungsi untuk menghilangkan discontinuitas. Terjadinya
discontinuitas diakibatkan oleh proses Frame Blocking atau Framing [15]. Untuk
mendapatkan hasil yang maksimal pada proses FFT, maka sample suara yang telah dibagi
menjadi beberapa frame perlu di jadikan suara continue dengan cara mengkalikan tiap
frame windowing tertentu. Pada pengenalan nada alat musik saksofon alto windowing yang
digunakan adalah windowing Hamming. Berikut ini merupakan persamaan dari windowing
Hamming :
( ) (
) (2.2)
Dimana : w(n) = windowing
N = jumlah data dari sinyal
0 20 40 60 80 100 120 140-1
-0.5
0
0.5
1
Data Tercuplik
Am
plit
udo
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
n = waktu diskrit ke-
Gambar 2.11 Hasil Proses Windowing Hamming dari gambar 2.10
2.7. Discerete Fourier Transform (DFT)
Discrete Fourier Transform (DFT) adalah transformasi yang mengubah domain waktu ke
domain frekuensi. Rumus DFT dapat didefinisikan sebagai[17]:
(2.3)
dengan: N = jumlah sempel.
( ) = runtun masukan (time domain).
X(k) = runtun keluaran (frekuensi domain).
2.8. Fast Fourier Transform (FFT)
Fast Fourrier Transform (FFT) merupakan jenis dari ekstraksi ciri dan
pengembangan dari Discrete Fourrier Transform (DFT). DFT merupakan metode
transformasi matematis untuk sinyal waktu diskrit, sementara FFT adalah algoritma yang
digunakan untuk transformasi FFT. Persamaan matematis DFT diuraikan pada persamaan
(2.4).
( ) ∑ ( )
(2.4)
0 20 40 60 80 100 120 140-1
-0.5
0
0.5
1
Waktu
Am
plitu
do
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
dengan , n=0, 1,…, N-1, dan k = 0, 1, 2, …, N-1
X(n) adalah keluaran dalam domain frekuensi, x adalah masukkan dalam domain waktu
dan N adalah runtun masukkan diskret.
e = natural number (2.7182818284…)
k = indeks dalam domain frekuensi (0, 1, 2, …, N-1)
n = indeks dalam domain waktu (0,1,2, …, N-1)
j = konstanta fourrier
Prinsip dasar FFT adalah menguraikan penghitungan N-titik DFT menjadi
penghitungan DFT dengan ukuran yang lebih kecil dan memanfaatkan periodisitas dan
simetri dari bilangan kompleks [18]
Ada dua jenis algoritma FFT yaitu algoritma Fast Fourier Transform Decimation
In Time ( FFT DIT) dan algoritma Fast Fourier Transform Decimation In Frekuensi ( FFT
DIF). Pada penulisan ini, algoritma FFT yang digunakan adalah radiks dua dengan metode
decimation in time. Pada DIT, masukan disusun/dikelompokkan menjadi kelompok ganjil
dan kelompok genap. Runtun bernomor genap adalah x(0), x(2), x(4)…..x(N-2) dan runtun
bernomor ganjul adalah x(1), x(3), x(5)…x(N-1). Kedua runtun berisi N/2-titik. Runtun
genap ditandakan x(2k) dengan x=0 sampai k=N/2-1, sedangkan runtun ganjil menjadi
x(2k-1). Persamaan (2.3) dapat dinyatakan sebagai penjumlahan untuk n ganjil dan genap.
( ) ∑ ( )
∑ ( )
(2.5)
Selanjutnya dengan menggantikan =
maka persamaan (2.5) menjadi
( ) ∑ ( )
∑ ( )
(2.6)
n = 0, 1, 2, …,N-1
Algoritma decimation in time mengharuskan masukkan disusun ulang sedemikian
rupa sehingga hasil perhitungan akhir mempunyai urutan yang sesuai. Tabel 2.2
memperlihatkan penyusunan ulang untuk tujuan tersebut[19].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
Tabel 2.2. Pembalikan bit
Masukkan Asli Masukkan yang Berkebalikan
Bit
Desimal Biner Biner Desimal
0 000 000 0
1 001 100 4
2 010 010 2
3 011 110 6
4 100 001 1
5 101 101 5
6 110 011 3
7 111 111 7
Berdasarkan persamaan matematis DFT (2.2) memerlukan untuk perkalian
bilangan kompleks, sedangkan pada FFT memerlukan . Penghematan
perhitungan dalam perkalian kompleks adalah sebesar - . Untuk
penjumlahan kompleks DFT membutuhkan N(N-1), sedangkan pada FFT memerlukan
. Penghematan penjumlahan kompleks adalah N(N-1) - [11]. Contoh
pernghematan perhitungan dalam perkalian kompleks apabila nilai N = 64, maka -
= 4096 – 192 = 3094. Penghematan perhitungan DFT dibandingkan FFT
untuk penjumlahan kompleksnya adalah 64(64-1) - = 4032 – 384 = 364
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Gambar 2.12 Algoritma kupu-kupu FFT DIT dua dimensi untuk DFT 8 Titik [20]
Gambar 2.13 Gambar ilustrasi algoritma Sande-Turkey FFT untuk N = = 8 [20]
Keterangan : a, b, c, d, e, f, g, h adalah keluaran dari tahap pertama
: i, j, k, l, m, n, o, p adalah keluaran dari tahap ke-2
:X(0), X(1), X(2), X(3), X(4), X(5), X(6), X(7) adalah keluaran dari tahap
ke-3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
Setelah melakukan transformasi FFT, suara asli yang diperoleh dari hasil
perekaman akan diubah ke dalam bentuk pola suara yang merupakan hasil ekstraksi ciri
suara. Data suara yang telah diubah mempunyai bentuk 1 dimensi, keluaran hasil ekstraksi
ciri mempunyai dimensi yang sama dengan masukkan suara asli yaitu 1 dimensi. Jika
masukkan adalah f(x) maka keluarannya adalah F(y).
Definisi FFT untuk 1 dimensi dengan masukkan f(x) dengan ukuran dimensi
sebesar N (sehingga x = 0, 1, 2,…,N-1) maka:
( ) ∑ ( )
(2.7)
2.9. Template Matching
Pendekatan pengenalan pola adalah salah satu yang paling sederhana dan paling
awal dengan didasarkan pada template matching. Matching adalah operasi generik dalam
pengenalan pola yang digunakan untuk menentukan kesamaan antara dua entitas dari jenis
yang sama. Dalam template matching, contoh atau bentuk asli dari pola yang menjadi
pengenalan sudah tersedia. Pola yang menjadi pengenalan dicocokan terhadap template
yang telah tersimpan. Kesamaan ukuran dapat di optimalkan berdasarkan template
tersedia[21].
2.9.1. Fungsi Jarak Simetrik Probabilitas 2
Fungsi Jarak Simetrik Probabilitas 2
adalah menghitung besarnya perubahan dari
dua variabel[22]. Fungsi jarak ini membagi dua variabel satu dengan variabel lainnya yang
saling berhubungan. Fungsi Simetrik Probabilitas 2
dirumuskan sebagai berikut
(2.8)
Dengan : = jarak Simetrik Probabilitas 2
n = panjang vektor
Pi,Qi = vektor yang akan dibandingkan
2.10. Klasifikasi k-NN
Algoritma yang disebut aturan tetangga terdekat atau biasa dikenal k nearest
neighbour (k-NN) adalah diringkas secara berikut[23]. Misal ada vector x yang tidak
diketahui, maka:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
a. Dari vektor pelatihan N, identifikasi k tetangga terdekat, dengan mengabaikan
label kelas. Untuk masalah dua kelas dipilih nilai k yang ganjil. Secara umum nilai
k ini bukan kelipatan dari jumlah kelas M.
b. Dari sampel k tersebut, identifikasi jumlah vektor, ki, yang masuk dalam kelas
i,i=1, 2, …., M. Hal ini dapat juga dinyatakan dengan i ki = k.
c. Tetapkan x untuk kelas i berdasarkan jumlah ki terbanyak dari sampel.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Mikrofon
Proses Perekaman
Proses Pengenalan
Nada Notebook
Saksofon Alto
BAB III
PERANCANGAN
3.1. Sistem Pengenalan Nada Saksofon Alto
Diagram blok sistem pengenalan nada saksofon alto secara keseluruhan
diperlihatkan pada Gambar 3.1.
Gambar 3.1. Diagram Blok Sistem Pengenalan Nada Saksfon Alto
Sistem pengenalan nada saksofon alto terdiri dari perangkat keras dan perangkat
lunak. Perangkat keras terdiri dari saksofon alto, mikrofon, dan notebook. Sedangkan
perangkat lunak terdiri dari program pada notebook yang berfungsi sebagai interface dalam
proses pengenalan nada. Perangkat lunak yang dibuat dengan menggunakan Matlab
tersebut memiliki peran penting dalam proses pengaturan sistem pengenalan nada saksofon
alto seperti merekam nada saksofon alto dan mengenali suara nada yang terekam.
Perekaman suara nada dilakukan oleh notebook melalui mikrofon pada line in notebook.
Sound Card
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
a. Saksofon
Saksofon yang digunakan adalah saksofon jenis alto. Saksofon alto berfungsi untuk
menghasilkan nada D, E, Fis, G, A, B, Cis, D’ yang akan dikenali oleh perangkat lunak.
Nada yang dihasilkan akan direkam menggunakan mikrofon yang terdapat pada line in
notebook.
b. Mikrofon
Mikrofon berfungsi untuk menangkap sinyal analog dan kemudian menyalurkannya ke
sound card pada notebook melewati line in yang ada pada sound card. Mikrofon yang
digunakan adalah GoMic Portable USB Microphone by SAMSON seperti yang
ditunjukkan pada Gambar 3.2. GoMic Portable USB Microphone sangat mudah digunakan
dan dibawa karena bentuknya yang sangat ringan.
Gambar 3.2. GoMic Portable USB Microphone by SAMSON
Tabel 3.1 Spesifikasi GoMic Portable USB Microphone by SAMSON
Pollar pattern Cardiod and Omni
Frequency Response:
Cardiod
Omni
80 Hz – 18 KHz
20Hz – 20 KHz
Element type Fixed Charge electret
Element Diameter 10mm
Diapragm thicknes
Cardiod and Omni 4 Microns and 2 Microns
Sensitivity -47 +/- 2dB/Pa
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
Tabel 3.1 (Lanjutan) Spesifikasi GoMic Portable USB Microphone by SAMSON
SPL 023 lbs (.105)
Weight 2.8” x 1.7 x 23” x 0.9”
Dimensions 70.5mm x 43.5mm x 23mm
c. Sound card
Sound card berfungsi mengubah sinyal analog dari mikrofon menjadi sinyal digital.
Sound card yang digunakan adalah sound card yang sudah terpasang pada motherboard.
Dalam konversi sinyal analog menjadi sinyal digital dan kemudian disimpan diperlukan
pengaturan yang meliputi pengaturan frekuensi sampling dan channel. Pengaturan tersebut
dilakukan pada proses perekaman oleh program yang akan dibuat.
d. Proses perekaman
Proses perekaman merupakan proses masuknya nada terekam melalui mikrofon pada
line in notebook berupa sinyal digital. Proses perekaman berfungsi untuk merubah data
sinyal analog menjadi data sinyal digital. Sinyal digital kemudian disimpan dan
digambarkan dalam sebuah plot. Data nada yang telah disimpan disebut nada terekam dan
kemudian dapat diproses untuk dikenali lewat proses pengenalan nada.
e. Proses pengenalan nada
Proses pengenalan nada adalah proses mengenali nada yang terekam agar dapat
diketahui jenis nada apa yang direkam. Proses ini terdiri dari subproses normalisasi,
pemotongan sinyal, frame blocking, normalisasi 2, windowing, ekstraksi ciri FFT,
perhitungan jarak Simetrik Probabilistik 2
(Database), K-NN sebagai penentuan hasil
nada. Diagram blok proses pengenalan nada dapat dilihat pada Gambar 3.3.
Gambar 3.3. Proses Pengenalan Nada Saksofon Alto
Masukan
(Suara saksofon
alto.wav)
Pemotongan
Sinyal
Frame
Blocking
Windowing
Perhitungan Jarak Simetrik
Probabilitas 2
Penentuan
Hasil
Pengenalan
Nada (K-NN)
Keluaran
(Tampilan
dalam
bentuk teks)
Normalisasi
Ekstraksi Ciri
FFT
Data Base
Normalisasi 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Setiap subproses dalam proses pengenalan nada memiliki fungsi masing-masing, yaitu :
1. Nada Saksofon Alto
Hasil dari sampling nada saksofon alto yang direkam dengan menggunakan mikrofon
akan diproses ke tahap selanjutnya seperti yang ditunjukkan pada Gambar 3.4.
2. Pemotongan Sinyal
Fungsi proses pemotongan sinyal adalah untuk menghilangkan efek noise atau suara
lain yang ikut terekam saat proses perekaman.
3. Frame blocking
Proses ini berfungsi untuk memilih data dari data nada terekam, sehingga data yang
dipilih dapat mewakili semua data pada nada terekam.
4. Normalisasi
Data yang telah melalui proses frame blocking selanjutnya dinormalisasi. Pada tahap
ini semua nada saksofon alto yang sudah terekam akan dinormalisasikan. Tujuan dari
normalisasi ini agar amplitudo pada saat nada dimainkan bisa maksimal.
5. Windowing
Data yang telah dinormalisasikan mengalami proses windowing. Dari jenis windowing
yang ada, dalam penelitian ini menggunakan Hamming Window.
6. Fast Fourier Transform
Proses Fast Fourier Transform merupakan proses ekstraksi ciri suatu data suara
maupun gambar. Evaluasi FFT yang digunakan berdasarkan frame blocking yang
digunakan. Setelah menentukan besar frame blockingnya, kemudian frame blocking
tersebut dievaluasi basis data koefisiennya.
7. Perhitungan Jarak Simetrik Probabilitas 2
Perhitungan Jarak Simetrik Probabilitas 2
merupakan proses dari sistem yang
berfungsi untuk mengenali nada saksofon alto dengan cara menghitung nilai
similiaritas terbesar antara database nada dengan nada uji.
8. Penentuan hasil pengenalan nada
Proses penentuan adalah subproses terakhir dari proses pengenalan nada. Penentuan
hasil pengenalan nada ditentukan berdasarkan hasil perhitungan kelas yang paling
banyak muncul dengan metode K-NN.
9. Hasil pengenalan nada (Result)
Hasil akhir dari proses pengenalan nada adalah nada yang dikenali. Hasil akhir akan
ditampilkan dalam bentuk visual GUI Matlab yang telah dirancang oleh penulis.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
Keluaran
(Hasil Ekstraksi Ciri Nada)
3.2. Perancangan Database Nada
Untuk merancang suatu pengenalan nada maka dibutuhkan nada acuan atau sering
disebut dengan database nada. Database nada terdiri dari delapan nada yaitu nada D, E,
Fis, G, A, B, Cis, D’. Pengambilan database nada dilakukan melalui beberapa tahap yaitu
perekaman, preprocessing yang terdiri dari proses sampling, normalisasi, pemotongan
sinyal, frame blocking, normalisasi 2, windowing dan ektraksi ciri FFT. Proses
pengambilan database nada ditunjukkan pada Gambar 3.4.
Gambar 3.4. Proses Pengambilan database Nada
Proses pengambilan nada disesuaikan dengan variabel bebas pada pembuatan
sistem pengenalan nada alat musik saksofon alto, tetapi dengan durasi dan frekuensi
sampling yang sudah ditetapkan. Database nada direkam dan di sampling sebanyak, satu
kali, dua kali, empat kali,delapan kali untuk setiap nadanya. Dari database nada tersebut
akan digunakan sebagai perbandingan untuk mengetahui hasil nada dan akan dievaluasi
dari setiap jumlah database tersebut. Hal ini dimaksudkan apakah dengan satu , dua,
empat dan delapan database disetiap nadanya sudah mencukupi untuk mengenali nada dari
sakfon alto.
Dari hasil FFT yang telah dinormalisasi akan diambil sesuai windowing koefisien.
Dimana maksud dari diambilnya sesuai dengan windowing koefisien adalah mengambil
setengah dari hasil FFT yang telah dinormalisasi. Dari hasil tersebut akan diambil lagi
sesuai dengan windowing koefisien yang di pilih oleh user. Kemudian dari hasil tersebut
digunakan sebagai nada sampel agar sistem pengenalan nada alat musik saksofon alto tidak
melakukan perhitungan kembali dalam mendapatkan database nada dan proses pada
sistem pengenalan nada saksofon alto dapat berjalan lebih cepat. Database nada yang
didapat kemudian disimpan dalam fungsi yang ada dalam sistem pengenalan nada alat
musik saksofon alto.
Masukan
(Suara saksofon alto)
Perekaman
(keluaran.wav) Preprocessing Ekstraksi ciri
FFT
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
3.3. Nada Uji
Nada uji merupakan nada yang terekam selain suara database nada. Suara uji yakni
terdiri dari sepuluh nada yang terekam dari masing-masing nada dimana nada tersebut
sebagai nada uji.Suara uji merupakan suara yang digunakan untuk mencari hasil terbaik
dari variasi nilai frame blocking dan Windowing koefisien. Secara garis besar fungsi dari
suara uji ialah untuk menjalankan program pengenalan suara nada saksofon alto secara
offline atau belum real-time. Sehingga hasil penentuan nilai frame blocking dan
Windowing koefisien dari pengenalan nada uji dapat menghasilkan tingkat pengenalan
nada saksofon alto yang tertinggi. Proses pengambilan nada saksofon alto uji sama dengan
proses pengambilan nada saksofon alto terdapat pada gambar 3.4.
3.4. Perancangan Tampilan Program GUI MATLAB
Tampilan utama untuk program pengenalan nada saksofon alto dibuat dengan
menggunakan GUI Matlab yang di tujukan pada gambar 3.5.
Gambar 3.5. Tampilan Utama Sistem Pengenalan Nada Saksofon Alto
Tampilan utama program dibuat agar user dapat menggunakan sistem ini dengan
mudah dan dapat mengerti hasil dari pengenalan nada alat musik saksofon alto. Keterangan
tampilan utama sistem pengenalan nada saksofon alto ditunjukkan pada Tabel 3.2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
Tabel 3.2. Keterangan Tampilan Utama Sistem
Nama Keterangan
Tombol RECORD Berfungsi untuk menjalankan program
Variasi Nilai Frame
Blocking
Untuk memilih frame yang digunakan pada
proses pengenalan nada, pilihan berupa 128,
64, 32, dan 16.
Variasi Nilai k pada k-NN Untuk variasi nilai k=1, 3, 5 dan 7 pada k-NN
Variasi Nilai Windowing
Koefisien
Untuk variasi windowing koefisien
menggunakan 10%, 20%, 30%, 40%, 50%,
60%, 70%, 80%, 90% dan 100%
Plot Hasil Perekaman Berfungsi untuk menampilkan grafik hasil
dari perekaman nada
Berfungsi untuk menampilkan grafik data
hasil ekstaksi ciri FFT.
Hasil Nada Berfungsi untuk menampilkan hasil yang
telah diproses oleh program dengan hasil dari
K-NN.
RESET Berfungsi untuk mengembalikan ke tampilan
awal program
CLOSE Berfungsi untuk mengakhiri program
3.5. Perancangan Alur Program
Sistem pengenalan nada Saksofon alto ini akan bekerja pada saat user menjalankan
program. Sebelum menjalankan program, user harus memilih variasi windowing koefisien,
FFT dan nilai k pada k-NN yang ingin digunakan. Saat user menekan tombol “RECORD”,
secara otomatis sistem akan merekam suara nada alat musik saksofon alto yang
dimainkan. Jika suara nada telah terekam, maka proses akan berlanjut untuk mengenali
nada tersebut.
Program keseluruhan yang digunakan dalam sistem pengenalan nada saksofon alto
terdiri dari beberapa subprogram yaitu rekam, normalisasi, pemotongan sinyal, frame
blocking, normalisasi 2, windowing, FFT, perhitungan jarak Simetrik Probabilitas 2 dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
penentuan hasil nada dengan menggunakan k-NN. Diagram Alir perancangan keseluruhan
ditujukan pada gambar 3.6.
Gambar 3.6. Diagram Alir Sistem Pengenalan Nada saksofon Alto
3.5.1. Rekam
Diagram alir rekam ditujukan pada gambar 3.7.
Gambar 3.7. Diagram Alir Sub Rutin Rekam
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Subprogram rekam memiliki proses yang dijalankan yaitu proses sampling suara.
Proses sampling berfungsi untuk merekam nada saksofon alto dengan nilai frekuensi
sampling yang telah ditentukan dalam sistem. Frekuensi sampling yang digunakan adalah
4800 Hz. (lampiran 1). Hasil dari proses perekaman nada akan ditampilkan dalam bentuk
plot atau grafik yang terdapat pada interface GUI Matlab. Nilai frekuensi sampling
tersebut didapat melalui proses perhitungan menggunakan persamaan 2.1 berikut :
Lama waktu penangkapan ucapan ditentukan sebesar 3 detik. Waktu tersebut
ditentukan agar nada yang dihasilkan dapat terekam secara utuh. Penetuan lama waktu
berdasarkan hasil percobaan yang disertakan dalam lampiran (Lampiran 2). Nilai waktu
tersebut juga mempengaruhi banyaknya data yang tercuplik. Banyaknya data yang
tercuplik dihitung dari persamaan berikut :
(3.1)
Hasil dari frekuensi sampling berupa sinyal dari data-data yang tercuplik.
3.5.2. Normalisasi
Diagram alir normalisasi ditujukan pada gambar 3.8.
Gambar 3.8. Diagram alir Normalisasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Proses ini digunakan agar besarnya nilai amplitudo dari data sinyal ucapan
terbentuk pada skala yang sama. Tujuannya agar pengaruh dari kuat atau lemahnya suara
yang diucapkan dapat diminimalkan. Hasil dari normalisasi dirancang agar batasan nilai
amplitudo puncak dari data ucapan bernilai 1 atau -1 dan nilai amplitudo yang lainnya
menyesuikan dengan skala tersebut. Proses normalisasi pada nilai-nilai amplitudo dibentuk
dengan rumus berikut:
)) (3.2)
dengan keterangan sebagai berikut :
= hasil data sinyal normalisasi (1,2,3,…,N)
= data input (1,2,3,…,N)
N merupakan banyaknya data sinyal.
Program normalisasi akan dieksekusi ketika fungsi ini dipanggil. Diagram alir dari
program normalisasi ditunjukkan pada gambar 3.8. Data-data pada sinyal hasil sampling
akan dijadikan nilai masukan pada fungsi ini. Normalisasi terhadap sinyal tersebut
dilakukan menggunakan persamaan 3.2. Keluaran dari fungsi ini berupa sinyal yang
ternormalisasi.
3.5.3. Pemotongan Sinyal
Proses pemotongan sinyal bertujuan untuk menghilangkan suara lain yang ikut
terekam sebelum suara yang diinginkan terekam. Hal ini diperlukan agar proses
pengenalan mampu benar-benar hanya mengenali suara nada yang diperlukan saja.
Pemotongan sinyal menggunakan batas potong sebesar 0,3 yang didapat berdasarkan
referensi[24]. Variasi pemotongan ini didapat berdasarkan penelitian yang dilakukan oleh
penulis ketika mencoba perancangan sistem secara tidak real-time dengan tujuan agar
mendapat nilai terbaik ketika pengujian.
Pemotongan sinyal juga bertujuan untuk masukan variabel perhitungan dalam
proses selanjutnya, sehingga nilai yang diproses untuk tahap selanjutnya adalah suara nada
yang diperlukan saja tanpa adanya suara gangguan yang lain. Diagram alir pemotongan
sinyal ditujukan pada gambar 3.9.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
Gambar 3.9. Diagram alir Pemotongan Sinyal
3.5.4. Frame Blocking
Diagram alir Frame Blocking ditujukan pada gambar 3.10.
Gambar 3.10. Diagram Alir Frame Blocking
Selesai proses pemotongan sinyal maka proses yang selanjutnya dilakukan adalah
proses frame blocking. Frame blocking bertujuan untuk mengurangi jumlah data sinyal
yang akan di proses.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
Frame blocking berfungsi untuk memilih data dari keseluruhan data yang terekam
dan hasil dari pemotongan sinyal. Proses pertama yang dilakukan dalam proses frame
blocking adalah menentukan nilai titik tengah dari data sampling. Jumlah data yang
diambil dalam proses ini sesuai dengan variasi yang dipilih user. Dari titik tengah data
yang diperoleh, ditentukan besarnya data yang akan diambil untuk proses selanjutnya.
Proses frame blocking ditunjukkan diagram alir pada gambar 3.10. Proses frame blocking
dimulai dengan pencarian titik tengah dari suatu data yang terekam. Proses selanjutnya
yaitu menentukan data yang diambil dari titik tengah data tersebut sesuai dengan nilai
variasi frame blocking yang dipilih user. Nilai variasi frame blocking yang digunakan yaitu
16, 32, 64 dan 128.
3.5.5. Normalisasi 2
Diagram alir normalisasi 2 ditujukan pada gambar 3.11.
Gambar 3.11. Diagram alir Normalisasi 2
Proses ini digunakan agar besarnya nilai amplitudo dari data sinyal nada yang
sudah di frame blocking terbentuk pada skala yang sama. Tujuannya agar pengaruh dari
kuat atau lemahnya suara nada dapat diminimalkan. Hasil dari normalisasi dirancang agar
batasan nilai amplitudo puncak dari data nada tersebut bernilai 1 atau -1 dan nilai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
amplitudo yang lainnya menyesuikan dengan skala tersebut. Proses normalisasi pada nilai-
nilai amplitudo dibentuk dengan rumus berikut:
)) (3.3)
dengan keterangan sebagai berikut :
= hasil data sinyal normalisasi (1,2,3,…,N)
= data input (1,2,3,…,N)
N merupakan banyaknya data sinyal.
3.5.6. Windowing Hamming
Diagram alir Windowing ditujukan pada gambar 3.12.
Gambar 3.12. Diagram alir Windowing
Tahap setelah normalisasi yaitu tahap windowing. Untuk pengelanan nada saksofon
alto ini menggunakan windowing Hamming sebagai proses selanjutnya. Fungsi dari pada
proses windowing ini untuk mengurangi efek diskontinuitas saat sinyal ditransformasikan
ke domain frekuensi.
Untuk mendapatkan hasil yang maksimal pada proses FFT, maka sample suara
yang telah dibagi menjadi beberapa frame perlu di jadikan suara continue dengan cara
mengkalikan tiap frame windowing tertentu.. Berikut ini merupakan persamaan dari
windowing Hamming :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
) (
) (3.4)
Dimana : w(n) = windowing
N = jumlah data dari sinyal
n = waktu diskrit ke-
Sinyal hasil windowing didapat dari perkalian elemen dari data windowing
Hamming dan data sinyal hasil normalisasi.
3.5.7. Fast Fourier Transform (FFT)
Diagram alir Windowing ditujukan pada gambar 3.13.
Gambar 3.13. Diagram alir Ekstraksi ciri FFT
Proses selanjutnya adalah ekstraksi ciri FFT. Proses ekstraksi ciri FFT dimulai
dengan mencari nilai komputasi FFT yang dilanjutkan dengan mencari nilai absolute dari
hasil komputasi FFT tersebut. Proses dilanjutkan dengan mencari nilai absolute dari nilai
log hasil perhitungan matematis FFT. Hasil-hasil komputasi tersebut kemudian dipotong
sebanyak setengah dari ukuran sinyal yang telah ditentukan, kemudian dari hasil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
pemotongan tersebut dipilih bagian yang akan diproses. Proses terakhir dalam ekstraksi ciri
adalah pengubahan dimensi dari sinyal.
Masing-masing subproses dari ekstraksi ciri mempunyai tujuan khusus masing-
masing yang membentuk satu kesatuan. Pencarian nilai mutlak pada tiap perhitungan
ditujukan agar nilai yang didapat merupakan bilang real sehingga proses perhitungan dapat
dilanjutkan. Komputasi secara matriks adalah subproses untuk mengolah matriks hasil
ekstraksi ciri FFT. Pengolahan yang dimaksud adalah pemilihan banyak data yang akan
digunakan untuk proses pengenalan nada.
3.5.8. Perhitungan Jarak Simetrik Probabilitas 2
Diagram alir perhitungan jarak ditujukan pada gambar 3.14.
Gambar 3.14 Diagram Alir perhitungan jarak Simetrik Probabilitas 2
Proses selanjutnya yaitu proses fungsi jarak, pada pengenalan nada saksofon alto
ini menggunakan jarak Simetrik Probabilitas 2
. Untuk mencari kedekatan antara dua
obyek atau mencari kedekatan antara dua vector, dimana antara database nada dan nada
uji. Perhitungan jarak Simetrik Probabilitas 2
dirumuskan sebagai berikut :
(3.5)
Dengan : = jarak Simetrik Probabilitas 2
n = panjang vektor
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Pi,Qi = vektor yang akan dibandingkan antara nada uji dan database nada
3.5.9. Penentuan Hasil Nada
Diagram alir perhitungan jarak ditujukan pada gambar 3.15.
Gambar 3.15. Diagram alir k-NN
Pada proses penentuan keluaran ini data hasil perhitungan jarak di sort ascending
dengan tujuan mengurutkan hasil perhitungan jarak dari yang terkecil. Setelah data di sort
ascending, maka akan ada penggambilan nilai k terkecil, dimana nilai k dipilih oleh user.
Setelah nilai k dipilih maka akan ada pembanding. Dimana maksud disini adalah apabila
ada suara nada dari alat musik lain maka akan dibandingkan berdasarkan jarak (k) ≤
Thresholding. Apabila nilai jarak dari k yang dipilih kurang dari nilai thresholding, maka
akan dilanjutkan ke proses mencari indeks kelas dari jarak k terkecil, jika tidak, akan
muncul display error. Hasil pengenalan nada saksofon alto ditentukan berdasarkan kelas
Tidak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
yang paling banyak muncul dengan menggunakan metode k-Nearest Neighbor (k-NN).
Kemudian hasil dari nilai kelas yang paling banyak muncul tersebut akan ditampilkan
berupa keluaran teks. Dimana ketentuan k-NN adalah misal ada vector x yang tidak
diketahui, maka:
a. Dari vektor pelatihan N, identifikasi k tetangga terdekat, dengan mengabaikan
label kelas. Untuk masalah dua kelas dipilih nilai k yang ganjil. Secara umum nilai
k ini bukan kelipatan dari jumlah kelas M.
b. Dari sampel k tersebut, identifikasi jumlah vektor, ki, yang masuk dalam kelas
i,i=1, 2, …., M. Hal ini dapat juga dinyatakan dengan i ki = k.
c. Tetapkan x untuk kelas i berdasarkan jumlah ki terbanyak dari sampel.
3.6. Perancangan Subsistem Pengenalan Nada Saksofon Alto
Sistem pengenalan nada saksofon alto memiliki dua subsistem yang penting yaitu
subsistem sampling dan subsistem pengenalan nada. Perancangan subsistem tersebut
memerlukan variabel terikat. Pengujian awal untuk mencari variabel tersebut dilakukan
agar proses pengenalan dapat berhasil dengan waktu yang optimal. Pengujian ini
menggunakan Matlab, karena dalam program tersebut sudah memiliki fungsi-fungsi yang
menunjang subsistem dari sistem program pengenalan nada.
3.6.1. Subsistem Sampling
Subsistem sampling terdiri dari dua variabel terikat yaitu frekuensi sampling dan
durasi perekaman. Setelah melakukan pengujian awal, dapat disimpulkan:
a. Frekuensi sampling yang digunakan 4800Hz. Di ambil dari nilai dua kali dari
frekuensi fundamental (Lampiran 1).
b. Durasi perekaman menggunakan 3 detik (Lampiran 2).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
BAB IV
HASIL DAN PEMBAHASAN
Program yang telah dibuat perlu dilakukan sebuah pengujian. Pengujian berguna
untuk mengetahui kinerja program tersebut dalam melakukan pengenalan nada. Pada
pengujian akan diperoleh hasil pengujian berupa data-data. Data-data hasil pengujian
menunjukan program yang telah dirancang dapat berjalan dengan baik atau tidak. Pada bab
ini akan dilakukan analisa dan pembahasan pada data hasil pengujian yang telah diperoleh.
4.1. Pengujian Program Pengenalan Nada Saksofon Alto menggunakan
FFT dan Pengklasifikasian K-NN dan Fungsi Jarak Simetrik
Probabilitas 2
Perancangan program menggunakan software Matlab 7.6.0 (R2008a). Pada
pengujian program menggunakan laptop dengan spesifikasi:
Prosesor : Intel® Pentium Inside CPU @ 2.40 GHz
RAM : 2 GB
Tipe sistem : Sistem operasi 32 bit
Proses pengenalan nada saksofon alto dapat dilakukan dengan menjalankan langkah-
langkah di bawah ini:
1. Mengklik dua kali ikon Matlab pada layar desktop dengan gambar ikon seperti
Gambar 4.1.
Gambar 4.1. Ikon Matlab 7.6.0 (R2008a)
2. Setelah melakukan langkah 1, akan tampil tampilan utama software Matlab seperti
Gambar 4.2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
Gambar 4.2. Tampilan Matlab
3. Sebelum membuka tampilan program, perlu memastikan terlebih dahulu pada
Current Directory sudah sesuai dengan tempat penyimpanan program yang telah
dirancang.
4. Mengetikan perintah gui pada Command window untuk memunculkan tampilan
program pengenalan nada. Setelah itu akan muncul tampilan program pengenalan
nada seperti pada Gambar 4.3.
Gambar 4.3. Tampilan Program Pengenalan Nada Saksofon alto
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
5. User memilih nilai variasi frame blocking, windowing koefisien dan nilai k pada K-
NN yang akan digunakan terlebih dahulu sebelum melakukan pengenalan nada.
Nilai variasi frame blocking yang disediakan adalah 16, 32, 64 dan 128. Nilai
variasi windowing koefisisen yang disediakan adalah 10%, 20%, 30%, 40%, 50%,
60%, 70%, 80%, 90%, 100%. Nilai variasi K-NN yang disediakan adalah 1, 3, 5
dan 7.
6. Apabila langkah 5 sudah dilakukan, user dapat memulai pengenalan nada dengan
menekan tombol “RECORD”. Hasil pengenalan nada saksofon alto terlihat seperti
pada gambar 4.4.
Gambar 4.4 Tampilan Hasil Pengenalan
7. User dapat mengulang kembali pengenalan nada dengan menekan tombol “RESET”
dan mengulang kembali langkah 5 dan 6.
8. User dapat mengakhiri pengenalan nada dengan menekan tombol “CLOSE”.
4.1.1. Pengenalan Nada
Pengenalan nada dapat dilakukan dengan melakukan berbagai langkah-langkah
seperti yang telah dijelaskan di atas. Tampilan program pengenalan nada dapat dilihat pada
Gambar 4.3. Pada tampilan pengenalan nada terdapat 3 pop up menu, 2 axes, 3 push
button, dan 1 edit text. User dapat memulai pengenalan nada dengan melakukan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
pengaturan terlebih dahulu pada program pengenalan nada. Pengaturan yang perlu
dilakukan adalah dengan memilih nilai nilai variasi frame blocking, windowing koefisien
dan nilai k pada k-NN yang terdapat pada pop up menu. Setelah menentukan nilai variasi
yang akan digunakan, user dapat memulai pengenalan nada dengan menekan tombol tekan
”RECORD”. Hasil pengenalan yang ditampilkan adalah plot perekaman, plot FFT, dan
nada yang berhasil dikenali. User dapat mengulang pengenalan nada dengan menekan
tombol “RESET” dan mengakhiri pengenalan dengan menekan tombol “CLOSE” seperti
yang telah dijelaskan di atas.
a. Pop Up Menu
Pada tampilan program pengenalan nada terdapat 3 pop up menu yaitu variasi
frame blocking, windowing koefisien dan nilai K-NN. Nilai variasi frame blocking yang
ditampilkan pada pop up menu yaitu 16, 32, 64, 128. Nilai variasi windowing koefisien
yang ditampilkan pada pop up menu yaitu 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%,
90% dan 100%. Pada variasi frame blocking menampilkan menjalankan perintah program
yang telah dirancang sebagai berikut:
indeks=get(handles.popupmenu1,'Value');
switch indeks
case 1
framebl=128;
case 2
framebl=64;
case 3
framebl=32;
case 4
framebl=16;
end
handles.frame=framebl;
guidata(hObject,handles);
Pada program di atas, nilai frame blocking diinisialisai menggunakan nama frame
yang dibagi dalam 4 kondisi sesuai dengan banyaknya variasi. Inisialisasi frame tersebut
diproses menggunakan perintah handles. Perintah ini digunakan untuk data atau nilai frame
blocking yangtelah diinisialisasi sebagai masukan apabila dilakukan callback. Pada pop up
menu variasi windowing koefisien listing program sebagai berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
indeks=get(handles.popupmenu2,'Value');
switch indeks
case 1
koef=100;
case 2
koef=90;
case 3
koef=80;
case 4
koef=70;
case 5
koef=60;
case 6
koef=50;
case 7
koef=40;
case 8
koef=30;
case 9
koef=20;
case 10
koef=10;
end
handles.pct=koef;
guidata(hObject,handles);
Proses yang dilalui oleh pop up menu pada variasi windowing koefisien sama
dengan proses pada pop up menu variasi frame blocking. Nilai windowing koefisien
diinisialisasikan dengan nama pct. Pada pop up menu variasi nilai K-NN listing program
sebagai berikut :
indeks=get(handles.popupmenu3,'Value');
switch indeks
case 1
knn=7;
case 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
knn=5;
case 3
knn=3;
case 4
knn=1;
end
handles.varn=knn;
guidata(hObject,handles);
b. Tombol “RECORD”
Tombol “RECORD” adalah tombol yang berfungsi untuk melakukan pengenalan
nada saksofon alto. User dapat melakukan pengenalan nada saksofon alto dengan menekan
tombol tersebut. Tombol “RECORD” memulai pengenalan nada dengan menjalankan
beberapa subproses. Subproses yang dijalankan dimulai dari perekaman nada, ekstraksi ciri
FFT, penghitungan jarak Simetrik Probabilitas 2, dan penentuan hasil pengenalan nada
berdasarkan kelas yang dipilih oleh user pada nilai k-NN. Program yang digunakan untuk
perekaman nada sebagai berikut:
sample_length=3;
sample_freq=4800;
sample_time=(sample_length*sample_freq);
x=wavrecord(sample_time, sample_freq);
wavwrite(x, sample_freq, 's.wav');
axes(handles.axes1)
plot(x);
x=wavread('s.wav');
Perekaman nada pada Matlab menggunakan perintah wavrecord dan wavwrite
untuk menyimpan nada yang telah direkam. Nada yang telah terekam tersebut diplot pada
tampilan program pengenalan menggunakan perintah plot. Nada terekam diplot pada axes
yang telah tersedia di dalam tampilan program perekaman dan ekstraksi ciri FFT (Gambar
3.14).
%Ekstraksi ciri FFT
x5=abs(fft(x4));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
x6=x5(1:fb/2);
%Ambil sesuai persen koefisien
jumkoef=floor((pctkoef/100)*(fb/2));
x7=x6(1:jumkoef);
x7=x7(:)
axes(handles.axes2)
bar (x7);
Nada terekam dan yang telah disimpan dipanggil kembali menggunakan perintah
wavread. Dilakukan penginisialisasian nilai frame blocking, batas potong, dan windowing
koefisien untuk memudahkan menjalankan proses ekstraksi ciri. Proses ekstraksi ciri
memilki 3 masukan yaitu variabel b0, fb, dan pctkoef. bo adalah nilai batas potong. Fb dan
pctkoef merupakan nilai masukan yang telah dipilih oleh user. Hasil dari ekstrasi ciri
ditampilkan pada tampilan program seperti halnya hasil perekaman.
if (b0==0.3) && (fb==128) &&(pctkoef==100) load db1128100;
elseif (b0==0.3) && (fb==128) &&(pctkoef==90) load db112890;
elseif (b0==0.3) && (fb==128) &&(pctkoef==80) load db112880;
elseif (b0==0.3) && (fb==128) &&(pctkoef==70) load db112870;
elseif (b0==0.3) && (fb==128) &&(pctkoef==60) load db112860;
elseif (b0==0.3) && (fb==128) &&(pctkoef==50) load db112850;
elseif (b0==0.3) && (fb==128) &&(pctkoef==40) load db112840;
elseif (b0==0.3) && (fb==128) &&(pctkoef==30) load db112830;
elseif (b0==0.3) && (fb==128) &&(pctkoef==20) load db112820;
elseif (b0==0.3) && (fb==128) &&(pctkoef==10) load db112810;
elseif (b0==0.3) && (fb==64) &&(pctkoef==100) load db164100;
elseif (b0==0.3) && (fb==64) &&(pctkoef==90) load db16490;
elseif (b0==0.3) && (fb==64) &&(pctkoef==80) load db16480;
elseif (b0==0.3) && (fb==64) &&(pctkoef==70) load db16470;
elseif (b0==0.3) && (fb==64) &&(pctkoef==60) load db16460;
elseif (b0==0.3) && (fb==64) &&(pctkoef==50) load db16450;
elseif (b0==0.3) && (fb==64) &&(pctkoef==40) load db16440;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
elseif (b0==0.3) && (fb==64) &&(pctkoef==30) load db16430;
elseif (b0==0.3) && (fb==64) &&(pctkoef==20) load db16420;
elseif (b0==0.3) && (fb==64) &&(pctkoef==10) load db16410;
elseif (b0==0.3) && (fb==32) &&(pctkoef==100) load db132100;
elseif (b0==0.3) && (fb==32) &&(pctkoef==90) load db13290;
elseif (b0==0.3) && (fb==32) &&(pctkoef==80) load db13280;
elseif (b0==0.3) && (fb==32) &&(pctkoef==70) load db13270;
elseif (b0==0.3) && (fb==32) &&(pctkoef==60) load db13260;
elseif (b0==0.3) && (fb==32) &&(pctkoef==50) load db13250;
elseif (b0==0.3) && (fb==32) &&(pctkoef==40) load db13240;
elseif (b0==0.3) && (fb==32) &&(pctkoef==30) load db13230;
elseif (b0==0.3) && (fb==32) &&(pctkoef==20) load db13220;
elseif (b0==0.3) && (fb==32) &&(pctkoef==10) load db13210;
elseif (b0==0.3) && (fb==16) &&(pctkoef==100) load db116100;
elseif (b0==0.3) && (fb==16) &&(pctkoef==90) load db11690;
elseif (b0==0.3) && (fb==16) &&(pctkoef==80) load db11680;
elseif (b0==0.3) && (fb==16) &&(pctkoef==70) load db11670;
elseif (b0==0.3) && (fb==16) &&(pctkoef==60) load db11660;
elseif (b0==0.3) && (fb==16) &&(pctkoef==50) load db11650;
elseif (b0==0.3) && (fb==16) &&(pctkoef==40) load db11640;
elseif (b0==0.3) && (fb==16) &&(pctkoef==30) load db11630;
elseif (b0==0.3) && (fb==16) &&(pctkoef==20) load db11620;
elseif (b0==0.3) && (fb==16) &&(pctkoef==10) load db11610;
end
Ekstraksi database diperoleh dari proses dengan menggunakan program sebagai
berikut:
function coba1
b0 = 0.3;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
fb=128; %variasi frameblocking yang digunakan 16,32,64 dan 128
pctkoef=50; %variasi windowing koefisien yang digunakan 10%-100%
z1=zciri ('Do',b0,fb,pctkoef);
z2=zciri ('Re',b0,fb,pctkoef);
z3=zciri ('Mi',b0,fb,pctkoef);
z4=zciri ('Fa',b0,fb,pctkoef);
z5=zciri ('Sol',b0,fb,pctkoef);
z6=zciri ('La',b0,fb,pctkoef);
z7=zciri ('Si',b0,fb,pctkoef);
z8=zciri ('Do_',b0,fb,pctkoef);
z=[z1 z2 z3 z4 z5 z6 z7 z8];
save db112850 z
Program di atas untuk memanggil database yang akan dibandingankan dengan
nada yang telah terekam menggunakan perhitungan jarak. Database yang dipanggil sesuai
dengan pilihan variasi frame blocking dan windowing koefisien yang telah dipilih user.
Proses yang dilakukan selanjutnya adalah membandingkan database dengan nada terekam
menggunakan perhitungan jarak. Nilai perhitungan jarak tersebut dimasukkan ke dalam
metode penentuan keluaran yaitu k-Nearest Neighbor (k-NN), dimana k-Nearest Neighbor
(k-NN) akan mengurutkan dari kecil sampai besar nilai dari hasil perhitungan jarak.
Setelah mendapatkan nilai yang paling minimum dari pengurutan nilai hasil penghitungan
jarak akan diambil nilai minimum sebanyak k (nilai yang dipilih oleh user) pada k-Nearest
Neighbor (k-NN), sesuai dengan urutan sampel dari database. Nilai kelas yang paling
banyak muncul akan menjadi penentuan keluaran nada saksofon alto yang dikenal.
Perintah program perhitungan jarak (Gambar 3.15) sebagai berikut:
for k=1:8
z2(k)=jarak(x7,z(:,k));
end
Setelah didapatkan proses perhitungan jarak selanjutnya masuk dalam penentuan
pengeluan kelauran nada dalam tahap ini menggunakan metode k-NN. Kelas yang
digunakan k-Nearest Neighbor (k-NN) adalah bilangan ganjil seperti 1, 3, 5, dan 7. Kelas
k=1 sama dengan tidak menggunakan k-Nearest Neighbor (k-NN) karena nilai
minimumnya hanya mencari satu nilai sampel dari database dan juga kelasnya hanya ada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
satu. k=1 tidak bisa mencari nilai yang paling minimum dari nada lain, sedangkan kelas
k=3, 5, 7 menggunakan k-Nearest Neighbor (k-NN) karena mencari nilai minimum dari
sampel database disetiap variasi sesuai dengan nilai k nya. k-Nearest Neighbor (k-NN)
yang diambil sebagai keluaran adalah kelas yang paling banyak muncul. Perhitungan
pengurutan nilai minimum ini menggunakan jarak simetrik probabilisitik 2 yang
digunakan sebagai perhitungan nilai jarak minimum yang didapatkan dari perbandingan
nada masukan dengan database. Karena keterbatasan Matlab 7.6.0 perintah program
ditambah modus (mode) yang digunakan untuk mencari nilai yang paling sering muncul, di
dalam modus terdapat sampel sesuai dengan variasi dari database. Berikut perintah
program k-NN (Gambar 3.16):
% Cari n tertangga terdekat
k=vark % k pada knn
m=1; % jumlah sampel per kelas
[s1,s2]=sort(z2,'ascend'); % urut dari kecil terbesar
jarakc=sort(z2,'ascend')
kj=s1(1:k) % k (jarak
tekecil)atau(similaritas terbesar)
kn=s2(1:k) % k kelas terdekat
hk=ceil(kn/m) % penentuan kelas-kelas yang
terpilih
zout=mode(hk) % pilih kelas yang paling
sering muncul
idxkout=find(hk==zout);
jpilih=kj(idxkout);
fjpilih=fliplr(jpilih);
jmaks=fjpilih(1)
%Penentuan keluaran nada
nadaout=kel(zout)
set(handles.edit2,'String',nadaout);
if (zout == 1)&&(jmaks<55.0487)
korout = {'Do'};
elseif (zout == 1) && (jmaks>=55.0487)
korout = {'ERROR'};
end
if (zout == 2) && (jmaks<81.5725)
korout = {'Re'};
elseif (zout == 2) && (jmaks>=81.5725)
korout = {'ERROR'};
end
if (zout == 3) && (jmaks<42.4711)
korout = {'Mi'};
elseif (zout == 3) && (jmaks>=42.4711)
korout = {'ERROR'};
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
end
if (zout == 4) && (jmaks<54.8266)
korout = {'Fa'};
elseif (zout == 4) && (jmaks>=54.8266)
korout = {'ERROR'};
end
if (zout == 5) && (jmaks<57.4214)
korout = {'Sol'};
elseif (zout == 5) && (jmaks>=57.4214)
korout = {'ERROR'};
end
if (zout == 6) && (jmaks<105.5574)
korout = {'La'};
elseif (zout == 6) && (jmaks>=105.5574)
korout = {'ERROR'};
end
if (zout == 7) && (jmaks<36.6529)
korout = {'Si'};
elseif (zout == 7) && (jmaks>=36.6529)
korout = {'ERROR'};
end
if (zout == 8) && (jmaks<62.7467)
korout = {'Do_T'};
elseif (zout == 8) && (jmaks>=62.7467)
korout = {'ERROR'};
end
hasilout=korout
set(handles.edit2,'string',hasilout)
Perintah program di atas adalah untuk menjalankan hasil penentuan keluaran nada
apa yang dihasilkan dari penamaan keluaran teks dari 8 nada. Pada program tersebut
penentuan keluaran metode k-Nearest Neighbour dan menentukan bukan nada yang
dihasilkan menggunakan metode thresholding. Variasi k-NN menggunakan variabel
“vark”. Pada metode k-Nearest Neighbour bertujuan untuk mengambil kelas terdekat atau
tetangga terdekat dari perhitungan nilai jaraknya. Fungsi “ascend” pada program berfungsi
untuk mengurutkan nilai jarak dari yang terkecil sampai yang terbesar. Metode
Thresholding bertujuan untuk menentukan hasil keluaran yang tidak sesuai dengan nada
pada database dengan penamaan “ ERROR”. Nilai thresholding didapatkan dari nilai batas
optimal pada setiap nada (lampiran 6). Penentuan keluaran menggunakan fungsi logika “if
dan else” dimana meliahat beberapa syarat yaitu kelas dan nilai thresholding, jika salah
satu tidak terpenuhi maka program akan lanjut ke proses else. Hasil keluaran yang sesuai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
dengan persyaratan kelas dan nilai thresholding akan di tampilkan dengan format
“set(handles.edit2,’string’,hasilout)” dimana hasil keluaran akan ditampilan pada edit2
berupa text yakni delapan nada tersebut berdasarkan penamaan pada program hasil
pengeluaran. Variabel kel adalah inisialisasi 8 nada. Nilai kelas yang paling banyak
muncul akan dipanggil sebagai keluaran sesuai dengan nama yang telah diinisialisasi
sebagai berikut:
%deskripsi string keluaran
kel={'Do';'Re';'Mi';'Fa';'Sol';'La';'Si';'Do_T'};
c. Tombol “RESET”
Tombol “RESET” digunakan apabila user masih ingin melakukan pengenalan nada
untuk nada lainnya. Tombol “RESET” berfungsi mengembalikan atau mengulang tampilan
program ke tampilan awal. Program yang digunakan untuk tombol RESET adalah sebagai
berikut:
axes(handles.axes5);
plot(0);
axes(handles.axes6);
plot(0);
set(handles.edit3,'String',' ');
Program di atas berfungsi untuk mengembalikan atau mengosongkan axes plot dan
kolom edit yang menampilkan hasil pengenalan nada.
d. Tombol “CLOSE”
Tombol “CLOSE” berfungsi untuk mengakhiri proses pengenalan nada. Program
untuk tombol CLOSE yaitu:
delete(figure(gui));
4.2. Hasil Pengujian Program Pengenalan Nada Terhadap Tingkat
Pengenalan Nada Saksofon Alto
Pengujian program pengenalan nada saksofon alto terdiri dari tiga tahap pengujian.
Tiga tahap pengujian yang dilakukan antara lain pengujian untuk menentukan batasan nilai
jarak optimal, pengujian parameter pengaturan pengenalan nada meliputi pengujian secara
tidak real-time dan pengujian secara real-time dan pengujian program menggunakan suara
masukan dari alat musik lain.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
4.2.1. Pengujian Parameter Pengenalan Nada
Pada pengujian ini bertujuan untuk menguji seberapa besar tingkat pengenalan nada
dari setiap parameter. Parameter ini antara lain frame blocking, windowing koefisien. Dan
nilai k pada K-NN. Pengujian program pengenalna alat musik saksofon alto ini
mengguanakan 2 cara, yaitu pengujian secara tidak real-time, dan pengujian secara real-
time. Untuk pengujian secara real-time dibagi menjadi 2 cara, real-time tanpa
Thresholding, dan real-time menggunakan Thresholding.
4.2.1.1. Pengujian Secara Tidak Real-Time
Nada uji digunakan sebagai nada masukan untuk pengujian tidak real time. Proses
pengambilan nada uji sama dengan proses pengambilan database nada. Pengujian tidak
real time menggunakan nada uji sebanyak 8, 16, 32 dan 64 data (setiap nada memiliki 1, 2,
4 dan 8 database). Hasil pengujian tidak real time adalah data tingkat pengenalan nada dari
pengujian yang telah dilakukan. Persentase tingkat pengenalan sistem dapat dicari dengan
menggunakan program (lampiran 4).
Data tingkat pengenalan untuk database 1, 2, 4 dan 8 disetiap nadanya (lampiran
5) tersebut dipresentasikan dengan persentase yang menunjukan tingkat pengenalan nada
berdasarkan variasi nilai frame blocking, windowing koefisien dan nilai k pada k-NN
seperti yang ditunjukkan pada tabel 4.1, 4.2, 4.3, dan 4.4.
Tabel 4.1. Menggunakan nilai frame blocking 128 dengan 1 database untuk setiap nada
nilai k
Windowing Koefisien
100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5%
5 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 37,5% 25%
3 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 25% 37,5% 62,5% 25%
1 100% 100% 100% 100% 100% 100% 100% 100% 75% 12,5%
Tabel 4.2. Menggunakan nilai frame blocking 64 dengan database 1 untuk setiap nada
nilai k
Windowing Koefisien
100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5%
5 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 25% 0%
3 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 25% 25% 0%
1 100% 100% 100% 100% 100% 100% 87,5% 87,5% 50% 0%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
Tabel 4.3. Menggunakan nilai frame blocking 32 dengan 1 database untuk setiap nada
nilai k
Windowing Koefisien
100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5%
5 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 25% 25% 12,5%
3 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 25% 12,5% 25% 0%
1 100% 100% 87,5% 87,5% 75% 75% 62,5% 62,5% 37,5% 12,5%
Tabel 4.4. Menggunakan nilai frame blocking 16 dengan 1 database disetiap nadanya
nilai k
Windowing Koefisien
100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 0% 12,5% 12,5% 12,5%
5 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 25% 12,5% 12,5%
3 12,5% 12,5% 12,5% 12,5% 12,5% 12,5% 37,5% 25% 37,5% 12,5%
1 50% 50% 62,5% 50% 37,5% 37,5% 37,5% 37,5% 37,5% 0%
Gambar 4.5. Gambar Pengaruh Perubahan Windowing koefisien terhadap persentase
keberhasilan pada frame blocking 128
Gambar 4.6. Gambar Pengaruh Perubahan Windowing koefisien terhadap persentase
keberhasilan pada frame blocking 64
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
Gambar 4.7. Gambar Pengaruh Perubahan Windowing koefisien terhadap persentase
keberhasilan pada frame blocking 32
Gambar 4.8. Gambar Pengaruh Perubahan Windowing koefisien terhadap persentase
keberhasilan pada frame blocking 16
Hasil pengenalan di atas berdasarkan dari tabel dan (lampiran 5) merupakan hasil
pengenalan nada dari program yang menggunakan database 1, 2, 4 dan 8. Dari hasil
pengenalan nada tersebut di evaluasi apakah dengan menggunakan database nada 1, 2, 4
dan 8 sudah mampu mengenali nada saksofon alto. Setelah dievaluasi diperoleh
pengenalan terbaik yang akan digunakan sebagai pengenalan nada secara real time.
Berdasarkan tabel 4.1, 4.2, 4.3, 4.4 dan (lampiran 5) menunjukkan kenaikan dan
penurunan kinerja sistem dari hasil pengenalan nada dikarenakan oleh pengaruh variasi
nilai frame blocking, windowing koefisien dan nilai k pada K-NN.
Kelas yang digunakan k-Nearest Neighbour (k-NN) adalah bilangan ganjil seperti 1,
3, 5, dan 7. Berdasarkan data dari tingkat persentase keberhasilan mengenali nada saksofon
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
alto, dengan menggunakan database satu disetiap nadanya sudah mampu untuk mengenali
nada-nada pada saksofon alto. Sehingga pada peneltian ini k-NN tidak diperlukan pada
proses pengenalan nada saksofon alto, dikarenakan untuk kelas k=1 sama dengan tidak
menggunakan k-Nearest Neighbor (k-NN) karena nilai minimumnya hanya mencari satu
nilai sampel dari database dan juga kelasnya hanya ada satu. k=1 tidak bisa mencari nilai
yang paling minimum dari nada lain, sedangkan kelas k=3, 5, 7 menggunakan k-Nearest
Neighbor (k-NN) karena mencari nilai minimum dari sampel database disetiap variasi
nada sesuai dengan nilai k. Syarat dari k-Nearest Neighbor (k-NN) yang diambil sebagai
keluaran adalah kelas yang paling banyak muncul.
4.2.1.2. Pengujian Real Time
Pada pengujian secara real-time dibagi menjadi 2, pengujian tanpa Thresholding,
dan pengujian untuk mencari nilai batas optimal sebelum ke pengujian menggunakan
Thresholding
a) Pengujian tanpa Thresholding
Pengujian tanpa menggunakan Thresholding ini bertujuan untuk mengetahui
kinerja program pengenalan nada saksofon alto yang telah dibuat. Dengan kesalahan yang
terjadi adalah pengenalan nada dengan keluaran pengenalan secara salah.
Pada program pengenalan nada saksofon alto ini user memilih variasi frame
blocking, Windowing koefisien dan nilai k pada k-NN dan memilih Ya atau Tidak pada
bagian pilihan Threshodling. Setelah user selesai memilih variasi- variasi yang ada maka,
user dapat menjalankan program pengenalan nada saksofon alto.
Pengujian real time dilakukan dengan menggunakan masukan nada saksofon alto
secara langsung. Jumlah data yang diambil untuk pengujian ini adalah sebanyak sepuluh
kali untuk setiap nada saksofon alto. Parameter yang digunakan dalam pengujian real time
adalah parameter terbaik yang telah didapat pada pengujian tidak real time sebelumnya
atau pengujian secara offline. Parameter yang didapat secara tidak realtime yakni dengan
variasi frame blocking, windowing koefisien dan nilai k pada k-NN yang terbaik adalah
frame blocking 128, windowing koefisien 40%, 50%, 60%, 70%, 80%, 90%, 100% dan
nilai k=1 pada k-NN dengan menggunakan database 1.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
Berdasarkan percobaan yang telah dilakukan, sistem pengenalan nada dapat
mengenali nada saksofon alto dengan baik. Hasil pengujian real time sesuai dengan hasil
pengujian tidak real time yaitu mendapatkan nilai variasi parameter terbaik. Pada sistem
pengenalan nada saksofon alto tersebut menggunakan variasi terbaik yakni frame blocking
128, windowing koefisien 50% dan nilai k=1 pada k-NN dengan menggunakan database
1.Tabel 4.17 memperlihatkan hasil pengujian secara real time yang dilakukan sebanyak 10
kali pengujian seperti pada tabel berikut :
Tabel 4.5. Hasil Pengujian secara real time tanpa Thresholding dengan variasi frame
blocking 128, windowing koefisien 50% dan k=1 pada k-NN dengan confusion matriks
Input
Output Persentase
Keberhasilan Do Re Mi Fa Sol La Si Do
Tinggi
Do 10 0 0 0 0 0 0 0 100%
Re 0 10 0 0 0 0 0 0 100%
Mi 0 0 10 0 0 0 0 0 100%
Fa 0 0 0 10 0 0 0 0 100%
Sol 0 0 0 0 10 0 0 0 100%
La 0 0 0 0 0 10 0 0 100%
Si 0 0 0 0 0 0 10 0 100%
DoTinggi 0 0 0 0 0 0 0 10 100%
Rata-rata tingkat persentase keberhasilan pengenalan nada 100%
Pada tabel 4.5. dapat dilihat dari 10 kali percobaan tidak terdapat nada yang
dikenali secara salah. Dengan demikian pengujian secara real-time tanpa menggunakan
Thresholding sama dengan percobaan saat pengujian secara tidak real-time.
b) Pengujian untuk Menentukan Batasan Nilai Jarak yang Optimal
Pada pengujian ini dilakukan untuk menentukan batasan nilai jarak yang optimal
sebelum ke pengujian real-time menggunakan thresholding. Parameter yang digunakan
untuk menentukan batas nilai ini menggunakan variasi frame blocking 128, windowing
koefisien 50%, dan nilai k=1 pada k-NN. Pengujian ini menggunakan 15 kali percobaan
setiap nadanya dan dari 15 percobaaan setiap nada tersebut akan mendapatkan nilai
optimal (lampiran 6). Pada tabel 4.6 menunjukan nilai optimal yang di dapat untuk setiap
nada. Jarak optimal pada tabel tersebut yang digunakan sebagai batas atas penengenalan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
setiap nada. jika melebihi batas atas tersebut maka sistem tidak akan mengenali nada- nada
yang lain selain nada yang di inginkan, dan akan terdeteksi “ERROR”.
Tabel 4.6. Jarak Optimal Tiap Nada dengan variasi frame blocking 128, windowing
koefisien 50% dan k=1 pada k-NN.
Nada Jarak Optimal
Do 55,0587
Re 81,5725
Mi 42,4711
Fa 54,8266
Sol 57,4214
La 105,5574
Si 36,6529
Do Tinggi 62,7467
c) Pengujian menggunakan Thresholding
Pada pengujian ini bertujuan untuk mengetahui kinerja program pengenalan nada
saksofon alto yang telah dibuat dengan penambahan thresholding, sehingga kesalahan
yang dikenal sebagai keluaran teks “ERROR”. Thresholding merupakan nilai batas yang
ditentukan untuk mengurangi pengenalan nada yang salah. Dalam program thresholding di
inisialisasi dengan “jmaks”. Nilai “jmaks” di dapat dari pengujian sebelumnya yaitu
pengujian menentukan batas nilai jarak yang optimal. Nilai jarak optimal yang digunakan
dalam fungsi logika dalam penentuan keluaran.
User langsung dapat menjalankan program dengan thresholding karena
Thresholding telah aktif pada sistem pengenalan nada saksofon alto.
Tabel 4.7. Hasil Pengujian secara real time dengan variasi frame blocking 128, windowing
koefisien 50% dan k=1 pada k-NN menggunakan thresholding dengan confusion matriks
Input
Output
ERROR Persentase
Keberhasilan Do Re Mi Fa Sol La Si Do
Tinggi
Do 10 0 0 0 0 0 0 0 0 100%
Re 0 10 0 0 0 0 0 0 0 100%
Mi 0 0 10 0 0 0 0 0 0 100%
Fa 0 0 0 10 0 0 0 0 0 100%
Sol 0 0 0 0 10 0 0 0 0 100%
La 0 0 0 0 0 10 0 0 0 100%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
(Lanjutan) Tabel 4.7. Hasil Pengujian secara real time dengan variasi frame blocking 128,
windowing koefisien 50% dan k=1 pada k-NN menggunakan thresholding dengan
confusion matriks
Input
Output
ERROR Persentase
Keberhasilan Do Re Mi Fa Sol La Si Do
Tinggi
Si 0 0 0 0 0 0 10 0 0 100%
DoTinggi 0 0 0 0 0 0 0 10 0 100%
Rata-rata tingkat persentase keberhasilan pengenalan nada 100%
Dari hasil pengujian menggunakan thresholding yang telah dilakukan, sistem
pengenalan nada saksofon alto tersebut sudah mampu menggenali nada-nada yang terdapat
pada saksofon alto sesuai dengan perancangan dimana untuk nada do sampai do tinggi
tidak dikenali sebagai ERROR meskipun sudah menggunakan nilai thresholding yang
didapatkan dari hasil pengujian 15 kali percobaan untuk mencari nilai thresholding disetiap
nadanya.
4.3. Pengujian Dengan Nada Masukan Pianika
Pada pengujian ini bertujuan untuk mengetahui tingkat pengenalan sistem dalam
mengetahui nada. Sistem diharapkan tidak dapat mengenali nada alat musik lain selain
nada saksofon alto. Untuk pengujian program pengenalan nada saksofon alto digunakan
alat musik pianika sebagai masukan nadanya. Ada pula langkah- langkah untuk melakukan
percobaaan sebagai berikut:
1. Menyiapkan alat musik pianika yang akan digunakan.
2. Nada- nada yang akan digunakan antara lain Do, re, mi, fa, sol, la, si dan DoTinggi.
3. Menggunakan variasi frame blocking 128, windowing koefisien 50% dan k=1
karena variasi tersebut mempunyai tingkat pengenalan yang baik. Menggunakan
masukan Thresholding untuk batasan setiap nadanya.
4. Melihat hasil keluaran nada, apakah pengujian tersebut dapat mengenali nada
masukan, dikenali dengan keluaran “ERROR”, dikenali dengan nada lain, atau
bahkan dikenali nada dengan nada saksofon alto.
Setelah melakukan langkah-langkah diatas, berikut ini gambar alat musik pianika dan
hasil pengujian dengan nada dari alat musik pianika :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
Gambar 4.9. Gambar Alat Musik Pianika
Setelah melakukan langkah-langkah diatas, hasil yang diperoleh sebagai berikut:
Tabel 4.8. Hasil pengujian dengan nada dari alat musik pianika dengan confusion matriks
Input
Output
ERROR Persentase
Keberhasilan Do Re Mi Fa Sol La Si Do
Tinggi
Do 0 0 0 0 0 0 0 0 10 100%
Re 0 0 0 0 0 0 0 0 10 100%
Mi 0 0 0 0 0 0 0 0 10 100%
Fa 0 0 0 0 0 0 0 0 0 100%
Sol 0 0 3 0 0 0 0 0 6 70%
La 0 0 0 10 0 0 0 0 0 0%
Si 0 0 0 0 0 0 0 0 10 100%
DoTinggi 0 0 0 0 0 0 0 0 10 100%
Rata-rata tingkat persentase keberhasilan pengenalan nada 83,75%
Dari hasil pengujian dengan nada dari alat musik pianika dimana nada dasar yang
dipakai adalah nada dasar sesuai dengan perancangan. Pada nada sol dan la dikenal dengan
nada lain yakni pada nada sol dikenal nada mi dan pada nada la dikenal nada fa ini
dikarenakan menurut teori musik bahwa nada dasar yang dipakai pada peracangan
pengenalan saksofon alto adalah nada Do=D dan pada piano Do=F atau bisa dikatakan
sama dengan pianika, dengan kata lain ada beberapa nada yang kemungkinan akan dikenali
berbeda, karena tangga nada masih dalam jarak range yang sama atau masih dalam 1 oktaf
yang sama. Pada perocobaan dengan alat musik pianika, pemilihan nilai Thresholding
yang digunakan sangat berpengaruh dalam hal tersebut.
4.4. Pengujian Dengan Nada-Nada Kromatis Pada Saksofon Alto
Pada pengujian dengan nada-nada kromatis bertujuan untuk mengetahui tingkat
pengenalan sistem dalam mengetahui nada. Sistem diharapkan tidak dapat mengenali nada-
nada kromatis pada saksofon alto. Nada-nada kromatis atau biasa dikenal nada-nada tengah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
yakni Cis, Fis, Gis dan Ais. Dalam pengujian ini apakah nilai thresholding bekerja dan
berpengaruh pada hasil dari pengenalan nada. Pengujian dilakukan sebanya sepuluh kali
untuk setiap nada-nada kromatis. Hasil pengujian dengan nada kromatis ditujukan pada
tabel 4.9.
Tabel 4.9. Hasil pengujian dengan masukan nada-nada kromatis pada saksofon alto
Input
Output
ERROR Persentase
Keberhasilan Do Re Mi Fa Sol La Si Do
Tinggi
Cis 0 0 0 0 0 0 0 0 10 100%
Dis 0 4 0 0 0 0 0 0 6 60%
Fis 0 0 0 0 0 0 0 0 10 100%
Gis 0 0 0 0 0 0 0 0 10 100%
Ais 0 0 0 0 0 0 0 0 10 100%
Rata-rata tingkat persentase keberhasilan pengenalan nada 92%
Dari hasil pengujian dengan nada-nada kromatis pada tabel 4.8 dapat dilihat bahwa
pada masukan nada Dis dikenal sebagai nada Re, dimana nada Dis merupakan nada antara
Do dan Re sehingga kemungkinan sistem akan mengenali nada Re. Berdasarkan dari hasil
tersebut bahwa nilai thresholding yang digunakan sangat mempengaruhi pengenalan nada
yang dihasilkan dan nilai jarak antara nada Dis dan Re cukup dekat. Nilai variasi
windowing koefisien juga sangat mempengaruhi hasil pengenalan nada, apabila variasi
windowing koefisien digunakan semakin besar maka jarak antara nada akan semakin jauh.
Apabila jarak semakin jauh maka tingkat pengenalan nada yang dihasilkan semakin baik.
Selain itu, kuat lemahnya tiupan juga mempengaruhi hasil pengenalan nada apakah nada
dikenali ERROR atau dikenali nada lain.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
BAB V
KESIMPULAN DAN SARAN
5.1 KESIMPULAN
Berdasarkan percobaan dan pengujian sistem pengenalan nada saksofon alto maka
dapat disimpulkan sebagai berikut :
1. Pada pengujian untuk setiap 1, 2, 4 dan 8 database untuk setiap nadanya secara
tidak real-time bahwa dengan menggunakan database nada sedikit yakni dengan 1
database sudah mampu untuk mengenali nada saksofon alto.
2. Pengujian pengenalan nada saksofon alto secara real-time menggunakan 1
database dengan variasi frame blocking 128, windowing koefisien 50% dan nilai
k=1 pada k-NN tanpa menggunakan Threshoding memiliki persentase pengenalan
nada mencapai 100%.
3. Pengenalan nada-nada kromatis pada saksofon alto mencapai 92%. Dengan
database yang sama pengenalan nada dengan masukan pianika menghasilkan
83,75%.
5.2 SARAN
Sistem pengenalan saksofon alto ini masih memiliki kekurangan. Ada beberapa saran
yang diharapkan dapat mengurangi kekurangan tersebut, antara lain:
1. Pengembangan dapat dilakukan agar sistem dapat mengenali nada tanpa harus
merekam masukan secara manual melainkan secara continuous.
2. Pengembangan sistem dengan menambahkan tombol pemutaran nada yang telah
direkam, sehingga user dapat mengetahui nada tersebut telah terekam dengan baik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
DAFTAR PUSTAKA
[1] Ortiz, M., 2002, Menumbuhkan Anak-anak Yang Bahagia, Cerdas, dan Percaya Diri
Dengan Musik, Jakarta : Gramedia Pustaka Utama.
[2] Kurnia, Andi, Penala, Nada Alat Musik Menggunakan Alih Ragam Fourier, Jurusan
Teknik Elektro UNDIP, Semarang.
[3] Darmawan, Tomi, 2012, Musical Instruments Sound Recognition
[http://www.slideshare.net/mezzoblues diakses tanggal 5 Januari 2015
[4] Rubiyo, Melanie, Pradipta, 2014, Pengenalan Nada Seruling Rekorder Alto Secara
Realtime Menggunakan Ekstraksi Ciri DCT dan Fungsi Korelasi, Tugas Akhir,
Fakultas Sains dan Teknologi Sanata Dharma, Yogyakarta.
[5] Walasakti, Isoworo, Yogi , 2013, Pengenalan Nada Gamelan Kenong Secara Real
Time Menggunakan Ekstraksi Ciri DCT dan Fungsi Jarak Chebyshev, Tugas Akhir,
Fakultas Sains dan Teknologi Sanata Dharma, Yogyakarta.
[6] Sinaga, Doli, Pembelajaran Saxophone Alto Pada Lagu Nothings Gonna Change My
Love, Tugas Akhir, Fakultas Seni Musik Universitas Negeri Medan, Medan.
[7] Hasugian,Jimmy,2008,TeoriMusik,
https://yoyokpm.files.wordpress.com/2008/04/teori_musik1.pdf diakses pada tangal
5 Januari 2015
[8] Elsea, P., 1996, Microphones,
http://artsites.ucsc.edu/EMS/Music/tech_background/TE-20/teces_20.html diakses
pada tanggal 5 Januari 2015
[9] Computer Hope, Sound Card, http://www.computerhope.com/jargon/s/souncard.htm
diakses tanggal 28 Februari 2015
[10] Irawan, A, Feriza, 2012, Buku Pintar Pemrograman Matlab, MediaKom,Yogyakarta.
[11] Juang, B. H., & Rabiner, L., 1993, Fundamentals Of Speech Recognition. Signal
Processing Series, Prentice Hall, Englewood Cliffs, NJ.
[12] Hakim, L., 2012, Analisa Suara Serak Berbasis Transformasi Wavelet dan Algoritma
Jaringan Syaraf Tiruan, Tugas Akhir Jurusan Teknik Elektro, Institut Teknologi
Sepuluh Nopember, Surabaya.
[13] Pemotongan Sinyal, httpeprints.undip.ac.id253441ML2F003484.pdf 16 Februari
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
48
[14] Eka Kartikasari, Yesika, 2006, Pembuatan Software Pembuka Program aplikasi
Komputer Berbasis Pengenalan Sinyal Suara, PENS-ITS, Surabaya.
[15] Kushidayati. Milla Fitriani, Pembuatan Data Base Transkrip Akord Instrumen
Tunggal Menggunakan Metode Enhanced Pitch Class Profile (EPCP),Tugas Akhir,
Institue Teeknologi Bandung, Bandung.
[16] Sutiknyo, Prabowo Hadi Putro, Pengolahan Suara Berdasarkan Usia Dengan
Menggunakan Metode K-Means, Paper, Jurusan Teknik Telekomunikasi Politeknik
Elektronika Negeri Surabaya, Institut Teknologi Sepuluh Nopember Kampus ITS,
Surabaya.
[17] Kriptografi,2010,http://www.informatika.org/~rinaldi/Kriptografi/2010-
2011/Makalah1/Makalah1-IF3058-Sem1-2010-2011-052.pdf diakses pada tanggal 28
Februari 2015.
[18] E. Oran Brigham, “The Fast Fourier Transform And Its Application”, Prentice-Hall
International, Inc.s
[19] Nandra Pradipta, “Implementasi Algoritma FFT (Fast Fourier Transform) Pada
Digital Signal Precessor TMS320C542”,Tugas Akhir, Universitas Diponegoro,
Semarang.
[20] Linggo Sumarno,”Pengolahan Signal Digital”, Diktat Edisi 2013.
[21] Jain, A. K., Duin, R. P. W., & Mao, J. (2000). Statistical pattern recognition: A
review. Pattern Analysis and Machine Intelligence, IEEE Transactions on,22(1), p.
4-37.
[22] Hyuk, Sung, Cha, 2007, Comprehensive Survey on Distance/Similarity Measures
between Probability Density Functions, International Jurnal Of Mathematical Models
and Methods In Apllied Sciences, Issue 4 Volume 1, p. 300-307, Pace University,
New York.
[23] Koutroumbas, Konstantinos, Theodoridis, Sergios, 2009, Pattern Recognition
“Fourth Edition”, Academic Press is an imprint of Elsevier 30 Corporate Drive, p.
61, San Diego, California.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L1
LAMPIRAN 1
PERCOBAAN MENCARI SPEKTRUM FREKUENSI UNTUK SISTEM
PENGENALAN NADA ALAT MUSIK SAKSOFON ALTO
MENGGUNAKAN MATLAB 7.0.4 2008a
Tujuan:
1. Mengetahui frekuensi maksimum pada nada alat musik saksofon alto.
2. Mengetahui frekuensi minimum yang dapat digunakan.
Variabel:
1. Frekuensi sampling yang digunakan 4800Hz.
2. Durasi sampling perekaman yang digunakan sebesar 3 detik.
Listing Program fs = 4800; y=wavrecord (2*fs,fs,'double'); wavwrite(y,fs,'4800Hz4Fa.wav'); [y,fs]=wavread('4800Hz4Fa.wav'); Y=fft(y,fs); Spek=Y.*conj(Y); f = fs*(0:(1/2*fs))/fs; plot(f,Spek(1:(1/2*fs+1)));grid;
4800Hz D (Do)
0 500 1000 1500 2000 2500
0
0.5
1
1.5
2
2.5
3
3.5x 10
4
X: 696
Y: 1.414e+004
X: 348
Y: 3.401e+004
X: 1044
Y: 6888
Frekuensi(Hz)
Am
plit
udo
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L2
E (Re)
Fis (Mi)
0 500 1000 1500 2000 25000
1
2
3
4
5
6x 10
4
X: 1968
Y: 1535
Frekuensi(Hz)
Am
plit
udo
X: 1574
Y: 641
X: 1181
Y: 843.4
X: 787
Y: 4588
X: 394
Y: 5.589e+004
0 500 1000 1500 2000 25000
0.5
1
1.5
2
2.5x 10
5
X: 1315
Y: 5825
Frekuensi(Hz)
Am
plit
udo
X: 877
Y: 3.097e+004
X: 438
Y: 2.155e+005
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L3
G (Fa)
A (Sol)
0 500 1000 1500 2000 25000
1000
2000
3000
4000
5000
X: 466
Y: 3434
X: 702
Y: 108.5
X: 932
Y: 1575
X: 1170
Y: 53.56
X: 1397
Y: 4416
X: 1627
Y: 104.4
X: 1862
Y: 101.7
X: 2328
Y: 181.3
Frekuensi(Hz)
Am
pltudo
0 500 1000 1500 2000 25000
2000
4000
6000
8000
10000
12000
14000
X: 522
Y: 3802
X: 1043
Y: 1.307e+004
X: 1565
Y: 6752
X: 2088
Y: 364.7
Frekuensi(Hz)
Am
plitu
do
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L4
B (La)
Cis (Si)
0 500 1000 1500 2000 25000
1000
2000
3000
4000
5000
6000
7000
X: 587
Y: 6924
X: 1175
Y: 3356
X: 1762
Y: 167.3
X: 2350
Y: 267.3
Frekuensi(Hz)
Am
plitu
do
0 500 1000 1500 2000 25000
1000
2000
3000
4000
5000
6000
7000
8000
X: 667
Y: 7748
X: 1335
Y: 824.8
X: 2003
Y: 5333
Frekuensi(Hz)
Am
plitu
do
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L5
D’ (Do Tinggi)
Kesimpulan 1. Frekuensi maksimum yang didapat sebesar 697Hz untuk nada Do tinggi (D’).
2. Berdasarkan kriteria Nyquist, bahwa frekuensi sampling minimal harus lebih besar sama
dengan 2 kali dari sinyal analog, sehingga untuk frekuensi sampling 4800Hz sudah
memenuhi.
0 500 1000 1500 2000 25000
0.5
1
1.5
2
2.5x 10
4
X: 697
Y: 2.2e+004
Frekuensi(Hz)
Am
plitu
do
X: 1394
Y: 8186
X: 2091
Y: 732.9
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L6
LAMPIRAN 2
PERCOBAAN MENCARI DURASI PEREKAMAN PENGENALAN
NADA ALAT MUSIK SAKSOFON ALTO MENGGUNAKAN MATLAB
7.0.4 2008a
Tujuan:
1. Mendapatkan durasi perekaman yang tepat untuk perekaman.
2. Mengetahui pengaruh durasi perekaman pada data sinyal yang terekam.
Variabel:
1. Frekuensi sampling yang digunakan 4800Hz.
2. Durasi perekaman yang digunakan sebesar 1 detik, 2 detik, dan 3 detik.
Listing Program :
clc fs =4800;%%fsampling 4800Hz %y = wavrecord (fs,fs,'double');%% 1 detik %wavwrite(y,fs,'1detSi7sample1.wav'); %[y,fs]=wavread('1detSi7sample1.wav'); %y = wavrecord (2*fs,fs,'double');%% 2 detik %wavwrite(y,fs,'2detSi7sample2.wav'); %[y,fs]=wavread('2detSi7sample2.wav'); y = wavrecord (3*fs,fs,'double');%% 3 detik wavwrite(y,fs,'3detSi7sample3.wav'); [y,fs]=wavread('3detSi7sample3.wav'); plot(y);grid;%output title('fs=4800; t=3detik') xlabel('frequency (Hz)') ylabel('amplitudo ')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L7
0 500 1000 1500-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
0.25Fs=4800Hz; t=1detik
Data Tercuplik
Am
plit
udo
0 500 1000 1500 2000 2500 3000 3500 4000 4500-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
Data Tercuplik
Am
plitu
do
Fs=1500Hz t=2 detikFs=4800Hz; t=2detik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L8
Kesimpulan
1. Pada hasil percobaan terlihat sistem membutuhkan waktu untuk mendapatkan data sinyal
rekaman.
2. Pada hasil percobaan, secara visual waktu yang dibutuhkan untuk durasi perekaman adalah
3 detik.
0 500 1000 1500 2000 2500 3000 3500 4000 4500-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
0.25
Data Tercuplik
Am
plit
udo
Fs=4800Hz t=3 detik
data1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L9
LAMPIRAN 3
LISTING PROGRAM GUI MATLAB
Program Utama
function varargout = gui(varargin)
% GUI M-file for gui.fig
% GUI, by itself, creates a new GUI or raises the existing
% singleton*.
%
% H = GUI returns the handle to a new GUI or the handle to
% the existing singleton*.
%
% GUI('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in GUI.M with the given input
arguments.
%
% GUI('Property','Value',...) creates a new GUI or raises the
% existing singleton*. Starting from the left, property value
pairs are
% applied to the GUI before gui_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property
application
% stop. All inputs are passed to gui_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows
only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help gui
% Last Modified by GUIDE v2.5 07-Jul-2015 21:31:02
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @gui_OpeningFcn, ...
'gui_OutputFcn', @gui_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L10
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before gui is made visible.
function gui_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to gui (see VARARGIN)
% Choose default command line output for gui
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes gui wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = gui_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenu1 contents
as cell array
% contents{get(hObject,'Value')} returns selected item from
% popupmenu1
indeks=get(handles.popupmenu1,'Value');
switch indeks
case 1
framebl=128;
case 2
framebl=64;
case 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L11
framebl=32;
case 4
framebl=16;
end
handles.frame=framebl;
guidata(hObject,handles);
% --- Executes during object creation, after setting all properties.
function popupmenu1_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns
called
% Hint: popupmenu controls usually have a white background on
Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on selection change in popupmenu2.
function popupmenu2_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenu2 contents
as cell array
% contents{get(hObject,'Value')} returns selected item from
popupmenu2
indeks=get(handles.popupmenu2,'Value');
switch indeks
case 1
koef=100;
case 2
koef=90;
case 3
koef=80;
case 4
koef=70;
case 5
koef=60;
case 6
koef=50;
case 7
koef=40;
case 8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L12
koef=30;
case 9
koef=20;
case 10
koef=10;
end
handles.pct=koef;
guidata(hObject,handles);
% --- Executes during object creation, after setting all properties.
function popupmenu2_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns
called
% Hint: popupmenu controls usually have a white background on
Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on selection change in popupmenu3.
function popupmenu3_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenu3 contents
as cell array
% contents{get(hObject,'Value')} returns selected item from
% popupmenu3
indeks=get(handles.popupmenu3,'Value');
switch indeks
case 1
knn=7;
case 2
knn=5;
case 3
knn=3;
case 4
knn=1;
end
handles.varn=knn;
guidata(hObject,handles);
% --- Executes during object creation, after setting all properties.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L13
function popupmenu3_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns
called
% Hint: popupmenu controls usually have a white background on
Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit2_Callback(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit2 as text
% str2double(get(hObject,'String')) returns contents of edit2
as a double
% --- Executes during object creation, after setting all properties.
function edit2_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns
called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
sample_length=3;
sample_freq=4800;
sample_time=(sample_length*sample_freq);
x=wavrecord(sample_time, sample_freq);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L14
wavwrite(x, sample_freq, 's.wav');
axes(handles.axes1)
plot(x);
x=wavread('s.wav');
b0=0.3;
fb=handles.frame; %Variasi nilai FrameBlocking 128,64,32 dan 16
pctkoef=handles.pct; %Variasi nilai persenkoefisien 50%-100%
vark=handles.varn; %Variasi nilai K-NN 7,5,3 dan 1
% Normalisasi
x1=x/max(abs(x));
% Potong kiri
b1=find(x1>b0 | x1<-b0);
x1(1:b1(1))=[];
% Potong kiri 2
bts=floor(0.25*length(x1));
x1(1:bts)=[];
%frame blocking
x2=x1(1:fb);
% Normalisasi 2
x3=x2/max(abs(x2));
% Windowing
h=hamming(fb);
x4=x3.*h;
%Ekstraksi ciri FFT
x5=abs(fft(x4));
x6=x5(1:fb/2);
%Ambil sesuai persen koefisien
jumkoef=floor((pctkoef/100)*(fb/2));
x7=x6(1:jumkoef);
x7=x7(:);%hanya pemilihan fungsi vektor saja tidak berpengaruh dalam
fungsi progam keseluruhan
axes(handles.axes2)
bar (x7);
if (b0==0.3) && (fb==128) &&(pctkoef==100) load db1128100;
elseif (b0==0.3) && (fb==128) &&(pctkoef==90) load db112890;
elseif (b0==0.3) && (fb==128) &&(pctkoef==80) load db112880;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L15
elseif (b0==0.3) && (fb==128) &&(pctkoef==70) load db112870;
elseif (b0==0.3) && (fb==128) &&(pctkoef==60) load db112860;
elseif (b0==0.3) && (fb==128) &&(pctkoef==50) load db112850;
elseif (b0==0.3) && (fb==128) &&(pctkoef==40) load db112840;
elseif (b0==0.3) && (fb==128) &&(pctkoef==30) load db112830;
elseif (b0==0.3) && (fb==128) &&(pctkoef==20) load db112820;
elseif (b0==0.3) && (fb==128) &&(pctkoef==10) load db112810;
elseif (b0==0.3) && (fb==64) &&(pctkoef==100) load db164100;
elseif (b0==0.3) && (fb==64) &&(pctkoef==90) load db16490;
elseif (b0==0.3) && (fb==64) &&(pctkoef==80) load db16480;
elseif (b0==0.3) && (fb==64) &&(pctkoef==70) load db16470;
elseif (b0==0.3) && (fb==64) &&(pctkoef==60) load db16460;
elseif (b0==0.3) && (fb==64) &&(pctkoef==50) load db16450;
elseif (b0==0.3) && (fb==64) &&(pctkoef==40) load db16440;
elseif (b0==0.3) && (fb==64) &&(pctkoef==30) load db16430;
elseif (b0==0.3) && (fb==64) &&(pctkoef==20) load db16420;
elseif (b0==0.3) && (fb==64) &&(pctkoef==10) load db16410;
elseif (b0==0.3) && (fb==32) &&(pctkoef==100) load db132100;
elseif (b0==0.3) && (fb==32) &&(pctkoef==90) load db13290;
elseif (b0==0.3) && (fb==32) &&(pctkoef==80) load db13280;
elseif (b0==0.3) && (fb==32) &&(pctkoef==70) load db13270;
elseif (b0==0.3) && (fb==32) &&(pctkoef==60) load db13260;
elseif (b0==0.3) && (fb==32) &&(pctkoef==50) load db13250;
elseif (b0==0.3) && (fb==32) &&(pctkoef==40) load db13240;
elseif (b0==0.3) && (fb==32) &&(pctkoef==30) load db13230;
elseif (b0==0.3) && (fb==32) &&(pctkoef==20) load db13220;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L16
elseif (b0==0.3) && (fb==32) &&(pctkoef==10) load db13210;
elseif (b0==0.3) && (fb==16) &&(pctkoef==100) load db116100;
elseif (b0==0.3) && (fb==16) &&(pctkoef==90) load db11690;
elseif (b0==0.3) && (fb==16) &&(pctkoef==80) load db11680;
elseif (b0==0.3) && (fb==16) &&(pctkoef==70) load db11670;
elseif (b0==0.3) && (fb==16) &&(pctkoef==60) load db11660;
elseif (b0==0.3) && (fb==16) &&(pctkoef==50) load db11650;
elseif (b0==0.3) && (fb==16) &&(pctkoef==40) load db11640;
elseif (b0==0.3) && (fb==16) &&(pctkoef==30) load db11630;
elseif (b0==0.3) && (fb==16) &&(pctkoef==20) load db11620;
elseif (b0==0.3) && (fb==16) &&(pctkoef==10) load db11610;
end
for k=1:8
z2(k)=jarak(x7,z(:,k));
end
%Deskripsi string keluaran
kel={'Do';'Re';'Mi';'Fa';'Sol';'La';'Si';'Do_T'};
% Cari n tertangga terdekat
k=vark
m=1;
[s1,s2]=sort(z2,'ascend');
jarakc=sort(z2,'ascend')
kj=s1(1:k)
kn=s2(1:k)
hk=ceil(kn/m)
zout=mode(hk)
idxkout=find(hk==zout);
jpilih=kj(idxkout);
fjpilih=fliplr(jpilih);
jmaks=fjpilih(1)
% Cari n tertangga terdekat
%[s1,idx]=sort(z2,'ascend')
%zidx=idx(1:vark);
%znn=ceil(zidx/1);
%zout=mode(znn);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L17
%Penentuan keluaran nada
nadaout=kel(zout);
set(handles.edit2,'String',nadaout);
if (zout == 1)&&(jmaks<55.0487)
korout = {'Do'};
elseif (zout == 1) && (jmaks>=55.0487)
korout = {'ERROR1'};
end
if (zout == 2) && (jmaks<81.5725)
korout = {'Re'};
elseif (zout == 2) && (jmaks>=81.5725)
korout = {'ERROR2'};
end
if (zout == 3) && (jmaks<42.4711)
korout = {'Mi'};
elseif (zout == 3) && (jmaks>=42.4711)
korout = {'ERROR3'};
end
if (zout == 4) && (jmaks<54.8266)
korout = {'Fa'};
elseif (zout == 4) && (jmaks>=54.8266)
korout = {'ERROR4'};
end
if (zout == 5) && (jmaks<57.4214)
korout = {'Sol'};
elseif (zout == 5) && (jmaks>=57.4214)
korout = {'ERROR5'};
end
if (zout == 6) && (jmaks<105.5574)
korout = {'La'};
elseif (zout == 6) && (jmaks>=105.5574)
korout = {'ERROR6'};
end
if (zout == 7) && (jmaks<36.6529)
korout = {'Si'};
elseif (zout == 7) && (jmaks>=36.6529)
korout = {'ERROR7'};
end
if (zout == 8) && (jmaks<62.7467)
korout = {'Do_T'};
elseif (zout == 8) && (jmaks>=62.7467)
korout = {'ERROR8'};
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L18
hasilout=korout
set(handles.edit2,'string',hasilout)
% --- Executes on mouse press over figure background.
function pushbutton3_Callback(hObject, eventdata, handles)
axes(handles.axes1);
plot(0);
axes(handles.axes2);
plot(0);
set(handles.edit2,'String',' ');
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
delete(figure(gui));
Program Fungsi Jarak Simetrik Probabilitas 2
function z1=jprob(x,z)
c1=(x-z).^2;
c2=x+z;
c3=c1./c2;
z1=2*sum(c3);
Program Pembuatan Database
function coba1
b0 = 0.3;
fb=128; %16,32,64,128
pctkoef=70; %50%-100%
z1=zciri ('Do',b0,fb,pctkoef);
z2=zciri ('Re',b0,fb,pctkoef);
z3=zciri ('Mi',b0,fb,pctkoef);
z4=zciri ('Fa',b0,fb,pctkoef);
z5=zciri ('Sol',b0,fb,pctkoef);
z6=zciri ('La',b0,fb,pctkoef);
z7=zciri ('Si',b0,fb,pctkoef);
z8=zciri ('Do_',b0,fb,pctkoef);
z=[z1 z2 z3 z4 z5 z6 z7 z8];
save db112870 z
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L19
%=======================================
%INTERNAL FUNCTION
%=======================================
function z=zciri (fwav,b0,fb,pctkoef)
x1=wavread([fwav '_8.wav']);
y=potong(x1,b0,fb);
z=xfft(y,fb,pctkoef);
%============================================================
function y=potong(x0,b0,fb)
% Normalisasi
x1=x0/max(abs(x0));
%figure(1)
%plot(x1)
% Potong kiri
b1=find(x1>b0 | x1<-b0);
x1(1:b1(1))=[];
%figure(2)
%plot(x1)
% Potong kiri 2
bts=floor(0.25*length(x1));
x1(1:bts)=[];
%figure(3)
%plot(x1)
% Frame blocking
x2=x1(1:fb);
%figure(4)
%plot(x2)
% Normalisasi 2
x3=x2/max(abs(x2));
%figure(5)
%plot(x3)
% Windowing
h=hamming(fb);
x4=x3.*h;
y=x4;
figure(6)
plot(y)
% ============================================================
function x3=xfft(x0,fb,pctkoef)
%Ekstraksi ciri FFT
x1=abs(fft(x0));
sx1=size(x1)
x2=x1(1:fb/2);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L20
sx2=size(x2)
%Ambil seusuai persen koefisien
jumkoef=floor((pctkoef/100)*(fb/2));
sx3=size(jumkoef)
x3=x2(1:jumkoef);
sx4=size(x3)
x3=x3(:);%hanya pemilihan fungsi vektor saja tidak berpengaruh dalam
fungsi progam keseluruhan
% ============================================================
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L21
LAMPIRAN 4
LISTING PROGRAM TIDAK REAL-TIME
function base1c
% Menggunakan ekstraksi ciri FFT
% Semua data pelatihan disimpan
clc
% ============================================================
b0=0.3; % batas potong
fb=128; % ukuran frame blocking
pctkoef=50; % persen koefisien
n=1; % n tetangga terdekat
% ============================================================
% Pembentukan database
[s1,s1p,s1x]=proses('Do_1.wav',b0,fb,pctkoef);
[d1,d1p,d1x]=proses('Re_1.wav',b0,fb,pctkoef);
[g1,g1p,g1x]=proses('Mi_1.wav',b0,fb,pctkoef);
[p1,p1p,p1x]=proses('Fa_1.wav',b0,fb,pctkoef);
[l1,l1p,l1x]=proses('Sol_1.wav',b0,fb,pctkoef);
[e1,e1p,e1x]=proses('La_1.wav',b0,fb,pctkoef);
[t1,t1p,t1x]=proses('Si_1.wav',b0,fb,pctkoef);
[a1,a1p,a1x]=proses('Do__1.wav',b0,fb,pctkoef);
% Database
sx=[s1x];
dx=[d1x];
gx=[g1x];
px=[p1x];
lx=[l1x];
ex=[e1x];
tx=[t1x];
ax=[a1x];
z=[sx dx gx px lx ex tx ax];
%save database z
% ============================================================
% Percobaan pengenalan
[a,b,c]=proses('Do_11.wav',b0,fb,pctkoef);j1=hjarak(c,z);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L22
[a,b,c]=proses('Do_11.wav',b0,fb,pctkoef);j1=hjarak(c,z);
[a,b,c]=proses('Do_12.wav',b0,fb,pctkoef);j2=hjarak(c,z);
[a,b,c]=proses('Do_13.wav',b0,fb,pctkoef);j3=hjarak(c,z);
[a,b,c]=proses('Do_14.wav',b0,fb,pctkoef);j4=hjarak(c,z);
[a,b,c]=proses('Do_15.wav',b0,fb,pctkoef);j5=hjarak(c,z);
[a,b,c]=proses('Do_16.wav',b0,fb,pctkoef);j6=hjarak(c,z);
[a,b,c]=proses('Do_17.wav',b0,fb,pctkoef);j7=hjarak(c,z);
[a,b,c]=proses('Do_18.wav',b0,fb,pctkoef);j8=hjarak(c,z);
[a,b,c]=proses('Do_19.wav',b0,fb,pctkoef);j9=hjarak(c,z);
[a,b,c]=proses('Do_20.wav',b0,fb,pctkoef);j10=hjarak(c,z);
k1=pout(j1,n);k2=pout(j2,n);k3=pout(j3,n);k4=pout(j4,n);k5=pout(j5,n)
;
k6=pout(j6,n);k7=pout(j7,n);k8=pout(j8,n);k9=pout(j9,n);k10=pout(j10,
n);
input_do={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}
[a,b,c]=proses('Re_11.wav',b0,fb,pctkoef);j1=hjarak(c,z);
[a,b,c]=proses('Re_12.wav',b0,fb,pctkoef);j2=hjarak(c,z);
[a,b,c]=proses('Re_13.wav',b0,fb,pctkoef);j3=hjarak(c,z);
[a,b,c]=proses('Re_14.wav',b0,fb,pctkoef);j4=hjarak(c,z);
[a,b,c]=proses('Re_15.wav',b0,fb,pctkoef);j5=hjarak(c,z);
[a,b,c]=proses('Re_16.wav',b0,fb,pctkoef);j6=hjarak(c,z);
[a,b,c]=proses('Re_17.wav',b0,fb,pctkoef);j7=hjarak(c,z);
[a,b,c]=proses('Re_18.wav',b0,fb,pctkoef);j8=hjarak(c,z);
[a,b,c]=proses('Re_19.wav',b0,fb,pctkoef);j9=hjarak(c,z);
[a,b,c]=proses('Re_20.wav',b0,fb,pctkoef);j10=hjarak(c,z);
k1=pout(j1,n);k2=pout(j2,n);k3=pout(j3,n);k4=pout(j4,n);k5=pout(j5,n)
;
k6=pout(j6,n);k7=pout(j7,n);k8=pout(j8,n);k9=pout(j9,n);k10=pout(j10,
n);
input_re={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}
[a,b,c]=proses('Mi_11.wav',b0,fb,pctkoef);j1=hjarak(c,z);
[a,b,c]=proses('Mi_12.wav',b0,fb,pctkoef);j2=hjarak(c,z);
[a,b,c]=proses('Mi_13.wav',b0,fb,pctkoef);j3=hjarak(c,z);
[a,b,c]=proses('Mi_14.wav',b0,fb,pctkoef);j4=hjarak(c,z);
[a,b,c]=proses('Mi_15.wav',b0,fb,pctkoef);j5=hjarak(c,z);
[a,b,c]=proses('Mi_16.wav',b0,fb,pctkoef);j6=hjarak(c,z);
[a,b,c]=proses('Mi_17.wav',b0,fb,pctkoef);j7=hjarak(c,z);
[a,b,c]=proses('Mi_18.wav',b0,fb,pctkoef);j8=hjarak(c,z);
[a,b,c]=proses('Mi_19.wav',b0,fb,pctkoef);j9=hjarak(c,z);
[a,b,c]=proses('Mi_20.wav',b0,fb,pctkoef);j10=hjarak(c,z);
k1=pout(j1,n);k2=pout(j2,n);k3=pout(j3,n);k4=pout(j4,n);k5=pout(j5,n)
;
k6=pout(j6,n);k7=pout(j7,n);k8=pout(j8,n);k9=pout(j9,n);k10=pout(j10,
n);
input_mi={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}
[a,b,c]=proses('Fa_11.wav',b0,fb,pctkoef);j1=hjarak(c,z);
[a,b,c]=proses('Fa_12.wav',b0,fb,pctkoef);j2=hjarak(c,z);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L23
[a,b,c]=proses('Fa_13.wav',b0,fb,pctkoef);j3=hjarak(c,z);
[a,b,c]=proses('Fa_14.wav',b0,fb,pctkoef);j4=hjarak(c,z);
[a,b,c]=proses('Fa_15.wav',b0,fb,pctkoef);j5=hjarak(c,z);
[a,b,c]=proses('Fa_16.wav',b0,fb,pctkoef);j6=hjarak(c,z);
[a,b,c]=proses('Fa_17.wav',b0,fb,pctkoef);j7=hjarak(c,z);
[a,b,c]=proses('Fa_18.wav',b0,fb,pctkoef);j8=hjarak(c,z);
[a,b,c]=proses('Fa_19.wav',b0,fb,pctkoef);j9=hjarak(c,z);
[a,b,c]=proses('Fa_20.wav',b0,fb,pctkoef);j10=hjarak(c,z);
k1=pout(j1,n);k2=pout(j2,n);k3=pout(j3,n);k4=pout(j4,n);k5=pout(j5,n)
;
k6=pout(j6,n);k7=pout(j7,n);k8=pout(j8,n);k9=pout(j9,n);k10=pout(j10,
n);
input_fa={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}
[a,b,c]=proses('Sol_11.wav',b0,fb,pctkoef);j1=hjarak(c,z);
[a,b,c]=proses('Sol_12.wav',b0,fb,pctkoef);j2=hjarak(c,z);
[a,b,c]=proses('Sol_13.wav',b0,fb,pctkoef);j3=hjarak(c,z);
[a,b,c]=proses('Sol_14.wav',b0,fb,pctkoef);j4=hjarak(c,z);
[a,b,c]=proses('Sol_15.wav',b0,fb,pctkoef);j5=hjarak(c,z);
[a,b,c]=proses('Sol_16.wav',b0,fb,pctkoef);j6=hjarak(c,z);
[a,b,c]=proses('Sol_17.wav',b0,fb,pctkoef);j7=hjarak(c,z);
[a,b,c]=proses('Sol_18.wav',b0,fb,pctkoef);j8=hjarak(c,z);
[a,b,c]=proses('Sol_19.wav',b0,fb,pctkoef);j9=hjarak(c,z);
[a,b,c]=proses('Sol_20.wav',b0,fb,pctkoef);j10=hjarak(c,z);
k1=pout(j1,n);k2=pout(j2,n);k3=pout(j3,n);k4=pout(j4,n);k5=pout(j5,n)
;
k6=pout(j6,n);k7=pout(j7,n);k8=pout(j8,n);k9=pout(j9,n);k10=pout(j10,
n);
input_sol={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}
[a,b,c]=proses('La_11.wav',b0,fb,pctkoef);j1=hjarak(c,z);
[a,b,c]=proses('La_12.wav',b0,fb,pctkoef);j2=hjarak(c,z);
[a,b,c]=proses('La_13.wav',b0,fb,pctkoef);j3=hjarak(c,z);
[a,b,c]=proses('La_14.wav',b0,fb,pctkoef);j4=hjarak(c,z);
[a,b,c]=proses('La_15.wav',b0,fb,pctkoef);j5=hjarak(c,z);
[a,b,c]=proses('La_16.wav',b0,fb,pctkoef);j6=hjarak(c,z);
[a,b,c]=proses('La_17.wav',b0,fb,pctkoef);j7=hjarak(c,z);
[a,b,c]=proses('La_18.wav',b0,fb,pctkoef);j8=hjarak(c,z);
[a,b,c]=proses('La_19.wav',b0,fb,pctkoef);j9=hjarak(c,z);
[a,b,c]=proses('La_20.wav',b0,fb,pctkoef);j10=hjarak(c,z);
k1=pout(j1,n);k2=pout(j2,n);k3=pout(j3,n);k4=pout(j4,n);k5=pout(j5,n)
;
k6=pout(j6,n);k7=pout(j7,n);k8=pout(j8,n);k9=pout(j9,n);k10=pout(j10,
n);
input_la={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}
[a,b,c]=proses('Si_11.wav',b0,fb,pctkoef);j1=hjarak(c,z);
[a,b,c]=proses('Si_12.wav',b0,fb,pctkoef);j2=hjarak(c,z);
[a,b,c]=proses('Si_13.wav',b0,fb,pctkoef);j3=hjarak(c,z);
[a,b,c]=proses('Si_14.wav',b0,fb,pctkoef);j4=hjarak(c,z);
[a,b,c]=proses('Si_15.wav',b0,fb,pctkoef);j5=hjarak(c,z);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L24
[a,b,c]=proses('Si_16.wav',b0,fb,pctkoef);j6=hjarak(c,z);
[a,b,c]=proses('Si_17.wav',b0,fb,pctkoef);j7=hjarak(c,z);
[a,b,c]=proses('Si_18.wav',b0,fb,pctkoef);j8=hjarak(c,z);
[a,b,c]=proses('Si_19.wav',b0,fb,pctkoef);j9=hjarak(c,z);
[a,b,c]=proses('Si_20.wav',b0,fb,pctkoef);j10=hjarak(c,z);
k1=pout(j1,n);k2=pout(j2,n);k3=pout(j3,n);k4=pout(j4,n);k5=pout(j5,n)
;
k6=pout(j6,n);k7=pout(j7,n);k8=pout(j8,n);k9=pout(j9,n);k10=pout(j10,
n);
input_si={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}
[a,b,c]=proses('Do__11.wav',b0,fb,pctkoef);j1=hjarak(c,z);
[a,b,c]=proses('Do__12.wav',b0,fb,pctkoef);j2=hjarak(c,z);
[a,b,c]=proses('Do__13.wav',b0,fb,pctkoef);j3=hjarak(c,z);
[a,b,c]=proses('Do__14.wav',b0,fb,pctkoef);j4=hjarak(c,z);
[a,b,c]=proses('Do__15.wav',b0,fb,pctkoef);j5=hjarak(c,z);
[a,b,c]=proses('Do__16.wav',b0,fb,pctkoef);j6=hjarak(c,z);
[a,b,c]=proses('Do__17.wav',b0,fb,pctkoef);j7=hjarak(c,z);
[a,b,c]=proses('Do__18.wav',b0,fb,pctkoef);j8=hjarak(c,z);
[a,b,c]=proses('Do__19.wav',b0,fb,pctkoef);j9=hjarak(c,z);
[a,b,c]=proses('Do__20.wav',b0,fb,pctkoef);j10=hjarak(c,z);
k1=pout(j1,n);k2=pout(j2,n);k3=pout(j3,n);k4=pout(j4,n);k5=pout(j5,n)
;
k6=pout(j6,n);k7=pout(j7,n);k8=pout(j8,n);k9=pout(j9,n);k10=pout(j10,
n);
input_do_t={k1,k2,k3,k4,k5,k6,k7,k8,k9,k10}
% Hitung tingkat pengenalan
h1=cekout(input_do,1);
h2=cekout(input_re,2);
h3=cekout(input_mi,3);
h4=cekout(input_fa,4);
h5=cekout(input_sol,5);
h6=cekout(input_la,6);
h7=cekout(input_si,7);
h8=cekout(input_do_t,8);
jumlah_dikenal=h1+h2+h3+h4+h5+h6+h7+h8
% ============================================================
% INTERNAL FUNCTION
% ============================================================
function [s1,s1p,s1x]=proses(fwav,b0,fb,pctkoef)%penulisan ini step
dan variabel
% Pemrosesan dari wavread hingga ekstraksi ciri FFT
s1=wavread(fwav);
s1p=prepro(s1,b0,fb); %plot pertanyaan awal
s1x=xfft(s1p,fb,pctkoef);
%============================================================
function x4=prepro(x0,b0,fb)
% Normalisasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L25
x1=x0/max(abs(x0));
%figure(1)
%plot(x1)
% Potong kiri
b1=find(x1>b0 | x1<-b0);
x1(1:b1(1))=[];
%figure(2)
%plot(x1)
% Potong kiri 2
bts=floor(0.25*length(x1));
x1(1:bts)=[];
%figure(3)
%plot(x1)
%frame blocking
x2=x1(1:fb);
%figure(4)
%plot(x2)
% Normalisasi 2
x3=x2/max(abs(x2));
%figure(5)
%plot(x3)
% Windowing
h=hamming(fb);
x4=x3.*h;
%figure(6)
%plot(x4)
% ============================================================
function x3=xfft(x0,fb,pctkoef)
%Ekstraksi ciri FFT
x1=abs(fft(x0));
%figure(1)
%zc=plot(x1)
x2=x1(1:fb/2);
%figure(2)
%zc=plot(x2)
%Ambil seusuai persen koefisien
jumkoef=floor((pctkoef/100)*(fb/2));
x3=x2(1:jumkoef);
x3=x3(:);%hanya pemilihan fungsi vektor saja tidak berpengaruh dalam
fungsi progam keseluruhan
% ============================================================
function z2=hjarak(x,y)
% Menghitung jarak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L26
for k=1:8
z2(k)=jprob(x,y(:,k));
end
% ============================================================
function z1=jprob(x,y)
% x, y : data masukan
% z : data keluaran
c1=(x-y).^2;
c2=x+y;
c3=c1./c2;
z1=2*sum(c3);
% ============================================================
function y=pout(x,n)
% Penentuan keluaran
kel={'Do';'Re';'Mi';'Fa';'Sol';'La';
'Si';'Do_T'};
% Cari n tertangga terdekat
[z2,idx]=sort(x);
%zjarak=z2(1:n);
zidx=idx(1:n);
znn=ceil(zidx/1);
zout=mode(znn);
y=kel{zout};
% ============================================================
function z=cekout(x,y)
% Penghitungan keluaran yang benar
kel={'Do';'Re';'Mi';'Fa';'Sol';'La';
'Si';'Do_T'};
z=0;
for k=1:10
if length(x{k})==length(kel{y})
if x{k}==kel{y}
z=z+1;
end
end
end
% ===========================================================
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L27
LAMPIRAN 5
Hasil Pengenalan Nada Secara Tidak Real-Time
Hasil persentase tingkat pengenalan nada secara tidak real-time pada tabel di bawah ini
merupakan hasil pada database nada 2, 4 dan 8.
Tabel L.1 Hasil Persentase pengenalan nada dengan menggunakan database nada 2 (Hasil
dalam bentuk %)
fb=128 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 12,5 12,5 12,5 12,5 12,5 43,75 18,75 18,75 56,25 25
5 68,75 68,75 75 81,25 75 68,75 75 87,5 81,25 37,5
3 100 100 100 100 100 100 100 93,75 68,75 6,25
1 100 100 100 100 100 100 100 93,75 62,5 18,75
fb=64 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 12,5 12,5 12,5 12,5 12,5 37,5 18,75 25 25 12,5
5 37,5 43,75 50 50 62,5 62,5 62,5 56,25 37,5 25
3 100 100 100 100 100 100 81,25 81,25 43,75 18,75
1 100 100 100 100 100 100 87,5 81,25 37,5 12,5
fb=32 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 18,75 18,75 18,75 18,75 18,75 18,75 18,75 6,25 18,75 18,75
5 50 62,5 43,75 56,25 56,25 62,5 43,75 6,25 18,75 18,75
3 100 93,75 87,5 87,5 87,5 81,25 68,75 50 50 0
1 100 100 87,5 87,5 87,5 87,5 75 62,5 43,75 18,75
fb=16 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 25 18,75 18,75 18,75 25 25 37,5 25 25 12,5
5 25 25 25 37,5 31,25 31,25 43,75 37,5 25 12,5
3 68,75 62,5 62,5 50 50 50 43,75 43,75 18,75 12,5
1 56,25 56,25 56,25 56,25 50 50 56,25 50 18,75 12,5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L28
Tabel L.2 Hasil Persentase pengenalan nada dengan menggunakan database nada 4 (Hasil
dalam bentuk %)
fb=128 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 96,875 96,875 96,875 96,875 96,875 96,875 96,875 96,875 78,125 25
5 100 100 96,875 96,875 100 100 100 100 78,125 25
3 100 100 100 100 100 100 100 100 71,875 21,875
1 100 100 100 100 100 100 100 100 78,125 28,125
fb=64 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 96,875 96,875 96,875 96,875 90,625 84,375 75 75 56,25 25
5 96,875 96,875 96,875 96,875 96,875 96,875 90,625 84,375 56,25 15,625
3 96,875 96,875 96,875 96,875 96,875 96,875 93,75 93,75 56,25 9,375
1 100% 96,875 96,875 96,875 96,875 100% 100% 96,875 59,375 15,625
fb=32 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 93,75 90,625 84,375 84,375 71,875 68,75 65,625 65,625 40,625 3,125
5 93,75 90,625 84,375 87,5 84,375 84,375 68,75 65,625 50 12,5
3 96,875 96,875 96,875 96,875 90,625 87,5 78,125 78,125 56,25 6,25
1 96,875 96,875 96,875 96,875 90,625 93,75 84,375 78,125 46,875 15,625
fb=16 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 50 50 53,125 43,75 46,875 46,875 40,625 37,5 18,75 12,5
5 59,375 56,25 56,25 43,75 46,875 46,875 46,875 34,375 15,625 12,5
3 56,25 56,25 56,25 53,125 62,5 62,5 53,125 40,625 21,875 12,5
1 59,375 53,125 59,375 65,625 65,625 65,625 53,125 46,875 25 12,5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L29
Tabel L.3 Hasil Persentase pengenalan nada dengan menggunakan database nada 8 (Hasil
dalam bentuk %)
fb=128 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 100 100 100 100 100 100 100 100 73,437 21,87
5 100 100 100 100 100 100 100 100 76,562 18,75
3 100 100 100 100 100 100 100 100 81,25 25
1 100 100 100 100 100 100 100 100 78,125 23,43
fb=64 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 100 100 98,437 98,437 95,312 96,875 96,875 95,312 70,312 28,12
5 100 100 100 100 100 100 98,437 96,875 70,312 29,68
3 100 100 100 100 100 100 100 96,875 71,875 26,56
1 100 100 100 100 100 100 100 100 62,5 25
fb=32 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 95,312 95,312 92,187 92,187 90,625 93,75 92,187 87,5 62,5 14,06
5 96,875 98,437 95,312 95,312 90,625 95,312 93,75 95,3125 75 18,75
3 62 98,437 96,875 96,875 93,75 95,312 93,75 95,312 75 14,06
1 98,437 98,437 98,437 96,875 95,312 96,875 95,312 93,75 73,437 15,62
fb=16 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 70,312 70,312 65,625 59,375 64,062 64,062 54,687 59,375 29,687 12,5
5 70,312 73,437 70,312 57,812 64,062 64,062 56,25 59,375 23,437 12,5
3 79,687 78,12 67,187 68,75 70,312 70,312 65,62 60,937 21,875 12,5
1 79,687 81,25 76,562 75 73,437 73,437 65,625 56,25 26,562 12,5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L30
Tabel L.4 Hasil Persentase pengenalan nada dengan menggunakan database nada 1 dengan
masukan 10 tiap masing-masing nada (Hasil dalam bentuk %)
fb=128 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 12,5 12,5 12,5 12,5 12,5 12,5 12,5 12,5 12,5% 11,25%
5 12,5 12,5 12,5 12,5 12,5 23,75 12,5 12,5 37,5% 11,25%
3 12,5 12,5 12,5 13,75 12,5 38,75 26,25 22,5 57,5% 17,5%
1 100 100 98,75 100 100 100 100 98,75 72,5% 21,25%
fb=64 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 12,5 12,5 12,5 12,5 12,5 12,5 12,5 12,5 12,5% 12,5%
5 12,5 12,5 12,5 12,5 12,5 12,5 12,5 13,75 18,75% 15%
3 12,5 12,5 12,5 12,5 12,5 30 15 16,25 36,25% 12,5%
1 97,5 96,25 96,25 96,25 95 90 83,75 83,75 62,5% 17,5%
fb=32 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 12,5 12,5 12,5 12,5 12,5 12,5 12,5 12,5 12,5% 12,5%
5 13,75 13,75 13,75 13,75 13,75 12,5 13,75 16,25 17,5% 12,5%
3 13,75 13,75 13,75 13,75 15 13,75 17,5 12,5 22,5% 18,75%
1 85 85 85 85 77,5 73,75 70 66,25 51,25% 10%
fb=16 100% 90% 80% 70% 60% 50% 40% 30% 20% 10%
7 12,5 12,5 12,5 12,5 12,5 12,5 12,5 12,5 7,5% 12,5%
5 11,25 11,25 10 7,5 7,5 7,5 7,5 13,75 15% 12,5%
3 17 18,75 20 21,25 25 25 22,5 16,25 18,75% 12,5%
1 60 60 61,25 58,75 51,25 51,25 50 52,5 32,5% 12,5%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L31
Gambar L.1 Gambar Grafik Perubahan Windowing Koefisien Terhadap Persentase
Keberhasilan pada Frame Blocking 16, 32, 64 dan 128 pada 2, 4, dan 8 database untuk setiap
nadanya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L33
LAMPIRAN 6
Tabel Jarak Optimal
Tabel di bawah ini digunakan untuk menentukan jarak optimal dari setiap nada.
Pengujian dilakukan dengan menggunakan variasi frame blocking 128, windowing koefisien
50% dan nilai k=1 pada K-NN. Pengujian dilakukan sebanyak 15 kali setiap nadanya.
Do Re Mi Fa Sol La Si Do Tinggi
48.4736 62.1906 11.8329 34.0884 43.6225 97.1024 24.8000 50.4602
51.8049 25.2931 22.1020 37.4926 30.5701 88.0583 23.6257 56.6333
55.0587 65.6902 11.1323 47.0723 34.7650 91.9188 26.0813 47.6388
16.2815 54.9275 22.5755 50.0004 34.4428 86.4520 33.2275 38.0504
32.4245 70.0843 16.4630 32.3239 29.8996 91.9185 24.6953 38.2918
11.4640 46.4862 24.6297 20.4328 57.4214 75.2401 22.9299 48.5768
47.1785 71.5027 13.1462 47.3492 40.5972 75.9746 25.2111 48.9106
21.4210 60.8480 12.6422 35.6173 39.3530 79.5656 16.3684 59.6432
40.3578 45.4710 13.1968 54.8266 49.7949 70.6487 33.8031 18.8119
23.3423 81.5725 42.4711 41.3815 43.7963 105.5574 21.3046 41.6932
52.0327 75.0843 24.6297 50.1204 43.3534 70.3912 23.5883 13.8787
16.2134 42.4462 33.1462 32.2229 31.9323 81.5352 20.6425 40.6030
31.2424 71.5247 32.6422 20.4148 48.1955 93.7781 29.4788 36.0333
11.5545 64.8120 23.1968 47.3462 49.1001 79.1452 15.5194 41.9933
47.6563 47.4129 40.4211 31.2233 33.6461 73.9760 36.6529 62.7467
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI