• Tidak ada hasil yang ditemukan

BAB II LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB II LANDASAN TEORI"

Copied!
20
0
0

Teks penuh

(1)

II-1 II.1. Citra[1]

Secara umum, pengolahan citra digital menunjukan pada pemrosesan gambar 2 dimensi menggunakan komputer. Dalam konteks yang lebih luas, pengolahan citra digital mengacu pada pemrosesan setiap data 2 dimensi. Citra digital merupakan sebuah larik (array) yang berisi nilai-nilai ral maupun kompleks yang direpresentasikan dengan deretan bit tertentu.[1]

Citra adalah representasi dari sebuah objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat analog, berupa sinyal-sinyal video, seperti gambar pada monitor televisi atau yang bersifat digital yang dapat langsung disimpan pada suatu pita magnetic.

Menurut presisi yang digunakan untuk menyatakan titik-titik kordinat pada domain spatial(bidang), dan untuk menyatakan nilai keabuan atau warna dari suatu citra, maka secara teoritis citra dapat dikelompokkan menjadi empat kelas, yaitu : citra kontinu-kontinu, kontinu-diskrit, kontinu, dan diskrit-diskrit. Dimana label pertama menyatakan presisi dari titik-titik koordinat pada bidang citra, sedangkan label kedua menyatakan presisi nilai keabuan atau warna.Kontinu dinyatakan dengan presisi angka tak terhingga, sedangkan diskrit dinyatakan dengan presisi angka terhingga. Komputer digital bekerja dengan angka-angka presisi terhingga. Dengan demikian, hanya citra dari kelas diskrit yang dapat diolah oleh komputer. Citra dari kelas tersebut lebih dikenal dengan citra digital.

Citra dalam format BMP lebih bagus dari pada citra dalam format JPEG, Terjemahan bebas dari bitmap adalah pemetaan bit. Artinya, nilai intensitas pixel di dalam citra dipetakan ke sejumlah bit tertentu. Peta bit yang umum adalah 8, artinya setiap pixel panjangnya 8 bit. Delapan bit ini

(2)

merepresentasikan nilai intensitas pixel. Dengan demikian ada sebanyak 28 = 256 derajat keabuan, mulai dari 0 sampai 255.

Citra dalam format BMP ada tiga macam : citra biner, citra berwarna, dan citra hitam-putih (grayscale). Citra biner hanya mempunyai dua nilai keabuan, yaitu 0 dan 1. Oleh karena itu, 1 bit sudah cukup untuk merepresentasikan nilai pixel. Citra berwarna adalah citra yang lebih umum. Warna yang terlihat pada citra bitmap merupakan kombinasi dari tiga warna dasar, yaitu merah, hijau, dan biru. Setiap pixel disusun oleh tiga komponen warna : R (red), G (green), dan B (blue). Kombinasi dari tiga warna RGB tersebut menghasilkan warna yang khas untuk pixel yang bersangkutan.

Nilai setiap pixel tidak menyatakan derajat keabuan secara langsung, tetapi nilai pixelmenyatakan indeks tabel RGB yang membuat nilai keabuan merah (R), nilai keabuan hijau (G), dan nilai keabuan biru (B) untuk pixel yang bersangkutan. Pada citra hitam-putih, nilai R = G = B untuk menyatakan bahwa citra hitam-putih hanya mempunyai satu kanal warna. Citra hitam-putih pada umumnya adalah citra 8 bit.

Citra yang lebih kaya warna adalah citra 24-bit. Setiap pixel panjangnya 24 bit, karena setiap pixel langsung menyatakan komponen warna merah, komponen warna hijau, dan komponen warna biru. Masing-masing komponen panjangnya 8 bit. Citra 24-bit disebut juga citra 16 juta warna, karena ia mampu menghasilkan 224 = 16.777.216 kombinasi warna. (BN Budi Priyanto, 1992)

II.1.1 Format Bitmap

Pada format bitmap, citra disimpan sebagai suatu matriks di mana masing-masing elemennya digunakan untuk menyimpan informasi warna untuk setiap pixel. Jumlah warna yang dapat disimpan ditentukan dengan satuan bit-per-pixel. Semakin besar ukuran bit-per-pixel dari suatu bitmap, semakin banyak pula jumlah warna yang dapat disimpan.

