Segmentasi dan pengenalan citra not balok.

(1)

SEGM

Diajuk M

P

PROGR

FAK

UN

i

GMENTASI DAN PENGENALAN

CITRA NOT BALOK

SKRIPSI

jukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Oleh :

Audris Evan Utomo 095314052

RAM STUDI TEKNIK INFORMATIKA

KULTAS SAINS DAN TEKNOLOGI

NIVERSITAS SANATA DHARMA

YOGYAKARTA


(2)

IMAGE SEGM

Presented To O

Info

INFORMAT

FACULT

SA

ii

MENTATION AND RECOGNATION

MUSICAL NOTES

A THESIS

ed as Partial Fulfillment of The Requirements o Obtain The Sarjana Komputer Degree nformatics Engineering Study Program

By :

Audris Evan Utomo 095314052

ATICS ENGINEERING STUDY PROGRAM

LTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2013


(3)

(4)

(5)

(6)

(7)

vii

Abstrak

Penelitian ini memiliki fokus penelitian pada citra not balok. Cara kerja yang ditawarkan adalah melakukan segmentasi dengan proyeksi vertikal-horizontal pada citra partitur. Lalu kemudian dikenai operasi konvolusi untuk mendapatkan garis yang diidentifikasi sebagai tangkai. Setelah itu dilakukan pengenalan dengan menggunakan penyusuran pixel untuk menangkap bagian-bagian lain dalam not balok tersebut. Penelitian ini menggunakan 50 partitur yang dibuat dengan menggunakan Encore.

Hasil yang dihasilkan dari penelitian kali ini adalah sebesar 90.233% dalam proses pengenalan baik dengan menggunakan precision-recall. Hasil juga memiliki nilai max sebesar 100 % dan nilai presentase min adalah sebesar 56.53 %.

Saran untuk penelitian berikutnya terutama untuk yang memiliki topik pemrosesan citra pada not balok adalah menemukan metode preprocessing yang tepat agar gambar partitur berupa digital maupun cetak dapat diproses. Selain itu metode yang dapat membaca nilai tanda diam, dan metode yang dapat membaca tanda-tanda baca seperti kres dan mol


(8)

viii

Abstract

This research have a focus on the image of musical notes. Manner of works that offered is performing segmentation with vertical-horizontal projection on the image of scores, then is operation convolution to get a line which was identified as a stalk. The recognition by using of pixel tracing to get other part of the musical notes. This research uses 50 scores created using Encore.

The result of this research is 90.233% for recognition process using precision-recall. The result also have max value to 100% and min value to 56.53%

Suggestion for next research especially for topic of image processing of musical notes is to found the right preprocessing method to make a image of scores in digital or printed can be processed. In additional the method that can read the signs reading, like sharps and mol.


(9)

ix

KATA PENGANTAR

Puji syukur dan terima kasih kepada Tuhan Yang Maha Esa atas berkat yang diberikan kepada saya dalam proses penyusunan sampai dengan penyelesaian skripsi ini.

Skripsi ini disusun untuk memperoleh gelar sarjana komputer di Jurusan Teknik Informatika, Fakultas Sains dan Teknologi, Universitas Sanata Dharma, Yogyakarta. Skripsi ini juga disusun sebagai sumbangan sedikit pengetahuan, sehingga saya dapat memberikan sedikitnya kontribusi pada perkembangan ilmu pengetahuan untuk berikutnya.

Ucapan terima kasih saya atas dukungan dan doa yang ditujukan kepada : 1. Paulina Heruningsih Prima Rosa, S.Si, M.Sc. selaku Dekan Fakultas

Sains dan Teknologi, Universitas Sanata Dharma.

2. Ridowati Gunawan, S.Kom, M.T., selaku Ketua Program Studi Teknik Informatika, Universitas Sanata Dharma.

3. Sri Hartati Wijono, S.Si, M.Kom, selaku pembimbing skripsi, dan Wakil Ketua Program Studi Teknik Informatika, Universitas Sanata Dharma.

4. Eko Hari Parmadi S.Si., M.Kom., selaku dosen penguji skripsi. 5. Alb. Agung Hadhiatma S.T., M.T., selaku dosen penguji skripsi. 6. Orang tua, dan kakak dan adik beserta keluarga tercinta


(10)

(11)

xi

DAFTAR ISI

Halaman Judul ... i

Halaman Judul ... ii

Halaman Persetujuan ... iii

Halaman Pengesahan ... iv

PERNYATAAN KEASLIAN HASIL KARYA ... v

PERNYATAAN PERSETUJUAN PUBLIKASI ... vi

Abstrak ... vii

Abstract ... viii

KATA PENGANTAR ... ix

DAFTAR ISI ... xi

DAFTAR GAMBAR ... xvi

DAFTAR TABEL ... xix

BAB I ... 1

PENDAHULUAN ... 1

1.1. Latar Belakang ... 1

1.2. Rumusan Masalah ... 4

1.3. Manfaat ... 4

1.4. Batasan Masalah ... 5

1.5. Sistematika Penulisan ... 5

BAB II ... 7


(12)

xii

2.1. Image Processing ... 7

2.2. Feature Extraction ... 8

2.3. Citra Biner ... 8

2.4. Proyeksi Citra ... 9

2.5. Konvolusi ... 12

2.6. Not Balok ... 13

2.7. Precision-Recall ... 16

Bab III ... 17

METODOLOGI PENELITIAN ... 17

3.1. Perancangan Data Input ... 17

3.1.1. Tahap pembuatan file ... 17

3.1.2. Tahap penghapusan objek asing ... 19

3.2. Perancangan Sistem ... 20

3.2.1. DFD level 0 / Diagram konteks : ... 20

3.2.2. DFD level 1: ... 21

3.2.3. DFD level 2: ... 21

3.3. Desain Proses ... 23

3.3.1. Proses 1. Tranformasi menjadi citra biner ... 24

3.3.2. Proses 2.1. Proyeksi horizontal ... 25


(13)

xiii

3.3.4. Proses 3.2. Mencari index max ... 27

3.3.5. Proses 4.1. Penghapusan garis ... 28

3.3.6. Proses 4.2. Proyeksi vertikal ... 29

3.3.7. Proses 4.3. Segmentasi vertikal ... 30

3.3.8. Proses 4.4. Hapus kunci, penutup dan jenis ketukan ... 32

3.3.9. Proses 5.1. Deteksi garis lurus(tangkai not) ... 32

3.3.10. Proses 5.2. Pengenalan jenis bagian ... 35

3.3.11. Proses 5.3. Penentuan posisi garis ... 37

3.3.12. Proses 5.4. Pencarian nada ... 39

3.3.13. Proses 5.5. Pencarian nilai ... 41

3.3.14. Proses 6. Membunyikan nada ... 45

3.4. Perancangan Pengujian ... 45

3.4.1. Pembuatan jawaban ... 45

3.4.2. Tranformasi nada dan nilai menjadi jawaban ... 46

3.4.3. Pengujian dengan precision-recall ... 47

3.5. Perancangan Interface ... 48

BAB IV ... 49

IMPLEMENTASI ... 49

4.1. Implementasi Sistem ... 49


(14)

xiv

4.1.2. Proses 2.1. Proyeksi horizontal ... 51

4.1.3. Proses 2.2. Segmentasi horizontal ... 51

4.1.4. Proses 3.2. Mencari index max ... 52

4.1.5. Proses 4.1. Penghapusan garis ... 53

4.1.6. Proses 4.2. proyeksi vertikal ... 53

4.1.7. Proses 4.3. Segmentasi vertikal ... 54

4.1.8. Proses 4.4. Hapus kunci, penutup dan jenis ketukan ... 54

4.1.9. Proses 5.1. Deteksi garis lurus(tangkai not) ... 55

4.1.10. Proses 5.2. Pengenalan jenis bagian ... 56

4.1.11. Proses 5.3. Penentuan posisi garis ... 57

4.1.12. Proses 5.4. Pencarian nada ... 58

4.1.13. Proses 5.5. Pencarian nilai ... 59

4.1.14 Proses 6. Membunyikan nada... 62

4.2. Implementasi Interface ... 63

Bab V ... 64

Hasil dan Pengujian ... 64

5.1. Data Input ... 64

5.2. Code Pengujian Sistem ... 67

5.3. Hasil Pengujian Sistem ... 68


(15)

xv

5.3.2. Hasil Segmentasi Vertikal ... 70

5.3.3. Hasil Pengenalan : ... 71

5.3.4. Hasil Pengujian : ... 71

5.4. Analisis Hasil ... 82

Bab VI ... 85

Kesimpulan dan Saran ... 85

6.1. Kesimpulan ... 85

6.2. Saran ... 86

DAFTAR PUSTAKA ... 87


(16)

xvi

DAFTAR GAMBAR

Gambar 2.1.Contoh citra biner ... 9

Gambar 2.2Contoh histogram horizontal-vertical ... 9

Gambar 2.3. Contoh citra potongan partitur ... 10

Gambar 2.4.Hasil proyeksi vertikal(bawah) dan horizontal (kanan) ... 10

Gambar 2.5.Proses segmentasi ... 11

Gambar 2.6. Hasil segmentasi didapatkan 2 objek gambar ... 11

Gambar 2.7.Contoh citra not balok ... 12

Gambar 2.8.Hasil operasi konvolusi Gambar 2.7. ... 13

Gambar 2.9.(a) Kunci G, (b) Kunci F, (c) Kunci C ... 14

Gambar 2.10.Posisi nada pada kunci G dan F ... 14

Gambar 2.11.Nama bagian not ... 15

Gambar 2.12Nilai-nilai dari suatu not balok ... 15

Gambar 2.13.Ilustrasi precision-recall ... 16

Gambar 3.1.Contoh pembuatan partitur dengan Encore ... 18

Gambar 3.2.Contoh hasil pembuatan partitur ... 19

Gambar 3.3.Contoh hasil penghapusan ... 20

Gambar 3.4. DFD level 0 ... 20

Gambar 3.5. DFD level 1 ... 21

Gambar 3.6. DFD level 2 proses 2 ... 21

Gambar 3.7. DFD level 2 proses 3 ... 22


(17)

xvii

Gambar 3.9. DFD level 2 proses5 ... 23

