generator pola drum - institutional...

19
6 1. Pendahuluan Dewasa ini kemajuan teknologi yang berjalan begitu cepat menuntut kemajuan di segala bidang. Berbagai bidang tidak lepas dari sentuhan teknologi termasuk juga bidang industri musik yang sangat lekat dalam kehidupan masyarakat Algoritma Genetika merupakan algoritma pencarian yang didasarkan pada mekanisme seleksi alamiah. Secara garis besar langkah dalam prosedur ini dimulai dengan menetapkan suatu set solusi potensial dan melakukan perubahan dengan beberapa iterasi dengan algoritma genetika untuk mendapatkan solusi terbaik. Set solusi potensial ini ditetapkan di awal dan disebut dengan kromosom. Kromosom ini dibentuk secara acak berupa susunan angka biner yang di-generate dan dipilih. Keseluruhan set dari kromosom yang diobservasi mewakili suatu populasi. Implementasi algoritma genetika sangatlah luas mencakup berbagai hal yang salah satunya adalah untuk pemrograman otomatis. Otomatisasi dapat dilakukan menggunakan algoritma genetika untuk mendapatkan solusi yang bisa diterima dengan lebih cepat. Adapun pemrograman otomatis yang dapat diterapkan adalah pemrograman otomatis dalam bidang musik sebagai pembangkit polapola baru. Salah satu media yang dibutuhkan saat ini yaitu audio midi. Segala bentuk audio yang berdata MIDI (Musical Instrument Digital Interface), dapat dengan mudah diolah. Hal yang paling susah didapat adalah saat menentukan irama pola drum yang sesuai dengan lagu yang akan dibuat. Tapi harus dengan pola drum yang baru agar dapat menjadi hasil karya seni yang tinggi dan diakui musikalitasnya. Berdasarkan latar belakang tersebut, maka akan dilakukan penelitian yang membahas perancangan dan pembuatan generator pola drum yang menggunakan algoritma genetika. Dengan tujuan merancang dan membangun aplikasi Generator Pola Drum menggunakan Algoritma Genetika. Aplikasi yang dibuat diharapkan dapat mempermudah proses pembuatan suatu pola untuk produksi audio drum berbasis midi, untuk pembuatan aransemen dan musik lagu, serta dapat berguna dan membantu user, terutama untuk para pencipta lagu atau komposer lagu dan aransemennya. 2. Tinjauan Pustaka Penelitian terkait penerapan algoritma genetika telah banyak dilakukan, baik yang membahas tentang musik, maupun kasus yang lain. Dalam tesis yang berjudul “Kriptosistem Menggunakan Algoritma Genetika Pada Data Citra“. Dalam penelitian tersebut, diciptakan algoritma kriptografi yang baru dengan menggunakan algoritma genetika [1]. Penelitian terdahulu tentang Generator Melodi Berdasarkan Skala dan Akord Menggunakan Algoritma Genetika, membahas tentang generator melodi dengan representasi kromosom nada dan durasi, fungsi fitness digunakan untuk nada, dan tempo tidak bisa diatur sesuai keinginan dan kebutuhan musik. Input skala dalam Melody Generator hanya bisa beberapa skala dalam sekali generate melodi. Aplikasi yang dibuat memberikan output berupa nada sesuai skala yang dibangkitkan saja (generate) [2]. Berdasarkan penelitian yang pernah dilakukan tentang generator melodi dan penggunaan algoritma genetika, maka akan dilakukan penelitian tentang generator pola drum yang menggunakan algoritma genetika. Dalam penelitian yang dilakukan lebih dititikberatkan untuk pola drum atau ketukan, sehingga representasi kromosom yang dibuat hanya untuk pola. Fungsi fitness ditentukan berdasarkan pola drum, dan digunakan untuk mengevaluasi pola drum, sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai tempo dan genre yang dipilih. Aplikasi didesain dengan

Upload: hoangcong

Post on 16-Mar-2019

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

6

1. Pendahuluan Dewasa ini kemajuan teknologi yang berjalan begitu cepat menuntut kemajuan

di segala bidang. Berbagai bidang tidak lepas dari sentuhan teknologi termasuk juga

bidang industri musik yang sangat lekat dalam kehidupan masyarakat

Algoritma Genetika merupakan algoritma pencarian yang didasarkan pada

mekanisme seleksi alamiah. Secara garis besar langkah dalam prosedur ini dimulai

dengan menetapkan suatu set solusi potensial dan melakukan perubahan dengan

beberapa iterasi dengan algoritma genetika untuk mendapatkan solusi terbaik. Set

solusi potensial ini ditetapkan di awal dan disebut dengan kromosom. Kromosom ini

dibentuk secara acak berupa susunan angka biner yang di-generate dan dipilih.

Keseluruhan set dari kromosom yang diobservasi mewakili suatu populasi.

Implementasi algoritma genetika sangatlah luas mencakup berbagai hal yang salah

satunya adalah untuk pemrograman otomatis. Otomatisasi dapat dilakukan

menggunakan algoritma genetika untuk mendapatkan solusi yang bisa diterima

dengan lebih cepat. Adapun pemrograman otomatis yang dapat diterapkan adalah

pemrograman otomatis dalam bidang musik sebagai pembangkit pola–pola baru.

Salah satu media yang dibutuhkan saat ini yaitu audio midi. Segala bentuk

audio yang berdata MIDI (Musical Instrument Digital Interface), dapat dengan

mudah diolah. Hal yang paling susah didapat adalah saat menentukan irama pola

drum yang sesuai dengan lagu yang akan dibuat. Tapi harus dengan pola drum yang

baru agar dapat menjadi hasil karya seni yang tinggi dan diakui musikalitasnya.

Berdasarkan latar belakang tersebut, maka akan dilakukan penelitian yang

membahas perancangan dan pembuatan generator pola drum yang menggunakan

algoritma genetika. Dengan tujuan merancang dan membangun aplikasi Generator

Pola Drum menggunakan Algoritma Genetika. Aplikasi yang dibuat diharapkan

dapat mempermudah proses pembuatan suatu pola untuk produksi audio drum

berbasis midi, untuk pembuatan aransemen dan musik lagu, serta dapat berguna dan

membantu user, terutama untuk para pencipta lagu atau komposer lagu dan

aransemennya.

2. Tinjauan Pustaka Penelitian terkait penerapan algoritma genetika telah banyak dilakukan, baik

yang membahas tentang musik, maupun kasus yang lain. Dalam tesis yang berjudul

“Kriptosistem Menggunakan Algoritma Genetika Pada Data Citra“. Dalam penelitian

tersebut, diciptakan algoritma kriptografi yang baru dengan menggunakan algoritma

