• Tidak ada hasil yang ditemukan

ANALISIS ALGORITMA MFCC UNTUK PENGENALAN POLA KUNCI GITAR MELALUI SUARA TESIS MATRA PRIMA SITUMEANG

N/A
N/A
Protected

Academic year: 2022

Membagikan "ANALISIS ALGORITMA MFCC UNTUK PENGENALAN POLA KUNCI GITAR MELALUI SUARA TESIS MATRA PRIMA SITUMEANG"

Copied!
107
0
0

Teks penuh

(1)

ANALISIS ALGORITMA MFCC UNTUK PENGENALAN POLA KUNCI GITAR MELALUI SUARA

TESIS

MATRA PRIMA SITUMEANG 147038086

PROGRAM MAGISTER S2 TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMATIKA UNIVERSITAS SUMATERA UTARA

MEDAN

2016

(2)

ANALISIS ALGORITMA MFCC UNTUK PENGENALAN POLA KUNCI GITAR MELALUI SUARA

TESIS

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Magister Teknik Informatika

MATRA PRIMA SITUMEANG 147038086

PROGRAM MAGISTER S2 TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMATIKA UNIVERSITAS SUMATERA UTARA

MEDAN

2016

(3)

Judul : ANALISIS ALGORITMA MFCC UNTUK PENGENALAN POLA KUNCI GITAR MELALUI SUARA

Nama : Matra Prima Situmeang Nomor Induk Mahasiswa : 147038086

Program Studi : Magister (S2) Teknik Informatika

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Prof. Dr. Drs. Iryanto, M.Si. Dr. Syahril Efendi, S.Si, M.IT

Diketahui/disetujui oleh :

Program Studi Magister (S2) Teknik Informatika Ketua,

Prof. Dr. Muhammad Zarlis NIP. 1957070701 198601 1 003

(4)

ANALISIS ALGORITMA MFCC UNTUK PENGENALAN POLA KUNCI GITAR MELALUI SUARA

T E S I S

Saya menyatakan bahwa tesis ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Februari 2017

Matra Prima Situmeang NIM.147038086

(5)

AKADEMIS

Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan di bawah ini :

Nama : Matra Prima Situmeang

NIM : 147038086

Program Studi : Magister S2 Teknik Informatika Jenis Karya Imliah : Tesis

Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Sumatera Utara Hak Bebas Royalti Non-Ekskutif (No-Exclusive Royalty Free Right) atas tesis saya yang berjudul :

ANALISIS ALGORITMA MFCC UNTUK PENGENALAN POLA KUNCI GITAR MELALUI SUARA

Beserta perangkat yang ada (Jika diperlukan). Dengan Hak Bebas Royaliti Non-Ekslusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media, memformat, mengelola dalam bentuk database, merawat dan mempublikasikan tesis saya tanpa meminta izin dari saya selama tetap mencantumkan nama saya sebagai penulis dan sebagai pemegang dan/atau sebagai pemilik hak cipta.

Demikian pernyataan ini dibuat dengan sebenarnya.

Medan, Februari 2017

Matra Prima Situmeang 147038086

(6)

_____________________________________________________________________

PANITIA PENGUJI TESIS

Ketua : Dr. Syahril Efendi, S.Si., M.IT Anggota : 1. Prof. Dr. Drs. Iryanto, M.Si

2. Prof. Dr. Saib Suwilo, M.Sc 3. Prof. Dr. Muhammad Zarlis

(7)

DATA PRIBADI

Nama Lengkap (berikut gelar) : Matra Prima Situmeang, S.Kom.

Tempat dan Tanggal Lahir : Balige, 04 Desember 1991

Alamat Rumah : Jl. Jahe 14 No. 10 Perumnas Simalingkar Medan

Telepon/Hp : 081281829531

E-mail : [email protected]

DATA PENDIDIKAN

SD : Swasta Kaisarea Medan Tamat : 2004 Tahun SLTP : Swasta Budi Murni 2 Medan Tamat : 2007 Tahun SMA : Swasta Methodist 1 Medan Tamat : 2010 Tahun Strata-1 : Ilmu Komputer Unika

Santo Thomas SU Medan Tamat : 2014 Tahun

(8)

limpahan rahmat dan karunia-Nya sehingga tesis ini dapat diselesaikan. Dan dengan selesainya tesis ini, perkenankanlah penulis mengucapkan terima kasih kepada :

1. Rektor Universitas Sumatera Utara Prof. Dr. Runtung Sitepu, SH., M.Hum atas kesempatan yang diberikan untuk mengikuti dan menyelesaikan pendidikan Program Magister di Universitas Sumatera Utara.

2. Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, Prof. Dr. Opim Salim Sitompul, M.Sc.

3. Ketua Prodi Magister Teknik Informatika, Prof. Dr. Muhammad Zarlis, M.Sc.

4. Sekretaris Prodi Magister Teknik Informatika, M. Andri Budiman, S.T., M.Comp.Sc, MEM.

5. Prof. Dr. Drs. Iryanto, M.Si yang telah menuntun dan membimbing hingga selesainya penelitian ini.

6. Dr. Syahril Efendi, S.Si., M.IT. yang telah memberikan dorongan, bimbingan dan juga arahan hingga selesainya penelitian ini.

7. Seluruh Dosen dan Pegawai pada Program Studi Magister Teknik Informatika Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

8. Ayahanda Maringan Situmeang, ST., M.Kom, ibunda Tarida Simatupang, Am.Keb., SKM, serta adik penulis Adijaya Utama Situmeang, dan Trison Sila Situmeang, berserta seluruh keluarga atas segala pengorbanan yang telah diberikan, baik berupa moril maupun materil, serta budi baik, kiranya Tuhan YME memberikan berkat kepada semuanya.

9. Seluruh teman-teman seperkuliahan di Prodi Magister Teknik Informatika Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Medan, , Februari 2017

Matra Prima Situmeang NIM. 147038086

ABSTRAK

(9)

Rumitnya komputasi MFCC sehingga memberikan pengaruh pada kecepatan komputasi. Hal ini mendorong munculnya penelitian yang berkaitan dengan percepatan komputasi. Di antaranya adalah studi algoritma Efficient MFCC di mana pada penelitian ini efisiensi dilakukan pada tahapan hamming window. Studi lainnya yaitu MFCC Enhancement menawarkan beberapa kajian – kajian tentang peluang untuk dapat meningkatkan algoritma MFCC.

Penelitian ini adalah termasuk sebagai upaya percepatan komputasi algoritma MFCC, di mana percepatan komputasi dilakukan dengan paralelisasi pada tahapan Fast Fourier Transform (FFT). Sehingga paralelisasi FFT secara logis akan menambah kecepatan komputasi (speed up, SU).

Hasil penelitian ini mendapatkan bahwa pada percobaan untuk masing chord A-Major, B-Major, C-Major, D-Major, E-Major, F-Major, dan G-Major dengan variasi pulse code modulation (PCM) 16 bit, dan 32 bit, serta jumlah frame per detik 48.000, 88.200, dan 96.000 menunjukkan bahwa FFT-Paralel dapat mempercepat waktu eksekusi MFCC dengan rerata 3 kali lebih cepat dibandingkan dengan MFCC yang menggunakan FFT-Serial.

Kata Kunci : MFCC, Mel Frequency, Paralel Processing, Fast Fourier Transform, Chord, Guitar

ABSTRACT

(10)

fact has coused the emergence of researchest that are related to its computation’s acceleration of computing. Among these studies, Efficient MFCC algorithm in which the efficiency of this study performed on stage hamming window. Other study is MFCC Enhancement offers some studies on the opportunities to improve the MFCC algorithm.

This study is included as an effort to accelerate the MFCC algorithm computation, where the acceleration of parallelization of computing is done in stages with Fast Fourier Transform (FFT). Logically, FFT parallelization will speed up the computation.

This study has found that in the trials for each chord A-Major, B-Major, C-Major, D- Major, E-Major, F-Major and G-Major with the variation of pulse code modulation (PCM) 16 bit, and 32-bit, as well as the number of frames per second, 48,000, 88,200, and 96,000, the FFT-Parallel can speed up MFCC by 3 times faster (on average) than the MFCC which uses FFT-Serial.

Keywords : MFCC, Mel Frequency, Paralel Processing, Fast Fourier Transform, Chord, Guitar

(11)

Hal

LEMBAR PENGESAHAN .………..……… i

PERNYATAAN ORISINALITAS ……….. ii

PERNYATAAN PERSETUJUAN PUBLIKASI ……… iii

PANITIA PENGUJI………. iv

RIWAYAT HIDUP ……….. v

UCAPAN TERIMAKASIH ………. vi

ABSTRAK ……… vii

ABSTRACT ………. viii

DAFTAR ISI ………... ix

DAFTAR TABEL ……….. xi

DAFTAR GAMBAR ……….. xii

BAB 1 PENDAHULUAN………..……… 1

1.1. Latar Belakang Masalah………..………. 1

1.1.1. Algoritma MFCC………..……… 1

1.1.2. Musik dan Chord ………….………..…………. 1

1.1.3. Pengenalan Pola Chord Gitar………..…………. 2

1.2. Rumusan Masalah………..……….. 3

1.3. Tujuan Penelitian………..……… 3