Gambar 3.10. Ilustrasi tranformasi menjadi citra biner ... 24

Gambar 3.11. Potongan citra (kiri) dan hasil proyeksi horizontal (kanan) ... 25

Gambar 3.12. Hasil segmentasi mendapatkan 2 objek (atas dan bawah) ... 26

Gambar 3.13. Posisi-posisi max [0 – 4] ... 27

Gambar 3.14. Potongan citra baris ... 28

Gambar 3.15. Hasil penghapusan garis ... 28

Gambar 3.16. Citra (atas) dan hasil proyeksi vertikal (bawah) ... 30

Gambar 3.17. Hasil segmentasi vertikal ... 31

Gambar 3.18. Penghapusan kunci,dan jenis ketukan ... 32

Gambar 3.19.Contoh citra not balok ... 34

Gambar 3.20.Hasil operasi konvolusi Gambar 2.7. ... 34

Gambar 3.21. Contoh gambar-gambar nada ... 35

Gambar 3.22. Contoh gambar-gambar tanda diam ... 36

Gambar 3.23. Contoh garis birama ... 36

Gambar 3.24. Garis di depan ... 37

Gambar 3.25. Garis di belakang ... 38

Gambar 3.26. Garis di tengah ... 38

Gambar 3.27. Contoh gambar not ... 39

Gambar 3.28. Nada 1/4 ... 41

Gambar 3.29. Nada 1/2 ... 41

Gambar 3.30. Nada 1/8 ... 41


(18)

xviii

Gambar 3.32.Rancangan interface ... 48

Gambar 4.1.Hasil implementasi interface ... 61

Gambar 4.2. JFileChooser ... 61

Gambar 5.1. Partitur file 17.png ... 68

Gambar 5.2.Hasil proyeksi horizontal file 17.png ... 69

Gambar 5.3.Hasil segmentasi baris I ... 69

Gambar 5.4.Hasil segmentasi baris II ... 69

Gambar 5.5.Hasil proyeksi vertikal baris I file 17.png ... 70

Gambar 5.6.Beberapa contoh bagian pada baris II file 17.png ... 70

Gambar 5.7.Partitur 01.png ... 83

Gambar 5.8.Partitur 44.png ... 83


(19)

xix

DAFTAR TABEL

Tabel 5.1.Tabel file pengujian ... 64

Tabel 5.2.Tabel hasil pengujian semua file pengujian ... 71

Tabel 5.3.Rata-rata hasil pengujian ... 74


(20)

1

BAB I

PENDAHULUAN

Pada bab ini akan menjelaskan mengenai latar belakang penelitian beserta tujuan dan masalah yang akan diteliti.

1.1. Latar Belakang

Seiring dengan perkembangannya, akhir-akhir ini terdapat banyak sekali data dengan berbagai bentuk. Sesuai dengan pengertian data yang adalah keterangan atau bahan yang benar dan nyata yang dapat menjadi bahan analisis, data-data digital tersebut dapat menjadi bahan untuk dianalisa dan menciptakan suatu informasi. Jika data-data tersebut hanya diam dalam komputer dan tidak dianalisa untuk menjadi informasi hanya akan menjadi data mentah, atau sampah (junk) data yang tidak dapat berguna. Agar data-data tersebut dapat menghasilkan sesuatu, maka data itu harus dianalisis kemudian diolah untuk kemudian menghasilkan sebuah informasi.

Begitu juga dengan sebuah gambar / citra akan menjadi kurang berarti jika hanya untuk dilihat atau dipajang. Agar sebuah gambar / citra menjadi lebih memiliki nilai, gambar / citra tersebut harus diolah agar dapat menghasilkan informasi yang dibutuhkan. Ilmu yang mempelajari mengenai hal tersebut adalah pengolahan citra. Dalam suatu objek citra juga memiliki ciri-ciri khusus, sebagai contoh adalah huruf A dalam bentuk citra, yang membedakan huruf A dengan huruf yang lain adalah


(21)

sudut-sudut yang terdapat dalam huruf A tersebut yang membentuk segitiga.

Pada penelitian kali ini akan menggunakan Metode Proyeksi Vertikal-Horizontal. Proyeksi Vertikal-Horizontal akan memberikan gambaran pixel dari suatu citra dalam bentuk histogram. Proyeksi Vertikal-Horizontal memberikan gambaran pixel dengan menjumlahkan pixel-pixel tersebut secara horizontal maupun vertikal. Hasil penjumlahan tersebut akan digambarkan dengan menggunakan histogram sesuai dengan level dari jumlah pixel-pixel yang telah dihitung sebelumnya. Metode ini banyak digunakan untuk citra yang berbentuk tulisan. Dalam penggunaannya untuk memproses citra dokumen teks, metode ini digunakan untuk menentukan batasan-batasan antar huruf pada suatu tulisan. Setelah menemukan batasan-batasan antar huruf akan dilakukan segmentasi atau pemotongan, agar dapat mendapatkan huruf-huruf yang terdapat pada citra dokumen teks tersebut.

Partitur musik sebagian besar menggunakan notasi not balok. Dimana notasi-notasi tersebut tersusun sedemikian rupa dalam posisi-posisi tertentu didalam baris-baris dalam sebuah partitur yang menunjukan tinggi rendahnya suatu nada. Selain memiliki posisi-posisi tertentu not balok juga memiliki bentuk-bentuk khusus untuk menunjukan nilai ketukan dari not tersebut. Selain itu not balok juga memiliki batas-batas pemisahan yang cukup jelas, yaitu not balok selalu tegak, sehingga mudah dikenali batasan antar not-nya. Batasan-batasan tersebut biasanya memiliki


(22)

sedikit pixel maka dari itu untuk membagi not balok menjadi bagian-bagian not dapat menggunakan Proyeksi Vertikal-Horizontal, setelah diproyeksikan citra partitur akan disegmentasi. Hasil proses segmentasi adalah objek-objek not dalam citra partitur tersebut.

Pada penelitannya yang berjudul “I d e n t i fi c a t i o n o f M u s i c a l N o t e s i n S h e e t M u s i c I m a g e s U s i n g C o l o r s” (Angela, Maria. 2006) ingin ditunjukkan metode identifikasi not balok dengan menggunakan pewarnaan pada staves, yang sebelumnya dilakukan segmentasi dengan menggunakan proyeksi profile (proyeksi horizontal-vertikal). Hasil yang didapatkan dari penelitian tersebut adalah ketepatan identifikasi sebesar 96.3768% untuk salah satu contoh partitur yang digunakan.

Pada sebuah artikel mengenai “Playing Notes by Image Processing” (Soriano, 2010) ide yang diberikan dalam mengidentifikasi not balok adalah dengan mencocokkan not dengan menggunakan template. Template

yang digunakan adalah sebuah image kepala not, lalu template tersebut digabungkan dengan partitur yang diproses yang akan menunjukan titik-titik posisi kepala-kepala not yang terdapat dalam partitur tersebut.

Penelitian ini diharapkan dapat memberikan gambaran cara kerja pengolahan citra untuk membaca dan mengidentifikasi partitur not balok, selain itu juga akan diberikan gambaran ketepatannya dalam membaca dan mengidentifikasi partitur not balok. Hasil pembacaan partitur not balok


(23)

kemudian akan dikonversikan menjadi suara, sehingga dapat mendengar nada-nada partitur not balok tersebut.

Banyak orang yang lebih suka membaca not angka daripada not balok. Oleh karena itu penelitian ini cukup penting, karena hasil penelitian ini dapat digunakan untuk membuat alat yang dapat membaca not balok (OMR, Optical Music Recognition) dengan menggunakan metode diatas, sehingga membantu orang dalam mempelajari not balok dan mendengarkan musik yang ditulis dengan not balok.

1.2. Rumusan Masalah

Rumusan masalah yang digunakan dalam penelitian ini adalah :

• Bagaimana cara kerja Pemrosesan Citra dalam mengenali citra partitur not balok.

• Mengukur tingkat ketepatan cara kerja Pemrosesan Citra dalam mengenali citra partitur not balok (nada dan nilai).

1.3. Manfaat

Manfaat dari penelitian ini adalah :

1. Membantu orang dalam mempelajari partitur not balok.


(24)

1.4. Batasan Masalah

Batasan-batasan yang digunakan untuk membatasi permasalahan yang digunakan dalam penelitian ini adalah sebagai berikut :

1. Partitur-partitur yang digunakan ditulis dalam kunci G.

2. Partitur yang digunakan ditulis dengan tangga nada naturel (do=c). 3. Data partitur yang digunakan, ditulis dan dicetak kembali secara digital

menggunakan Encore.

4. Partitur-partitur yang digunakan hanya memiliki satu nada dalam satu satuan ketukan.

5. Jumlah contoh partitur yang digunakan adalah tidak lebih dari 100 partitur dari lagu yang berbeda-beda.

6. Hanya dapat membaca nada yang ada, dan tidak dapat membaca tanda-tanda baca dalam partitur (tanda-tanda diam, hiasan, kres dan mol).

7. Dalam implementasinya menggunakan Java dan Matlab, dengan JMatLink sebagai library untuk menghubungkan keduanya.

8. Menggunakan operasi konvolusi dengan menggunakan kernel [-1 1 -1]

1.5. Sistematika Penulisan

Secara umum isi dokument ini tersusun sesuai dengan sistematika yang dijelaskan sebagai berikut :

1. BAB 1 : Pendahuluan

Pada bab ini berisi latar belakang dan masalah mengapa diadakan penelitian ini dengan batasan-batasan masalah pada penelitian ini.


(25)

2. BAB 2 : Landasan Teori

Pada bab ini dijelaskan mengenai teori-teori apa saja yang digunakan untuk mendukung penelitian ini.

3. BAB 3 : Metodologi Penelitian

Bab ini berisi langkah-langkah kerja dan metode-metode yang digunakan dalam penelitian.

4. BAB 4 : Implementasi

Bab ini berisi mengenai implementasi dalam program, untuk langkah kerja dan metode yang telah disusun pada bab 3.

5. BAB 5 : Hasil dan Pengujian

Bab ini berisi hasil pengujian yang dilakukan terhadap sistem, beserta analisis terhadap hasil tersebut.

6. BAB 6 : Kesimpulan dan Saran

