BAB II LANDASAN TEORI 2.1 Kriptografi 2.1.1 Pengertian Kriptografi Kriptografi (cryptography) berasal dari bahasa yunani, yaitu dari kata Crypto dan Graphia. Crypto yang berarti secret (rahasia) dan Graphia berarti writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu ataupun seni yang mempelajari bagaimana membuat suatu pesan yang dikirim oleh pengirim dapat disampaikan kepada penerima dengan aman. Kriptografi merupakan bagian dari suatu cabang ilmu matematika yang disebut kriptologi (cryptology). Kriptografi bertujuan menjaga kerahasiaan informasi yang terkandung dalam data sehingga informasi tersebut tidak dapat diketahui oleh pihak yang tidak sah.(Schneier, 1996). Perancang Algoritma Kriptografi disebut Kriptografer.
Gambar 2.1 Area Bidang Kriptologi Kriptanalisis (cryptanalysis) adalah suatu ilmu dan seni membuka (breaking) ciphertext menjadi plaintext tanpa mengetahui kunci yang digunakan. Pelaku kriptanalisis disebut kriptanalis (cryptanalyst). Kriptanalis
9
http://digilib.mercubuana.ac.id/
merupakan “lawan” kriptografer. Persamaan kriptanalis dan kriptografer adalah bahwa keduanya sama – sama menerjemahkan cipherteks menjadi plainteks. Sementara perbedaanya adalah : 1. Kriptanalis bekerja atas nama penyadap yang tidak berhak. 2. Kriptografer bekerja atas legitimasi pengirim atau penerima pesan. 2.1.2 Tujuan Kriptografi Dari paparan awal dapat dirangkumkan bahwa kriptografi bertujuan untuk memberi layanan keamanan yang terkait dengan aspek keamanan suatu sistem informasi seperti kerahasiaan, integritas data, autentikasi dan ketiadaan penyangkalan. keempat aspek tersebut merupakan tujuan fundamental dari suatu sistem kriptografi.(Schneier, 1996). 1. Kerahasiaan (confidentiality) Kerahasian adalah layanan yang ditujukan untuk menjaga informasi agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. Di dalam kriptografi layanan ini direalisasikan dengan menyandikan plainteks menjadi cipherteks. Misalnya pesan “jadwal bimbingan tugas akhir hari selasa” disandikan menjadi “mdgzdo*elpelqjdq*wxjdv*dnklu*kdul*vhodvd” istilah lain yang senada dengan confidentially adalah secrecy dan privacy. 2. Integritas data (data integrity) Integritas data adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. Manipulasi yang dimaksud disini meliputi penyisipan, penghapusan, ataupun penggantian data. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pernyataan “apakah pesan yang diterima masih asli atau tidak mengalami perubahan (modifikasi)?”. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak – pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubtitusian data lain kedalam pesan yang sebenarnya.
10
http://digilib.mercubuana.ac.id/
3. Autentikasi (authentication) Autentikasi adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi harus dapat mengotentikasi satu sama lain sehingga bisa dapat memastikan sumber pesan, ataupun keaslian data dari informasi itu sendiri. Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus di otentikasi asalnya. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan: “ Apakah pesan yang diterima benar – benar berasal dari pengirim pesan yang benar ?”. otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan. 4. Ketiadaan penyangkalan (non-repudiation) Ketiadaan penyangkalan adalah layanan yang berfungsi untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan. Sebagai contoh pengirim pesan memberi otoritas kepada penerima pesan untuk melakukan pembelian, namun kemudian ia menyangkal telah memberikan otoritas tersebut. (Renaldi munir, 2006:9). 2.1.3 Sejarah kriptografi Kriptografi mempunyai sejarah yang sangat menarik dan panjang. Kriptografi sudah digunakan 4000 tahun yang lalu yang diperkenalkan oleh orang – orang mesir untuk mengirim pesan kepasukan militer yang berada dilapangan dan supaya pesan tersebut tidak terbaca oleh pihak musuh walaupun kurir pembawa pesan tersebut tertangkap oleh musuh. Pada zaman romawi kuno dikisahkan pada suatu saat, ketika Julius Caesar ingin mengirmkan satu pesan rahasia kepada seorang jendral dimedan perang. Pesan tersebut harus dikirimkan melalui seorang kurir, tetapi karena pesan
11
http://digilib.mercubuana.ac.id/
tersebut mengandung rahasia, Julius Caesar tidak ingin pesan tersebut terbuka ditengah jalan. Disini Julius Caesar memikirkan bagaimana mengatasinya yaitu dengan cara mengacak pesan tersebut menjadi suatu pesan yang tidak dapat dipahami oleh siapapun kecuali hanya dapat dipahami oleh jendralnya saja. Tentu sang jendral telah diberi tahu sebelumnya bagaimana cara membaca pesan yang teracak tersebut, karena telah mengetahui kuncinya. Yang dilakukan Julius Caesar adalah mengganti semua susunan alphabet dari A, B, C, & yaitu A menjadi D, B menjadi E, C menjadi F dan seterusnya. Sehingga kalau Julius menuliskan kata “ SEKARANG & VHNDUDQI & membacanya. (Dony ariyus, 2006:9). Sejarah lengkap kriptografi dapat ditemukan di dalam buku david kahn, the codebreakers. Penulis rahasia ini dapat dilacak kembali ke 3000 tahun sebelum masahi saat digunakan oleh bangsa mesir. mereka menggunakan hieroglyphcs yang tidak standar untuk menyembunyikan tulisan supaya tidak dapat diketahui oleh mereka yang tidak diharapkan.
Gambar 2.2 contoh Hieroglyphcs untuk menyandikan Huruf Tag daun, gambar, heroglyph, huruf, lebah, matahari, Mesir, obyek, tanda, tulisan Hieroglyphcs diturunkan dari bahasa yunani hieroglyphica yang berarti “ukiran rahasia” . Hieroglyphcs berevolusi menjadi hieratic, yaitu aksara bergaya (stylized script) yang lebih mudah digunakan.
12
http://digilib.mercubuana.ac.id/
Gambar 2.3 Media kriptografi yang digunakan oleh bangsa Yunani Kuno. Sekitar 400 SM, kriptografi militer digunakan oleh bangsa Sparta dalam bentuk sepotong papyrus atau scytale, perkamen yang dibungkus dengan batang kayu silinder. Pada media tersebut pesan ditulis secara horizontal (baris per baris). Bila pita dilepaskan, huruf – huruf didalamnya tersusun membentuk pesan rahasia. Untuk membaca pesan penerima melilitkan kembali silinder yang
diameternya
sama
dengan
diameter
silinder
pengirim.
(Emy
setyaningsih, 2015:3 ). 2.2 Keamanan Algoritma Kriptografi Lard Knudsen mengelompokkan hasil kriptanalis ke dalam beberapa kategori berdasarkan jumlah dan kualitas informasi yang berhasil ditemukan: 1. Pemecahan total (total break). Kriptanalis menemukan kunci K sedemikian sehingga dekripsi Dk ( C ) = P. 2. Deduksi (penarikan kesimpulan) global (global deducation). Kriptanalis menemukan algoritma alternative, A, yang akivalen dengan Dk ( C ) tetapi tidak mengetahui kunci K. 3. Deduksi
lokal
(instance/local
deduction). Kriptanalis
menemukan
plainteks dari cipherteks yang disadap. 4. Deduksi informasi (information deduction). Kriptanalis menemukan beberapa informasi perihal kunci atau plainteks. Misalnya kriptanalis mengetahui beberapa kunci, kriptanalis mengetahui bahasa yang digunakan untuk menulis plainteks, kriptanalis mengetahui format plainteks, dan sebagainya. Sebuah algoritma kriptografi dikatakan aman
13
http://digilib.mercubuana.ac.id/
mutlak tanpa syarat (unconditionally secure) bila cipherteks yang dihasilkan oleh algoritma tersebut tidak mengandung cukup informasi untuk menentukan plainteksnya. (Renaldi munir, 2006:18). 2.2.1 Ancaman Terhadap Keamanan Data Keamanan data pada lalu lintas jaringan adalah suatu hal yang di inginkan semua orang untuk menjaga privacy. Supaya data yang dikirim aman dari orang yang tidak bertanggung jawab dengan menyembunyikan data memakai algoritma kriptografi. Banyak terjadinya pertukaran informasi setiap detik di internet. Banyak terjadinya pencurian dari informasi itu sendiri oleh pihak – pihak yang tidak bertanggung jawab. Ancaman keamanan yang terjadi terhadap informasi adalah: 1. Interruption: merupakan suatu ancaman terhadap availability, informasi, data yang ada dalam sistem komputer dirusak, dihapus, sehingga jika data informasi tersebut dibutuhkan tidak ada lagi. 2. Interception: merupakan ancaman terhadap kerahasiaan (secrecy). Informasi yang ada disadap atau orang yang tidak berhak mendapat akses ke komputer dimana informasi tersebut disimpan. 3. Modification: merupakan ancaman terhadap integritas. Orang yang tidak berhak berhasil menyadap lalu lintas informasi yang sedang dikirim dan dirubah sesuai dengan keinginan si orang tersebut. 4. Fabrication: merupakan ancaman terhadap integritas. Orang yang tidak berhak berhasil meniru (memalsukan) suatu informasi yang ada sehingga orang yang menerima informasi tersebut menyangka informasi tersebut berasal dari orang yang dikehendaki oleh sipenerima informasi tersebut. (Dony ariyus, 2006:6).
14
http://digilib.mercubuana.ac.id/
Gambar 2.4 Ancaman Keamanan Tabel 2.1 Ancaman Terhadap Keamanan
2.3 Serangan Terhadap Kriptografi Keseluruhan point dari kriptografi adalah menjaga kerahasiaan plainteks atau kunci, atau keduanya dari penyadap. Penyadap berusaha mendapatkan data yang di gunakan untuk kegiatan kriptanalisis (cryptanalysis). Penyadap bisa juga merangkap sebagai seorang kriptanalis. Istilah lain untuk pihak lawan adalah penyusup
(intruder),
penyerang
(attacker),
atau
pencegat
(interceptor).
kriptanalisis ialah ilmu yang mempelajari upaya-upaya untuk memperoleh plainteks dari cipherteks tanpa informasi tentang kunci yang digunakan.
15
http://digilib.mercubuana.ac.id/
2.3.1 Jenis – Jenis Serangan Serangan
atau
kriptanalisis
terhadap
sistem
kriptografi
dapat
dikelompokkan dengan beberapa cara yaitu: 1. Berdasarkan keterlibatan penyerang dalam komunikasi, serangan dapat dibagi atas dua macam, yaitu, serangan pasif dan serangan aktif : a. Serangan pasif (passive attack) Pada serangan ini, penyerang tidak terlibat dalam komunikasi antara pengirim dan penerima, namun penyerang menyadap semua pertukaran pesan antara kedua entitas tersebut. Tujuannya adalah untuk mendapatkan sebanyak mungkin informasi yang digunakan untuk kriptanalisis. Beberapa metode penyadapan antara lain : 1. Wiretapping : penyadap mencegat data yang ditransmisikan pada saluran kabel komunikasi dengan menggunakan sambungan perangkat keras. 2. Electromagnetic eavesdropping : penyadap mencegat data yang ditransmisikan melalui saluran wireless, misalnya radio dan microwave. 3. Acoustic eavesdropping : menangkap gelombang suara yang dihasilkan oleh suara manusia. b.
Serangan aktif (active attack) Pada jenis serangan ini, penyerang mengintervensi komunikasi dan
ikut mempengaruhi sistem untuk keuntungan dirinya. Misalnya penyerang mengubah aliran pesan seperti menghapus sebagian cipherteks , mengubah cipherteks, menyisipkan potongan cipherteks palsu, me-replay pesan lama, mengubah informasi yang tersimpan, dan sebagainya. Serangan yang termasuk jenis serangan aktif adalah man – in – the – middle attack. Pada serangan ini, penyerang mengintersepsi komunikasi antara dua pihak yang berkomunikasi kemudian “menyerupai” satu pihak
16
http://digilib.mercubuana.ac.id/
dengan cara bersikap seolah – olah ia adalah salah satu pihak yang berkomunikasi (pihak lainnya tidak menyadari kalau ia berkomunikasi dengan pihak yang salah). Tujuan dari serangan ini adalah untuk mendapatkan informasi berharga seperti kunci atau nilai rahasia lainnya caranya, penyerang memutus komunikasi antara dua pihak lalu menempatkan dirinya diantara keduannya. 2. Berdasarkan banyaknya informasi yang diketahui oleh kriptanalis, maka serangan dapat dikelompokkan menjadi lima jenis, yaitu: a.
Ciphertext-only attack Ini adalah jenis serangan yang paling umum namun paling sulit, karena
informasi yang tersedia hanyalah cipherteks saja. Kriptanalis memiliki beberapa cipherteks dari beberapa pesan, semuanya dienkripsi dengan algoritma yang sama. Untuk itu kriptanalis menggunakan beberapa cara, seperti mencoba semua kemungkinan kunci secara exhaustive search. Menggunkan analis frekuensi, membuat terkaan berdasarkan informasi yang diketahui dan sebagainya. b. Known-plaintext attack Ini adalah jenis serangan dimana kriptanalis memiliki pasangan plainteks dan cipherteks yang berkoresponden. c. Chosen-plaintext attack Serangan jenis ini lebih hebat dari pada known-plaintext attack, karena kriptanalis dapat memilih plainteks yang dimilikinya untuk dienkripsikan, yaitu plainteks - plainteks yang lebih mengarahkan penemuan kunci. d. Chosen-ciphertext attack Ini adalah jenis serangan dimana kriptanalis memilih cipherteks untuk didekripsikan dan memiliki akses ke plainteks hasil dekripsi.
17
http://digilib.mercubuana.ac.id/
e. Chosen-text attack Ini adalah jenis serangan yang merupakan kombinasi chosen-plaintext attack dan chosen-chiphertext attack. 3. Berdasarkan teknik yang digunakan dalam menemukan kunci, maka serangan dapat dibagi menjadi dua, yaitu : a.
Exhaustive attack atau brute force attack Ini adalah serangan untuk mengungkap plainteks atau kunci dengan
menggunakan semua kemungkinan kunci. Diasumsikan kriptanalis mengetahui algoritma kriptografi yang digunakan oleh pengirim pesan. Selain itu kriptanalis memiliki sejumlah cipherteks dan plainteks yang bersesuaian. b.
Analytical attack Pada jenis serangan ini, kriptanalis tidak mencoba-coba semua
kemungkinan kunci tetapi menganalisis kelemahan algoirtma kriptografi untuk mengurangi kemungkinan kunci yang tidak ada. Diasumsikan kriptanalis mengetahui algoritma kriptografi yang digunakan oleh pengirim pesan. Analisis dapat menggunakan pendekatan matematik dan statistic dalam rangka menemukan kunci. Untuk menghadapi serangan ini, kriptografer harus membuat algoritma kriptografi yang kompleks sedemikian sehingga plainteks merupakan fungsi matematika dari cipherteks dan kunci yang cukup kompleks. c.
Related-key attack Kriptanalis memiliki cipherteks yang dienkripsi dengan dua kunci
berbeda. Kriptanalis tidak mengetahui kedua kunci tersebut namun ia mengetahui hubungan antara kedua kunci, misalnya mengetahui kedua kunci hanya berbeda 1 bit. d.
Rubber-hose cryptanalysis
18
http://digilib.mercubuana.ac.id/
Ini mungkin jenis serangan yang paling ekstrim dan paling efektif. Penyerang mengancam, mengirim surat gelap, atau melakukan penyiksaan sampai orang yang memegang kunci memberinya kunci untuk mendekripsi pesan. (Renaldi munir, 2006:19). 2.3.2 Kompleksitas Serangan Kompleksitas serangan dapat diukur dengan beberapa cara, antara lain kompleksitas data, kompleksitas waktu, dan kompleksitas memori yaitu: 1. Kompleksitas data (data complexity) Jumlah data (plainteks dan cipherteks) yang dibutuhkan sebagai masukan untuk serangan. Semakin banyak data yang dibutuhkan untuk melakukan serangan, semakin kompleks serangan tersebut, yang berarti semakin bagus sistem kriptografi tersebut. 2. Kompleksitas waktu (time complexity) Waktu yang dibutuhkan untuk melakukan serangan. Semakin lama waktu yang dibutuhkan untuk melakukan serangan, berarti semakin bagus kriptografi tersebut. 3. Kompleksitas ruang memori (space/storage complexity) Jumlah memori yang dibutuhkan untuk melakukan serangan. Semakin banyak memori yang dibutuhkan untuk melakukan serangan, berarti semakin bagus sistem kriptografi tersebut. (Renaldi munir, 2006:19). 2.4 Algoritma Kriptografi Algoritma ditinjau dari asal usul kata, kata algoritma mempunyai sejarah yang menarik, kata ini muncul didalam kamus Webster sampai akhir tahun 1957 hanya menemukan kata algorism yang mempunyai arti peroses perhitungan dengan bahasa arab. Algoritma berasal dari nama penulis buku arab yang terkenal yaitu abu jafar Muhammad ibnu musa al-khuwarizmi (al-khuwarizmi dibaca oleh orang barat menjadi algorism). Kata algorism lambat laun berubah menjadi algorithm.
19
http://digilib.mercubuana.ac.id/
Dalam perkembangannya, kriptografi juga digunakan untuk mengidentifikasi pengiriman pesan dan tanda tangan digital dan keaslian pesan dengan sidik jari digital. (Dony ariyus, 2005:13). Definisi terminologinya algoritma adalah urutan langkah – langkah logis untuk penyelesaian masalah yang disusun secara sistimatis. Algoritma kriptografi merupakan langkah – langkah logis bagaimana menyembunyikan pesan dari orang – orang yang tidak berhak atas pesan tersebut. Beberapa istilah yang harus diketahui yaitu : 1. Pesan, Plainteks dan Cipherteks Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah (plaintext) atau teks jelas (cleartext). Agar pesan tidak dapat dimengerti maknanya oleh pihak lain yang tidak berkepentingan, maka pesan perlu disandikan kebentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut cipherteks (ciphertext) atau kriptogram (cryptogram). Cipherteks harus dapat ditransformasikan kembali menjadi plainteks semula agar dapat diterima dan bisa dibaca. 2. Pengirim dan Penerima Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan. Pengirim tentu menginginkan pesan dapat dikirm secara aman, yaitu pengirim yakin bahwa pihak lain tidak dapat membaca isi pesan yang dikirim. Solusinya adalah dengan cara meyandikan pesan menjadi cipherteks. 3. Enkripsi dan Dekripsi Proses menyandikan plainteks menjadi cipherteks disebut enkripsi (encryption) atau enciphering. Sedangkan proses mengembalikan cipherteks menjadi plainteks disebut dekripsi (decryption) atau deciphering.
20
http://digilib.mercubuana.ac.id/
4. Cipher dan Kunci Algoritma kriptografi disebut juga chipper, yaitu aturan untuk enkripsi dan dekripsi, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk enciphering dan deciphering. Keamanan dari algoritma kriptografi tergantung dari bagaimana suatu algoritma itu bekerja, maka algoritma semacam ini disebut dengan algoritma terbatas. Algoritma terbatas merupakan suatu algoritma yang dipakai sekelompok orang untuk merahasiakan pesan yang dikirimnya. Jika salah satu dari anggota kelompok itu keluar dari kelompoknya maka, algoritma yang dipakai diganti dengan yang baru, jika tidak hal ini bisa menjadi masalah dikemudian hari. Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua buah himpunan yang berisi elemen – elemen plainteks dan himpunan yang berisi cipherteks. enkripsi dan dekripsi merupakan fungsi yang memetakan elemen – elemen antara dua himpunan tersebut. Misalkan P menyatakan plainteks dan C menyatakan cipherteks, maka fungsi enkripsi E memetakan P ke C. E(P)=C Dan fungsi dekripsi D memetakan C ke P D(C)=P Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan semula, maka kesamaan berikut harus benar. D ( E ( P )) = P Kriptografi mengatasi masalah keamanan data dengan menggunakan kunci, yang dalam hal ini algoritma tidak dirahasiakan lagi, tetapi kunci harus tetap dijaga kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk transformasi enciphering dan deciphering.
21
http://digilib.mercubuana.ac.id/
Kunci biasanya berupa string atau deretan bilangan. Dengan menggunakan K, maka fungsi enkripsi dan dekripsi dapat ditulis sebagai : 𝐸𝑘 ( P ) = C dan 𝐷𝑘 ( C ) = P Dan kedua fungsi ini memenuhi Dk ( Ek ( P )) = P Keterangan : P = plainteks C = cipherteks K = kunci Ek = Proses enkripsi menggunakan kunci K Dk = Proses dekripsi menggunakan kunci K Skema enkripsi dan dekripsi dengan menggunakan kunci diperlihatkan pada gambar dibawah ini :
Gambar 2.5 Skema Enkripsi dan Dekripsi dengan menggunakan Kunci 5. Sistem kriptografi Kriptografi membentuk sebuah sistem yang dinamakan sistem kriptografi. Sistem kriptografi (cryptosystem) adalah kumpulan yang tediri dari algoritma kriptografi, semua plainteks dan cipherteks yang mungkin, dan kunci. Di dalam kriptografi, cipher hanyalah salah satu komponen saja. 22
http://digilib.mercubuana.ac.id/
6. Penyadap Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan selama ditransmisi. Tujuan penyadap adalah untuk mendapat informasi sebanyak – banyaknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks. Nama lain penyadap: enemy, adversary, intruder, interceptor, bad guy. 7. Kriptanalisis dan kriptologi Kriptologi berkembang sedemikian rupa sehingga melahirkan bidang yang berlawanan yaitu kriptanalisis. Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Pelakunya disebut kriptanalis. Jika seorang kriptografer (cryptographer) mentransformasikan plainteks menjadi cipherteks dengan suatu algoritma dan kunci maka sebaliknya seorang kriptanalis berusaha untuk memecahkan cipherteks tersebut untuk menemukan plainteks atau kunci. Kriptologi (cryptology) adalah studi mengenai kriptografi dan kriptanalisis. Baik kriptografi maupun kriptanalisis keduanya saling berkaitan, dapat dilihat seperti gambar dibawah ini:
Gambar 2.6 Kriptografi dan Kriptanalisis adalah cabang bidang ilmu kriptologi
23
http://digilib.mercubuana.ac.id/
Keamanan dari algoritma kriptografi tergantung dari bagaimana suatu algoritma itu bekerja, maka algoritma semacam ini disebut dengan algoritma terbatas. Algoritma terbatas merupakan suatu algoritma yang dipakai sekelompok orang untuk merahasiakan pesan yang dikirimnya. Jika salah satu dari anggota kelompok itu keluar dari kelompoknya maka, algoritma yang dipakai diganti dengan yang baru, jika tidak hal ini bisa menjadi masalah dikemudian hari. (Renaldi munir, 2006:3). 2.5 Macam – Macam Algoritma Kriptografi Algoritma kriptografi dibagi menjadi tiga bagian berdasarkan dari kunci yang dipakainya : 1. Algoritma simetri (menggunakan satu kunci untuk proses enkripsi dan dekripsinya) 2. Algoritma asimetri (menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya) 3. Hash Function (fungsi hash satu arah) 2.5.1 Algoritma Simetri Algoritma ini juga sering disebut dengan algoritma klasik, karena memakai kunci yang sama untuk proses enkripsi dan dekripsinya. Algoritma ini sudah ada lebih dari 4000 tahun yang lalu. Mengirim pesan dengan menggunakan algoritma ini, sipenerima pesan harus diberi tahu kunci dari pesan tersebut agar bisa mendekripsi pesan yang dikirim. Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci, jika kunci tersebut diketahui oleh orang lain maka, orang tersebut bisa melakukan enkripsi dan dekripsi terhadap pesan tersebut. Algoritma yang memakai kunci simetri diantaranya adalah: 1. Data Encryption Standard (DES) 2. RC2, RC4, RC5, RC6 3. International Data Encryption Algorithm (IDEA) 4. Advanced Encryption Standard (AES)
24
http://digilib.mercubuana.ac.id/
5. One Time Pad (OTP) 6. A5, dan lain – lain
Gambar 2.7 Skema Kriptografi Simetri 2.5.2 Algoritma Asimetri Algoritma asimetri sering juga disebut dengan algoritma kunci public, dengan arti kata kunci yang digunakan untuk melakukan enkripsi dan dekripsinya berbeda. Pada algoritma asimetri kunci terbagi menjadi dua bagian : 1. Kunci umum (public key): kunci yang boleh semua orang tahu (dipublikasikan) 2. Kunci pribadi (private key): kunci yang dirahasiakan (hanya boleh diketahui oleh satu orang)
Gambar 2.8 Skema Kriptografi Asimetri Kunci – kunci tersebut saling berhubungan satu dengan yang lainnya. Dengan kunci public orang dapat mengenkripsi pesan tapi tidak bisa mendekripsinya, hanya orang yang memiliki kunci pribadi yang dapat mendekripsi pesan tersebut. Algoritma asimetris bisa melakukan pengiriman pesan lebih aman dari pada algoritma simetris. Algoritma yang memakai kunci public diantaranya adalah:
25
http://digilib.mercubuana.ac.id/
1. Digital Signature Algorithm (DSA) 2. RSA 3. Diffie – Hellman (DH) 4. Elliptic Curve Cryptography (ECC) dan lain – lain 2.5.3 Hash Function (Fungsi hash) Fungsi hash sering disebut dengan fungsi hash satu arah (one-wayfunction), message digest, fingerprint, fungsi kompresi dan message authentication code (MAC), hal ini merupakan suatu fungsi matematika yang mengambil input panjang variabel dan mengubahnya kedalam urutan biner dengan panjang yang tetap. Fungsi hash biasanya diperlukan bila ingin membuat sidik jari dari suatu pesan. Sidik jari pada pesan merupakan suatu tanda yang menandakan bahwa pesan tersebut benar – benar dari orang yang di inginkan. (Dony ariyus, 2006:14). 2.6 Kriptografi Klasik dan Kriptografi Modern 2.6.1 Kriptografi Klasik Sebelum komputer ada, kriptografi dilakukan dengan menggunakan pensil dan kertas. Algoritma kriptografi (cipher) yang digunakan saat itu, dinamakan juga algoritma klasik, adalah berbasis karakter, yaitu enkripsi dan dekripsi dilakukan pada setiap karakter pesan. Semua algoritma klasik termasuk ke dalam sistem kriptografi simetri dan digunakan jauh sebelum kriptografi kunci publik ditemukan. Kriptografi klasik memiliki beberapa ciri: 1. Berbasis Karakter 2. Menggunakan pena dan kertas saja, belum ada komputer 3. Termasuk ke dalam kriptografi kunci simetris. Tiga alasan mempelajari algoritma klasik: 1. Memahami konsep dasar kriptografi
26
http://digilib.mercubuana.ac.id/
2. Dasar algoritma kriptografi modern 3. Memahami kelemahan sistem cipher Pada dasarnya, algoritma kriptografi klasik dapat dikelompokkan ke dalam dua macam cipher, yaitu : 1. Cipher substitusi (substitution cipher) Di dalam cipher substitusi setiap unit plainteks diganti dengan satu unit cipherteks. Satu “unit” di sini berarti satu huruf, pasangan huruf, atau dikelompokkan lebih dari dua huruf. Algoritma substitusi tertua yang diketahui adalah Caesar cipher yang digunakan oleh kaisar Romawi , Julius Caesar (sehingga dinamakan juga caesar cipher), untuk mengirimkan pesan yang dikirimkan kepada gubernurnya. 2. Cipher transposisi (transposition cipher) Pada cipher transposisi, huruf - huruf di dalam plainteks tetap saja, hanya saja urutannya diubah. Dengan kata lain algoritma ini melakukan transpose terhadap rangkaian karakter di dalam teks. Nama lain untuk metode ini adalah permutasi atau pengacakan (scrambling) karena transpose setiap karakter di dalam teks sama dengan mempermutasikan karakter - karkater tersebut. (Renaldi munir, 2006:55). 2.6.2 Kriptografi Modern Kriptografi modern menggunakan gagasan dasar yang sama seperti kriptografi klasik (permutasi dan transposisi) tetapi penekanannya berbeda. Pada kriptografi klasik, kriptografer menggunakan algoritma yang sederhana, yang memungkinkan cipherteks dapat dipecahkan dengan mudah (melalui penggunaan statistik, terkaan, dan sebagainya). Algoritma kriptografi modern dibuat sedemikian kompleks sehingga kriptanalis sangat sulit memecahkan cipherteks tanpa mengetahui kunci. Algoritma kriptografi modern umumnya beroperasi dalam mode bit ketimbang mode karakter (seperti yang dilakukan pada cipher substitusi atau
27
http://digilib.mercubuana.ac.id/
cipher transposisi dari algoritma kriptografi klasik). Operasi dalam mode bit berarti semua data dan informasi (baik kunci, plainteks, maupun cipherteks) dinyatakan dalam rangkaian (string) bit biner, 0 dan 1. Algoritma enkripsi dan dekripsi memproses semua data dan informasi dalam bentuk rangkaian bit. Rangkaian bit yang menyatakan plainteks di enkripsi menjadi cipherteks dalam bentuk rangkaian bit, demikian juga sebaliknya. Perkembangan algoritma kriptografi modern berbasis bit di dorong oleh penggunaan komputer digital yang merepresentasikan data dalam bentuk biner. Muara dari kriptografi modern adalah menyediakan keamanan pesan di dalam jaringan komputer. (Renaldi munir, 2006:97). 2.7 Cipher Substitusi Di dalam cipher substitusi setiap unit plainteks diganti dengan satu unit cipherteks. Satu “unit” disini bisa berarti satu huruf, pasangan huruf, atau kelompok lebih dari dua huruf. Algoritma substitusi tertua yang diketahui adalah Caesar Cipher yang digunakan oleh Kaisar Romawi, Julius Caesar (sehingga dinamakan juga Caesar cipher), untuk menyandikan pesan yang ia kirim kepada gubernurnya. 2.7.1
Caesar Cipher
Pada Caesar Cipher, tiap huruf disubtitusi dengan huruf ketiga berikutnya dari susunan alfabet yang sama. Dalam hal ini kuncinya adalah jumlah pergeseran huruf. Susunan alfabet setelah digeser sejauh 3 huruf membentuk sebuah tabel subtitusi, sebagai berikut :
Jadi, huruf A pada plainteks disubtitusi dengan D, huruf B disubtitusi dengan E, demikian seterusnya. Gambar 2.9 memperlihatkan Caesar Wheel yang berfungsi sebagai tabel subtitusi. Caesar wheel terdiri dari dua buah
28
http://digilib.mercubuana.ac.id/
lempeng lingkaran besi. Lingkaran besi paling luar menyatakan huruf - huruf plainteks sedangkan lingkaran besi terdalam menyatakan huruf - huruf cipherteks. Lingkaran besi dapat diputar sejauh pergeseran yang diinginkan. Misalnya jika lingkaran besi terdalam digeser sejauh 3 huruf, maka susunan huruf di dalam kedua lingkaran besi mempresentasikan tabel subtitusi di atas.
Gambar 2.9 Caesar Wheel (Sumber:www.pricecodebreaker.com) Contoh 2.9 Dengan menggunakan Caesar Cipher, maka pesan: P = AWASI ASTERIX DAN TEMANNYA OBELIX K=3 Disandikan dengan Caesar Cipher menjadi DZDVL DVWHULA GDQ WHPDQQBA REHOLA Dengan mengkodekan setiap huruf alfabet dengan integer: ’A’ = 0, ’B’ = 1, …, ’Z’ = 25, maka secara matematis pergeseran 3 huruf alfhabet dengan melakukan operasi modulo terhadap plainteks P menjadi cipherteks C dengan persamaan. C = E ( P ) = ( P + 3 ) mod26
(2.9)
29
http://digilib.mercubuana.ac.id/
Karena ada 26 huruf di dalam alfhabet. Penerima pesan mengembalikan lagi cipherteks dengan operasi kebalikan, yang secara matematis dapat dinyatakan dengan persamaan. P = D ( P ) = ( C – 3 ) mod26
(2.10)
Perhatikan bahwa fungsi D adalah kebalikan (inverse) dari fungsi E, yaitu D ( C ) = E-1 (P ). Cipherteks pada contoh 2.9 dapat juga dihitung dengan persamaan 2.9 sebagai berikut: P1 = ” A ” = 0
C1 = E ( 0 ) = ( 0 + 3 ) mod 26 = 3 = ” D ”
P2 = ” W ” = 22
C2 = E ( 22 ) = ( 22 + 3 ) mod 26 = 25 = ” Z ”
P3 = ” A ” = 0
C3 = E ( 0 ) = ( 0 + 3 ) mod 26 = 3 = ” D ”
P4 = ” S ” = 18
C4 = E ( 18 ) = ( 18 + 3 ) mod 26 = 21 = ” V ”
P5 = ” I ” = 8
C5 = E ( 8 ) = ( 8 + 3 ) mod 26 = 11 = ” L ”
Dst……. Bila keseluruhan perhitungan diselesaikan, maka diperoleh cipherteksnya adalah: DZDVL DVWHULA GDQ WHPDQQBA REHOLA Cipherteks tersebut dapat dikembalikan menjadi plainteks asal dengan persamaan 2.10 menjadi: AWASI ASTERIX DANTEMANNYA OBELIX Keterangan: C = Cipherteks E = Enkripsi P = Plainteks 30
http://digilib.mercubuana.ac.id/
Mod = Sisa Bagi Secara umum, teknik pergeseran huruf sejauh K (dalam hal ini K adalah kunci enkripsi dan dekripsi), fungsi enkripsi adalah C = E ( P ) = ( P + K ) mod26
(2.9)
Dan fungsi dekripsi adalah P = D ( C ) = ( C – K ) mod26
(2.10)
Catatan: 1. Pergeseran 0 sama dengan pergeseran 26 (susunan huruf tidak berubah) 2. Pergeseran lain untuk K > 25 dapat juga dilakukan namun hasilnya akan kongruen dengan bilangan bulat dalam modulo 26. Misalnya k=37 kongruen dengan 11 dalam modulo 26, atau 37 ≡ 11( mod26 ) 3. Karena ada operasi penjumlahan dalam persamaan ( 3 ) dan ( 4 ), maka Caesar cipher kadang - kadang dinamakan juga additive cipher. (Renaldi munir, 2006:56). pada perkembangannya algoritma Caesar Cipher
memberikan suatu
gagasan baru untuk menggunakan kunci lain atau bisa di sebut dengan polyalfabetic, kunci bisa jadi nama, alamat atau apa saja yang di ingini oleh pengirim pesan. Coba perhatikan contoh dibawah ini: Caesar Cipher dengan menggunakan satu kunci atau bisa di sebut dengan subtitusi deret campur kata kunci, yang perlu di ingat, tidak ada perulangan huruf dalam hal ini. DONY ARIYUS menjadi DONYARIUS, huruf Y terjadi perulangan jadi tidak dipakai lagi.
Menggunakan satu kunci: Plaintext
: “KENAIKAN HARGA BBM MEMBUAT RAKYAT KECIL MENDERITA”
31
http://digilib.mercubuana.ac.id/
Kunci
: DONY ARIYUS
Ciphertext
: CAGDSCDG UDLID OOF FAFOQDP LDCXDP CANSE FAGYALSPD
Caesar Cipher bisa di pecahkan dengan cara brute force suatu bentuk dari sebuah serangan yang dimana mencoba kemungkinan untuk menemukan kunci sampai kunci itu ditemukan. Banyaknya kunci dari suatu cipher , cukup meresponkan para cryptanalysis, walaupun dicoba dengan cara brute force attack akan membutuh waktu untuk menemukan kunci dari cipherteks. Tapi cara ini selalu berhasil walaupun memerlukan waktu yang lama. (Dony ariyus, 2006:20). 2.8 Pengertian Smartphone Beberapa tahun terakhir ini terjadi perkembangan yang sangat pesat pada teknologi, salah satunya perangkat mobile teknologi yang kita sadari telah banyak ada di sekitar kita adalah banyaknya “Ponsel Cerdas” (Smartphone) atau telepon genggam berteknologi. Smartphone ini tidak hanya mampu untuk melakukan tugas telepon genggam biasa, namun juga tugas – tugas yang biasa dilakukan oleh komputer pada umumnya. Smartphone atau yang dikenal arti bahasa Indonesia adalah telepon pintar. Merupakan alat telekomunikasi yang menggunakan sistem operasi sebagai penggerak aplikasi yang ada dalam telepon tersebut. Smartphone memiliki fungsi yang lebih dibandingkan dengan telepon genggam biasa yang sering digunakan. Selain dapat digunakan sebagai alat telekomunikasi, smartphone juga dapat menjadi alat sosialisasi dalam dunia nyata, dapat membuka dokumen yang ada, koneksi yang juga lebih lengkap seperti Wi-Fi, BroadBand, dan juga Bluetooth 2.9 Android Studio Android adalah sistem operasi mobile berbasis Linux yang dimodifikasi untuk perangkat bergerak (mobile devices) yang terdiri dari sistem operasi, middleware, dan aplikasi – aplikasi utama. Awalnya, android dikembangkan oleh android Inc. perusahaan ini kemudian dibeli oleh google pada tahun 2005. Sistem operasi
32
http://digilib.mercubuana.ac.id/
android kemudian diluncurkan bersamaan dengan dibentuknya organisasi Open Handset Al-Liance tahun 2007. Selain google, beberapa nama – nama besar juga ikut serta dalam Open Handset Alliance, antara lain Motorola, Samsung, LG, Sony Ericsson, T-Mobile, Vodafone, Toshiba, dan Intel.
Gambar 2.10 logo android Platform pengembang aplikasi android ini bersifat open-source atau terbuka. Sehingga anda dapat mengembangkan kemampuan untuk membangun aplikasi yang kaya dan inovatif. Bahkan seseorang pengembang (developer) android dapat membuat aplikasi yang bervariasi, kemudian menjual untuk keuntungan pribadi tanpa ada lisensi ke produsan atau vendor tertentu. (Zamrony P. juhara, 2016:1). 2.9.1 Arsitektur Android Studio Secara garis besar, arsitektur android terdiri dari atas applications dan widgets, applications frameworks, libraries, android run time, dan Linux karnel. Applications dan widgets merupakan layar atau lapis, dimana kita berhubungan dengan aplikasi saja. Applications frameworks merupakan open development platform yang ditawarkan android untuk dapat dikembangkan guna membangun aplikasi. Pengembangan memiliki akses penuh menuju API Frameworks seperti yang dilakukan oleh aplikasi kategori inti. Komponen – komponen yang termasuk didalam
applications frameworks adalah sebagai berikut: views, content
33
http://digilib.mercubuana.ac.id/
provider, resource manager, notification manager, dan activity manager. Libraries merupakan layar, dimana fitur – fitur android berada. 2.9.2 Struktur Aplikasi Android Struktur aplikasi android atau fundamental aplikasi ditulis dalam bahasa pemrograman java. Kode java dikompilasi bersama dengan file resource yang dibutuhkan oleh aplikasi, dimana prosesnya di package oleh tools yang dinamakan “apt tools” kedalam paket android, sehingga menghasilkan file dengan ekstensi apk. File apk ini yang disebut dengan aplikasi, dan nantinya dapat dijalankan pada device atau peralatan mobile. Ada empat komponen pada aplikasi android sebagai berikut: a. activities merupakan komponen untuk menyajikan user interface ( tampilan program ) kepada pengguna. b. Service merupakan komponen yang tidak memiliki user interface ( tampilan program ), tetapi service berjalan secara backgrounds. c. Broadcast receiver merupakan komponen yang berfungsi menerima dan bereaksi untuk menyampaikan notifikasi. d. Content provider merupakan komponen membuat kumpulan aplikasi data secara spesifik sehingga bisa digunakan oleh aplikasi lain. 2.9.3 Kelebihan dan Kekurangan Android Android merupakan system operasi yang dirancang dan dipublikasikan oleh google, sebuah perusahaan mesin pencari dan raksasa internet. Dewasa ini pabrikan ponsel dan smartphone ramai – ramai memakai android sebagai sistem operasi mereka lebih memilih android sebagai OS yang dipakai dari pada menggunakan sistem operasi lain dikarenakan OS android terdapat kelebihan didalamnya sebagai sistem operasi saat ini. Kelebihan android diantaranya yaitu: 1. Android bersifat terbuka, karena berbasis Linux yang open sourcenya bisa dikembangkan oleh siapa saja.
34
http://digilib.mercubuana.ac.id/
2. Akses mudah ke android app market, pengguna android adalah orang yang gemar utak atik handphone. Dengan google android app market dapat mendownload berbagai aplikasi dengan geratis. 3. Widget, pada layar utama android terdapat widget yang memudahkan user mengakses aplikasi android, misalnya menampilkan status terbaru FB, Twitter atau melihat kondisi cuaca daerah tertentu (tentunya dibutuhkan koneksi dengan internet). 4. Sistem operasi merakyat, ponsel android beda sekali dengan IOS yang terbatas pada iphone dari apple, maka android memiliki banyak produsen dengan gadget andalan masing – masing mulai dari HTC hingga Samsung. 5. Fasilitas penuh USB, anda dapat mengganti baterai, mass storage, diskdrive, dan USB tathering. 6. Mudah dalam hal notifikasi, sistem operasi ini bisa memberitahukan anda tentang adanya SMS, Email, atau bahkan artikel terbaru dari RSS Reader. Bahkan anda tidak akan terlewat dalam hall miscall sekalipun. 7. Mendukung semua layanan google, sistem operasi android mendukung semua layanan dari google mulai dari gmail sampai google reader. Semua layanan google biasa dimiliki dengan satu sistem operasi yaitu android. 8. Install ROM modifikasi, jika mendapati ROM yang tidak resmi, maksudnya adalah versi yang telah rilis tidak sesuai dengan spesifikasi ponsel kita, jalan terakhir adalah modifikasi. Jangan khawatir ada banyak custom ROM yang dapat dipakai di ponsel android dan dijamin tidak akan membahayakan perangkat anda. Kekurangan android diantaranya yaitu: 1. Terhubung dengan internet, android dapat dikatakan sangat memerlukan koneksi internet yang aktif. setidaknya harus ada koneksi internet GPRS didaerah anda, agar perangkat siap untuk online sesuai dengan kebutuhan kita. 2. Perusahaan perangkat terkadang lambat mengeluarkan versi resmi dari android, meskipun terkadang tidak ada perbedaan mencolok dalam hal UI.
35
http://digilib.mercubuana.ac.id/
3. Android market kurang control dari pengelola, terkadang masih terdapat malware. 4. Sebagai penyedia layanan langsung, terkadang pengguna sangat sulit sekali terhubung dengan pihak google. 5. Iklan, disetiap aplikasi hampir selalu muncul iklan, kecuali aplikasi bawaan android sendiri atau aplikasi berbayar. Karena mudah dan geratis, terkadang sering diboncengi iklan. Secara tampilan memang tidak mengganggu kinerja aplikasi itu sendiri, karena memang kadang berada dibagian atas atau bawah aplikasi. 6. Boros baterai.
2.9.4 Versi Android Studio Android telah mengalami sejumlah pembaruan sejak pertama kali dirilis. Rata – rata, versi terbaru dari android dirilis setiap 6 bulan. Beberapa jenis versi android dan nama kodenya. Penamaan kode menggunakan nama makanan dan huruf depannya urut sesuai abjad sebagai berikut: Tabel 2.2 Versi Android
Berikut beberapa jenis versi android dan penjelasannya: a. Banana Bread Sebagai hasil pengembang versi perdana, versi ini pertama kali dirilis oleh google pada tanggal 9 maret 2009. Versi ini memiliki fitur – fitur : jam, 36
http://digilib.mercubuana.ac.id/
alarm, voice search (pencarian suara), pengiriman pesan dengan gmail dan pemberitahuan dengan email. b. Cupcake Android 1.5 (API Level 3) yang dikenal dengan nama kode Cupcake ini dirilis pada april 2009. API Level 3 membawa perbaikan dari versi sebelumnya dan tentu saja fitur baru. Misalnya, dukungan On-screen keyboard, video recording, home screen widget, fitur auto pairing pada Bluetooth, karnel Linux versi 2.6.7, dan kemampuan memperbaiki filesistem SD Card yang rusak. c. Donut Android 1.6 (API Level 4) yang dirilis pada oktober 2009 ini merupakan rilis minor dengan fitur utama berupa dukungan teknologi CDMA, gesture, text-to-speech engine, dan fitur pencarian cepat yang memungkinkan anda mencari semua hal seperti kontak, riwayat jelajah internet, bookmark, dan lainnya. d. Eclair Android 2.1 (API Lavel 7) yang dirilis pada januari 2010 ini mengusung fitur baru seperti live wallpaper dan beberapa fitur baru seperti android 2.0, misalnya menggunakan banyak akun, kontak cepat, Bluetooth 2.1 dan profil Bluetooth baru yaitu object push profile (OPP) dan phone book access profile (PBAP). e. Froyo Android 2.2 (API Level 8) dirilis pada mei 2010. Fitur baru yang dibawa adalah dukungan OpenGL ES 2.0, instalasi aplikasi penyimpan eksternal (SD Card), dan android cloud to device messaging yang memungkinkan aplikasi melakukan push messaging dan portable hotspot
yang
memungkinkan piranti android menjadi hotspot Wi-Fi untuk berbagai koneksi internet. f. Gingerbread Android 2.3 (API Level 9 dan 10) mengusung beberapa fitur baru, antara lain dukungan banyak kamera, near field communication (NFC), download
37
http://digilib.mercubuana.ac.id/
manager service, dukungan terhadap sensor lain seperti giroskop, dan barometer. g. Honeycomb Android 3.0 (API Level 11) membawa perubahan besar terutama pada tampilan UI yang berubah drastis supaya optimal untuk piranti layar besar seperti tablet. Pada versi ini diperkenalkan fragment, action bar, system clipboard, dan cursor loader. h. Ice Cream Sandwich Android 4.0 (API Level 14) membawa perubahan besar terutama pada tampilan UI android 3.0 supaya cocok pada layar kecil sehingga memungkinkan aplikasi anda tampak konsisten di tablet maupun ponsel. Fitur baru seperti android beam dan Wi-Fi direct juga ditambahkan. i. Jellybean Android 4.1 (API Level 16) adalah rilis minor yang membawa perbaikan fungsionalitas dan performa rendering user – interface (UI). Versi 4.2 (API Lavel 17) mengusung fitur baru seperti gesture typing dan dukungan multiuser dipiranti tablet. Versi 4.3 (API Level 18) membawa perbaikan berupa dukungan Bluetooth low energy dan OpenGL ES 3.0. beberapa fitur baru antara lain dukungan terhadap bahasa internasional dan penulisan teks dua arah (kiri ke kanan atau kanan ke kiri untuk bahasa – bahasa tertentu seperti bahasa arab). j. Kitkat Android 4.4 (API evel 19) ini mengusung sejumlah perbaikan dan fitur baru, terutama dukungan teknologi near field communication (NFC) melalui host card emulation, percetakan ke printer nirkabel, WebView dengan rendering engine Chromium, dan dukungan yang lebih baik bagi piranti yang menggunakan RAM rendah. 2.10 Barcode 2D Quick Response Code (QR Code) Barcode 2D Biasa disebut dengan QR Code merupakan matrix code yang dikembangkan pada tahun 1994 oleh Denso-Wave, yakni divisi Toyota Corporation Jepang. Kepanjangan dari QR adalah Quick Response yang artinya
38
http://digilib.mercubuana.ac.id/
bisa meng-encode data yang ada didalam code tersebut dengan cepat. QR Code ini berisi informasi baik dalam arah vertikal dan horizontal dan Pola simbol berupa matriks titik dalam suatu area berbentuk persegi empat, ukuran kotak sekitar 1,5 centi meter persegi. QR Code bisa menyimpan data numerik sepanjang 7.089 digit dan 4.296 karakter huruf. Fungsi dari QR Code hampir sama dengan sistim barcode satu dimensi yang kita kenal selama ini yaitu digunakan untuk mengidentifikasi suatu barang secara cepat dan mudah, tetapi di era modern saat ini QR Code ini bisa digunakan lebih luas untuk segala macam kebutuhan seperti tiketing pesawat, tiket bioskop, iklan, MMS, kartu nama, dalam bidang post digunakan sebagai perangko online, dan dalam bidang industri digunakan sebagai kode informasi untuk komponen elektronika, perhiasan dsb. Sehingga dapat disimpulkan keuntungan yang paling utama dari penggunaan 2D adalah efisiensi, kecepatan, ketepatan dan keamanan data serta mengalokasian waktu yang ada. Namun diantara standar-standar Barcode 2D tersebut hanya Barcode 2D dengan standar QR Code yang memiliki keunggulan lebih dibanding yang lainnya, diantaranya QR Code dapat menampung data lebih banyak dengan ukuran yang kecil, dapat dipergunakan untuk semua kategori penggunaan dan telah menjadi Barcode 2D yang diakui oleh dunia. Dengan adanya perangkat Smatrphone Berbasis android memudahkan informasi pengenalan suatu produk yang menggunakan sistem Barcode tersebut. Sekarang QR Code tidak hanya diletakkan pada barang saja sekarang informasi apa saja menggunakan QR Code karena Barcode 2D dengan standar QR Code telah menjadi standar dunia dan memiliki banyak kelebihan termasuk dari segi penggunaannya. Pembacaan QR Code Dengan menggunakan software khusus, untuk pembacaan data yang ada pada QR Code salah satunya bisa menggunakan HP yang didalam nya sudah terdapat software QR Code reader
39
http://digilib.mercubuana.ac.id/
Selain dengan menggunakan HP dan Barcode reader bahkan ada sejumlah produk kamera digital yang mampu menangkap citra barcode 2D untuk kemudian dapat diterjemahkan oleh software ke dalam pesan yang dapat dibaca oleh kita. 2.11 Rekaya Perangkat Lunak RPL (Rekayasa Perangkat Lunak) adalah suatu disiplin ilmu yang mempelajari semua aspek produksi dalam suatu proses perancangan suatu perangkat lunak / sistem dengan tujuan untuk dapat menghasilkan suatu perangkat lunak / sistem dengan cara yang efektif dan efisien dari segi biaya, waktu dan tenaga. Pada dasarnya rekayasa perangkat lunak lebih memfokuskan pada tahapan – tahapan pengembangan suatu perangkat lunak yakni: Analisis, desain, implementasi, pengujian, pemeliharaan, dan dokumentasi. (Roger S Pressman, 2002). 2.12 Metode Pengembangan Sistem 2.12.1 Software Development Life Cycle (SDLC) Pada setiap pengembangan perangkat lunak tidak akan terlepas dari sebuah Software Development Life Cycle (SDLC). SDLC merupakan sebuah siklus pengembangan perangkat lunak yang terdiri dari beberapa tahapan. Tahapantahapan
tersebut
adalah
requirements
(analisis
kebutuhan),
design
(perancangan), coding/implementation (implementasi), testing (pengujian), dan maintenance (perawatan). Dalam SDLC terdapat banyak metode yang dapat dipakai untuk mengembangkan sebuah perangkat lunak misal Metode Waterfall. 2.12.2 Metode Waterfall Metode Waterfall sering juga disebut model sekuensial linier (sequential linear) atau alur hidup klasik (classic life cycle) adalah metode yang menyarankan sebuah pendekatan yang sistematis dan sekuensial melalui tahapan - tahapan yang ada pada SDLC untuk membangun sebuah perangkat lunak. bahwa metode Waterfall menekankan pada sebuah keterurutan dalam proses pengembangan perangkat lunak. Model air terjun (waterfall)
40
http://digilib.mercubuana.ac.id/
menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis, desain, pengodean, pengujian dan tahap akhir pemeliharaan. Pada penulisan Tugas Akhir yang berjudul “Aplikasi Enkripsi dan Dekripsi
Menggunakan Algoritma Caesar Cipher Dalam Bentuk QR Code
Berbasis Android”. Metodologi penelitian ini menggunakan satu metode rancang bangun aplikasi dengan siklus pengembangan model air terjun atau metode waterfall. Metode ini adalah sebuah metode yang tepat untuk membangun sebuah perangkat lunak yang tidak terlalu besar dan sumber daya manusia yang terlibat dalam jumlah yang terbatas. Model waterfall menurut Roger S. Pressman:
Gambar 2.11 Model waterfall menurut Roger S. Pressman Model pengembangan ini tidak mengizinkan tahapan tertentu langsung menggantikan tahapan berikutnya sampai operasi tahapan yang terdahulu telah
41
http://digilib.mercubuana.ac.id/
terpenuhi. Berikut adalah penjelasan umum dari tahap - tahap yang dilakukan di dalam Model waterfall menurut Roger S. Pressman: a. Analisis kebutuhan perangkat lunak Proses
pengumpulan
kebutuhan
dilakukan
secara
intensif
untuk
menspesifikasikan kebutuhan perangkat lunak agar dapat dipahami perangkat lunak seperti apa yang dibutuhkan oleh user. Spesifikasi kebutuhan perangkat lunak pada tahap ini perlu untuk didokumentasikan. b. Desain Desain perangkat lunak adalah proses multilangkah yang fokus pada desain pembuatan program perangkat lunak termasuk struktur data, arsitektur perangkat lunak, representasi antarmuka, dan prosedur pengodean. Tahap ini mentranslasi kebutuhan perangkat lunak dari tahap analisis kebutuhan ke refresentasi desain agar dapat di implementasikan menjadi program pada tahap selanjutnya. Desain perangkat lunak yang dihasilkan pada tahap ini juga perlu didokumentasikan. c. Pembuatan kode program Desain harus ditranslasikan kedalam program perangkat lunak. Hasil dari tahap ini adalah program komputer sesuai dengan desain yang telah dibuat pada tahap desain. d. Pengujian Pengujian fokus pada perangkat lunak secara dari segi lojik dan fungsional dan memastikan bahwa semua bagian sudah di uji. Hal ini dilakukan untuk meminimalisir kesalahan (error) dan memastikan keluaran yang dihasilkan sesuai dengan yang diinginkan. e. Pendukung (support) atau pemeliharaan (maintenance) Tidak menutup kemungkinan sebuah perangkat lunak mengalami perubahan ketika sudah dikirimkan ke user. Perubahan bisa terjadi karena adanya kesalahan yang muncul dan tidak terdeteksi saat pengujian atau perangkat lunak harus beradaptasi dengan lingkungan baru. Tahap pendukung atau pemeliharaan dapat mengulangi proses pengembangan mulai dari analisis spesifikasi untuk perubahan perangkat lunak yang sudah ada, tapi tidak untuk membuat perangkat lunak baru. 42
http://digilib.mercubuana.ac.id/
2.13 Pengujian Black Box Salah satu metode pengujian perangkat lunak adalah black box testing. black box testing merupakan sebuah metode yang digunakan untuk menemukan kesalahan dan mendemonstrasikan fungsional aplikasi saat dioperasikan, apakah input diterima dengan benar dan output yang dihasilkan telah sesuai dengan yang diharapkan. pengujian yang dilakukan hanya mengamati hasil eksekusi melalui data uji dan memeriksa fungsional dari perangkat lunak. Jadi dianalogikan seperti kita melihat suatu kotak hitam, kita hanya bisa melihat penampilan luarnya saja, tanpa tau ada apa dibalik bungkus hitam nya. Sama seperti pengujian black box, mengevaluasi hanya dari tampilan luarnya (interface nya), fungsionalitasnya.tanpa mengetahui apa sesungguhnya yang terjadi dalam proses detilnya (Hanya tau input dan outputnya): a). Metode Black Box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. b). Black Box dapat menemukan kesalahan dalam kategori berikut : 1. Fungsi-fungsi yang tidak benar atau hilang 2. Kesalahan interface 3. Kesalahan dalam strutur data atau akses basis data eksternal 4. Inisialisasi dan kesalahan terminasi 5. Validitas fungsional 6. Kesensitifan sistem terhadap nilai input tertentu 7. batasan dari suatu data
43
http://digilib.mercubuana.ac.id/
Gambar 2.12 Skema Kerja dari Teknik Pengujian Black Box Pengujian black box berfokus pada persyaratan fungsional perangkat lunak dan output yang dihasilkan aplikasi. dengan demikian, pengujian black box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan persyaratan fungsional untuk suatu program. Pengujian black box bukan merupakan alternatife dari teknik white-box, tetapi merupakan pendekatan komplemeter yang kemungkinan besar mampu mengungkap kelas kesalahan dari pada metode white-box. Metode black box testing ini lebih menitikberatkan pada kebutuhan fungsi dari suatu program aplikasi . pengujian dengan metode ini dilakukan dengan cara memberikan sejumlah masukan pada program aplikasi yang kemudian proses sesuai dengan kebutuhan fungsionalnya untuk menghasilkan keluaran sesuai dengan spesifikasi rancangan, maka program aplikasi yang bersangkutan adalah benar. (Roger S Pressman, 2002). 2.14 Pengertian Unified Modeling Language(UML) UML singkatan dari Unified Modeling Language yang berarti bahasa pemodelan standar. (Chonoles, 2003:bab 1) mengatakan sebagai bahasa, berarti UML memiliki sintaks dan semantic. Ketika kita membuat model menggunakan konsep UML ada aturan – aturan yang harus di ikuti. Bagaimana elemen pada model – model yang kita buat berhubungan satu dengan lainnya harus mengikuti standar yang ada. UML bukan hanya sekedar diagram, tetapi juga menceritakan konteksnya. UML diaplikasikan untuk maksud tertentu, biasanya antara lain untuk: 1. Merancang perangkat lunak 2. Sarana komunikasi antara perangkat lunak dengan proses bisnis 3. Menjabarkan sistem secara rinci untuk analisa dan mencari apa yang diperlukan sistem
44
http://digilib.mercubuana.ac.id/
4. Mendokumentasi sistem yang ada, proses – proses dan organisasinya UML telah diaplikasikan dalam bidang investasi perbankan, lembaga kesehatan, dapartemen pertahanan, sistem terdistribusi sistem pendukung alat kerja, retail, sales dan supplier. (Prabowo pudjo widodo, 2011:6). 2.14.1 Use Case Diagram Use case atau diagram use case merupakan pemodelan untuk melakukan (behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih actor dengan sistem informasi yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi – fungsi itu. Syarat penamaan pada use case adalah nama di definisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut actor dan use case. a. Actor merupakan orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang. b. Use case merupakan fungsionalitas yang disediakan sistem sebagai unit – unit yang saling bertukar pesan antar-unit atau aktor. Tabel 2.3 Simbol – simbol yang ada pada diagram use case: simbol
Nama simbol Use Case
Keterangan Fungsionalitas yang disediakan sistem sebagai unit – unit yang saling bertukar pesan antara unit atau aktor; biasanya dinyatakan dengan menggunakan kata kerja di awal frase nama use case
45
http://digilib.mercubuana.ac.id/
Aktor / actor
Asosiasi Association
Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang; biasanya dinyatakan menggunakan kata benda diawal frase nama aktor. / Komunikasi antara aktor dan use case yang berpartisipasi pada use case atau use case memiliki interaksi dengan aktor.
Ekstensi Extend
/ Relasi use case tambahan ke sebuah use case dimana use case yang ditambahkan dapat berdiri sendiri walau tanpa use case tambahan itu. Generalisasi / Hubungan generalisasi dan spesialisasi generalization (umum-khusus) antara dua buah use case dimana fungsi yang satu adalah fungsi yang lebih umum dari lainnya. 2.14.2 Activity Diagram Diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem. Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal – hal berikut: a. Rancang proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang di definisikan. b. Urutan atau pengelompokan tampilan dari sistem / user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan antar muka tampilan c. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya.
46
http://digilib.mercubuana.ac.id/
Tabel 2.4 Simbol – simbol yang ada pada diagram activity: Simbol
Nama Simbol
Keterangan
Status Awal
Status awal aktivitas sistem, sebuah diagram aktivitas memiliki sebuah status awal
Aktivitas
Aktivitas yang dilakukan sistem, aktivitas biasanya diawali dengan kata kerja
Percabangan decision
/ Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu
Penggabungan / Asosiasi penggabungan dimana lebih dari join
satu aktivitas digabungkan menjadi satu
Status akhir
Status akhir yang dilakukan sistem, sebuah diagram aktivitas memiliki sebuah status akhir
Swimlane
Memisahkan
organisasi
bisnis
yang
bertanggung jawab terhadap aktivitas yang terjadi
2.14.3 Sequence Diagram Diagram sekuen menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambar diagram sekuen maka harus diketahui objek – objek yang terlibat dalam sebuah use case beserta metode – metode yang dimiliki kelas yang di instansiasi menjadi objek itu. 47
http://digilib.mercubuana.ac.id/
Banyak diagram sekuen yang harus digambar adalah sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah di definisikan interaksi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakin banyak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak. Tabel 2.5 Simbol – simbol yang ada pada diagram Sequence: Simbol
Nama Simbol
Keterangan
Aktor / actor
Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang; biasanya dinyatakan menggunakan kata benda diawal frase nama aktor.
Garis hidup / Menyatakan kehidupan suatu objek lifeline Pesan tipe send Menyatakan bahwa suatu objek mengirim dan return
dan menerima data atau informasi pada sistem
Objek
Menyatakan
objek
yang
berinteraksi
pesan Pesan terakhir
Digunakan untuk menggambarkan sebuah pesan yang mendefinisikan komunikasi tertentu antara lifelines dalam interaksi dari lifeline
Pesan
Digunakan untuk menggambarkan sebuah
ditemukan
pesan yang mendefinisikan komunikasi
48
http://digilib.mercubuana.ac.id/
komunikasi tertentu antara lifelines dalam interaksi
dari
lifeline
ke
lifeline
selanjutnya kerangka/ frame Digunakan untuk menggambarkan sebuah interaksi Waktu aktif
Menyatakan objek dalam keadaan aktif
2.14.4 Flowchart Flowchart adalah bagan – bagan yang mempunyai arus
yang
mengambarkan langkah – langkah penyelesaian suatu masalah. Flowchart merupakan cara penyajian dari suatu algoritma. Berikut flowchart yang menggambarkan proses dengan komputer. simbol yang menunjukan jenis operasi pengolahan dalam suatu proses / prosedur tersebut. Tabel 2.6 Simbol – simbol yang ada pada Flowchart Simbol
Nama Simbol
Keterangan
Offline
Untuk menyatakan sambungan dari suatu
Connector
proses ke proses lainnya dalam halaman / lembar yang berbeda
Manual
Untuk (proses)
menyatakan yang
tidak
suatu
tindakan
dilakukan
oleh
komputer (manual) Decision/ logika Untuk menunjukan suatu kondisi suatu tertentu yang akan menghasilkan dua kemungkinan jawaban, ya / tidak Predefined
Untuk menyatakan penyediaan tempat
proses
penyimpanan suatu pengolahan untuk memberi harga awal
49
http://digilib.mercubuana.ac.id/
Terminal
Untuk menyatakan pemulaan atau akhir suatu program
Keying
segala jenis operasi yang di proses dengan
operation
menggunakan suatu mesin yang Untuk mempunyai keyboard
Off-line storage
Untuk menunjukkan bahwa data dalam simbol ini akan disimpan kesuatu media tertentu
Manual input
Untuk memasukan data secara manual dengan menggunakan online keyboard
Input output
Untuk menyatakan proses input dan output tanpa tergantung dengan jenis peralatannya
Punched card
Untuk menyatakan input berasal dari kartu atau output di tulis ke kartu
Magnetic- tanpa Untuk menyatakan input berasal dari pita unit
magnetic atau output di simpan kepita magnetik
Document
Untuk mencetak laporan ke printer
Arus / flow
Untuk menyatakan jalannya arus suatu proses
50
http://digilib.mercubuana.ac.id/