BAB II LANDASAN TEORI
Bab ini menjelaskan tentang berbagai teori yang diperlukan dalam melakukan pengembangan aplikasi. Teori-teori tersebut mencakup definisi aplikasi, kriptografi, kriptografi Twofish, Eavesdropping, Multimedia Messenger Service (MMS), J2ME, Wireless Toolkit 2.5.2, MIDlet, Netbeans, perancangan sistem dengan DFD, Flowchart.
2.1
Pengertian Aplikasi[2] Aplikasi adalah suatu sub kelas perangkat lunak komputer yang
memanfaatkan kemampuan komputer secara langsung untuk melakukan suatu tugas yang dihendaki pengguna. Aplikasi atau perangkat lunak sistem mengintegrasikan berbagai kemampuan komputer, tetapi tidak secara langsung menerapkan kemampuan tersebut untuk mengerjakan suatu tugas yang menguntungkan pengguna. Contoh perangkat lunak atau aplikasi adalah pengolah kata, lembar kerja, dan pemutar media. Beberapa aplikasi yang digabung bersama menjadi suatu paket dapat disebut sebagai suatu paket aplikasi (application suite), contohnya adalah Microsoft Office dan Open Office yang menggabungkan aplikasi pengolahan kata, lembar kerja, serta beberapa aplikasi lainnya. Aplikasi dalam suatu paket biasanya memiliki antarmuka pengguna yang memiliki kesamaan sehingga memudahkan pengguna untuk mempelajari dan menggunakan setiap aplikasi.
2.2
Kriptografi[3] Kriptografi secara umum adalah ilmu dan seni untuk menjaga kerahasiaan
informasi. Selain pengertian tersebut terdapat pula pengertian kriptografi sebagai ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data.
II-1
II-2
Ada empat tujuan mendasar dari ilmu kriptografi yang merupakan aspek keamanan informasi, yaitu : 1.
Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi yang telah disandi.
2.
Integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubstitusian data lain kedalam data yang sebenarnya.
3.
Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
4.
Non-repudiasi, atau nirpenyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat. Algoritma kriptografi selalu terdiri dari dua bagian, yaitu fungsi enkripsi
dan dekripsi. Enkripsi (encryption) yaitu proses menyandikan plaintext atau cleartext menjadi bentuk ciphertext. Sedangkan dekripsi (decryption) adalah proses mengembalikan ciphertext menjadi plaintext semula. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci. Kunci biasanya berupa string atau deretan bilangan. Secara sederhana proses kriptografi dapat digambarkan sebagai berikut :
II-3
Gambar 2.1 Proses Enkripsi dan Dekripsi Sederhana Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah relasi antara dua himpunan yaitu yang berisi elemen teks terang / plaintext dan yang berisi elemen teks sandi/ciphertext. Enkripsi dan dekripsi merupakan fungsi transformasi antara himpunan-himpunan tersebut. Apabila elemen-elemen teks terang dinotasikan dengan P, elemen-elemen teks sandi dinotasikan dengan C, sedang untuk proses enkripsi dinotasikan dengan E, dekripsi dengan notasi D. Enkripsi : E (P) = C Dekripsi : D (C) = P atau D (E(P)) = P Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi : 1.
Kunci-simetris/symetric-key,
sering
disebut
juga
algoritma
sandi
konvensional karena umumnya diterapkan pada algoritma sandi klasik 2.
Kunci-asimetris/asymetric-key Pada skema kunci-simetris, digunakan sebuah kunci rahasia yang sama
untuk melakukan proses enkripsi dan dekripsinya. Sedangkan pada sistem kunciasimentris digunakan sepasang kunci yang berbeda, umumnya disebut kunci public(public key) dan kunci pribadi (private key), digunakan untuk proses enkripsi dan proses dekripsinya. Bila elemen teks terang dienkripsi dengan menggunakan kunci pribadi maka elemen teks sandi yang dihasilkannya hanya bisa didekripsikan dengan menggunakan pasangan kunci pribadinya. Begitu juga sebaliknya, jika kunci pribadi digunakan untuk proses enkripsi maka proses dekripsi harus menggunakan kunci publik pasangannya.
II-4
Beberapa contoh algoritma yang menggunakan kunci-simetris: a.
DES - Data Encryption Standard
b.
Blowfish
c.
Twofish
d.
MARS
e.
IDEA
f.
3DES - DES diaplikasikan 3 kali
g.
AES - Advanced Encryption Standard, yang bernama asli rijandael
2.3
Algoritma Twofish[2] Twofish merupakan algoritma kriptografi yang beroperasi dalam mode
blok cipher berukuran 128 bit dengan ukuran kunci sebesar 256 bit. Perancangan twofish dilakukan dengan memperhatikan kriteria-kriteria yang diajukan National Institute of Standards and Technology (NIST) untuk kompetisi Advanced Encryption Standard (AES), namun algoritma ini tidak terpilih sebagai basis standardisasi. Tujuan dari perancangan twofish yang selaras dengan kriteria NIST untuk AES adalah untuk membuat suatu algoritma kriptografi yang efisien dan portabel, rancangan yang fleksibel yang dapat menerima panjang kunci tambahan sehingga dapat diterapkan pada platform dan aplikasi yang sangat bervariatif serta cocok untuk cipher aliran, fungsi hash, dan MAC, serta rancangan yang sederhana agar memudahkan proses analisis dan implementasi algoritma. Algoritma twofish menggunakan struktur sejenis feistel dalam 16 putaran dengan tambahan teknik whitening terhadap input dan output. Teknik whitening sendiri adalah teknik melakukan operasi XOR terhadap materi kunci sebelum putaran pertama dan sesudah putaran akhir. Elemen di luar jaringan feistel normal yang terdapat dalam algoritma twofish adalah rotasi 1 bit. Proses rotasi ini dapat dipindahkan ke dalam fungsi F untuk membentuk struktur jaringan feistel yang murni, tetapi hal ini membutuhkan tambahan rotasi kata sebelum langkah outputwhitening. Berikut ini gambar dari struktur algoritma twofish.
II-5
Gamb bar 2.2 Stru uktur Algorritma Twofissh[2] L Langkah-lan ngkah algorittma twofish adalah sebag gai berikut : 1.
Masukaan satu blokk plaintext adalah 1288
bit. Satuu blok terseebut dibagi
menjadii 4 buah subb-blok yang masing-mas m ing sepanjanng 32 bit (A, B, C, dan D). 2 2.
Masing--masing subb-blok tersebbut diputihkaan dengan m meng-XOR-kkan dengan kunci k0, k1, k2, dann k3.
L Langkah-lan ngkah satu puutaran adalaah sebagai beerikut : 1.
2 buah 32 3 bit yang kiri k (A dan B) B merupakaan input fungsi g (yang merupakan m bagian dari fungsi f), yang saalah satunyaa (B) digeseer ke kiri seejauh 8 bit dahulu.
2 2.
Fungsi g memiliki 4 kotak substtitusi yang dibandingkan d n oleh kunci.
II-6
3.
Keluaran fungsi kotak substitusi dilakukan percampuran linear menggunakan kotak most dintance separable.
4.
Keluaran fungsi g dimasukan ke fungsi tranformasi pseudo-Hadamard, kemudian ditambahkan dengan 2 buah 32 bit dari kunci.
5.
Dua buah 32 bit hasil kemudian di-XOR-kan dengan C dan D. Hasil xor dengan C digeser ke kanan sejauh 1 bit. Dan untuk D sebelum di-XOR-kan digeser ke kiri sejauh 1 bit.
6.
2 buah 32 bit kiri dan kanan dipertukarkan (A dan B dipertukarkan dengan C dan D). Langkah-langkah di atas dilakukan hingga 16 kali putaran, kemudian
langkah selanjutnya yaitu : 1.
Hasil keluaran setelah diputar 16 kali, ditukar lagi (A dan B dipertukarkan dengan C dan D).
2.
Hasil dari pertukaran tersebut di-XOR-kan dengan empat buah 32 bit kunci menghasilkan ciphertext.
2.3.1
Fungsi F [3] Fungsi F adalah permutasi yang tergantung pada kunci pada nilai 64 bit.
Memerlukan 3 argumen, 2 buah 32 bit R0 dan R1. Nomor R digunakan untuk memilih subkunci yang benar. R0 dilewati melalui fungsi G yang menghasilkan T0. R1 dirotasi ke kiri 8 bit dan kemudian dilakukan fungsi dan menghasilkan T1. Hasil T0 dan T1 dikombinasikan menggunakan PHT dan 2 kata dari kunci ditambahkan. T0 = g(R0) T1 = g(ROL (R1,8)) F0 = (T0 + T1 + K2,+8) mod 232 F1 = (T0 + 2T1 + K2,+9) mod 232 F0 dan F1 adalah hasil dari F, yang masing-masing sepanjang 32 bit. Hasil keluaran ini nantinya akan dipertuklarkan dan dimasukan kembali ke putaran selanjutnya.
II-7
2.3.2
Fungsi G [3] Fungsi g meruapakan jantung dari keseluruhan algoritma twofish. 32 bit
masukan X dari fungsi f dipecah menjadi 4 buah yang masing-masing sepanjang 8 bit. Setiap 8 bit kemudian diproses dengan kotak S yang bersesuaian. Setiap kotak S bersifat bijektif, yaitu menerima 8 bit dan mengeluarkan 8 bit pula. 4 buah 8 bit hasil keluaran kemudian dikalikan dengan matriks most distance separable (MDS) 4x4. Hasil pengalian kemudian diartikan sebagai 32 bit, yang merupakan keluaran dari fungsi g, yang kemudian akan dikembalikan kembali ke fungsi f. Matriks MDS yang setiap elemennya ditampilkan sebagai heksadesimal adalah sebagai berikut :
2.3.3
Blok Pembangunan Twofish [3] Secara garis besar algoritma twofish dibangun dari beberapa algoritma
utama. Algoritma tersebut diambil dari prinsip pembangunan algoritma cipher block. Ada 6 prinsip yang digunakan, diantaranya : 1.
Jaringan Feistel Jaringa Feistel adalah metode umum untuk mentrasformasikan fungsi apapun bisa disebut fungsi F ke dalam permutasi. Beberapa algoritma kriptografi lain yang menggunakan jaringan Feistel misalnya LOKI, GOST, FEAL, Blowfish, KhufuKhafre, dan RC-5. Model jaringan Feistel bersifat reversibel, untuk proses enkripsi dan dekripsi, sehingga kita tidak perlu membuat algoritma baru untuk mendekripsikan ciphertext menjadi plaintext.
2.
Kotak-S (S-boxes) Kotak-S adalah matriks yang berisi substitusi non-linear yang memetakan satu atau lebih bit dengan satu atau lebih bit yang lain dan digunakan di banyak cipher block. Kotak-S memiliki ukuran input dan ukuran output yang bervariasi. Ada empat pendekatan yang digunakan dalam mengisi Kotak-S
II-8
dipilih secara acak, dipilih secara acak lalu diuji, dibuat oleh orang, dihitung secara matematis. Twofish menggunakan empat buah 8x8 bit kotak-S yang berbeda, bijektif, dan bergantung pada kunci. Kotak-S ini dibuat menggunakan 8x8 bit permutasi dan material kunci. 3.
MDS Matrices Kode MDS (Maksimum Distance Separable) pada sebuah field adalah pemetaan linear dari x elemen field ke y elemen field, dan menghasilkan vektor komposit x+y elemen, dengan ketentuan bahwa jumlah minimum dari elemen bukan nol pada setiap vektor bukan nol paling sedikit y+1. Dengan kata lain, jumlah elemen yang berbeda diantara dua vektor berbeda yang dihasilkan oleh pemetaan MDS paling sedikit y+1. Dapat dibuktikan dengan mudah bahwa tidak ada pemetaan yang dapat memiliki jarak pisah yang lebih besar diantara dua vektor yang berbeda, maka disebut jarak pisah maksimum (maksimum distance separable). Pemetaan MDS dapat direpresentasikan dengan sebuah MDS matriks yang terdiri dari x × y elemen. Kode perbaikan-kesalahan Reed-Solomon (RS) adalah MDS kondisi yang diperlukan untuk sebuah x × y matriks menjadi MDS adalah semua kemungkinan submatriks kotak, yang diperoleh dengan membuang kolom atau baris, adalah singular.
4.
Transformasi Pseudo-Hadamard Trasformasi
Pseudo-Hadamard
(PHT)
adalah
operasi
pencampuran
sederhana yang berjalan secara cepat dalam perangkat lunak. 32 bit PHT dengan dua masukan didefinisikan sebagai berikut : a’ = a+b mod 232 b’ = a+2b mod 232 SAFER menggunakan 8 bit PHT untuk difusinya. Twofish menggunakan 32 bit PHT untuk mengubah keluaran dari fungsi g-nya. PHT ini dapat dieksekusi dalam dua opcodes di mikroprosessor modern seperti keluaran pentium.
II-9
5.
Whitening Whitening adalah teknik meng-XOR-kan material kunci sebelum putaran pertama dan setelah putaran terakhir. Whitening menambah tingkat kesulitan serangan pencarian kunci terhadap ciphertext, dengan menyembunyikan masukan spesifikasi terhadap putaran pertama dan putaran terakhir dari fungsi F. Twofish meng-XOR-kan 128 bit sub kunci sebelum putaran Feistel yang pertama, dan 128 bit lagi setelah putaran Feistel terakhir. Sub-kunci ini diperhitungkan dengan cara yang sama seperti sub-kunci putaran, tetapi tidak digunakan di tempat lain dalam cipher.
6.
Penjadwalan kunci Penjadwalan kunci adalah proses pengubaha bit-bit kunci menjadi sub-kunci tiap putaran yang dapat digunakan oleh chipher. Algoritma twofish memerlukaan banyak material kunci dalam memiliki penjadwalan kunci menggunakan primitif yang sama seperti fungsi putaran.
2.4
Eavesdropping[8] Kegiatan eavesdropping dilakukan oleh seorang cracker untuk merekam
aktivitas di dalam jaringan. Dengan demikian, seseorang cracker dapat memperoleh data penting seperti password, dan informasi lainnya. Kegiatan eavesdropping dapat dilakukan dengan wiretapping, menggunakan radio atau dengan program yang dapat menyadap melalui port terminal, dan juga sangat memungkinkan untuk menggunakan program monitor lalu lintas data atau paket yang dikirimkan lewat jaringan. Umumnya sangat sulit untuk mendeteksi adanya cracker yang melakukan kegiatan eavesdropping. Dalam hal ini enkripsi dapat digunakan untuk mencegah penyerangan dengan teknik eavesdropping pada lalu lintas data dalam jaringan yang tidak aman.
II-10
2.5
Multimedia Messaging Service (MMS) [9] Layanan
pesan
multimedia
(MMS/Multimedia
Messaging
Service)
merupakan puncak dari evolusi layanan pesan singkat (SMS/Short Messaging Service) dan EMS (Enhanced Messaging Service). MMS menawarkan perkembangan aplikasi secara menyeluruh sehingga pesan yang dikirim lebih kreatif dan menghibur. Pesan MMS dapat berupa teks, grafik/citra, data, animasi, audio, dan video. Tidak seperti SMS yang menggunakan sinyal link dengan kapasitas minim, MMS menggunakan main data channel seperti GPRS (General Packet Radio Service). Pesan disimpan sementara pada MMSC jika pemakai tidak segera mendownload. Pada MMS terdapat fitur user profile dan konversi data yang bergantung pada spesifikasi alat komunikasi (telepon selular) dan pemakai. User profile penting untuk mengetahui waktu ketika pesan di-download, karena pesan MMS terlalu besar sehingga tidak bisa segera sampai ke receiver. Kapasitas ratarata SMS sekitar 140 byte. Sedangkan kapasitas rata-rata pada MMS sekitar 30.000 byte bahkan bisa mencapai 100.000 byte. Pesan yang dikirim tergantung kemampuan jaringan selular dan telepon selular. Ketika teknologi telah dikembangkan sepenuhnya, ia akan mendukung transmisi video streaming. Sebuah aplikasi umum saat pesan MMS adalah pesan gambar (penggunaan ponsel kamera untuk mengambil foto untuk pengiriman segera ke penerima mobile). Kemungkinan lain termasuk animasi dan presentasi grafis dari harga saham, berita olahraga, dan laporan cuaca. 2.6
Teknologi J2ME[10] Java 2 Micro Edition atau yang biasa disebut J2ME adalah lingkungan
pengembangan yang didesain untuk meletakkan perangkat lunak Java pada barang elektronik berserta perangkat pendukungnya. Pada J2ME, jika perangkat lunak berfungsi dengan baik pada sebuah perangkat maka belum tentu juga berfungsi baik pada perangkat yang lain. J2ME membawa Java ke dunia informasi, komunikasi, dan perangkat komputasi yang lebih kecil dibandingkan dengan computer desktop. J2ME biasa digunakan pada telepon selular, pager, PDA, dan sejenisnya.
II-11
Teknologi J2ME juga memiliki beberapa keterbatasan jika diaplikasikan pada ponsel. J2ME sangat bergantung pada device yang digunakan, bisa dari merk ponsel, maupun kemampuan ponsel, dan dukungan terhadap teknologi J2ME. Misalnya, jika sebuah ponsel tidak memiliki kamera maka jelas J2ME pada ponsel tersebut tidak dapat mengakses kamera. CLDC atau Connected Limited Device Cofiguration adalah perangkat dasar dari J2ME, spesifikasi dasar yang berupa library atau API yang diimplementasikan pada J2ME, seperti yang digunakan pada telepon selular, pager, dan PDA. Perangkat tersebut dibatasi dengan keterbatasan memory, sumber daya, dan kemampuan memproses. Spesifikasi CLDC pada J2ME adalah spesifikasi minimal pada package, class, dan sebagian fungsi Java Virtual Machine yang dikurangi agar dapat diimplementasikan dengan keterbatasan sumber daya pada alat tersebut, JVM yang digunakan adalah KVM (Kilobyte Virtual Machine). MIDP atau Mobile Information Device Profile adalah spesifikasi untuk sebuah profil J2ME. MIDP memilik lapisan di atas CLDC, API tambahan untuk daur hidup aplikasi, antar muka, jaringan, dan penyimpanan persisten. Pada saat ini terdapat MIDP 1.0 dan MIDP 2.0. Fitur tambahan pada MIDP 2.0 dibandingkan MIDP 1.0 adalah API untuk multimedia. Pada MIDP 2.0 terdapat dukunagan memainkan tone, tone sequence, dan file WAV walaupun tanpa adanya Mobile Media API (MMAPI).
2.6.1
Wireless Toolkit 2.5.2[11] Wireless Toolkit 2.5.2 adalah emulator yang digunakan untuk mencoba
aplikasi mobile (J2ME) yang sudah dibuat di komputer dan selanjutnya bisa ditransfer ke dalam perangkat mobile melalui koneksi seperti bluetooth atau infrared atau juga dengan kabel data. Tentunya simulasi hanyalah simulasi, bisa saja hasil yang didapatkan dari simulasi dengan percobaan sesungguhnya dalam perangkat mobile berbeda. Sun Wireless Toolkit dapat digunakan untuk mengcompile dan memaketkan aplikasi MIDlet / MIDlet suite (mengandung satu MIDlet).
II-12
2.6.2
MIDlet[12] Aplikasi yang berjalan pada sebuah perangkat yang mendukung MIDP
disebut dengan MIDlets, atau lebih singkatnya MIDlet merupakan aplikasi yang dibuat menggunakan Java 2 Micro Edition dengan profile Mobile Information Device Profile (MIDP). MIDP dikhususkan untuk digunakan pada handset dengan kemampuan CPU, memori, keyboard dan layer yang terbatas, seperti handphone, pager, PDA dan sebagainya. Perangkat Application Management Software (AMS) berinteraksi langsung dengan MIDlet dengan method MIDlet create, start, pause, dan destroy. MIDlet adalah bagian dari package javax.microedition.midlet. Sebuah MIDlet harus di-extend dengan class MIDlet dan dapat meminta parameter dari AMS seperti dirumuskan dalam application descriptor (JAD). Suatu MIDlet tidak harus memiliki (dan memang harus tidak mempunyai) sebuah method public static void main (String[] args).
2.6.2.1 Siklus MIDlet Kehidupan MIDlet (Gambar 2.3) dimulai ketika di-instantiate oleh AMS. MIDlet pada awalnya masuk status “Paused” setelah perintah baru dibuat. AMS memanggil constructor public tanpa argumen dari MIDlet. Jika sebuah exception terjadi
dalam
constructor,
MIDlet
memasuki
status
“Destroyed”
dan
membuangnya segera. Siklus hidup MIDlet ini juga diakses ketika method notify Destroyed() kembali dengan sukses kepada aplikasi. Status MIDlet bisa dibedakan menjadi dua yaitu : 1. MIDlet masuk ke dalam status “Active” atas pemanggilan method startUp() oleh AMS. 2. MIDlet masuk ke dalam status “Destroyed” ketika AMS memanggil method destroyApp().
II-13
Gambar 2.3 Siklus Hidup MIDlet
2.7
[12]
NetBeans[13] NetBeans merupakan sebuah proyek kode terbuka yang sukses dengan
pengguna yang sangat luas, komunitas yang terus tumbuh, dan memiliki hampir 100 mitra dan terus bertambah. Sun Microsystems mendirikan proyek kode terbuka NetBeans pada bulan Juni 2000 dan terus menjadi sponsor utama. Saat ini terdapat dua produk : NetBeans IDE dan NetBeans Platform. NetBeans IDE adalah sebuah lingkungan pengembangan - sebuah kakas untuk pemrogram menulis, mengompilasi, mencari kesalahan dan menyebarkan program. Netbeans IDE ditulis dalam Java - namun dapat mendukung bahasa pemrograman lain. Terdapat banyak modul untuk memperluas Netbeans IDE. Netbeans IDE adalah sebuah produk bebas dengan tanpa batasan bagaimana digunakan. Tersedia juga NetBeans Platform, sebuah fondasi yang modular dan dapat diperluas yang dapat digunakan sebagai perangkat lunak dasar untuk membuat aplikasi desktop yang besar. Mitra ISV menyediakan plug-in bernilai tambah yang dapat dengan mudah diintegrasikan ke dalam Platform dan dapat juga digunakan untuk membuat kakas dan solusi sendiri.
II-14
Kedua produk adalah kode terbuka (open source) dan bebas (free) untuk penggunaan komersial dan non komersial. Kode sumber tersedia untuk guna ulang dengan lisensi Common Development and Distribution License (CDDL). Data Flow Diagram (DFD)[14]
2.8
Sistem analis memerlukan beberapa alat bantu dalam merancang suatu sistem salah satunya adalah Data Flow Diagram (DFD). Data Flow Diagram merupakan suatu bentuk atau model yang memungkinkan professional sistem untuk menggambarkan sistem sebagai suatu jaringan proses fungsional atau sebagai jaringan proses dan fungsi yang dihubungkan satu sama lain oleh suatu penghubung yang disebut alur data (Data Flow). DFD tidak tergantung pada perangkat keras, perangkat lunak, struktur data dan organisasi file. DFD banyak digunakan oleh pengembang sistem karena kemudahannya untuk dibuat dan dipahami, sehingga DFD sering digunakan sebagai alat penghubung antara perancang dan pemakai. DFD ini sering disebut juga dengan nama Bubble Chart, Bubble diagram, Model proses, Diagram alur kerja atau Model fungsi.
2.8.1
Levelisasi DFD Levelisasi DFD terdiri dari :
1. Diagram Context Merupakan diagram tingkat atas yang terdiri dari proses dan menggambarkan hubungan terminator dengan sistem yang mewakili suatu proses. Hubungan antar Terminator dan Data Store tidak digambarkan. 2. Diagram Zero Diagram ini merupakan diagram tingkat menengah yang menggambarkan proses utama dari dalam sistem, yang terdiri dari hubungan entitas (entity), proses data flow dan penyimpanan data (data store). 3. Diagram Detail atau Diagram Primitif Diagram Primitif merupakan diagram paling bawah yang tidak dapat diuraikan lagi, sedangkan Diagram Detail masih dapat diuraikan.
II-15
2.8.2
Komponen-komponen pada DFD Ada terdapat 4 (empat) komponen dalam DFD, yaitu :
1. Terminator/Entitas Luar Terminator mewakili entitas eksternal yang berkomunikasi dengan sistem yang sedang dikembangkan. Terdapat dua jenis terminator yaitu terminator sumber (source) dan terminator tujuan (sink). Terminator dapat berupa orang, organisasi, departemen di dalam organisasi atau sistem lainnya yang berada di lingkungan luarnya yang akan memberikan input atau menerima output dari sistem. 2. Proses Suatu proses adalah kegiatan atau kerja yang dilakukan oleh orang, mesin atau komputer dari hasil suatu arus data yang masuk ke dalam proses untuk dihasilkan arus data yang akan keluar dari proses. Proses menggambarkan bagian dari sistem yang mentransformalkan input menjadi output. Proses diberi nama untuk menjelaskan proses atau kegiatan apa yang sedang atau akan dilaksanakan. Pemberian nama proses dilakukan dengan menggunakan kata kerja yang membutuhkan objek. 3. Data Store Data store digunakan untuk membuat model sekumpulan paket data. Data store ini biasanya berkaitan dengan penyimpanan-penyimpanan, seperti file atau database yang berkaitan dengan penyimpanan secara komputerisasi, misalnya file disket, file harddisk, pita magnetik. Data store juga berkaitan dengan penyimpanan secara manual seperti buku alamat, file folder dan agenda, yang digambarkan dengan dua garis sejajar. 4. Alur Data Alur data yang menghubungkan data store dengan suatu proses mempunyai pengertian sebagai berikut : a. Alur data yang berasal dari data store, berarti proses membutuhkan data yang berada pada data store tersebut
II-16
b. Alur data yang menuju ke data store, berarti suatu proses akan menghasilkan output atau keluaran yang disimpan pada data store tersebut. c. Alur data yang berasal dan yang menuju ke data store berarti suatu proses akan meng-update data, menghapus atau mengubah data.
2.9
Flowchart[15] Flowchart adalah penggambaran secara grafik dari langkah-langkah dan
urut-urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah ke dalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut. Jenis-jenis flowchart : 1. Flowchart Sistem (System Flowchart) 2. Flowchart Paperwork/Flowchart Dokumen (Document Flowchart) 3. Flowchart Skematik (Schematic Flowchart) 4. Flowchart Program (Program Flowchart) 5. Flowchart Proses (Process Flowchart) Beberapa simbol-simbol flowchart bisa dilihat pada Tabel 2.1 di bawah ini : Tabel 2.1 Simbol-simbol Flowchart Simbol Proses
Arti Mempresentasikan operasi
Anak Panah
Merepresentasikan alur kerja
Keputusan
Keputusan dalam program
II-17
Simbol Terminal points
Display
Arti Awal/akhir flowchart
Output yang ditampilkan pada terminal
Database
Manual Operation
Tempat penyimpanan
Oprasi Manual
Alasan saya kenapa saya memilih algoritma Twofish diantaranya adalah : 1
Kedua algoritma memanfaatkan prinsip prinsip Confusion dan Diffusion dari Shanon.
2
Baik pada algoritma Rijndael maupun Twofish, dilakukan prinsip cipher berulang dan keduanya memiliki S-Box
3
Kedua algoritma tidak memanfaatkan prinsip P-Box dan sebagai gantinya menggunakan metode lain untuk proses transformasi.
4.
Pada kedua algoritma tidak terdapat proses ekspansi maupun kompresi.
5.
Kedua algoritma tidak memiliki weak key
6.
Kedua algoritma memiliki keyschedule.
7.
Pada algoritma Rijndael dikenal istilah mixcolums.
8.
Pada algoritma twofish dikenal istilah MDS Matrices dan PseudoHadamard Transforms.
II-18
9.
Algoritma Rijndael tidak menggunakan jaringan feistel sedangkan algoritma twofish menggunakan jaringan feistel.
10.
Algortima Twofish unggul dibandingkan dengan algoritma Rijndael jika dilihat dari segi kecepatan dan kesederhanaan algoritma.
11.
Dalam hal tingkat keamanan data algoritma Twofish jauh lebih unggul jika dibandingkan dengan algoritma Rijndael.