1.4. Batasan Dan Ruang Lingkup Penelitian……….. 3

BAB 2 TINJAUAN PUSTAKA………..……….. 4

2.1. Musik Dan Chord Gitar………..……….. 4

2.1.1. Musik………..……….. 4

2.1.2. Chord Gitar………..………. 5

2.1.3. Pengenalan Pola Chord Gitar………..…………. 6

2.2. Komputasi Paralel………..……….. 7

2.3. Pattern Recognition………..……… 9

2.3.1. Bit Rate………..………... 11

2.3.2. Sampling Rate………..……… 11

2.4. Ekstraksi Fitur………..………. 12

2.4.1. Mel-Frequency Ceptrum Coefficients (MFCC) ………... 13

2.4.2. Pre-emphasis………..……….. 14

2.4.3. Framing………..……… 14

2.4.4. Windowing………..……… 15

2.4.5. Discrete Fourier Transform………..………… 15

2.4.6. Mel Filter Bank Processing………..……… 18

2.4.7. Discrete Cosine Transform………..………. 19

BAB 3 METODE PENELITIAN………..………. 20

3.1. Alat Penelitian………..……… 21

3.2. Pengumpulan Data Chord ………..……….. 21

3.3. Analisis Algoritma fft_serial dan Paralelisasi proses FFT ……… 22

3.4. Pengujian Chord Gitar dengan Proses fft_serial……… 27

(12)

BAB 4 HASIL DAN PEMBAHASAN………..………. 30

4.1. Hasil Pembahasan………..………... 30

4.1.1. Input Data ……….………..………. 30

4.1.2. PCM dan Framing………..……….. 35

4.1.3. Hasil Representasi Grafis………..………... 37

4.1.4. Hasil FFT Serial………..……….. 43

4.1.5. Hasil FFT Paralel ………..……….. 44

4.2. Pembahasan………..……… 45

4.2.1. PCM 16 bit dan PCM 32 bit Dan Jumlah Byte……… 45

4.2.2. Jumlah Framing Perdetik Dan Waktu Eksekusi……….. 49

4.2.2.1. Proses Serial………..……….. 49

4.2.2.2. Proses Paralel………..……… 55

4.2.3. Percepatan (Speed Up) ………..………. 61

BAB 5 KESIMPULAN DAN SARAN………..………. 85

5.1. Kesimpulan………..……… 85

5.2. Saran………..……….. 85 DAFTAR PUSTAKA

LAMPIRAN 1 Hasil FFT Serial LAMPIRAN 2 Hasil FFT Paralel

(13)

Hal Tabel 2.1. Fret, Nada Dan Frekuensi pada Gitar

……….

5

Tabel 3.1. Power of two ……….………. 25

Tabel 3.2. Komputasi dalam Looping (for 3) ………. 26

Tabel 3.3. Bentuk catatan hasil pengujian fft_serial……… 28

Tabel 3.4. Bentuk catatan hasil pengujian fft_paralel……… 28

Tabel 3.5. Speed Up……….……… 29

Tabel 4.1. Frame dan PCM Pada Chord Major……… 37 Tabel 4.2. Proses FFT Serial untuk Chord A-Major……… 45

Tabel 4.3. Proses FFT Paralel untuk Chord A-Major……….. 46

Tabel 4.4. Chord A-Major, PCM 16 bit, PCM 32 bit dan Jumlah Byte……….. 47

Tabel 4.5. Chord B-Major, PCM 16 bit, PCM 32 bit dan Jumlah Byte……….. 47

Tabel 4.6. Chord C-Major, PCM 16 bit, PCM 32 bit dan Jumlah Byte……….. 48

Tabel 4.7. Chord D-Major, PCM 16 bit, PCM 32 bit dan Jumlah Byte……….. 48

Tabel 4.8. Chord E-Major, PCM 16 bit, PCM 32 bit dan Jumlah Byte……….. 49

Tabel 4.9. Chord F-Major, PCM 16 bit, PCM 32 bit dan Jumlah Byte……….. 49

Tabel 4.10. Chord G-Major, PCM 16 bit, PCM 32 bit dan Jumlah Byte……….. 50

Tabel 4.11. Proses Serial Chord A-Major, Frame Dan Rerata waktu eksekusi………. 51

Tabel 4.12. Proses Serial Chord B-Major, Frame Dan Rerata waktu eksekusi………. 52

Tabel 4.13. Proses Serial Chord C-Major, Frame Dan Rerata waktu eksekusi………. 52

Tabel 4.14. Proses Serial Chord D-Major, Frame Dan Rerata waktu eksekusi………. 53

Tabel 4.15. Proses Serial Chord E-Major, Frame Dan Rerata waktu eksekusi……….. 54 Tabel 4.16. Proses Serial Chord F-Major, Frame Dan Rerata waktu eksekusi……….. 55 Tabel 4.17. Proses Serial Chord G-Major, Frame Dan Rerata waktu eksekusi………. 56

Tabel 4.18. Proses Paralel Chord A-Major, Frame Dan Rerata waktu eksekusi……... 56

Tabel 4.19. Proses Paralel Chord B-Major, Frame Dan Rerata waktu eksekusi……… 57 Tabel 4.20. Proses Paralel Chord C-Major, Frame Dan Rerata waktu eksekusi……… 58 Tabel 4.21. Proses Paralel Chord D-Major, Frame Dan Rerata waktu eksekusi……... 59

Tabel 4.22. Proses Paralel Chord E-Major, Frame Dan Rerata waktu eksekusi……… 60 Tabel 4.23. Proses Paralel Chord F-Major, Frame Dan Rerata waktu eksekusi……… 60

Tabel 4.24. Proses Paralel Chord G-Major, Frame Dan Rerata waktu eksekusi……... 61

Tabel 4.25. Speed Up Chord A-Major, PCM 16 bit Jumlah Frame / detik 48.000…… 62 Tabel 4.26. Speed Up Chord A-Major, PCM 16 bit Jumlah Frame / detik 88.200…… 64 Tabel 4.27. Speed Up Chord A-Major, PCM 16 bit Jumlah Frame / detik 96.000…… 66 Tabel 4.28. Speed Up Chord A-Major, PCM 32 bit Jumlah Frame / detik 48.000…… 68 Tabel 4.29. Speed Up Chord A-Major, PCM 32 bit Jumlah Frame / detik 88.200…… 70 Tabel 4.30. Speed Up Chord A-Major, PCM 32 bit Jumlah Frame / detik 96.000…… 73 Tabel 4.31. Speed Up Chord B-Major, PCM 16 bit……….. 74

(14)

Tabel 4.36. Speed Up Chord D-Major, PCM 32 bit……….. 80

Tabel 4.37. Speed Up Chord E-Major, PCM 16 bit……….. 80

Tabel 4.38. Speed Up Chord E-Major, PCM 32 bit……….. 82

Tabel 4.39. Speed Up Chord F-Major, PCM 16 bit……….. 82

Tabel 4.40. Speed Up Chord F-Major, PCM 32 bit……….. 83

Tabel 4.41. Speed Up Chord E-Major, PCM 16 bit……….. 84

Tabel 4.42. Speed Up Chord E-Major, PCM 32 bit……….. 85

(15)

Hal Gambar 2.1. (Atas) Frekuensi Nada Teratur (bawah) Frekuensi nada tidak teratur 4

Gambar 2.2. Frekuensi Nada Open E pada Gitar………. 5

Gambar 2.3. Gabungan Frekuensi Nada Perfect fifth dan Major Triad………….. 6

Gambar 2.4. Spektrum Chord C dengan nada C, E, dan G………. 7

Gambar 2.5. Sampling Sinyal………..……… 11

Gambar 2.6. Tahapan Proses MFCC………..…………. 13

Gambar 2.7. Framing Signal………..……….. 14

Gambar 2.8. Data flow Diagram untuk N=8 Radix-2 FFT………. 17

Gambar 2.9. Pseudocode Radix-2 DIT FFT………..…... 17

Gambar 2.10. Mel scale filter bank………..……….. 18

Gambar 3.1. Alur Metode Penelitian………..……….. 20

Gambar 3.2. Proses Feature Extraction Pada MFCC ………. 23

Gambar 3.3. Algoritma Radix 2 Decimation in Frequency (rad2DIF) …………... 24

Gambar 3.4. Paralelisasi Looping (for 3) ………..……. 27

Gambar 4.1. Tampilan Antar Muka Pemasukan Data………. 31

Gambar 4.2. Pemilihan Kunci Gitar………...……….. 32

Gambar 4.3. Pemilihan PCM ……….………. 33

Gambar 4.4. Pemilihan Frame Rate ………...………. 33

Gambar 4.5. Besar File Dan Tampilan Gelombang Suara Chord..………. 34

Gambar 4.6. Waktu Eksekusi FFT Serial ……….………….………. 35

Gambar 4.7. Waktu Eksekusi FFT Paralel Dan SPEED UP..………. 35

Gambar 4.1. ( a) Chord A-Major, PCM 16 bit, Frame 48000………. 39

Gambar 4.1. ( b) Chord A-Major, PCM 16 bit, Frame 88200………. 39

Gambar 4.1. ( c) Chord A-Major, PCM 16 bit, Frame 96000………. 39

