BAB III ANALISIS MASALAH Bab ini menjelaskan analisis permasalahan yang merupakan permasalahan mendasar pada Tugas Akhir ini, serta solusi yang dirancang untuk mengatasi permasalahan tersebut. Solusi yang dirancang merupakan teknik dan algoritma yang dibuat berdasarkan studi literatur yang telah dikemukakan pada bab sebelumnya. Pada bab ini akan dibahas mengenai analisis pembuatan playlist lagu dan analisis penerapan algoritma berbasis rules pada proses pembangkitan playlist. III.1 Analisis Pembuatan Playlist Lagu Dewasa ini kebiasaan mendengar lagu sebagai peneman aktivitas menuntut adanya pemenuhan akan kebutuhan playlist lagu yang sesuai dengan selera pendengar. Untuk memenuhi kebutuhan tersebut, salah satu cara yang dapat digunakan adalah dengan mempelajari karakteristik selera pendengar berdasarkan aturan-aturan yang didefinisikan. Pendefinisian aturan dilakukan terhadap metadata lagu dengan menerapkan prinsip pemaduan lagu yang dipercaya oleh music director agar playlist yang dihasilkan dapat sesuai dengan keinginan pendengar. Untuk menghasilkan playlist yang dapat mendekati keinginan pendengar, maka akan dilakukan pembahasan mengenai pengindentifikasian metadata lagu yang diperlukan, pengidentifikasian aturan yang akan diterapkan, dan proses pembuatan playlist lagu. III.1.1 Identifikasi Metadata Lagu Sebuah lagu pada dasarnya merupakan objek yang unik karena memiliki karakteristik berbeda yang terkandung di dalamnya. Pada lagu yang sama mungkin saja mengandung karakteristik yang berbeda, misalnya sebuah lagu yang sama dinyanyikan oleh panyanyi yang berbeda, mungkin memiliki genre dan jenis beat yang berbeda. Karakteristik lagu dapat dilihat dari berbagai informasi yang terkandung dalam lagu tersebut yang disebut sebagai atribut lagu atau data lagu. III-1
III-2
Untuk selanjutnya, dalam pembangkitan playlist, atribut lagu ini akan menjadi metadata lagu yang dapat dikelola melalui proses editing. Proses editing yang dimaksud meliputi proses pemasukkan, perubahan, penghapusan, pengelompokan dan pendefinisian informasi. Berdasarkan jenis proses editing yang dapat dilakukan terhadap atribut lagu, metadata lagu dapat dikelompokan menjadi Basic Metadata dan Advance Metadata. Secara garis besar identifikasi metadata yang dilakukan dapat dilihat pada Tabel III-1. Tabel III-1 Metadata Lagu
Jenis Metadata
Nama Atribut
Keterangan
Opsi Default
Song Title
Judul lagu
-
Artist
Nama penyanyi
-
Album
Nama album
-
Composer
Nama pencipta lagu
-
Bit Rate
Bit data per detik lagu
-
Rating
Penilaian terhadap lagu
1-5
Time
Waktu lagu
-
Year
Tahun rilis lagu
-
Beat
Terkait dengan tempo lagu
Basic Metadata
Fast, Middle, Slow
Advance Metadata
Genre
Aliran musik pada lagu
Rock, Pop, Dance, Jazz, dan Alternative
Advance Metadata
Roles
Jenis penyanyi
Male, Female, Male&Female
III-3
Jenis Metadata
Nama Atribut Type
Keterangan Asal lagu
Opsi Default Foreign Song, Indonesian Song
State
Status lagu
Top 40, Hits, New
History
Sejarah tindakan terhadap
Most Played,
lagu
Never Been Listened
Theme
Tema lagu
Birthday, Religious
Age
Sasaran usia pendengar
Kid, Teen, Adult
Day Part Grid
Rentang waktu pemutaran
Anytime, Only
lagu
Midnight
Mood
Mood lagu
Happy, Sad
Group
Pengelompokan lagu
Current,
berdasarkan periode tahun
Recurrent, Gold, Oldies, Nostagia
III.1.1.1 Basic Metadata Basic metadata merupakan jenis atribut lagu dimana informasi yang terkandung di dalamnya hanya dapat dimasukkan, diubah dan dihapus. Pengguna tidak dapat membuat pengelompokan atribut dan mendefinisikannya sendiri. Basic metadata
III-4
ini merupakan atribut standard yang terdapat pada sebuah lagu. Pengguna dapat mengisi informasi basic metadata dengan memasukkan nilai secara manual atau memilih salah satu opsi jika. Adapun beberapa basic metadata yang diperlukan adalah sebagai berikut: 1.
Song Title Atribut ini merupakan keterangan mengenai judul dari lagu yang bersangkutan. Atribut ini hanya dapat diisi dengan single value yang diassign oleh pengguna.
2.
Artist Atribut ini merupakan keterangan mengenai nama penyanyi dari lagu yang bersangkutan. Pada jenis lagu tertentu, terdapat penyanyi yang melakukan kolaborasi dengan penyanyi lain. Dengan alasan tersebut, maka pada atribut ini pengguna dapat memasukkan lebih dari satu nilai (maksimal 3) dengan ketentuan artist pertama merupakan penyanyi utama dan 2 lainnya merupakan penyanyi pendukung.
3.
Album Atribut ini merupakan keterangan mengenai nama album dari lagu yang bersangkutan dan hanya dapat diisi dengan single value yang diassign oleh pengguna .
4.
Composer Atribut ini merupakan keterangan mengenai nama pembuat lagu. Atribut ini hanya dapat diisi dengan single value yang diassign oleh pengguna.
5.
Bit Rate Atribut ini merupakan keterangan mengenai kualitas suatu file lagu. Pada bit rate terdapat informasi jumlah bit data yang terkandung pada setiap detik lagu. Pada sebuah lagu yang sama dengan bit rate berbeda, lagu dengan bit rate yang lebih tinggi akan memiliki kulitas yang lebih baik. Atribut ini hanya dapat diisi dengan single value yang diassign oleh pengguna.
III-5
6.
Rating Atribut ini merupakan keterangan mengenai penilaian pengguna terhadap lagu tersebut. Metadata ini kelak diperlukan dalam proses pembangkitan playlist lagu sebagai sumber informasi tingkat ketertarikan pengguna terhadap lagu yang bersangkutan. Atribut ini hanya dapat diisi dengan single value yang dipilih oleh pengguna. Opsi pilihan yang akan disediakan adalah penilaian berdasarkan skala 1 sampai 5, dimana semakin besar angka skala akan menunjukkan semakin besar pula tingkat ketertarikan pengguna terhadap lagu.
7.
Time Atribut ini merupakan keterangan mengenai panjang lagu (ukuran waktu pemutaran). Atribut ini hanya dapat diisi dengan single value yang diassign oleh pengguna.
8.
Year Atribut ini merupakan keterangan mengenai tahun rilis lagu yang bersangkutan. Atribut ini hanya dapat diisi dengan single value yang diassign oleh pengguna.
III.1.1.2 Advance Metadata Advance metadata merupakan jenis atribut lagu dimana informasi yang terkandung di dalamnya dapat dimasukkan, diubah, dihapus, atau dikelompokkan ke dalam beberapa kategori. Pengguna dapat membuat sendiri opsi dari setiap atribut yang kelak dapat dipilih untuk diassign menjadi nilai atribut lagu. Adapun beberapa Advance metadata yang diperlukan sebagai informasi dasar sebuah lagu adalah sebagai berikut: 1.
Beat Beat merupakan satuan waktu yang dihitung berdasarkan ketukan pada sebuah lagu. Beat seringkali dikaitkan dengan tempo yang menggambarkan cepat lambatnya sebuah lagu atau musik dan biasanya dapat diukur dengan menggunakan metronom. Atribut ini akan diberikan 3 opsi default yaitu:
III-6
a. Fast
: jenis lagu dengan tempo yang cukup cepat
b. Middle
: jenis lagu dengan tempo sedang
c. Slow
: jenis lagu dengan tempo yang cukup lambat
Operasi yang dapat dilakukan terhadap atribut ini adalah penambahan, penghapusan, perubahan nilai opsi. Sebagai contoh, pengguna dapat melakukan penambahan opsi beat menjadi 5 jenis yaitu: very fast, fast, middle, slow, low. 2.
Genre Atribut ini merupakan keterangan mengenai jenis / aliran musik dari lagu yang bersangkutan. Seiring perkembangan jaman, makin banyak genre musik yang tercipta. Beberapa diantaranya merupakan perpaduan dari genre-genre yang telah ada menghasilkan suatu genre baru. Pada atribut ini, pengguna dapat mendefinisikan opsi genre secara umum dan juga genre-genre yang lebih spesifik lagi yang termasuk di dalamnya. Atribut ini akan diberikan opsi default yang mengelompokkan genre menjadi Rock, Pop, Dance, Jazz, dan Alternative. Opsi default yang diberikan hanya mengelompokan lagu berdasarkan genre tanpa mendefinisikan sub-genre yang termasuk di dalamnya.
Pengguna
dapat
melakukan
penambahan,
penghapusan,
pendefinisian opsi genre baru, dan pendefinisian sub-genre dari genre yang bersangkutan. Sebagai contoh pengguna dapat melakukan perubahan terhadap opsi default, yaitu dengan melakukan penambahan dan pendefinisian genre dan sub-genre baru seperti tertera pada Tabel III-2.
Tabel III-2 Contoh Pengaturan Atribut Genre
Genre
Sub-Genre
Rock
Rock ‘n Roll Space Rock Hard Metal
III-7
Pop
Brit Pop Sweet Pop
Dance
R&B Disco Latin
Jazz
Fusion / Acid Cool Jazz
Blues
Memphis Country
Alternative
Art Rock Space Music
Semakin banyaknya perpaduan genre yang dilakukan telah menghasilkan jenis musik baru yang terkadang terlalu banyak jumlahnya jika harus didefinisikan sebagai genre baru. Oleh karena itu, terdapat kemungkinan adanya jenis musik yang merupakan perpaduan beberapa genre namun tidak dispesifikasikan sebagai genre baru. Pada beberapa jenis perpaduan tersebut, terdapat lagu yang mengandung beberapa genre yang sama kuatnya (samasama dominan) dan ada pula lagu yang mengandung sebuah genre utama yang dipadukan dengan beberapa genre pendukung lainnya yang tidak terlalu dominan. Untuk mempermudah proses pembangkitan playlist lagu, maka atribut genre dapat diberikan lebih dari satu nilai (maksimal 3) yang dapat berupa genre atau sub-genre. Jenis genre pertama merupakan genre yang paling dominan (primary) dalam lagu tersebut dan 2 jenis genre lainnya merupakan genre yang dianggap tidak terlalu dominan (alternative).
III-8
3.
Roles Atribut ini merupakan keterangan mengenai jenis penyanyi dari lagu yang bersangkutan.
Jenis
penyanyi
yang
dimaksud
akan
dikelompokkan
berdasarkan gender. Atribut ini hanya dapat diisi dengan single value yang dapat dipilih dari opsi statik yang telah disediakan oleh sistem. Opsi statik yang tersedia hanya dapat dipilih dan tidak bisa dimodifikasi oleh pengguna. Atribut ini memiliki 3 opsi default yaitu:
4.
1. Male
: Penyanyi pria
2. Female
: Penyanyi wanita
3. Male & Female
: Penyanyi Pria dan Wanita
Type Atribut ini merupakan keterangan mengenai asal lagu yang bersangkutan. Kecendrungan nilai yang dapat dimasukkan pada atribut ini adalah informasi mengenai bahasa yang digunakan dalam menyanyikan lagu. Atribut ini hanya dapat diisi dengan single value yang dapat dipilih dari opsi type yang telah didefinisikan sebelumnya. Atribut ini diberikan 2 opsi default yaitu: 1. Foreign Song : merupakan jenis lagu yang berasal dari negara selain Indonesia dan dinyanyikan dalam bahasa asing 2. Indonesian Song : merupakan jenis lagu yang berasal dari negara Indonesia yang dinyanyikan dalam bahasa Indonesia
5.
State Atribut ini merupakan keterangan mengenai status atau kondisi lagu yang bersangkutan. Atribut ini hanya dapat diisi dengan single value yang dapat dipilih dari opsi state yang telah didefinisikan sebelumnya. Atribut ini diberikan 3 opsi default yaitu: 1. Top 40 : Status lagu berada dalam 40 lagu terbaik pada sebuah chart 2. Hits
: Lagu sedang digemari oleh banyak orang
3. New
: Lagu yang baru saja dirilis
III-9
6.
History Atribut ini merupakan keterangan mengenai sejarah keadaan atau tindakan yang dilakukan terhadap lagu yang bersangkutan. Atribut ini hanya dapat diisi dengan single value yang dapat dipilih dari opsi history yang telah didefinisikan sebelumnya. Atribut ini diberikan 2 opsi default yaitu: 1. Most played
: menyatakan bahwa lagu tersebut adalah lagu yang
paling sering dimainkan 2. Never Been Listened : Menyatakan bahwa lagu tersebut tidak pernah dimainkan 7.
Theme Atribut ini merupakan keterangan menganai tema yang memaknai lagu yang bersangkutan. Atribut ini hanya dapat diisi dengan single value yang dapat dipilih dari opsi yang telah didefinisikan sebelumnya. Atribut ini diberikan 2 nilai opsi default yaitu: 1. Birthday : Merupakan lagu-lagu yang bertema ulang tahun 2. Religious : Merupakan lagu-lagu keagamaan
8.
Age Atribut ini merupakan keterangan mengenai sasaran umur pendengar dari lagu yang bersangkutan. Atribut ini menyatakan rentang usia pendengar yang cocok untuk mendengarkan lagu tersebut. Pengguna dapat melakukan pengelompokan age dengan mendefinisikan rentang usia pendengar pada setiap opsi age yang didefinisikan. Hanya terdapat satu nilai (single value) age yang boleh diassign pada sebuah lagu. Atribut ini diberikan 2 opsi default yaitu: 1. Kid
:
0 – 15 tahun
2. Teen
:
15 – 20 tahun
3. Adult : 9.
lebih dari 20 tahun
Day Part Grid Atribut ini merupakan keterangan mengenai rentang waktu pemutaran suatu lagu. Pengguna dapat melakukan pengelompokkan waktu pemutaran lagu
III-10
dengan mendefinisikan semua opsi waktu pemutaran lagu. Kemudian pada setiap opsi tersebut pengguna harus mendefinisikan rentang waktu pemutarannya. Pendefinisian rentang waktu dapat dilakukan dengan menandai setiap sel (perpotongan waktu dan hari) dari tabel pendefinisian rentang waktu pemutaran lagu. Setiap sel yang ditandai menunjukan bahwa lagu yang bersangkutan dapat dimainkan pada hari dan waktu tersebut. Adapun tabel pendefinisian rentang waktu ditunjukan pada Gambar III-1.
Gambar III-1 Tabel Pendefinisian Rentang Waktu Pemutaran Lagu
Atribut ini akan diberikan 2 opsi default yaitu: 1. Anytime Nilai yang akan diberikan pada lagu yang cocok untuk diputarkan setiap waktu. Opsi ini memungkinkan lagu untuk diputarkan setiap hari (Senin Minggu) dan setiap jam (00.01 – 24.00). pendefinisian rentang waktu untuk kategori ini akan digambarkan pada Gambar III-2. 2. Only Midnight Nilai yang akan diberikan pada lagu yang hanya cocok dimainkan pada tengah malam. Opsi ini memungkinkan lagu untuk diputarkan setiap hari (Senin - Minggu) pada jam (12.00 PM – 05.00 AM). pendefinisian rentang waktu untuk kategori ini akan digambarkan pada Gambar III-3.
III-11
Gambar III-2 Pendefinisian Rentang Waktu untuk Opsi Anytime
Gambar III-3 Pendefinisian Rentang Waktu untuk Opsi Only Midnight
10. Mood Atribut ini merupakan keterangan mengenai karakteristik atau makna yang tersirat dari sebuah lagu. Secara garis besar mood lagu dapat dikelompokkan ke dalam 2 kategori, yaitu mood positif dan mood negatif. Adapun contoh mood lagu yang bersifat positif yaitu: santai / relax, kagum, happy, bangga, jatuh cinta, lucu, damai, ceria, dan semangat. Sedangkan contoh mood lagu yang bersifat negatif yaitu: patah hati, cemburu, sedih, sendu, mencekam, depresi, misteri, protes, sakit hati, dan kecewa. Pengguna dapat melakukan pengelompokkan mood lagu dimana untuk setiap opsi mood harus didefinisikan letak mood tersebut dalam gelombang. Tingkatan posisi mood pada gelombang akan dibagi menjadi 8 titik (0 - 7) seperti tertera pada Gambar III-4.
III-12
Gambar III-4 Opsi Tingkatan Mood
Pada keseluruhan opsi posisi mood, setiap titik gelombang memiliki jenis pemilihan lagu yang berbeda. Untuk dapat mendefinisikan ketegori mood, pengguna harus memperhatikan tata cara pemilihan jenis lagu yang sesuai dengan posisi titik mood pada gelombang. Adapun penjelasan mengenai pemilihan lagu pada tiap titik posisi gelombang adalah sebagai berikut: Titik 0 : jenis lagu dengan mood di pertengahan menuju ke arah positif Titik 1 : jenis lagu dengan mood menuju ke arah positif Titik 2 : jenis lagu dengan mood sangat positif Titik 3 : jenis lagu dengan mood positif namun menuju kearah pertengahan Titik 4 : jenis lagu dengan mood di pertengahan menuju ke arah negatif Titik 5 : jenis lagu dengan mood menuju ke arah negatif Titik 6 : jenis lagu dengan mood sangat negatif Titik 7 : jenis lagu dengan mood negatif menuju ke arah pertengahan Pada aplikasi yang dirancang, atribut mood akan diberi 2 opsi default seperti yang tertera pada gambar III-5, yaitu: 1. Happy : nilai yang diberikan pada lagu yang memiliki mood sangat positif (titik 2) 2. Sad
: nilai yang diberikan pada lagu yang memiliki mood sangat
negatif (titik 6)
III-13
Gambar III-5 Letak Posisi Mood Happy dan Sad
11. Group Atribut
ini
merupakan
keterangan
mengenai
pengelompokkan
lagu
berdasarkan periode tahun lagu tersebut / umur lagu tersebut. Pengguna dapat melakukan pengelompokan Group dengan membuat opsi baru selain nilai default dengan ketentuan bahwa pada setiap opsi harus didefinisikan periode tahunnya. Atribut ini diberikan 5 nilai default yaitu: 1. Current : lagu yang sedang popular / sering diperdengarkan dari periode saat ini (current time) sampai 3 bulan yang lalu. 2. Recurrent : lagu yang sedang popular / sering diperdengarkan dari periode 3 bulan sebelum saat ini (current time) sampai satu tahun yang lalu. 3. Gold : lagu yang sedang popular / sering diperdengarkan dari periode satu tahun yang lalu sampai lima tahun yang lalu. 4. Oldies : lagu yang sedang popular / sering diperdengarkan dari periode 11 tahun yang lalu sampai 20 tahun yang lalu. 5. Nostagia : lagu yang sedang popular / sering diperdengarkan dari periode 20 tahun yang lalu kebelakang (tahun-tahun sebelum 20 tahun yang lalu).
III-14
III.1.2 Identifikasi Rules Dalam melakukan pembangkitan playlist lagu diperlukan sejumlah aturan (rules) yang harus didefinisikan terlebih dahulu untuk membatasi lagu yang dapat dimasukkan ke dalam playlist. Aturan yang dapat didefinisikan pengguna terbagi menjadi 2 jenis yaitu aturan yang diterapkan terhadap metadata dan aturan yang diterapkan berdasarkan faktor luar (non-metadata). Aturan yang diterapkan terhadap metadata akan mengelola lagu berdasarkan batasan-batasan nilai metadata yang diberikan pengguna. Aturan ini terbagi menjadi 2 kategori yaitu aturan terhadap basic metadata dan advance metadata. Pengaturan terhadap nonmetadata merupakan aturan yang diperoleh berdasarkan prinsip-prinsip pemutaran lagu dengan mempertimbangkan faktor luar yang mempengaruhi pemilihan jenis lagu. Penetapan aturan yang diterapkan baik terhadap metadata maupun nonmetadata akan menjadi dasar penentuan lagu yang dapat dimasukkan ke dalam playlist dan dapat dikelola sedemikian rupa oleh pengguna untuk mendefinisikan karakteristik playlist yang diinginkan. III.1.2.1 Pengaturan Basic Metadata Berdasarkan identifikasi metadata yang dilakukan, terdapat beberapa atribut lagu yang termasuk dalam basic metadata yaitu: Song Title, Artist, Album, Composer, Bit Rate, Rating, Time dan Year. Pengguna dapat melakukan pendefinisian aturan terhadap basic metadata dengan menetukan atribut yang ingin dibatasi serta mendefinisikan nilai batasannya. Nilai batasan yang didefinisikan harus sesuai dengan tipe data atribut yang bersangkutan. Berikut merupakan beberapa contoh pengaturan basic metadata: 1.
Pengguna menginginkan playlist yang terdiri dari lagu-lagu dengan rating terbaik saja, maka aturan pada atribut rating akan dibatasi dengan nilai bintang 5 (rating tertinggi)
2.
Pengguna menginginkan playlist yang terdiri dari lagu-lagu yang dirilis pada tahun 1990, maka aturan pada atribut Year akan dibatasi dengan nilai 1990.
III-15
III.1.2.2 Pengaturan Advance Metadata Berbeda dengan basic metadata, pengaturan yang dapat diterapkan terhadap advance metadata jauh lebih kompleks. Untuk opsi default yang telah ditentukan, terdapat aturan default pula yang telah ditetapkan. Perubahan yang dilakukan terhadap opsi atribut akan menyebabkan terjadinya perubahan aturan yang kelak dapat dikelola lebih lanjut oleh pengguna. Adapun pengaturan yang dapat dilakukan terhadap advance metadata adalah sebagai berikut: 1.
Pengaturan Beat Pengaturan beat dilakukan dengan mendefinisikan aturan mana saja yang diperbolehkan untuk menentukan lagu selanjutnya yang akan dimasukkan ke dalam playlist. Aturan ini dibuat berdasarkan kecocokan beat 2 buah lagu tersebut untuk diputar secara berurutan. Berdasarkan opsi default yang dirancang, sistem memiliki 3 jenis beat yaitu : Fast, Middle dan Slow. Aturan default yang ditetapkan terhadap 3 opsi tersebut adalah memperbolehkan semua jenis pemaduan beat. Sebagai aturan default, pemaduan beat juga akan dilakukan berdasarkan prinsip tidak diperkenankannya 3 lagu dengan beat yang sama diputarkan secara berturut-turut. Namun pengguna dapat saja mengubah pengaturannya untuk diperbolehkan (allowed). Banyaknya jenis pemaduan default dihitung berdasarkan permutasi 3 beat lagu tersebut dan dapat dilihat pada Tabel III-3. Tabel III-3 Aturan Default Pemaduan Beat Lagu
Current Song
Next Song
Status
Fast
Fast
allowed
Fast
Middle
allowed
Fast
Slow
allowed
Middle
Fast
allowed
Middle
Middle
allowed
III-16
Current Song
2.
Next Song
Status
Middle
Slow
allowed
Slow
Fast
allowed
Slow
Middle
allowed
Slow
Slow
allowed
Pengaturan Genre Pengaturan genre dapat dilakukan dengan menentukan genre lagu apa saja yang harus terdapat dalam playlist beserta komposisi genre tersebut (dalam persen). Pendefinisian komposisi yang dilakukan terhadap genre akan mengikut-sertakan semua sub-genre dari genre yang bersangkutan. Pendefinisian komposisi yang dilakukan terhadap sub-genre hanya akan mempertimbangkan sub-genre yang dimaksud. Pendefinisian aturan terhadap atribut genre juga harus dilakukan dengan menjelaskan keadaan genre yang diinginkan. Pada atribut genre, terdapat 2 jenis genre yaitu: Primary genre dan Alternative genre. Primary genre merupakan nilai yang diassign pada nilai pertama atribut sedangkan Alternative genre merupakan nilai yang diassign pada nilai kedua dan ketiga atribut. Dalam melakukan pengaturan genre, jenis genre yang dapat dipilih adalah Primary genre, Alternative genre dan Any Kind genre. Pemilihan Primary genre berarti genre yang dimaksud harus merupakan primary genre, Pemilihan Alternative genre berarti genre yang dimaksud harus merupakan alternative genre, sedangkan Pemilihan Any Kind genre berarti genre yang dimaksud boleh merupakan jenis genre manapun baik primary maupun alternative genre. Secara garis besar, pengaturan genre akan melibatkan nama, komposisi, dan jenis genre yang diinginkan. Pada kondisi awal tidak ada aturan yang didefinisikan sebagai default, sehingga untuk menjadikan genre sebagai salah
III-17
satu aturan pembangkitan playlist, pengguna harus terlebih dahulu mendefinisikannya. Contoh pengaturan genre dapat dilihat pada Tabel III-5. Tabel III-4 Contoh Pengaturan Genre
Genre
Komposisi
Jenis Genre
(%)
3.
Rock
20
Primary
Pop
50
Alternative
Jazz
30
Any Kind
Pengaturan Roles Pengaturan Roles (jenis penyanyi) dilakukan dengan mendefinisikan aturan mana saja yang diperbolehkan untuk menentukan lagu selanjutnya yang akan dimasukkan ke dalam playlist berdasarkan jenis penyanyi lagu sebelumnya. Berdasarkan opsi default, sistem memiliki 3 jenis roles yaitu: Male, Female dan Male&Female. Aturan default yang ditetapkan terhadap 3 opsi tersebut adalah memperbolehkan semua jenis pemaduan roles. Banyaknya jenis pemaduan default dihitung berdasarkan permutasi 3 roles statik seperti yang tertera pada Tabel III-5. Selain opsi aturan yang dapat dipilih, sebagai aturan default pemaduan jenis penyanyi juga akan dilakukan berdasarkan prinsip tidak diperkenankannya 3 lagu dengan jenis penyanyi yang sama diputarkan secara berturut-turut. Namun pengguna dapat saja mengubah pengaturannya untuk diperbolehkan (allowed). Tabel III-5 Aturan Default Pemaduan Roles
Current Song
Next Song
Status
Male
Male
allowed
Male
Female
allowed
III-18
Current Song
4.
Next Song
Status
Male
Male&Female
allowed
Female
Male
allowed
Female
Female
allowed
Female
Male&Female
allowed
Male&Female
Male
allowed
Male&Female
Female
allowed
Male&Female
Male&Female
allowed
Pengaturan Type Pengaturan type dapat dilakukan dengan menentukan komposisi jenis tipe lagu (dalam persen) yang harus dipenuhi pada playlist yang dihasilkan. Pada kondisi awal tidak ada aturan yang didefinisikan sebagai default. Contoh pengaturan type dapat dilihat pada Tabel III-6. Tabel III-6 Contoh Pengaturan Tipe Lagu
Type
5.
Komposisi (%)
Foreign
70
Indonesian
30
Pengaturan State Aturan yang dapat didefinisikan terhadap atribut State adalah banyaknya jumlah lagu dengan state tertentu yang dapat diputarkan dalam suatu selang waktu. Selang waktu yang dimaksud dihitung menggunakan satuan menit. Pada kondisi awal tidak ada aturan yang didefinisikan pada sistem sebagai default. Contoh pengaturan state dapat dilihat pada Tabel III-7.
III-19
Tabel III-7 Contoh Pengaturan Berdasarkan State
State
6.
Komposisi (n)
Selang Waktu (menit)
New
2
60
Hits
3
120
Pengaturan History Pengaturan history dapat dilakukan dengan menentukan status diperbolehkan atau tidaknya suatu lagu dengan history tertentu untuk dimainkan. Pada kondisi awal tidak ada aturan yang didefinisikan pada sistem sebagai default. Contoh pengaturan history dapat dilihat pada Tabel III-8, dimana pengguna menginginkan playlist yang dihasilkan hanya terdiri dari lagu-lagu yang belum pernah didengarkan. Tabel III-8 Contoh Pengaturan Berdasarkan History
History
7.
Status
Most Played
Not Allowed
Never Been Listened
Allowed
Pengaturan Theme Pengaturan theme dapat dilakukan dengan menentukan banyaknya jumlah lagu dengan theme tertentu yang dapat diputarkan dalam suatu selang waktu (menit). Pada kondisi awal tidak ada aturan yang didefinisikan pada sistem sebagai default. Contoh pengaturan theme dapat dilihat pada Tabel III-9. Tabel III-9 Contoh Pengaturan Berdasarkan Theme
Theme
Komposisi (n)
Selang Waktu (menit)
Birthday
2
60
Religious
3
120
III-20
8.
Pengaturan Age Pengaturan age dapat dilakukan dengan menentukan rentang usia pendengar. Dalam melakukan pembangkitan playlist, sistem akan menyesuaikan lagu yang akan dimasukkan ke dalam playlist dengan rentang usia pendengar tersebut. Pencarian lagu akan dilakukan berdasarkan nilai atribut age yang dimiliki oleh lagu.
9.
Pengaturan Day Part Grid Pengaturan day part grid dapat dilakukan dengan menentukan jenis lagu dengan waktu pemutaran apa saja yang diperbolehkan dalam playlist. Pada kondisi awal tidak ada aturan yang didefinisikan pada sistem sebagai default, Contoh pengaturan day part grid dapat dilihat pada Tabel III-10. Tabel III-10 Contoh Pengaturan Berdasarkan Day Part Grid
Day Part Grid
Status
Only Midnight
Allowed
Anytime
Not Allowed
10. Pengaturan Mood Pengaturan mood dapat dilakukan dengan menentukan akan dipergunakan atau tidaknya gelombang mood sebagai dasar pembuatan playlist lagu. Jika pengguna menggunakan gelombang mood sebagai dasar pembentukan playlist, maka pengguna harus menentukan titik awal gelombang terlebih dahulu. Dalam melakukan pembangkitan playlist, sistem akan menyesuaikan nilai atribut mood pada setiap lagu dengan mengikuti aliran gelombang mood dimulai dari lagu yang memiliki posisi mood sesuai dengan titik awal gelombang. Penentuan posisi awal gelombang dapat dilakukan dengan memilih salah satu dari 8 titik gelombang yang disediakan. Contoh pangaturan gelombang mood dengan titik 2 sebagai awal gelombang dapat dilihat pada Gambar III-6.
III-21
Gambar III-6 Contoh Gelombang dengan Titik 3 Sebagai Awal Gelombang
Jika pengguna tidak menggunakan gelombang mood sebagai dasar pembentukan playlist, maka pengguna dapat menentukan mood lagu apa saja yang diperbolehkan dalam playlist. Contoh pendefinisian mood dapat dilihat pada Tabel III-11, dimana tabel ini menunjukan keinginan penguna agar playlist yang dihasilkan hanya terdiri dari lagu-lagu dengan mood happy. Tabel III-11 Contoh Pendefinisian Mood
Mood
Status
Happy
Allowed
Sad
Not Allowed
11. Pengaturan Group Pengaturan group dapat dilakukan dengan menentukan banyaknya jumlah lagu dengan group tertentu yang dapat diputarkan dalam suatu selang waktu (menit). Pada kondisi awal tidak ada aturan yang didefinisikan pada sistem sebagai default. Contoh pengaturan group dapat dilihat pada Tabel III-12.
III-22
Tabel III-12 Contoh Pengaturan Berdasarkan Group
Group
Komposisi (n)
Selang Waktu (menit)
Current
2
60
Recurrent
3
120
Oldies
1
45
III.1.2.3 Pengaturan Non-Metadata Dalam melakukan pembangkitan playlist terdapat beberapa pengaturan yang tidak bergantung pada metadata lagu tersebut, melainkan bergantung pada faktor lain yang dinilai dapat mempengaruhi pemaduan lagu pada playlist yang dihasilkan. Beberapa faktor lain yang dipertimbangkan dalam pembuatan aplikasi pembangkit playlist lagu otomatis berbasis rules adalah waktu dan cuaca. Pengaturan yang dapat didefinisikan terhadap faktor-faktor lain tersebut akan dijelaskan sebagai berikut: 1.
Pengaturan berdasarkan waktu Pengaturan berdasarkan faktor waktu dapat dilakukan dengan mendefinisikan jenis lagu yang tepat untuk diputarkan pada waktu tertentu. Pembagian kategori waktu sendiri dapat dimodifikasi dari opsi default yang diberikan. Berdasarkan opsi waktu yang telah dibuat, pengguna dapat mendefinisikan jenis beat dan mood lagu yang sesuai dengan waktu tersebut. Pada kondisi awal, sebagai aturan default sistem akan memperbolehkan semua jenis beat dan mood yang terdaftar dalam opsi untuk dapat diputarkan pada semua opsi waktu yang telah didefinisikan. Adapun aturan default pemutaran lagu berdasarkan waktu akan ditunjukan pada Tabel III-13.
III-23
Tabel III-13 Default Pengaturan Berdasarkan Waktu
Kategori
Pengaturan Jenis lagu
Waktu Mood
2.
Beat
Morning
Happy, Sad
Fast, Middle, Slow
Afternoon
Happy, Sad
Fast, Middle ,Slow
Night
Happy, Sad
Fast, Middle, Slow
Pengaturan berdasarkan cuaca Pengaturan berdasarkan faktor cuaca dapat dilakukan dengan mendefinisikan jenis lagu yang tepat untuk diputarkan pada cuaca tertentu. Pembagian kategori cuaca sendiri dapat dimodifikasi dari opsi default yang diberikan. Berdasarkan opsi cuaca yang telah dibuat, pengguna dapat mendefinisikan jenis beat dan mood lagu yang sesuai dengan cuaca tersebut. Pada kondisi awal, sebagai aturan default, sistem akan memperbolehkan semua jenis beat dan mood yang terdaftar dalam opsi untuk dapat diputarkan pada semua opsi cuaca yang telah didefinisikan. Adapun aturan default pemutaran lagu berdasarkan cuaca akan ditunjukan pada Tabel III-14. Tabel III-14 Default Pengaturan Berdasarkan Cuaca
Kategori Cuaca
Pengaturan Jenis lagu Mood
Beat
Rainy
Happy, Sad
Fast, Middle, Slow
Sunny
Happy, Sad
Fast, Middle ,Slow
Cloudy
Happy, Sad
Fast, Middle, Slow
III-24
III.1.2.4 Pengaturan Skala Prioritas Berdasarkan hasil analisis pengembang, pendefinisian aturan pembangkitan playlist yang terlalu banyak dan rumit dapat menyebabkan terjadinya kegagalan pembangkitan playlist. Pendefinisian aturan yang terlalu banyak dan rumit dapat menyebabkan jumlah lagu yang dihasilkan dalam playlist tidak sesuai dengan jumlah yang diinginkan pengguna atau bahkan sangat mungkin terjadi tidak terdapat satu lagu pun pada playlist yang dihasilkan. Untuk mengantisipasi hal tersebut, maka pada setiap aturan yang didefinisikan oleh pengguna akan diberikan nilai skala prioritas. Adapun opsi skala prioritas yang dapat diberikan pada setiap aturan terbagi menjadi: 1. High 2. Medium 3. Low Pada proses pembangkitan playlist lagu, nilai skala prioritas akan dipergunakan untuk mengantisipasi kegagalan pembangkitan playlist lagu. Berkaitan dengan hal tersebut, akan digunakan asumsi bahwa pembangkitan playlist lagu dikatakan berhasil apabila jumlah lagu yang terdapat pada playlist yang dihasilkan lebih dari 70% jumlah lagu yang diinginkan oleh pengguna. Dalam Tugas Akhir ini, pembangkitan playlist lagu akan dilakukan berdasarkan asumsi pengembang yang menggunakan nilai batasan 50% dan 70% sebagai ukuran
keberhasilan
pembangkitan
playlist.
Terkait
dengan
kegagalan
pembangkitan playlist, maka proses pembangkitan playlist akan diulang dengan mengurangi aturan tertentu sesuai dengan nilai batas keberhasilan yang dicapai oleh playlist yang dihasilkan. Dalam hal ini, jika playlist yang dihasilkan kurang dari 70% jumlah lagu yang diinginkan pengguna, maka pembangkitan playlist akan diulang dengan menghilangkan semua aturan yang memiliki prioritas Low. Sedangkan jika playlist yang dihasilkan kurang dari 50% jumlah lagu yang
III-25
diinginkan pengguna, maka pembangkitan playlist akan diulang dengan menghilangkan semua aturan yang memiliki prioritas Low dan Medium. III.1.2.5 Penyimpanan Rules Dalam Tugas Akhir ini, semua aturan yang telah didefinisikan oleh pengguna dapat disimpan ke dalam tempat penyimpanan eksternal, dimana aturan tersebut dapat dipanggil kembali apabila sewaktu-waktu diperlukan. Skema penyimpanan aturan yang akan diterapkan pada aplikasi pembangkit playlist lagu otomatis adalah dengan terlebih dahulu membentuk objek-objek aturan untuk kemudian dikonversi ke dalam format xml. Setiap aturan yang didefinisikan oleh pengguna, akan dijadikan objek-objek aturan yang dikelompokkan berdasarkan jenis aturannya. Kemudian, semua objek aturan tersebut akan dikonversi menjadi format xml dan disimpan dalam file ekternal, dimana nama file dan tempat penyimpanan dapat didefinisikan sendiri oleh pengguna. Adapun penyimpanan aturan ke dalam bentuk xml dilakukan dengan pertimbangan sebagai berikut: 1. Format xml dapat merepresentasikan struktur objek penyimpan aturan secara jelas 2. Aturan yang didefinisikan oleh pengguna akan disimpan ke dalam bentuk file xml. File xml memiliki fleksibilitas tinggi dari segi pengelolaannya. File xml dapat ditempatkan dimana saja dan untuk mengaksesnya hanya diperlukan aplikasi pembaca text yang telah banyak dikembangkan saat ini. Selain itu, aturan yang disimpan juga dapat dipindahkan dengan mudah melalui media pemindah informasi seperti flashdisk, cd atau media lainnya. 3. Proses implementasi aplikasi juga menjadi salah satu pertimbangan dalam pemilihan format xml sebagai format penyimpanan aturan. Saat ini telah banyak berkembang library yang berfungsi untuk melakukan konversi objekobjek java menjadi format xml. Oleh Karena itu, untuk mempermudah
III-26
implementasi penyimpanan aturan, maka akan digunakan library tambahan untuk melakukan konversi objek-objek aturan ke dalam bentuk xml. III.1.3 Proses Pembuatan Playlist Lagu Dalam proses pembuatan playlist lagu terdapat 3 tahapan yang harus dilakukan yaitu: pengelolaan metadata lagu, pendefinisian aturan dan pemaduan lagu berdasarkan aturan yang telah didefinisikan untuk menghasilkan playlist lagu sebagai hasil akhir proses. III.1.3.1 Pengelolaan Metadata Lagu Sebelum sebuah playlist dapat dibangkitkan, kondisi awal yang harus dipenuhi adalah tersedianya sejumlah lagu-lagu yang dapat dipadukan. Pembangkitan playlist lagu akan dilakukan berdasarkan aturan yang didefinisikan oleh pengguna, dimana aturan tersebut akan diterapkan terhadap metadata yang terkandung pada lagu untuk menghasilkan susunan lagu (playlist) yang sesuai. Oleh karena itu, informasi lagu (metadata lagu) haruslah lengkap agar proses penyeleksian yang dilakukan dapat berjalan dengan baik. Adapun tahap awal yang harus dilakukan oleh pengguna sebelum melakukan proses pembangkitan playlist adalah sebagai berikut: 1.
Pendefinisian Opsi Atribut Seperti telah disebutkan sebelumnya pada sub-bab III.1.1 Identifikasi Metadata Lagu, pengguna dapat melakukan pengelolaan opsi atribut dengan cara menambahkan, mengurangi atau mengubah opsi atribut yang telah ada. Untuk beberapa atribut yang memerlukan pendefinisian lebih lanjut, pengguna harus terlebih dahulu mendefinisikan opsi atribut tersebut.
2.
Pemasukkan (assign) Nilai Metadata Setelah melakukan pengelolaan opsi atribut, tahap selanjutnya yang harus dilakukan oleh pengguna adalah mengisi semua nilai atribut. Semua atribut lagu yang termasuk dalam basic metadata dapat diisi dengan cara menuliskannya langsung atau memilih opsi default yang disediakan. Semua
III-27
atribut lagu yang termasuk dalam advance metadata dapat diisi dengan cara memilih opsi atribut yang telah dikelola terlebih dahulu oleh pengguna. III.1.3.2 Pendefinisian Aturan Tahap selanjutnya yang harus dilakukan pengguna setelah pengelolaan metadata lagu adalah mendefinisikan semua aturan yang harus dipenuhi. Pendefinisian aturan ini dibagi menjadi 2 jenis yaitu: 1.
Pendefinisian aturan standard: Pendefinisian aturan yang dilakukan terhadap atribut dasar / basic metadata
2.
Pendefinisian aturan advance: Pendefinisian aturan yang dilakukan terhadap advance metadata dan faktor non-metadata
Aturan yang dapat didefinisikan oleh pengguna tidak akan dibatasi jumlahnya. Pengguna harus menentukan faktor-faktor mana saja yang menjadi prioritas dan harus digunakan atau faktor mana saja yang dapat bersifat optional. Adapun langkah-langkah yang harus dilakukan pengguna dalam mendefinisikan aturan adalah sebagai berikut: 1.
Pengguna harus menentukan atribut atau faktor penentu apa saja yang ingin digunakan, baik aturan standard ataupun aturan advance (jika diperlukan)
2.
Pengguna harus mendefinisikan / memodifikasi aturan pemaduan lagu dari tiap faktor penentu yang dipilih atau pengguna dapat tetap menggunakan aturan default yang telah dirancang jika tersedia
3.
Untuk setiap atribut atau faktor penentu, pengguna harus menetapkan skala prioritas faktor penentu tersebut. Penentuan skala prioritas akan dilakukan berdasarkan 3 opsi yang tersedia yaitu: High, Medium dan Low.
4.
Sebelum membangkitan playlist, pengguna harus menentukan jumlah lagu yang diinginkan tidak melebihi banyaknya lagu yang terdapat dalam basis data. Jika pengguna mendefinisikan aturan waktu atau cuaca, maka pengguna akan diminta memilih waktu dan cuaca pemutaran playlist.
III-28
III.1.3.3 Pembangkitan Playlist Lagu Proses utama pembangkitan playlist lagu adalah mengelola semua lagu yang terdapat pada basis data dengan menerapkan aturan-aturan yang telah didefinisikan oleh pengguna. Setelah pengguna melakukan pendefinisian aturan, sistem akan terlebih dahulu melakukan validasi terhadap aturan tersebut. Jika aturan yang telah didefinisikan valid, maka sistem akan memetakan aturan tersebut menjadi algoritma yang kelak akan digunakan untuk mengelola basis data lagu. Untuk kepentingan proses pembangkitan playlist, beberapa aturan yang telah didefinisikan oleh pengguna akan terlebih dahulu dikelompokkan menjadi 2 jenis aturan yatiu Selecting rules dan Sorting rules. Selecting rules merupakan kelompok aturan yang prinsip kerjanya memilih lagu-lagu yang sesuai dengan nilai batasan. Sedangkan Sorting rules merupakan kelompok aturan yang prinsip kerjanya mengutamakan pengurutan lagu (pemaduan lagu yang diputar berurutan). Adapun pengelompokkan aturan tersebut dapat dilihat pada Tabel III15. Tabel III-15 Pengelompokan Rules
Selecting Rules
Sorting Rules
•
Basic Metadata
•
Beat
•
Genre
•
Genre
•
Type
•
Type
•
History
•
Roles
•
Age
•
Theme
•
Day Part Grid
•
State
•
Mood (optional)
•
Mood (optional)
•
Waktu
•
Group
•
Cuaca
III-29
Secara garis besar, proses pembangkitan playlist lagu akan dijalankan sebagai berikut : 1.
Basis data (DB) lagu akan terlebih dahulu direduksi / diseleksi dengan menggunakan Selecting Rules menghasilkan DB’
2.
DB’ akan dikelola dengan menggunakan algoritma pengurutan (Sorting Rules). Pengelolaan akan dilakukan terhadap satu per satu lagu untuk menentukan kesesuaian tiap lagu dengan lagu sebelum atau sesudahnya.
3.
Setelah pengeloaan terhadap DB’ dilakukan, maka akan dihasilkan playlist sesuai aturan yang didefinisikan. Jika playlist yang dihasilkan tidak mencapai 70 % dari jumlah yang diinginkan pengguna, maka proses pembangkitan lagu akan diulang lagi dari tahap awal dengan menghilangkan semua aturan yang memiliki prioritas Low. Jika playlist yang dihasilkan tidak mencapai 50 % dari jumlah yang diinginkan pengguna, maka proses pembangkitan lagu akan diulang lagi dari tahap awal dengan menghilangkan semua aturan yang memiliki prioritas Low dan Medium.
Setelah melalui tahapan pembangkitan playlist lagu, sistem akan memberikan hasil akhir berupa playlist dalam bentuk list data lagu. Playlist yang dihasilkan sudah merupakan list data lagu terurut yang dibentuk dari aturan yang telah didefinisikan sebelumnya oleh pengguna. List data lagu yang akan ditampilkan pada playlist adalah beberapa informasi nilai atribut yang terkandung pada lagu yang bersangkutan seperti: Song Title, Artist, Year, Beat, Genre, Type, Theme dan lain-lain. III.2 Analisis Penerapan Algoritma Berbasis Rules Proses pembangkitan playlist lagu yang lebih spesifik dan mendalam akan dilakukan melalui beberapan tahapan. Pada setiap tahapan tersebut, terdapat algoritma yang merupakan hasil pemetaan aturan yang telah didefinisikan oleh pengguna sebelumnya. Algoritma tersebut akan digunakan sebagai dasar
III-30
pemikiran untuk menentukan susunan lagu pada playlist yang dihasilkan. Penerapan algoritma pembangkit playlist diharapkan dapat mengahasilkan susunan lagu yang sesuai dengan aturan yang diberikan oleh pengguna. III.2.1 Penerapan Algoritma Utama Pembangkitan Playlist Setelah aturan yang didefinisikan pengguna dipetakan menjadi informasi dasar penyusunan lagu, maka akan dilakukan proses inti dari pembangkitan playlist lagu. Proses inti ini merupakan penerapan algoritma gabungan dari semua aturan yang terdefinisi. Satu putaran penerapan algoritma akan menghasilkan sebuah playlist. Jika playlist tersebut belum memenuhi jumlah minimal, maka proses pembangkitan playlist akan diulang lagi dari tahap awal dengan mengurangi aturan-aturan yang memiliki prioritas low atau medium sesuai kebutuhan.
Gambar III-7 Algoritma Pembangkit Playlist Lagu
Gambar III-7 menunjukan gambaran umum algoritma pembangkit playlist lagu. Algoritma utama pembangkit playlist lagu dalam bentuk kode java dapat dilihat
III-31
pada Algoritma 1 dan Algoritma 2. Adapun penjelasan mengenai algoritma utama proses pembangkitan playlist lagu adalah sebagai berikut: 1.
Pada tahap awal seluruh basis data (DB) lagu akan diseleksi dengan menggunakan selecting rules menghasilkan DB’.
2.
Setelah DB’ diperoleh, maka proses selanjutnya yang akan dilakukan adalah memilih satu per satu lagu yang terdapat pada DB’ untuk disusun membentuk suatu playlist lagu. Penentuan tiap lagu yang akan dimasukan ke dalam playlist secara bertahap akan melalui 3 proses pemilihan yaitu pemilihan berdasarkan aturan ketetanggan, pemilihan berdasarkan aturan komposisi selang waktu dan pemilihan berdasarkan aturan komposisi. Setiap lagu yang sudah dimasukkan ke dalam playlist akan dibuang dari DB’ sehingga tidak termasuk dalam opsi pemilihan lagu berikutnya.
Algoritma 1 Program Utama Playlist Generator firstPlaylist = createPlaylist(numberOfSong,dayPeriod,weather); if(firstPlaylistSize
playlist = firstPlaylist;}
Algoritma 2 CratePlaylist List<Song> playlist=null; playlist = doSelectingRules(dayPeriod, weather); playlist = doSortingRules(playlist, numberOfSong); return playlist;
III-32
III.2.2 Penerapan Selecting Rules Berdasarkan prinsip kerjanya, selecting rules akan melakukan seleksi terhadap basis data lagu untuk menghasilkan sekumpulan lagu yang memenuhi nilai batasan dari aturan yang ditetapkan. Pemetaan yang dapat dilakukan terhadap selecting rules adalah mendaftar semua jenis atribut yang digunakan sebagai aturan beserta nilai batasan dan skala prioritasnya. Penerapan selecting rules dilakukan dengan memproses semua aturan seleksi yang telah didefinisikan user menjadi query yang akan digunakan untuk mereduksi basis data lagu. Dari semua aturan yang didefinisikan oleh user, sistem akan mengelompokkan aturan ke dalam selecting rules dan sorting rules. Kumpulan selecting rules kemudian akan diproses membentuk query yang mencakup keseluruhan selecting rules yang didefinisikan. Pembentukan query akan menggunakan prinsip (AND) antar jenis rule yang berbeda sedangkan pada jenis rule yang sama akan menggunakan prinsip (OR). Sebagai contoh berikut merupakan pembentukan query untuk dua jenis aturan yang berbeda, yaitu: Aturan 1
: Judul lagu adalah “Love”
Aturan 2
: Genre Rock 50 % (Primary) dan Pop 50%(Alternative)
Query
: Select * from Song where (Title=’Love’ AND ( Genre1=’Rock’ OR Genre2=’Pop’ OR Genre3=’Pop’))
Pada rule day period dan weather, mood yang diperbolehkan sangat mungkin menyebabkan bentrok yang terjadi jika terdapat rule yang juga menggunakan gelombang mood sebagai aturan. Untuk mengoptimalisasikannya, patut diusahakan agar jika gelombang mood digunakan, maka semua mood yang mewakili setiap posisi gelombang diperbolehkan dalam aturan day period dan weather. Jika tidak menggunakan gelombang mood, maka semua mood yang
III-33
diperbolehkan pada rule mood akan digabungkan dengan semua mood yang diperbolehkan pada rule day period dan weather. III.2.3 Penerapan Sorting Rules Berbeda dengan selecting rules, prinsip kerja yang digunakan pada sorting rules adalah mengutamakan penyusunan lagu dalam playlist yang dihasilkan. Semua atribut yang termasuk dalam sorting rules merupakan advance metadata dimana beberapa diantaranya juga berperan sebagai selecting rules. Secara garis besar prinsip panyusunan lagu pada sorting rules dapat dikelompokan menjadi 3 jenis, yaitu: ketetanggaan, komposisi, dan komposisi dengan selang waktu. Ketiga jenis prinsip penyusunan lagu ini akan digunakan dalam menentukan tiap lagu dalam playlist yang dihasilkan. Adapun algortima pemilihan setiap lagu berdasarkan sorting rules dapat dilihat pada Algoritma 3 dengan penjelasan sebagai berikut: 1. Tahap pertama penyusunan lagu adalah dengan melakukan seleksi berdasarkan prinsip ketetanggaan. Pada tahap ini lagu pertama playlist akan ditentukan berdasarkan titik awal gelombang yang didefinisikan pengguna. Pemilihan lagu kedua dan seterusnya akan dilakukan dengan proses seleksi berdasarkan mood, beat dan roles lagu yang diperbolehkan dengan mempertimbangkan lagu sebelumnya. 2.
Tahap kedua penyusunan lagu adalah proses seleksi berdasarkan aturan komposisi selang waktu. Setiap jenis rule item akan diberi keterangan mengenai nilai tn dan status pemenuhan lagunya. Rule item yang memiliki nilai tn terendah akan dipenuhi terlebih dahulu, kecuali jika status pemenuhan lagu untuk rule item tersebut sudah terpenuhi, maka akan proses seleksi akan mencari lagu berdasarkan rule item dengan tn terkecil berikutnya.
3. Tahap terakhir yang harus dilakukan adalah dengan mengidentifikasi genre atau type lagu yang akan dimasukan ke dalam playlist. Pada tahap ini, sistem akan mengurangi counter dari genre atau type lagu yang bersangkutan. Jika
III-34
hasil seleksi dari tahap berikutnya lebih dari satu lagu, maka pemilihan lagu akan dilakukan berdasarkan genre atau type yang memiliki counter terbesar. Algoritma 3 doSortingrules if(sortingRules!=null && sortingRules.size()>0){ playlist = new ArrayList<Song>(); while(playlist.size()
findSongByTimeCompositionalRules(DBtemp,playlist,sortAllTn(), timeCompDefined);}
if(sortingRules.contains("Genre")){ DBtemp = findSongByCompsitionRules(DBtemp,"Genre");} if(sortingRules.contains("Type")){ DBtemp = findSongByCompsitionRules(DBtemp,"Type");} if(DBtemp!=null && DBtemp.size()>0){ if(DBtemp.size()==1){ playlist.add(DBtemp.get(0).getCopy()); decrementCounter(DBtemp.get(0).getCopy()); int songId
= DBtemp.get(0).getId();
removeSong(DB1, songId); }else{ Random randomGenerator = new Random(); int randomSongIndex
=
randomGenerator.nextInt(DBtemp.size()-1);
playlist.add(DBtemp.get(randomSongIndex).getCopy()); decrementCounter(DBtemp.get(randomSongIndex).getCopy()); int songId
= DBtemp.get(randomSongIndex).getId();
removeSong(DB1, songId); } } else{stop=true;} } // end of while } else{ playlist = DB1;} // no sorting rules return playlist;
III-35
III.2.3.1 Penerapan Prinsip Ketetanggan Prinsip ketetanggaan merupakan cara penyusunan lagu dengan memperhatikan kecocokan suatu lagu pada playlist dengan lagu sebelumnya. Prinsip ini dilakukan dengan memilih lagu yang memenuhi semua aturan ketetanggaan yang telah didefinisikan oleh pengguna. Penerapan rules dengan prinsip ketetanggan dilakukan jika terdapat rule mood, beat atau roles dalam aturan yang didefinisikan oleh pengguna. Khusus untuk rule mood, prinsip ketetanggan akan digunakan jika gelombang mood digunakan. Prinsip ketetanggaan akan diterapkan dengan mencari lagu-lagu yang memiliki titik posisi mood yang sesuai, beat yang sesuai atau roles yang sesuai berdasarkan lagu terakhir yang terdapat pada playlist yang telah dihasilkan. Pencarian lagu pertama dilakukan berdasarkan titik awal mood yang telah didefinisikan oleh user terlebih dahulu. Kemudian lagu diseleksi berdasarkan beat dan roles yang sesuai. Urutan pemilihan bersifat dinamis bergantung pada didefinisikannya rule atau tidak. III.2.3.2 Penerapan Prinsip Komposisi Selang Waktu Pada prinsip ini komposisi dari atribut tertentu akan berulang setiap selang waktu yang ditentukan oleh pengguna. Atribut sorting rules yang menggunakan prinsip komposisi dengan selang waktu antara lain: theme, group dan state. Proses penyusunan lagu akan dilakukan dengan memproses aturan yang didefinisikan pengguna menjadi informasi interval waktu yang diperlukan untuk memutar satu lagu dengan theme, group atau state tertentu, selanjutnya akan disebut tn. Nilai tn akan diperoleh dari hasil pembagian antara selang waktu dengan komposisi yang diinginkan. Setiap theme, group atau state yang didefinisikan akan memiliki nilai interval waktu per satu jenis (tn) sendiri. Penerapan prinsip ini dilakukan dengan menggabungkan terlebih dahulu semua rule item yang didefinisikan. Setelah penggabungan dilakukan, semua rule item akan diurutkan berdasarkan nilai tn nya dari yang terkecil sampai yang terbesar.
III-36
Setelah pengurutan dilakukan, pemilihan lagu akan dimulai dari tn terkecil yang belum terpenuhi. Kriteria terpenuhi atau tidaknya suatu tn adalah dengan melakukan perbandingan antara tn tersebut dengan jumlah lagu yang sesuai yang sudah ada pada playlist sementara. Perhitungan sudah terpenuhi atau belumnya suatu tn dilakukan dengan rumus tertentu. Nilai tn dikatakan sudah terpenuhi apabila :
n ≥ 1 + ( ptime / tn ) keterangan : n
: jumlah lagu dengan value dan jenis rule sesuai tn
ptime : jumlah waktu keseluruhan dari playlist sementara yang telah terbentuk Untuk pemilihan setiap lagunya, jika diketemukan tn yang terkecil namun sudah terpenuhi, maka pemilihan akan dilakukan berdasarkan tn terkecil berikutnya. Jika ditemukan tn terkecil dan belum terpenuhi, maka akan dipilih lagu yang memenuhi nilai dan jenis rule tn tersebut. Jika masih memungkinkan akan dilanjutkan dengan memenuhi tn terkecil berikutnya dari jenis rule yang berbeda yang telah didefinisikan oleh pengguna. Sebagai contoh, berikut merupakan aturan
yang
menggunakan
prinsip
komposisi
selang
waktu
beserta
pemenuhannya. contoh pengaturan prinsip komposisi selang waktu Jenis Rule
Value
Komposisi
Time Interval
tn
Group
Nostagia
3
60
20
Theme
Birthday
4
60
15
Gruop
Current
1
45
45
State
Hits
2
60
30
III-37
tn terurut berdasarkan contoh pengaturan prinsip komposisi selang waktu Id
Jenis Rule
Value
tn
1
Theme
Birthday
15
2
Group
Nostagia
20
3
Group
Current
30
4
State
Hits
45
Algoritma : 1. Jika Id 1 belum terpenuhi, cari lagu yang sesuai dengan Id 1. Jika Id 1 telah terpenuhi maka pencarian berlanjut ke Id 2 2. Jika pencarian Id 1 yang belum terpenuhi menghasilkan lebih dari satu lagu, pencarian berlanjut ke Id 2 atau Id 4 atau keduanya jika memungkinkan karena berbeda jenis rule dengan rule yang baru saja terpenuhi. III.2.3.3 Penerapan Prinsip Komposisi Prinsip komposisi merupakan cara penyusunan lagu yang memperhatikan komposisi jenis atribut yang bersangkutan pada playlist yang dihasilkan. Atribut sorting rules yang menggunakan prinsip komposisi adalah genre dan type. Pada pengaturan kedua atribut ini, pengguna akan mendefinisikan jumlah komposisi dari genre atau type lagu tertentu yang diinginkan pada playlist. Pemetaan yang dapat dilakukan terhadap kedua atribut ini adalah memproses nilai komposisi yang diberikan pengguna menjadi jumlah maksimal (counter) yang harus dipenuhi oleh tiap jenis genre atau type yang didefinisikan. Berikut merupakan contoh pengaturan yang didefinisikan oleh pengguna beserta pemetaan informasinya:
III-38
Pengaturan Genre
Rock(70%) Pop (30%)
Jumlah lagu pada playlist
100 lagu
Counter Rock
70 lagu
Counter Pop
30 lagu
Pada tahap inisiasi pembangkitan playlist, rule genre atau type yang didefinisikan oleh user akan diproses dan disimpan informasi counternya untuk setiap rule item. Penerapan rule ini adalah tahap akhir pemilihan lagu untuk dimasukkan ke dalam playlist. Setiap lagu yang berada pada tahap pemilihan terakhir ini sudah dapat dipastikan memenuhi salah satu rule item yang telah didefinisikan karena telah terlebih dahulu diseleksi berdasarkan selecting rules. Untuk setiap pemilihan lagu, jika jumlah lagu yang dapat dipilih lebih dari satu buah, maka pemilihan lagu akan dilakukan berdasarkan counter terbesar, jika tidak ditemukan hasilnya, maka kemudian dilakukan pemilihan berdasarkan counter terbesar berikutnya. Pemilihan pertama kali akan dilakukan terhadap rule genre jika rule genre didefinisikan, setelah itu akan dilakukan pemilihan berdasarkan rule type jika masih memungkinkan. Jika tidak memungkinkan, tidak akan dilakukan pemilihan lagi melainkan hanya mengurangi counter genre dan type dari lagu yang terpilih untuk dimasukkan ke dalam playlist.