Aplikasi
Rekomendasi Transpose Lagu Berdasarkan Vocal Range
Menggunakan Algoritma Genetika
Berbasis Android
Skripsi
Oleh
Faisal Rifqi
NIM: 11150910000025
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI
SYARIF HIDAYATULLAH
JAKARTA
2019 M / 1441 H
Aplikasi
Rekomendasi Transpose Lagu Berdasarkan Vocal Range
Menggunakan Algoritma Genetika
Berbasis Android
Skripsi
Diajukan sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer (S.Kom)
Oleh
Faisal Rifqi
NIM: 11150910000025
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI
SYARIF HIDAYATULLAH
JAKARTA
2019 M / 1441 H
ii
LEMBAR PERSETUJUAN
APLIKASI REKOMENDASI TRANSPOSE LAGU
BERDASARKAN VOCAL RANGE
MENGGUNAKAN ALGORITMA GENETIKA
BERBASIS ANDROID
Skripsi
Sebagai Salah Satu Syarat untuk
Memperoleh Gelar Sarjana Komputer (S.Kom)
Oleh:
Faisal Rifqi
11150910000025
Menyetujui,
Pembimbing I
Hendra Bayu Suseno, M.Kom
NIP. 198212112009121003
Pembimbing II
Anif Hanifa Setianingrum, M.Si
NIDN. 0410116402
Mengetahui,
Ketua Program Studi Teknik Informatika
Dr.Imam Marzuki Shofi, M.T
NIP. 197202052008011010
iii
PENGESAHAN UJIAN
Skripsi berjudul “Aplikasi Rekomendasi Transpose Lagu Berdasarkan Vocal Range
Menggunakan Algoritma Genetika Berbasis Android” yang ditulis oleh Faisal
Rifqi, NIM 11150910000025 telah diuji dan dinyatakan lulus dalam sidang
munaqasyah Fakultas Sains dan Teknologi, UIN Syarif Hidayatullah Jakarta pada
hari ………………….. Skripsi ini telah diterima sebagai salah satu syarat untuk
memperoleh gelar Sarjana Komputer (S.Kom) pada Program Studi Teknik
Informatika.
Jakarta, ……………..
Tim Penguji
Penguji I
Rizal Broer Bahaweres, M.Kom
NIP. 197108062014111001
Penguji II
Arini, S.T., M.T.
NIP. 197601312009012001
Tim Pembimbing
Pembimbing I
Hendra Bayu Suseno, M.Kom
NIP. 198212112009121003
Pembimbing II
Anif Hanifa Setianingrum, M.Si
NIDN. 0410116402
Mengetahui,
Dekan Fakultas Sains dan Teknologi
Prof. Dr, Lily Suraya Eka Putri, M.Env.Stud
NIP. 196904042005012005
Ketua Program Studi Teknik Informatika
Dr.Imam Marzuki Shofi, M.T.
NIP. 197202052008011010
iv
PERNYATAAN ORISINALITAS
Dengan ini saya menyatakan bahwa:
1. Skripsi ini merupakan hasil karya asli saya yang diajukan untuk memenuhi salah
satu persyaratan memperoleh gelar strata 1 di UIN Syarif Hidayatullah Jakarta.
2. Semua sumber yang saya gunakan dalam penulisan ini telah saya cantumkan
sesuai dengan ketentuan yang berlaku di UIN Syarif Hidayatullah Jakarta.
3. Jika di kemudian hari terbukti bahwa karya ini bukan hasil karya asli saya atau
merupakan hasil jiplakan dari karya orang lain, maka saya bersedia menerima
sanksi yang berlaku di UIN Syarif Hidayatullah Jakarta
Jakarta, ……………
Penulis
v
PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI
Sebagai civitas akademik UIN Syarif Hidayatullah Jakarta, saya yang bertanda tangan
dibawah ini:
Nama : Faisal Rifqi
NIM : 11150910000025
Program Studi : Teknik Informatika
Fakultas : Sains dan Teknologi
Jenis Karya : Skripsi
demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas
Islam Negeri Syarif Hidayatullah Jakarta Hak Bebas Royalti Noneksklusif (Non-exclusive
Royalty Free Right) atas karya ilmiah saya yang berjudul:
APLIKASI REKOMENDASI TRANSPOSE LAGU BERDASARKAN VOCAL
RANGE MENGGUNAKAN ALGORITMA GENETIKA BERBASIS ANDROID
Dengan Hak Bebas Royalti Non-eksklusif ini Universitas Islam Negeri Syarif Hidayatullah
Jakarta berhak menyimpan, mengalih media/formatkan, mengelola dalam bentuk
pangkalan data (database), merawat dan mempublikasikan tugas akhir saya selama tetap
mencantumkan nama saya sebagai penulis/pencipta dan sebagai pemilik Hak.
Demikian pernyataan ini saya buat dengan sebenarnya.
Dibuat di : Jakarta
Pada tanggal : 2019
Yang menyatakan
(Faisal Rifqi)
vi
Penulis : Faisal Rifqi
NIM : 11150910000025
Program Studi : Teknik Informatika
Judul : APLIKASI REKOMENDASI TRANSPOSE LAGU BERDASARKAN
VOCAL RANGE MENGGUNANKAN ALGORITMA GENETIKA
BERBASIS ANDROID
ABSTRAK
Bernyanyi merupakan hobi dan salah satu cara mengekspresikan diri bagi banyak
orang. Bernyanyi dikatakan bagus setidaknya apabila vokal tidak fals dan sesuai
dengan notasi lagu. Namun tidak semua orang memiliki vocal range sesuai dengan
semua lagu. Ketika vocal range seorang penyanyi dan range nada lagu berbeda,
perlu dilakukan transpose atau memindahkan kunci dasar lagu sesuai dengan
kemampuan penyanyi. Saat ini bagi penyanyi pemula dalam menentukkan
transpose lagu dilakukan dengan metode menerka-nerka, yangmana bisa jadi hasil
terka tersebut tidak optimal. Pada penelitian ini dengan menggunakan algoritma
genetika mengembangkan aplikasi sebagai sebuah alternatif dalam menentukkan
transpose lagu agar lebih matematis dan optimal. Pada penelitian ini aplikasi
berhasil dibuat dan layak untuk dijadikan alternatif daripada metode menerka-nerka
dengan menghasilkan tingkat keakuratan 75%. Untuk pengembangan berikutnya
bisa menggunakan variasi parameter algoritma genetika atau algoritma HPS dan
algoritma ant colony.
Kata Kunci : Aplikasi, Musik, Transpose, Algoritma Genetika, Vocal Range,
Android
Daftar Pustaka : 20 buku, 13 jurnal, dan 2 website
Jumlah Halaman : 131 halaman + xv halaman
vii
KATA PENGANTAR
Bismillahirrahmaanirrahiim….
Assalamu’alaikum Wr. Wb.
Alhamdulillahirabbilaalamiin, puji syukur senantiasa dipanjatkan kehadirat
Allah Subhanahuwata’ala yang telah melimpahkan rahmat, hidayah serta nikmat-
Nya sehingga penyusunan skripsi ini dapat diselesaikan. Sholawat serta salam
senantiasa dihaturkan kepada junjungan kita baginda Nabi Muhammad Shalallahu
‘Alaihi Wassalam beserta keluarganya, para sahabatnya dan umatnya hingga akhir
zaman.
Penulisan dan penyusunan skripsi dengan judul APLIKASI
REKOMENDASI TRANSPOSE LAGU BERDASARKAN VOCAL RANGE
MENGGUNAKAN ALGORITMA GENETIKA BERBASIS ANDROID
merupakan salah satu syarat untuk memperoleh gelar Sarjana Komputer (S.Kom)
pada program studi Teknik Informatika, Fakultas Sains dan Teknologi, Universitas
Islam Negeri Syarif Hidayatullah Jakarta.
Dalam penyusunan skripsi ini, telah banyak bimbingan dan bantuan yang
penulis dapatkan dari berbagai pihak sehingga skripsi ini dapat berjalan dengan
lancar. Oleh karena itu, penulis ingin mengucapkan banyak terima kasih kepada:
1. Prof. Dr, Lily Suraya Eka Putri, M.Env.Stud selaku dekan Fakultas Sains
dan Teknologi.
2. Dr. Imam Marzuki Shofi, MT selaku Ketua Program Studi Teknik
Informatika.
3. Pak Hendra Bayu Suseno, M.Kom. dan Bu Anif Hanifa Setianingrum, M.Si.
selaku dosen pembimbing yang senantiasa meluangkan waktu, memberikan
bimbingan, bantuan, semangat dan motivasi dalam menyelesaikan skripsi
ini.
viii
4. Keluraga tercinta, Almarhum Ayah, Ibu, Kakak dan adik-adik yang tidak
henti-hentinya mendoakan, mencurahkan kasih sayang serta memberikan
motivasi dan dukungan baik moril maupun materi selama ini.
5. Siti Rahma, wanita yang selalu mengingatkan akan tujuan dan telah
memberikan semangat kepada penulis selama kurang lebih 6 tahun terakhir.
6. Kak Delly dan Kak Vita, selaku narasumber ahli yang telah menyediakan
waktunya dan memberikan informasi untuk mendukung skripsi ini.
7. Sahabat-sahabat penulis, Shofan Amiruddin, Mahfudz Nurzamzami,
Muhammad Daffa Fikri, Muhammad Rifky dan teman-teman jurusan
Teknik Informatika UIN Jakarta angkatan 2015 yang tidak bisa disebut satu
per satu namanya, terima kasih atas motivasi, ilmu dan bantuannya selama
perkuliahan.
8. Teman-teman sekontrakan, Luthfi Alif, Abdul Yamin, Ahmad Rifki,
Fahrijal Haris, Fransyudha Abandhika, Zaenal Abidin, Ahmad Akbar Azter,
dan Ahmad Maulana Fazri yang telah menemani perjuangan tinggal
bersama di kontrakan dan memberi ilmu-ilmu yang bermanfaat.
9. Seluruh pihak yang tidak dapat disebutkan satu persatu yang secara
langsung maupun tidak langsung telah membantu dalam menyelesaikan
skripsi ini.
Penulisan skripsi ini masih jauh dari kata sempurna. Untuk itu, sangat
diperlukan kritik dan saran yang membangun bagi penulis. Akhir kata, semoga
kebaikan semua pihak yang membantu dibalas oleh Allah Subhanahuwata’ala dan
semoga skripsi ini dapat bermanfaat bagi penulis dan orang lain.
Wassalamu’alaikum, Wr. Wb.
Jakarta, ……………
Penulis
ix
DAFTAR ISI
LEMBAR PERSETUJUAN ........................................................................................................... ii
PENGESAHAN UJIAN .................................................................................................................iii
PERNYATAAN ORISINALITAS ................................................................................................ iv
PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI ......................................................... v
ABSTRAK ...................................................................................................................................... vi
KATA PENGANTAR ................................................................................................................... vii
DAFTAR ISI ................................................................................................................................... ix
DAFTAR GAMBAR ....................................................................................................................xiii
DAFTAR TABEL.......................................................................................................................... xv
BAB 1 PENDAHULUAN................................................................................................................ 1
1.1. Latar Belakang .................................................................................................... 1
1.2. Rumusan Masalah ............................................................................................... 5
1.3. Batasan Masalah ................................................................................................. 5
1.3.1. Metode ........................................................................................................ 5
1.3.2. Proses .......................................................................................................... 5
1.3.3. Tools ............................................................................................................ 6
1.4. Tujuan ................................................................................................................. 6
1.5. Manfaat ............................................................................................................... 6
1.6. Metodologi Penelitian ......................................................................................... 6
1.6.1. Metode Pengumpulan Data ......................................................................... 7
1.6.2. Metode Pengembangan Sistem ................................................................... 7
1.7. Sistematika Penulisan ......................................................................................... 7
BAB 2 LANDASAN TEORI ........................................................................................................... 9
2.1. Aplikasi ............................................................................................................... 9
2.2. Nada dan Transpose ............................................................................................ 9
2.3. Vocal Range ...................................................................................................... 10
2.4. Algoritma Genetika ........................................................................................... 12
2.4.1. Komponen-komponen Algoritma Genetika .............................................. 14
2.4.1.1. Skema Pengkodean ........................................................................... 14
2.4.1.2. Nilai Fitness ...................................................................................... 14
x
2.4.1.3. Seleksi ............................................................................................... 15
2.4.1.4. Crossover .......................................................................................... 15
2.4.1.5. Mutasi ............................................................................................... 17
2.4.1.6. Syarat Berhenti .................................................................................. 19
2.4.2. Variasi Algoritma Genetika ...................................................................... 19
2.5. Android ............................................................................................................. 19
2.5.1. Android SDK (Software Development Kit) ............................................... 22
2.6. SQLite ............................................................................................................... 22
2.7. Flowchart .......................................................................................................... 24
2.8. UML (Unified Modelling Language) ................................................................ 26
2.8.1. Use Case ................................................................................................... 26
2.8.2. Activity Diagram ....................................................................................... 28
2.8.3. Class Diagram .......................................................................................... 29
2.8.4. Sequence Diagram .................................................................................... 30
2.9. Model Waterfall ................................................................................................ 32
2.9.1. Requirement Analysis ................................................................................ 33
2.9.2. Design ....................................................................................................... 33
2.9.3. Coding ....................................................................................................... 33
2.9.4. Testing ....................................................................................................... 33
2.9.5. Maintenance .............................................................................................. 33
2.10. Metode Pengumpulan Data ........................................................................... 34
2.10.1. Wawancara ................................................................................................ 34
2.10.2. Kuesioner .................................................................................................. 35
2.10.3. Sampling ................................................................................................... 35
2.11. TarsosDSP Library ....................................................................................... 36
2.12. Black Box Testing.......................................................................................... 36
BAB 3 METODE PENELITIAN ................................................................................................. 37
3.1. Metode Pengumpulan Data ............................................................................... 37
3.1.1. Studi Pustaka ............................................................................................. 37
3.1.2. Wawancara Ahli ........................................................................................ 37
3.1.3. Kuesioner .................................................................................................. 38
3.1.4. Studi Literatur ........................................................................................... 38
3.2. Metode Pengembangan Sistem ......................................................................... 41
xi
3.2.1. Requirement Analysis ................................................................................ 42
3.2.2. Design ....................................................................................................... 42
3.2.3. Coding ....................................................................................................... 42
3.2.4. Testing ....................................................................................................... 42
3.2.5. Maintenance .............................................................................................. 43
3.3. Kerangka Berpikir ............................................................................................. 44
BAB 4 PENGEMBANGAN SISTEM .......................................................................................... 45
4.1. Requirement Analysis ........................................................................................ 45
4.1.1. Identifikasi Masalah .................................................................................. 45
4.1.2. Analisa Kebutuhan Sistem ........................................................................ 46
4.2. Design ............................................................................................................... 48
4.2.1. Desain Algoritma ...................................................................................... 48
4.2.1.1. Pemetaan Nada .................................................................................. 49
4.2.1.2. Deteksi Vocal Range ......................................................................... 53
4.2.1.3. Algoritma Genetika ........................................................................... 54
4.2.2. Desain UML .............................................................................................. 67
4.2.2.1. Desain Use Case ............................................................................... 68
4.2.2.2. Desain Activity Diagram ................................................................... 69
4.2.2.3. Desain Class Diagram ...................................................................... 72
4.2.2.4. Desain Sequence Diagram ................................................................ 73
4.2.3. Desain Database ....................................................................................... 74
4.2.4. Desain User Interface ............................................................................... 76
4.3. Coding ............................................................................................................... 79
4.3.1. Class MainActivity .................................................................................... 80
4.3.2. Class Nada ................................................................................................ 81
4.3.3. Class DataHelper ...................................................................................... 83
4.3.4. Class Menu Pilih Lagu .............................................................................. 84
4.3.5. Class Algogen ........................................................................................... 84
4.3.5.1. Generasi Pertama .............................................................................. 87
4.3.5.2. Hitung Nilai Fungsi Obyektif........................................................... 88
4.3.5.3. Hitung Nilai Fitness .......................................................................... 90
4.3.5.4. Seleksi ............................................................................................... 92
4.3.5.5. Crossover .......................................................................................... 92
xii
4.3.5.6. Mutasi ............................................................................................... 95
4.3.5.7. Regenerasi ......................................................................................... 98
4.3.6. Class Hasil .............................................................................................. 101
4.4. Testing ............................................................................................................. 102
4.4.1. Pengujian Black Box ............................................................................... 103
BAB 5 HASIL DAN PEMBAHASAN ....................................................................................... 105
5.1.1. Hasil Aplikasi .......................................................................................... 105
5.1.2. Pembahasan Hasil ................................................................................... 106
BAB 6 KESIMPULAN DAN SARAN ....................................................................................... 120
6.1. Kesimpulan ................................................................................................. 120
6.2. Saran ........................................................................................................... 120
DAFTAR PUSTAKA .................................................................................................................. 122
DAFTAR LAMPIRAN ............................................................................................................... 125
Lampiran 1 Wawancara Ahli ............................................................................ 125
Lampiran 2 Wawancara Pengujian ................................................................... 130
xiii
DAFTAR GAMBAR
Gambar 1.1 Hasil Kuesioner 1 .......................................................................................................... 2 Gambar 1.2 Hasil Kuesioner 2 .......................................................................................................... 2 Gambar 1.3 Hasil Kuesioner 3 .......................................................................................................... 3 Gambar 1.4 Statistik Penggunaan Operating System ........................................................................ 4 Gambar 2.1 Alur Algoritma Genetika ............................................................................................. 13 Gambar 2.2 Contoh Crossover Satu Titik ....................................................................................... 16 Gambar 2.3 Contoh Crossover Banyak Titik .................................................................................. 16 Gambar 2.4 Contoh Crossover Pola Seragam ................................................................................. 17 Gambar 2.5 Contoh Mutasi Tingkat Kromosom ............................................................................. 18 Gambar 2.6 Contoh Mutasi Pada Tingkat Gen ............................................................................... 18 Gambar 2.7 Contoh Mutasi Hanya Pada Satu Bit ........................................................................... 18 Gambar 2.8 Tahapan Model Waterfall ............................................................................................ 32 Gambar 3.1 Kerangka Berpikir ....................................................................................................... 44 Gambar 4.1 Ilustrasi Metode Transpose Saat Ini ............................................................................ 45 Gambar 4.2 Ilustrasi Sistem Usulan ................................................................................................ 46 Gambar 4.3 Flowchart Aplikasi Solusi ........................................................................................... 49 Gambar 4.4 Flowchart Algoritma Genetika Solusi ......................................................................... 55 Gambar 4.5 Acuan Titik Potong...................................................................................................... 61 Gambar 4.6 Contoh Proses Crossover ............................................................................................ 62 Gambar 4.7 Use Case Diagram Aplikasi ........................................................................................ 68 Gambar 4.8 Activity Diagram Aplikasi ........................................................................................... 69 Gambar 4.9 Activity Diagram Deteksi Vocal Range ....................................................................... 70 Gambar 4.10 Activity Diagram Memilih Lagu ................................................................................ 71 Gambar 4.11 Activity Diagram Lihat Rekomendasi ....................................................................... 72 Gambar 4.12 Class Diagram Apliaksi ............................................................................................ 73 Gambar 4.13 Sequence Diagram Aplikasi ...................................................................................... 74 Gambar 4.14 Tampilan Instruksi ..................................................................................................... 76 Gambar 4.15 Tampilan Utama ........................................................................................................ 77 Gambar 4.16 Tampilan Pilih Lagu .................................................................................................. 78 Gambar 4.17 Tampilan Hasil .......................................................................................................... 78 Gambar 4.18 Ilustrasi Contoh Kasus ............................................................................................... 85 Gambar 4.19 Crossover Contoh ...................................................................................................... 94 Gambar 4.20 Contoh Proses Mutasi ................................................................................................ 98 Gambar 4.21 Contoh Proses Mutasi Child2 .................................................................................... 98 Gambar 4.22 Contoh Proses Mutasi Child3 .................................................................................... 98 Gambar 4.23 Contoh Proses Mutasi Child4 .................................................................................... 98 Gambar 4.24 Ilustrasi Setelah Transpose ...................................................................................... 102 Gambar 5.1 Kondisi Kasus Lagu Afgan Sebelum Transpose ....................................................... 107 Gambar 5.2 Kondisi Kasus Lagu Afgan Setelah Transpose ......................................................... 107 Gambar 5.3Grafik Nada Kasus Lagu Afgan ................................................................................. 108 Gambar 5.4 Kondisi Kasus Lagu Judika Sebelum Transpose ....................................................... 109 Gambar 5.5 Kondisi Kasus Lagu Judika Seteleah Transpose ....................................................... 109 Gambar 5.6 Grafik Nada Kasus Lagu Judika ................................................................................ 110 Gambar 5.7 Kondisi Kasus Lagu Ruth Sahanaya Sebelum Transpose ......................................... 111 Gambar 5.8 Kondisi Kasus Lagu Ruth Sahanaya Setelah Transpose ........................................... 112 Gambar 5.9 Grafik Nada Kasus Lagu Ruth Sahanaya .................................................................. 113
xiv
Gambar 5.10 Kondisi Kasus Lagu Agnes Sebelum Transpose ..................................................... 113 Gambar 5.11 Notifikasi Vocal Range ............................................................................................ 114 Gambar 5.12 Kondisi Kasus Lagu Agnes Setelah Transpose Aplikasi ......................................... 115 Gambar 5.13 Kondisi Kasus Lagu Agnes Setelah Transpose Ahli ............................................... 115 Gambar 5.14 Grafik Nada Kasus Lagu Agnes .............................................................................. 117
xv
DAFTAR TABEL
Tabel 2.1 Frekuensi Tangga Nada Kromatik .................................................................................. 10 Tabel 2.2 Klasifikasi Jenis Suara .................................................................................................... 11 Tabel 2.3 Versi Android .................................................................................................................. 20 Tabel 2.4 Simbol Flowchart ............................................................................................................ 24 Tabel 2.5 Contoh Penulisan Use Case ............................................................................................ 26 Tabel 2.6 Notasi Use Case .............................................................................................................. 27 Tabel 2.7 Notasi Activity Diagram .................................................................................................. 28 Tabel 2.8 Notasi Class Diagram ..................................................................................................... 30 Tabel 2.9 Notasi Sequence Diagram ............................................................................................... 31 Tabel 3.1 Studi Literatur ................................................................................................................. 39 Tabel 4.1 Pemetaan Frekuensi Nada ............................................................................................... 52 Tabel 4.2 Representasi Angka Nada ............................................................................................... 53 Tabel 4.3 Ilustrasi Kromosom ......................................................................................................... 56 Tabel 4.4 Contoh Pembangkitan Generasi Pertama ........................................................................ 57 Tabel 4.5 Contoh Data Untuk Seleksi ............................................................................................. 60 Tabel 4.6 Contoh Acak Angka Crossover ....................................................................................... 61 Tabel 4.7 Hasil Crossover ............................................................................................................... 62 Tabel 4.8 Contoh Proses Mutasi Child1 .......................................................................................... 63 Tabel 4.9 Contoh Proses Mutasi Child2 .......................................................................................... 64 Tabel 4.10 Contoh Proses Mutasi Child3 ........................................................................................ 64 Tabel 4.11 Contoh Proses Mutasi Child4 ........................................................................................ 65 Tabel 4.12 Hasil Proses Mutasi ....................................................................................................... 65 Tabel 4.13 Contoh Proses Regenerasi ............................................................................................. 66 Tabel 4.14 Contoh Hasil Regenerasi ............................................................................................... 67 Tabel 4.15 Use Case-1 .................................................................................................................... 68 Tabel 4.16 Use Case-2 .................................................................................................................... 68 Tabel 4.17 Use Case-3 .................................................................................................................... 69 Tabel 4.18 Desain Tabel Database Lagu ........................................................................................ 75 Tabel 4.19 Tabel Database Lagu .................................................................................................... 84 Tabel 4.20 Generasi Pertama Contoh .............................................................................................. 88 Tabel 4.21 Nilai Fungsi Obyektif Contoh ....................................................................................... 90 Tabel 4.22 Fitness Generasi Pertama Contoh ................................................................................. 91 Tabel 4.23 Probabilitas Crossover Contoh ...................................................................................... 93 Tabel 4.24 Hasil Persilangan Contoh .............................................................................................. 94 Tabel 4.25 Probabilitas Mutasi Child1 Contoh ............................................................................... 96 Tabel 4.26 Probabilitas Mutasi Child2 Contoh .............................................................................. 96 Tabel 4.27 Probabilitas Mutasi Child3 Contoh .............................................................................. 97 Tabel 4.28 Probabilitas Mutasi Child4 Contoh .............................................................................. 97 Tabel 4.29 Hasil Proses Mutasi Contoh .......................................................................................... 98 Tabel 4.30 Proses Perbandingan Untuk Regenerasi ........................................................................ 99 Tabel 4.31 Hasil Regenerasi Contoh ............................................................................................. 100 Tabel 4.32 Hasil Pengujian ........................................................................................................... 103 Tabel 5.1 Hasil Aplikasi ................................................................................................................ 106
1
BAB 1
1. PENDAHULUAN
1.1. Latar Belakang
Bernyanyi merupakan serangkaian kegiatan untuk mengungkapkan ekspresi
lewat melodi dalam nyanyian. Melalui bernyanyi manusia dapat mengekpresikan
seluruh perasaan jiwa, seperti sedih, senang, benci, marah, kecewa, cinta atau
perasaan lainnya yang berhubungan dengan naluri hati sehingga terciptalah suatu
karya musik baik berupa nyanyian.(Sinaga, 2018)
Salah satu faktor yang mempengaruhi bagus tidaknya seseorang bernyanyi
adalah tidak fals atau sesuai dengan nada musik dari lagu tersebut. Dan terkadang
timbul permasalahan yaitu lagu yang dipilih tidak sesuai dengan jenis suara
penyanyi tersebut, sehingga penyanyi menyanyi dengan nada terlalu tinggi atau
terlalu rendah dari nada yang seharusnya sehingga menimbulkan suara
fals.(Ahmadiyah, Sunaryono, & Ramadhan, 2017)
Melakukan transpose akan sangat membantu, penyanyi seringkali perlu
untuk mengubah kunci dasar lagu dengan range nada yang nyaman dikarenakan
laki-laki dan perempuan memiliki vocal range yang berbeda.(Day, Kovarsky,
Neely, Pearl, & Pilhofer, 2014)
Berdasarkan hasil wawancara dengan ahli, metode dalam menentukan ke
mana harus transpose lagu bagi penyanyi pemula saat ini adalah mencoba-coba atau
menerka-nerka. Metode menerka-nerka ini dilakukan dengan menurunkan satu
demi satu nada dari nada tertinggi penyanyi sampai nada yang nyaman bagi
penyanyi. Bahkan ada penyanyi pemula yang tidak melakukan transpose dan
memaksa bernyanyi yangmana dapat menciderai pita suara. Hal ini didukung oleh
hasil kuesioner pada Gambar 1.1 yang menunjukkan bahwa sebanyak 55% penyanyi
pemula melakukan transpose dengan metode menerka-nerka.
2
UIN Syarif Hidayatullah Jakarta
Gambar 1.1 Hasil Kuesioner 1
Dari semua yang melakukan transpose sebanyak 62,5% masih ragu bahwa
hasil transpose yang mereka lakukan sudah optimal, sebagaimana pada Gambar 1.2.
Gambar 1.2 Hasil Kuesioner 2
Oleh karena itu dibutuhkan alternatif daripada metode menerka-nerka
tersebut. Hasil kuesioner menunjukkan bahwa 100% setuju dan membutuhkan
sebuah aplikasi yang dapat membantu dalam transpose lagu.
3
UIN Syarif Hidayatullah Jakarta
Gambar 1.3 Hasil Kuesioner 3
Dengan telah berkembangnya teknologi saat ini sudah memungkinkan bagi
komputer untuk mendeteksi vocal range, dan pencarian titik optimal sebagaimana
penelitian-penelitian terdahulu. Penelitian berjudul “Sistem Rekomendasi Lagu
Berdasarkan Jenis Suara Penyanyi Pada Aplikasi Karaoke” yang dilakukan oleh
Ahmadiyah (2017) telah berhasil melakukan deteksi vocal range lalu memberikan
rekomendasi kepada user lagu yang cocok sesuai vocal range-nya dengan tingkat
akurasi deteksinya sebesar 70%. Sedangkan dalam penelitian “Aransemen Nada
Alto, Tenor, dan Bass Menggunakan Algoritma Genetika” oleh Setiawan, Swastika,
Leona, & Kelana, (2018) telah berhasil mendesain aransemen suara dengan
4
UIN Syarif Hidayatullah Jakarta
menerapkan algoritma genetika untuk melakukan pencarian nada-nada yang tepat
untuk aransemen suara.
Algoritma genetika berkemampuan memperoleh solusi yang memenuhi
syarat dari kombinasi yang ada, tanpa harus mencoba keseluruhan kemungkinan
solusi (Mustafa, Djamal, & Yuniarti, 2017). Serupa dengan metode transpose lagu
saat ini yaitu menerka-nerka, atau dengan kata lain mencoba kombinasi yang ada.
Algoritma genetika juga menggunakan nilai fitness atau nilai optimum yang berarti
mesikpun vocal range penyanyi tidak lebar maka seharusnya tetap dapat
memberikan saran transpose yang paling mendekati kemampuan penyanyi.
Gambar 1.4 Statistik Penggunaan Operating System
(Sumber: StatCounter GlobalStats)
Berdasarkan data statistik pada Gambar 1.4 dapat dilihat bahwa saat ini
android adalah gadget yang paling banyak digunakan di Indonesia. Android
memiliki keunggulan yaitu lengkap, open-source, dan bebas menurut Safaat H.,
(2015). Android juga dapat menjalankan algoritma genetika sebagaimana dalam
penelitian yang dilakukan oleh Ridha & Harafani (2019) berjudul “Implementasi
Algoritma Genetika Pada Perancangan Aplikasi Android Untuk Memprediksi Buta
5
UIN Syarif Hidayatullah Jakarta
Warna” dengan hasil algoritma genetika berhasil memberikan prediksi yang lebih
optimal.
Berdasarkan uraian di atas, maka penulis ingin mengangkat judul penelitian
“Aplikasi Rekomendasi Transpose Lagu Berdasarkan Vocal Range
Menggunakan Algoritma Genetika Berbasis Android”.
1.2. Rumusan Masalah
Berdasarkan permasalahan yang ada, maka dapat dirumuskan masalah
“Bagaimana membuat aplikasi rekomendasi transpose lagu berdasarkan vocal
range menggunakan algoritma genetika berbasis android?”
1.3. Batasan Masalah
Penulis membatasi masalah yang akan dibahas dalam penelitian ini menjadi
tiga batasan, yaitu batasan metode, batasan proses, dan batasan tools.
1.3.1. Metode
Studi pustaka, wawancara ahli, dan kuesioner adalah metode
pengumpulan data yang digunakan penulis dalam pengumpulan data
penelitian ini. Metode pengembangan sistem yang diterapkan pada
penelitian ini adalah Waterfall.
1.3.2. Proses
Batasan proses dalam penelitian ini meliputi:
a. Menggunakan mikrofon pada ponsel android sebagai alat
input.
b. Menggunakan algoritma genetika dalam pencarian nada
optimal dengan parameter 8 individu untuk 1 generasi, 6 gen
untuk 1 kromosom, syarat berhenti 20 perulangan, seleksi
secara elitis 2 pasangan parent, crossover 1 titik dengan
probabilitas 0,8, mutasi tingkat gen dengan probabilitas
mutasi sebesar 0,167, dan regenerasi steady-state.
c. Menggunakan tangga nada kromatik.
6
UIN Syarif Hidayatullah Jakarta
d. Penulisan kunci dasar tidak melibatkan tangga nada mayor,
minor, atau yang lainnya.
e. Penentuan interval nada menggunakan 50 cents.
f. Memetakan nada dengan range nada G#1 sampai B6.
g. Mengeluarkan output berupa saran kunci transpose lagu dan
berapa besar perpindahan nada dari nada asli lagu.
1.3.3. Tools
Alat atau Tools yang digunakan pada penelitian ini dibatasi sebagai
berikut:
a. Lenovo Moto E3 Power Berbasis Android versi 6.0
“Marshmallow”.
b. Menggunakan library TarsosDSP.
c. Menggunakan Android Studio sebagai IDE.
1.4. Tujuan
Penelitian ini bertujuan untuk mengetahui bagaimana membuat aplikasi
rekomendasi transpose lagu berdasarkan vocal range menggunakan algoritma
genetika sehingga adanya alternatif ketika ingin transpose sebuah lagu daripada
menggunakan metode menerka-nerka.
1.5. Manfaat
Penulis berharap penelitian ini memberi manfaat secara umum berupa
menambah ilmu bagi pembaca dan ilmu yang terdapat dalam penelitian ini bisa
diterapkan untuk mengatasi masalah serupa, khususnya bagi masyarakat akademika
dapat menjadikan penelitian ini sebagai acuan, referensi, inspirasi untuk penelitian
berikutnya.
1.6. Metodologi Penelitian
Penelitian ini memiliki dua metode, yaitu metode pengumpulan data dan
metode pengembangan sistem.
7
UIN Syarif Hidayatullah Jakarta
1.6.1. Metode Pengumpulan Data
Dalam proses penulisan penelitian ini, metode pengumpulan data
yang digunakan yaitu studi pustaka, wawancara ahli, dan kuesioner.
1.6.2. Metode Pengembangan Sistem
Penelitian ini menggunakan metode pengembangan sistem model
waterfall. Model ini dimulai dengan tahap requirement analysis, design,
testing, dan maintenance. Tahapan pada model ini dibuat sedemikian rupa
sehingga tidak ada tahapan yang dieksekusi ulang jika sudah dilewati.
Model ini cocok untuk projek yang memiliki requirement yang sudah jelas
di awal projek.(Dhami, 2016)
1.7. Sistematika Penulisan
Dalam penulisan skripsi ini, penulis membagi enam bab sebagai berikut
BAB 1 PENDAHULUAN
Pada bab ini dijelaskan mengenai latar belakang, tujuan
penelitian, manfaat penelitian, rumusan masalah, batasan
masalah, dan sistematika penulisan.
BAB 2 TINJAUAN DAN LANDASAN TEORI
Pada bab ini dijelaskan mengenai teori-teori yang digunakan
pada perancangan sistem atau aplikasi.
BAB 3 METODOLOGI PENELITIAN
Pada bab ini dijelaskan mengenai metode pengembangan
sistem yang digunakan pada perancangan sistem.
BAB 4 PENGEMBANGAN SISTEM
Pada bab ini dijelaskan mengenai bagaimana peneliti
mengembangkan sistem berdasarkan metode pengembangan
sistem.
8
UIN Syarif Hidayatullah Jakarta
BAB 5 HASIL DAN PEMBAHASAN
Pada bab ini diuraikan mengenai hasil dan pembahasan
sistem yang telah dirancang.
BAB 6 PENUTUP
Pada bab ini akan memaparkan kesimpulan dari pembahasan
yang telah dilakukan pada bab sebelumnya dan memberikan
saran untuk pengembangan sistem lebih baik ke depannya.
DAFTAR PUSTAKA
9
BAB 2
2. LANDASAN TEORI
2.1. Aplikasi
Aplikasi adalah program mandiri yang bertujuan menyelesaikan suatu
kebutuhan bisnis atau masalah secara spesifik. Aplikasi digunakan untuk
melakukan proses bisnis, proses data teknis, memfasilitasi sebuah bisnis,
manajemen, ataupun pengambilan keputusan secara teknis.(Pressman, 2011)
2.2. Nada dan Transpose
Nada adalah bunyi yang beraturan dengan frekuensi tertentu dan memiliki
tinggi nada tertentu menurut frekuensinya. Kumpulan dari semua nada dalam musik
disebut sebagai Tangga Nada Kromatik. Nada selalu berulang untuk tiap oktaf yang
ada, sehingga istilah tangga nada kromatik sering dipakai untuk ke-12 nada dari tiap
oktaf. Perbedaan antara dua buah pitch (nada) yang berdekatan disebut sebagai
semiton. Meskipun ada 12 nada dalam satu oktaf, tapi hanya 7 huruf pertama dari
abjad yang dipakai untuk memberi nama pada nada, yaitu dari A sampai G. Kelima
nada yang lain dalam tangga nada kromatik diberi nama dengan menempatkan
tanda kres (#) atau tanda mol (b) setelah notasi nada.(Prasetio, Hidayatno, &
Santoso, 2014)
10
UIN Syarif Hidayatullah Jakarta
Tabel 2.1 Frekuensi Tangga Nada Kromatik
Sumber:(Prasetio et al., 2014)
Oktaf
1 2 3 4 5 6
Nada
C 32,703 65,406 130,81 261,63 523,25 1046,5
C# 34,468 69,296 138,59 277,18 554,37 1108,7
D 36,708 73,416 146,83 293,66 587,33 1174,7
D# 38,391 77,782 155,56 311,13 622,25 1244,5
E 41,204 82,407 164,81 329,63 659,26 1318,5
F 43,654 87,307 174,61 349,23 696,46 1396,9
F# 46,249 92,499 185,0 369,99 739,99 1480
G 48,999 97,999 196,0 392,0 783,99 1568
G# 51,913 103,83 207,65 415,3 830,61 1661,2
A 55,000 110,9 220,0 440,0 880,0 1760
A# 58,270 116,54 233,06 466,16 932,33 1846,7
B 61,735 123,47 246,94 493,88 967,77 1975,5
Menurut (Miller, 2005), Transpose adalah seni menerjemahkan sebuah nada
atau lebih dari suatu kunci dasar ke kunci dasar lainnya. Alasan untuk melakukan
transpose adalah nada asli lagu diluar dari range vokalis ataupun pemain instrumen.
Misalkan ada rangkaian nada seperti berikut: C2-F2-G2 di kunci dasar C.
Lalu kita melakukan transpose naik 2 nada ke kunci dasar D. Maka perubahan
rangkaian nada akan sebagai berikut, C2 menjadi D2, F2 menjadi G2, dan G2 menjadi
A2.
2.3. Vocal Range
Berdasarkan hasil wawancara, vokal adalah salah satu instrumen musik yang
asal suaranya berasal dari pita suara manusia. Dengan menggunakan vokal,
manusia dapat bernyanyi untuk hiburan, ekspresi diri, ritual keagamaan, ataupun
lainnya.
Setiap manusia memiliki karakteristik suara vokal yang berbeda-beda dan
untuk menentukan jenis suara seseorang bisa dilihat berdasarkan warna suara
yangmana bernilai subjektif. Vokal dibagi berdasarkan genre musik yaitu pop,
11
UIN Syarif Hidayatullah Jakarta
klasik, jazz, dan lain-lain. Namun bukan berarti jika seseorang berwarna suara
salah satu genre, maka tidak bisa bagus pada genre lain. Untuk jenis suara
berdasarkan genre, satu orang bisa memiliki banyak jenis suara.
Jenis suara juga bisa di klasifikasikan berdasar jenis kelamin dan vocal range.
Menurut Ahmadiyah (2017) dan hasil wawancara ahli, klasifikasi berdasarkan jenis
kelamin dan vocal range bisa dilihat pada Tabel 2.2.
Tabel 2.2 Klasifikasi Jenis Suara
Jenis Suara Vocal Range Jenis Kelamin
Soprano C4-C6
Perempuan Mezzo A3-A5
Alto F3-F5
Tenor C3-C5
Laki-Laki Baritone F2-F4
Bass E2-E4
Berdasarkan hasil wawancara, vocal range luas dan tinggi tidak selalu dapat
diklasifikasikan sebagai sopran. Harus dilihat kembali warna suara dan faktor lain
di mana seseorang itu nyaman bernyanyi. Setiap jenis suara tersebut memiliki
kelebihan masing-masing. Untuk lagu dan penyanyi pop itu biasanya suara tengah,
Mezzo dan Baritone.
Vocal range seseorang tidaklah bersifat konstan. Vocal range dipengaruhi
oleh faktor-faktor sepert kesehatan fisik, usia, dan jenis kelamin. Semakin tua
seseorang maka semakin tebal pita suara sehingga menurunkan kemampuan
bernyanyi nada tinggi, kecuali vokalnya sering dilatih.
12
UIN Syarif Hidayatullah Jakarta
2.4. Algoritma Genetika
Algoritma adalah urutan langkah logis untuk memecahkan suatu masalah.
Algoritma merupakan alur pemikiran untuk menyelesaikan suatu pekerjaan atau
suatu masalah daripada pembuatan program komputer. Algoritma inilah yang
kemudian dijadikan landasan (pedoman) untuk membuat program komputer.
(Suprapto, 2008)
Algoritma genetika merupakan suatu metode heuristik yang dikembangkan
berdasarkan prinsip genetika dan proses seleksi alamiah Teori Evolusi
Darwin.(Zukhri, 2014)
Sedangkan menurut Budiharto & Suhartono (2014), Algoritma genetika
merupakan metode adaptif yang dimulai dengan satu set solusi (diwakili oleh
kromosom) yang disebut populasi. Solusi dari satu populasi diambil untuk
membentuk populasi baru. Solusi yang dipilih untuk membentuk solusi baru
(keturunan) dipilih sesuai dengan kebugaran yang lebih cocok supaya lebih banyak
kesempatan untuk mereproduksi.
Pada awalnya, algoritma genetika memang digunakan sebagai algoritma
pencarian parameter-parameter optimal. Tetapi, dalam perkembangannya algoritma
genetika diaplikasikan untuk berbagai masalah seperti learning, peramalan,
pemograman otomatis, dan sebagainya.(Suyanto, 2014)
13
UIN Syarif Hidayatullah Jakarta
Gambar 2.1 Alur Algoritma Genetika
(Budiharto & Suhartono, 2014)
Menurut (Sutojo, Mulyanto, & Suhartono, 2011), terdapat 7
pengertian dasar yang harus diketahui soal istilah dalam algoritma genetika.
Gen, adalah variabel dasar yang membentuk suatu kromosom. Dalam
algoritma genetika, gen ini dapat bernilai biner, integer, float, maupun
karakter.
Alel, adalah nilai dari suatu gen, bisa berupa biner, float, integer, maupun
karakter.
Kromosom, adalah gabungan dari gen-gen yang membentuk arti tertentu.
Individu, adalah kumpulan gen, bisa dikatakan sama dengan kromosom.
14
UIN Syarif Hidayatullah Jakarta
Populasi, adalah sekumpulan individu yang akan diproses secara bersama-
sama dalam satu siklus evolusi.
Generasi menyatakan satu satuan siklus proses evolusi.
Fitness, menyatakan seberapa baik nilai dari suatu individu atau solusi yang
didapatkan.
2.4.1. Komponen-komponen Algoritma Genetika
Algoritma genetika memiiliki komponen-komponen sebagai
berikut.
2.4.1.1. Skema Pengkodean
Suatu permasalahan harus dikonversi dulu ke dalam bentuk
individu yang diwakili oleh satu atau lebih kromosom dengan kode
tertentu. Berbeda dengan teori genetika di dunia nyata, algoritma
genetika merepresentasikan gen sebagai bilangan riil, desimal, atau
biner.(Suyanto, 2014)
Kode biner dapat digunakan untuk merepresentasikan
bilangan dengan mudah jika banyaknya kemungkinan bilangan
bulat yang akan direpresentasikan sebesar pangkat dua bilangan
teretentu, misalnya banyaknya kemungkinan bilangan adalah
2,4,8,16, dan seterusnya.(Zukhri, 2014)
2.4.1.2. Nilai Fitness
Pada evolusi di dunia nyata, individu bernilai fitness tinggi
akan bertahan hidup. Sedangkan yang bernilai fitness rendah akan
mati. Pada algoritma genetika, suatu individu di evaluasi
berdasarkan suatu fungsi sebagai ukuran nilai fitness-nya. Penentuan
nilai fitness sangat berpengaruh pada performansi algoritma
genetika. (Suyanto, 2014)
Pada masalah optimasi, jika solusi yang dicari adalah
memaksimalkan sebuah fungsi h, maka nilai fitness(f) yang
15
UIN Syarif Hidayatullah Jakarta
digunakan adalah nilai dari fungsi h itu sendiri, yakni f = h.(Suyanto,
2014)
2.4.1.3. Seleksi
Seleksi merupakan proses dalam algoritma genetika untuk
memilih kromosom yang tetap bertahan dalam populasi. Kromosom
yang terpilih mempunyai kemungkinan untuk dipasangkan dengan
kromosom lain atau mengalami proses penyilangan yang
menghasilkan kromosom anak.(Zukhri, 2014)
Proses pemilihan dua individu sebagai orang tua biasanya
dilakukan secara proporsional berdasarkan nilai-nilai fitness-nya.
Salah satunya adalah roulette wheel. Metode ini menirukan
permainan roulette-wheel dimana masing-masing individu
menempati potongan roda roulette secara proporsional sesuai
dengan nilai fitness-nya. (Suyanto, 2014)
Selain metode roulette-wheel, terdapat metode lain seperti
seleksi peringkat yang mengurutkan berdasar nilai fitness dengan
nilai lebih tinggi menempati peringkat lebih tinggi lalu
pemilihannya berdasarkan suatu fungsi distribusi, seleksi turnamen
yaitu kromosom dibagi dalam beberapa grup secara acak kemudian
seleksi dilakukan dengan mempertahankan kromosom dnegan nilai
fitness tertinggi pada setiap grup, dan ada metode seleksi elitis yaitu
memilih kromosom dengan fitness paling tinggi untuk
dipertahankan pada generasi berikutnya.(Zukhri, 2014)
2.4.1.4. Crossover
Pada proses crossover terjadi kombinasi perwarisan gen-gen
dari induknya, gen-gen dari induknya bercampur aduk sehingga
dihasilkan kromosom baru.(Suyanto, 2014)
16
UIN Syarif Hidayatullah Jakarta
Crossover Satu Titik
Crossover ini merupakan skema yang paling sederhana.
Titik crossover hanya satu dengan posisi yang dibangkitkan
secara acak.(Suyanto, 2014)
Gambar 2.2 Contoh Crossover Satu Titik
(Sumber: Suyanto, 2014)
Crossover Banyak Titik
Pada suatu masalah tertentu dimana suatu individu terdiri
dari sangat banyak gen (misalkan 1000 gen), mungkin kita
butuh lebih dari satu titik crossover.(Suyanto, 2014)
Gambar 2.3 Contoh Crossover Banyak Titik
(Sumber: Suyanto, 2014)
17
UIN Syarif Hidayatullah Jakarta
Crossover Pola Seragam
Dalam metode ini, bangkitkan terlebih dahulu sebuah
pola yang terdiri dari gen-gen sebanyak gen dalam
kromosom. Untuk kromosom anak yang pertama, jika kode
pola benilai 1 maka gen diwariskan dari induk yang pertama.
Sedangkan jika bernilai 0 maka diwariskan dari induk yang
kedua. Lalu untuk kromosom anak kedua adalah
sebaliknya.(Zukhri, 2014)
Gambar 2.4 Contoh Crossover Pola Seragam
( Sumber: Zukhri, 2014)
Sebuah individu yang mengarah pada solusi optimal bisa
diperoleh melalui proses crossover dengan catatan bahwa crossover
hanya bisa dilakukan jika sebuah bilangan acak dalam interval [0 1]
yang dibangkitkan lebih kecil dari probabilitas tertentu. Biasanya nilai
probabilitas diset mendekati 1. Cara yang paling sederhana untuk
melakukan crossover adalah crossover satu titik potong.(Sutojo et al.,
2011)
2.4.1.5. Mutasi
Menurut Suyanto (2014), Mutasi diperlukan untuk
mengembalikan informasi bit yang hilang akibat crossover. Mutasi
diterapkan dengan probabilitas yang sangat kecil. Karena jika terlalu
sering, Terdapat 3 jenis proses mutasi:
18
UIN Syarif Hidayatullah Jakarta
Mutasi Pada Tingkat Kromosom
Semua gen dalam kromosom berubah
Gambar 2.5 Contoh Mutasi Tingkat Kromosom
Sumber: (Suyanto, 2014)
Mutasi Pada Tingkat Gen
Semua bit dalam satu gen berubah
Gambar 2.6 Contoh Mutasi Pada Tingkat Gen
Sumber: (Suyanto, 2014)
Mutasi Hanya Pada Satu Bit
Mutasi hanya terjadi pada bit yang ditentukan
Gambar 2.7 Contoh Mutasi Hanya Pada Satu Bit
Sumber: (Suyanto, 2014)
Prosedur mutasi sangatlah sederhana. Untuk semua gen yang
ada, jika bilangan acak yang dibangkitkan kurang dari probabilitas
mutase (pmut) yang ditentukan maka ubah gen tersebut menjadi nilai
19
UIN Syarif Hidayatullah Jakarta
kebalikannya. Biasanya pmut diset sebagai 1/n, dimana n adalah
jumlah gen dalam kromosom.(Suyanto, 2014)
2.4.1.6. Syarat Berhenti
Proses optimasi yang dilakukan dengan algoritma genetika
akan berhenti setelah suatu syarat dipenuhi. Syarat berhenti yang
biasa digunakan adalah batas nilai fitness, batas nilai fungsi objektif,
batas waktu komputasi, dan banyak generasi.(Zukhri, 2014)
Pemilihan syarat berhenti yang paling tepat bergantung pada
tingkat kerumitan masalah. Syarat berhenti yang biasanya
digunakan adalah banyak generasi.(Zukhri, 2014)
2.4.2. Variasi Algoritma Genetika
Terdapat dua variasi algoritma genetika, yaitu Steady State dan
Generational Replacement. Pada Steady State, proses replacement
dilakukan setiap kali dihasilkan dua anak hasil crossover. Anak
menggantikan kromosom dengan nilai fitness paling kecil. Dengan
demikian, populasi baru selalu memiliki individu-individu yang lebih
baik.(Suyanto, 2014)
Sedangkan pada variasi generational replacement, proses
replacement dilakukan sekaligus ketika dihasilkan suatu populasi baru.
Untuk mempertahankan individu terbaik suatu generasi diperlukan suatu
komponen yang disebut elitisme, yaitu peng-kopi-an individu terbaik untuk
dimasukkan sebagai anggota populasi pada generasi berikutnya.(Suyanto,
2014)
2.5. Android
Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux
yang mencakup sistem operasi, middleware, dan aplikasi. Android merupakan
platform mobile yang lengkap, terbuka dan bebas.(Safaat H., 2015)
Sampai saat penelitian ini dibuat, android telah mengelurakan versi sampai
dengan versi 9 yang dinamakan pie. Berikut versi-versi android yang ada saat ini:
20
UIN Syarif Hidayatullah Jakarta
Tabel 2.3 Versi Android
Sumber:(Android, 2019)
Version Codename API Distribution
2.3.3 -
2.3.7 Gingerbread 10 0.3%
4.0.3 -
4.0.4
Ice Cream
Sandwich 15 0.3%
4.1.x
Jelly Bean
16 1.2%
4.2.x 17 1.5%
4.3 18 0.5%
4.4 KitKat 19 6.9%
5.0
Lollipop
21 3.0%
5.1 22 11.5%
6.0 Marshmallow 23 16.9%
7.0
Nougat
24 11.4%
7.1 25 7.8%
8.0
Oreo
26 12.9%
8.1 27 15.4%
9 Pie 28 10.4%
Menurut Safaat H. (2015), Android memiliki keunggulan sebagai berikut:
Lengkap (Complete Platform)
Para desainer dapat melakukan pendekatan yang
komprehensif ketika mereka sedang mengembangkan
platform Android. Android merupakan sistem operasi yang
aman dan banyak menyediakan tools dalam membangun
software.
21
UIN Syarif Hidayatullah Jakarta
Terbuka (open-source)
Android disediakan melalui lisensi open-source.
Pengembang dapat dengan bebas untuk mengembangkan
aplikasi.
Free (Free Platform)
Android adalah platform/aplikasi yang bebas untuk
dikembangkan. Tidak ada lisensi atau biaya royalti untuk
dikembangkan pada platform android. Tidak diperlukan
biaya keanggotaan. Tidak diperlukan biaya pengujian.
Tidak ada kontrak yang diperlukan. Aplikasi untuk Android
dapat didistribusikan dan diperdagangkan dalam bentuk
apapun
Aplikasi Android ditulis dengan bahasa pemograman Java. Semua kode dan
asset disatukan dalam satu paket berupa file berekstensi “.APK”. Komponen
aplikasi Android terdiri dari beberapa jenis, antara lain: (Juhara, 2016)
Activity
Activity adalah istilah yang digunakan dalam
pemograman Android untuk mengacu pada satuan interaksi
dengan pengguna melalui antarmuka grafis. Selain sebagai
satuan interaksi pengguna, activity juga satuan eksekusi.
Intent
Intent mengacu pada mekanisme berbagi pesan
pemberitahuan, bertukar data activity atau untuk
menjalankan aplikasi lain.
22
UIN Syarif Hidayatullah Jakarta
Service
Service adalah komponen aplikasi yang berjalan di
belakang layar tanpa user interface.
Content provider
Content provider membuat suatu aplikasi dapat berbagi
sejumlah data tertentu kepada aplikasi lain. Jika
membutuhkan data nama-nama kontak, aplikasi cukup
meminta data tersebut
Broadcast receiver
Broadcast receiver adalah komponen yang memantau,
menerima, dan bereaksi terhadap pesan yang disebarkan,
baik oleh sistem maupun aplikasi lain. Misalnya, ketika
baterai lemah.
2.5.1. Android SDK (Software Development Kit)
Android SDK adalah tools API (Application Programming
Interface) yang diperlukan untuk mulai mengembangkan aplikasi pada
platform android menggunakan bahasa pemograman Java.(Safaat H., 2015)
2.6. SQLite
SQLite adalah mesin database SQL tertanam. Tidak seperti kebanyakan
database SQL lainnya, SQLite tidak memiliki proses server yang terpisah. SQLite
membaca dan menulis langsung ke file disk biasa. Database SQL lengkap dengan
beberapa tabel, indeks, triggers, dan tampilan terkandung dalam satu file disk.
Format file database adalah cross-platform sehingga dapat dengan bebas menyalin
database antara sistem 32-bit dan 64-bit.(Sqlite.org, n.d.)
Menurut (Aditya & Karn, 2014), SQLite memiliki fitur yang membuatnya
menjadi populer, fitur tersebut adalah:
23
UIN Syarif Hidayatullah Jakarta
a. Nol konfigurasi: SQLite dirancang sedemikian rupa sehingga tidak
memerlukan file konfigurasi. Tidak memerlukan langkah instalasi atau
pengaturan awal; tidak memiliki server proses berjalan dan tidak ada
langkah pemulihan yang harus diambil bahkan jika crash. Tidak ada
server dan langsung tertanam di aplikasi. Selanjutnya, tidak ada
administrator diperlukan untuk membuat atau memelihara database, atau
mengatur izin untuk pengguna.
b. Tanpa hak cipta: Alih-alih lisensi, source code SQLite adalah milik
domain publik. Dibebaskan untuk mengubah, mendistribusikan, dan
bahkan menjual kode. Bahkan kontributor diminta menandatangani surat
pernyataan untuk melindungi dari apa pun perang hak cipta yang mungkin
terjadi di masa depan.
c. Cross-platform: File basis data dari satu sistem dapat dipindahkan ke
sistem yang menjalankan arsitektur yang berbeda tanpa kerumitan. Ini
dimungkinkan karena file database formatnya adalah biner dan semua
mesin menggunakan format yang sama. Ringkasnya, Database SQLite
adalah file disk tunggal biasa; datang tanpa server dan dirancang agar
ringan dan sederhana. Atribut-atribut ini membuat database menjadi
sangat ringan dibandingkan dengan database SQL lainnya
d. Mudah: Basis kode dikomentari dengan baik, mudah dipahami, dan
modular. Itu kasus uji dan skrip uji dalam SQLite memiliki sekitar 1084
kali lebih banyak kode daripada kode sumber perpustakaan SQLite dan
mereka mengklaim cakupan tes cabang 100 persen. Tingkat pengujian ini
menegaskan kembali kepercayaan yang ditanamkan dalam SQLite oleh
pengembang.
Dalam SQLite, data dikelaskan secara lebih umum daripada tipe data. SQLite
menyimpan data dalam 5 kelas yang bisa disebut juga sebagai tipe data primitif,
kelima kelas tersebut adalah sebagai berikut.(Aditya & Karn, 2014)
Null: merepresentasikan nilai yang hilang dari database
24
UIN Syarif Hidayatullah Jakarta
Integer: mendukung penyimpanan bilangan bulat dari 1, 2, 3, 4, 6, atau 8
bytes.
Real: menyimpan data dengan nilai floating point, SQLite menggunakan 8-
byte IEEE Floating untuk menyimpan data.
Text: Nilai ini menyimpan data string teks.
BLOB: menyimpan array besar data biner.
SQLite menyimpan data Boolean dengan menggunakan kelas integer dimana
0 menyatakan nilai false dan 1 menyatakan nilai true.
2.7. Flowchart
Notasi algoritma yang paling banyak digunakan adalah flowchart karena
bentuknya yang sederhana dan mudah dipahami. Flowchart (diagram alir) adalah
penggambaran secara grafik dari langkah-langkah pemecahan masalah yang harus
diikuti oleh pemroses. Flowchart terdiri atas sekumpulan simbol, di mana masing-
masing symbol menggambarkan suatu kegiatan tertentu. Flowchart diawali dengan
penerimaan masukan (input), pemrosesan masukan, dan diakhiri dengan
menampilkan hasilnya (output). (Suprapto, 2008)
Tabel 2.4 merupakan simbol atau komponen yang sering digunakan menurut
Suprapto (2008).
Tabel 2.4 Simbol Flowchart
Notasi Keterangan
Masukan/Input, menunjukkan bahwa
terdapat kegiatan penerimaan data.
Dapat dituliskan di dalamnya secara
satu per satu masukan ataupun secara
keseluruhan
Masukan manual, menunjukkan bahwa
terdapat kegiatan penerimaan data
yang dimasukkan secara manual
25
UIN Syarif Hidayatullah Jakarta
seperti melalui keryboard, barcode
reader, ataupun perangkat input
lainnya. Di dalamnya dituliskan
masukan manual yang diperlukan
secara keseluruhan
Proses, menunjukkan proses yang
dilakukan untuk mengubah masukan
menjadi keluaran/ouput.
Keluaran, menunjukkan hasil dari
pemrosesan data masukan. Keluaran
ini harus ditampilkan pada layar
monitor agar dapat dibaca oleh
pengguna
Percabangan, Yang dimaksud dengan
percabangan disini adalah suatu
kegiatan untuk mengecek atau
memeriksa suatu keadaan apakah
memenuhi suatu kondisi atau tidak.
Jadi dalam percabangan ini, kita harus
Menuliskan kondisi apa yang harus
dipenuhi oleh suatu keadaan. Hasil dari
pemeriksaan keadaan ini adalah YA
atau TIDAK. Jika pemeriksaan
keadaan menghasilkan kondisi yang
benar, maka jalur yang dipilih adalah
jalur yang berlabel YA, sedangkan jika
pemeriksaan keadaan menghasilkan
kondisi yang salah, maka jalur yang
dipilih adalah jalur berlabel TIDAK
26
UIN Syarif Hidayatullah Jakarta
Arah aliran, menunjukkan jalur yang
harus diikuti dan menghubungkan
antar komponen sesuai langkah
pemecahan masalah
Terminator, berfungsi untuk menandai
titik awal dan titik akhir dari flowchart.
Simbol ini diberi label MULAI untuk
mmenandai titik awal dan label
SELESAI untuk menandai titik akhir
2.8. UML (Unified Modelling Language)
UML atau Unified Modelling language adalah sebuah bahasa visual yang
terdiri dari notasi, diagram, dan spesifikasi. UML juga adalah sebuah bahasa
pemodelan yang berarti tujuan utamanya bukan untuk di compile ataupun
merupakan hasil dari kode. UML telah menjadi mekanisme standar bagi pemodelan
sistem software dengan 14 diagram walaupun sangat jarang sekali suatu sistem
menggunakan semua 14 diagram sekaligus.(Unhelkar, 2018)
2.8.1. Use Case
Use case mendokumentasikan interaksi antara aktor dengan sebuah
sistem. Use case mendeskripsikan apa yang dikerjakan sebuah sistem,
bukan menjelaskan bagaimana sistem melakukannya.(Unhelkar, 2018)
Use case dapat didokumentasikan dalam bentuk format seperti pada
Tabel 2.5.
Tabel 2.5 Contoh Penulisan Use Case
Use Case Thumbnail <berisikan nomor dan nama dari
use case>
Aktor <berisikan aktor yang terlibat
dalam use case ini>
27
UIN Syarif Hidayatullah Jakarta
Deskripsi <berisikan desktipsi singkat dari
use case. Desktripsi bisa berbentuk
satu kalimat atau paragraph dari
tujuan dan penggunaan use case>
Use case diagram memberikan rangkuman kebutuhan sistem secara
visual. Use case diagram meliputi aktor, use case, hubungan antar mereka,
dan catatan. (Unhelkar, 2018)
Use case diagram memiliki notasi sebagaimana pada Tabel 2.6.
Tabel 2.6 Notasi Use Case
Gambar Keterangan
Aktor, menyimbolkan pengguna,
orang, sebuah interface, sistem
lain, ataupun alat yang terlibat
dalam system.
Merepresentasikan use case.
Menghubungkan actor ke use case.
<<include>>
Digunakan ketika sebuah use case
akan digunakan ulang oleh bagian
sistem lain. Relasi use case
tambahan ke sebuah use case yang
ditambahkan memerlukan use case
ini untuk menjalankan fungsinya
atau sebagai syarat dijalankan use
case ini.
28
UIN Syarif Hidayatullah Jakarta
<<extends>>
Digunakan apabila ada tambahan
fungsional untuk sebuah use case.
Bisa digunakan juga sebagai
representasi sebuah opsi.
Batasan sistem, memisahkan actor
dengan use case. Aktor berada
diluar batasan dan use case berada
di dalam batasan.
2.8.2. Activity Diagram
Activity diagram berfungsi untuk memodelkan alur ataupun proses
yang ada di dalam sistem. Oleh karena itu activity diagram mirip dengan
flowchart. Memodelkan alur dapat dilakukan sesuai dengan proses bisnis
ataupun use case, meskipun biasanya disesuaikan dengan use
case.(Unhelkar, 2018)
Menurut (Hendini, 2016), activity diagram menggambarkan
workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis.
Notasi yang digunakan dalam activity diagram dapat dilihat pada Tabel 2.7.
Tabel 2.7 Notasi Activity Diagram
Sumber : (Hendini, 2016)
Notasi Keterangan
Start Point, diletakkan pada
pojok kiri atas dan merupakan
awal aktivitas.
End Point, akhir aktivitas.
29
UIN Syarif Hidayatullah Jakarta
Activities, menggambarkan
suatu proses/kegiatan bisnis.
Fork/percabangan, digunakan
untuk menunjukkan kegiatan
yang dilakukan secara paralel
atau untuk menggabungkan dua
kegiatan paralel menjadi satu.
Join (penggabungan) atau rake,
digunakan untuk menunjukkan
adanya dekomposisi.
Decision Points,
menggambarkan pilihan untuk
pengambilan keputusan, true
atau false.
Swimlane, pembagian activity
diagram untuk menunjukkan
siapa melakukan apa.
2.8.3. Class Diagram
Class diagram berfungsi untuk merepresentasikan definisi dan relasi
dari sebuah class ataupun entitas dari sebuah ruang masalah. Atribut dan
operasi didefinisikan dalam class diagram ini. Relasi dalam class diagram
30
UIN Syarif Hidayatullah Jakarta
menggambarkan bagaimana class saling berinteraksi, berkolaborasi, dan
mewarisi class lain.(Unhelkar, 2018)
Class diagram menurut Unhelkar (2018) memiliki notasi-notasi
sebagaiamana pada Tabel 2.8.
Tabel 2.8 Notasi Class Diagram
Gambar Keterangan
Deskripsi class, mengandung
informasi atribut dan operasi
yang dimiliki class tersebut.
Inheritance, menunjukkan
bahwa suatu class mewarisi
atribut, operasi, dan relasi
suatu class yang lebih tinggi.
Asosiasi, relasi antar kelas
dengan makna suatu class
“menggunakan” class dalam
mencapai tujuan sistem.
Aggregasi, relasi antar kelas
dengan makna suatu class
“memiliki” class lain.
Catatan, digunakan untuk
memberikan catan atas class
diagram.
2.8.4. Sequence Diagram
Sequence Diagram memodelkan urutan pesan-pesan yang
memadukan objek-objek pada sistem secara detail, seperti parameter-
31
UIN Syarif Hidayatullah Jakarta
parameter pada setiap pesan, dan nilai return dari setiap pesan. Sequence
diagram dibuat berasaskan garis waktu.(Unhelkar, 2018)
Adapun notasi-notasi yang digunakan dalam sequence diagram
dapat dilihat pada Tabel 2.9
Tabel 2.9 Notasi Sequence Diagram
Gambar Keterangan
Aktor, menyimbolkan
pengguna ataupun orang
yang terlibat dalam system.
Objek, simbol objek pada
system.
Timeline, Garis yang
terhubung dengan objek.
Kegiatan yang dilikaukan
objek dalam sistem akan
ditulis sepanjang timeline.
Pesan, simbol mengirim
pesan antar objek.
Pesan return.
Focus control,
menyimbolkan durasi
sebuah eksekusi perintah,
Objek
32
UIN Syarif Hidayatullah Jakarta
semakin panjang maka
semakin lama durasi
kegiatan.
Pesan untuk diri sendiri.
Meniadakan sebuah objek.
2.9. Model Waterfall
Menurut Alshamrani & Abdullah (2015), Waterfall adalah model
SDLC(Software Development Life Cycle) tertua dan paling dikenal. Hal yang
membuat model ini spesial adalah tahapnya yang sekuensial. Tahapannya terus
menurun mulai dari requirement analysis, design, coding, testing, hingga
maintenance sebagaimana pada Gambar 2.8.
Gambar 2.8 Tahapan Model Waterfall
Sumber: (Dhami, 2016)
33
UIN Syarif Hidayatullah Jakarta
2.9.1. Requirement Analysis
Requirement adalah deskripsi sistem yang akan dibuat. Biasanya
diperoleh dari klien, seperti spesifikasi software dan fitur-fitur yang
diinginkan. Singkatnya, requirement dikumpulkan lalu dianalisa untuk
proses pengembangan dari software.(Alshamrani & Abdullah, 2015)
2.9.2. Design
Informasi yang sudah dikumpulkan pada tahap sebelumnya
dievaluasi lalu merumuskan bagaimana implementasi akan dilakukan.
Tahap ini merupakan proses perencanaan dan pemecahan masalah yang
berhubungan dengan memilih algoritma yang tepat, arsitektur software,
skema database, diagram logika, dan struktur data.(Alshamrani &
Abdullah, 2015)
2.9.3. Coding
Pada tahap ini, semua requirement dikonversikan ke dalam bentuk
produksi.(Alshamrani & Abdullah, 2015)
2.9.4. Testing
Tahap ini berurusan dengan testing atau pengecekan software yang
telah dikembangkan apakah telah memenuhi requirement awal atau belum.
Pada tahap ini juga kegiatan menemukan lalu memperbaiki bug dan
kecacatan pada software.(Alshamrani & Abdullah, 2015)
2.9.5. Maintenance
Setelah deploy software sudah dilakukan, mungkin software
memerlukan modifikasi, peningkatan, dan perbaikan error. Maka dari itu
ada tahap ini yang mencakup itu semua.(Alshamrani & Abdullah, 2015)
Menurut Kumar (2018), Model pengembangan waterfall memiliki
keunggulan sebagai berikut:
User Friendly.
Mudah untuk diterapkan.
34
UIN Syarif Hidayatullah Jakarta
Tahapannya tidak overlapping.
Cocok apabila requirement yang jelas.
Cocok apabila teknologi sudah dimengerti.
Cocok apabila sumber daya ahli mudah didapatkan.
Cocok untuk projek kecil dan berskala pendek.
2.10. Metode Pengumpulan Data
Data penelitian dapat berupa teks, foto, angka, cerita, garnbar, artifacts. Data
dikumpulkan bilamana arah dan tujuan penelitian sudah jelas dan juga bila sumber
data yaitu informan atau partisipan sudah diintifikasi, dihubungi serta sudah
mendapatkan persetujuan atas keinginan rnereka untuk mernberikan informasi yang
dibutuhkan.(Semiawan, 2010)
Siapa saja yang dimaksud dengan partisipan? Pertama, partisipan adalah
rnereka yang tentunya rnerniliki inforrnasi yang dibutuhkan. Kedua, rnereka yang
rnerniliki kernarnpuan untuk menceritakan pengalamannya atau mernberikan
inforrnasi yang dibutuhkan. Ketiga, yang benar-benar terlibat dengan gejala,
peristiwa, rnasalah itu, dalarn arti rnereka mengalaminya secara langsung.
Keernpat, bersedia untuk ikut serta diwawancarai. Kelirna, mereka harus tidak
berada dibawah tekanan, tetapi penuh kerelaan dan kesadaran akan keterlibatannya.
Jadi syarat utamanya yaitu kredibel dan kaya akan informasi yang
dibutuhkan.(Semiawan, 2010)
2.10.1. Wawancara
Wawancara merupakan suatu kegiatan tanya jawab dengan tatap
muka (face to face) antara pewawancara dan yang diwawancarai tentang
masalah yang diteliti, dimana pewawancara bermaksud memperoleh
persepsi, sikap, dan pola pikir dari yang diwawancarai yang relevan dengan
maslah yang diteliti. (Gunawan, 2013)
Wawancara dibagi menjadi dua, yaitu wawancara untuk
memperoleh informasi yang dilakukan terhadap informan dan wawancara
35
UIN Syarif Hidayatullah Jakarta
yang dimaksudkan untuk memperoleh keterangan pribadi, sikap, pendirian,
dan pandangan individu yang diwawancarai yang disebut
responden.(Gunawan, 2013)
Wawancara terhadap informan tekanannya adalah pemilihan sasaran
yang benar-benar ahli terhadap pokok wawancara. Sementara itu, responden
lebih berhubungan dengan penyusunan sampel yang
representatif.(Gunawan, 2013)
Menurut (A.S & Shalahuddin, 2014), Teknik wawancara
mempunyai beberapa keuntungan sebagai berikut:
Lebih mudah dalam menggali bagian sistem mana yang dinggap
baik dan bagian mana yang dianggap kurang baik.
Jika ada bagian yang menurut anda perlu untuk digali lebih
dalam, anda dapat langsung menanyakan kepada narasumber
Dapat menggali kebutuhan user lebih bebas
User dapat mengungkapkan kebutuhannya secara lebih bebas.
2.10.2. Kuesioner
Kuesioner merupakan lembaian yang berisi beberapa pertanyaan
denlan struktur yang baku.(Prtyono, 2016)
2.10.3. Sampling
Sampel sering juga disebut sebagai “contoh,” yaitu himpunan
bagian (subset) dari suatu populasi. Sebagai bagian dari populasi, sampel
memberikan gambaran yang benar tentang populasi. Pengambilan sampel
dari suatu populasi disebut penarikan sampel atau sampling. (Gulo, 2002)
Salah satu teknik penarikan sampel adalah teknik purposive. Teknik
purposive disebut juga judgemental sampling yang digunakan dengan
menentukan kriteria khusus terhadap sampel. Misalnya, jika kita ingin
mengetahui bagaimana sebaiknya membuat iklan yang baik, tentu saja harus
36
UIN Syarif Hidayatullah Jakarta
memilih mereka yang memahami atau berasal dari orang-orang perilkanan
atau mereka yang bergerak di bidang pemasaran.(Prtyono, 2016)
Rosecoe memberikan saran jumlah sampel penelitian bahwa ukuran
sampel yang layak dalam penelitian adalah antar 30 sampai 500 (Martono,
2014). Sedangkan menurut Semiawan (2010), patokan umum untuk sampel
jumlahnya kecil karena dsengan jumlah kecil peneliti akan mampu
mengumpulkan data yang mendalam. Jumlahnya bisa bervariasi dari satu
hingga 40. Tetapi karena penekannya pada informasi yang rinci dan kaya,
maka jumlah yang besar akan menjadi masalah karena akan terjadi
pengulangan informasi.
2.11. TarsosDSP Library
TarsosDSP adalah sebuah library java untuk memroses audio. Library ini
memiliki tujuan untuk memberikan kemudahan bagi praktek algoritma music
processing untuk diimplementasikan dalam java murni tanpa depedensi eksternal.
Awalnya TarsosDSP memang dibuat sebagai library yang melakukan deteksi nada.
Terdapat 4 metode dalam deteksi nada, YIN, MPM, AMDF, dan dynamic
wavelet.(Six, 2015)
2.12. Black Box Testing
Black box testing (bisa disebut juga behavioural testing), fokus terhadap
kebutuhan fungsional dari software. Dengan menggunakan teknik black box testing
maka dapat melakukan berbagai kondisi input untuk melihat kinerja fungsional
program. Pengujian black box berfungsi untuk menguji poin-poin
berikut.(Pressman, 2011)
Fungsi yang salah atau hilang.
Kesalahan interface.
Kesalahan struktur data.
Kesalahan akses eksternal terhadap database.
Kesalahan pada tingkat performa.
Kesalahan pada inisiasi dan terminasi.
37
BAB 3
3. METODE PENELITIAN
Pada bab ini dijelaskan mengenai metode pengumpulan, data metode
pengembangan sistem, dan gambaran kerangka berpikir penulis yang digunakan
pada penelitian ini.
3.1. Metode Pengumpulan Data
Dalam proses penulisan penelitian ini, metode pengumpulan data yang
digunakan yaitu studi pustaka wawancara ahli.
3.1.1. Studi Pustaka
Pada tahapan studi pustaka peneliti mencari referensi yang
berhubungan dengan objek penelitian berupa buku dan jurnal. Referensi-
referensi tersebut peneliti peroleh dari perpustakaan dan internet. Informasi
yang didapatkan dari studi pustaka penulis gunakan sebagai landasan teori
dan pengembangan penelitian ini.
Penelitian ini menggunakan 35 studi pustaka, yaitu 20 buku, 14
jurnal, dan 2 website.
3.1.2. Wawancara Ahli
Penulis melakukan wawancara dengan salah satu pelatih vokal di
tempat les Purwacaraka untuk memperoleh data-data dan informasi seperti
vokal secara teori dan metode yang digunakan saat ini untuk transpose lagu.
Wawancara telah dilakukan pada:
Tanggal : 15 April 2019
Durasi : 30 Menit
Tempat : Jl. Bangbarung Raya No.8, Bantarjati, Bogor Utara,
Kota Bogor, Jawa Barat 16153
38
UIN Syarif Hidayatullah Jakarta
Narasumber : Fitri Intendia, bersertifikat internasional untuk
pelatih vokal genre pop dari Trinity College dan sudah pada grade 8
DipABRSM.
Dan wawancara kedua dilakukan pada :
Tanggal : 22 Agustus 2019
Durasi : 50 Menit
Tempat : Jalan Raya Semplak No. 120, Cilendek Barat,
Bogor Barat, Kota Bogor, Jawa Barat 16114
Narasumber : Delly Trianggana, Pelatih vokal Purwacaraka
berpengalaman mengajar selama 6 tahun dan bersertifikat dalam mengikuti
lomba di Trimini International Choral Competition 2009, Swiss Choral
Festival, Irlandia Choral Festival, Praha Cantat 2015.
Hasil wawancara dapat dilihat pada bagian lampiran.
3.1.3. Kuesioner
Untuk mengetahui kegiatan transpose yang saat ini dilakukan oleh
penyanyi pemula dan untuk mengetahui kebutuhan penyanyi pemula akan
aplikasi, peneliti menggunakan teknik penarikan sampel purposive dengan
menyebarkan kuesioner kepada penyanyi pemula.
Peneliti menggunakan sampel sebanyak 40 orang penyanyi pemula
dengan pertimbangan jumlah sampel 40 ini sudah dapat diterima
berdasarkan Martono (2014) dan Semiawan (2010).
3.1.4. Studi Literatur
Penelitian ini didasari oleh penelitian terdahulu. Rincian dapat
dilihat pada Tabel 3.1.
39
UIN Syarif Hidayatullah Jakarta
Tabel 3.1 Studi Literatur
Judul Penulis Keterangan
Sistem Rekomendasi
Lagu Berdasarkan Jenis
Suara Penyanyi Pada
Aplikasi Karaoke
Ahmadiyah (2017) Telah berhasil melakukan deteksi
vocal range dengan tingkat
akurasi 70% menggunakan
algoritma FFT
Dapat merekomendasikan lagu
sesuai dengan vocal range
pengguna
Aransemen Nada Alto,
Tenor, dan Bass
Menggunakan Algoritma
Genetika
Setiawan (2018) Telah berhasil melakukan
pencarian optimal terhadap
desain aransemen suara
menggunakan algoritma genetika
Menerapkan sebuah algoritma
pencarian optimasi dalam bidang
nada musik
Aplikasi Latih Vokal
dengan Menggunakan
Metode Harmonic
Product Spectrum dan
Boyer Moore berbasis
Android
(Egisthi, Andreswari,
& Setiawan, 2016)
Membuat aplikasi latihan vokal
aplikasi akan merekam setiap
nada yang diucapkan
berdasarkan nada yang
diberikan, Kemudian aplikasi
akan memberitahu apakah nada
yang diucapkan benar atau salah.
Menggunakan TarsosDSP
FFT_YIN dalam melakukan
pendeteksian nada.
40
UIN Syarif Hidayatullah Jakarta
Implementasi Algoritma
Genetika Pada
Perancangan Aplikasi
Android Untuk
Memprediksi Buta
Warna
(Ridha & Harafani,
2019)
Menerapkan algoritma genetika
pada aplikasi android dengan
hasil algoritma berhasil
memprediksi buta warna lebih
optimal.
Aplikasi rekomendasi
Transpose Lagu
Berdasarkan Vocal
Range Menggunakan
Algoritma Genetika
Berbasis Android
(penelitian ini)
Faisal Rifqi Melakukan deteksi vocal range
menggunakan TarsosDSP
FFT_YIN.
Agar nada dapat dihitung
matematis, perlu pemetaan nada.
Menggunakan algoritma
genetika untuk mencari nada
transpose optimal.
Menggunakan sistem operasi
android, Pada penellitian ini
menggunakan Lenovo Moto E3
Power sebagai perangkat
android.
Dengan mempelajari penelitian terdahulu, penulis berkesimpulan
bahwa sudah dapat dibangun sebuah aplikasi yang bisa menjadi alternatif
untuk transpose daripada menggunakan metode menerka-nerka. Berikut
poin-poin yang dimiliki oleh penelitian ini.
Penelitian ini memberikan rekomendasi transpose lagu sehingga penyanyi
dapat menyanyikan lagu yang ingin dinyanyikan dengan nyaman, berbeda
dengan penelitian Ahmadiyah (2017) yang merekomendasi lagu yang cocok
dengan suara penyanyi tapi belum tentu penyanyi tersebut ingin
41
UIN Syarif Hidayatullah Jakarta
menyanyikannya. Penelitian ini menggunakan parameter parameter 8
individu untuk 1 generasi, 6 gen untuk 1 kromosom, syarat berhenti 20
perulangan, seleksi secara elitis 2 pasangan parent, crossover 1 titik dengan
probabilitas 0,8, mutasi tingkat gen dengan probabilitas mutasi sebesar
0,167, dan regenerasi steady-state berbeda dengan penelitian Setiawan
(2018) yang menggunakan parameter syarat berhenti 100 iterasi, crossover
1 titik dengan probabilitas 0,2, mutasi dengan probabilitas 0,1.
Penelitian ini menggunakan 64 nada, tangga nada kromatik.
Menggunakan algoritma genetika untuk mencari titik optimal bernyanyi
pengguna, karena pada penelitian Setiawan (2018) algoritma genetika telah
berhasil untuk mencari aransemen nada dan telah terbukti algoritma
genetika dapat diterapkan pada android 6.0 Marshmallow sebagaimana
penelitian Ridha & Harafani (2019).
Melakukan pendeteksian vocal range pengguna menggunakan library
TarsosDSP FFT_YIN sesuai dengan penelitian Ahmadiyah (2017) yang
menggunakan algoritma FFT dan penelitian Egisthi (2016) yang
menggunakan libray TarsosDSP FFT_YIN.
3.2. Metode Pengembangan Sistem
Dalam pengembangan aplikasi rekomendasi transpose lagu ini, penulis
menerapkan model waterfall. Penulis menilai model waterfall cocok pada
penelitian ini karena keunggulan yang dimiliki model waterfall sebagaimana yang
sudah dijelaskan sebelumnya. Model ini juga termasuk model yang mudah untuk
diterapkan sehingga mempermudah penulis untuk mengembangkan aplikasinya.
Penulis menilai penelitian ini memiliki requirement yang sudah jelas, merupakan
projek kecil, dan menggunakan teknologi yang sudah dimengerti yaitu berbasis
android.
Model waterfall ini memiliki 5 tahapan yaitu requirement analysis, design,
coding, testing, dan maintenance. Tahapan-tahapan tersebut pada penelitian ini
memiliki rincian sebagai berikut.
42
UIN Syarif Hidayatullah Jakarta
3.2.1. Requirement Analysis
Tahap ini adalah tahap dimana penulis mengumpulkan semua
kebutuhan yang diperlukan untuk penelitian ini. Kebutuhan-kebutuhan
tersebut adalah sebagai berikut:
a. Penulis merumuskan masalah yang diangkat pada penelitian
ini dan mencari data-data valid melalui studi pustaka,
melakukan wawancara ahli, dan kuesioner.
b. Penulis mempelajari metode sistem yang sedang berjalan
secara nyata saat ini agar penulis dapat merumuskan solusi
yang lebih baik.
c. Penulis mencari dan mempelajari algoritma apa saja yang
sekiranya dapat dan tepat untuk diterapkan pada penelitian
ini.
d. Penulis mencari data-data yang diperlukan untuk penelitian
ini melalui studi pustaka dan melakukan wawancara ahli.
3.2.2. Design
Pada tahap ini dilakukann proses perancangan pemecahan masalah,
perancangan flowchart, use case diagram, activity diagram sequence
diagram, class diagram, desain database, dan desain user interface dari
aplikasi yang dikembangkan.
3.2.3. Coding
Tahap ini merupakan implementasi dari semua rancangan aplikasi
yang sudah dibuat. Penulis mengembangkan aplikasi sesuai flowchart,
desain database, dan user interface yang sudah dibuat berbasis android dan
menggunakan SQLite sebagai database dalam apllikasi yang akan dibuat.
3.2.4. Testing
Pada tahap ini penulis/peneliti melakukan pengecekan terkait
apakah aplikasi sudah bekerja sesuai dengan kebutuhan, termasuk
pengecekan terhadap ada tidaknya bug ketika menjalankan aplikasi.
43
UIN Syarif Hidayatullah Jakarta
Tindakan selanjutnya, penulis melakukan perbaikan dan penyesuaian
hingga aplikasi dapat bekerja sesuai dengan kebutuhan dan terbebas dari
bug.
3.2.5. Maintenance
Pada skripsi ini tidak dilakukan tahap maintenance.
44
UIN Syarif Hidayatullah Jakarta
3.3. Kerangka Berpikir
Gambar 3.1 Kerangka Berpikir
45
BAB 4
4. PENGEMBANGAN SISTEM
Pada bab ini akan dijelaskan implementasi sesuai tahapan-tahapan metode
pengembangan sistem yang digunakan.
4.1. Requirement Analysis
Berikut di bawah ini adalah rincian lengkap dari tahapan requirement
analysis yang dilakukan penulis pada penelitian ini.
4.1.1. Identifikasi Masalah
Identifikasi masalah dilakukan oleh penulis berkaitan dengan hobi
penulis di bidang musik. Dalam bermusik terdapat istilah transpose lagu
yang diketahui setelah melakukan wawancara ahli bahwa metode transpose
lagu bagi pemula yang ada saat ini adalah menerka-nerka.
Menerka-nerka dalam transpose lagu dilakukan dengan cara
mencoba nada satu per satu hingga dirasa cocok dengan suara penyanyi.
Namun dengan melakukan demikian maka bisa dikatakan bahwa
metodenya tidak efektif dan hasil belum tentu benar-benar optimal bagi si
penyanyi.
Gambar 4.1 Ilustrasi Metode Transpose Saat Ini
46
UIN Syarif Hidayatullah Jakarta
Oleh karena itu, penulis merumuskan masalah untuk menciptakan
sebuah allternatif solusi dengan membuat suatu aplikasi matematis yang
mampu menghasilkan transpose lagu. Sehingga solusi yang dihasilkan
dapat merekomendasi optimal bagi penyanyi tanpa harus melakukan proses
menerka-nerka.
4.1.2. Analisa Kebutuhan Sistem
Setelah kita melakukan identifikasi masalah, maka kita analisa
kebutuhan sistem solusi yang diusulkan. Sistem yang diusulkan oleh penulis
adalah menggunakan sebuah aplikasi dalam menentukan transpose lagu
seperti pada Gambar 4.2.
Gambar 4.2 Ilustrasi Sistem Usulan
Masalah yang perlu diselesaikan adalah bagaimana membuat solusi
alternatif transpose lagu yang lebih matematis dan optimal. Berbicara soal
transpose lagu, berarti membicarakan vocal range dan range nada lagu.
Aplikasi membutuhkan data vocal range penyanyi dan range nada lagu
yang ingin dinyanyikan. Proses transpose itu sendiri adalah mencocokkan
vocal range dan range nada lagu tersebut, dengan kata lain adalah mencari
titik optimal bernyanyi seseorang untuk sebuah lagu.
Sebuah aplikasi tentulah memiliki algoritma dalam prosesnya,
sebagaimana yang kita tahu algoritma adalah sebuah alur pemikiran untuk
47
UIN Syarif Hidayatullah Jakarta
memecahkan masalah. Dalam kasus ini, aplikasi membutuhkan algoritma
optimasi. Salah satu algoritma optimasi yang diketahui adalah algoritma
genetika. Algoritma genetika penulis anggap layak untuk masalah ini karena
algoritma genetika dapat memperoleh solusi yang memenuhi syarat dari
kombinasi yang ada, tanpa harus mencoba keseluruhan kemungkinan solusi.
Algortima genetika juga sudah terbukti dapat mencari nada optimal untuk
kasus musik sebagaimana yang telah dilakukan oleh Setiawan, Swastika,
Leona, & Kelana, (2018) dalam penelitiannya yang berjudul “Aransemen
Nada Alto, Tenor, dan Bass Menggunakan Algoritma Genetika”.
Aplikasi ini juga berurusan dengan vocal range seperti yang
disebutkan sebelumnya. Maka dari itu pada penelitian ini penulis
menggunakan library TarsosDSP FFT_YIN karena sanggup untuk
mengolah sinyal suara secara cepat dan real-time sebagaimana pada
penelitian “Aplikasi Latih Vokal Dengan Menggunakan Metode Harmonic
Product Spectrum (HPS) dan Boyer Moore Berbasis Android” karya
Egisthi, Andreswari, & Setiawan (2016). Hasil deteksi nada oleh
TarsosDSP ini yang kemudian disimpan sebagai vocal range.
Jadi, pada penelitian ini menggunakan algoritma genetika sebagai
solusi utama yaitu mencari titik optimal bernyanyi seseorang untuk sebuah
lagu tertentu dan menggunakan library TarsosDSP untuk mendeteksi vocal
range.
Data yang diperlukan pada aplikasi ini sebagaimana yang sudah
disebutkan sebelumnya, diantaranya sebagai berikut:
Data vocal range penyanyi dan range nada lagu yang ingin
dinyanyikan. Sebagaimana transpose merupakan
menyesuaikan nada lagu dengan vocal range penyanyi.
Untuk memperoleh vocal range pengguna, aplikasi perlu
melakukan deteksi vocal range menggunakan TarsosDSP.
48
UIN Syarif Hidayatullah Jakarta
Data dari lagu yang ingin dinyanyikan seperti judul lagu,
nama penyanyi, range nada lagu, dan nada dasar asli dari
lagu.
Agar nada dapat dihitung matematis, perlu pemetaan nada.
Aplikasi membutuhkan algoritma optimasi dalam mencari
titik optimal vocal range untuk transpose. Aplikasi
menggunakan algoritma genetika untuk optimasi.
Aplikasi ini menggunakan sistem operasi android, Pada
penellitian ini menggunakan Lenovo Moto E3 Power sebagai
perangkat android.
4.2. Design
Di bawah ini penulis merincikan dengan lengkap perancangan-perancangan
yang dilakukan pada tahap penelitian ini, yaitu flowchart, desain algoritma, use
case, activity digram, sequence diagram, class diagram, struktur database, dan
user interface.
4.2.1. Desain Algoritma
Penulis merancang sebuah aplikasi sebagai solusi sebagaimana yang
dapat dilihat alurnya pada Gambar 4.3.
49
UIN Syarif Hidayatullah Jakarta
Gambar 4.3 Flowchart Aplikasi Solusi
Aplikasi yang dirumuskan memiliki dua tahap utama yaitu deteksi
vocal range dan algoritma genetika. Namun sebelumnya perlu dilakukan
pemetaan agar nada dapat dihitung secara sistematis.
4.2.1.1. Pemetaan Nada
Hasil tahap requirement analysis menunjukkan perlunya
pemetaan nada agar nada dapat dihitung secara matematis oleh
aplikasi.
Agar pemetaan nada tidak terlalu luas maupun terlalu sempit
penulis mengerucutkan menjadi 64 nada dimulai dari G#1-B6.
Penulis merasa cukup dengan 64 nada ini karena berdasarkan
50
UIN Syarif Hidayatullah Jakarta
wawancara ahli, rata-rata vocal range yang dimiliki manusia adalah
D2-G5. Jumlah 64 ini dipilih juga agar saat proses algoritma genetika
sehingga gen individu yang bernilai biner dapat menggunakan basis
64-bit.
Ketika manusia menyanyikan nada tertentu, frekuensi yang
dihasilkan tidak selalu tepat sesuai pemetaan frekuensi nada pada
Tabel 2.1. Maka dari itu diperlukannya menghitung rentang
frekuensi untuk satu nada.
Banyak literatur musik menggunakan cents untuk mengukur
interval nada. Dalam tangga nada kromatis terdapat 1200 cents
untuk setiap nadanya(Paret & Sibony, 2017). Dimana berarti setiap
nadanya memiliki interval sebesar 100 cents(Pilhofer & Day, 2015).
Untuk itu penulis membagi 2 interval antar nada tersebut yang
berarti setiap nada memiliki rentang 50 cents.
Adapun rumus menghitung cents menurut Paret & Sibony
(2017) sebagai berikut:
C = 1200 x 2log(𝐹2
𝐹1) (RUMUS 1)
Keterangan:
C =Cents (jarak nada)
F2 = Frekuensi Kedua (Hz)
F1 = Frekuensi Pertama (Hz)
Contoh:
Jika ada frekuensi sebesar 100 Hz dan 150 Hz, berapa besar jarak
antar kedua nada tersebut?
Jawab:
51
UIN Syarif Hidayatullah Jakarta
F2 = 150 Hz
F1 = 100 Hz
C = 1200 x 2log(150
100)
C = 1200 x 0.58496250072
C = 701.9550008653874
Jarak kedua nada tersebut adalah 701.9550008653874 cents.
Dengan menggunakan RUMUS 1 di atas, penulis dapat
memetakan rentang frekuensi untuk satu nadanya menggunakan
interval 50 cents. Berikut contoh cara menghitung ketika kita ingin
mencari rentang frekuensi untuk nada A1.
Diketahui:
Frekuensi A1= 55 Hz
Rentang nada = 50 cents
Batas atas = ?
Batas bawah = ?
Maka:
50 = 1200 x 2log(𝐵𝑎𝑡𝑎𝑠 𝑎𝑡𝑎𝑠
55)
50= 1200 x (2log(Batas atas) - 2log(55))
50
1200= 2log(Batas atas) - 2log(55)
50
1200 + 2log(55) = 2log(Batas atas)
Batas atas = 250
1200 +2 log(55)
52
UIN Syarif Hidayatullah Jakarta
Batas atas = 20.04166666666 + 5.78135971352
Batas atas = 25.82302638019
Batas atas = 56.6116230153 Hz
Batas bawah = 2−50
1200 +2 log(55)
Batas bawah = 2−0.04166666666 + 5.78135971352
Batas bawah = 25.73969304686
Batas bawah = 53.4342567635
Jadi, nada A1 memiliki rentang nada dari 53.4342567635 Hz
sampai dengan 56.6116230153 Hz. Hal ini terus dilakukan hingga
mendapat tabel pemetaan nada sebagaimana pada Tabel 4.1.
Tabel 4.1 Pemetaan Frekuensi Nada
Pemetaan frekuensi ini digunakan untuk deteksi vocal range
penyanyi (pengguna aplikasi), selain itu penulis memetakan juga 64
Oktaf
1 2 3 4 5 6
Nada
C - 63,54-67,32 127,02-134,64 254,17-269,28 508,35-538,57 1016,70-1077,15
C# - 67,32-71,32 134,64-142,65 269,28-285,30 538,57-570,60 1077,15-1141,2
D - 71,32-75,56 142,65-151,13 285,30-302,26 570,60-604,53 1141,2-1209,06
D# - 75,56-80,06 151,13-160,12 302,26-320,24 604,53-640,48 1209,06-1280,96
E - 80,06-84,82 160,12-169,64 320,24-339,28 640,48-678,56 1280,96-1357,13
F - 84,82-89,86 169,64-179,72 339,28-359,45 678,56-718,91 1357,13-1437,83
F# - 89,86-95,20 179,72-190,41 359,45-380,83 718,91-761,66 1437,83-1523,33
G - 95,20-100,86 190,41-201,73 380,83-403,47 761,66-806,95 1523,33-1613,91
G# 50,43-53,43 100,86-106,86 201,73-213,73 403,47-427,47 806,95-854,94 1613,91-1709,88
A 53,43-56,61 106,86-113,22 213,73-226,44 427,47-452,88 854,94-905,77 1709,88-1811,55
A# 56,61-59,97 113,22-199,95 226,44-239,90 452,88-479,81 905,77-959,63 1811,55-1919,27
B 59,97-63,54 199,95-127,08 239,90-254,17 479,81-508,35 959,63-1016,70 1919,27-2033,40
53
UIN Syarif Hidayatullah Jakarta
nada tersebut menjadi nilai angka yang berfungsi sebagai
representasi nada itu sendiri. Misalkan nada A1, maka penulis
merepresentasikannya sebagai angka 1. Representasi nada dalam
bentuk angka ini digunakan dalam algoritma perhitungan mencari
nilai optimal. Semakin tinggi nada maka semakin besar representasi
angka. Pemetaan represanntasi angka bisa dilihat pada Tabel 4.2
Tabel 4.2 Representasi Angka Nada
Nada Representasi
Angka Nada
Representasi
Angka Nada
Representasi
Angka
G#1 0 A#3 26 C6 52
A1 1 B3 27 C#6 53
A#1 2 C4 28 D6 54
B1 3 C#4 29 D#6 55
C2 4 D4 30 E6 56
C#2 5 D#4 31 F6 57
D2 6 E4 32 F#6 58
D#2 7 F4 33 G6 59
E2 8 F#4 34 G#6 60
F2 9 G4 35 A6 61
F#2 10 G#4 36 A#6 62
G2 11 A4 37 B6 63
G#2 12 A#4 38
A2 13 B4 39
A#2 14 C5 40
B2 15 C#5 41
C3 16 D5 42
C#3 17 D#5 43
D3 18 E5 44
D#3 19 F5 45
E3 20 F#5 46
F3 21 G5 47
F#3 22 G#5 48
G3 23 A5 49
G#3 24 A#5 50
A3 25 B5 51
4.2.1.2. Deteksi Vocal Range
Deteksi nada dilakukan untuk mendapatkan data vocal range
penyanyi (pengguna aplikasi) dengan menggunakan TarsosDSP
library untuk mendeteksi frekuensi yang masuk.
54
UIN Syarif Hidayatullah Jakarta
Untuk memperoleh data vocal range pengguna, pengguna
diminta untuk menyanyikan nada terendah dan nada tertinggi yang
pengguna sanggup. Ketika pengguna menyanyikan nada terendah,
aplikasi menggunakan TarsosDSP mendeteksi frekuensi nada secara
real-time dan dikonversi nilai frekuensi tersebut menjadi nada sesuai
dengan pemetaan pada Tabel 4.1. Begitu juga ketika penyanyi
menyanyikan nada tertingginya, lalu kedua nada itu disimpan oleh
aplikasi yang berarti aplikasi sudah mendapatkan data vocal range
dari pengguna.
Dilanjutkan dengan tahapan pengguna memilih lagu yang
ingin dinyanyikan. Ketika pengguna memilih lagu yang ingin
dinyanyikan maka aplikasi akan mengambil data judul-penyanyi
untuk informasi lagu, nada asli lagu yang menunjukkan di kunci
mana lagu tersebut dimainkan, nada terendah pada lagu, dan range
nada lagu yang menunjukkan seberapa besar rentang nada pada lagu
tersebut dari database.
4.2.1.3. Algoritma Genetika
Algoritma genetika secara umum memiliki urutan langkah
dengan alur yang telah digambarkan pada Gambar 2.1. Untuk
aplikasi ini penulis merumuskan urutan langkah algoritma menjadi
seperti Gambar 4.4.
55
UIN Syarif Hidayatullah Jakarta
Gambar 4.4 Flowchart Algoritma Genetika Solusi
Algoritma genetika memiliki komponen dan langkah yang
membentuk algoritma genetika itu sendiri berupa skema
pengkodean, membangkitkan generasi pertama, perhitungan fungsi
obyektif, perhitungan nilai fitness, seleksi, crossover, mutasi,
regenerasi, dan syarat berhenti. Berikut penjelasan dari setiap
komponen da langkah.
a. Skema Pengkodean
Pada aplikasi ini skema pengkodean yang digunakan
adalah skema pengkodean biner karena jumlah nilai
yang akan direpresentasikan adalah merupakan
pangkat dua yaitu pemetaan nada yang berjumlah 64
56
UIN Syarif Hidayatullah Jakarta
nada(25). Untuk dapat merepresentasikan 64 angka,
maka diperlukan sebanyak 6 gen bernilai biner agar
rangkaian biner yang terbentuk adalah basis 64
sebagaimana yang dapat dilihat pada Tabel 4.3.
Tabel 4.3 Ilustrasi Kromosom
Gen
1
Gen
2
Gen
3
Gen
4
Gen
5
Gen
6
Nilai
Kromosom
Nilai
Desimal
Kromosom
Solusi
Yang
Ditawarkan
0 0 0 0 1 0 000010 2 A#1
Untuk dapat diproses menggunakan algoritma genetika
suatu permasalahan harus dikonversi dulu ke dalam
bentuk suatu kromosom. Kromosom ini adalah
kandidat-kandidat solusi yang ada di dalam populasi
yang merupakan representasi angka dari nada-nada
sesuai Tabel 4.2.
Misalkan suatu kromosom bernilai seperti pada Tabel
4.3, maka didapatkan informasi bahwa kromosom
tersebut bernilai biner 000010, secara desimal
kromosom tersebut bernilai 2 yangmana jika lihat
Tabel 4.2 angka 2 merepresentasikan nada A#1. Berarti
kromosom pada Tabel 4.3 menawarkan solusi nada
A#1.
b. Bangkitkan generasi pertama
Pada aplikasi ini diinisiasikan jumlah populasi dalam
satu generasi adalah 8 kromosom, dimana satu
kromosom memiliki 6 gen seperti pada Tabel 4.3.
Generasi pertama ini dibangkitkan dengan cara
mengacak setiap gen dengan angka 0 atau 1 untuk
setiap kromosom sehingga rangkaian gen dalam satu
57
UIN Syarif Hidayatullah Jakarta
kromosom bernilai rangkaian biner seperti contoh pada
Tabel 4.4.
Tabel 4.4 Contoh Pembangkitan Generasi Pertama
Kromosom
ke-
Hasil Acak Nilai
Kromosom
Nilai
Desimal
Kromosom
Solusi
Yang
Ditawarkan
Gen
1
Gen
2
Gen
3
Gen
4
Gen
5
Gen
6
1 0 0 1 1 0 0 001100 12 (G#2)
2 0 1 0 1 0 1 010101 21 (F3)
3 0 0 1 1 1 0 001110 14 (A#2)
4 0 1 0 0 1 0 010010 18 (D3)
5 0 0 0 1 1 0 000110 6 (D2)
6 0 1 0 0 0 1 010001 17 (C#3)
7 0 0 1 0 0 1 001001 9 (F2)
8 0 0 1 0 1 0 001010 10 (F#2)
Sebagaimana yang dapat dilihat pada Tabel 4.4, pada
kromosom pertama aplikasi mengacak nilai gen 1
kromosom 1 dan didapatkan nilai 0, lalu dilanjutkan
pada setiap gen 2, gen 3, sampai gen 6 dan gen-gen
tersebut dirangkai menjadi rangkaian biner yang
merupakan nilai kromosom yaitu 001100. Hal ini
dilanjutkan sampai terbentuk 1 generasi yaitu 8
kromosom.
c. Hitung nilai fungsi obyektif
Fungsi obyektif adalah fungsi yang dicari optimasinya.
Pada kasus ini fungsi obyektifnya adalah fungsi yang
dibuat berdasarkan tujuan utama untuk mencari titik
optimum vocal range penyanyi. Fungsi obyektifnya
dirumuskan sebagai berikut.
58
UIN Syarif Hidayatullah Jakarta
(𝑅𝑏 − 𝑅𝑝) ∗ (𝑇𝑝 − 𝑇𝑏) (RUMUS 2)
Keterangan:
Rp = nada terendah penyanyi
Tp = nada tertinggi penyanyi
Jl = range nada lagu
Rb = nada terendah rekomendasi
Tb = nada tertinggi rekomendasi (Rb+Jl)
Data hasil deteksi vocal range memberikan data
kemampuan nada terendah penyanyi (Rp) dan nada
tertinggi penyanyi (Tp). Lalu ada data range nada lagu
(Jl) dari database yang menjadi pembatas untuk nada
terendah rekomendasi (Rb) dan nada tertinggi
rekomendasi (Tb).
Perlu dipahami bahwa nilai optimal berada di tengah-
tengah vocal range sehingga lebih besar (Rb) dari (Rp)
dan lebih kecil (Tb) dari (Tp) akan lebih baik karena
akan mendekati titik tengah. Ahli dan penulis
berdiskusi fungsi obyektif sehingga dirumuskan
sebagai RUMUS 2. Semakin besar hasil RUMUS 2
berarti semakin baik nilai solusi yang ditawarkan.
Cara menghitungnya adalah dengan memasukkan nilai
decimal solusi yang ditawarkan dari kromosom sebagai
Rb yang dengan otomoatis akan mendapatkan nilai Tb
juga karena Tb bernilai Rb+Jl. Perhitungan nilai fungsi
obyektif ini dilakukan terhadap setiap kromosom pada
1 generasi. Untuk contoh perhitungan bisa lihat pada
subbab 4.3.5.
59
UIN Syarif Hidayatullah Jakarta
d. Hitung nilai fitness
Nilai fitness adalah nilai yang menyatakan seberapa
baik nilai dari suatu kromosom untuk dijadikan solusi,
semakin besar nilai fitness lebih baik.
Nilai funsgi obyektif sudah didapatkan namun masih
dapat bernilai dalam rentang yang sangat besar, agar
mempermudah melihat tingkat fitness, penulis
memetakan nilai fitness dalam rentang nilai 0 sampai
1. Maka dari itu diperlukan nilai minimal dan nilai
maksimal dari RUMUS 2 untuk menghitung
pemetaanya dengan rumus berikut:
𝑓 =F − Nmin
(Nmax − Nmin) + 1
(RUMUS 3)
Keterangan:
Nmax=Nilai Maksimum Fungsi Obyektif
Nmin=Nilai Minimum Fungsi Obyektif
F= Hasil Fungsi Obyektif
f= Nilai fitness
Perhitungan nilai fitness ini dilaukan pada setiap
kromosom pada satu generasi setelah dihitung nilai
fungsi obektifnya. Untuk contoh bisa lihat pada subbab
4.3.5.
e. Seleksi
Seleksi adalah proses memilih kromosom-kromosom
yang akan di-crossover. Seleksi dilakukan dengan
60
UIN Syarif Hidayatullah Jakarta
metode elitis yaitu memilih kromosom dengan fitness
tertinggi. Pada aplikasi ini seleksi digunakan untuk
memilih 4 kromosom sebagai kromosom yang akan di-
crossover.
Tabel 4.5 Contoh Data Untuk Seleksi
Kromosom
ke-
Fitness
1 0,7907783837382251
2 0,7773921665840356
3 0,7947446703024293
4 0,7907783837382251
5 0,7550818046603868
6 0,7932573128408528
7 0,7773921665840356
8 0,7828458106098165
Misalkan setelah dihitung nilai fitness-nya diadapatkan
data seperti pada Tabel 4.5, maka proses seleksi ini akan
memilih 4 kromosom dengan nilai fitness yang
tertinggi yaitu secara berturut-turut kromosom 3, 6, 1,
dan 4.
f. Crossover
Crossover merupakan proses menghasilkan kromosom
baru dengan mewariskan gen kromosom-kromosom
yang sudah diseleksi. Proses crossover dimulai dengan
mengacak angka riil dengan rentang 0-1. Apabila
angka acak tersebut bernilai dibawah atau sama dengan
probabilitas crossover, maka akan dilakukan crossover
1 titik dimana titik potong dipilih secara acak juga.
Penelitian ini menggunakan probabilitas crossover
61
UIN Syarif Hidayatullah Jakarta
sebesar 0,8. Jadi kita mengacak angka untuk masing-
masing pasangan kromosom hasil seleksi seperti pada
Tabel 4.6.
Tabel 4.6 Contoh Acak Angka Crossover
Pasangan Kromosom Angka Acak Titik
Potong
Acak
Keterangan
Kromosom3xKromosom6 0,32 2 Pasangan ini
mengalami
crossover di titik 2
Kromosom1xKromosom4 0,85 - Pasangan ini tidak
mengalami
crossover
Jika dilihat pada Tabel 4.6, pasangan
kromosom3xkromosom6 mengalami crossover
sedangkan kromosom1xkromosom4 tidak mengalami
crossover. Bagi yang mengalami crossover, maka
dilakukan pengacakan lagi angka bulat dalam rentang
0-4 untuk mengacak titik potong crossover. Bisa dilihat
pada Gambar 4.5 sebagai acuan titik potong berdasarkan
angka bulat 0-4.
Gambar 4.5 Acuan Titik Potong
62
UIN Syarif Hidayatullah Jakarta
Kromosom 3 dan kromosom 6 di-crossover dan akan
menghasilkan 2 kromosom baru yang disebut dengan
child seperti pada Gambar 4.6.
Gambar 4.6 Contoh Proses Crossover
Gen dari kromosom parent dibagi berdasar titik potong
untuk diwariskan kepada child, sebagaimana yang
ddapat dilihat gen warna merah akan diwaarisi Child1
dan gen warna biru akan diwarisi Child2.Sedangkan
bagi yang tidak mengalami crossover, maka kromosom
tidak mengalami perubahan sama sekali dan child akan
bernilai sama dengan parent-nya. Maka didapatkan 4
kromosom child seperti pada Tabel 4.7.
Tabel 4.7 Hasil Crossover
Kromosom
ke-
Gen
1
Gen
2
Gen
3
Gen
4
Gen
5
Gen
6
Nilai
Kromosom
Nilai
Desimal
Kromosom
Solusi Yang
Ditawarkan
Sebelum
Crossover
3 0 0 1 1 1 0 001110 14 (A#2)
6 0 1 0 0 0 1 010001 17 (C#3)
1 0 0 1 1 0 0 001100 12 (G#2)
4 0 1 0 0 1 0 010010 18 (D3)
63
UIN Syarif Hidayatullah Jakarta
Hasil
Crossover
Child1 0 0 1 0 0 1 001001 9 (F2)
Child2 0 1 0 1 1 0 010110 22 (F#3)
Child3 0 0 1 1 0 0 001100 12 (G#2)
Child4 0 1 0 0 1 0 010010 18 (D3)
g. Mutasi
Mutasi adalah proses mengubah nilai gen pada
kromosom hasil crossover. Pertama kita mengacak
angka riil dalam rentang 0-1. Apabila angka acak
tersebut lebih kecil atau sama dengan probabilitas
mutase, maka terjadi mutase dengan membalikkan
nilai biner dari gen tersebut. Aplikasi ini menggunakan
probobabilitas mutasi sebesar 0,167 berdasarkan rumus
1/n dimana n adalah jumlah gen pada kromosom yaitu
6 gen. Mutasi dilakukan pada tingkat gen, dengan kata
lain setiap gen dari kromosom child berpeluang
mengalami mutasi. Contoh simulasi proses mutasi
dapat dilihat pada Tabel 4.8 sampai Tabel 4.11.
Tabel 4.8 Contoh Proses Mutasi Child1
Gen1 Gen2 Gen3 Gen4 Gen5 Gen6
Sebelum
Mutasi
0 0 1 0 0 1
Angka
Acak
0,34 0,67 0,18 0,88 0,02 0,4
Keterangan Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Setelah
Mutasi
0 0 1 0 1 1
64
UIN Syarif Hidayatullah Jakarta
Tabel 4.9 Contoh Proses Mutasi Child2
Gen1 Gen2 Gen3 Gen4 Gen5 Gen6
Sebelum
Mutasi
0 1 0 1 1 0
Angka
Acak
0,36 0,53 0,76 0,88 0,13 0,07
Keterangan Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Terjadi
Mutasi
Terjadi
Mutasi
Setelah
Mutasi
0 1 0 1 0 1
Tabel 4.10 Contoh Proses Mutasi Child3
Gen1 Gen2 Gen3 Gen4 Gen5 Gen6
Sebelum
Mutasi
0 0 1 1 0 0
Angka
Acak
0,61 0,39 0,76 0,59 0,15 0,87
Keterangan Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Setelah
Mutasi
0 0 1 1 1 0
65
UIN Syarif Hidayatullah Jakarta
Tabel 4.11 Contoh Proses Mutasi Child4
Gen1 Gen2 Gen3 Gen4 Gen5 Gen6
Sebelum
Mutasi
0 1 0 0 1 0
Angka
Acak
0,25 0,31 0,09 0,94 0,44 0,48
Keterangan Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Setelah
Mutasi
0 1 1 0 1 0
Semua hasil mutasi akan disimpan sebagai Mchild dan
dihitung kembali nilai fitness-nya. Hasil Mchild ini
terangkum pada Tabel 4.12 berikut.
Tabel 4.12 Hasil Proses Mutasi
Kromosom
ke-
Gen
1
Gen
2
Gen
3
Gen
4
Gen
5
Gen
6
Nilai
Kromosom
Nilai
Desimal
Kromosom
Solusi
Yang
Ditawarkan
Nilai Fitness
Sebelum
Mutasi
Child1 0 0 1 0 0 1 001001 9 F2 0,7773921665840356
Child2 0 1 0 1 1 0 010110 22 F#3 0,7754090233019336
Child3 0 0 1 1 0 0 001100 12 G#2 0,7907783837382251
Child4 0 1 0 0 1 0 010010 18 D3 0,7907783837382251
Hasil
Mutasi
Mchild1 0 0 1 0 1 1 001011 11 G#2 0,7873078829945464
Mchild2 0 1 0 1 0 1 010101 20 E3 0,7828458106098165
Mchild3 0 0 1 1 1 0 001110 14 A#2 0,7947446703024293
Mchild4 0 1 1 0 1 0 011010 10 F#2 0,7828458106098165
66
UIN Syarif Hidayatullah Jakarta
h. Regenerasi
Regenrasi yang digunakan oleh penulis ialah steady-
state yang berarti hanya mengganti kromosom lemah
dengan anak hasil crossover dan mutasi jika nilai
fitness anak lebih baik dari kromosom terlemah pada
populasi. Langkah pertama yang dilakukan adalah kita
cari 4 kromosom dengan nilai fitness terlemah pada
generasi, lalu bandingkan dengan nilai fitness dari
Mchild1, Mchild2, Mchild3, dan Mchild4. Jika kita
lihat pada Tabel 4.5 maka dapat diketahui bahwa
kromosom terlemah adalah pada populasi kromosom
ke 5, 2, 7, dan 8. Bandingkan keempat kromosom
terlemah dengan 4 Mchild, apabila Mchild lebih baik
maka timpah kromosom terlemah tersebut dengan
Mchild.
Tabel 4.13 Contoh Proses Regenerasi
Kromosom
ke-
Nilai
Kromosom
Fitness Kromosom
ke-
Nilai
Kromosom
Fitness Keternagan
5 000110 0,7550818046603868 Mchild1 001011 0,7873078829945464 Timpah dengan
Mchild
2 010101 0,7773921665840356 Mchild2 010101 0,7828458106098165 Timpah dengan
Mchild
7 001001 0,7773921665840356 Mchild3 001110 0,7947446703024293 Timpah dengan
Mchild
8 001010 0,7828458106098165 Mchild4 011010 0,7828458106098165 Tidak berubah
Berdasarkan Tabel 4.13 kromosom terlemah yang
ditimpah dengan Mchild adalah kromosom 5, 2, dan
7. Maka kita timpah ketiga nilai kromosom tersebut
sehingga didapatkan generasi kedua sepert pada
Tabel 4.14.
67
UIN Syarif Hidayatullah Jakarta
Tabel 4.14 Contoh Hasil Regenerasi
Generasi Pertama Generasi Kedua
Kromosom
ke-
Nilai
Kromosom
Nilai Fitness Nilai
Kromosom
Nilai Fitness
1 001100 0,7907783837382251 001100 0,7907783837382251
2 010101 0,7773921665840356 010101 0,7828458106098165
3 001110 0,7947446703024293 001110 0,7947446703024293
4 010010 0,7907783837382251 010010 0,7907783837382251
5 000110 0,7550818046603868 001011 0,7873078829945464
6 010001 0,7932573128408528 010001 0,7932573128408528
7 001001 0,7773921665840356 001110 0,7947446703024293
8 001010 0,7828458106098165 001010 0,7828458106098165
i. Syarat berhenti
Syarat berhenti pada aplikasi ini menggunakan
pembatasan jumlah generasi sampai pada 20 generasi.
Selama belum tercapai generasi ke-20 maka proses
algoritma genetika akan mengulang terus mulai dari
tahap hitung fungsi obyektif.
4.2.2. Desain UML
Pada tahap ini penulis merancang UML berupa use case, activity
diagram, class diagram, dan sequence diagram untuk memodelkan
aplikasi.
68
UIN Syarif Hidayatullah Jakarta
4.2.2.1. Desain Use Case
Penulis menggunakan use case untuk memodelkan interaksi
pengguna dengan aplikasi ebagaimana yang dapat dilihat pada
Gambar 4.7 dan Tabel 4.15 sampai Tabel 4.17.
Gambar 4.7 Use Case Diagram Aplikasi
Tabel 4.15 Use Case-1
UC-1: Deteksi Vocal Range
Aktor Pengguna
Deskripsi Pengguna akan input nada terendah
dan tertinggi dan aplikasi akan
mendeteksi vocal range pengguna
Tabel 4.16 Use Case-2
UC-2: Memilih Lagu
Aktor Pengguna
Deskripsi Pengguna memilih lagu yang ingin
dinyanyikan setelah melakukan
deteksi vocal range
69
UIN Syarif Hidayatullah Jakarta
Tabel 4.17 Use Case-3
UC-3: Lihat Rekomendasi
Aktor Pengguna
Deskripsi Pengguna dapat melihat rekomendasi
nada optimal untuk mereka bernyanyi
setelah pengguna melakukan deteksi
vocal range dan memilih lagu.
4.2.2.2. Desain Activity Diagram
Activity Diagram memodelkan alur sesuai dengan proses
bisnis ataupun use case, meskipun biasanya disesuaikan dengan use
case. Activity diagram aplikasi dapat dilihat pada Gambar 4.8.
Gambar 4.8 Activity Diagram Aplikasi
70
UIN Syarif Hidayatullah Jakarta
Gambar 4.8 menujukkan alur aplikasi dan menjelaskan
aktifitas pengguna dan sistem secara berurut. Pengguna
menyanyikan nada terendah dan tertinggi sebagai input vocal
range yangmana aplikasi akan mendeteksi dan menyimpannya.
Lalu aplikasi menampilkan daftar lagu yang dapat pengguna
pilih. Setelah pengguna memilih lagu maka aplikasi
menghitung nada optimal menggunakan algoritma genetika
dan menampilkan hasilnya pada pengguna.
Gambar 4.9 Activity Diagram Deteksi Vocal Range
Pada Gambar 4.9 menunjukkan alur aktifitas yang ada
pada proses deteksi vocal range pengguna. Deteksi vocal range
dimulai dengan penyanyi menyanyikan nada terendah, lalu
aplikasi mendeteksi frekuensi dan dicek berdasarkan pemetaan
71
UIN Syarif Hidayatullah Jakarta
nada lalu disimpan. Proses yang sama juga dilakukan untuk
nada tertinggi dari pengguna. Setelah kedua nada disimpan,
dilakukan pengecekan apakah ketika penyimpanan nada terjadi
data yang terbalik, jika terbalik maka aplikasi menukar kedua
data tersebut dan selesai.
Gambar 4.10 Activity Diagram Memilih Lagu
Pada Gambar 4.10 menunjukkan alur aktifitas yang ada pada
use case memilih lagu. Aplikasi akan menampilkan daftar lagu-lagu
yang ada, lalu pengguna akan memiilih lagu yang ingin dinyanyikan,
dan aplikasi akan menghitung nada optimal bagi pengguna
berdasarkan vocal range dan data lagu yang ingin dinyanyikan.
72
UIN Syarif Hidayatullah Jakarta
Gambar 4.11 Activity Diagram Lihat Rekomendasi
Pada Gambar 4.11 menunjukkan alur aktifitas yang ada pada
use case lihat rekomendasi. Aktifitas yang ada pada use case ini
berupa aplikasi menghitung besar transpose berdasar hasil deteksi
vocal range, lagu yang dipilih, dan hasil hitung nada optimal yang
dilakukan pada tahap setelah memilih lagu. Lalu aplikasi akan
menampilkan rekomendasi transpose lagu berdasar vocal range dan
lagu yang dipilih pengguna.
4.2.2.3. Desain Class Diagram
Penulis menggunakan class diagram untuk menggambarkan
relasi dan definisi setiap class yang ada pada aplikasi sebagaimana
yang dapat dilihat pada Gambar 4.12.
73
UIN Syarif Hidayatullah Jakarta
Gambar 4.12 Class Diagram Apliaksi
Gambar 4.12 menggambarkan atribut-atribut, operasi, dan relasi
yang dimiliki oleh setiap class yang ada pada aplikasi.
4.2.2.4. Desain Sequence Diagram
Penulis menggunakan sequence diagram untuk memodelkan
aplikasi secara rinci dari urutan pesan yang dikirim antar objek
sebagaimana yang dapat dilihat pada Gambar 4.13.
74
UIN Syarif Hidayatullah Jakarta
Gambar 4.13 Sequence Diagram Aplikasi
Gambar 4.13 menunjukkan urutan pesan yang dikirim dari objek-
objek sesuai dengan pesan dan class yang ada pada class diagram.
4.2.3. Desain Database
Database yang diperlukan dalam aplikasi ini adalah menyimpan data
lagu-lagu, seperti judul lagu, nama penyanyi, range nada lagu dan nada
dasar asli dari lagu. Untuk itu penulis merancang struktur tabel database
seperti Tabel 4.18.
75
UIN Syarif Hidayatullah Jakarta
Tabel 4.18 Desain Tabel Database Lagu
Field Tipe Data Keterangan
ID Integer
autoincrement
Menunjukkan ID lagu dengan
fungsi khusus autoincrement
agar tidak overlapping dengan
data berikutnya.
Penyanyi-Judul Text Memuat nama penyanyi
sekaligus judul lagu.
RL Text Memuat nada terendah yang ada
pada lagu.
NadaAsli Text Memuat kunci dasar lagu.
JL Integer Memuat range nada yang
dimiliki lagu.
Penulis membuat 5 field untuk database sebagaimana pada Tabel
4.18. Berikut adalah penjelasan lebih rinci dari masing-masing field.
ID, memiliki atribut sebagai primary key, auto increment dan
bertipe data integer. Menunjukkan ID lagu dengan fungsi
khusus autoincrement agar tidak overlapping dengan data
berikutnya.
Penyanyi-Judul, penulis menggabungkan kolom penyanyi dan
judul agar memudahkan ketika memanggil data penyanyi
ataupun judulnya, penulis juga merasa kedua data tersebut
(penyanyi dan judul) tidak perlu dipisahkan.
RL, field ini menggunakan tipe data text dan diisikan sesuai
dengan nada terendah yang ada pada lagu bersangkutan.
Penulisan data ini disesuaikan dengan pemetaan nada pada
Tabel 4.2. Data ini pada aplikasinya digunakan sebagai batasan
dalam mencari nada optimal dan sebagai patokan menghitung
berapa besar perpindahan nada setelah transpose.
76
UIN Syarif Hidayatullah Jakarta
NadaAsli, bertipe data text juga yang berisikan nada dasar lagu
tersebut. Pada aplikasi ini penulis tidak menyertakan kunci
seperti minor, mayor, mayor 7, ataupun scale(tangga nada) lagu.
Jadi, hanya nada dasar seperti A, A#, B, C, C#, D, D#, E, F, F#,
G, dan G#.
JL, menggunakan tipe data integer, field ini menyatakan sebuah
angka yang merupakan jarak dari nada terendah dan nada
tertinggi pada sebuah lagu. Sebagai contoh sebuah lagu
memiliki nada terendah A1 dan nada tertinggi C#2. Sesuai
dengan representasi biner pada Tabel 4.2, lagu tersebut memiliki
nada terendah bernilai 1 dan nada tertinggi bernilai 5, berarti
lagu tersebut memiliki range nada lagu 4 nada.
4.2.4. Desain User Interface
Desain user interface atau antarmuka aplikasi ini memiliki 4
tampilan sebagai pada Gambar 4.14 sampai Gambar 4.17.
Gambar 4.14 Tampilan Instruksi
Tampilan pada Gambar 4.14 merupakan alert dialog message
berisikan instruksi melakukan deteksi vocal range.
77
UIN Syarif Hidayatullah Jakarta
Gambar 4.15 Tampilan Utama
Pada tampilan ketika pertama kali di buka aplikasi akan meminta
persetujuan untuk akses mikrofon ponsel pengguna dan jika sudah dapat
akses maka akan menampilkan intstruksi sebagaimana terlihat pada Gambar
4.15. Pada tampilan utama terdapat 5 teks dan 1 tombol. Kelima teks
tersebut merupakan teks dinamis yang berubah teksnya sesuai dengan
proses aplikasi. Berikut rinciannya:
TextView1, menampilkan nada terendah anda yang telah
berhasil dideteksi aplikasi.
TextView2, menampilkan nada tertinggi anda yang telah
berhasil dideteksi aplikasi.
TextView3, menampilkan instruksi nada terendah/tertinggi
yang perlu pengguna nyanyikan untuk di deteksi.
TextView4, menampilkan nilai frekuensi secara real-time
yang masuk melalui mikrofon android pengguna.
TextView5, menampilkan nilai nada yang masuk melalui
mikrofon android pengguna secara real-time.
Tombol dengan logo mikrofon pada tampilan utama berfungsi
sebagai pemicu proses deteksi vocal range untuk dimulai.
78
UIN Syarif Hidayatullah Jakarta
Gambar 4.16 Tampilan Pilih Lagu
Pada tampilan pilih lagu terdapat 2 komponen inti. Komponen
TextView1 dan TextView2 yang berfungsi sama seperti tampilan utama yaitu
menampilkan nada terendah dan nada tertinggi yang telah dideteksi aplikasi.
Tampilan ini juga memiliki komponen ListView yang berfungsi sebagai
wadah untuk menampilkan lagu-lagu dari database yang ada.
Gambar 4.17 Tampilan Hasil
Gambar 4.17 merupakan tampilan terakhir dalam aplikasi yaitu
tampilan hasil yang memiliki 7 TextView. Ketujuh TextView tersebut
memiliki penjelasan sebagai berikut:
79
UIN Syarif Hidayatullah Jakarta
TextView1, menampilkan nada terendah anda yang telah
berhasil dideteksi aplikasi.
TextView2, menampilkan nada tertinggi anda yang telah
berhasil dideteksi aplikasi.
TextView3, menunjukkan kunci lagu dari database sebelum
dilakukannya transpose.
TextView4, menunjukkan nada terendah lagu dari database
sebelum dilakukannya transpose.
TextView5, menampilkan seberapa besar transpose nada
yang dilakukan dari kunci asli ke kunci yang optimal bagi
pengguna.
TextView6, menampilkan nada terendah dalam lagu tersebut
setelah proses transpose.
TextView7, menampilkan kunci lagu yang ingin
dinyanyikan yang sudah disesuaikan dengan nada optimal
pengguna.
Selain tujuh TextView, terdapat juga 2 tombol dengan logo panah
yang berfungsi apabila pengguna ingin mengulangi semua tahap kembali
dan tombol dengan logo list untuk mencoba lagu lagu lain menggunakan
vocal range yang sudah dideteksi.
4.3. Coding
Penulis membangun aplikasi ini menggunakan perangkat keras milik
penulis dengan spesifikasi sebagai berikut:
Laptop dengan processor Intel Core i5-8250u.
RAM 8,00 GB.
NVIDIA GeForce MX150 2 GB VRAM.
Penulis juga menggunakan perangkat lunak sebagai berikut:
Android Studio 3.4
80
UIN Syarif Hidayatullah Jakarta
Build #AI-183.5429.30.34.5452501, built on April 10, 2019
JRE: 1.8.0_152-release-1343-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Aplikasi yang dibuat memiliki spesifikasi sebagai berikut:
a. Compile SDK Version 28, Penulis menggunakan SDK Version 28
dikarenakan SDK tersebut merupakan versi terbaru saat penulis
mengembangkan aplikasi.
b. Target SDK Version 23 (Android 6.0 Marshmallow), Target SDK
disesuaikan dengan pernagkat android yang dimiliki oleh penulis saat
mengembangkan aplikasi dan merupakan versi android dengan
distribusi terbanyak berdasarkan Tabel 2.3.
Aplikasi dikembangkan berdasar rancangan yang sudah dibuat, yangmana
pada penerapannya aplikasi ini memiliki 6 class java. Keenam class tersebut
adalah MainActivity, Nada, menu_pilihlagu, DataHelper, Algogen, dan Hasil.
4.3.1. Class MainActivity
MainActivity merupakan class utama dari aplikasi ini. Pada class ini
meliputi proses input nada pengguna secara real-time yang terhubung
dengan TarsosDSP Library dan class Nada. Aplikasi lalu akan diarahkan
ke class berikutnya yaitu menu_pilihlagu class.
Penggunaan TarsosDSP untuk deteksi vocal pengguna dapat dilihat
pada kode yang dituliskan di bawah berikut.
81
UIN Syarif Hidayatullah Jakarta
4.3.2. Class Nada
Aplikasi membutuhkan sebuah rangkaian aturan untuk konversi
nilai frekuensi setelah diproses oleh TarsosDSP Library. Class ini berisi
fungsi-fungsi untuk konversi tersebut, seperti konversi frekuensi yang
bertipe data double ke dalam nada yang bertipe data String menggunakan
Tabel 4.1 dan sebaliknya, konversi nada ke dalam bentuk representasi angka
bertipe data integer sesuai dengan Tabel 4.2 dan sebaliknya. Selain itu juga
terdapat fungsi untuk proses terakhir dari aplikasi yaitu perhitungan kunci
dasar setelah mendapatkan besar transpose hasil algoritma genetika.
int permissionCheck = ContextCompat.checkSelfPermission(this, //cek permission mic
Manifest.permission.RECORD_AUDIO);
if (permissionCheck != PackageManager.PERMISSION_GRANTED) { //jika belum allowed maka request permission
requestRecordAudioPermission();
}
else {
//Jika sudah memiliki izin mic, jalankan TarsosDSP sebagai berikut:
AudioDispatcher dispatcher =
AudioDispatcherFactory.fromDefaultMicrophone(44100, 2048, 0); //sample rate :44100, frame: 2048
Thread audioThread = new Thread(dispatcher, "Audio Thread");
final PitchDetectionHandler pdh = new PitchDetectionHandler() {
@Override
public void handlePitch(PitchDetectionResult res, AudioEvent e) {
final double pitch = res.getPitch();
runOnUiThread(new Runnable() {
@Override
public void run() {
String ada = N.FreqNada(pitch); //konversi nilai frekuensi menggunakan class Nada
nada.setText(String.valueOf(pitch)); //menampilkan nilai frekuensi
t.setText(ada); //menampilkan nada setelah konversi
}
});
}
};
final AudioProcessor pitchProcessor = new PitchProcessor(PitchProcessor.PitchEstimationAlgorithm.FFT_YIN, 44100, 2048, pdh);
dispatcher.addAudioProcessor(pitchProcessor);
audioThread.start();
82
UIN Syarif Hidayatullah Jakarta
Semua peraturan tersebut dikodekan sebagaimana teks di bawah ini.
public int NadaNum(String Rp) {
//konversi nada menjadi representasi angka untuk algoritma genetika
int NadaNum;
if (Rp.equals("G#1")) {
NadaNum = 0;
} else if (Rp.equals("A1")) {
NadaNum = 1;
} else if (Rp.equals("A#1")) {
NadaNum = 2;
} else if (Rp.equals("B1")) {
NadaNum = 3;
} else if (Rp.equals("C2")) {
NadaNum = 4;
} else if (Rp.equals("C#2")) {
NadaNum = 5;
Dan seterusnya….
public String NumtoNada(int num) {
//Konversi representasi angka menjadi nada
String Nadan;
if (num == 0) {
Nadan="G#1";
} else if (num == 1) {
Nadan="A1";
}
Dan seterusnya….
public String FreqNada(double freq) {
//konversi frekuensi menjadi nada
String Nada ;
if (freq >= 50.43 && freq <= 53.43) {
Nada="A1";
return Nada;
} else if (freq > 53.43 && freq <= 56.61) {
Nada="A1";
return Nada;
} else if (freq > 56.61 && freq <= 59.97) {
Nada="A#1";
return Nada;
} else if (freq > 59.97&& freq <= 63.54) {
Nada="B1";
return Nada;
Dan seterusnya….
83
UIN Syarif Hidayatullah Jakarta
4.3.3. Class DataHelper
Class DataHelper merupakan class yang berfungsi sebagai database
SQLite. Class ini berisikan query SQLite yang membuat database lagu
Sesuai dengan desain tabel database seperti pada Tabel 4.18, penulis
mengisikan data database dengan 4 lagu yang direkomendasikan oleh ahli
agar dapat menjadi patokan dalam melakukan transpose. Lagu-lagu tersebut
dapat dilihat pada Tabel 4.19.
public int NadaNumDasar(String Asli) {//Mengubah nada menjadi angka untuk algoritma genetika int NadaNum=200;
if (Asli.equals("A")) {
NadaNum = 1;
} else if (Asli.equals("A#")) {
NadaNum = 2;
} else if (Asli.equals("B")) {
NadaNum = 3;
} Dan seterusnya….
public String NadaDasar(int transpose, String asli){
//perhitungan kunci dasar setelah transpose
int numasli= NadaNumDasar(asli);
int hasiltranspose=numasli+transpose;
String nadahasil="";
if(hasiltranspose<=0){
do{
hasiltranspose+=12;
}while(hasiltranspose<=0);
}
else if(hasiltranspose>12){
do{
hasiltranspose-=12;
}while(hasiltranspose>12);
}
if (hasiltranspose == 1) {
nadahasil = "A";
}
if (hasiltranspose == 2) {
nadahasil = "A#";
}Dan seterusnya….
84
UIN Syarif Hidayatullah Jakarta
Tabel 4.19 Tabel Database Lagu
ID Penyanyi-Judul RL NadaAsli JL
1 Afgan–Terima Kasih Cinta F3 C 14
2 Agnes Monica–Matahariku G3 G 24
3 Judika–Jadi Aku Sebentar
Saja
G3 A 17
4 Ruth Sahanaya–Andaikan
Kau Datang Kembali
A#3 D# 17
4.3.4. Class Menu Pilih Lagu
Class ini memiliki fungsi utama agar pengguna dapat memilih lagu
yang ingin dinyanyikan dan sebagai inisiasi perhitungan algoritma genetika.
Tampilan pilih lagu seperti pada Gambar 4.16 menampilkan pilihan lagu
untuk dinyanyikan oleh pengguna yang diambil dari database melalui class
DataHelper dan ditampilkan dalam bentuk ListView judul dan penyanyi
lagu tersebut. Inisiasi algoritma genetika dilakukan setelah pengguna
memilih lagu dan mengirimkan data vocal range penyanyi dan lagu pilihan
ke class Algogen untuk diproses.
4.3.5. Class Algogen
Class Algogen adalah class inti pada aplikasi ini yang mencari dan
menghitung nada optimal untuk pengguna menyanyikan lagu pilihannya
berdasarkan vocal range pengguna. Algogen memiliki tahapan-tahapan
seperti flowchart pada Gambar 4.4.
Algoritma genetika ini menggunakan batasan berupa jumlah
perulangan generasi sebanyak 20 perulangan. Jumlah perulangan ini penulis
anggap sudah mencukupi untuk mencari nilai optimal. Jumlah 20 ini tidak
melebihi 1/3 dari 64 nada yang dipetakan, yangmana inti dari menggunakan
85
UIN Syarif Hidayatullah Jakarta
algoritma genetika yaitu agar pencarian nilai optimum tidak perlu mencoba
semua kemungkinan yang ada.
Untuk memahami setiap langkah algoritma genetika yang dibuat,
asumsikan ada seseorang dengan vocal range A2-D#4 ingin menyanyikan
lagu “Afgan – Terima Kasih Cinta” sebagai contoh kasus. Dari contoh kasus
tersebut maka didapatkan data sebagai berikut:
Diketahui:
Vocal Range: A2-D#4
Rp: 13 (Represesntasi Desimal Dari A2)
Tp: 31 (Represesntasi Desimal Dari D#4)
Nada terendah lagu: F3 (Dari Database)
Nada asli lagu: C (Dari Database)
Range nada lagu: 14 (Dari Database)
Gambar 4.18 Ilustrasi Contoh Kasus
Pada kasus ini sebagaimana yang tampak pada Gambar 4.18, ada
nada lagu yang tidak dijangkau oleh kemampuan bernyanyi si penyanyi.
86
UIN Syarif Hidayatullah Jakarta
Maka dari itu perlu dilakukannya transpose lagu sehingga nada lagu
bergeser ke titik optimal vocal range penyanyi.
Dari data yang sudah didapatkan, fungsi obyektif dapat dirumuskan
sebagai berikut:
F = (𝑅𝑏 − 𝑅𝑝) ∗ (𝑇𝑝 − (𝑅𝑏 + JL))
F = (𝑅𝑏 − 13) ∗ (31 − (𝑅𝑏 + 14))
Keterangan:
F: Fungsi Obyektif
Rb: Nada terendah yang dicari
Rp: 13 (Representasi desimal A2)
Tp: 31 (Representasi desimal D#4)
Jl: 14 (range nada lagu “Terima Kasih Cinta”)
Maka didapatkan nilai maksimum dan minimum dari fungsi tersebut
sebagai berikut:
Min= -1600
Max= 416
Setelah mendapatkan nilai maksimum dan minimum berarti kita bisa
dapat rumus ftitness sebagai berikut:
𝑓 =F − (−1600)
(416 − (−1600) + 1
Keterangan:
f = Nilai fitness
F = Hasil Fungsi Obyektif
87
UIN Syarif Hidayatullah Jakarta
Sesuai dengan Gambar 4.4 proses algoritma yang dikerjakan adalah
bangkitkan generasi pertama, hitung nilai obyektif, hitung nilai fitness,
seleksi, crossover, mutasi, dan regenerasi hingga tercapai 20 generasi.
4.3.5.1. Generasi Pertama
Tahap ini merupakan tahap pembangkitan generasi pertama.
Generasi yang dibangkitkan memiliki jumlah populasi sebanyak 8
kromosom. Setiap kromosom memiliki 6 gen kromosom.
Pembangkitan generasi pertama dilakukan dengan
pengacakan. Nilai setiap gen pada kromosom individu akan diacak
antara bernilai 0 atau 1, begitu juga pada individu lainnya sehingga
membentuk 1 populasi rangkaian kromosom atau dalam hal ini
rangkaian biner.
Kode membangkitkan generasi pertama adalah sebagai
berikut.
Setiap gen dari setiap kromosom diacak dan langsung
dikonversikan menjadi decimal agar dapat diketahui solusi yang
for (int i = 0; i < jmlhpopulasi; i++) {
//Random Generate generasi pertama dalam bentuk biner
for (int j = 0; j < jmlhgen; j++) {
chr[i][j] = random.nextInt(2);
}
}
//ubah kromosom yang berbentuk biner ke desimal//
for (int i = 0; i < jmlhpopulasi; i++)
int chro = BinerToDec(chr, jmlhgen, i);
if (chro + Jl > 63) { //Biner ke NumNada, dan cek jika ditambah jangkauan lagu >63 maka hasil
random(chro) menjadi nada tinggi
NumRb = chro - Jl;
NumTb = chro;
} else {
NumRb = chro;
NumTb = chro + Jl;
}
}
88
UIN Syarif Hidayatullah Jakarta
ditawarkan sehingga didapatkan satu populasi dari generasi pertama
seperti pada Tabel 4.20.
Tabel 4.20 Generasi Pertama Contoh
Kromosom
ke-
Hasil Acak Nilai
Kromosom
Nilai
Desimal
Kromosom
Solusi
Yang
Ditawarkan
Gen
1
Gen
2
Gen
3
Gen
4
Gen
5
Gen
6
1 0 0 1 1 0 0 001100 12 (G#2)
2 0 1 0 1 0 1 010101 21 (F3)
3 0 0 1 1 1 0 001110 14 (A#2)
4 0 1 0 0 1 0 010010 18 (D3)
5 0 0 0 1 1 0 000110 6 (D2)
6 0 1 0 0 0 1 010001 17 (C#3)
7 0 0 1 0 0 1 001001 9 (F2)
8 0 0 1 0 1 0 001010 10 (F#2)
4.3.5.2. Hitung Nilai Fungsi Obyektif
Tahap berikutnya adalah menghitung nilai fungsi obyektif
dengan menggunakan RUMUS 2 di masing-masing kromosom.
Kode untuk menghitung nilai fungsi obyektif adalah sebagai
berikut.
89
UIN Syarif Hidayatullah Jakarta
Misalkan perhitungan fungsi obyektif kromosom pertama
pada Tabel 4.20, 001100 dikonversi ke desimal menjadi 12. Angka
12 ini dimasukkan ke RUMUS 2 sebagai Rb, sehingga fungsi
obyektif dapat dihitung sebagai berikut:
Rp: 13 (Representasi desimal A2 nada terendah vocal range)
Tp: 31 (Representasi desimal D#4 nada tertinggi vocal range)
Jl: 14 (range nada lagu “Terima Kasih Cinta”)
Rb: 12 (Dari kromosom hasil acak)
F = (𝑅𝑏 − 𝑅𝑝) ∗ (𝑇𝑝 − (𝑅𝑏 + 𝐽𝑙))
F = (12 − 13) ∗ (31 − (12 + 14))
F = (12 − 13) ∗ (31 − (26))
F = −1 ∗ 5
F = −5
public int fx(int NumRb, int NumTb, int NumRp, int NumTp){
//Fungsi Obyektif
int fx = (NumRb-NumRp)*(NumTp-NumTb);
return fx;
}
for (int i = 0; i < jmlhpopulasi; i++) {
int chro = BinerToDec(chr, jmlhgen, i);
if (chro + Jl > 63) { //Biner ke NumNada, dan cek jika ditambah jangkauan lagu >63 maka hasil
random(chro) menjadi nada tinggi
NumRb = chro - Jl;
NumTb = chro;
} else {
NumRb = chro;
NumTb = chro + Jl;
}
hasilfx[i] = fx(NumRb, NumTb, NumRp, NumTp); //Hitung Fungsi obyektif dan memasukan nilai
hasil fungsi objektif ke array setelah konversi biner ke desimal
}
90
UIN Syarif Hidayatullah Jakarta
Perhitungan dilakukan terhadap setiap kromosom pada
populasi sehingga didapatkan masing-masing kromosom dengan
nilai fungsi obyektif seperti pada Tabel 4.21.
Tabel 4.21 Nilai Fungsi Obyektif Contoh
Kromosom
ke-
Nilai
Kromosom
Nilai
Desimal
Kromosom
Nilai
Fungsi
Obyektif
1 001100 12 -5
2 010101 21 -32
3 001110 14 3
4 010010 18 -5
5 000110 6 -77
6 010001 17 0
7 001001 9 -32
8 001010 10 -21
4.3.5.3. Hitung Nilai Fitness
Berikutnya menghitung nilai fitness dari masing-masing
kromosom dengan menggunakan RUMUS 3.
Kode menghitung nilai fitness adalah sebagai berikut.
public double fitness(double fx, double NilaiMin, double NilaiMax){
//fungsi Menghitung Nilai fitness
double f= (fx+NilaiMin)/(NilaiMax+NilaiMin);
return f;
}
for (int i = 0; i < jmlhpopulasi; i++) {
f[i] = fitness(hasilfx[i], NilaiMin, NilaiMax);
//hitung total fitness dari semua individu
}
91
UIN Syarif Hidayatullah Jakarta
Hasil Fungsi Obyektif dilanjutkan dengan dimasukkan ke
RUMUS 3 untuk mencari fitness.
Min= -1600
Max= 416
F= -5 (Hasil perhitungan contoh fungsi obyektif sebelumnya)
𝑓 =−5 − (−1600)
416 − (−1600) + 1
𝑓 =1595
2017
𝑓 = 0,7907783837382251
Nilai fitness untuk kromosom pertama adalah
0,7907783837382251. Hal ini dilakukan pada setiap kromosom
pada populasi sehingga menghasilkan data seperti pada Tabel 4.22.
Tabel 4.22 Fitness Generasi Pertama Contoh
Kromosom
ke-
Kromosom Desimal(Nada) Fitness
1 001100 12(G#2) 0,7907783837382251
2 010101 21(F3) 0,7773921665840356
3 001110 14(A#2) 0,7947446703024293
4 010010 18(D3) 0,7907783837382251
5 000110 6(D2) 0,7550818046603868
6 010001 17(C#3) 0,7932573128408528
7 001001 9(F2) 0,7773921665840356
8 001010 10(F#2) 0,7828458106098165
92
UIN Syarif Hidayatullah Jakarta
4.3.5.4. Seleksi
Tahap seleksi merupakan tahap memilih individu yang akan
“dikawinkan” untuk menghasilkan solusi baru yang diharapkan
lebih baik. Penulis melakukan seleksi dengan menggunakan metode
elitisme, yaitu mencari 4 individu dengan nilai fitness terbaik untuk
disilangkan nilai gen kromosomnya.
Bisa dilihat pada Tabel 4.22 bahwa 4 kromosom dengan nilai
fitness tertinggi adalah kromosom ke-3, 6, 1, dan kromosom ke-4.
Kedua pasang kromosom tersebut menjadi parent untuk di-
crossover sehingga menghasilkan kromosom child.
4.3.5.5. Crossover
Tahap crossover merupakan tahap penyilangan dari hasil
tahap seleksi. Proses crossover dilakukan menggunakan metode
penyilangan satu titik dengan syarat angka acak bernilai kurang dari
atau sama dengan probabilitas crossover yang ditentukan yaitu 0.8.
Titik potong ditempatkan secara acak. Kode untuk proses
penyilangan dapat dilihat di bawah ini.
93
UIN Syarif Hidayatullah Jakarta
Dari kedua pasang parent tersebut kita acak sebuah angka
riil untuk menentukkan apakah terjadi crossover pada pasangan
tersebut, jika terjadi crossover maka acak titik potong. Untuk
prosesnya dapat dilihat pada Tabel 4.23.
Tabel 4.23 Probabilitas Crossover Contoh
Pasangan Kromosom Angka Acak Titik
Potong
Acak
Keterangan
Kromosom3xKromosom6 0,78 3 Pasangan ini
mengalami
crossover di titik 2
Cpprob=0.8;
//Tahap Crossover parent menggunakan crossover one point//
for(int k=0;k<parent.length;k+=2) {
if (random.nextDouble() * (1 - 0) <= cprob) {
cp1 = (random.nextInt(5) + 1); //random titik potong crossover
Log.d("sout", "cp"+k+"x"+(k+1)+":"+cp1+"");
for (int j = 0; j < jmlhgen; j++) { //crossover child0/2
if (j <= cp1) {
child[k][j] = parent[k][j];
} else {
child[k][j] = parent[k+1][j];
}
}
for (int j = 0; j < jmlhgen; j++) { //crossover child1/3
if (j <= cp1) {
child[k+1][j] = parent[k+1][j];
} else {
child[k+1][j] = parent[k][j];
}
}
}
else {
for (int j = 0; j < jmlhgen; j++) { //tidak ada crossover
child[0][j] = parent[0][j];
Log.d("sout", "cp:Tidak crossover");
}
}
}
94
UIN Syarif Hidayatullah Jakarta
Kromosom1xKromosom4 0,93 - Pasangan ini tidak
mengalami
crossover
Pada contoh ini pasasngan kromosom parent 3x6 mengalami
crossover dengan titik potong 3 sehingga menghasilkan individu
baru sebagaimana pada Gambar 4.19
Kromosom Gen1 Gen2 Gen3 Gen4 Gen5 Gen6
Parent Kromosom3 0 0 1 1 1 0
Kromosom6 0 1 0 0 0 1
Hasil Child1 0 0 1 0 0 1
Child2 0 1 0 1 1 0
Gambar 4.19 Crossover Contoh
Gambar 4.19 di atas bahwa persilangan menghasilkan
individu baru dengan kromosom 001101 dan 010010 yangmana
memiliki nilai desimal sebagaimana pada Tabel 4.24
Tabel 4.24 Hasil Persilangan Contoh
Kromosom
ke-
Kromosom Desimal(Nada)
Child1 001101 13(A2)
Child2 010010 18(D3)
95
UIN Syarif Hidayatullah Jakarta
4.3.5.6. Mutasi
Tahapan mutasi pada aplikasi ini menggabungkan skema
mutasi pada tingkat kromosm dan skema mutasi hanya pada satu bit.
Pada dasarnya aplikasi akan mengacak angka riil antara 0 sampai 1
di setiap gen, jika angka acak tersebut bernilai kurang dari atau
0,167(nilai probabilitas mutasi) maka akan dilakukan mutasi pada
tingkat gen terhadap kromosom hasil crossover.
Kode untuk proses mutasi adalah sebagai berikut.
Pada contoh ini kita acak angka antara 0 dan 1, apabila hasil
pengacakan bernilai kurang dari atau sama dengan 0,167 maka gen
tersebut mengalami mutasi. Tabel 4.25 sampai Tabel 4.28Tabel 4.11
menunujukkan pengacakan angka.
//Tahap Mutasi Gen//
//jika random pada gen ke-j random mutasi lebih besar dari laju mutasi, maka lakukan mutase
double probmutasi = 0.167;
for (int i = 0; i < child.length; i++) {
for (int j = 0; j < jmlhgen; j++) {
//random angka
double randommutasi = 0 + random.nextDouble() * (1 - 0);
if (randommutasi <= probmutasi) {
if (child[i][j] == 1) {
child[i][j] = 0;
} else {
child[i][j] = 1;
}
}
}
}
96
UIN Syarif Hidayatullah Jakarta
Tabel 4.25 Probabilitas Mutasi Child1 Contoh
Gen1 Gen2 Gen3 Gen4 Gen5 Gen6
Sebelum
Mutasi
0 0 1 1 0 1
Angka
Acak
0,31 0,54 0,67 0,28 0,13 0,74
Keterangan Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Setelah
Mutasi
0 0 1 1 1 1
Tabel 4.26 Probabilitas Mutasi Child2 Contoh
Gen1 Gen2 Gen3 Gen4 Gen5 Gen6
Sebelum
Mutasi
0 1 0 0 1 0
Angka
Acak
0,66 0,42 0,74 0,19 0,08 0,10
Keterangan Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Terjadi
Mutasi
Terjadi
Mutasi
Setelah
Mutasi
0 1 0 0 0 1
97
UIN Syarif Hidayatullah Jakarta
Tabel 4.27 Probabilitas Mutasi Child3 Contoh
Gen1 Gen2 Gen3 Gen4 Gen5 Gen6
Sebelum
Mutasi
0 0 1 1 0 0
Angka
Acak
0,86 0,97 0,37 0,59 0,04 0,55
Keterangan Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Setelah
Mutasi
0 0 1 1 1 0
Tabel 4.28 Probabilitas Mutasi Child4 Contoh
Gen1 Gen2 Gen3 Gen4 Gen5 Gen6
Sebelum
Mutasi
0 1 0 0 1 0
Angka
Acak
0,35 0,75 0,15 0,66 0,24 0,77
Keterangan Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Tidak
Terjadi
Mutasi
Setelah
Mutasi
0 1 1 0 1 0
Berdasarkan hasil pengacakan pada Tabel 4.25 sampai Tabel
4.28, terjadi mutasi pada gen-gen Child1, Child2, Child3, dan
Child4. Perubahan kromosom dapat dilihat pada Gambar 4.20 dan
Gambar 4.21.
98
UIN Syarif Hidayatullah Jakarta
0 0 1 1 0 1 - - - > 0 0 1 1 1 1
Gambar 4.20 Contoh Proses Mutasi
0 1 0 0 1 0 - - - > 0 1 0 0 0 1
Gambar 4.21 Contoh Proses Mutasi Child2
0 0 1 1 0 0 - - - > 0 0 1 1 1 0
Gambar 4.22 Contoh Proses Mutasi Child3
0 1 0 0 1 0 - - - > 0 1 1 0 1 0
Gambar 4.23 Contoh Proses Mutasi Child4
Setelah dilakukan mutasi kemudian keempat kromosom
Child dikonversi menjadi desimal dan dihitung nilai fitness-nya lalu
dicatat sebagai Mchild dapat dilihat pada Tabel 4.29.
Tabel 4.29 Hasil Proses Mutasi Contoh
Kromosom
ke-
Kromosom Desimal(Nada) Fitness
Mchild1 001111 15(B2) 0,7952404561229549
Mchild2 010001 17(C#3) 0,7932573128408528
Mchild3 001110 14(A#2) 0,7947446703024293
Mchild4 011001 10(F#2) 0,7828458106098165
4.3.5.7. Regenerasi
Tahap regenerasi merupakan tahap terakhir sebelum
pengecekan syarat berhenti. Tahap regenerasi pada aplikasi ini
adalah menggunakan steady-state, yaitu proses menghilangkan 4
99
UIN Syarif Hidayatullah Jakarta
kromosom dengan fitness terendah dan menambahkan kromosom
hasil crossover dan mutasi jika hasil crossover dan mutasi memiliki
nilai fitness lebih baik dari kromosom terlemah.
Kode proses regenerasi pada aplikasi adalah sebagai berikut.
Bandingkan 4 kromosom terlemah dengan 4 Mchild
sebagaimana pada Tabel 4.30.
Tabel 4.30 Proses Perbandingan Untuk Regenerasi
Kromosom
ke-
Nilai
Kromosom
Fitness Kromosom
ke-
Nilai
Kromosom
Fitness
Keternagan
5 000110 0,7550818046603868 Mchild1 001111 0,7952404561229549 Timpah dengan
Mchild
2 010101 0,7773921665840356 Mchild2 010001 0,7932573128408528 Timpah dengan
Mchild
7 001001 0,7773921665840356 Mchild3 001110 0,7947446703024293 Timpah dengan
Mchild
8 001010 0,7828458106098165 Mchild4 011001 0,7828458106098165 Tidak berubah
//Tahap Regenerasi, Kromosom dengan fitness terendah akan digantikan oleh child//
for (int h = 0; h < child.length; h++) {
double a = 100;
for (int i = 0; i < jmlhpopulasi; i++) {
//cari nilai fitness terendah
if (f[i] < a) {
a = f[i];
terendah[h] = i;
}
}
if (fitchild[h] > f[terendah[h]]) {
for (int j = 0; j < jmlhgen; j++) {
//timpah nilai terendah dengan child baru
chr[terendah[h]][j] = child[h][j];
f[terendah[h]] = fitchild[h];
}
}
}
100
UIN Syarif Hidayatullah Jakarta
Setelah diketahui kromosom mana yang hilang dan
kromosom mana yang dimasukkan maka didapatkan hasil
regenerasi seperti pada Tabel 4.31.
Tabel 4.31 Hasil Regenerasi Contoh
Generasi Pertama Generasi Kedua
Kromosom
ke-
Nilai
Kromosom
Nilai Fitness Nilai
Kromosom
Nilai Fitness
1 001100 0,7907783837382251 001100 0,7907783837382251
2 010101 0,7773921665840356 010001 0,7932573128408528
3 001110 0,7947446703024293 001110 0,7947446703024293
4 010010 0,7907783837382251 010010 0,7907783837382251
5 000110 0,7550818046603868 001111 0,7952404561229549
6 010001 0,7932573128408528 010001 0,7932573128408528
7 001001 0,7773921665840356 001110 0,7947446703024293
8 001010 0,7828458106098165 001010 0,7828458106098165
Hasil regenerasi generasi pertama adalah generasi kedua.
Tabel 4.31 di atas menunjukkan generasi kedua, di mana kromosom
ke-6, 2, dan 7 sudah diganti dengan kromosom dengan fitness lebih
baik hasil crossover dan mutasi. Semua kegiatan ini diulang sampai
dengan batas yang ditentukan yaitu 20 kali.
Tahapan terakhir dari Class Algogen adalah mencari nilai
fitness terbaik. Kromosom dengan nilai fitness terbaik yang dimiliki
pada generasi terakhir dijadikan hasil optimasi algoritma genetika
lalu dikirim ke class Hasil untuk ditampilkan kepada pengguna.
101
UIN Syarif Hidayatullah Jakarta
4.3.6. Class Hasil
Class Hasil merupakan class yang berfungsi untuk menampilkan
semua hasil proses dalam aplikasi. Class ini menampilkan vocal range
pengguna, kunci asli lagu yang dipilih, hasil transpose, besar transpose, dan
rekomendasi kunci lagu setelah transpose.
Vocal range pengguna didapatkan dari class MainActivity
setelah melakukan tahapan deteksi vocal range.
Kunci lagu asli dan nada terendah asli lagu didapatkan dari
database setelah pengguna memilih pada class
menu_pilihlagu.
Hasil transpose merupakan nada yang didapatkan hasil
optimasi algoritma genetika yang ditulis sebagai ”nada
terendah sekarang”.
Besar transpose didapatkan dari hasil transpose yang
dikonversikan ke representasi angka lalu dikurangi
representasi angka dari nada terendah asli lagu.
Rekomendasi kunci lagu diperoleh menggunakan besar
transpose dan dimasukkan pada fungsi perhitungan nada
dasar yang tercantum pada subbab 4.3.2 sebelumnya.
Jika mengasumsikan Tabel 4.31 adalah generasi terakhir, berarti kita
mendapatkan hasil algoritma genetika bernilai 15 dengan nilai fitness
0,7952404561229549. Maka kesimpulan yang ditarik aplikasi sebagai
berikut:
Desimal hasil algoritma genetika yaitu 15 dikonversikan ke
dalam nada, maka “nada terendah sekarang” bernilai B2.
Besar transpose bisa dihitung dengan “nada terendah
sekarang” dikurangi dengan nada terendah lagu (F3), yaitu
15 dikurangi 21. Besar transpose adalah –6. Apabila besar
102
UIN Syarif Hidayatullah Jakarta
transpose bernilai negatif maka nada lagu geser ke kiri,
apabila positif geser ke kanan.
Rekomendasi kunci lagu adalah kunci asli (C) lagu
dikurangi besar transpose, berarti rekomendasi kunci lagu
adalah F#.
Gambar 4.24 Ilustrasi Setelah Transpose
Gambar 4.24 menunjukkan letak nada lagu sesuai hasil transpose
aplikasi. Nada lagu digeser sebesar 6 nada ke kiri sesuai besar transpose
yangmana bergeser ke titik optimal dari vocal range penyanyi. Bisa dilihat
pada Gambar 4.24 tidak ada nada yang diluar dari vocal range penyanyi
sehingga penyanyi dapat menyanyikan lagu tersebut lebih optimal.
Class Hasil ini diakhiri dengan 3 pilihan. Ketiga pilihan itu adalah
mengulang semua tahapan dari awal lagi, menggunakan vocal range yang
sama untuk lagu lain yangmana aplikasi mengarahkan pengguna kembali
ke Class menu pilih lagu, atau pengguna bisa berhenti dan selesai
menggunakan aplikasi ini.
4.4. Testing
Pengujian aplikasi ini menggunakan metode black box, yangmana
dilakukan untkuk menguji kesalahan interface, fungsi yang salah atau hilang,
103
UIN Syarif Hidayatullah Jakarta
kesalahan struktur data, kesalahan akses eksternal terhadap database, kesalahan
pada tingkat performa.
Dalam pengujian ini, penulis memberikan aplikasi untuk dicoba dan diamati
oleh user. User yang bertindak dalam pengujian black box ini adalah seorang ahli
di bidang vokal. Delly Trianggana, pelatih vokal berpengalaman 6 tahun dan
bersertifikat lomba tingkat internasional.
4.4.1. Pengujian Black Box
Pengujian black box dari segi interface akan meliputi pengujian
tampilan-tampilan pada aplikasi. Pengujian dilakukan dengan mencoba
setiap tampilan yang ada pada aplikasi. Hasil pengujian dapat dilihat pada
Tabel 4.32.
Tabel 4.32 Hasil Pengujian
No. Deskripsi Harapan Hasil Keterangan
1 Deteksi Vocal Range Aplikasi dapat
mendeteksi nada
setelah tombol
ditekan
Berhasil, Sudah cukup
sensitif dan tepat, namun
harus pertimbangkan noise
lingkungan dan vibra
penyanyi
2 Memilih Lagu Aplikasi dapat
memanggil
database lagu dan
menampilkannya
Berhasil
3 Memberikan
Rekomendasi
Aplikasi
memberikan
rekomendasi besar
transpose dan kunci
yang disarankan
Berhasil
104
UIN Syarif Hidayatullah Jakarta
Pengujian dalam aplikasi menunjukkan hasil yang baik, tidak
terdapat kesalahan dan dapat bekerja sebagaimana yang diharapkan. Namun
penguji ahli mengomentari perlunya diperhitungkan lagi soal noise
lingkungan dan vibra penyanyi saat deteksi vocal range.
105
BAB 5
5. HASIL DAN PEMBAHASAN
5.1.1. Hasil Aplikasi
Dalam menilai hasil aplikasi yang sudah dibuat, masih
menggunakan jasa dari seorang ahli untuk menilai performa aplikasi.
Langkah-langkah yang dilakukan dalam penilaian ini adalah sebagai
berikut.
a. Ahli mendeteksi Vocal Range.
b. Ahli mencoba semua lagu yang ada di aplikasi pada nada
asli lagu tersebut.
c. Ahli menghitung transpose terhadap masing-masing
lagu yang cocok bagi dirinya.
d. Aplikasi memberikan rekomendasi transpose masing-
masing lagu bagi ahli.
e. Bandingkan hasil rekomendasi ahli dan hasil
rekomendasi aplikasi.
Apabila hasil rekomendasi aplikasi dan rekomendasi ahli adalah
sama maka aplikasi dinilai baik karena telah mendekati kemampuan ahli.
Dalam penilaian ini vocal range yang terdeteksi adalah C3-F4. Hasil
penilaian dapat dilihat pada Tabel 5.1.
106
UIN Syarif Hidayatullah Jakarta
Tabel 5.1 Hasil Aplikasi
Penyanyi-Judul
Kunci Dasar
Asli
Lagu
Hasil Ahli
(Besar
transpose)
Hasil Aplikasi
(Besar transpose)
Afgan - Terima Kasih
Cinta
C A (-3) A (-3)
Agnes Monica –
Matahariku
G G (-12) A (-10)
Judika – Jadi Aku Sebentar
Saja
A D (-7) D (-7)
Ruth Sahanaya – Andaikan
Kau Datang
D# F (-10) F (-10)
5.1.2. Pembahasan Hasil
Berdasarkan Tabel 5.1, terdapat 4 kasus lagu yang digunakan sebagai
penilaian aplikasi.
a. Kasus Lagu Afgan
Pada kasus lagu Afgan “Terima Kasih Cinta” hasil
rekomendasi ahli dan rekomendasi apliaksi bernilai sama yaitu turun
3 nada ke kunci A. Adapun untuk memahami bagaimana letak nada
berdasarkan rekomendasi dapat dilihat pada Gambar 5.1.
107
UIN Syarif Hidayatullah Jakarta
Gambar 5.1 Kondisi Kasus Lagu Afgan Sebelum Transpose
Bisa dilihat pada Gambar 5.1 kondisi antara kemampuan
bernyanyi penyanyi dengan range nada lagu terdapat
ketidaksesuaian di mana range nada lagu ada yang di luar dari batas
vocal range penyanyi yang ditandai dengan warna merah. Maka dari
itu nada lagu perlu untuk digeser ke titik optimal vocal range.
Setelah aplikasi menghitung di mana titik optimalnya didapatkanlah
perlu turun nada sebesar 3 nada.
Gambar 5.2 Kondisi Kasus Lagu Afgan Setelah Transpose
Gambar 5.2 menunjukkan kondisi range nada lagu setelah
transpose dan diturunkan sebesar 3 nada. Bisa dilihat bahwa range
108
UIN Syarif Hidayatullah Jakarta
nada lagu kini tidak ada yang melewati batas vocal range dan berada
di tengah-tengah vocal range yang menandakan berada di titik
optimal. Solusi ini disepakati oleh ahli maupun aplikasi.
Dapat dilihat lebih rinci rangkaian nada sebelum dan sesudah
dilakukan transpose sebagaimana pada Gambar 5.3.
Gambar 5.3Grafik Nada Kasus Lagu Afgan
0123456789
10111213141516171819202122232425262728293031323334353637383940
vers
e1 reff
vers
e2
reff
2
reff
3
Nad
a La
gu
Bagian Lagu
Kasus Lagu Afgan
Batas Vocal Range Penyanyi Sebelum Transpose Setelah Transpose
109
UIN Syarif Hidayatullah Jakarta
b. Kasus Lagu Judika
Gambar 5.4 Kondisi Kasus Lagu Judika Sebelum Transpose
Pada kasus lagu Judika “Jadi Aku Sebentar Saja” hasil
rekomendasi ahli dan rekomendasi apliaksi bernilai sama yaitu turun
7 nada ke kunci D. Apabila melihat Gambar 5.4, dapat dipahami perlu
dilakukannya transpose karena range nada lagu melewati batas
vocal range penyanyi.
Gambar 5.5 Kondisi Kasus Lagu Judika Seteleah Transpose
Bisa dilihat pada Gambar 5.5 nada lagu digeser turun sebesar
7 nada sehingga range nada lagu berada persis dengan batas vocal
110
UIN Syarif Hidayatullah Jakarta
range penyanyi. Kondisi ini merupakan kondisi yang optimal karena
antara vocal range dan range nada lagu memiliki range yang sama
yaitu 17 nada. Maka sudah dipastikan kondisi optimal bagi si
penyanyi adalah apabila nada lagu digeser sehingga berada persis
dengan batas vocal range. Pada kasus ini tidak ada perbedaan
pendapat antara ahli dan apliikasi karena kondisi ini adalah kondisi
optimal.
Dapat dilihat lebih rinci rangkaian nada sebelum dan sesudah
dilakukan transpose sebagaimana pada Gambar 5.6.
Gambar 5.6 Grafik Nada Kasus Lagu Judika
0123456789
101112131415161718192021222324252627282930313233343536373839404142
vers
e1
vers
e2 reff
reff
2
Ver
se3
reff
reff
2
reff
3
reff
reff
4
Nad
a La
gu
Bagian Lagu
Kasus Lagu Judika
Sebelum Transpose Setelah Transpose Batas Vocal Range Penyanyi
111
UIN Syarif Hidayatullah Jakarta
c. Kasus Lagu Ruth Sahanaya
Gambar 5.7 Kondisi Kasus Lagu Ruth Sahanaya Sebelum Transpose
Pada kasus lagu Ruth Sahanya “Andaikan Kau Datang” hasil
rekomendasi ahli dan rekomendasi apliaksi bernilai sama yaitu turun
10 nada ke kunci F. Apabila melihat Gambar 5.4, dapat dipahami
perlu dilakukannya transpose karena range nada lagu melewati
batas vocal range penyanyi cukup jauh. Hal ini disebabkan oleh
perbedaan kemampuan bernyanyi Ruth Sahanaya yang tinggi
sedangkan penyanyi adalah seorang laki-laki yang kemampuan
bernyanyinya tidak setinggi Ruth Sahanaya.
112
UIN Syarif Hidayatullah Jakarta
Gambar 5.8 Kondisi Kasus Lagu Ruth Sahanaya Setelah Transpose
Serupa dengan kasus lagu Judika, nada lagu digeser turun
sehingga berada persis pada batas vocal range penyanyi seperti pada
Gambar 5.8. Pada kasus ini terjadi lagi vocal range dan range nada
lagu yang sama yaitu 17 nada sehingga tidak ada perbedaan antara
rekomendasi ahli dan rekomendasi aplikasi karena kondisi ini adalah
yang paling optimal.
Dapat dilihat lebih rinci rangkaian nada sebelum dan sesudah
dilakukan transpose sebagaimana pada Gambar 5.9.
113
UIN Syarif Hidayatullah Jakarta
Gambar 5.9 Grafik Nada Kasus Lagu Ruth Sahanaya
d. Kasus Lagu Agnes
Gambar 5.10 Kondisi Kasus Lagu Agnes Sebelum Transpose
1415161718192021222324252627282930313233343536373839404142434445
vers
e1
vers
e2 reff
vers
e2 reff
Imp
rov
reff
reff
2
end
ing
Nad
a La
gu
Bagian Lagu
Kasus Lagu Ruth Sahanaya
Sebelum Transpose Setelah Transpose Batas Vocal Range Penyanyi
114
UIN Syarif Hidayatullah Jakarta
Pada kasus lagu Agnes “Matahariku” dapat dilihat pada
Gambar 5.10 bahwa range nada lagu melewati batas tinggi vocal
range sangat jauh. Hal ini terjadi karena kemampuan bernyanyi
Agnes yang sangat luas dan tinggi apabila dibandingkan dengan
vocal range penyanyi. Transpose di sini sangat perlu dilakukan
mengingat jauhnya range nada lagu melewati batas vocal range.
Gambar 5.11 Notifikasi Vocal Range
Pada kasus ini terjadi perbedaan rekomendasi pada kasus ini
di mana ahli merekomendasikan transpose ke kunci G (turun 12
nada dari kunci asli) sedangkan aplikasi merekomendasikan ke
kunci A (turun 10 nada dari kunci asli), namun terdapat notifikasi
seperti pada Gambar 5.11 di aplikasi bahwa vocal range penyanyi
lebih sempit dari range nada lagu tersebut sehingga pengguna
setidaknya mengetahui bahwa pengguna akan kesulitan dalam
menyanyikan lagu ini karena sebagaimanapun dilakukan transpose,
vocal range pengguna tidak akan dapat menutup .
115
UIN Syarif Hidayatullah Jakarta
Gambar 5.12 Kondisi Kasus Lagu Agnes Setelah Transpose Aplikasi
Aplikasi merekomendasikan turun 10 nada ke kunci A
sehingga hasil pergeseran terlihat seperti pada Gambar 5.12.
Rekomendasi aplikasi menggunakan fungsi obyektif RUMUS 2
sebagai penilaian pada kasus vocal range yang lebih sempit dari
range nada lagu masih terdapat nada yang tidak sesuai bagi
penyanyi. Nada yang tidak sesuai tersebut terbilang imbang pada
antara batas nada rendah dan batas nada tinggi lagu. Pada batas nada
rendah lagu berjarak 3 nada dari batas vocal range dan pada batas
nada tinggi lagu berjarak 4 nada dari batas vocal range.
Gambar 5.13 Kondisi Kasus Lagu Agnes Setelah Transpose Ahli
116
UIN Syarif Hidayatullah Jakarta
Ahli merekomendasikan turun 12 nada ke kunci G sehingga
hasil pergeseran terlihat seperti pada Gambar 5.13. Rekomendasi ahli
masih terdapat nada yang tidak sesuai bagi penyanyi karena vocal
range lebih sempit dibandingkan dengan range nada lagu. Nada
yang masih tidak sesuai hasil rekomendasi ahli terbilang tidak
imbang antara batas nada rendah dan batas nada tinggi lagu. Pada
batas nada rendah lagu berjarak 5 nada dari batas vocal range
sedangkan pada batas nada tinggi lagu berjarak hanya 2 nada dari
batas vocal range. Ahli memiliki pertimbangan lain berupa
mengejar nada tinggi lagu saat bernyanyi dengan mengorbankan
nada rendah pada lagu tersebut karena ahli adalah seorang laki-laki
dan merasa masih bisa mengusahakan nada-nada rendah.
Dapat dilihat lebih rinci rangkaian nada sebelum dan sesudah
dilakukan transpose sebagaimana pada Gambar 5.14.
117
UIN Syarif Hidayatullah Jakarta
Gambar 5.14 Grafik Nada Kasus Lagu Agnes
Jadi, aplikasi ini berhasil merekomendasikan 3 dari 4 lagu sesuai
dengan rekomendasi ahli. Dengan kata lain aplikasi memiliki performa
keakuratan 75%. Adapun untuk kasus lagu yang memiliki range lebih luas
dari vocal range pengguna aplikasi belum sesuai dengan rekomendasi ahli.
Terlepas dari hal itu, ahli telah menilai aplikasi memberikan hasil yang
bagus dan aplikasi sudah layak sebagai alternatif dalam merekomendasikan
transpose bagi penyanyi pemula daripada menggunakan metode menerka-
nerka.
6789
1011121314151617181920212223242526272829303132333435363738394041424344454647484950ve
rse1
bri
dge
vers
e2
bri
dge reff
reff
vers
e2
bri
dge
2
imp
rove
imp
rove
reff
2
imp
rove
reff
3
reff
4
reff
Nad
a La
gu
Bagian Lagu
Kasus Lagu Agnes
Sebelum Transpose Hasil Transpose Aplikasi
Batas Vocal Range Penyanyi Hasil Transpose Ahli
118
UIN Syarif Hidayatullah Jakarta
Rekapitulasi Hasil
a. Kasus Lagu Afgan
Sebelum:
Sesudah:
b. Kasus Lagu Judika
Sebelum:
Sesudah:
119
UIN Syarif Hidayatullah Jakarta
c. Kasus Lagu Ruth Sahanaya
Sebelum:
Sesudah:
d. Kasus Lagu Agnes
Sebelum:
Sesudah:
120
BAB 6
6. KESIMPULAN DAN SARAN
6.1. Kesimpulan
Hasil penelitian aplikasi rekomendasi transpose lagu berdasarkan vocal
range berbasis android ini memiliki poin-poin kesimpulan sebagai berikut:
a. Aplikasi rekomendasi transpose berhasil dikembangkan menggunakan
algoritma genetika berbasis android 6.0 (Marshmallow) dengan
parameter 8 individu untuk 1 generasi, 6 gen untuk 1 kromosom, syarat
berhenti 20 perulangan, seleksi secara elitis 2 pasangan parent,
crossover 1 titik dengan probabilitas 0,8, mutasi tingkat gen dengan
probabilitas mutasi sebesar 0,167, dan regenerasi steady-state berhasil
memberikan solusi transpose yang optimal dengan nilai 75% akurat..
b. Berdasarkan pengujian black box proses deteksi vocal range aplikasi
dinilai sudah sensistif dan akurat.
c. Aplikasi dinilai layak oleh ahli sebagai aplikasi rekomendasi transpose
bagi penyanyi pemula.
6.2. Saran
Dalam penelitian selanjutnya, penulis merasa perlu dilakukan beberapa
perbaikan dan pengembangan aplikasi ini dalam beberapa aspek sebagai
berikut:
a. Penelitian berikutnya dapat mengembangkan pemetaan nada yang
lebih dari 64 nada.
b. Dapat menggunakan tangga nada lain selain kromatik ataupun
dapat menuliskan kunci-kunci yang kompleks.
121
UIN Syarif Hidayatullah Jakarta
c. Diharapkan penelitian selanjutnya dapat mempertimbangkan noise
lingkungan ketika deteksi vocal range ataupun menggunakan
algoritma lain dalam melakukan proses deteksi vocal range.
d. Penelitian selanjutnya dapat bereksperimen parameter, fungsi
obyektif, variasi algoritma genetika ataupun ekseperimen algoritma
lain agar rekomendasi transpose lagu dapat lebih optimal seperti
algoritma HPS (Harmony Product Spectrum) dan algoritma ant
colony.
122
DAFTAR PUSTAKA
A.S, R., & Shalahuddin, M. (2014). Rekayasa Perangkay Lunak Terstruktur dan
Berorientasi Objek. Bandung: Informatika Bandung.
Aditya, S. K., & Karn, V. K. (2014). Android SQLite Essential. Birmingham:
Packt Publishing.
Ahmadiyah, A. S., Sunaryono, D., & Ramadhan, B. D. P. (2017). Sistem
Rekomendasi Lagu Berdasarkan Jenis Suara Penyanyi Pada Aplikasi
Karaoke. JUTI: Jurnal Ilmiah Teknologi Informasi, 15(2), 248.
https://doi.org/10.12962/j24068535.v15i2.a675
Alshamrani, A., & Abdullah, B. (2015). A Comparison Between Three SDLC
Models Waterfall Model, Spiral Model, and Incremental/Iterative Model.
International Journal of Computer Science Issues (IJCSI), 12(1), 106–111.
https://doi.org/10.1016/j.quascirev.2007.10.001
Android. (2019). Platform Version. Retrieved May 20, 2019, from
https://developer.android.com/about/dashboards
Budiharto, W., & Suhartono, D. (2014). Artificial Intelligence Konsep dan
Penerapannya. Yogyakarta: ANDI.
Day, H., Kovarsky, J., Neely, B., Pearl, D., & Pilhofer, M. (2014). Piano &
Keyboard All-In-One For Dummies. New Jersey: John Wiley & Sons,Inc.
Dhami, H. P. S. (2016). Comparative Study and Analysis of Software Process
Models on Various Merits. 6(9), 234–243.
Egisthi, V. A., Andreswari, D., & Setiawan, Y. (2016). Aplikasi Latih Vokal
Dengan Menggunakan Metode Harmonic Product Spectrum (Hps) Dan
Boyer Moore Berbasis Android. Simetris : Jurnal Teknik Mesin, Elektro Dan
Ilmu Komputer, 7(2), 501. https://doi.org/10.24176/simet.v7i2.761
123
UIN Syarif Hidayatullah Jakarta
Gulo, W. (2002). Metode Penelitian. Jakarta: Gramedia Widiasarana Indonesia.
Gunawan, I. (2013). Metode Penelitian Kulaitatif: Teori dan Praktik. Jakarta: PT
Bumi Aksara.
Hendini, A. (2016). PEMODELAN UML SISTEM INFORMASI MONITORING
PENJUALAN DAN STOK BARANG (STUDI KASUS: DISTRO ZHEZHA
PONTIANAK). IV(2), 107–116.
Juhara, Z. P. (2016). Panduan Lengkap Pemograman ANDROID. Yogyakarta:
ANDI.
Kumar, M. (2018). A Comparative Study of Universally Accepted SDLC Models
for Software Development. 4(5), 1084–1092. Retrieved from www.ijsrst.com
Martono, N. (2014). Metode Penelitian Kuantitatif Analisis Isi dan Anlisis Data
Sekunder. In Edisi Revis i2 (Edisi Revi, p. 207).
Miller, M. (2005). The Complete Idiot’s Guide to Music Tehory (2nd ed.). New
York: Penguin Group.
Mustafa, W. F., Djamal, E. C., & Yuniarti, R. (2017). Optimalisasi Menu Makan
Diet Sehat Menggunakan Algoritma Genetika. (September), 50–54.
Paret, D., & Sibony, S. (2017). Musical Techniques Frequencies and Harmony.
London: John Wiley & Sons,Inc.
Pilhofer, M., & Day, H. (2015). Music Theory For Dummies (3rd ed.). New
Jersey: John Wiley & Sons,Inc.
Prasetio, R., Hidayatno, A., & Santoso, I. (2014). Perancangan Sistem Perbaikan
Nada Suara Manusia Dengan Menggunakan Metode Phase Vocoder
Terhadap Nada Referensi Musik. Transmisi, 16(4).
Pressman, R. S. (2011). Software Engineering A Practitioner’s Approach (8TH
ed., Vol. 112). https://doi.org/10.1192/bjp.112.483.211-a
Prtyono. (2016). Metode Penelitian Kuantitatif (Revisi 201). Surabaya: Zifatama.
124
UIN Syarif Hidayatullah Jakarta
Ridha, M. S., & Harafani, H. (2019). Implementasi Algoritma Genetika Pada
Perancangan Aplikasi Android Untuk Memprediksi Buta Warna. V(1), 135–
138. https://doi.org/10.31294/jtk.v4i2
Safaat H., N. (2015). ANDOROID Pemograman Aplikasi Mobile Smartphone dan
Tablet PC Berbasis Android (Revisi 2). Bandung: Informatika Bandung.
Semiawan, C. R. (2010). Metode Penelitian Kualitatif: Jenis, Karakteristik dan
Keunggulannya. Jakarta: PT G.
Setiawan, H., Swastika, W., Leona, O., & Kelana, O. H. (2018). Aransemen Nada
Alto , Tenor , dan Bass Menggunakan Algoritma Genetika. 4, 387–396.
Sinaga, T. (2018). Gondang : Jurnal Seni dan Budaya Dasar-Dasar Teknik
Bernyanyi Opera. 2(2), 79–89.
Six, J. (2015). Digital Sound Processing and Java: Documentation for the
TarsosDSP. 1–10.
Sqlite.org. (n.d.). About SQLite. Retrieved May 16, 2019, from
https://www.sqlite.org/about.html
Suprapto. (2008). BAHASA PEMROGRAMAN. Jakarta: Direktorat Pembinaan
Sekolah Menegah Kejuruan.
Sutojo, T., Mulyanto, E., & Suhartono, D. (2011). Kecerdasan Buatan.
Yogyakarta: ANDI.
Suyanto. (2014). Artificial Intelligence Searching, Reasoning, Planning, dan
Learning (Revisi Ked). Bandung: Informatika Bandung.
Unhelkar, B. (2018). Software Engineering With UML. Florida: CRC Press.
Zukhri, Z. (2014). Algoritma Genetika Metode Komputasi Evolusioner untuk
Menyelesaikan Masalah Optimasi. Yogyakarta: ANDI.
125
DAFTAR LAMPIRAN
Lampiran 1 Wawancara Ahli
Tanggal: 13 April 2019
Narasumber: Fitri Intendia
Pelatih vokal berpengalaman 8 tahun dan bersertifikat internasional untuk pelatih vokal
genre pop dari Trinity College dan grade 8 DipABRSM
1. Apa itu vokal?
Vokal adalah salah satu instrumen musik yang asal suaranya berasal dari pita suara manusia
2. Apa saja jenis-jenis vokal?
Vokal dibagi berdasarkan genre musik yaitu pop, klasik, jazz, dll. Setiap manusia memiliki
karakteristik suara yang berbeda-beda dan untuk menentukan jenis suara seseorang bisa dilihat
berdasarkan warna suara dan itu bernilai subjektif. Namun bukan berarti jika seseorang berwarna
suara salah satu genre, maka ia tidak bagus pada genre lain. Untuk jenis suara berdasar genre, satu
orang bisa memiliki banyak jenis suara.
Vokal berdasarkan jenis kelamin, vokal range, warna suara. Untuk perempuan ada sopran
untuk vokal range yang tinggi, mezzo untuk vokal yang tengah-tengah, alto untuk vokal rendah. Dan
untuk laki-laki ada Tenor, Baritone, Bass
Tapi bukan berarti seseorang yang memiliki vokal range luas dan tinggi pasti
diklasifikasikan sebagai sopran. Harus dilihat kembali warna suara dan faktor lain di mana ia
nyaman bernyanyi rongga atas atau rongga bawah yang lebih terbuka. Secara umum klasifikasinya
itu sopran, alto, tenor, bass. Untuk mezzo dan lainnya itu ada karena perhitungan gradasi suara
karena gak mungkin klasifikasi dari tinggi tiba-tiba ke rendah.
Vokal itu luas, jadi harus di fokuskan ingin di mana lalu dimaksimalkan. Karena setiap
jenis suara tersebut memiliki kelebihan masing-masing. Kebanyakan untuk lagu dan penyanyi pop
itu biasanya suara tengah, Mezzo dan Baritone.
126
UIN Syarif Hidayatullah Jakarta
(lanjutan)
3. Berdasarkan pengalaman melatih vokal, rata-rata nada terendah dan rata-rata nada
tertingginya orang pada umumnya itu pada nada apa?
Laki-laki dewasa: D2-A4
Perempuan dewasa: F3-G5
4. Apakah Vokal Range seseorang itu berubah-ubah atau konstan?
Tergantung, jika ia sering latihan maka vokal range bisa diperlebar. Vokal range itu tidak
bisa diprediksi, namun bisa dilatih untuk memperlebar vokal range itu sendiri. Tapi latihan itu
sendiri tidak menjamin vokal range untuk melebar.
Tidak selalu vokal range luas berarti suaranya bagus dan bukan berarti vokal range sempit
berarti suaranya jelek. Tergantung bagaimana memaksimalkan vokal range. Vokal range bukanlah
indikator suara lebih bagus atau tidak.
Vokal range dapat berubah-ubah secara dinamis di setiap harinya. Dipengaruhi oleh kondisi
fisik, seseorang yang tidak fit tentu vokal rangenya akan turun. Begitu juga dengan semakin tua
umur seseorang akan semakin turun. Nada tinggi yang dijangkau akan semakin turun.
5. Di mana titik optimal vokal range?
Optimal itu biasanya di tengah-tengah. Gak mungkin di ujung bawah atau di ujung atas.
Jika seseorang itu nyaman bernyanyi di ujung atas, berarti sebenarnya vokal range-nya itu lebih luas.
6. Apa itu transpose lagu?
Transpose lagu itu memindahkan key signature atau nada asli sebuah lagu. Dengan tujuan
agar penyanyi yang memiliki vokal range tidak sesuai dengan range lagu bisa menyanyikan lagu
tersebut.
127
UIN Syarif Hidayatullah Jakarta
(lanjutan)
7. Bagaimana menentukan ke mana harus transpose nada?
Harus tahu dulu range nada lagunya lalu cocokkan dengan vokal range aman penyanyinya.
Atau bisa dikatakan titik optimal vokal range tadi itu. Tapi kalau sulit untuk mencari range nada
lagu, boleh dikatakan caranya coba-coba dengan menurunkan satu demi satu nada dari nada tertinggi
penyanyi sampai si penyanyi nyaman menyanyikannya.
Kecuali kita punya data vokal range optimal penyanyi dan range nada lagu, maka tinggal
dicocokkan. Tapi pada kenyataannya musisi tidak ada yang sampai membuat data seperti itu.
8. Apakah dengan berhasilnya transpose nada ke titik optimal vokal range seseorang berarti
orang tersebut akan bernyanyi lebih bagus?
Pasti. Karena titik optimal vokal range itu adalah titik optimal suara penyanyi tersebut.
128
UIN Syarif Hidayatullah Jakarta
(lanjutan)
Wawancara ini dilakukan untuk mendapat informasi sistem yang berjalan saat ini.
Tanggal: 22 Agustus 2019
Narasumber: Delly Trianggana, Pelatih vokal Purwacaraka berpengalaman mengajar selama 6
tahun dan bersertifikat dalam mengikuti lomba di Trimini International Choral Competition 2009, ,
Swiss Choral Festival, Irlandia Choral Festival, Praha Cantat 2015.
1. Apa itu vokal?
Vokal adalah suara, kemampuan mengeluarkan notasi dari mulut.
2. Apa saja jenis-jenis vokal?
Klasifikasi vokal itu berdasar tebal tipisnya pita suara, semakin tipis maka suara semakin
tinggi, semakin tebal pita suara maka semakin rendah. Dibagi juga untuk wanita: Sopran,
Mezzo Sopran, Alto dan untuk pria: Tenor, Baritone, dan Bass.
Faktor yang mempengaruhi adalah tebal-tipis tadi, karakter vokal, vocal range juga
3. Apakah Vokal Range seseorang itu berubah-ubah atau konstan?
Setiap orang mempunyai kemampuan jangkuan nada yang berbeda-beda, itulah vocal
range. Semakin tua, pita suara akan semakin tebal senhingga vocal range akan cendrung
menurun, kecuali sering dilatih. Kondisi fisik dan keseahatan akan mempengaruhi vocal
range.
4. Berdasarkan pengalaman melatih vokal, rata-rata nada terendah dan rata-rata nada
tertingginya orang pada umumnya itu pada nada apa?
Secara umum, A2-E4
5. Di mana titik optimal vokal range?
Untuk ketika berbicara biasanya di nada-nada rendah, tapi untuk bernyanyi akan bergeser
ke kanan sedikit dari nada berbicaranya.
129
UIN Syarif Hidayatullah Jakarta
(lanjutan)
6. Apa itu transpose lagu?
Transpose kunci adalah merubah nada dasar lagu, misalkan tadinya kuncinya di C tapi
karena range nada lagu dan range penyanyi berbeda maka disesuaikan dengan vocal range-
nya
7. Bagaimana menentukan ke mana harus transpose nada?
Harus paham vocal range penyanyi dan range nada lagu. Untuk orang awam atau penyanyi
pemula yang tidak memliki intuisi musisi atau sensitifitas nada maka biasanya masih
menerka-nerka. Dengan menerka-nerka tersebut belum tentu hasilnya sesuai kemampuan
optimalnya. Salahnya, yang tidak paham itu akan memaksa menyanyikan di nada yang
tidak sampai yangmana sebenarnya dapat mengakibatkan cidera pita suara.
8. Apakah dengan berhasilnya transpose nada ke titik optimal vokal range seseorang berarti
orang tersebut akan bernyanyi lebih bagus?
Betul. Akan lebih optimal.
9. Apakah dibutuhkan sebuah aplikasi untuk menentukan transpose?
Ya, kalo dalam konteks penyanyi pemula tadi sih boleh dikatakan dibutuhkan aplikasi
daripada mencederai pita suara.
10. Boleh minta saran lagu-lagu yang bisa menjadi patokan untuk uji coba aplikasi?
Afgan – Terima Kasih Cinta
Agnes Monica – Matahariku
Judika – Jadi Aku Sebentar Saja
Ruth Sahanaya – Andaikan Kau Datang Kembali
Cukup 4 itu, sudah cukup mewakili.
130
UIN Syarif Hidayatullah Jakarta
Lampiran 2 Wawancara Pengujian
Wawancara ini dilakukan untuk mendapat evaluasi pengujian aplikasi yang dibuat.
Tanggal: 22 Agustus 2019
Narasumber: Delly Trianggana
1. Apakah tampilan utama pada aplikasi bermasalah? Bagaimana pendapat anda secara estetika maupun fungsional?
Secara keseluruhan sudah simple dan sederhana. Secara fungsional sudah bagus dalam deteksi vocal range kita
sudah sensitif, namun harus dipertimbangkan noise di sekitar
2. Apakah tampilan saat memilih lagu pada aplikasi bermasalah? Bagaimana pendapat anda secara estetika maupun
fungsional?
Tidak ada masalah.
3. Apakah tampilan hasil pada aplikasi bermasalah? Bagaiamana pendapat anda secara estetika maupun fungsional?
Sudah layak
4. Apakah tampilan instruksi pada aplikasi bermasalah? Bagaimana pendapat anda secara estetika maupun
fungsional?
Harusnya instruksi itu ada halaman yang menjelaskan tahapan apikasi, barulah disitu langsung mulai ke deteksi
vokal itu.
5. Apakah deteksi nada pada aplikasi bekerja dengan baik? Bagaimana ketepatan deteksi nada aplikasi?
Sudah cukup akurat, namun ketika ketemu nada rendah itu kurang stabil. Karena vibra seseorang itu bisa
berbeda-beda, dan pertimbangkan waktu akuisisinya, jangan terlalu lama.
6. Apakah aplikasi berhasil merekomendasikan kunci yang optimal bagi user? Bagaimana tingkat keakuratan
mencari titik optimalnya (boleh nyatakan dalam bentuk persen)?
Jika untuk pasar awam, aplikasi ini sudah recommended. Result bagus dari pengujian, saya berani mengatakan
sudah 75% akurat.
7. Apakah aplikasi ini layak menjadi alternatif dalam menentukan transpose lagu?
Sudah layak untuk orang umum, dan cukup layak untuk musisi.
8. Berikan Komentar dan Saran anda soal aplikasi!
Alangkah lebih bagusnya lagi, setelah ditampilkan result ada tahapan berikutnya yangmana di play sebuah
musik yang sudah di transpose sesuai result sehingga bisa langsung di tes
131
UIN Syarif Hidayatullah Jakarta
(lanjutan)
132
UIN Syarif Hidayatullah Jakarta
No. Test Case Hasil Keterangan
1 Tampilan Utama Baik. Sederhana secara keseluruhan
2 Tampilan Instruksi Masih Kurang Jelas
3 Tampilan Pilihan
Lagu
Baik
4 Tampilan Hasil Baik. Tapi bahasanya perlu diperhalus lagi
agar orang awam atau penyanyi pemula
mengerti
Ket:
: Batas Vocal Range
: Batas Range Nada Lagu
: Nada yang tidak sesuai dengan penyanyi