Generator Melodi Berdasarkan Skala dan Akord

advertisement
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
Download