Format bitmap ini cocok digunakan untuk menyimpan citra digital yang memiliki banyak variasi dalam bentuknya maupun warnanya, seperti foto, lukisan,

(3)

dan frame video. Format file yang menggunakan format bitmap ini antara lain adalah BMP, DIB, PCX, GIF, dan JPG. Format yang menjadi standar dalam sistem operasi Microsoft Windows adalah format bitmap BMP atau DIB.

Karakteristik lain dari bitmap yang juga penting adalah jumlah warna yang dapat disimpan dalam bitmap tersebut. Ini ditentukan oleh banyaknya bit yang digunakan untuk menyimpan setiap titik dari bitmap yang menggunakan satuan bpp (bit per pixel). Dalam Windows dikenal bitmapdengan 1, 4, 8, 16, dan 24 bit per pixel. Jumlah warna maksimum yang dapat disimpan dalam suatu bitmap adalah sebanyak 2n, dimana n adalah banyaknya bit yang digunakan untuk menyimpan satu titik dari bitmap. (Aniati Murni, 1992).

Berikut ini tabel yang menunjukkan hubungan antara banyaknya bit per pixel dengan jumlah warna maksimum yang dapat disimpan dalam bitmap.

Tabel 2.1 Hubungan Antara Bit Per Pixel deng Jumlah[1]

No Jumlah bit per pixel Jumlah warna maksimum

1 1 2 2 4 16 3 8 256 4 16 65536 5 24 16777216 II.2. Kriptografi

II.2.1 Pengertian Kriptografi

Kriptografi adalah ilmu yang berdasarkan pada teknik matematika untuk berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan data, dan otentikasi entitas.[2]

(4)

II.2.2 Algoritma Kriptografi[3]

Perkembangan algoritma kriptografi dapat dibagi menjadi dua, yaitu: 1. Kriptografi Klasik

Pada algoritma klasik, diterapkan teknik enkripsi konvensional (simetris). Algoritma ini merupakan algoritma kriptografi yang biasa digunakan orang sejak berabad-abad yang lalu.

2. Kriptografi Modern

Kriptografi modern lebih menitikberatkan pada kerahasiaan kunci yang digunakan pada algoritma tersebut (oleh pemakainya) sehingga algoritma tersebut dapat saja disebarkan tanpa takut kehilangan kerahasiaan bagi para pemakainya.

Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi :

1. Algoritma Simetrik (symmetric algorithm) adalah suatu algoritma yang menggunakan kunci enkripsi sama dengan kunci dekripsi sehingga algoritma ini disebut juga sebagai single-key algorithm.Beberapa algoritma kriptografi simetrik antara lain DES,

Blowfish, IDEA, RC4, RC5, RC6, AES atau Rijndael, Serpent dan Twofish.

2. Algoritma Asimetrik (asymmetric algorithm) adalah suatu algoritma yang menggunakan kunci enkripsi tidak sama dengan kunci dekripsi. Algoritma ini menggunakan dua kunci yakni kunci publik (public key) dan kunci privat (private key). Beberapa algoritma kunci publik antara lain adalah RSA, Rabin dan ElGamal.

(5)

II.2.3 Algoritma Advanced Encryption Standard (AES) [5]

Input dan output dari algoritma AES terdiri dari urutan data sebesar 128 bit. Urutan data yang sudah terbentuk dalam satu kelompok 128 bit tersebut disebut juga sebagai blok data atau plaintext yang nantinya akan dienkripsi menjadi ciphertext. Cipher key dari AES terdiri dari key dengan panjang 128 bit, 192 bit, atau 256 bit.

Urutan bit diberi nomor urut dari 0 sampai dengan n-1 dimana n adalah nomor urutan. Urutan data 8 bit secara berurutan disebut sebagai byte dimana byte ini adalah unit dasar dari operasi yang akan dilakukan pada blok data.

Dalam algoritma AES, data sepanjang 128 bit akan dibagi-bagi menjadi

array byte dimana setiap array byte ini terdiri dari 8 bit data input yang saling

berurutan. Array byte ini direpresentasikan dalam bentuk :

a0a1a2...a15

Dimana:

a0 = { input0,input1,...,input7 }

a1 = { input8,input9,...,input15 }

a15 = { input120,input121,...,input127 }

an = { input8n,input8n+1,...,input8n+7 }

