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
7 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. 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.
8
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 bagai mana 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
standar, spesifikasi dari mp3 tidak dirincikan secara detil tentang proses encoding mereka yang sebenarnya, walaupun proses tersebut tersajikan dalam pseudocode tingkat tinggi sehingga perusahaan lain dapan 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 kedalam 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 yang hasil encoding bitstream dari data ini, dan menambahkan data yang tak diperlukan lagi seperti kode koreksi kesalahan. Pada MPEG-1, semakin bertambahnya layer, maka begitu juga tingkat kerumitan pada encoder juga meningkat. Layer 3 terbentuk sejak layer-layer sebelumnya, dan termasuk fitur-fiturnya. Pada layer 1, input dipetakan kedalam 32 sub-bands dengan segmentasi yang pasti dari data kedalam 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 ke-19 abad, matematikawan Perancis Joseph Fourier menyusun beberapa persamaan matematik untuk menggambarkan cara panas menyebar. Persamaan sama itu bisa dipergunakan untuk menggambarkan bentuk gelombang yang mana pun 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 di sebagai sebagian kerangka matematik yang menggambarkan mp3. Aspek yang benar-benar mempesona ke mp3 adalah bahwa menggabungkan matematika dengan pengetahuan cara manusia karya sistem pendengaran.
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-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. Cara ini 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 tinggi. Frame header terletak pada empat byte pertama (32bits) pada bingkai. 11 bit yang pertama (atau pad 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 mendapatkan 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 anda baca dari file. Sebenarnya, adalah sebuah metode yang baik jika mencek validitas MPEG header. Berikut ini ialah "graphical" penggambaran isi dari header. Peran dari sampai M dipergunakan untuk menunjukkan bagian-bagian yang berbeda. Pada tabel, anda bisa memahami detail tentang isi masing-masing bagian.
AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM Sign Length
14
15
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.
Tabel 2.2 MPEG audioTag ID3v1
16
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 ID3v1.1 struktur. 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' 'Native
4 'Disco'
24 'Soundtrack'
44 'Space'
64 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'
17 9 'Metal'
29 'Jazz+Funk'
49 'Gothic'
69 'Showtunes'
10 'New Age'
30 'Fusion'
50 'Darkwave'
70 'Trailer'
11 'Oldies'
31 'Trance'
51
'Techno71 '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
'Chamber 104
Rock'
116 'Ballad' Music'
'Psychedelic 81 'Folk-Rock'
93
'Poweer 105 'Sonata'
Rock' 82 'National Folk' 94 'Symphonic
117 Ballad'
106 'Symphony'
118 'Rhytmic Soul'
18 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 entropy encoding algoritma yang dipakai untuk
mengurangi kehilangan data pada kompresi. Pada bagian ini mengajutkan 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. Iini Dikembangkan oleh David A. Huffman ketika beliau sedang mengambl Ph.D. mahasiswa di MIT, dan menerbitkan sebuah makalah pada tahun 1952 “A Method for
19 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 lambing-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 untuk 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 that the term "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
20 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 yang 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 bahwa mengambil sebagai
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 kedalam biner pada perangkat keras, mudah untuk dianalisa secara matematis, dan benar-benar baik diketahui kesalahan biasa yang disebabkan dengan gangguan dari luar pada saluran pengiriman. CRC diciptakan oleh W. Wesley Peterson, dan diterbitkan di kertasnya 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)
21 -------------01100011101100 <--- hasil Jika bit input diatas pembagi paling kanan adalah 0, tidak perlu melakukan apaapa dan pindahkan pembagi 1 bit ke kanan Jika bit input diatas pembagi paling kanan 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 Formating Encoding mengubahnya menjadi bitstream menghasilkan sebagai bentuk terakhir
yang digunakan dalam penghubungan.
22
Gambar 2.3 Struktur mp3 ( 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 )
23 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 adalah 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, ..., XN1 menjadi
sebagai berikut:
2 N 1
Xk
1
xn cos N n 2 n 0
N 1 k ....(2.1) 2 2
(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).
24 2.9
IMDCT ( Inverse Modified Cosine Transform ) IMDCT merupakan kebalikan proses dari MDCT. IMDCT dihitung dengan
rumusan : n / 2 1
xi
k 0
Xk cos 2i 1 n 22k 1 , for i=0 to n-1 … (2.2) 2n
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
25 DFT (FFT) atau DCT, yang digabungkan dengan O (N) langkah pre- dan pascaprocessing. 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 (2002, 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 (2002, 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,
26 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, 1992, 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 (1997, 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
27 metode yang menyediakan framework untuk membangun piranti lunak dengan kualitas lebih tinggi. Rekayasa piranti lunak (Software Engineering) berdasarkan Pressman (1997, p23) adalah studi pendekatan untuk pengaplikasian secara sistematis, pendekatan terukur untuk pengembangan, operasi, dan pemeliharaan dari sebuah 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 (1997, 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 (1997, p23) adalah studi pendekatan untuk pengaplikasian secara sistematis, pendekatan terukur untuk pengembangan, operasi, dan pemeliharaan dari sebuah piranti lunak.
28 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, 2002, 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, 2002, 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:
29 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 Pemiliharaan 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 tahaptahap sebelumnya, meningkatkan implementasi unit – unit sistem dan mempertinggi pelayanan sistem sebagai kebutuhan baru yang ditemukan.
30
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.
31
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. 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.
32 2.12.1 Tujuan Rekayasa Sistem Interaksi Manusia dan Komputer Tujuan rekayasa sistem interaksi manusia dan komputer seperti disebutkan oleh Shneiderman(1998,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.
33 2.12.2 Program Interaktif Suatu program yang interaktif dan baik harus bersifat user friendly. Shneiderman (1998, 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.2 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.
34 2.12.2.1 Delapan Aturan Emas (Eight Golden Rules) Menurut Shneiderman (1998, 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.2.2 Pedoman Merancang Penampilan Data Beberapa pedoman yang disarankan untuk digunakan dalam merancang tampilan data yang baik menurut Smith and Mosier yang dikutip Shneiderman (1998, p80) yaitu: 1. Konsistensi tampilan data, istilah, singkatan, format, dan sebagainya harus standar.
35 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.2.3 Teori Waktu Respon Waktu respon dalam sistem komputer menurut Shneiderman (1998, 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 (1998, 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.
36 d. Tugas kompleks: 8-12 detik. 6. Pemakai harus diberitahu mengenai penundaan yang panjang.