• Tidak ada hasil yang ditemukan

Segmentasi dan pengenalan citra not balok - USD Repository

N/A
N/A
Protected

Academic year: 2019

Membagikan "Segmentasi dan pengenalan citra not balok - USD Repository"

Copied!
107
0
0

Teks penuh

(1)

SEGM

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

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

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

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

(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

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

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

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

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

(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

(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

(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

(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

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

(29)

Dengan rumus perhitungan sebagai berikut :

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)

(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(, ) 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

(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

(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

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

(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

(39)

objek-objek asin

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

(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

(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

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

(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

(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

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

(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

(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

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

(51)

5. laku

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.

(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

!= −

(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

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

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

(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

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

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

(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

(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

(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

(74)

4.1.9. Proses 5.1. 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

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

(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

(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

(84)
(85)
(86)

5.2. Code Pengujian Sistem

(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

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

(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

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)
(92)
(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

(94)
(95)
(96)
(97)
(98)
(99)
(100)
(101)

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

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.

(102)

faktor-faktor yan

Gambar 5.7.Partitur 01.png

Gambar 5.8.Partitur 44.png

(103)

Gambar 5.9. dapat dilihat pad semua partitur s dihasilkan denga pengenalan objek

.9.Nada pertama pada nada pada partitur 44.png

nda merah yang ditunjuk oleh anak panah ternyat l selain bendera pada bagian deretan pixel yang d era. Sehingga pada penelusuran pixel pada ko

sebagai tempat bendera ditemukan 2 kumpu m membaca sebagai 2 bendera.

asil pengenalan dapat dikatakan jumlah nada ditemukan oleh sistem dengan jawaban adalah sam

pada tabel 5.2. total hasil sistem dengan jawab r semua sama. Hal ini disebabkan data yang c

gan menggunakan Encore, sehingga hasil segm jek bagian not balok menjadi sangat baik.

(104)

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.

(105)

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

(106)

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.

(107)

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

Gambar

Tabel 5.3. Rata-rata hasil pengujian  ...............................................................
Gambar 2.1. Contoh citra biner
Gambar 2.3. Contoh citra potongan partitur
Gambar 2.5. Proses segmentasi
+7

Referensi

Dokumen terkait

Dengan demikian X 2 hitung lebih besar dari pada X 2 tabel, sehingga dapat dikatakan bahwa luas lahan yang dikelola mempunyai hubungan nyata dengan tingkat

Pada Gambar 20 terlihat bahwa hasil analisis regresi linier menunjukkan b a h ~ d korelasi antara kemampuan mereduksi dan kapasitas antioksidan dari sayuran

Sistem pemeliharaan secara intensif ini dapat memperbaiki pertambahan bobot badan harian (PBBH) karena pemberian pakan dasar dan pakan tambahan cukup sesuai dengan kebutuhan

SRT akan mencakup enam fungsi kerja sebagai berikut: (i) penyebaran informasi terkait program yang ada, dan terutama pada program jaminan sosial yang baru saja diluncurkan,

Tujuan pembangunan untuk memenuhi kebutuhan masyarakat berpenghasilan rendah yang belum memiliki tempat tinggal tetap (Peraturan Bupati Sleman No 43 Tahun 2013

Untuk mendapatkan keserasian dan keselarasan dalam mengkombinasikan warna dapat dilakukan dengan memadukan warna kain polos dan bermotif secara teratur sehinggapaduan warna

Ada 4 variabel kabur yang digunakan dalam sistem pengambilan keputusan menggunakan sistem inferensi kabur dalam penulisan makalah ini, yaitu kesehatan, keadaan

Dalam pasal 40 ayat (4) dan pasal 42 Peraturan Menteri Dalam Negeri Nomor 61 Tahun 2007 tentang Pedoman Teknis Pengelolaan Keuangan Badan layanan Umum Daerah menyatakan