BAB 2 Kriptografi mempunyai sejarah yang sangat panjang...

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

Transcript of BAB 2 Kriptografi mempunyai sejarah yang sangat panjang...

8

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

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 data-

data pribadi, data-data bisnis, daftar gaji, data nasabah dan

lainnya. Aspek keamanan data menjadi sensitif dalam e-

commerce 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, pra-

cipherteks 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, pra-

cipherteks 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}<yp{p}/sx/�p}âpx;épêp/|t}t|äzp}/qp}êpz/étzp

{x/zt�xâx}vêp}v/|tüp}vzpz/|t}äyä/{päâ=/\tützppsp{pw/p}pz<p}pz/z

t�xâx}v/êp}v/qpüä|t}tâpé/spüx/sp{p|/�péxü=/]p{äüx|ttüzp/|t}vpâpz

p}/qpwåp/{päâ/psp{pwât|�pâ/ztwxsä�p}/|tützp=

Hasil dekripsi terhadap berkas cipher.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.

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 keberadaannya

kurang/tidak signifikan bagi sistem pendengaran manusia. 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 blok-

blok 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 software-

intensif. 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 ketinggalan zaman oleh beberapa Software

Engineer.

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 dari bagaimana garis tersebut

digambarkan.

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 use-

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