genetika [1]. Penelitian terdahulu tentang Generator Melodi Berdasarkan Skala dan

Akord Menggunakan Algoritma Genetika, membahas tentang generator melodi

dengan representasi kromosom nada dan durasi, fungsi fitness digunakan untuk nada,

dan tempo tidak bisa diatur sesuai keinginan dan kebutuhan musik. Input skala dalam

Melody Generator hanya bisa beberapa skala dalam sekali generate melodi. Aplikasi

yang dibuat memberikan output berupa nada sesuai skala yang dibangkitkan saja

(generate) [2].

Berdasarkan penelitian yang pernah dilakukan tentang generator melodi dan

penggunaan algoritma genetika, maka akan dilakukan penelitian tentang generator

pola drum yang menggunakan algoritma genetika. Dalam penelitian yang dilakukan

lebih dititikberatkan untuk pola drum atau ketukan, sehingga representasi kromosom

yang dibuat hanya untuk pola. Fungsi fitness ditentukan berdasarkan pola drum, dan

digunakan untuk mengevaluasi pola drum, sedangkan untuk durasi didasarkan pada

nilai ketukan drum sesuai tempo dan genre yang dipilih. Aplikasi didesain dengan

Page 2: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

7

menggunakan tempo yang bisa diatur, sesuai tempo yang diinginkan, dan setiap input

akan mewakili empat keluaran suara yang berbeda–beda dalam sekali generate.

Aplikasi yang dibuat akan memberikan output dalam beberapa macam suara, yaitu

Bass Drum, Accoustic Snare, Pedal Hit Hat, Crash Symbal.

Algoritma Genetika Algoritma Genetika adalah algoritma yang memanfaatkan proses seleksi

alamiah yang dikenal dengan proses evolusi. Dalam proses evolusi, individu secara

terus-menerus mengalami perubahan gen untuk menyesuaikan dengan lingkungan

hidupnya. “Hanya individu–individu yang kuat yang mampu bertahan”.

Proses seleksi alamiah ini melibatkan perubahan gen yang terjadi pada individu

melalui proses perkembang-biakan. Dalam algoritma genetika, proses perkembang-

biakan menjadi proses dasar yang menjadi perhatian utama, dengan dasar berpikir:

“Bagaimana mendapatkan keturunan yang lebih baik”. Algoritma genetika

ditemukan oleh John Holland dan dikembangkan oleh David Goldberg. Algoritma

genetika banyak diterapkan untuk mencari solusi terbaik dari suatu permasalahan.

Algoritma genetika dimulai dengan kumpulan solusi yang merupakan satu atau

lebih kromosom, dan kumpulan dari solusi disebut sebagai populasi. Kromosom

sendiri merupakan kumpulan dari gen, dan nilainya dapat berupa bilangan numerik,

biner, simbol, ataupun karakter, tergantung dari permasalahan yang dihadapi.

Gambar 1 menunjukkan contoh kromosom yang berisi bilangan biner.

Kromosom 1 1 1 0 1 0 0 0 1 0

Kromosom 2 0 0 1 1 0 1 0 1 0

Gambar 1. Kromosom

Sebuah solusi dari populasi akan diseleksi untuk membuat populasi baru.

Solusi tersebut diseleksi berdasarkan nilai fitness dari solusi tersebut. Nilai fitness

adalah persentase keberhasilan sebuah solusi terhadap lingkungan sekitarnya. Proses

seleksi yang dilakukan untuk memilih kromosom terbaik memiliki beberapa metode,

di antaranya adalah :

- Roulette wheel selection

Kromosom yang dipilih berdasarkan nilai fitness, semakin tinggi nilai fitness

kromosom, semakin besar probabilitas kromosom tersebut dipilih. Sama halnya

dengan permainan roulette, setiap kromosom akan menempati potongan

lingkaran pada papan roulette berdasarkan nilai fitness. Untuk menghitung

probabilitas kromosom yang dipilih dapat menggunakan rumus pada

Persamaan 1.

(1)

di mana, pi, probabilitas kromosom terpilih; fi, nilai fitness kromosom ke I; N,

jumlah kromosom, dan Fj, jumlah nilai fitness keseluruhan. Metode Roulette

wheel selection memiliki kelemahan, apabila nilai fitness sebuah kromosom

mencapai 90%, maka probabilitas kromosom untuk terpilih semakin besar, dan

mengurangi probabilitas kromosom lain untuk terpilih.

- tournament selection

Metode tournament selection merupakan metode penyeleksian kromosom dari

populasi dengan membandingkan nilai fitness kromosom–kromosom tersebut.

Kromosom yang berhasil menang dalam tournament akan terpilih menjadi

Page 3: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

8

kromosom terbaik dan menjadi kromosom parent untuk pembentukan populasi

selanjutnya.

- rank selection

Menutupi kelemahan pada roulette wheel selection, metode rank selection

memberikan rank untuk setiap populasi, kemudian setiap kromosom akan

mendapatkan nilai fitness berdasarkan rank pada populasinya. Kromosom

terburuk akan mendapatkan rank 1, selanjutnya rank 2 dan sampai kromosom

terbaik akan mendapat rank N dari jumlah populasi yang ada. Tetapi metode

rank selection mengakibatkan pencarian kromosom terbaik membutuhkan

waktu lebih lama.

- elitism

Metode elitism menduplikasi setiap kromosom terbaik pada populasinya ke

dalam populasi baru, sebelum dilakukan proses crossover dan mutasi. Oleh

karenanya, setiap populasi baru akan memiliki kromosom terbaik dari populasi

sebelumnya sehingga akan meningkatkan waktu pencarian kromosom terbaik.

Pembentukan populasi baru membutuhkan 2 (dua) buah operator genetik, yaitu

crossover dan mutasi. Sepasang solusi terbaik, atau dapat dikatakan sebagai parent,

akan diseleksi dari populasi sebelumnya untuk pembentukan solusi baru atau child/

offspring dengan menggunakan operator crossover dan mutasi.

Crossover adalah pemilihan gen kromosom parent secara acak untuk

membentuk kromosom baru/offspring. Sebuah kromosom yang mengarah pada solusi

bagus bisa diperoleh dari proses memindah silangkan dua buah kromosom [3].

Crossover dapat dilakukan dalam beberapa cara berbeda, salah satunya adalah

pindah silang satu titik poin (one-point crossover) dimana titik potong dipilih secara

acak. Gambar 2 merupakan contoh proses Crossover untuk membentuk kromosom

baru.

Kromosom 1 1 1 0 1 0 0 0 1 0

Kromosom 2 0 0 1 1 0 1 0 1 0

Offspring 1 1 1 0 1 0 1 0 1 0

Offspring 2 1 0 1 0 0 0 0 1 0

