BAB 2 LANDASAN TEORI

dokumen-dokumen yang mirip
Aplikasi Enkripsi Short Message Service (SMS) Berbasis Android Menggunakan Metode XXTEA

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

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

Implementasi Algoritma Kriptografi XXTEA untuk Enkripsi dan Dekripsi Query Database pada Aplikasi Online Test (Studi Kasus : SMK Immanuel Pontianak)

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya

BAB I PENDAHULUAN. Kerahasiaan dan keamanan saat melakukan pertukaran. data adalah hal yang sangat penting dalam komunikasi data,

SEMINAR TUGAS AKHIR PERIODE JANUARI 2012

SISTEM KEAMANAN SHORT MESSAGE SERVICE (SMS) BERBASIS ANDROID MENGGUNAKAN ALGORITMA ADVANCED ENCRYPTION STANDARD (AES)

STMIK GI MDP. Program Studi Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2010/2011

BAB I PENDAHULUAN. Perangkat lunak aplikasi (software application) adalah suatu subkelas perangkat lunak

BAB I PENDAHULUAN. teknologi Short Message Service (SMS). SMS (Short Message Service) atau

PERANCANGAN APLIKASI ENKRIPSI DATA MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDARD

BAB I PENDAHULUAN. dari isinya, informasi dapat berupa penting atau tidak penting. Bila dilihat dari sifat

BAB I PENDAHULUAN. multiplayer games, transfer data, vidio streaming dan lain-lain. Berbagai

BAB I PENDAHULUAN. Keamanan data merupakan hal yang sangat penting dalam menjaga

APLIKASI SHORT MESSAGE SERVICE DENGAN ENKRIPSI TEKS MENGGUNAKAN ALGORITMA ADVANCED ENCRYPTION STANDARD BERBASIS MOBILE PADA PLATFORM ANDROID

Enkripsi Sederhana SMS (Short Message Service) Menggunakan Vigenere Cipher

PERANCANGAN ENKRIPSI DAN DESKRIPSI DENGAN METODE ALPHA-QWERTY REVERSE PADA APLIKASI SHORT MESSAGE SERVICE BERBASIS ANDROID

BAB 2 LANDASAN TEORI

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

BAB I PENDAHULUAN. teknologi, salah satunya adalah telepon selular (ponsel). Mulai dari ponsel yang

BAB I PENDAHULUAN. dengan munculnya berbagai sistem operasi yang lengkap layaknya komputer,

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

BAB 2 TINJAUAN PUSTAKA

BAB I PENDAHULUAN Latar Belakang

Pengaman Pengiriman Pesan Via SMS dengan Algoritma RSA Berbasis Android

BAB III ANALISA MASALAH DAN PERANCANGAN PROGRAM

ANALISIS PERBANDINGAN ALGORITMA SIMETRIS TINY ENCRYPTION ALGORITHM DAN LOKI DALAM ENKRIPSI DAN DEKRIPSI DATA

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

Implementasi Algoritma Blowfish dalam Layanan Pesan Singkat pada Platform Android

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB III ANALISIS MASALAH

BAB I PENDAHULUAN 1.1 Latar Belakang

Penerapan Kriptografi dalam Sistem Keamanan SMS Banking

BAB 1 PENDAHULUAN Latar Belakang


BAB 2 TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA

APLIKASI KRIPTOGRAFI ENKRIPSI DEKRIPSI FILE TEKS MENGGUNAKAN METODE MCRYPT BLOWFISH

BAB I PENDAHULUAN. keamanan, kerahasiaan, dan keotentikan data. Oleh karena itu diperlukan suatu

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB 1 PENDAHULUAN. 1.1.Latar Belakang

BAB III ANALISIS DAN DESAIN SISTEM

IMPLEMENTASI ALGORITMA BLOWFISH UNTUK ENKRPSI DAN DEKRIPSI BERBASIS WEB

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


Bab I Pendahuluan 1 BAB I PENDAHULUAN

BAB II. KAJIAN PUSTAKA

BAB 2 LANDASAN TEORI

Rancangan Aplikasi Pemilihan Soal Ujian Acak Menggunakan Algoritma Mersenne Twister Pada Bahasa Pemrograman Java

APLIKASI ENKRIPSI SMS (SHORT MESSAGE SERVICE) MENGGUNAKAN ALGORITMA DATA ENCRYPTION STANDARD (DES) BERBASIS ANDROID