Bab ini berisi kesimpulan terhadap penelitian ini, dan saran untuk pengembangan penelitian berikutnya.


(26)

7

BAB II

LANDASAN TEORI

Pada bab ini akan dijelaskan mengenai teori-teori yang dapat mendukung penelitian, diantaranya image processing, proyeksi, konvolusi, dan feature extraction.

2.1. Image Processing

Secara umum image processing menunjuk pada pemrosesan gambar 2 dimensi menggunakan komputer. Citra digital merupakan sebuah larik (array) yang berisi nilai-nilai real maupun kompleks yang direpresentasikan dengan deret bit tertentu. Suatu citra dapat didefinisikan sebagai sebuah fungsi f(x,y) berukuran M garis dan N kolom yang dimana x dan y merupakan koordinat dan f merupakan amplitudo pada koordinat (x,y) yang dinamakan intensitas atau tingkat keabuan dari citra pada titik koordinat tersebut (Putra, 2010, Pengolahan Citra Digital, hal. 19). Citra dapat ditulis dengan matrix sebagai berikut :


(27)

2.2. Feature Extraction

Ekstraksi fitur(Feature Extraction) merupakan bagian fundamental dari analisis citra. Fitur adalah karakteristik unik dari suatu objek citra. Karakteristik fitur yang baik memiliki syarat seperti berikut :

1. Dapat membedakan suatu objek dengan yang lainnya.

2. Memperhatikan kompleksitas komputasi dalam memperoleh fitur. Semakin rendah tingkat kompleksitas komputasi maka akan semakin baik.

3. Tidak terikat dalam arti bersifat invarian terhadap berbagai transformasi. 4. Jumlahnya sedikit, karena fitur yang jumlahnya sedikit akan menghemat

waktu komputasi dan ruang penyimpanan untuk proses berikutnya. Ekstraksi Fitur yang digunakan dalam citra terdapat 3 ekstraksi fitur yaitu : - Ekstraksi bentuk (shape)

- Ekstraksi warna (color) - Ekstraksi tekstur (texture)

2.3. Citra Biner

Citra biner merupakan citra yang hanya memiliki 2 kemungkinan nilai pixel, 1 dan 0. Nilai 1 merupakan warna putih sedangkan nilai 0 adalah warna hitam. Citra biner biasanya disebut citra B&W (Black and White) atau citra monokrom. Untuk menyimpan data 1 pixel hanya dibutuhkan memori sebesar 1 bit.


(28)

Citra biner sering muncul sebagai hasil segmentasi, pengambangan, morfologi atau dithering

Gambar 2.1.Contoh citra biner

2.4. Proyeksi Citra

Proyeksi citra merupakan teknik pemrosesan citra dimana jumlah level pixel dari sebuah citra dihitung sepanjang baris (lebar) citra tersebut untuk mendapatkan proyeksi horizontal dan sepanjang kolom (tinggi) citra tersebut untuk mendapatkan proyeksi vertikal. Proyeksi tersebut digambarkan dalam bentuk histogram. Tinggi histogram akan menunjukkan banyaknya pixel pada baris atau kolom tertentu.

Gambar 2.2Contoh histogram horizontal-vertical (sumber : Burger. (2008). Digital Image Processing.)


(29)

Dengan rumus perhitungan sebagai berikut :

=

= M

j

v i S i j