Gambar 4.2. Chord B-Major, PCM 16 bit, Frame 48000……… 40

Gambar 4.3. Chord C-Major, PCM 16 bit, Frame 48000……… 41

Gambar 4.4. Chord D-Major, PCM 16 bit, Frame 48000……… 41

Gambar 4.5. Chord E-Major, PCM 16 bit, Frame 48000……… 43

Gambar 4.6. Chord F-Major, PCM 16 bit, Frame 48000……… 43

Gambar 4.7. Chord G-Major, PCM 16 bit, Frame 48000……… 44

Gambar 4.8. Waktu Eksekusi FFT-Serial dan FFT-Paralel untuk Chord A-Major, PCM 16 bit, Jumlah Frame per Detik 48.000 ……… 63

Gambar 4.9. Speed Up FFT-Serial dan FFT-Paralel untuk Chord A-Major, PCM 16 bit, Jumlah Frame per Detik 48.000 ……….. 63

Gambar 4.10. Waktu Eksekusi FFT-Serial dan FFT-Paralel untuk Chord A-Major, PCM 16 bit, Jumlah Frame per Detik 88.200 ……… 65

Gambar 4.11. Speed Up FFT-Serial dan FFT-Paralel untuk Chord A-Major, PCM 16 bit, Jumlah Frame per Detik 88.200 ……… 65

Gambar 4.12. Waktu Eksekusi FFT-Serial dan FFT-Paralel untuk Chord A-Major, PCM 16 bit, Jumlah Frame per Detik 96.000 ……… 67

Gambar 4.13. Speed Up FFT-Serial dan FFT-Paralel untuk Chord A-Major, PCM 16 bit, Jumlah Frame per Detik 96.000 ……… 67

Gambar 4.14. Waktu Eksekusi FFT-Serial dan FFT-Paralel untuk Chord A-Major, PCM 32 bit, Jumlah Frame per Detik 48.000 ……… 69

(16)

PCM 32 bit, Jumlah Frame per Detik 88.200 ……… 71 Gambar 4.17.

Speed Up FFT-Serial dan FFT-Paralel untuk Chord A-Major, PCM

32 bit, Jumlah Frame per Detik 88.200 ……… 71 Gambar 4.18. Waktu Eksekusi FFT-Serial dan FFT-Paralel untuk Chord A-Major,

PCM 32 bit, Jumlah Frame per Detik 96.000 ……… 73 Gambar 4.19. Speed Up FFT-Serial dan FFT-Paralel untuk Chord A-Major, PCM

32 bit, Jumlah Frame per Detik 96.000 ……….. 73

(17)

BAB 1 PENDAHULUAN

1.1. Latar Belakang Masalah 1.1.1. Algoritma MFCC

Mel Frequency Ceptral Coeficient (MFCC) merupakan algoritma dalam mengekstraksi ciri (feature extraction, FE) dari suara. (Muda, L. et al 2010). Representasi dari hasil FE adalah sebuah matrik vektor ciri. Algoritma MFCC ini dibuat berdasarkan sistem persepsi pendengaran manusia. (Tiwari, V. 2010).

Selain MFCC, masih terdapat alagoritma FE seperti Liniear Predictive Ceptral Coefficient (LPCC), Bark Frequency Ceptral Coeficient (BFCC) dalam konteks pengenalan suara (voice recognition, VR) (Gulzar, T et al 2014). Analisis Performansi MFCC dan LPCC (Rana M. et al 2014) menyimpulkan bahwa performansi MFCC lebih baik dibanding dengan LPCC. Penelitian Komparasi untuk ketiga algoritma FE ini menyimpulkan bahwa MFCC adalah yang terbaik di antara ketiganya (Gulzar, T. et al 2014).

Tahapan – tahapan FE dari suara menjadi sebuah koefisien dalam algoritma MFCC (Chakraborty, K. et al 2014) adalah Pre Emphasis, Sampling dan Windowing, Fast Fourier Transform (FFT), Mel Filter Bank (MFB), dan Discrete Cosine Transform (Dhingra, S. D. et al 2013). Tahapan proses FE dijelaskan pada (Muda, L. et al 2010) 1.1.2. Musik dan Kord

Musik merupakan deskripsi simbolis dari partitur (Müller

Dari sudut pandang fisik, suara musik merupakan gelombang akustik yang merambat melalui udara sebagai osilasi tekanan. Istilah Audio musik digunakan untuk merujuk pada transmisi, penerimaan, atau reproduksi suara dalam batas-batas pendengaran manusia. Sinyal audio merupakan representasi dari suara. Sebagai , M., 2015) yang akan dimainkan. Musisi memainkan karya musik melalui instrument sesuai dengan deskripsi simbolis seperti tempo musik, dinamika, ritmis, dan partitur.

(18)

representasi audio yang mengkodekan semua informasi yang diperlukan untuk mereproduksi realisasi akustik dari musik. Dalam sebuah representasi audio, catatan parameter seperti kali onset, pitches atau durasi not tidak diberikan secara eksplisit. Hal ini membuat analisis dan perbandingan sinya musik menjadi tugas yang sulit, khususnya berkaitan dengan musik polifonik, di mana instrumen yang berbeda dan suara yang ditumpangkan pada satu sama lain. Selanjutnya, persepsi suara tidak hanya tergantung pada sifat tujuan dari gelombang akustik, tetapi juga pada kriteria subjektif sebagai hasil dari pengolahan kompleks suara mengalami oleh telinga manusia dan otak.

Dalam suatu deskripsi musik terdapat Skala (Kornfeld, J., 2005) C-D-E-F-G-A- B-C’ (C oktaf). Sementara itu, Kord (Hewitt, M., 2008) adalah kelompok not dari suatu Skala yang dimainkan secara bersamaan dan memberikan harmoni. Sebuah contoh adalah Kord C mayor yamg terdiri dari not C, E dan G. Kord ini terdiri dari tiga buah not sehingga disebut dengan triad. Pada triad ini, not C disebut sebagai root, not E sebagai third, dan not G sebagai fifth. Karena terdapat 7 buah not dalam Skala maka terdapat 7 buah triad mayor yaitu : C mayor, D mayor, E mayor, F mayor, G mayor, A mayor, dan B mayor.

1.1.3. Pengenalan Pola Kord Gitar

Pendekatan klasik dalam pengenalan kord (chord recognition, CR) adalah dengan menguraikan Kord ke unsur nada (pitch). Sebagai contoh : Kord C dibentuk oleh nada C + E + G, jadi pendekatan klasik CR akan menguraikan Kord C tersebut dalam nada C, E, dan G. Pendekatan klasik ini memberikan kesalahan dan sangat sulit untuk mengenali chord tersebut, disebabkan Kord tersebut terbentuk darti nada C+E+G secara overlapping.

Penelitian CR secara aktip dilakukan mulai pada tahun 1999 oleh Fujishima (Fujishima, T. 1999). Pendekatan CR adalah dengan mengaplikasikan simple audity model (SAM) (Leman, M. 1997). Pendekatan ini melalui chromagram. Dan pada akhirnya, algoritma MFCC lebih dikenal dan lebih banyak digunakan dalam konteks musical instruments recognice.

1.2. Rumusan Masalah

(19)

Walaupun algoritma MFCC merupakan yang terbaik dibanding dengan LPCC, dan BFCC dalam mengenal pola kord gitar, namun kompleksitas komputasinya berimplikasi terhadap kecepatan eksekusi MFCC. Hal ini memunculkan penelitian-penelitian yang tujuannya mempercepat eksekusi algoritma MFCC. Diantaranya penelitian Efficient MFCC (Chougala, M. dan Unnibhavi, A. H. 2015). Pada penelitian ini, efisiensi dilakukan pada tahapan hamming window, di mana blok overlapping pada hamming window dibuang sehingga terdapat efisiensi komputasi.

MFCC Enhancement (Majeed, S. A. et al. 2015) merupakan penelitian yang melakukan kajian – kajian tentang peluang untuk dapat meningkatkan algoritma MFCC.

Upaya percepatan komputasi pada algoritma MFCC merupakan topik penelitian Oleh karena itu, Penulis melakukan penelitian percepatan komputasi pada tahapan FFT di mana proses FFT dilakukan secara parallel, sehingga paralelisasi FFT secara logis akan menambah kecepatan komputasi (speed up, SU). Jadi permasalahan adalah :”Bagaimanakah paralelisasi proses FFT mempercepat waktu eksekusi Algoritma MFCC?”

1.3. Tujuan Penelitian

Tujuan penelitian ini adalah untuk menggambarkan bahwa paralelisasi FFT dapat mempercepat proses komputasi FE pada algoritma MFCC.

1.4. Batasan Dan Ruang Lingkup Penelitian Lingkup penelitian adalah

1. Database Kord yang di-training adalah A-major, B-major, C-major, D-major, E- major, F-major, dan G-major.

2. FE kord gitar dengan menggunakan MFCC 3. Bahasa pemrograman Matlab R2015a.

BAB 2

TINJAUAN PUSTAKA

(20)

2.1. Musik Dan Chord Gitar 2.1.1. Musik

