IMPLEMENTASI ALGORITMA CAESAR CIPHER ROT13 DAN BASE64 UNTUK ENKRIPSI DAN DEKRIPSI PESAN SMS PADA HANDPHONE BERBASIS ANDROID
Naskah Publikasi
diajukan oleh Andy Nugroho 07.11.1456
Kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA 2012
NASKAH PUBLIKASI
CAESAR CIPHER ROT13 ALGORITHM IMPLEMENTATION AND BASE64 FOR ENCRYPTION AND DECRYPTION MESSAGE ON ANDROID BASED HANDPHONE IMPLEMENTASI ALGORITMA CAESAR CIPHER ROT13 DAN BASE64 UNTUK ENKRIPSI DAN DEKRIPSI PESAN SMS PADA HANDPHONE BERBASIS ANDROID
Andy Nugroho Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA
Abstract In this era, information technology has develop rapidly. The needs of information has become crucial for many people. Every information that circulate has different level of secrecy and has different impact to those who are receiving the information. The impact is that wheter the accurate or inaccurate of the information receive from the message sender to the recipient. In this sort of things, kryptography has important role in protecting those information. Kryptography is a study of encryption and decryption of a message. Encryption is used to convert or to change data into certain kodes randomly in purpose in which the information which are kept or send via network (i.e internet) won't be able to be read by anyone except the people who has the right over those information. Decryption is the opposite of encryption. The combination of caesar cipher ROT13 algorithm and base64 is hopped to be able to support the safety of the message which are encrypted. Caesar cipher ROT13 algorithm is a subtitution code by doing a friction as much as k=13, and base64 is an encoding method which represent biner data in ascii string format by translating it to 64 representation .In implementing those two algorithm, the writer use java language programer which is implemented in android-based handphone. Key Word : Android, Base64, CaesarCipher ROT13, SMS, Encryption, Decryption, Encoding.
1.
Pendahuluan Perkembangan teknologi informasi yang ada saat ini mampu menghasilkan
perangkat keras yang mempermudah komunikasi, telephone seluler adalah salah satu dari sekian perangkat keras komunikasi yang sering digunakan. Dalam menjalankan kinerjanya sebagai perangkat keras komunikasi, telephone seluler mempunyai beberapa fungsi seperti Short Message Service (SMS), Multimedia Message Service (MMS), video phone, transfer data, perangkat lunak pemutar audio (mp3) dan lain – lain. Salah satu dari beberapa fungsi telephone seluler adalah SMS. SMS merupakan fungsi dari telephone seluler yang digunakan untuk mengirim atau menerima pesan teks. Pada proses pengiriman dan penerimaan pesan, diperlukan suatu media transmisi, media transmisi tersebut salah satunya berupa jalur komunikasi Global System for Mobile Communication (GSM). Proses pengiriman dan penerimaan pesan sangat rentan terhadap upaya pencurian, penyadapan, pembajakan, pemerasan dan banyak hal lain terhadap suatu informasi. Banyak kasus penyadapan yang terjadi di Indonesia, salah satu contoh nyata, adalah penyadapan yang dilakukan oleh pihak kepolisian dan provider TELKOM kepada Metta Dharmasaputra ( wartawan ) dan Vincentius Amin Sutanto ( mantan karyawan ASIAN GIRI ) 1
selaku saksi kunci kasus penggelapan pajak dan pencucian uang PT. ASIAN GIRI . Dari kasus tersebut disimpulkan, masih terdapatnya kelemahan dalam menjaga kerahasiaan suatu pesan terutama dari pihak operator selaku penyedia layanan komunikasi. Karena beberapa hal diatas, penerapan kriptografi sangat dibutuhkan dalam menjaga kerahasiaan suatu pesan. Kriptografi adalah ilmu untuk menjaga kerahasiaan informasi dari aspek –aspek, yang dapat mengancam keamanan suatu informasi dengan metode dan teknik matematika tertentu. Dengan berprinsip pada definisi enkripsi super yaitu, suatu konsep enkripsi yang menggunakan kombinasi dari dua atau lebih teknik subtitusi dan permutasi kode, untuk mendapatkan suatu algoritma yang lebih handal (sulit terpecahkan). Maka penulis mencoba untuk menggabungkan konsep kriptografi klasik berupa fungsi yang menggunakan kode Caesar Cipher ROT13, ROT13 adalah subtitusi kode dengan melakukan pergeseran sebanyak k=13. Digabungkan dengan teknik algoritma
1
http://www.tempo.co/read/news/2007/09/14/055107641/Dewan-Pers-Kecam-Penyadapan-TeleponWartawan-Tempo
encoding karakter base64. Base64 adalah sebuah encoding karakter yang mewakili data biner dalam format string ASCII dengan menerjemahkannya ke dalam representasi 64. Berdasar pada uraian diatas, penulis mencoba mengimplementasikan kedua algoritma tersebut didalam satu aplikasi perangkat lunak dan sekaligus menjadi bahan penelitian skripsi dengan judul “IMPLEMENTASI ALGORITMA CEASAR CIPHER ROT13 DAN BASE64 UNTUK ENKRIPSI DAN DEKRIPSI PESAN PADA HANDPHONE BERBASIS ANDROID”. 2.
Landasan Teori
2.1
Short Message Service (SMS) SMS merupakan salah satu layanan komunikasi berbasis tulisan (teks) dengan
media komunikasi ponsel. Pesan teks yang biasa digunakan berupa huruf, angka, atau karakter alfanumerik. Satu pesan teks biasanya berkapasitas 160 karakter (7 bit). SMS dihantarkan pada channel signal GSM (Global System for Mobile Communication), GSM merupakan
suatu
spesifikasi
jaringan
yang
diaktifkan
oleh
ETSI
(European
Telecommunications Standars Institute) dan berjalan pada scope 3GPP. Sebuah SMS tidak hanya terdiri dari pesan saja saat dikirimkan, tetapi berisi beberapa instruksi yang menunjang SMS tersebut sampai pada tujuan pesan. Adapun model interkoneksi sistem SMS pada jaringan GSM, dapat dilihat pada gambar 2.1 berikut.
Header
Instruction to SIM Instruction to headset Instruction to SMSC Instruction to air interface Gambar 2.1 Model interkoneksi sistem SMS
2.2
Pengertian Kriptografi Kriptografi berasal dari bahasa Yunani, crypto dan graphia, crypto berarti rahasia
dan graphia berarti tulisan, atau bisa diartikan sebagai seni dalam menjaga kerahasiaan suatu pesan (berupa data atau informasi), yang mempunyai arti atau nilai, dengan cara menyamarkannya (mengacak) menjadi bentuk yang tidak beraturan menggunakan algoritma tertentu. 2.2.1
Komponen – Komponen Kriptografi 1. Enkripsi, merubah teks yang dapat dibaca menjadi teks acak yang tidak dapat dibaca. 2. Dekripsi, merubah teks acak yang tidak terbaca menjadi teks yang dapat dibaca. 3. Kunci, dapat berupa simbol, karakter yang digunakan untuk melakukan enkripsi dan dekripsi. 4. Ciphertext, merupakan suatu pesan yang telah melalui proses enkripsi. 5. Plaintext, merupakan suatu pesan yang telah melalui proses dekripsi. 6. Pesan, dapat berupa data maupun informasi yang dikirim melalui kurir, media komunikasi data, atau yang disimpan didalam media perekaman. 7. Cyptanalysis, kriptanalisis merupakan ilmu untuk mendapatkan teks-asli tanpa harus mengetahui kunci yang sah secara wajar.
2.2.2
Algoritma Kriptografi Berdasarkan penyebaran kuncinya, algoritma kriptografi dibagi menjadi dua bagian.
Yaitu : 1.
Algoritma Simetri Algoritma Simetri adalah suatu algoritma yang menggunakan kunci enkripsi,
sama dengan kunci dekripsi sehingga algoritma ini disebut juga sebagai single-key algorithm. 2.
Algoritma Asimetri Algoritma Asimetri adalah suatu algoritma yang menggunakan kunci enkripsi
tidak sama dengan kunci dekripsi. Algoritma ini menggunakan dua kunci yakni kunci publik (public key) dan kunci privat (private key).
2.2.3
Caesar Cipher ROT13 Caesar Cipher ROT13 adalah fungsi yang menggunakan kode Kaisar dengan
pergeseran k=13. ROT13 didesain untuk keamanan pada sistem operasi UNIX yang sering digunakan pada forum on-line, berfungsi untuk menyelubungi isi artikel sehingga hanya orang yang berhak yang dapat membacanya . Sistem enkripsi ROT13 kali ini dengan menggeser maju karakter sebanyak 13 kali, terhitung 1 adalah karakter didepannya, dan pergeseran karakter berdasarkan urutan karakter pada tabel ASCII. Sebagai dekripsinya, dengan menggeser mundur karakter sebanyak 13 kali.
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
„
a
b
c
d
e
f
g
h
i
j
k
L
Gambar 2.2 Alur Pergeseran k = 13, Berdasarkan Tabel ASCII
Ciphertext
A
N
D
I
N
[
Q
V
Plaintext
Gambar 2.3 Hasil Pergeseran k =13
Gambar 2.4 Urutan Karakter ASCII
2.2.4
Base64 Base64 sebenarnya bukanlah algoritma enkripsi, melainkan suatu metoda
encoding (penyandian) terhadap data binary ASCII menjadi format 6-bit karakter. Base64 digunakan ketika ada kebutuhan menggabungkan, menyimpan, atau mentransfer data binary dengan data teks. Hal ini untuk memastikan bahwa data tetap utuh tanpa perubahan selama pengiriman. Pada umumnya base64 digunakan pada beberapa aplikasi yaitu email melalui MIME ( Multipurpose Internet Mail Extention ), dan penyimpanan data yang 2
kompleks dalan XML . Berikut cara kerja base64 dalam melakukan penyandian. Contoh mudah melakukan encoding kata ANDI: 1. Kelompokkan pesan setiap 3 karakter (3 byte = 24 bit). Bila terdapat sisa di akhir, tambahkan (padding) bit 0 dengan karakter padding “=”sehingga panjangnya genap 24 bit. A
N
01000001
D
01001110
I
01000100
01001001
AND
I + 0 + 0 (0 padding)
010000 010100 111001 000100
010010 010000 000000 000000 6
2. Setiap kelompok sekarang mempunyai 2 kemungkinan susunan bit dan 6
terdapat 2 = 64 karakter, tersedia untuk mempresentasikan 6 bit ini. Lalu petakan setiap kelompok dengan karakter yang terdapat dalam tabel base64. 010000 010100 111001 000100 Q
U
5
010010 010000 000000 000000
E
S
Q
=
=
Selanjutnya contoh melakukan decoding QU5ESQ= =, 1. Ubah masing-masing karakter menjadi 6 – bit biner. Q
U
5
E
S
Q
=
=
010000 010100 111001 000100 010010 010000 000000 000000
2
Adriansyah, Yusuf. 2010. Enkripsi Sederhana dengan Base64 dan Subtitusi Monoalfabetik ke Huruf Non-Latin. Makalah Mahasiwa Teknologi Bandung.
2. Setelah itu, set 6 bit diubah menjadi 8 bit string. Lalu petakan setiap kelompok dengan karakter yang terdapat dalam tabel ASCII. 01000001 01001110 01000100 01001001 00000000 00000000 A
N
D
I
(Padding tidak digunakan lagi)
Gambar 2.5 Urutan Karakter Base64 Sumber : ( Yusuf, 2010 )
2.2.5
Java Java merupakan bahasa pemrograman yang dikembangkan menggunakan bahasa
C, oleh James Gosling dan Patrick Naughton dalam suatu proyek dari Sun Microsystem 3
pada tahun 1991 . Java atau sering disebut Java Software Development Kit (JSDK) oleh Sun Microsystem, merupakan generasi kedua dari java platform (generasi awalnya adalah Java Development Kit).Java berjalan pada sebuah mesin interpreter yang diberi nama Java Virtual Machine (JVM). Java Virtual Machine (JVM) merupakan mesin virtual berupa aplikasi yang digunakan untuk menjalankan kode Java (bytecode). JVM inilah yang membuat Java menjadi platform independent. JVM bisa berbeda, tergantung pada platform yang akan digunakan. 2.2.6
Android Android adalah sistem operasi berbasis linux untuk kebutuhan perangkat mobile,
seperti smartphone atau komputer tablet. Pada juli 2005, Google bekerjasama dengan Android Inc. Perusahaan yang berada di Palo Alto, California Amerika Serikat. Para pendiri Android Inc, bekerja pada Google, diantaranya Andy Rubin, Rich Miner, Nick Sears, dan Chris White. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, 4
termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia . 2.2.7
Rekayasa Perangkat Lunak Rekayasa perangkat lunak adalah suatu disiplin ilmu yang membahas semua
aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari pengguna kebutuhan, desain, pengkodean, pengujian, sampai pemeliharaan sistem setelah digunakan. Terdapat empat kegiatan dasar yang umum bagi semua proses perangkat lunak, kegiatan tersebut adalah 1.
5
:
Penspesifikasian perangkat lunak, merupakan fungsionalitas perangkat lunak dan batasan operasinya harus didefinisikan.
3 4 5
http://id.wikipedia.org/wiki/Java http://id.wikipedia.org/wiki/Android_(sistem_operasi)
Sommerville, Ian. Software Engineering (Rekayasa Perangkat Lunak) Edisi 6 Jilid I. Penerbit ERLANGGA: Jakarta.
2.
Perancangan dan implementasi perangkat lunak, merupakan perangkat lunak yang memenuhi persyaratan harus dibuat.
3.
Validasi perangkat lunak, adalah perangkat lunak yang harus divalidasi untuk menjamin bahwa perangkat lunak bekerja sesuai dengan apa yang diinginkan pelanggan.
4.
Evolusi perangkat lunak, merupakan perangkat lunak yang harus bisa berkembang untuk menghadapi kebutuhan pelanggan yang berubah.
3.
Analisis dan Perancangan Sistem
3.1
Area Aplikasi Perangkat lunak ini dinamakan BSecure, karena terdiri dari algoritma caesar cipher
ROT 13 dan algoritma encoding base64. Pesan SMS akan dienkripsi oleh handphone pengirim dengan memilih menu encrypt pada perangkat lunak BSecure, dengan kondisi, handphone berbasis sistem android dan telah terinstall perangkat lunak Bsecure. Pada handphone penerima, pesan akan ditampilkan pada kondisi terenkripsi. Untuk dapat membaca pesan tersebut, penerima pesan bisa memilih menu decrypt pada perangkat lunak BSecure, tentunya dengan perangkat keras atau handphone yang berbasis android dan telah terinstall perangkat lunak BSecure. Berikut adalah gambar area aplikasi yang akan dikembangkan.
Terima SMS
Plainteks SMS
Enkripsi
Cipherteks SMS
SMS Center Dekripsi
Cipherteks SMS
Kirim
Plainteks SMS
Gambar 3.1 Alur Kerja BSecure
3.2
Perancangan Sistem Perancangan sistem yang digunakan untuk membangun perangkat lunak BSecure
adalah UML (Unified Modelling Language). UML merupakan bahasa grafis untuk mendokumentasikan, menspesifikasikan dan membangun sistem perangkat lunak. 3.2.1
Use Case Diagram Diagram use case (use-case diagram) merupakan salah satu diagram untuk
menggambarkan dan mendokumentasikan perilaku sebuah sistem. 3.2.2
Activity Diagram Untuk
menentukan
aktifitas
antara
suatu
objek
dengan
objek
lainnya,
menggunakan aktifity diagram. Salah satu tindakan dari aktivity diagram adalah mendokumentasikan tindakan utama terhadap suatu obyek, serta bagaimana suatu sistem mengambil keputusan. 3.2.3
Class Diagram Diagram kelas merupakan diagram paling umum dipakai di semua pemodelan
berorientasi objek, bisa memberikan pandangan secara luas dari suatu sistem dengan menunjukkan kelas-kelasnya, hubungan antar kelas, atribut-atribut serta operasi-operasi pada kelas-kelas. 3.2.4
Sequence Diagram Sequence diagram mendeskripsikan bagaimana entitas dalam system berinteraksi,
termasuk urutan langkah-langkah yang terjadi untuk menyelesaikan suatu proses. 3.3
Alur Perhitungan Enkripsi dan Dekripsi Perangkat Lunak BSecure Pesan yang akan diproses adalah Andy. Berikut adalah proses enkripsi BSecure:
Pertama kali pesan akan digeser maju sebanyak 13 kali dan pergeseran berdasar pada urutan tabel ASCII.
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
„
A
b
c
d
e
f
g
h
i
j
k
L
Gambar 3.2 Pergeseran enkripsi ROT 13
Ciphertext
A
N
D
Y
N
[
Q
f
Plaintext
Gambar 3.3 Hasil pergeseran enkripsi ROT13 Setelah dilakukan pergeseran, pesan dilanjutkan dengan mengenkripsinya menggunakan encode karakter base64. Berikut perhitungannya: 1.
Mengelompokkan pesan setiap 3 karakter (3 byte = 24 bit). Jika terjadi sisa karakter pada akhir, tambahkan (padding) bit 0 sehingga panjangnya genap 24 bit.
2.
N
[
Q
|
01001110
01011011
01010001
0
| 01100110
0
00000000
00000000
Kemudian pecah kelompok 24 bit ( 3 karakter) menjadi 6 bit. 010011 100101 101101 010001
3.
f
011001 100000 000000 000000
Lalu petakan setiap kelompok 6 bit dengan karakter yang terdapat pada tabel base64, karakter yang dipakai adalah huruf latin A-Z, huruf kecil a-z dan angka 0-9. Semua berjumlah 62. Dua sisanya memakai simbol + dan / sehingga totalnya 64.
Maka dihasilkan karakter acak berikut ini: 010011 100101 101101 010001 011001 100000 000000 000000 T
l
t
R
Z
g
=
=
Untuk mendapatkan pesan asli dari karakter acak yang sudah di enkripsi maka dilakukan dengan cara mendekripsinya. Berikut adalah proses dekripsi BSecure: 1.
Ubah karakter acak tadi menjadi 6 bit berdasarkan tabel base64. T
l
t
R
Z
g
=
=
010011 100101 101101 010001 011001 100000 000000 000000 2.
Kelompokkan tiap set 6 bit tadi menjadi 24 bit, lalu pecah menjadi 3 kelompok, satu kelompok menjadi 8 bit. 010011100101101101010001
| 011001100000000000000000
01001110 01011011 01010001 3.
01100110 00000000 00000000
Setelah menjadi satu set 8 bit, petakan tiap kelompok berdasar pada tabel ASCII. 01001110 01011011 01010001 01100110 N
[
Q
00000000 00000000
f
( Padding bit tidak dipakai)
Karakter hasil decode base64 langsung di geser kembali oleh ROT13. Berikut pergesarannya:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
„
A
b
c
d
e
f
g
h
i
j
k
L
Gambar 3.4 Pergeseran dekripsi ROT13
Plaintext
N
[
Q
f
A
N
D
Y
Ciphertext
Gambar 3.5 Hasil dekripsi ROT 13
Gambar 3.5 terdapat plaintext yang merupakan karakter asli dari pesan yang sudah diacak sebelumnya.
3.4
Perancangan Antar Muka Sistem Rancangan antar muka merupakan tampilan yang digunakan untuk memberikan
gambaran bagaimana perangkat lunak akan dibangun, serta tata cara pengguna menggunakan perangkat lunak. 4.
Implementasi dan Pembahasan Implementasi
sistem
merupakan
tahap
meletakkan
sistem
yang
baru
dikembangkan, untuk dapat mengetahui apakah sistem dapat dioperasikan sesuai dengan tujuan dan mengetahui kesesuaian dengan rancangan. 4.1
Pengujian Perangkat Lunak Pengujian perangkat lunak dibutuhkan untuk mengetahui kelemahan dan
kelebihan perangkat lunak dengan mensimulasikan proses pengiriman dan penerimaan pesan SMS yang terenkripsi menggunakan emulator sistem.
4.1.1
Pengujian Pengiriman Pesan Terenkripsi Pada pengujian ini, memperilhatkan bahwa perangkat lunak mampu melakukan
enkripsi pesan dan menampilkan output hasil pesan yang sudah teracak.
Gambar 4.1 Menu Utama BSecure
4.1.2
Pengujian Penerimaan Pesan Terdekripsi Pada pengujian ini, memperlihatkan bahwa perangkat lunak mampu menampilkan
pesan masuk yang telah terenkripsi maupun tidak terenkripsi.
Gambar 4.2 Tampilan dekripsi pesan masuk 4.2
Fungsional Sistem Secara fungsional , sistem sudah dapat bekerja dengan baik sesuai dengan model
kriposistem berbasis mobile. Mampu menjalankan kontrol sistem antara lain: a. Mengambil pesan lalu mengenkripsinya dengan caesar cipher ROT13 berdasar urutan table ASCII lalu mengubahnya menjadi byte untuk di encode oleh kelas base64 dan menampilkan karakter sesuai dengan urutan karakter pada table base64. b. Mengambil pesan lalu mendekripsinya pertama kali dengan decode yang terdapat pada kelas base64, hasil dari decode base64 akan decrypt oleh kelas caesar cipher ROT13 untuk mendapatkan pesan asli. c. Mampu mengirimkan pesan ke nomor tujuan dengan pemberitahuan bahwa pesan telah terkirim. d. Mampu menerima pesan dengan pemberitahuan bahwa pesan telah diterima dan bisa dilihat pada daftar pesan masuk dengan menekan tombol “OpenSMS”.
5.
Penutup
5.1
Kesimpulan Pada pengembangan aplikasi ini, ada beberapa kesimpulan yang dapat diambil,
diantaranya : 1. Gabungan dua metode caesar cipher ROT13 dan base64, dapat diaplikasikan ke dalam aplikasi berbasis mobile berbasis android dengan bahasa pemrograman java, untuk kebutuhan pengamanan pesan yang akan dikirimkan melalui mekanisme SMS. 2. Untuk suatu kriptosistem dapat berjalan dengan baik, maka pemilihan metode enkripsi yang dipergunakan harus sesuai dengan seberapa tingkat keamanan yang diinginkan dan sesuai kebutuhan penggunaan. 5.2
Saran Setelah menyelesaikan pengembangan perangkat lunak ini, ada beberapa hal
yang dijadikan acuan untuk pengembangan penelitian ini kedepannya, antara lain: 1. Pemilihan algoritma yang lebih cepat dan lebih aman, akan meningkatkan efisiensi serta daya guna perangkat lunak enkripsi yang dikembangkan. 2. Algoritma caesar cipher ROT13 dan base64 ini telah dapat diimplementasikan dengan baik pada perangkat lunak, dan sudah sesuai kebutuhan pengguna yang ingin cepat dan aman. Namun perangkat lunak ini bisa ditingkatkan lagi kemampuannya tanpa menghilangkan faktor kebutuhan pengguna.
Daftar Pustaka
Adriansyah, Yusuf. 2010. Enkripsi Sederhana dengan Base64 dan Subtitusi Monoalfabetik ke Huruf Non-Latin. Makalah Mahasiwa Teknologi Bandung. Ardina, Nureza, Elfira. 2010. Teknologi Base Station Controller Pada Sistem CDMA 2000 1X Pada Jaringan Flexi. Makalah Seminar Kerja Praktek Mahasiswi Universitas Diponegoro. Nufus, Hayatun. 2009. Pembuatan Aplikasi Kriptografi Algoritma Base64 Menggunakan Java JDK 1.6 . Skripsi Mahasisswa Universitas Gunadarma. Juanda , Akhmad,
Enjang. 2010. Rancang Bangun Mesin Penjawab SMS Otomatis
Berbasis Mikrokontroler ATMega8535. Jurnal Mahasiswa Universitas Pendidikan Indonesia. Deifnisi java, http://id.wikipedia.org/wiki/Java diakses 20 November 2012. Pengertian android, http://id.wikipedia.org/wiki/Android_(sistem_operasi) Diakses tanggal 20 November 2012.