Gambar 2 Crossover Pada Kromosom

Sedangkan operator mutasi merupakan proses pergantian gen kromosom

dengan gen baru. Hal ini bertujuan untuk mencegah pencapaian solusi optimum lokal

(convergensi premature) apabila kromosom yang dipilih cenderung memiliki nilai

fitness tertinggi. Untuk menghindari convergensi premature dan tetap menjaga

perbedaan (diversity) kromosom–kromosom dalam populasi, operator mutasi

berperan dalam hal ini. Proses mutasi bersifat acak, sehingga tidak menjamin bahwa

setelah proses mutasi akan diperoleh kromosom dengan nilai fitness yang lebih baik.

Namun mutasi tetap memberikan harapan agar kromosom yang diperoleh tetap

memberikan nilai fitness yang lebih baik dibanding generasi sebelumnya [3]. Mutasi

menjadi kontroversi dalam penerapannya di dalam algoritma genetika karena

sifatnya yang acak yang dapat menggangu kromosom yang diperoleh. Oleh

karenanya, mutasi biasanya tetap digunakan dengan probabilitas yang rendah.

Beberapa metode mutasi yang dapat digunakan sesuai kebutuhan :

- Mutasi dalam pengkodean biner, yaitu mengacak gen yang terpilih dengan

melakukan intervensi dari 0 ke 1 dan sebaliknya. Gambar 3 merupakan contoh

metode ini.

Page 4: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

9

- Mutasi dalam pengkodean permutasi, yaitu dengan cara memilih dua posisi gen

secara acak kemudian menukarkannya.

- Mutasi dalam pengkodean nilai, metode ini mirip dengan metode mutasi

pengkodean biner, tetapi dilakukan penambahan atau pengurangan nilai pada

gen yang terpilih, dengan nilai terkecil yang diambil secara acak.

Offspring 1 1 1 0 1 0 1 0 1 0

Offspring 2 1 0 1 0 0 0 0 1 0

Offspring 1 baru 1 0 0 1 0 1 1 1 0

Offspring 2 baru 0 0 1 0 1 0 0 1 1

Gambar 3 Mutasi Pada Offspring

Proses evolusi pada algoritma genetika akan terhenti ketika menemukan solusi

terbaik, kondisi tersebut dinamakan terminasi. Namun, ada kalanya proses evolusi

akan berjalan terus tanpa solusi terbaik. Untuk mengatasi hal tersebut, kondisi

terminasi harus ditentukan, seperti berapa banyak iterasi maksimal yang dapat

dilakukan dalam proses evolusi. Hal ini akan mempengaruhi solusi terbaik yang

dipilih, jika proses iterasi mencapai batas maksimal, solusi akan diambil dari

populasi yang ada, tetapi bila proses iterasi belum mencapai maksimal, maka solusi

terbaik telah ditemukan.

Pustaka JFugue

JFugue adalah sebuah open-source Java API (Application Programming

Interface) tanpa kompleksitas dari MIDI. JFugue merepresentasikan musik ke dalam

bentuk bahasa pemrograman [4]. Gambar 4 merupakan contoh sederhana

penggunaan JFugue.

Gambar 4 Contoh Penggunaan Jfugue

Pustaka JGAP

JGAP (baca jay-gap) adalah salah satu pustaka java yang menyediakan

komponen untuk pemrograman genetik dan algoritma genetik. JGAP menyediakan

mekanisme genetik dasar yang dapat dengan mudah digunakan untuk menerapkan

prinsip-prinsip evolusi untuk solusi masalah. Beberapa hal yang harus diketahui

untuk menggunakan JGAP adalah : (1) Kromosom yang akan digunakan; (2)

Penentuan nilai fitness; (3) Konfigurasi awal untuk objek; (4) Populasi awal untuk

menemukan solusi; (5) Evolusi populasi.

Peran JGAP hanyalah sebagai framework untuk pemrograman genetik dan

algoritma genetik. Bagian terpenting pada algoritma genetik, yaitu nilai fitness harus

tetap dibuat. Pada pustaka JGAP, pembuatan nilai fitness dilakukan dengan

melakukan extendsclass yang akan digunakan untuk menentukan nilai fitness dengan

classFitnessFunction dari pustaka JGAP (terlihat pada Gambar 5).

Gambar 5 Pembuatan Nilai Fitness Menggunakan Pustaka JGAP

Page 5: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

10

Setelah meng-extends class FitnessFunction, class tersebut wajib meng-

overridemethodevaluate() dari class FitnessFunction yang akan mengembalikan nilai

fitness dari kromosom.

Selain membuat class untuk menentukan nilai fitness, pustaka JGAP juga

membutuhkan konfigurasi awal untuk algoritma genetik. Konfigurasi awal dilakukan

dengan membuat instance dari class Configuration. Konfigurasi awal pada JGAP

dibutuhkan untuk memberikan nilai awal pada variabel–variabel yang akan

digunakan dalam algoritma genetik. JGAP menyediakan konfigurasi default dengan

memanggil classDefaultConfiguration() pada saat membuat instance dari

classConfiguration (Gambar 6).

Gambar 6 Konfigurasi Default Pada Pustaka JGAP

Output File MIDI

MIDI (Musical Instrument Digital Interface) merupakan sebuah standard

yang diterima secara luas untuk pertukaran informasi tentang permainan musik

secara digital [5]. Instrumen MIDI biasanya dapat mengirim sekaligus menerima

perintah MIDI. Meski begitu ada juga instrumentMIDI tertentu yang hanya

melakukan satu fungsi, yaitu hanya dapat mengirim atau hanya dapat menerima

perintah MIDI saja. Instrument MIDI bisa dibagi menjadi 3 (tiga) kelompok

berdasarkan interaksinya dengan perintah MIDI, yaitu: (1) Instrument MIDI yang

dapat mengirim dan menerima perintah MIDI; (2) Instrument MIDI yang hanya dapat

menerima perintah MIDI; dan (3) Instrument MIDI yang hanya dapat mengirim

perintah MIDI. MIDI (Musical Instrument Digital Interface) merupakan sebuah

standard yang diterima secara luas untuk pertukaran.

Gambar 7 Proses Penerjemahan Data MIDI

Teori Pola Musik Drum Teori musik drum yang dipakai dan diterapkan dalam aplikasi yang dibuat

adalah mengacu pada genre lagu. Pada penelitian yang dilakukan, teori pola musik

drum mengacu pada genre lagu yang sering dan umum digunakan dalam pembuatan

lagu. Pola awal, sekaligus sebagai default pola, menggunakan sample teori musik

style pada keyboard standart internasional. Kemudian ditulis dengan bahasa

program sesuai simbol–simbol yang telah ditetapkan pada aplikasi. Tabel 1

