BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA 2.1 Fitur-Fitur Musik Musik terdiri dari fitur-fitur musik seperti mode, harmoni, tempo, ritme, dan dinamik (loudness) (Meyers, 2007). Fitur-fitur lainnya adalah energi, key, timbre, pitch, dan lainnya. Beberapa fitur musik yang dapat digunakan untuk mendapatkan kemiripan audio adalah key, mode, loudness, energi, dan tempo. Key terdiri dari c, c-sharp, d, e-flat, e, f, f-sharp, g, a-flat, a, b-flat, dan b. Key merujuk pada nada dasar yang digunakan dalam sebuah musik. Key mengidentifikasi tonic triad (sebuah chord dengan tiga nada yang terdiri atas root, third, dan fifth dari sebuah key), chord, dan mode. Sebuah musik bisa dimainkan dengan key tertentu. Contohnya sebuah musik dimainkan dengan key c akan memiliki sebuah progresi chord C – Am –F – G7 – C. Pada chord C terdiri dari sebuah tonic triad do-mi-sol sedangkan chord Am terdiri dari la-do-mi. Dari identifikasi key, musik mempunyai dua mode yaitu mayor dan minor. mode digunakan untuk mengekspresikan perasaan melalui musik. Mode mayor cocok untuk mengekspresikan kegembiraan, suka cita, dan keindahan, sedangkan mode minor cocok untuk mengekspresikan kelembutan, keluhan dan kesedihan (Cook, 2002). Loudness dihubungkan dengan intensitas yang dirasa dari suatu suara. Loudness sebuah musik bisa berkisar dari lembut dan menenangkan sampai sangat keras. Rentang loudness musik berkisar dari -100 sampai 100. Musik dengan loudness tinggi biasanya memiliki energi yang tinggi. Menambah jumlah instrumen musik pada saat tertentu juga bisa meningkatkan energi. Berbeda dengan loudness dan energi, tempo adalah sebuah indikasi kecepatan dari sebuah musik (Duckworth, 2009). Tempo biasanya diukur dengan beats per minute (bpm). Tempo yang cepat jatuh pada range 140 - 200 bpm (allegro, vivace, presto) dan tempo lambat diantara 40 dan 80 bpm (largo, lento, adagio) (Meyers, 2007). 4 5 2.2 Genre Musik Dalam musik, istilah genre secara simpel berarti tipe atau kelas dari musik yang kita dengar. Genre musik memberikan ekspektasi bagaimana bunyi musik, berapa lama musik tersebut, dan bagaimana pendengar harus berperilaku. Pada era Mozart, ada lima genre utama, yaitu symphony, string quartet, sonata, concerto, dan opera (Wright, 2011). Pada era musik modern, musik dapat dibagi menjadi berbagai genre seperti acoustic, blues, classical, country, electronic, emo, hip hop, jazz, metal, pop, R&B, reggae, rock, dan soul. Deskripsi dari genre-genre tersebut adalah sebagai berikut: 1. Pada genre acoustic, musik dimainkan tanpa instrumen listrik seperti gitar listrik atau biola listrik sehingga suara alat-alat musik terdengar natural. 2. Genre blues berasal dari musik-musik spiritual dan pujian yang menggunakan kalimat yang saling bersahutan. 3. Genre classical adalah kumpulan dari genre musik pada era Mozart dengan bentuk seperti symphony, string quartet, sonata, concerto, dan opera. Musik classical biasa dimainkan dengan alat-alat musik tertentu seperti biola, yang telah ada sejak pertengahan abad ke-19. 4. Genre country sering diidentikkan dengan musik cowboy. Genre ini lahir sejak tahun 1920 di Amerika bagian selatan, saat itu musik country dimainkan memakai gitar, bass, dan steel guitar. 5. Genre electronic adalah musik yang menggunakan alat musik elektronik dan teknologi musik elektronik (electromechanical) dalam produksinya. Contoh alat produksi suara electromechanical adalah telharmonium dan gitar elektrik. 6. Genre metal mengutamakan permainan gitar dan biasanya dimainkan dengan tempo lagu yang sangat cepat. 7. Genre rock mirip dengan metal, mengutamakan permainan gitar tetapi memiliki tempo lagu yang lebih lambat dari genre metal. 8. Genre emo adalah gaya musik rock dengan lirik yang ekspresif dan berisi pengakuan. 9. Genre hip hop adalah genre musik yang terdiri dari musik berirama dan disertai dengan rap. 6 10. Genre jazz banyak menggunakan instrumen gitar, trombone, terompet, dan saksofon. Musik jazz dimainkan dengan banyak improvisasi nada. 11. Genre R&B (Rhythm and Blues) adalah genre musik populer yang menggabungkan jazz, gospel, dan blues. 12. Genre soul adalah sebuah genre musik yang menggabungkan musik gospel dan R&B. 13. Genre reggae adalah musik yang menggunakan chord berulang yang kadang menyebabkan efek hipnotis. Dimainkan dengan drum, perkusi, gitar dan keyboard. 14. Secara umum musik pop berdurasi 2,5 sampai 3,5 menit, biasanya diisi dengan elemen ritmik yang jelas dan pusat melodi yang berkesan bagi pendengar. 2.3 Music Information Retrieval (MIR) Music Information Retrieval (MIR) merupakan sebuah bidang ilmu untuk mengambil dan mengolah informasi dari file musik yang berupa metadata ataupun konten. Berikut ini adalah beberapa task dari penelitian di bidang Music Information Retrieval berdasarkan The Music Information Retrieval Evaluation eXchange (MIREX), yaitu Klasifikasi Genre, Klasifikasi Mood, Identifikasi Artis, Pengenalan Instrumen, dan Music Annotation (Fu, Lu, Ting, & Zhang, 2011). Chai merangkum penelitian dalam MIR dalam tiga bidang, yaitu Music Searching and Query by Examples, Music Classification, dan Music Segmentation and Summarization (Chai, 2005). Dalam bidang Music Searching and Query by Examples, sistem MIR membantu pengguna mencari musik berdasarkan isinya, daripada informasi dari referensi tertentu. Music Classification adalah salah satu topik populer dalam MIR. Klasifikasi yang dilakukan beragam, bisa berdasarkan genre musik, penyanyi, dan emosi/mood. Music Summarization bertujuan menemukan bagian yang paling representative, sering diasumsikan sebagai bagian yang paling sering diulang dari sepotong musik. 7 2.4 Pengumpulan Dataset Echo Nest adalah sebuah website yang menyediakan platform untuk para pengembang aplikasi musik. Website Echo Nest dapat diakses pada alamat www.echonest.com. Echo Nest menggunakan signal processing dan machine learning untuk mengekstrak semua fitur dalam musik. Teknik machine learning ini menyimulasikan bagaimana orang mendengar musik, menggabungkan prinsip psychoacoustics, persepsi musik, dan pembelajaran adaptif untuk memodelkan proses fisik dan kognitif dari pendengaran manusia. Beberapa pendekatan umum untuk mendeskripsikan properti musik menggunakan signal processing diawali dengan pemotongan musik menjadi bagian-bagian kecil yang disebut frame. Panjang suatu frame adalah sekitar 20 ms. Metode-metode yang digunakan untuk menganalisis potongan musik tersebut adalah Root Mean Square (RMS) untuk mendeteksi struktur ritmik musik dan loudness. Untuk mendeteksi pitch digunakan metode seperti menghitung nilai zero-crossing, autocorrelation, dan analisis Fourier (Widmer, Dixon, Knees, Pampalk, & Pohle, 2005). Dengan menggunakan signal processing dan machine learning, didapatkan fitur-fitur musik yang terlihat pada Gambar 2.1. Gambar 2. 1 Fitur - Fitur Musik 8 Output dari analisis fitur musik terdiri dari deskripsi lengkap dari musik, struktur dan atribut global seperti key, loudness, time signature, tempo, beats, sections, harmoni. Hal ini menjadikan pengembang bisa membuat aplikasiaplikasi yang berhubungan dengan musik. Echo Nest menyediakan Application Programming Interface (API) yang bisa digunakan oleh pengembang untuk pembuatan web musik atau pembuatan play list. Echo Nest API memberikan akses ke pengembang musik untuk berinteraksi dengan data-data musik Echo Nest dengan cara memanggil metodemetode yang memberikan respon dalam bentuk JSON atau XML. Metode-metode Echo Nest API terdiri dari lima kelompok besar, yaitu Artist API Methods, Song API Methods, Track API Method, Playlist API Method dan Catalog API Method. Metode yang digunakan untuk mendapatkan dataset fitur musik adalah Song API Method. Dataset merupakan nilai dari satu atau beberapa fitur musik. Penggunaan Song API Method disertai penggunaan parameter Bucket untuk mendapatkan kumpulan informasi dari setiap lagu. Bucket yang digunakan untuk mendapat dataset dari ekstraksi fitur berupa parameter audio dari sebuah lagu adalah audio_summary. Parameter audio yang ditampilkan menggunakan Song API Method dan Bucket audio_summary ditunjukkan pada Tabel 2.1. Tabel 2. 1 Parameter Audio Parameter title artist_name id artist_id key Keterangan judul dari sebuah lagu nama pemusik id lagu id pemusik (c, c-sharp, d, e-flat, e, f, f-sharp, g, a-flat, a, b-flat, b) 0 - 11 mode (minor, mayor) 0, 1 9 loudness -100.0 < loudness < 100.0 energi 0.0 < energi < 1.0 tempo 0.0 < tempo < 500.0 (BPM) Berikut ini adalah contoh penerapan Song API Method untuk menampilkan informasi dari lagu milik Lady Gaga yang berjudul Just Dance: http://developer.echonest.com/api/v4/song/search?api_key=96GANOIWHEX5ZI 6LL&format=xml&results=1&artist=lady%gaga&title=just%20dance&bucket=id :7digital-US&bucket=audio_summary dataset fitur dari lagu tersebut dapat dilihat pada Gambar 2.1. Gambar 2. 2 Contoh Dataset Ekstraksi Fitur Lagu dari Echo Nest 2.5 Self Organizing Map (SOM) Self Organizing Map (SOM) adalah neural model jaringan saraf yang diaplikasikan secara luas untuk analisis data dan khususnya untuk clustering. SOM sering digunakan untuk clustering dari sebuah data set yang besar dan berdimensi tinggi. Di antara arsitektur-arsitektur dan algoritma-algoritma yang disarankan untuk jaringan saraf buatan, Self Organizing Map mempunyai properti 10 spesial yang secara efektif membuat organisasi representasi internal dari berbagai fitur sinyal-sinyal input (Kohonen, 2001). Jaringan SOM menggunakan metode pembelajaran unsupervised yang memetakan data dari dimensi berapapun ke dalam peta dua dimensi (Kohonen, 2001). Jaringan SOM terdiri dari dua lapisan (layer), yaitu lapisan input dan lapisan output. Setiap neuron dalam lapisan input terhubung dengan setiap neuron pada lapisan output. Setiap neuron lapisan output merepresentasikan cluster dari input yang diberikan. Jaringan SOM menghasilkan proyeksi ruang data ke peta ruang dua dimensi sedemikian rupa, sehingga data item yang mirip terletak berdekatan satu sama lainnya pada peta (Rauber, Pampalk, & Merkl, 2003). Output Layer Y1 ….. Y2 Yj W1i W2i W12 W21 Wj1 W22 Wj2 W11 Input Layer X1 X2 ….. Wji Xi Gambar 2. 3 Jaringan Self Organizing Map Pada Gambar 2.3 ditunjukkan bahwa setiap neuron output (Y1, Y2, … Yj) mempunyai bobot (W11, W12, … Wji) untuk masing-masing neuron input (X1, X2, … Xi). Proses clustering dilakukan dengan penyesuaian terhadap setiap bobot pada neuron output. Proses tersebut dimulai dengan menghitung Euclidean Distance untuk setiap input yang diberikan dengan setiap neuron output, kemudian dilakukan pencarian neuron output yang mempunyai jarak minimum. Neuron dengan jarak minimum disebut neuron pemenang. Setelah mendapatkan neuron Pemenang, perbaharui nilai bobot neuron pemenang dan neuron tetangganya. 11 Algoritma Self Organizing Map mempunyai langkah-langkah sebagai berikut: 0. Inisialisasi bobot Wji. Tetapkan topologi neuron output Tetapkan learning rate (α). Tetapkan jari-jari ketetanggaan topologis. 1. Selama syarat berhenti salah, lakukan langkah 2-7 2. Untuk setiap vektor masukan X, lakukan langkah 3-5 3. Untuk setiap j, hitung Euclidean Distance .............................................. (2.1) 4. Cari indeks j sedemikian sehingga Dj minimum. 5. Untuk semua unit j di dalam ketetanggaan j dan untuk semua i, hitunglah perubahan bobot Wij(baru) = Wij(lama) + α (Xi – Wij(lama)) ................................ (2.2) 6. Perbaharui learning rate. 7. Kurangi jari-jari ketetanggaan topologis dengan pencacahan tertentu. 8. Uji kondisi berhenti. Jika benar, maka berhenti. (Mehrad & Koleini, 2007) Learning rate dan bobot ditentukan secara acak dengan nilai diantara 0 dan 1. Learning rate dikurangi dengan cara mengalikan learning rate saat ini dengan nilai diantara 0 dan 1, sedangkan jari-jari ketetanggaan topologis dikurangi pada tiap iterasi dengan nilai diantara 0 dan 1 sehingga pada akhirnya jari-jari ketetanggaan topologis bernilai 0. Kondisi pemberhentian iterasi adalah selisih antara Wij saat itu dan Wij pada iterasi sebelumnya. Apabila semua Wij hanya berubah sedikit saja, berarti iterasi sudah mencapai konvergensi sehingga dapat dihentikan (Siang, 2005). Algoritma SOM berakhir ketika perubahan selisih antara bobot pada sebuah iterasi ke iterasi berikutnya adalah kurang dari 0,0001 (Xiao, Dow, Eherhart, 12 Miled, & Oppelt, 2003). Jika syarat ini sudah terpenuhi, maka iterasi telah mencapai konvergensi sehingga algoritma dapat dihentikan. Proses clustering dengan SOM dapat dilihat pada contoh berikut: Vektor-vektor yang akan dikelompokkan adalah [1 1 0 0], [0 0 0 1], [1 0 0 0], [0 0 1 1]. Jumlah neuron output yang digunakan adalah 2 (m = 2), dengan bobot awal tiap neuron output w1 = [0,2 0,6 0,5 0,9] w2 =[0,8 0,4 0,7 0,3]. Ditetapkan learning rate awal α(0) = 0,6 dengan α(t+1) = 0,5α (t). Radius ketetanggaan R=0. Carilah matriks bobot setelah 100 (Siang, 2005). Penyelesaian: 0. Inisialisasi matriks bobot Inisialisasi Radius R=0 Inisialisasi Learning Rate α=0,6 1. Mulai Pelatihan, selama syarat berhenti salah lakukan langkah 2-7 2. Untuk vektor pertama [1 1 0 0] lakukan langkah 3-5 3. D(1) = = 1,02 D(2) = = 0,76 4. Dj minimum adalah D(2) (pemenang) 5. Bobot unit pemenang diperbaharui dengan persamaan Wi2(baru) = Wi2(lama) + α (Xi – Wi2(lama)) W12(baru) = 0,8 + 0,6(1 – 0,8) = 0,92 W22(baru) = 0,4 + 0,6(1 – 0,4) = 0,76 W32(baru) = 0,7 + 0,6(1 – 0,7) = 0,28 W42(baru) = 0,3 + 0,6(1 – 0,3) = 0,12 Matriks bobot saat ini 13 Ulangi langkah 2 untuk setiap vektor lainnya. Setelah matriks bobot berubah untuk semua vektor, lanjut ke langkah 6. 6. Kurangi learning rate α = 0,5(0,6) = 0,3 7. Iterasi berlanjut sampai iterasi 100. Hasil dari perhitungan sampai dengan 100 iterasi akan menghasilkan matriks bobot yang konvergen dengan matriks sebagai berikut: Pengelompokan vektor dilakukan dengan menghitung Euclidean Distance vektor dengan bobot optimal. Vektor pertama [1 1 0 0] memiliki D(1) = = 3,25 D(2) = = 0,25 Pengelompokan ditentukan dengan nilai Euclidean Distance vektor dengan bobot optimal terkecil. Dengan demikian, vektor pertama termasuk dalam cluster 2, vektor kedua termasuk dalam cluster 1, vektor ketiga termasuk dalam cluster 2, dan vektor keempat termasuk dalam cluster 1. 2.6 Facebook Applications Facebook adalah sebuah layanan jejaring sosial dimana pengguna dapat membuat profil pribadi yang dilengkapi foto, informasi pribadi, dan daftar ketertarikan pribadi (self interest). Pengguna dapat berkomunikasi dengan teman dan pengguna lain melalui pesan dan fitur chat. Pengguna juga dapat bergabung 14 dengan Facebook Groups, menyukai (like) Facebook Pages, dan memakai Facebook Applications. Facebook Applications adalah program-program kecil yang berjalan di dalam Facebook. Hanya pengguna Facebook yang dapat menggunakan Facebook Applications. Beberapa built-in applications pada Facebook adalah Notes, Events, dan Photos (Veer, 2011). Photos Applications adalah salah satu aplikasi yang baling populer, dimana pengguna bisa mengunggah foto dan album. Facebook mengizinkan pengguna mengunggah foto dalam jumlah yang tidak terbatas. Selain built-in applications, jenis lain dari Facebook Applications adalah Platform Applications, yaitu aplikasi web yang di-host diluar Facebook. Pengguna tidak perlu meng-install aplikasi tersebut, pengguna hanya perlu memberikan izin aplikasi untuk mengakses informasi personal. Platform Applications biasanya berbentuk kuis atau permainan. Sebelum pengguna memulai penggunaan aplikasi dalam Facebook, pengguna diharuskan memberikan izin pada Facebook Application untuk berinteraksi dengan profil dan informasi pengguna. Sebagian besar Facebook Applications menggunakan halaman Request for Permission untuk meminta izin pengguna (Pearlman & Abraham, 2010). Gambar 2. 4 Request for Permissions Pada Facebook Application 2.7 Facebook Platform Secara definisi, Facebook Platform memungkinkan pengembang Facebook Application dapat membuat aplikasi-aplikasi yang dapat berinteraksi dan 15 terintegrasi dengan layanan inti Facebook. Komponen-komponen ini dibuat berdasarkan bahasa pembangunan web yang sudah dikenal seperti HTML, JavaScript, dan SQL agar Facebook Application bisa dibangun dengan mudah (Maver & Popp, 2009). Beberapa bagian dari komponen platform tingkat tinggi adalah Graph API, Authentication, Sosial Plugins, dan Open Graph Protocol. Gaph API adalah inti dari Facebook Platform, memungkinkan pengembang untuk membaca dan menulis data ke Facebook. Graph API mewakili benda misalnya foto dan pages serta hubungan diantara mereka, seperti pertemanan dan likes. Facebook Authentication memungkinkan aplikasi pengembang untuk berinteraksi dengan Graph API atas nama pengguna Facebook, dan menyediakan mekanisme single-sign on pada web, mobile, dan aplikasi desktop. Social Plugins, termasuk didalamnya Like Button, rekomendasi, dan Activity Feed memungkinkan pengembang untuk memberikan pengalaman sosial untuk pengguna mereka dengan hanya beberapa baris HTML. Semua Social Plugins merupakan perluasan dari Facebook dan telah dirancang secara khusus sehigga tidak ada data pengguna yang dibagikan di tempat Social Plugins digunakan. Open Graph Protocol memungkinkan pengembang untuk mengintegrasikan halaman web ke dalam Social Graph. Memberikan Open Graph tags pada sebuah halaman web membuat halaman web tersebut setara dengan sebuah Facebook Page. Hal ini berarti bahwa jika pengguna menekan Like Button dari sebuah halaman web dengan Open Graph, halaman tersebut akan muncul di profil pengguna pada bagian Likes and Interests. 2.8 Facebook Query Language (FQL) Facebook Query Language menawarkan fitur-fitur dan elemen bahasa seperti Structured Query Language (SQL) yang memberikan akses Facebook Applications untuk secara langsung meng-query internal data milik Facebook. FQL tidak menyediakan semua sintak SQL, hanya sintak sederhana seperti SELECT, WHERE, ORDER BY, dan LIMIT (Maver & Popp, 2009). 16 Query biasanya dalam bentuk SELECT [fields] FROM [table] WHERE [conditions]. Beberapa tabel yang bisa digunakan dalam FQL ditunjukkan pada Tabel 2.2. Tidak seperti SQL, clausa FROM pada FQL hanya bisa memuat satu tabel. Fungsi lainnya yang tersedia adalah now(), strlen(), substr(), dan strops(). Tabel 2. 2 Daftar Tabel Facebook Nama Tabel album connection Isi Tabel Informasi tentang album foto pengguna. Informasi tentang teman pangguna dan Facebook Pages pengguna. friendlist like Informasi tentang teman-teman pengguna. Informasi tentang ID pengguna yang menyukai (like) objek Facebook (video, note, link, foto, album) page Informasi tentang sebuah Facebook Page photo Informasi sebuah foto profile Informasi yang bisa terlihat di profil video Informasi tentang sebuah video