P 1 ] , [ ] [

= = N j

h i S i j

P 1 ] , [ ] [

Berikut merupakan penjelasan mengenai cara kerja proyeksi beserta segmentasi terhadap citra biner potongan partitur not balok.

Gambar 2.3. Contoh citra potongan partitur

Gambar 2.4.Hasil proyeksi vertikal(bawah) dan horizontal (kanan)

Untuk membentuk matrix citra seperti diatas bukan hanya membuat citra biner, namun citra tersebut harus dinegasikan, agar objek diwakili


(30)

dengan angka 1 dan background diwakili angka 0 Hasil proyeksi vertikal digunakan untuk melakukan proses segmentasi, yang dimana akan melakukan pemotongan dengan nilai ambang adalah 5 (jumlah garis).

Gambar 2.5.Proses segmentasi


(31)

2.5. Konvolusi

Konvolusi merupakan sebuah operasi sentral pada pengolahan citra. Proses konvolusi dapat dijelaskan sebagai berikut. Kernel atau matrix konvolusi dikenai operasi perkalian lalu kemudian dikenai operasi penjumlahan pada setiap pixel dan menghasilkan nilai pixel baru. Proses konvolusi dirumuskan sebagai berikut :

,= +− 1,+ − 1(, )

௟ୀଵ ௠

௞ୀଵ

Dimana O(i,j) merupakan nilai pixel baru, U merupakan citra input, dan K merupakan kernel yang digunakan. Kernel sangat penting untuk memiliki posisi central, atau dapat juga berupa matrix 2 x 2.

Berikut merupakan contoh operasi konvolusi untuk mendeteksi sebuah garis lurus dari citra not balok seperti contoh gambar 2.7. dan matrix konvolusi yang digunakan adalah matrix 1 x 3.

−1 1 −1


(32)

Perhitungan konvolusinya dijelaskan sebagai berikut : O(0,1) = 0 * -1 + 0 * 1 + 0 * -1 = 0

O(0,2) = 0 * -1 + 0 * 1 + 0 * -1 = 0 …

O(12,3) = 0 * -1 + 0 * 1 + 0 * -1 = 0

Sehingga dihasilkan citra baru yang hanya menyisakan sebuah garis lurus.

Gambar 2.8.Hasil operasi konvolusi Gambar 2.7.

2.6. Not Balok

Dalam musik tinggi-rendah, dan panjang-pendeknya nada dapat ditunjukan dengan tanda yang disebut not. Not berfungsi sebagai huruf dalam musik, dimana jika dibunyikan akan terdengar sebagai kalimat-kalimat musik, sama seperti halnya huruf alphabet jika dibunyikan akan


(33)

terdengar kata-kata dan kalimat-kalimat. Jenis-jenis penulisan not balok (titinada) dapat ditulis dalam beberapa kunci yaitu G, F, C.

(a) (b) (c)

Gambar 2.9.(a) Kunci G, (b) Kunci F, (c) Kunci C

Not balok ditulis dalam sebuah garis-garis paranada. Yang dimana nadanya ditentukan oleh kunci. Pada kunci G nada g’ diletakan pada garis ke-2 dari bawah. Pada kunci F, nada f diletakan pada garis ke-2 dari atas.

Gambar 2.10.Posisi nada pada kunci G dan F

Sebuah not terdiri atas beberapa bagian yaitu kepala, tongkat dan bendera. Nada g’


(34)

Gambar 2.11.Nama bagian not

Sebuah not terdiri atas nilai sebagai berikut (untuk ketukan berbasis 4) :

Gambar 2.12Nilai-nilai dari suatu not balok

Nilai sebuah not atau tanda istirahat menentukan berapa lama not berbunyi atau istirahat. Selain terpengaruh oleh nilai, lamanya not berbunyi juga dipengaruhi oleh metronome. Untuk metronome 60 yang dimana artinya terdapat 60 ketukan dalam 1 menit, not bernilai ¼ memiliki jumlah ketukan sebanyak 1 ketukan. Begitu juga not bernilai 1/8 memiliki jumlah ketukan sebanyak ½ ketukan dan seterusnya.


(35)

2.7. Precision-Recall

Precision merupakan bagian yang dikenali sistem dari yang relevan, sedangkan recall merupakan sebagian dokumen yang relevan dari yang dikenali sistem. Keduanya merupakan ukuran kepemahaman dan relevansi. Biasanya pengukuran kesuksesan precision-recall digunakan pada pengenalan pola dan pemerolehan informasi.

Gambar 2.13.Ilustrasi precision-recall

Jika dirumuskan maka cara untuk menghitung precision-recall adalah sebagai berikut.

= ∩

= ∩

relevan dikenali

R P


(36)

17

Bab III

METODOLOGI PENELITIAN

3.1. Perancangan Data Input

Data input yang digunakan merupakan file image / citra partitur not balok yang berekstensi *.png. File yang akan digunakan adalah sebanyak 50 partitur. Partitur not balok tersebut didapatkan dari 2 buku yaitu “Menjadi Organis 1” dan “SPECIAL SONG for kids Sunday school”. Untuk membuat partitur tersebut menjadi bentuk file yang siap untuk dikenai pemrosesan citra, partitur tersebut melewati tahap pembuatan file, dan penghapusan objek yang tidak diperlukan. Tahap-tahap tersebut dijelaskan sebagai berikut :

3.1.1. Tahap pembuatan file

Untuk membuat file image partitur, diperlukan beberapa tools yaitu Encore 5 dan ImagePrinter. Encore merupakan tools yang digunakan untuk membuat partitur, dan ImagePrinter merupakan tools yang digunakan untuk mencetak partitur menjadi sebuah file image dengan ekstensi yang ditentukan.

Buku “Menjadi Organis 1” merupakan buku yang berisi partitur lagu yang sudah ditulis dalam bentuk not balok. Jadi dalam pembuatannya hanya perlu memindahkan not balok yang ada dibuku ke dalam Encore, dengan menghilangkan atau tidak


(37)

mengikut sertakan tanda baca seperti kres, mol, garis lengkung (frasering), dll. Sedangkan untuk buku “SPECIAL SONG for kids Sunday school” yang berisi partitur lagu yang ditulis dengan not angka, untuk mendapatkan partitur not balok, harus terlebih dahulu merubah not angka menjadi not balok. Dimana semua not angka dibaca sebagai do = c atau dalam not balok sering disebut dengan tangga nada naturel (tanpa kres dan mol).

Setelah dibuat dengan menggunakan Encore, lalu partitur dicetak dengan menggunakan tools ImagePrinter. Yang akan menyimpan file image partitur hasil cetakan Encore.


(38)

Gambar 3.2.Contoh hasil pembuatan partitur

3.1.2. Tahap penghapusan objek asing

Pada penelitian kali ini yang digunakan adalah murni partitur not balok tanpa ada objek-objek asing diluar not balok. Karena hasil cetakan encore dan imageprinter masih mengandung


(39)

objek-objek asin tersebut a MSPaint. objek-obje

3.2. Perancangan Sist

Rancangan s diagram aliran data

3.2.1. DFD level 0

User

sing seperti nama composer, judul (title), maka ob t akan dihapus secara manual dengan mengguna nt. Sehingga didapatkan file partitur yang tidak me

bjek asing.

Gambar 3.3.Contoh hasil penghapusan

istem

n sistem untuk membaca partitur dapat dijabark ata sebagai berikut :

l 0 / Diagram konteks :

Gambar 3.4. DFD level 0

Sistem Pembaca partitur Citra partitur not balok, satuan

waktu (metronome)

Suara

objek-objek unakan tools mengandung

arkan dalam


(40)

3.2.2. DFD level 1:

Gambar 3.5. DFD level 1

3.2.3. DFD level 2:

3.2.3.1. Proses 2. Mendapatkan baris partitur

Gambar 3.6. DFD level 2 proses 2

Citra baris 2.1

Proyeksi horizontal Citra biner partitur

Hasil proyeksi horizontal 2.2

Segmentasi horizontal 1.

Tranformasi menjadi citra biner

2. Mendapatkan

baris partitur

3.

Mencari posisi garis

4. Mendapatkan bagian not balok

5. Mengenali bagian not balok Citra partitur

Citra biner partitur

Citra baris Citra baris Posisi garis Bagian not balok Posisi garis Jenis bagian, Nilai dan nada not User 6. Membunyikan nada suara Metronome


(41)

3.2.3.2. Proses 3. Mencari posisi garis

Gambar 3.7. DFD level 2 proses 3

3.2.3.3. Proses 4. Mendapat bagian not balok

Gambar 3.8. DFD level 2 proses 4

3.1

Proyeksi horizontal Citra baris

Hasil Proyeksi 3.2

Mencari index bernilai Posisi garis

Citra baris 4.1

Penghapusan Garis Posisi garis

Citra baris tanpa garis

4.3

Segmentasi vertikal 4.2

Proyeksi vertikal Hasil proyeksi vertical baris

Hasil pemotongan vertikal

4.4

Hapus kunci, penutup dan jenis ketukan


(42)

3.2.3.3. Proses 5. Mengenali bagian not balok

Gambar 3.9. DFD level 2 proses5

3.3. Desain Proses

Berdasarkan DFD yang telah dirancang pada sub bab sebelumnya, pada sub bab ini akan dijelaskan proses-proses yang ada pada DFD.

5.1 Deteksi Garis lurus (tangkai not)

5.2 Pengenalan jenis

bagian

5.4 Pencarian nada

Bagian not balok

Posisi garis lurus

Jenis bagian 5.5 Pencarian Nilai Posisi garis nada nilai 5.3 Penentuan posisi garis Posisi garis lurus

Perkiraan Posisi

Jenis bagian

Posisi garis


(43)

3.3.1. Proses 1. Tranformasi menjadi citra biner

Proses ini adalah untuk membuat citra biner dari citra partitur yang dimasukan oleh user agar lebih mudah untuk dilakukan pemrosesan lebih lanjut.

3.3.1.1. Ilustrasi

Gambar 3.10. Ilustrasi tranformasi menjadi citra biner

3.3.1.2. Algoritma

Cara kerja dari proses ini dijelaskan dengan psuedocode berikut: 1. Merubah citra warna menjadi citra keabuan

2. Mencari threshold citra keabuan 3. Untuk setiap pixel


(44)

a. jika nilai keabuan > threshold maka nilai biner pixel tersebut = 1

b. Jika tidak maka nilai biner pixel tersebut = 0 4. Semua nilai citra biner dibalik 0 => 1 dan 1 => 0

3.3.2. Proses 2.1. Proyeksi horizontal

Proses ini adalah untuk membuat histogram proyeksi secara horizontal. Proses proyeksi horizontal juga dilakukan pada proses 3.1. Secara umum proyeksi horizontal dikerjakan dengan menjumlahkan pixel secara horizontal.

3.3.2.1. Ilustrasi

Gambar 3.11. Potongan citra (kiri) dan hasil proyeksi horizontal (kanan)

3.3.2.2. Algoritma

Cara kerja dari proses ini dijelaskan dengan psuedocode berikut :


(45)

3.3.3. Proses 2.2. Segmentasi horizontal

Proses ini adalah untuk memotong citra sesuai dengan hasil proyeksi horizontal, dan dengan ambang batas. Pada kasus citra partitur not balok proses ini digunakan untuk mendapatkan baris-baris not balok.

3.3.3.1. Ilustrasi

Gambar 3.12. Hasil segmentasi mendapatkan 2 objek (atas dan bawah)

3.3.3.2. Algoritma

Cara kerja proses ini dijelaskan sebagai berikut :

1. cari index pertama dari hasil proyeksi > thres masukan dalam variable indexAwal

2. cari index berikutnya dari hasil proyeksi < thres masukan dalam variable indexAkhir

3. lakukan copy array dari i = 0 sampai width image, j = indexAwal sampai indexAkhir – 1 :


(46)

citra baris baru[j-indexAwal][i] = citra biner partitur[j][i]; 4. citra baris baru ditambahkan dalam array citra baris. 5. lakukan proses 1-3, untuk index sampai height image.

3.3.4. Proses 3.2. Mencari index max

Proses ini adalah untuk mencari posisi garis dengan mengacu pada nilai max pada hasil proyeksi horizontal, karena posisi-posisi garis memiliki intensitas pixel yang paling banyak secara proyeksi horizontal.

3.3.4.1. Ilustrasi

Gambar 3.13. Posisi-posisi max [0 – 4]

3.3.4.2. Algoritma

Cara kerja proses ini dijelaskan sebagai berikut : 1. cari nilai max dari hasil proyeksi horizontal. 2. i 0;

3. Untuk setiap index hasil proyeksi : a. Jika nilai[index] == max

b. Maka posisi garis[i] index; i++; [0

[1 [2 [3 [4


(47)

3.3.5. Proses 4.1. Penghapusan garis

Proses ini untuk menghilangkan garis-garis paranada, karena akan mempermudah mengenali objek dan melakukan segmentasi secara vertikal pada proses berikutnya.

3.3.5.1. Ilustrasi

Gambar 3.14. Potongan citra baris

Untuk setiap titik sebagai titik tengah pada posisi garis (proses

3.2.), yang memiliki pola seperti matrix

0 1 0

akan diubah menjadi 0.

Sehingga semua garis akan dapat dihapus.


(48)

3.3.5.2. Algoritma

Cara kerja proses ini dijelaskan sebagai berikut :

1. currentPos posisiGaris[0] % nilaiAbsolut(posisiGaris[0] – posisiGaris[1])

2. jarakAntarGaris nilaiAbsolut(posisiGaris[0] – posisiGaris[1])

3. untuk semua pixel baris currentPos pada citra baris (citra baris[currentPos][*]) lakukan :

a. jika pixel citrabaris[currentPos+1][*] dan citrabaris[currentPos-1][*] == 0 maka nilai pixel citrabaris[currentPos][*] = 0;

4. currentPos += jarakAntarGaris;

5. lakukan tahap no 3-4 selama currentPos < image’s height

3.3.6. Proses 4.2. Proyeksi vertikal

Proses ini adalah untuk membuat histogram proyeksi secara vertikal. Secara umum proyeksi vertikal dikerjakan dengan menjumlahkan pixel secara vertikal.


(49)

3.3.6.1. Ilustrasi

Gambar 3.16. Citra (atas) dan hasil proyeksi vertikal (bawah)

3.3.6.2. Algoritma

Cara kerja dari proses ini dijelaskan dengan psuedocode berikut :

1. [] = ∑௜௠௔௚௘௝ୀ଴ ′௦௛௘௜௚௛௧ []

3.3.7. Proses 4.3. Segmentasi vertikal

Proses ini adalah untuk memotong citra sesuai dengan hasil proyeksi vertikal, dan dengan ambang batas tertentu. Proses ini adalah untuk mendapatkan bagian-bagian not balok.


(50)

3.3.7.1. Ilustrasi

Gambar 3.17. Hasil segmentasi vertikal

3.3.7.2. Algoritma

Cara kerja proses ini dijelaskan sebagai berikut :

1. cari index pertama dari hasil proyeksi > thres masukan dalam variable indexAwal

2. cari index berikutnya dari hasil proyeksi < thres masukan dalam variable indexAkhir

3. lakukan copy array dari i = 0 sampai height image, j = indexAwal sampai indexAkhir – 1 :

citra bagian baru[i] [j-indexAwal] = citra biner partitur[i][j]; 4. citra bagian baru ditambahkan dalam array citra bagian.


(51)

5. laku

3.3.8. Proses 4.4. H

Proses ketukan, kare C. Sedangka penutup. 3.3.8.1. Ilustr Gambar 3.3.8.2. Algo Cara ke 1. hapu 2. jika

pert 3. jika

terak

3.3.9. Proses 5.1. D

Proses Proses ini m noise setelah

kukan proses 1-3, untuk index sampai width imag

. Hapus kunci, penutup dan jenis ketukan

es ini adalah menghilangkan kunci, penutup arena semua dianggap ketukan */4 dan bermain p kan penutup merupakan sebuah garis diakhir, seb

strasi

ar 3.18. Penghapusan kunci,dan jenis ketukan

lgoritma

kerja proses ini dijelaskan sebagai berikut : apus bagian pertama setiap baris

ka baris merupakan baris pertama maka hap ertama berikutnya

ka baris merupakan baris terakhir maka hapus rakhir dalam baris tersebut.

. Deteksi garis lurus(tangkai not)

es ini bertujuan mencari posisi sebuah garis luru menggunakan operasi konvolusi dan juga meng lah dikenai operasi konvolusi.

age.

p dan jenis n pada kunci ebagai tanda

apus bagian

us 2 bagian

urus vertikal. enghilangkan


(52)

3.3.9.1. Mendapatkan matrix konvolusi deteksi garis lurus.

Pada penelitian ini untuk mendapatkan matrix konvolusi deteksi garis lurus, adalah sebagai berikut :

1. Tentukan dimensi matrix. Karena titik-titik penyusun garis lurus memiliki susunan matrix 0 1 0 maka dapat ditentukan bahwa matrixnya akan berdimensi 1 x 3

2. Karena titik tersebut tidak memiliki pixel baik di kanan maupun disebelah kiri, maka jika terdapat pixel harus dapat merubah nilai tengah. Contoh perhitungan kemungkinan I :

0 1 1∗ ! = 0

!+= 0

!= −

Contoh perhitungan kemungkinan II :

1 1 0∗ ! = 0

!+= 0

!= −

Dari kedua persamaan diatas jika diambil suatu nilai konstanta untuk y adalah 1, maka z dan x adalah -1. Sehingga didapatkanlah matrix −1 1 −1.


(53)

3.3.9.2. Ilustrasi

Gambar 3.19.Contoh citra not balok

Contoh diatas dikenai dengan operasi konvolusi [1 1 -1]. Maka akan menghasilkan garis-garis lurus.

Gambar 3.20.Hasil operasi konvolusi gambar 3.19.

3.3.9.3. Algoritma

Cara kerja proses ini dijelaskan sebagai berikut :

1. kenai citra bagian not balok dengan operasi konvolusi menggunakan matrix konvolusi 1 x 3.


(54)

2. lakukan penghilangan noise untuk citra bagian not balok, jika terdapat matrix berikut dalam citra tersebut maka akan dianggap noise dan akan dihapus.

0 0 0

0 1 0

0 0 0

3. lakukan proyeksi vertical untuk mendapatkan posisi garis lurus.

4. Untuk setiap hasil proyeksi > 0, maka akan disimpan sebagai posisi garis lurus.

3.3.10. Proses 5.2. Pengenalan jenis bagian

Proses ini adalah proses untuk mengenali bagian not balok tersebut merupakan nada, garis birama, atau tanda diam.

3.3.10.1. Ilustrasi


(55)

Gambar 3.22. Contoh gambar-gambar tanda diam

Gambar 3.23. Contoh garis birama

3.3.10.2. Algoritma

Cara kerja proses ini dijelaskan sebagai berikut : 1. Jika jumlah garis lurus == 1 maka :

a. Jika lebar citra == maka

jenis bagian = ”batas birama” end b. Jika tidak :

jenis bagian = ”nada” end 2. Jika jumlah garis lurus > 1 maka :

jenis bagian = ”nada” end 3. Jika jumlah garis lurus == 0 maka :


(56)

b. hitung tinggi citra sesungguhnya.

c. Jika bagian memiliki tinggi == ||posisi garis[0] – posisi garis[1]|| maka

jenis bagian = “nada” end

d. First posisi pertama hasil proyeksi bernilai > 0 e. Last posisi terakhir hasil proyeksi bernilai > 0

f. Jika tinggi < ||posisi garis[0] – posisi garis[1]|| dan first != posisi garis[1] dan last != posisi garis[2] maka

jenis bagian = “titik” end g. jika tidak maka

jenis bagian = “jeda” end

3.3.11. Proses 5.3. Penentuan posisi garis

Proses ini adalah proses untuk menentukan posisi garis berada pada belakang, depan atau tengah dari citra. Proses ini akan membantu dalam penentuan posisi kepala.

3.3.11.1. Ilustrasi


(57)

Gambar 3.25. Garis di belakang

Gambar 3.26. Garis di tengah

3.3.11.2. Algoritma

Cara kerja proses ini dijelaskan sebagai berikut: 1. Jika jumlah jenis bagian == “nada” maka :

a. Jika garis lurus > 1 maka :

- Jika posisi garis pertama < (lebar citra – garis terakhir) maka

Perkiraan posisi = “depan” - Jika tidak maka :

Perkiraan posisi = “belakang”

b. Jika tidak maka jika garis lurus == 1 maka - Jika posisi garis lebih dekat dengan 0, maka


(58)

- Jika posisi garis lebih dekat dengan lebar citra, maka Perkiraan posisi = “belakang”

- Jika posisi garis lebih dekat dengan lebar citra / 2 (posisi tengah), maka

Perkiraan posisi = “tengah” 2. Jika tidak maka end

3.3.12. Proses 5.4. Pencarian nada

Proses ini adalah proses untuk menentukan nada dari citra bagian not balok. Karena akan dibunyikan maka nada harus diubah menjadi angka yang dimana, nada g = 67, a = 69, b = 71, c’ = 72, d’ = 74, e’ = 76, f’ = 77, begitu seterusnya untuk masing-masing nada ditambah atau dikurangi 12 untuk setiap oktafnya.

3.3.12.1. Ilustrasi

Gambar 3.27. Contoh gambar not

Pada Gambar 3.27. terdapat 4 buah nada, yang masing-masing merupakan nada c, G, A, dan B.


(59)

3.3.12.2. Algoritma

Cara kerja proses ini dijelaskan sebagai berikut : 1. Jika jenis bagian == “nada” maka

a. Jika jumlah garis lurus > 1 maka :

- jika perkiraan posisi == “tengah” atau “belakang” Untuk setiap posisi garis lurus telusuri sampai dapat posisi pixel paling bawah.

- Jika perkiraan posisi == “depan”

Untuk setiap posisi garis lurus telusuri sampai dapat posisi pixel paling atas.

b. Jika tidak maka :

Untuk posisi pixel kolom ke-0 telusuri sampai dapat posisi pixel paling atas.

c. Beda nada= pembulatan kebawah((posisi pixel – posisi garis[3]) / (||posisi garis[0] – posisi garis[1]||/2))

d. Nilai nada = {0, 2, 4, 5, 7, 9, 10}

e. Nada = nilai nada[beda nada % 12] + pembulatan kebawah(beda nada / 12) * 12

f. Nada += 67.


(60)

3.3.13. Proses 5.5. Pencarian nilai

Proses ini adalah proses untuk menentukan nilai dari citra bagian not balok. Citra yang akan dikenai proses pencarian nilai hanya citra bagian yang dikenali sebagai not saja.

3.3.13.1. Ilustrasi

Gambar 3.28. Nada 1/4

Gambar 3.29. Nada 1/2


(61)

3.3.13.2. Algoritma

Cara kerja proses ini dijelaskan sebagai berikut : 1. Jika jenis bagian == “titik” maka :

- X Nilai bagian sebelumnya - X X * 3 / 4

- Nilai bagian sebelumnya X - end

2. Jika jenis bagian != “nada” maka end 3. Jika jumlah garis lurus == 0 maka :

Nilai = 1 end

4. Jika jumlah garis lurus == 1 maka :

a. Jika perkiraan posisi == “belakang” maka

- Cek pada citra bagian koordinat y = posisi kepala, x = tengah citra, apakah terdapat pixel (citra(x,y) == 1) jika iya maka :

Nilai = ¼ end - Jika tidak maka : Nilai = ½ end

b. Jika perkiraan posisi == “tengah ” maka - Posisi bendera posisi garis lurus + 1

- Jumlah bendera jumlah kumpulan pixel pada posisi bendera


(62)

c. Jika perkiraan posisi == “depan” maka

- Cek pada citra bagian koordinat y = posisi kepala, x = tengah citra, apakah terdapat pixel (citra(x,y) == 1) jika iya maka :

• Posisi bendera posisi garis lurus – 1

• Jumlah bendera jumlah kumpulan pixel pada posisi bendera

• Jumlah bendera = Jumlah bendera – 1 // karena 1 kumpulan pixel merupakan kepala not

• Nilai = ½ jumlah bendera + 2 end - Jika tidak maka :

Nilai = ½ end

5. Jika jumlah garis lurus > 1 maka :

a. Untuk i = 0 sampai jumlah garis lurus – 1 lakukan proses b sampai d

b. Untuk garis lurus pertama :

- Posisi bendera posisi garis lurus + 1

- Jumlah bendera jumlah kumpulan pixel pada posisi bendera

- Jika perkiraan posisi == “depan” maka :

• Jumlah bendera = Jumlah bendera – 1 - Nilai[i] = ½ jumlah bendera + 2


(63)

c. Untuk garis lurus terakhir :

- Posisi bendera posisi garis lurus + 1

- Jumlah bendera jumlah kumpulan pixel pada posisi bendera

- Jika perkiraan posisi == “belakang” maka :

• Jumlah bendera = Jumlah bendera – 1 - Nilai[i] = ½ jumlah bendera + 2

d. Untuk garis lurus di tengah (i != 0 && i != jumlah garis lurus – 1) :

- Posisi bendera1 posisi garis lurus + 1 - Posisi bendera2 posisi garis lurus – 1

- Jumlah bendera1 jumlah kumpulan pixel pada posisi bendera1

- Jumlah bendera2 jumlah kumpulan pixel pada posisi bendera2

- Jika perkiraan posisi == “depan” maka : Jumlah bendera1 = Jumlah bendera1 – 1 - Jika perkiraan posisi == “belakang” maka :

Jumlah bendera2 = Jumlah bendera2 – 1

- Jika Jumlah bendera1 > Jumlah bendera2 maka : Jumlah bendera = jumlah bendera1


(64)

Jumlah bendera = jumlah bendera2 - Nilai[i] = ½ jumlah bendera + 2

e. end

3.3.14. Proses 6. Membunyikan nada

Proses ini merupakan proses untuk membunyikan nada-nada yang telah dibaca. Algoritma untuk proses ini adalah sebagai berikut :

1. Jika jenis bagian == “jeda” maka

a. Bunyikan sebuah nada dengan volume 0 selama (0.25 * 60 / metronome * 4) detik

2. Jika jenis bagian == “nada” maka

a. Bunyikan nada dengan volume 60 selama (nilai * 60 / metronome * 4) detik

3.4. Perancangan Pengujian

3.4.1. Pembuatan jawaban

Jawaban dibuat secara manual, dengan menggunakan notepad dan disimpan dalam ekstensi *.txt. Jawaban dibuat dengan format sebagai berikut :


(65)

1. Semua nada akan ditulis dengan format

HurufNada/Oktaf/Nilai. Huruf nada merupakan huruf yang digunakan untuk melambangkan sebuah nada. Oktaf merupakan tinggi oktaf dari nada tersebut, yang dimana c’ 2. sampai b’ dianggap sebagai oktaf ke-0. Nilai merupakan

nilai nada tersebut. Contoh penulisan untuk beberapa nada :

= d/0/0.5 = f/1/1

Gambar 3.31. Contoh nada dan jawaban

3. Untuk batas birama akan ditulis “\n” atau spasi(Enter) 4. Untuk jeda akan ditulis “jeda”

3.4.2. Tranformasi nada dan nilai menjadi jawaban

Algortima untuk merubah nada dan nilai pada masing-masing bagian menjadi format seperti diatas dijelaskan sebagai berikut :

1. HurufNada = {c,d,e,f,g,a,b} 2. NilaiNada = {0,2,4,5,7,9,11}

3. Jika jenis bagian == “batas birama” maka : stringBagian = “\n” end


(66)

stringBagian = “jeda” end 5. Jika jenis bagian == “nada” maka :

- index = search Index (nada%12) pada nilaiNada. - hurufNada = HurufNada[index]

- Oktaf = bulatKeBawah((nada – 60)/12) - Nilai = nilai

- stringBagian = hurufNada+“/”+Oktaf+“/”+Nilai

3.4.3. Pengujian dengan precision-recall

Pengujian hasil dilakukan dengan metode precision-recall untuk masing-masing partitur, yang dimana terdapat 50 partitur untuk dilakukan pengujian. Pengujian akan menghasilkan 50 persentase precision-recall, kemudian akan dirata-rata dan akan menghasilkan average precision-recall. Proses / algoritma pengujian yang akan dilakukan adalah sebagai berikut :

1. jawaban = jawaban yang dibuat

2. hasilSistem = hasil jawaban pembacaan sistem

3. jawaban dan hasilSistem displit berdasarkan spasi(“ ”). 4. Benar = 0

5. Setiap splithasilSitem dicocokan dengan setiap splitJawaban.

a. Jika cocok maka : Benar += 1


(67)

6. Precision = Benar / Jumlah splithasilSistem 7. Recall = Benar / jumlah splitJawaban

3.5. Perancangan Interface

Interface yang digunakan merupakan interface sederhana yang dapat memenuhi input user berupa metronome dan citra partitur. Diperlukan tombol browse untuk membuka pilihan file citra partitur. Selain itu, diperlukan tombol play yang dapat membunyikan nada-nada yang dibaca oleh sistem.


(68)

49

BAB IV

IMPLEMENTASI

Pada bab 4 berisi implementasi sistem, pengujian dan interface. Implementasi ini menggunakan bahasa pemrograman Java dan sedikit bagian menggunakan Matlab. Untuk menjalankan program Matlab di Java digunakan JMatLink. Implementasi sistem merupakan implementasi inti pembacaan citra partitur musik, implementasi pengujian berisi code-code sederhana untuk membantu pengujian agar menjadi lebih cepat, implementasi interface merupakan hasil implementasi antarmuka untuk sistem pembacaan partitur yang dibuat.

4.1. Implementasi Sistem

Pada beberapa proses menggunakan bantuan Matlab, dengan menggunakan JMatLink. Secara umum penggunaan JMatLink adalah sebagai berikut :

1. JMatLink jmat = new JMatLink();

2. Long t = jmat.engOpenSingleUse();// untuk memulai koneksi dengan matlab

3. jmat.engEvalString(“// perintah matlab”);

4. jmat.engClose(t); // untuk mengakhiri koneksi dengan matlab Implementasi sistem berisi code-code dengan menggunakan java dan beberapa akan digabung dengan Matlab. Implementasi ini merupakan


(69)

implementasi perancangan sistem yang telah dibuat pada bab sebelumnya. Implementasi berikut merupakan implementasi sistem :

4.1.1. Proses 1. Transformasi menjadi citra biner

Transformasi akan diimplementasikan dengan menggunakan java yang dihubungkan dengan matlab. Proses transformasi ini menggunakan beberapa function yang disediakan matlab seperti im2bw() untuk merubah sebuah citra menjadi citra biner. Selain itu untuk membaca file menggunakan function imread(). Setelah mendapatkan citra biner, data dari matlab akan disalin kedalam bentuk array 2 dimensi pada java. Proses ini diimplementasikan pada method ImS.bacaFile().


(70)

4.1.2. Proses 2.1. Proyeksi horizontal

Proyeksi horizontal diimplementasikan dengan menggunakan java, dan diimplementasikan pada method ImS.getHorizontal(). Berikut merupakan code implementasi :

4.1.3. Proses 2.2. Segmentasi horizontal

Segmentasi horizontal diimplementasikan pada method

ImS.potongHorizontal(). Segmentasi horizontal akan menghasilkan citra baris-baris dari partitur yang dimasukan.


(71)

4.1.4. Proses 3.2. Mencari index max

Proses ini diimplementasikan pada method ImS.posisiGaris(). Berikut merupakan implementasi untuk proses mencari index max :


(72)

4.1.5. Proses 4.1. Penghapusan garis

Proses ini diimplementasikan pada method ImS.hapusGaris(). Berikut merupakan code implementasi proses penghapusan garis :

4.1.6. Proses 4.2. proyeksi vertikal

Proses ini diimplementasikan pada method ImS.getVertical(). Berikut merupakan code implementasi proyeksi vertikal :


(73)

4.1.7. Proses 4.3. Segmentasi vertikal

Proses ini diimplementasikan pada method ImS.potongVertical(). Berikut merupakan code implementasi segmentasi vertikal :

4.1.8. Proses 4.4. Hapus kunci, penutup dan jenis ketukan

Proses ini diimplementasikan pada method All.baris2Bagian(). Berikut merupakan code implementasi hapus kunci, penutup dan jenis ketukan :


(74)

4.1.9. Proses 5.1. Deteksi garis lurus(tangkai not)

Proses ini diimplementasikan pada function detectGaris() yang diimplementasikan menggunakan Matlab. Berikut merupakan code implementasi deteksi garis lurus(tangkai not) :


(75)

4.1.10. Proses 5.2. Pengenalan jenis bagian

Proses ini diimplementasikan dalam method kenaliBagian(), isNada(), dan isTitik() berikut merupakan implementasi code :

isNada() :


(76)

4.1.11. Proses 5.3. Penentuan posisi garis

Proses ini diimplementasikan dalam method posisiTangkai() untuk jumlah garis lurus(tangkai) == 1, sedangkan posisiTangkai() untuk jumlah garis lurus(tangkai) > 1 berikut merupakan implementasi code :


(77)

4.1.12. Proses 5.4. Pencarian nada

Proses pencarian nada diimplementasikan pada method posisiKepala dan getNada(), berikut code implementasi proses pencarian nada :


(78)

4.1.13. Proses 5.5. Pencarian nilai

Proses ini diimplementasikan secara terpisah-pisah pada method kenali(), kenaliBagian(), hitungBendera(), dan getNilai(). Cara kerja proses ini dijelaskan sebagai berikut :

• Untuk jenis bagian == “titik” :


(79)

• Untuk jumlah garis lurus == 1 :


(80)

• Untuk jumlah garis lurus (tangkai) > 1 :

Method getNilai() digunakan pada kondisi jumlah garis lurus(tangkai) == 1, dan jumlah garis lurus(tangkai) == 1.


(81)

4.1.14 Proses 6. Membunyikan nada

Proses ini diimplementasikan dengan menggunakan MIDI, dan dalam method play(). Untuk tanda jeda tetap akan dibunyikan sebuah nada default tetapi dengan keras suara dibuat menjadi 0, sehingga tidak terdengar.


(82)

4.2. Implementasi Interface

Implementasi interface adalah sebagai berikut

Gambar 4.1.Hasil implementasi interface

Ketika tombol browse diklik maka akan muncul dialog pencarian file sebagai berikut :

Gambar 4.2. JFileChooser

Setelah file dipilih kemudian user harus menekan tombol process

untuk memproses citra, setelah selesai, maka tombol play akan dibuka. Metronome jika tidak diisi maka akan bernilai default 60. Jika user menekan tombol play maka akan terdengar suara nada sesuai hasil pembacaan file.


(83)

64

Bab V

Hasil dan Pengujian

5.1. Data Input

Data input yang digunakan merupakan file image / citra partitur not balok yang berekstensi *.png. File yang akan digunakan adalah sebanyak 50 partitur. Partitur not balok tersebut didapatkan dari 2 buku yaitu “Menjadi Organis 1” dan “SPECIAL SONG for kids Sunday school”. Untuk membuat partitur tersebut menjadi bentuk file yang siap untuk dikenai pemrosesan citra, partitur tersebut melewati tahap pembuatan file, dan penghapusan objek yang tidak diperlukan. Citra partitur diberi nama 01.png sampai 50.png.

Tabel 5.1.Tabel file pengujian

Nama File Ukuran dimensi citra Ukuran file

01.png 2480 x 904 56.9 KB

02.png 2343 x 798 54.5 KB

03.png 2422 x 1023 66.4 KB

04.png 2373 x 887 54.9 KB

05.png 2314 x 827 49.8 KB

06.png 2302 x 678 45.7 KB

07.png 2480 x 1505 106 KB

08.png 2480 x 1410 86.4 KB


(84)

10.png 2313 x 1410 89.8 KB

11.png 2480 x 1534 98 KB

12.png 2480 x 1434 91.3 KB

13.png 2480 x 1059 69.8 KB

14.png 2480 x 1558 85 KB

15.png 2480 x 1048 58 KB

16.png 2480 x 715 39.9 KB

17.png 2480 x 607 36.2 KB

18.png 2480 x 1416 79.6 KB

19.png 2480 x 623 37.1 KB

20.png 2480 x 576 34.6 KB

21.png 2480 x 685 38.6 KB

22.png 2352 x 573 32.1 KB

23.png 2321 x 576 33.1 KB

24.png 2480 x 617 37.4 KB

25.png 2480 x 307 18.2 KB

26.png 2480 x 1315 74.4 KB

27.png 2480 x 738 41.1 KB

28.png 2480 x 1362 78.1 KB

29.png 2480 x 1416 84 KB

30.png 2480 x 637 35.7 KB


(85)

32.png 2480 x 1416 76.2 KB

33.png 2480 x 643 38.2 KB

34.png 2480 x 619 35.2 KB

35.png 2480 x 738 40.8 KB

36.png 2480 x 322 18.8 KB

37.png 2480 x 328 18.7 KB

38.png 2480 x 299 18.7 KB

39.png 2480 x 340 19.1 KB

40.png 2480 x 542 32.2 KB

41.png 2480 x 316 19.2 KB

42.png 2480 x 1035 63.6 KB

43.png 2480 x 340 18.4 KB

44.png 2480 x 578 32.3 KB

45.png 2480 x 1083 67 KB

46.png 2480 x 593 37.1 KB

47.png 2480 x 931 54.1 KB

48.png 2480 x 613 34 KB

49.png 2480 x 613 34.5 KB


(86)

5.2. Code Pengujian Sistem

Untuk membantu dalam melakukan pengujian precision-recall, maka digunakan sebuah program sederhana sebagai berikut :


(87)

5.3. Hasil Pengujian

Hasil pengujia

5.3.1. Hasil Seg

Pada baris-ba

an Sistem

jian sistem dijelaskan dengan tahapan sebagai beri

egmentasi Horizontal

ada proses pertama yaitu segmentasi horizontal d baris (staves) partitur. Contoh pada file 17.png

Gambar 5.1. Partitur file 17.png

erikut :


(88)

Has Gambar Sete segmen didapatk Ga Ga Sete segmen didapatk

asil proyeksi horizontal gambar adalah sebagai be

ar 5.2.Hasil proyeksi horizontal file 17.png

etelah dilakukan proyeksi horizontal, akan entasi berdasarkan hasil proyeksi horizontal.

atkan baris-baris (staves).

Gambar 5.3.Hasil segmentasi baris I

Gambar 5.4.Hasil segmentasi baris II

etelah dilakukan proyeksi horizontal, akan entasi berdasarkan hasil proyeksi horizontal.

atkan baris-baris (staves) pada partitur tersebut.

berikut :

n dilakukan l. Sehingga

n dilakukan l. Sehingga


(89)

5.3.2. Hasil Segmentasi Vertikal

Pada proses kedua yaitu segmentasi vertikal didapatkan bagian-bagian (staves) partitur. Sebagai contoh pada baris II file 17.png pada Gambar 5.4. baris tersebut diproyeksikan secara vertikal setelah sebelumnya dihilangkan garis-garisnya terlebih dahulu, sehingga didapatkan histogram proyeksi vertikal.

Gambar 5.5.Hasil proyeksi vertikal baris I file 17.png

Setelah dilakukan proyeksi vertikal, akan dilakukan segmentasi berdasarkan hasil proyeksi vertikal. Sehingga didapatkan bagian-bagian not balok. Karena baris ini merupakan baris terakhir maka akan dikenai proses penghapusan bagian pertama dan 2 bagian terakhir sehingga didapatkan bagian-bagian not balok yang telah dihilangkan beberapa bagian.


(90)

5.3.3. Hasil Pengenalan :

Proses berikut setelah segmentasi vertikal, adalah proses pengenalan untuk menjadi nada, nilai, dan jenis. Nada, nilai dan jenis akan dikonversikan sesuai dengan format (dijelaskan pada subbab 3.4). Sebagai contoh hasil pengenalan yang dikenali sistem pada file 17.png adalah sebagai berikut :

5.3.4. Hasil Pengujian :

Hasil pengujian hasil pengenalan sistem dengan jawaban yang dibuat, disajikan dalam tabel dibawah ini untuk masing-masing file.

Tabel 5.2.Tabel hasil pengujian semua file pengujian

Nama File Jumlah split hasil sistem Jumlah split hasil manual Total jawaban yang benar

Precision Recall

01.png 25 25 25 100 100

02.png 42 42 42 100 100

jeda e/0/0.0625

g/0/0.25 g/0/0.25 g/0/0.375 e/0/0.0625

f/0/0.125 g/0/0.0625 f/0/0.0625 e/0/0.125 d/0/0.5

d/0/0.125 d/0/0.0625 d/0/0.0625 e/0/0.125 f/0/0.375 f/0/0.0625 a/0/0.125 a/0/0.0625 g/0/0.0625 f/0/0.125 e/0/0.25 jeda

g/0/0.0625

c/1/0.25 g/0/0.25 c/1/0.375 g/0/0.0625


(91)

03.png 41 41 41 100 100

04.png 26 26 26 100 100

05.png 26 26 26 100 100

06.png 28 28 28 100 100

07.png 78 78 78 100 100

08.png 28 28 28 100 100

09.png 49 50 50 98 98

10.png 52 52 52 100 100

11.png 50 50 50 100 100

12.png 42 43 43 97.67442 97.67442

13.png 35 35 35 100 100

14.png 47 53 53 88.67925 88.67925

15.png 31 45 45 68.88889 68.88889

16.png 28 28 28 100 100

17.png 20 33 33 60.60606 60.60606

18.png 59 59 59 100 100

19.png 29 38 38 76.31579 76.31579

20.png 33 35 35 94.28571 94.28571

21.png 23 24 24 95.83333 95.83333

22.png 18 21 21 85.71429 85.71429

23.png 23 29 29 79.31035 79.31035


(92)

25.png 14 16 16 87.5 87.5

26.png 51 55 55 92.72727 92.72727

27.png 24 25 25 96 96

28.png 44 50 50 88 88

29.png 42 63 63 66.66667 66.66667

30.png 24 25 25 96 96

31.png 70 74 74 94.59459 94.59459

32.png 29 33 33 87.87878 87.87878

33.png 29 34 34 85.29411 85.29411

34.png 23 24 24 95.83333 95.83333

35.png 27 27 27 100 100

36.png 13 15 15 86.66666 86.66666

37.png 14 14 14 100 100

38.png 13 18 18 72.22222 72.22222

39.png 12 14 14 85.71429 85.71429

40.png 27 27 27 100 100

41.png 13 18 18 72.22222 72.22222

42.png 40 48 48 83.33333 83.33333

43.png 11 11 11 100 100

44.png 13 23 23 56.52174 56.52174

45.png 50 59 59 84.74577 84.74577


(93)

47.png 31 33 33 93.93939 93.93939

48.png 21 22 22 95.45454 95.45454

49.png 23 23 23 100 100

50.png 46 46 46 100 100

Hasil pengujian semua file citra partitur dicari rata-ratanya. Hasil pengujian rata-rata disajikan sebagai berikut.

Tabel 5.3.Rata-rata hasil pengujian

Precision Recall

Rata-rata 90.233 % 90.233 %

Pada pengujian terdapat beberapa error dalam pengenalan. Error yang terjadi adalah sebagai berikut.

Tabel 5.4.Error hasil uji

File Bagian ke-

Dikenali

sebagai

Jawaban

09.png 29 jeda c/1/1.0

12.png 22 jeda e/1/1.0

14.png 1 f/0/0.0625 f/0/0.125

14.png 3 a/0/0.0625 a/0/0.125


(94)

14.png 30 f/0/0.0625 f/0/0.125

14.png 45 d/0/0.0625 d/0/0.125

14.png 47 f/0/0.0625 f/0/0.125

15.png 3 g/0/0.0625 g/0/0.125

15.png 4 g/0/0.0625 g/0/0.125

15.png 7 e/0/0.0625 e/0/0.125

15.png 9 g/0/0.0625 g/0/0.125

15.png 10 g/0/0.0625 g/0/0.125

15.png 14 g/0/0.0625 g/0/0.125

15.png 20 g/0/0.0625 g/0/0.125

15.png 21 g/0/0.0625 g/0/0.125

15.png 24 d/0/0.0625 d/0/0.125

15.png 27 f/0/0.0625 f/0/0.125

15.png 28 f/0/0.0625 f/0/0.125

15.png 34 f/0/0.0625 f/0/0.125

15.png 35 f/0/0.0625 f/0/0.125

15.png 42 a/0/0.0625 a/0/0.125

17.png 2 e/0/0.0625 e/0/0.125

17.png 6 e/0/0.0625 e/0/0.125

17.png 8 g/0/0.0625 g/0/0.125

17.png 9 f/0/0.0625 f/0/0.125


(95)

17.png 14 d/0/0.0625 d/0/0.125

17.png 17 f/0/0.0625 f/0/0.125

17.png 19 a/0/0.0625 a/0/0.125

17.png 20 g/0/0.0625 g/0/0.125

17.png 24 g/0/0.0625 g/0/0.125

17.png 28 g/0/0.0625 g/0/0.125

17.png 30 b/0/0.0625 b/0/0.125

17.png 31 a/0/0.0625 a/0/0.125

19.png 2 c/0/0.03125 c/0/0.0625

19.png 4 c/0/0.0625 c/0/0.125

19.png 10 f/0/0.0625 f/0/0.125

19.png 13 e/0/0.0625 e/0/0.125

19.png 16 e/0/0.0625 e/0/0.125

19.png 20 c/0/0.0625 c/0/0.125

19.png 23 c/0/0.0625 c/0/0.125

19.png 29 f/0/0.0625 f/0/0.125

19.png 35 e/0/0.0625 e/0/0.125

20.png 1 g/0/0.0625 g/0/0.125

20.png 11 e/0/0.0625 e/0/0.125

21.png 21 c/0/0.0625 c/0/0.125

22.png 5 g/0/0.0625 g/0/0.125


(96)

22.png 19 d/0/0.0625 d/0/0.125

23.png 1 g/0/0.0625 g/0/0.125

23.png 12 g/0/0.0625 g/0/0.125

23.png 17 c/0/0.0625 c/0/0.125

23.png 21 d/0/0.0625 d/0/0.125

23.png 26 c/0/0.0625 c/0/0.125

23.png 27 d/0/0.0625 d/0/0.125

24.png 1 c/0/0.0625 c/0/0.125

24.png 3 e/0/0.0625 e/0/0.125

24.png 4 d/0/0.0625 d/0/0.125

24.png 5 c/0/0.0625 c/0/0.125

24.png 6 a/-1/0.0625 a/-1/0.125

24.png 9 g/0/0.0625 g/0/0.125

24.png 13 g/0/0.0625 g/0/0.125

24.png 14 e/0/0.0625 e/0/0.125

24.png 21 e/0/0.0625 e/0/0.125

24.png 23 d/0/0.0625 d/0/0.125

24.png 26 c/0/0.0625 c/0/0.125

24.png 28 e/0/0.0625 e/0/0.125

24.png 30 c/0/0.0625 c/0/0.125

24.png 31 a/-1/0.0625 a/-1/0.125


(97)

25.png 6 e/0/0.0625 e/0/0.125

26.png 35 g/0/0.0625 g/0/0.125

26.png 41 c/0/0.0625 c/0/0.125

26.png 46 g/0/0.0625 g/0/0.125

26.png 54 d/0/0.0625 d/0/0.125

27.png 1 e/0/0.0625 e/0/0.125

28.png 3 f/0/0.0625 f/0/0.125

28.png 4 g/0/0.0625 g/0/0.125

28.png 15 g/0/0.0625 g/0/0.125

28.png 16 a/0/0.0625 a/0/0.125

28.png 28 f/0/0.0625 f/0/0.125

28.png 29 g/0/0.0625 g/0/0.125

29.png 2 d/0/0.0625 d/0/0.125

29.png 4 c/0/0.0625 c/0/0.125

29.png 10 e/0/0.0625 e/0/0.125

29.png 12 f/0/0.0625 f/0/0.125

29.png 13 e/0/0.0625 e/0/0.125

29.png 18 f/0/0.0625 f/0/0.125

29.png 20 e/0/0.0625 e/0/0.125

29.png 26 g/0/0.0625 g/0/0.125

29.png 28 a/0/0.0625 a/0/0.125


(98)

29.png 34 c/0/0.0625 c/0/0.125

29.png 35 d/0/0.0625 d/0/0.125

29.png 36 e/0/0.0625 e/0/0.125

29.png 37 f/0/0.0625 f/0/0.125

29.png 42 d/0/0.0625 d/0/0.125

29.png 44 f/0/0.0625 f/0/0.125

29.png 45 g/0/0.0625 g/0/0.125

29.png 50 e/0/0.0625 e/0/0.125

29.png 51 f/0/0.0625 f/0/0.125

29.png 52 g/0/0.0625 g/0/0.125

29.png 53 a/0/0.0625 a/0/0.125

30.png 25 Jeda c/1/1.0

31.png 5 c/0/0.0625 c/0/0.125

31.png 20 g/0/0.0625 g/0/0.125

31.png 24 a/0/0.0625 a/0/0.125

31.png 35 c/0/0.0625 c/0/0.125

32.png 2 c/0/0.0625 c/0/0.125

32.png 12 g/0/0.0625 g/0/0.125

32.png 15 g/0/0.0625 g/0/0.125

32.png 16 f/0/0.0625 f/0/0.125

33.png 4 e/0/0.0625 e/0/0.125


(99)

33.png 21 f/0/0.0625 f/0/0.125 33.png 31 g/-1/0.0625 g/-1/0.125 33.png 32 a/-1/0.0625 a/-1/0.125

34.png 24 jeda c/1/1.0

36.png 5 a/0/0.0625 a/0/0.125

36.png 7 a/0/0.0625 a/0/0.125

38.png 8 b/0/0.0625 b/0/0.125

38.png 11 g/0/0.0625 g/0/0.125

38.png 12 g/0/0.0625 g/0/0.125

38.png 15 f/0/0.0625 f/0/0.125

38.png 16 e/0/0.0625 e/0/0.125

39.png 5 e/0/0.0625 e/0/0.125

39.png 7 e/0/0.0625 e/0/0.125

41.png 4 e/0/0.0625 e/0/0.125

41.png 13 a/0/0.0625 a/0/0.125

41.png 14 g/0/0.0625 g/0/0.125

41.png 15 f/0/0.0625 f/0/0.125

41.png 16 e/0/0.0625 e/0/0.125

42.png 2 d/0/0.0625 d/0/0.125

42.png 8 a/0/0.0625 a/0/0.125

42.png 14 g/0/0.0625 g/0/0.125


(100)

42.png 26 d/0/0.0625 d/0/0.125

42.png 32 a/0/0.0625 a/0/0.125

42.png 38 g/0/0.0625 g/0/0.125

42.png 44 d/0/0.0625 d/0/0.125

44.png 1 c/0/0.0625 c/0/0.125

44.png 2 c/0/0.0625 c/0/0.125

44.png 3 c/0/0.0625 c/0/0.125

44.png 9 c/0/0.0625 c/0/0.125

44.png 10 d/0/0.0625 d/0/0.125

44.png 14 e/0/0.0625 e/0/0.125

44.png 15 e/0/0.0625 e/0/0.125

44.png 19 d/0/0.0625 d/0/0.125

44.png 20 d/0/0.0625 d/0/0.125

44.png 21 e/0/0.0625 e/0/0.125

45.png 6 g/0/0.0625 g/0/0.125

45.png 10 f/0/0.0625 f/0/0.125

45.png 14 g/0/0.0625 g/0/0.125

45.png 22 g/0/0.0625 g/0/0.125

45.png 33 g/0/0.0625 g/0/0.125

45.png 37 f/0/0.0625 f/0/0.125

45.png 41 d/0/0.0625 d/0/0.125


(1)

85

Bab VI

Kesimpulan dan Saran

6.1. Kesimpulan

Dari hasil penelitian ini, dengan menggunakan metode proyeksi untuk melakukan segmentasi, dan operasi konvolusi dan penelusuran pixel, maka dapat ditarik kesimpulan sebagai berikut :

1. Penelitian ini menghasilkan presentase keberhasilan dalam membaca partitur not balok adalah sebesar 90.23 %. Dengan presentase maximum sebesar 100% dan presentase minimum adalah 56.53%. Rata-rata prosentase cukup besar, sehingga cara kerja yang dirancang dapat dinyatakan cukup baik.

2. Penelitian ini memberikan gambaran cara kerja dalam membaca paritur not balok untuk dikonversi menjadi suara, cara kerja yang ditawarkan adalah sebagai berikut.

a. Pertama lakukan segmentasi dengan proyeksi vertikal-horizontal untuk mendapatkan bagian-bagian (nada, garis birama, dll).

b. Untuk mengenali bagian-bagian tersebut dilakukan proses pendeteksian garis lurus dengan menggunakan operasi konvolusi.

c. Untuk menentukan nada dilakukan penelusuran titik pada garis lurus yang berhasil dideteksi


(2)

d. Penentuan nilai yang juga melakukan penelusuran titik pada +1 maupun -1 dari posisi garis lurus tersebut untuk mendapatkan kelompok-kelompok pixel yang akan dihitung berapa nilainya. Untuk

keterangan secara menyeluruh dapat dilihat pada bab 3.

6.2. Saran

Saran yang diberikan untuk penelitian lebih lanjut atau penelitian berikutnya dalam mengenali not balok adalah sebagai berikut :

1. Metode preprocessing yang digunakan untuk membuat data scan partitur menjadi sesuai dengan yang dikeluarkan oleh Encore. Hal ini agar siapa pun yang memiliki gambar partitur berupa digital maupun cetak.

2. Karena dalam menghitung bendera kurang tepat dengan menggunakan penyusuran pixel, diperlukan metode lain untuk menghitung jumlah bendera.

3. Menentukan acord dengan menggunakan pengenalan pola, sesuai dengan nada yang dihasilkan.

4. Metode yang dapat membaca nilai tanda diam, metode yang dapat menentukan tanda-tanda baca seperti kres dan mol

5. Metode yang dapat membedakan kunci yang digunakan pada not balok tersebut.


(3)

DAFTAR PUSTAKA

Angela, Maria. 2006. Identification of Musical Notes in Sheet Music Images Using Colors. ICS 2006 University of the Philippines Los Ba nos.

Burger, Wilhelm & Burge, Mark J.. 2008. Digital Image Processing an Algorithmic Introduction Using Java. New-York : Springer-Verlag.

Guyon, Isabelle, Gunn, Steve & Nikravesh, Massoud & Zadeh, Lotfi A.. 2006. Feature Extraction Foundation and Application. Heidelberg : Springer-Verlag.

Putra, Darma. 2010. Pengolahan Citra Digital. Yogyakarta : ANDI.

Soriano. 2010. Playing Notes by Image Processing.

Sukohardi, Al.. 2009. TEORI MUSIK UMUM. Yogyakarta : PUSAT MUSIK LITURGI.

Theodoridis, Sergios & Koutroumbas, Konstantinos. (2009). Pattern Recognition 4th Edition. Oxford : Elsevier Inc.


(4)

Dengan ini saya penelitian kali ini yaitu lainnya disertakan dala jawabannya pada folder

LAMPIRAN

aya lampirkan contoh gambar partitur yang diguna tu gambar dengan nama file “01.png”. Untuk par alam CD pada folder “Partitur”, demikian pu er “Jawaban Partitur”.

nakan dalam partitur yang pula dengan


(5)

vii

Abstrak

Penelitian ini memiliki fokus penelitian pada citra not balok. Cara kerja yang ditawarkan adalah melakukan segmentasi dengan proyeksi vertikal-horizontal pada citra partitur. Lalu kemudian dikenai operasi konvolusi untuk mendapatkan garis yang diidentifikasi sebagai tangkai. Setelah itu dilakukan pengenalan dengan menggunakan penyusuran pixel untuk menangkap bagian-bagian lain dalam not balok tersebut. Penelitian ini menggunakan 50 partitur yang dibuat dengan menggunakan Encore.

Hasil yang dihasilkan dari penelitian kali ini adalah sebesar 90.233% dalam proses pengenalan baik dengan menggunakan precision-recall. Hasil juga memiliki nilai max sebesar 100 % dan nilai presentase min adalah sebesar 56.53 %.

Saran untuk penelitian berikutnya terutama untuk yang memiliki topik pemrosesan citra pada not balok adalah menemukan metode preprocessing yang tepat agar gambar partitur berupa digital maupun cetak dapat diproses. Selain itu metode yang dapat membaca nilai tanda diam, dan metode yang dapat membaca tanda-tanda baca seperti kres dan mol


(6)

viii

Abstract

This research have a focus on the image of musical notes. Manner of works that offered is performing segmentation with vertical-horizontal projection on the image of scores, then is operation convolution to get a line which was identified as a stalk. The recognition by using of pixel tracing to get other part of the musical notes. This research uses 50 scores created using Encore.

The result of this research is 90.233% for recognition process using precision-recall. The result also have max value to 100% and min value to 56.53%

Suggestion for next research especially for topic of image processing of musical notes is to found the right preprocessing method to make a image of scores in digital or printed can be processed. In additional the method that can read the signs reading, like sharps and mol.