Musik (Cotton, D. 2010) adalah semua tentang keteraturan. Detak jam atau metronom mendasari segala sesuatu. Jika Anda bisa mengatur metronom untuk berdetak sangat cepat sehingga detak yang terdengar seperti nada musik. Suara hanya perubahan yang cepat tekanan udara lokal. Perbedaan antara suara musik, atau nada, dan kebisingan adalah bahwa musik suara memiliki (relatif) perubahan tekanan konstan frekuensi.

Frekuensi, dalam kasus suara, berarti berapa banyak perubahan tekanan udara berlangsung per detik. Setiap perubahan tekanan dari tekanan terendah ke tekanan tertinggi bisa disebut perubahan tekanan. Pada Gambar 2.1. (Atas) memperlihatkan nada musik yang memiliki pola keteraturan. Sementara Gambar 2.1. (Bawah) memperlihatkan ketidakteraturan getaran maka sering disebut sebagai noise

Gambar 2.1. : (Atas) Frekuensi Nada Teratur

(Bawah) Frekuensi Nada tidak teratur (Sumber : Cotton, D. 2010)

Telinga manusia dapat mendengar suara pada frekuensi 12 atau 20 siklus per detik (cycle per second, cps sering juga disebut hertz, Hz). Nada terendah pada gitar adalah string ke enam yaitu E dengan frekuensi 82,4 cps., dan nada terendah pada piano adalah A dengan frekuensi di 27,5 cps. Gambar 2.2. memperlihatkan frekuensi pada Gitar.

(21)

Gambar 2.2. : Frekuensi Nada Open E pada Gitar ( Sumber : Cotton, D. 2010)

Setiap nada yang dihasilkan oleh Gitar memiliki frekuensi yang berbeda satu sama lain. Nada gitar yang paling rendah adalah senar 6 terbuka yaitu Nada E. Pada Tabel 2.1.

diperlihatkan secara lengkap nada masing-masing gitar, fret dan frekuensi yang dihasilkan.

Tabel 2.1.: Fret, Nada dan Frekuensi pada gitar (Sumber : Cotton, D. 2010)

2.1.2. Chord Gitar

Chord (Prong, B. 2011), secara teoritis, berarti terdapat tiga atau lebih nada diperdengarkan pada saat yang sama. Dalam prakteknya, sebuah chord dibentuk dari triad, tapi bisa juga ada nada-nada tambahan, sehingga membentuk chord fifth, atau seventh. Triad untuk chord C Major dibentuk dari nada-nada C + E + G. Semua triad membentuk harmoni yang enak didengar. Dan gabungan frekuensi nada diperlihatkan pada Gambar 2.3.

(22)

Gambar 2.3.: Gabungan Frekuensi Nada Perfect fifth dan Major Triad (Sumber : Prong, B. 2011)

Grafik kuning, merah, dan biru menunjukkan bagaimana suara dari tiga senar yang berbeda akan muncul pada layar osiloskop. 200 cps (siklus per detik), dan nada kedua adalah 250 cps, serta nada ketiga 300 cps. Grafik paling bawah pada Gambar 2.3 adalah penampilan layar osiloskop jika ketiga nada tersebut diperdengarkan pada saat yang sama.

2.1.3. Pengenalan Pola Chord Gitar

Pendekatan klasik dalam pengenalan kord (chord recognition, CR) adalah dengan menguraikan chord ke unsur nada (pitch). Sebagai contoh : chord C dibentuk oleh nada C + E + G, jadi pendekatan klasik CR akan menguraikan chord C tersebut dalam nada C, E, dan G. Pendekatan klasik ini memberikan kesalahan dan sangat sulit untuk mengenali chord tersebut, disebabkan chord tersebut terbentuk darti nada C+E+G secara overlapping. Spektrum chord C tesebut diperlihatkan pada Gambar 2.4.

(23)

Gambar 2.4 : Spektrum Chord C dengan nada-nada C, E, dan G (Sumber : Prong, B. 2011)

Penelitian CR secara aktip dilakukan mulai pada tahun 1999 oleh Fujishima (Fujishima, T. 1999). Pendekatan CR adalah dengan mengaplikasikan simple audity model (SAM) (Leman, M. 1997). Pendekatan ini melalui chromagram. Dan pada akhirnya, algoritma MFCC lebih dikenal dan lebih banyak digunakan dalam konteks musical instruments recognice.

2.2. Komputasi Paralel

Komputasi Paralel (Parallel Computing) didefenisikan sebagai dua atau lebih prosessor dalam mengerjakan sebuah instruksi (Stout, Q. F. 2000). Umumnya komputasi yang sering digunakan adalah serial computing. Seiring dengan kebutuhan akan pentingnya kecepatan dalam komputasi masa muncul high performance computing di mana satu diantaranya adalah komputasi parallel. Defenisi lainnya disebutkan bahwa Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa proses independen secara bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar seperti di industri keuangan, bioinformatika, music information retrieval, dll) ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika komputasi), kimia komputasi dll.

Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan. Analogi yang paling gampang adalah, bila anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara berurutan (serial). Atau waktu yang anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua.

Performa dalam pemrograman paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan teknik paralel. Secara

(24)

informal, bila anda memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman, berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan kecepatan sebanyak 2 kali.

Peningkatan kecepatan dapat diformulasikan dalam persamaan berikut ini

𝑆𝑆 𝑁𝑁 = 𝑇𝑇 𝑇𝑇

1

𝑁𝑁

(2.1)

Dimana :

T

1

T

= waktu yang dibutuhkan untuk menyelesaikan pekerjaan (program komputer) bila dijalankan dalam satu prosesor. Dan

N

𝑆𝑆

RN

= waktu yang dibutuhkan jika pekerjaan dikerjakan bersamaan oleh N prosessor.

= Peningkatan kecepatan

Ada limitasi dalam usaha membuat suatu program komputer berjalan lebih efisien melalui peningkatan kecepatan, hukum yang menetapkan batasan ini dikenal sebagai hukum Amdahl. Ide dari hukum Amdahl ini adalah bahwa hanya akan bisa meningkatkan efisiensi program komputer, sebatas pada bagian tertentu dari program tersebut yang dapat di paralelkan. Sementara bagian yang memang harus dilaksanakan secara berurutan, akan menjadi penentu performa akhir.

Hukum Amdahl menjelaskan bahwa dari

T

1 (waktu yg dibutuhkan menjalankan pekerjaan dalam satu komputer) tadi, ada sebagian yg tidak bisa diparalelkan. Untuk menyatakan ini kita gunakan notasi

α

dimana

0 α ≤ 1

menunjukkan berapa bagian dari

T

1 yang tidak bisa dijadikan paralel (atau bagian serial dari program ini). Maka kita ketahui

α

*

T

1 adalah waktu yg tidak akan terpengaruh oleh bertambahnya prosesor yang digunakan (a). Sisanya

(1- α)

*

T

1 adalah waktu yang akan berkurang menjadi (𝟏𝟏−𝛂𝛂) ∗ 𝑻𝑻𝟏𝟏

𝑵𝑵 bila kita menggunakan 𝑁𝑁 prosesor tambahan (b). Sehingga waktu total yang dibutuhkan untuk menjalankan pekerjaan dalam 𝑁𝑁 prosesor adalah (a) + (b) atau :

(25)

𝑻𝑻𝑵𝑵= 𝛂𝛂 ∗ 𝑻𝑻𝟏𝟏+(𝟏𝟏 − 𝛂𝛂) ∗ 𝑻𝑻𝟏𝟏

𝑁𝑁 (2.2) Di mana :

N = jumlah prosesor T1

T

= Total waktu yang dibutuhkan proses dengan 1 prosesor.

N

α

=

= Total waktu yang dibutuhkan proses parallel dengan N prosesor.

Bagian dari

T

1 yang tidak bisa dijadikan parallel,

0 ≤ α ≤ 1

Dengan substitusi persamaan (2.1) dan (2.2), peningkatan kecepatan 𝑺𝑺𝑵𝑵 yang kita peroleh dari persamaan adalah :

𝑺𝑺𝑵𝑵= 𝑇𝑇1

𝛂𝛂 ∗ 𝑻𝑻𝟏𝟏+ (𝟏𝟏 − 𝛂𝛂) ∗ 𝑻𝑻𝑵𝑵 𝟏𝟏

(2.3)

Inilah batas maksimum peningkatan kecepatan yang bisa dicapai menurut hukum Amdahl yaitu perbandingan terbalik dari seberapa banyak bagian serial dari suatu pekerjaan.

2.3. Pattern Recognition

Pengenalan pola (pattern recognition) dapat diartikan sebagai proses klasifikasi dari objek atau pola menjadi beberapa kategori atau kelas, dan bertujuan untuk pengambilan keputusan (Theodoridis, S. dan Koutroumbas K. 2006).

Pola adalah bentuk atau model (atau, lebih abstrak, suatu set peraturan) yang dapat dipakai untuk membuat atau untuk menghasilkan suatu atau bagian dari sesuatu, khususnya jika sesuatu yang ditimbulkan mempunyai sejenis pola dasar yang dapat ditunjukkan atau terlihat, yang mana dapat dikatakan mempertunjukan pola.

Deteksi pola dasar disebut pengenalan pola. Untuk dapat mengenali suara dan pemilik suara (speaker), diperlukan suatu pengenalan pola yang dapat mengenal dan mencocokan pola yang diinput dan pola yang telah disimpan di dalam database.

