BAB II TINJAUAN PUSTAKA 2.1 Teori Musik Key merupakan kunci dari sebuah lagu. Key mengidentifikasi not/nada (tonic), chord (paduan nada), mayor/minor, yang merepresentasikan titik focus nada pada suatu bagian (Jehan, 2010). Key hasil ekstraksi musik bernilai 0 sampai dengan 11. Key untuk masing – masing nilai dapat dilihat pada tabel 2.1. Tabel 2.1 Nilai Key Lagu Nilai Key Key 0 C 1 C-Sharp (C#) 2 D 3 E-Flat (E♭) 4 E 5 F 6 F-Sharp (F#) 7 G 8 A-Flat (A♭) 9 A 10 B-Flat 11 B Mode adalah jenis skala yang terkait dengan not/nada (tonic). Mode digunakan untuk mengetahui jenis mayor atau minor dari suatu key (Jehan, 2010). Hasil ekstraksi mode bernilai 0 atau 1. Musik memiliki mode minor jika bernilai 1 dan memiliki mode mayor jika bernilai 0. Loudness merupakan kenyaringan secara keseluruhan dari musik dalam nilai decibels (dB). Loudness merupakan bagian dari segmen (satu set 5 6 entitas suara di bawah satu detik) yang nilainya didapat dari 2 data yaitu nilai dB pada onset dan nilai dB maksimal pada musik. Nilai dB pada offset setara dengan nilai dB pada onset pada satu segmen (Jehan, 2010). Loudness pada setiap musik memiliki nilai minimum -100.0 dB dan nilai maksimum 100.0 dB. Energi pada musik bukan merupakan sesuatu yang konstan, tetapi berubah dari waktu ke waktu. Artinya pada satu lagu bisa memiliki energi yang meningkat namun pada lagu lain memiliki energy yang cenderung menurun. Energi dapat dikontrol dengan menggunakan instrument, dinamika, dan irama pada musik. Meningkatkan jumlah instrument dapat meningkatkan energi musik. Musik yang keras umumnya lebih energik daripada musik yang lembut. Energi pada setiap musik memiliki nilai minimum 0.0 dan nilai maksimum 1.0. Semakin energik musik maka nilai energi semakin besar begitu pula sebaliknya, semakin lembut musik maka semakin kecil nilai energinya. Tempo adalah kecepatan atau laju pada bagian rata – rata durasi dari suatu lagu yang dinyatakan dalam beats per minute (BPM). Beats merupakan unit dasar waktu dari potongan musik yang dihitung dalam detik (Jehan, 2010). Nilai maksimum tempo adalah 500.0 BPM dan nilai minimum tempo adalah 0.0 BPM. Genre adalah suatu pengelompokan musik berdasarkan jenis seperti pop, blues, dan jazz. Tidak ada pengelompokkan jumlah genre secara pasti di dunia. Genre musik dapat ditandai oleh musisi, peneliti, atau dipengaruhi latar belakang budaya suatu bangsa (Mei Lan, 2009). Bahkan beberapa negara memiliki genre musik tersendiri seperti genre Soukous (Africa Rumba) yang merupakan genre khusus di Benua Afrika. Menurut allmusic.com terdapat 500 sampai 800 genre berbeda dari seluruh dunia. Hal ini semakin menunjukkan bahwa jumlah genre tidak dapat diklasifikasi dengan pasti. 7 2.2 Pengambilan Dataset Dataset adalah kumpulan data yang digunakan dalam penelitian. Data yang digunakan adalah nilai dari hasil ekstraksi fitur musik yang dihasilkan oleh Echonest dan nama genre musik yang diperoleh dari last.fm dan 7digital.com. Echonest yang dapat diakses pada alamat the.echonest.com merupakan platform yang menyediakan array data musik dan dapat digunakan untuk membangun suatu aplikasi berbasis musik, seperti aplikasi +Music yang merupakan ekstensi dari Google Chrome sehingga browser dapat memiliki soundtrack tersendiri. Masing – masing data musik memiliki detail fitur yang dapat diekstrak oleh Echonest API. Secara umum data musik yang diberikan Echonest adalah data artis dan data lagu. Sedangkan data nama genre musik diperoleh dari web musik last.fm dan 7digital.com. Last.fm juga digunakan dalam penelitian mengenai music information retrieval (Lamere, 2008) sedangkan 7digital.com digunakan dalam penelitian mengenai kumpulan dataset lagu (Bertin, Ellis, Whitman, & Lamere, 2011). Untuk dapat menggunakan Echonest API pengembang harus memiliki API Key yang dapat diperoleh secara gratis pada web tersebut. Dengan menggunakan Echonest API pengembang dapat memanggil method yang tersedia dalam XML dan JSON. Method yang disediakan antara lain Artist API Methods, Song API Methods, Track API Methods, Playlist API Methods, dan Catalog API Methods. Pada penelitian ini method yang digunakan adalah Song API Methods untuk memanggil data mengenai lagu yang diinginkan. Echonest API juga mendukung berbagai ID lagu atau artis (digunakan saat pemanggilan method) yang diperoleh dari partner acces database musik seperti 7digital dan MusicBrainz. Pada penelitian ini data lagu diambil oleh Echonest API dari 7digital.com dengan menggunakan format XML. Berikut merupakan contoh query song method untuk mengekstraksi fitur musik : http://developer.echonest.com/api/v4/song/search?api_key=96GANOIWHEX5ZI 6LL&format=xml&results=1&artist=bruno%mars&title=grenade&bucket=id:7di gital-US&bucket=audio_summary&bucket=tracks. Pada URL song method terdapat API key (api_key=96GANOIWHEX5ZI6LL), format hasil yang diinginkan (format=xml), 8 jumlah musik yang ditampilkan (result=1), nama artis (artist=Bruno%mars), judul lagu (title=grenade), sumber ID lagu (bucket=id:7digital-US), parameter untuk menampilkan ringkasan dari lagu (bucket=audio_summary), dan parameter untuk menampilkan detail dari lagu (bucket=tracks). Gambar 2.1 menampilkan hasil ekstraksi fitur dari query di atas untuk lagu Grenade dari Bruno Mars. Hasil ekstraksi fitur yang digunakan sebagai dasar data klasifikasi musik adalah nilai key, mode, loudness, energi, dan tempo. Gambar 2.1 Contoh Hasil Ekstraksi Fitur 2.3 Social Tagging Social tagging dapat diartikan sebagai label yang diberikan kepada suatu item seperti artis, musik, dan album (Lamere, 2008). Tag yang diberikan mengandung informasi dari item tersebut, misalnya tag Pop yang merupakan 9 informasi genre dari musik. Tag berbeda dengan keyword yang bersifat terikat dan terkontrol dengan tata bahasa. Ketika tag dibuat oleh berbagai pengunjung maka pandangan dan penilaian pada lagu akan menjadi kompleks karena semakin banyak tag yang muncul semakin banyak pula macam penilaian yang dilakukan pengguna pada lagu atau artis. Misalkan satu penyanyi dapat diberikan tag yang berbeda, seperti penyanyi Bruno Mars yang memiliki 63 tag berbeda seperti “Pop” dan “Male Vocalist” yang diberikan oleh pengunjung. Genre yang digunakan pada penelitian merupakan tag pada web musik last.fm dan 7digital.com. Tag genre pada Last.fm yang digunakan sebagai dasar penelitian adalah acoustic, blues, classical, country, electronic, emo, hip hop, jazz, metal, pop, reggae, r & b, rock, dan soul. Sedangkan pada situs 7digital.com terdapat 20 tag genre namun yang digunakan sebagai dasar penelitian adalah genre pop, rock, hip hop, r & b, soul, electronic, jazz, metal, country, dan reggae. Pemilihan tag genre didasari atas kesesuaian antara Last.fm dan 7digital.com serta kepopuleran suatu genre bagi para pengunjung dan pendengar musik. Pemberian tag merupakan suatu hal yang dapat dilakukan oleh setiap pengunjung situs tanpa mengkhawatirkan kesalahan pemberian tag. Misalnya pengunjung yang tidak yakin secara pasti genre yang dimiliki oleh artis maka dapat memberi tag lebih dari satu seperti “Pop” atau “Slow Pop”. Ada beberapa alasan dan motivasi pengunjung web memberi tag pada lagu atau artis (Lamere, 2008) di antaranya: a. Suatu item diberi tag untuk membantu pengambilan informasi secara pribadi dari suatu item. Misalnya pengunjung memberi banyak tag untuk satu lagu baru dengan “Favorite”, “Pop”, “Happy”, untuk memberikan deksripsi sebanyak – banyaknya pada satu lagu. b. Suatu item diberi tag untuk menemukan musik yang diinginkan di kemudian hari. Misalnya pengguna memberi satu tag “Accoustic” untuk beberapa lagu sehingga dapat menjadi playlist jika nantinya ingin mendengarkan lagu – lagu yang bergenre akustik. 10 c. Pengunjung memberi tag pada suatu item untuk mengekspresikan selera musiknya kepada pengunjung lain. Misalnya pada Last.fm terdapat tag “Seen Live” yang menunjukkan artis atau band yang pernah ditonton konsernya. d. Suatu item diberi tag untuk memberi informasi dan pengetahuan baru bagi pengunjung lain. Misalnya pengunjung yang tidak mengetahui genre musik dari artis Taylor Swift dapat melihat pada tag yang diberikan pada artis tersebut. e. Pengunjung memberi tag pada suatu item untuk menunjukkan opini mereka terhadap item tersebut. Misalnya pengunjung memberi tag “Awesome” pada lagu yang disukai. f. Suatu item diberi tag sebagai hasil dari suatu permainan. Misalnya permainan untuk memberi tag “Saddest Song” pada lagu paling sedih yang diketahui. 2.4 Jaringan Saraf Tiruan Backpropagation Jaringan saraf tiruan (JST) backpropagation (perambatan galat mundur) merupakan metode sistematik untuk pelatihan multilayer jaringan saraf tiruan (Kiki & Kusumadewi, 2008). Pada backpropagation, setiap unit yang berada di input layer terhubung dengan setiap unit yang ada di hidden layer. Hal serupa berlaku pula pada hidden layer. Setiap unit pada lapisan tersmbunyi terhubung dengan setiap unit yang ada di output layer. Berikut merupakan lapisan (multilayer neural networks) yang ada pada backpropagation: a. Input layer (1 buah). Input layer terdiri dari neuron – neuron atau unit – unit input, mulai dari unit input 1 sampai unit input n. b. Hidden layer (minimal 1 buah). Hidden layer terdiri dari unit – unit tersembunyi mulai dari unit tersembunyi 1 sampai unit tersembunyi p. c. Output layer (1 buah). Output layer terdiri dari unit – unit keluaran mulai dari unit keluaran 1 sampai unit keluaran m. Gambar 2.2 menunjukkan arsitektur backpropagation dengan n buah input (ditambah sebuah bias), sebuah layar tersembunyi yang terdiri dari p unit (ditambah sebuah bias), dan m buah unit keluaran. 11 vji merupakan bobot garis dari unit – unit input xi ke unit layar tersembunyi zj. wkj merupakan bobot dari unit layar tersembunyi zj ke unit keluaran yk. Gambar 2.2 Arsitektur Backpropagation (Dhaneswara & Moertini, 2004) Pelatihan backpropagation meliputi 3 fase (Siang, 2005). Fase pertama adalah perambatan maju yaitu pola input dihitung maju mulai dari input layer hingga layar keluaran menggunakan fungsi aktivasi yang ditentukan. Fase kedua adalah perambatan mundur. Selisih antara keluaran actual (actual output) dengan keluaran target (desired output) merupakan nilai kesalahan yang dipropagasi mundur. Fase ketiga adalah modifikasi bobot untuk menurunkan kesalahan yang terjadi. Fungsi aktivasi yang digunakan adalah fungsi sigmoid biner yang memiliki range (0, 1) untuk menghitung nilai keluaran dari hidden layer lalu mengirimkan nilai tersebut ke seluruh unit pada output layer dan menghitung nilai keluaran pada setiap unit di output layer (Siang, 2005). Rumus fungsi sigmoid biner adalah 12 ………………………………… (2.1) dengan turunan, …………………………............ (2.2) Gambar fungsi sigmoid biner terlihat pada gambar 2.3. Gambar 2.3 Gambar Fungsi Sigmoid Biner Algoritma pelatihan backpropagation dengan fungsi aktivasi sigmoid bipolar adalah sebagai berikut: 0 : Inisialisasi bobot dengan bilangan acak kecil. 1 : Jika kondisi tidak tercapai, lakukan langkah 2 – 9. 2 : Untuk setiap pasang data pelatihan, lakukan langkah 3 - 8. Perambatan Maju 3 : Tiap unit input (xi, i = 1, 2,…, n) menerima sinyal xi dan meneruskan sinyal ini ke semua unit lapisan tersembunyi. 4 : Hitung semua keluaran di unit tersembunyi zj (j = 1, .., p). ……………………………….. (2.3) 13 …………………………………. (2.4) 5 : Hitung semua keluaran jaringan di unit yk (k = 1, 2, .., m). ………………………………. (2.5) ………………………………. (2.6) Perambatan Mundur 6 : Hitung faktor δ unit keluaran berdasarkan kesalahan di setiap unit keluaran yk (k = 1, 2, …, m). ................................................. (2.7) Hitung koreksi bobot (digunakan untuk memperbaharui wjk) dengan laju percepatan α. ………………………………. (2.8) 7 : Hitung faktor δ unit tersembunyi berdasarkan kesalahan di setiap unit tersembunyi zj (j = 1, 2, … , p). ………………………………. (2.9) Hitung informasi kesalahan δ dengan mengalikan dengan turunan fungsi aktivasi. ……………………………… (2.10) 14 Hitung perubahan bobot vji (yang akan digunakan untuk merubah bobot vji). ……………………………… (2.11) Perubahan Bobot 8 : Hitung semua perubahan bobot. Perubahan bobot garis yang menuju unit keluaran: ……………………………… (2.12) Perubahan bobot garis yang menuju unit tersembunyi: ……………………………… (2.13) 9 : Tes kondisi berhenti menggunakan RMSE atau maksimum iterasi. Langkah - langkah tersebut dilakukan berulang – ulang sehingga dihasilkan jaringan yang memberikan tanggapan benar terhadap semua masukannya (Hermawan, 2006). Kondisi akan berhenti saat nilai benar di bawah nilai tertentu yang ditentukan atau maksimum iterasi tercapai. Nilai RMSE didapat dengan menghitung jumlah keseluruhan nilai sum square error (SSE). SSE dihitung sebagai berikut: 1. Hitung lapisan prediksi atau keluaran model untuk masukan pertama. 2. Hitung selisih antara nilai luar prediksi dengan nilai target atau sinyal latihan untuk setiap keluaran. 3. Kuadratkan setiap keluaran kemudian hitung seluruhnya. …………………………….. (2.14) 15 RMSE dihitung sebagai berikut: 1. Hitung SSE. 2. Hasil SSE dibagi dengan perkalian antara banyak data pada latihan dan banyak keluaran, kemudian diakarkan. …………………………….. (2.15) Setelah pelatihan selesai dilakukan, backpropagation diaplikasikan dengan menggunakan tahap perambatan maju dari algoritma pelatihan (Puspitaningrum, 2006). Prosedur aplikasinya adalah sebagai berikut: 0 : Inisialisasi bobot. Bobot ini diambil dari bobot – bobot terakhir yang diperoleh dari algoritma pelatihan. 1 : Untuk setiap vektor masukan, lakukan langkah 2 – 4. 2 : Setiap unit input xi menerima sinyal input xi dan menyiarkan sinyal xi ke semua unit pada hidden layer. 3 : Setiap unit di hidden layer zj menghitung sinyal keluaran dengan menerapkan fungsi aktivasi terhadap penjumlahan sinyal – sinyal masukan xi. Sinyal keluaran dari hidden layer kemudian dikirim ke semua unit pada output layer. ……………………………… (2.16) 4 : Setiap unit keluaran yk menghitung sinyal keluaran dengan menerapkan fungsi aktivasi terhadap penjumlahan sinyal – sinyal masukan bagi lapisan ini, yaitu sinyal masukan zj dari hidden layer. ……………………………. (2.17)