You are on page 1of 35

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.

2
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

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.

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.

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.

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.

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

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

11

(31-21)

Frame sync

(20,19)

ID versi MPEG Audio


00 MPEG versi 2.5
01 reserved
10 MPEG versi 2
11 MPEG versi 1

(18,17)

Penjelasan Layer
00 reserved
01 layer III
10 layer II
11 layer I

(16)

Protection bit
0 dilindungi oleh CRC (16 bit CRC
menyambung dibelakang header
1 tidak dilindungi oleh CRC

(15,12)

Index bitrate
Bits

V1L1 V1L2 V1L3 V2L1 V2L2&L3

0000 free

free

free

free

free

0001 32

32

32

32

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

V1 MPEG versi 1
V2 MPEG versi 2 dan 2.5
L1 Layer I
L2 Layer II
L3 Layer III

Bitrate

Single

Stere

Channel
Free

yes

yes

32

yes

no

48

yes

no

56

yes

no

64

yes

yes

80

yes

no

96

yes

yes

112

yes

yes

128

yes

yes

160

yes

yes

192

yes

yes

224

no

yes

256

no

yes

320

no

yes

384

no

yes

(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.

(8)

Private bit. Hanya bersifat informatif

(7,6)

Channel Mode
00 Stereo
01 Joint Stereo (Stereo)
10 Dual Channel (2 mono channels)

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.

(5,4)

Mode extension (hanya digunakan di Joint stereo)


Layer I & II
Value Layer I&II

(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

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.

(2)

Original
0 copy dari media original
1 media original
Original bit menunjukkan, bila di-set 1, maka
frame berada di media originalnya.

(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

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

(0-2)

identifikasi tag. Harus berisi TAG


jika ada tag dan benar.

30

(3-32)

Judul

30

(33-62)

Artis

30

(63-92)

Album

(93-96)

Year

30

(97-126)

Comment

(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'

'Instrumental
6 'Grunge'

26 'Ambient'

46

66 'New Wave'

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'

11 'Oldies'

31 'Trance'

51

'Techno-

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

Salah satu pengembang Winamp menambahkan jenis lainnya, sebagai berikut :


'Progressive
80 'Folk'

92
Rock'
'Psychedelic

81 'Folk-Rock'

93

104

'Chamber
Music'

105 'Sonata'

Rock'
'Symphonic
82 'National Folk' 94

116 'Ballad'

117

'Poweer
Ballad'

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-

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 .

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

"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).

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.

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
2N

jumlah sama). Pada hal ini, adalah fungsi linear F : R

-> R ( dimana R adalah

bilangan real )
Bilangan real 2N dari x0, ..., x2N-1 di ubah menjadi bilangan real N dengan X0, ..., XN1menjadi

sebagai berikut:

(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.

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.

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).

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.

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:

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.

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.

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

State 1

Action

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.

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.

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.

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

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.

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.

You might also like