Riset untuk pengenalan suara otomatis sudah lama dilakukan, dimulai dari tahun 1960 yang awalnya terinspirasi oleh film fiksi yang berjudul A Space Odyssey.

Pengenalan pola digunakan untuk mengenali objek kompleks dari bentuk sifat objek yang akan dikenali ciri-ciri dari objeknya. Pengenalan pola secara formal dapat

(26)

dideskripsikan sebagai sebuah proses yang menerima pola atau sinyal berdasarkan hasil pengukuran yang kemudian diklasifikasikan ke dalam satu atau lebih kategori atau kelas tertentu (Haykin, 1999).

Metode klasifikasi yang digunakan pada sistem pengenalan pola memiliki dua jenis pendekatan. Pendekatan statistik dan pendekatan struktural (atau sintatik). Pengenalan pola statistik berdasarkan pada karakteristik statistikal dari pola-pola yang ada dengan asumsi bahwa pola-pola tersebut dihasilkan oleh sebuah sistem probabilistik. Pengenalan pola struktural berdasarkan pada hubungan struktural dari fitur dari setiap pola.

Sebuah sistem pengenalan pola terdiri dari sensor yang mengumpulkan pola yang akan diproses dan mengukur variabel dari setiap pola, pre-processing yang menghilangkan noise dalam data, mekanisme ekstraksi fitur untuk mendapatkan informasi numerik atau simbolik dari pola-pola tersebut, model pembelajaran yang mempelajari pemetaan antara fitur dan kelompok pola, metode klasifikasi yang memisah- misahkan pola-pola tersebut ke dalam kategori berdasarkan fitur dan model pembelajaran, dan post-processing yang mengevaluasi benar tidaknya hasil yang didapat.

Pengenalan pola merupakan bidang dalam pembelajaran mesin dan dapat diartikan sebagai tindakan mengambil data mentah dan bertindak berdasarkan klasifikasi data. Dengan demikian, hal tersebut merupakan himpunan kaidah bagi pembelajaran yang diawasi (supervised learning).

2.3.1. Bit Rate

Bit rate menyatakan jumlah bit yang digunakan setiap unit waktu dalam file suara.

Sebuah suara digital terdiri dari word yang berisi 0 atau 1. Pada word 2 bit, terdapat 4 kemungkinan nilai, yaitu 00, 01, 10, dan 11. Pada word 3 bit, terdapat 8 kemungkinan nilai, yaitu 000, 111, 001, 010, 011, 100, 101, dan 110.

Pada word n bit, terdapat 2n

2.3.2. Sampling Rate

kemungkinan nilai. Jika word 8 bit digunakan untuk menyatakan volume, maka terdapat 256 kemungkinan nilai volume, berkisar dari 0 sampai dengan 255. Semakin tinggi bit rate, semakin akurat resolusi dari volume file suara tersebut.

Sampling rate (biasa disebut juga sampling frequency) menyatakan jumlah sample per

(27)

detik yang diambil dari sinyal kontinu untuk membuat sinyal diskrit.

Untuk sinyal time-domain, sampling rate dapat diukur dalam hertz (Hz). Kebalikan dari sampling rate adalah sampling period yang menyatakan selang waktu di antara setiap sample (Antoniou 2006) .

Gambar 2.5: Sampling Sinyal (Sumber : Antoniou 2006)

Semakin tinggi sampling rate, maka semakin akurat resolusi file suara tersebut.

Sebagai contoh, suara 16 bit dan 44,1 Khz bermakna suara tersebut di-sampling 44.100 kali per detik dan diukur dengan akurasi 16 bit.

Sinyal suara yang hanya berisi suara manusia (speech signal) dapat di sampling pada nilai yang jauh lebih rendah. Dalam kebanyakan kasus, hampir semua energi dalam suara tersimpan dalam rentang 0-4000 Hz sehingga sampling cukup dilakukan pada 8000 Hz (Vaseghi 2007). Hal ini didasarkan pada teori Nyquist-Shannon yang menyebutkan bahwa untuk mencegah hilangnya informasi dalam sebuah konversi sinyal kontinu ke diskrit, sampling minimal harus dua kali lebih besar dari sinyal asli .

2.4. Ekstraksi Fitur

Setelah pengambilan sampel, sinyal percakapan diketahui masih relatif berulang, sehingga speech coders/decoders (codecs) didesain untuk mengekstraksi representasi yang kompak (compact representation) yang cukup untuk rekonstruksi dari sinyal dengan kualitas tinggi. Dalam sistem pengenalan suara, representasi yang kompak ini juga diperlukan. Algoritma pemprosesan sinyal digunakan untuk mengekstrak vektor

(28)

fitur, mempertahankan informasi yang diperlukan untuk mengenali percakapan dan membuang sisanya. Langkah ini sering disebut sebagai Ekstraksi Fitur (Feature Extraction). (Thiran, et al 2010). Fitur dari sebuah sistem pengenalan pola yang baik harus bersifat alamiah, dapat diukur dengan mudah, tidak berubah dari waktu ke waktu atau terpengaruh oleh kondisi kesehatan pengguna, tidak terpengaruh oleh noise, dan tidak dapat ditiru oleh orang lain.

Pengenalan suara pada dasarnya bergantung pada pengenalan rangkaian fenomena yang bergantung pada bentuk suara. Pada umumnya pendekatan umum untuk ekstraksi fitur adalah mengekstraksi representasi halus dari kepadatan kekuatan spectrum sinyal (karakteristik dari respon filter frekuensi), biasanya diperkirakan dari analisis frame yang sepanjang 20-30 ms. Beberapa alat pemprosesan sinyal sering digunakan pada implementasi ekstraksi fitur. Alat tersebut termasuk transformasi fourier waktu singkat (short-time fourier transform) yang dapat digunakan untuk memperoleh kekuatan dan fase spectrum dari analisa frame singkat. Alat lainnya yang biasa digunakan adalah Linear Predictive Coding (LPC) yang mana kita modelkan daerah vokal dengan filter all- pole. Alat lainnya adalah cepstrum, yang dihitung sebagai inverse short time fourier transform dari logaritma pangkat dari spectrum. Elemen urutan rendah dari cepstrum vector merupakan pendekatan yang baik dari bagian filter yang baik dari sebuah model.

Perkembangan pengetahuan kita akan sistem pendengaran manusia telah membuat beberapa model dari resolusi frekuensi nonlinear, dan kehalusan dari pendengaran sering digunakan. Salah satunya adalah Mel-Frequency Cepstrum Coefficients (MFCCs).

2.4.1. Mel-Frequency Cepstrum Coefficients (MFCCs)

Mel-frequency Cepstrum coefficient merupakan metode yang paling dikenal dan paling banyak digunakan pada bidang ekstraksi fitur suara (Tiwari, V. 2010). MFC (Mel- Frequency Cepstrum) memetakan komponen frekuensi dengan mengunakan skala Mel yang dimodelkan berdasarkan persepsi suara dari kuping manusia. Mel-frequency cepstrum mewakili spectrum jangka pendek dari suara mengunakan linear cosine transform dari log dari sebuah spectrum skala mel.

MFCC merupakan parameter domain frekuensi yang lebih konsisten dan akurat daripada fitur domain waktu. Langkah – langkah untuk menghitung MFCC:

(29)

Tahapan – tahapan FE dari suara menjadi sebuah koefisien dalam algoritma MFCC (Chakraborty, K. et al 2014) adalah Pre Emphasis, Sampling dan Windowing, Fast Fourier Transform (FFT), Mel Filter Bank (MFB), dan Discrete Cosine Transform (Dhingra, S. D. et al 2013). Tahapan proses lainya FE diperlihatkan pada Gambar 2.8 (Muda, L. et al 2010).

Gambar 2.6. Tahapan Proses MFCC (Sumber : Tiwari, V. 2010)

2.4.2. Pre-emphasis

Pre-emphasis memproses pengiriman sinyal melalui filter yang menekankan terhadap frekuensi tinggi. Proses Pre-emphasis akan meningkatkan energi sinyal pada frekuensi tinggi. Pre-emphasis ini dilakukan untuk memperbaiki signal dari gangguan noise, sehingga dapat meningkatkan tingkat akurasi dari proses feature extraction.

𝑌𝑌[𝑛𝑛] = 𝑋𝑋[𝑛𝑛] − 𝑎𝑎𝑋𝑋[𝑛𝑛 − 1] 0 < 𝑛𝑛 < 𝑁𝑁 − 1 (2.4) Di mana :

𝑁𝑁 = Jumlah Sample Frame

𝑛𝑛 = indeks vector kolom ke- n bernilai 1 < 𝑛𝑛 < Jumlah Vektor kolom 𝑎𝑎 = konstanta filter pre − emphasis bernilai 0.9 < 𝑎𝑎 < 1.0

𝑋𝑋 = frame dalam bentuk vektor kolom yang akan di − Preemphasis 𝑌𝑌 = Hasil Pre − emphasis

2.4.3. Framing

Proses untuk memisahkan sampel yang telah diperoleh dari analog to digital conversion

(30)

