BAB 2 LANDASAN TEORI
2.1 Software Defined Radio 2.1.1
Pengertian SDR Software Defined Radio (SDR) adalah sebuah sistem komunikasi radio yang dapat disesuaikan pada frekuensi apapun dan menerima modulasi apapun melalui sebuah spektrum frekuensi yang besar. Pada umumnya SDR melakukan beberapa signal processing sebagian besar menggunakan software yang berjalan pada Personal Computer (PC) biasa yang dilengkapi dengan soundcard, atau komponen elektronik digital buatan sendiri. Tujuan dari rancangan tersebut adalah agar membuat SDR dapat menerima dan mengirim bentuk lain dari protokol radio hanya dengan menjalankan software yang berbeda. SDR mempunyai peran yang penting untuk radio militer dan serviceservice pada ponsel, karena baik radio militer maupun service pada ponsel harus memungkinan untuk disetel pada berbagai jenis protokol yang berubah-ubah.
2.1.2
Cara Kerja SDR Pada SDR, sinyal analog diubah menjadi sinyal digital dengan menggunakan komponen Analog-to-Digital Converter (ADC), yang kemudian akan sinyal tersebut akan diolah agar dapat masuk kedalam tahap pemrosesan software pada SDR.
9
Sinyal analog yang diterima oleh sebuah SDR, dapat diolah secara langsung apabila frekuensi sinyal tersebut dibawah 40MHz. Tetapi untuk frekuensi diatas 40MHz konversi langsung akan mengakibatkan pelambatan. Sehingga untuk menangani frekuensi diatas 40MHz, digunakan arsitektur superheterodyne RF front-end. Arsitektur ini akan mengolah frekuensi tinggi menjadi frekuensi menengah (Intermediate Frequency / IF) terlebih dahulu sebelum dikonversi. SDR harus mengolah modulasi dengan jarak yang luas, sehingga dapat disesuaikan dengan bermacam-macam protokol. Oleh karena itu, pengaturan secara adaptif sangat penting. Pengaturan adaptif dapat diimplementasikan pada hardware atau software.
2.2 Field Programmable Gate Array 2.2.1
Pengertian FPGA FPGA adalah komponen semikonduktor yang mengandung komponen programmable-logic yang disebut dengan Logic Blocks, dan komponenkomponen programmable interconnects. Logic Blocks dapat deprogram untuk melaksanakan fungsi-fungsi aritmatika dasar seperti AND, dan XOR, ataupun fungsi kombinasi lainnya yang lebih kompleks misalnya membaca sandi atapun fungsi-fungsi matematika sederhana. Pada sebagian besar FPGA, Logic Blocks juga mengandung unsur memori, yang mungkin merupakan flip-flop sederhana atau block memory yang lebih lengkap.
10
Komponenn-komponen
program mmable
intterconnects
pada
F FPGA
mem mungkinkan Logic Blockks untuk salling. Kompoonen-kompoonen Logic Block B dan Interconnecct dapat dipprogram oleeh penggunaa setelah FPGA FP diprodduksi, k mengimpllementasikann beberapa fungsi logiika, sesuai dengan nam manya untuk Field d-Programm mable.
2 2.2.2
Aplikasi FPGA Aplikasi-applikasi padaa FPGA term masuk Digiital Signal Processor P (D DSP), ware Defineed Radio (SD SDR), prototy type ASIC, Medical M Imaging, Comp mputer Softw Visio on, pengenaalan suara, kriptografii, biometriccs dan com mputer harddware emullation ataupuun perkembaangan pada hal-hal h lain.
2 2.2.3
Arsitektur FPG GA Arsitektur FPGA tersussun dari kum mpulan Conffigurable Loogic Blocks (CLB) ( s routing yang meemiliki jumlaah kabel yanng sama. Sebbuah logic blocks b dan saluran FPG GA klasik terrdiri dari emppat atau enaam buah inpuut Look-Up Table (LUT T) dan sebuah flip-flop, seperti yangg ditunjukkan dibawah.
.
Gambar 2.1 Logic Block B Pada Umumnya U Sumber Webssite http://en n.wikipedia.org/wiki/Fp pga
11
Input padaa logic blockks terdiri daari empat sinnyal LUT dan d sinyal waktu. w Outp put pada loggic blocks hanya h terdirii dari satu sinyal LUT.. Sebagai coontoh arsiteektur ini, lokkasi dari pin logic blockss FPGA dituunjukkan sebbagai berikutt.
Gam mbar 2.2 In nput Output Pad Sumber Webssite http://en n.wikipedia.org/wiki/Fp pga
Setiap pin input dapat diakses melalui satu sisii dari logic blocks, b semeentara pin output o dapaat dihubungkkan dengan kabel routiing dalam kedua k saluraan ke kanaan dan saluraan ke bawah logic blockss.
Gamb bar 2.3 Topoologi Kotak Switch Sumber Webssite http://en n.wikipedia.org/wiki/Fp pga
12
Pin output pada logic blocks dan I/O Pads dapat saling berhubungan untuk membentuk kotak switch. Setiap terjadi perpotongan antara saluran mendatar dan menurun, dimana didalamnya terdapat sebuah kotak switch, terdapat tiga switch yang dapat diprogram yang memungkinkan untuk menghubungkan tiga kabel lainnya dalam saluran yang bersebelahan.
2.3 Serpent Advanced Encryption Standard 2.3.1
Algoritma
2.3.1.1 Pengertian Algoritma Dalam ilmu Matematika dan ilmu Komputer, algoritma adalah kumpulan instruksi yang terdeskripsi dengan jelas isi dan urutan pengerjaannya, yang bertujuan untuk menyelesakan suatu tugas, dengan mendefenisikan kondisi awal dan akan berakhir pada kondisi akhir yang telah ditentukan pula. Konsep dari algoritma, secara informal dapat digambarkan sebagai sebuah resep.
2.3.1.2 Sejarah Algoritma Konsep algoritma berawal dari penggabungan urutan-urutan prosedur untuk menyelesaikan masalah matematika, seperti mencari Greater Common Divisor (Faktor Persekutuan Terbesar) dari dua buah bilangan. Sebagian besar algoritma dapat diimplementasikan pada bahasa pemrograman atau setidaknya dapat disimulasikan secara teoritis oleh program komputer.
13
2.3.1.3 Notasi Big O Dalam teori perhitungan kompleksitas, notasi Big O digunakan untuk menggambarkan bagaimana ukuran data input mempengaruhi kecepatan dan penggunaan memori. Notasi Big O juga disebut sebagai notasi Bachman-Landau, atau notasi asimtotis. Notasi Big O juga digunakan pada matematika untuk menghasilkan estimasi yang mirip. Berikut adalah contoh dari notasi Big O: Tabel 2.1 Notasi Big O Notasi 1
Nama Konstan Ackermann invers Logaritmik beriterasi
log log log 0
Contoh Menentukan genap-ganjil suatu angka Hopcroft and Ullman search dengan menggunakan disjoint set Binary search Tes Primalitas AKS Pencarian pada KD-Tree
Logaritmik Polilogaritmik Akar 1
log
! 1
Linear Linearitmik, Loglinear Kuardratik Polinomial Eksponensial Faktorial Eksponensial n Eksponensial ganda
Sequencial search Heapsort, Fast Fourier Transform Insertion Sort Algoritma Floyd-Warshall Travelling Sales Problem Brute Force
Notasi Big O sangat berguna dalam analisa algoritma dalam hal efisiensi. Contohnya, waktu atau jumlah langkah yang dibutuhkan untuk menyelesaikan suatu persoalan dengan ukuran data n dapat dihitung sebagai berikut 4
2
2
14
2.3.1.4 Pseudocode Pseudocode adalah gambaran singkat dan informal dari sebuah algoritma pemrograman komputer yang menggunakan bentuk pemrograman struktural. Pseudocode mengabaikan detil-detil seperti subrutin, deklarasi variabel dan sintaks yang spesifik dari suatu bahasa pemrograman. Pseudocode dapat ditulis dalam bahasa-bahasa pemrograman dengan sintaks yang disederhanakan, misalnya bahasa pemrograman PASCAL, C atau BASIC. Tujuan penggunaan pseudocode adalah untuk menyederhanakan bahasa pemrograman menjadi bahasa manusia, sehingga memudahkan manusia untuk membaca alur dari suatu algoritma. Berikut adalah contoh dari sebuah pseudocode untuk pengenalan angka genap atau angka ganjil: JIKA Angka = 0 MAKA Tulis “NOL” SELAIN ITU JIKA Angka MODULUS 2 = 0 MAKA Tulis “Genap” SELAIN ITU Tulis “Ganjil”
2.3.2
Kriptografi
2.3.2.1 Pengertian Kriptografi Dalam konteks Matematika dan ilmu Komputer, kriptografi adalah ilmu yang mempelajari tentang kerahasiaan data. Pada zaman modern ini, kriptografi adalah salah satu cabang dari Information Theory (mata pelajaran Applied Mathematics), yang bertujuan untuk membuat data menjadi rahasia dan memastikan autentikasi sebelum akses data tersebut.
15
Kriptografi mencakup ilmu matematika dari berbagai cabang seperti Aljabar Linear, Aljabar Modern maupun Analisis Real. Kriptografi mengandung istilah-istilah penting yang mendasar sebagai berikut: •
Plaintext (Cleartext) merupakan data yang dapat dimengerti.
•
Ciphertext, merupakan data yang tidak dapat dimengerti.
•
Encryption (Encoding), merupakan proses penyamaran data, dari plaintext menjadi ciphertext.
•
Decryption (Decoding), merupakan proses untuk mengembalikan ciphertext menjadi plaintext agar dapat dimengerti.
•
Key, merupakan angka atau metode yang digunakan dalam proses enkripsi dan dekripsi.
2.3.2.2 Sejarah Kriptografi Sejarah kriptografi dimulai ribuan tahun yang lalu. Sampai beberapa dekade terakhir ini, sejarah kriptografi merupakan sebuah cerita yang disebut Classic Cryptography, yang merupakan metode kriptografi yang masih menggunakan pensil dan kertas atau mungkin bantuan mekanik sederhana. Pada zaman romawi kuno, Julius Caesar menggunakan kriptografi untuk mengirim pesan rahasia yang masih menggunakan algoritma kriptografi klasik yaitu algoritma penggeseran atau disebut juga Shift Cipher atau Caesar Cryptography. Pada abad ke-20, ditemukan mesin elektronik untuk kriptografi yang lebih kompleks, seperti Enigma Rotor Machine, dilengkapi dengan metode enkripsi
16
yang lebih cerdas dan berarti. Kemudian menjadi awal dari enkripsi-enkripsi baru yang memiliki kompleksitas yang lebih besar.
2.3.2.3 Algoritma Kriptografi Algoritma kriptografi adalah metode yang digunakan dalam kriptografi untuk mengubah data berupa plaintext menjadi ciphertext sehingga dapat membuat data yang ingin dikirimkan menjadi rahasia dan hanya dapat diakses oleh user-user yang mengetahui key untuk mendekripsi ciphertext tersebut.
2.3.2.4 Pembagian Algoritma Kriptografi Algoritma kriptografi sering juga disebut sebagai kriptosistem, dapat dibagi dalam tiga karakteristik: •
Berdasarkan jenis operasi yang digunakan Berdasarkan jenis operasi yang digunakan untuk mengubah plaintext menjadi ciphertext, algoritma kriptografi dibagi menjadi dua jenis umum antara lain substitution cipher dan transposition cipher. Semua algoritma kriptografi selalu berlandaskan pada dua prinsip umum tersebut, proses substitusi dan proses transposisi. Tetapi ada juga algoritma kriptografi yang menggabungkan kedua konsep tersebut sekaligus. Substitution cipher adalah algoritma kriptografi yang bertujuan untuk mengubah plaintext tertentu menjadi ciphertext tertentu. Inti dari substitution cipher adalah mengubah isi plaintext.
17
Transposition cipher adalah algoritma kriptografi yang bertujuan untuk menggeser posisi-posisi plaintext menjadi acak. Inti dari transposition cipher adalah mengubah posisi plaintext. •
Berdasarkan jumlah key yang digunakan Berdasarkan jumlah key yang digunakan, algoritma kriptografi dibagi menjadi symmetric cryptography dan asymmetric cryptography. Symmetric cryptography adalah algoritma kriptografi yang hanya menggunakan satu jenis key, dimana untuk proses enkripsi dan dekripsi pada algoritma kriptografi tersebut akan menggunakan key yang sama. Oleh karena itu pada symmetric cryptography key tersebut bersifat rahasia yang hanya boleh diketahui oleh orang yang membuat pesan dan orang yang akan mendapatkan pesan. Asymmetric
cryptography
adalah
algoritma
kriptografi
yang
menggunakan dua jenis key, yaitu public key dan private key. Public key pada asymmetric cryptography adalah key pribadi yang dibagikan kepada semua orang sehingga keberadaan public key tidak bersifat rahasia. Private key pada asymmetric cryptography adalah key pribadi yang hanya diketahui oleh pemilik key sendiri. •
Berdasarkan cara plaintext diproses Berdasarkan cara plaintext diproses, algoritma kriptografi dibagi menjadi stream cipher dan block cipher.
18
Stream cipher adallah algoritm ma kriptograffi yang mem mproses plaintext dari d awal hinngga akhir sekaligus s tannpa mempeddulikan panjjang plainteext itu sendiri. s c adalah algoritm ma kriptograafi yang haanya mempproses Block cipher plaintext p denngan panjangg tertentu.
2 2.3.3
Symm metric Crypptography
2 2.3.3.1 Pengertian Sym mmetric Crypptography Symmetric cryptograpphy atau disebut jugga single key Encryyption meru upakan asal mula dari asymmetric cryptographhy. Symmettric cryptogrraphy meng ggunakan keey yang sam ma dalam prooses enkripsii dan dekripsi sehingga dapat digam mbarkan bahhwa proses dekripsi d adallah kebalikann dari proses enkripsi deengan meng ggunakan keey yang samaa.
S Symmetric C Cryptograph hy
Gambaar 2.4 Symm metric Cryptoography Sum mber Websiite http://ww ww.antilles.k k12.vi.us/m math/cryptottut/1vs2key..htm
19
Symmetric cryptography merupakan algoritma kriptografi yang lebih sederhana dibandingkan dengan asymmetric cryptography, sehingga ada banyak symmetric cryptography yang digunakan saat ini. Contoh-contoh symmetric cryptography antara lain: Tabel 2.2 Contoh-Contoh Symmetric Cryptography Algoritma Shift Cipher
Block Stream Cipher Stream Cipher Block Cipher Stream Cipher
Proses Monoalphabetic Substitution Monoalphabetic Substitution Polyalphabetic
Key1:Integer Key2:Integer Key: String
Transposition
Key: Integer
Palindrome
Stream
Transposition
Tidak ada
DES TDES
Block Block Cipher
Kompleks Kompleks
AES
Block Cipher
Kompleks
Key: 56 bit Key1: 56 bit Key2: 56 bit Key3: 56 bit Key: 128 bit – 256 bit
Affine Cipher Vigenere Transposition
Key Key: Integer
Rumus = ( + key) mod 26 =(key1. +key2) mod 26 =( + ) mod 26 = /
= Kompleks Implementasi dari DES tiga kali dengan tiga key Kompleks
2.3.3.2 Advanced Encryption Standard (AES) Advanced Encryption Standard (AES) atau dikenal juga dengan sebutan Rijndael, adalah block cipher yang dianggap sebagai standard enkripsi oleh pemerintah Amerika Serikat. AES tidak sepenuhnya merupakan Rijndael, karena AES hanya mendukung ukuran block 128 bit dan ukuran key 128, 192 dan 256 bit, sedangkan Rijndael dapat menggunakan ukuran key dan block kelipatan 32 bit, dimulai dari 128 bit hingga 256 bit.
20
Secara umuum AES terdiiri dari 4 langgkah: 1. SubBytes, S m merupakan langkah suubstitusi nonn-linear dim mana setiap byte diganti d sesuaai dengan taabel tertentu. Pada langkkah subbytes,, setiap bytee pada array a akan diubah denngan mengggunakan S--Box Rijndaael. S-Box yang digunakan, d diturunkan dari inverss multiplikaatif terhadapp GF (28), yang diketahui d meempunyai siffat non-lineaar.
Gamb bar 2.5 Langgkah SubByytes Pada AE ES Sumber htttp://en.wikip pedia.org/w wiki/Advancced_Encryption_Standaard
2. 2 ShiftRow ws, merupakan langkah transposisi bytet b dimanna masing-m masing baris bytee dirotasi deengan jumlahh pergeserann tertentu. Juumlah pergeeseran baris adalah 0, 1, 2 dan d 3 byte unntuk masing--masing bariis pertama, kedua k ketiga daan keempat.
Gambar 2.6 Langgkah ShiftRoows Pada AE ES Sumber htttp://en.wikip pedia.org/w wiki/Advancced_Encryption_Standaard
21
3. 3 MixColu umns, meruppakan operassi pencampuuran empat byte b pada maasingmasing kolom k untukk menghasillkan empat byte outputt. Masing-m masing kolom diibuat menjaddi polinom GF G (28) dann kemudian dikalikan deengan modulo
dengaan polinomiaal konstan
.
Gambarr 2.7 Langk kah MixColu umns Pada AES A Sumber S http p://en.wikip pedia.org/wiiki/Advanceed_Encrypttion_Standaard
4. 4 AddRoun ndKey, menngoperasikann byte-byte input denngan round key. Round keey didapat melalui algoritma key schedule. Proses P kombbinasi dilakukann dengan meenggunakan operasi
Gambarr 2.8 Langkaah AddRoun ndKey Pada AES Sumber S http p://en.wikip pedia.org/wiiki/Advanceed_Encrypttion_Standaard
22
2.3.3.3 Peranan Serpent AES Pada Symmetric Cryptography Serpent AES adalah symmetric cryptography yang memproses ukuran block 128 bit dengan ukuran key 128 bit. Serpent merupakan finalis dari lomba AES yang dimenangkan oleh Rijndael. Serpent mempunyai kompleksitas yang lebih rumit sehingga Serpent lebih lambat dibandingkan dengan Rijndael. Meskipun demikian keamanan Serpent lebih kompleks dibandingkan dengan kriptografi Rijndael sendiri. Keamanan Serpent telah terbukti, hingga hanya dapat diserang dengan pencarian brute-force. Berdasarkan analisis yang ada, untuk mendapatkan sebuah key berukuran 256 bit, sebuah supercomputer membutuhkan waktu 256 bit. Hingga saat ini algoritma Serpent belum dipatenkan sebagai sebuah AES sehingga semua orang dapat menggunakan Serpent untuk mengamankan datadata mereka ataupun mempelajari Serpent untuk mengembangkan ilmu kriptografi.
2.3.3.4 Substitution Permutation Network (SP-Network) Pada kriptografi, SP-Network adalah sekumpulan operasi matematika yang digunakan dalam algoritma kriptografi block cipher seperti AES. SP-Network ini terdiri dari S-Box dan P-Box yang mengubah block input menjadi block output. Operasi-operasi pada SP-Network merupakan operasi yang dapat dilakukan secara langsung oleh hardware, seperti operasi AND dan XOR. S-Box mengubah bit-bit input menjadi bit-bit output. Pada S-Box yang ideal, perubahan satu bit input dapat berakibat perubahan untuk setengah dari bitbit output, dan masing-masing bit output bergantung pada setiap bit input.
23
Pada kriptografi, S-Box adalah komponen dasar dari symmetric cryptography. Pada block cipher, S-Box digunakan untuk membuat hubungan antara plaintext dan ciphertext menjadi tidak jelas. S-Box biasanya dibuat dengan teliti sehingga dapat bertahan dari cryptanalysis. Pada umumnya, S-Box menggunakan beberapa input m, kemudian mengubahnya menjadi beberapa bit output n (S-Box
). S-Box tersebut
diimplementasikan sebagai suatu tabel. Tabel S-Box pada kriptografi biasanya telah ditentukan, misalnya S-Box Data Encryption Standard (DES), tetapi pada beberapa algoritma kriptografi, S-Box dibuat secara dinamis tergantung pada key, misalnya kriptografi Blowfish atau kriptografi Twofish. Berikut adalah contoh S-Box dari DES (S5): Tabel 2.3 Contoh S-Box Pada DES (S5) Sumber Website http://en.wikipedia.org/wiki/Substitution_box S5
Bit‐bit dalam 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 00 0010 1100 0100 0001 0111 1100 1011 0110 1000 0101 0011 1111 1101 0000 1110 1001
Bit‐bit 01 1110 1011 0010 1100 0100 0111 1101 0001 0101 0000 1111 1100 0011 1001 1000 0110 luar 10 0100 0010 0001 1011 1100 1101 0111 1000 1111 1001 1100 0101 0110 0011 0000 1110 11 1011 1000 1100 0111 0001 1110 0010 1101 0110 1111 0000 1001 1100 0100 0101 0011
Dengan diketahui 6 bit input 011011 maka akan didapat 4 bit output 1001. Bit-bit input dibagi menjadi 2 bit luar dan 4 bit dalam (0-1101-1), sehingga menghasilkan 01 dan 1101. Output didapat dari hasil kombinasi tabel antara 01 dan 1101, yaitu 1001.
24
2.3.3.5 Key Schedule S Pada kripttografi, keyy schedule disebut jugga dengan product ciipher, meru upakan baggian dalam symmetric cryptograpphy yang bertujuan untuk u meng ghasilkan subkey-subkeey dengan mengoperassikan key pada p tahap--tahap kripttografi tertenntu. Tujuan utama u dari pembentukan p n subkey-subbkey adalah untuk u mem mpersulit kripptoanalis unttuk mendapaatkan key.
Gambaar 2.9 Key Schedule S Pad da DES Sumberr Website http://en.wik h kipedia.org//wiki/Key_sschedule
Beberapa algoritma a krriptografi mempunyai key k schedule yang sederrhana. Misaalnya key scchedule padaa block ciphher TEA, hannya memisaahkan key 1228 bit menjjadi empat buah b subkey berukuran 32 3 bit dan menggunaka m an masing-m masing subk key tersebut secara s bergaantian pada masing-masi m ing tahap.
25
Salah satu key schedule yang banyak digunakan adalah key schedule pada DES. Key berukuran 56 bit pada DES dipisah menjadi dua bagian berukuran 28 bit. Masing-masing bagian dioperasikan secara terpisah, yaitu dengan merotasikan satu atau dua bit, kemudian 48 subkey dipilih dengan menggunakan Permutation Choice 2 (PC2). 48 subkey tersebut dihasilkan oleh masing-masing 24 bit dari 28 bit bagian kiri dan kanan. Banyak algoritma modern menggunakan key schedule yang lebih rumit, seperti penggunaan one-way function untuk memperluas sebuah key menjadi subkey. Algoritma kriptografi Rijndael dan Blowfish kadang-kadang mengawali key schedule dengan random angka.
2.3.4
Asymmetric Cryptography Asymmetric cryptography atau sering disebut sebagai public key encryption menggunakan dua buah key yang berbeda yaitu public key dan private key. Public key merupakan key tanda dari user yang diketahui oleh semua orang yang kemudian akan digunakan untuk proses enkripsi, sedangkan private key bersifat rahasia dan merupakan key yang digunakan untuk proses dekripsi. Pada buku “Golden Bough” karangan Sir James George Frazer, terdapat tulisan “Every Egyptians receive two names, which were known respectively as the true name and the good name, or the great name and the little name; and while the good name or the little name was made public, the true name or the great name appears to have been carefully concealed”. Tulisan tersebut adalah asal mula ilustrasi dari asymmetric cryptography.
26
Pada asymmetric cryptography, pengirim mengenkripsi plaintext dengan menyertakan public key penerima, dan apabila penerima sudah menerima ciphertext, proses dekripsi dilakukan dengan menginput ciphertext yang disertai private key penerima, yang hanya diketahui oleh penerima. Dengan demikian data tersebut aman. , , Asymmetric Cryptography
Gambar 2.10 Asymmetric Cryptography Sumber Website http://www.antilles.k12.vi.us/math/cryptotut/1vs2key.htm
RSA adalah sebuah algoritma kriptografi untuk asymmetric cryptography atau disebut juga public key encryption. RSA merupakan algoritma kriptografi pertama yang menggunakan konsep message-signing seiringan dengan proses enkripsi, yang merupakan salah satu dari kelebihan besar asymmetric cryptography. RSA banyak digunakan dalam protokol e-commerce, dan dipercaya bahwa aman dengan key yang panjang dan menggunakan implementasi terbaru.
27
2.3.5
Serpent Advanced Encryption Standard (Serpent AES) Serpent adalah algoritma kriptografi yang bersifat block cipher symmetric cryptography yang merupakan AES finalis pada kontes AES, dimana kontes tersebut dimenangkan oleh Rijndael AES. Serpent ditemukan oleh Ross Anderson, Eli Biham dan Lars Knudsen. Seperti halnya AES yang lain, Serpent mempunyai ukuran block sebesar 128 bit dan dapat mendukung key dengan ukuran 128 bit, 192 bit ataupun 256 bit.
Serpent
Permutation
mengimplementasikan Network
(SP
kriptosistem 32
Network),
dimana
tahap Substitutiontahap-tahap
tersebut
mengoperasikan empat buah variable dengan ukuran 32 bit. Masing-masing tahap menggunakan delapan buah 4 bit x 4 bit S-Box secara paralel. Serpent dirancang sehingga semua operasi dapat dijalankan secara paralel, menggunakan 32 buah 1 bitslice. Hal ini memaksimalkan pararelisme, tetapi juga memungkinkan adanya kriptoanalisis yang luas.
2.3.5.1 Cara Kerja Serpent AES Penjelasan Cara Kerja Serpent AES Serpent dapat digambarkan sebagai Substitution-Permutation Network sebanyak 32 tahap, yang mengoperasikan 4 buah variabel 32 bit, sehingga ukuran block plaintext adalah 128 bit. Nilai-nilai yang ada di dalam algoritma ini direpresentasikan sebagai aliran bit. Serpent mengenkripsi plaintext dengan ukuran 128 bit menjadi ciphertext dengan ukuran 128 bit dalam 32 tahap dengan bantuan 33 buah key berukuran 128 bit, 192 bit ataupun 256 bit. Key pendek dibawah 256 bit akan diperpanjang menjadi 256 bit dengan cara menambahkan
28
bit 1 pada akhirr MSB dan menambahkkan bit 0 pada sisanya sehingga s lenngkap menjjadi 256 bit. d Algoritma Serpent senddiri terdiri dari: •
Permutasi P aw wal
•
32 3 tahap Subbstitution Perrmutation Network, N terddiri dari operrasi pencamppuran key, k melalui S-Box dan transformasi t i linear kecuuali pada tahhap terakhir. Pada taahap terakhiir, transform masi linear digganti menjaddi operasi peencampuran key.
•
Permutasi P akkhir
Gambarr 2.11 Substtitution Perm mutation Neetwork Pad da Serpent AES A Sumber Website http://en.wiikipedia.orgg/wiki/Serpeent_(cipherr)
29
Permutasi awal dan permutasi akhir tidak mempunyai guna kriptografi, dan hanya berguna untuk menyederhanakan dan mengoptimalisasi algoritma kriptografi tersebut dan untuk meningkatkan efisiensi perhitungan. Notasi-notasi yang kita gunakan adalah: •
Plaintext P disebut juga
•
Tahap terdiri dari 32 tahap, dinotasi dengan tahap 0 hingga tahap 31.
•
B, merupakan input dan output dari masing-masing tahap.
, yang merupakan inputan untuk tahap pertama.
input untuk tahap 0 adalah
dan hasilnya adalah
.
Ciphertext C.
•
Permutasi awal IP.
•
Permutasi akhir FP.
•
SBox yang terdiri dari 8 bagian yaitu
,
,
,
,
,
dan
.
{i=0, 1, 2, …, 31} hanya menggunakan
Untuk masing-masing tahap sebaris S-Box. Contohnya,
,
akan digunakan
dan seterusnya.
sebagai input pada tahap kedua untuk menghasilkan •
, merupakan
menggunakan
, diduplikat sebanyak 32 buah dan
mengambil bit-bit dari
dijalankan bersamaan. Jadi duplikat
sebagai
masukan dan menghasilkan empat bit pertama dari bit panjang yang akan dikembalikan. Duplikat selanjutnya dari
akan dioperasikan kembali dengan
untuk mendapat 4 bit selanjutnya. Hal ini berlangsung untuk seterusnya untuk menghasilkan
,
,
dan seterusnya hingga
,
dan
.
Himpunan dari delapan S-Box tersebut digunakan empat kali. Jadi setelah menggunakan
pada tahap 7, kita kembali menggunakan
pada tahap 8.
Tahap 31 terakhir sedikit berbeda dari yang lain, dimana setelah kita
30
mengoperasikan
dengan hasil
melainkan XOR dengan
, tidak dijalankan transformasi linear
. Hasil pada tahap tersebut berupa
, akan
dipermutasikankembali dengan FP, untuk mendapatkan tulisan sandi. Kesimpulannya, ketigapuluhdua tahap menggunakan delapan S-Box yang berbeda, yang masing-masing menyocokkan empat bit input dan empat bit output. Masing-masing S-Box digunakan sebanyak empat tahap, dan digunakan secara sekaligus. Bentuk S-Box akan dibahas kemudian. Algoritma kriptografi Serpent dapat digambarkan sebagai berikut:
dimana
Algoritma Serpent AES
S-Box pada Serpent adalah permutasi 4 bit dengan sifat-sifat sebagai berikut: •
Masing-masing karakteristik diferensial memiliki probabilitas paling besar 1 , dan sebuah perbedaan input 1 bit akan menghasilkan perbedaan yang 4 besar
•
Masing-masing karakteristik linear memiliki probabilitas diantara 1 2
1 , 4
dan hubungan linear antara sebuah bit input dan sebuah bit output mempunyai probabilitas diantara 1 2
1
8
31
•
Deretan non-linear bit output merupakan fungsi dari input bit adalah maksimum, bernilai 3. S-Box pada Serpent dibuat atas sifat-sifat tersebut, dimana ide tersebut
berasal dari RC4. Serpent menggunakan matrix yang terdiri dari 32 array yang masing-masing memiliki 16 nilai. 32 baris pertama matrix tersebut merupakan 32 baris S-Box pada DES dan ditransformasi dengan menukar nilai-nilai pada array ke-r tergantung pada nilai pada nilai-nilai di dalam array yang ke (r+1) dan pada string awal yang mewakili key. Jika pada array hasil terdapat sifat-sifat diferensial atau linear, maka array tersebut akan disimpan sebagai barisan S-Box pada Serpent. Hal ini diulang hingga dihasilkan delapan baris S-Box. Misalkan, serpent[.] adalah array yang mengandung 4 bit terakhir pada masing-masing
karakter
dari
16
karakter
ASCII
sebagai
berikut
“sboxesforserpent”. Kemudian sbox[.][.] merupakan array dengan ukuran 32x16, mengandung 32 baris dari 8 S-Box DES, dimana sbox[r][.] melambangkan baris ke-r. Fungsi swapentries(., .) berguna untuk menukar kedua nilai yang dikirimkannya. Maka algoritma untuk mendapatkan S-Box pada Serpent dapat dijelaskan pada pseudocode sebagai berikut:
MODUL S-BoxGenerator Index = 0 ULANG Current_SBox = Index modulo 32 MULAI i BERNILAI 0 HINGGA 15 LAKUKAN j = SBox[(Current_SBox + 1) modulo 32][i]
32
Tukar SBox[Current_SBox][i] Dengan SBox[Current_SBox][j] AKHIR MULAI JIKA SBox[Current_SBox][.] (Memenuhi Syarat) MAKA Simpan SBOX[Current_SBOX][.] AKHIR JIKA Index = Index + 1 HINGGA 8 S-Box Selesai dibuat AKHIR MODUL S-BoxGenerator Pseudocode S-Box Generator Pada Serpent AES Sumber: A Proposal for the AES (2007, Anderson-Biham-Knudsen)
Pada Serpent-0, pencipta menggunakan S-Box DES dengan tujuan untuk meningkatkan kepercayaan publik bahwa
pencipta tidak membuat jebakan
apapun pada algoritma ini. Jaminan yang sama terdapat pada Serpent-1 dengan fakta bahwa S-Box tersebut dibuat dengan syarat sederhana yang jelas tersebut. Algoritma kriptografi Serpent AES memiliki 32 tahap yang disebut dengan Substitution-Permutation Network. Plaintext akan menjadi data awal data-data
hingga
dari
yang akan digunakan untuk 32 tahap, dimana pada
masing-masing tahap terdapat operasi-operasi sebagai berikut: 1. Key Mixing: pada masing-masing tahap, sebuah subkey berukuran 128 bit di-XOR dengan data
.
2. S-Box: mengkombinasikan 128 bit input dengan key, yang terdiri dari empat buah
variabel
dengan
masing-masing
32
bit.
S-Box
tersebut,
diimplementasikan sebagai operasi logical, kemudian mengoperasikan variabel-variabel tersebut, dan hasilnya adalah empat buah variabel kembali.
33
CPU dimaksudkan untuk mengerjakan 32 S-Box sekaligus, menghasilkan
3. Transformasi linear: variabel-variabel 32 bit tersebut, dicampurkan secara linear dengan cara: ,
,
, 13 3
3 1 7
7 5 22 ,
,
,
Dimana <<< melambangkan rotasi dan << melambangkan pergeseran bit. Pada tahap terakhir, transformasi linear ini diganti dengan proses key mixing tambahan, yaitu
:=
(
)
masing-masing tahap ke-i, IP( ) = Alasan
utama
untuk
. Harap diingat bahwa pada
dan IP( ) =
memilih
.
transformasi
linear
adalah
untuk
memaksimalkan efek longsor pada S-Box. S-Box mempunyai sifat dimana
34
perbedaan sebuah bit input akan mengakibatkan perubahan dua buah bit output, sebagai mana deret {0, 1, 3, 5, 7, 13, 22} modulo 32 tidak mempunyai bit yang sama kecuali bit pertama, ini mengakibatkan perubahan sebuah bit input akan mengubah jumlah perubahan bit yang sangat banyak setelah dua tahap atau lebih. Efek tersebut adalah setiap bit plaintext mempengaruhi semua bit dari data setelah tiga tahap, sebagaimana juga bit pada key pada masing-masing tahap. Meskipun seseorang mencari subkey tertentu dan bekerja secara terbalik, hal ini tetap terjamin bahwa setiap bit pada key akan mempengaruhi setiap data setelah enam tahap. Alasan kedua adalah karena kesederhanaannya, dan dapat digunakan pada prosesor modern dengan jumlah pipeline stall yang minimum. Alasan ketiga adalah bahwa hal ini telah dianalisis dan telah ditemukan hubungan antara sifatsifat linear dan diferensial. Hubungan ini menunjukkan bahwa pilihan ini sesuai dengan kebutuhan kita. Algoritma kriptografi kita membutuhkan 132 buah variabel berukuran 32 bit. Pada awalnya user menyediakan key dengan ukuran 256 bit, kemudian kita ,
memperluas key tersebut hingga menjadi 33 buah subkey (
,
, …,
)
dengan ukuran 128 bit. Kita menuliskan key K sebagai delapan buah variabel 32 bit w-8, w-7, w-6, …, w-1 dan memperluas variabel-variabel tersebut menjadi deretan panjang key (dimana kita menyebutnya prekey) dengan rekursi dari transformasi affine sebagai berikut:
,
,
, …,
35
dimana PHI adalah bagian fractal dengan perbandingan emas √5
1 ⁄2
atau 0x9E3779B9 pada hexadecimal. Polinom yang mendasari, 1 bersifat primitif, dimana bersama dengan round key dilakukan untuk memastikan
distribusi
genap
dari
key
pada
tahap-tahap,
dan
untuk
menghilangkan key-key lemah dan key yang saling berhubungan. Round key dikalkulasi dengan prekey dari S-Box. Kita menggunakan S-Box untuk mentransformasi prekey
menjadi
dengan cara sebagai berikut:
{
,
,
,
} :=
(
,
,
,
)
{
,
,
,
} :=
(
,
,
,
)
,
,
{
,
,
,
} :=
(
,
)
{
,
,
,
} :=
(
,
,
,
)
{
,
,
,
} :=
(
,
,
,
)
… {
,
,
,
} :=
(
,
,
,
)
{
,
,
,
} :=
(
,
,
,
)
Kemudian kita menomori angka-angka 32 bit kj sebagai subkey Ki sebagai berikut: := {
,
,
,
}
Saat kita mengimplementasikan algoritma ini, awalnya sesuai dengan yang disebutkan diatas, daripada menggunakan operasi bitslice, sekarang kita menggunakan permutasi awal daripada roundkey untuk dapat menempatkan posisi bit yang benar pada kolom yang benar.
= IP( ).
36
2.3.5.2 Keamanan Serpent AES Serpent AES merupakan salah satu algoritma kriptografi yang bersifat sangat ketat dan hanya dapat dibobol oleh brute force attack, yaitu dengan mencoba masing-masing peluang yang artinya dengan komputer yang dapat melakukan proses brute force sebanyak 2 kurang 2
kali per detik, dibutuhkan lebih
detik untuk mendapatkan sebuah key sebesar 128 bit, sedangkan
untuk mendapatkan key sebesar 192 bit dibutuhkan 2 2
detik dan dibutuhkan
detik untuk mendapatkan sebuah key sebesar 256 bit. Serangan XSL, jika dilakukan dengan efektif, dapat melemahkan Serpent.
Hanya saja, banyak kriptoanalis beranggapan bahwa implementasi serangan XSL harus menghabiskan biaya yang lebih mahal dibandingkan dengan Serpent. Perkiraan angka untuk mendapatkan plaintext tertentu dengan segala jenis attack adalah 2 mencapai 2
dan dengan diperkuat S-Box yang kita dapat dari DES akan
.
Dengan keamanan mencapai 2
, dimaksudkan bahwa serangan
diferensial ataupun linear terhadap key apapun akan menggunakan text sebanyak itu, jika diasumsikan bahwa itu mungkin (karena pada kenyataannya tidak). Keamanan Serpent dapat digambarkan sebagai berikut: Tabel 2.4 Keamanan Serpent Sumber: A Proposal for the AES (2007, Anderson-Biham-Knudsen) Ukuran Block 128 128 128
Ukuran Key 128 192 256
Beban Pencarian 2 2 2
Tipe Serangan Brute Force Brute Force Brute Force
Text 1 2 2
37
Setelah dianalisis, kita menggunakan hubungan yang konservatif untuk menyanggupi permintaan untuk bertahan dari attack yang telah berkembang dan dipelajari. Misalnya analisis diferensial dan linear menggunakan 24-tahap dan 28-tahap karakteristik, lebih pendek 8 tahap dan 4 tahap dibandingkan dengan Serpent, sementara serangan terbaik DES menggunakan karakteristik yang lebih pendek daripada tiga tahap. Perkiraan untuk kemungkinan dari karakteristik terbaik juga bersifat sangat konservatif, dalam praktiknya hal tersebut memang seharusnya
lebih
rendah.
Sehingga,
dari
segi
kompleksitas
Serpent
mengharapkan jauh lebih rendah dibandingkan dengan angka sebenarnya, dan Serpent mungkin saja lebih aman dibandingkan yang telah dianalisis.
2.4 Teori Simulasi Menurut Law dan Kelton (1991, p1), simulasi atau juga dapat disebut pengimitasian adalah meniru atau menggambarkan operasi-operasi yang terjadi pada berbagai macam fasilitas atau proses yang terjadi pada kehidupan nyata dengan menggunakan bantuan komputer. Fasilitas-fasilitas atau proses-proses yang disebutkan di atas itulah yang dikenal dengan nama sistem. Lebih lengkapnya, sistem adalah kumpulan kesatuan, yang bekerja dan berinteraksi bersama-sama menuju hasil akhir yang logis, yang menjadi tujuan bersama. Untuk mempelajari suatu sistem secara ilmiah, asumsi-asumsi tentang bagaimana sistem itu bekerja seringkali harus dilakukan. Asumsi-asumsi ini biasanya dipaparkan dalam relasi matematik atau logik. Dari sanalah dibangun
38
sebuah model yang digunakan untuk mencoba membangun pengertian tentang kerja atau perilaku dari sistem yang bersangkutan. Apabila hubungan yang membangun model cukup sederhana, dapat digunakan metode-metode matematik seperti aljabar, kalkulus, atau teori probabilitas untuk mendapatkan jawaban yang pasti. Solusi ini dikenal dengan solusi analitik. Sayangnya, seperti yang telah dipaparkan diatas, banyaknya faktor-faktor tak terduga maupun yang tidak dapat diprediksikan sebelumnya terlalu banyak, sehingga sistem menjadi sangat kompleks. Karena itu, sistem ini tidak memungkinkan model yang realistik untuk dievaluasi secara analitik. Dalam simulasi, komputer digunakan sebagai alat bantu untuk mengevaluasi sebuah model secara numerik, dan data-data dikumpulkan untuk mengestimasi karakteristik sesungguhnya dari sebuah model. Secara umum, sistem dapat dipelajari perilakunya dengan menggunakan beberapa metode yang digambarkan pada diagram berikut.
Sistem
Eksperimen dengan sistem yang sebenarnya
Eksperimen dengan model dari suatu sistem Model fisik
Model matematik
Solusi analitik
Simulasi
Gambar 2.12 Cara Untuk Mempelajari Sistem Sumber: Law (1991, p4)
39
Jika memungkinkan untuk bereksperimen dengan sistem yang sebenarnya, tentunya hasil yang didapatkan mempunyai tingkat ketepatan yang sangat tinggi, bahkan sempurna. Sayangnya eksperimen ini membutuhkan biaya yang sangat tinggi dan waktu yang lama serta source yang besar, dan mungkin saja sistem yang diteliti belum pernah ada sebelumnya, sehingga eksperimen dengan menggunakan model merupakan pilihan yang seringkali harus ditempuh. Model fisik, atau yang pada umumnya dikenal sebagai emulator adalah model yang dibuat sungguh-sungguh mirip dengan aslinya, model tersebut dapat berperilaku hampir sama dengan sistem asli. Contohnya simulator pesawat terbang yang digunakan sekolah penerbangan untuk memberikan gambaran kondisi terbang sesungguhnya pada para siswa. Model ini dapat menggambarkan sistem dengan akurat, mendekati kondisi aslinya, tetapi biaya dan resource yang diperlukan sangatlah besar, sehingga seringkali model matematik dipilih untuk membuat model dari suatu sistem. Model matematik merepresentasikan sistem dalam relasi logical dan kuantitatif yang kemudian diubah dan dimanipulasi untuk melihat reaksi dari sistem yang dimaksud. Contoh sederhana dari model ini adalah relasi adalah jarak tempuh,
adalah kecepatan dan
, di mana
adalah waktu tempuhnya. Relasi
matematik tersebut diharapkan dapat menggambarkan jalannya sistem, yaitu seberapa panjang jarak yang ditempuh dengan kecepatan dan waktu tempuh yang telah diketahui. Setelah menggambarkan model matematik, harus dilihat apakah sistem yang digambarkan cukup sederhana. Jika cukup sederhana, maka model matematik ini dapat dikembangkan untuk mencari solusi pasti dari masalah tersebut, yaitu yang
40
dikenal dengan solusi analitik. Sebaliknya, apabila sistem terlalu kompleks, maka harus dibuat simulasi. Pembuatan simulasi tentunya harus disesuaikan dengan data yang didapat, karena itu simulasi dapat dibagi menjadi 3 dimensi perbedaan. 1.
Simulasi statis dan dinamis, yang menggambarkan suatu sistem pada
waktu tertentu di mana pada saat itu waktu tidak memiliki pengaruh terhadap perubahan state. Sebaliknya, simulasi dinamis menggambarkan sebuah sistem yang berubah seiring dengan perubahan waktu. 2.
Simulasi deterministik dan stokastik, adalah simulasi yang tidak
mempunyai komponen berdasarkan probabilitas. Sebaliknya, simulasi stokastik adalah simulasi yang memiliki komponen berdasarkan probabilitas. 3.
Simulasi kontinu dan diskrit, adalah simulasi di mana komponen-
komponen di dalamnya berubah secara kontinu, tidak selalu sesuai dengan perubahan waktu. Sebaliknya simulasi diskrit adalah simulasi yang komponen-komponennya berubah sesuai dengan perubahan waktu.
2.5 Software Development Life Cycle Menurut Turban, et. al. (2001, p477-486), Software Development Life Cycle (SDLC) adalah kerangka terstruktur yang terdiri dari beberapa proses yang berurutan yang diperlukan untuk membangun suatu sistem informasi. Pendekatan waterfall digunakan untuk menggambarkan SDLC. SDLC dirancang dengan tujuan untuk membangun alur pemrograman yang terstruktur dan untuk membantu manajemen proyek dalam perhitungan estimasi waktu dan sumber yang dibutuhkan suatu proyek.
41
Gamb bar 2.13 Eigght Stage SD DLC Sumber: Turban, ett. al. (2001, p. p 477)
Taahap-tahap SDLC S adalahh sebagai beerikut: 1. System Invvestigation System Innvestigation adalah tahhap yang mengutamak m kan pembelaajaran terhadap segaala kemungkkinan yang dapat d terjadi.. Dengan peembelajaran maka uatu sistem dapat terhhindar dari kesalahan yang dapatt mengakibatkan su peeningkatan usaha, u waktuu dan jumlahh pengeluarann. 2. System Annalysis System Analysis adallah tahap yang y mengaanalisis massalah yang perlu diiselesaikan. Tahap ini mendefinisiikan permassalahan, mengidentifikaasikan peenyebab, menspesifikas m sikan solusii, serta menngidentifikaasikan inform masiin nformasi yanng diperlukann.
42
3. System Design System Design adalah tahap yang menjelaskan bagaimana suatu sistem akan bekerja. Hasil dari tahap ini adalah output, input dan user interface dari sistem serta hardware, software, database dan prosedur. 4. Programming Programming adalah tahap yang menerjemahkan spesifikasi desain sistem menjadi bahasa pemrograman yang dapat dimengerti oleh komputer. 5. Testing Testing adalah tahap yang digunakan untuk memeriksa apakah pemrograman telah menghasilkan hasil yang diinginkan dan diharapkan atas situasi tertentu. Testing dirancang untuk mendeteksi adanya kesalahan coding. 6. Implementation Implementation adalah proses perubahan dari penggunaan sistem lama menjadi sistem yang baru. 7. Operation and Maintenance Operation and Maintenance adalah tahap untuk memelihara sistem baru yang akan dioperasikan dalam suatu periode waktu.
2.6 Unified Modelling Language Unified Modelling Language (UML) adalah bahasa grafis yang standar untuk memodelkan software object oriented (Lethbridge, 2002, p.151). UML mengandung tipe diagram yang bervariasi, termasuk: 1. Class Diagram 2. Sequence Diagram
43
2.6.1
Classs Diagram d strukktur statis yaang menunjuukkan Class diaggram adalah salah satu diagram struk ktur dari sisstem dengann menunjukkkan class-cclass yang ada a pada siistem, attrib bute dan meethod class-cclass tersebuut dan hubuungan antar class. Hubuungan classs terdiri dari link, associaation, aggreggation dan composition. c .
G Gambar 2.144 Notasi Claass Sumb ber: Lethbriidge (2002, p.439)
Class Pada Class Diagrram Gaambar 2.15 Hubungan H Sumber:: Website htttp://en.wik kipedia.org/w wiki/Class__Diagram
Link adalaah hubungaan dasar anntar objek yang y mengggambarkan garis peng ghubung antaara dua atau lebih class. Link merupaakan bagian dari associaation. Associationn menggam mbarkan kum mpulan linkk yang salinng berhubuungan. Bina ary Associattion (dengann dua titik akhir) biaasanya digam mbarkan seebagai sebuah garis, diimana masinng-masing titik t akhir dihubungkan d n dengan seebuah classs. Associatioon memiliki dua d atau lebiih titik akhirr.
44
Gamb bar 2.16 Hubungan Asssociation Paada Class Diiagram Sumber:: Website htttp://en.wik kipedia.org/w wiki/Class__Diagram
Aggregatioon adalah lambang l daari “memiliiki sebuah” atau hubuungan assocciation, tetaapi aggregattion lebih spesifik s dariipada associiation. Meskkipun aggrregation meerupakan peerluasan asssociation, huubungan agggregation hanya h dapaat melibatkann dua class. Aggregatioon terjadi billa suatu classs menganduung satu atauu lebih objekk dari classs lain, tetappi class yang dikandungg tidak mem miliki life cycle c dependdency deng gan class yanng menganduung.
Gamb bar 2.17 Hub bungan Agggregation Paada Class Diiagram Sumber:: Website htttp://en.wik kipedia.org/w wiki/Class__Diagram
Compositioon merupakkan hubunggan aggregaation di mana m class yang dikan ndung telah memiliki liffe cycle depeendency denggan class yang menganddung.
Gambar 2.18 Hub bungan Com mposition Paada Class Diagram D Sumber:: Website htttp://en.wik kipedia.org/w wiki/Class__Diagram
45
2.6.2
Sequ uence Diagraam Menurut Lethbridge L (22002, p270),, sequence diagram d adallah diagram yang menu unjukkan urrutan prosess dan penukkaran pesann oleh sejum mlah objek (dan seoraang aktor yaang optional)) dalam melaakukan tugaas tertentu. Sequence S diaagram meng ggambarkann skenario ruuntime sederhhana secara grafis.
Gaambar 2.19 Notasi N Objeect, Lifetime dan Activattion Sumb ber: Lethbriidge (2002, p.440)
Gambar 2.20 Contooh Sequencee Diagram Sumber: Website W http p://en.wikip pedia.org/wiiki/Sequencee_Diagram
46
2.7 State Transition Diagram 2.7.1
Pengertian STD STD merupakan suatu modeling tool yang menggambarkan sifat ketergantungan sistem. Pada mulanya hanya digunakan untuk menggambarkan suatu sistem yang memiliki sifat real time seperti proses control, telephone switching system, dan control system.
2.7.2
Simbol dan Sifat STD State adalah kumpulan keadaan dan atribut yang mencirikan objek pada waktu atau kondisi tertentu. Disimbolkan dengan segi empat.
Gambar 2.21 Notasi State
Transition adalah simbol perpindahan keaktifan dari sebuah objek menjadi objek lain. Transition disimbolkan dengan anak panah.
Gambar 2.22 Notasi Transition
Condition adalah suatu keadaan pada lingkungan eksternal yang dapat dideteksi oleh sitem. Condition menggambarkan syarat yang biasanya digunakan dalam hubungan seleksi. Action adalah yang dilakukan sistem bila terjadi
47
perubahan state atau merupakan reaksi terhadap kondisi. Aksi akan menghasilkan keluaran atau output. Display adalah hasil yang merupakan STD.
2.8 User Interface Design User Interface (UI) Design adalah perancangan tampilan antarmuka yang bersifat visual dari suatu aplikasi agar aplikasi tersebut dapat berinteraksi dengan baik dengan user dan dapat digunakan dengan maksimal. Proses perancangan UI harus mengandung arti dari unsur-unsur visual yang seimbang, yang dapat memodelkan inti dari operasi aplikasi yang akan dijalankan. Selain itu perancangan UI yang baik juga harus dapat membuat aplikasi hingga mudah digunakan dan dapat disesuaikan dengan kebutuhan masing-masing user. Dalam perancangan UI, terdapat delapan aturan emas yang mendukung sebuah perancangan UI yang baik. Delapan aturan emas, yang dijabarkan oleh Ben Scneiderman, tersebut antara lain: 1. Usaha untuk konsistensi dalam tampilan. 2. Memungkinkan user yang rutin untuk menggunakan shortcut. 3. Memberikan umpan balik yang informatif. 4. Memunculkan dialog box pada penutupan. 5. Mempunyai error-handling sederhana. 6. Memungkinkan user untuk membatalkan tindakan. 7. Mendukung komponen dan control. 8. Mengurangi penggunaan memori jangka pendek.