Upload
ngonguyet
View
226
Download
0
Embed Size (px)
Citation preview
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 service-
service 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 komponen-
komponen 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.
2
2
mem
dan
untuk
Field
2.2.2 Apli
Softw
Visio
emul
2.2.3 Arsi
dan s
FPG
sebu
Komponen
mungkinkan
Interconnec
k mengimpl
d-Programm
kasi FPGA
Aplikasi-ap
ware Define
on, pengena
lation ataupu
tektur FPG
Arsitektur
saluran rout
GA klasik ter
ah flip-flop,
.
Su
n-komponen
Logic Block
ct dapat dip
lementasikan
mable.
plikasi pada
ed Radio (SD
alan suara,
un perkemba
GA
FPGA tersus
ing yang me
rdiri dari emp
seperti yang
Gambar
mber Webs
program
ks untuk sal
program ole
n beberapa
a FPGA term
SDR), prototy
kriptografi
angan pada h
sun dari kum
emiliki jumla
pat atau ena
g ditunjukka
2.1 Logic B
site http://en
mmable int
ling. Kompo
eh pengguna
fungsi logi
masuk Digi
type ASIC, M
i, biometric
hal-hal lain.
mpulan Conf
ah kabel yan
am buah inpu
n dibawah.
Block Pada U
n.wikipedia
terconnects
onen-kompo
a setelah FP
ika, sesuai
ital Signal P
Medical Im
cs dan com
figurable Lo
ng sama. Seb
ut Look-Up
Umumnya
.org/wiki/Fp
pada F
onen Logic B
FPGA diprod
dengan nam
Processor (D
aging, Comp
mputer hard
ogic Blocks (
buah logic b
Table (LUT
pga
10
FPGA
Block
duksi,
manya
DSP),
mputer
dware
(CLB)
blocks
T) dan
Outp
arsite
pin o
kana
Input pada
put pada log
ektur ini, lok
Su
Setiap pin
output dapa
an dan salura
Su
a logic block
gic blocks h
kasi dari pin
Gam
mber Webs
input dapat
at dihubungk
an ke bawah
Gamb
mber Webs
ks terdiri da
hanya terdiri
logic blocks
mbar 2.2 In
site http://en
diakses mel
kan dengan
logic blocks
bar 2.3 Topo
site http://en
ari empat sin
i dari satu
s FPGA ditu
nput Output
n.wikipedia
alui satu sisi
kabel routi
s.
ologi Kotak
n.wikipedia
nyal LUT d
sinyal LUT.
unjukkan seb
Pad
.org/wiki/Fp
i dari logic b
ing dalam k
Switch
.org/wiki/Fp
dan sinyal w
. Sebagai co
bagai berikut
pga
blocks, seme
kedua salura
pga
11
waktu.
ontoh
t.
entara
an ke
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 Nama Contoh 1 Konstan Menentukan genap-ganjil suatu angka
Ackermann invers log Logaritmik beriterasi Hopcroft and Ullman search dengan
menggunakan disjoint set log Logaritmik Binary search log Polilogaritmik Tes Primalitas AKS
0 1
Akar Pencarian pada KD-Tree
Linear Sequencial search log Linearitmik, Loglinear Heapsort, Fast Fourier Transform
Kuardratik Insertion Sort Polinomial Algoritma Floyd-Warshall Eksponensial Travelling Sales Problem
! Faktorial Brute Force Eksponensial n
1 Eksponensial ganda 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.
2
2
d
s
p
2.3.3 Symm
2.3.3.1 Pen
meru
meng
digam
meng
Sum
Stream
dari awal hin
sendiri.
Block c
plaintext den
metric Cryp
gertian Sym
Symmetric
upakan asal
ggunakan ke
mbarkan bah
ggunakan ke
mber Websi
cipher adal
ngga akhir s
cipher adal
ngan panjang
ptography
mmetric Cryp
cryptograp
mula dari
ey yang sam
hwa proses d
ey yang sama
S
Gamba
ite http://ww
lah algoritm
sekaligus tan
ah algoritm
g tertentu.
ptography
phy atau
asymmetric
ma dalam pro
dekripsi adal
a.
Symmetric C
ar 2.4 Symm
ww.antilles.k
ma kriptograf
npa memped
ma kriptogra
disebut jug
cryptograph
oses enkripsi
lah kebalikan
Cryptograph
metric Crypto
k12.vi.us/m
fi yang mem
dulikan panj
afi yang ha
ga single
hy. Symmet
i dan dekrip
n dari prose
hy
ography
math/cryptot
mproses pla
jang plainte
anya memp
key Encry
tric cryptogr
si sehingga
s enkripsi de
tut/1vs2key.
18
intext
ext itu
proses
yption
raphy
dapat
engan
.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 Block Proses Key Rumus Shift Cipher Stream
Cipher Monoalphabetic
Substitution Key: Integer = ( + key)
mod 26 Affine Cipher Stream
Cipher Monoalphabetic
Substitution Key1:Integer Key2:Integer
=(key1. +key2) mod 26
Vigenere Block Cipher
Polyalphabetic Key: String = ( + ) mod 26
Transposition Stream Cipher
Transposition Key: Integer = /
Palindrome Stream Transposition Tidak ada = DES Block Kompleks Key: 56 bit Kompleks
TDES Block Cipher
Kompleks Key1: 56 bit Key2: 56 bit Key3: 56 bit
Implementasi dari DES tiga kali dengan tiga key
AES Block Cipher
Kompleks Key: 128 bit – 256 bit
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.
1. S
d
a
d
d
2
Secara umu
SubBytes, m
diganti sesua
array akan
digunakan,
diketahui me
Sumber htt
2. ShiftRow
baris byte
baris ada
ketiga da
Sumber htt
um AES terdi
merupakan
ai dengan ta
diubah den
diturunkan
empunyai sif
Gamb
tp://en.wikip
ws, merupak
e dirotasi de
lah 0, 1, 2 d
an keempat.
Gamb
tp://en.wikip
iri dari 4 lang
langkah su
abel tertentu.
ngan meng
dari invers
fat non-linea
bar 2.5 Lang
pedia.org/w
an langkah
engan jumlah
dan 3 byte un
ar 2.6 Lang
pedia.org/w
gkah:
ubstitusi non
Pada langk
ggunakan S-
s multiplika
ar.
gkah SubBy
wiki/Advanc
transposisi b
h pergeseran
ntuk masing-
gkah ShiftRo
wiki/Advanc
n-linear dim
kah subbytes,
-Box Rijnda
atif terhadap
ytes Pada AE
ced_Encryp
bytet diman
n tertentu. Ju
-masing bari
ows Pada AE
ced_Encryp
mana setiap
, setiap byte
ael. S-Box
p GF (28),
ES
tion_Standa
na masing-m
umlah perge
is pertama, k
ES
tion_Standa
20
byte
e pada
yang
yang
ard
masing
eseran
kedua
ard
3
S
4
S
3. MixColu
masing k
kolom di
modulo
Sumber http
4. AddRoun
Round ke
dilakukan
Sumber http
umns, merup
kolom untuk
ibuat menjad
denga
Gambar
p://en.wikip
ndKey, men
ey didapat
n dengan me
Gambar
p://en.wikip
pakan operas
k menghasil
di polinom G
an polinomia
r 2.7 Langk
pedia.org/wi
ngoperasikan
melalui alg
enggunakan
r 2.8 Langka
pedia.org/wi
si pencampu
lkan empat
GF (28) dan
al konstan
kah MixColu
iki/Advance
n byte-byte
oritma key
operasi
ah AddRoun
iki/Advance
uran empat b
byte output
n kemudian
umns Pada A
ed_Encrypt
input den
schedule. P
ndKey Pada
ed_Encrypt
byte pada ma
t. Masing-m
dikalikan de
AES
tion_Standa
ngan round
Proses komb
AES
tion_Standa
21
asing-
masing
engan
.
ard
key.
binasi
ard
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 data-
data 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 bit-
bit 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
Bit‐bit luar
00 0010 1100 0100 0001 0111 1100 1011 0110 1000 0101 0011 1111 1101 0000 1110 1001
01 1110 1011 0010 1100 0100 0111 1101 0001 0101 0000 1111 1100 0011 1001 1000 0110
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.
22.3.3.5 Key S
meru
meng
kript
mem
Misa
menj
subk
Schedule
Pada kript
upakan bag
ghasilkan s
tografi terten
mpersulit krip
Sumber
Beberapa a
alnya key sc
jadi empat b
key tersebut s
tografi, key
gian dalam
ubkey-subke
ntu. Tujuan u
ptoanalis unt
Gamba
r Website h
algoritma kr
chedule pada
buah subkey
secara berga
y schedule
symmetric
ey dengan
utama dari p
tuk mendapa
ar 2.9 Key S
http://en.wik
riptografi m
a block ciph
berukuran 3
antian pada m
disebut jug
cryptograp
mengoperas
pembentukan
atkan key.
Schedule Pad
kipedia.org/
empunyai k
her TEA, han
32 bit dan m
masing-masi
ga dengan
phy yang
sikan key p
n subkey-sub
da DES
/wiki/Key_s
key schedule
nya memisa
menggunaka
ing tahap.
product ci
bertujuan u
pada tahap-
bkey adalah u
schedule
yang seder
ahkan key 12
an masing-m
24
ipher,
untuk
-tahap
untuk
rhana.
28 bit
masing
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 mengimplementasikan kriptosistem 32 tahap Substitution-
Permutation Network (SP Network), dimana tahap-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
bit 1
menj
• P
• 3
k
ta
• P
pada akhir
jadi 256 bit.
Algoritma
Permutasi aw
32 tahap Sub
key, melalui
ahap terakhi
Permutasi ak
Gambar
Sumb
r MSB dan
Serpent send
wal
bstitution Per
S-Box dan t
ir, transform
khir
r 2.11 Subst
er Website
menambahk
diri terdiri d
rmutation N
transformasi
masi linear dig
titution Perm
http://en.wi
kan bit 0 pa
dari:
Network, terd
i linear kecu
ganti menjad
mutation Ne
ikipedia.org
da sisanya s
diri dari oper
uali pada tah
di operasi pe
etwork Pad
g/wiki/Serpe
sehingga len
rasi pencamp
hap terakhir.
encampuran
da Serpent A
ent_(cipher
28
ngkap
puran
Pada
key.
AES
r)
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 , yang merupakan inputan untuk tahap pertama.
• Tahap terdiri dari 32 tahap, dinotasi dengan tahap 0 hingga tahap 31.
• B, merupakan input dan output dari masing-masing tahap. , merupakan
input untuk tahap 0 adalah dan hasilnya adalah . akan digunakan
sebagai input pada tahap kedua untuk menghasilkan dan seterusnya.
• Ciphertext C.
• Permutasi awal IP.
• Permutasi akhir FP.
• SBox yang terdiri dari 8 bagian yaitu , , , , , , dan .
Untuk masing-masing tahap {i=0, 1, 2, …, 31} hanya menggunakan
sebaris S-Box. Contohnya, menggunakan , diduplikat sebanyak 32 buah dan
dijalankan bersamaan. Jadi duplikat mengambil bit-bit dari 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 , dan
seterusnya untuk menghasilkan , , dan seterusnya hingga .
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 , tidak dijalankan transformasi linear
melainkan XOR dengan . 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
14, dan sebuah perbedaan input 1 bit akan menghasilkan perbedaan yang
besar
• Masing-masing karakteristik linear memiliki probabilitas diantara 1 21
4,
dan hubungan linear antara sebuah bit input dan sebuah bit output
mempunyai probabilitas diantara 1 21
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 dari
data-data hingga 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 := ( ) . Harap diingat bahwa pada
masing-masing tahap ke-i, IP( ) = dan IP( ) = .
Alasan utama untuk 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 sifat-
sifat 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 kali per detik, dibutuhkan lebih
kurang 2 detik untuk mendapatkan sebuah key sebesar 128 bit, sedangkan
untuk mendapatkan key sebesar 192 bit dibutuhkan 2 detik dan dibutuhkan
2 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 dan dengan diperkuat S-Box yang kita dapat dari DES akan
mencapai 2 .
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
Ukuran Key Beban Pencarian
Tipe Serangan
Text
128 128 2 Brute Force 1 128 192 2 Brute Force 2 128 256 2 Brute Force 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.
Gambar 2.12 Cara Untuk Mempelajari Sistem
Sumber: Law (1991, p4)
Sistem
Eksperimen dengan sistem yang sebenarnya
Eksperimen dengan model dari suatu sistem
Model fisik Model matematik
Solusi analitik Simulasi
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 , di mana
adalah jarak tempuh, adalah kecepatan dan 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.
Ta
1.
te
su
pe
2.
di
pe
in
ahap-tahap S
System Inv
System In
rhadap sega
uatu sistem
eningkatan u
System An
System A
iselesaikan.
enyebab, m
nformasi yan
Gamb
Sumber:
SDLC adalah
vestigation
nvestigation
ala kemungk
dapat terh
usaha, waktu
nalysis
nalysis adal
Tahap ini
menspesifikas
ng diperlukan
bar 2.13 Eig
Turban, et
h sebagai be
adalah tah
kinan yang d
hindar dari
u dan jumlah
lah tahap y
mendefinisi
sikan solusi
n.
ght Stage SD
t. al. (2001, p
erikut:
hap yang m
dapat terjadi.
kesalahan
h pengeluaran
yang menga
ikan permas
i, serta men
DLC
p. 477)
mengutamak
. Dengan pe
yang dapat
n.
analisis mas
salahan, me
ngidentifika
kan pembela
embelajaran
t mengakib
salah yang
ngidentifika
asikan inform
41
ajaran
maka
atkan
perlu
asikan
masi-
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
22.6.1 Class
struk
attrib
class
peng
Bina
sebu
class
s Diagram
Class diag
ktur dari sis
bute dan me
s terdiri dari
Ga
Sumber:
Link adala
ghubung anta
Association
ary Associat
ah garis, di
s. Associatio
gram adalah
stem dengan
ethod class-c
link, associa
G
Sumb
ambar 2.15 H
: Website ht
ah hubunga
ara dua atau
n menggam
tion (dengan
imana masin
on memiliki d
salah satu d
n menunjuk
class tersebu
ation, aggreg
Gambar 2.14
ber: Lethbri
Hubungan
ttp://en.wik
an dasar an
lebih class.
mbarkan kum
n dua titik
ng-masing t
dua atau lebi
diagram struk
kkan class-c
ut dan hubu
gation dan c
4 Notasi Cla
idge (2002,
Class Pada
kipedia.org/w
ntar objek y
Link merupa
mpulan link
akhir) bia
titik akhir d
ih titik akhir
ktur statis ya
class yang a
ungan antar
composition.
ass
p.439)
Class Diagr
wiki/Class_
yang mengg
akan bagian
k yang salin
asanya digam
dihubungkan
r.
ang menunju
ada pada si
class. Hubu
.
ram
_Diagram
gambarkan
dari associa
ng berhubu
mbarkan se
n dengan se
43
ukkan
istem,
ungan
garis
ation.
ungan.
ebagai
ebuah
assoc
aggr
dapa
class
deng
dikan
Gamb
Sumber:
Aggregatio
ciation, teta
regation me
at melibatkan
Aggregatio
s lain, tetap
gan class yan
Gamb
Sumber:
Compositio
ndung telah
Gamb
Sumber:
bar 2.16 Hu
: Website ht
on adalah l
api aggregat
erupakan pe
n dua class.
on terjadi bil
pi class yan
ng mengandu
bar 2.17 Hub
: Website ht
on merupak
memiliki lif
ar 2.18 Hub
: Website ht
bungan Ass
ttp://en.wik
lambang da
tion lebih s
erluasan ass
la suatu clas
g dikandung
ung.
bungan Agg
ttp://en.wik
kan hubung
fe cycle depe
bungan Com
ttp://en.wik
sociation Pa
kipedia.org/w
ari “memili
spesifik dari
sociation, hu
ss mengandu
g tidak mem
gregation Pa
kipedia.org/w
gan aggrega
endency deng
mposition Pa
kipedia.org/w
ada Class Di
wiki/Class_
iki sebuah”
ipada associ
ubungan ag
ung satu atau
miliki life c
ada Class Di
wiki/Class_
ation di m
gan class ya
ada Class D
wiki/Class_
iagram
_Diagram
atau hubu
iation. Mesk
ggregation h
u lebih objek
cycle depend
iagram
_Diagram
mana class
ng mengand
Diagram
_Diagram
44
ungan
kipun
hanya
k dari
dency
yang
dung.
22.6.2 Sequ
menu
seora
meng
uence Diagra
Menurut L
unjukkan ur
ang aktor ya
ggambarkan
Ga
Sumber: W
am
Lethbridge (2
rutan proses
ang optional)
n skenario ru
ambar 2.19 N
Sumb
Gambar
Website http
2002, p270),
s dan penuk
) dalam mela
untime sederh
Notasi Obje
ber: Lethbri
2.20 Conto
p://en.wikip
, sequence d
karan pesan
akukan tuga
hana secara
ect, Lifetime
idge (2002,
oh Sequence
pedia.org/wi
diagram adal
n oleh sejum
as tertentu. S
grafis.
dan Activat
p.440)
e Diagram
iki/Sequence
lah diagram
mlah objek
Sequence dia
tion
e_Diagram
45
yang
(dan
agram
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.