BAB 2 LANDASAN TEORI. melalui sebuah spektrum frekuensi yang besar. menggunakan software yang berjalan pada Personal Computer (PC) biasa yang

dokumen-dokumen yang mirip
BAB 4 IMPLEMENTASI DAN EVALUASI. dan sistem operasi dengan spesifikasi sebagai berikut: 1. Processor: Intel Pentium, Core Duo, 1.

BAB 2 LANDASAN TEORI. gelombang radio untuk mengidentifikasi orang atau objek secara otomatis dengan

BAB 1 PENDAHULUAN. ini ikut mendorong terjadinya pertumbuhan di berbagai bidang, salah satunya

Algoritma Enkripsi Baku Tingkat Lanjut

BAB III ANALISIS DAN PERANCANGAN

Algoritma Spiral shifting

BAB III ANALISIS DAN PERANCANGAN

ANALISIS PERBANDINGAN KINERJA ALGORITMA TWOFISH DAN TEA (TINY ENCRYPTION ALGORITHM) PADA DATA SUARA

Algoritma Kriptografi Kunci Publik. Dengan Menggunakan Prinsip Binary tree. Dan Implementasinya

BAB III ANALISA MASALAH DAN PERANCANGAN PROGRAM

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

IMPLEMENTASI ENKRIPSI DATA BERBASIS ALGORITMA DES

Advanced Encryption Standard (AES) Rifqi Azhar Nugraha IF 6 A.

BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

PENGGUNAAN POLINOMIAL UNTUK STREAM KEY GENERATOR PADA ALGORITMA STREAM CIPHERS BERBASIS FEEDBACK SHIFT REGISTER

2.4.1 Teknik Blok Teknik Permutasi dan Transposisi Teknik teknik Kriptanalis Know Plainteks Analisys...

Algoritma SAFER K-64 dan Keamanannya

BAB III ANALISA DAN DESAIN SISTEM

BAB 2 LANDASAN TEORI

APLIKASI PENGAMANAN DOKUMEN DENGAN MENGGUNAKAN TEKNIK KRIPTOGRAFI ALGORITMA AES-RINJDAEL

Kriptografi Kunci Rahasia & Kunci Publik

BAB I PENDAHULUAN. 1.1 Latar Belakang. Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di

BAB III ANALISIS DAN DESAIN SISTEM

TINJAUAN PUSTAKA. Kriptografi

Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman

STUDI MENGENAI SERANGAN DIFFERENT CRYPTANALYSIS PADA ALGORITMA SUBSTITUTION PERMUATION NETWORK

BAB I PENDAHULUAN. Universitas Sumatera Utara