(ADC) menjadi beberapa frame dengan panjang sekitar 20-30 ms. Sinyal suara dibagi menjadi beberapa frame sebanyak N sampel. Frame yang bersebelahan dipisahkan sebesar M (M<N) nilai normal yang biasa digunakan adalah M=128 dan N=256

Gambar 2.7 Framing Signal (Sumber : Tiwari, V. 2010)

2.4.4. Windowing

Langkah berikutnya adalah melakukan proses window pada setiap bagian sinyal yang telah dibuat pada proses framing. Hal ini dilakukan untuk meminimalkan diskontinuitas pada bagian awal dan akhir sinyal dan mengintegrasikan garis-garis frekuensi terdekat.

Rumus Windowing didefenisikan pada persamaan (2.5).

𝑌𝑌(𝑛𝑛) = 𝑋𝑋(𝑛𝑛). 𝑊𝑊(𝑛𝑛), 0 < 𝑛𝑛 < 𝑁𝑁 − 1 (2.5) Di mana :

𝑁𝑁 = Jumlah Sample dari setiap Frame

𝑛𝑛 = indeks vector kolom ke- n bernilai 1 < 𝑛𝑛 < N 𝑋𝑋 = Sinyal Frame

𝑊𝑊 = 𝑊𝑊𝑊𝑊𝑛𝑛𝑊𝑊𝑊𝑊𝑊𝑊 frame dalam bentuk vektor kolom 𝑌𝑌 = hasil 𝑊𝑊𝑊𝑊𝑛𝑛𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑛𝑛𝑊𝑊

2.4.5. Discrete Fourier Transform

Transformasi Fourier Diskrit (Discrete Fourier Transform - DFT) adalah prosedur yang paling umum dan kuat pada bidang pemrosesan sinyal digital. DFT memungkinkan untuk menganalisis, memanipulasi, dan mensintesis sinyal dengan cara yang tidak mungkin dilakukan dalam pemrosesan sinyal analog. Meskipun sekarang digunakan dalam hampir

(31)

setiap bidang teknik. Aplikasi yang menggunakan DFT terus berkembang sebagai utilitas yang menjadikan DFT lebih mudah untuk dimengerti. Karena itu, pemahaman yang kuat tentang DFT adalah wajib bagi siapa saja yang bekerja di bidang pemrosesan sinyal digital. DFT merupakan prosedur matematika yang digunakan untuk menentukan harmonik atau frekuensi yang merupakan isi dari urutan sinyal diskrit. Urutan sinyal diskrit adalah urutan nilai yang diperoleh dari sampling periodik sinyal kontinu dalam domain waktu. DFT didefinisikan pada persamaan (2.6):

𝑋𝑋

𝑘𝑘

= ∑

𝑁𝑁−1

𝑥𝑥

𝑛𝑛

𝑒𝑒

𝑗𝑗2𝜋𝜋𝑁𝑁 𝑛𝑛𝑘𝑘 (2.6) 𝑛𝑛=0

Di mana :

N = jumlah sampel input

XK = urutan ke-K komponen output DFT (X0, X1,…, XN-1

K = indeks output DFT dalam domain frekuensi (0, 1,…, N-1) )

Xn = urutan ke-n sampel input (X0, X1,…, XN-1

n = indeks sampel input dalam domain waktu (0, 1, …, N-1) )

j = bilangan imajiner (√−1 ) π = derajad (1800

e = basis logaritma natural (2,718281828459…) )

Fast Fourier Transform (FFT) adalah suatu algoritma untuk menghitung Discrete Fourier Transform (DFT) dengan cepat dan efisien. FFT diterapkan dalam beragam bidang, mulai dari pengolahan sinyal digital (digital signal processing, DSP), memecahkan persamaan parsial diferensial, dan untuk algoritma untuk mengalikan bilangan bulat besar. FFT yang ditemukan tahun 1965 merupakan pengembangan dari Fourier Transform (FT). Penemu FT adalah J. Fourier pada tahun 1822. Pada persamaan (2.7), FFT membagi sampel N menjadi dua buah yaitu ganjil dan genap, hal ini membuat FFT hanya memiliki kompleksitas O(N log N). Algoritma FFT yang paling awal dan karena itu paling populer adalah algoritma Gooley – Tukey.

(32)

𝑋𝑋𝑘𝑘 = � 𝑥𝑥(2𝑛𝑛)𝑒𝑒−𝑗𝑗2𝜋𝜋𝑁𝑁 𝑛𝑛𝑘𝑘

(𝑁𝑁2)−1 𝑛𝑛=0

+ � 𝑥𝑥(2𝑛𝑛+1)𝑒𝑒−𝑗𝑗2𝜋𝜋𝑁𝑁 𝑛𝑛𝑘𝑘 (2.7)

(𝑁𝑁2)−1 𝑛𝑛=0

Di mana :

N = jumlah sampel input

XK = urutan ke-K komponen output DFT (X0, X1,…, XN-1

K = indeks output DFT dalam domain frekuensi (0, 1,…, N-1) )

X2n = urutan ke-n sampel input genap (X0, X2,…, XN-2

X

)

2n+1 = urutan ke-n sampel input ganjil (X1, X3,…, XN-1

n = indeks sampel input dalam domain waktu (0, 1, …, N-1) )

j = bilangan imajiner (√−1 ) π = derajad (1800

e = basis logaritma natural (2,718281828459…) )

Algoritma Gooley – Tukey, ditemukan oleh J.W. Cooley and John Tukey, merupakan algoritma FFT yang paling umum digunakan. Algoritma ini mengubah DFT ukuran N = N1 dan N2, di mana ukuran N 1 dan N2

Proses Radix-2 DIT di mana dengan N- 8, dibagi menjadi 2 bagian yang sama yaitu bagian indeks 0, 2, 4, 6 dan indeks 1, 3, 5, 7 pada bagian lainnya. Selanjutnya hasilnya digabung kembali. Proses penggabungan ini disebut operasi butterfly karena bentuk seperti kupu-kupu Gambar 2.10.

merupakan DFT yang lebih kecil ukurannya. Radix-2 decimation-in-time (DIT) merupakan algoritma yang paling sederhana dan paling umum digunakan dari algoritma Cooley–Tukey.

(33)

Gambar 2.8.: Data flow Diagram untuk N=8 Radix-2 FFT (sumber : Cooley, Tukey, 1965)

Gambar 2.9. : Pseudocode Radix-2 DIT FFT (sumber : Cooley, Tukey, 1965)

X0,...,N−1 ← ditfft2(x, N, s):

if N = 1 then

X0 ← x0 else

X0,...,N/2−1 ← ditfft2(x, N/2, 2s) XN/2,...,N−1 ← ditfft2(x+s, N/2, 2s)

for k = 0 to N/2−1 t ← Xk

Xk ← t + exp(−2πi k/N) Xk+N/2

Xk+N/2 ← t − exp(−2πi k/N) Xk+N/2

endfor endif

DFT of (x0, xs, x2s, ..., x(N-1)s):

trivial size-1 DFT base case DFT of (x0, x2s, x4s, ...) DFT of (xs, xs+2s, xs+4s, ...)

combine DFTs of two halves into full DFT:

(34)

Pseudocode untuk deskripsi pada Gambar 2.10. diperlihatkan pada Gambar 2.11. di mana fungsi ditfft2(x,N,1) dengan 3 parameter, perhitungan X=DFT (x) dilakukan secara rekursif dengan radix-2 DIT FFT, di mana N adalah integer pangkat 2 dan s = 1 nilai awal dari input array x. x + s menunjukkan array di mulai dengan xs

2.4.6. Mel Filter Bank Processing

.

Jangkauan frekuensi dalam spectrum FFT sangat lebar. Sinyal suara juga tidak mengikuti skala linear. Maka filter kemiringan menurut skala Mel yang ditunjukkan pada 2.12 lalu diaplikasikan.

Gambar 2. 10 Mel scale filter bank (Sumber : Tiwari, V. 2010)

Gambar di atas menunjukan rangkaian filter segitiga yang digunakan untuk menghitung jumlah berat dari filter komponen spektral sehingga hasil dari proses mendekati skala Mel. Setiap ketinggian silter frequency response adalah bentuk segitiga dan setara pada penggabungan pusat frekuensi dan penurunan secara linear menuju nol pada pusat frekuensi.dari dua filter besebelahan. Setelah itu untuk menghitung Mel dari sebuah frekuensi f dalam Hz digunakan persamaan berikut.

𝑀𝑀 = 1127 ln � 𝑓𝑓

700 + 1� (2.8)

Di mana :

M = mel scale dan f = frekuensi dalam herzt

2.4.7. Discerete Cosine Transform

Setelah melalui Mel filter. Log Mel spectrum perlu untuk diubah menjadi domain waktu

(35)

mengunakan Discrete Cosine Transform (DCT). Hasil dari konversi inilah yang disebut sebagai Mel Frequency Cepstrum Coefficient. Kumpulan dari koefisien ini disebut sebagai vektor akustik (acoustic vectors) yang akan digunakan sebagai nilai yang mewakili sinyal suara.

𝑋𝑋(𝑘𝑘) = 2 � 𝑋𝑋(𝑚𝑚)𝑐𝑐𝑊𝑊𝑐𝑐𝜋𝜋𝑘𝑘(2𝑚𝑚 + 1)

