Pengenalan nada gamelan peking menggunakan DCT dan fungsi jarak kosinus = the Introduction tone gamelan peking use DCT and cosine distance function.

(1)

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.


(2)

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%.


(3)

(4)

(5)

(6)

(7)

(8)

(9)

(10)

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%.


(11)

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.


(12)

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.


(13)

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


(14)

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


(15)

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


(16)

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


(17)

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


(18)

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”.


(19)

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.


(20)

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


(21)

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


(22)

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


(23)

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 :


(24)

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:


(25)

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.


(26)

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


(27)

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 :


(28)

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


(29)

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.


(30)

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


(31)

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.


(32)

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.


(33)

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.


(34)

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.


(35)

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.


(36)

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.


(37)

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.


(38)

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.


(39)

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.


(40)

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;


(41)

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


(42)

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;


(43)

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


(44)

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;


(45)

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;


(46)

[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)


(47)

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)


(48)

[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)


(49)

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);


(50)

%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


(51)

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


(52)

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.


(53)

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 :


(54)

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%


(55)

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


(56)

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.


(57)

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.


(58)

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.


(59)

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;


(60)

0 500 1000 1500 2000 2500 0 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 2500

0 0.5 1 1.5 2 2.5 3 3.5x 10

4

X: 1198 Y: 3.083e+004

0 500 1000 1500 2000 2500

0 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 2500

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 X: 1820 Y: 9505


(61)

0 500 1000 1500 2000 2500 0

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 2500

0 500 1000 1500 2000 2500 3000

X: 1929 Y: 2572


(62)

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


(63)

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)


(64)

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)


(65)

[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)


(66)

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)


(67)

% 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


(1)

% 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.


(2)

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');


(3)

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)


(4)

% 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


(5)

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);


(6)

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];