Anda di halaman 1dari 36

BAB II

LANDASAN TEORI DAN KERANGKA PIKIR

A. Kajian Teori

1. Kriptografi

a. Sejarah

Di jaman Romawi kuno, Julius Caesar telah menggunakan teknik

kriptografi yang dijuluki Caesar cipher untuk mengirim pesan secara rahasia,

meskipun teknik yang digunakannya sangat tidak memadai untuk ukuran kini.

Casanova menggunakan pengetahuan mengenai kriptografi untuk mengelabui

Madame d'Urfé (ia mengatakan kepada Madame d'Urfé bahwa sesosok jin

memberi tahu kunci rahasia Madame d'Urfé kepadanya, padahal ia berhasil

memecahkan kunci rahasia berdasarkan pengetahuannya mengenai kriptografi ),

sehingga ia mampu mengontrol kehidupan Madame d'Urfé secara total. Sewaktu

perang dunia kedua, pihak sekutu berhasil memecahkan kode mesin kriptogra¯

Jerman, Enigma; keberhasilan yang sangat membantu pihak sekutu dalam

memenangkan perang. Sejarah kriptografi penuh dengan intrik dan banyak orang

melihat kriptografi sebagai sesuatu yang penuh dengan misteri.

Juga banyak orang yang menganggap pengetahuan dan penggunaan

kriptografi sebagai perbuatan subversif, bahkan Amerika Serikat pernah

memperlakukan kriptografi sebagai senjata yang tidak dapat diekspor secara

bebas, meskipun sekarang peraturan sudah diperlunak. Di satu sisi pemerintah AS

tidak menginginkan warganya dan pihak lain menggunakan kriptografi untuk

7
8

berbagai macam keperluan, di sisi lain kriptografi sangat diperlukan dalam

aplikasi pengamanan teknologi informasi seperti transaksi perbankan. Ada

beberapa negara, baik negara belum maju yang memiliki pemerintahan represif

maupun negara barat yang “liberal”, yang melarang atau membatasi penggunaan

kriptografi.

b. Definisi

Kriptografi pada awalnya di jabarkan sebagai ilmu yang mempelajari

bagaimana menyembunyikan pesan. Namun pada pengertian modern kriptografi

adalah ilmu yang bersandarkan pada teknik matematika untuk berurusan dengan

keamanan informasi seperti kerahasiaan, keutuhan data dan otentikasi entitas. Jadi

pengertian kriptografi modern adalah tidak saja berurusan hanya dengan

penyembunyian pesan namun lebih pada sekumpulan teknik menyediakan

keamanan informasi (Sadikin, 2012:9). Hal senada juga dikemukakan oleh

Ariyus (2006:36) bahwa Algoritma kriptografi merupakan langkah-langkah

logis bagaimana menyembunyikan pesan dari orang-orang yang tidak berhak

atas pesan tersebut dengan melakukan pembangkitan kunci, enkripsi dan

dekripsi.

Sementara menurut Kromodimoeljo (2010:5) mendefinisikan bahwa

kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak

menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh

seseorang yang tidak memiliki kunci dekripsi.


9

c. Mekanisme Kriptografi

Menurut Sadikin (2012:9) ada beberapa mekanisme yang berkembang

pada kriptografi modern :

1) Fungsi Hash. Fungsi hash adalah fungsi yang melakukan pemetaan pesan

dengan panjang sembarang ke sebuah teks khusus yang disebut massage

digest dengan panjang tetap. Fungsi hash umumnya dipaakai sebagai nialai

uji ( check value ) pada mekanisme keutuhan data.

2) Penyandian dengan kunci simetrik (Symmetric key encipherment).

Penyandian dengan kunci simetrik adalah penyandian yang kunci enkrripsi

dan kunci dekripsi bernilai sama . Kunci pada penyandian simetrik

diasumsikan bersifat rahasia hanya pihak yang melakukan enkripsi dan

dekripsi yang mengetahui nilainya. Oleh karena itu penyandian dengan kunci

simetrik disebut juga penyandian dengan kunci rahasia secret key

encipherment.

3) Penyandian dengan kunci asimetrik ( Asymetric key encipherment).

Penyandian dengan kunci asimetrik atau sering juga disebut dengan

penyandian kunci publik (public key) adalah penyandian dengan kunci

enkripsi dan dekripsi berbeda nilai. Kunci enkripsi yang juga disebut dengan

kunci publik (public key) bersift terbuka. Sedangkan kunci dekripsi yang

disebut kunci privat (private key) bersifat tertutup atau rahasia.


10

2. Advanced Encryption Standard (AES)

Pada tahun 90-an, setelah beberapa tahun standar penyandian simetris DES

dianggap tidak lagi aman, lembaga standar Amerika Serikat NIST (National

Institute of Standards and Technology) membuat sayembara untuk menggantikan

DES dengan sebuah sistem penyandian yang disebut dengan Advanced

Encryption Standard pada tanggal 12 September 1997. NIST memberikan

spesifikasi AES, yaitu harus memiliki panjang blok 128 bit dan mampu

mendukung panjang kunci 128, 192, 256.

Setelah beberapa seleksi, NIST memilih sistem penyandian Rijndael yang

dikembangkan oleh Joan Daemen dan Vincent Rijment sebagai sistem penyandian

AES pada tahun 2000. Peilihan Rijndael berdsarkan kriteria (1)keamanan. Sistem

penyandian harus tahan terhadap serangan analisis sandi selain serangan brute

force (2) biaya. Sistem penyandian harus memiliki biaya kompuutasi dan memori

yng efisien sehingga dapat diimplementasikan secara perangkat keras maupun

perangkan lunak (3) karakteristik algoritma dan implementasi. Sistem penyandian