menunjukkan contoh sample pola default pada genre lagu yang telah ditentukan

Keterangan dari simbol pola drum ditunjukkan pada Tabel 2.

Tabel 1 Pola Drum Sesuai Genre Genre Pola

Slow Rock

O...OO..

..*...*.

^^^^^^^^

!.......

Chacha

O.O..O

...*..

^^^^^^

!.....

Page 6: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

11

Waltz

O..O..O..

.**.**.**

^^^^^^^^^

!........

Disco House

O...O...O...O...

..*...*...*...*.

.^.^.^.^.^.^.^.^

!.......!.......

Hard rock

O.OO.O.OO.O.OO.O.OO.

.*..*.*..*.*..*.*..*

.^^.^.^^.^.^^.^.^^.^

!....!....!....!....

Tabel 2. Keterangan Simbol Pola Drum

3. Metode dan Perancangan Sistem Metode Pengembangan Sistem

Pada bagian ini akan menjelaskan tentang metode yang digunakan untuk

perancangan sistem, yaitu Prototype Model, dan perancangan penerapan algoritma

genetika dalam proses generator pola drum. Metode yang digunakan untuk

perancangan aplikasi adalah Prototype Model. Prototype Model adalah metode

pengembangan perangkan lunak yang memungkinkan adanya interaksi antara

pengembang sistem dengan pengguna sistem, untuk mengurangi ketidakserasian

antara pengembang dengan pengguna. Bagan prototype model dapat dilihat pada

Gambar 8.

Gambar 8. Bagan Prototype Model [6]

Tahapan penelitian berdasarkan prototype model, dijelaskan sebagai berikut :

1. Listen to Customer

Tahap awal ini merupakan tahap analisis kebutuhan pengguna. Pengguna yang

dijadikan sebagai user adalah Bapak Iwan Santosa, selaku guru les musik drum

pada salah satu lembaga musik Salatiga. Berdasarkan wawancara yang

dilakukan, diperoleh informasi tentang kebutuhan sistem yang diharapkan oleh

user, yang dapat dideskripsikan sebagai berikut : (1) User membutuhkan

aplikasi untuk membuat pola suara drum baru; (2) Pola suara dapat diputar,

sehingga dapat didengarkan untuk latihan; (3) Pola suara memiliki pengaturan

tempo dan nilai ketukan untuk mengatur cepat lambatnya suara yang

terbentuk.; (4) Pola drum yang sudah terbentuk dapat disimpan dengan file

format midi agar dapat diolah kembali.

Simbol Suara

O Bass Drum

* Acoustic Snare

^ Pedal Hit Hat ! Crash Symbal

. Rest

Page 7: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

12

2. Build

Tahap selanjutnya adalah perancangan aplikasi dengan menggunakan metode

algoritma genetika untuk membuat pola suara baru. Langkah pertama yang

dilakukan adalah perancangan dengan metode algoritma genetika, perancangan

UML (Unified Modelling Language) mengenai sistem yang- akan dibangun,

perancangan user interface, dilanjutkan dengan pembuatan aplikasi

menggunakan NetBeans IDE 7.0.1.

3. Customer Test

Tahap ini dilakukan dengan melakukan ujicoba aplikasi ke pengguna, yang

bertujuan untuk evaluasi terhadap aplikasi yang dibangun. Proses ini terus

berulang sampai aplikasi sesuai dengan kriteria pengguna.

Analisis Sistem

Dalam tahap ini dilakukan analisis terhadap sistem secara keseluruhan meliputi

analisis input, analisis proses dan analisis output sistem yang dimodelkan dalam

bentuk flowchart pada Gambar 9.

Gambar 9. Flowchart Sistem

Analisis Input

Sistem memiliki beberapa bagian input, yang dijelaskan sebagai berikut :

Kromosom; Kromosom yang digunakan dalam proses algoritma genetika

terdiri dari data String yang berupa simbol–simbol suara instrument drum

(terlihat pada Tabel 2). Jumlah gen di setiap kromosom bergantung pada pola

genre untuk setiap jenis suara yang telah dibuat di dalam sistem. Jika sebuah

pola genre terdiri dari 4 karakter untuk masing–masing suara, maka jumlah gen

pada kromosom adalah 16.

Populasi; Ukuran populasi pada sistem ditentukan berdasarkan input dari user,

dengan tujuan user dapat mencari pola suara baru yang lebih beraneka ragam.

Semakin besar ukuran populasi yang di-input-kan, semakin lama waktu yang

dibutuhkan sistem untuk membuat pola suara drum baru.

Probabilitas Selection; digunakan untuk persentase pengambilan kromosom

yang akan digunakan untuk membuat populasi baru.

Probabilitas Crossover; akan mempengaruhi keanekaragaman kromosom yang

terbentuk karena semakin tinggi persentase kromosom, semakin besar

kemungkinan dilakukan proses crossover pada kromosom.

Page 8: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

13

Probabilitas Mutation; akan mempengaruhi persentase kromosom yang

mengalami mutasi dalam populasi. Nilai probabilitas dihitung berdasarkan 1/x

kromosom di mana nilai x akan mempengaruhi jumlah kromosom yang

mengalami mutasi.

Termination; Merupakan batas iterasi sistem untuk mencari pola baru. Iterasi

ini dimaksudkan untuk mencegah proses pembuatan pola suara drum baru

terlalu lama, karena proses evolusi populasi yang terjadi tidak menghasilkan

kromosom yang sesuai.

Tempo; Tempo ditentukan berdasarkan input dari user, untuk mengatur tempo

lagu, pengaturan awal untuk tempo adalah 120 bpm (bars per minute).

Bar; Bar mengatur banyaknya ketukan untuk pola suara yang dibentuk. Bar

yang disediakan hanya 3/4 dan 4/4.

Loop; Loop digunakan jika pola suara drum baru yang dihasilkan ingin

dimainkan berulang kali. Loop pada sistem dibatasi sampai 100 kali.

Analisis Output Output sistem berupa data String yang terdiri dari simbol-simbol suara

instrument drum. Berdasarkan output tersebut, user dapat memainkannya, sehingga

menghasilkan suara instrument drum. Output tersebut juga dapat di-export menjadi

file suara berformat MIDI, sehingga dapat diolah dan dijalankan oleh aplikasi lain.

Penerapan Algoritma Genetika Proses Pembentukan Kromosom

Kromosom yang digunakan merupakan kumpulan array gen yang berupa data

String. String yang digunakan merupakan simbol dari suara instrument drum, seperti

terlihat pada Tabel 2. Karena pola suara drum memiliki lebih dari satu suara, maka

representasi kromosomnya merupakan kumpulan dari array gen. Misalnya untuk