BAB II LANDASAN TEORI

BAB II DASAR TEORI DAN TINJAUAN PUSTAKA. Judul Platform Deskripsi

BAB II KAJIAN PUSTAKA. bimbingan kepada dosen pembimbing tugas akhir, kartu konsultasi digunakan

BAB II LANDASAN TEORI

IMPLEMENTASI ALGORITMA CAESAR, CIPHER DISK, DAN SCYTALE PADA APLIKASI ENKRIPSI DAN DEKRIPSI PESAN SINGKAT, LumaSMS

BAB III. ANALISIS MASALAH

Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman

BAB II TINJAUAN PUSTAKA. Short message service atau yang disebut SMS merupakan suatu teknologi

BAB III PERANCANGAN DAN PEMBUATAN

Universitas Sumatera Utara BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN. yang beragam dan salah satu diantaranya adalah media SMS ( Short Message

BAB I PENDAHULUAN. yang beragam dan salah satu di antaranya adalah media SMS (Short Message

Bab 1 PENDAHULUAN Latar Belakang

Aplikasi Enkripsi SMS dengan Metode Rabin pada Android

BAB I PENDAHULUAN. mengamankan informasi pada masalah ini dapat memanfaatkan kriptografi.

Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

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

SISTEM KEAMANAN DATA PADA WEB SERVICE MENGGUNAKAN XML ENCRYPTION


BAB I PENDAHULUAN. muncul sampai dengan adanya yang disebut smartphone, yang memiliki berbagai fungsi seperti

IMPLEMENTASI ALGORITMA STEGANOGRAFI WHITESPACE DAN ENKRIPSI RC6 UNTUK KEAMANAN PADA TEKS

BAB I PENDAHULUAN. Universitas Sumatera Utara

Pembangunan Add-on pada Mozilla Thunderbird untuk Enkripsi Surat Elektronik dengan Corrected Block Tiny Encryption Algorithm

BAB III ANALISIS DAN DESAIN SISTEM

BAB II LANDASAN TEORI. aplikasi. Awalnya, Google.inc ( membeli Android Inc

BAB III ANALISIS DAN PERANCANGAN

BAB I PENDAHULUAN. dan SMS hingga ponsel cerdas. Ponsel cerdas atau juga dikenal dengan smartphone memiliki

Aplikasi Enkripsi Untuk Pengiriman Pesan Rahasia Berbasis Android

BAB 2 LANDASAN TEORI

BAB III PEMODELAN BISNIS, DATA, DAN PROSES

PERANCANGAN APLIKASI SMS (SHORT MESSAGE SERVICE) DENGAN ENKRIPSI TEKS MENGGUNAKAN ALGORITMA XXTEA BERBASIS ANDROID SKRIPSI

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

Secure SMS Banking Menggunakan Teknik Enkripsi Kompresi Hybrid

cepat dan kian merambah ke setiap komponen teknologi informasi itu sendiri. Dari mulai dikenalnya komputer, hardware, software, hingga

BAB I PENDAHULUAN. Perkembangan teknologi pada zaman sekarang ini begitu cepat, khusus

BAB 3. ANALISA SISTEM

PERANCANGAN APLIKASI PENGAMANAN INFORMASI TEKS DENGAN MENGGUNAKAN ALGORITMA KRIPTOGRAFI ALPHA-QWERTY REVERSE

Implementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN

Kompleksitas Waktu Algoritma Kriptografi RC4 Stream Cipher

BAB I PENDAHULUAN. Perkembangan teknologi informasi yang semakin pesat. dapat dirasakan hampir di setiap bidang kehidupan. Salah

BAB I PENDAHULUAN , 1.1. Latar Belakang

BAB I PENDAHULUAN. merupakan salah satu metode komunikasi yang bersifat real-time. Selama ini

BAB II ARSITEKTUR SISTEM CDMA. depan. Code Division Multiple Access (CDMA) merupakan salah satu teknik

BAB III ANALISIS MASALAH

Pengembangan Algoritma Advanced Encryption Standard pada Sistem Keamanan SMS Berbasis Android Menggunakan Algoritma Vigenere

BAB 3 ANALISIS DAN PERANCANGAN. utuh ke dalam bagian-bagian komponennya dengan maksud untuk

Transkripsi:

BAB 2 LANDASAN TEORI Pada bab ini, akan dibahas dasar teori, penelitian terdahulu, kerangka pikir dan hipotesis yang mendasari penyelesaian permasalahan pengamanan pesan pada SMS dengan Algoritma XXTEA. 2.1. Short Message Service (SMS) SMS merupakan sebuah layanan komunikasi yang ada pada telepon seluler untuk mengirim dan menerima pesan-pesan pendek. SMS pertama kali dikenalkan pada tanggal 3 Desember 1982. SMS pertama di dunia dikirimkan menggunakan jaringan GSM milik operator telepon bernama Vodafone. SMS pertama ini dikirimkan oleh ahli bernama Neil Papwort kepada Richard Jarvis menggunakan komputer (Dwi P, et al. 2012). Jumlah karakter maksimum pada pesan SMS adalah 160 karakter (huruf, angka atau simbol dalam abjad Latin). Untuk huruf lain, seperti Cina, ukuran SMS maksimum adalah 70 karakter (Rayarikar, et al. 2012). 2.1.1. Cara Kerja SMS Proses cara kerja SMS dilakukan oleh 2 sisi yaitu sender dan receiver, sender mengirim pesan SMS yang kemudian ditangkap oleh Base Transceiver Station (BTS) yang kemudian dilanjutkan ke Base Station Controller (BSC) setelah itu proses akan dikerjakan oleh Mobile Switching Center (MSC) yang bertugas sebagai Gateway dan yang terakhir proses dilakukan oleh Short Message Service Center (SMSC) yang bertugas store dan forwading SMS. Alur kerja SMS, dapat dilihat pada gambar 2.1.

6 Gambar 2.1 Cara Kerja SMS (Rayarikar, et al. 2012) Menurut Dwi P. (2012), tugas dari masing-masing perangkat dapat dijelaskan sebagai berikut: 1. BTS BTS berfungsi sebagai perangkat tranceiver untuk melakukan komunikasi dengan semua handset (MS) yang aktif dan berada dalam area cakupannya (cell). BTS melaksanakan proses modulasi/demodulasi sinyal, equalisasi sinyal dan pengkodean error (error coding). Beberapa BTS dapat terhubung dengan sebuah BSC (Base stasion Controller), sementara itu radius cakupan dari suatu cell berkisar antara 10 sampai 200 m untuk cell terkecil hinggal beberapa kilometer untuk cell terbesar. Sebuah BTS biasanya dapat melayani 20 40 komunikasi panggilan secara bersamaan. 2. BSC BSC menyediakan fungsi pengaturan pada beberapa BTS yang dikendalikannya. Diantaranya fungsi handover, konfigurasi cell site, pengaturan sumber daya radio, serta tuning power dan frekuensi pada suatu BTS. BSC merupakan simpul (konmsentrator) untuk menghubungkan dengan core network. Dalam jaringan GSM umumnya sebuah BSc dapat mengatur 70 buah BTS.

7 3. MSC MSC berfungsi melakukan fungsi switching dan bertanggung jawab untuk melakukan pengaturan panggilan, call setup, release, dan routing. MSC juga melakukan fungsi billing dan sebagai gateway ke jaringan lain. 4. SMSC SMSC berfungsi menyampaikan pesan SMS antar Mobile Station(MS)/ HP, dan juga melakukan fungsi store-and-forwarding SMS jika nomor penerima sedang tidak dapat menerima pesan. Didalam jaringanya sebuah operator dapat mempunyai lebih dari satu perangkat SMSC, sesuai besar trafik SMS jaringan tersebut. 2.2. Keamanan SMS Ada beberapa risiko yang dapat mengancam keamanan pesan pada layanan SMS salah satunya adalah SMS interception. Celah keamanan terbesar pada layanan komunikasi SMS adalah pada saat SMS tersebut sedang dikirim melalui jaringan SMS tersebut. SMS bekerja pada jaringan nirkabel yang memungkinkan terjadinya pencurian isi pesan SMS ketika dalam proses transmisi dari pengirim ke penerima. Kasus ini disebut SMS interception. Hal ini dikarenakan SMS yang dikirim akan disimpan di SMSC, sehingga dapat dibaca oleh siapa saja yang dapat mengakses SMSC (Fajar, et al. 2014). Di Indonesia, pemberian informasi SMS yang diterima dan dikirim oleh provider kepada badan hukum diatur oleh Pasal 87 PP No. 52 Tahun 2000 tentang Penyelenggaraan Telekomunikasi, yang menyatakan dalam hal untuk keperluan proses peradilan pidana, penyelenggara jasa telekomunikasi dapat merekam informasi yang dikirim dan atau diterima oleh penyelenggara jasa telekomunikasi serta dapat memberikan informasi yang diperlukan. Walaupun melanggar privasi pelanggan. Selain itu, aplikasi penyadapan seperti FlexiSpy. Aplikasi ini bisa memantau semua aktifitas yang di lakukan ponsel target. Mulai dari data SMS hingga percakapan telepon. Informasinya di kirim melalui kanal GPRS ke server FlexiSpy dan bisa di pantau tanpa si ketahui pemilik ponsel.

8 2.3. Android Android adalah sistem operasi untuk telepon seluler berbasis Linux. Android menyediakan platform terbuka bagi para pengembang untuk membangun aplikasi yang dapat dijalankan di bermacam telepon seluler. Awalnya, Google Inc. membeli Android Inc. yang merupakan pendatang baru dalam teknologi telepon seluler. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan piranti keras, piranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia (Dwi P, et al. 2012). Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Aliance menyatakan mendukung pengembangan standar terbuka pada telepon seluler. Fitur yang tersedia di Android antara lain: Framework aplikasi yang mendukung penggantian komponen dan reusable Dalvik virtual machine Integrated browser Grafik berdasarkan OpenGL SQLite untuk penyimpanan data Multimedia support Linkungan Development yang lengkap dan kaya termasuk perangkat emulator, tools untuk debugging, profil dan kinerja memori, dan plugin untuk IDE Eclipse. 2.4. Kriptografi Menurut Sadikin (2012), kriptografi adalah ilmu yang bersandarkan pada teknik matematika yang berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan otentikasi entitas. Kriptografi terbagi atas dua kategori yaitu kriptografi klasik dan kriptografi modern. Kriptografi klasik adalah sistem kriptografi yang menggunakan penyandian kunci simetris dan menggunakan metode subtitusi (pergantian huruf) atau transposisi (pertukaran tempat). Dan kriptografi modern adalah sistem kriptografi yang menggunakan penyandian kunci asimetris (Sadikin, 2012).

9 Berikut ini adalah beberapa mekanisme yang berkembang pada kriptografi: 1. Fungsi Hash Fungsi hash adalah fungsi yang melakukan pemetaan pesan dengan panjang sembarang ke sebuah teks khusus yang disebut message digest dengan panjang yang tetap. Fungsi hash pada umumnya digunakan untuk menguji keutuhan pada sebuah data. 2. Penyandian dengan kunci asimetris Penyandian dengan kunci asimetris atau sering juga disebut dengan kunci publik adalah penyandian yang pada proses enkripsi dan dekripsinya memiliki kunci yang berbeda. Pada kunci yang digunakan untuk enkripsi bersifat publik (public key). Sedangkan kunci yang digunakan untuk dekripsi bersifat rahasia (private key). Beberapa jenis kriptografi dengan penyandian kunci asimetris antara lain RSA, Diffie-Helman, el-gamal, Knapsack, dan beberapa penerapan teknik Elliptic Curve. 3. Penyandian dengan kunci simetris Penyandian dengan kunci simetris adalah penyandian yang pada proses enkripsi dan dekripsinya menggunakan sebuah kunci yang sama. Kunci yang digunakan pada proses enkripsi dan dekripsi bersifat rahasia. Beberapa jenis kriptografi dengan penyandian kunci simetris antara lain Data Encryption Standard (DES), 3DES, Advance Encryption Standard (AES), Blowfish dan International Data Encryption Algorithm (IDEA). 2.4.1. XXTEA Correted Block TEA (atau biasa disebut dengan XXTEA) adalah cipher block yang dirancang untuk memperbaiki kelemahan dalam Block TEA sebelumnya (XTEA). XXTEA adalah operasi jaringan Feistel pada blok yang terdiri dari setidaknya dua buah kata 32 -bit dan menggunakan kunci 128-bit (Yarrkov, 2010). Algoritma XXTEA didesain oleh Roger Needham dan David Wheeler dari Laboratorium Komputer Cambridge, Algoritma ini dipublikasikan dalam laporan teknis pada bulan Oktober 1998. XXTEA juga merupakan sebuah algoritma enkripsi efektif yang mirip dengan DES yang dapat digunakan untuk aplikasi web yang membutuhkan keamanan. Ketika menggunakan algoritma ini, sebuah perubahan dari teks asal akan mengubah

10 sekitar setengah dari teks hasil tanpa meninggalkan jejak dimana perubahan berasal (Atmojo, 2012). XXTEA beroperasi pada blok yang berukuran tetap yang merupakan kelipatan 32 bits dengan ukuran minimal 64 bits. Jumlah dari putaran lengkap bergantung pada ukuran blok, tetapi terdapat minimal 6 (bertambah terus hingga 32 untuk ukuran blok yang lebih kecil). Algoritma ini menggunakan lebih banyak fungsi pengacakan yang menggunakan kedua blok tetangganya dalam pemrosesan setiap kata dalam blok. Flowchart XXTEA, dapat dilihat pada gambar 2.4.1(Fernando, 2009) Gambar 2.4.1 Flowchart XXTEA (Fernando, 2009) Gambar 2.4.1 menampilkan proses pengacakan yang dilakukan pada satu iterasinya. Proses iterasi dalam XXTEA dilakukan dalam 2 kali iterasi yang dilakukan secara bersarang. Pada iterasi teratas, iterasi dilakukan sebanyak q, dimana: q = 6 + 52/n dengan n 1 dimana n adalah jumlah blok dari plaintext. Lalu, pada iterasi selanjutnya, iterasi dilakukan sebanyak n kali. Proses pengacakan yang dilakukan dalam satu iterasi XXTEA adalah sebagai berikut: 1. Algoritma akan mengacak blok ke-r dari plaintext. 2. Proses akan mengambil Xr-1, Xr+1, DELTA, dan kata kunci sebagai input.

11 3. Pengacakan pertama: Xr-1<<2 di-xor-kan dengan Xr+1>>5. 4. Pengacakan kedua: Xr-1>>3 di-xor-kan dengan Xr+1<<4. 5. Hasil yang didapat dari tahap 4 dan 5 ditambahkan. 6. Pengacakan ketiga: Xr-1 di-xor-kan dengan D yang merupakan perkalian antara konstanta DELTA yang bernilai 0x9E3779B dengan jumlah iterasi pertama yang telah dilakukan. 7. Pengacakan keempat: Xr+1 di-xor-kan dengan salah satu blok kata kunci, yaitu blok ke-(r XOR D>>2). 8. Hasil yang didapat dari tahap ke 6 dan 7 ditambahkan. 9. Hasil yang didapat dari tahap 5 dan 8 di- XOR-kan. 10. Hasil yang didapat pada tahap 9 ditambahkan ke blok plaintext ke-r. XXTEA tidak memiliki batas ukuran blok, XXTEA dapat digunakan untuk mengenkripsi satu buah pesan utuh tanpa memerlukan mode operasi cipher. Meski XXTEA dapat mengenkripsi keseluruhan pesan atau file sekaligus, pada implementasinya XXTEA dapat dioperasikan dengan mode operasi untuk file-file yang berukuran sangat besar sehingga tidak bisa dibaca ke dalam memory sekaligus (Atmojo, 2012). Kelebihan dari XXTEA menurut hatipoglu (2009) adalah: Kunci 128 bit Panjang blok adalah kelipatan 32 bit dengan minimal blok adalah 64 bit Hanya membutuhkan komputasi dan kebutuhan memori yang sangat rendah Memberikan keamanan terbaik dilihat dari cycle ratio nya Mudah diimplementasikan Memberikan keamanan yang baik pada cycle yang lebih sedikit Lebih efisien untuk pesan panjang Bebas dipublikasikan karena tidak membutuhkan lisensi atau hak paten Selain itu, XXTEA sangat cocok untuk diaplikasikan ke perangkat-perangkat elektronik mobile seperti handphone karena proses enkripsi dan dekripsinya tidak memakan resource terlalu berat (Khandar, 2009). 2.5. SQLite SQLite merupakan sebuah sistem manajemen database relasional yang bersifat ACID - compliant dan memiliki ukuran pustaka kode yang relatif kecil dan ditulis dalam

12 bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp. Tidak seperti pada paradigma client-server umumnya, Inti SQLite bukanlah sebuah sistem yang mandiri yang berkomunikasi dengan sebuah program, melainkan sebagai bagian integral dari sebuah program secara keseluruhan. Sehingga protokol komunikasi utama yang digunakan adalah melalui pemanggilan API secara langsung melalui bahasa pemrograman. Mekanisme seperti ini tentunya membawa keuntungan karena dapat mereduksi overhead, latency times, dan secara keseluruhan lebih sederhana. Seluruh elemen database (definisi data, tabel, indeks, dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi disain tersebut bisa diraih dengan cara mengunci keseluruhan file database pada saat sebuah transaksi dimulai. SQLite mengimplementasikan hampir seluruh elemen-elemen standar yang berlaku pada SQL-92, termasuk transaksi yang bersifat atomic, konsistensi database, isolasi, dan durabilitas (dalam bahasa inggris lebih sering disebut ACID), trigger, dan queri-queri yang kompleks. Tidak ada pengecekan tipe sehingga data bisa dientrikan dalam bentuk string untuk sebuah kolom bertipe integer. Beberapa kalangan melihat hal ini sebagai sebuah inovasi yang menambah nilai guna dari sebuah database, utamanya ketika digunakan dalam bahasa pemrograman berbasis script (PHP, Perl), sementara kalangan lain melihat hal tersebut sebagai sebuah kekurangan. Beberapa proses ataupun thread dapat berjalan secara bersamaan dan mengakses database yang sama tanpa mengalami masalah. Hal ini disebabkan karena akes baca data dilakukan secara paralel. Sementara itu akses tulis data hanya bisa dilakukan jika tidak ada proses tulis lain yang sedang dilakukan; jika tidak, proses tulis tersebut akan gagal dan mengembalikan kode kesalahan (atau bisa juga secara otomatis akan mencobanya kembali sampai sejumlah nilai waktu yang ditentukan habis). Hanya saja ketika sebuah tabel temporer dibuat, mekanisme penguncian pada proses multithread akan menyebabkan masalah. Update yang terkini dikatakan telah memperbaiki masalah ini. Sebuah program yang mandiri dinamakan sqlite disediakan dan bisa digunakan untuk mengeksekusi queri dan memanajemen file-file database SQLite (Nugroho, et Al. 2011).

13 2.6. Base64 Base64 adalah istilah umum untuk sejumlah skema pengkodean serupa yang mengkodekan data biner dan menerjemahkannya ke dalam representasi basis 64. Istilah Base64 berasal dari konten pengkodean MIME tertentu. Skema encoding base64 biasanya digunakan ketika ada kebutuhan untuk menyandikan data biner yang perlu disimpan dan ditransfer melalui media yang dirancang untuk menangani data tekstual. Hal ini untuk memastikan bahwa data tetap utuh tanpa perubahan selama pengiriman. Base64 digunakan umum dalam beberapa aplikasi termasuk email melalui MIME, dan penyimpanan data yang kompleks dalam XML. Base64 menggunakan karakter A Z, a z dan 0 9 untuk 62 nilai pertama, sedangkan 2 nilai terakhir digunakan untuk symbol (+ dan /). beberapa metode encoding lain seperti uuencode dan binhex menggunakan 64 karakter yang berbeda untuk mewakili 6 binary digit, namun metode-metode tersebut tidak disebut sebagai encoding Base64 (Atmojo, 2012). Gambar 2.6 Nilai Value pada Base 64

14 2.7. Kompleksitas Algoritma Suatu masalah dapat mempunyai banyak algoritma penyelesaian. Algoritma yang digunakan tidak saja harus benar, namun juga harus efisien. Efisiensi suatu algoritma dapat diukur dari waktu eksekusi algoritma dan kebutuhan ruang memori. Algoritma yang efisien adalah algoritma yang meminimumkan kebutuhan waktu dan ruang. Dengan menganalisis beberapa algoritma untuk suatu masalah, dapat diidentifikasi satu algoritma yang paling efisien. Besaran yang digunakan untuk menjelaskan model pengukuran waktu dan ruang ini adalah kompleksitas algoritma. Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi. Kompleksitas algoritma terdiri dari dua macam yaitu kompleksitas waktu dan kompleksitas ruang. Kompleksitas waktu, dinyatakan oleh T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n, di mana ukuran masukan (n) merupakan jumlah data yang diproses oleh sebuat algoritma. Sedangkan kompleksitas ruang, S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari masukan n. Dengan menggunakan kompleksitas waktu atau kompleksitas ruang, dapat ditentukan laju peningkatan waktu atau ruang yang diperlukan algoritma, seiring dengan meningkatnya ukuran masukan ( n). Kecenderungan saat ini, ruang (memori utama) yang disediakan semakin besar yang artinya kapasitas data yang diproses juga semakin besar. Namun, waktu yang

15 diperlukan untuk menjalankan suatu algoritma harus semakin cepat. Karena kompleksitas waktu menjadi hal yang sangat penting, maka analisis kompleksitas algoritma deteksi tepi akan dilakukan terhadap running time algoritma tersebut. 2.7.1. Notasi Asimptotik Untuk nilai n cukup besar, bahkan tidak terbatas, dilakukan analisis efisiensi asimptotik dari suatu algoritma untuk menentukan kompleksitas waktu yang sesuai atau disebut juga kompleksitas waktu asimptotik. Notasi yang digunakan untuk menentukan kompleksitas waktu asimptotik dengan melihat waktu tempuh (running time) algoritma adalah notasi asimptotik (asimptotic notation). Notasi asimptotik didefinisikan sebagai fungsi dengan domain himpunan bilangan asli N = {0,1,2, 3,. } (Cormen et al., 2009: 43). Kompleksitas waktu asimptotik terdiri dari tiga macam. Pertama, keadaan terbaik (best case) dinotasikan dengan (Ω) (Big-Omega), keadaan rata-rata (average case) dilambangkan dengan notasi (Θ) (Big-Theta) dan keadaan terburuk (worst case) dilambangkan dengan (O) (Big-O). Gambar 2.7.1.1 Contoh Grafik dari Notasi Asimptotik Ω Gambar 2.7.1.1 menunjukkan notasi Ω menjadi batas bawah dari suatu fungsi f(n) agar berada dalam suatu faktor konstan. Dinyatakan f(n) =O(g(n)) jika terdapat

16 konstanta positif n 0 dan c sedemikian sehingga pada n 0 dan di kanan n 0, nilai f(n) selalu berada tepat cg(n) pada atau di atas cg(n). Gambar 2.7.1.2 Contoh Grafik dari Notasi Asimptotik θ Pada gambar 2.7.1.2, n 0 merupakan nilai n minimum yang mungkin. Yaitu menunjukkan notasi Θ membatasi suatu fungsi f(n) agar berada dalam faktor konstan. Dinyatakan f(n) = Θ (g(n)) jika terdapat konstanta positif n 0, c 1, dan c 2 sedemikian sehingga pada n 0 dan di kanan n 0, nilai f(n) selalu berada tepat pada c 1 g(n), tepat pada c 2 g(n), atau di antara c 1 g(n) dan c 2 g(n). Gambar 2.7.1.3 Contoh Grafik dari Notasi Asimptotik O Gambar 2.7.1.3 menunjukkan notasi menjadi batas atas dari suatu fungsi f(n) agar berada dalam suatu faktor konstan. Dinyatakan f(n) = O (g(n)) jika terdapat konstanta

17 positif n 0 dan c sedemikian sehingga pada n 0 dan di kanan n 0, nilai f(n) selalu berada tepat pada cg(n) atau di bawah cg(n). Kompleksitas waktu algoritma biasanya dihitung dengan menggunakan notasi O(g(n)), dibaca big-o dari g(n). 2.7.2. Kompleksitas Waktu Algoritma Untuk menentukan kompleksitas waktu suatu algoritma, diperlukan ukuran masukan n serta running time algoritma tersebut. Pada umumnya, running time algoritma meningkat seiring dengan bertambahnya ukuran n. Sehingga, running time suatu algoritma dapat dinyatakan sebagai fungsi dari n. Ukuran masukan n untuk suatu algoritma bergantung pada masalah yang diselesaikan oleh algoritma tersebut. Pada banyak kasus, seperti pengurutan, ukuran yang paling alami adalah jumlah item dalam masukan. Dalam kasus lain, seperti mengalikan dua bilangan bulat, ukuran input terbaik adalah jumlah bit yang diperlukan untuk mewakili masukan dalam notasi biner biasa. Running time algoritma pada masukan n tertentu merupakan jumlah operasi atau langkah yang dieksekusi. Selanjutnya, jumlah waktu yang konstan diperlukan untuk mengeksekusi setiap baris pseudocode (kode semu). Satu baris dapat memiliki jumlah waktu yang berbeda dari baris lain. Namun asumsikan bahwa setiap pelaksanaan baris ke-i membutuhkan waktu sebesar c i, di mana c i adalah konstanta. Dalam menentukan running time suatu baris pada pseudocode, kalikan konstanta c i dengan jumlah waktu yang diperlukan untuk mengeksekusi baris tersebut. Untuk kasus di mana terdapat perintah loop while atau for dengan panjang, maka perintah tersebut dieksekusi dengan waktu n+1. Sedangkan untuk baris berisi komentar, dinyatakan sebagai baris yang tidak dieksekusi, sehingga jumlah waktu untuk baris tersebut adalah nol. Selanjutnya, running time dari algoritma adalah jumlah dari running time setiap perintah yang dieksekusi. Sebuah perintah yang membutuhkan c i langkah n waktu untuk dieksekusi akan memiliki pengaruh sebesar c i n pada running time total (T(n) ). Setelah diperoleh bentuk fungsi T(n), dapat ditentukan bentuk dari algoritma tersebut dengan menggunakan notasi asimptotik O. Dengan ditentukannya bentuk algoritma, maka dapat diramalkan berapa besar peningkatan running time jika ukuran masukan ditingkatkan.

18 Suatu algoritma dikatakan anggota θ(g(n)) jika algoritma itu adalah anggota O(g(n)) dan anggota Ω(g(n)). Contoh : Karena T(n) = c 1 n 2 + c 2 n adalah angota O( n 2 ) dan anggota Ω( ), maka T(n) adalah anggota θ (n 2 ). Contoh : For i 1 to n do For j 1 to i do For k j to n do a a + 1 end for end for end for Nilai big O, big Ω, dan big Θ dari algoritma di atas adalah sebagai berikut : Untuk i = 1, Untuk j = 1, jumlah perhitungan = n kali Untuk i = 2, Untuk j = 1, jumlah perhitungan = n kali Untuk j = 2, jumlah perhitungan = n 1 kali Untuk i = n, Untuk j = 1, jumlah perhitungan = n kali Untuk j = 2, jumlah perhitungan = n 1 kali Untuk j = n, jumlah perhitungan = 1 kali. T(n) = n 2 +(n-1) 2 +(n-2) 2 +... + 1 = n(n + 1)(2n + 1)/6 = 2n 3 +3n 2 + 1 Diperoleh T(n) 3untuk n 4 dan T(n) 2n 3 untuk n 1. 2.8. Penelitian Terdahulu Penelitian terhadap enkripsi SMS sudah pernah dilakukan. Yaitu dengan menggunakan algoritma Rabin yang dengan hasil waktu yang dibutuhkan untuk melakukan enkripsi terhadap isi SMS rata-rata sebesar 96,3 milidetik dan dekripsi

19 rata-rata sebesar 118 milidetik (Muko, et al. 2012 ). Kemudian dengan algoritma Vigenere yang dimodifikasi dengan fibonacci dan key tambahan sehingga memperkuat keamanan dan privasi(anjari, et al. 2012). Sedangkan, penelitian mengenai algoritma XXTEA atau Corrected Block Tea sudah pernah dilakukan. Yaitu oleh Sujatmika, dengan mengimplementasikan XXTEA pada virtual disk pada system operasi windows. Virtual disk tersebut dibuat dengan merepresentasikan file volume sebagai container dari virtual disk. Proses enkripsi pada isi virtual disk dilakukan sebelum proses unmounting virtual disk. Sedangkan proses dekripsi pada isi virtual disk, dilakukan setelah dilakukan proses mounting file volume. Algoritma XXTEA sendiri, berjalan pada blok 32 bit. Sehingga sebelum memasuki proses utama enkrip dan dekrip, file perlu diolah terlebih dahulu. Selanjutnya, Atomojo (2012) mengimplementasikan XXTEA pada secure login website. Hasil yang di dapat ialah proses enkripsi pada sisi server,dan dekripsi pada sisi client telah menambah waktu akses website rata-rata18ms (0,018 sekon). Berikut penelitian terdahulu disajikan dalam bentuk tabel: Tabel 2.8 Penelitian Terdahulu Judul Tahun Peneliti Enkripsi SMS (Short Message 2010 Becik Gati Anjari Service) pada Telepon Selular Berbasis Android Aplikasi Enkripsi SMS dengan 2012 Gayuh Taruna Muko, et-al Metode Rabin pada Android Implementasi Enkripsi Dengan Arif rahman Sujatmika. Algoritma XXTEA Pada Virtual Disk Berbasis Windows Perancangan Secure Login Website Menggunakan Algoritma Enkripsi XXTEA 2012 Atmojo, Ardani Dwi