BAB 2 LANDASAN TEORI
2.1
Pengertian Musik Musik adalah bunyi yang diterima oleh individu dan berbeda-beda berdasarkan
sejarah, lokasi, budaya dan selera seseorang. Definisi sejati tentang musik juga bermacam-macam: •
Bunyi yang dianggap enak oleh pendengarnya.
•
Segala bunyi yang dihasilkan secara sengaja oleh seseorang atau kumpulan dan disajikan sebagai musik.
Beberapa orang menganggap musik tidak berwujud sama sekali. Musik menurut Aristoteles mempunyai kemampuan mendamaikan hati yang gundah, mempunyai terapi rekreatif dan menumbuhkan jiwa patriotisme.
2.2
Jenis-Jenis Musik Berikut adalah daftar aliran/genre utama dalam musik. Masing-masing genre
terbagi lagi menjadi beberapa sub-genre. Pengkategorian musik seperti ini, meskipun terkadang merupakan hal yang subjektif, namun merupakan salah satu ilmu yang dipelajari dan ditetapkan oleh para ahli musik dunia. Dalam beberapa dasawarsa terakhir, dunia musik mengalami banyak perkembangan. Banyak jenis musik baru yang lahir dan berkembang. Contohnya musik triphop yang merupakan perpaduan antara beat-beat elektronik dengan musik pop yang ringan dan enak didengar. Contoh musisi yang mengusung jenis musik ini adalah Frou Frou, Sneaker Pimps dan Lamb. Ada juga hip-hop rock yang diusung oleh Linkin Park.
7 Belum lagi dance rock dan neo wave rock yang kini sedang in. Banyak kelompok musik baru yang berkibar dengan jenis musik ini, antara lain Franz Ferdinand, Bloc Party, The Killers, The Bravery dan masih banyak lagi. Bahkan sekarang banyak pula grup musik yang mengusung lagu berbahasa daerah dengan irama musik rock, jazz dan blues. Grup musik yang membawa aliran baru ini di Indonesia sudah cukup banyak salah satunya adalah Funk de Java yang mengusung lagu berbahasa Jawa dalam musik rock. •
Musik klasik merupakan istilah luas yang biasanya mengacu pada musik yang dibuat di atau berakar dari tradisi kesenian Barat, musik kristiani, dan musik orkestra, mencakup periode dari sekitar abad ke-9 hingga abad ke-21.
•
Musik rakyat/tradisional
•
Musik keagamaan
•
Blues adalah sebuah aliran musik vokal dan instrumental yang berasal dari Amerika Serikat.
•
Jazz adalah aliran musik yang berasal dari Amerika Serikat pada awal abad ke-20 dengan akar-akar dari musik Afrika dan Eropa. Musik jazz banyak menggunakan gitar, trombon, piano, terompet, dan saksofon. Salah satu elemen penting dalam jazz adalah sinkopasi.
•
Country
8 •
Rock adalah salah satu aliran musik yang berirama keras.
2.3
Bentuk Penyimpanan Musik Musik dari jaman ke jaman sangat digemari sehingga setiap jaman pun memiliki
gaya yang khas pada jamannya. Begitu juga bagaimana mendokumentasi atau mengabadikannya Dahulu kita pernah mendengar : piringan hitam, kaset adalah salah satu sarana untuk menyimpan dan musik tersebut berbentuk data analog. Dengan berjalannya waktu cara penyimpanannya sudah berbentuk digital, seperti: .mp3, .ogg, dll. Sedangkan sarananya seperti: Compact Disc (CD), DVD, dll
2.4
MPEG-1 Layer 3 Mengacu pada perlindungan alamiah dari perusahaan yang mengembangkan
mp3, spesifikasi dari mp3 tidak dirincikan secara detil tentang proses encoding mereka yang sebenarnya, proses tersebut tersajikan dalam pseudocode tingkat tinggi sehingga perusahaan lain harus menghasilkan encoders buatan mereka sendiri. Struktur untuk mp3 encoder tersaji pada gambar 2.1.
9
Gambar 2.1 MPEG-1 Layer 3 Encoder [ISO/IEC 1995] ( Sumber: Atracmp3,p6 )
Input audio sampel dimasukkan ke dalam encoder dan proses pemetaan menghasilkan sebuah filter dan sub-sample yang menggambarkan audio stream yang masuk, yang disebut transformed sub-band samples, model psychoacoustic yang cocok dipergunakan untuk menyajikan satu set data yang dapat digunakan untuk mengontrol quantization dan coding. [ISO/IEC, 1995] mengusulkan agar mempergunakan estimasi masking threshold untuk mengontrolnya. Proses quantizer dan coding menghasilkan satu set simbol coding dari sample input yang telah dipetakan. Setelah tahap pengelompokan frame kemudian mengumpulkan hasil encoding bitstream dari data ini, dan menambahkan data yang diperlukan seperti kode koreksi kesalahan. Pada MPEG-1, semakin bertambahnya layer, maka begitu juga tingkat kerumitan pada encoder juga meningkat. Layer 3 terbentuk dari layer-layer sebelumnya, dan termasuk fitur-fiturnya. Pada layer 1, input dipetakan ke dalam 32 sub-bands dengan segmentasi yang pasti dari data ke dalam blok-blok.
10 Model psychoacoustic menentukan penyesuaian diri pada alokasi bit, dan quantization
dilaksanakan
dengan
menggunakan
penghalang
"companding"
(compression dan expanding) dan formatting. Layer 2 menggunakan coding tambahan pada alokasi bit, faktor skala dan sampel, serta teknik pembuatan frame berbeda. Layer 3 menambahkan peningkatan frekuensi resolusi dengan cara hibrida filterbank, sebuah non-uniform quantizer, penyesuaian segmentasi dan entropy coding (seperti Huffman Coding) pada quantized data.
2.4.1
Sejarah MPEG-1 Layer 3 Di awal abad ke-19, matematikawan Perancis Joseph Fourier menyusun
beberapa persamaan matematik untuk menggambarkan cara panas menyebar. Persamaan itu bisa dipergunakan untuk menggambarkan segala macam bentuk gelombang sebagai urutan nomor, termasuk gelombang suara. Di tahun 60an, seorang insinyur Amerika yang dinamai R A Moog mempergunakan rumus Fourier untuk mendesain musik elektronik synthesizers. Di tahun 1980an, Yamaha, perusahaan ilmu elektronika Jepang, mempergunakan rumusan matematika yang sama untuk merevolusionerkan industri musik dengan memperkenalkan keyboard elektronik. Dan hari ini, persamaan Fourier hidup sebagai bagian kerangka matematik yang menggambarkan mp3. Aspek yang benar-benar mempesona dari mp3 adalah aspek yang menggabungkan matematika dengan sistem pendengaran manusia.
11
Gambar 2.2 Struktur Decoding mp3 ( Sumber: Allen Cheng and Chih-Hung Cheng,2002,p2 )
2.4.2
MPEG Layer 1-3 frame header Sebuah file MPEG audio dibentuk dari bagian-bagian kecil yang disebut frames.
Secara umum, frames adalah sesuatu yang dapat berdiri sendiri (independent). Masingmasing frame mempunyai header dan audio information masing-masing. Oleh karena itu, anda bisa mengambil bagian mana pun dari file MPEG, menyimpannya dan lalu memainkannya dengan baik. Pada Layer III, ini tidak 100% benar. Karena pengaturan internal data di file MPEG versi 1 Layer III , frame biasanya tergantung satu sama lain dan frame tersebut tidak bisa diambil begitu saja.
12 Waktu anda ingin membaca informasi mengenai sebuah file MPEG, biasanya cukup menemukan frame pertama, membaca headernya dan mengasumsikan bahwa frame lain juga mengandung informasi yang sama. Mungkin tidak semuanya mengandung informasi yang sama seperti itu. Variable bitrate file MPEG biasanya disebut dengan bitrate switching, yang berarti bahwa bitrate berubah berdasarkan isi pada masing-masing frame. Disini lower bitrates mungkin digunakan pada frame yang tidak menurunkan kualitas dari suara. Ini diperbolehkan untuk dilakukan selama menghasilkan kompresi yang tetap mempertahankan kualitas suara yang baik. Frame header terletak pada empat byte pertama (32bits) di dalam satu frame. 11 bit yang pertama (atau pada dua belas bit pertama, terlihat tentang framesync) pada frame header selalu diatur dan disebut "framesync". Oleh karena itu, anda bisa menemukan 1 byte dengan nilai 255 dan diikuti dengan 3 atau 4 bit yang penting pada framesync yang pertama. Lalu anda membaca seluruh header dan cek jika nilainya benar. Anda akan dapatkan pada tabel berikut arti sebenarnya pada setiap bit pada header dan isinya mungkin diperiksa untuk validitas. Masing-masing isi adalah spesifik sesuai yang ditentukan. Tidak valid, cacat ataupun yang tidak dijinkan akan mengindikasikan data header yang salah. Ingat, ini tidaklah cukup, framesync bisa dengan mudah (dan sangat sering) ditemukan pada setiap file biner mana pun. Dan juga mungkin file MPEG berisi sampah pada awalnya, yang berisi sync yang salah. Dengan begitu, anda harus memeriksa dua atau lebih frame selanjutnya untuk memastikan anda benar-benar berhadapan dengan file MPEG audio. Frame mungkin memiliki pemeriksa CRC. CRC adalah sebuah bit yang panjangnya 16 bit dan, jika ada, ini mengikuti frameheader. Setelah CRC terdapat audio data. Anda bisa memperhitungkan panjang frame dan menggunakan ini jika anda
13 memerlukannya
untuk
membaca
headers
lainnya
juga,
atau
hanya
mau
memperhitungkan CRC dari frame tersebut untuk membandingkannya dengan yang anda baca dari file. Sebenarnya, ini adalah sebuah metode yang baik jika mencek validitas MPEG header. Berikut ini ialah "graphical" penggambaran isi dari header. Peran dari A sampai M dipergunakan untuk menunjukkan bagian-bagian yang berbeda. Pada tabel, anda bisa memahami detail tentang isi masing-masing bagian.
AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM Kode Jumlah (bits) Posisi (bits)
Penjelasan
A
11
(31-21)
Frame sync
B
2
(20,19)
ID versi MPEG Audio 00 – MPEG versi 2.5 01 – reserved 10 – MPEG versi 2 11 – MPEG versi 1
C
2
(18,17)
Penjelasan Layer 00 – reserved 01 – layer III 10 – layer II 11 – layer I
14 D
1
(16)
Protection bit 0 – dilindungi oleh CRC (16 bit CRC menyambung dibelakang header 1 – tidak dilindungi oleh CRC
E
4
(15,12)
Index bitrate Bits
V1L1 V1L2 V1L3 V2L1 V2L2&L3
0000
free
free
free
free
free
0001
32
32
32
32
8
0010
64
48
40
48
16
0011
96
56
48
56
24
0100
128
64
56
64
32
0101
160
80
64
80
40
0110
192
96
80
96
48
0111
224
112
96
112
56
1000
256
128
112
128
64
1001
288
160
128
144
80
1010
320
192
160
160
96
1011
352
224
192
176
112
1100
384
256
224
192
128
1101
416
320
256
224
144
1110
448
384
320
256
160
1111
bad
bad
bad
bad
bad
Notes: Semua nilai dalam satuan kbps
15 V1 – MPEG versi 1 V2 – MPEG versi 2 dan 2.5 L1 – Layer I L2 – Layer II L3 – Layer III
Bitrate
Single
Stereo
Channel
Intensity Dual Stereo
Channel
Free
yes
yes
yes
yes
32
yes
no
no
no
48
yes
no
no
no
56
yes
no
no
no
64
yes
yes
yes
yes
80
yes
no
no
no
96
yes
yes
yes
yes
112
yes
yes
yes
yes
128
yes
yes
yes
yes
160
yes
yes
yes
yes
192
yes
yes
yes
yes
224
no
yes
yes
yes
256
no
yes
yes
yes
320
no
yes
yes
yes
384
no
yes
yes
yes
16 F
G
2
1
(11,10)
(9)
sampling rate frequency index Bits
MPEG1
MPEG2
00
44100 Hz 22050 Hz 11025 Hz
01
48000 Hz 24000 Hz 12000 Hz
10
32000 Hz 16000 Hz 8000 Hz
11
reserved
reserved
MPEG 2.5
reserved
Padding bit 0 – frame tidak di-pad 1 – frame di-pad dengan satu extra slot Padding digunakan untuk membuat pas bitrate. Contohnya
128kbps
44.1
kHz
layer
II
menggunakan banyak frame yang panjangnya 418bytes dan beberapa yang panjangnya 417bytes untuk membuat pas bitrate 128k. Untuk slot layer I panjangnya 32bits dan slot layer II dan III panjangnya 8bits.
H
1
(8)
Private bit. Hanya bersifat informatif
I
2
(7,6)
Channel Mode 00 – Stereo 01 – Joint Stereo (Stereo) 10 – Dual Channel (2 mono channels)
17 11 – Single Channel (mono) Note: file dual channel terdiri dari dua mono channel.
Setiap
channel
menggunakan
tepat
setengah dari bitrate filenya. Kebanyakan decoder menerjemahkan mereka sebagai stereo, padahal belum tentu sama hasilnya. Salah satu contohnya, sebuah audio yang berisi suara dengan dua bahasa yang berbeda (bi-lingual) yang dibawa dalam bitstream yang sama, dan decodernya akan menterjemahkan salah satu bahasa yang dipilih saja.
J
2
(5,4)
Mode extension (hanya digunakan di Joint stereo) Layer I & II Value Layer I&II
K
1
(3)
Layer III intensity stereo ms stereo
00
bands 4 to 31
off
off
01
bands 8 to 31
on
off
10
bands 12 to 31
off
on
11
bands 16 to 31
on
on
Copyright 0 – audio tidak di-copyright 1 – audio di-copyright
18 Copyright disini punya arti yang sama dengan copyright yang ada di CD dan video DAT, yaitu memberitahukan bahwa illegal bila menggandakan isinya bila bit-nya di-set 1.
L
1
(2)
Original 0 – copy dari media original 1 – media original Original bit menunjukkan, bila di-set 1, maka frame berada di media originalnya.
M
2
(1,0)
Emphasis 00 – none 01 – 50 / 15 ms 10 – reserved 11 – CCIT J.17 Indikasi emphasis disini untuk memberitahukan decoder bahwa file harus di de-emphasized, yaitu decoder harus menata ulang suara setelah Dolby seperti penghilangan noise. Jarang digunakan Tabel 2.1 Header bit
19 2.4.3
MPEG Audio Tag ID3v1 The TAG dipergunakan untuk menggambarkan file MPEG audio. Berisi
informasi tentang penyanyi (artist), judul, album, tahun terbit dan gaya. Ada suatu tempat ekstra untuk komentar. Seluruhnya memiliki panjang 128 byte dan diletakkan pada akhir audio data. Anda bisa mendapatkan ini dengan membaca 128 byte terakhir file MPEG audio.
AAABBBBB BBBBBBBB BBBBBBBB BBBBBBBB BCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCD DDDDDDDD DDDDDDDD DDDDDDDD DDDDDEEE EFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFG
Kode
Jumlah (bytes)
Posisi (bytes)
Penjelasan
A
3
(0-2)
identifikasi tag. Harus berisi “TAG” jika ada tag dan benar.
B
30
(3-32)
Judul
C
30
(33-62)
Artis
D
30
(63-92)
Album
E
4
(93-96)
Year
20
F
30
(97-126)
Comment
G
1
(127)
Genre
Tabel 2.2 MPEG audioTag ID3v1
Spesifikasi menganjurkan untuk semua bagian dilapisi dengan karakter null (ASCII 0). Tetapi, tidak semua aplikasi menghormati ini (contohnya adalah WinAmp yang melapisi bidang dengan < spasi >, ASCII 32). Disini terdapat sedikit usulan perubahan pada struktur ID3v1.1. Byte terakhir pada bagian komentar mungkin dipergunakan untuk menetapkan nomor urut lagu pada sebuah album. Sebaiknya berisi karakter null (ASCII 0) jika informasi tidak dikenal. Aliran adalah bagian numerik yang mungkin mempunyai nilai tertentu sebagai berikut:
0 'Blues'
20 'Alternative'
40 'AlternRock'
60 'Top 40'
1 'Classic Rock'
21 'Ska'
41 'Bass'
61 'Christian Rap'
2 'Country'
22 'Death Metal'
42 'Soul'
62 'Pop/Funk'
3 'Dance'
23 'Pranks'
43 'Punk'
63 'Jungle'
4 'Disco'
24 'Soundtrack'
44 'Space'
64
'Native American' 5 'Funk'
25 'Euro-Techno'
45 'Meditative'
65 'Cabaret'
21 'Instrumental 6 'Grunge'
26 'Ambient'
66 'New Wave'
46 Pop' 'Instrumental
7 'Hip-Hop'
27 'Trip-Hop'
47
67 'Psychadelic' Rock'
8 'Jazz'
28 'Vocal'
48 'Ethnic'
68 'Rave'
9 'Metal'
29 'Jazz+Funk'
49 'Gothic'
69 'Showtunes'
10 'New Age'
30 'Fusion'
50 'Darkwave'
70 'Trailer'
'Techno11 'Oldies'
31 'Trance'
51
71 'Lo-Fi' Industrial'
12 'Other'
32 'Classical'
52 'Electronic'
72 'Tribal'
13 'Pop'
33 'Instrumental'
53 'Pop-Folk'
73 'Acid Punk'
14 'R&B'
34 'Acid'
54 'Eurodance'
74 'Acid Jazz'
15 'Rap'
35 'House'
55 'Dream'
75 'Polka'
16 'Reggae'
36 'Game'
56 'Southern Rock' 76 'Retro'
17 'Rock'
37 'Sound Clip'
57 'Comedy'
77 'Musical'
18 'Techno'
38 'Gospel'
58 'Cult'
78 'Rock & Roll'
19 'Industrial'
39 'Noise'
59 'Gangsta'
79 'Hard Rock'
Tabel 2.3 Genre
22 Salah satu pengembang Winamp menambahkan jenis lainnya, sebagai berikut : 'Progressive 80 'Folk'
92
'Chamber 104
Rock'
116 'Ballad' Music'
'Psychedelic 81 'Folk-Rock'
'Poweer 105 'Sonata'
93 Rock'
117 Ballad'
'Symphonic 82 'National Folk' 94
106 'Symphony'
118 'Rhytmic Soul'
Rock' 83 'Swing'
95 'Slow Rock'
107 'Booty Brass'
119 'Freestyle'
84 'Fast Fusion'
96 'Big Band'
108 'Primus'
120 'Duet'
85 'Bebob'
97 'Chorus'
109 'Porn Groove' 121 'Punk Rock'
86 'Latin'
98
'Easy 110 'Satire'
122 'Drum Solo'
Listening' 87 'Revival'
99 'Acoustic'
111 'Slow Jam'
123 'A Capela'
88 'Celtic'
100 'Humour'
112 'Club'
124 'Euro-House'
89 'Bluegrass'
101 'Speech'
113 'Tango'
125 'Dance Hall'
90 'Avantgarde'
102 'Chanson'
114 'Samba'
91 'Gothic Rock'
103 'Opera'
115 'Folklore'
Table 2.4 Genre versi WinAmp
2.5
Huffman Code Huffman coding adalah algoritma yang dipakai untuk mengurangi kehilangan
data pada kompresi. Pada bagian ini dianjurkan untuk menggunakan table variable-
23 length code untuk encoding sebuah sumber data symbol (seperti sebuah karakter pada file) di mana table variable-length code sudah dapat memperkirakan setiap nilai kemungkinan dari sebuah sumber data simbol. Ini dikembangkan oleh David A. Huffman ketika beliau sedang mengambil Ph.D. di MIT, dan menerbitkan sebuah makalah pada tahun 1952 “A Method for the Construction of Minimum-Redundancy Codes." Huffman menjadi seorang anggota fakultas MIT setelah kelulusan dan kemudian menjadi anggota pendiri Bagian Ilmu Pengetahuan Komputer di Universitas California, Santa Cruz. Huffman coding digunakan secara spesifik untuk memilih gambaran untuk setiap symbol data, dan menghasilkan kode pada prefix-free code (kadang-kadang disebut dengan "prefix codes") (yang adalah, string bit yang menggambarkan suatu lambang khusus yang tidak pernah digambarkan oleh lambang-lambang lain mana pun) yang menggambarkan karakter yang biasa digunakan menjadi sebuah string dari sebuah bit yang lebih pendek. Huffman juga dapat mendesain metode yang paling efesien untuk kompresi hal ini: tak ada pemetaan lain dari sumber lambang symbol bit perseorangan yang unik, yang akan menghasilkan hasil ukuran rata-rata yang lebih kecil dengan frekuensi lambang yang telah disetujui untuk membuat sebuah code. Sebuah metode yang kemudian ditemukan untuk menjalankan linear time jika data input kemungkinan(diketahui beratnya) sudah disortir. Untuk satu set lambang dengan distribusi probabilitas uniform, Huffman coding adalah sepadan dengan simple binary block encoding, contohnya, ASCII coding. Huffman coding adalah metode sebaran luas seperti untuk membuat prefix-free codes sementara. "Huffman code" adalah secara luas dipakai sebagai sinomin untuk "prefix free code" walaupun kode tersebut tidak dihasilkan oleh algoritma Huffman .
24 Walaupun Huffman coding secara optimal digunakan untuk lambang-lambang coding dengan diketahui distribusi probabilitasnya, kemampuan optimalisasinya terkadang melakukan kesalahan yang berlebihan yang tidak disangka. Misalnya, aritmatika coding dan LZW coding sering mempunyai kemampuan kompresi yang lebih baik. Kedua metode tersebut dapat mengkombinasikan sebuah symbol angka arbitrer sehingga menghasilkan coding yang lebih effisien, dan secara umum diadaptasikan pada statistika, yang terakhir sangat berguna ketika probabilitasnya tidak diketahui secara persis pada stream. Untuk kompresi yang lebih baik koefisien quantized MDCT (untuk blok yang panjang) diatur dari frekuensi terendah sampai frekuensi tertinggi. Seluruh jarak di bagi menjadi 3 bagian, setiap bagian kode dibagi menjadi table Huffman yang berbeda.
2.6
CRC (Cyclic Redundancy Check) Cyclic redundancy check (CRC) adalah sejenis fungsi yang mengambil input
data stream dengan panjang berapa pun dan menghasilkan sebuah hasil nilai dengan ukuran tertentu. CRC sering dipergunakan untuk menunjukkan baik fungsi atau hasil dari fungsi. CRC bisa dipakai sebagai checksum untuk mendeteksi perubahan yang tak terduga pada data selama pengiriman atau penyimpanan. CRC mulai populer karena mereka sederhana untuk diimplementasikan ke dalam biner pada perangkat keras, mudah untuk dianalisa secara matematis, dan mengetahui kesalahan biasa yang disebabkan oleh gangguan dari luar pada saluran pengiriman. CRC diciptakan oleh W. Wesley Peterson, dan diterbitkan di kertasnya pada tahun 1961. Secara mekanisme perhitungan N-bit biner CRC sederhana. Bit melambangkan input yang diatur berjajar, dan (n+1) -bit pola melambangkan pembagi CRC (disebut
25 "polynomial") ditempatkan di bawah akhir sebelah kiri jajaran. Ini perhitungan pertama untuk menghitung sebanyak 3 bit CRC: 11010011101100 <--- Input 1011
<--- divisor (4 Bits)
-------------01100011101100 <--- hasil Jika bit input diatas pembagi paling kiri adalah 0, tidak perlu melakukan apa-apa dan pindahkan pembagi 1 bit ke kanan. Jika bit input diatas pembagi paling kiri adalah 1, pembagi adalah eksklusif-OR (XOR) ke dalam input (dengan kata lain, bit input di atas tiap-tiap sebanyak 1 bit di pembagi, dikotakkan). Pembagi kemudian dipindahkan satu bit ke sebelah kanan, dan proses diulangi sampai pembagi mencapai akhir sebelah kanan pada baris input. Ini perhitungan terakhir: 00000000001110 <--- result of multiplication calculation 1011 <--- divisor -------------------00000000000101 <--- remainder (3 bits) Sejak pembagi paling kanan dinolkan setiap input bit itu bersentuhan, ketika proses ini berakhir satu-satunya bit di barisan input yang bukan nol adalah bit ke-N di akhir barisan paling kanan. N bit ini adalah pengingat dari langkah pembagian, dan juga akan menjadi nilai fungsi CRC (kecuali kalau spesifikasi CRC yang dipilih memerlukan beberapa postprocessing).
26 2.7
Bitstream Formatting Bitstream formatting adalah proses dimana quantisized samples dirubah menjadi
encoded bitstream – bentuk akhir dimana signal yang telah dikompres dipancarkan.
Gambar 2.3 Frame Format ( Sumber: mp3 Audio Coding Overview,p13 )
2.8
Modified Discrete Cosine Transform (MDCT) Modified discrete cosine transform
(MDCT) berhubungan dengan
Fourier
berdasarkan Discrete Cosine Transform tipe ke-4 (DCT-IV), dengan properti tambahan dalam pengulangan: didesain untuk melakukannya pada blok data set yang besar , di mana blok yang tersusun berikutnya, setengah dari blok terakhirnya serupa dengan setengah blok pertama blok berikutnya. Tumpang-tindih ini, adalah nilai tambah dari kualitas DCT, membuat MDCT teramat menarik untuk aplikasi kompresi signal, karena menolong untuk menghindari kesalahan yang berasal dari batas antar blok. Dengan begitu, MDCT digunakan pada mp3, AC-3, Ogg Vorbis, dan AAC untuk kompresi audio, misalnya.
27
Gambar 2.4 Contoh Blok dalam MDCT ( Sumber: DFT, DCT, MDCT, DST and Signal Fourier Spectrum Analyis,2000,p2 )
Di mp3, MDCT tidak digunakan pada audio signal secara langsung, tetapi lebih ke hasil 32-band polyphase quadrature filter (PQF) bank. Hasil MDCT ini setelah diolah oleh alias reduction formula untuk mengurangi yang aliasing khas PQF filterbank. Kombinasi filter bank dengan MDCT sering disebut dengan hybrid filter bank atau subband MDCT. AAC, pada umumnya menggunakan murni MDCT; hanya (jarang digunakan) MPEG-4 AAC-SSR (oleh Sony) menggunakan 4-band PQF bank yang diikuti oleh MDCT. ATRAC menggunakan quadrature mirror filters (QMF) yang diikuti oleh MDCT. Sebagai transform, MDCT
tidak biasa membandingkan bit dengan Fourier
transform yang lain memiliki setengah dari hasilnya adalah input (contohnya dengan jumlah sama). Pada hal ini, adalah fungsi linear F : R2N -> RN ( dimana R adalah bilangan real ) Bilangan real 2N dari x0, ..., x2N-1 di ubah menjadi bilangan real N dengan X0, ..., XN1menjadi
sebagai berikut:
28
(Seperti pada DCT-IV, orthogonal transform, bentuk inverse memiliki bentuk yang menyerupai bentuk forward transform) Di kasus windowed MDCT dengan window normalization (melihat di bawah) normalization koefisien didepan IMDCT sebaiknya dilipatgandakan di samping 2 (i.e., menjadi 2/N).
2.9
IMDCT ( Inverse Modified Cosine Transform ) IMDCT merupakan kebalikan proses dari MDCT. IMDCT dihitung dengan
rumusan
IMDCT (Inverse Modified Discrete Cosine Transform) mengubah baris frekuensi (Xk) ke sample polyphase subband filter (Xi). Bentuk IMDCT dapat dilihat pada (2.2), di mana n adalah 12 untuk blok pendek dan 36 untuk blok panjang.
29
Gambar 2.5 Operasi penambahan tumpang tindih ( Sumber: Kristen Lagerstrom,2002,p23 )
Walaupun aplikasi pengguna MDCT akan memerlukan O (N2) pelaksanaan, tetapi memungkinkan untuk menghitung hal yang sama dengan hanya O (N log N) kerumitan pada
pengulangan perhitungan pemfaktoran, seperti pada Fast Fourier
Transform (FFT). Hal tersebut juga dapat dihitung MDCTs melalui transform yang lain, biasanya DFT (FFT) atau DCT, yang digabungkan dengan O (N) langkah pre- dan pasca-processing. Seperti yang sudah digambarkan sebelumnya, algoritma yang mana pun dari DCT-IV biasanya menyediakan metode untuk menghitung MDCT dan IMDCT.
2.10
Definisi dan Karakteristik Piranti Lunak Menurut Pressman (2010, p10), definisi piranti lunak adalah:
1. Perintah (program komputer) yang bila dieksekusi akan memberikan fungsi dan unjuk kerja seperti yang diinginkan.
30 2. Struktur data yang memungkinkan program memanipulasi informasi secara proporsional. 3. Dokumen yang menggambarkan operasi dan kegunaan program. Piranti lunak adalah suatu elemen sistem yang bersifat logic, bukan fisik, jadi piranti lunak memiliki karakteristik yang berbeda dengan perangkat keras (hardware). Adapun karakteristik dari piranti lunak menurut Pressman (2010, pp10-13) adalah: 1. Piranti lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk yang klasik. 2. Piranti lunak tidak pernah usang, tidak mudah rusak dan tidak habis pakai. 3. Piranti lunak dibuat secara custom-built / khusus, serta tidak dapat dirakit dari komponen yang sudah ada.
2.10.1 Dasar Perancangan Piranti Lunak Menurut Mahyuzir (1991, p78), perancangan merupakan proses penerapan bermacam-macam teknik dan prinsip dengan tujuan untuk mendefinisikan peralatan, proses atau sistem secara rinci. Perancangan dilakukan dalam tahap awal pengembangan.
2.10.2 Konsep Dasar Rekayasa Piranti Lunak 2.10.2.1 Pengertian Rekayasa Piranti Lunak Pengertian rekayasa piranti lunak pertama kali diperkenalkan oleh Fritz Bauer sebagai penetapan dan penggunaan prinsip-prinsip rekayasa dalam usaha mendapatkan piranti lunak yang ekonomis, yaitu piranti lunak yang terpercaya dan bekerja efisien pada mesin atau komputer (Pressman, 2010, p19).
31 Tujuan perancangan adalah menghasilkan model yang akan dibuat. Perancangan piranti lunak mengalami perubahan jika didapatkan metode yang baru, analisis yang baik dan penyusunan pengertian yang lebih luas.
2.10.2.2 Paradigma Rekayasa Piranti Lunak Terdapat lima paradigma (model proses) dalam merekayasa suatu piranti lunak, yaitu Prototyping Model, Spiral Model, The Classic Life Cycle atau sering juga disebut Waterfall Model, Fourth Generation Techniques (4GT), dan Combine Model. Pada penulisan skripsi ini dipergunakan Waterfall model. Menurut Pressman (2010, p19) piranti lunak telah menjadi elemen kunci dari evolusi computer based-system dan computer product. Selama lebih dari empat dekade terakhir, piranti lunak telah berkembang dari sebuah pemecahan berorientasi permasalahan dan alat analisis informasi menjadi sebuah industri sendiri. Namun kebiasaan pemrograman awal dan sejarah telah dengan sendirinya menciptakan sekumpulan masalah yang hingga kini masih ada. Piranti lunak telah menjadi faktor pembatas dalam evolusi computer-based systems. Berangkat dari itulah dikembangkan metode yang menyediakan framework untuk membangun piranti lunak dengan kualitas lebih tinggi. Rekayasa piranti lunak (Software Engineering) berdasarkan Pressman (2010, p23) adalah studi pendekatan untuk pengaplikasian secara sistematis, pendekatan terukur untuk pengembangan, operasi, dan pemeliharaan dari sebuah piranti lunak.
32 2.10.2.3 Fase Pengembangan Piranti Lunak Metode pengembangan Prototyping menawarkan pendekatan alternatif yang menghasilkan model piranti lunak yang dapat dijalankan sehingga kebutuhan calon pengguna dapat direvisi kembali. Sebagai konsekuensinya, spesifikasi kebutuhan dianalisis kembali. Review bersama antara pengembang sistem dan calon pengguna akhir sangat penting sehingga mereka memiliki persepsi yang sama terhadap sistem. Pada Spiral model, langkah-langkahnya meliputi komunikasi dengan user atau customer untuk mengetahui kebutuhan mereka, planning (tahap perencanaan), risk analysis (tahap menganalisa masalah teknis dan yang mungkin terjadi), engineering (tahap membuat aplikasi), construction and release (tahap untuk mengimplementasikan aplikasi yang sudah jadi) dan yang terakhir evaluasi dari pengguna (Pressman, 2010, p47). Fourth Generation Techniques (4GT) merupakan suatu deretan dari software tools yang mempunyai satu kesamaan, yaitu semuanya memungkinkan software engineer untuk menspesifikasikan karakteristik tertentu dari sebuah piranti lunak pada level tinggi. Sedangkan Combine model merupakan kombinasi dari model-model lainnya yang dianggap sesuai dengan kebutuhan pengguna (Pressman, 2010, p44-45). Salah satu cara perancangan piranti lunak adalah dengan menggunakan waterfall model (model air terjun), Model ini mengusulkan sebuah pendekatan kepada pengembangan piranti lunak yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis kebutuhan, desain, implementasi, integrasi, pengujian, pengoperasian dan pemeliharaan. Menurut Sommerville (1996), tahap-tahap utama dalam Waterfall model dapat digambarkan dalam aktivitas dasar pengembangan seperti berikut ini:
33 1. Analisis Kebutuhan Pada tahap ini, dianalisis apa yang menjadi kebutuhan dan yang menjadi tujuan dari dibuatnya piranti lunak ini. 2. Desain sistem dan piranti lunak Proses desain sistem terbagi dalam kebutuhan perangkat keras dan piranti lunak. Hal ini menentukan arsitektur piranti lunak secara keseluruhan. Desain piranti lunak mewakili fungsi sistem piranti lunak dalam suatu bentuk yang dapat ditransformasikan ke dalam satu atau lebih program yang dapat dieksekusi. 3. Implementasi dan pengujian unit Dalam tahap ini, desain piranti lunak direalisasikan dalam suatu himpunan program atau unit-unit program. Pengujian unit mencakup kegiatan verifikasi terhadap setiap unit sehingga memenuhi syarat spesifikasinya. 4. Integrasi dan pengujian sistem Unit program secara individual diitegrasikan dan diuji sebagai satu sistem yang lengkap untuk memastikan bahwa kebutuhan piranti lunak telah terpenuhi. Setelah pengujian, sistem piranti lunak disampaikan kepada pengguna. 5. Pengoperasian dan Pemeliharaan Secara normal, walaupun tidak selalu diperlukan, tapi merupakan tahap siklus hidup yang terpanjang. Sistem telah terpasang dan sedang dalam penggunaan. Pemeliharaan mencakup perbaikan kesalahan yang tidak ditemukan dalam tahap-tahap sebelumnya, meningkatkan implementasi unit-unit sistem dan mempertinggi pelayanan sistem sebagai kebutuhan baru yang ditemukan.
34
Analisis Kebutuhan Desain sistem dan piranti lunak Implementasi dan pengujian unit Integrasi dan pengujian sistem Pengoperasian dan pemeliharaan
Gambar 2.6 Waterfall Model
2.11
State Transition Diagram (STD) State Transition Diagram merupakan sebuah modeling tool yang digunakan
untuk mendeskripsikan sistem yang memiliki ketergantungan terhadap waktu. STD merupakan suatu kumpulan keadaan atau atribut yang mencirikan suatu keadaan pada waktu tertentu. Komponen – komponen utama STD adalah: a. State, disimbolkan dengan State merepresentasikan reaksi yang ditampilkan ketika suatu tindakan dilakukan. Ada dua jenis state, yaitu: state awal dan state akhir. State akhir dapat berupa beberapa state, sedangkan state awal tidak boleh lebih dari satu.
35 b. Arrow, disimbolkan dengan Arrow sering disebut juga dengan transisi state yang diberi label dengan ekspresi aturan, label tersebut menunjukan kejadian yang menyebabkan transisi terjadi. c. Condition dan Action, disimbolkan dengan Condition Action
State 1
State 2
Gambar 2.7 Simbol condition dan action
Untuk melengkapi STD diperlukan dua hal lagi, yaitu Condition dan Action seperti yang dapat dilihat pada gambar 2.7 diatas. Condition adalah suatu event pada lingkungan eksternal yang dapat dideteksi oleh sistem, sedangkan action adalah yang dilakukan oleh sistem bila terjadi perubahan state atau merupakan reaksi terhadap kondisi. Aksi akan menghasilkan keluaran atau tampilan.
2.12
Interaksi Manusia Komputer Saat ini sistem atau program yang interaktif lebih populer dan digemari, karena
itu penggunaan komputer telah berkembang pesat sebagai suatu program yang interaktif dan membuat orang tertarik untuk menggunakannya. Program yang interaktif ini perlu dirancang dengan baik sehingga pengguna dapat merasa senang dan juga ikut berinteraksi dengan baik dalam menggunakannya.
36 Interaksi Manusia dan Komputer (IMK) atau Human-Computer Interaction (HCI) adalah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena – fenomena besar yang berhubungan dengannya.
2.12.1 Tujuan Rekayasa Sistem Interaksi Manusia dan Komputer Tujuan rekayasa sistem interaksi manusia dan komputer seperti disebutkan oleh Shneiderman(2010,p11-14) adalah sebagai berikut : •
Fungsionalitas yang sesungguhnya Harus dapat menentukan fungsi-fungsi apa saja yang harus dilaksanakan dan bagaimana cara untuk mencapai fungsionalitas yang lengkap tersebut.
•
Kehandalan, ketersediaan, keamanan dan integritas data Kehandalan disini diartikan dapat berfungsi seperti yang diinginkan, ketersediaan berarti selalu ada ketika hendak digunakan, keamanan berarti terlindung dari akses yang tidak diinginkan dan intergritas data berarti terdapat perlindungan data terhadap kerusakan baik disengaja maupun tidak.
•
Standarisasi, integrasi, konsistensi dan portabilitas Standarisasi disini mengacu kepada keseragaman sifat-sifat user interface pada aplikasi yang berbeda-beda, integrasi diantara paket aplikasi dan peralatan piranti lunak, konsistensi atau keseragaman di dalam suatu program aplikasi dan portabilitas yang mengacu pada dimungkinkannya data dikonversi pada berbagai bentuk software dan hardware.
37 •
Penjadwalan dan anggaran Penjadwalan yang sesuai target dan anggaran yang rasional akan menjamin kualitas produk tersebut. Produk yang terlambat atau terlalu mahal akan membuat produk tersebut tidak kompetitif.
2.12.2 Program Interaktif Suatu program yang interaktif dan baik harus bersifat user friendly. Shneiderman (2010, p15) menjelaskan lima kriteria yang harus dipenuhi oleh suatu program yang user friendly, yaitu: 1. Waktu belajar yang tidak lama. 2. Kecepatan penyajian informasi yang tepat. 3. Tingkat kesalahan pemakaian rendah. 4. Penghafalan sesudah melampaui jangka waktu. 5. Kepuasan pribadi. Suatu program yang interaktif dapat dengan mudah dibuat dan dirancang dengan suatu perangkat bantu pengembang sistem antarmuka, seperti: Macromedia Flash MX, Visual Basic, Borland Delphi dan sebagainya. Keuntungan penggunaan perangkat bantu untuk mengembangkan antarmuka menurut Santosa (1997, p7) yaitu: 1. Antarmuka yang dihasilkan menjadi lebih baik. 2. Program antarmukanya menjadi lebih mudah ditulis dan lebih ekonomis untuk dipelihara.
38 2.12.3 Pedoman untuk Merancang User Interface Terdapat beberapa pedoman yang dianjurkan dalam merancang program guna mendapatkan suatu program yang user friendly. User Interface atau antarmuka pemakai adalah bagian sistem komputer yang memungkinkan manusia berinteraksi dengan komputer.
2.12.3.1 Delapan Aturan Emas (Eight Golden Rules) Menurut Shneiderman (2010, p74) untuk merancang sistem interaksi manusia dan komputer yang baik, harus memperhatikan delapan aturan utama dibawah ini, yaitu: 1. Strive for consistency (berusaha untuk konsisten) 2. Enable frequent user to use shortcuts (memungkinkan pengguna sering memakai shortcut) 3. Offer informative feed back (memberikan umpan balik yang informatif) 4. Design dialogs to yield closure (pengorganisasian yang baik sehingga pengguna mengetahui kapan awal dan akhir dari suatu aksi) 5. Offer simple error handling (memberikan pencegahan kesalahan dan penanganan kesalahan yang sederhana) 6. Permit easy reversal of actions (memungkinkan pembalikan aksi (undo) dengan mudah) 7. Support internal locus of control (memungkinkan pengguna untuk menguasai dan mengontrol sistem) 8. Reduce short term memory load (mengurangi beban ingatan jangka pendek, dimana manusia hanya dapat mengingat 7 ± 2 satuan informasi sehingga
39 perancangannya harus sederhana agar pengguna tidak perlu banyak menghapal)
2.12.3.2 Pedoman Merancang Penampilan Data Beberapa pedoman yang disarankan untuk digunakan dalam merancang tampilan data yang baik menurut Smith and Mosier yang dikutip Shneiderman (2010, p80) yaitu: 1. Konsistensi tampilan data, istilah, singkatan, format, dan sebagainya harus standar. 2. Beban ingatan yang sesedikit mungkin bagi pengguna. Pengguna tidak perlu mengingat informasi dari layar satu ke layar yang lain. 3. Kompatibilitas tampilan data dengan peinput data. Format tampilan informasi perlu berhubungan erat dengan tampilan peinput data. 4. Fleksibilitas kendali pengguna terhadap data. Pemakai harus dapat memperoleh informasi dari tampilan dalam bentuk yang paling memudahkan.
2.12.3.3 Teori Waktu Respon Waktu respon dalam sistem komputer menurut Shneiderman (2010, p352) adalah jumlah detik dari saat pemakai memulai aktivitas (misalnya dengan penekanan tombol enter atau tombol mouse) sampai ditampilkannya hasil pada display atau printer. Beberapa pedoman yang disarankan mengenai kecepatan waktu respons pada suatu program menurut Shneiderman (2010, p367) yaitu: 1. Pemakai lebih menyukai waktu respons yang lebih pendek.
40 2. Waktu respons yang panjang (lebih dari 15 detik) menggangu. 3. Waktu respons yang lebih pendek menyebabkan waktu pengguna berpikir lebih pendek. 4. Langkah yang lebih cepat dapat meningkatkan produktivitas, tetapi juga dapat meningkatkan tingkat kesalahan. 5. Waktu respons harus sesuai dengan tugasnya. a. Untuk mengetik, menggerakan kursor, memilih dengan mouse: 50-150 milidetik. b. Tugas sederhana yang sering: <1 detik c. Tugas biasa: 2-4 detik. d. Tugas kompleks: 8-12 detik. 6. Pemakai harus diberitahu mengenai penundaan yang panjang.