pola suara drum dengan Genre Slow Rock, pola suara disusun seperti terlihat pada

Tabel 3.

Tabel 3. Pola Suara Drum Genre Slow Rock

Index Suara Pola

0 Bass Drum O...OO..

1 Acoustic Snare ..*...*.

2 Pedal Hithat ^^^^^^^^

3 Crash Symbal !.......

Masing–masing index suara pada Tabel 3, akan dimasukkan ke dalam gen.

Index ke–i akan dimasukkan ke dalam gen[i], i = 0…N, dimana N = jumlah suara.

Proses pembentukan kromosom baru untuk pembuatan populasi awal dalam bentuk

flowchart, ditunjukkan pada Gambar 9.

Page 9: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

14

Gambar 9. Flowchart Proses Pembentukan Kromosom Awal

Sedangkan proses untuk pembuatan kromosom baru untuk setiap populasinya

dilakukan dengan cara melakukan proses selection, crossover dan mutation terhadap

kromosom dari populasi sebelumnya. Pustaka JGAP yang digunakan pada sistem ini

menggunakan konfigurasi awal untuk melakukan proses tersebut, dijelaskan sebagai

berikut :

Proses selection menggunakan seleksi alam (natural selection) dengan nilai S

(persentase kromosom) sebesar 90%, yaitu mengambil S kromosom terbaik

untuk populasi selanjutnya berdasarkan nilai fitness-nya.

Proses crossover dilakukan dengan menggabungkan gen dari dua buah

kromosom secara acak dari masing–masing kromosom dan

menggabungkannya menjadi kromosom baru. Proses crossover dilakukan

dengan nilai P (probabilitas crossover) sebesar 35% dari populasi.

Proses mutasi dilakukan dengan nilai M (kemungkinan mutasi) sebesar 12,

artinya 1 dari 12 gen pada kromosom akan bermutasi.

Gambar 10 merupakan flowchart untuk pembentukan kromosom baru

berdasarkan proses selection, crossover dan mutasi.

Gambar 10 Flowchart Proses Pembentukan Kromosom Baru

Page 10: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

15

Proses Inisialisasi Populasi

Proses pembuatan populasi awal (inisialisasi populasi) dilakukan dengan cara

mengambil kromosom dari pembentukan kromosom awal. Sedangkan proses

pembentukan populasi baru dilakukan dengan cara mengambil kromosom yang

merupakan kromosom dengan nilai fitness tertinggi dari populasi sebelumnya.

Gambar 10 merupakan flowchart proses pembentukan populasi baru, yang dapat

dijelaskan sebagai berikut. Proses dimulai dengan menguji apakah populasi sekarang

merupakan populasi awal, jika populasi awal maka akan dijadikan populasi baru,

dan jika bukan populasi awal maka akan diambil kromosom dengan nilai fitness

tertinggi menjadi populasi baru.

Gambar 10 Proses Pembentukan Populasi Baru

Evaluasi dan Fungsi Fitness

Proses evaluasi nilai fitness pada kromosom dilakukan dengan menggunakan

2 (dua) fungsi, yaitu fungsi count symbol dan fungsi comparing symbol’s position.

Sehingga, untuk mencari nilai fitness keseluruhan, dilakukan dengan mencari nilai

rata–rata dari kedua fungsi.

di mana f adalah nilai fitness keseluruhan.

Fungsi Count Symbol

Fungsi menghitung count symbol digunakan untuk membandingkan jumlah

simbol antara kromosom awal dengan kromosom baru. Kromosom awal sebagai

pembanding awal merupakan pola suara drum dari genre yang ditentukan. Proses

membandingkan 2 (dua) kromosom tersebut, dilakukan pencarian simbol karakter di

setiap pola suara awal dan pola suara baru. Perhitungan jumlah simbol dilakukan

dengan pengecekan setiap karakter pada gen, jika karakter merupakan tanda

istirahat/Rest yang disimbolkan sebagai karakter titik, maka jumlah simbol

bertambah.

Nilai kemiripan dihitung dengan mencari nilai absolute dari selisih antara

jumlah simbol dua kromosom tersebut. Nilai kemiripan tertinggi adalah kromosom

baru yang selisih simbolnya dengan kromosom awal mendekati 0. Sehingga

didapatkan total nilai fungsi fitness adalah :

Page 11: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

16

dimana,

f(x), nilai fitness fungsi count symbol,

fi, selisih kromosom awal dengan kromosom baru,

N, jumlah suara instrument pada pola suara.

Proses evaluasi fungsi Count Symbol dalam bentuk flowchart, dapat dilihat

pada Gambar 11.

Gambar 11 Flowchart Fungsi Fitness Count Symbol

Fungsi Comparing Symbol’s Position

Fungsi comparing symbol’s position merupakan fungsi untuk membandingkan

simbol suara bass drum, acoustic snare dan crash symbal. Proses fungsi ini

melakukan perbandingan untuk setiap karakter di gen. Misalkan jika suara bass drum

terletak pada gen ke – 0 dengan panjang gen sebanyak i, maka untuk setiap karakter

ke – i di gen ke – 0 akan dipasangkan dengan suara acoustic snare pada gen ke – 1,

untuk mengecek apakah karakter pada masing–masing suara muncul atau tidak.

Ketentuan perbandingan pada fungsi ini adalah sebagai berikut:

- Jika suara bass drum muncul dan suara acoustic snare tidak muncul maka nilai

fitness fungsi bertambah 1.

- Jika suara bass drum muncul dan suara crash symbal muncul, maka nilai fitness

fungsi bertambah 1.

- Jika suara acoustic snare muncul dan suara crash symbal tidak muncul, maka

nilai fitness fungsi bertambah 1.

- Nilai fungsi fitness diakhiri dengan pembagian nilai fitness terhadap jumlah

simbol suara yang dibandingkan.

Proses fungsi Comparing Position’s Symbol dalam bentuk flowchart, dapat

dilihat pada Gambar 12.

Page 12: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

17

Gambar 12 Flowchart Fungsi Comparing Position's Symbol

Kondisi Terminasi

Kondisi terminasi ditandai dengan batas maksimum iterasi. Batas maksimum

ini didapat dari input yang dimasukkan oleh user, setelah mencapai batas maksimum

iterasi, sistem akan mencetak pola suara drum baru, yang diambil dari kromosom

dengan nilai fitness terbaik.

Perancangan Sistem Spesisifikasi Perangkat Lunak dan Perangkat Keras

Spesifikasi perangkat lunak sistem, adalah sebagai berikut : Java SE 6 Update

18; Netbeans IDE 7.0.1 Sebagai software pembantu untuk membuat program dan

