PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
SEGMENTASI DAN PENGENALAN CITRA NOT BALOK
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Oleh : Audris Evan Utomo 095314052
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI TEKN UNIVERSITAS SANATA DHARMA YOGYAKARTA
2013
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
IMAGE SEGMENTATION AND RECOGNATION OF MUSICAL NOTES
A THESIS
Presented as Partial Fulfillment of The Requirements To Obtain The Sarjana Komputer Degree Informatics Engineering Study Program
By : Audris Evan Utomo 095314052
INFORMATICS ENGINEERING STUDY PROGRAM FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA
2013
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 bagianbagian 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
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 LANDASAN TEORI ........................................................................................... 7
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
3.3.3.
Proses 2.2. Segmentasi horizontal ................................................. 26
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
4.1.1.
Proses 1. Transformasi menjadi citra biner.................................... 50
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
5.3.1.
Hasil Segmentasi Horizontal ......................................................... 68
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 LAMPIRAN ...................................................................................................... 88
xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR
Gambar 2.1. Contoh citra biner .......................................................................... 9 Gambar 2.2 Contoh 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.12 Nilai-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 Gambar 3.8. DFD level 2 proses 4 ................................................................... 22
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 Gambar 3.31. Contoh nada dan jawaban ......................................................... 46
xvii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 Gambar 5.9. Nada pertama pada nada pada partitur 44.png ........................... 84
xviii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 Tabel 5.4. Error hasil uji .................................................................................. 74
xix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2
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 posisiposisi 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3
sedikit pixel maka dari itu untuk membagi not balok menjadi bagianbagian 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 horizontalvertikal). 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 titiktitik 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4
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. 2. Memberikan gambaran segmentasi dan pengenalan citra not balok.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 5
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 tandatanda baca dalam partitur (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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 6
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 :
7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9
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.2 Contoh histogram horizontal-vertical (sumber : Burger. (2008). Digital Image Processing.)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10
Dengan rumus perhitungan sebagai berikut : M
Pv [i ] = ∑ S [i, j ] j =1
N
Ph [i ] = ∑ S [i, j ] j =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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11
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
Gambar 2.6. Hasil segmentasi didapatkan 2 objek gambar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12
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
Gambar 2.7. Contoh citra not balok
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13
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 kalimatkalimat musik, sama seperti halnya huruf alphabet jika dibunyikan akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14
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.
Nada g’
Nada f
Gambar 2.10. Posisi nada pada kunci G dan F
Sebuah not terdiri atas beberapa bagian yaitu kepala, tongkat dan bendera.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15
Gambar 2.11. Nama bagian not Sebuah not terdiri atas nilai sebagai berikut (untuk ketukan berbasis 4) :
Gambar 2.12 Nilai-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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16
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.
dikenali
relevan
R P
Gambar 2.13. Ilustrasi precision-recall Jika dirumuskan maka cara untuk menghitung precision-recall adalah sebagai berikut.
=
=
∩
∩
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
17
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18
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.
Gambar 3.1. Contoh pembuatan partitur dengan Encore
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 19
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 objek-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20
objek asing seperti nama composer, judul (title), maka objek objek-objek tersebut akan dihapus secara manual dengan menggunakan tools MSPaint. Sehingga didapatkan file partitur yang tidak mengandung objek-objek objek asing.
Gambar 3.3. Contoh hasil penghapusan
3.2. Perancangan Sistem Rancangan sistem untuk membaca partitur dapat dijabarkan dalam diagram aliran data sebagai berikut :
3.2.1.. DFD level 0 / Diagram konteks :
User
Citra partitur not balok, satuan Sistem waktu (metronome) Pembaca partitur Suara
Gambar 3.4. DFD level 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21
3.2.2. DFD level 1: 1. Tranformasi menjadi citra biner Citra biner partitur
Citra partitur User
2. Mendapatkan baris partitur
suara Citra baris
Metronome
3. Mencari posisi garis
Citra baris
Posisi garis 6. Membunyikan nada
4. Mendapatkan bagian not balok
Posisi garis
Jenis bagian, Nilai dan nada not
5. Mengenali bagian not balok
Bagian not balok
Gambar 3.5. DFD level 1
3.2.3. DFD level 2: 3.2.3.1. Proses 2. Mendapatkan baris partitur Citra biner partitur
2.1 Proyeksi horizontal Hasil proyeksi horizontal 2.2 Segmentasi horizontal Citra baris
Gambar 3.6. DFD level 2 proses 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22
3.2.3.2. Proses 3. Mencari posisi garis
Citra baris
3.1 Proyeksi horizontal Hasil Proyeksi 3.2 Mencari index bernilai Posisi garis
Gambar 3.7. DFD level 2 proses 3
3.2.3.3. Proses 4. Mendapat bagian not balok
Posisi garis
Citra baris
4.1 Penghapusan Garis Citra baris tanpa garis
4.2 Proyeksi vertikal
Hasil proyeksi vertical baris
4.3 Segmentasi vertikal
Hasil pemotongan vertikal 4.4 Hapus kunci, penutup dan jenis ketukan Bagian not balok
Gambar 3.8. DFD level 2 proses 4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 23
3.2.3.3. Proses 5. Mengenali bagian not balok
5.1 Deteksi Garis lurus (tangkai not)
Posisi garis
Bagian not balok Posisi garis lurus
Posisi garis lurus
5.2 Pengenalan jenis bagian
Jenis bagian
5.3 Penentuan posisi garis Perkiraan Posisi
5.5 Pencarian Nilai Jenis bagian
5.4 Pencarian nada
Posisi garis
nilai nada
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 25
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 : ௦ ௪ௗ௧ 1. ℎ [] = ∑ୀ [] ′
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26
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 :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27
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 [0 [1 [2 [3 [4 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++;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28
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
0 3.2.), yang memiliki pola seperti matrix 1 akan diubah menjadi 0. 0 Sehingga semua garis akan dapat dihapus.
Gambar 3.15. Hasil penghapusan garis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29
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][*]
citrabaris[currentPos-1][*]
==
0
maka
nilai
dan 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
menjumlahkan pixel secara vertikal.
vertikal
dikerjakan
dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 30
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32
5. lakukan proses 1-3, 1 untuk index sampai width image. image
3.3.8. Proses 4.4. Hapus kunci, penutup dan jenis ketukan Proses ini adalah menghilangkan kunci, penutup dan jenis ketukan, karena semua dianggap ketukan */4 dan bermain ppada kunci C. Sedangkan penutup merupakan sebuah garis diakhir, sebagai tanda penutup. 3.3.8.1. Ilustrasi
Gambar 3.18. Penghapusan kunci,dan jenis ketukan 3.3.8.2. Algoritma Cara kerja proses ini dijelaskan sebagai berikut : 1. hapus bagian pertama setiap baris 2. jika baris merupakan baris pertama maka hapus bagian pertama berikutnya 3. jika baris merupakan baris terakhir maka hapus 2 bagian terakhir dalam baris tersebut.
3.3.9. Proses 5.1. Deteksi garis lurus(tangkai not) Proses ini bertujuan mencari posisi sebuah sebuah garis lurus vertikal vertikal. Proses ini menggunakan operasi konvolusi dan juga menghilangkan noise setelah dikenai operasi konvolusi konvolusi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 34
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.
[−1
1
−1]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35
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
Gambar 3.21. Contoh gambar-gambar nada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36
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 : a. Proyeksikan citra bagian not balok secara horizontal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 37
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
Gambar 3.24. Garis di depan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 38
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 Perkiraan posisi = “depan”
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 39
-
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 masingmasing merupakan nada c, G, A, dan B.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40
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. 2. Jika bukan nada maka : end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41
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
Gambar 3.30. Nada 1/8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42
3.3.13.2. Algoritma Cara kerja proses ini dijelaskan sebagai berikut : 1. Jika jenis bagian == “titik” maka : -
X Nilai bagian sebelumnya
-
XX*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 posisi bendera
-
Nilai = ½
jumlah bendera + 2
end
pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 43
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 posisi bendera
-
Jika perkiraan posisi == “depan” maka : •
-
Jumlah bendera = Jumlah bendera – 1
Nilai[i] = ½
jumlah bendera + 2
pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 44
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 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
-
Jika tidak maka :
pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45
Jumlah bendera = jumlah bendera2 -
Nilai[i] = ½
jumlah bendera + 2
e. end
3.3.14. Proses 6. Membunyikan nada Proses ini merupakan proses untuk membunyikan nadanada 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 :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46
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 masingmasing 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 4. Jika jenis bagian == “jeda” maka :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48
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.
Gambar 3.32. Rancangan interface
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
49
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50
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(). Secara lengkap method bacaFile adalah sebagai berikut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51
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.
Berikut adalah code implementasinya :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52
4.1.4. Proses 3.2. Mencari index max Proses ini diimplementasikan pada method ImS.posisiGaris(). Berikut merupakan implementasi untuk proses mencari index max :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53
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 :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54
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 :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55
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) :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 56
4.1.10. Proses 5.2. Pengenalan jenis bagian Proses ini diimplementasikan dalam method kenaliBagian(), isNada(), dan isTitik() berikut merupakan implementasi code :
isNada() :
isTitik() :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 57
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 :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 58
4.1.12. Proses 5.4. Pencarian nada Proses
pencarian
nada
diimplementasikan
pada
method
posisiKepala dan getNada(), berikut code implementasi proses pencarian nada :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 59
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” :
•
Untuk jumlah garis lurus (tangkai) == 0 :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 60
•
Untuk jumlah garis lurus == 1 :
Method hitungBendera(), method ini untuk jumlah tangkai = 1 :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 61
•
Untuk jumlah garis lurus (tangkai) > 1 :
Method
getNilai()
digunakan
pada
kondisi
lurus(tangkai) == 1, dan jumlah garis lurus(tangkai) == 1.
jumlah
garis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 62
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.
Berikut merupakan implementasi proses membunyikan nada :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 63
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
09.png
2306 x 1327
83.3 KB
64
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 65
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
31.png
2480 x 1701
96.8 KB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 66
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
50.png
2480 x 1297
69.5 KB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 67
5.2.
Code Pengujian Sistem Untuk membantu dalam melakukan pengujian precision-recall, maka digunakan sebuah program sederhana sebagai berikut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 68
5.3.
Hasil Pengujian Sistem Hasil pengujian sistem dijelaskan dengan tahapan sebagai berikut : 5.3.1. Hasil Segmentasi Horizontal Pada proses pertama yaitu segmentasi horizontal didapatkan baris-baris baris (staves) ( partitur. Contoh pada file 17.png
Gambar 5.1. Partitur file 17.png
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 69
Hasil proyeksi horizontal gambar adalah sebagai berikut :
Gambar 5.2. Hasil proyeksi horizontal file 17.png
Setelah dilakukan proyeksi horizontal, akan dilakukan segmentasi berdasarkan hasil proyeksi horizontal. Sehingga didapatkan baris-baris baris (staves).
Gambar 5.3. Hasil segmentasi baris I
Gambar 5.4. Hasil segmentasi baris II
Setelah dilakukan proyeksi horizontal, akan dilakukan segmentasi berdasarkan hasil proyeksi horizontal. Sehingga didapatkan baris-baris baris (staves) pada partitur tersebut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 70
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.
…
Gambar 5.6. Beberapa contoh bagian pada baris II file 17.png
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 71
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 : 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 b/0/0.125 b/0/0.0625 a/0/0.0625 b/0/0.125 c/1/0.25 5.3.4. Hasil Pengujian : Hasil pengujian hasil pengenalan sistem dengan jawaban yang dibuat, disajikan dalam tabel dibawah ini untuk masingmasing file. Tabel 5.2. Tabel hasil pengujian semua file pengujian Nama
Jumlah split
Jumlah split
Total jawaban
File
hasil sistem
hasil manual
yang benar
Precision
Recall
01.png
25
25
25
100
100
02.png
42
42
42
100
100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 72
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
13.png
35
35
35
14.png
47
53
53
88.67925 88.67925
15.png
31
45
45
68.88889 68.88889
16.png
28
28
28
17.png
20
33
33
18.png
59
59
59
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
24.png
19
33
33
57.57576 57.57576
97.67442 97.67442 100
100
100
100
60.60606 60.60606 100
100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 73
25.png
14
16
16
87.5
87.5
26.png
51
55
55
27.png
24
25
25
96
96
28.png
44
50
50
88
88
29.png
42
63
63
30.png
24
25
25
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
36.png
13
15
15
37.png
14
14
14
38.png
13
18
18
72.22222 72.22222
39.png
12
14
14
85.71429 85.71429
40.png
27
27
27
41.png
13
18
18
72.22222 72.22222
42.png
40
48
48
83.33333 83.33333
43.png
11
11
11
44.png
13
23
23
56.52174 56.52174
45.png
50
59
59
84.74577 84.74577
46.png
28
32
32
92.72727 92.72727
66.66667 66.66667 96
100
96
100
86.66666 86.66666 100
100
100
87.5
100
100
100
87.5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 74
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
Rata-rata
Precision
Recall
90.233 %
90.233 %
Pada pengujian terdapat beberapa error dalam pengenalan. Error yang terjadi adalah sebagai berikut. Tabel 5.4. Error hasil uji Dikenali File
Bagian ke-
Jawaban sebagai
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
14.png
28 d/0/0.0625
d/0/0.125
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 75
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
17.png
13 d/0/0.0625
d/0/0.125
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 76
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
22.png
16 g/0/0.0625
g/0/0.125
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 77
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
25.png
5 f/0/0.0625
f/0/0.125
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 78
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
29.png
29 g/0/0.0625
g/0/0.125
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 79
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
33.png
6 a/-1/0.0625
a/-1/0.125
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 80
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
42.png
20 d/0/0.0625
d/0/0.125
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 81
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
45.png
45 f/0/0.0625
f/0/0.125
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 82
5.4.
45.png
49 g/0/0.0625
g/0/0.125
46.png
16 a/0/0.0625
a/0/0.125
46.png
17 g/0/0.0625
g/0/0.125
46.png
22 a/0/0.0625
a/0/0.125
46.png
23 g/0/0.0625
g/0/0.125
47.png
6 c/0/0.0625
c/0/0.125
47.png
16 d/0/0.0625
d/0/0.125
48.png
17 f/0/0.0625
f/0/0.125
Analisis Hasil Kalau dilihat dari hasil rata-rata persentase precision dan recall masing-masing adalah 90.233 % dan 90.233 %. Persentase yang dihasilkan cukup besar dikarenakan data yang digunakan merupakan data yang dibuat dengan menggunakan Encore, sehingga data input masih dalam kondisi yang baik, jumlah pixel sebuah garis tetap 1 pixel hitam. Data pixel yang kondisinya baik membantu dalam proses pemotongan sehingga dapat memotong sesuai dengan bagian not, dan juga membantu dalam proses pencarian sebuah garis lurus yang akan dikenali sebagai tangkai not. Hasil pada tabel 5.2. dapat dilihat bahwa nilai presentase max adalah 100% dan nilai presentase min adalah 56.53174%. Jarak antara 100 sampai 56.53 bukan jarak yang kecil, dan ini menunjukan bahwa ada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 83
faktor-faktor faktor yang membuat jarak yang cukup besar. Salah 1 file yang menghasilkan 100% adalah 01.png, sedangkan file yang menghasilkan hasil 56.53% adalah 44.png.
Gambar 5.7. Partitur 01.png
Gambar 5.8. Partitur 44.png Sebagian besar nada not balok pada partitur 01.png adalah not balok tidak berbendera, sedangkan pada partitur 44.png sebagian besar adalah not balok berbendera, ini merupakan penyebab besarnya jarak antar persentase max dan min. Hal ini juga dapat dapat dilihat pada tabel 5.4. bahwa error banyak disebabkan oleh yang seharusnya bernilai 0.125 atau memiliki 1 bendera, dibaca bernilai 0.0625 atau memiliki 2 bendera. Banyaknya nada yang bernilai 0.125 dibaca sebagai 0.0625 dapat dilihat pada gambar berikut. berik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 84
Gambar 5.9. Nada ada pertama pada nada pada partitur 44.png Pada tanda merah yang ditunjuk oleh anak panah ternyata terdapat kumpulan pixel selain bendera pada bagian deretan pixel yang dicek untuk mencari bendera. Sehingga pada penelusuran pixel pada kolom kolom yang diidentifikasi sebagai tempat bendera ditemukan 2 kumpulan pixel. Sehingga sistem membaca sebagai 2 bendera. Dari hasil pengenalan dapat dikatakan jumlah nada dan tanda istirahat yang ditemukan oleh sistem dengan jawaban adalah sama. Hal ini dapatt dilihat pada tabel 5.2. total hasil sistem dengan jawaban untuk semua partitur semua sama. Hal ini disebabkan data yang cukup baik dihasilkan dengan menggunakan Encore, sehingga hasil segmentasi dan pengenalan objek bagian not balok menjadi sangat baik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 vertikalhorizontal 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
85
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 86
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 87
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 : SpringerVerlag.
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 88
LAMPIRAN
Dengan inii saya lampirkan contoh gambar partitur yang digunakan dalam penelitian kali ini yaitu gambar dengan nama file “01.png”. “01.png”. Untuk partitur yang lainnya disertakan dalam CD pada folder “Partitur”, demikian pula dengan jawabannya pada folder “Jawaban Partitur”.