BAB 2 LANDASAN TEORI
2.1 2.1.1
Steganografi Sejarah Steganografi Steganografi adalah seni dan sains untuk menulis pesan tersembunyi dengan cara tertentu sehingga tidak seorangpun selain si pengirim dan si penerima akan menyadari ada sebuah pesan tersembunyi. Singkatnya, kriptografi mengacak arti dari sebuah pesan, tetapi kriptografi tidak menutupi kenyataan bahwa ada sebuah pesan dalam media tertentu. Kini, menyembunyikan informasi digital di dalam computer file masuk ke dalam ruang lingkup steganografi. Contohnya, pengirim dapat mulai dengan file gambar dengan tampilan seperti biasa, kemudian mengatur warna setiap pixel ke-100 agar sesuai dengan sebuah huruf dalam alphabet, sebuah cara yang halus sehingga tidak ada seorangpun yang akan menyadari bahwa ada sebuah pesan di dalam gambar tersebut. Kata steganografi berasal dari bahasa Yunani yang berarti tertutup atau tulisan tersembunyi. Steganografi sudah dikenal sejak 440 SM. Herodotus menyebutkan dua contoh steganografi di dalam “Histories of Herodotus”. Demeratus mengirimkan peringatan akan serangan Yunani yang selanjutnya dengan menuliskan pesan tersebut di atas sebuah papan kayu dan melapisinya dengan lilin. Papan lilin sangat umum digunakan sebagai permukaan tulis yang dapat digunakan kembali, terkadang digunakan untuk menulis cepat. Contoh kuno yang lain adalah Histiaeus yang mencukur kepala budak yang paling dipercayainya dan mentatokan sebuah pesan di atasnya. Setelah rambutnya
9
tumbuh pesan itu akan tersembunyi. Tujuannya adalah untuk mendesak sebuah pemberontakan terhadap Persia. Selanjutnya, buku Johannes Trithemius “Steganographia” adalah sebuah buku yang membahas kriptografi dan steganografi yang disembunyikan sebagai grimoire secara mendalam. Secara umum, sebuah pesan steganografi akan dikenal sebagai sesuatu yang lain, sebuah gambar, sebuah artikel, sebuah daftar belanja, atau bentukbentuk pesan yang lain. Bentuk-bentuk pesan ini dikenal dengan nama cover text. Contohnya, sebuah pesan dapat disembunyikan dengan menggunakan tinta yang tidak terlihat diantara garis-garis tulis di dalam sebuah dokumen yang tidak berbahaya. Keuntungan steganografi jika dibandingkan dengan kriptografi adalah bahwa pesan-pesan tidak menarik perhatian terhadap pesan itu sendiri, terhadap pengirim, atau terhadap si penerima. Sebuah pesan kode yang tidak tersembunyi, tidak peduli serumit apapun pesan tersebut diacak, akan menimbulkan kecurigaan dan keterbatasan karena di beberapa negara kriptografi dicap illegal. Seringkali, steganografi dan kriptografi digunakan secara bersama-sama untuk memastikan keamanan dari sebuah pesan. Steganografi
yang
digunakan
di
dalam
komunikasi
elektronik
memasukkan kode program steganografi ke dalam sebuah transport layer seperti file MP3, atau ke dalam sebuah protocol seperti UDP. Sebuah pesan steganografi seringkali dienkripsi oleh beberapa cara tradisional, menghasilkan sebuah cipher text. Selanjutnya, sebuah cover text dimodifikasi dengan cara tertentu untuk memasukkan cipher text, menghasilkan
10
stego text. Contohnya, ukuran huruf, spasi, typeface, atau karakteristik lain dari sebuah cover text dapat dimanipulasi untuk membawa pesan tersembunyi, hanya penerima (yang harus mengetahui teknik yang digunakan) yang dapat mendapatkan pesan yang tersembunyi tersebut dan mendekripsinya. Francis Bacon
dikenal
sebagai
orang
yang
menemukan
teknik
ini
untuk
menyembunyikan sebuah pesan.
2.1.2
Metode-Metode Steganografi Metode-metode umum yang digunakan untuk
menyembunyikan data
dalam sebuah digital images antara lain: 1. Least Significant Bit Insertion (LSB) Metode ini adalah metode yang sangat popular dimana LSB dari setiap byte dalam sebuah citra digunakan untuk menyimpan data rahasia (Gambar 2.1). Perubahan yang dihasilkan terlalu kecil, sehingga sulit dikenali oleh mata manusia. Kekurangan dari teknik ini adalah karena teknik ini menggunakan setiap pixel dalam sebuah citra, format kompresi yang menjaga keutuhan data seperti bmp atau gif harus digunakan sebagai citra. Apabila format kompresi yang tidak menjaga keutuhan data digunakan, beberapa informasi tersembunyi dapat hilang.
11
Gambar 2.1 Least Significant Bit Sumber : http://www.snotmonkey.com/work/school/405/methods.html
2. Masking and Filtering Kedua metode ini menyembunyikan informasi dengan cara mirip dengan penanda kertas. Hal ini dapat dilakukan, contohnya dengan memodifikasi luminance sebagian dari citra, tetapi apabila dilakukan dengan hati-hati distorsi baru dapat terlihat.
12
3. Transformations Discrete Cosine Transformation (DCT) adalah salah satu metode transformasi untuk mentransformasi 8*8 blok pixel dari sebuah citra secara berurutan kedalam masing-masing koefisien 64 DCT. Alat steganografi dapat menggunakan LSB dari koefisien DCT yang terbagibagi utnuk menyembunyikan informasi (metode JSteg). Sebagai tambahan DCT, citra dapat diproses dengan FFT atau dengan Wavelet Transformation. Properti citra yang lain seperti luminance juga dapat dimanipulasi.
4. Spread Spectrum Image Steganography Metode-metode yang didasari oleh teknologi ini menyandikan pesan yang diinginkan agar tersembunyi. Untuk menyandikan, digunakan sebuah pseudorandom noise generator yang lebar untuk membuat sebuah barisan yang tersebar. Kemudian, sebuah skema modulasi digunakan untuk memperluas spektrum yang sempit dari sebuah pesan dengan barisan yang tersebar, dengan demikian menyusun sinyal yang dibawa yang masuk ke dalam interleave dan ruang penyebar. Inner leaver juga dapat mempergunakan kunci untuk mendikte algoritma interleaving. Sinyal ini sekarang digabungkan dengan cover dari citra untuk menghasilkan citra stego, yang sudah dibagi-bagi dengan layak untuk memelihara dynamic range awal dari cover citra. Citra stego tersebut kemudian diteruskan kepada penerima pesan. Untuk lebih jelasnya, lihat gambar berikut:
13
Gambar 2.2 Spread Spectrum Sumber : http://www.snotmonkey.com/work/school/405/methods.html
14
2.1.3
Steganografi Audio Pada steganografi audio yang berbasis komputer, pesan rahasia ditanam pada suara digital. Pesan rahasia tersebut ditanam dengan cara merubah urutan biner dari file suara. Steganografi audio dapat diterapkan pada file suara WAV, AU dan bahkan MP3. Menanam pesan rahasia pada suara digital pada umumnya mempunyai proses yang lebih sulit dibandingkan menanam pesan pada media lainnya, seperti media gambar. Untuk menanam pesan rahasia dengan sukses, beberapa metode untuk menanam informasi di dalam audio digital telah diperkenalkan. Mulai dari metode yang sederhana dengan menyisipkan informasi dalam bentuk gangguan sinyal sampai kepada metode yang lebih sulit dengan menggunakan teknik pengolahan sinyal yang rumit untuk menyembunyikan informasi.
2.2 2.2.1
Suara Digital Audio Digital Audio digital berbeda dari suara analog tradisional dimana ini adalah sinyal diskrit dan bukan sinyal kontinu. Sinyal diskrit diciptakan dari sampling sinyal analog yang kontinu dengan rate tertentu. Sebagai contoh, sampling rate pada CD audio digital pada umumnya adalah 44 kHz (Artinya dalam 1 detik ada sekitar 44000 sampel yang dimainkan). Gambar berikut menggambarkan gelombang
suara
analog
menghasilkan audio digital.
(kontinu)
yang
mengalami
sampling
untuk
15
Gambar 2.3 Audio Digital Sumber : http://www.snotmonkey.com/work/school/405/overview.html
Bagaimanapun, sampling rate biasanya dipilih pada tingkatan dimana hasil sinyal digital secara visual tidak berbeda dari sinyal analognya. Audio digital disimpan pada computer sebagai 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.
2.2.2
Macam-Macam File Audio Digital File digital yang dikenal di computer ada beberapa macam, diantaranya:
A.
PCM (Pulse-Code Modulation) Pulse-Code modulation (PCM) adalah penggambaran sinyal analog yang telah di-sampling pada interval tertentu, kemudian dikuantisasi menjadi sederetan simbol kode digital (biasanya biner). PCM dipakai pada sistem telepon digital dan juga merupakan bentuk baku dari audio digital di komputer dan CD. Bagaimanapun, bentuk PCM tidak digunakan secara langsung untuk aplikasi video seperti DVD atau DVR sebab membutuhkan bit rate yang sangat banyak.
16
Pada gambar 2.4, gelombang sinus (kurva merah) di-sampling dan dikuantisasi menjadi PCM. Untuk setiap sampel, salah satu nilai yang tersedia (titik pada sumbu y) dipilih oleh algoritma tertentu (dalam hal ini, digunakan pembulatan ke bawah). Proses ini menghasilkan penggambaran sinyal input secara diskrit yang dapat dengan mudah diubah menjadi data digital untuk kemudian disimpan atau dimanipulasi. Untuk gelombang sinus tersebut, kita mendapatkan nilai – nilai yang sudah dikuantisasi dari tiap sampel adalah 9, 11, 12, 13, 14, 14, 15, 15, 15, 14, dan lain sebagainya. Nilai-nilai ini kemudian diubah menjadi bilangan biner dan menghasilkan: 1001, 1011, 1100, 1101, 1110, 1110, 1111, 1111, 1111, 1110, dan lain sebagainya. Nilai-nilai digital ini kemudian dapat diproses lebih lanjut atau dianalisa dengan pengolah sinyal digital.
Gambar 2.4 PCM (Pulse-Code Modulation) Sumber : http://en.wikipedia.org/wiki/PCM
17
B.
WAV (Waveform Audio Format) Wav (atau Wave) yang merupakan singkatan dari Waveform audio format adalah format baku file audio yang dipakai oleh Microsoft dan IBM untuk menyimpan audio pada komputer. Ini adalah jenis lain dari metode bitstream RIFF untuk menyimpan data dalam sekumpulan “chunk”, dan juga mirip dengan format IFF dan AIFF yang dipakai oleh komputer Amiga dan Macintosh. Ini adalah format utama yang dipakai sistem operasi Windows untuk data audio mentah. File WAV yang tidak dikompres cukup besar ukurannya, jadi seiring dengan semakin populernya pengiriman file lewat internet, maka format WAV semakin menurun popularitasnya. Bagaimanapun, file WAV masih sering digunakan untuk sistem yang membutuhkan suara dengan kualitas tinggi dan tidak bermasalah dalam ukuran penyimpanan. File yang berukuran lebih kecil dan beresiko terhadap penurunan kualitas audio karena dikompres seperti MP3, ATRAC, AAC, (Ogg)Vorbis dan WMA lebih sering digunakan untuk penyimpanan dan pemindahan audio. Ukurannya yang kecil menyebabkan transmisi melalui internet menjadi lebih cepat serta tempat penyimpanan yang lebih kecil. Bagaimanapun, ukuran file yang lebih kecil tetap harus ditukar dengan kualitas audio. Ada juga format yang lebih efisien, seperti FLAC, Shorten, Monkey’s Audio, ATRAC Advanced Lossless, Apple Lossless, WMA Lossless, TTA dan WavPack, tetapi tidak ada satupun yang telah menjadi format baku untuk penyimpanan audio.
18
Dalam perancangan program ini, file berformat MP3 dipilih karena format MP3 merupakan format yang paling banyak dipakai sekarang ini.
2.3 2.3.1
MP3 (MPEG-1 Layer 3) Sejarah MPEG-1 Layer 3 Di awal abad ke-19, matematikawan Perancis Joseph Fourier menyusun beberapa persamaan matematik untuk menggambarkan cara panas menyebar. Persamaan itu bisa dipergunakan untuk menggambarkan bentuk gelombang yang mana pun sebagai urutan nomor, termasuk gelombang suara. Di tahun 1960an, seorang insinyur Amerika yang bernama R A Moog mempergunakan rumus Fourier untuk mendesain musik elektronik synthesizers. Di
tahun
1980an,
Yamaha,
perusahaan
elektronika
Jepang,
mempergunakan rumusan matematika yang sama untuk merevolusionerkan industri musik dengan memperkenalkan keyboard elektronik. Dan hari ini, persamaan
Fourier
hidup
sebagai
bagian
kerangka
matematik
yang
menggambarkan MP3. Aspek yang benar-benar mempesona dari MP3 adalah bahwa menggabungkan pengetahuan matematika dengan cara manusia berkarya melalui sistem pendengaran. Struktur file MP3 terdiri dari banyak frame dengan ditambah ID3 Tag (Gambar 2.5). ID3 Tag ini tidak selalu ada dalam setiap file MP3 (bersifat optional), karena ID3 Tag ini hanya berisi informasi tentang judul lagu, artis, tahun terbit lagu, dan lain-lain yang tidak diperlukan dalam proses encoding ataupun decoding.
19
Gambar 2.5 Struktur File MP3
Frame merupakan bagian terbesar dari sebuah file MP3. Sebuah file MP3 dapat mempunyai ribuan hingga puluhan ribu frame tergantung dari kualitas dan lamanya lagu. Setiap frame dalam MP3 mempunyai panjang frame yang berbeda-beda. Untuk itu perlu diketahui struktur dari suatu frame (Gambar 2.6) , agar dapat mengetahui posisi frame berikutnya.
Gambar 2.6 Struktur Frame MP3
2.3.2
Struktur Header Frame MP3 Header Frame MP3 memegang peranan penting dalam proses decoding suatu file MP3. Informasi yang dapat kita peroleh dari header frame adalah: 1. Synchronization 2. MPEG ID 3. Layer 4. CRC Protection
20
5. Bitrate 6. Sampling rate 7. Padding 8. Panjang Frame 9. Channel Mode 10. Copyright 11. Original
2.3.3
Encode dan Decode MP3 Proses menghasilkan file MP3 dari data audio mentah disebut proses encoding. Proses ini menerima data audio mentah (biasanya dalam format PCM atau WAV) dalam bentuk bitstream (kumpulan bit) untuk dikompres menjadi file MP3 (Gambar 2.7).
Gambar 2.7 Bagan Proses Encoding MP3
21
Proses menghasilkan audio data mentah (biasanya dalam format PCM atau WAV) dari file MP3 disebut proses decoding. Proses decoding ini merupakan kebalikan proses dari encoding (Gambar 2.8).
Gambar 2.8 Bagan Proses Decoding MP3
2.4
Huffman Code Huffman code adalah suatu algoritma yang digunakan untuk kompresi data. Algoritma ini menggunakan tabel kode yang mewakili tiap simbol, dimana kode tersebut didapat dari probabilitas kemunculan tiap simbol. Algoritma ini dikembangkan oleh David A.Huffman dan dipublikasikan pada tahun 1952 pada sebuah artikel berjudul "A Method for the Construction of Minimum-Redundancy Codes".
22
Huffman code menggunakan metode tertentu untuk menentukan representasi untuk tiap simbol dan menghasilkan sebuah prefix-binary tree dimana tiap simbol diwakili oleh kode yang berbeda-beda (Gambar 2.9).
Gambar 2.9 Huffman Tree Sumber : http://en.wikipedia.org/wiki/Huffman_code
23
2.5
MDCT (Modified Discrete Cosine Transform) Modified discrete cosine transform
(MDCT) berhubungan dengan
Fourier berdasarkan Discrete Cosine Transform tipe ke-4 (DCT-IV), dimana blok yang tersusun berikutnya, setengah dari blok terakhirnya serupa dengan setengah blok pertama blok berikutnya (Gambar 2.10). 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.
Gambar 2.10 Contoh Blok pada MDCT
Pada MP3, MDCT tidak digunakan pada audio signal secara langsung, tetapi lebih ke hasil 32-band polyphase quadrature filter (PQF) bank. Hasil MDCT ini kemudian diolah oleh alias reduction formula untuk mengurangi aliasing tertentu dari PQF filterbank. Kombinasi filterbank dengan MDCT sering
24
disebut dengan hybrid filterbank atau subband MDCT. AAC, pada umumnya menggunakan
MDCT
murni,
hanya
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. Berikut merupakan rumus MDCT:
2.6
IMDCT (Inverse Modified Cosine Transform) IMDCT merupakan kebalikan proses dari MDCT. IMDCT dihitung dengan rumusan:
Walaupun aplikasi yang menggunakan MDCT akan memerlukan
operasi aritmatika, tetapi memungkinkan untuk menghitung hal yang sama dengan kompleksitas hanya
operasi dengan memfaktorkan
perhitungan secara rekursif, seperti pada Fast Fourier Transform (FFT). MDCT juga dapat dihitung melalui transformasi yang lain, seperti DFT (FFT) atau DCT, yang digabungkan dengan
langkah sebelum dan sesudah pemrosesan.
25
Seperti yang sudah digambarkan sebelumnya, algoritma yang mana pun dari DCT-IV biasanya menyediakan metode untuk menghitung MDCT dan IMDCT.
2.7
FFT (Fast Fourier Transform) FFT adalah suatu algoritma yang efisien untuk menghitung DFT (Discrete Fourier Transform) dan invers DFT. FFT dapat diterapkan dalam berbagai aplikasi, mulai dari pemrosesan sinyal digital dan penyelesaian persamaan differensial parsial sampai pengalian bilangan bulat yang sangat besar. Dalam perancangan ini, FFT digunakan untuk merubah data audio dari bentuk time domain menjadi bentuk frequency domain. Jika
adalah bilangan kompleks, maka DFT dirumuskan
sebagai berikut :
Menghitung jumlah ini secara langsung akan melibatkan
operasi
aritmatika. Algoritma FFT dipakai untuk menghitung hasil yang sama dengan hanya melibatkan
operasi aritmatika. Secara umum, algoritma ini
tergantung kepada faktor dari N, tetapi ada beberapa algoritma FFT dengan
26
kompleksitas
untuk semua N, termasuk bila N adalah bilangan
prima.
2.8
SHA (Secure Hash Algorithm) SHA (Secure Hash Algorithm) adalah suatu algoritma untuk perhitungan hashing yang dibuat oleh National Security Agency (NSA) dan diterbitkan sebagai standar pemrosesan informasi bagi pemerintah Amerika. Algoritma hashing menghitung input data (pesan) dengan panjang pesan berapapun dan menghasilkan output dengan panjang yang tetap. Hasil algoritma dikatakan aman jika memenuhi syarat-syarat berikut. 1. Input data tidak dapat diketahui dari hasil output hashing. 2. Tidak ada dua input data yang berbeda menghasilkan output yang sama. Setiap perubahan pada input data pasti akan menghasilkan output yang sama sekali berbeda. Ada 5 jenis algoritma SHA yaitu SHA-1, SHA-224, SHA-256, SHA-384 dan SHA-512. SHA-224, SHA-256, SHA-384 dan SHA-512 sering disebut juga SHA-2. SHA-1 menghasilkan output dengan panjang 160 bits, sedangkan SHA-2 menghasilkan output dengan panjang yang sesuai dengan angka yang terdapat pada nama algoritmanya. SHA-1 secara luas digunakan pada beberapa aplikasi dan protokol keamanan, termasuk TLS, SSL, PGP, SSH, S/MIME dan IPsec. SHA-1 sering
27
disebut sebagai penerus dari MD5 (algoritma hashing yang banyak dipakai sebelumnya).
2.9
Direct Sequence Spread Spectrum (DSSS) Menurut wikipedia, DSSS adalah teknik modulasi yang digunakan untuk menyisipkan data ke dalam carrier berupa sinyal. Data yang akan disisipkan ditaruh sepanjang spectrum sinyal, sehingga sinyal dapat mambawa data lebih banyak serta lebih sulit untuk dideteksi dibandingkan metode steganografi lainnya. Mula-mula DSSS akan membangkitkan angka pseudorandom untuk dipakai menentukan modulasi yang digunakan. Pseudorandom berisi barisan angka 0 dan 1, dimana 0 menyatakan bahwa data tidak akan disisipkan pada interval spectrum tersebut (dalam hal ini spectrum yang dipakai adalah timedomain spectrum) dan 1 menyatakan bahwa data akan disisipkan pada interval spectrum tersebut. Password yang dimasukkan pada awal proses akan dienkripsi dengan metode SHA sehingga menghasilkan password baru dengan panjang 88 karakter sehingga sinyal carrier harus mampu menampung minimal 93 bytes (88 bytes password + 4 bytes panjang data + 1 bytes data). Kemudian 88 karakter tersebut dikalikan dengan faktor pengali bilangan prima sehingga didapatkan 1 angka baru yang unik yang disebut seed. Agar data dapat diambil kembali dari sinyal yang telah disisipkan maka DSSS harus membangkitkan angka pseudorandom yang mempunyai urutan yang
28
sama dengan ketika proses penyisipan data dilakukan. Urutan angka ini dapat diperoleh kembali dengan cara memakai seed yang sama ketika membangkitkan angka pseudorandom tersebut.
2.10 Rekayasa Piranti Lunak Menurut Fritz Bauer (Pressman, 1992, p23), Rekayasa Piranti Lunak adalah penetapan dan pemakaian prinsip-prinsip rekayasa dalam rangka mendapatkan piranti lunak yang ekonomis yaitu terpercaya dan bekerja efisien pada mesin (komputer). Menurut Pressman (1992, p24), rekayasa piranti lunak mencakup 3 elemen yang mampu mengontrol proses pengembangan piranti lunak, yaitu: 1. Metode-metode (methods) menyediakan cara-cara teknis untuk membangun piranti lunak 2. Alat-alat bantu (tools) mengadakan dukungan otomatis atau semi otomatis untuk metodemetode seperti CASE (Computer Aided Software Engineering) yang mengkombinasikan software, hardware, dan software engineering database. 3. Prosedur-prosedur (procedures) merupakan pengembangan metode dan alat bantu.
Dalam perancangan software dikenal istilah software development life cycle yaitu serangkaian kegiatan yang dilakukan selama masa perancangan
29
software. Berikut adalah visualisasi dari kegiatan pada software development life cycle model waterfall (Dix, 1997, p180): 1. Spesifikasi kebutuhan (Requirement specification) Pada tahap ini, pihak pengembang dan konsumen mengidentifikasi apa saja fungsi-fungsi yang diharapkan dari sistem dan bagaimana sistem memberikan layanan yang diminta. Pengembang berusaha mengumpulkan berbagai informasi dari konsumen.
2. Perancangan arsitektur (Architectural design) Pada tahap ini, terjadi pemisahan komponen-komponen sistem sesuai dengan fungsinya masing-masing. 3. Detailed design Setelah memasuki tahap ini, pengembang memperbaiki deskripsi dari komponen-komponen dari sistem yang telah dipisah-pisah pada tahap sebelumnya. 4. Coding and unit testing Pada tahap ini, desain diterjemahkan ke dalam bahasa pemrograman untuk dieksekusi. Setelah itu komponen-komponen dites apakah sesuai dengan fungsinya masing-masing. 5. Integration and testing Setelah tiap-tiap komponen dites dan telah sesuai dengan fungsinya, komponen-komponen tersebut disatukan lagi. Lalu sistem dites untuk
30
memastikan sistem telah sesuai dengan kriteria yang diminta konsumen. 6. Pemeliharaan Setelah
sistem
diimplementasikan,
maka
perlu
dilakukannya
perawatan terhadap sistem itu sendiri. Perawatan yang dimaksud adalah
perbaikan
error
yang
ditemkan
setelah
sistem
diimplementasikan.
Gambar 2.11 Software Development Life Cycle Model Waterfall
Penjelasan yang telah dijabarkan di atas adalah teori-teori dasar yang akan digunakan dalam penyusunan skripsi ini, sekaligus menjadi acuan dalam menganalisis, membahas, mengevaluasi, serta mengambil simpulan pada babbab berikutnya.
31
2.11 Unified Modelling Language (UML) Menurut Schmuller (1999, p6), Unified Modeling Language (UML) merupakan suatu alat bantu dari pembuat sistem yang memudahkan untuk menciptakan gambaran dari suatu sistem yang dibuat berdasarkan visi dari pembuat sistem dengan sistematika standar, sehingga mudah dimengerti dan mudah dikomunikasikan. 2.11.1 Diagram Use Case Use Case menunjukkan hubungan interaksi antara aktor dengan use cases di dalam suatu sistem (Mathiassen, 2000, p343) yang bertujuan untuk menentukan bagaimana aktor berinteraksi dengan sebuah sistem. Aktor adalah orang atau sistem lain yang berhubungan dengan sistem. Ada tiga simbol yang mewakili komponen sistem seperti terlihat pada gambar dibawah ini
Gambar 2.12 Notasi Use Case Diagram
32
Menurut Schneider dan Winters, ada lima hal yang harus diperhatikan dalam pembuatan diagram use case (Schneider dan Winters, 1997, p26): 1. Aktor adalah segala sesuatu yang berhubungan dengan sistem dan melaksanakan use case yang terkait. 2. Precondition adalah kondisi awal yang harus dimiliki aktor untuk masuk ke dalam sistem untuk terlibat dalam suatu use case. 3. Postcondition adalah kondisi akhir atau hasil apa yang akan diterima oleh aktor setelah menjalankan suatu use case. 4. Flow of Events adalah kegiatan-kegiatan yang dilakukan pada sebuah proses use case. 5. Alternative Paths adalah kegiatan yang memberikan serangkaian kejadian berbeda yang digunakan dalam Flow of Events.
2.11.2 Diagram Statechart Diagram Statechart menggambarkan state (keadaan) yang dialami semua objek dalam suatu class yang spesifik serta transisi (event) yang memicu terjadinya suatu state (Mathiassen et. al., 2000, p341). Seperti terlihat pada gambar dibawah ini:
33
Gambar 2.13 Notasi Statechart Diagram
2.11.3 Diagram Activity Menurut Whitten et. al. (2004, p442) diagram activity digunakan untuk menggambarkan urutan aliran kegiatan-kegiatan dari sebuah proses bisnis atau sebuah use case. Diagram ini juga dapat digunakan untuk memodelkan aksi dan hasil ketika operasi berlangsung. Seperti terlihat pada gambar dibawah ini:
Gambar 2.14 Notasi Activity Diagram
2.11.4 Diagram Sequence Menggambarkan bagaimana objek berinteraksi satu sama lain melalui pesan
pada
pelaksanaan
use
case
atau
operasi.
Diagram
sequence
mengilustrasikan bagaimana pesan dikirim dan diterima antar objek secara
34
berurutan (Whitten et. al., 2004, p441). Beberapa notasi diagram sequence terlihat pada gambar dibawah ini:
Gambar 2.15 Notasi Sequence Diagram
2.11.5 Diagram Class Menggambarkan kumpulan dari class-class yang ada serta hubungan diantara class tersebut. Class mempunyai attributes dan operations yang berbeda-beda (Mathiassen, 2000, p336). Seperti terlihat pada gambar dibawah ini:
Gambar 2.16 Notasi Class Diagram
35
2.11.6 Keuntungan UML Beberapa keuntungan dalam menggunakan UML antara lain: 1. Sebagai bahasa permodelan yang general-purpose, difokuskan pada pokok himpunan konsep yang dapat dipakai bersama, dan menggunakan pengetahuan bersama dengan mekanisme perluasan. 2. Sebagai bahasa permodelan yang mudah diaplikasikan, dapat diaplikasikan untuk berbagai tipe sistem (software dan non-software), domain (bisnis melawan software), dan metode atau proses. 3. Sebagai bahasa permodelan standar industri, bukan merupakan bahasa yang tertutup atau satu-satunya, tapi bersifat terbuka dan sepenuhnya dapat diperluas.
2.12 Microsoft .NET Framework Microsoft .NET Framework adalah sebuah komponen software yang menjadi bagian dari sistem operasi Microsoft Windows. Microsoft .NET Framework memiliki library yang besar yang berisi barisan kode solusi program yang biasa dibutuhkan yang sudah ditulis sebelumnya dan dapat mengatur eksekusi program-program yang ditulis secara spesifik untuk framework ini. Microsoft .NET Framework menjadi kunci tawaran Microsoft, dan dimaksudkan untuk digunakan oleh sebagian besar aplikasi baru yang diciptakan untuk platform Windows.
36
Barisan kode solusi yang sudah ditulis yang membentuk base class library dari framework ini menyangkut bagian besar kebutuhan programming termasuk tampilan antar muka, akses data, koneksi basis data, kriptografi, pengembangan aplikasi web, algoritma numerik, dan komunikasi jaringan. Class library digunakan oleh programmer dengan cara mengkombinasikannya dengan kode yang mereka buat untuk membuat suatu aplikasi. Program yang ditulis untuk Microsoft .NET Framework dieksekusi di dalam sebuah lingkungan software yang mengatur kebutuhan runtime dari program tersebut. Lingkungan runtime yang juga adalah bagian dari .NET Framework ini dikenal dengan nama Common Language Runtime (CLR). CLR menyediakan tampilan dari sebuah aplikasi mesin virtual, sehingga programmer tidak perlu memperhitungkan kemampuan dari CPU yang akan mengeksekusi program tersebut. CLR juga akan menyediakan layanan lain yang penting, seperti mekanisme pengamanan, manajemen memori, dan penanganan kesalahan. Class library dan CLR bersama-sama membentuk .NET Framework.
2.13 MSE (Mean Squared Error) MSE adalah salah satu cara untuk menghitung nilai kedekatan antara estimator dengan nilai yang diestimasi. Jika
adalah jumlah sampel,
dan
masing-masing adalah estimator dan nilai yang ingin diestimasi untuk tiap sampel, maka MSE dapat dirumuskan sebagai berikut.
37
2.14 PSNR (Peek Signal-to-Noise Ratio) PSNR adalah salah satu cara untuk menghitung nilai kedekatan antar sinyal suara dengan menghitung noise yang ada. PSNR dapat dirumuskan sebagai berikut.
Jika sinyal suara yang ingin dihitung mempunyai
maka
bits per sample,
dirumuskan sebagai berikut.
Semakin besar nilai PSNR, maka perbedaan antar sinyal suara yang dibandingkan semakin kecil.