2𝑁𝑁 , 0 ≤ 𝑘𝑘 ≤ 𝑁𝑁 − 1 (2.9)

𝑁𝑁−1 𝑚𝑚=0

Di mana :

X(k) = nilai koefisien X ke k

k = jumlah koefisien yang diharapkan

X(m) = nilai X hasil mel-frequency Ceptrum Coefisients (MFCC) m = jumlah filter

(36)

BAB 3

METODE PENELITIAN

Dalam penelitian ini, langkah-langkah yang dilakukan diperlihatkan secara flowchart pada Gambar 3.1.

Gambar 3.1 Alur Metode Penelitian.

Start

Pengumpulan Data Chord Persiapan Alat Penelitian

Pengujian Chord Gitar dengan proses fft_serial

Pengujian Chord Gitar dengan proses fft_ paralel

Pembahasan

Pengambilan Kesimpulan

Selesai

Analisis Algoritma fft_serial dan Paralelisasi Proses FFT

(37)

3.1. Alat Penelitian

Alat yang digunakan pada penelitian ini adalah :

1. Sistem Operasi Windows 7 Ultimate 32 bit, 6.1. build 7601

2. Komputer HP 431 Intel core i3, 2230M CPU @2.20 GHz (4 CPUs) ~2.20GHz, memory 2048 MB RAM.

3. Software Propgramming Language MATLAB R2015a 4. Audacity 2.1.2 Music Editor

3.2. Pengumpulan Data Chord

Pengumpulan data menggunakan metode studi literatur, yaitu mengumpulkan data dari buku-buku referensi, modul-modul yang relevan dengan objek permasalahan, serta menggunakan metode studi observasi, yaitu dengan mengumpulkan data chord gitar yang sudah tersedia yaitu A-mayor, B-mayor, C-mayor, D-mayor, E-mayor, F-mayor, dan G- mayor yang tersedia pada http://freesound.org.Untuk Pulse Code Modulation (PCM) yang diartikan sebagai teknik memproses suatu sinyal analog menjadi sinyal digital yang ekivalen terdiri dari

Pengujian chord A-major dengan PCM 16 dan Frame per detik 48.000 akan diujia sebanyak 10 kali dan dihitung rerata, minimum waktu eksekusi, maksimum waktu eksekusi, dan standar deviasi. Demikian seterusnya pengujian chord A-major dengan PCM 16 dan Frame per detik 88.200, serta 96.000.

16 bit dan 32 bit. Jumlah frame per detik untuk masing masing chord adalah 48.000, 88.200, dan 96.000 frame per detik. Sehingga keseluruhan chord yang akan diuji diperlihatkan pada Tabel 3.1.

(38)

Tabel 3.1. : Data Chord Gitar

No. Chord PCM Frame/Det No. Chord PCM Frame/Det 1 A-Major 16 bit 48,000 22 D-Major 32 bit 48,000 2 A-Major 16 bit 88,200 23 D-Major 32 bit 88,200 3 A-Major 16 bit 96,000 24 D-Major 32 bit 96,000 4 A-Major 32 bit 48,000 25 E-Major 16 bit 48,000 5 A-Major 32 bit 88,200 26 E-Major 16 bit 88,200 6 A-Major 32 bit 96,000 27 E-Major 16 bit 96,000 7 B-Major 16 bit 48,000 28 E-Major 32 bit 48,000 8 B-Major 16 bit 88,200 29 E-Major 32 bit 88,200 9 B-Major 16 bit 96,000 30 E-Major 32 bit 96,000 10 B-Major 32 bit 48,000 31 F-Major 16 bit 48,000 11 B-Major 32 bit 88,200 32 F-Major 16 bit 88,200 12 B-Major 32 bit 96,000 33 F-Major 16 bit 96,000 13 C-Major 16 bit 48,000 34 F-Major 32 bit 48,000 14 C-Major 16 bit 88,200 35 F-Major 32 bit 88,200 15 C-Major 16 bit 96,000 36 F-Major 32 bit 96,000 16 C-Major 32 bit 48,000 37 G-Major 16 bit 48,000 17 C-Major 32 bit 88,200 38 G-Major 16 bit 88,200 18 C-Major 32 bit 96,000 39 G-Major 16 bit 96,000 19 D-Major 16 bit 48,000 40 G-Major 32 bit 48,000 20 D-Major 16 bit 88,200 41 G-Major 32 bit 88,200 21 D-Major 16 bit 96,000 42 G-Major 32 bit 96,000

3.3. Analisis Algoritma fft_serial dan Paralelisasi Proses FFT

Gambar 3.2. memperlihatkan proses MFCC terdapat empat bagian yaitu A, B, C, dan D.

Pada bagaian (C) Feature Extraction (FE) baris ke-4 terdapat proses untuk menentukan fft. Dan selanjutnya disebut sebagai fft_serial.

(39)

Gambar 3.2 : Proses Feature Extraction Pada MFCC

Pada Gambar 3.2 diperlihatkan pada proses (C) Feature Extraction (FE) di baris 4 yaitu :

MAG = abs( fft_serial(frames,nfft,1) );

Menunjukkan bahwa proses penentuan magnitude FE menggunakan komputasi fft_serial dengan parameter Frames, panjang fft, dan nilai “1” sebagai tanda bahwa perhitungan berdasarkan vector kolom. Komputasi fft_serial ini menggunakan Radix 2 in Frequency.

Sebagaimana algoritmanya diperlihatkan pada Gambar 3.3.

1. Pastikan jumlah sampel input

2. Buatkan sample menjadi dengn panjang 16 bit 3. Durasi frame sampel)

4. Pergeseran frame sampel 5. Panjang analisis FFT 6. Panjang nagian unik FFT

B. HANDY INLINE FUNCTION HANDLES 1. Forward dan backward mel frequency warping 2. Hertz ke mel warping function

3. mel ke Hertz warping function 4. Rutin Type III DCT matrix 5. Rutin Cepstral lifter C. FEATURE EXTRACTION

1. Preemphasis filtering

2. Framing dan windowing (frame sebagai vector kolom) 3. Perhitungan Magnitude spectrum (sebagai vector kolom) 4. MAG = abs( fft_serial(frames,nfft,1) );

5. Triangular filterbank dengan uniformly spaced filters pada mel scale 6. Aplikasi Filterbank menjadi bagian unik dari magnitude spectrum 7. Konversikan log FilterBank ke koefisien cepstral

8. Komputasi Cepstral lifter

9. Cepstral liftering menghasilka koefisien liftered cepstral D. EOF

(40)

Gambar 3.3 : Algoritma Radix 2 Decimation in Frequency (rad2DIF)

Proses paralelisasi fft selanjutnya disebut fft_paralel. Proses ini akan mendapatkan bagian dari fft_serial yang dapat diparalelkan. Selanjutnya akan ditentukan persentasi proses fft_serial yang dapat diparalelkan dari MFCC

Input : Normal Order, An array of Length N Output: Normal Order (Output Bits reversed) X[k]

function radix2(x);

xcheck=x;

p=nextpow2(length(x));

x=[x zeros(1,(2^p)-length(x))];

N=length(x);

Index Helping for Controlling range of indices of the Butterfly at Each Stage (Shrinking)

M=N/2;

Number of times decimation has to occur

for stage=1:log2(N); ………..(for -1) Adjusting the index variations of the butterfly in each stage

for index=0:(N/(2^(stage-1))):(N-1); ……….(for -2)

Within a stage, for a given index (single) as reference, develop a local Butterfly Index

for n=0:M-1; ……….. (for -3) a=x(n+index+1)+ x(n+index+M+1);

b=(x(n+index+1)- x(n+index+M+1)).*exp((-j*(2*pi)/N)*(2^(stage-1))*(n));

x(n+1+index)=a;

In place Computation x(n+M+1+index)=b;

end;

end;

Used for creating Butterfly Pairs (INDEXing the wings) (Shrinkage) M=M/2;

end;

Bit reversing X[k] to obtain X[k] 0<k<N-1 X=bitrevorder(x)

Cross Check the answer using inbuilt FFT Ycheck=fft(xcheck,N)

End Function

(41)

Gambar 3.3 memperlihatkan bahwa terdapat 3 loop FOR yang ditunjukkan oleh (for 1), (for 2), dan (for 3).

Cost computation (CC) pada algoritma rad2DIF ditentukan pada ketiga looping tersebut. Pada (for 1) jumlah looping ditentukan oleh log2N di mana N adalah banyaknya data pada array. Contoh, jika datanya N=8 maka log2N = log2 (8)=3. Dan jika datanya N=7 maka dilakukan proses ceiling sehingga log2N = ceiling(log2 (7))=3. Tabel 3.1.

memperlihatkan Power of Two.

Tabel 3.1. : Power of Two N 2n n 2n

0 1 6 64

1 2 7 128 2 4 8 256 3 8 9 512 4 16 10 512 5 32 11 1024

Pada (for 2) jumlah looping ditentukan oleh N-1 di mana N adalah jumlah data pada array. Contoh, jika data N=8 maka looping (for 2) akan dieksekusi sebanyak 7 kali.

Sementara (for 3) lopping dilakukan sebanyak M-1 kali di mana M=N/2 adalah jumlah butterfly index. Jadi jika N = 8 maka jumlah butterfly index M=4.