desain antar muka; Pustaka JFugue 4.0.2 sebagai pustaka untuk membunyikan musik

String dan melakukan export ke dalam bentuk format file MIDI; Pustaka JGAP 3.6

sebagai pustaka framework untuk pemrogram genetika dan algoritma genetika java.

Spesifikasi perangkat keras sistem adalah sebagai berkut : Intel Core 2 Duo 2.2

GHz; RAM 1.00 GB; HardDisk 160 GB

Use Case Diagram

Rancangan use case diagram pada sistem, ditunjukkan pada Gambar 13.

Buat Pola Suara BaruUser

Export ke MIDI

Main

Berhenti

<<extend>>

<<extend>>

<<extend>>

Gambar 13 Use Case Diagram Sistem

Page 13: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

18

Use case diagram sistem pada Gambar 13, menggambarkan interaksi antar

user dengan sistem. Pada sistem ini, user dapat membuat pola suara baru, kemudian

dari suara baru yang telah dibuat, user dapat memainkan, menghentikan dan export

ke format file MIDI.

Class Diagram

Rancangan class diagram pada sistem dapat diuraikan menjadi 2 (dua)

package sebagai berikut.

- Package tools

Gambar 15 Class Diagram Package Tools

ClassGenre merupakan class yang menyimpan genre pola suara drum. Pada

kelas ini terdapat 2 (dua) atribut, yaitu : nama, untuk menyimpan nama genre, dan

pola, untuk menyimpan String pola genre

ClassFitnessValue berfungsi untuk menghitung nilai fitness pada kromosom

dari setiap populasi.Class ini memiliki method : evaluate, methodevaluate berguna

untuk menghitung dan akan mengembalikan nilai berupa nilai fitness; dan

countSimbolPola, method ini digunakan untuk menghitung jumlah simbol yang sama

pada kromosom.

ClassPolaDrums berfungsi untuk memproses algoritma genetika dalam

membuat pola suara drum baru. Class ini terdiri dari method :

- create : methodcreate digunakan untuk mengatur konfigurasi awal pada

algoritma genetika menggunakan pustaka JGAP.

- generate : methodgenerate digunakan untuk evolusi populasi mencari pola

suara baru sampai batas maksimal evolusi.

- outputSolution : methodoutputSolution digunakan untuk mencetak kromosom

terbaik dari populasi.

ClassSoundPlayer berfungsi untuk mengubah musikString menjadi suara

dengan pustaka JFugue.Class ini terdiri dari method :

- setPattern : method yang digunakan untuk men-setpattern musik String untuk

dimainkan.

- playMusic : method ini digunakan untuk memainkan pattern musik String

yang telah di set.

Page 14: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

19

- stopPlayer : method ini digunakan untuk menghentikan musik String yang

sedang dimainkan.

- run : method yang di-override jika menggunakan pustaka JFugue untuk

memainkan musik String.

ClassDrumGenerator merupakan userinterface sistem. Userinterface hanya

terdiri dari satu form utama untuk menampilkan pola suara drum baru, dengan field

untuk proses input user seperti populasi, maksimum iterasi, bar, nilai ketukan, dan

genre suara drum.

4. Hasil dan Pembahasan Pembahasan Kode Program

Aplikasi dibuat menggunakan java dengan software NetBeans IDE 7.0.1

dengan JDK 1.6u18.

Kode Program 1 Method Evaluate() Untuk Perhitungan Nilai Fitness

Kode Program 1 menunjukkan kode program method evaluate untuk

perhitungan nilai fitness. Penentuan nilai fitness dengan pustaka JGAP membutuhkan

sebuah class yang merupakan extends dari class FitnessFunction pada pustaka JGAP,

dan class tersebut akan mengimplementasikan method evaluate yang digunakan

untuk menghitung nilai fitness. Baris ke – 2 s/d 7 digunakan untuk menyimpan

kromosom dari populasi ke dalam array String polaBaru. Baris ke – 8 merupakan

perhitungan nilai fitness kromosom yang ditampung di variabel double fitnessValue

dengan memanggil fungsi fitnessCountSymbol dan comparingSymbol untuk

menghitung nilai fitness kromosom. Baris ke – 9 akan mengembalikan nilai fitness

kromosom tersebut. Kode Program 2 Pembuatan Pola Suara Drum

Kode Progam 2 merupakan method untuk membuat pola suara baru. Baris ke

– 2 dan 3 adalah pembentukan populasi awal sesuai dengan ukuran populasi yang

telah ditentukan. Baris ke – 4 merupakan proses pembentukan populasi dengan

memanggil method evaluate() yang memiliki parameter maxEvolve sebagai batas

maksimum evolusi. Kemudian, kromosom terbaik akan ditampung ke dalam String

_str yang didapatkan dengan memanggil method outputSolution.

1. public String generate(int popSize, int maxEvolve)

throws InvalidConfigurationException {

2. Genotype population;

3. population = create(popSize);

4. population.evolve(maxEvolve);

5. String _str = outputSolution(population);

6. return _str;

7. }

1. protected double evaluate(IChromosome ic) {

2. String[] polaBaru = new String[4];

3. //0 = bass drum, 1 = acoustic snare, 2 = pedal

hithat, 3 = crash symbal

4. polaBaru[0] = (String) ic.getGene(0).getAllele();

5. polaBaru[1] = (String) ic.getGene(1).getAllele();

6. polaBaru[2] = (String) ic.getGene(2).getAllele();

7. polaBaru[3] = (String) ic.getGene(3).getAllele();

8. fitnessValue = (fitnessCountSymbol(polaBaru) +

comparingSymbol(polaBaru)) / 2;

9. return fitnessValue;

10. }

Page 15: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

20

Kode Program 3 Konfigurasi Parameter Algoritma Genetika pada JGAP

Kode Program 3 menunjukkan konfigurasi parameter Algoritma Genetika

pada JGAP. Secara umum, JGAP menyediakan konfigurasi default dengan membuat

instance dari class DefaultConfiguration(). Namun, JGAP juga menyediakan

kemampuan untuk membuat konfigurasi manual agar parameter Algoritma Genetika

bersifat dinamis dengan membuat instance dari class Configuration. Baris ke – 7 s/d

9 merupakan konfigurasi untuk proses selection pada kromosom. Objek dari class

BestChromosomesSelector akan mengatur persentase banyaknya kromosom yang

akan diambil dari populasi. Baris ke – 8 adalah pengaturan untuk kromosom yang

digunakan, jika bernilai true, maka kromosom yang sama diperbolehkan untuk

ditambahkan ke dalam populasi. Baris ke – 9 menambahkan natural selection pada

konfigurasi JGAP.

Kode Program 4 Proses Export Pola Suara ke File MIDI

