APLIKASI PENGIRIMAN PESAN PENGKODEAN MENGGUNAKAN METODE AES 128 BIT BERBASIS ANDROID.

APLIKASI PENGIRIMAN PESAN PENGKODEAN MENGGUNAKAN
METODE AES 128 BIT BERBASIS ANDROID

SKRIPSI

Diajukanoleh :
YUDITH ADI SUCAHYO
NPM : 0734010025

Kepada
J URUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
J AWA TIMUR
2012

KATA PENGANTAR

Dengan mengucapkan puji syukur kehadirat Alloh SWT atas rahmat serta hidayahnya
yang diberikan sehingga dapa tmenyelesaikan Tugas Akhir ini dengan baik dan tepat waktu
dimana hasilnya disusun dengan bentuk laporan yang berjudul Aplikasi Pengiriman Pesan

Pengkodean Menggunakan Metode AES 128 bit berbasis Android.
Adapun laporan ini disusun yaitu untuk memenuhi syarat mengikuti seminar TA serta
untuk memenuhi syarat kelulusan salah satu mata kuliah “TugasAkhir” di Universitas
Pembangunan Nasioanal “Veteran” JawaTimur.
Penulis menyadari bahwa manusia yang serba kurang sempurna, maka di dalam upaya
menyusun Tugas Akhir ini peneliti telah banyak memperoleh bantuan dan bimbingan dari
berbagai pihak, mengingat keterbatasan pengalaman yang dimiliki oleh peneliti, sehingga penulis
sangat mengharapkan segala kritik dan saran yang konstruktif dan membangun demi kebaikan
maupun sistematika penulisan akan selalu peneliti terima dengan senang hati guna kesempurnaan
Tugas Akhir ini. Harapan peneliti mudah – mudahan apa yang penulis lakukan ini dapat menjadi
sumbangan pemikiran dan berguna bagi semuanya, terutamaUniversitas Pembangunan Nasional
“Veteran” JawaTimur.

Surabaya, Desember 2012

Yudith Adi Sucahyo

ii

UCAPAN TERIMA KASIH

Dalam pembuat laporan ini, peneliti telah mendapatkan bantuan dan bimbingan dari
berbagai pihak yang terkait, baik secara moril maupun materiil oleh karena itu pada kesempatan
kali ini peneliti ingin menyampaikan ucapan terima kasih kepada:
1.

Bapak Prof. Dr. IrTeguhSoedarto, MP. Selaku Rektor Universitas Pembangunan
Nasional “Veteran” JawaTimur Surabaya.

2.

Bapak Ir. Sutiyono, MT selaku Dekan Fakultas Teknologi Industri.

3.

Ibu Dr.Ir. Ni Ketut Sari, MT,selaku Kepala Jurusan Teknik Informatika Universitas
Pembangunan Nasional ”Veteran” Jawa Timur.

4.

Bapak Hudan Studiawan, S.Kom, M.kom, sebagai Dosen Pembimbing yang telah

meluangkan waktu dan memberikan bimbingan serta petunjuk selama menyusun
Tugas Akhir ini.

5.

Para Dosen Penguji Seminar : Barry Nuqoba, S.Si, M.Kom, Ir.Mu’tasim Billah, MS
yang telah membuka wawasan baru bagi peneliti.

6.

Para Dosen Penguji Lisan : Ir.Mu’tasim Billah, MS, Harianto, S.Kom, M.eng,
Achmad Junaidi, S.Kom yang telah memberikan masukan positif kepada peneliti.

7.

Kedua Orang Tua tercinta serta keluarga yang telah memberikan doa dan semangat
kepada penulis.

8.


Teman-teman peneliti : Untuk teman-teman seangkatan Oshin, Juzz’Sari, Vera,
Trea, Faisol, Nanang, Rizal, Tobib, Gigih, Ardi, Novan dan teman seangkatan
iii

lainya. yang tidak mungkin ditulis satu per satu terima kasih atas dukungan dan
kebersamaanya selama empat tahun terakhir.
9. Kepada teman-teman KKN 41 love you all dan kepada Dody asmara,Edwin
prasetyo terima kasih yang telah mensupport agar cepat selesai Tugas Akhir ini.

Surabaya, Januari 2013

Yudith Adi Sucahyo

iv

DAFTAR ISI
ABSTRAKSI ........................................................................................................

i


KATA PENGANTAR .......................................................................................... ii
UCAPAN TERIMA KASIH ................................................................................ iii
DAFTAR ISI......................................................................................................... v
DAFTAR GAMBAR ............................................................................................ viii
DAFTAR TABEL ................................................................................................. x
BAB I PENDAHULUAN
1.1 Latar Belakang ...................................................................................... 1
1.2 Perumusan Masalah .............................................................................. 3
1.3 Batasan Masalah ................................................................................... 3
1.4 Tujuan .................................................................................................. 3
1.5 Manfaat................................................................................................. 3
1.6 Sistematika Penulisan............................................................................ 4

BAB II TINJ AUAN PUSTAKA
2.1. Algorithma Dan Pemograman .............................................................. 6
2.2. Pengembangan Sistem ......................................................................... 7
2.3. Representasi Data................................................................................. 9
2.3.1 BCD (Binary Coded Decimal) ..................................................... 9
2.3.2 SBCDIC (Standart Binary Codec Decimal) ................................. 10
2.3.3 EBCDIC (Extended Binary Codec Decimal) ............................... 10