harus bersifat terbuka, fleksibel dan sederhana.

Pada tahun 2001 akhirnya NIST mempublikasikan AES sebagai standar

pemrosesan dokumen pada dokumen FIPS-PUB 197, (NIST,2001).

a. Deskripsi AES

AES merupakan sistem penyandian blok. AES menggunakan komponen

yang selalu memiliki invers dengan panjang blok 128 bit. Kunci AES dapat

memiliki panjang kunci bit 128, 192 dan 256 bit (Sadikin, 2012:152). Penyandian
11

AES menggunakan proses yang berulang yang disebut dengan ronde. Jumlah

ronde yang digunakan oleh AES tergantung dengan panjang kunci yang

digunakan. Setiap ronde membutuhkan kunci ronde dan memasukan ronde

berikutnya. Kunci ronde dibangkitkan berdasarkan kunci yang diberikan. Relasi

antara jumlah ronde dan panjang kunci diberikan oleh TABEL 2.1

TABEL 2.1
Hubungan Antara jumlah ronde dan panjang kunci
AES (Sadikin, 2012:152)
Panjang Kunci AES (bit) Jumlah Ronde (Nr)
128 10
192 12
256 14

1) Unit Data AES

AES menggunakan5 unit ukuran data: bit, byte, word, blok dan state. Bit

merupakan ukuran satuan data terkecil, yaitu nilai digit sistem biner. Sedangkan

byte berukuran 8 bit, word berukuran 4 byte (32 bit), blok berukuran 16 byte (128

bit) sedangkan state adalah blok yang ditata dengan matriks byte berukuran 4x4

lihat gambar 2.1

b ¿ [b 0 b 1 b 2 b 3 b 4 b5 b6 b7 ]
byte
word

b 0 b 1 b 2 b 3 b 4 b 5 b 6 b 7 b 8 b 9 b 10 b 11 b 12 b 13 b 14 b 15

blok
12

s0,0 =b0 s0,1 =b4 s0,2 =b8 s0,3 =b12


s1,0 =b1 s1,1=b5 s1,2=b9 s1,3 =b13
s2,0 =b2 s2,1 =b6 s2,2 =b10 s2,3 =b14
s3,0 =b3 s3,1=b7 s3,2=b11 s3,3 =b15
Gambar 2.1
Unit data AES

2) Struktur Enkripsi AES

Proses di dalam AES merupakan transformasi terhadap state. Sebuah teks

asli dalam blok (128 bit) terlebih dahulu diorganisir sebagai state. Enkripsi AES

adalah transformasi terhadap state secara berulang dalam beberapa ronde. State

yang menjadi keluaran ronde k menjadi masukan untuk ronde ke-k+1.

Secara garis besar, desain enkripsi AES diberikan oleh Gambar 2.2 . Pada

awalnya teks asli direorganisasi sebagai sebuah state. Kemudian sebelum ronde

1dimulaiblok teks asli dicampur dengan kunci ronde ke-0 (transformasi ini disebut

AddRoundKey). Setelah itu, ronde ke-1 sampai ronde ke-(Nr-1) dengan Nr adalah

jumlah ronde menggunakan 4 jenis transformasi , yaitu SubBytes, ShiftRows,

MixColumns dan AddRoundKey. Pada ronde terakhir yaitu ronde ke-

Nrdilakukan transformasi serupa dengan ronde lain namun tanpa transformasi

MixColumns.

3) Struktur Dekripsi AES

Struktur Dekripsi AES dapat diiilustrasikan seperti gambar 2.3. secara

ringkas dekripsi merupakan kebalikan dari enkripsi AES. Dekripsi AES

menggunakan transformasi invers semua transformasi dasar AES memiliki

transformasi invers, yaitu InvSubBytes, InvShiftRows, InvMixColumn.


13

AddRoundKey merupakan transformasi yang bersift self-invers dengan syarat

menggunakan kunci yang sama.

Gambar 2.2
Struktur enkripsi AES
14

Gambar 2.3
Struktur dekripsi AES

b. Tranformasi-Transformasi AES

Algoritma enkripsi AES menggunakan 4 jenis transformasi: subtitusi yang

disebut dengan SubBytes, permutasi yang disebut dengan ShiftRows,

pencampuran yang disebut dengan MixColumns dan penambahan yang disebut

dengan AddRoundKey.
15

1) SubBytes

AES menggunakan subtitusi nonliniar ukuran byte yang disebut

dengan SubBytes. Setip elemen pada state dari elemen s0,0 sampai dengan s3,3

dikenakan transformasi SubBytes.

Transformasi SubBytes dapat menggunakan tabel subtitusi, yaitu

dengang cara menginterpretasikan byte masukan si , j sebagai 2 bilangan

heksadesimal, kemudian digit kiri menunjukan indeks baris dan digit kanan

menunjukan indeks kolom di tabel subtitusi. Nilai byte pada tabe subtitusi

yng dirujuk oleh indeks baris dan kolom menjadi nilai yang mensubtitusi si , j.

Tabel subtitusi untuk SubBytes diberikan oleh TABEL 2.2. Sedangkan tabel

insvers subtitusi SubBytes (transformasinya diberi nama InvSubBytes

diberikan oleh tabel 2.3.

Tabel 2.2
Tabel Subtitusi SubBytes
16

InvSubBytes adalah kebalikan dari transformasi SubBytes , di mana

kebalikan Sbox diterapkan untuk setiap SubBytes dari state. InvSubBytes

diperoleh dengan menerapkan kebalikan dari transformasi byte subtitusi.

Tabel 2.3
Tabel Subtitusi InvSubBytes

2) ShiftRows

Gambar 2.4 menunjukan transformasi ShiftRows, byte yang berada

