Generator Melodi Berdasarkan Skala dan Akord Menggunakan Algoritma Genetika 1)
Adi Nugroho, 2)Theophilus Erman Wellem, 3)Andi Taru Nugroho NW Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia Email : 1)
[email protected], 2)
[email protected], 3)
[email protected] Abstract
Genetics algorithm can be used to help automation process especially in musical field and to generate melody. Scaled is used as initial population and chord is used as fitness value calculation and the last best ten generated chromosome will be used. Genetics algorithm parameters tested to see the chord percentage in the generated melody. Those parameters have great influence to the chord formula and to the generated melody. The higher the parameter, the higher chord percentage, except for tournament size and crossover rate. Tournament size does not have influence. Whereas crossover rate is reverse equivalent to the chord percentage. Keywords : Genetic Algorithm, Scale, Chord, Melody Generator.
1. Pendahuluan 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 diawal 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 melodi. Mengingat kembali dunia musik adalah dunia seni yang tidak bisa dibuat secara sembarangan, terdapat aturan-aturan tertentu di dalam pembuatan musik khususnya di dalam pembuatan melodi. Melodi terdiri dari susunan nada-nada yang diambil dari suatu skala melodi. Skala itu sendiri yang nantinya akan menentukan warna melodi yang dihasilkan. Di dalam pembuatan melodi juga pasti akan memperhatikan susunan akord yang ada. Biasanya melodi diciptakan setelah akord pada lagu selesai dibuat. Dari sini dapat diketahui terdapat 2 (dua) hal penting di dalam pembuatan melodi yaitu skala dan akord. Dasar inilah yang akan dijadikan studi kasus untuk menerapkan algoritma genetika sebagai algoritma generator melodi berdasarkan skala dan akord.
31
Jurnal Informatika, Vol.5, No.1, Juni 2009: 31 - 46
2.
Landasan Teori
Algoritma Genetika Algoritma genetika adalah suatu algoritma pencarian (Searching) yang berdasarkan pada cara kerja atau mekanisme seleksi alam dan genetik (Suyanto, 2005). Tujuan dari algoritma genetika adalah untuk mencari solusi terbaik dari suatu permasalahan tertentu. Solusi terbaik adalah individu yang mempunyai kualitas paling tinggi. Algoritma genetika sangat tepat digunakan untuk menyelesaikan masalah optimasi dan pencarian kompleks yang sulit dipecahkan dengan menggunakan metode konvensional (Manongga, 2005). Populasi awal di dalam algoritma genetika adalah sebuah himpunan solusi awal yang dihasilkan secara acak. Setiap anggota yang disebut kromosom merupakan satu solusi. Kromosom di dalam populasi berevolusi dalam iterasi yang dinamakan dengan generasi. Setiap kromosom dievaluasi berdasarkan fungsi fitness. Biasanya fungsi fitness berupa fungsi objektif dari solusi permasalahan yang akan dicari atau dioptimasi. Fungsi fitness dan representasi kromosom sangat berperan penting di dalam pencapaian akhir implementasi algoritma genetika. Kromosom-kromosom diseleksi menurut nilai fitness masing-masing. Kromosom yang kuat mempunyai kemungkinan tinggi untuk bertahan hidup pada generasi berikutnya, tetapi tidak menutup kemungkinan juga bagi kromosom lemah untuk tetap bertahan hidup. Generasi baru didapatkan melalui proses crossover dan mutasi dari kromosom yang terpilih. Dari dua proses tersebut maka terbentuk suatu generasi baru yang akan diulangi secara terus-menerus hingga mencapai suatu konvergensi, yaitu sebanyak generasi yang diinginkan (Pandjaitan, 2007). Proses algoritma genetika, terdiri dari beberapa tahap seperti skema pengkodean, inisialisasi populasi, evaluasi menggunakan fungsi fitness, kondisi terminasi, seleksi kromosom induk, crossover dan mutasi (Arhami dan Desiani, 2006).
Skala dan Akord Skala adalah urutan nada dengan aturan tertentu dari nada yang lebih rendah ke nada yang lebih tinggi (Arisasangka, 2005). Setiap skala mempunyai aturan atau rumus tertentu yang akan membedakan skala satu dengan skala yang lainnya. Setiap skala biasanya mewakili suatu musik dari daerah tertentu. Sehingga dengan menggunakan skala tertentu dalam bermain musik akan menjadikan warna musik menjadi lebih jelas dan terarah. Sebagai contoh dari skala yang paling banyak dipakai adalah skala MAJOR dan MINOR. Kedua skala tersebut paling sering dipakai di dalam lagu rock dan pop. Berikut rumus dari kedua skala tersebut : MAJOR : 0, 2, 4, 5, 7, 9, 11, 12 MINOR : 0, 2, 3, 5, 7, 8, 10, 12 bila dimulai dari nada dasar C, maka akan menjadi : C MAJOR : C, D, E, F, G, A, B, C C MINOR : C, D, D#, F, G, G#, A#, C Contoh lain beberapa rumus skala yang biasa digunakan dan dikenal orang ada pada Tabel 2.1 (Arisasangka, 2006).
32
Generator Melodi Berdasarkan Skala dan Akord Menggunakan Algoritma Genetika (Adi Nugroho, Theophilus Erman Wellem, Andi Taru Nugroho NW) Tabel 2.1 Contoh nama dan rumus skala Nama Skala Rumus Skala MAJOR 0, 2, 4, 5, 7, 9, 11, 12 MINOR 0, 2, 3, 5, 7, 8, 10, 12 BLUES_1 0, 3, 5, 6, 7, 10, 12 CHINESE_1 0, 2, 5, 7, 9, 12 JAPANESE_1 0, 1, 5, 7, 8, 12 JAVANESE 0, 1, 3, 5, 7, 10, 12 LANGGAM 0, 1, 3, 7, 8, 12 PENTATONIC_MAJOR 0, 2, 4, 7, 9, 12 PENTATONIC_MINOR 0, 3, 5, 7, 10, 12 SPANISH 0, 1, 4, 5, 7, 8, 10, 12
Akord adalah kumpulan tiga nada atau lebih yang bila dimainkan secara bersamaan terdengar harmonis. Akord bisa dimainkan secara terputus-putus ataupun secara bersamaan. Akord ini digunakan untuk mengiringi suatu lagu atau melodi. Setiap akord mempunyai rumus. Dimana rumus tersebut menentukan nadanada yang ada pada akord. Contoh untuk akord mayor mempunyai rumus 0, 4, 7. Yang artinya akord tersebut mengandung nada-nada ke 0, 4 dan 7 yang bisa dibunyikan secara bersamaan. Misalkan nama akordnya adalah CMayor, maka nada yang dibunyikan adalah nada-nada C, E, G. Biasanya akord ini dimainkan di dalam alat musik piano dan gitar. Karena tidak semua alat musik dapat digunakan untuk membunyikan nada secara bersamaan. Akord dan rumus yang digunakan ada pada Tabel 2.2 (Hendro, 2008). Tabel 2.2 Contoh nama dan rumus akord NAMA AKORD RUMUS AKORD AUGMENTED 0, 4, 8 MAJOR 0, 4, 7 MAJOR_6 0, 4, 7, 9 MAJOR_7 0, 4, 7, 11 MINOR 0, 3, 7 MINOR_6 0, 3, 7, 9 MINOR_7 0, 3, 7, 10 SUSPENDED_2 0, 2, 7 SUSPENDED_4 0, 5, 7 MINOR_MAJOR_7 0, 3, 7, 11 MAJOR_7_MIN_5 0, 4, 6, 11 MAJOR_7_ADD_5 0, 4, 8, 11 DIMINISHED 0, 3, 6 DIMINISHED_7 0, 3, 6, 9 DOMINANT_7 0, 4, 7, 10 DOMINANT_7_MIN_5 0, 4, 6, 10 DOMINANT_7_ADD_5 0, 4, 8, 10 33
Jurnal Informatika, Vol.5, No.1, Juni 2009: 31 - 46
3.
Metode Penelitian Proses awal dari algoritma genetika adalah skema pengkodean dan inisialisasi populasi untuk mendapatkan solusi awal. Skema pengkodean dilakukan dengan metode Discrete Decimal Encoding (Suyanto, 2005) dimana kromosom direpresentasikan dalam bentuk bilangan bulat setiap gen-nya. Setiap gen merepresentasikan nada dan setiap kromosom merepresentasikan melodi. Ukuran setiap kromosom berbeda-beda disesuaikan dengan jumlah ketukan yang dibutuhkan. Karena yang digunakan adalah 4/4 ketukan maka pada setiap kromosom maksimal durasi adalah 4 ketukan (Nickol, 2007). Di dalam penelitian ini ukuran kromosom dibagi menjadi 3 macam yaitu 8 gen pada Gambar 3.1, 16 gen pada Gambar 3.2, dan 32 gen pada Gambar 3.3.
Gambar 3.1 Representasi kromosom 8 gen
Gambar 3.2 Representasi kromosom 16 gen
Gambar 3.3 Representasi kromosom 32 gen
Proses inisialisasi dilakukan dalam setiap gen kromosom yang diambil dari rumus skala secara acak. Namun sebelumnya rumus skala harus ditambahkan dulu dengan nilai root yang diinputkan. Proses ini dinamakan transpose nada dimana setiap nada di dalam melodi dinaikkan semua dengan jumlah kenaikan yang sama. Hal ini dikarenakan nada dasar yang berubah sehingga setiap nada dalam lagu atau melodi semua juga harus berubah. Contoh penerapannya : Misalkan rumus skala adalah [ 0, 2, 4, 6, 8, 10 ] Misalkan rumus akord adalah [ 0, 4, 7 ] Misalkan rumus root adalah 2 (nada dasar D) Maka rumus skala dan akord akan menjadi, Skala : [ 0+2, 2+2, 4+2, 6+2, 8+2, 10+2 ] = [ 2, 4, 6, 8, 10, 12 ] Akord : [ 0+2, 4+2, 7+2 ] = [ 2, 6, 9 ] Setelah proses inisialisasi selesai dilakukan, maka semua kromosom di dalam generasi dievaluasi menggunakan fungsi fitness. Fungsi fitness dapat dilihat di dalam Rumus 3.1.
f(x) = f 1(x) + f 2(x) + f 3(x) + f 4(x) + f 5(x) + f 6(x) dimana, f(x) = fungsi fitness keseluruhan 34
(3.1)
Generator Melodi Berdasarkan Skala dan Akord Menggunakan Algoritma Genetika (Adi Nugroho, Theophilus Erman Wellem, Andi Taru Nugroho NW)
f 1(x) = fungsi chord note f 2(x) = fungsi relation note f 3(x) = fungsi direction note f 4(x) = fungsi beginning note f 5(x) = fungsi end note f 6(x) = fungsi drastic note Fungsi chord note digunakan untuk menilai berapa jumlah nada yang ada para kromosom yang sama dengan rumus akord. Fungsi relation note digunakan untuk menilai pola perbedaan antar nada yang bersebelahan sebanyak tiga nada. Fungsi direction note digunakan untuk menilai berapa jumlah nada yang mempunyai pola naik, turun dan sejajar untuk setiap tiga nada. Fungsi beginning note digunakan untuk mengecek nada pertama pada kromosom apakah sama dengan nada pertama rumus akord. Fungsi end note hampir sama dengan fungsi beginning note namun digunakan untuk mengecek nada terkahir kromosom. Fungsi yang terkahir adalah fungsi drastic note yang berguna untuk mengurangi nilai fitness sebanyak 2,0 (ukuran kromosom 8 gen), 1,0 (ukuran kromosom 16 gen) dan 0,5 (ukuran kromosom 32 gen) apabila ditemukan jarak antar nada lebih dari 4. Untuk fungsi chord note, fungsi relation note, fungsi direction note, fungsi beginning note dan fungsi end note digunakan untuk menambahkan nilai fitness sebesar 1,0 (ukuran kromosom 8 gen), 0,5 (ukuran kromosom 16 gen) dan 0,25 (ukuran kromosom 32 gen). Fungsi fitness berlaku untuk semua kromosom yang ada generasi. Hasil dari fungsi fitness adalah nilai fitness yang akan dimiliki oleh setiap kromosom. Nilai fitness berguna untuk proses selanjutnya yaitu proses seleksi (tournament selection). Kromosom yang mempunyai nilai fitness yang lebih tinggi akan menang dan terpilih sebagai kromosom induk.
35
Jurnal Informatika, Vol.5, No.1, Juni 2009: 31 - 46
Gambar 3.4 Flowchart proses tournament selection
Selanjutnya dari generasi yang ada dipilih beberapa kromosom untuk dijadikan kromosom induk. Proses seleksi yang dipakai adalah tournament selection (Suyanto, 2005) seperti pada Gambar 3.4. Kromosom yang dipilih sebanyak parameter input tournament size dikalikan dua. Kemudian dari semua kromosom yang terpilih kromosom dipasang-pasangkan dua kromosom setiap pasang. Dalam setiap pasang dipilih lagi satu kromosom yang mempunyai nilai fitness yang lebih tinggi. Karena proses crossover hanya bisa dilakukan antar dua kromosom induk, maka apabila hasil hanya bisa dilakukan antar dua kromosom induk, maka apabila hasil tournament selection kromosom yang terpilih berjumlah ganjil, kromosom yang terakhir dihapus satu. Pada Gambar 3.5 terdapat kromosom yang terpilih sebanyak 8 buah kromosom. Selanjutnya kromsom-kromosom
36
Generator Melodi Berdasarkan Skala dan Akord Menggunakan Algoritma Genetika (Adi Nugroho, Theophilus Erman Wellem, Andi Taru Nugroho NW)
tersebut dipasang-pasangkan menjadi 2 kromosom setiap pasang seperti pada Gambar 3.6. Dari setiap pasangan dipilih satu kromosom yang mempunyai nilai fitness lebih tinggi untuk dijadikan kromosom induk seperti pada Gambar 3.7. Kromosom
C45 C23 C90 C56 C22 C9 C42 C88
Nilai Fitness 14.5 22.3 10.2 21.3 19.4 3.1 22.5 23.5 Gambar 3.5 Kromosom yang terpilih untuk tournament selection Kromosom Nilai Fitness
C45 C23
C22 C9
C42 C88
14.5 22.3 10.2 21.3 19.4 3.1 Gambar 3.6 Hasil seleksi kromsom
22.5 23.5
Kromosom
C90 C56
C23 C56 C22 C88
Nilai Fitness 22.3 21.3 19.4 23.5 Gambar 3.7 Kromosom yang terpilih sebagai induk
Gambar 3.8 Flowchart proses crossover
37
Jurnal Informatika, Vol.5, No.1, Juni 2009: 31 - 46
Pada Gambar 3.8 proses crossover atau pindah silang dilakukan dengan menggunakan metode one-point-crossover (Manongga, 2005). Pindah silang dilakukan apabila bilangan acak yang dibangkitkan lebih kecil dari parameter crossover rate (probabilitas crossover). Adapun titik pindah silang juga didapatkan secara acak. Untuk menentukan pindah silang kiri atau kanan dilakukan dengan cara membangkitkan bilangan acak antara 0 sampai 1. Apabila bilangan yang dibangkitkan lebih kecil dari 0,5 maka lakukan pindah silang di sebelah kiri. Atau apabila bilangan yang dibangkitkan lebih besar atau sama dengan 0,5 maka lakukan pindah silang di sebelah kanan. Gambar 3.9 memperlihatkan kromosom sebelum di-crossover sedangkan Gambar 3.10 adalah kromosom baru hasil crossover. 0 3 1 2 6 4 5 2 5 1 6 2 4 2 0 1 Gambar 3.9 Kromosom sebelum di-crossover 0 3 1 2 6 2 0 1 5 1 6 2 4 4 5 2 Gambar 3.10 Kromosom setelah di-crossover Pada Gambar 3.9 terlihat dua deret kromosom yang akan disilangkan. Kromosom pertama mempunyai gen [0, 3, 1, 2, 6, 4, 5,2] dan kromosom kedua mempunyai gen [5, 1, 6, 2, 4, 2, 0, 1]. Sebagai contoh bilangan acak yang dibangkitkan untuk titik crossover adalah 6. Kemudian kita tentukan apakah akan dilakukan penyilangan di kiri atau kanan titik crossover dengan membangkitkan bilangan acak antar 0 sampai 1. Misalkan nilai yang dihasilkan adalah 0,85 berarti lakukan pindah silang disisi kanan. Karena point crossover adalah 6 maka gen ke-6, gen ke-7 dan gen ke-8 kita silangkan. Hasil crossover dapat dilihat pada Gambar 3.10 yaitu gen kromosom pertama menjadi [0, 3, 1, 2, 6, 2, 0, 1] dan gen kromosom kedua menjadi [5, 1, 6, 2, 4, 4, 5,2].
38
Generator Melodi Berdasarkan Skala dan Akord Menggunakan Algoritma Genetika (Adi Nugroho, Theophilus Erman Wellem, Andi Taru Nugroho NW)
Gambar 3.11 Flowchart proses mutasi
Pada Gambar 3.11 proses mutasi dilakukan untuk semua gen dalam populasi. Adapun jangkauan parameter mutation rate adalah 0-1000. Mutasi dilakukan apabila bilangan acak yang dibangkitkan lebih kecil dari nilai mutation rate (probabilitas mutasi) (Suyanto, 2005). Mutasi dilakukan dengan cara mengganti gen dengan salah satu dari tiga anggota rumus akord. Gambar 3.12 adalah contoh kromosom sebelum mutasi, kemudian dibangkitkan bilangan acak pada setiap gen seperti pada Gambar 3.13. Misalkan nilai mutation rate adalah sebesar 10 maka gen yang mempunyai bilangan acak di bawah 10 akan di mutasi menjadi seperti pada Gambar 3.14. 0 2 5 2 5 2 5 9 Gambar 3.12 Kromosom sebelum mutasi Bilangan Acak 100 44 48 5 1 802 17 2 Gen Kromosom 0 2 5 2 5 2 5 9 Gambar 3.13 Bilangan acak yang dibangkitkan 39
Jurnal Informatika, Vol.5, No.1, Juni 2009: 31 - 46
0 2 5 4 7 2 5 0 Gambar 3.14 Contoh setelah mutasi
Proses algoritma genetika akan berhenti berdasarkan kondisi terminasi. Yang menjadi acuan kondisi terminasi adalah nilai parameter termination generation. Nilai parameter termination generation akan menentukan jumlah generasi. Jika proses sudah mencapai pada generasi sesuai dengan nilai termination generaion maka proses akan berhenti dan diambil sepuluh kromosom yang terbaik untuk didecoding dan ditampilkan. Proses decoding dilakukan dengan cara sebagai berikut : - Konversi setiap gen dalam kromosom yang berupa bilangan bulat menjadi String nada. Caranya adalah dengan menjadikan nilai gen sebagai indeks array RANGE_NOTES[] yang ada pada Kode Program 3.1. Pada Gambar 3.15 dapat dilihat kromosom sebelum dan sesudah proses decoding. public static String RANGE_NOTES[] = { "C5","C#5","D5","D#5","E5","F5","F#5","G5","G#5","A5","A#5","B5", "C5","C#5","D5","D#5","E5","F5","F#5","G5","G#5","A5","A#5","B5" };
Kode Program 3.1 Array konversi ke String nada 2 5 0 Sebelum Decoding 0 2 5 10 7 Sesudah Decoding C5 D5 F5 A#5 G5 D5 F5 C5 Gambar 3.15 Contoh kromosom sebelum dan sesudah decoding
-
Selanjutnya sesuai dengan ukuran kromosom tambahkan durasi dibelakang String nada. Ketentuan pemberian durasi disesuaikan dengan panjang kromosom. Untuk panjang kromosom 8 gen tambahkan String i (eighth), untuk panjang kromosom 16 gen tambahkan String s (sixteenth) dan untuk panjang kromosom 32 gen tambahkan String t (thirty-second). Contoh ada pada Gambar 3.16. C5i
-
D5i F5i A#5i G5i D5i F5i C5i Gambar 3.16 Contoh hasil pemberian durasi
Untuk pilihan melodi non-arpeggio gabungkan nada dengan durasi dan tinggi yang sama menjadi 1 (satu) nada saja sehingga melodi mempunyai durasi yang bervariasi seperti Gambar 3.17. Sebelum C5i D5i D5i A#5i G5i D5i F5i C5i Sesudah C5i D5q A#5i G5i D5i F5i C5i Gambar 3.17 Nada sebelum dan sesudah konversi durasi
-
40
Gambar hasil akhir decoding ke dalam graphics panel dalam bentuk notasi dan tablature gitar seperti pada Gambar 3.18.
Generator Melodi Berdasarkan Skala dan Akord Menggunakan Algoritma Genetika (Adi Nugroho, Theophilus Erman Wellem, Andi Taru Nugroho NW)
(a) (b) Gambar 3.18 Notasi arpeggio (a) dan non-arpeggio (b)
4.
Hasil dan Pembahasan Antarmuka sistem dibagi menjadi 4 bagian utama yang dapat dilihat pada Gambar 4.1, yaitu panel notasi standard dan tablature gitar, tabel 10 nilai fitness terbaik yang dapat digunakan untuk memilih melodi, form input parameterparameter algoritma genetika dan form input skala, root dan akord pada setiap birama musik.
Gambar 4.1 Antarmuka aplikasi generator melodi
Selanjutnya hasil melodi yang di-generate diuji dengan cara menghitung persentase jumlah rumus akord terhadap kromosom terbaik yang didapatkan. Serta dilakukan dengan cara membandingkan antara hasil karya manusia dengan hasil generate melodi. Tabel 4.1 Pengujian population size sebesar 10, 100 dan 1000 Persentase Akord Terhadap Melodi (%) Data KePopulation Size 10 Population Size 100 Population Size 1000 1 50,0 50,0 62,5 2 37,5 62,5 75,0 3 75,0 62,5 75,0
41
Jurnal Informatika, Vol.5, No.1, Juni 2009: 31 - 46
Data Ke4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Total Rata-rata
Persentase Akord Terhadap Melodi (%) Population Size 10 Population Size 100 Population Size 1000 62,5 62,5 75,0 62,5 87,5 62,5 50,0 37,5 75,0 62,5 62,5 62,5 62,5 62,5 50,0 62,5 50,5 75,0 50,0 50,5 87,5 50,0 37,5 62,5 25,0 50,5 62,5 25,0 12,5 50,0 37,5 87,5 75,0 62,5 62,5 75,0 62,5 50,0 50,0 75,0 100,0 62,5 25,0 87,5 75,0 50,0 87,5 50,0 25,0 50,0 62,5 37,5 50,0 75,0 50,0 37,5 50,0 25,0 37,5 75,0 37,5 62,5 62,5 37,5 50,0 75,0 37,5 37,5 87,5 62,5 50,0 75,0 37,5 62,5 62,5 62,5 75,0 62,5 75,0 50,0 62,5 1.475,0 1.725,0 2.012,5 49,166 57,5 67,083
Dari pengujian Tabel 4.1 didapatkan rata-rata persentase akord di dalam melodi hasil generate sebesar 49,166% untuk nilai population size sebesar 10, rata-rata persentase 57,5% untuk nilai population size sebesar 100 dan rata-rata persentase 67,083% untuk nilai population size sebesar 1000. Pengujian dilakukan dengan cara yang sama pada parameter yang lain dan didapatkan hasil untuk parameter population size rata-rata persentase akord hasil generate adalah sebesar 49,166% (population size = 10), 57,5% (population size = 100) dan 67,083% (population size = 1000). Dari hasil yang diperoleh dapat kita tarik kesimpulan, semakin tinggi parameter population size maka semakin tinggi pula persentase jumlah akord dalam melodi hasil generate. Untuk parameter chromosome size rata-rata persentase akord hasil generate adalah sebesar 83,33% (chromosome size = 8), 86,042% (chromosome size = 16) dan 87,604% ( chromosome size = 32). Dari hasil yang diperoleh dapat kita tarik kesimpulan, semakin tinggi parameter chromosome size maka semakin tinggi pula persentase jumlah akord dalam melodi hasil generate. Untuk parameter termination generation rata-rata persentase akord hasil generate adalah sebesar 59,583% (termination generation = 10), 85,0% 42
Generator Melodi Berdasarkan Skala dan Akord Menggunakan Algoritma Genetika (Adi Nugroho, Theophilus Erman Wellem, Andi Taru Nugroho NW)
(termination generation = 100) dan 100,0% (termination generation = 1000). Dari hasil yang diperoleh dapat kita tarik kesimpulan, semakin tinggi parameter termination generation maka semakin tinggi pula persentase jumlah akord dalam melodi hasil generate. Untuk parameter tournament size rata-rata persentase akord hasil generate adalah sebesar 13,9% (tournament size = 5), 59,583% (tournament size = 25) dan 59,375% (tournament size = 50). Dari hasil yang diperoleh dapat kita tarik kesimpulan, tournament size tidak mempengaruhi persentase akord secara berbanding lurus. Hasilnya akan selalu berubah tidak menentu. Untuk parameter crossover rate rata-rata persentase akord hasil generate adalah sebesar 60,417% (crossover rate = 10), 60,417% (crossover rate = 50) dan 57,292% (crossover rate = 100). Dari hasil yang diperoleh dapat kita tarik kesimpulan, semakin tinggi parameter crossover rate maka semakin rendah persentase jumlah akord dalam melodi hasil generate. Untuk mutation rate rata-rata persentase akord hasil generate adalah sebesar 60,417% (mutation rate = 10), 85,0% (mutation rate = 100) dan 100,0% (mutation rate = 1000). Dari hasil yang diperoleh dapat kita tarik kesimpulan, semakin tinggi parameter mutation rate maka semakin tinggi pula persentase jumlah akord dalam melodi hasil generate. Untuk perbandingan dengan hasil karya manusia perbandingan dilakukan pada salah satu birama hasil karya manusia, dibandingkan dengan hasil generate sistem diambil 10 kromosom yang mempunyai nilai fitness tertinggi. Selanjutnya akan dibandingkan nada yang sama pada posisi yang sama sehingga didapatkan persentase kesamaannya. Hasil karya manusia diambil dari lagu Through The Fire And Flames (Dragon Force:2007) pada birama ke-244 seperti pada Gambar 4.2. Skala yang dipakai dalam lagu Through The Fire And Flames adalah MINOR, dengan nada dasar C dan Akord Minor.
D# D C D - C G# G G# - C D D# F - G F G G#
Gambar 4.2 Through The Fire And Flames karya Dragon Force, birama 244
Selanjutnya dibandingkan dengan 10 melodi dengan nilai fitness tertinggi dalam sekali generate yang ada pada Gambar 4.3 sampai Gambar 4.12.
Gambar 4.3 Melodi dengan nilai fitness sebesar 2,25
Gambar 4.4 Melodi dengan nilai fitness sebesar 4,0
43
Jurnal Informatika, Vol.5, No.1, Juni 2009: 31 - 46
Gambar 4.5 Melodi dengan nilai fitness sebesar 4,25
Gambar 4.6 Melodi dengan nilai fitness sebesar 6,0
Gambar 4.7 Melodi dengan nilai fitness sebesar 6,25
Gambar 4.8 Melodi dengan nilai fitness sebesar 6,75
Gambar 4.9 Melodi dengan nilai fitness sebesar 7,0
Gambar 4.10 Melodi dengan nilai fitness sebesar 8,75
Gambar 4.11 Melodi dengan nilai fitness sebesar 9,0
Gambar 4.12 Melodi dengan nilai fitness sebesar 9,0
Perbandingan dilakukan dengan cara mengecek nada melodi setiap posisi yang sama. Dihitung nada yang sama pada posisi tersebut kemudian diambil persentase kemiripan, sehingga dapat dibandingkan yang lebih mendekati hasil karya manusia dengan hasil generate sistem seperti pada Tabel 4.2.
Nada Asli D# D C
44
Tabel 4.2 Tabel perbandingan hasil generate melodi Nilai Fitness 2,25 4,0 4,25 6,0 6,25 6,75 7,0 8,75 G C G# G# C D# D# D# C G# D# C D# D# D# C C A# G# D# G# F C C
9,0 C D# A#
9,0 C C D#
Generator Melodi Berdasarkan Skala dan Akord Menggunakan Algoritma Genetika (Adi Nugroho, Theophilus Erman Wellem, Andi Taru Nugroho NW) Nada Asli D C G# G G# C D D# F G F G G# Nada Sama Persentase
2,25 D# D# G# F F E G# D# D# D C C A# 1 6,25
4,0 C A# D C C D# D# A# G A# C C D# 2 12,5
4,25 E A# D# C F D# C C D# D# D# C F 1 6,25
6,0 A# G# C D# D# C C D C C A# D# G# 2 12,5
Nilai Fitness 6,25 6,75 F D# D# C D# C C G# C G# G G D# C A# D# C F D# G D# D# G# C C D# 5 2 31,25 12,5
7,0 C D# D# D# C G C D# C C D# C C 1 6,25
8,75 D# D# C D C D# G C C G C D# D# 1 6,25
9,0 G G D# D# D# C C D# D# C A# D# D 1 6,25
9,0 C C C C C G# C D# D# C C D# G# 2 12,5
Dari hasil Tabel 4.2 dapat kita ketahui persentase kemiripan antara hasil karya manusia dengan hasil generate melodi. Untuk melodi yang paling mendekati hasil karya manusia dalam perbandingan ini adalah melodi dengan nilai fitness sebesar 6,25 yang mempunyai persentase kemiripan sebesar 31,25%. Jika dibandingkan dengan kromosom dengan nilai fitness tertinggi sebesar 9,0 hanya mempunyai persentase kemiripan sebesar 12,5% dan 6,25%. 5.
Kesimpulan Representasi kromosom yang dapat digunakan adalah representasi kromosom berdasarkan skema descrete decimal encoding. Setiap gen menggunakan bilangan bulat dimana setiap bilangan merupakan representasi dari setiap nada. Pada kenyataannya penggunaan bilangan bulat akan mempermudah proses transpose nada dan perhitungan jarak antar nada. Seperti pada Tabel 5.1 semua nada dikonversi menjadi bilangan bulat dari 0 sampai 23. Tabel 5.1 Tabel Encoding Gen Kromosom C C# D D# E F F# G G# A A# B 0
1
2
3
4
5
6
7
8
9 10 11
12 13 14 15 16 17 18 19 20 21 22 23
Dari hasil pengujian pengaruh parameter-parameter algoritma genetika terhadap melodi yang dihasilkan, semakin tinggi parameter population size (1000), maka semakin tinggi pula persentase rumus akord yang ada pada melodi hasil generate sistem (67,083%). Semakin tinggi parameter chromosome size (32 gen), maka semakin tinggi pula persentase rumus akord yang ada pada melodi hasil generate sistem (87,604%). Semakin tinggi parameter termination generation (1000), maka semakin tinggi pula persentase rumus akord yang ada pada melodi hasil generate sistem (100%).
45
Jurnal Informatika, Vol.5, No.1, Juni 2009: 31 - 46
Perubahan parameter tournament size tidak berbanding lurus ataupun terbalik terhadap persentase rumus akord. Hasil pengujian menunjukkan nilai presentase yang berubah-ubah tidak menentu terhadap nilai input tournament size yang berbeda-beda. Semakin tinggi nilai crossover rate (100) maka semakin rendah persentase rumus akord yang ada pada hasil generate. Kesimpulannya adalah nilai crossover rate berbanding terbalik terhadap persentase jumlah akord melodi yang dihasilkan (57,292%). Semakin tinggi parameter mutation rate (1000), maka semakin tinggi pula persentase rumus akord yang ada pada melodi hasil generate sistem (100%). Berdasarkan perbandingan terhadap hasil karya manusia, hasil generate melodi dengan nilai fitness tertinggi (nilai fitness = 9,0) belum tentu mempunyai persentase kemiripan yang tertinggi pula (12,5%). Terkadang hasil generate dengan nilai fitness yang lebih rendah (nilai fitness = 6,25) mempunyai persentase kemiripan yang lebih besar (31,25%).
Daftar Pustaka [Arh06] [Ari05] [Ari06] [Hen08] [Man05] [Nic07] [Pan07] [Suy05]
46
Arhami, Muhammad, & Desiani, Anita, 2006, Konsep Kecerdasan Buatan, Yogyakarta: ANDI OFFSET. Arisasangka, Inung, 2005, Kamus Skala Melodi, Yogyakarta: Bhuana Ilmu Populer. Arisasangka, Inung, 2006, 92 Skala dan Mode Melodi, Yogyakarta: Bhuana Ilmu Populer. Hendro, 2008, Teknik Penggunaan Jembatan Akord pada Gitar, Jakarta: Kawan Pustaka. Manongga, Danny, 2005, Pengantar Algoritma Genetik, Salatiga: Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana. Nickol, Peter, 2007, Panduan Praktis Membaca Notasi Musik, Jakarta: Gramedia Pustaka Utama. Pandjaitan, Lanny, 2007, Dasar-dasar Komputasi Cerdas, Yogyakarta: ANDI OFFSET. Suyanto, 2005, Algoritma Genetika dalam Matlab, Yogyakarta: ANDI OFFSET