BAB II LANDASAN TEORI 2.1
Kriptografi
2.1.1 Pengertian kriptografi Kriptografi berasal dari bahasa Yunani, crypto dan graphia. Crypto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain. Dalam perkembangannya, kriptografi juga digunakan untuk mengidentifikasi pengiriman pesan dan tanda tangan digital dan keaslian pesan dengan sidik jari digital (Dony Ariyus, 2005) Di dalam kriptografi kita akan sering menemukan berbagai istilah atau terminology. Beberapa istilah yang harus diketahui yaitu : 1. Pesan, plaintext dan cipherteks Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah (plaintext) atau teks jelas (cleartext). Agar pesan tidak dapat dimengerti maknanya oleh pihak lain yang tidak berkepentingan, maka pesan perlu disandikan kebentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut cipherteks (ciphertext) atau kriptogram (cryptogram). Cipherteks harus dapat ditransformasikan kembali menjadi plainteks semula agar dapat diterima dan bisa dibaca. 2. Pengirim dan penerima Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan. Pengirim tentu menginginkan pesan dapat dikirm secara aman, yaitu pengirim yakin bahwa pihak lain tidak dapat membaca isi pesan yang dikirm. Solusinya adalah dengan cara meyandikan pesan menjadi cipherteks. 3. Enkripsi dan dekripsi
http://digilib.mercubuana.ac.id/z
Proses menyandikan plainteks menjadi cipherteks disebut enkripsi (encryption) atau enciphering. Sedangkan proses mengembalikan cipherteks menjadi plainteks disebut dekripsi (decryption) atau deciphering. 4. Cipher dan kunci Algoritma kriptografi disebut juga chipper, yaitu aturan untuk enkripsi dan dekripsi, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk enciphering dan deciphering. Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua buah himpunan yang berisi elemen โ elemen plainteks dan himpunan yang berisi cipherteks. Enkripsi dan dekripsi merupakan fungsi yang memetakan elemen โ elemen antara dua himpunan tersebut. Misalkan P menyatakan plainteks dan C menyatakan cipherteks, maka fungsi enkripsi E memetakan P ke C. E(P) = C Dan fungsi dekripsi D memetakan C ke P D(C) = P Karena proses enkripsi kemudian dekripsi mngembalikan pesan ke pesan semua, maka kesamaan berikut harus benar, D(E(P)) = P Kriptografi mengatasi masalah keamanan data dengan menggunakan kunci, yang dalam hal ini algoritma tidak dirahasiakan lagi, tetapi kunci harus tetap dijaga kerahasiaannya. Kunc (key) adalah parameter yang digunakan untuk transformasi enciphering dan deciphering. Kunci biasanya berupa string atau deretan bilangan. Dengan menggunakan K, maka fungsi enkripsi dan dekripsi dapat ditulis sebagai : ๐ธ๐ (P)=C dan ๐ท๐ (C)=P Dan kedua fungsi ini memenuhi ๐ท๐ (๐ธ๐ (P))=P Keterangan :
http://digilib.mercubuana.ac.id/z
P = plainteks C = cipherteks K = kunci ๐ธ๐ = Proses enkripsi menggunakan kunci K ๐ท๐ = Proses dekripsi menggunakan kunci K
Skema enkripsi dengan menggunakan kunci diperlihatkan pada gambar dibawah ini :
Gambar 2.1 Skema enkripsi dan dekripsi dengan menggunakan kunci 5. Sistem kriptografi Kriptografi membentuk sebuah system yang dinamakan system kriptografi. Sistem kriptografi (cryptosystem) adalah kumpulan yang tediri dari algoritma kriptografi, semua plainteks dan cipherteks yang mungkin, dan kunci. Di dalam kriptografi, cipher hanyalah salah satu komponen saja. 6. Penyadap Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan selama ditransmisi. Tujuan penyadap adalah untuk mendapat informasi sebanyak โ banyaknya mengenai system kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks. Nama lain penyadap: enemy, adversary, intruder, interceptor, bad guy.
http://digilib.mercubuana.ac.id/z
7. Kriptanalisis dan kriptologi Kriptologi berkembang sedemikian rupa sehingga melahirkan bidang yang berlawanan yaitu kriptanalisis. Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Pelakunya
disebut
kriptanalis.
Jika
seorang
kriptografer
(cryptographer)
mentransformasikan plainteks menjadi cipherteks dengan suatu algoritma dan kunci maka sebaliknya seorang kriptanalis berusaha untuk memecahkan cipherteks tersebut untuk menemukan plainteks atau kunci. Kriptologi (cryptology) adalah studi mengenai kriptografi dan kriptanalisis. Baik kriptografi maupun kriptanalisis keduanya saling berkaitan, dapat dilihat seperti gambar dbawah ini:
Gambar 2.2
Kriptografi dan kriptanalisis adalah cabang bidang ilmu
2.1.2 Tujuan Kriptografi Dari paparan awal dapat dirangkumkan bahwa kriptografi bertujuan untuk memberi layanan keamanan. Yang dinamakan aspek โ aspek keamanan sebagai berikut:
http://digilib.mercubuana.ac.id/z
1. Kerahasiaan (confidentiality) Adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. Di dalam kriptografi layanan ini direalisasikan dengan menyandikan plainteks menjadi cipherteks. Misalnya pesan โjadwal bimbingan hari selasaโ disandikan menjadi โmdgzdo#elpelqjdq#kdul#vhodvdโ istilah lain yang senada dengan confidentially adalah secrery dan privacy. 2. Integritas data (data integrity) Adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pernyataan โapakah pesan yang diterima masih asli atau tidak mengalami perubahan (modifikasi)?โ. 3. Otentikasi (authentication) Adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi harus dapat mengotentikasi satu sama lain sehingga isa dapat memastikan sumber pesan. 4. Nirpenyangkalan (non-repudiation) Adalah layanan untuk menjaga entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan. 2.1.3 Serangan terhadap kriptografi 2.1.4 Jenis-jenis serangan Serangan kriptanalisis terhadap kriptografi dapat dikelompokkan dengan beberapa cara: 1. Berdasarkan keterlibatan penyerang dalam komunikasi, serangan dapat dibagi atas dua macam, yaitu : a. Serangan pasif (passive attack)
Pada serangan ini, penyerang tidak terlibat dalam komunikasi antara pengirim dan penerima, namun penyerang menyadap semua pertukaran pesan antara kedua entitas tersebut. Tujuannaya adalah untuk mendapatkan sebanyak mungkin informasi yang digunakan untuk kriptanalisis. Beberapa metode penyadapan antara lain : 1. Wiretapping : penyadap mencegat data yang ditransmisikan pada saluran kabel komunikasi dengan menggunakan sambunganperangkat keras.
http://digilib.mercubuana.ac.id/z
2. Electromagnetic eavesdropping : penyadap mencegat data yang ditrasnmisikan melalui saluran wireless, misalnya radio dan microwave. 3. Acoustic eavesdropping : menangkap gelombang suara yang dihasilkan oleh suara manusia. b. Serangan aktif (active attack)
Pada jenis serangan ini, penyerang mengintervensi komunikasi dan ikut mempengaruhi sistem untuk keuntungan dirinya. Misalnya penyerang mengubah aliran pesan seperti menghapus sebagian cipherteks , mengubah cipherteks, menyisipkan potongan cipherteks palsu, me-replay pesan lama, mengubah informasi yang tersimpan, dan sebagainya. 2. Berdasarkan banyaknya informasi yang diketahui oleh kriptanalis, maka serangan dapat dikelompokkan menjadi lima jenis, yaitu: 1. Ciphertext-only attack Ini adalah jenis serangan yang paling umum namun paling sulit, karena informasi yang tersedia hanyalah cipherteks saja. Kriptanalis memiliki beberapa cipherteks dari beberapa pesan, semuanya dienkripsi dengan algoritma yang sama. Untuk itu kriptanalis menggunakan beberapa cara, seperti mencoba semua kemungkinan kunci secara exhaustive search. Menggunkan analis frekuensi, membuat terkaan berdasarkan informasi yang diketahui dan sebagainya. 2. Known-plaintext attack Ini adalah jenis serangan dimana kriptanalis memiliki pasangan plainteks dan cipherteks yang berkoresponden. 3. Chosen-plaintext attack Serangan jenis ini lebih hebat dari pada known-plaintext attack, karena kriptanalis dapat memilih plainteks yang dimilikinya untuk dienkripsikan, yaitu plainteksplainteks yang lebih mengarahkan penemuan kunci. 4. Chosen-ciphertext attack
Ini adalah jenis serangan dimana kriptanalis memilihcipherteks untuk didekripsikan dan memiliki akses ke plainteks hasil dekripsi. 5. Chosen-text attack Ini adalah jenis serangan yang merupakan kombinasi chosen-plaintext attack dan chosen-chiphertext attack. 3. Berdasarkan teknik yang digunakan dalam menemukan kunci, maka serangan dapat dibagi menjadi dua, yaitu : 1. Exhaustive attack atau brute force attack
http://digilib.mercubuana.ac.id/z
Ini adalah serangan untuk mengungkap plainteks atau kunci dengan menggunakan semua kemungkinan kunci. Diasumsikan kriptanalis mengetahui algoritma kriptografi yang digunakan oleh pengirim pesan. Selain itu kriptanalis memiliki sejumlah cipherteks dan plainteks yang bersesuaian. 2. Analytical attack Pada jenis serangan ini, kriptanalis tidak mencoba-coba semua kemungkinan kunci tetapi menganalisis kelemahan algoirtma kriptografi untuk mengurangi kemungkinan kunci yang tidak ada. Diasumsikan kriptanalis mengetahui algoritma kriptografi yang digunakan oleh pengirim pesan. Analisis dapat menggunakan pendekatan matematik dan statistik dalam rangka menemukan kunci. 3. Related-key attack Kriptanalis memiliki cipherteks yang dienkripsi dengan dua kunci berbeda. Kriptanalis tidak mengetahui kedua kunci tersebut namun ia mengetahui hubungan antara kedua kunci, misalnya mengetahui kedua kunci hanya berbeda 1 bit. 4. Rubber-hose cryptanalysis Ini mungkin jenis serangan yang paling ekstrim dan paling efektif. Penyerang mengancam, mengirim surat gelap, atau melakukan penyiksaan sampai orang yang memegang kunci memberinya kunci untuk mendekripsi pesan. 2.1.5 Kompleksitas serangan Kompleksitas serangan dapat diukur dengan beberapa cara, yaitu: 1. Kompleksitas data (data complexity) Jumlah data (plainteks dan cipherteks) yang dibutuhkan sebagai masukan untuk serangan. Semakin banyak data yang dibutuhkan untuk melakukan serangan, semakin kompleks serangan tersebut, yang berarti semakin bagus sistem kriptografi tersebut. 2. Kompleksitas waktu (time complexity) Waktu yang dibutuhkan untuk melakukan serangan. Semakin lama waktu yang dibutuhkn untuk melakukan serangan, berarti semakin bagus kriptografi tersebut. 3. Kompleksitas ruang memori (space/storage complexity) Jumlah memori yang dibutuhkan untuk melakukan serangan. Semakin banyak memori yang dibutuhkan untuk melakukan serangan, berarti semakin bagus sistem kriptografi tersebut. 2.2 Caesar Cipher Metode penyandian ini dinamakan Caesar cipher, setelah digunakan Julius Caesar untuk berkomunikasi dengan panglimanya. Dalam kriptografi, Caesar cipher dikenal dengan beberapa nama seperti: sandi geser(shift cipher), kode Caesar(Caesarโs code) atau Geseran Caesar(Caesar
http://digilib.mercubuana.ac.id/z
shift). Caesar Cipher merupakan teknik enkripsi yang paling sederhana dan banyak digunakan. Cipher ini berjenis cipher subtitusi, dimana setiap huruf pada plainteksnya digantikan dengan huruf lain yang tetap pada posisi alfabet. Pada Caesar cipher, tiap huruf disubtitusi dengan huruf ketiga berikutnya dari susunan alfabet yang sama. Dalam hal ini kuncinya adalah jumlah pergeseran huruf. Susunan alfabet setelah digeser sejauh 3 huruf membentuk sebuah table subtitusi, sebagai berikut : Plainteks
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cipherteks
DEFGHIJKLMNOPQRSTUVWXYZABC
Jadi, huruf A pada plainteksdisubtitusi dengan D, huruf B disubtitusi dengan E, demikian seterusnya. Gambar 2.3 memperlihatkan Caesar Wheel yang berfungsi sebagai table subtitusi. Caesar wheel terdiri dari dua buah lempeng lingkaran besi. Lingkaran besi paling luar menyatakan huruf-huruf plainteks sedangkan lingkaran besi terdalam menyatakan huruf-huruf cipherteks. Lingkaran besi dapat diputar sejauh pergeseran yang diinginkan. Misalnya jika lingkaran besi terdalam digeser sejauh 3 huruf, maka susunan huruf di dalam kedua lingkaran besi mempresentasikan table subtitusi di atas. Gambar 2.3 Caesar Wheel(Sumber:www.pricecodebreaker.com)
Contoh 2.3, dengan menggunakan Caesar cipher, maka pesan AWASI ASTERIX DANTEMANNYA OBELIX disandikan dengan Caesar cipher menjadi DZDVL DVWHULA GDQ WHPDQQBA REHOLA.
http://digilib.mercubuana.ac.id/z
Dengan mengkodekan setiap huruf alfabet dengan integer:โAโ=0,โBโ=1,โฆ,โZโ=25, modulo terhadap plainteks P menjadi cipherteks C dengan persamaan 2.1 C=E(P)=(P+5)mod26
(2.1)
Keterangan: C=Cipherteks E=Enkripsi P=Plainteks Mod26 Mod26 artinya jika nilai karakter ditambah kunci kurang dari 26, maka nilai cipher tetap(Plain+kunci) Contoh: Plain =AKU, 3 karakter Kunci = 5 Huruf 1= P=A C=(0+5)=5=F Huruf 2 = P=K C=(11+5)=16=P Huruf 3 = P=U C=(20+5)=25=Z Jika ada karakter Y karakter 24 dengan kunci tetap 5 C=(P+5)=(24+5)=29 Maka C= 29mod26 Artinya 29/26 sisanya = 3 Maka huruf Y menjadi Y
Z
A
B
C
24
25
1
2
3
Geser ke angka 1 lagi
http://digilib.mercubuana.ac.id/z
Contoh : P= AWASI K=5
Karena ada 26 huruf di dalam alfabet maka total huruf dalam tabel saya isikan 26, karena semua nilai yang dibawah modulus itu tidak bisa dibagi, nilainya akan sesuai dengan nilai sebelumnya. Penerima pesan mengembalikan lagi cipherteks dengan operasi kebalikan, yang secara sistematis dapat dinyatakan dengan persamaan 2.2 P=D(P)=(C-5)mod26
(2.2)
Keterangan: C=Cipherteks E=Enkripsi P=Plainteks Mod=Sisa Bagi Perhatikan bahwa fungsi E, yaitu D(C)= ๐ธ โ1 (P)
http://digilib.mercubuana.ac.id/z
Contoh dari table diatas akan kita kembalikan menjadi pesan asli
Bila keseluruhan perhitungan diselesaikan, maka diperoleh cipherteksnya adalah DZDVL DVWHULA GDQ WHPDQQBA REHOLA Cipherteks tersebut dapat dikembalikan menjadi plainteks asal dengan persamaan 2.2 menjadi AWASI ASTERIX DAN TEMANNYA OBELIX Secara umum, untuk pergeseran huruf sejauh k (dalam hal ini k adalah kunci enkripsi dan dekripsi), fungsi enkripsi adalah C=E(P)=(P+K)mod26
(2.3)
Dan fungsi dekripsi adalah P=D(C)=(C-K)mod26
(2.4)
Catatan: 1. Pergeseran 0 sama dengan pergeseran 26(susunan tidak berubah) 2. Pergeseran lain untuk k>25 dapat juga dilakukan namun hasilnya akan kongruen dengan bilangan bulat dalam modulo 26. Misalnya k=37 kongruen dengan 11 dalam modulo 26, atau 37 โก 11(mod26)
http://digilib.mercubuana.ac.id/z
3. Karena ada operasi penjumlahan dalam persamaan (3) dan (4), maka Caesar cipher kadangkadang dinamakan juga additive cipher.
2.3 Keamanan algoritma kriptografi Lard Knudsen mengelompokkan hasil kriptanalis ke dalam beberapa kategori berdasarkan jumlah dan kualitas informasi yang berhasil ditemukan: 1. Pemecahan total (total break). Kriptanalis menemukan kunci K sedemikian sehingga dekripsi ๐ท๐ (C) = P. 2. Deduksi (penarikan kesimpulan) global (global deducation). Kriptanalis menemukan algoritma alternative, A, yang akivalen dengan ๐ท๐ (C) tetapi tidak mengetahui kunci K. 3. Deduksi lokal (instance/local deduction). Kriptanalis menemukan plainteks dari cipherteks yang disadap. Deduksi informasi (information deduction). Kriptanalis menemukan beberapa informasi perihal kunci atau plainteks. Misalnya kriptanalis mengetahui beberapa kunci, kriptanalis mengetahui bahasa yang digunakan untuk menulis plainteks, kriptanalis mengetahui format plainteks, dan sebagainya. Sebuah algoritma dikatakan aman mutlak tanpa syarat (unconditionally secure) bila chipherteks yang dihasilkan oleh algoritma tersebut tidak mengandung cukup informasi untuk menentukan plainteks. (Munir, Rinaldi, 2006) 2.4 Algoritma kriptografi klasik Sebelum komputer ada, kriptografi dilakukan dengan menggunakan pensil dan kertas. Algoritma kriptografi (cipher) yang digunakan saat itu, dinamakan juga algoritma klasik, adalah berbasis karakter, yaitu enkripsi dan dekripsi dilakukan pada setiap karakter pesan. Semua algoritma klasik termasuk ke dalam sistrm kriptografi simetris dan digunakan jauh sebelum kriptografi kunci publik ditemukan. Kriptogarfi klasik memiliki beberapa ciri: 1. Berbasis Karakter 2. Menggunakan pena dan kertas saja, belum ada komputer 3. Termasuk ke dalam kriptografi kunci simetris. Tiga alasan mempelajari algoritma klasik:
http://digilib.mercubuana.ac.id/z
1. Memahami konsep dasar kriptografi 2. Dasar algoritma kriptografi modern 3. Memahami kelemahan system kode. (Ariyus, Dony. 2008) Pada dasarnya, algoritma kriptografi klasik dapat dikelompokkan ke dalam dua macam cipher, yaitu : 1. Cipher subtistusi (substitution cipher) Di dalam cipher substitusi setiap unit plainteks diganti dengan satu unit cipherteks. Satu โunitโ di isini berarti satu huruf, pasanga huruf, atau dikelompokkan lebih dari dua huruf. Algoritma substitusi tertua yang diketahui adalah Caesar cipher yang digunakan oleh kaisar Romawi , Julius Caesar (sehingga dinamakan juga casear cipher), untuk mengirimakan pesan yang dikirimkan kepada gubernurnya. 2. Cipher transposisi (transposition cipher) Pada cipher transposisi, huruf-huruf di dalam plainteks tetap saja, hanya saja urutannya diubah. Dengan kata lain algoritma ini melakukan transpose terhadap rangkaian karakter di dalam teks. Nama lain untuk metode ini adalah permutasi atau pengacakan (scrambling) karena transpose setiap karakter di dalam teks sama dengan mempermutasikan karakter-karkater tersebut. (Munir, Rinaldi.2006) 2.5 Visual Studio Microsoft Visual Studio 2010 merupakan sebuah IDE (Integrated Development Environment) yang dikembangkan oleh microsoft. IDE ini mencakup semua bahasa pemrograman berbasis .NET framework yang dikembangkan oleh Microsoft. Keunggulan Microsoft Visual Studio 2010 ini antara lain adalah support untuk Windows 8, editor baru dengan WPF (Windows Presentation Foundation), dan banyak peningkatan fitur lainya. Visual Studio 2010 pada dasarnya adalah sebuah bahasa pemrograman komputer. Dimana pengertian dari bahasa pemrograman itu adalah perintah-perintah atau instruksi yang dimengerti oleh komputer untuk melakukan tugas-tugas tertentu. Visual Studio 2010 (yang sering juga disebut dengan VB .Net 2010) selain disebut dengan bahasa pemrograman, juga sering disebut sebagai sarana (tool) untuk menghasilkan programprogam aplikasi berbasiskan windows. Beberapa kemampuan atau manfaat dari Visual Studio 2010 diantaranya seperti:
http://digilib.mercubuana.ac.id/z
1. Untuk membuat program aplikasi berbasiskan windows. 2.
Untuk membuat objek-objek pembantu program seperti, misalnya: kontrol ActiveX, file Help, aplikasi Internet dan sebagainya.
3. Menguji program (debugging) dan menghasilkan program berakhiran EXE yang bersifat executable atau dapat langsung dijalankan.
2.6 Black box Testing Pengertian black box testing: pengujian yang dilakukan hanya mengamati hasil eksekusi melalui data uji dan memeriksa fungsional dari perangkat lunak. Jadi dianalogikan seperti kita melihat suatu kotak hitam, kita hanya bisa melihat penampilan luarnya saja, tanpa tau ada apa dibalik bungus hitam nya. Sama seperti prngujian black box, mengevaluasi hanya dari tampilan luarnya (interface nya), fungsionalitasnya.tanpa mengetahui apa sesungguhnya yang terjadi dalam proses detilnya (Hanya tau input- dan outputnya) a) Metode Black Box memungkinkan perekayasa perangkat lunak mendapatkan
serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. b) Black Box dapat menemukan kesalahan dalam kategori berikut :
1.
Fungsi-fungsi yang tidak benar atau hilang
2.
Kesalahan interface
3.
Kesalahan dalam strutur data atau akses basisdata eksternal
4.
Inisialisasi dan kesalahan terminasi
5.
Validitas fungsional
6.
Kesensitifan sistem terhadap nilai input tertentu
7.
Batasan dari suatu data
Gambar 2.5 Sistem Kerja dari Teknik Pengujian Black Box
http://digilib.mercubuana.ac.id/z
Tipe dari Black Box Testing: 1. Equivalence class partitioning 2. Sample testing 3. Limit testing 4. Robustness testing 5. Behavior testing 6. Requirement testing Equivalence Class Testing a) Bagi domain Input ke dalam beberapa kelas yang nantinya akan dijadikan sebagai kasus uji b) Kelas yang telah terbentuk disajikan sebagai kondisi input dalam kasus uji c) Kelas tersebut merupakan himpunan nilai โ nilai yang valid dan tidak valid d) Kondisi input bisa merupakan suatu range, harga khusus, suatu himpunan, atau suatu Boolean e) Bila kondisi input berupa suatu range, maka input kasus ujinya satu valid dan dua yang invalid f) Bila kondisi input berupa suatu harga khusus, maka input kasus ujinya satu valid dan dua yang invalid g) Bila kondisi input berupa suatu anggota himpunan, maka input kasus ujinya satu valid dan dua invalid h) Bila kondisi input berupa suatu anggota Boolean, maka input ujinya satu valid dan dua invalid Sample Testing a) Melibatkan sejumlah nilai yang dipilih dari data masukan kelas ekivalensi b) Integrasikan nilai tersebut ke dalam kasus uji c) Nilai yang dipilih dapat berupa konstanta atau variabel Limit Testing
http://digilib.mercubuana.ac.id/z
d) Kasus uji yang memproses nilai batas (atau titik singular) e) Nilai batas disimpulkan dari kelas ekivalensi dengan mengambil nilai yang sama atau mendekati nilai yang membatasi kelas akivalensi tersebut f) Limit test also juga melibatkan data keluaran dari ekivalensi kelas g) Pada kasus segi tiga, misalnya limit testing mencoba untuk mendeteksi apakah a+b >= c dan bukan a + b > c h) Bila kondisi input menentukan suatu range, maka kasus ujinya harus mencakup pengujian nilai batas dari range dan nilai invalid yang dekat dengan nilai batas. Misal bila rangenya antara [-1.0, +1.0], maka input untuk kasus ujinya adalah -1.0, 1.0, -1.001,1.001 i) Bila kondisi inputnya berupa harga khusus kasaus ujinya harus mencakup nilai minimum dan maksimum. Misal suatu file dapat terdiri dari 1 to 255 record, maka kasus ujinya harus mencakup untuk nilai 0, 1, 255 and 256, atau uji saat keadaan record kosong dan record penuh. Robustness Testing Data dipilih dari luar range yang didefinisikan. Tujuan pengujian ini adalah untuk membuktikan tidak adanya kejadian yang katastropik yang dihasilkan akibat adanya keabnormalan. Behavior Testing Suatu pengujian yang hasilnya hanya dapat dievaluasi per sub program, tidak bisa dilakukan per modul Requirement Testing a) Menyusun kasus uji untuk tiap kebutuhan yang berkorelasi dengan modul / CSU b) Tiap kasus uji harus dapat dirunut dengan kebutuhan perangkat lunaknya melalui matriks keterunutuan Pengujian White Box a) Metode pengujian dengan menggunakan struktur kontrol program untuk untuk memperoleh kasus uji b) Dengan menggunakan white box akan didapatkan kasus uji yang : ๏ท
Menjamin seluruh jalur independen di dalam modul yang dieksekusi sekurangkurangnya sekali
http://digilib.mercubuana.ac.id/z
๏ท
Menguji semua keputusan logical
๏ท
Menguji seluruh Loop yang sesuai dengan batasannya
๏ท
Menguji seluruh struktur data internal yang menjamin validitas
Gambar 2.6 Sistem kerja dari Teknik Pengujian White Box ๏ท
Basis Path adalah teknik uji coba white box (Tom Mc Cabe).
๏ท
Basis Path : untuk mendapatkan kompleksitas lojik dari suatu prosedur dan menggunakan ukuran ini sebagai petunjuk untuk mendefinisikan himpunan jalur yang akan diuji
๏ท
Basis Path menggunakan notasi graph untuk menggambarkan aliran kontrolnya.
http://digilib.mercubuana.ac.id/z