pada tiga baris terakhir yang akan bergeser. Baris pertamaterjadi pergeseran.

Baris kedua, dilakukan pergeseran 1 byte. Baris ketiga, dilakukan pergeseran

sebanyak 2 byte. Baris keempat, dilakukan pergeseran sebanyak 3 byte.


17

Gambar 2.5 menunjukanGambar InvShiftRows


2.4 InvShiftRows adalah
Transformasi ShiftRows
kebalikan dari transformasi ShiftRows. Byte tiga baris terakhir dalam state

akan bergeser. Pertama baris tidak bergeser .

Gambar 2.5
Transformasi InvShiftRows

3) MixColumn

Tujuan MixColumn adalah mencampur nilai kolom kolom pada state

pada suatu elemen state keluaran. Untuk melakukan pencampuran itu,

transformasi MixColumn menggunakan operasi perkalian matriks dengan

operasi perkalian dan penjumlahan menggunakan operator GF(28) dengan

irreducible polynomial ( x 8 + x 4 + x 3+ x +1 ¿.

Gambar 2.6
Transformasi MixColumn
18

Pada gambar 2.6 state S adalah masukan transformasi MixColumn

dan state S’ adalah keluaran transformasi MixColumn.Representasikan biner

S sebagai polinomial lalu lakukan perkalian vektor antara baris ke-i pada

konstan dan kolom ke-j pada S. Perkalian dan penjumlahan menggunakan

GF(28). Untuk kolom ke-j j = {0,1,2,3} pada keluaran transformasi

MixColumn lakukan :

S ' 0 , j=S 0 , j∗( x ) ⊕ S1 , j∗(x+1)⊕ S 2 , j ⊕S 3 , j

S ' 0 , j=S 0 , j ⊕ S 1. j∗( x ) ⊕ S2 , j ( x+1 ) ⊕S 3. j

S ' 0 , j=S 0 , j ⊕ S 1 , j ⊕ S2 , j∗( x ) ⊕ S 3 , j∗( x +1)

S ' 0 , j=S 0 , j∗( x+1 ) ⊕ S1 , j ⊕ S2 , j ⊕ S 3 , j∗(x )

Invers transvormasi MixColumn adalah transformasi

InvMixColumns. Transformasi InvMixColumns menggunakan perkalian

matriks antara sebuah konstan dengan state. Konstan yang dipakai

InvMixColumns merupakan invers matriks konstan pada MixColumn.

Gambar 2.7 merupakan perkalian matriks yang dipakai oleh transformasi

InversMixColumns menggunakan operator perkalian dan penjumlahan GF(

28 ¿.

Gambar 2.7
Transformasi InvMixColumn
19

4) AddRoundKey

Transformasi keempat yang digunakan pada penyandian AES adalah

transformasi AddRoundKey. Transformasi AddRoundKey mencampur

sebuah state dengan kunci ronde dengan operasi eksklusif OR (⊕). Setiap

elemen state masukan yang merupakan sebuah byte dikenakan operasi

eksklusif OR dengan byte pada posisi yang sama di kunci ronde (kunci ronde

direpresentasikan sebagai state.

Transformasi AddRoundKey merupakan transformasi yang bersifat

self invers , yaitu transformasi yang invers sama dengan transformasi aslinya

asalkan menggunakan kunci ronde yang sama. Transformasi AddRoundKey

dapat diliha pada gambar 2.8.

Gambar 2.8
Transformasi AddRoundKey

c. Ekspansi Kunci AES


20

Algoritma AES mengambil kunci cipher, K, dan melakukan rutin ekspansi

kunci (key expansion) untuk membentuk key schedule. Ekspansi kunci

menghasilkan total Nb(Nr+1) word. Algoritma ini membutuhkan set awal key

yang terdiri dari Nb word, dan setiap round Nr membutuhkan data kunci sebanyak

Nb word. Hasil key schedule terdiri dari array 4 byte word linear yang dinotasikan

dengan [wi]. SubWord adalah fungsi yang mengambil 4 byte word input dan

mengaplikasikan S-Box ke tiap-tiap data 4 byte untuk menghasilkan word output.

Fungsi RotWord mengambil word [a0, a1, a2, a3] sebagai input, melakukan

permutasi siklik, dan mengembalikan word [a1, a2, a3, a0]. Rcon[i] terdiri dari

nilai-nilai yang diberikan oleh [xi-1, {00}, {00}, {00}], dengan xi-1 sebagai pangkat

dari x (x dinotasikan sebagai {02} dalam field GF(28). Word ke Nk pertama pada

ekspansi kunci berisi kunci cipher. Setiap word berikutnya, w[i], sama dengan

XOR dari word sebelumnya, w[i-1] dan word Nk yang ada pada posisi

sebelumnya, w[i-Nk]. Untuk word pada posisi yang erupakan kelipatan Nk,

sebuah transformasi diaplikasikan pada w[i-1] sebelum XOR, lalu dilanjutkan

oleh XOR dengan konstanta round, Rcon[i]. Transformasi ini terdiri dari

pergeseran siklik dari byte data dalam suatu word RotWord, lalu diikuti aplikasi

dari lookup Tabel untuk semua 4 byte data dari word SubWord.

3. Java Cryptography Extension

Merupakan framework sekuriti ekstensi dari Java. Ia menyediakan ekstensi

untuk kriptografi yang kuat, diperbolehkan untuk di-ekspor oleh pemerintah US

setelah kebijakan mengenai ekspor tahun 2000. JCE mulai diperbolehkan sebagai

opsi paket tambahan pada JDK v 1.2.x dan 1.3.x, sedangkan pada JDK v 1.4.x
21

telah diintegrasikan. API JCE diimplementasi oleh Cryptographic Service

Providers. Pada JDK v 1.4.x keatas secara default API service-provider nya

adalah SunJCE. Dengan JCE maka memberi keleluasaan kepada kita

(memprogram java kriptografi) untuk memakai implementasi dari API service-

provider yang diinginkan. Lokasi JCE terletak pada paket javax.crypto.

4. Aplikasi

Perangkat lunak aplikasi (bahasa Inggris: software application) 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 OpenOffice.org, yang menggabungkan suatu aplikasi

pengolah kata, lembar kerja, serta beberapa aplikasi lainnya. Aplikasi-aplikasi

dalam suatu paket biasanya memiliki antarmuka 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


22

kerja dapat dibenamkan dalam suatu dokumen pengolah kata walaupun dibuat

pada aplikasi lembar kerja yang terpisah.

5. Android

Android aadalah sebuah sistem operasi untuk perangkat mobile berbasis

linux yang mencakup sistem operasi, middleware dan aplikasi android

menyediakan platform terbuka bagi para pengembang dan untuk menciptakan

aplikasi mereka. Awalnya, Google Inc. membeli Android Inc. yang merupakan

pendatang baru yang membuat piranti lunak untuk ponsel/smartphone. Kemudian

untuk mengembangkan mengembangkan android dibentuklah Open Handset

Alliance, konorsium dari 34 perusahaan peranti keras, peranti lunak dan

telekomunikasi, termaksuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile

dan Nvidia.

Pada saat perilisan perdana android, 5 November 2007, Android bersama

Open Handset Alliance menyatakan mendukung perkembangan open source pada

perangkat mobile. Di lain pihak, Google merilis kode-kode Android dibawah

lisensi Apche, sebuah lisensi perangkat lunak dan open platform perangkat

selular.

a. Versi Android

Telepon pertama mmemakai sistem operasi android adalah HTC Dream,

yang dirilis pada 22 Oktober 2008. Pada penghujung tahun 2010 diperkirakan
23

hampir semua vendor selular didunia menggunakan android sebagai operating

system. Adapun versi-versi aandroid yang pernah dirilis adalah sebagai berikut:

1) Android versi 1.1

Pada 9 Maret 2009, Google merilis android versi 1.1. android versi ini

dilengkapi dengan pembaruan estetis pada aplikasi, jam, alarm, voice serch

(pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email.

2) Android versi 1.5 (Cupcake)

Pada pertengahan Mei 2009, google kembali merilis telepon selular

dengan menggunakan android dan SDK (Software Development Kit) dengan

versi1.5 (Cupcake). Terdapat beberapa pembaruan termaksud juga

penambahan beberapa fitur dalam selular versi ini yakni kemampuan

merekam dan menonton video dengan modus kamera, mengupload video ke

Youtube dan gambar ke Picasa langsung dari telepon, dukungan Bluetooth

A2DP, kemampuan terhubung secara otomatis ke headset Bluetooth, animasi

layar dan keyboard pada layar yang dapat disesuaikan dengan sistem.

3) Android versi 1.6 (Donut)

Donut (versi 1.6) dirilis pada September dengan menampilkan proses

pencarian yang lebih baik dibanding sebelumnya, penggunaan baterai

indikator dan kontrol applet VPN. Fitur lainnya adalah galeri yang

memungkinkan pengguna uuntuk memilih foto yang akan dihapus; kamera,


24

camcorder dan galeri yang diintegrasikan, CDMA/EVDO, VPN, Gestures,

dan Text-to-speech engine, kemampuan dial kontak, teknologi text to change

speech.

4) Android versi 2.0/2.1 (Eclair)