Operasi algoritma AES dilakukan pada sebuah state dimana state sendiri adalah sebuah array byte dua dimensi. Setiap state pasti mempunyai jumlah baris yang tetap, yaitu 4 baris, sedangkan jumlah kolom tergantung dari besarnya blok data. Baris pada state mempunyai indeks nomor row (r) dimana 0 ≤ r < 4, sedangkan kolom mempunyai indeks nomor column (c) dimana 0 c < Nb. Nb sendiri adalah besarnya blok data dibagi 32.

(6)

Pada saat permulaan, input bit pertama kali akan disusun menjadi suatu array byte dimana panjang dari array byte yang digunakan pada AES adalah sepanjang 8 bit data. Array byte inilah yang nantinya akan dimasukkan ke dalam state dengan urutan :

s[r,c] = in[r+4c] untuk 0 ≤ r < 4 dan 0 ≤ c < Nb

sedangkan dari state akan dikopi ke output dengan urutan :

out[r+4c] = s[r,c] untuk 0 ≤ r < 4 dan 0 ≤ c < Nb

Gambar 2.1 Byte input, Array state, dan Byte output[4]

Pada algoritma AES, jumlah blok input, blok output, dan state adalah 128 bit. Dengan besar data 128 bit, berarti Nb = 4 yang menunjukkan panjang data tiap baris adalah 4 byte. Dengan blok input atau blok data sebesar 128 bit, key yang digunakan pada algoritma AES tidak harus mempunyai besar yang sama dengan blok input. Cipher key pada algoritma AES bisa menggunakan kunci dengan panjang 128 bit, 192 bit, atau 256 bit. Di bawah ini adalah tabel yang memperlihatkan jumlah round (Nr) yang harus diimplementasikan pada masing-masing panjang kunci.

(7)

Tabel 2.2 Perbandingan jumlah Round dan Key[4]

Jumlah Key (Nk) Besar Block (Nb) Jumlah Round (Nr)

AES – 128 4 4 10

AES – 192 6 4 12

AES – 256 8 4 14

II.2.3.1 Enkripsi Advanced Encryption Standard (AES)[2]

Proses enkripsi pada algoritma AES terdiri dari 4 jenis transformasi bytes, yaitu SubBytes, ShiftRows, Mixcolumns, dan AddRoundKey. Pada awal proses enkripsi, input yang telah dikopikan ke dalam state akan mengalami transformasi byte AddRoundKey. Setelah itu, state akan mengalami transformasi SubBytes, ShiftRows, MixColumns, dan AddRoundKey secara berulang-ulang sebanyak Nr. Proses ini dalam algoritma AES disebut sebagai round function. Round yang terakhir agak berbeda dengan round-round sebelumnya dimana pada round terakhir, state tidak mengalami transformasi MixColumns.

(8)

SubBytes

SubBytes merupakan transformasi byte dimana setiap elemen pada state

akan dipetakan dengan menggunakan sebuah tabel substitusi (S-Box). Hasil yang didapat dari pemetaan dengan menggunakan tabel S-Box ini sebenarnya adalah hasil dari dua proses transformasi bytes, yaitu :

1. Invers perkalian dalam GF(28) adalah fungsi yang memetakan 8 bit ke 8 bit yang merupakan invers dari elemen finite field tersebut. Suatu byte a merupakan invers perkalian dari byte b bila a•b = 1, kecuali {00} dipetakan ke dirinya sendiri. Setiap elemen pada state akan dipetakan pada tabel

invers. Sebagai contoh, elemen “01010011” atau {53} akan dipetakan ke

{CA} atau “11001010”.

2. Transformasi affine pada state yang telah dipetakan. Transformasi affine ini apabila dipetakan dalam bentuk matriks adalah sebagai berikut :

Gambar 2.3 Matriks affine[4]

b7 b6 b5 b4 b3 b2 b1 b0 adalah urutan bit dalam elemen state atau array byte dimana

b7 adalah most significant bit atau bit dengan posisi paling kiri.                           +                           ×                           =                           0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 7 6 5 4 3 2 1 0 ' 7 ' 6 ' 5 ' 4 ' 3 ' 2 ' 1 ' 0 b b b b b b b b b b b b b b b b

(9)

ShiftRows