Jadi secara keseluruhan jumlah CC untuk (for 1), (for 2), dan (for 3) adalah : K + Log 2 (N) * (N-1) * (M-1) ……….. (3.1) Di mana :

K = adalah sebuah konstanta untuk CC yang ada di luar loop (for 1).

Dari karakteristik looping (for 1), (for 2), dan (for 3) terdapat komputasi yang paling banyak adalah pada looping (for 3) di mana komputasi di perlihatkan pada Tabel 3.2 ada terdapat 17 summasi (+) , 8 multiplikasi (*), 1 multiplikasi matrik (.*), 1 eksponensial, 1 pangkat, 1 divisi, dan 4 assainmen.

(42)

Tabel 3.2 : Komputasi dalam Looping (for 3)

Ekspressi Operator Komputasi

a=x(n+index+1)+ x(n+index+M+1); + Temp1 := n+index

a=x(Temp1+1)+ x(n+index+M+1); + Temp1 := Temp1 + 1

a=x(Temp1)+ x(n+index+M+1); * Temp1 := Temp1 * x

a=Temp1+ x(n+index+M+1); + Temp2 := n+index

a=Temp1+ x(Temp2+M+1); + Temp2 := Temp2 + M

a=Temp1+ x(Temp2+1); + Temp2 := Temp2 + 1

a=Temp1+ x(Temp2); * Temp2 := Temp2 * x

a=Temp1+ Temp2; + Temp1 := Temp1 + Temp2

a=Temp1; = a := Temp1

b=(x(n+index+1)- x(n+index+M+1)).*exp((-j*(2*pi)/N)*(2^(stage-1))*(n)); + Temp1 := n+index b=(x(Temp1+1)- x(n+index+M+1)).*exp((-j*(2*pi)/N)*(2^(stage-1))*(n)); + Temp1 := Temp1 + 1 b=(x(Temp1)- x(n+index+M+1)).*exp(( j*(2*pi)/N)*(2^(stage-1))*(n)); * Temp1 := Temp1 * x b=Temp1- x(n+index+M+1)).*exp( (j*(2*pi)/N)*(2^(stage-1))*(n)); + Temp2 := n+index b=Temp1- x(Temp2+M+1)).*exp( (j*(2*pi)/N)*(2^(stage-1))*(n)); + Temp2 := Temp2 + M b=Temp1- x(Temp2+1)).*exp( (j*(2*pi)/N)*(2^(stage-1))*(n)); + Temp2 := Temp2 + 1 b=Temp1- x(Temp2)).*exp( (j*(2*pi)/N)*(2^(stage-1))*(n)); * Temp2 := Temp2 * x b=(Temp1- Temp2).*exp( (j*(2*pi)/N)*(2^(stage-1))*(n)); + Temp1 := Temp1 - Temp2 b=Temp1.*exp( (j*(2*pi)/N)*(2^(stage-1))*(n)); * Temp3 := 2*pi b=Temp1.*exp( (j*Temp3/N)*(2^(stage-1))*(n)); / Temp3 := Temp3 / N

b=Temp1.*exp( (j*Temp3)*(2^(stage-1))*(n)); * Temp3 := j*Temp3

b=Temp1.*exp( Temp3)*(2^(stage-1))*(n)); Exp Temp3 := Exp(Temp3)

b=Temp1.* Temp3 *(2^(stage-1))*(n)); - Temp4 := stage -1

b=Temp1.* Temp3 *(2^Temp4)*(n)); ^ Temp4 := 2^Temp4

b=Temp1.* Temp3 *(Temp4*n); * Temp4 := Temp4 * n

b=Temp1.* Temp3 *Temp4; .* Temp1 := Temp1 * Temp3

b=Temp1*Temp4; * Temp1 := Temp1 * Temp4

b=Temp1; = b := Temp1

x(n+1+index)=a; + Temp1 := n + 1

x(Temp1+index)=a; + Temp1 := Temp1 + Index

X(Temp1) = a = X(Temp1) := a

x(n+M+1+index)=b; + Temp1 := n + M

x(Temp1+1+index)=b; + Temp1 := Temp1 + 1

X(Temp1+Index) =b; + Temp1 := Temp1 + Index

X(Temp1) = b; = X(Temp1) := b

Setelah ditemukan bagian fft_serial yang dapat diparalelkan maka dibuatkan algoritma fft_paralel. Paralelisasi rad2DIF pada looping (for 3) ini akan memberikan percepatan komputasi (speed up) terhadap proses MFCC. Sebagai mana diketahui bahwa N merupakan power of two (Tabel 3.1) dengan demikian dapat dikatakan bahwa paralelisasi proses looping (for 3) dapat dibuat dengan kelipatan dua sepanjang N > 2. Sebab jika N=2 maka M= N/2 = 2/2 = 1 yang diartikan bahwa komputasi parallel sama halnya dengan komputasi serial. Misalkan N=16 maka M = N/2 = 8 maka dapat diparalelisasi dengan 4 buah proses saling parallel. Paralelisasi

(43)

proses (for -3) menjadi 4 buah proses yaitu (forPar -1), (forPar -2), (forPar -3), dan (forPar -4) diperlihatkan pada Gambar 3.4.

Gambar 3.4 : Paralelisasi looping (for 3)

3.4. Pengujian Chord Gitar dengan proses fft_serial

Pengujian dilakukan terhadap MFCC yang menggunakan fft_serial (MFFC_ fft_serial) pada chord A-mayor, dimana untuk PCM 16, dan 32 bit, dengan frame / detik secara berturut-turut 48.000, 88.200, dan 96.000. Masing-masing pengujian dilakukan sebanyak 10 kali dan hasil rerata, minimum, maximum, serta standar deviasi akan dicatat dengan satuan waktu detik. Bentuk luaran hasil pengujian ini akan dicatat dalam bentuk Tabel 3.3.

for n=0:1; ……….. (forPar -1) a=x(n+index+1)+ x(n+index+M+1);

b=(x(n+index+1)- x(n+index+M+1)).*exp((-j*(2*pi)/N)*(2^(stage-1))*(n));

x(n+1+index)=a;

x(n+M+1+index)=b;

end;

for n=2:3; ……….. (forPar -2) a=x(n+index+1)+ x(n+index+M+1);

b=(x(n+index+1)- x(n+index+M+1)).*exp((-j*(2*pi)/N)*(2^(stage-1))*(n));

x(n+1+index)=a;

x(n+M+1+index)=b;

end;

for n=4:5; ……….. (forPar -3) a=x(n+index+1)+ x(n+index+M+1);

b=(x(n+index+1)- x(n+index+M+1)).*exp((-j*(2*pi)/N)*(2^(stage-1))*(n));

x(n+1+index)=a;

x(n+M+1+index)=b;

end;

for n=6:7; ……….. (forPar -4) a=x(n+index+1)+ x(n+index+M+1);

b=(x(n+index+1)- x(n+index+M+1)).*exp((-j*(2*pi)/N)*(2^(stage-1))*(n));

x(n+1+index)=a;

x(n+M+1+index)=b;

end;

(44)

Tabel 3.3. : Bentuk catatan hasil pengujian fft_serial

Chord PCM Frame/ det Pengujian Ke- Re

rata min max Std ev 1 2 3 4 5 6 7 8 9 10

A-major 16 bit 48.000 A-major 16 bit 88.200 A-major 16 bit 96.000 A-major 32 bit 48.000 A-major 32 bit 88.200 A-major 32 bit 96.000

Untuk chord B-major, C-major, D-major, E-major, F-major, dan G-major dilakukan pengujian dengan hal yang sama dengan pengujian chord A-major.

3.5. Pengujian Chord Gitar dengan proses fft_paralel

Pengujian dilakukan terhadap MFCC yang menggunakan fft_paralel (MFFC_

fft_paralel) pada chord A-major, dimana untuk PCM 16, dan 32 bit, dengan frame / detik secara berturut-turut 48.000, 88.200, dan 96.000. Masing-masing pengujian dilakukan sebanyak 10 kali dan hasil rerata, minimum, maximum, serta standar deviasi akan dicatat dengan satuan waktu detik. Bentuk luaran hasil pengujian ini akan dicatat dalam bentuk Tabel 3.4.

Tabel 3.4. : Bentuk catatan hasil pengujian fft_paralel

Chord PCM Frame/ det Pengujian Ke- Re

rata min max Std 1 2 3 4 5 6 7 8 9 10 ev

A-major 16 bit 48.000 A-major 16 bit 88.200 A-major 16 bit 96.000 A-major 32 bit 48.000 A-major 32 bit 88.200 A-major 32 bit 96.000

Untuk chord B-major, C-major, D-major, E-major, F-major, dan G-major dilakukan pengujian dengan hal yang sama dengan pengujian chord A-major.

Gambar

Gambar 2.5:  Sampling Sinyal  (Sumber : Antoniou 2006)
Gambar 2.8.: Data flow Diagram untuk N=8 Radix-2 FFT (sumber : Cooley,  Tukey, 1965)
Gambar 3.1 Alur Metode Penelitian.
Tabel 3.2 : Komputasi dalam Looping  (for 3)
+7

Referensi

Dokumen terkait