10 II.1. Algoritma Mars
Input dan output metode ini berupa 4 word data 32-bit. Metode ini merupakan metode yang berorientasi word, karena semua operasi internalnya dilakukan dalam word 32-bit. Kode yang sama untuk mesin dengan struktur internal little-endian dapat digunakan untuk mesin dengan struktur internal big-endian. Ketika input atau output berupa sebuah byte stream,digunakan susunan byte little-endian untuk menginterpretasikan setiap 4 byte sebagai sebuah word 32-bit. Gambar II.1 menunjukkan struktur algoritma MARS. (Sumber : Coppersmith, D. 1999 The MARS Encryption Algorithm Retrieved May 22, 2014)
Tahap enkripsi dan dekripsi dilakukan dalam 3 fase:
a) Fase pertama ini menyediakan rapid mixing dan key avalanche, ini berfungsi untuk mengatasi serangan chosen-plaintext dan membuat lebih sulit untuk melakukan penyerangan dengan metode linier dan diferensial. Fase ini terdiri dari penambahan kunci ke data, diikuti dengan delapan putaran S-box.
b) Fase kedua disebut “cryptographic core” metode ini, terdiri dari 16 putaran dari transformasi Feistel tipe-3. Ini untuk memastikan bahwa enkripsi dan dekripsi memiliki kekuatan yang sama, dilakukan 8 putaran pertama dalam “forward mode” dan 8 putaran terakhir dalam “backwards mode”.
c) Fase terakhir menyediakan kembali rapid mixing dan key avalanche, pada saat ini untuk melindungi dari serangan chosen-chipertext. Fase ini merupakan inverse dari fase pertama, terdiri dari 8 putaran Feistel tipe-3 seperti yang terdapat pada fase pertama (namun dalam “backwards mode” sedangkan fase pertama dalam “forward mode”), diikuti dengan substraksi kunci dari data. (Sumber : Coppersmith, D. 1999 The MARS Encryption Algorithm Retrieved May 22, 2014)
II.2. Proses Enkripsi
Proses enkripsi MARS dapat terlihat pada Gambar dibawah ini
Gambar II.1 : Proses Enkripsi MARS
(Sumber : Coppersmith, D. 1999 The MARS Encryption Algorithm Retrieved May 22, 2014)
Proses enkripsi MARS dibagi menjadi 3 tahap yaitu:
a) Forward Mixing. Tahap ini berfungsi untuk mencegah serangan terhadap chosen plaintext. Terdiri dari penambahan sub kunci pada setiap word data, diikuti dengan delapan iterasi mixing tipe-3 feitsel (dalam forward mode) dengan berbasis S-box.
b) Cryptographic core dan cipher, terdiri dari enam belas iterasi tranformasi kunci tipe-3 feistel. Untuk menjamin bahwa proses enkripsi dan dekripsi mempunyai kekuatan yang sama, delapan iterasi pertama ditunjukkan dalam “forward mode" dan delapan iterasi terakhir ditunjukkan dalam "backward mode”.
c) Backward mixing, berfungsi untuk melindungi serangan kembali terhadap chosen chipertext. Tahap ini merupakan invers dari tahap pertama, terdiri dari delapan iterasi mixing tipe-3 feistel (dalam backward mode) dengan berbasis Sbox, diikuti dengan pengurangan sub kunci dari word data. Hasil pengurangan inilah yang disebut dengan ciphertext. (Sumber : Coppersmith, D. 1999 The MARS Encryption Algorithm Retrieved May 22, 2014)
II.3. Kriptografi Data
Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa mengalami gangguan dari pihak ketiga. Menurut (Bruce Scheiner dalam bukunya "Applied Cryptography"), kriptografi adalah ilmu pengetahuan dan seni menjaga message-message agar tetap aman (secure).
Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang mendasari kriptografi yakni:
a) Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak penerima / pihak-pihak memiliki ijin). Umumnya hal ini dilakukan dengan cara membuat suatu algoritma matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami.
b) Data integrity (keutuhan data) yaitu layanan yang mampu mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau penambahan) data yang tidak sah (oleh pihak lain).
c) Authentication (keotentikan) yaitu layanan yang berhubungan dengan identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian data/informasi.
d) Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal dirinya).
Berbeda dengan kriptografi klasik yang menitik beratkan kekuatan pada kerahasiaan algoritma yang digunakan (yang artinya apabila algoritma yang digunakan telah diketahui maka pesan sudah jelas "bocor" dan dapat diketahui isinya oleh siapa saja yang mengetahui algoritma tersebut), kriptografi modern lebih menitik beratkan pada kerahasiaan kunci yang digunakan pada algoritma tersebut (oleh pemakainya) sehingga algoritma tersebut dapat saja disebarkan ke kalangan masyarakat tanpa takut kehilangan kerahasiaan bagi para pemakainya.
Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi :
a. Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli).
b. Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi.
c. Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi ciphertext. d. Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah ciphertext
menjadi plaintext, sehingga berupa data awal/asli.
e. Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan dekripsi.
Kriptografi itu sendiri terdiri dari dua proses utama yakni proses enkripsi dan proses dekripsi. Seperti yang telah dijelaskan di atas, proses enkripsi mengubah plaintext menjadi ciphertext (dengan menggunakan kunci tertentu) sehingga isi informasi pada pesan tersebut sukar dimengerti. (Sumber : Rojali. 2013. Kriptografi dan
Steganografi. Retrieved May 29, 2014)
plaintext ciphertext plaintext
kunci enkripsi kunci dekripsi
Gambar II.2: Diagram Proses Enkripsi Dan Dekripsi
(Sumber : Rojali. 2013. Kriptografi dan Steganografi. Retrieved May 29, 2014)
Peranan kunci sangatlah penting dalam proses enkripsi dan dekripsi (disamping pula algoritma yang digunakan) sehingga kerahasiaannya sangatlah penting, apabila kerahasiaannya terbongkar, maka isi dari pesan dapat diketahui.
Secara matematis, proses enkripsi merupakan pengoperasian fungsi E (enkripsi) menggunakan e (kunci enkripsi) pada M (plaintext) sehingga dihasilkan C (ciphertext), notasinya :
Ee(M)– C……….………1
Sedangkan untuk proses dekripsi, merupakan pengoperasian fungsi D (dekripsi) menggunakan d (kunci dekripsi) pada C (ciphertext) sehingga dihasilkan M (plaintext), notasinya :
Dd(C) = M………2
Sehingga dari dua hubungan diatas berlaku :
Dd(Ee(M)) = M………3
Sumber : Rojali. 2013. Kriptografi dan Steganografi. Retrieved May 29, 2014
II.4. Enkripsi dan Deskripsi
Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita [bruce Schneier - Applied Cryptography]. Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data [A. Menezes, P. van Oorschot and S. Vanstone - Handbook of Applied Cryptography]. Tidak semua aspek keamanan informasi ditangani oleh kriptografi. Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi yaitu :
a) 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.
b) 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 pensubsitusian data lain kedalam data yang sebenarnya.
c) 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.
d) Non-repudiasi., atau nirpenyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat.
II.5. Diagram Konteks
Fadlil dkk. (2008) menyatakan bahwa diagram konteks merupakan diagram yang menggambarkan kondisi sistem yang ada baik input maupun output serta menyertakan terminator yang terlibat dalam penggunaan sistem. Diagram ini akan memberi gambaran tentang keseluruhan sistem. Sistem dibatasi oleh boundary (dapat digambarkan dengan garis putus). Dalam diagram konteks hanya ada satu proses. Tidak boleh ada store dalam diagram konteks. Diagram konteks
berisi gambaran umum (secara garis besar) sistem yang akan dibuat. Secara kalimat, dapat dikatakan bahwa diagram konteks ini berisi “siapa saja yang memberi data (dan data apa saja) ke sistem, serta kepada siapa saja informasi (dan informasi apa saja) yang harus dihasilkan sistem”. Maka dapat disimpulkan bahwa diagram konteks adalah diagram yang terdiri dari suatu proses dan menggambarkan ruang lingkup suatu sistem. Diagram konteks merupakan level tertinggi dari DFD yang menggambarkan seluruh input ke sistem atau output dari sistem.
II.6. Use Case Diagram
Diagram use case adalah diagram yang menunjukkan fungsionalitas suatu sistem atau kelas dan bagaimana sistem tersebut berinteraksi dengan dunia luar, dan menjelaskan sistem secara fungsional yang terlihat user. Biasanya dibuat pada awal pengembangan. Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem.
Diagram Use case berguna dalam tiga hal :
a) Menjelaskan fasilitas yang ada (requirement)
b) Komunikasi dengan klien
c) Membuat test dari kasus-kasus secara umum
Kelebihan Use case:
a) Interaksi antara pengguna dan sistem lain dengan sistem yang akan di buat cukup tergambar dengan baik.
b) Penggambaran dengan sederhana membuat identifikasi kebutuhan dengan use case dapat dengan lebih mudah untuk dipahami.
c) Pendekatan identifikasi kebutuhan dapat berdasarkan top down (keinginan
dari manajemen level atas) maupun bottom up (keinginan pengguna akhir).
d) Dapat meng-include (memasukkan) fungsionalitas use case lain sebagai bagian dari proses dalam dirinya.
e) dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common.
f) Dapat meng-extend (memperpanjang) use case lain dengan behaviour-nya sendiri.
g) Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain.
Kelemahan Use case:
a) Kekurangan mengenai data masih kurang teridentifikasi dengan baik.
Tabel II.1 : Daftar Simbol Use Case
NO GAMBAR NAMA KETERANGAN
1 Actor
Menspesifikasikan himpuan peran yang pengguna mainkan ketika berinteraksi dengan use case.
2 Dependency
Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (independent) akan mempengaruhi elemen yang bergantung padanya elemen yang tidak mandiri (independent).
3 Generalizatio n
Hubungan dimana objek anak (descendent) berbagi perilaku dan struktur data dari objek yang ada di atasnya objek induk (ancestor).
4 Include Menspesifikasikan bahwa use case sumber secara eksplisit.
5 Extend
Menspesifikasikan bahwa use case target memperluas perilaku dari use case sumber pada suatu titik yang diberikan.
6 Association Apa yang menghubungkan antara objek satu dengan objek lainnya.
7 System
Menspesifikasikan paket yang menampilkan sistem secara terbatas.
8 Use case
Deskripsi dari urutan aksi-aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu aktor
9 Collaboration
Interaksi aturan-aturan dan elemen lain yang bekerja sama untuk menyediakan prilaku yang lebih besar dari jumlah dan elemen-elemennya (sinergi).
10 Note
Elemen fisik yang eksis saat aplikasi dijalankan dan mencerminkan suatu sumber daya komputasi
(Sumber : Rekayasa perangkat lunak Rosa A. S 2016:155)
Tabel II.2 : Simbol Use case Diagram
NO GAMBAR NAMA KETERANGAN
1 Generalization
Hubungan dimana objek anak (descendent) berbagi perilaku dan struktur data dari objek yang ada di atasnya objek induk (ancestor).
2 Nary Association
Upaya untuk menghindari asosiasi dengan lebih dari 2 objek.
3 Class
Himpunan dari objek-objek yang berbagi atribut serta operasi yang sama.
4 Collaboration
Deskripsi dari urutan aksi-aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu aktor
5 Realization
Operasi yang benar-benar dilakukan oleh suatu objek.
6 Dependency
Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (independent) akan mempegaruhi elemen yang bergantung padanya elemen yang tidak mandiri
7 Association
Apa yang menghubungkan antara objek satu dengan objek lainnya
(Sumber : Rekayasa perangkat lunak Rosa A. S, 2016:155)
Tabel II.3 : Simbol Class Diagram
NO GAMBAR NAMA KETERANGAN
1 LifeLine
Objek entity, antarmuka yang saling berinteraksi.
2 Message
Spesifikasi dari komunikasi antar objek yang memuat informasi-informasi tentang aktifitas yang terjadi
3 Message
Spesifikasi dari komunikasi antar objek yang memuat informasi-informasi tentang aktifitas yang terjadi
(Sumber : Rekayasa perangkat lunak Rosa A. S 2016:155.) Tabel II.4 : Simbol Sequence Diagram
NO GAMBAR NAMA KETERANGAN
1 State Nilai atribut dan nilai link pada suatu waktu tertentu, yang dimiliki oleh suatu objek.
2 Initial Pseudo
State Bagaimana objek dibentuk atau diawali 3 Final State Bagaimana objek dibentuk dan dihancurkan
4 Transition
Sebuah kejadian yang memicu sebuah state objek dengan cara memperbaharui satu atau lebih nilai atributnya
5 Association Apa yang menghubungkan antara objek satu dengan objek lainnya.
6 Node
Elemen fisik yang eksis saat aplikasi dijalankan dan mencerminkan suatu sumber daya komputasi.
(Sumber : Rekayasa perangkat lunak Rosa A. S 2016:155)
Tabel II.5: Simbol StateChart Diagram
NO GAMBAR NAMA KETERANGAN
1 Actifity
Memperlihatkan bagaimana masing-masing kelas antarmuka saling berinteraksi satu sama lain
2 Action State dari sistem yang mencerminkan eksekusi dari suatu aksi
3 Initial Node Bagaimana objek dibentuk atau diawali.
4 Actifity Final Node
Bagaimana objek dibentuk dan dihancurkan
5 Fork Node Satu aliran yang pada tahap tertentu berubah menjadi beberapa aliran
(Sumber : Rekayasa Perangkat Lunak Rosa A. S 2016:155)
II.7. Flowchart
Menurut (Romney dan Steibart, 2006:34), flowchart adalah sekumpulan simbol-simbol atau skema yang menunjukkan atau menggambarkan rangkaian kegiatan-kegiatan program dari awal hingga akhir. Flowchart digunakan untuk menggambarkan urutan langkah-langkah pekerjaan suatu algoritma. Berikut penjelasan lambang-lambang yang digunakan pada flowchart sebagai berikut.
Tabel II.6: Simbol - Simbol Flowchart
No. Simbol Fungsi
1. Terminal berfungsi untuk memulai dan
mengakhiri suatu program.
2. Proses suatu symbol yang menunjukkan setiap
pengolahan yang dilakkan oleh komputer.
3. Input-Ouput berfungsi untuk memasukkan atau menunjukkan hasil dari proses.
4. Decission suatu kondisi yang akan menghasilkan beberapa kemungkinan jawaban atau pilihan.
5. Connector suatu prosedur akan masuk atau keluar melalui symbol ini dalam lembar yang sama.
6. Predifined Process suatu symbol untuk menyediakan tempat-tempat pengolahan dalam storage.
7. Off Line Connector merupakan symbol untuk masuk atau keluarnya suatu prosedur pada lebar kertas yang lain.
8.
Arus atau Flow Prosedur yang akan dapat dilakukan.
9. Document merupakan symbol untuk data yang berbentuk kertas maupun informasi.
10. Simbol untuk output yang ditentukan kesuatu device, seperti printer ataupun plotter.
11. Untuk menyatakan sekumpulan langkah proses
yang ditulis secara prosedur.
12. Storage untuk menyimpan data
(Sumber : Tata Sutabri, 2004)
II.8. Netbeans 8.0
Netbeans merupakan sebuah aplikasi Integrated Development Environment (IDE) yang berbasiskan Java dari Sun Microsystems yang berjalan
di atas swing. Swing merupakan sebuah teknologi Java untuk pengembangan aplikasi desktop yang dapat berjalan pada berbagai macam platform seperti Windows, Linux, Mac OS X dan Solaris. Sebuah IDE merupakan lingkup pemrograman yang di integrasikan ke dalam suatu aplikasi perangkat lunak yang menyediakan Graphic User Interface (GUI), suatu kode editor atau teks, suatu compiler dan suatu debugger.
Netbeans juga digunakan oleh sang programmer untuk menulis, meng-compile, mencari kesalahan dan menyebarkan program Netbeans yang ditulis dalam bahasa pemrograman Java namun selain itu dapat juga mendukung bahasa pemrograman lainnya dan program ini pun bebas untuk digunakan dan untuk membuat professional desktop, enterprise, web, dan mobile applications dengan Java language, C/C++, dan bahkan dynamic languages seperti PHP, JavaScript, Groovy, dan Ruby.
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. Dan saat ini pun netbeans memiliki 2 produk yaitu Platform Netbeans dan Netbeans IDE. Platform Netbeans merupakan framework yang dapat digunakan kembali (reusable) untuk menyederhanakan pengembangan aplikasi desktop dan Platform NetBeans juga menawarkan layanan-layanan yang umum bagi aplikasi desktop, mengijinkan pengembang untuk fokus ke logika yang spesifik terhadap aplikasi.
Dalam Netbeans terbagi beberapa komponen GUI yang umum digunakan, antara lain:
Gambar II.3. GUI Netbeans 7.2.1
(Sumber : Nofriadi Fundamental Dengan Netbeans 2015:5) Keterangan:
1. GUI Builder
GUI Builder merupakan jendela utama yang di dalamnya terdapat komponen untuk merancang GUI.
Gambar II.4. GUI Builder
2. Source Area
Source Area merupakan jendela yang digunakan untuk menambahkan atau mengubah kode program yang ada pada pemograman Java.
Gambar II.5. Source Area
(Sumber : Nofriadi Fundamental Dengan Netbeans 2015:5) 3. Panel Project
Panel Project menampilkan Project yang dirancang.
Gambar II.6. Panel Project
4. Panel Navigator
Panel Navigator merupakan jendela yang menampilkan pohon pewarisan dari semua komponen form yang di buka seperti button, label, menu, timer, dan sebagainya.
Gambar II.7. Panel Navigator
(Sumber : Nofriadi Fundamental Dengan Netbeans 2015:5)
5. Panel Palette
Panel Pallete merupakan panel yang menydiakan tool-tool untuk mendesain form berbasis grafis (GUI). Dimana setiap kategori menyediakan tool-tool GUI Builder sesuai dengan kategorinya.Untuk menggunakannya, tinggal klik dan menyeret tool-tool kedalam area desain.
Gambar II.8. Panel Palette
(Sumber : Nofriadi Fundamental Dengan Netbeans 2015:5)
6. Panel Properties
Panel Properties berfungsi untuk menampilkan property komponen yang aktif untuk mengatur property yang dimiliki oleh suatu komponen.
Gambar II.9. Panel Properties
IDE Netbeans sangatlah diperlukan dalam pembangunan program perangkat lunak, Karena Netbeans merupakan platform yang baik untuk sebuah pembangunan program perangkat lunak. Oleh karena itu IDE Netbeans sering dipakai di kalangan programmer karena User Friendly. IDE Netbeans sendiri adalah sebuah GUI (Graphical User Interface) atau pembangunan program perangkat lunak secara visual (berbasis Desktop). Manfaat dari pada Netbeans sendiri adalah Mempermudah user untuk mendesain programnya sendiri serta menghemat source code yang akan ditulis dan juga menghemat waktu. IDE Netbeans juga memiliki banyak fasilitas di dalamnya yaitu Java Application, Java Web, Java EE (Enterprise Edition), PHP dan lain-lain.
II.10. Perangkat Lunak Aplikasi
Perangkat lunak aplikasi (software application) adalah adalah suatu subkelas perangkat lunak komputer yang memanfaatkan kemampuan komputer langsung untuk melakukan suatu tugas yang diinginkan pengguna. Biasanya dibandingkan dengan perangkat lunak sistem yang mengintegrasikan berbagai kemampuan komputer, tapi tidak secara langsung menerapkan kemampuan tersebut untuk mengerjakan suatu tugas yang menguntungkan pengguna. Contoh utama perangkat lunak aplikasi adalah pengolah kata, lembar kerja, dan pemutar media.
Beberapa aplikasi yang digabung bersama menjadi suatu paket kadang disebut sebagai suatu paket atau suite aplikasi (application suite). Contohnya adalah Microsoft Office dan Open Office.org, yang menggabungkan suatu aplikasi pengolah kata, lembar kerja, serta beberapa aplikasi lainnya.
Aplikasi-aplikasi dalam suatu paket biasanya memiliki antar muka pengguna yang memiliki kesamaan sehingga memudahkan pengguna untuk mempelajari dan menggunakan tiap aplikasi. Sering kali, mereka memiliki kemampuan untuk saling berinteraksi satu sama lain sehingga menguntungkan pengguna. Contohnya, suatu lembar kerja dapat dibenamkan dalam suatu dokumen pengolah kata walaupun dibuat pada aplikasi lembar kerja yang terpisah.