Pada 3 Desember 2009 kembali diluncurkan ponsel android dengan

versi 2.0/2.1 (Eclair), perubahan yang dilakukan adalah pengoptimalan

hardware, peningktan Google Maps 3.1.2, perubahan UI dengan browser baru

dukungan HTML5 , daftar kontak yang baru, dukungan flash untuk kamera

3,2 MP, digitl Zoom dan Bluetooth 2.1.

5) Android versi 2.2 (Froyo : Frozen Yoghurt)

Pada bulan Mei 2010 Android versi 2.2 Rev 1 diluncurkan. Fitur yang

tersedian di versi ini adalah sudah kompleks diantaranya adalah :

a) Kerangka aplikasi memungkinkan penggunaan dan penghapusan

komponen yang tersedia.

b) Dalvik Virtual Machine dioptimalkan untuk perangkat mobile.

c) Grafik : grafik di 2D dan grafis 3D berdasarkan libraries OpenGl .

d) SQLite: untuk penyimpanan data.

e) Mendukung media : audio, video, dan berbagai format gambar

f) GSM, Bluetooth, EDGE, 3G, dan Wifi

g) Kamera, Global Posotionong System (GPS), kompas dan accelerometer

6) Android bersi 2.3 (Gingerbread)


25

Android versi 2.3 diluncurkan pada esember 2010, hal-hal yang

direvisi dari versi sebelumnya adalah kemampuan seperti berikut :

a) SIP-Based VoIP

b) Near Field Communications (NFC)

c) Gyroscope dan sensor

d) Multiple cameras support

e) Mixable audio effects

f) Download manager

7) Android versi 3.0 (Honeycomb)

Android versi 3.0 dirilis Februari 2011 sebagai android 3.0 revisi 1

serta android versi 3.0 revisi 2 telah dirilis pada Juli 2011.

8) Android versi 3.1

Android versi 3.1 dirilis Mei 2011, sedangkan Android 3.1 revisi 2

juga diriilis Mei 2011, serta Android 3.1 revisi 3 diriilis pada Juli 2011.

9) Android versi 3.2 dirilis Juli 2011.

