BAB 2 LANDASAN TEORI 2.1
Kriptografi 2.1.1 Sejarah Kriptografi Kriptografi mempunyai sejarah yang sangat panjang. Kriptografi sudah digunakan 4000 tahun yang lalu, diperkenalkan oleh orang – orang Mesir lewat hieroglyph. Jenis tulisan ini bukanlah bentuk standar untuk menulis pesan.
Gambar 2.1 Tulisan hieroglyph (Ariyus, 2008, p13) Kriptografi berasal dari bahasa Yunani, cryptos yang berarti rahasia dan graphein yang berarti tulisan. Kriptografi adalah sebuah teknik dalam mengamankan dan mengirim data dalam bentuk yang hanya diketahui oleh pihak yang berhak membukanya. Kriptografi merupakan ilmu dan seni dalam memproteksi informasi dengan mengubahnya ke dalam bentuk himpunan karakter acak yang tidak dapat dibaca. Kriptografi adalah sebuah cara yang efektif dalam mengamankan informasi-informasi penting baik yang tersimpan dalam media penyimpanan maupun yang ditransmisikan melalui jaringan komunikasi (Ariyus, 2008, p13).
8
9
2.1.2 Pengertian Kriptografi Kriptografi adalah suatu metode keamanan untuk melindungi suatu informasi dengan menggunakan kata-kata sandi yang hanya bisa dimengerti oleh orang yang berhak
mengakses informasi tersebut. Kriptografi
merupakan satu-satunya metode yang digunakan untuk melindungi informasi yang melalui jaringan komunikasi yang menggunakan landline (kabel di bawah tanah), satelit komunikasi, dan fasilitas microwave (gelombang mikro).
Prosedur-prosedur
kriptografi
juga
bisa
digunakan
untuk
authentifikasi pesan, digital signature, dan identifikasi pribadi untuk mengotorisasi transfer uang secara digital melalui ATM, kartu kredit, dan melalui suatu jaringan.
Gambar 2.2 Proses Enkripsi dan Deskripsi (Kromodimoeljo, 2009, p5)
Kriptografi sebenarnya adalah suatu metode yang sering sekali digunakan untuk melindungi berbagai macam data yang prosesnya disebut dengan encryption, yaitu adalah suatu proses yang mengkonversi sebuah pesan plaintext menjadi sebuah ciphertext yang bisa dibalik ke bentuk asli seperti semula, yang juga bisa disebut sebagai proses decoding atau decryption (Ariyus, 2008, p14).
10
Dalam skripsi ini, enkripsi data akan digunakan terhadap suatu tipe data audio yang memiliki gelombang suara digital dan analog untuk melindungi data dari distribusi ilegal dengan membuat data tersebut tidak bisa dijalankan tanpa kunci yang bisa membuka sistem keamanan enkripsi yang sudah dipasang di dalam audio tersebut. Setiap file audio bisa di copy dan didistribusikan, namun tidak bisa dijalankan tanpa kunci untuk mengakses data tersebut.
2.1.3 Tujuan Kriptografi Menurut Anonymous, 2010, tujuan kriptografi adalah melindungi data dari ancaman yang disengaja atau tidak disengaja. Dewasa ini ancaman bertambah karena semakin meluasnya akses melalui internet atau teknologi bergerak. Aspek-aspek keamanan data dalam kriptografi adalah sebagai berikut : 1) Confidentiality Merupakan usaha untuk menjaga kerahasiaan data. Data hanya boleh diakses oleh orang yang berwenang. Contohnya datadata pribadi, data-data bisnis, daftar gaji, data nasabah dan lainnya. Aspek keamanan data menjadi sensitif dalam ecommerce dan militer. Serangan dalam aspek ini antara lain dilakukan dengan penyadapan, misalnya sniffer atau logger.
11
2) Integrity Memastikan bahwa informasi yang dikirim melalui jaringan tidak mengalami modifikasi oleh pihak yang tidak berhak. Serangan dapat berupa pengubahan data oleh orang yang tidak berhak, misalnya dengan spoofing yaitu virus yang dapat mengubah berkas.
3) Availability Informasi harus tersedia ketika dibutuhkan. Serangan dapat berupa menghilangkan atau menghapus data.
4) Authentication Meyakinkan keaslian data, sumber data, orang yang mengakses data, dan server yang digunakan. Beberapa cara yang dapat digunakan untuk membuktikan keaslian data antara lain dengan what you have (misalnya kartu identitas), what you know (misalnya password atau PIN) dan what you are (misalnya dengan biometric identity).
5) Access Control Aspek ini berhubungan dengan mekanisme pengaturan akses ke informasi, untuk mengatur siapa yang boleh melakukan apa. Membutuhkan adanya klasifikasi data, misalnya umum (public), pribadi (private), rahasia (confidential) atau sangat rahasia (top secret).
12
2.1.4 Jenis Algoritma Kriptografi Menurut Anonymous, 2010, berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, kriptografi dapat dibedakan menjadi 2 macam, yaitu kriptografi simetri (symmetric cryptography) dan kriptografi asimetri (asymetric cryptography) 2.1.4.1 Kriptografi Simetri Pada sistem kriptografi simetri, kunci untuk proses enkripsi sama dengan kunci untuk proses dekripsi. Keamanan sistem kriptografi simetri terletak pada kerahasiaan kunci. Istilah lain untuk kriptografi simetri adalah kriptografi kunci privat (private key cryptography)
atau
kriptografi
konvensional
(conventional
cryptography).
Gambar 2.3 Kriptografi Simetri (Anonymous, 2010, p11)
Algoritma kriptografi simetri dapat dikelompokkan menjadi dua kategori antara lain : 1) Cipher aliran (stream cipher) Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam bentuk bit tunggal yang dalam hal ini rangkaian bit
13
dienkripsikan/didekripsikan
bit
per
bit.
Cipher
aliran
mengenkripsi satu bit setiap kali.
2) Cipher blok (block cipher) Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam bentuk blok bit, yang dalam hal ini rangkaian bit dibagi menjadi blok- blok bit yang panjangnya sudah ditentukan sebelumnya. Cipher blok mengenkripsi satu blok bit setiap kali.
2.1.4.2 Kriptografi Asimetri Pada sistem kriptografi asimetri, kunci untuk proses enkripsi tidak sama dengan kunci untuk proses dekripsi. Istilah lain untuk kriptografi asimetri adalah kriptografi kunci publik (public key cryptography), sebab kunci untuk enkripsi tidak rahasia dan dapat diketahui oleh siapapun, sementara kunci untuk dekripsi hanya diketahui oleh penerima pesan.
Gambar 2.4 Kriptografi Asimetri (Anonymous, 2010, p12)
14
2.1.5 Kriptografi Triple DES Menurut Hidayat, 2010 Triple DES adalah sebuah cipher blok yang dibentuk oleh DES dengan menggunakannya tiga kali. Triple DES atau TDES atau 3DES menggunakan DES 3 kali. Penggunaan tiga langkah ini penting untuk mencegah meet – in – middle attack sebagaimana pada Double DES.
Bentuk sederhana dari Triple DES adalah : Enkripsi
: C = Ek3 (Ek2(Ek1(P)))
Dekripsi
: P = Dk1 (Dk2(Dk3(C)))
Perlu diingat
bahwa
DES bukanlah sebuah grup (dalam
matematika), karena jika merupakan grup, pembangunan Triple DES akan ekivalen dengan operasi Single DES yang berarti tidak lagi aman Varian ini umum dikenal dengan dengan mode EEE (untuk enkripsi) karena pada proses enkripsi semuanya menggunakan enkripsi. Untuk menyederhanakan interoperability antara DES dan Triple DES, maka pada langkah di tengah (pada proses enkripsi TDES) diganti dengan dekripsi (mode EDE). Dengan pengubahan ini, maka dibuat beberapa versi TDES.
Versi pertama Triple DES menggunakan 2 buah kunci, yaitu k1 dan k2.
Enkripsi
: C = Ek1 (Dk2(Ek1(P)))
Dekripsi
: P = Dk1 (Ek2(Dk1(C)))
15
Enkripsi DES tunggal dengan kunci K dapat dinyatakan sebagai TDES – EDE with K1 = K2 = K. Gambar di bawah ini memperlihatkan versi TDES dengan 2 buah kunci. Penggunaan enkripsi pada langkah di tengah tidak mempengaruhi keamanan algoritma
Gambar 2.5 Diagram enkripsi dan dekripsi Triple DES (Hidayat, 2010, p5)
Secara umum, Triple DES dengan 2 buah kunci mempunyai panjang kunci 2 x 56 bit = 112 bit, jauh lebih pendek daripada Triple DES yang mempunyai panjang kunci 3 x 56 bit = 168 bit.
2.1.6 Algoritma Triple DES Algoritma enkripsi atau dekripsi Triple DES seperti algoritma kriptografi lainnya yaitu memiliki algoritma umum. Triple DES merupakan suatu algoritma pengembangan dari algoritma DES.
16
17
Gambar 2.6 Tahapan algoritma Triple DES. (Hidayat, 2010, p6)
Gambar di atas menjelaskan tentang tahapan algoritma Triple DES. Pada dasarnya algoritma yang digunakan sama. Hanya pada Triple DES dikembangkan dengan melakukan enkripsi dengan implementasi algoritma DES sebanyak tiga kali. Triple DES memiliki 3 buah kunci yang berukuran 168-bit (tiga kali 56 bit dari DES ). Pada algoritma Triple DES dibagi menjadi tiga tahap, setiap tahapnya merupakan implememntasi dari algoritma DES. Tahap pertama, plainteks yang diinputkan dioperasikan dengan kunci eksternal pertama (K1) dan melakukan proses enkripsi dengan menggunakan algoritma DES, sehingga menghasilkan pra- chipherteks pertama. Tahap kedua, pracipherteks pertama yang dihasilkan pada tahap pertama , kemudian dioperasikan dengan kunci eksternal kedua (K2) dan melakukan proses enkripsi atau proses dekripsi (tergantung cara pengenkripsian yang digunakan ) dengan menggunak algoritma DES. Sehingga menghasilkan Pra- cipherteks kedua. Tahap terakhir, pracipherteks kedua yang dihasilkan pada tahap kedua, dioperasikan dengan kunci eksternal ketiga (K3) dan melakukan proses enkripsi dengan menggunakan algoritma DES, sehingga menghasilkan cipherteks (C).
2.1.6.1 Proses Enkripsi Triple DES Proses enkripsi algoritma Triple DES dapat dicapai dengan menggunakan tiga kunci : Enkripsi
: C = Ek3(Dk2(Ek1(P)))
18
Penjelasan
:
Enkripsi pesan P mula – mula dengan kunci lalu hasilnya didekripsi lagi dengan kunci K2, kemudian dienkripsi lagi dengan kunci K3 dan hasil enkripsi terakhir adalah cipherteks
2.1.6.2 Proses Dekripsi Triple DES Proses Dekripsi algoritma Triple DES dapat dicapai dengan menggunakan tiga kunci : Dekripsi
: P = Dk1(Ek2(Dk3(C)))
Penjelasan
:
Mula – mula kunci K3 digunakan untuk mendekripsi C, lalu hasilnya dienkripsi lagi dengan kunci K2, kemudian didekripsi lagi dengan kunci K1 dan hasil dekripsi terakhir adalah pesan semula (P).
2.1.7 Keamanan Triple DES Secara umum TDES dengan tiga kunci berbeda memiliki kunci berukuran 168-bit (3) kali kunci 56-bit dari DES), namun dengan metode meet-in-the-middlekeamanan yang diberikan hanyalah 112-bit. Sebuah varian, Double TDES, menggunakan kunci k1=k3, yang berarti mengecilkan ukuran kunci ke 112-bit dan ukuran storagemenjadi 128-bit.
2.1.8 Implementasi Kriptografi Menurut Munir (2004, p6 - p8), kriptografi banyak digunakan dalam kehidupan sehari – hari antara lain :
19
-
Pengiriman data melalui saluran komunikasi
-
Penyimpanan data di dalam disk storage.
-
Automatic Teller Machine (ATM)
-
Telepon genggam (Handpone)
-
Keamanan Jaringan Internet
Contoh-contoh aplikasi crypthography pada data tersimpan: a) Dokumen teks Plainteks (plain.txt): Ketika saya berjalan-jalan di pantai, saya menemukan banyak sekali kepiting yang merangkak menuju laut. Mereka adalah anak-anak kepiting yang baru menetas dari dalam pasir. Naluri mereka mengatakan bahwa laut adalah tempat kehidupan mereka.
Cipherteks (cipher.txt): Ztâxzp/épêp/qtüyp{p}
Hasil dekripsi terhadap berkas cipher.txt: Ketika saya berjalan-jalan di pantai, saya menemukan banyak sekali kepiting yang merangkak menuju laut. Mereka adalah anakanak kepiting yang baru menetas dari dalam pasir. Naluri mereka mengatakan bahwa laut adalah tempat kehidupan mereka.
20
b) Dokumen gambar Plainteks (lena.bmp):
Cipherteks (lena2.bmp)
Hasil dekripsi terhadap berkas lena2.bmp menghasilkan gambar yang sama seperti lena.bmp.
2.2
Suara 2.2.1 Pengertian Suara Suara atau bunyi adalah getaran yang disalurkan melalui medium penghantarnya, baik padat,cair,atau gas / udara. Suara yang dapat didengar oleh manusia lebih dikenal dengan sebutan audio. Rentang frekuesi rata – rata yang dapat ditoleransi oleh oleh telinga manusia adalah antara 20 Hz sampai dengan 20.000 Hz atau 20kHz, dan umumnya batas atas akan berkurang dengan seiring bertambahnya umur manusia. Makhluk hidup selain manusia memiliki rentang toleransi yang berbeda. Hampir seluruh komponen di dalam bumi yang dapat bergetar akan menghasilkan bunyi (Suharja, 2009, p14).
21
2.2.2 Karakteristik Gelombang Suara Menurut pendapat Suharja (2009, p16), karakteristik dari gelombang suara dapat diketahui dari beberapa hal,antara lain : 1) Frekuensi Frekuensi adalah banyaknya getaran yang dihasilkan sumber suara dalam satu detik 2) Periode Waktu yang dibutuhkan untuk menghasilkan satu getaran 3) Amplitudo Simpangan terbesar yang dihasilkan oleh sumber suara 4) Kelajuan Cepat lambat gelombang suara dan arah Nada atau tinggi rendahnya suara disebabkan oleh beberapa perubahan, anatara lain jarak titik maximal gelombangnya yang merupakan perubahan
frekuensi.
Sedangkan
kekerasan
suara
dipengaruhi
oleh
amplitudonya. Semakin besar amplitudonya,semakin besar suaranya.
2.2.3 Audio Digital Menurut pendapat Suharja (2009, p17), Audio digital merupakan sinyal diskrit dan bukan sinyal kontinyu.Sinyal diskrit diciptakan dari sampling sinyal analog yang kontinyu dengan rate tertentu. Audio digital disimpan pada komputer dengan barisan 0 dan 1 dalam file audio digital. Dengan alat bantu yang tepat, maka tiap bit dalam file dapat diubah. Pengaturan yang tepat dapat menyebabkan perubahan bit pada file tidak dapat dibedakan oleh telinga manusia.
22
2.2.4 Tipe Format File Audio Menurut Suharja (2009, p18) terdapat 3 golongan besar dalam mengelompokkan format file audio : -
Format audio yang tidak dikompres (uncompress), contohnya : WAV,AIFF dan AU
-
Format audio dengan kompresi nirrugi (lossless), contohnya : FLAC, Monkey,s Audio (APE),WavPack (WV), Shorten dan Tom’s Lossless Audio Kompressor (TAK).
-
Format audio dengan kompresi rugi (lossy), contohnya : MP3, Vorbis, Musepack, AAC dan lossy Windows Media Audio.
2.2.5 File Mp3 Menurut Soehono (2006, p6 – p7) MPEG (Moving Picture Expert Group)-1 audio layer III atau yang lebih dikenal dengan MP3, adalah salah satu dari pengkodean dalam digital audio dan juga merupakan format kompresi audio yang memiliki sifat “menghilangkan”. Istilah menghilangkan yang dimaksud adalah kompresi audio ke dalam format mp3 menghilangkan aspek-aspek yang tidak signifikan pada pendengaran manusia untuk mengurangi besarnya file audio. Sejarah mp3 dimulai dari tahun 1991 saat proposal dari Phillips (Belanda), CCET (Perancis), dan Institut für Rundfunktechnik (Jerman) memenankan proyek untuk DAB (Digital Audio Broadcast). Produk mereka Musicam (akan lebih dikenal dengan layer 2) terpilih karena kesederhanaan, ketahanan terhadap kesalahan, dan perhitungan komputasi yang sederhana untuk melakukan pengkodean yang menghasilkan keluaran yang memiliki
23
kualitas tinggi. Pada akhirnya ide dan teknologi yang digunakan dikembangkan menjadi MPEG-1 audio layer 3. Mp3 adalah pengembangan dari teknologi sebelumya sehingga dengan ukuran yang lebih kecil dapat menghasilkan kualitas yang setara dengan kualitas CD. Spesifikasi dari layer-layer sebagai berikut: •
Layer 1: paling baik pada 384 kbit/s
•
Layer 2: paling baik pada 256...384 kbit/s, sangat baik pada 224...256 kbit/, baik pada 192...224 kbit/s
•
Layer 3: paling baik pada 224...320 kbit/s, sangat baik pada 192...224 kbit/s, baik pada 128...192 kbit/s Kompresi yang dilakukan oleh mp3 seperti yang telah disebutkan
diatas, tidak mempertahankan bentuk asli dari sinyal input. Melainkan yang dilakukan
adalah
menghilangkan
suara-suara
yang
kurang/tidak signifikan bagi sistem pendengaran manusia.
keberadaannya Proses yang
dilakukan adalah menggunakan model dari sistem pendengaran manusia dan menentukan bagian yang terdengar bagi sistem pendengaran manusia. Setelah itu sinyal input yang memiliki domain waktu dibagi menjadi blokblok dan ditransformasi menjadi domain frekuensi. Kemudian model dari sistem pendengaran manusia dibandingkan dengan sinyal input dan dilakukan proses pemfilteran yang menghasilkan sinyal dengan range frekuensi yang signifikan bagi sistem pendengaran manusia. Proses diatas adalah proses konvolusi dua sinyal yaitu sinyal input dan sinyal model sistem pendengaran manusia. Langkah terakhir adalah kuantisasi data, dimana data yang terkumpul setelah pemfilteran akan dikumpulkan menjadi satu keluaran dan dilakukan pengkodean dengan hasil akhir file dengan format mp3.
24
Proses pengkompresian mp3 dapat menghasilkan keluaran yang hampir setara dengan aslinya disebabkan oleh kelemahan dari sistem pendengaran manusia yang dapat dieksploitasi. Berikut adalah beberapa kelemahan dari sistem pendengaran manusia yang digunakan dalam pemodelan: •
Terdapat beberapa suara yang tidak dapat didengar oleh manusia (diluar jangkauan frekuensi 30-30.000 Hz).
•
Terdapat beberapa suara yang dapat terdengar lebih baik bagi pendengaran manusia dibandingkan suara lainnya.
•
Bila terdapat dua suara yang dikeluarkan secara simultan, maka pendengaran manusia akan mendengar yang lebih keras sedangkan yang lebih pelan akan tidak terdengar.
Kepopuleran dari mp3 yang sampai saat ini belum tersaingi disebabkan oleh beberapa hal. Pertama mp3 dapat didistribusikan dengan mudah dan hampir tanpa biaya., walaupun sebenarnya hak paten dari mp3 telah dimiliki dan penyebaran mp3 seharusnya dikenai biaya. Walaupun begitu, pemilik hak paten dari mp3 telah memberikan pernyataan bahwa penggunaan mp3 untuk keperluan perorangan tidak dikenai biaya. Keuntungan lainnya adalah kemudahaan akses mp3, dimana banyak sofware yang dapat menghasilkan file mp3 dari CD dan keberadaan file mp3 yang bersifat ubiquitos (kosmopolit). Pada perbandingan kualitas suara antara beberapa format kompresi audio hasil yang dihasilkan bervariasi pada bitrate yang berbeda, perbandingan berdasarkan codec yang digunakan. Pada 128 kbit/s, LAME MP3 unggul sedikit dibandingkan dengan Ogg Vorbis, AAC, MPC and
25
WMA Pro. Kemudian pada 64 kbit/s,AAC-HE dan mp3pro menjadi yang teratas diantara codec lainnya. Dan untuk diatas 128 kbit/s tidak terdengar perbedaan yang signifikan.
Pada umumnya format mp3 sekarang
menggunakan 128 kbit/s dan 192 kbit/s.
2.2.6 Struktur File Mp3 Menurut Raissi, 2002, semua file MP3 dibagi menjadi fragmen kecil yang disebut frames.Setiap frame menyimpan 1.152 sampel suara dan berlangsung selama 26 ms. Ini berarti bahwa frame rate akan menjadi sekitar 38 fps. Sebagai tambahan frame dibagi menjadi dua granule / butiran, masing-masing mengandung 576 sampel . Karena bitrate menentukan ukuran pada setiap sampel,maka apabila meningkatkan bitrate akan meningkatkan ukuran frame. Ukuran juga tergantung pada frekuensi sample dengan rumus berikut
Padding mengacu pada sebuah bit yang khusus dialokasikan di awal frame. Hal ini digunakan dalam beberapa frame untuk memenuhi persyaratan bitrate dengan jelas. Jika bit padding diatur setara dengan 1 byte. Sebagai catatan bahwa ukuran frame harus berupa angka / integer.Struktur file Mp3 terdiri dari 5 bagian, header, CRC, side information, main data dan ancillary data.
Gambar 2.7 Struktur File Mp3 (Raissi, 2002, p10)
26
2.2.6.1 Frame Header Header mempunyai panjang 32 bit dan berisi data yang telah terhubung di dalam frame.Data tersebut terdapat pada setiap awal frame yang memungkinkan MP3 untuk dikunci melalui sinyal pada setiap titik aliran data dan hal inilah yang memungkinkan untuk menyiarkan file MP3.Sebuah alat penerima pada setiap titik hanya perlu mencari data yang telah terhubung, namun masalah yang timbul di sini adalah bahwa data-data yang belum terhubung mungkin muncul di bagian lain dari header.
Gambar 2.8 Struktur header Mp3 (Raissi, 2002, p10) -
Sync Sync terdiri dari 12 bit yang telah diterangkan sebelumnya. Semua 12 bit pada sync harus terisi.
-
Id Id terdiri dari 1 bit dan merupakan file yang terdapat pada versi MPEG, bit yang telah terisi dikodekan dengan format MPEG-1
27
yang standard, namun apabila MPEG-1 tidak digunakan maka MPEG-2 yang dipakai. Beberapa tambahan standard hanya menggunakan 11 bit untuk Sync untuk memberikan tambahan bit untuk id. Pada kasus ini akan diterangkan pada tabel berikut :
Tabel 2.1 Nilai bit ketika menggunakan 2 id bit (Raissi, 2002, p11) -
Layer Layer terdiri dari 2 bit dan untuk lebih jelasnya bisa dilihat pada tabel berikut :
Tabel 2.2 Nilai layer (Raissi, 2002, p11) -
Protection Bit Protection Bit terdiri dari 1 bit, apabila protection bit terpakai, maka CRC yang akan digunakan.
-
Bitrate Terdapat 4 bit yang menjelaskan untuk apa bit tersebut digunakan. Nilai ini akan sama pada setiap frame apabila dikode menggunakan CBR. Tabel berikut akan menjelaskan tentang definisi nilai bit
28
Tabel 2.3 Definisi nilai bitrate (Raissi, 2002, p11) -
Frequency Frequency terdiri dari 2 bit, untuk lebih jelasnya bisa dilihat pada tabel berikut :
Tabel 2.4 Definisi nilai frekuensi yang diterima (Raissi, 2002, p12) -
Padding Bit Padding terdiri dari 1 bit dan aliran data akan dikodekan dengan bitrate 128kbit/s.
-
Private Bit Private bit terdiri dari 1 bit dan berfungsi sebagai pemicu aplikasi yang spesifik.
29
-
Mode Mode terdiri dari 2 bit dan fungsi mode bisa dilihat pada tabel berikut :
Tabel 2.5 Channel Mode (Raissi, 2002, p12) -
Mode Extension Mode extension terdiri dari 2 bit dan berfungsi untuk menggabungkan metode stereo. Untuk lebih jelasnya mengenai mode extension bisa dilihat pada tabel berikut :
Tabel 2.6 Bit pada mode Extension (Raissi, 2002, p12) -
Copyright Bit Copyright terdiri dari 1 bit, apabila bit ini terisi maka illegal untuk mengcopy isi file tersebut.
-
Home (Original Bit) Home (Original Bit) terdiri dari 1 bit dan apabila bit ini terisi maka frame akan menjadikan seperti semula.
30
-
Emphasis Emphasis terdiri dari 2 bit yang berfungsi untuk mengindikasikan bahwa bit tersebut harus dikode ulang untuk menghasilkan suara lebih bagus, namun hal ini jarang digunakan.
2.2.6.2 CRC Bagian dari sebuah frame dengan panjang 2 byte. Bagian ini hanya akan ada jika bit proteksi pada header diset dan memungkinkan untuk memeriksa data-data sensitif. Bit CRC ini oleh sebuah frame digunakan untuk memeriksa data-data sensitif pada header dan Side Information. Jika nilai-nilai pada CRC tersebut mempunyai kesalahan maka frame tersebut oleh MP3 player akan dinyatakan corrupt, dan akan digantikan dengan frame sebelumnya.
2.2.6.3 Side Information Bagian dari sebuah frame dengan panjang 17 byte untuk mode single channel dan 32 byte untuk mode yang lain. Side Information mengandung informasi yang dibutuhkan untuk melakukan dekoding Main Data.
2.2.6.4 Main Data Main Data merupakan bagian dimana file audio Mp3 tersimpan. Main Data terdiri dari Scale Factors, Huffman coded bits dan ancillary data. Untuk lebih jelasnya bisa dilihat pada gambar
31
Gambar 2.9 Struktur main data Mp3 (Raissi, 2002, p17) -
Scale factors Tujuan scalefactors adalah untuk mengurangi tingkat kebisingan. Jika sebuah sampel dalam range tertentu dan dengan cara yang benar dapat benar - benar meredam kebisingan
-
Huffman code bits Dalam Huffman Coding, panjang blok dari keluaran sumber dipetakan dalam blok biner berdasarkan pajang variable. Cara seperti ini disebut sebagai fixed to variable-length coding.
2.2.6.5 Ancillary Data Pelengkap berupa data optional yang jumlahnya tergantung dari data yang diberikan. Ancillary data tidak mempunyai ukuran yang pasti dan erletak setelah Huffman code bits.
32
2.3
Unified Modeling Language 2.3.1 UML UML adalah suatu standard bahasa untuk penulisan software blueprints.
UML
digunakan
untuk
memvisualisasikan,
menentukan,
mengkonstruksi dan mendokumentasikan artefak dari sistem softwareintensif. Dengan kata lain, hanya sebagai arsitek bangunan membuat blueprints yang akan digunakan oleh suatu perusahaan bangunan, arsitek software membuat diagram UML untuk membantu pengembangan software untuk membangun software ( Roger, 2010, p 841). Grady Booch, Jim Rumbaugh dan Ivar Jacobson membangun UML di pertengahan 1990 dengan banyak masukan dari komunitas pengembangan software. UML bergabung dengan sejumlah notasi pemodelan komputer yang digunakan oleh industri software pada saat itu. Pada Tahun 1997, UML 1.0 diserahkan kepada object management group, suatu lembaga relawan yang bertugas memelihara spesifikasi untuk digunakan didalam industi komputer. UML 1.0 telah direvisi menjadi UML 1.1 dan diadobsi akhir tahun itu. Hingga yang terbaru UML 2.0 yang menjadi standard ISO saat ini. Mengacu pada pendapat Pressman, 2010, p154, dalam UML, sebuah system digambarkan dengan 4 Element dari Model analisis yang berbeda yang mendeskripsikan sebuah sistem dari perspektif yang berbeda-beda. a) Scenario-Based Modeling Kerjasama team dalam pembuatan software akan lebih baik bila sanggup merincikan requirement dan membangun analysis dan design model yang tepat. Untuk itu requirement modeling dengan UML berlanjut dengan pembuatan scenario
33
dalam form use cases, activity diagrams dan swimlane diagrams. Yang saat ini menurut Pressman, 2010, p154, termasuk dalam kategori Scenario-Based model.
b) Behavioral Models Suatu model yang menggambarkan tentang struktur kontrol pada system. Yang mencakup hal-hal seperti state diagrams dan sequence diagrams. Selain itu, layer model ini juga biasa disebut Dynamic Modelling. Sesuai dari kata Behavioral, kegiatan yang mencakup model ini adalah model Prilaku (actor).
c) Class Models Merupakan obyek yang akan memainkan system. Suatu Operasi (yang juga di sebut Method dan Services) yang akan diterapkan pada obyek untuk memberikan pengaruh dalam memanipulasikan sistem. Relationship (secara hirarki) antara obyek dan Collaboration yang terjadi antar class yang didefinisikan.
d) Flow Model Memberikan indikasi tentang bagaimana data obyek yang diubah dalam bentuk proses functions. Akan tetapi, teknik ini dianggap Engineer.
ketinggalan
zaman
oleh
beberapa
Software
34
2.3.2 Use-Case Diagram Use
Case
Diagram menjabarkan
kebutuhan
fungsional dan
operasional sistem. Menurut Ambler,2005,p33 sebuah UML Use Case Diagram menunjukkan hubungan antara aktor-aktor dan kasus penggunaan dalam sistem. Simbol – simbol yang digunakan dalam Use Case Diagram ada 3, yaitu Case, Actor, dan Relation. 1) Case adalah hasil penguraian cakupan sistem secara fungsional ke dalam bentuk – bentuk pernyataan yang lebih kecil. Pernyataan ini digambarkan dengan simbol elips.
2) Actor adalah pengguna sistem. Di dalam Use Case Diagram para pengguna sistem atau aktor digambarkan berinteraksi dengan sebuah sistem melalui Use Case dan hubungan tertentu.
3) Relation adalah sebuah hubungan yang digambarkan sebagai sebuah garis yang menghubungkan aktor dengan Use Case yang berada di dalam sebuah sistem. Tipe hubungan dapat berbeda,
tergantung
digambarkan.
dari
bagaimana
garis
tersebut
35
Gambar 2.10 Contoh use case diagram (Ambler, 2005, p37)
Dalam analisa berbasis object-oriented, use-case menjadi elemen pertama dalam model analisis. Diagram use-case terdiri dari actor dan usecases. Aktor adalah entitas yang berinteraksi dengan sistem. Mereka bisa jadi manusia, mesin atau sistem lainnya yang berinteraksi melalui interface yang ada di dalam software.
2.3.3 Class Diagram Menurut Ambler, 2005, p47 Class Diagram menggambarkan class dari sebuah sistem, hubungan antar satu sama lainnya, beserta operasi dan atributnya. Class Diagram digunakan untuk: -
Menelusuri konsep domain dalam bentuk model domain.
-
Menganalisa kebutuhan dalam bentuk conceptual/analysis model.
-
Menggambarkan rancangan yang detil dari sebuah software object-oriented.
36
Gambar 2.11 Contoh Class Diagram
2.3.4 Sequence Diagram Menurut Ambler,2005, pp80 - 81 Sequence Diagram adalah teknik pemodelan yang dinamis . Sebuah Sequence Diagram umumnya digunakan untuk: -
Memvalidasi
atau
menguji
kelengkapan
dari
skenario
penggunaan (usage scenario) sistem beserta logikanya. Sebuah skenario penggunaan adalah gambaran dari penggunaan sebuah sistem. -
Menelusuri rancangan sistem dan membantu dalam memberikan gambaran yang jelas bagaimana operasi-operasi dalam sebuah sistem berjalan langkah demi langkah atau secara sekuensial.
-
Memberikan gambaran yang jelas untuk menentukan class manakah
yang
bersifat
kompleks
dan
membantu
dalam
menentukan apakah class tersebut perlu dibuat state diagram nya atau tidak.
37
-
Mendeteksi bottleneck dari sebuah rancangan object oriented dengan cara melihat pesan-pesan yang dikirimkan ke sebuah object dan dengan melihat langsung seberapa lama sebuah method atau operation melakukan tugasnya.
Gambar 2.12 Contoh Sequence Diagram (Ambler, 2005, p82)
2.4
Interaksi Manusia dan Komputer 2.4.1 Pengertian IMK Menurut Shneiderman (2010,p22) interaksi manusia dan komputer merupakan ilmu yang mempelajari tentang perancangan, implementasi dan evaluasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena yang berhubungan dengannya. IMK menangani perancangan dan evaluasi antarmuka pemakai (user interface). Antarmuka pemakai adalah bagian dari komputer yang bertujuan untuk memungkinkan interaksi antara manusia dengan komputer secara langsung.
38
2.4.2
Lima Faktor Manusia Terukur Menurut Shneiderman, 2010, p32 Demi tercapainya tujuan dari IMK,
maka perancangan interface sebaiknya tidak lupa untuk mengikutsertakan evaluasi terhadap lima (5) faktor terukur dari manusia sebagai berikut : 1) Waktu untuk belajar Ukuran berapa lama seorang user untuk mempelajari fungsi-fungsi di dalam sebuah aplikasi hingga pada akhirnya dapat menggunakan dengan baik.
2) Kecepatan performa Ukuran berapa lama suatu fungsi atau serangkaian tugas di dalam aplikasi tersebut dilakukan.
3) Tingkat error yang dilakukan pengguna Ukuran berapa banyak dan jenis error yang dilakukan oleh user di dalam melakukan serangkaian tugas.
4) Daya ingat pengguna Ukuran
berapa
lama
user
mempertahankan
ingatan
dan
pengetahuannya setelah beberapa jam, hari, atau bahkan mingu.
5) Kepuasan subjektif Ukuran seberapa puas user atas berbagai aspek dari suatu sistem.
39
2.4.3
Delapan Aturan Emas Desain Antarmuka Menurut Shneiderman, 2010, p88-89, dalam IMK terdapat delapan aturan emas (Eight Golden Rules) yang digunakan dalam perancangan antarmuka pemakai yaitu:
1) Konsistensi Konsistensi sangat diperlukan di dalam banyak hal, seperti: urutan aksi, istilah-istilah yang digunakan dalam prompt, menu, layar bantuan, warna, tata letak, huruf capital, dan font.
2) Memenuhi kegunaan universal Kenali kebutuhan pengguna yang beragam dan desain untuk fleksibilitas dan memfasilitasi transformasi konten. Hal-hal seperti perbedaan pengguna pemula dan ahli, rentang usia, disability, dan keragaman jenis pengguna lainnya dapat memperkaya user interface dan meningkatkan kualitas sistem yang dirasakan.
3) Memberikan umpan balik yang informatif Untuk setiap aksi yang dilakukan oleh pengguna, sebaiknya harus ada umpan balik dari sistem. Untuk aksi yang minor namun sering dipakai, umpan balik sebaiknya bersifat sederhana. Sebaliknya, umpan balik yang lengkap diperlukan bagi aksi mayor namun jarang digunakan.
40
4) Desain kotak dialog yang memiliki keadaan akhir Urutan dari aksi-aksi harus diorganisasikan secara teratur apakah termasuk di dalam urutan awal, tengah, atau akhir. Kotak dialog akan mempermudah pengguna untuk mengingat urutan aksi yang telah dilakukannya. Hal ini akan membuat para pengguna dapat merencanakan aksi apa yang akan dilakukan berikutnya
5) Memberikan pencegahan kesalahan dan penanganan yang sederhana Perancangan sistem yang baik sangat penting, sistem yang tidak memungkinkan penggunanya untuk dapat melakukan kesalahan yang serius. Jika sebuah error terjadi, maka sistem harus mendeteksinya, kemudian menawarkan mekanisme penanganan error yang sederhana namun terjamin dapat berhasil.
6) Memungkinkan pengembalian aksi yang mudah Setiap aksi yang dilakukan pengguna sebaiknya dapat dibatalkan dengan mudah, misalnya dengan penggunaan undo. Hal ini dimaksudkan agar pengguna tidak terlalu tegang ketika sedang mengeksplorasi suatu aplikasi.
7) Mendukung pusat kendali internal (internal locus of control) Sistem harus memastikan agar pengguna benar-benar memegang kontrol akan sistem dan sistem tersebut merespon aksi yang dilakukan oleh pengguna.
41
8) Mengurangi beban ingatan jangka pendek Tampilan dan fungsi sistem sebaiknya dibuat sesederhana mungkin agar pengguna dapat mengingatnya dalam jangka waktu yang cukup lama. Selain itu, akses online untuk command-syntax forms, singkatan, kode, dan informasi lainnya juga harus disediakan oleh sistem.
2.6
Model Waterfall 2.6.1
Pengertian Waterfall Menurut Roger,2010,p39, ada beberapa model proses software yang
umum digunakan, salah satunya adalah Model Sekuensial Linear. Sekuensial Linear ini juga dikenal dengan nama “Classic Life Cycle” atau “Waterfall Model”.
Gambar 2.13 Waterfall Model (Roger, 2010, p39) Berikut ini adalah penjelasan dari tahapan-tahapan dari model waterfall : 1) Communication Terdiri dari project initiation dan requirements gathering. Merupakan tahapan pengumpulan kebutuhan yang dilakukan secara intensif dan focus tertama kepada software.
42
2) Planning Terdiri dari estimating, scheduling, dan tracking. Pada tahap ini developer membuat perkiraan waktu yang diperlukan. Pada tahap ini dilakukan pula penjadwalan untuk menyelesaikan tahap-tahap pembuatan software sesuai dengan waktu yang telah diperkirakan.
3) Modeling Tahap modeling ini terdiri dari analisis dan desain. Pada saat merancang
aplikasi,
biasanya
ada
beberapa
proses
yang
memfokuskan pada empat atribut bagian dari program, diantaranya adalah struktur data, arsitektur software, representasi interface, dan detail algoritma. Proses desain mengubah kebutuhan menjadi representasi dari software yang dapat dinilai untuk kualitas sebelum penulisan kode dimulai.
4) Construction Tahap construction terdiri dari coding dan test. Pada tahap ini, desain diterjemahkan menjadi bentuk yang dapat dibaca oleh mesin. Setelah coding selesai, testing terhadap aplikasi dilakukan. Proses pengukian ini menekankan pada logika internal pada aplikasi, meyakinkan semua pernyataan telah diuji, dan pada fungsi eksternal.
43
5) Deployment Tahap terakhir yaitu deployment, terdiri dari delivery, support, dan feedback. Pada tahap ini, pengembang menyiapkan aplikasi yang menyediakan fungsi dan fitur yang bermanfaat. Pengembang aplikasi juga menyediakan dokumentasi untuk semua fitur dan fungsi. Pada tahap ini, pengembang aplikasi mendapatkan umpan balik pada aplikasinya yang berakhir pada perubahan atau update fungsi dan fitur dari aplikasi tersebut
2.6
Object Oriented Programming 2.6.1 Pengertian Object Oriented Programming Menurut Anonymous, 2010, Object Oriented Programming adalah sebuah paradigma pemrograman yang menggunakan class dan object dan interaksinya untuk mendesain aplikasi dan program computer. Keunggulan yang membuat OOP semakin banyak digunakan adalah karena sifatnya yang reusable, dimana programmer tidak perlu membuat program berulang – ulang untuk modul – modul yang mempunyai kegiatan fungsional yang mirip, sehingga penerapan OOP sangat cocok untuk membuat aplikasi atau program yang rumit. Konsep – konsep OOP terdiri dari tiga bagian, antara lain adalah encapsulation, inheritance dan polymorphism. 1) Encapsulation Encapsulation adalah konsep untuk membungkus atribut – atribut dan method- method yang ada untuk menjadi sebuah class.Tujuandari encapsulation adalah untuk memudahkan
44
konsep pemrograman, menyembunyikan informasi yang rahasia, dan untuk memungkinkan pembuatan objek – objek yang mempunyai sifat yang sama
2) Inheritance Inheritance adalah konsep penurunan sifat yang terdapat pada OOP, yang bertujuan untuk memudahkan pemrograman sehingga tidak akan membuat konsep pemrograman menjadi rumit.Tujuan dari inheritance selain untuk memudahkna pemrograman
adalah
untuk
menjaga
hubungan
antar
class.Sehingga baik programmer maupun user dapat dengan mudah mengerti aliran program apabila program telah berkembang menjadi rumit.
3) Polymorphism Polymorphism adalah konsep OOP dimanasebuah objek dapat berubah bentuk sifatnya di tengah jalannya program. Dasar dari konsep polymorphism adalah konsep Inheritance. Pada dasaranya Polymorphism adalah sebuah abstract class yang mempunyai virtual method yang diturunkan menjadi beberapa class yang harus mengimplementasikan virtual method tersebut.
Tujuan
dari
polymorphism
adalah
untuk
memantapkan arsitektur pemrograman, karena dengan adanya polymorphism arah hubungan antar class akan menjadi jelas dan method – method dari class tersebut menjadi jelas.