IMPLEMENTASI ALGORITMA AES PADA ENKRIPSI TEKS

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISA DAN DESAIN SISTEM. perancangan pembuatan kriptografi Impementasi AES ( Advanced Encyrption

Modul Praktikum Keamanan Sistem

ALGORITMA KRIPTOGRAFI AES RIJNDAEL

BAB II LANDASAN TEORI

BAB III ANALISIS DAN PERANCANGAN SISTEM. permasalahan-permasalahan dan kebutuhan-kebutuhan yang diharapkan sehingga dapat

PERANCANGAN APLIKASI ENKRIPSI DATA MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDARD

BAB III ANALISIS DAN PERANCANGAN

BAB III PENGERTIAN DAN SEJARAH SINGKAT KRIPTOGRAFI

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. pengembangan sistem yang lazim disebut Waterfall Model. Metode ini terdiri dari enam

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

TUGAS KRIPTOGRAFI Membuat Algortima Sendiri Algoritma Ter-Puter Oleh : Aris Pamungkas STMIK AMIKOM Yogyakarta emali:

BAB 2 TINJAUAN PUSTAKA

Studi Perbandingan Algoritma Kunci-Simetris Serpent dan Twofish

Universitas Sumatera Utara BAB 2 LANDASAN TEORI

Blok Cipher JUMT I. PENDAHULUAN

APLIKASI KRIPTOGRAFI ENKRIPSI DEKRIPSI FILE TEKS MENGGUNAKAN METODE MCRYPT BLOWFISH

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. Perancangan program aplikasi dalam skripsi ini menggunakan aturan linear sequential

BAB 1 PENDAHULUAN 1.1. Latar belakang

BAB 2 LANDASAN TEORI Interaksi Manusia dan Komputer. interaktif untuk digunakan oleh manusia. Golden Rules of Interaction Design, yaitu:

Advanced Encryption Standard (AES)

Kriptografi. A. Kriptografi. B. Enkripsi

CARA KERJA SERANGAN XSL

DATA ENCRYPTION STANDARD (DES) STANDAR ENKRIPSI DATA. Algoritma Kriptografi Modern

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

Data Encryption Standard (DES)

DAFTAR ISI ABSTRAK KATA PENGANTAR

BAB 3 ANALISIS DAN PERANCANGAN. Perancangan program aplikasi dalam skripsi ini menggunakan aturan linear

Vol. 3, No. 2, Juli 2007 ISSN PERANAN KRIPTOGRAFI DALAM KEAMANAN DATA PADA JARINGAN KOMPUTER

Rancang Bangun Aplikasi Keamanan Data Menggunakan Metode AES Pada Smartphone

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM. telah dijelaskan pada bab sebelumnya. Analisis yang dilakukan bertujuan untuk

Bab 3 Metode Perancangan

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

Studi dan Analisis Dua Jenis Algoritma Block Cipher: DES dan RC5

PENGGUNAAN BIG O NOTATION UNTUK MENGANALISA EFISIENSI ALGORITMA

BAB III ANALISA DAN PERANCANGAN

Pemampatan Data Sebagai Bagian Dari Kriptografi

Transformasi Linier dalam Metode Enkripsi Hill- Cipher

BAB III ANALISA MASALAH DAN PERANCANGAN

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN Latar Belakang

Pembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah

+ Basic Cryptography

RANCANGAN,IMPLEMENTASI DAN PENGUJIAN ZENARC SUPER CIPHER SEBAGAI IMPLEMENTASI ALGORITMA KUNCI SIMETRI


BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB Kriptografi

ABSTRAK. Universitas Kristen Maranatha

BAB 2 LANDASAN TEORI

BAB II TINJAUAN PUSTAKA

ANALISIS PERBANDINGAN KINERJA ALGORITMA BLOWFISH DAN ALGORITMA TWOFISH PADA PROSES ENKRIPSI DAN DEKRIPSI

BAB I PENDAHULUAN Latar Belakang

BAB II LANDASAN TEORI

II Bab II Dasar Teori

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB 2 TINJAUAN PUSTAKA. praktik yang dapat melakukan transaksi bisnis tanpa menggunakan kertas sebagai

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL

ARDES : Sebuah Algortima Block Cipher Modifikasi Data Encryption Standard

7

Perbandingan Sistem Kriptografi Kunci Publik RSA dan ECC

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

KOMPLEKSITAS DAN ANALISIS SANDI LINEAR ALGORITMA ENKRIPSI SUBTITUSI PERMUTASI SEDERHANA 128 BIT

Rancang Bangun Kombinasi Chaisar Cipher dan Vigenere Cipher Dalam Pengembangan Algoritma Kriptografi Klasik

Gambar 3.1 Flowchart proses enkripsi AES

BAB 2 LANDASAN TEORI

Perancangan Kriptografi Block Cipher 256 Bit Berbasis pada Pola Tuangan Air Artikel Ilmiah

General Discussion. Bab 4

Dampak S-Box AES Terhadap Perancangan Kriptografi Simetris Berbasis Pola Teknik Putaran Kincir Angin Artikel Ilmiah

BAB II DASAR TEORI. Gambar 2.1. Proses Enkripsi Dekripsi

Transkripsi:

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 Komponen-komponen programmable interconnects pada FPGA memungkinkan Logic Blocks untuk saling. Komponen-komponen Logic Block dan Interconnect dapat diprogram oleh pengguna setelah FPGA diproduksi, untuk mengimplementasikann beberapa Field-Programmable. fungsi logika, sesuai dengan namanya 2.2.2 Aplikasi FPGA Aplikasi-aplikasi padaa FPGA termasuk Digital Signal Processor (DSP), Software Defined Radio (SDR), prototype ASIC, Medical Imaging, Computer Vision, pengenalan suara, kriptografi, biometrics dan computer hardware emulation ataupun perkembangan pada hal-hal lain. 2.2.3 Arsitektur FPGA Arsitektur FPGA tersusun dari kumpulan Configurable Logic Blocks (CLB) dan saluran routing yang memiliki jumlah kabel yang sama. Sebuah logic blocks FPGA klasik terdiri dari empat atau enam buah input Look-Up Table (LUT) dan sebuah flip-flop, seperti yang ditunjukkan dibawah.. Gambar 2.1 Logic Block Pada Umumnya Sumber Website http://en.wikipedia.org/wiki/fpga

11 Input padaa logic blocks terdiri dari empat sinyal LUT dan sinyal waktu. Output pada logic blocks hanya terdirii dari satu sinyal LUT.. Sebagai contoh arsitektur ini, lokasi dari pin logic blocks FPGA ditunjukkan sebagai berikut. Gambar 2.2 Input Output Pad Sumber Website http://en.wikipedia.org/wiki/fpga Setiap pin input dapat diakses melalui satu sisii dari logic blocks, sementara pin output dapat dihubungkan dengan kabel routing dalam kedua saluran ke kanan dan saluran ke bawah logic blocks. Gambar 2.3 Topologi Kotak Switch Sumber Website http://en.wikipedia.org/wiki/fpga

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 Akar Pencarian pada KD-Tree 0 1 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.

18 Stream cipher adalah algoritma kriptografi yang memproses plaintext dari awal hingga akhir sekaligus tanpa mempedulikan panjang plaintext itu sendiri. Block cipher adalah algoritma kriptografi yang hanya memproses plaintext dengan panjang tertentu. 2.3.3 Symmetric Cryptography 2.3.3.1 Pengertian Symmetric Cryptography Symmetric cryptography atau disebut juga single key Encryption merupakan asal mula dari asymmetric cryptography. Symmetric cryptography menggunakan key yang sama dalam proses enkripsii dan dekripsi sehingga dapat digambarkan bahwa proses dekripsi adalah kebalikan dari proses enkripsi dengan menggunakan key yang sama. Symmetric Cryptography Gambar 2.4 Symmetric Cryptography Sumber Website http://www.antilles.k12.vi.us/math/cryptotut/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 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.

20 Secara umum AES terdiri dari 4 langkah: 1. SubBytes, merupakan langkah substitusi non-linear dimana setiap byte diganti sesuai dengan tabel tertentu. Pada langkah subbytes,, setiap byte pada array akan diubah dengan menggunakan S-Box Rijndael. S-Box yang digunakan, diturunkan dari invers multiplikatif terhadap GF (2 8 ), yang diketahui mempunyai sifat non-linear. Gambar 2.5 Langkah SubBytes Pada AES Sumber http://en.wikipedia.org/wiki/advanced_encryption_standard 2. ShiftRows, merupakan langkah transposisi bytet dimana masing-masing baris byte dirotasi dengan jumlah pergeseran tertentu. Jumlah pergeseran baris adalah 0, 1, 2 dan 3 byte untuk masing-masing baris pertama, kedua ketiga dan keempat. Gambar 2.6 Langkah ShiftRows Pada AES Sumber http://en.wikipedia.org/wiki/advanced_encryption_standard

21 masing kolom untuk menghasilkan empat 3. MixColumns, merupakan operasi pencampuran empat byte pada masing- byte output. Masing-masing kolom dibuat menjadi polinom GF (2 8 ) dan kemudian dikalikan dengan modulo dengan polinomial konstan. Gambar 2.7 Langkah MixColumns Pada AES Sumber http://en.wikipedia.org/wiki/advanced_encryption_standard 4. AddRoundKey, mengoperasikann byte-byte input dengan round key. Round key didapat melalui algoritma key schedule. Proses kombinasi dilakukan dengan menggunakan operasi Gambar 2.8 Langkah AddRoundKey Pada AES Sumber http://en.wikipedia.org/wiki/advanced_encryption_standard

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 S 5 Bit bit luar 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 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.

24 2.3.3.5 Key Schedule Pada kriptografi, key schedule disebut juga dengan product cipher, merupakan bagian dalam symmetric cryptography yang bertujuan untuk menghasilkan subkey-subkey dengan mengoperasikan key pada tahap-tahap kriptografi tertentu. Tujuan utama dari pembentukann subkey-subkey adalah untuk mempersulit kriptoanalis untuk mendapatkan key. Gambar 2.9 Key Schedule Pada DES Sumber Website http://en.wikipedia.org/ /wiki/key_schedule Beberapa algoritma kriptografi mempunyai key schedule yang sederhana. Misalnya key schedule padaa block cipher TEA, hanya memisahkan key 128 bit menjadi empat buah subkey berukuran 32 bit dan menggunakan masing-masing subkey tersebut secara bergantian pada masing-masing 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 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

28 bit 1 pada akhir MSB dan menambahkan bit 0 pada sisanya sehingga lengkap menjadi 256 bit. Algoritma Serpent sendiri terdiri dari: Permutasi awal 32 tahap Substitution Permutation Network, terdiri dari operasi pencampuran key, melalui S-Box dan transformasi linear kecuali pada tahap terakhir. Pada tahap terakhir, transformasi linear diganti menjadi operasi pencampuran key. Permutasi akhir Gambar 2.11 Substitution Permutation Network Pada Serpent AES Sumber Website http://en.wikipedia.org/wiki/serpent_(cipher)

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 berikut: S-Box pada Serpent adalah permutasi 4 bit dengan sifat-sifat sebagai Masing-masing karakteristik diferensial memiliki probabilitas paling besar 1 4, dan sebuah perbedaan input 1 bit akan menghasilkan perbedaan yang 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 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 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: berikut: {,,, } := (,,, ) {,,, } := (,,, ) {,,, } := (,,, ) {,,, } := (,,, ) {,,, } := (,,, ) {,,, } := (,,, ) {,,, } := (,,, ) Kemudian kita menomori angka-angka 32 bit kj sebagai subkey Ki sebagai := {,,, } 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 Ukuran Key Beban Tipe Text Block Pencarian Serangan 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. 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, 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 komponenkomponen 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 Gambar 2.13 Eight Stage SDLC Sumber: Turban, et. al. (2001, p. 477) Tahap-tahap SDLC adalah sebagai berikut: 1. System Investigation System Investigation adalah tahap yang mengutamakan pembelajaran terhadap segala kemungkinan yang dapat terjadi. Dengan pembelajaran maka suatu sistem dapat terhindar dari kesalahan yang dapat mengakibatkan peningkatan usaha, waktu dan jumlah pengeluaran. 2. System Analysis System Analysis adalah tahap yang menganalisis masalah yang perlu diselesaikan. Tahap ini mendefinisikan permasalahan, mengidentifikasikan penyebab, menspesifikasikan solusi, serta mengidentifikasikan informasi- informasi yang diperlukan.

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 Class diagram adalah salah satu diagram struktur statis yang menunjukkan struktur dari sistem dengann menunjukkan class-class yang ada pada sistem, attribute dan method class-class tersebut dan hubungan antar class. Hubungan classs terdiri dari link, association, aggregation dan composition.. Gambar 2.14 Notasi Class Sumber: Lethbridge (2002, p.439) Gambar 2.15 Hubungan Class Pada Class Diagram Sumber: Website http://en.wikipedia.org/wiki/class Diagram Link adalah hubungan dasar antar objek yang menggambarkan garis penghubung antara dua atau lebih class. Link merupakan bagian dari association. Association menggambarkan kumpulan link yang saling berhubungan. Binary Association (dengann dua titik akhir) biasanya digambarkan sebagai sebuah garis, dimana masing-masing titik akhir dihubungkann dengan sebuah class. Association memiliki dua atau lebih titik akhir.

44 Gambar 2.16 Hubungan Association Pada Class Diagram Sumber: Website http://en.wikipedia.org/wiki/class Diagram Aggregation adalah lambang dari memiliki sebuah atau hubungan association, tetapi aggregation lebih spesifik daripada association. Meskipun aggregation merupakan perluasan association, hubungan aggregation hanya dapat melibatkan dua class. Aggregation terjadi bila suatu class mengandung satu atau lebih objek dari classs lain, tetapi class yang dikandung tidak memiliki life cycle dependency dengan class yang mengandung. Gambar 2.17 Hubungan Aggregation Pada Class Diagram Sumber: Website http://en.wikipedia.org/wiki/class Diagram Composition merupakan hubungan aggregation di mana class yang dikandung telah memiliki life cycle dependency dengan class yang mengandung. Gambar 2.18 Hubungan Composition Pada Class Diagram Sumber: Website http://en.wikipedia.org/wiki/class Diagram

45 2.6.2 Sequence Diagram Menurut Lethbridge (2002, p270), sequence diagram adalah diagram yang menunjukkan urutan prosess dan penukaran pesan oleh sejumlah objek (dan seorang aktor yang optional) ) dalam melakukan tugas tertentu. Sequence diagram menggambarkan skenario runtime sederhana secara grafis. Gambar 2.19 Notasi Object, Lifetime dan Activation Sumber: Lethbridge (2002, p.440) Gambar 2.20 Contoh Sequencee Diagram Sumber: Website http://en.wikipedia.org/wiki/sequence_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.