10) Android versi 4.0 dirilis November 2012

11) Android versi 4.1

12) Android versi 4.2

13) Android versi 4.3

b. Android SDK (Software Development Kit)

Android SDK adalah tools API (Application Programming Interface) yang

diperlukan untuk memulai mengembangan aplikasi platform Android


26

menggunakan bahasa pemrograman Java. Android merupakan subset perangkat

lunak untuk ponsel yang meliputi sistem operasi, middleware dan aplikasi kunci

yang release di Google. Saat ini disediakan Android SDK (Software

Development Kit) sebagai alaat bantu dan API untuk memulai mengembangkan

aplikasi pada platform Android menggunakan bahasa pembrograman Java.

6. Android Studio

Android studio adalah lingkungan pengembangan terpadu(IDE) resmi

untuk pengembangan platform android,hal itu disampaikan pada tanggal 16 mei

2013 Google I/O,android studio sudah tersedia secara bebas dibawah lisensi

Apache 2.0.

Android studio pada awalnya tahap preview versi 0.1 yang dipakai pada

tanggal 1 mei 2013 dan memasuki tahap beta pada bulan juni 2014 dan mulai

stabil dirilis pada Desember 2014 dengan versi 1.0 ,berdasarkan jetBrains ‘IDEA

Intellij Software,android studio dirancang khusus untuk pengembangan android

yang tersedia untuk Windows,Mac OS X dan Linux sebagai pengganti Eclipse .

Android Studio menyediakan alat pengembang Android terintegrasi untuk

pengembangan dan debugging. Di atas kemampuan yang Anda harapkan dari

IntelliJ, Android Studio menawarkan:

a. Berbasis Gradle membangun dukungan.

b. Refactoring Android-spesifik dan perbaikan yang cepat.

c. Alat Lint untuk menangkap kinerja, kegunaan, kompatibilitas versi dan

masalah lainnya.
27

d. ProGuard dan aplikasi-penanda tanganan kemampuan.

e. Penyihir berbasis template untuk membuat desain Android umum dan

komponen.

f. Sebuah layout editor kaya yang memungkinkan Anda untuk drag-and-drop

UI komponen, layout pratinjau pada beberapa konfigurasi layar, dan banyak

lagi

7. Standar Kualitas Perangkat Lunak ISO 9126

International Organization of Standaritation (ISO) atau organisasi

international untuk standarisasi telah mendefinisikan suatu standar internasional

yang berkaitan dengan perangkat lunak. Standar perangkat lunak yang

didefinisikan adalah ISO 9126. Standar ISO 9126 kini menjadi standar yang

banyak digunakan sebagai acuan dalam menentukan layak atau tidaknya dari

suatu perangkat lunak. (IEC, 2002:1)

Standar ISO 9126 memiliki enam karakteristik dimana masing-masing

karakteristik memiliki subarakteristik yang dapat berkembang. Setiap karakteristik

diukur dan dievaluasi dalam bentuk metrik. Karakteristik ISO 9126 meliputi :

a. Functionality

Functionality merupakan karakteristik standar pengukuran apakah

perangkat lunak dapat memenuhi segala fungsi yang dibutuhkan (IEC, 2002).

Subkarakteristik functionality menurut IEC sebagai berikut :

1) Suitability

Suitability merupakan karakteristik perangkat lunak yang berfokus

pada fungsionalitas perangkatl lunak yang dibandingkan dengan spesifikasi


28

kebutuhan (IEC, 2002). Menurut Zyrmiak (2010) suitability merupakan

atribut perangkat lunak yang berfokus pada keberadaan dan kesesuaian suatu

fungsi untuk tugas-tugas tertentu.

2) Accuracy

Accuracy merupakan karakteristik perangkat lunak dimana hasil input

dan output dari suatu fungsi tepat sesuai dengan apa yang diharapkan (IEC,

2002). Zyrmiak (2010) menyebutkan bahwa accuracy merupakan

karakteristik perangkat lunak yang berfokus pada hasil yang tepat atau

disepakati.

3) Interoperability

IEC menyebutkan bahwa interoperability merupakan suatu

karakteristik perangkat lunak yang mampu menangani segala perintah,

komunikasi, akses data ketika perangkat lunak berhubungan dengan sistem

lain. (IEC, 2002).

4) Security

Security merupakan karakteristik perangkat lunak dalam mencegah

akses illegal yang masuk ke dalam sistem. (IEC, 2002)

b. Reliability

Reliability merupakan karaktersistik standar pengukuran terhadap kinerja

atau kehandalan dari perangkat lunak. Subkarakteristik reliability menurut IEC

sebagai berikut :

1) Maturity
29

Maturity merupakan kemampuan perangkat lunak untuk mampu

terhindar dari kegagalan yang disebabkan oleh kesalahan dalam perangkat

lunak.

2) Fault Tolerance

Fault tolerance merupakan kemampuan perangkat lunak untuk

mempertahankan tingkat kinerja tertentu jika terjadi kesalahan pada

perangkat lunak atau kesalahan yang sudah ditentukan sebelumnya.

3) Recoverability

Recoverability merupakan kemampuan perangkat lunak untuk

membangun kembali tingkat kinerja perangkat lunak dan memulihkan data

secara langsung jika terjadi kegagalan.

4) Reliability Compliance

Perangkat lunak harus mampu memenuhi segala standar, konvensi

atau peraturan yang berkaitan dengan aspek reliability.

c. Usability

Usability merupakan karakteristik standar pengukuran tehadap seberapa

mudah sebuah perangkat lunak untuk dipahami, dipelajari, dan digunakan (IEC,

2002). IEC menyebutkan subkarakterisit usability sebagai berikut :

