bab iv perancangan dan implementasi

advertisement
BAB IV
PERANCANGAN DAN IMPLEMENTASI
Bab ini berisi perancangan perangkat lunak pembentuk pola improvisasi musik jazz
bernama JazzML dan bagaimana impelemntasi hasil rancangan ke dalam kode
program.
4.1 Deskripsi Perangkat Lunak
Perangkat lunak yang akan dikembangkan adalah JazzML yang merupakan sebuah
sistem pembentuk pola improvisasi melodi unisono musik
jazz
digital
berformat
MusicXML berdasarkan akor dan melodi asli masukan. Perangkat lunak JazzML
menggunakan algoritma k-Nearest Neighbor sebagai proses utamanya yang memiliki
kemampuan untuk melakukan pembelajaran pola improvisasi dari berkas-berkas musik
jazz sehingga dapat menentukan pola improvisasi untuk sebuah instance musik jazz.
Sebelum dilakukan pembelajaran, perangkat lunak tersebut tidak dapat digunakan untuk
membentuk pola improvisasi.
Secara khusus, perangkat lunak JazzML digunakan untuk proses pengujian penggunaan
algoritma k-Nearest Neighbor dalam mempelajari dan membentuk pola improvisasi
musik jazz. Penggunaan utama perangkat lunak ini dibagi menjadi 2 buah proses utama:
1. Proses pembelajaran pola improvisasi
Pada proses pembelajaran dilakukan pembelajaran terhadap data pelatihan berupa
berkas-berkas musik masukan yang terdiri dari berkas musik melodi asli dan berkas
musik melodi improvisasi dengan susunan akor dan panjang lagu yang identik.
2. Proses pembentukan pola improvisasi
Pada proses pembentukan pola improvisasi dilakukan pembentukan sebuah berkas
musik improvisasi dari sebuah instance berkas musik asli. Susunan akor dan
panjang lagu dari berkas musik improvisasi identik dengan berkas musik instance.
Untuk keperluan penelitian saat ini, perangkat lunak JazzML belum dilengkapi dengan
fungsi audio playback terhadap musik improvisasi. Keluaran musik improvisasi hanya
IV-1
IV-2
berbentuk berkas MusicXML yang dapat dibaca dan di-playback dengan menggunakan
perangkat lunak pengolah audio yang lain.
4.2 Perancangan
4.2.1 Spesifikasi Kebutuhan Perangkat Lunak
Mengacu pada analisis perancangan sistem pembelajaran pola improvisasi yang sudah
dijelaskan pada sub-bab 3.4 Perancangan Sistem Pembelajaran Pola Improvisasi, maka
perangkat lunak JazzML diharapkan mampu memenuhi kebutuhan fungsional sebagai
berikut.
1. Perangkat lunak JazzML mampu menerima masukan berupa berkas MusicXML
yang tersusun atas 1 buah staff yang terdiri dari melodi unisono dan akor.
2. Perangkat lunak JazzML mampu melakukan pembelajaran dengan mengubah
representasi masukan berkas MusicXML menjadi representasi yang dapat diterima
oleh algoritma k-Nearest Neighbor.
3. Perangkat lunak JazzML mampu menentukan pola improvisasi dari sebuah instance
musik asli yang dipilih dari data pembelajaran per frasa musik berdasarkan akor
masukan dan frasa melodi asli yang paling mirip dengan cara melakukan
perhitungan nilai jarak antar akor dan antar frasa melodi.
4. Perangkat lunak JazzML mampu membentuk keluaran berupa berkas MusicXML
yang tersusun atas 1 buah staff yang terdiri dari melodi unisono dan akor. Keluaran
merepresentasikan berkas musik yang terimprovisasi.
4.2.2 Batasan Perangkat Lunak
Perangkat lunak yang akan diimplementasikan memiliki beberapa batasan yaitu :
1. Berkas musik digital yang diolah hanya berkas musik digital berformat MusicXML
saja.
2. Melodi asli dan melodi improvisasi lagu jazz ditempatkan pada berkas yang terpisah
dengan panjang lagu dan susuanan akor yang identik.
3. Melodi asli maupun melodi improvisasi dari lagu yang diolah memiliki dimensi
horizontal atau melodi unisono saja.
4. Berkas musik yang akan dihasilkan hanya berupa kumpulan frasa melodi
improvisasinya saja, tidak disertakan dengan melodi aslinya.
IV-3
5. Perangkat lunak tidak dilengkapi fungsi audio playback untuk MusicXML.
4.2.3 Perancangan Struktur Data
Perangkat lunak JazzML tersusun dari beberapa tipe data bentukan khusus untuk
menunjang kebutuhan fungsional dari perangkat lunak tersebut. Penjelasan mengenai
tipe dari field yang menyusun setiap tipe data bentukan dideskripsikan secara java-like.
Struktur data yang digunakan dalam perangkat lunak tersebut adalah sebagai berikut.
1. Chord
Strutkur data Chord merepresentasikan informasi akor yang dibaca dari berkas
MusicXML dalam perangkat lunak JazzML. Sebuah Chord terdiri atas 4 atribut, yaitu
rootStep, rootAlter, kind, dan chordEl. Tiga buah atribut pertama yaitu rootStep,
rootAlter, dan kind nilainya didapatkan langsung dari pembacaan terhadap berkas
MusicXML tanpa dilakukan pengolahan. Sedangkan, atribut terakhir yaitu chordEl
dibentuk setelah atribut rootStep, rootAlter, dan kind terdefinisi. Atribut chordEl
merupakan sebuah himpunan bilangan bulat antara 0 s.d. 11 yang merupakan
representasi dari akor yang sudah dijelaskan pada subbab 3.6.3 Representasi Akor
Masukan.
Tabel IV-1 Struktur Data Chord
Field
rootStep
Tipe
String
rootAlter Integer
kind
String
Deskripsi
Nada dasar/root dari akor
Interval transposisi dari akor
Jenis dari akor. Contoh : major, minor, major-seventh,
minor-seventh, dominant, dominant-11th, diminished, dll
Representasi himpunan elemen nada penyusun akor yang
chordEl
Set<Integer> dinyatakan dalam bilangan bulat antara 0 s.d 11, tersusun
terurut dari yang terkecil ke terbesar dan tidak terduplikasi
IV-4
2. Note
Struktur data Note merepresentasikan informasi not/nada yang dibaca dari berkas
MusicXML dalam perangkat lunak JazzML. Sebuah Note terdiri atas 8 buah atribut
yaitu pitchStep, pitchOctave, pitchAlter, duration, type, stem, hasDot, dan hasTuplet.
Atribut pitchStep, pitchOctave, dan pitchAlter digunakan untuk menghitung nilai
absolut dari sebuah not/nada yang sudah dijelaskan pada sub-bab 3.6.4 Representasi
Frasa Melodi pada Gambar III-12. Perhitungan untuk mendapatkan nilai absolut dari
sebuah nada adalah (pitchStep + pitchAlter + 12x pitchOctave). Sedangkan atributatribut sisanya digunakan untuk keperluan keluaran berkas MusicXML yang kemudian
akan dapat ditampilkan dalam bentuk notasi musik dan di-playback.
Tabel IV-2 Struktur Data Note
Field
Tipe
pitchStep
String
Deskripsi
Pitch nada dari note
pitchOctave Integer
Oktaf dari pitch nada
pitchAlter
Integer
Interval transposisi dari pitch nada
duration
Integer
Durasi dari note
type
String
Tipe durasi dari note
stem
String
Arah tangkai dari note, jika ada
hasDot
Boolean Keberadaan tanda titik dari note
hasTuplet
Boolean Keberadaan tanda tuplet dari note
3. Phrase
Struktur data Phrase merepresentasikan sebuah frasa musik yang terdiri atas struktur
data Chord, list Note melodi asli, dan list Note melodi improvisasi. Struktur data ini
digunakan untuk menyimpan frasa-frasa lagu yang dibaca dari berkas MusicXML yang
kemudian akan diolah oleh algoritma k-Nearest Neighbor untuk mencari pola
improvisasi ketika masuknya sebuah instance musik jazz. Data pelatihan yang
digunakan oleh sistem pembelajaran mesin ini merupakan list dari Phrase.
IV-5
Tabel IV-3 Struktur Data Phrase
Field
Tipe
Deskripsi
ch
Chord
real_melody
List<Note> List dari note penyusun melodi asli frasa
improvised_melody List<Note>
Akor dari frasa
List dari note penyusun melodi improvisasi dari
frasa
4.2.4 Perancangan Antarmuka
Berikut ini adalah prototype antarmuka yang akan digunakan dalam perangkat lunak
JazzML.
1. Antarmuka pembelajaran
Antarmuka ini digunakan untuk mengolah berkas MusicXML masukan menjadi
representasi yang dapat diterima oleh algoritma k-Nearest Neighbor, dimana terdapat
fungsi untuk membaca dan mengekstrak kumpulan berkas MusicXML yang digunakan
sebagai data pembelajaran. Antarmuka pembelajaran dapat dilihat pada Gambar IV-1.
Gambar IV-1 Antarmuka pembelajaran JazzML
IV-6
2. Antarmuka pembentukan musik improvisasi
Antarmuka ini digunakan untuk membentuk sebuah berkas MusicXML lagu
improvisasi dari sebuah instance berkas MusicXML masukan. Susunan akor dan
panjang lagu dari musik improvisasi sama dengan musik asli. Pada antarmuka ini
terdapat fungsi untuk menerima masukan sebuah berkas MusicXML, membaca berkas
MusicXML, menghitung nilai jarak ketetanggaan, menjalankan algoritma k-NN untuk
mencari pola improvisasi yang paling mirip, dan menulis berkas MusicXML baru.
Antarmuka pembentukan musik improvisasi dapat dilihat pada Gambar IV-2.
Gambar IV-2 Antarmuka pembentukan musik improvisasi
4.2.5 Perancangan Modul
Perangkat lunak JazzML yang dibangun pada Tugas Akhir ini dirancang dan akan
diimplementasikan menjadi beberapa modul. Modul-modul yang dirancang dan
diimplementasikan adalah sebagai berikut.
1. Modul Representation
Modul ini berisi semua tipe data bentukan yang dibutuhkan dalam perangkat lunak
JazzML. Tipe data bentukan yang dibutuhkan dalam perangkat lunak ini telah
dijelaskan pada subbab perancangan tipe data bentukan.
2. Modul Improvisor
Modul ini berisi fungsi-fungsi untuk melakukan pembelajaran dan pembentukan
pola melodi improvisasi musik jazz berdasarkan akor dan melodi asli dengan
menggunakan algoritma k-Nearest Neighbor.
IV-7
3. Modul Pengolah MusicXML
Modul ini berisi fungsi-fungsi yang menangani pembacaan dan penulisan berkas file
MusicXML. File MusicXML ini digunakan sebagai representasi dari sebuah lagu.
4. Modul Antarmuka
Modul ini berisi antarmuka yang digunakan dalam perangkat lunak JazzML.
Gambar IV-3 Struktur Modul
4.3 Implementasi
Implementasi perangkat lunak JazzML dikembangkan dengan mengacu pada hasil
perancangan yang telah dijelaskan pada sub-bab 4.2 Perancangan. Pada sub-bab
implementasi ini akan dilakukan pembahasan mengenai lingkungan implementasi,
batasan implementasi, implementasi data, serta implementasi modul.
4.3.1 Lingkungan Implementasi
Lingkungan implementasi perangkat lunak JazzML terdiri dari 2 bagian yaitu
lingkungan perangkat keras dan lingkungan perangkat lunak. Lingkungan perangkat
keras meliputi semua perangkat keras yang digunakan di dalam pengembangan dan
penggunaan perangkat lunak JazzML. Lingkungan perangkat lunak meliputi sistem
operasi dan kakas pengembangan yang digunakan untuk mengimplementasi perangkat
lunak JazzML.
IV-8
4.3.1.1 Lingkungan Perangkat Keras
Perangkat keras yang digunakan untuk pengembangan dan implementasi perangkat
lunak JazzML selama penelitian Tugas Akhir ini adalah sebuah laptop dengan
spesifikasi sebagai berikut.
1. Processor Intel® Pentium Dual Core T2060 @ 1.60 GHz, 65nm, FSB533, 1MB L2
cache.
2. Memory 2048 MB DDR2 RAM.
3. Hard disk SATA 80 GB.
4. Perangkat masukan berupa keyboard dan mouse.
5. Perangkat keluaran berupa layar monitor 14.1” WXGA TFT(1280x800).
4.3.1.2 Lingkungan Perangkat Lunak
Spesifikasi lingkungan perangkat lunak yang digunakan untuk pengembangan dan
implementasi perangkat lunak JazzML selama pelaksanaan penelitian Tugas Akhir ini
adalah sebagai berikut:
1. Sistem operasi Windows XP Profesional Edition Service Pack 2.
2. Kakas pemrograman berupa NetBeans IDE 6.0 dengan Java Development Kit 1.6.0
dan Java Runtime Environtment 1.6.0.
3. Bahasa pemrograman Java.
4. Aplikasi pengolah suara yang membantu untuk membuat, membaca dan memainkan
berkas MusicXML, yaitu Finale 2007.
5. Aplikasi pembantu analisis dan perancangan, yaitu Microsoft Visio 2007
4.3.2 Batasan Implementasi
Implementasi perangkat lunak JazzML memiliki batasan yaitu eksekusi perangkat lunak
JazzML diharapkan melalui command prompt agar dapat mengalokasikan memori Java
Runtime Environtment (JRE) secara manual. Alokasi memori JRE yang diharapkan
untuk perangkat lunak ini minimal sama atau lebih besar dari 200 MB. Dengan alokasi
memori seperti yang telah disebutkan sebelumnya, perangkat lunak JazzML akan
mampu bekerja secara optimal.
IV-9
4.3.3 Implementasi Data
Rancangan struktur data diimplementasikan secara fisik berupa kelas-kelas dengan
menggunakan bahasa pemrograman Java. Impelementasi struktur data mengacu pada
hasil analisis dan perancangan.
Pemetaan nama struktur data pada proses perancangan dengan nama struktur data hasil
implementasi dapat dilihat pada Tabel IV-4 Implementasi Struktur Data pada Perangkat
Lunak JazzML. Sedangkan setiap field yang ada pada struktur data hasil implementasi
sama dengan field yang ada pada struktur data di tahap perancangan sehingga tidak
diperlukan adanya pemetaan nama field pada struktur data.
Tabel IV-4 Implementasi Struktur Data pada Perangkat Lunak JazzML
No
1
Struktur Data
Struktur Data
Perancangan
Implementasi
Chord
Chord.java
Keterangan
Struktur data Chord merepresentasikan
akor
pada
berkas
MusicXML
dalam
perangkat lunak JazzML
2
Note
Note.java
Struktur
data
Note
merepresentasikan
sebuah nada pada berkas MusicXML dalam
perangkat lunak JazzML
3
Phrase
Phrase.java
Struktur data Phrase merepresentasikan
sebuah frasa musik yang terdiri atas sebuah
akor beserta melodi asli dan improvisasinya
dalam perangkat lunak JazzML
4.3.4 Implementasi Modul
Implementasi modul merupakan pemetaan struktur modul yang telah dijelaskan pada
sub-bab 4.2.5 Perancangan Modul yang diimplementasi secara fisik ke dalam bahasa
lingkungan implementasi perangkat lunak yaitu bahasa Java. Dengan menggunakan
bahasa pemrograman Java, setiap modul diimplementasi menjadi file yang berekstensi
.java seperti yang ditunjukkan pada Tabel IV-5 Implementasi Modul pada Perangkat
Lunak JazzML.
IV-10
Tabel IV-5 Implementasi Modul pada Perangkat Lunak JazzML
No
Nama Modul
Implemntasi
1
Representation Chord.java
Keterangan
Kelas
yang
merepresentsasikan
struktur data Chord yang digunakan
oleh
struktur
data
Phrase
pada
perangkat lunak JazzML
Note.java
Kelas yang merepresentasikan struktur
data
Note
yang
digunakan
oleh
struktur data Phrase pada perangkat
lunak JazzML
Phrase.java
Kelas yang merepresentasikan struktur
data Phrase pada perangkat lunak
JazzML
2
Improvisor
KNNImprovisor.java Kelas
yang
mengimplementasikan
algoritma kNN untuk membentuk pola
improvisasi musik jazz
3
XMLParser
MusicXMLAgent.java Kelas
yang
digunakan
untuk
melakukan pembacaan dan penulisan
berkas MusicXML
4
Antarmuka
JazzML.java
Kelas yang berfungsi sebagai Window
utama dari perangkat lunak JazzML
Download