PEMBANGUNAN APLIKASI PEMBANGKIT PLAYLIST LAGU OTOMATIS BERBASIS RULES
LAPORAN TUGAS AKHIR
Disusun sebagai syarat kelulusan tingkat sarjana
oleh: Anggi Shena Permata / 13505117
PROGRAM STUDI TEKNIK INFORMATIKA SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG 2009
LEMBAR PENGESAHAN Program Studi Sarjana Teknik Informatika
PEMBANGUNAN APLIKASI PEMBANGKIT PLAYLIST LAGU OTOMATIS BERBASIS RULES
Tugas Akhir Program Studi Sarjana Teknik Informatika Institut Teknologi Bandung
oleh: Anggi Shena Permata / 13505117
Telah disetujui dan disahkan sebagai Laporan Tugas Akhir di Bandung, pada tanggal 11 September 2009
Pembimbing
Achmad Imam K. S.T., M.Sc., Ph.D. NIP. 132320599 i
ABSTRAK Dewasa ini, musik merupakan hal yang tidak asing lagi bagi kehidupan manusia. Salah satu manfaat musik adalah sebagai peneman aktivitas, bahkan seringkali musik dimainkan sepanjang aktivitas tersebut dilakukan. Stasiun radio merupakan salah satu sarana yang berusaha memenuhi kebutuhan manusia akan kehadiran musik sebagai peneman aktivitas melalui lagu-lagu yang diputarkan. Lagu-lagu tersebut disusun membentuk sebuah playlist dimana penyusunannya dilakukan dengan mempertimbangkan faktor-faktor penentu yang diperoleh berdasarkan hasil analisis karakteristik pendengar. Hal inilah yang menyebabkan timbulnya kebutuhan akan aplikasi yang dapat membangkitkan playlist lagu berdasarkan faktor-faktor penentu yang dijadikan aturan penyusunan playlist. Pada Tugas akhir ini telah dirancang dan diimplementasikan sebuah aplikasi pembangkit playlist lagu otomatis berbasis rules yang diharapkan dapat membantu pengguna dalam melakukan penyusunan playlist lagu. Pengguna utama aplikasi ini adalah music director pada stasiun radio yang dianggap merupakan expert user dalam melakukan penyusunan playlist lagu. Namun aplikasi ini juga dapat digunakan oleh pengguna awam yang memang memerlukannya. Aplikasi pembangkit playlist ini dibuat dengan menggunakan bahasa pemrograman java dan netbeans 6.5.1 sebagai tool pemrograman. Selain itu digunakan pula Xstream sebagai library tambahan dalam proses konversi aturan pembangkitan playlist ke dalam bentuk xml. Aplikasi pembangkit playlist lagu telah diuji terhadap beberapa music director dan dapat disimpulkan berhasil membantu Music Director dalam melakukan penyusunan playlist. Aturan-aturan yang terdapat pada aplikasi ini dinilai sudah cukup memenuhi kebutuhan pembangkitan playlist lagu. Playlist yang dihasilkan juga dinilai sudah cukup sesuai dengan aturan yang didefinisikan. Kata kunci : playlist, lagu, otomatis, rules, stasiun radio.
ii
KATA PENGANTAR Puji dan syukur kepada Tuhan Yang Maha Esa, karena atas bimbingan dan kasih sayang-Nya penulis dapat menyelesaikan Tugas Akhir ini. Penulis bermaksud berterima kasih kepada semua pihak yang telah berperan penting dalam penyelesaian Tugas Akhir ini, terutama kepada: 1. Bapak Achmad Imam Kistijantoro, S.T., M.Sc., Ph.D. selaku Pembimbing Tugas Akhir atas kesabarannya dalam memberikan bimbingan, arahan, saran dan kritik bagi penulis dalam pengerjaan Tugas Akhir ini 2. Ibu Yani Widyani, S.T., M.T. selaku penguji presentasi proposal dan seminar Tugas Akhir 3. Bapak Ir. Dwi Hendratmo, M.Sc., Ph.D. selaku dosen wali dan penguji prasidang serta sidang Tugas Akhir 4. Ibu Fazat Nur Azizah, S.T., M.Sc. selaku dosen penguji sidang akhir Tugas Akhir 5. Mama dan papa selaku orang tua penulis yang selalu memberikan doa, perhatian, nasehat, kasih sayang, kepercayaan, serta dukungan pada penulis. 6. Priest Andy dan Agus Liong Kosasih selaku kakak dan adik penulis yang senantiasa memberi semangat dan keceriaan bagi penulis. 7. Seluruh keluarga besar penulis yang senantiasa memberikan dukungan dan semangat 8. Rezza Mahyudin atas kesabaran, kasih sayang, perhatian, kebahagian, dukungan, semangat, kebersamaan, ilmu, bantuan, saran, komentar dan kritik yang diberikan pada penulis 9. Ariviani, Dhita dan Kenneth selaku teman terdekat penulis atas semangat, dukungan dan kebersamaan yang diberikan pada penulis. 10. Umi Fadilah dan Riani Rilanda selaku teman terdekat, teman satu atap, teman mengerjakan Tugas Akhir yang senantiasa berbagi keceriaan, kebahagiaan, kesedihan, kesulitan dan makanan.
iii
11. Andika, Paw, Made, Iqbal, Fany, Ndul, Andien, Andra dan Aryo selaku teman terdekat penulis atas bantuan, semangat, keceriaan dan persahabatan yang diberikan pada penulis. 12. Aswin, Petra, Arief Latu, Diaz, dan teman-teman lain yang telah memberikan saran dan bantuan pada penulis selama pengerjaan Tugas Akhir. 13. Cathy, Myta, Pur, Arien, Yae, Dina, Ncit, Dewi selaku teman satu atap penulis selama pengerjaan Tugas Akhir atas semangat dan dukungan yang diberikan. 14. Semua teman-teman Teknik Informatika terutama angkatan Pacifist yang telah memberikan berbagai kenangan, pelajaran berharga, ilmu, semangat, kenangan, dan persahabatan selama penulis menjalani bangku perkuliahan. 15. Bapak Rasidi, Bapak Ade, dan Ibu Titi, selaku pegawai tata usaha program studi Teknik Informatika ITB. 16. Dan semua pihak-pihak yang telah membantu dan tidak dapat disebutkan satupersatu Semoga Tugas Akhir ini mampu memberi manfaat bagi pihak-pihak yang membutuhkan. Penulis menyadari bahwa masih terdapat kekurangan dalam Tugas Akhir ini dan penulis terbuka terhadap saran dan kritik pada Tugas Akhir ini.
Bandung, 11 September 2009
Penulis iv
DAFTAR ISI
LEMBAR PENGESAHAN...................................................................................... i ABSTRAK .............................................................................................................. ii KATA PENGANTAR............................................................................................ iii DAFTAR ISI ........................................................................................................... v DAFTAR GAMBAR .............................................................................................. x DAFTAR TABEL ................................................................................................. xii DAFTAR ISTILAH ............................................................................................. xiv BAB I
PENDAHULUAN ............................................................................... I-1
I.1
Latar Belakang ........................................................................................ I-1
I.2
Rumusan Masalah ................................................................................... I-3
I.3
Tujuan ..................................................................................................... I-3
I.4
Batasan Masalah ..................................................................................... I-4
I.5
Metodologi .............................................................................................. I-4
I.6
Sistematika Pembahasan ......................................................................... I-5
BAB II
STUDI LITERATUR ......................................................................... II-1
II.1
Aturan Pemaduan Lagu.......................................................................... II-1
II.2
Pemrograman Berbasis Rules ................................................................ II-5
II.2.1
Definisi Sistem Berbasis Rules ....................................................... II-5
II.2.2
Komponen Utama Pada Sistem Berbasis Rules .............................. II-7 v
II.3
Aplikasi Pembangkit Playlist Lagu ....................................................... II-8
II.3.1
Pembangkitan Playlist Lagu Berdasarkan Hint............................... II-9
II.3.1.1
AutoDJ ...................................................................................... II-9
II.3.1.2
PATS ...................................................................................... II-10
II.3.2
Pembangkitan Playlist Lagu Berdasarkan Constraints ................. II-10
II.3.2.1
Smart Playlist pada iTunes ..................................................... II-11
II.3.2.2
Create Auto Playlist pada Windows Media Player................. II-12
II.3.2.3
Selector pada rangkaian produk RCS ..................................... II-13
II.3.2.4
Studi Banding Aplikasi Pembangkit Playlist Lagu Berdasarkan
Constraints .............................................................................................. II-16 BAB III III.1 III.1.1
ANALISIS MASALAH ................................................................. III-1 Analisis Pembuatan Playlist Lagu ..................................................... III-1 Identifikasi Metadata Lagu ......................................................... III-1
III.1.1.1 Basic Metadata ........................................................................ III-3 III.1.1.2 Advance Metadata.................................................................... III-5 III.1.2
Identifikasi Rules ...................................................................... III-14
III.1.2.1 Pengaturan Basic Metadata ................................................... III-14 III.1.2.2 Pengaturan Advance Metadata ............................................... III-15 III.1.2.3 Pengaturan Non-Metadata ..................................................... III-22 III.1.2.4 Pengaturan Skala Prioritas ..................................................... III-24 III.1.2.5 Penyimpanan Rules................................................................ III-25 vi
III.1.3
Proses Pembuatan Playlist Lagu ............................................... III-26
III.1.3.1 Pengelolaan Metadata Lagu................................................... III-26 III.1.3.2 Pendefinisian Aturan ............................................................. III-27 III.1.3.3 Pembangkitan Playlist Lagu .................................................. III-28 III.2
Analisis Penerapan Algoritma Berbasis Rules ................................ III-29
III.2.1
Penerapan Algoritma Utama Pembangkitan Playlist ................ III-30
III.2.2
Penerapan Selecting Rules ........................................................ III-32
III.2.3
Penerapan Sorting Rules ........................................................... III-33
III.2.3.1 Penerapan Prinsip Ketetanggan ............................................. III-35 III.2.3.2 Penerapan Prinsip Komposisi Selang Waktu ........................ III-35 III.2.3.3 Penerapan Prinsip Komposisi ................................................ III-37 BAB IV
ANALISIS
DAN
PERANCANGAN
PERANGKAT LUNAK .....................................................................................IV-1 IV.1
Analisis Perangkat Lunak ..................................................................IV-1
IV.1.1
Deskripsi Perangkat Lunak .........................................................IV-1
IV.1.2
Kebutuhan Fungsional Perangkat Lunak ....................................IV-2
IV.1.3
Analisis Use Case .......................................................................IV-3
IV.1.4
Analisis Kelas .............................................................................IV-5
IV.2
Perancangan Perangkat Lunak...........................................................IV-6
IV.2.1
Perancangan Kelas ......................................................................IV-6
IV.2.2
Perancangan Data........................................................................IV-7 vii
IV.2.3 BAB V V.1
Perancangan Antarmuka .............................................................IV-8
IMPLEMENTASI DAN PENGUJIAN .............................................. V-1 Implementasi .......................................................................................... V-1
V.1.1
Lingkungan Implementasi ............................................................... V-1
V.1.1.1
Lingkungan Perangkat Keras.................................................... V-1
V.1.1.2
Lingkungan Perangkat Lunak ................................................... V-2
V.1.2
Batasan Implementasi ..................................................................... V-2
V.1.3
Implementasi Penyimpanan Rules .................................................. V-3
V.1.4
Implementasi Kelas ......................................................................... V-4
V.1.5
Implementasi Basis Data ................................................................. V-6
V.1.6
Implementasi Antarmuka Perangkat Lunak .................................. V-12
V.2
Pengujian.............................................................................................. V-13
V.2.1
Lingkungan Pengujian................................................................... V-13
V.2.1.1
Lingkungan Perangkat Keras.................................................. V-13
V.2.1.2
Lingkungan Perangkat Lunak ................................................. V-13
V.2.2
Pelaksanaan Pengujian .................................................................. V-14
V.2.2.1
Pengujian Pengelolaan Atribut Lagu ...................................... V-14
V.2.2.2
Pengujian Pengelolaan Data Lagu .......................................... V-16
V.2.2.3
Pengujian Pengelolaan Rules .................................................. V-17
V.2.2.4
Pengujian Pembangkitan Playlist Lagu .................................. V-17
V.2.2.5
Uji Coba Terhadap User ......................................................... V-23 viii
V.2.3 BAB VI
Kesimpulan Hasil Pengujian ......................................................... V-28 PENUTUP ......................................................................................VI-1
VI.1
Kesimpulan ........................................................................................VI-1
VI.2
Saran ..................................................................................................VI-1
DAFTAR PUSTAKA .......................................................................................... xvi LAMPIRAN A Hasil Wawancara ...................................................................... A-1 LAMPIRAN B Perancangan Antarmuka .......................................................... B-1 LAMPIRAN C Skenario Use Case ................................................................... C-1 LAMPIRAN D Implementasi Antarmuka ........................................................ D-1 LAMPIRAN E Uji CobaTerhadap User ........................................................... E-1
ix
DAFTAR GAMBAR
Gambar II-1 Gelombang Mood dalam Selang Waktu 45 Menit ......................... II-3 Gambar II-2 Gelombang Mood Dimulai dari Atas ............................................. II-4 Gambar II-3 Gelombang Mood Dimulai dari Bawah .......................................... II-4 Gambar II-4 Rule Based System Architecture ..................................................... II-8 Gambar II-5 Fitur Smart Playlist pada iTunes .................................................. II-12 Gambar II-6 Fitur Create Auto Playlist pada Windows Media Player 11......... II-13 Gambar II-7 Aplikasi Selector .......................................................................... II-15 Gambar II-8 Scheduling pada Selector.............................................................. II-15 Gambar III-1 Tabel Pendefinisian Rentang Waktu Pemutaran Lagu............... III-10 Gambar III-2 Pendefinisian Rentang Waktu untuk Opsi Anytime ................... III-11 Gambar III-3 Pendefinisian Rentang Waktu untuk Opsi Only Midnight ......... III-11 Gambar III-4 Opsi Tingkatan Mood................................................................. III-12 Gambar III-5 Letak Posisi Mood Happy dan Sad ............................................ III-13 Gambar III-6 Contoh Gelombang dengan Titik 3 Sebagai Awal Gelombang . III-21 Gambar III-7 Algoritma Pembangkit Playlist Lagu ......................................... III-30 Gambar IV-1 Gambaran Umum Perangkat Lunak.............................................IV-2 Gambar IV-2 Diagram Use Case .......................................................................IV-3 Gambar IV-3 Diagram Kelas Keseluruhan Tahap Analisis ...............................IV-5 Gambar IV-4 Diagram Kelas Keseluruhan Tahap Perancangan ........................IV-6 x
Gambar IV-5 Perancangan Data ........................................................................IV-7 Gambar IV-6 Perancangan Layar Data Lagu .....................................................IV-8 Gambar V-1 Contoh Antarmuka ....................................................................... V-12
xi
DAFTAR TABEL
Tabel II-1 Studi Banding Aplikasi Pembangkit Playlist Berdasarkan Constraints .... II-16 Tabel III-1 Metadata Lagu ................................................................................. III-2 Tabel III-2 Contoh Pengaturan Atribut Genre ................................................... III-6 Tabel III-3 Aturan Default Pemaduan Beat Lagu ............................................ III-15 Tabel III-4 Contoh Pengaturan Genre .............................................................. III-17 Tabel III-5 Aturan Default Pemaduan Roles .................................................... III-17 Tabel III-6 Contoh Pengaturan Tipe Lagu ....................................................... III-18 Tabel III-7 Contoh Pengaturan Berdasarkan State ........................................... III-19 Tabel III-8 Contoh Pengaturan Berdasarkan History ....................................... III-19 Tabel III-9 Contoh Pengaturan Berdasarkan Theme ........................................ III-19 Tabel III-10 Contoh Pengaturan Berdasarkan Day Part Grid ......................... III-20 Tabel III-11 Contoh Pendefinisian Mood......................................................... III-21 Tabel III-12 Contoh Pengaturan Berdasarkan Group ...................................... III-22 Tabel III-13 Default Pengaturan Berdasarkan Waktu ..................................... III-23 Tabel III-14 Default Pengaturan Berdasarkan Cuaca...................................... III-23 Tabel III-15 Pengelompokan Rules .................................................................. III-28 Tabel IV-1 Daftar Kebutuhan Fungsional Perangkat Lunak..............................IV-2 Tabel V-1 Contoh Rule yang Akan Disimpan ................................................... V-3 Tabel V-2 Implementasi Kelas ............................................................................ V-4 xii
Tabel V-3 Basis Data Lagu ................................................................................. V-6 Tabel V-4 Basis Data Atribut Age....................................................................... V-7 Tabel V-5 Basis Data Atribut Beat ..................................................................... V-8 Tabel V-6 Basis Data Atribut Day Period .......................................................... V-8 Tabel V-7 Basis Data Atribut Day Part Grid ..................................................... V-9 Tabel V-8 Basis Data Atribut Genre ................................................................... V-9 Tabel V-9 Basis Data Atribut Group ................................................................ V-10 Tabel V-10 Basis Data Atribut History ............................................................. V-10 Tabel V-11 Basis Data Atribut Mood ............................................................... V-10 Tabel V-12 Basis Data Atribut State ................................................................. V-11 Tabel V-13 Basis Data Atribut Theme .............................................................. V-11 Tabel V-14 Basis Data Atribut Type ................................................................. V-11 Tabel V-15 Basis Data Atribut Weather ........................................................... V-12 Tabel V-16 Pengujian Pengelolaan Atribut Beat .............................................. V-14 Tabel V-17 Pengujian Pengelolaan Atribut Genre........................................... V-15 Tabel V-18 Pengujian Pengelolaan Atribut Day Part Grid .............................. V-15 Tabel V-19 Pengujian Pengelolaan Data Lagu ................................................. V-16 Tabel V-20 Pengujuan Pengelolaan Rules ........................................................ V-17 Tabel V-21 Pengujian Selecting Rules .............................................................. V-18 Tabel V-22 Hasil Post-Test Uji Coba User ....................................................... V-26
xiii
DAFTAR ISTILAH No. 1
Istilah Counter
Deskripsi Variabel yang digunakan untuk menyimpan suatu nilai. Operasi yang dilakukan terhadap nilai tersebut akan menyebabkan terjadinya perubahan nilai.
2
Cut Ending
Cut ending merupakan karakter dimana suatu lagu akan berakhir pada saat yang menghentak. Cut ending biasanya ditandai dengan vokal dan musik yang berhenti secara bersamaan sebagai akhir lagu.
3
Cut Opening
Cut opening merupakan karakter dimana suatu lagu akan dimulai dengan spontan. Cut opening biasanya ditandai dengan vokal dan musik yang dimainkan secara bersamaan pada awal sebuah lagu.
4
Fade In
Fade in merupakan karakter dimana suatu lagu dimulai dengan perlahan-lahan dari musik pembuka sampai vokal dinyanyikan.
5
Fade Out
Fade out merupakan karakter dimana suatu lagu akan berakhir secara perlahan-lahan dan semakin lama semakin mengecil suaranya. Fade out biasanya ditandai dengan pemutaran reff lagu yang berulang-ulang dan semakin menipis suaranya pada setiap ulangan sampai akhirnya suara benar-benar menghilang dan lagu selesai.
6
Hint Song
Satu atau lebih lagu yang ditandai sebagai jenis lagu akan akan dijadikan dasar pemilihan lagu lain yang memiliki similaritas dengan Hint Song tersebut
7
Mixing
Proses pemaduan dan pemutaran lagu yang dilakukan pada stasiun radio. Mixing dilakukan oleh penyiar ataupun operator pada saat siaran. Proses mixing dipengaruhi oleh karakteristik serta jenis ending dan opening suatu lagu.
xiv
No. 8
Istilah Music Director
Deskripsi Orang yang berperan mengelola semua hal yang berkaitan dengan musik pada stasiun radio
9
Playlist
Daftar lagu yang akan dimainkan/diputarkan
10
Shuffle
Fitur pengacakan lagu pada music player tertentu. Pengacakan dilakukan secara random (acak murni) tanpa mempertimbangkan metadata lagu.
11
tn
Selang waktu /interval suatu lagu (per satu lagu) dengan jenis tertentu dapat dimainkan.
xv