1) Understandability

Karakterisitk yang menjelaskan bahwa pengguna harus dapat dengan

mudah menggunakan dan memahami perangkat lunak yang dikembangkan.

2) Learnability
30

Karakteristik yang digunakan untuk menilai berapa lama pengguna

belajar untuk menggunakan aplikasi secara keseluruhan. Zyrmiak (2010)

menyebutkan bahwa learnability merupakan karakteristik yang menjamin

upaya pengguna untuk belajar menggunakan aplikasi. Learnability memiliki

kaitan erat dengan understandability dimana hasil dari understandability

dapat dijadikan indikator sebagai potensi aspek learnabiity.

3) Operability

Karakteristik yang menilai apakah pengguna dapat mengoperasikan

dan mengendalikan perangkat lunak.

4) Attractiveness

Karakteristik yang menguji daya tarik dari perangkat lunak, dapat

dilihat dari desain tampilan antar muka dan warna yang digunakan.

5) Usability Compliance

Perangkat lunak harus mampu memenuhi segala standar, konvensi

atau peraturan yang berkaitan dengan aspek usability.

d. Efficiency

Efficiency merupakan karakteristik standar pengukuran terhadap kinerja

yang tepat terhapad sumberdaya yang digunakan ketika perangkat lunak

dijalankan (IEC, 2002). IEC menyebutkan subkarakteristik efficiency sebaga

berikut :

1) Time Behaviour
31

Karakteristik yang menilai lama waktu respon perangkat lunak dalam

menjalankan suatu fungsi.

2) Resource Utilisation

Karakteristik yang menilai sumber daya yang digunakan perangkat

lunak selama menjalankan fungsinya.

3) Efficiency Compliance

Perangkat lunak harus mampu memenuhi segala standar, konvensi

atau peraturan yang berkaitan dengan aspek efficiency.

e. Maintainability

Maintainability merupakan karakteristik standar pengukuran terhadap

seberapa baik perangkat lunak ketika dilakukan perubahan-perubahan yang

diperlukan. Karakteristik ini dibutuhkan karena suatu perangkat lunak selalu

berkembang sesuai dengan kebutuhan dan disesuaikan dengan perkembangan

teknologi (IEC, 2002). Sub karakteristik maintainability menurut IEC sebagai

berikut :

1) Analysability

Karakterisit perangkat lunak yang berhubungan dengan kemudahan

dalam diagnosa kekurangan, penyebab kegagalan penggunaan, atau untuk

mengidentifikasi bagian yang akan dimodifikasi.

2) Changeability

Karakteristik perangkat lunak yang berhubungan dengan usaha yang

diperlukan untuk perubahan modifikasi, penghapusan error atau perubahan

lainnya.
32

3) Stability

Karakteristik perangkat lunak yang berhubungan dengan aktifitas

yang tidak terduga dari perangkat lunak baik dalam pengujian atau

pengoperasian normal setelah dilakukan modifikasi.

4) Testability

Karakteristik perangkat lunak yang berhubungan dengan proses

validasi prenagkat lunak ketika diuji baik dalam proses modifikasi atau

tidak.

5) Maintainability Compliance

Perangkat lunak harus mampu memenuhi segala standar, konvensi

atau peraturan yang berkaitan dengan aspek maintainability.

f. Portability

Portability merupakan karakteristik standar pengukuran terhapad

seberapa baik perangkat lunak dapat berjalan pada lingkungan sumber daya yang

berbeda-beda. Lingkungan sumber daya dalam hal ini berupa perankat keras dan

perangkat lunak (IEC, 2002). Berikut sub karakteristik portability :

1) Adaptability

Karakteristik yang memungkinkan perangkat lunak untuk beradaptasi

pada lingkungan yang berbeda.

2) Installability

Karakteristik yang memungkinkan perangkat lunak untuk diinstall

pada lingkungan tertentu dari pengguna.

3) Co-existance
33

Karakteristik yang memungkinkan perangkat lunak dapat dijalankan

bersamaan dengan perangkat lunak lain yang tidak saling terhubung pada

lingkungan yang sama dan saling berbagi resource.

4) Replacebility

Karakteristik yang memungkinkan perangkat lunak mampu

dijalankan pada dengan komponen yang berbeda di lingkungan yang sama.

5) Portability Compliance

Perangkat lunak harus mampu memenuhi segala standar, konvensi

atau peraturan yang berkaitan dengan aspek portability.

8. Alat Perancangan Sistem

a. DFD (Data Flow Diagram)

Data Flow Diagram atau dalam bahasa Indonesia menjadi Diagram Alir

Data (DAD) adalah representasi grafik yang menggambarkan aliran informasi

dan transformasi yang diaplikasikan sebagai data yang mengalir dari masukan

(input) dan keluaran (output).

DFD dapat digunakan untuk mempresentasekan sebuah sistem atau

perangkat lunak atau beberapa level abstraksi. DFD dapat dibagi menjadi

beberapa level yang lebih detail untuk mempresentasikan aliran informasi atau

fungsi yang lebih detail.


34

Berikut ini adalah tahapan-tahapan perncangan dengan menggunakan

DFD:

1) Membuat DFD lever 0 atau sering juga disebut Context Diagram

DFD level 0 menggambarkan sistem yang akan dibuat sebagai suatu

entitas tunggal yang berinteraksi dengan orang maupun sistem lain. DFD

level 0 digunakan untuk menggambarkan interaksi antara sistem yang akan

dikembangkan dengan entitas luar.

2) Membuat DFD level 1

DFD level 1 digunakan untuk menggambarkan modul-modul yang ada

dalam sistem yang akan dikembangkan. DFD level 1 merupakan hasil