2.3.4 ASCII (American Standart Code for Information Interchange ...... 10
2.4 Kriptografi ............................................................................................ 11
2.4.1 Algoritma Simetris ....................................................................... 13

v

2.4.2 Algprtima Asimetris .................................................................... 14
2.4.3 Block Cipher dan Stream Cipher .................................................. 15
2.5 Mode Operasi dalam Block Chiper........................................................ 16
2.5.1 Electronic Codebook (ECB) ......................................................... 16
2.5.2 Chiper Block Chaining (CBC) ...................................................... 17
2.6 Sistem Operasi Android ........................................................................ 18
2.7 Perangkat Pemograman Android ........................................................... 24
2.8 Pemograman Android ........................................................................... 29
BAB III ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem ..................................................................................... 37
3.2 Pengumpulan Data ................................................................................ 37
3.3 Analisis Data......................................................................................... 38
3.4 Analisa Sistem ...................................................................................... 38
3.5 Perancangan Sistem .............................................................................. 39

3.5.1 Diagram Alur Perancangan program ............................................ 39
3.5.2 Konteks Diagram......................................................................... 40
3.5.3 Data Flow Diagram Level 0 ......................................................... 41
3.5.4 Data Flow Diagram Level 1 Proses Enkripsi ................................ 42
3.6.Create Database .................................................................................... 43
3.7 Data Base Management System ............................................................ 44
3.8 Perancangan Antarmuka ....................................................................... 46
3.8.1 Desain Menu Utama .................................................................... 47
3.8.2 Desain Menu Setting ................................................................... 48
3.8.3 Desain Menu Compose Message ................................................. 49
3.8.4 Desain Menu Inbox ............................................................ 50

vi

BAB IV IMPLEMENTASI
4.1 Spesifikasi sistem ................................................................................. 51
4.2 Perangkat Sistem.................................................................................. 51
4.2.1 Perangkat Keras yang Digunakan ............................................... 51
4.2.2 Perangkat Lunak yang Digunakan .............................................. 52
4.3 Implementasi Desain Antarmuka .......................................................... 52

4.3.1 Halaman Utama .......................................................................... 53
4.3.2 Halaman Menu Setting ............................................................... 54
4.3.3 Halaman Menu Compose Message ............................................. 57
4.3.4 Halaman Menu Inbox ................................................................. 56
4.3.5 Code Form Menu Utama ............................................................ 59
4.3.6 Code Proses Pengkodean AES 128 ............................................. 60
4.3.7 Code Pengirim Pesan .................................................................. 61
4.3.8 Code Penerima Pesan ................................................................. 62
BAB V UJ I COBA DAN EVALUASI
5.1 Uji Coba Sistem .................................................................................... 63
5.2 Uji Coba Pengimputan Sample Data ..................................................... 63
5.3 Uji Coba Penerimaan Pesan Terenkripsi................................................ 64
5.4 Uji Coba Penerimaan Pesan Terdekkripsi .............................................. 65
BAB VI KESIMPULAN DAN SARAN
6.1 Kesimpulan ........................................................................................... 67
6.2 Saran..................................................................................................... 67
DAFTAR PUSTAKA

vii


APLIKASI PENGIRIMAN PESAN PENGKODEAN MENGGUNAKAN
METODE AES 128 BIT BERBASIS ANDROID
Disusun Oleh

: Yudith Adi Sucahyo

Dosen Pembimbing I

: Hudan Studiawan S.kom, M.Kom

Abstraksi
Operating system Android merupakan operating system yang banyak digunakan
pada smartphone maupun tablet pc. Perkembangan android secara pesat dikarenakan
berbasis open source sehingga memudahkan developer untuk menciptakan aplikasiaplikasi pendukung yang memberi manfaat bagi pengguna. Smart phone atau pun tablet
pc mempunyai banyak fungsi. Aplikasi yang pasti digunakan oleh setiap orang adalah
aplikasi pengiriman pesan pendek atau Short Message Standart (SMS).Pengiriman pesan
pendek menjadi pilihan utama dalam berkomunikasi oleh pengguna.
Teknologi pengiriman pesan pendek saat ini menggunakan algoritma 64 bit
untuk melakukan pengkodean. Berdasar permasalahan ini dalam melakukan penelitian
dan pembuatan aplikasi pesan pendek yang menggunakan pengkodean pada AES 128 bit.

Aplikasi ini dapat menjamin kerahasiaan isi pesan dengan melakukan perubahan
pengkodean. Adanya fitur password menambah kekuatan dari aplikasi ini sehingga tidak
bisa dibuka oleh user lain.
Pada percobaan yang dilakukan, aplikasi dapat berjalan dengan baik sesuai
perancangan, yaitu dapat melakukan proses pengkodean AES 128 bit dan dekripsi untuk
kembali membaca pesan yang telah di enkripsi. Aplikasi dapat berjalan di operating
system android dengan lancar.
Kata Kunci : Android, Pengkodean, AES 128 bit

i

BAB I
PENDAHULUAN

1.1. Latar Belakang
Teknologi komunikasi kian berkembang pesat, belum lama mengenal
gadget berbasis Java, Symbian, Lalu Blackberry, kini dengan disuguhkan
teknologi Operating System yang diberi nama Android. Android adalah sistem
operasi berbasis Linux yang saat ini banyak di gunakan untuk smart phone dan
tablet computer. Android memberi kemudahan dengan menyediakan platform

terbuka (open source) bagi para pengembang aplikasi untuk menciptakan aplikasi
sendiri. Salah satu aplikasi berbasis android adalah aplikasi pengiriman pesan
pendek.
Adanya kemungkinan penyadapan data, maka aspek keamanan dalam
pertukaran informasi menjadi sangat penting karena suatu komunikasi data jarak
jauh belum tentu memiliki jalur transmisi yang aman dari penyadapan sehingga
keamanan informasi menjadi bagian penting dalam dunia informasi itu sendiri.
Terdapat data-data yang tidak terlalu penting, sehingga apabila publik mengetahui
data tersebut, pemilik data tidak terlalu dirugikan. Tetapi apabila pemilik data
adalah pihak militer atau pemerintah, keamanan dalam pertukaran informasi
menjadi sangat penting karena data yang dikirim kebanyakan adalah data-data
rahasia yang tidak boleh diketahui oleh publik.
Kriptografi adalah salah satu teknik yang digunakan untuk meningkatkan
aspek keamanan suatu informasi. Kriptografi merupakan kajian ilmu dan seni
untuk menjaga suatu pesan atau data informasi agar data tersebut aman.
1

2

Kriptografi mendukung kebutuhan dari dua aspek keamanan informasi, yaitu
secrecy (perlindungan terhadap kerahasiaan data informasi) dan authenticity
(perlindungan terhadap pemalsuan dan pengubahan informasi yang tidak
diinginkan). Algoritma kriptografi yang baik akan memerlukan waktu yang lama
untuk memecahkan data yang telah disandikan. Seiring dengan perkembangan
teknologi komputer maka dunia teknologi informasi membutuhkan algoritma
kripografi yang lebih kuat dan aman. Saat ini, AES (Advanced Encryption
Standard) digunakan sebagai standar algoritma kriptografi yang terbaru. AES
menggantikan DES (Data Encryption Standar) yang pada tahun 2002 sudah
berakhir masa penggunaannya. DES juga dianggap tidak mampu lagi untuk
menjawab tantangan perkembangan teknologi komunikasi yang sangat cepat.
AES sendiri adalah algoritma kriptografi dengan menggunakan algoritma Rijndael
yang dapat mengenkripsi dan mendekripsiblok data sepanjang 128 bit dengan
panjang kunci 128 bit, 192 bit, atau 256 bit.
Berdasarkan permasalahan tersebut, pada penelitian tugas akhir kali ini,
peneliti akan membuat aplikasi pengiriman pesan dengan menggunakan algoritma
AES dengan panjang kunci 128 bit untuk handset berbasis Android. Sehingga isi
pesan melalu media pengiriman pesan pendek tidak dengan mudah diketahui oleh
orang lain.

3

1.2. Perumusan Masalah
Rumusan masalah yang digunakan dalam tugas akhir ini adalah :
1.

Bagaimana membuat proses encode menggunakan algoritma AES dengan
panjang kunci 128 bit pada handset berbasis android ?

2.

Bagaimana membuat proses decode menggunakan algoritma AES dengan
panjang kunci 128 bit pada handset berbasis android ?

1.3. Batasan Masalah
Pada tugas akhir ini batasan masalah yang dipergunakan yaitu :
1. Algoritma yang digunakan adalah AES dengan panjang kunci 128 bit.
2. Penelitian ini tidak membahas waktu komputasi yang dibutuhkan saat
melakukan pengkodean dan juga waktu pengiriman pesan serta keberhasilan
proses pengiriman pesan.
3. Software developer menggunakan Eclipse Helios.
4. Sistem operasi yang dipergunakan adalah Android minimal ver 2.2 (Froyo).

1.4. Tujuan
Tujuan yang ingin dicapai pada pengerjaan tugas akhir ini adalah:
Membangun aplikasi yang dapat mengirimkan pesan algoritma AES dengan
panjang kunci 128 bit untuk handset berbasis android.

1.5. Manfaat
Adapun manfaat yang ingin diperoleh dari pengerjaan tugas akhir ini
adalah dapat membuat perangkat lunak untuk mempermudah pengguna handset

4

android dalam mengamankan pengiriman pesan dengan menggunakan algoritma
AES dengan panjang kunci 128 bit.

1.6. Sistematika Penulisan
Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran
umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini
adalah sebagai berikut :
BAB I

PENDAHULUAN
Bab ini berisi latar belakang masalah, identifikasi masalah, maksud
dan tujuan yang ingin dicapai, batasan masalah, metodologi
penelitian yang diterapkan dalam memperoleh dan mengumpulkan
data, waktu dan tempat penelitian, serta sistematika penulisan.

BAB II

TINJ AUAN PUSTAKA
Membahas berbagai konsep dasar dan teori-teori yang berkaitan
dengan topik masalah yang diambil dan hal-hal yang berguna
dalam proses analisis permasalahan.

BAB III

ANALISIS DAN PERANCANGAN
Membahas metode penelitian dan menganalisis masalah dari model
penelitian untuk memperlihatkan keterkaitan antar variabel yang
diteliti serta perancangan sistem yang akan dibuat.

BAB IV

IMPLEMENTASI DAN PENGUJ IAN
Membahas mengenai pengimplementasian aplikasi yang telah
dibuat ke perangkat yang akan digunakan serta melakukan
pengujian terhadap aplikasi yang telah diimplementasikan tersebut.

5

BAB V

PENUTUP
Berisi kesimpulan dan saran yang sudah diperoleh dari hasil
penulisan tugas akhir.

BAB VI

KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dari hasil analisis dan pengolahan data
serta saran-saran yang dapat dijadikan bahan masukan
pengembangan sistem selanjutnya.

untuk

BAB II
TINJ AUAN PUSTAKA

2.1. Algorithma Dan Pemrograman
Pada era tahun 1950 –1960, kecepatan komputer sangat rendah dan
disertai juga dengan keterbatasan dari media penyimpan, sehingga tentunya
berakibat juga dengan keterbatasan dalam penulisan program-program komputer.
Namun di era saat ini, dengan kecepatan komputer yang cukup handal demikian
juga ketersediaan dari media penyimpan yang cukup handal dan besar, serta
didukung juga dengan perkembangan bahasa pemrograman yang ada sehingga
kita dapat dengan mudah membuat suatu program. Permasalahan yang timbul
dalam pembuatan program tersebut adalah bagaimana kita dapat memahaminya,
sehingga apabila terdapat perubahan yang

akan dilakukan kita dapat

memperbaikinya secara mudah. Hal ini tentu saja harus kita perhatikan terutama
apabila kita melihat dari biaya yang harus dikeluarkan dalam pembuatan program
tersebut. Istilah Pemrograman Terstruktur (Structured Programming) mengacu
dari suatu kumpulan tehnik yang dikemukan oleh Edsger Dijkstra. Dengan tehnik
ini akan meningkatkan produktifitas programmer, dengan mengurangi waktu yang
dibutuhkan dalam penulisan (write), pengujian (test), penelusuran kesalahan
(debug) dan pemeliharan(maintain) suatu program. Pada pembahasan berikut ini
kita akan melihat bagaimana tehnik ini yang pendekatan yang dilakukan secara
modular, dapat membantu kita dalam membangun suatu program.
Dalam pemrograman secara modular, suatu program akan dipilah
kedalam sejumlah modul, dimana setiap modul menjalankan fungsinya sendiri.
6

7

Tentunya fungsi yang dijalankan oleh setiap modul sangat terbatas sesuai dengan
ruang lingkup yang akan dikerjakan. Dengan adanya sejumlah modul program ini
tentu saja kesalahan yang timbul dapat dikurangi. Setiap program tentu akan
memiliki program utamanya, yang kemudian akan memanggil sejumlah modulmodul yang ada.
Pemrograman secara modular ini dapat diimplementasikan dengan
penggunaan subroutine, suatu kelompok instruksi yang menjalankan suatu
pengolahan yang sifatnya terbatas seperti pencetakan, pembacaan untuk proses
input atau untuk proses penghitungan. Subroutine dapat dikelompokkan menjadi
internal subroutine dan external subroutine.
Sumber : Suarga., 2012, Algorit ma & Pemprograman , Andi Yogyakart a, Yogyakart a.
2.2 Pengembangan Sistem
Pengembangan sistem (System development) dapat berarti menyusun
suatu sistem yang baru untuk menggantikan sistem yang lama secara keseluruhan
atau memperbaiki sistem yang telah ada. Sistem yang lama perlu diperbaiki atau
diganti disebabkan karena beberapa hal, yaitu sebagai berikut :
1. Adanya permasalahan-permasalahan (Problems) yang timbul di sistem yang
lama. Permasalahan yang timbul dapat berupa : ketidakberesan pada sistem
yang lama dan menyebabkan sistem yang lama tidak dapat beroperasi sesuai
dengan yang diharapkan, pertumbuhan organisasi yang menyebabkan harus
disusunnya sistem yang baru.
2. Untuk meraih kesempatan-kesempatan (Opportunisties)
3. Adanya instruksi-instruksi (Directives)

8

Adanya permasalahan kesempatan dan instruksi, maka sistem yang baru
perlu dikembangkan untuk memecahkan permasalahan-permasalahan yang
timbul, meraih kesempatan-kesempatan yang ada atau memenuhi instruksiinstruksi yang diberikan.
Sedemikian telah dikembangkannya sistem yang baru, maka diharapkan
akan terjadi peningkatan-peningkatan di sistem yang baru. Peningkatan ini
berhubungan dengan kemudahan sistem itu sendiri, diantaranya :
1. Performance (Kinerja), Kinerja dapat diukur dari Throughput dan Response
Time. Throughput adalah jumlah dari pekerjaan yang dapat dilakukan suatu
saat tertentu. Response Time adalah rata-rata waktu yang tertunda diantara dua
transaksi.
2. Information (Informasi), peningkatan terhadap kualitas informasi yang
disajikan.
3. Economy

(Ekonomis),

peningkatan

terhadap

manfaat-manfaat

atau

keuntungan-keuntungan dan penurunan biaya yang terjadi.
4. Control (Pengendalian), peningkatan terhadap pengendalian untuk mendeteksi
dan memperbaiki kesalahan-kesalahan.
5. Efficiency (Efisisensi), peningkatan terhadap efisiensi operasi.
6. Service (Pelayanan), peningkatan terhadap pelayanan yang diberikan oleh
sistem.
Sumber : Kendall & Kendall.2003.Analisis dan Perancangan Sistem.Jakarta: PT.
Indeks Kelompok Gramedia.

9

2.3 Representasi Data
Data disimpan di dalam komputer pada main memory untuk diproses.
Sebuah karakter data disimpan dalam main memory menempati posisi 1 byte.
Komputer generasi pertama, 1 byte terdiri dari 4 bit, komputer generasi kedua, 1
byte terdiri dari 6 bit dan komputer generasi sekarang, 1 byte terdiri dari 8 bit.
Suatu karakter data yang disimpan di main memory diwakili dengan kombinasi
dari digit binary (binary digit atau bit). Suatu kode biner dapat digunakan untuk
mewakili suatu karakter.
Suatu komputer yang berbeda menggunakan kode biner yang berbeda
untuk mewakili suatu karakter. Komputer yang 1 byte terdiri dari 4 bit,
menggunakan kode binary yang berbentuk kombinasi 4 bit, yaitu BCD (Binary
coded decimal). Komputer yang menggunakan 6 bit untuk 1 bytenya,
menggunakan kode biner yang terdiri dari kombinasi 6 bit, yaitu SBCDIC
(Standard Binary Coded Decimal Interchange Code). Komputer yang terdiri dari 8
bit, menggunakan kode biner yang terdiri dari kombinasi 8 bit, yaitu EBCDIC
(extended Binary coded decimal interchange code) atau ASCII (American
standard code of information interchange).
2.3.1. BCD (Binary Coded Decimal)
BCD merupakan kode biner yang digunakan hanya untuk mewakili nilai
desimal saja, yaitu angka 0 sampai dengan 9. BCD menggunakan kombinasi dari
4 bit, sehingga sebanyak 16 (24 = 16) kemungkinan kombinasi yang dapat
diperoleh dan hanya 10 kombinasi yang dipergunakan.

10

Kode BCD yang orisinil sudah jarang dipergunakan untuk komputer
generasi sekarang, karena tidak dapat mewakili huruf atau simbol-simbol karakter
khusus.
2.3.2. SBCDIC (Standard Binary Coded Decimal)
SBCDIC merupakan kode biner perkembangan dari BCD. BCD dianggap
tanggung, karena masih ada 6 kombinasi yang tidak dipergunakan, tetapi tidak
dapat digunakan untuk mewakili karakter yang lainnya. SBCDIC menggunakan
kombinasi 6 bit, sehingga lebih banyak kombinasi yang bisa dihasilkan, sebanyak
64 kombinasi kode, yaitu 10 kode untuk digit angka, 26 kode untuk huruf
alphabet dan sisanya karakter-karakter khusus yang dipilih
Posisi bit di SBCDIC dibagi menjadi 2 zone, yaitu 2 bit pertama disebut
dengan alphabet position dan 4 bit berikutnya disebut dengan numeric bit
position.

2.3.3. EBCDIC (Extended Binary Coded Decimal)
EBCDIC terdiri dari kombinasi 8 bit yang memungkinkan untuk
mewakili karakter sebanyak 256 kombinasi karakter. Pada EBCDIC, high-order
bits atau 4 bit pertama disebut dengan zone bits dan low order bits atau 4 bit
kedua disebut dengan numeric bit.
2.3.4. ASCII (American Standard Code for Infor mation Interchange)
Kode ASCII yang standard menggunakan kombinasi 7 bit, dengan
kombinasi sebanyak 127 dari 128 kemungkinan kombinasi. Kode ASCII 7 bit ini
terdiri dari dua bagian, yaitu control characters dan information characters
merupakan karakter-karakter yang mewakili data.

11

2.4. Kriptografi
Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga
agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa
mengalami gangguan dari pihak ketiga. Menurut Bruce Scheiner dalam bukunya
"Applied Cryptography", kriptografi adalah ilmu pengetahuan dan seni menjaga
message-message agar tetap aman (secure).
Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada
peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang
mendasari kriptografi yakni:


Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap
rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak
penerima / pihak-pihak memiliki ijin). Umumnya hal ini dilakukan dengan cara
membuat suatu algoritma matematis yang mampu mengubah data hingga menjadi
sulit untuk dibaca dan dipahami.