Kode Program 4 merupakan cara untuk meng-export pola suara menjadi file

MIDI. Jfugue menyediakan fungsi untuk melakukan proses tersebut dengan

memanggil method saveMidi dari class Player. Method ini membutuhkan parameter

berupa pattern dari pola suara dan file tujuannya.

1. Player player = new Player();

2. player.saveMidi(soundPlayer.pattern, file);

1. private Genotype create(int popSize) throws

InvalidConfigurationException {

2. Configuration.reset();

3. Configuration conf = new Configuration();

4. conf.setBreeder(new GABreeder());

5. conf.setRandomGenerator(new StockRandomGenerator());

6. conf.setEventManager(new EventManager());

7. BestChromosomesSelector bestChromsSelector = new

BestChromosomesSelector(conf, 0.90d);

8. bestChromsSelector.setDoubletteChromosomesAllowed(true);

9. conf.addNaturalSelector(bestChromsSelector, false);

10. conf.setMinimumPopSizePercent(0); 11. conf.setSelectFromPrevGen(1.0d); 12. conf.setKeepPopulationSizeConstant(true); 13. conf.setFitnessEvaluator(new DefaultFitnessEvaluator()); 14. conf.setChromosomePool(new ChromosomePool()); 15. conf.addGeneticOperator(new CrossoverOperator(conf,

crossOverRate));

16. conf.addGeneticOperator(new MutationOperator(conf, mutationRate));

17. FitnessFunction myFunc = new FitnessValue(pola);

18. conf.setFitnessFunction(myFunc); 19. Gene[] stringGene1 = new Gene[4];

20. stringGene1[0] = new StringGene(conf, pola[0].length(), pola[0].length(), pola[0]);

21. stringGene1[1] = new StringGene(conf, pola[1].length(), pola[1].length(), pola[1]);

22. stringGene1[2] = new StringGene(conf, pola[2].length(), pola[2].length(), pola[2]);

23. stringGene1[3] = new StringGene(conf, pola[3].length(), pola[3].length(), pola[3]);

24. IChromosome sampleChromosome1 = new Chromosome(conf, stringGene1);

25. conf.setSampleChromosome(sampleChromosome1); 26. conf.setPopulationSize(popSize); 27. Genotype population =

Genotype.randomInitialGenotype(conf);

28. return population; 29. }

Page 16: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

21

Pengujian Sistem Berdasarkan Parameter Algoritma Genetika untuk

Pembuatan Pola Baru

Pengujian sistem dilakukan terhadap beberapa parameter algoritma genetika

untuk melihat pengaruhnya terhadap pola suara drum hasil generate.

Uji Coba Parameter Population Size.

Pengujian dilakukan sebanyak 30 kali ke setiap populasi yang diuji dengan

menghitung rata–rata nilai fitness yang dihasilkan. Adapun pengujian dilakukan

dengan nilai parameter population size berbeda–beda, sedangkan parameter lainnya

tetap, agar dapat dilihat perbedaan yang terjadi. Parameter lainnya berisikan data

sebagai berikut : (1) Genre Slow Rock; (2) Maksimum evolusi sebesar 10; (3)

Natural selection rate sebesar 90%; (4) Crossover rate sebesar 35%; (5)Mutation

rate sebesar 1/12.

Pengujian dilakukan sebanyak 3 kali dengan population size masing–masing

1, 10 dan 100. Hasil uji coba parameter disajikan pada Tabel 4.

Tabel 4 Pengujian Population Size Sebesar 1, 10 dan 100

Data Ke - Persentase Nilai Fitness

Population Size 1 Population Size 10 Population Size 100

1 78.125 100 100 2 53.125 98.4375 100

3 68.75 100 100

4 98.4375 98.4375 100 5 93.75 100 100

6 65.9375 100 100

7 87.5 100 100 8 87.5 100 100

9 87.5 98.4375 100

10 98.4375 98.4375 100 11 79.4642 92.1875 100

12 77.9017 93.75 100

13 79.0625 98.4375 100 14 92.1875 95.3125 100

15 73.2142 95.3125 100

16 64.0625 93.75 100 17 89.0625 100 100

18 87.5 93.75 100

19 98.4375 93.75 100 20 79.6875 100 100

21 75.3125 100 100

22 85.9375 98.4375 100 23 75.0 98.4375 100

24 81.25 95.3125 100

25 67.1875 100 100 26 76.3888 98.4375 100

27 93.75 100 100

28 66.8402 95.3125 100 29 72.3958 100 100

30 84.1517 98.4375 100

Total 2417.857 2934.375 3000

Rata–rata 80.59522 97.8125 100

Berdasarkan hasil pengujian pada Tabel 4, didapatkan hasil rata–rata fitness

dengan population size 1 sebesar 80.59522, population size 10 sebesar 97.8125,

population size 100 sebesar 100, dan dapat disimpulkan bahwa semakin besar nilai

population size, semakin besar kemungkinan nilai fitness optimum.

Uji Coba Parameter Maksimum Evolusi

Pengujian Parameter Maksimum Evolusi dilakukan sebanyak 30 kali ke

setiap populasi yang diuji, dengan menghitung rata–rata nilai fitness yang dihasilkan.

Adapun pengujian dilakukan dengan nilai parameter maksimum evolusi yang

berbeda-beda, sedangkan parameter lainnya tetap agar dapat dilihat perbedaan yang

terjadi. Parameter lainnya berisi data sebagai berikut : (1) Genre Slow Rock; (2)

Page 17: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

22

Population size sebesar 10; (3)Natural selection rate sebesar 90%; (4)Crossover rate

sebesar 35%; (5)Mutation rate sebesar 1/12.

Pengujian dilakukan sebanyak 3 kali dengan maksimum evolusi masing–

masing 1, 10 dan 100. Hasil uji coba parameter Maksimum Evolusi disajikan pada

Tabel 5.

Tabel 5 Pengujian Maksimum Evolusi Sebesar 1, 10 dan 100

Data Ke - Persentase Nilai Fitness

Maks. Evolusi 1 Maks. Evolusi 10 Maks. Evolusi 100

1 82.8125 95.3125 100 2 89.0625 100 100

3 93.75 92.1875 100 4 93.75 100 100

5 92.1875 98.4375 100

6 89.0625 100 100

7 92.1875 98.4375 100

8 93.75 93.75 100

9 92.1875 100 100 10 93.75 95.3125 100

11 86.6071 100 100

12 93.75 100 100 13 87.5 100 100

14 88.4375 98.4375 100

15 98.4375 98.4375 100 16 98.4375 93.75 100

17 95.3125 100 100

18 95.3125 100 100 19 92.1875 100 100

20 98.4375 100 100

21 89.0625 93.75 100 22 93.75 98.4375 100