breakdown DFD level 0 yang sebelumnya sudah dibuat. Notasi-notasi pada

DFD dapat dilihat pada tabel 2.4.

Tabel 2.4
Notasi-notasi DFD
Notasi Keterangan

Proses atau fungsi atau prosedur; pada pemodelan


perangkat lunak yang akan diimplementasikan dengan
program terstruktur, maka pemodelan notasi inilah yang
harusnya menjadi fungsi atau prosedur di dalam kode
program
35

File atau basisdata atau penyimpanan (storage); pada


pemodelan perangkat lunak yang akan
diimplementasikan dengan pemrograman terstruktur,
mka pemodelan notasi inilah yang harusnya dibuat
menjadi tabel-tabel basis datayang dibutuhkan, tabel-
tabel ini juga harus sesuai dengan perancangan tabel-
tabel pada basis data
Entitas luar (external entity) atau masukan (input) atau
keluaran (output) atau orang yang memakai/berinteraksi
dengan perangkat lunak yang dimodelkan atau sistem
lain yang terkait dengan aliran data dari sistem yang
dimodelkan
Catatan : nama yang digunakan pada masukan dan
keluaran biasanya berupa kata benda
Aliran data; merupakan data yang dikirim antar proses
dari penyimpanan ke proses atau dari proses ke masukan
atau keluaran
Catatan : nama yang digunakan pada aliran data
biasanya berupa kata benda

b. Flowchart

Bagan alir adalah bagan-bagan yang mempunyai arus yang

menggambarkan langkah-langkah penyelesaian suatu masalah (Ladjamudin,

2005).Bagan alir adalah bagan yang menunjukkan alir (flow) di dalam

program atau prosedur sistem secara logika. Bagan alir digunakan untuk

menggambarkan prosedur sistem baik sistem berjalan ataupun sistem yang akan

diusulkan. Bagan alir dapat digunakan sebagai alat bantu komunikasi dan

untuk dokumentasi.

Pada saat akan menggambar suatu bagan alir, analis sistem atau

programmer dapat mengikuti pedoman sebagai berikut:


36

1) Bagan alir sebaiknya digambar dari atas ke bawah dan mulai dari bagian kiri

dari suatu halaman.

2) Kegiatan di dalam bagan alir harus ditunjukkan dengan jelas.

3) Harus ditunjukkan dari mana kegiatan akan dimulai dan di mana akan

berakhirnya.

4) Masing-masing kegiatan di dalam bagan alir sebaiknya digunakan suatu kata

kerja yaang mewakili suatu pekerjaan, misalnya: “persiapkan” dokumen,

“hitung” gaji.

5) Masing-masing kegiatan di dalam bagan alir harus di dalam urutan yang

semestinya.

6) Kegiatan yang terpotong dan akan di tempat lain harus ditunjukkan

dengan jelas menggunakan simbol penghubung.

7) Gunakanlah simbol-simbo bagan alir yang standar.

Tabel 2.5 merupakan simbol-simbol dari yang umum digunakan dalam

bagan alir :

Tabel 2.5
Simbol Flowchart
Simbol Arti
Flow Direction symbol yaitu simbol yang digunakan untuk
menghubungkan antara simbol yang satu dengan simbol
yang lain. Simbol ini disebut juga connecting line.

Terminator Symbol Yaitu simbol untuk permulaan (start)


atau akhir (stop) dari suatu kegiatan
Connector Symbol yaitu simbol untuk keluar – masuk atau
penyambungan proses dalam lembar / halaman yang sama.
37

Connector Symbol yaitu simbol untuk keluar – masuk atau


penyambungan proses pada lembar / halaman yang berbeda.

Processing Symbol Simbol yang menunjukkan pengolahan


yang dilakukan oleh komputer
Simbol Manual Operation Simbol yang menunjukkan
pengolahan yang tidak dilakukan oleh komputer
Simbol Decision Simbol pemilihan proses berdasarkan
kondisi yang ada.
Simbol Input-Output,Simbol yang menyatakan proses input
dan output tanpa tergantung dengan jenis peralatannya
Simbol Manual Input ,Simbol untuk pemasukan data secara
manual on-line keyboard
Simbol Preparation Simbol untuk mempersiapkan
penyimpanan yang akan digunakan sebagai tempat
pengolahan di dalam storage.
Simbol Predefine Proses, Simbol untuk pelaksanaan suatu
bagian (sub-program)/prosedure
Simbol Display, Simbol yang menyatakan peralatan output
yang digunakan yaitu layar, plotter, printer dan sebagainya.

c. Use Case

Use Case atau diagram use case merupakan pemodelan untuk kelakuan

(behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah

interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat.

Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di

dalam sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi

itu.
38

Syarat penamaan use case adalah nama didefinisikan sesimpel mungkin

dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa

yang disebut aktor dan use case.

1) Aktor merupakan orang, proses atau sistem lain yang yang berinteraksi

dengan sistem informasi yang akan dibuat diluar sistem informasi itu sendiri,

jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu

merupakan orang.

2) Use case merupakan fungsionalitas yang disediakan sistem sebagai unit-unit

yang saling bertukar pesan antar unit atau aktor.

3) Asosiasi yaitu, komunikasi antara aktor dan use case yang berpartisipasi pada

use case atau use case memiliki interaksi dengan aktor

4) Ekstensi yaitu, Relasi use case ditambah ke sebuah use case dimana use case

yang ditambahkan dapat berdiri sendiri walaupun tanpa use case tambahan

itu.

Berikut adalah simbol-simbol yang ada pada diagram use case pada Tabel

2.6.