Transformasi Shiftrows pada dasarnya adalah proses pergeseran bit dimana bit paling kiri akan dipindahkan menjadi bit paling kanan (rotasi bit). Transformasi ini diterapkan pada baris 2, baris 3, dan baris 4. Baris 2 akan mengalami pergeseran bit sebanyak satu kali, sedangkan baris 3 dan baris 4 masing-masing mengalami pergeseran bit sebanyak dua kali dan tiga kali.

Gambar 2.4 Transformasi ShiftRows[4]

MixColumns

Mixolumns mengoperasikan setiap elemen yang berada dalam satu kolom

pada state. Elemen pada kolom dikalikan dengan suatu polinomial tetap a(x) = {03}x3 + {01}x2 + {01}x + {02}. Secara lebih jelas, transformasi mixcolumns dapat dilihat pada perkalian matriks berikut ini :

Gambar 2.5 Matriks transformasi MixColumns[4]

Melakukan proses penambahan pada operasi ini berarti melakukan operasi

bitwise XOR. Maka hasil dari perkalian matriks diatas dapat dianggap seperti

perkalian yang ada di bawah ini :

                          =               c c c c c c c c s s s s s s s s , 3 , 2 , 1 , 0 ' , 3 ' , 2 ' , 1 ' , 0 02 01 01 03 03 02 01 01 01 03 02 01 01 01 03 02

(10)

Gambar 2.6 Hasil perkalian dari operasi matriks MixColumns[4]

AddRoundKey

Pada proses AddRoundKey, sebuah round key ditambahkan pada state dengan operasi bitwise XOR. Setiap round key terdiri dari Nb word dimana tiap

word tersebut akan dijumlahkan dengan word atau kolom yang bersesuaian dari state sehingga :

[wi] adalah word dari key yang bersesuaian dimana i = round*Nb+c.

Transformasi AddRoundKey diimplementasikan pertama kali pada round = 0, dimana key yang digunakan adalah initial key (key yang dimasukkan oleh kriptografer dan belum mengalami proses key expansion).

II.2.3.2 Dekripsi Advanced Encryption Standard (AES)[2]

Transformasi cipher dapat dibalikkan dan diimplementasikan dalam arah yang berlawanan untuk menghasilkan inverse cipher yang mudah dipahami untuk algoritma AES. Transformasi byte yang digunakan pada invers cipher adalah

InvShiftRows, InvSubBytes, InvMixColumns, dan AddRoundKey. Algoritma