23 92.1875 100 100

24 92.1875 100 100 25 100 98.4375 100

26 89.0625 95.3125 100

27 89.0625 93.75 100 28 92.1875 100 100

29 91.6666 98.4375 100

30 85.9375 89.0625 100

Total 2762.024 2931.25 3000

Rata – rata 92.0674 97.7083 100

Berdasarkan hasil pengujian pada Tabel 5 didapatkan hasil rata–rata fitness

dengan maksimum evolusi 1 sebesar 92.0674, maksimum evolusi 10 sebesar

97.7083, maksimum evolusi 100 sebesar 100, dan dapat disimpulkan bahwa semakin

besar nilai maksimum populasi, semakin besar kemungkinan nilai fitness optimum.

Uji Coba Parameter Crossover Rate

Pengujian Parameter Crossover Rate dilakukan sebanyak 30 kali ke setiap

populasi yang diuji dengan menghitung rata–rata nilai fitness yang dihasilkan.

Adapun pengujian dilakukan dengan nilai parameter crossover rate yang berbeda-

beda, sedangkan parameter lainnya tetap agar dapat dilihat perbedaan yang terjadi.

Parameter lainnya berisikan data sebagai berikut : (1) Genre Slow Rock; (2)

Population size sebesar 10; (3) Maksimum evolusi sebesar 10%; (4) Natural

selection rate sebesar 90%; (5) Mutation rate sebesar 1/12.

Pengujian dilakukan sebanyak 3 kali dengan crossover rate masing–masing

0.1, 0.5 dan 1. Hasil uji coba parameter disajikan pada Tabel 7.

Tabel 7 Pengujian Maksimum Crossover Rate 0.1, 0.5 dan 1

Data Ke - Persentase Nilai Fitness

Crossover Rate 0.1

Crossover Rate 0.5 Crossover Rate 1

1 95.3125 98.4375 100

2 98.4375 100 100

Page 18: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

23

3 98.4375 100 100 4 92.1875 87.5 100

5 95.3125 100 93.75

6 98.4375 95.3125 95.3125 7 95.3125 100 95.3125

8 93.75 95.3125 100

9 93.75 100 95.3125 10 93.75 100 100

11 100 100 93.75

12 100 93.75 100 13 100 92.1875 98.4375

14 100 100 98.4375

15 93.75 93.75 100 16 100 100 100

17 100 100 93.75

18 92.1875 100 100 19 95.3125 100 100

20 93.75 100 100

21 100 95.3125 95.3125 22 98.4375 100 95.3125

23 100 100 93.75

24 100 98.4375 93.75 25 93.75 95.3125 100

26 95.3125 98.4375 100

27 95.3125 98.4375 93.75 28 100 98.4375 98.4375

29 93.75 100 95.3125

30 98.4375 98.4375 89.0625

Total 2904.688 2939.063 2918.75

Rata – rata 96.82292 97.96875 97.29167

Berdasarkan hasil pengujian pada Tabel 7 didapatkan hasil rata–rata fitness

dengan crossover rate 0.1 sebesar 96.8229, crossover rate 0.5 sebesar 97.96875,

crossover rate 1 sebesar 97.29167, dan dapat disimpulkan bahwa nilai fitness tidak

bergantung pada nilai crossover rate.

Pengujian File Output Generator

Pengujian dilakukan pada hasil export MIDI dengan cara membandingkan pola

hasil generate sistem dengan drum setelah dibuka di dalam editor musik drum

lainnya. Gambar 22 menunjukkan hasil generate pola drum oleh sistem.

Gambar 22 Contoh Hasil Generate Pola Drum Oleh Sistem dan Log

Kemudian dibuka file hasil export MIDI di dalam aplikasi lain yaitu dibuka

file hasil export MIDI di dalam software lain yaitu Fruty Loops 9 yang hasilnya

dapat dilihat pada Gambar 23.

Page 19: generator pola drum - Institutional Repositoryrepository.uksw.edu/bitstream/123456789/2395/2/T1_672007145_Full... · sedangkan untuk durasi didasarkan pada nilai ketukan drum sesuai

24

Gambar 23 Hasil Export MIDI Dibuka Di Aplikasi FL 9

Gambar 23 menunjukkan bahwa file drum MIDI hasil export sistem dapat

dibuka dengan baik oleh aplikasi Fruty Loop 9.

Hasil Wawancara Pengujian Aplikasi

Berdasarkan hasil pengujian aplikasi Generator Pola Drum sesuai dengan

wawancara terhadap bapak Iwan Santosa, diperoleh hasil yang sangat memuaskan.

Menurut beliau, aplikasi ini dapat di pakai untuk mengajar sesuai kebutuhan

pengajar dan dapat digunakan untuk membuat pola lagu baru sesuai kriteria lagu

berdasarkan genre lagu yang telah disediakan diaplikasi ini serta dapat

menghasilkan output file berupa data file midi agar dapat disimpan serta diolah lagi.

5. Simpulan Berdasarkan hasil pembuatan, pembahasan, dan pengujian aplikasi Generator

Pola Drum, dapat disimpulkan bahwa penerapan algoritma genetika dapat

menghasilkan output berupa teknik pembuatan pola suara drum sesuai genre

musiknya. Aplikasi yang dibangun dapat membantu para musisi, composer, arranger

serta orang yang berkecimpung di dunia industri musik agar dapat membuat pola

musik drum dengan mudah dan praktis. Saran dan pengembangan aplikasi Algoritma

Genetika ini adalah penambahan sub fungsi fitness yang lebih bervariatif, sehingga

dihasilkan warna pola drum yang baru sesuai dengan selera secara spesifik untuk

genre yang dipilih.

6. Daftar Pustaka

[1]. Pakereng, M. A. Ineke, 2007, Kriptosistem Menggunakan Algoritma

Genetika Pada Data Citra, Yogyakarta: Thesis. Universitas Gadjah Mada.

[2]. Nugroho dkk, Andi, 2009. Generator Melodi Berdasarkan Skala dan Akord

Menggunakan Algoritma Genetika, Jurnal Informatika, Vol 5, No 1, Juni

2009: 15 – 29.

[3]. Koelle, David, 2010. Java API for Music Programming,

http://www.jfugue.org/. Diakses tanggal 4 April 2012.

[4]. Suyanto, 2005, Algoritma Genetika dalam Matlab, Yogyakarta: ANDI

OFFSET.

[5]. Smith, Instruments, Dave, 2009. About Dave Smith Instruments,

http://www.davesmithinstruments.com/about/index.php. Diakses tanggal 4

April 2012.

[6]. Pressman, Roger S., 2001. Software Engineering a Practitioner’s Approach,

New York : McGraw-Hill Higher Education.