Tabel 2.6
Simbol use case
Simbol Deskripsi
Use case Fungsionalitas yang disediakan dalam sistem sebagai unit-
unit yang saling bertukar pesan antar unit dan aktor;
biasanya dinyatakan dengan menggunakan kata kerja di awal
dan awal frase nama use case
Aktor Orang, proses atau sistem lain yang berinteraksi dengan
sistem informasi yang akan dibuat diluar sistem yang akan
dibuat itu sendiri, jadi walaupun simbolaktor adalah orang,
39

tapi aktor belum tentu merupakan orang.


Asosiasi Komunikasi antara aktor dan use case yang berpartisipasi
pada use case atau use case memiliki interaksi dengan aktor
Ekstensi Relasi use case ditambah ke sebuah use case dimana use
case yang ditambahkan dapat berdiri sendiri walaupun tanpa
use case tambahan itu.

d. Activity Diagram

Activity diagram atau diagram aktivitas menggambarkan workflow (aliran

kerja) atau aktivitas dari sebuah sistem atau proses bisnis atau menu yang ada

pada perangkat lunak.

Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal

berikut:

1) Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan

merupakan proses bisnis sistem yang didefinisikan.

2) Urutan atau pengelompokan tampilan dari sistem / user interface dimana

setiap aktifitas dianggap memiliki sebuah rancangan antarmuka tampilan.

3) Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah

pengujian yang perlu didefinisikan kasus ujinya.

4) Rancangan menu yang ditampilkan pada perangkat lunak.

Simbol-simbol yang ada pada diagram aktivitas tercantum pada Tabel 2.7 :

Tabel 2.7
Simbol activity diagram
Simbol Deskripsi
Status awal Status awal aktivitas sistem,sebuah diagram
aktivitas memiliki sebuah status awal
Aktivitas Aktivitas yangdilakukan sistem, aktivitas
40

biasanya diawali dengan kata kerja


Percabangan/decision Asosiasi percabangan dimana jika ada
pilihan aktivitas lebih dari satu

Peggabungan/join Asosiasi penggabungan dimana ebih dari


satu aktivitas digabungkan menjadi satu
Status akhir Status akhir yang dilakukan sistem, sebuah
diagram aktivitas memiliki sebuah status
akhir

B. Penelitian Relevan

1. Soraya Kusumawati.2013.” Perancangan Aplikasi Kriptografi Advanced

Encryption Standard Berbasis Android”. Dunia keamanan semakin

berkembang seiring dengan pesatnya teknologi dan informasi,

perkembangan ilmu pengetahuan, banyak informasi baru bermunculan,

baik yang layak disebarluaskan atau dirahasiakan. Nyatanya, sebuah

informasi kadang bisa bernilai sangat besar seperti halnya data nasabah suatu

bank, organisasi, data pribadi dan strategi perusahaan bahkan yang lebih

besar dan berskala internasional yang menyangkut hajat hidup suatu

negara. Untuk mengamankan informasi tersebut, digunakanlah ilmu

Kriptografi.

2. Joko Tri Susilo Widodo.2014.” Implementasi Algoritma Kriptografi Aes 128

Bit Sebagai Pengaman Sms Pada Smartphone Berbasis Android”. Dewasa ini

sudah banyak cara untuk mendapatkan Informasi termasuk untuk

pengiriman pesan, sudah banyak sarana untuk mengirimkan pesan

sehingga kita bisa dengan mudah mengirim dan menerima pesan. Begitu

cepat dan mudahnya kita mengirim pesan kepada orang lain meski jauh
41

sekalipun, hanya dengan sekali klik pesan tersebut terkirim dan diterima pada

saat yang sama. Dari fasilitas pengiriman pesan yang kita dapatkan ini, kita

sering mengabaikan tentang keamanan pesan dari pihak ketiga. Dan salah

satu yang harus benar-benar dijaga keamanan dan kerahasiaannya adalah

pesan yang bersifat rahasia negara karena jika pesan itu diketahui oleh pihak

ketiga dan tersebar maka akan mengancam persatuan dan keamanan negara.

3. Noni Endriani.2014.” Implementasi Algoritma Enkripsi Aes Pada Aplikasi

Sms (Short Message Service) Berbasis Android”. Di era globalisasi ini,

kebutuhan manusia semakin kompleks. Sehingga manusia termotivasi

untuk membuat inovasi baru yang memudahkan kita dalam menyelesaikan

suatu masalah. Handphone adalah salah satu inovasi manusia untuk

membantu dalam penyelesaian masalah tersebut. Seiring dengan

perkembangan dan kemudahan dari teknologi-teknologi tersebut, banyak

informasi baru bermunculan, baik yang layak disebarluaskan atau

dirahasiakan. Namun keamanan dari informasi tersebut belum terjamin.

Untuk mengamankan informasi tersebut, digunakanlah ilmu Kriptografi.

C. Kerangka Pikir

Merancang sebuah aplikasi enkripsi-dekripsi menggunakan kriptografi

Adavanced Ecryption Standard berbasis mobile Android. Memanfaaatkan

aplikasi enkripsi-dekripsi, pengguna memiliki sarana untuk mengamankan data

sehingga data penting yang tersimpan dalam android aman dari pihak-pihak yang
42

akan mencuri, mengubah maupun membaca data serta memudahkan pengguna

dalam mengamankan data dengan aplikasi yang mudah digunakan.

Diharapkan aplikasi ini dapat dirasakan manfaatnya oleh para pengguna

dan dapat meningkatkan keamanan. Adapun kerangka pikir rancang bangun

aplikasi enkripsi-dekripsi menggunakan metode kriptografi Advanced Encryption

Standard (AES) berbasis mobile android dapat dilihat pada gambar 2.9:

Gambar 2.13
Kerangka Pikir
Gambar 2.9
Kerangka Pikir

Anda mungkin juga menyukai