plagiat merupakan tindakan tidak terpuji - core.ac.uk · sistem pengenalan nada menggunakan...
TRANSCRIPT
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
INTISARI
Musik merupakan salah satu hasil dari budaya manusia di samping arsitektur, sastra,
dan bahasa. Musik dibagi menjadi dua yaitu musik popular dan musik tradisional. Banyak
orang yang belum mengenal alat tradisional, dan belum banyak yang mengerti tentang nada
dari alat musik tradisional sebagai contoh peking. Oleh karena itu diperlukan sistem untuk
mengenali nada alat musik tradisional yang berguna untuk mengenali nada. Alat tradisional
yang digunakan untuk sistem pengenalan nada ini yaitu peking.
Sistem pengenalan ini membutuhkan peking sebagai masukan nada, microphone,
untuk merekam nada dari peking dan laptop untuk bentuk memproses. Sistem pengenalan
nada ini melalui beberapa proses meliputi merekam, normalisasi, pemotongan sinyal, frame
blocking, windowing, ekstraksi ciri, fungsi jarak, dan penentuan nada.
Sistem pengenalan nada menggunakan ekstraksi ciri DCT dan fungsi jarak Kosinus.
Tampilan program meliputi hasil perekaman, ekstraksi ciri DCT, serta tampilan hasil
pengenalan (teks). Sistem pengenalan nada hanya mengenali nada 1(siji), 2(loro), 3(telu),
4(papat), 5(limo), 6(enem), 7(pitu). Hasil tingkat pengenalan terbaik dari variasi DCT 64
yaitu 98%.
Kata kunci : gamelan, peking, DCT, fungsi jarak Kosinus, dan pengenalan nada.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRACT
Music is a one creature from human culture beside architech, literature and language.
Music divided by two there are music popular and music traditional. Many people doesn`t
instrument music tools, example : peking. Because of that there needed a system to know
tune, traditonal music instrument, there are needed to know abaout tune. Traditional
instrument uses to knowing tune system there are peking.
Knowing system need peking to input tune, microphone to record tunes from peking
and laptop to processing. This knowing tune system through some process there are
recording, normalization, signal cutting, frame blocking, windowing, feature ectraction DCT,
range function, tune fixed.
Knowing system use extract feature DCT, windowing Hamming, range function
Cosine. Feature program include product of recording, extraction feature DCT, and feature
output knowing (text). Knowing tune ststem just recognize 1(siji), 2(loro), 3(telu), 4(papat),
5(limo), 6(enem), 7(pitu)’. The result of the project is mic recognition to presented peking
tone about. The result of the best recognition level from the tune variation DCT 64 is 98%.
Key Word : Gamelan, Peking, Discrete Cosine Transform (DCT), range function Cosine, and
tune recognized.
PLAGIAT 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. Ir. Tjendro, M.Kom, Dr. A. Rita Widiarti selaku dosen penguji yang telah
memberikan bimbingan, saran, dan merevisi Tugas Akhir ini.
6. Bapak dan Ibu, terima kasih atas perhatian dan doanya kepada penulis.
7. Terima Kasih kepada teman – teman UKM dan UKF basket USD yang selalu
memberikan doa, tidak bosan – bosannya memberi semangat dalam penyelesaian
Tugas Akhir ini.
8. Blasius Air Dahsyat dan Rendi Pradana yang selalu mengajari, member masukan, dan
membantu dalam penulisan Tugas Akhir ini.
9. Hervy Monica Aransa, Endrico Asan, Antonius Suryadi, Kak Maximilian, Henry Juan
Ndolu, dan Dirga Eka Putra yang tidak bosan – bosannya memberikan dukungan dan
semangat.
10. Teman- teman Teknik Elektro 2010 yang telah memberikan semangat pada saat
menempuh pendidikan di Universitas Sanata Dharma.
Penulis menyadari bahwa dalam penyusunan laporan Tugas Akhir ini masih tidak
lepas dari kesalahan dan mengalami kesusahan. Oleh karena itu, penulis mengharapkan
kritikan, masukan, dan saran yang mendukung agar skripsi ini menjadi lebih baik. Dan
semoga skripsi ini dapat bermanfaaat sebagaimana mestinya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
DAFTAR ISI
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........................................................................................................................... xi
DAFTAR GAMBAR ............................................................................................................ xiv
DAFTAR TABEL ................................................................................................................. xv
BAB I PENDAHULUAN
1.1 Latar Belakang .............................................................................................................. 1
1.2 Tujuan dan Manfaat ...................................................................................................... 1
1.3 Batasan Masalah ............................................................................................................ 2
1.4 Bahan dan Alat .............................................................................................................. 2
1.5 Metodologi Penelitian ................................................................................................... 2
BAB II DASAR TEORI
2.1 Gamelan Peking ............................................................................................................ 3
2.2 Pengenalan Pola ............................................................................................................ 3
2.3 Template Matching ....................................................................................................... 5
2.4 Pengenalan Nada ........................................................................................................... 5
2.4.1 Sampling ........................................................................................................... 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
2.3.2 Normalisasi ....................................................................................................... 6
2.3.3 Frame Blocking ................................................................................................. 6
2.3.4 Windowing Hamming ....................................................................................... 6
2.5 Discrate Cosine Transform (DCT) ............................................................................... 7
2.6 Jarak Kosinus ................................................................................................................ 8
BAB III PERANCANGAN
3.1. Sistem Pengenalan Nada Alat Musik Gamelan Peking ................................................ 9
3.1.1 Gamelan Peking ................................................................................................ 9
3.1.2 Proses Perekaman ............................................................................................. 9
3.1.3 Proses Pengenalan ............................................................................................. 9
3.2 Perancangan Nada Referensi ........................................................................................ 9
3.3 Perancangan Sistem Software ..................................................................................... 11
3.4 Proses Perekaman ........................................................................................................ 11
3.4.1 Normalisasi ..................................................................................................... 12
3.4.2 Pemotongan Sinyal ......................................................................................... 12
3.4.3 Frame Blocking ............................................................................................... 13
3.4.4 Windowing Hamming ..................................................................................... 14
3.4.5 Discrate Cosine Transform (DCT) ................................................................ 15
3.5 Jarak Kosinus .............................................................................................................. 15
3.5.1 Penentuan Hasil Nada ..................................................................................... 16
3.6 Tampilan Program ...................................................................................................... 17
3.7 Perancangan Subsistem Program ................................................................................. 17
3.7.1 Subsistem Sampling ........................................................................................ 18
3.7.2 Subsistem Pengenalan Nada ........................................................................... 18
BAB IV HASIL DAN PEMBAHASAN
4.1. Pengujian Program Pengenalan Nada Gamelan Peking menggunakan Discrate Cosine
Transform dan Jarak Kosinus ..................................................................................... 19
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
4.1.1 Pengenalan Nada ............................................................................................. 21
4.2. Hasil Pengujian Program Pengenalan Nada Terhadap Terhadap Tingkat
Pengenalan Nada Peking............................................................................................. 34
4.2.1 Pengujian untuk Menentukan Tingkat Keberhasilan Nada ............................ 34
4.2.2 Pengujian Nada yang ingin dikenali ............................................................... 35
BAB V KESIMPULAN DAN SARAN
5.1 Kesimpulan ................................................................................................................. 39
5.2 Saran ........................................................................................................................... 39
DAFTAR PUSTAKA ............................................................................................................ 40
LAMPIRAN........................................................................................................................... 40
LAMPIRAN A Percobaan Mencari Spektrum Frekuensi ..................................................... L 1
LAMPIRAN B Program Utama ............................................................................................L 4
LAMPIRAN C Program Windowing Hamming ..................................................................L 18
LAMPIRAN D Program DCT .............................................................................................L 19
LAMPIRAN E Program Fungsi Jarak Kosinus ...................................................................L 19
LAMPIRAN F Program Pembuatan DATA BASE ...........................................................L 19
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
DAFTAR GAMBAR
Gambar 2.1 Gamelan Peking ................................................................................................ 3
Gambar 2.2 Proses Secara Umum Pengenalan Pola ............................................................. 4
Gambar 2.3 Frame Blocking ................................................................................................. 6
Gambar 2.4(a) Sinyal Sinus ...................................................................................................... 7
Gambar 2.4(b) Sinyal Sinus yang Telah Melalui Proses Windowing ........................................ 7
Gambar 3.1 Diagram Proses Pengenalan Nada Referensi .................................................. 10
Gambar 3.2 Diagram Keseluruhan ..................................................................................... 11
Gambar 3.3 Diagram Alur Proses Perekaman .................................................................... 12
Gambar 3.4 Diagram Alur Proses Normalisasi .................................................................. 12
Gambar 3.5 Diagram Alur Proses Pemotongan Sinyal....................................................... 13
Gambar 3.6 Diagram Alur Proses Frame Blocking ............................................................ 14
Gambar 3.7 Diagram Alur Proses Windowing Hamming .................................................. 15
Gambar 3.8 Diagram Alur Proses DCT ............................................................................. 15
Gambar 3.9 Diagram Alur Proses fungsi jarak ................................................................... 16
Gambar 3.10 Diagram Alur Proses Penentuan Hasil Nada ................................................. 17
Gambar 3.11 Tampilan Program GUI pada Pengenalan Nada Musik peking ...................... 17
Gambar 4.1 MATLAB R2010a ......................................................................................... 19
Gambar 4.2 Tampilan Matlab ............................................................................................. 20
Gambar 4.3 Tampilan Program Pengenalan Nada Gamelan peking ................................. 20
Gambar 4.4 Tampilan Hasil Pengenalan Nada ................................................................... 21
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
DAFTAR TABEL
Tabel 3.1 Keterangan Tampilan Program ...................................................................... 18
Tabel 4.1 Pengambilan Data pada percobaan ................................................................ 35
Tabel 4.2 Hasil Pengenalan Nada DCT 16 ..................................................................... 36
Tabel 4.3 Hasil Pengenalan Nada DCT 32 ..................................................................... 36
Tabel 4.4 Hasil Pengenalan Nada DCT 64 ..................................................................... 36
Tabel 4.5 Hasil Pengenalan Nada DCT 128 ................................................................... 37
Tabel 4.6 Hasil Pengenalan Nada DCT 256 ................................................................... 37
Tabel 4.7 Hasil Tingkat Pengenalan ............................................................................... 38
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1 . Latar Belakang
Seni musik sudah sangat melekat di kalangan masyarakat. Begitu pula musik
tradisional yang mana merupakan bagian seni musik dan mulai diminati masyarakat. Salah
satu contoh alat musik tradisional yang biasanya dimainkan dalam permainan musik
karawitan adalah gamelan. Tidak semua orang dapat memainkan alat musik tersebut,
namun ada sebagian orang yang mampu memainkan gamelan. Walaupun demikian
terkadang mereka tidak mengetahui nada yang sedang mereka mainkan atau tidak hafal
dengan nada-nada yang dihasilkan oleh alat musik gamelan. Diperlukan sebuah sistem
yang dapat membantu untuk mengenali nada-nada dari alat musik yang dimainkan[1].
Dalam hal ini yang dimaksud adalah alat musik gamelan peking. Proses dalam
pembuatan sistem bersifat tidak real-time yaitu, menggunakan pengambilan rekaman atau
data kemudian akan diolah untuk proses pengenalannya. Pengenalan telah dicoba oleh
peneliti sebelumnya dengan penelitian berjudul “Pengenalan Nada Saron Pelog
Menggunakan Fungsi Jarak Minkowski” yang dilakukan oleh Joko Prayitno dan
menghasilkan sistem pengenalan nada saron pelog[2]. Peneliti sebelumnya tidak
menggunakan windowing Kaiser lalu menggunakan FFT dan fungsi jarak minkowski
untuk mengenali suara alat musik saron pelog secara tidak real-time dan memeriksa
keakuratan data terhadap hasil proses akhir pada pengenalan nada saron pelog. Oleh karena
itu penelitian kali ini, penulis ingin mengembangkan pengenalan nada dengan alat musik
yang berbeda yaitu gamelan peking dengan menggunakan DCT dan jarak kosinus.
1.2. Tujuan dan Manfaat
Tujuan dari penulisan tugas akhir ini adalah menghasilkan sistem pengenalan
dengan hasil tingkat pengenalan nada terbaik dari variasi DCT 64 yaitu 100%.
Manfaat dari penelitian ini adalah :
Sebagai alat bantu bagi masyarakat dalam membuat dan juga mengenali alat musik
peking supaya mengetahui nada yang ingin dimainkan “1,2,3,4,5,6,7”.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
1.3. Batasan Masalah
Penulis menetapkan beberapa batasan masalah yang dianggap perlu pada
perancangan ini, yaitu sebagai berikut:
a. Nada gamelan peking yang akan dikenali adalah nada 1(ji), 2(ro), 3(lu), 4(pat),
5(mo), 6(nem), dan 7(pi).
b. Menggunakan perangkat lunak (software) komputasi MATLAB 7.0.4 dalam
pembuatan program.
c. Sistem yang dibuat bersifat tidak realtime.
d. Menggunakan windowing hamming
1.4. Bahan dan Alat
Bahan : suara gamelan peking yang terisolasi dalam format wav yang direkam.
Durasi perekaman 2 detik [2]
Alat penelitian : microphone dan program MATLAB.
1.5. Metodologi Penelitian
Langkah-langkah dalam pengerjaan tugas akhir :
a. Mencari dan mengumpulkan bahan-bahan referensi berupa buku-buku dan jurnal-
jurnal.
b. Merancang subsistem software. Tahap ini bertujuan untuk mencari bentuk model
yang optimal dari sistem yang akan dibuat dengan mempertimbangkan berbagai
faktor-faktor permasalahan.
c. Membuat subsistem software.
d. Membuat analisa. Tahapan analisa dapat dilakukan dengan mencari tingkat
pengenalan terbaik dari variasi DCT yang optimal, serta memeriksa keakuratan
data terhadap hasil proses perekaman nada, dengan melihat hasil data dikomputer.
e. Pengujian ini ada 2 subsistem yang akan dilakukan yaitu sampling dan pengenalan
nada. Subsistem sampling melalui beberapa proses yaitu frekuensi sampling dan
durasi perekaman. Kemudian subsistem pengenalan melalui proses variasi DCT
dan frame blocking, yang digunakan mengkonversi data dari hasil perhitungan
windowing yaitu 16, 32, 64, 128, dan 256.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
BAB II
DASAR TEORI
2.1. Gamelan Peking
Peking adalah salah satu bagian dari gamelan saron yang terbagi jadi tiga bagian
yaitu saron demung, saron barung,dan saron peking. Dari itu tiga bagian tersebut memiliki
fungsi dan kegunaan masing-masing. Saron yang memiliki bentuk bilahan dengan enam
atau tujuh bagian (satu oktaf dan satu nada) ditumpangkan pada bingkai kayu yang
berfungsi sebagai resonator. Ditabuh dengan alat yang terbuat dari kayu atau tanduk.
Alat musik gamelan peking sering dimainkan bersama alat musik lain untuk acara
adat di daerah Jawa untuk pagelaran seni musik sebagai satu kesatuan alat musik yang
dimainkan bersama[3]. Berikut merupakan gambar dari gamelan peking yang dapat dilihat
pada gambar 2.1.
Gambar 2.1 Gamelan Peking
2.2. Pengenalan Pola
Pola adalah deskripsi kuantitatif atau struktural pada sebuah objek. Kelas pola
merupakan sekumpulan pola yang terdiri atas beberapa ciri yang sama.
Pengenalan pola merupakan suatu aktivitas manusia secara alami dimana manusia
menerima informasi melalui sensor tubuh yang diproses seketika oleh otak, dan dalam
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
sekejap manusia dapat mengenali sumber informasi secara alami. Keakuratan manusia
untuk dapat melakukan tugas-tugas pengenalan dengan kondisi yang tidak ideal,
contohnya, ketika informasi yang perlukan untuk memproses tersebut tidak jelas atau tidak
lengkap. Sebenarnya, sebagian besar aktivitas kita berdasarkan pada berhasilnya kita dalam
melakukan tugas pengenalan pola. Misalnya, ketika membaca buku, kita mengenali angka,
huruf, kata, dan akhirnya pemikiran dan konsep, sinyal visual kemudian diterima oleh otak
kita yang diproses secara alami tanpa tidak kita sadari.
Pengenalan pola (pattern recognition) suatu proses untuk mengenali pola-pola
terdapat pada sekumpulan data dan menggolongkannya lalu dikelompokkan sehingga pola-
pola yang berada dalam satu kelompok mempunyai kesamaan yang tinggi dan pola-pola
yang berbeda mempunyai tingkat kemiripan yang rendah.
Skema secara umum pengenalan pola dapat dilihat pada gambar dibawah ini:
Gambar 2.2 Proses secara umum pengenalan pola [4]
Pengenalan pola bertujuan untuk menentukan kelompok atau kategori pola berdasar
ciri-ciri yang dimiliki pola tersebut. Dengan kata lain, pengenalan pola dapat membedakan
suatu obyek dengan obyek yang lain.[4]
Sistem pengenalan pola memiliki beberapa pendekatan diantaranya yaitu :
Pendekatan Template Matching
Pendekatan Statistik
Pendekatan Sintatik
Pendekatan Jaringan Syaraf Tiruan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
Pendekatan yang digunakan dalam penelitian ini adalah pendekatan template
matching. Jadi pendekatan yang akan dibahas lebih lanjut pada subbab berikutnya adalah
pendekatan menggunakan template matching.
2.3. Template Matching
Pendekatan pengenalan pola yang paling sederhana dan paling awal dengan
didasarkan pada template matching. Matching adalah operasi generic dalam pengenalan
pola yang digunakan untuk menentukan kesamaan antara dua entitas dari jenis yang sama.
Dalam template matching, bentuk asli dari pola yang menjadi pengenalan yang tersedia.
Pola yang menjadi pengenalan dicocokan terhadap template yang tersimpan. Kesamaan
ukuran dapat di optimalkan berdasarkan template yang tersedia [5].
2.4. Pengenalan Nada
Nada merupakan suatu bunyi yang bisa menjadi tinggi dan rendah. Dengan kata
lain, terdapat suatu langkah untuk mengenali tinggi rendahnya bunyi yang dikeluarkan dari
sumber suara tersebut. Pengenalan nada berfungsi agar bisa mengenali atau
mengidentifikasi nada sehingga dapat dimanfaatkan untuk mengenali bunyi yang
dihasilkan oleh alat musik.
Pengenalan ini menggunakan beberapa proses. Sebagai berikut:
2.4.1. Sampling
Merupakan proses pencuplikan gelombang suara yang akan menghasilkan
gelombang diskrit termodulasi suara. Pada proses sampling ini, ada juga yang disebut
dengan laju pencuplikan (Sampling rate). Fungsi dari sampling rate ini untuk menandakan
jumlah pencuplikan gelombang analog.
Proses sampling rate harus memenuhi kriteria Nyquist. Kriteria Nyquist berbunyi:
frekuensi sampling rate harus minimal dua kali frekuensi tertinggi (bukan bandwidth) yang
dikandung oleh sinyal analog asli. Hal ini dikarenakan jika kurang dari syarat Nyquist
maka hasil sinyal sampling tidak dapat mempresentasikan sinyal analog asli.
Selain itu, penulisan secara matematis dari sampling dapat dilihat dibawah ini.
Dimana: fs = Frekuensi sampling (sampling rate)
fm = Frekuensi tertinggi sinyal analog
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
2.4.2. Normalisasi
Merupakan sesuatu cara yang bisa mengatasi jarak antara sumber suara dengan
mikrofon. Pada perekaman atau pengambilan suara ini perlu adanya normalisasi supaya
amplitude nada saat dimainkan dapat mengeluarkan nada dengan maksimal. Normalisasi
amplitude digunakan dengan cara membagi semua nilai input sendiri, sehingga semua
sinyal masukan memiliki nilai maksimum yang sama yaitu satu. Ada pula perintah yang
digunakan untuk mengkonversi menjadi data maksimum.
2.4.3. Frame Blocking
Frame blocking adalah pembagian sinyal suara menjadi beberapa frame / bagian
dan biasanya untuk satu frame itu terdiri dari data sample (gambar 2.2). Pembagian frame
blocking memiliki jumlah data yang sama yaitu 2N
data. Frame blocking itu tersendiri
berfungsi untuk memilih data yang akan diproses dalam sistem pengenalan nada.
Berikut merupakan gambar dari frame blocking yang dapat dilihat pada gambar 2.2.
Gambar 2.3 Frame blocking [5]
2.4.4. Windowing Hamming
Pengenalan nada pada alat musik peking ini menggunakan windowing hamming.
Windowing berfungsi untuk menghilangkan discontinuitas. Terjadinya discontuinitas
diakibatkan oleh proses frame blocking atau framing. Untuk mendapatkan hasil yang
maksimal pada proses DCT, maka sample suara yang telah dibagi menjadi beberapa frame
perlu dijadikan suara continu dengan cara mengkalikan tiap frame windowing tertentu[6].
Pada pengenalan nada alat musik windowing yang digunakan adalah windowing hamming.
Berikut ini merupakan persamaan dari windowing hamming :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
(
)
Dimana : w(n)= windowing
N = jumlah data dari sinyal
n = waktu diskrit ke-
Sedangkan hasil dari proses windowing hamming dapat dilihat pada gambar[a].
Dimana sinyal kosinus dikalikan dengan persamaan windowing, sehingga menghasilkan
sinyal seperti yang ditunjukan pada gambar 2.4.
a
b
Gambar 2.4 (a) sinyal sinus, (b) sinyal sinus yang telah melalui proses windowing [3]
2.5. Discrete cosine Transform (DCT)
Discrete Cosine Transform adalah teknik untuk mengubah sinyal ke dalam komponen
frekuensi dasar. Discrete Cosine Transform merupakan ekstrasi ciri suatu data suara maupun
gambar[6]. Setelah mengekstaksi ciri, setiap koefisien transform dapat dikodekan secara
independen tanpa kehilangan efisiensi kompresi. Definisi DCT yang paling umum panjang N
adalah:
∑ *
+
Untuk ……., N-1. Dengan cara yang sama, transformasi inversi didefinisikan
sebagai:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
∑ *
+
Untuk = 0,1,2,….., N-1.
Pada persamaan (2.4) dan (2.5) ditetapkan sebagai :
{
√
√
(2.6)
Hal ini jelas dari rumus diatas bahwa untuk √
∑
Koefisien transformasi pertama adalah nilai rata-rata urutan sampel. Nilai ini disebut DC
koefisien semua koefisien transformasi lainnya disebut koefisien AC.
2.6. Fungsi Jarak Kosinus
Fungsi dari jarak kosinus adalah untuk membandingkan antara database dengan
data hasil masukkan secara tidak real-time. Pembandingan data ini yang akan digunakan
untuk mengidentifikasi masukkan yang nantinya akan menghasilkan keluaran akhir dari
sistem program. Fungsi jarak kosinus merupakan proses yang digunakan untuk penentuan
keluaran sebelum keluaran akhir benar-benar dihasilkan. Rumus untuk fungsi jarak kosinus
adalah sebagai berikut :
∑
√∑
√∑
(2.7)
P dan Q semakin mirip jarak nya semakin mendekati nol kemudian P dan Q semakin tidak
mirip jaraknya semakin menjauhi nol.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
BAB III
PERANCANGAN
3.1. Sistem Pengenalan Nada Alat Musik Gamelan Peking
Sistem pengenalan nada merupakan sistem yang dapat mengenali suatu nada pada
alat musik. Sistem pengenalan nada ini menggunakan software yang mana berfungsi
sebagai user interface. Software pada sistem dibuat dengan menggunakan program Matlab
dan batasan dalam sistem ini adalah sistem tidak realtime. Komponen yang digunakan
dalam sistem adalah Gamelan Peking, microphone, dan program Matlab.
3.1.1. Gamelan Peking
Gamelan peking merupakan alat musik yang digunakan sebagi sumber suara dalam
proses pengenalan nada suara. Nada gamelan peking yang dihasilkan adalah 1 (ji), 2 (ro), 3
(lu), 4 (pat), 5(mo), 6(nem), dan 7(pi). Alat musik ini dapat dapat dilihat pada (Gambar
2.1).
3.1.2. Proses Perekaman
Proses perekaman merupakan proses masuknya nada gamelan peking dalam bentuk
sinyal digital. Proses perekaman berawal dari sinyal analog yang dikonversikan menjadi
sinyal digital dan diproses dengan program matlab. Selanjutnya sinyal yang terekam
disimpan dan proses program matlab ditampilkan dalam bentuk plot. Nada yang disimpan
disebut juga nada yang sudah direkam. Nada yang sudah direkam dan disimpan akan
melalui proses pengenalan nada.
3.1.3. Proses Pengenalan
Proses pengenalan merupakan proses dimana nada yang direkam kemudian
dikenali nadanya. Proses pengenalan nada melalui tahapan frame blocking dan normalisasi.
Windowing dalam mengenali nada ini menggunakan windowing hamming, DCT, dan
fungsi jarak kosinus.
3.2. Perancangan Nada Referensi
Untuk merancang suatu pengenalan nada maka dibutuhkan nada acuan atau sering
disebut dengan nada referensi. Nada referensi diperlukan sebagai data base yang nantinya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
akan dibandingkan dengan nada yang akan dikenali. Sistem pengenalan nada gamelan
peking ini menggunakan 10 nada sampel sebagai nada yang akan dikenali tersebut (nada 1,
2, 3, 4, 5, 6, 7) lalu pada nada referensi sebagai data base maka dilakukanlah perhitungan
untuk mendapatkan nada referensinya. Pengambilan nada untuk nada referensi melalui
proses sampling, normalisasi, pemotongan sinyal, frame blocking, windowing, DCT dan
persen koefisien.
Gambar 3.1 Diagram Blok Proses Pengenalan Nada Referensi
Nada referensi yang telah di dapat akan disimpan dalam matriks data base yang
ada dalam sistem pegenalan nada alat musik peking. Nada referensi yang disimpan dalam
sistem pengenalan nada alat musik peking ini berfungsi jika sewaktu-waktu dibutuhkan
dapat langsung dipanggil dalam proses fungsi jarak yang ada dalam sistem. Pada (Gambar
3.1). Untuk mendapatkan nada referensi setiap nada maka dilakukan perhitungan :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
Pada perhitungan diatas adalah nada referensi untuk mencari database akan
dibandingkan dengan nada yang telah direkam dengan perintah jarak. Dengan merekam
suara sebanyak 10 kali untuk digunakan sebagai nada referensi. Dan dari 10 nada yang
dibagi 10 untuk mendapatkan rata-rata nada tersebut akan diperoleh nada referensi. Setelah
itu mendapatkan database, database akan dipanggil akan dicocokan dengan variasi DCT
yang dipanggil untuk masukan variasi.
3.3. Perancangan Sistem Software
Pada pengenalan nada gamelan peking ini terdapat proses-proses yang perlu di
lakukan. Bermula dari perekaman hingga hasil akhir yang menghasilkan tampilan nada
yang di inginkan. Sistem pengenalan gamelan peking ini terdiri dari software yang
berfungsi sebagai user interface. Pada Gambar 3.2 menunjukan keseluruhan pengenalan
nada alat musik peking
Gambar 3.2 Diagram blok keseluruhan
3.4. Proses Perekaman
Pada tahapan perekaman terdapat pula proses-proses yang perlu dilalui. Pada
proses perekaman terdapat masukan nada peking dan sampling sebelum selesai perekaman.
Proses perekaman ini juga menggunakan frekuensi sampling, frekuensi sampling dalam
proses ini sebesar 5000Hz, dari hasil perekaman pencuplikan frekuensi dapat dilihat proses
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
perekaman pada (Gambar 3.3). Dengan durasi pencuplikan sebesar 2 detik[2]. Hasil
keluaran proses berupa .wav.
Gambar 3.3 Diagram alur proses perekaman
3.4.1. Normalisasi
Didalam proses normalisasi, sinyal suara atau sinyal nada harus mempunyai nilai
maksimum. Normalisasi berfungsi untuk mengkonversi data maksimum dalam deret sinyal
nada, yang bernilai |1|. Setelah pencarian nilai maksimum maka yang harus dilakukan
adalah proses normalisasi yang diperlihatkan pada persamaan (2.2). Selanjutnya setelah
mendapatkan pembagian nilai maksimum maka akan didapatkan hasil yang berbentuk
matriks sebagai nilai masukan. Diagram alur normalisasi untuk pengenalan nada gamelan
peking dapat dilihat pada Gambar 3.4.
Gambar 3.4 Diagram Alur Proses Normalisasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
3.4.2. Proses Pemotongan Sinyal
Proses pemotongan sinyal merupakan proses lanjutan dari proses normalisasi.
Pemotongan sinyal digunakan untuk memotong kekosongan pada sinyal nada atau data
nada yang terdapat pada awal dan akhir sinyal. Proses pemotongan dipilih oleh perintah
yang ingin dilakukan. Untuk menghilangkan kekosongan pada sinyal nada gamelan peking
ini dilakukanlah penggunaan nilai |0,2| sebagai batas potong dalam proses pemotongan[4].
Pemotongan sinyal dilakukan dengan input yang berupa sinyal nada peking akan
dipotong pada sisi kiri, supaya menghasilkan sinyal nada peking dan kemudian akan
menghasilkan output data nada gamelan peking yang merupakan data akhir.
Proses pemotongan sinyal ini bergantung nilai batas potong yang terdapat pada m-
file. Proses pemotongan sinyal bagian awal akan dipotong bagian awalnya, sehingga
memperoleh data nada peking untuk menjadi data akhir. Diagram alur proses pemotongan
sinyal dapat dilihat pada Gambar 3.5.
Gambar 3.5 Diagram Alur Proses Pemotongan Sinyal
3.4.3. Frame Blocking
Proses selanjutnya setelah proses pemotongan sinyal adalah proses frame blocking.
Frame blocking bertujuan untuk mengurangi jumlah data sinyal yang akan di proses.
Proses frame blocking menggunakan beberapa angka yaitu 16, 32, 64, 128, dan 256. Pada
proses ini, sample diambil dari data nada terekam yang telah melewati proses pemotongan
sinyal. Nada terekam diperoleh dari data sampling. Langkah pertama yaitu dengan
pemotongan sinyal untuk bagian kiri. Dari titik samping kiri yang didapat ditentukan besar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
data yang akan diambil untuk proses pengenalan nada selanjutnya. Diagram alur proses
frame blocking dapat dilihat pada Gambar 3.6.
Gambar 3.6 Diagram Alur Proses Frame Blocking
3.4.4. Windowing Hamming
Tahapan setelah normalisasi yaitu proses windowing. Pengenalan nada alat musik
peking ini menggunakan windowing hamming sebagai proses selanjutnya. Fungsi dari pada
proses windowing ini untuk mengurangi efek diskontinuitas saat sinyal dirubah ke domain
frekuensi. Penggunaan windowing Hamming dikarenakan windowing hamming
mempunyai main lobe cukup besar dan side lobe yang kecil.
Proses windowing hamming meliputi perhitungan dengan menggunakan nilai frame
yang digunakan ke dalam proses. Nilai frame yang digunakan dinyatakan dengan k dan
hasil proses windowing ini berupa matriks
[ ]
. Hasil windowing inilah yang selanjutnya
akan diproses melalui ekstraksi ciri DCT. Gambar 3.7 menunjukan diagram alur proses
windowing hamming.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Gambar 3.7 Diagram Alur Proses Windowing Hamming
3.4.5 Discrete Cosine Transform(DCT)
Proses selanjutnya yaitu proses pengekstraksian ciri. Pada pengenalan nada alat
musik peking ekstraksi ciri menggunakan DCT dengan rumus yang dapat dilihat pada
persamaan (2.4). Sistem pengenalan nada alat musik peking ini menggunakan koefisien
DCT. DCT adalah pengubahan sinyal dari waktu menjadi koefisien DCT. Sebagian sinyal
diambil dari koefisien DCT yang dapat digunakan sebagai ekstraksi ciri. Untuk
pengambilan sebagian sinyal dapat diambil dari koefisien DCT ke-1 hingga nilai ke-n
(nilai tak terhingga), dengan n adalah panjang DCT. Proses pengenalan nada alat musik
peking ini dievaluasi sejumlah n dari panjang DCT, yaitu 16, 32, 64, 128, dan 256 titik.
Diagram alur proses DCT dapat dilihat pada Gambar 3.8.
Gambar 3.8 Diagram Alur Proses DCT
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
3.5. Jarak Kosinus
Proses selanjutnya yaitu proses fungsi jarak kosinus ini adalah membandingkan
antara database dengan hasil data masukkan secara tidak real-time. Pembanding data ini
akan digunakan untuk mengidentifikasi masukkan yang nanti akan menghasilkan keluaran
akhir dari system program. Pada pengenalan nada peking ini menggunakan jarak kosinus.
Fungsi daripada jarak kosinus yaitu untuk mencari kedekatan antara dua obyek atau
mencari kedekatan antara dua vector lalu untuk menentukan hasil keluaran sebelum
keluaran akhir benar-benar dihasilkan. Gambar 3.9 menunjukan diagram alir proses fungsi
jarak.
Selesai
Masukan :
hasil DCT dan data base
Mulai
Perbandingan fungsi jarak
Keluaran :
Daftar perhitungan jarak
Gambar 3.9 Diagram Alur Proses fungsi jarak
3.5.1. Menentukan hasil nada
Proses ini merupakan akhir daripada proses pengenalan nada alat musik peking.
Hasil pengenalan nada peking ini ditentukan berdasarkan jarak maksimum yang diperoleh
dari perhirungan jarak kosinus. Nilai maksimum kosinus didapatkan dengan menggunakan
rumus (max(h)), h adalah hasil dari perhitungan kosinus. Setelah mendapatkan nilai
maksimum dari hasil perekaman akan ditampilkan dalam bentuk tulisan (teks). Setelah
ditampilkan dalam bentuk tulisan, pengenalan nada peking ini akan selesai bila hasil sesuai
dengan yang diinginkan.
User bisa mengulangi pencarian nada dengan cara menekan tombol reset dan
memulai merekam dengan nada yang diinginkan. Jika user ingin menyelesaikan program
maka user dapat memilih opsi keluar. Gambar 3.10 menunjukan diagram alur proses
penentuan hasil nada.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
Gambar 3.10 Diagram Alur Proses Penentuan Hasil Nada
3.6. Tampilan Program
Tampilan program menggunakan tampilan pada GUI matlab. GUI merupakan
tampilan program interface dengan user. Fungsi GUI yaitu untuk memudahkan user
mengoperasikan sistem pengenalan nada alat musik peking. Program GUI pengenalan nada
peking ini menampilakn plot hasil ekstraksi ciri DCT, dan plot hasil perkaman. Selain
memberikan plot hasil DCT dan plot hasil perekaman, program ini juga memberikan
tampilan untuk nilai variasi DCT yang ingin digunakan user. Gambar 3.11 memperlihatkan
tampilan dari GUI.
Gambar 3.11 Tampilan Program GUI pada Pengenalan Nada Musik peking
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Tabel 3.1 Keterangan Tampilan Program
Nama Bagian Keterangan
Tombol pengenalan Berfungsi untuk mengambil suara nada
alat musik peking
Pengenalan Nada yang keluar saat terdeteksi saat
proses pengenalan suara
Variasi DCT Untuk variasi DCT menggunkan 16,32, 64,
182, 256
Tombol reset
Nada yang keluar saat terdeteksi saat
proses pengenalan suara
Tombol Keluar Berguna untuk mengakhiri proses
pengenalan nada atau keluar dari tampilan
GUI
Nada Masukan
Tersedia nada untuk dipilih sebagai nada
masukan yang ingin disampling oleh
sistem pengenalan nada
Untuk hasil diagram sampling Grafik suara hasil perekaman yang diinput
Untuk hasil diagram DCT
Tampilan data berupa grafik data hasil
DCT
Jarak Menampilkan jarak minimum dari setiap
pengenalan nada yang dikenali oleh
program
3.7. Perancangan Subsistem Program
Pengenalan nada peking memiliki dua subsistem yang penting, yaitu sampling dan
pengenalan nada. Agar pengenalan nada gamelan peking ini dapat dihasilkan dan berjalan
secara maksimal maka diperlukan sebuah variable terkait. Variable berfungsi sebagai
penunjang subsistem dari sampling dan pengenalan nada.
3.7.1. Subsistem sampling
Subsistem sampling memerlukan 2 variabel yaitu frekuensi sampling dan durasi
perekaman. Frekuensi sampling dan durasi dapat ditentukan nilainya setelah
dilakukan percobaan. Berikut nilai frekuensi sampling dan durasi dari hasil
percobaan
a) Frekuensi sampling yang digunakan 5000Hz. Diambil dari dua kali pengambilan
data frekuensi fundamental.
b) Durasi perekaman 2 detik. [lihat lampiran]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
3.7.2. Subsistem Pengenalan Nada
a) Variable DCT pada pengenalan nada gamelan peking yang digunakan untuk
mengkonversi data dari hasil perhitungan windowing adalah 16, 32, 64, 128, dan
256. Data hasil perhitungan DCT menggunakan data riel atau amplitude.
b) Frame blocking yaitu variasi nilai frameblocking menggunakan nilai variasi
seperti variasi DCT.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
BAB IV
HASIL DAN PEMBAHASAN
Perlunya pengujian program karena untuk mengetahui kinerja program bekerja
dengan baik dan sesuai dengan perancangan. Hasil pengujian berupa data-data yang dapat
memperlihatkan bahwa program yang telah dirancang dapat berjalan baik. Analisa proses
kerja dapat digunakan untuk menarik kesimpulan dari penulisan tugas akhir ini.
4.1 Pengujian Program Pengenalan Nada Gamelan Peking
Menggunakan DCT dan Jarak Kosinus
Perancangan program menggunakan software MATLAB R2010a Pada pengujian
program menggunakan laptop dengan spesifikasi:
Prosesor : Intel® Core™ i5-3337U CPU @ 1.8 GHz
RAM : 4.00 GB
Tipe sistem : Sistem operasi 64 bit
Proses pengenalan nada gamelan peking ini dapat dilakukan dengan menjalankan
langkah-langkah dibawah ini :
1. Mengklik dua kali matlab pada layar deskop dengan gambar ikon seperti
Gambar 4.1.
Gambar 4.1 MATLAB R2010a
2. Setelah langkah pertama, akan tampilan utama software Matlab seperti
Gambar 4.2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
Gambar 4.2 Tampilan Matlab
3. Mencari perintah memunculkan gui pada command window untuk tampilan
program pengenalan nada. Lalu muncul program pengenalan nada seperti pada
Gambar 4.3.
Gambar 4.3 Tampilan Program Pengenalan Nada Gamelan peking
4. User memilih input data yang akan dikenali kemudian nilai dari variasi DCT
yang akan digunakan terlebih dahulu sebelum melakukan pengenalan nada. Nilai
variasi DCT yang disediakan adalah 16, 32, 64, 128 dan 256.
5. Setelah user sudah dijalankan dapat memulai pengenalan nada dengan menekan
tombol “ Pengenalan “. Hasil pengenalan nada gamelan peking terlihat pada
Gambar 4.4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Gambar 4.4 Tampilan Hasil Pengenalan Nada
6. User pengenalan dapat diulang kembali pengenalan nada yang berbeda dengan
mengulang kembali ke awal (langkah 4).
7. User bisa mereset kembali program jika terjadi kesalahan dalam pengenalan
nada dengan tombol “Reset”.
8. Jika semuanya sudah berjalan dengan lancar user bisa mengakhiri pengenalan
nada dengan menekan tombol “Keluar”.
4.1.1 Pengenalan Nada
Pengenalan nada dapat dilakukan dengan melakukan berbagai langkah-langkah
seperti yang telah dijelaskan. Tampilan program pengenalan nada dapat dilihat pada gambar
4.3. Pada tampilan pengenalan nada terdapat 2 pop-up menu, 2 axes, 3 pushbutton, dan 15
static text. User bisa memulai pengenalan nada dengan melakukan konfigurasi terlebih
dahulu pada program pengenalan nada. konfigurasi terlebih dahulu pada program pengenalan
nada gamelan peking. Konfigurasi ini diperlukan untuk memilihi nada yang ingin dikenali
dan memilih nilai variasi DCT. Setelah itu baru menentukan variasi yang akan digunakan,
jika ingin memulai pengenalan nada dapat menekan tombol “pengenalan”. Hasil pengenalan
yang ditampilkan adalah plot input data perekaman, plot DCT, dan nada yang berhasil
dikenali. User juga bisa mengulang pengenalan nada dengan nada yang berbeda, nilai variasi
DCT yang berbeda. Untuk mengakhiri pengenalan dapat menekan tombol “keluar” seperti
yang telah dijelaskan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
a. Pop Up Menu
Pada program pengenalan nada gamelan peking ini menggunakan dua pop up
menu nada masukan dan variasi DCT. Untuk pop up menu 1 menampilkan nada
masukan yaitu siji, loro, telu, papat, limo, enem, dan pitu dengan 10 percobaan
setiap nadanya. Sedangkan pop up menu 2 digunakan untuk variasi DCT dengan
variasi 16, 32, 64, 128, dan 256. Berikut ini merupakan contoh program yang
digunakan dalam pop menu 1(gambar 3.2).
indeks=get(handles.popupmenu1,'Value'); %manggil nada/
milih nada
switch indeks
case 1
nada=1;
case 2
nada=2;
case 3
nada=3;
case 4
nada=4;
case 5
nada=5;
case 6
nada=6;
case 7
nada=7;
case 8
nada=8;
case 9
nada=9;
case 10
nada=10;
case 11
nada=11;
case 12
nada=12;
case 13
nada=13;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
case 14
nada=14;
case 15
nada=15;
case 16
nada=16;
case 17
nada=17;
case 18
nada=18;
case 19
nada=19;
case 20
nada=20;
case 21
nada=21;
case 22
nada=22;
case 23
nada=23;
case 24
nada=24;
case 25
nada=25;
case 26
nada=26;
case 27
nada=27;
case 28
nada=28;
case 29
nada=29;
case 30
nada=30;
case 31
nada=31;
case 32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
nada=32;
case 33
nada=33;
case 34
nada=34;
case 35
nada=35;
case 36
nada=36;
case 37
nada=37;
case 38
nada=38;
case 39
nada=39;
case 40
nada=40;
case 41
nada=41;
case 42
nada=42;
case 43
nada=43;
case 44
nada=44;
case 45
nada=45;
case 46
nada=46;
case 47
nada=47;
case 48
nada=48;
case 49
nada=49;
case 50
nada=50;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
case 51
nada=51;
case 52
nada=52;
case 53
nada=53;
case 54
nada=54;
case 55
nada=55;
case 56
nada=56;
case 57
nada=57;
case 58
nada=58;
case 59
nada=59;
case 60
nada=60;
case 61
nada=61;
case 62
nada=62;
case 63
nada=63;
case 64
nada=64;
case 65
nada=65;
case 66
nada=66;
case 67
nada=67;
case 68
nada=68;
case 69
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
nada=69;
case 70
nada=70;
case 71
nada=71;
case 72
nada=72;
case 73
nada=73;
case 74
nada=74;
case 75
nada=75;
case 76
nada=76;
case 77
nada=77;
case 78
nada=78;
case 79
nada=79;
case 80
nada=80;
end
handles.nada=nada;
guidata(hObject,handles);
Program di atas merupakan program dari perekaman nada atau pengambilan
nada pada gamelan peking dengan 1 sampai dengan 10 nada yang akan dikenali
contoh indeks=get(handles.popupmenu1,'Value'); %manggil nada/ milih nada switch
indeks lalu case 80, nada = 80 maka program langsung mengambil nada yang ingin
kita kenali dari directory.
indeks=get(handles.popupmenu2,'Value');
switch indeks
case 1
frame=16;
case 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
frame=32;
case 3
frame=64;
case 4
frame=128;
case 5
frame=256;
end
handles.vardst=frame;
guidata(hObject,handles);
Pada program di atas (gambar 3.2), menjelaskan bahwa nilai variasi pada
frame blocking yang ditampilkan pada pop up menu 2 yaitu 16, 32, 64, 128, dan 256.
Dapat dilihat di atas pada variasi frame blocking menampilkan program yang telah
dirancang, nilai frame blocking diinisialisasi menggunakan nama frame. Frame
tersebut diproses menggunakan perintah handles. Perintah ini digunakan untuk data
atau nilai frame blocking yang telah diinisialisasi sebagai masukan apabila dilakukan
callback.
b. Tombol “Pengenalan”
Tombol “pengenalan” yaitu tombol yang berfungsi untuk melakukan pengenalan
nada gamelan peking. User dapat melakukan pengenalan nada gamelan peking
dengan menekan tombol tersebut. Tombol “pengenalan” memulai pengenalan
nada dengan menjalankan beberapa proses. Proses yang akan dijalankan di awali
dari input nada, normalisasi, pemotongan sinyal, frame blocking, windowing
hamming, ekstrasi ciri DCT, jarak kosinus, dan menentukan hasil pengenalan
nada. Program yang dgunakan untuk perekaman nada menggunakan perintah
waverecord dan waveread yang terdapat pada perintah Matlab pada gambar 3.2
suara yang terekam dan yang telah disimpan dipanggil kembali menggunakan
perintah wavread dilakukan inisialisasiannilai frame blocking dan proses ekstraksi
ciri DCT:
% handles structure with handles and user data (see GUIDATA)
nada=handles.nada;
if (nada==1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
[y,fs]=wavread('ji_0.wav');
elseif (nada==2)
[y,fs]=wavread('ji_1.wav');
Elseif (nada==3)
[y,fs]=wavread('ji_2.wav');
elseif (nada==4)
[y,fs]=wavread('ji_3.wav');
elseif (nada==5)
[y,fs]=wavread('ji_4.wav');
elseif (nada==6)
[y,fs]=wavread('ji_5.wav');
elseif (nada==7)
[y,fs]=wavread('ji_6.wav');
elseif (nada==8)
[y,fs]=wavread('ji_7.wav');
elseif (nada==9)
[y,fs]=wavread('ji_8.wav');
elseif (nada==10)
[y,fs]=wavread('ji_9.wav');
elseif (nada==11)
[y,fs]=wavread('ro_0.wav');
elseif (nada==12)
[y,fs]=wavread('ro_1.wav');
elseif (nada==13)
[y,fs]=wavread('ro_2.wav');
elseif (nada==14)
[y,fs]=wavread('ro_3.wav');
elseif (nada==15)
[y,fs]=wavread('ro_4.wav');
elseif (nada==16)
[y,fs]=wavread('ro_5.wav');
elseif (nada==17)
[y,fs]=wavread('ro_6.wav');
elseif (nada==18)
[y,fs]=wavread('ro_7.wav');
elseif (nada==19)
[y,fs]=wavread('ro_8.wav');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
elseif (nada==20)
[y,fs]=wavread('ro_9.wav');
elseif (nada==21)
[y,fs]=wavread('pat_0.wav');
elseif (nada==22)
[y,fs]=wavread('pat_1.wav');
elseif (nada==23)
[y,fs]=wavread('pat_2.wav');
elseif (nada==24)
[y,fs]=wavread('pat_3.wav');
elseif (nada==25)
[y,fs]=wavread('pat_4.wav');
elseif (nada==26)
[y,fs]=wavread('pat_5.wav');
elseif (nada==27)
[y,fs]=wavread('pat_6.wav');
elseif (nada==28)
[y,fs]=wavread('pat_7.wav');
elseif (nada==29)
[y,fs]=wavread('pat_8.wav');
elseif (nada==30)
[y,fs]=wavread('pat_9.wav');
elseif (nada==31)
[y,fs]=wavread('mo_0.wav');
elseif (nada==32)
[y,fs]=wavread('mo_1.wav');
elseif (nada==33)
[y,fs]=wavread('mo_2.wav');
elseif (nada==34)
[y,fs]=wavread('mo_3.wav');
elseif (nada==35)
[y,fs]=wavread('mo_4.wav');
elseif (nada==36)
[y,fs]=wavread('mo_5.wav');
elseif (nada==37)
[y,fs]=wavread('mo_6.wav');
elseif (nada==38)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
[y,fs]=wavread('mo_7.wav');
elseif (nada==39)
[y,fs]=wavread('mo_8.wav');
elseif (nada==40)
[y,fs]=wavread('mo_9.wav');
elseif (nada==41)
[y,fs]=wavread('nem_0.wav');
elseif (nada==42)
[y,fs]=wavread('nem_1.wav');
elseif (nada==43)
[y,fs]=wavread('nem_2.wav');
elseif (nada==44)
[y,fs]=wavread('nem_3.wav');
elseif (nada==45)
[y,fs]=wavread('nem_4.wav');
elseif (nada==46)
[y,fs]=wavread('nem_5.wav');
elseif (nada==47)
[y,fs]=wavread('nem_6.wav');
elseif (nada==48)
[y,fs]=wavread('nem_7.wav');
elseif (nada==49)
[y,fs]=wavread('nem_8.wav');
elseif (nada==50)
[y,fs]=wavread('nem_9.wav');
elseif (nada==51)
[y,fs]=wavread('pi_0.wav');
elseif (nada==52)
[y,fs]=wavread('pi_1.wav');
elseif (nada==53)
[y,fs]=wavread('pi_2.wav');
elseif (nada==54)
[y,fs]=wavread('pi_3.wav');
elseif (nada==55)
[y,fs]=wavread('pi_4.wav');
elseif (nada==56)
[y,fs]=wavread('pi_5.wav');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
elseif (nada==57)
[y,fs]=wavread('pi_6.wav');
elseif (nada==58)
[y,fs]=wavread('pi_7.wav');
elseif (nada==59)
[y,fs]=wavread('pi_8.wav');
elseif (nada==60)
[y,fs]=wavread('pi_9.wav');
elseif (nada==61)
end
axes(handles.axes1);
plot (y)
sound(2*y);
Nada yang telah berhasil diinput tersebut dimasuk pada tampilan program pengenalan
menggunakan perintah plot. Nada terekam akan dimasukan pada axes yang telah tersedia
didalam tampilan program. Kemudian dimasukan program sound(2*y); untuk mengeluarkan
bunyi pada nada input yang diambil. Setelah proses perekaman, program akan diproses untuk
mengenali hasil rekaman tersebut supaya bisa dikenali. Proses lainnya yang harus dilakukan
yaitu pemotongan sinyal. Nada yang berhasil direkam akan dipotong dengan batas potong
sebesar |0,2| dari sebelah kiri sinyal sebagai batas potongan untuk pemotongan sinyal. Setelah
diproses pemotongan itu selesai maka langkah selanjutnya memilih data disebut juga frame
blocking, langkah selanjutnya adalah windowing, pada pengenalan nada gamelan peking ini
menggunakan windowing hamming. Setelah selesai proses windowing hamming lanjut proses
ekstraksi ciri DCT.berikut ini merupakan proses pengolahan pemotong sinyal hingga
windowing hamming :
% Normalisasi % (gambar 3.4)
y=y/max(abs(y));
(handles);
plot (y)
%pemotongan sinyal (gambar 3.5)
b0=0.2;
b1=find(y>b0 | y<-b0);
y(1:b1(1))=[];
(handles);
plot (y)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
%frame blocking (gambar 3.6)
frame=handles.vardst;
frame;
for p=1:frame;
f(p)=y(p+frame);
end
(handles);
plot (f);
%windowing hamming (gambar 3.7)
w=hamming(frame);
for p=1:frame;
wo(p)=f(p)*w(p); %wo(p)==> windowing hamming (p)
end
Proses selanjutnya setelah penggambaran sinyal nada gamelan peking adalah
proses pemanggilan database yang telah disesuaikan dengan masukan variasi DCT
yang telah dpilih oleh user sebelumnya. Program database menggunakan logika if
else agar database mempunyai kesamaan dengan nilai variasi DCT yang telah dipilih
sebelumnya oleh user. Program dibawah ini merupakan contoh dari program
pemanggilan database.
%data base (gambar 3.2)
if (frame==16)
load xciri16100
elseif (frame==32)
load xciri32100
elseif (frame==64)
load xciri64100
elseif (frame==128)
load xciri128100
elseif (frame==256)
load xciri256100
end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Program di atas untuk pemanggilan database akan dibandingkan dengan nada
yang telah direkam dengan perintah jarak. Database yang dipanggil disesuaikan
dengan variasi DCT yang dipanggil untuk masukan variasi.
Setelah proses pemanggilan database, lalu dilanjutkan dengan proses membandingkan
database dengan data masukan yang di massukan user pada input nada. Perbandingan
data-data tersebut menggunakan metode jarak kosinus. Program perhitungan jarak
sebagai berikut:
%perhitunganjarak (gambar 3.9)
for n=1:7
jaraklist(n)=jarakcos(g',m(:,n));
end
set(handles.text8,'String',num2str(jaraklist(1)));
set(handles.text9,'String',num2str(jaraklist(2)));
set(handles.text10,'String',num2str(jaraklist(3)));
set(handles.text11,'String',num2str(jaraklist(4)));
set(handles.text12,'String',num2str(jaraklist(5)));
set(handles.text13,'String',num2str(jaraklist(6)));
set(handles.text14,'String',num2str(jaraklist(7)));
%cari nilai minimal (gambar 3.10)
jmin=find(min(jaraklist)==jaraklist)
%deskripsi string
nadalist={'ji','ro','lu','pat','mo','nem','pi'};
%penentuan keluaran
yy=(nadalist(jmin));
set(handles.text15,'String',yy);
Program yang ada di atas melakukan perhitungan jarak nada input yang sudah
direkam dengan database dari tujuh nada gamelan peking dalam variasi DCT. Program
perintah jarak berfungsi untuk menjalankan fungsi jarak kosinus. Nilai jarak minimal yang
diperoleh akan digunakan untuk menentukan nada gamelan peking yang berhasil dikenali.
Pada program di atas juga untuk tidak mengenali ( dikenali salah ) nada yang akan
dikenali. Untuk tidak mengenali nada selain nada gamelan peking, dengan cara
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
membandingkan jarak minimal yang telah diperoleh saat pengenalan dengan batas
maksimal dari ketujuh nada gamelan peking. Nada yang telah dikenali ditampilkan pada
tampilan program pengenalan dalam bentuk teks.
c. Tombol “Reset”
Tombol “reset” atau ulang digunakan apabila user mengulang di awal lagi
program pengenalan nada. Perintah program tombol “reset” sebagai berikut:
delete(figure(guimaleh));
figure(guimaleh);
d. Tombol “Exit”
Tombol “exit” atau keluar digunakan jika user ingin mengakhiri program
pengenalan nada. Program yang digunakan untuk perintah tombol “exit” sebagai
berikut:
delete(figure(guimaleh));
Kesimpulan dari pengujian program pengenalan gamelan peking adalah tombol
terdapat pada tampilan program dapat berjalan dengan baik dan alur program telah
sesuai dengan perancangan. Sistem pengenalan nada juga sudah dapat berjalan
dengan lancar dan sesuai dengan yang diinginkan
4.2 Hasil Pengujian Program Pengenalan Nada Terhadap Tingkat
Pengenalan Nada Gamelan Peking
4.2.1 Pengujian untuk Menentukan Tingkat Keberhasilan Nada
Pada pengujian ini akan dilakukan untuk menentukan tingkat keberhailan nada yang
muncul. Parameter yang mempunyai tingkat keberhasilan paling baik DCT 64, 128, dan 256.
Pengujian ini saya menggunakan DCT 16, 32, 64, 128, dan 256 untuk pengujian, lalu
pengujian dilakukan tiap nada 10 kali percobaan setiap nadanya dan dari 10 percobaan nada
tersebut akan mendapatkan hasil dari nada tersebut akan dibanding oleh program perhitungan
jarak minimumnya. Setelah mendapat 10 nada tersebut, akan dicari hasil dari data berapa
persen keberhasilan pada variasi DCT 16, 32, 64, 128, dan 256.
Tabel 4.1 Pengambilan Data pada percobaan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
Input Output
1 2 3 4 5 6 7
1 3 7 0 0 0 0 0
2 0 8 2 0 0 0 0
Tabel 4.1 memperlihatkan contoh percobaan, untuk selengkapnya dari 5 kali
pengambilan data ini. Dari tabel tersebut menunjukan nada yang dikenali tidak selalu sama
pada percobaan diatas terdapat pada nada 1 (siji) jadi yang dikenali keluarannya adalah nada
1(siji), pada percobaan nada input 2 jadi yang dikenali adalah nada 2 (loro).
4.2.2 Pengujian Nada yang ingin dikenali
Pengujian untuk melihat seberapa besar tingkat pengenalan yang terjadi setiap
penentuan nada pada variasi DCT. Langkah – langkah pengujian yang digunakan sebagai
berikut:
1. Proses pengambilan nada input yang sudah direkam 10 kali setiap nada
2. Mengenali setiap nada yang di input menggunakan nilai variasi DCT yang
berbeda-beda dengan nilai 16, 32, 64, 128, dan 256.
3. Menentukan kombinasi nilai variasi pengenalan yang menghasilkan tingkat
pengenalan terbaik.
Proses pengenalan nada gamelan peking pada setiap nada memiliki tingkat presentase
proses pengenalan, perhitungan persamaan (4.1) dilakukan untuk mendapatkan persentase
pengenalan keseluruhan nada yang di ujikan setiap sample nada.
Tingkat Pengenalan(%) =
(4.1)
Pengujian dilakukan pada variasi DCT yang di awali dari variasi DCT 16 kemudian
dilanjutkan ke variasi DCT 32 selanjutnya, diharapkan untuk memperoleh hasil sesuai yang
diinginkan. Pada tabel 4.2 menunjukan hasil pengujian dari :
Tabel 4.2 Hasil Pengenalan Nada DCT 16
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
Input Output
1 2 3 4 5 6 7
1 3 7 0 0 0 0 0
2 0 8 2 0 0 0 0
3 0 0 9 1 0 0 0
4 0 0 0 6 4 0 0
5 0 0 0 1 9 0 0
6 0 0 0 4 5 0 1
7 0 0 0 0 1 0 9
62%
Tabel 4.3 Hasil Pengenalan Nada DCT 32
Input
Output
1 2 3 4 5 6 7
1 1 9 0 0 0 0 0
2 0 10 0 0 0 0 0
3 0 0 10 0 0 0 0
4 0 0 0 10 0 0 0
5 0 0 0 0 7 3 0
6 0 0 0 0 0 10 0
7 0 0 0 0 0 0 10
82%
Tabel 4.4 Hasil Pengenalan Nada DCT 64
Input
Output
1 2 3 4 5 6 7
1 10 0 0 0 0 0 0
2 0 10 0 0 0 0 0
3 0 0 10 0 0 0 0
4 0 0 0 10 0 0 0
5 0 0 0 0 10 0 0
6 0 0 0 0 0 10 0
7 0 0 0 0 0 0 100
100%
Tabel 4.5 Hasil Pengenalan Nada DCT 128
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
Input
Output
1 2 3 4 5 6 7
1 10 0 0 0 0 0 0
2 0 10 0 0 0 0 0
3 0 0 10 0 0 0 0
4 0 0 0 10 0 0 0
5 0 0 0 0 10 0 0
6 0 0 0 0 0 10 0
7 0 0 0 0 0 0 10
100%
Tabel 4.6 Hasil Pengenalan Nada DCT 256
Input
Output
1 2 3 4 5 6 7
1 10 0 0 0 0 0 0
2 0 10 0 0 0 0 0
3 0 0 10 0 0 0 0
4 0 0 0 10 0 0 0
5 0 0 0 0 10 0 0
6 0 0 0 0 0 10 0
7 0 0 0 0 0 0 10
100%
Keterangan : 1-10 = adalah nada output yang dikenali
0 = nada yang tidak ada output
Pada tabel diatas dapat dilihat dari 35 kali percobaan dengan 10 kali percobaan
pada setiap nada terdapat beberapa nada yang presentasi pengenalannya rendah dan ada juga
nada yang presentasi keberhasilannya tinggi. Pada tabel percobaan tingkat hasil pengenalan
nada di atas variasi DCT 16, 32, 64, 128,dan 256 menunjukan hasil tingkat pengenalan tiap
variasi DCT dari 64 dengan hasil tingkat pengenalan 100% karena frame blocking yang di uji
mempunyai kesamaan informasi yang ada di database. Muncul banyak error pada variasi
DCT 16 dan 32 itu karena pada saat percobaan untuk mencari hasil tingkat pengenalan pada
variasi DCT 16 karena frame blocking yang di uji tidak mempunyai kesamaan informasi
yang ada di database tersebut. Terjadinya error di variasi DCT 16 dan 32 karena jarak
minimum dari tiap-tiap input akan terbaca yang mana input paling mendekati jarak
minimumnya lalu dari outputnya akan muncul angka mana yang paling mendekatin jarak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
minimumnya. Untuk melihat hasil pengenalan nada variasi DCT dapat dilihat ditabel
percobaan pada tingkat pengenalan variasi DCT 16 dan 32.
Tabel 4.7 Hasil Tingkat Pengenalan Variasi DCT
DCT Tingkat Pengenalan
16 62%
32 82%
64 100%
128 100%
256 100%
Pada tabel 4.7 dapat kita lihat hasil dari percobaan pada setiap pengenalan nada
yang dimulai dari variasi DCT 16, 32, 64, 128, dan 256. Ketika melakukan percobaan variasi
yang terbaik yaitu dimulai dari DCT 64 lalu 128 dan 256 yaitu 100% tingkat pengenalan
variasinya. Dan bisa kita lihat dari tabel di atas semakin besar variasi DCT semakin besar
juga hasil tingkat pengenalan variasi DCT yang dilakukan pada saat percobaan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dari hasil percobaan dan pengujian sistem pengenalan nada gamelan peking ini
disimpulkan sebagai berikut :
1. Sistem pengenalan nada gamelan peking sudah bisa berjalan dengan baik dan
sesuai perancangan. Program pengenalan nada gamelan peking ini sudah
mampu untuk mengenali nada – nada dasar dari gamelan peking yaitu 1(siji),
2(loro), 3(telu), 4(papat), 5(limo), 6(enem), 7(pitu).
2. Pengenalan nada nilai variasi DCT mempengaruhi tingkat pengenalan nada.
Semakin besar nilai DCT tingkat pengenalan nada secara umum semakin
baik.
3. Tingkat keberhasilan pengenalan nada mencapai 98% pada pengambilan data
nada pada variasi DCT minimal 64.
5.2 Saran
Saran untuk pengembangan lebih lanjut sebagai berikut :
a) Pengembangan sistem yang mampu untuk mengenali semua jenis alat musik
tradisional atau alat musik modern yang tidak hanya satu alat musik yang
dikenali.
b) Mengenali melodi pada alat musik gamelan peking.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
DAFTAR PUSTAKA
[1] Slampack.,2006., Makalah Tentang Sejarah Gamelan,
http://www.scribd.com/doc/108831640/MAKALAH-GAMELAN#scribd
diakses tanggal 31 agustus 2015
[2] Prayitno., Joko, 2012, Pengenalan Nada Saron Pelog Menggunakan Jarak
Minkowski, Tugas Akhir S.T, Fakultas Sains Dan Teknologi Universitas Sanata
Dharma, Yogyakarta.
[3] Purnomo, Daryoto Eko., 2001, Nama Instrumen Gamelan Dan Fungsinya,
http://wonojoyo.com/sejarah-gamelan-jawa/ diakses tanggal 30 agustus 2015
[4] Nugroho., Damianus Beni Cahyo, 2008, Pengenalan Pola Huruf Jawa
Menggunakan Algoritma BackPropagation, Tugas Akhir S.T, Fakultas Sains
Dan Teknologi Universitas Sanata Dharma, Yogyakarta.
[5] Jain, A., Duin, R. P. W., & Mao, J (2000). Statistical pattern recognition: A
riview. Pattern analysis and machine intellingence, IEEE Transactions
on,22(1), p. 4-37.
[6] Eka Kartikasari, Y., 2006, Pembuatan Software Pembuka Program aplikasi
Komputer Berbasis Pengenalan Sinyal Suara,Tugas Akhir S.T,. ITS,
Surabaya.
[7] Cha, Sung-Hyuk, 2007, International Journal Of Mathematical Models And
Methods In Applied Sciences, Comprehensive Survey on Distance/Similarity
Measures between Probability Density Functions., Vol 1, no 20, hal 302.
[8] Ali Khayam, S., 2003, The Discrete Cosine Transform, Department of
Electrical & Computer Engineering Michigan State University, ECE 802-602.
[9] Dahsyat., Blasius Air, 2015, Pengenalan Nada Cetik Secara Real Time
Menggunakan Discrete Cosine Transform Dan Jarak Hellinger, Tugas Akhir
S.T, Fakultas Sains Dan Teknologi Universitas Sanata Dharma, Yogyakarta.
[10] Bab 2 landasan teori., 2007,
http://library.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00228-IF%20Bab2.
pdf, diakses tanggal 9 september 2015.
[11] Gunawan, D., dan Hilman Juwono, F., 2012, Pengolahan Sinyal Digital
dengan Pemrograman Matlab, Graha Ilmu, Yogyakarta.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L1
LAMPIRAN A PERCOBAAN MENCARI SPEKTRUM FREKUENSI DARI NADA
GAMELAN PEKING DENGAN MATLAB
Tujuan :
1. Mengetahui frekuensi tertinggi dari nada gamelan peking 2. Mengetahui frekuensi sampling
Variabel :
1. Menggunakan frekuensi sampling 5000Hz 2. Durasi sampling sebesar 2 detik
Program :
fs = 5000;%fsampling 5000Hz
y = wavrecord (2*fs,fs,'double');%% 2 detik
wavwrite(y,fs,'sample2s5000Hz19.wav');
[y,fs]=wavread('sample2s5000Hz19.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;%output
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L2
0 500 1000 1500 2000 25000
0.5
1
1.5
2
2.5
3
3.5x 10
4
X: 1295
Y: 3.067e+004
0 500 1000 1500 2000 2500
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
x 104
X: 1720
Y: 4.912e+004
Hasil Plotting (Fs = 5000Hz): Nada Siji (1) Nada Loro (2)
Nada Telu (3) Nada Papat (4)
Nada Limo (5)
0 500 1000 1500 2000 25000
0.5
1
1.5
2
2.5
3
3.5x 10
4
X: 1198
Y: 3.083e+004
0 500 1000 1500 2000 25000
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5x 10
4
X: 1457
Y: 4.644e+004
0 500 1000 1500 2000 25000
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
X: 1820
Y: 9505
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L3
0 500 1000 1500 2000 25000
0.5
1
1.5
2
2.5x 10
4
X: 2178
Y: 2.042e+004
Nada Enem (6) Nada Pitu (7)
Kesimpulan :
1. Frekuensi (f) pada do tinggi f fundamental sebesar 2178Hz pada nada 7(pitu). 2. Tidak ditemukan harmonisa pada frekuensi Fs=5000Hz
0 500 1000 1500 2000 25000
500
1000
1500
2000
2500
3000
X: 1929
Y: 2572
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L4
LAMPIRAN B
Listing Program
function varargout = guimaleh(varargin) % GUIMALEH M-file for guimaleh.fig % GUIMALEH, by itself, creates a new GUIMALEH or raises the existing % singleton*. % % H = GUIMALEH returns the handle to a new GUIMALEH or the handle to % the existing singleton*. % % GUIMALEH('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in GUIMALEH.M with the given input arguments. % % GUIMALEH('Property','Value',...) creates a new GUIMALEH or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before guimaleh_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to guimaleh_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 guimaleh % Last Modified by GUIDE v2.5 11-Dec-2015 00:43:04 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @guimaleh_OpeningFcn, ... 'gui_OutputFcn', @guimaleh_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{:}); else gui_mainfcn(gui_State, varargin{:});
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L5
end % End initialization code - DO NOT EDIT % --- Executes just before guimaleh is made visible. function guimaleh_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 guimaleh (see VARARGIN) % Choose default command line output for guimaleh handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes guimaleh wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = guimaleh_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 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) nada=handles.nada; if (nada==1) [y,fs]=wavread('ji_0.wav'); elseif (nada==2) [y,fs]=wavread('ji_1.wav'); elseif (nada==3) [y,fs]=wavread('ji_2.wav'); elseif (nada==4) [y,fs]=wavread('ji_3.wav'); elseif (nada==5) [y,fs]=wavread('ji_4.wav'); elseif (nada==6) [y,fs]=wavread('ji_5.wav');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L6
elseif (nada==7) [y,fs]=wavread('ji_6.wav'); elseif (nada==8) [y,fs]=wavread('ji_7.wav'); elseif (nada==9) [y,fs]=wavread('ji_8.wav'); elseif (nada==10) [y,fs]=wavread('ji_9.wav'); elseif (nada==11) [y,fs]=wavread('ro_0.wav'); elseif (nada==12) [y,fs]=wavread('ro_1.wav'); elseif (nada==13) [y,fs]=wavread('ro_2.wav'); elseif (nada==14) [y,fs]=wavread('ro_3.wav'); elseif (nada==15) [y,fs]=wavread('ro_4.wav'); elseif (nada==16) [y,fs]=wavread('ro_5.wav'); elseif (nada==17) [y,fs]=wavread('ro_6.wav'); elseif (nada==18) [y,fs]=wavread('ro_7.wav'); elseif (nada==19) [y,fs]=wavread('ro_8.wav'); elseif (nada==20) [y,fs]=wavread('ro_9.wav'); elseif (nada==21) [y,fs]=wavread('lu_0.wav'); elseif (nada==22) [y,fs]=wavread('lu_1.wav'); elseif (nada==23) [y,fs]=wavread('lu_2.wav'); elseif (nada==24) [y,fs]=wavread('lu_3.wav'); elseif (nada==25) [y,fs]=wavread('lu_4.wav'); elseif (nada==26) [y,fs]=wavread('lu_5.wav'); elseif (nada==27) [y,fs]=wavread('lu_6.wav'); elseif (nada==28) [y,fs]=wavread('lu_7.wav'); elseif (nada==29) [y,fs]=wavread('lu_8.wav'); elseif (nada==30) [y,fs]=wavread('lu_9.wav'); elseif (nada==31) [y,fs]=wavread('pat_0.wav'); elseif (nada==32)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L7
[y,fs]=wavread('pat_1.wav'); elseif (nada==33) [y,fs]=wavread('pat_2.wav'); elseif (nada==34) [y,fs]=wavread('pat_3.wav'); elseif (nada==35) [y,fs]=wavread('pat_4.wav'); elseif (nada==36) [y,fs]=wavread('pat_5.wav'); elseif (nada==37) [y,fs]=wavread('pat_6.wav'); elseif (nada==38) [y,fs]=wavread('pat_7.wav'); elseif (nada==39) [y,fs]=wavread('pat_8.wav'); elseif (nada==40) [y,fs]=wavread('pat_9.wav'); elseif (nada==41) [y,fs]=wavread('mo_0.wav'); elseif (nada==42) [y,fs]=wavread('mo_1.wav'); elseif (nada==43) [y,fs]=wavread('mo_2.wav'); elseif (nada==44) [y,fs]=wavread('mo_3.wav'); elseif (nada==45) [y,fs]=wavread('mo_4.wav'); elseif (nada==46) [y,fs]=wavread('mo_5.wav'); elseif (nada==47) [y,fs]=wavread('mo_6.wav'); elseif (nada==48) [y,fs]=wavread('mo_7.wav'); elseif (nada==49) [y,fs]=wavread('mo_8.wav'); elseif (nada==50) [y,fs]=wavread('mo_9.wav'); elseif (nada==51) [y,fs]=wavread('nem_0.wav'); elseif (nada==52) [y,fs]=wavread('nem_1.wav'); elseif (nada==53) [y,fs]=wavread('nem_2.wav'); elseif (nada==54) [y,fs]=wavread('nem_3.wav'); elseif (nada==55) [y,fs]=wavread('nem_4.wav'); elseif (nada==56) [y,fs]=wavread('nem_5.wav'); elseif (nada==57) [y,fs]=wavread('nem_6.wav');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L8
elseif (nada==58) [y,fs]=wavread('nem_7.wav'); elseif (nada==59) [y,fs]=wavread('nem_8.wav'); elseif (nada==60) [y,fs]=wavread('nem_9.wav'); elseif (nada==61) [y,fs]=wavread('nem_0.wav'); elseif (nada==52) [y,fs]=wavread('nem_1.wav'); elseif (nada==53) [y,fs]=wavread('nem_2.wav'); elseif (nada==54) [y,fs]=wavread('nem_3.wav'); elseif (nada==55) [y,fs]=wavread('nem_4.wav'); elseif (nada==56) [y,fs]=wavread('nem_5.wav'); elseif (nada==57) [y,fs]=wavread('nem_6.wav'); elseif (nada==58) [y,fs]=wavread('nem_7.wav'); elseif (nada==59) [y,fs]=wavread('nem_8.wav'); elseif (nada==60) [y,fs]=wavread('nem_9.wav'); elseif (nada==61) [y,fs]=wavread('pi_0.wav'); elseif (nada==62) [y,fs]=wavread('pi_1.wav'); elseif (nada==63) [y,fs]=wavread('pi_2.wav'); elseif (nada==64) [y,fs]=wavread('pi_3.wav'); elseif (nada==65) [y,fs]=wavread('pi_4.wav'); elseif (nada==66) [y,fs]=wavread('pi_5.wav'); elseif (nada==67) [y,fs]=wavread('pi_6.wav'); elseif (nada==68) [y,fs]=wavread('pi_7.wav'); elseif (nada==69) [y,fs]=wavread('pi_8.wav'); elseif (nada==70) [y,fs]=wavread('pi_9.wav'); elseif (nada==71) end axes(handles.axes1); plot (y) sound(2*y);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L9
% Normalisasi % y=y/max(abs(y)); %pemotongan sinyal b0=0.2; b1=find(y>b0 | y<-b0); y(1:b1(1))=[]; %frame blocking frame=handles.vardst; %frame; for p=1:frame; f(p)=y(p+frame); end %windowing hamming w=hamming(frame); for p=1:frame; wo(p)=f(p)*w(p); %wo(p)==> windowing hamming (p) end %ekstraksi ciri DCT g=abs(dct(wo)); axes(handles.axes2); bar (g); %data base if (frame==16) load xciri16100 elseif (frame==32) load xciri32100 elseif (frame==64) load xciri64100 elseif (frame==128) load xciri128100 elseif (frame==256) load xciri256100 end %perhitungan jarak for n=1:7 jaraklist(n)=jarakcos(g',m(:,n)); end jaraklist
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L10
set(handles.text8,'String',num2str(jaraklist(1))); set(handles.text9,'String',num2str(jaraklist(2))); set(handles.text10,'String',num2str(jaraklist(3))); set(handles.text11,'String',num2str(jaraklist(4))); set(handles.text12,'String',num2str(jaraklist(5))); set(handles.text13,'String',num2str(jaraklist(6))); set(handles.text14,'String',num2str(jaraklist(7))); %cari nilai minimal jmin=find(min(jaraklist)==jaraklist) %deskripsi string nadalist={'ji','ro','lu','pat','mo','nem','pi'}; %penentuan keluaran yy=(nadalist(jmin)); %end set(handles.text15,'String',yy); % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) delete(figure(guimaleh)); figure(guimaleh); % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) % 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) delete(figure(guimaleh)); % --- 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 = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu1 % 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'); %manggil nada/ milih nada switch indeks case 1 nada=1;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L11
case 2 nada=2; case 3 nada=3; case 4 nada=4; case 5 nada=5; case 6 nada=6; case 7 nada=7; case 8 nada=8; case 9 nada=9; case 10 nada=10; case 11 nada=11; case 12 nada=12; case 13 nada=13; case 14 nada=14; case 15 nada=15; case 16 nada=16; case 17 nada=17; case 18 nada=18; case 19 nada=19; case 20 nada=20; case 21 nada=21; case 22 nada=22; case 23 nada=23; case 24 nada=24; case 25 nada=25; case 26 nada=26; case 27
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L12
nada=27; case 28 nada=28; case 29 nada=29; case 30 nada=30; case 31 nada=31; case 32 nada=32; case 33 nada=33; case 34 nada=34; case 35 nada=35; case 36 nada=36; case 37 nada=37; case 38 nada=38; case 39 nada=39; case 40 nada=40; case 41 nada=41; case 42 nada=42; case 43 nada=43; case 44 nada=44; case 45 nada=45; case 46 nada=46; case 47 nada=47; case 48 nada=48; case 49 nada=49; case 50 nada=50; case 51 nada=51; case 52 nada=52;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L13
case 53 nada=53; case 54 nada=54; case 55 nada=55; case 56 nada=56; case 57 nada=57; case 58 nada=58; case 59 nada=59; case 60 nada=60; case 61 nada=61; case 62 nada=62; case 63 nada=63; case 64 nada=64; case 65 nada=65; case 66 nada=66; case 67 nada=67; case 68 nada=68; case 69 nada=69; case 70 nada=70; case 71 nada=71; case 72 nada=72; case 73 nada=73; case 74 nada=74; case 75 nada=75; case 76 nada=76; case 77 nada=77; case 78
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L14
nada=78; case 79 nada=79; case 80 nada=80; end handles.nada=nada; 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) indeks=get(handles.popupmenu2,'Value'); switch indeks case 1 frame=16; case 2 frame=32; case 3 frame=64; case 4 frame=128; case 5 frame=256; end handles.vardst=frame; guidata(hObject,handles); % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu2 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu2 % --- 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L15
% 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 edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (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 edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (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 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'))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L16
set(hObject,'BackgroundColor','white'); end function edit3_Callback(hObject, eventdata, handles) % hObject handle to edit3 (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 edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a double % --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) % hObject handle to edit3 (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 function edit4_Callback(hObject, eventdata, handles) % hObject handle to edit4 (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 edit4 as text % str2double(get(hObject,'String')) returns contents of edit4 as a double % --- Executes during object creation, after setting all properties. function edit4_CreateFcn(hObject, eventdata, handles) % hObject handle to edit4 (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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L17
function edit5_Callback(hObject, eventdata, handles) % hObject handle to edit5 (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 edit5 as text % str2double(get(hObject,'String')) returns contents of edit5 as a double % --- Executes during object creation, after setting all properties. function edit5_CreateFcn(hObject, eventdata, handles) % hObject handle to edit5 (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 function edit6_Callback(hObject, eventdata, handles) % hObject handle to edit6 (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 edit6 as text % str2double(get(hObject,'String')) returns contents of edit6 as a double % --- Executes during object creation, after setting all properties. function edit6_CreateFcn(hObject, eventdata, handles) % hObject handle to edit6 (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 function edit7_Callback(hObject, eventdata, handles) % hObject handle to edit7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L18
% Hints: get(hObject,'String') returns contents of edit7 as text % str2double(get(hObject,'String')) returns contents of edit7 as a double % --- Executes during object creation, after setting all properties. function edit7_CreateFcn(hObject, eventdata, handles) % hObject handle to edit7 (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 function edit8_Callback(hObject, eventdata, handles) % hObject handle to edit8 (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 edit8 as text % str2double(get(hObject,'String')) returns contents of edit8 as a double % --- Executes during object creation, after setting all properties. function edit8_CreateFcn(hObject, eventdata, handles) % hObject handle to edit8 (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
LAMPIRAN C Windowing Hamming %windowing hamming w=hamming(frame); for p=1:frame; wo(p)=f(p)*w(p); %wo(p)==> windowing hamming (p) end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L19
LAMPIRAN D
Program DCT
%ekstraksi ciri DCT g=abs(dct(wo)); axes(handles.axes2); bar (g);
LAMPIRAN E
Jarak
%perhitungan jarak for n=1:7 jaraklist(n)=jarakcos(g',m(:,n)); end
LAMPIRAN F
Data Base
function dbxciriok frame=16; %panjang frame blocking wk=10; z1=zciri('ji_1',frame,wk); z2=zciri('ro_1',frame,wk); z3=zciri('lu_1',frame,wk); z4=zciri('pat_1',frame,wk); z5=zciri('mo_1',frame,wk); z6=zciri('nem_1',frame,wk); z7=zciri('tu_1',frame,wk); z=[z1 z2 z3 z4 z5 z6 z7]; save xciri1016 z %============================================= % INTERNAL FUNCTION %============================================= function z=zciri (nada,frame,wk) x1=wavread ([nada '1.wav']);y1=xcirixy (x1,frame,wk); x2=wavread ([nada '2.wav']);y2=xcirixy (x2,frame,wk); x3=wavread ([nada '3.wav']);y3=xcirixy (x3,frame,wk); x4=wavread ([nada '4.wav']);y4=xcirixy (x4,frame,wk); x5=wavread ([nada '5.wav']);y5=xcirixy (x5,frame,wk);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L20
x6=wavread ([nada '6.wav']);y6=xcirixy (x6,frame,wk); x7=wavread ([nada '7.wav']);y7=xcirixy (x7,frame,wk); x8=wavread ([nada '8.wav']);y8=xcirixy (x8,frame,wk); x9=wavread ([nada '9.wav']);y9=xcirixy (x9,frame,wk); x10=wavread ([nada '10.wav']);y10=xcirixy (x10,frame,wk); z=[(y1+y2+y3+y4+y5+y6+y7+y8+y9+y10)/10]; %=============================================
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI