5
BAB II TINJAUAN PUSTAKA 2.1 Pengertian Steganografi Steganografi adalah suatu teknik untuk menyembunyikan informasi yang bersifat pribadi dengan sesuatu yang hasilnya akan tampak seperti informasi normal lainnya. Steganografi biasanya sering disalahkaprahkan dengan kriptografi karenanya keduanya sama-sama bertujuan untuk melindungi informasi yang berharga. Perbedaan yang mendasar antara keduanya yaitu steganografi berhubungan dengan informasi tersembunyi sehingga tampak seperti tidak ada informasi tersembunyi sama sekali. Jika seseorang mengamati objek yang menyimpan informasi tersembunyi tersebut, ia tidak akan menyangka bahwa terdapat pesan rahasia dalam objek tersebut, dan karenanya ia tidak akan berusaha memecahkan informasi (dekripsi) dari objek tersebut. Kata steganografi berasal dari bahasa Yunani, yaitu dari kata Steganós (tersembunyi) dan Graptos (tulisan). Steganografi di dunia modern biasanya mengacu pada informasi atau suatu arsip yang telah disembunyikan ke dalam suatu arsip citra digital, audio, atau video. Satu hal esensial yang menjadi kelebihan steganografi adalah kemampuannya untuk menipu persepsi manusia, manusia tidak memiliki insting untuk mencurigai adanya arsip-arsip yang memiliki informasi yang tersembunyi di dalamnya, terutama bila arsip tersebut tampak seperti arsip normal lainnya. Namun begitu terbentuk pula suatu teknik yang dikenal dengan steganalysis, yaitu suatu teknik yang digunakan untuk mendeteksi penggunaan steganografi pada suatu arsip. Seorang steganalyst tidak berusaha untuk melakukan dekripsi terhadap informasi yang tersembunyi dalam suatu arsip, yang dilakukan adalah berusaha untuk menemukannya. Terdapat beberapa cara yang dapat digunakan untuk mendeteksi steganografi
seperti
melakukan
pengamatan
terhadap
suatu
arsip
dan
membandingkannya dengan salinan arsip yang dianggap belum direkayasa, atau
5
6
berusaha mendengarkan dan membandingkan perbedaannya dengan arsip lain bila arsip tersebut adalah dalam bentuk audio. [Armyta, Dini, 2007]
2.1.1 Kegunaan Steganografi Seperti perangkat keamanan lainnya, steganografi dapat digunakan untuk berbagai macam alasan, beberapa diantaranya untuk alasan yang baik, namun dapat juga untuk alasan yang tidak baik. Untuk tujuan legitimasi dapat digunakan pengamanan seperti citra dengan watermarking dengan alasan untuk perlindungan copyright. Digital watermark (yang juga dikenal dengan fingerprinting, yang dikhususkan untuk hal-hal menyangkut copyright) sangat mirip dengan steganografi karena menggunakan metode penyembunyian dalam arsip, yang muncul sebagai bagian asli dari arsip tersebut dan tidak mudah dideteksi oleh kebanyakan orang. Steganografi juga dapat digunakan sebagai cara untuk membuat pengganti suatu nilai hash satu arah (yaitu pengguna mengambil suatu masukan panjang variabel dan membuat sebuah keluaran panjang statis dengan tipe string untuk melakukan verifikasi bahwa tidak ada perubahan yang dibuat pada variabel masukan yang asli). Selain itu juga, steganografi dapat digunakan sebagai tag-notes untuk citra online. Terakhir, steganografi juga dapat digunakan untuk melakukan perawatan atas kerahasiaan informasi yang berharga, untuk menjaga data tersebut dari kemungkinan sabotasi, pencuri, atau dari pihak yang tidak berwenang. Sayangnya, steganografi juga dapat digunakan untuk alasan yang ilegal. Sebagai
contoh,
jika
seseorang
telah
mencuri
data,
mereka
dapat
menyembunyikan arsip curian tersebut ke dalam arsip lain dan mengirimkannya keluar tanpa menimbulkan kecurigaan siapapun karena tampak seperti email atau arsip normal. Selain itu, seseorang dengan hobi menyimpan pornografi, atau lebih parah lagi, menyimpannya dalam hard disk, mereka dapat menyembunyikan hobi buruk mereka tersebut melalui steganografi. Begitu pula dengan masalah terorisme, steganografi dapat digunakan oleh para teroris untuk menyamarkan komunikasi mereka dari pihak luar. [Armyta, Dini, 2007] 6
7
2.1.2 Metode LSB (Least Significant Bit) Salah satu metode steganografi yang banyak digunakan adalah metode modifikasi LSB (Least significant pixel modification). Metode modifikasi LSB tergolong metode yang menggunakan teknik substitusi. Metode LSB terutama digunakan untuk steganografi berbasis media (media-based steganography). Metode LSB menyembunyikan data rahasia dalam pixel – pixel tak signifikan (least significant pixel) dari berkas wadah (cover). Pengubahan nilai pixel – pixel tak signifikan pada dasarnya memberikan pengaruh terhadap berkas wadah, tetapi karena perubahan yang terjadi sangat kecil, sehingga tidak tertangkap oleh indra manusia. Kenyataan inilah yang akhirnya dimanfaatkan sebagai teknik penyembunyian data atau pesan (steganografi). Sebagai ilustrasi cara penyimpanan data dengan metode LSB, misalnya pixel-pixel wadah berikut 01001101 00101110 10101110 10001010 10101111 10100010 00101011 10101011 Digunakan untuk menyimpan karakter ‘H’ (01001000), maka pixel – pixel wadah tersebut akan dirubah menjadi 01001100 00101111 10101110 10001010 10101111 10100010 00101010 10101010 Perubahan yang tidak signifikan ini tidak akan tertangkap oleh indra manusia (jika media wadah adalah gambar, suara atau video). Dalam contoh diatas penggantian pixel tak signifikan dilakukan secara terurut. Penggantian pixel tak signifikan juga dapat dilakukan secara tak terurut, bahkan hal ini dapat meningkatkan tingkat keamanan data (imperceptability). Disamping itu juga mungkin melakukan pengubahan pixel tidak pada bagian awal berkas wadah. Pengubahan pixel juga dapat dipilih mulai dari tengah, atau dari titik lain dari berkas wadah yang dimungkinkan untuk menyimpan seluruh informasi rahasia, tanpa menimbulkan permasalahan saat pengungkapan data. Meskipun metode LSB mudah diterapkan, akan tetapi steganografi dengan metode ini akan menghasilkan berkas stego yang mudah rusak (dirusak). Dengan menggunakan metode LSB sebagai teknik steganografi, perubahan sedikit pada berkas stego sangat mungkin juga akan merusak informasi rahasia yang tersimpan 7
8
di dalamnya. Disamping kemungkinan kerusakan informasi yang tersimpan dalam berkas stego akibat perubahan pada berkas stego, steganografi dengan metode LSB juga hanya mampu menyimpan informasi dengan ukuran yang sangat terbatas. Misalnya suatu citra 24-bit ( R=8-bit, G=8-bit, B=8-bit ) digunakan sebagai wadah untuk menyimpan data berukuran 100 bit, jika masing – masing komponen warnanya (RGB) digunakan satu pixel untuk menyimpan informasi rahasia tersebut, maka setiap pixelnya disimpan 3 bit informasi, sehingga setidaknya dibutuhkan citra wadah berukuran 34 pixel atau setara 34 x 3 x 8 = 816 bit (8 kali lipat ). Jadi suatu citra 24-bit jika digunakan untuk menyimpan informasi rahasia hanya mampu menampung informasi maksimum berukuran 1/8 dari ukuran citra penampung tersebut. [Hakim, Muhammad. 2008]
2.2 Pengertian Kriptografi Kriptografi merupakan ilmu sekaligus seni untuk menjaga kerahasiaan pesan dengan cara menyamarkannya menjadi bentuk tersandi yang tidak mempunyai makna. Pesan yang disamarkan (teks jelas yang dapat dimengerti) dinamakan plaintext, sedangkan pesan hasil penyamaran (teks tersandi) dinamakan chipertext. Proses kriptografi terdiri atas enkripsi dan dekripsi. Enkripsi merupakan proses penyamaran dari plaintext ke chipertext sedangkan dekripsi merupakan proses pembalikan dari chipertext ke plaintext.
Gambar 2.1. Diagram proses kriptografi Kriptografi yang pertama kali dibuat menggunakan algoritma simetris yang disebut juga algoritma kunci rahasia atau sandi kunci rahasia. Algoritma ini mempunyai kunci enkripsi yang sama dengan kunci dekripsi.
8
9
Gambar 2.2. Diagram algoritma simetris Keamanan dari algoritma ini tergantung dari penerima dan pengirim yang menyimpan rahasia tersebut. Namun algoritma ini tidak efisien bila digunakan untuk berkomunikasi dengan banyak orang. Oleh karena itu dibuat algoritma yang mana kunci enkripsinya tidak dirahasiakan sehingga dapat dilihat oleh siapa saja (kunci hanya orang-orang tertentu saja yang boleh mengetahuinya (kunci rahasia). Algoritma ini dinamakan algoritma asimetris karena kunci enkripsinya yang berbeda dengan kunci dekripsinya.
Gambar 2.3 Diagram algoritma asimetris Kunci ini tidak dirahasiakan sehingga dapat dilihat oleh siapa saja. Sedangkan kunci rahasia adalah kunci yang dirahasiakan dan hanya orang-orang tertentu saja yang boleh mengetahuinya. Keuntungan utama dari algoritma ini adalah memberikan jaminan keamanan kepada siapa saja yang melakukan pertukaran informasi meskipun di antara mereka tidak ada kesepakatan mengenai keamanan pesan terlebih dahulu maupun saling tidak mengenal satu sama lainnya. Salah satu algoritma asimetris adalah Algoritma ElGamal. Algoritma ini dikembangkan pertama kali oleh Taher ElGamal. Algoritma ini diaplikasikan pada PGP dan GnuPG yang dapat digunakan untuk pengamanan email dan tanda tangan digital. Algoritma ini juga diadopsi dalam pembentukan algoritma. [Ifanto, Mukhammad. 2010.]
2.3 Algoritma ElGamal Algoritma ElGamal merupakan algoritma kriptografi asimetris. Pertama kali dipublikasikan oleh Taher ElGamal pada tahun 1985. Algoritma ini 9
10
didasarkan atas masalah logaritma diskret pada grup Zp*. Algoritma ElGamal terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Algoritma ini merupakan cipher blok, yaitu melakukan proses enkripsi pada blok-blok plaintext dan menghasilkan blok-blok ciphertext yang kemudian dilakukan proses dekripsi, dan hasilnya digabungkan kembali menjadi pesan yang utuh dan dapat dimengerti. Untuk membentuk sistem kriptografi ElGamal, dibutuhkan bilangan prima p dan elemen primitif grup Zp*. [Ifanto, Mukhammad. 2010.]
2.3.1 Pembentukan Kunci Proses pertama adalah pembentukan kunci yang terdiri dari kunci rahasia dan kunci publik. Pada proses ini dibutuhkan sebuah bilangan prima p yang digunakan untuk membentuk grup Zp*, elemen primitif α dan sebarang a є {0,1,…, p – 2} . Kunci publik algoritma ElGamal berupa pasangan 3 bilangan, yaitu (p, α, β) dengan 𝛽 = 𝛼a 𝑚𝑜𝑑 𝑝
(1)
Sedangkan kunci rahasianya adalah bilangan a tersebut. Diketahui order dari Zp* adalah p 1. Jika digunakan bilangan prima p dengan p 2.q 1 dan q adalah bilangan prima, maka dapat digunakan untuk mengecek apakah suatu Zp* merupakan elemen primitif atau tidak. Karena p 1 2.q , jelas 2 dan q merupakan pembagi prima dari p 1, sehingga harus dicek apakah mod p 1 dan q mod p 1. Jika keduanya dipenuhi, maka
adalah elemen primitif. Agar mempermudah dalam menentukan elemen primitif, digunakan bilangan prima p sedemikian hingga p 2.q 1, dengan q adalah bilangan prima. Bilangan prima p seperti ini disebut dengan bilangan “prima aman”. Untuk menentukan apakah suatu bilangan itu prima atau komposit, dapat digunakan tes keprimaan sebagai berikut : Algoritma Tes Bilangan Prima Aman Input : Bilangan prima p 5 . Output : Pernyataan “prima aman” atau “bukan prima aman”. 10
11
Langkah : p 1 2
1.
Hitung q
2.
Jika q adalah bilangan prima, maka output(”prima aman”).
3.
Jika q komposit, maka output (”bukan prima aman”). Berikut ini diberikan sebuah algoritma yang dapat digunakan untuk
mengetes elemen primitif. Algoritma Tes Elemen Primitif Input : Bilangan prima aman p 5 dan Zp*. Output : Pernyataan “adalah elemen primitif” atau “bukan elemen primitif”. Langkah : p 1 2
1.
Hitung q
2.
Hitung mod p dan q mod p .
3.
Jika 2 mod p 1, maka output (“bukan elemen primitif”).
4.
Jika q mod p 1, maka output (“bukan elemen primitif”).
5.
Output (“adalah elemen primitif”). Karena pada algoritma ElGamal menggunakan bilangan bulat dalam
proses perhitungannya, maka pesan harus dikonversi ke dalam suatu bilangan bulat. Untuk mengubah pesan menjadi bilangan bulat, digunakan kode ASCII (American Standard for Information Interchange). Kode ASCII merupakan representasi numerik dari karakter – karakter yang digunakan pada komputer, serta mempunyai nilai minimal 0 dan maksimal 255. Oleh karena itu, berdasarkan sistem kriptografi ElGamal di atas maka harus digunakan bilangan prima yang lebih besar dari 255. Kode ASCII berkorespondensi 1 – 1 dengan karakter pesan. Berikut ini diberikan suatu algoritma yang dapat digunakan untuk melakukan pembentukan kunci. Algoritma Pembentukan Kunci Input : Bilangan prima aman p > 255 dan elemen primitif α є Zp*. Output : Kunci publik (p, α, β) dan kunci rahasia a. 11
12
Langkah : 1.
Pilih a є {0,1,…, p – 2}.
2.
Hitung 𝛽 = 𝛼a 𝑚𝑜𝑑 𝑝.
3.
Publikasikan nilai p, α, dan β , serta rahasiakan nilai a. Pihak yang membuat kunci publik dan kunci rahasia adalah penerima,
sedangkan pihak pengirim hanya mengetahui kunci publik yang diberikan oleh penerima, dan kunci publik tersebut digunakan untuk mengenkripsi pesan. Jadi, keuntungan menggunakan algoritma kriptografi kunci publik adalah tidak ada permasalahan pada distribusi kunci apabila jumlah pengirim sangat banyak serta tidak ada kepastian keamanan jalur yang digunakan. [Ifanto, Mukhammad. 2010.]
2.3.2 Proses Enkripsi Pada proses ini pesan dienkripsi menggunakan kunci publik (p, α, β) dan sebarang bilangan acak rahasia k є {0, 1, ..., p - 2}. Misalkan m adalah pesan yang akan dikirim. Selanjutnya, m diubah ke dalam blok-blok karakter dan setiap karakter dikonversikan ke dalam kode ASCII, sehingga diperoleh plaintext m1, m2, ..., mn dengan mi є {1, 2,..., p-1}, i =1, 2,..., n . Untuk nilai ASCII bilangan 0 digunakan untuk menandai akhir dari suatu teks. Proses enkripsi pada algoritma ElGamal dilakukan dengan menghitung 𝛾=𝛼k 𝑚𝑜𝑑 𝑝
(2)
𝛿=𝛽k.𝑚 𝑚𝑜𝑑 𝑝
(3)
dan dengan rahasia k є {0, 1, ..., p-2} acak. Diperoleh cipherteks (𝛾,𝛿). Bilangan acak k ditentukan oleh pihak pengirim dan harus dirahasiakan, jadi hanya pengirim saja yang mengetahuinya, tetapi nilai k hanya digunakan saat melakukan enkripsi saja dan tidak perlu disimpan.
Berikut adalah algoritma
enkripsi. Algoritma Enkripsi Input : Pesan yang akan dienkripsi dan kunci publik (p, α, β). Output : Chipertext (𝛾𝑖,𝛿𝑖), i = 1, 2, …, n. Langkah : 12
13
1.
Pesan dipotong – potong ke dalam bentuk blok-blok pesan dengan setiap blok adalah satu karakter pesan.
2.
Konversikan masing-masing karakter ke dalam kode ASCII, maka diperoleh plaintext sebanyak n bilangan, yaitu m1, m2, ..., mn.
3.
Untuk i dari 1 sampai n kerjakan : a. Pilih sebarang bilangan acak rahasia ki є {0, 1, ..., p-2}. b. Hitung 𝛾=𝛼𝑘𝑚𝑜𝑑 𝑝. c. Hitung 𝛿=𝛽𝑘.𝑚 𝑚𝑜𝑑 𝑝.
4.
Diperoleh cipherteks yaitu (𝛾, 𝛿), i = 1, 2, 3, .., n. Salah satu kelebihan algoritma ElGamal adalah bahwa suatu plaintext yang sama akan dienkripsi menjadi cipherteks yang berbeda-beda. Hal ini dikarenakan pemilihan bilangan k yang acak. Akan tetapi, walaupun cipherteks yang diperoleh berbeda-beda, tetapi pada proses dekripsi akan diperoleh plaintext yang sama. [Ifanto, Mukhammad. 2010.]
2.3.3 Proses Dekripsi Setelah menerima cipherteks (𝛾,𝛿), proses selanjutnya adalah mendekripsi cipherteks menggunakan kunci publik p dan kunci rahasia a. Dapat ditunjukkan bahwa plaintext m dapat diperoleh dari cipherteks menggunakan kunci rahasia a. Diberikan (p, α, β) sebagai kunci publik dan a sebagai kunci rahasia pada algoritma ElGamal. Jika diberikan cipherteks (𝛾,𝛿), maka 𝑚 = 𝛿. (𝛾𝑎)−1 𝑚𝑜𝑑 𝑝
(4)
dengan m adalah plaintext. Karena ZP* mempunyai order p - 1 dan a є {0,1,..., p - 2}, maka (𝛾𝑎)−1 = 𝛾−𝑎 = 𝛾𝑝−1−𝑎 𝑚𝑜𝑑 𝑝. Algoritma Dekripsi Input : Chipertext (𝛾𝑖,𝛿𝑖), i = 1, 2, …, n, kunci publik p dan kunci rahasia a. Output : Pesan asli. Langkah : 1. Untuk i dari 1 sampai n kerjakan : 13
14
a. Hitung 𝛾𝑝−1−𝑎 𝑚𝑜𝑑 𝑝 b. Hitung 𝑚𝑖 = 𝛿. (𝛾𝑎)−1𝑚𝑜𝑑 𝑝. 2. Diperoleh plaintext m1, m2, ..., mn. 3. Konversikan masing-masing bilangan m1, m2, ..., mn ke dalam karakter sesuai dengan kode ASCII-nya, kemudian hasilnya digabungkan kembali. [Ifanto, Mukhammad. 2010.]
2.4 MP3 MP3 merupakan format yang menarik karena bisa mempertahankan kualitas suara sementara memiliki ukuran yang tidak terlalu besar. Teknologi ini dikembangkan oleh seorang insinyur Institut Fraunhofer di Jerman, Karlheinz Brandenburg. MP3 terdiri dari banyak sekali frame, dimana setiap frame mengandung sebagian detik dari data audio yang berguna, yang siap dikonstruksi ulang oleh decoder. Yang dimasukkan ke setiap bagian awal dari frame data adalah “header frame”, yang mengandung 32 bit meta-data yang berhubungan dengan frame data yang masuk. [Willy Setiawan, 2009].
Gambar 2.4 Data yang mendeskripsikan bentuk struktural dari frame Mp3
Walau MP3 terlihat begitu hebat, ternyata format ini juga memiliki keterbatasannya tersendiri : 1. Bit rate terbatas, maksimum 320 kbit/s (beberapa encoder dapat menghasilkan bit rate yang lebih tinggi, tetapi sangat sedikit dukungan untuk MP3 - MP3 tersebut yang memiliki bit rate tinggi). 2. Resolusi waktu yang digunakan MP3 dapat menjadi terlalu rendah untuk sinyal-sinyal suara yang sangat transient, sehingga dapat menyebabkan noise.
14
15
3. Resolusi frekuensi terbatasi oleh ukuran window yang panjang kecil, mengurangi efisiensi coding. 4. Tidak ada scale factor band untuk frekuensi di atas 15,5 atau 15,8 kHz.
2.5 3Gp (Third Generation Project) Format video 3Gp merupakan format video untuk mobile phone dengan kompresi yang tinggi sehingga memiliki ukuran yang kecil namun dengan kualitas gambar standar. File 3Gp adalah adalah bentuk ringkas dari format MPEG-4 Part 14 (MP4), yang dibuat untuk memperkecil besar dari ukuran file dan bandwidth sebuah telpon genggam. Format video 3Gp sekarang banyak sekali digunakan, karena file video dengan format ini (3Gp) memiliki ukuran yang kecildan mudah untuk disimpan. Secara umum, file 3Gp berisi File Type Box (ftyp3Gp4), Box Movie (Moov), dan Data Media Kotak (mdat). File Type Box mengidentifikasi jenis dan sifat yang 3Gp file itu sendiri. Tabel 2.1. Hexdump Untuk File 3Gp
Terlihat pada tabel 4.1 menunjukkan frame header untuk file dengan format 3Gp yaitu “ftyp3Gp4”. Frame tersebut yang menunjukan atau sebagai penanda bahwa file tersebut merupakan file dengan format 3Gp. Frame header tersebut bernilai 64 bit (8 byte), setelah frame header tersebut merupakan data yang membentuk video 3Gp tersebut. Data file video 3Gp merupakan data yang sangat sensitif, 1 byte data bertambah atau berkurang dapat menyebabkan kerusakan total dari video 3Gp tersebut. [Marco Furini, 2007]
15
16
2.5.1 Kelebihan 3Gp File format 3Gp ini banyak kelebihannya. Beberapa kelebihan itu antara lain : 1 Kualitas gambar yang baik dengan ukuran file yang termasuk ringan. Hal ini tidak terlepas dari sejarah perkembangan file ini yaitu untuk mendukung masih kecilnya media penyimpanan pada ponsel GSM di kala itu (sekitar tahun 1998). 2 Banyaknya pengguna ponsel yang mendukung format ini sehingga dapat dengan mudah berbagi file (sharing) yang dapat di akses/diputar oleh banyak orang. 3 Tersedia banyaknya aplikasi pemutar dan konversi dari 3Gp ke format yang lain ataupun sebaliknya yang dapat dimanfaatkan sesuai keperluan.
2.5.2 Dukungan Perangkat Lunak Ketika ditransfer ke komputer, film 3Gp kadang-kadang dapat dilihat pada Linux , Mac , dan Windows platform dengan MPlayer dan VLC media player . Program seperti Media Player Classic , K-Multimedia Player , Totem , RealPlayer , QuickTime , dan GOM Player juga dapat digunakan. File 3Gp dapat disandi dan decode dengan perangkat lunak open source FFmpeg .
2.6 Bahasa Pemrograman Delphi Delphi
adalah
sebuah bahasa
pemrograman
dan
lingkungan
pengembangan perangkat lunak. Produk ini dikembangkan oleh CodeGear sebagai divisi pengembangan perangkat lunak milik Embarcadero, divisi tersebut sebelumnya adalah milik
Borland. Bahasa Delphi, atau dikenal pula
sebagai object pascal (pascal dengan ekstensi pemrograman berorientasi objek (PBO/OOP)) pada mulanya ditujukan hanya untuk Microsoft Windows, namun saat ini telah mampu digunakan untuk mengembangkan aplikasi untuk Linux dan Microsoft.NET framework (lihat di bawah). Dengan menggunakan Free Pascal yang merupakan proyek opensource, bahasa ini dapat pula digunakan 16
17
untuk membuat program yang berjalan di sistem operasi Mac OS X dan Windows CE. Pada tanggal 8 Februari 2006, Borland mengumumkan akan melepas seluruh jajaran produk pengembangan aplikasi komputernya termasuk di antaranya Delphi. Saat ini Delphi menjadi bagian dari jajaran IDE milik Embarcadero Technologies setelah Embarcadero Technologies mengakuisisi CodeGear, anak perusahaan Borland yang menangani tool pengembangan aplikasi. [Bahri, K. S. Sjachriyanto, W. 2008]
2.7. Black Box Metode ujicoba blackbox memfokuskan pada keperluan fungsional dari software. Karena itu ujicoba blackbox memungkinkan pengembang software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program. Ujicoba blackbox bukan merupakan alternatif dari ujicoba whitebox, tetapi merupakan pendekatan yang melengkapi untuk menemukan kesalahan lainnya, selain menggunakan metode whitebox. Ujicoba blackbox berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya : 1. Fungsi – fungsi yang salah atau hilang. 2. Kesalahan interface. 3. Kesalahan dalam struktur data atau akses database eksternal. 4. Kesalahan performa. 5. Kesalahan inisialisasi dan terminasi. Tidak seperti metode whitebox yang dilaksanakan diawal proses, ujicoba blackbox diaplikasikan dibeberapa tahapan berikutnya. Karena ujicoba blackbox dengan sengaja mengabaikan struktur kontrol, sehingga perhatiannya difokuskan pada informasi domain. Ujicoba didesain untuk dapat menjawab pertanyaan – pertanyaan berikut : 1. Bagaimana validitas fungsional ujinya? 2. Jenis input seperti apa yang akan menghasilkan kasus uji yang baik ? 3. Apakah sistem secara khusus sensitif terhadap nilai input tertentu ? 17
18
4. Bagaimana batasan-batasan kelas data diisolasi? 5. Berapa rasio data dan jumlah data yang dapat ditoleransi oleh sistem? 6. Apa akibat yang akan timbul dari kombinasi spesifik data pada operasi
sistem? Dengan
mengaplikasikan
ujicoba
blackbox,
diharapkan
dapat
menghasilkan sekumpulan kasus uji yang memenuhi kriteria berikut : 1. Kasus uji yang kurang, jika jumlahnya lebih dari 1, maka jumlah dari uji kasus tambahan harus didesain untuk mencapai uji coba yang cukup beralasan. 2. Kasus uji yang memberitahukan sesuatu tentang keberadaan atau tidaknya
suatu jenis kesalahan, daripada kesalahan yang terhubung hanya dengan suatu ujicoba yang spesifik.
2.7.1. Equivalence Partioning Equivalence partioning merupakan metode ujicoba blackbox yang membagi domain input dari program menjadi beberapa kelas data dari kasus ujicoba yang dihasilkan. Kasus uji penanganan single yang ideal menemukan sejumlah kesalahan (misalnya : kesalahan pemrosesan dari seluruh data karakter) yang merupakan syarat lain dari suatu kasus yang dieksekusi sebelum kesalahan umum diamati. Equivalence partioning berusaha untuk mendefinisikan kasus uji yang menemukan sejumlah jenis kesalahan, dan mengurangi jumlah kasus uji yang harus dibuat. Kasus uji yang didesain untuk Equivalence partioning berdasarkan pada evaluasi dari ekuivalensi jenis/class untuk kondisi input. Class-class yang ekuivalen merepresentasikan sekumpulan keadaan valid dan invalid untuk kondisi input. Biasanya kondisi input dapat berupa spesifikasi nilai numerik, kisaran nilai, kumpulan nilai yang berhubungan atau kondisi boolean. Ekuivalensi class dapat didefinisikan dengan panduan berikut : 1. Jika kondisi input menspesifikasikan kisaran/range, maka didefinisikan 1 yang valid dan 2 yang invalid untuk equivalence class.
18
19
2. Jika kondisi input memerlukan nilai yang spesifik, maka didefinisikan 1 yang valid dan 2 yang invalid untuk equivalence class. 3. Jika kondisi input menspesifikasikan anggota dari himpunan, maka didefinisikan 1 yang valid dan 1 yang invalid untuk equivalence class. 4. Jika kondisi input adalah boolean, maka didefinisikan 1 yang valid dan 1 yang invalid untuk equivalence class. Misalkan, terdapat data terpelihara untuk sebuah aplikasi perbankan otomatis. User dapat
mengaksesnya dari komputer pribadinya
dengan
menyediakan password 6 digit, dan mengikuti serangkaian perintah keyword yang mengakses berbagai fungsi perbankan. Software yang digunakan untuk aplikasi perbankan menerima data dalam bentuk : 1. Area code – blank atau 3 digit nomor. 2. Prefix – 3 dgit nomor yang tidak diawali oleh 0 atau 1. 3. Suffix – 4 digit nomor. 4. Password – 6 digit alphanumeric. 5. Commands – ”check”, ”deposit”, ”bill pay”, dsb. Kondisi input yang dihubungkan dengan setiap elemen data untuk aplikasi perbankan dapat dispesifikasikan sebagai : Area code :
Kondisi input, Boolean – area code boleh ada maupun tidak. Kondisi input, Range – nilai didefinisikan antara 200 dan 999, dengan beberapa pengecualian khusus (misal : tidak ada nilai > 905) dan syarat (misal : seluruh area code memiliki angka 0 atau 1 pada posisi digit ke-2).
Prefix
:
Kondisi input, Range – nilai yang dispesifikasikan > 200
Suffix
:
Kondisi input, Value – sepanjang 4 digit.
Password
:
Kondisi input, Boolean – Password boleh ada maupun tidak kondisi input, Value – 6 string karakter.
Command :
Kondisi input, Set – mengandung perintah-perintah yang ada diatas.
19
20
Aplikasikan panduan untuk derivasi dari class-class yang ekuivalen, kasus uji untuk setiap domain input data item dapat di bentuk dan dieksekusi. Kasus uji dipilih sehingga sejumlah atribut dari equivalence class dieksekusi sekali saja.
2.8 SDLC (System Development Life Cycle) Lima fase dasar SDLC (System Development Life Cycle) antara lain adalah perencanaan, analisis, perancangan, implementasi serta pemeliharaan dan dukungan. Tahap perencanaan meliputi identifikasi masalah dan penentuan tujuan. Sedangkan pada tahap analisis, mulai dilakukan analisis terhadap kebutuhan sistem. Tahap berikutnya adalah tahap perancangan dimana pada tahap ini mulai dilakukan perancangan terhadap sistem yang akan dibuat kemudian dilanjutkan dengan tahap implementasi yaitu mengimplementasikan rancangan yang telah dibuat sebelumnya. Tahap implementasi juga meliputi pengujian dan instalasi, kemudian tahap berikutnya setelah implementasi adalah pemeliharaan dan dukungan. [HM, Jogiyanto. 2005]
Planning
Analysis
Implementation on tion
Design
Maintenance & support
Gambar 2.5 System Development Life Cycle
2.7 RMS (Root Mean Square) Kemiripan antara dua buah (blok) pesan diukur dengan metrik jarak. Metrik jarak yang banyak digunakan dalam praktek adalah metrik RMS (Root Meas Square). Adapun rumus dari RMS adalah
1 RMS n
n
(z i 1
'
i
zi ) 2
Semakin besar nilai RMS dari dua buah pesan teks, maka semakin besar perbedaan kemiripan dari dua pesan suara tersebut. Rentang nilai RMS adalah dari 0-255. 20