Data

integrity

(keutuhan

data)

yaitu

layanan

yang

mampu

mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau
penambahan) data yang tidak sah (oleh pihak lain).


Authentication

(keotentikan)

yaitu

layanan

yang

berhubungan

dengan

identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data
maupun otentikasi keaslian data/informasi.


Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu
pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa
pesan tersebut berasal dirinya).

Berbeda dengan kriptografi klasik yang menitikberatkan kekuatan pada
kerahasiaan algoritma yang digunakan (yang artinya apabila algoritma yang digunakan
telah diketahui maka pesan sudah jelas "bocor" dan dapat diketahui isinya oleh siapa saja
yang mengetahui algoritma tersebut), kriptografi modern lebih menitikberatkan pada
kerahasiaan kunci yang digunakan pada algoritma tersebut (oleh pemakainya) sehingga

12

algoritma tersebut dapat saja disebarkan ke kalangan masyarakat tanpa takut kehilangan
kerahasiaan bagi para pemakainya.
Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi :


Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli).



Ciphertext

(C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil

enkripsi.


Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi ciphertext.



Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah ciphertext
menjadi plaintext, sehingga berupa data awal/asli.



Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses
enkripsi dan dekripsi.
Kriptografi itu sendiri terdiri dari dua proses utama yakni proses enkripsi dan

proses dekripsi. Seperti yang telah dijelaskan di atas, proses enkripsi mengubah plaintext
menjadi ciphertext (dengan menggunakan kunci tertentu) sehingga isi informasi pada
pesan tersebut sukar dimengerti.
plaintext

ciphertext
enkripsi

kunci enkripsi

plaintext
dekripsi

kunci dekripsi

Gambar 2.1 Diagram proses enkripsi dan dekripsi
Peranan kunci sangatlah penting dalam proses enkripsi dan dekripsi
(disamping pula algoritma yang digunakan) sehingga kerahasiaannya sangatlah
penting, apabila kerahasiaannya terbongkar, maka isi dari pesan dapat diketahui.

13

Secara matematis, proses enkripsi merupakan pengoperasian fungsi E (enkripsi)
menggunakan e (kunci enkripsi) pada M (plaintext) sehingga dihasilkan C
(ciphertext), notasinya :

E e(M) – C
Sedangkan untuk proses dekripsi, merupakan pengoperasian fungsi D (dekripsi)
menggunakan d (kunci dekripsi) pada C (ciphertext) sehingga dihasilkan M
(plaintext), notasinya :

Dd(C) = M
Sehingga dari dua hubungan diatas berlaku :
Dd(Ee(M)) = M
2.4.1 Algoritma Simetris
Algoritma simetris (symmetric algorithm) adalah suatu algoritma dimana
kunci enkripsi yang digunakan sama dengan kunci dekripsi sehingga algoritma ini
disebut juga sebagai single-key algorithm.
Plaintext

enkripsi

ciphertext

kunci enkripsi (K)

dekripsi

plaintext

kunci dekripsi (K)

Gambar 2.2 Diagram proses enkripsi dan dekripsi algoritma simetris

Sebelum melakukan pengiriman pesan, pengirim dan penerima harus
memilih suatu suatu kunci tertentu yang sama untuk dipakai bersama, dan kunci

14

ini haruslah rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini
disebut juga algoritma kunci rahasia (secret-key algorithm).
Kelebihan :


Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetrik.



Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem
real-time

Kelemahan :


Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan
kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen
kunci tersebut.



Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key distribution
problem”

2.4.2 Algoritma Asimetris
Algoritma asimetris (asymmetric algorithm) adalah suatu algoritma
dimana kunci enkripsi yang digunakan tidak sama dengan kunci dekripsi. Pada
algoritma ini menggunakan dua kunci yakni kunci publik (public key) dan kunci
privat (private key). Kunci publik disebarkan secara umum sedangkan kunci
privat disimpan secara rahasia oleh si pengguna. Walau kunci publik telah
diketahui namun akan sangat sukar mengetahui kunci privat yang digunakan.

Plaintext

enkripsi

ciphertext

kunci enkripsi (K1)

dekripsi

plaintext

kunci dekripsi (K2)

15

Gambar 2.3 Diagram proses enkripsi dan dekripsi algoritma
asimetris

Pada umumnya kunci publik (public key) digunakan sebagai kunci enkripsi
sementara kunci privat (private key) digunakan sebagai kunci dekripsi.
Kelebihan :


Masalah keamanan pada distribusi kunci dapat lebih baik



Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih
sedikit

Kelemahan :


Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris



Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang
dibandingkan dengan algoritma simetris.

2.4.3 Block Cipher dan Stream Cipher
Jika kita melihat berdasarkan ukuran serta format data yang akan diproses,
maka algoritma kriptografi dapat dibagi menjadi dua bagian yang utama yaitu:


Block Cipher, algoritma kriptografi ini bekerja pada suatu data yang
berbentuk blok/kelompok data dengan panjang data tertentu (dalam beberapa
byte), jadi dalam sekali proses enkripsi atau dekripsi data yang masuk
mempunyai ukuran yang sama.



Stream cipher, algoritma yang dalam operasinya bekerja dalam suatu pesan
berupa bit tunggal atau terkadang dalam suatu byte, jadi format data berupa
aliran dari bit untuk kemudian mengalami proses enkripsi dan dekripsi.

Pada algoritma penyandian blok (block cipher), plainteks yang masuk
akan diproses dengan panjang blok yang tetap yaitu n, namun terkadang jika

16

ukuran data ini terlalu panjang maka dilakukan pemecahan dalam bentuk blok yang
lebih kecil. Jika dalam pemecahan dihasilkan blok data yang kurang dari jumlah
data dalam blok maka akan dilakukan proses pading (penambahan beberapa bit).

2.5 Mode Operasi dalam Block Cipher
2.5.1 Electronic Codebook (ECB)
Pada mode operasi ECB sebuah blok input plaintext dipetakan secara statis ke
sebuah blok output ciphertext. Sehingga tiap plaintext yang sama akan menghasilkan
ciphertext yang selalu sama pula. Sifat- sifat dari mode operasi ECB : Sederhana dan
efisien,Memungkinkan implementasi parallel, Tidak menyembunyikan pola plaintext,
Dimungkinkan terjadi adanya active attack.
Skema dari mode operasi ECB dapat digambarkan sebagai berikut
:

Sender

Receiver

P1

E

C1

C1

E

P1

P1

E

C1

C1

E

P1

P1

E

C1

C1

E

P1

Gambar 2.4 Skema Mode Operasi ECB

17

2.5.2 Chiper Block Chaining (CBC)
Pada mode oparasi ini hasil enkripsi dari blok sebelumnya mempengaruhi
hasil enkripsi selanjutnya, atau enkripsi sebeluimnya menjadi feedback pada enkripsi
blok saat itu., jadi tiap blok ciphertext bergantung bukan hanya pada blok plaintext-nya
tapi bergantung pula pada blok-blok plaintext sebelumnya. Sehingga untuk plaintext
yang sama, belum tentu menghasilkan ciphertext yang sama pula. Skema dari mode
operasi CBC dapat digambarkan sebagai berikut :

IV

Sender

IV

Receiver

P1

E

C1

C1

E

P1

E

C1

C1

E

P1

P1

E

C1

C

E

P1

Gambar 2.5 Skema Mode Operasi CBC.

Mula-mula sebelum si pengirim hendak mengirimkan pesannya kepada si
penerima, dia terlebih dahulu harus meng-XOR plaintext dengan IV (initialization
vector) baru kemudian dienkripsi, setelah itu baru dikirimkan ciphertext pertamanya
kepada si penerima. Plaintext ke-2 pun demikian, harus di-XOR terlebih dahulu dengan

P1

18

ciphertext sebelumnya sebelum mengalami proses enkripsi baru kemudian
dikirimkan ke si penerima sebagai ciphertext 2 dan seterusnya. Sifat-sifat dari mode
operasi CBC : Lebih aman dari active attacks dibandingkan mode operasi ECB, Error
pada satu ciphertext dapat berakibat parah, Menutupi pola plaintext dan Implementasi
parallel belum diketahui.
Sumber : Munir, Rinaldi, 2007. kriptografi 2005, SPK IT Consulting
2.6 Sistem Operasi Android
Android adalah sistem operasi yang berbasis Linux untuk telepon seluler
seperti telepon pintar dan komputer tablet. Android menyediakan platform terbuka
bagi para pengembang untuk menciptakan aplikasi mereka sendiri untuk
digunakan oleh bermacam peranti bergerak. Awalnya, Google Inc. membeli
Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel.
Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance,
konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi,
termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia.
Pada saat perilisan perdana Android, 5 November 2007, Android
bersama Open Handset Alliance menyatakan mendukung pengembangan standar
terbuka pada perangkat seluler. Di lain pihak, Google merilis kode–kode Android
di bawah lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka
perangkat seluler.
Di dunia ini terdapat dua jenis distributor sistem operasi Android.
Pertama yang mendapat dukungan penuh dari Google atau Google Mail Services
(GMS) dan kedua adalah yang benar–benar bebas distribusinya tanpa dukungan
langsung Google atau dikenal sebagai Open Handset Distribution (OHD).

19

Pada Juli 2005, Google bekerjasama dengan Android Inc., perusahaan
yang berada di Palo Alto, California Amerika Serikat. Para pendiri Android Inc.
bekerja pada Google, di antaranya Andy Rubin, Rich Miner, Nick Sears, dan
Chris White. Saat itu banyak yang menganggap fungsi Android Inc. hanyalah
sebagai perangkat lunak pada telepon seluler. Sejak saat itu muncul rumor bahwa
Google hendak memasuki pasar telepon seluler. Di perusahaan Google, tim yang
dipimpin Rubin bertugas mengembangkan program perangkat seluler yang
didukung oleh kernel Linux. Hal ini menunjukkan indikasi bahwa Google sedang
bersiap menghadapi persaingan dalam pasar telepon seluler.
Sekitar September 2007 sebuah studi melaporkan bahwa Google
mengajukan hak paten aplikasi telepon seluler (akhirnya Google mengenalkan
Nexus One, salah satu jenis telepon pintar GSM yang menggunakan Android pada
sistem operasinya. Telepon seluler ini diproduksi oleh HTC Corporation dan
tersedia di pasaran pada 5 Januari 2010).
Pada 9 Desember 2008, diumumkan anggota baru yang bergabung dalam
program kerja Android ARM Holdings, Atheros Communications, diproduksi
oleh Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp,
dan Vodafone Group Plc. Seiring pembentukan Open Handset Alliance, OHA
mengumumkan produk perdana mereka, Android, perangkat bergerak (mobile)
yang merupakan modifikasi kernel Linux 2.6. Sejak Android dirilis telah
dilakukan berbagai pembaruan berupa perbaikan bug dan penambahan fitur baru.
Telepon pertama yang memakai sistem operasi Android adalah HTC
Dream, yang dirilis pada 22 Oktober 2008. Pada penghujung tahun 2009

20

diperkirakan di dunia ini paling sedikit terdapat 18 jenis telepon seluler yang
menggunakan Android.
Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini
dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice search
(pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email.
Pada pertengahan Mei 2009, Google kembali merilis telepon seluler dengan
menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5
(Cupcake). Terdapat beberapa pembaruan termasuk juga penambahan beberapa
fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video
dengan modus kamera, mengunggah 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.
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 untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri
yang dintegrasikan; CDMA / EVDO, 802.1x, VPN, Gestures, dan Text-to-speech
engine; kemampuan dial kontak; teknologi text to change speech (tidak tersedia
pada semua ponsel; pengadaan resolusi VWGA.
Pada 3 Desember 2009 kembali diluncurkan ponsel Android dengan versi
2.0/2.1 (Eclair), perubahan yang dilakukan adalah pengoptimalan hardware,
peningkatan Google Maps 3.1.2, perubahan UI dengan browser baru dan

21

dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2
MP, digital Zoom, dan Bluetooth 2.1.
Untuk bergerak cepat dalam persaingan perangkat generasi berikut,
Google melakukan investasi dengan mengadakan kompetisi aplikasi mobile
terbaik (killer apps - aplikasi unggulan). Kompetisi ini berhadiah $25,000 bagi
setiap pengembang aplikasi terpilih. Kompetisi diadakan selama dua tahap yang
tiap tahapnya dipilih 50 aplikasi terbaik.
Semakin berkembangnya dan semakin bertambahnya jumlah handset
Android, semakin banyak pihak ketiga yang berminat untuk menyalurkan aplikasi
mereka kepada sistem operasi Android. Aplikasi terkenal yang diubah ke dalam
sistem operasi Android adalah Shazam, Backgrounds, dan WeatherBug. Sistem
operasi Android dalam situs Internet juga dianggap penting untuk menciptakan
aplikasi Android asli, contohnya oleh MySpace dan Facebook.
Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahanperubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan
Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat,
intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat
kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card,
kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi
Android Market.
Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan.
Perubahan-perubahan umum yang didapat dari Android versi ini antara lain
peningkatan kemampuan permainan (gaming), peningkatan fungsi copy paste,
layar antar muka (User Interface) didesain ulang, dukungan format video VP8 dan

22

WebM, efek audio baru (reverb, equalization, headphone virtualization, dan bass
boost), dukungan kemampuan Near Field Communication (NFC), dan dukungan
jumlah kamera yang lebih dari satu.
Android Honeycomb dirancang khusus untuk tablet. Android versi ini
mendukung ukuran layar yang lebih besar. User Interface pada Honeycomb juga
berbeda karena sudah didesain untuk tablet. Honeycomb juga mendukung multi
prosesor dan juga akselerasi perangkat keras (hardware) untuk grafis. Tablet
pertama yang dibuat dengan menjalankan Honeycomb adalah Motorola Xoom.
Perangkat tablet dengan platform Android 3.0 akan segera hadir di Indonesia.
Perangkat tersebut bernama Eee Pad Transformer produksi dari Asus. Rencana
masuk pasar Indonesia pada Mei 2011.
Diumumkan pada tanggal 19 Oktober 2011, membawa fitur Honeycomb
untuk smartphone dan menambahkan fitur baru termasuk membuka kunci dengan
pengenalan wajah, jaringan data pemantauan penggunaan dan kontrol, terpadu
kontak jaringan sosial, perangkat tambahan fotografi, mencari email secara
offline, dan berbagi informasi dengan menggunakan NFC.
Android terdiri dari sebuah kernel berbasis kernel Linux, dengan
middleware, library dan API yang ditulis dalam C dan perangkat lunak aplikasi
yang berjalan pada kerangka aplikasi yang mencakup Java-kompatibel library
didasarkan pada Apache Harmony. Android menggunakan mesin Dalvik virtual
dengan just-in-time untuk menjalankan kompilasi Dalvik dex-kode (Dalvik
executable), yang biasanya diterjemahkan dari Java bytecode.

23

Platform perangkat keras utama untuk Android adalah arsitektur ARM.
Ada dukungan untuk x86 dari proyek Android x86 dan Google TV menggunakan
versi x86 khusus Android.
Android dan produsen ponsel Android telah menjadi target banyak
tuntutan hukum paten. Pada tanggal 12 Agustus 2010, Oracle menggugat Google
atas mengklaim pelanggaran hak cipta dan paten yang berhubungan dengan
bahasa pemrograman Java. Secara khusus, referensi pelanggaran klaim paten
Amerika Serikat tujuh paten termasuk AS 5.966.702 "Metode dan aparatus untuk
pra-pengolahan dan packaging kelas file ", dan US 6910205" fungsi Interpreting
memanfaatkan hibrida dari instruksi mesin virtual dan asli ".
Sebagai tanggapan, Google telah membuat baris pertahanan, diantaranya
counter claiming bahwa Android tidak melanggar paten Oracle atau hak cipta,
paten bahwa Oracle adalah tidak valid, dan pertahanan lainnya. Mereka
mengatakan bahwa Android didasarkan pada Apache Harmony, implementasi
yang bersih dari perpustakaan kelas Java, dan sebuah mesin virtual dikembangkan
sendiri disebut Dalvik.
Microsoft juga menggugat beberapa produsen perangkat Android untuk
pelanggaran paten, dan mengumpulkan biaya paten lisensi dari orang lain. Pada
Oktober 2011 Microsoft mengatakan mereka telah menandatangani perjanjian
lisensi dengan sepuluh produsen perangkat Android, terhitung 55% dari
pendapatan seluruh dunia untuk perangkat Android. Ini termasuk Samsung dan
HTC.
Google telah secara terbuka menyatakan ketidaksukaan untuk lansekap
paten saat ini di Amerika Serikat, menuduh Apple, Oracle dan Microsoft berusaha

24

menurunkan Android melalui litigasi paten, daripada berinovasi dan bersaing
dengan produk dan jasa yang lebih baik. Pada bulan Agustus 2011, Google mulai
proses pembelian Mobility Motorola untuk US $ 12,5 miliar yang dilihat sebagian
sebagai tindakan defensif untuk melindungi Android, karena Motorola Mobilitas
memegang lebih dari 17.000 paten. Pada bulan Desember 2011 Google
mengakuisisi di wilayah seribu paten dari IBM, yang dapat membantu dalam
pertahanan paten terhadap Oracle.

2.7 Perangkat Pemrograman Android
Android menggunakan Dalvik Virtual Machine untuk menjalankan
program APK yang terinstall. Dalvik yang di-modifikasi google dibuat
berdasarkan Java Virtual Machine milik Sun/ Oracle. Itulah sebabnya untuk
membuat program untuk android, kita menggunakan Java sebagai cara yang
paling mudah. Bagi yang punya pengalaman pemrograman C, bisa menggunakan
Android NDK, hasilnya lebih cepat karena bersifat native, tapi sangat rumit.
Agar dapat membuat program yang berbasis android, berikut ini adalah
langkah-langkah yang diperlukan :
a. Instalasi Java Development Kit
b. Instalasi Eclipse Indigo
c. Instalasi Android SDK

25

Gambar 2.6. Instalasi Android SDK
1. Buka folder Android SDK
2. Klik program SDK Manager
3. Klik bagian Available packages
4. Kita akan menggunakan SDK Froyo, karena versi ini paling banyak
digunakan HP saat ini. Maka minimal yg dipilih adalah :
- SDK Platform Android 2.2, API 8, revision paling baru
- Samples for SDK API 8
- Google APIs, Adndroid API 8
- Android SDK Tools
- Android SDk Platform-tools
e. Kemudian install selected
f. Setelah selesai, hasilnya ada di Installed packages

26

Gambar 2.7. Form Opsi Untuk Android Virtual Device
klik virtual devices
- klik New…
- Beri nama, pilih target dengan Android 2.2, API 8
- SD Card Size, dibuat kecil, misalkan 16 MB
- Skin, pilih built-in, yang kecil saja, misalkan resolusi WQVGA400
- Kemudian Create AVD
- Setelah jadi, pilih device tadi, Klik start. Maka tampilan seperti HP Android
akan keluar
5. Install Plugin ADT di Eclipse. Caranya:

27

Gambar 2.8. Form Instalasi ADT
a. klik Help > Install New Software….
b. klik Add, masukkan ini di bagian Location:
https://dl-ssl.google.com/android/eclipse/
klik OK
Atau, apabila kita tidak punya koneksi internet langsung, kita bisa mendownload
ADT terlebih dahulu di http://developer.android.com/sdk/eclipse-adt.html. Pilih
archive, kemudian pilih file zip hasil kita download.
c. Pilih semua Development Tools yang ada
d. Klik Next, dan Accept TOS yang ada
e. Finish, Tunggu sampai selesai download

28

f. Setelah menutup dan membuka kembali, akan keluar gambar android di toolbar
6. Menghubungkan Android SDK dengan Eclipse

Gambar 2.9. Form Preferences Pada Eclipse

a. Klik window, Android SDK & AVD Manager
b. Jangan centang send usage, klik Proceed
c. Buka window -> preferences
d. Pilih bagian Android
e. Browse SDk Location, Kemudian pilih folder tempat Android SDK, Apply
f. Setelah keluar jenis Android SDK yang terinstall, klik OK

29

2.8 Pemrograman Android
Android dibangun di atas kernel Linux dan mesin, maju maya
dioptimalkan untuk yang Java. Kedua teknologi sangat penting untuk Android.
Komponen kernel Linux tumpukan Android menjanjikan kelincahan dan
portabilitas untuk mengambil keuntungan dari berbagai perangkat keras pilihan
untuk masa depan Android yang dilengkapi telepon. Android Java lingkungan
adalah kunci: membuat Android sangat mudah diakses untuk programmer karena
kedua jumlah pengembang perangkat lunak Java dan lingkungan yang kaya
pemrograman

Java

yang

ditawarkan.

Handphone

platform

yang

telah

mengandalkan kurang dapat diakses pemrograman lingkungan telah melihat
adopsi terhambat karena kurangnya aplikasi sebagai pengembang yang akhirnya
menghindar dari platform.
Aplikasi mobile, menuntut kemudahan intuitif penggunaan. Sementara
konsumen mungkin membeli perangkat berdasarkan fitur keren disebutkan dalam
materi pemasaran, instruksi manual hampir tidak pernah disentuh. Kemudahan
penggunaan dari UI dari komputasi lingkungan sangat berhubungan dengan
penetrasi pasarnya. UIS juga refleksi model akses platform data, jadi jika model
navigasi dan data yang bersih dan intuitif, UI akan mengikutinya. Bagian ini
memperkenalkan konsep Intents dan IntentFilters, navigasi inovatif Android dan
mekanisme memicu. Intents dan IntentFilters membawa "klik" paradigma ke inti
dari aplikasi mobile menggunakan (dan pengembangan!) untuk platform Android.
Intent adalah sebuah deklarasi yang membutuhkan.
IntentFilter adalah sebuah deklarasi kemampuan dan minat dalam menawarkan
bantuan untuk mereka yang membutuhkan.

30

Intent Sebuah terdiri dari sejumlah potongan informasi yang menjelaskan
tindakan yang diinginkan atau jasa. Bagian ini membahas tindakan yang diminta
dan, umum, data yang menyertai aksi yang diminta.
Sebuah IntentFilter mungkin generik atau khusus sehubungan dengan Intents
tersebut untuk menawarkan suatu layanan.
Atribut aksi Intent adalah biasanya sebuah kata kerja, misalnya: VIEW,
PILIH, atau EDIT. Sejumlah built-in tindakan Intent didefinisikan sebagai
anggota kelas Intent. Pengembang aplikasi dapat membuat tindakan baru juga.
Untuk melihat sepotong informasi, aplikasi akan menggunakan tindakan Intent
berikut : android.content.Intent.ACTION_VIEW
Komponen data Intent yang dinyatakan dalam bentuk URI dan dapat
hampir setiap bagian dari informasi, seperti catatan kontak, lokasi website, atau
referens ke klip media. Tabel 1.1 berisi daftar beberapa contoh URI.
Tabel 2.1. Contoh Daftar URI

IntentFilter mendefinisikan hubungan antara Intent dan aplikasi.
IntentFilters dapat spesifik untuk bagian data dari Intent, porsi tindakan, atau
keduanya. IntentFilters juga mengandung bidang yang dikenal sebagai kategori.
Kategori

A

membantu

mengklasifikasikan

tindakan.

Sebagai

contoh,

CATEGORY_LAUNCHER kategori bernama menginstruksikan Android yang
contentnya berisi IntentFilter harus terlihat dalam aplikasi utama peluncur atau
layar awal.

31

Ketika sebuah Intent dioperasikan, sistem mengevaluasi Activitys
tersedia, Jasa, dan terdaftar BroadcastReceivers dan berita yang dikirimkan Intent
kepada penerima yang paling tepat. Gambar 2.7 menggambarkan hubungan ini
antara intents, IntentFilters, dan BroadcastReceivers.

Gambar 2.10. Cara Kerja Distribusi Intent Pada Aplikasi Android (Biasanya
Terdapat Dalam File Manifest.Xml)
IntentFilters sering didefinisikan dalam AndroidManifest.xml sebuah
aplikasi dengan tag. File AndroidManfest.xml dasarnya adalah
aplikasi file descriptor, dibahas kemudian dalam bab ini.
Sebuah tugas umum pada perangkat mobile adalah pencarian dari record
kontak tertentu untuk dengan tujuan untuk memulai panggilan, mengirim SMS
(Short Message Service), atau mencari sebuah alamat siput-mail ketika Anda
sedang berdiri dalam antrean di lingkungan pak-andship menyimpan. Seorang
pengguna mungkin menginginkan untuk melihat suatu informasi yang spesifik,
misalnya kontak catatan bagi pengguna 1234. Dalam hal ini, tindakan tersebut
ACTION_VIEW dan data adalah spesifik hubungi identifier catatan. Hal ini

32

dilakukan dengan menciptakan sebuah Intent dengan tindakan diatur untuk
ACTION_VIEW dan URI yang mewakili orang tertentu yang menarik. Berikut
adalah contoh dari URI untuk digunakan dengan android.content.Intent tersebut.
ACTION_VIEW tindakan : content://contacts/people/1234
Berikut adalah contoh dari URI untuk mendapatkan daftar semua kontak, secara
umum : content://contacts/people
Berikut ini adalah potongan kode menunjukkan instruksi Picking dari record yang
dihubungi :
Intent

myIntent

=

new

Intent(Intent.ACTION_PICK,

Uri.parse("content://contacts/people"));
startActivity(myIntent);
Dalam android sebuah aplikasi mungkin atau mungkin tidak memiliki
UI. Jika memiliki UI, ia akan memiliki minimal satu aktivitas. Cara termudah
untuk memikirkan sebuah Aktivitas Android adalah untuk menghubungkan layar
terlihat ke activity, karena lebih sering daripada tidak ada hubungan satu-ke-satu
antara sebuah kegiatan dan layar UI. Sebuah aplikasi Android akan sering
mengandung lebih dari satu aktivitas.
Dalam activity setiap menampilkan UI dan menanggapi peristiwa-sistem dan
user-dimulai. Pada saat activity mempekerjakan satu atau lebih views untuk
menyajikan e