dekripsi dapat dilihat pada skema berikut ini :

) } 02 ({ ) } 03 ({ ) } 03 ({ ) } 02 ({ ) } 03 ({ ) } 02 ({ ) } 03 ({ ) } 02 ({ , 3 , 2 , 1 , 0 ' , 3 , 3 , 2 , 1 , 0 ' , 2 , 3 , 2 , 1 , 0 ' , 1 , 3 , 2 , 1 , ' , 0 c c c c c c c c c c c c c c c c c c c o c s s s s s s s s s s s s s s s s s s s s • ⊕ ⊕ ⊕ • = • ⊕ • ⊕ ⊕ = ⊕ • ⊕ • ⊕ = ⊕ ⊕ • ⊕ • =

[

s0',c,s1',c,s2',c,s3',c

]

=

[

s0,c,s1,c,s2,c,s3,c

]

[

wround*Nb+c

]

untuk 0≤cNb

(11)

Gambar 2.7 Diagram alir proses dekripsi AES[5]

InvShiftRows

InvShiftRows adalah transformasi byte yang berkebalikan dengan

transformasi ShiftRows. Pada transformasi InvShiftRows, dilakukan pergeseran bit ke kanan sedangkan pada ShiftRows dilakukan pergeseran bit ke kiri. Pada baris kedua, pergeseran bit dilakukan sebanyak 3 kali, sedangkan pada baris ketiga dan baris keempat, dilakukan pergeseran bit sebanyak dua kali dan satu kali.

(12)

InvSubBytes

InvSubBytes juga merupakan transformasi bytes yang berkebalikan dengan transformasi SubBytes. Pada InvSubBytes, tiap elemen pada state dipetakan dengan menggunakan tabel inverse S-Box. Tabel ini berbeda dengan tabel S-Box dimana hasil yang didapat dari tabel ini adalah hasil dari dua proses yang berbeda urutannya, yaitu transformasi affine terlebih dahulu, baru kemudian perkalian invers dalam GF(28).

Gambar 2.9 Matriks invers affine[4]

Perkalian invers yang dilakukan pada transformasi InvSubBytes ini sama dengan perkalian invers yang dilakukan pada transformasi SubBytes.

InvMixColumns

Pada InvMixColumns, kolom-kolom pada tiap state (word) akan dipandang sebagai polinom atas GF(28) dan mengalikan modulo x4 + 1 dengan polinom tetap a-1(x) yang diperoleh dari :

a-1(x)= {0B}x3 + {0D}x2 + {09}x + {0E}. Atau dalam matriks :

                          +                           ×                           =                           1 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 2 3 4 5 6 7 ' 0 ' 1 ' 2 ' 3 ' 4 ' 5 ' 6 ' 7 b b b b b b b b b b b b b b b b

)

(

)

(

)

(

'

x

s

x

a

x

s

=

(13)

Gambar 2.10 Matriks InvMixColumns[4]

Hasil dari perkalian diatas adalah :

Inverse AddRoundKey

Transformasi Inverse AddRoundKey tidak mempunyai perbedaan dengan transformasi AddRoundKey karena pada transformasi ini hanya dilakukan operasi penambahan sederhana dengan menggunakan operasi bitwise XOR.

II.2.4 Padding[5]

Ada kemungkinan panjang plaintext tidak habis dibagi dengan panjang ukuran blok yang ditetapkan (misalnya 64 bit, 128 bit atau lainnya). Hal ini mengakibatkan blok terakhir berukuran lebih pendek daripada blok-blok lainnya.

Satu cara untuk mengatasi hal ini adalah dengan padding, yaitu menambahkan blok terakhir dengan pola bit yang teratur agar panjangnya sama dengan ukuran blok yang ditetapkan. Misalnya ditambahkan bit 0 semua, atau bit 1 semua, atau bit 0 dan bit 1 beselang-seling.

Misalkan ukuran blok adalah 64 bit (8 byte) dan blok terakhir terdiri dari 24 bit (3 byte). Tambahkan blok terakhir dengan 40 bit (5 byte) agar menjadi 64

                          =               c c c c c c c c s s s s E D B B E D D B E D B E s s s s , 3 , 2 , 1 , 0 ' , 3 ' , 2 ' , 1 ' , 0 0 09 0 0 0 0 09 0 0 0 0 09 09 0 0 0 ) } 0 ({ ) } 09 ({ ) } 0 ({ ) } 0 ({ ) } 0 ({ ) } 0 ({ ) } 09 ({ ) } 0 ({ ) } 0 ({ ) } 0 ({ ) } 0 ({ ) } 09 ({ ) } 09 ({ ) } 0 ({ ) } 0 ({ ) } 0 ({ , 3 , 2 , 1 , ' , 3 , 3 , 2 , 1 , ' , 2 , 3 , 2 , 1 , ' , 1 , 3 , 2 , 1 , ' , 0 c c c c o c c c c c o c c c c c o c c c c c o c s E s s D s B s s B s E s s D s s D s B s E s s s s D s B s E s • ⊕ • ⊕ • ⊕ • = • ⊕ • ⊕ • ⊕ • = • ⊕ • ⊕ • ⊕ • = • ⊕ • ⊕ • ⊕ • =

(14)

bit. Misalnya dengan menambahkan 4 buah byte 0 dan satu buah byte angka 5. Setelah dekripsi, hapus 5 byte terakhir dari blok dekripsi terakhir.

II.3. Definisi UML[10]

Unified Modelling Language (UML) adalah sebuah "bahasa" yang telah

menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem, dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta di tulis dalam bahasa pemrograman apapun. UML juga menggunakan class dan operation dalam konsep dasarnya, maka UML lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented

Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson

OOSE (Object-Oriented Software Engineering). Unified Modeling Language

(UML) adalah alat bantu (tool) untuk pemodelan sistem, “UML adalah bahasa

yang dapat digunakan untuk spesifikasi, visualisasi, dan dokumentasi sistem

object-oriented software pada fase pengembangan. UML merupakan unifikasi

dari metode Booch, OMT, dan notasi Objectory, serta ide-ide terbaik metodologi lainnya, UML merupakan standar dasar dalam bidang analisis dan desain berorientasi-objek” (Quatrani, 1998).

Unified Modeling Language (UML) adalah sebuah bahasa pemodelan

yang telah menjadi standar dalam industri software untuk visualisasi, merancang, dan mendokumentasikan sistem perangkat lunak (Henderi, 2007: 4). Bahasa

(15)

Pemodelan UML lebih cocok untuk pembuatan perangkat lunak dalam bahasa pemrograman berorientasi objek (C , Java, VB.NET), namun demikian tetap dapat digunakan pada bahasa pemrograman prosedural (Ziga Turck, 2007).[4]

Di dalam Unified Modeling language (UML) terdapat content untuk menganalisis suatu software. Diantaranya, ada use case diagram, class diagram tahap analisis, class diagram tahap desain dan sequence diagram, dan dijelaskan pada poin 1 sampai poin 3 di bawah ini:

1. Use Case Diagram

Use case diagram menggambarkan fungsionalitas yang diharapkan dari

sebuah sistem, yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan system untuk melakukan pekerjaan-pekerjaan tertentu.

Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan

merancang test case untuk semua feature yang ada pada sistem. Sebuah use

case dapat meng-include fungsionalitas use case lain sebagai bagian dari

proses dalam dirinya. Secara umum diasumsikan bahwa use case yang

di-include akan dipanggil setiap kali use case yang meng-di-include dieksekusi

secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sedikit penjelasan tentang Use case

(16)

Tabel 2.3 Use Case Diagram[10]

No Simbol Keterangan

1 Simbol aktor, menggambakan aktor pada

diagram.

2 Simbol Use case, menggambarkan Use Case

pada diagram.

3 Simbol Unidirectional Association,

menggambarkan relasi antar aktor dan use case.

2. Class Diagram

Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan

sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class,

package dan objek beserta hubungan satu sama lain seperti containment,

pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area pokok, dan di jelaskan pada Gambar III.1 di halaman II-12.

Gambar 2.11 Class Diagram[10]

Penjelasan nama class, atribut, dan metode dijelaskan di bawah ini:

a. nama class: digunakan untuk membedakan antara satu kelas dengan kelas yang lain

(17)

b. atribut: digunakan untuk menyimpan state, pada bahasa pemrograman ini berupa field, bisa juga diartikan apa yang dimiliki oleh sebuah objek. c. Operasi atau metode: digunakan untuk menyimpan behavior, pada bahasa

pemograman berupa method yang mengembalikan nilai (non void

method) dan method yang tidak mengembalikan nilai (void method)

3. Sequence Diagram

Kelas diagram menunjukan hubungan statis yang terjadi antara satu objek dengan objek yang lain. Sequence diagram menunjukan suatu skenario yang dinamis. Sequence diagram digunakan untuk mendeskripsikan pola komunikasi antara objek. Sequence diagram menggambarkan urutan waktu dari pemanggilan pada suatu method. Sequence diagram berhubungan erat dengan use case diagram, dimana satu use case akan menjadi satu use case

diagram. Sequence Diagram memiliki 2 simbol yaitu aktor dan lifeline. Actor

digunakan untuk menggambarkan penggunaan sistem. LifeLine digunakan untuk menggambarkan kelas dan objek, dan dijelaskan pada Gambar III.2 dan Gambar III.3 di halaman II-13.

(18)

Gambar 2.13 LifeLine[10]

II.4 Metedologi Pembangunan Perangkat Lunak Prototyping[11]

Prototyping merupakan metodologi pengembangan software yang menitik-beratkan pada pendekatan aspek desain, fungsi dan user interface.

Developer dan User fokus pada user-interface dan bersama-sama mendefinisikan

spesifikasi, fungsi, desain dan bagaimana software bekerja.

Developer dan user bertemu dan melakukan komunikasi dan menentukan

tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan. Developer mengumpulkan detail dari kebutuhan dan memberikan suatu gambaran dengan cetak biru (prototyping). Dari proses tersebut, akan diketahui detail-detail yang harus dikembangkan atau ditambahkan oleh developer terhadap cetak biru, atau menghapus detail-detail yang tidak diperlukan oleh user. Proses akan terjadi terus menerus sehingga produk sesuai dengan keinginan dari user.

(19)

Tahapan-tahapan yang dilakukan adalah sebagai berikut:

1. Mendengarkan pelanggan, merupakan proses menganalisis keperluan pelanggan yang terdapat pada permasalahan yang ada.

2. Membangun dan memperbaiki prototype, tahap ini merupakan proses pemodelan hasil analisis dan perbaikan dalam bentuk prototype perangkat lunak.

3. Pelanggan menguji coba prototype, merupakan tahap uji coba yang dilakukan pelanggan terhadap prototype yang telah dibuat.

Tujuan utama dari prototyping [Thompson, Wishbow - 1992] adalah : 1. Proses revisi dan pengujian terhadap produk dilakukan secara terus

menerus, sehingga didapatkan produk yang sesuai dengan yang diinginkan oleh user. Proses testing dan revisi dapat dilakukan baik secara keseluruhan maupun partial pada bagian dari produk.

2. Proses pengujian harus memiliki perbandingan baku (benchmark) sehingga menghasilkan produk yang secara empiris sehinga menghindari kegagalan produk atau terjadi perbedaan persepsi antara developer atau

user.

3. Dengan proses testing dan komunikasi yang terus menerus antara user dan developer diharapkan dihasilkan produk yang user-friendly.

II.5 Matlab[8]

matlab adalah sebuah bahasa high-performance untuk komputasi teknis. Matlab merupakan singkatan dari Matrix Laboratory. Matlab mengintegrasikan perhitungan , visualisasi, dan pemrograman dalam suatu lingkungan yang mudah digunakan di mana permasalahan dan solusi dinyatakan dalam notasi secara matematis yang dikenal umum.

Pertama, Matlab dapat digunakan sebagai kalkulator ilmiah. Berikutnya Matlab memungkinkan untuk memvisualisasi data dalam berbagai cara,

(20)

melakukan aljabar matriks, bekerja dengan polinomal dan fungsi integrasi. Seperti dalam sebuah kalkulator yang dapat diprogram , dapat menciptakan, mengeksekusi, dan menyimpan urutan perintah sehingga memungkinkan komputasi dilakukan secara otomatis.

Matlab dapat diperlakukan sebagai sebuah bahasa pemrograman yang akrab pengguna, yang memungkinkan untuk menangani kalkulasi matematis dalam suatu cara yang mudah. Penggunaan Matlab:

• Matematika dan komputasi

• Pengembangan algoritma

• Pengumpulan data

• Pemodelan, simulasi, dan prototipe

• Analisis data, eksplorasi, dan visualisasi

• Rancang-bangun grafis

Pengembangan aplikasi, termasuk membangun Graphical User Interface (GUI)

Ringkasan Matlab secara khusu dirancang untuk bekerja dengan sekumpulan data tertentu sebagai vektor, matriks, dan gambar.

Gambar

Tabel 2.1 Hubungan Antara Bit Per Pixel deng  Jumlah[1]
Gambar 2.1 Byte input, Array state, dan Byte output[4]
Gambar 2.2 Diagram alir proses enkripsi AES[5]
Gambar 2.3  Matriks affine[4]
+7

Referensi

Dokumen terkait

Oleh karena itu sangat menarik untuk melakukan pembahasan tentang pengguguran kandungan (aborsi) dalam pandangan hukum Islam kaitannya dengan dibolehkannya menurut

Berdasarkan temuan alat-alat batu yang ada menunJukkan bahwa penghuni Gua Macan memiliki keahlian teknologi yang baik, hal tersebut dibuktikan dengan kondisi

diharapkan Hasil pengujian Keterangan 1 Semua data jurnal tidak di isi kemudian klik tombol simpan No refrensi, kode akun, no transaski, dan tgl transaksi,

Sudah saatnya UU Darurat tersebut direvisi atau di tinjau ulang kembali karena sudah tidak sesuai lagi dengan perkembangan zaman jika memang hendak menjerat Airsoft Gun

Dalam hal ini, kita memiliki 2 masalah utama, yakni mulai memudarnya keinginan untuk menuntut ilmu dari generasi muda karena tidak adanya jaminan kesuksesan yang

etika-etika profesional lain yang perlu dipahami dan diikuti, dengan kemampuan intelektualnya, seorang engineer akan dapat menemukan etika- etika tsb selama mengembangkan

Dalam pengisian discharge planning itu dari awal dari pasien masuk sudah dikerjakan dari depan nanti kami yang di maintenance ini melanjutkan apa yang sudah dikerjakan

Tim Gabungan terus melakukan evakuasi pencarian korban longsor di dusun Dusun Jemblung Desa Sampang Kecamatan Karangkobar Kabupaten Banjarnegara.. Dari hasil pencarian