BAB II TINJAUAN PUSTAKA
II.1.
Keamanan Data Jika kita bertukar pesan (message) dengan orang lain, maka kita tentu ingin
pesan yang kita kirim sampai kepada pihak yang di tuju sampai dengan aman. Pengertian aman disini sangat luas, aman bisa berarti bahwa selama pengirim pesan tentu kita berharap pesan tersebut tidak dibaca orang ang tidak berhak, mungkin saja pesan yang kita kirim berisi sesuatu yang bersifat rahasia sehingga jika pesan tersebut dibaca oleh pihak yang tidak bertanggung jawab, maka kerahasiaan pesan yang kita kirim. Ini adalah masalah keamanan pesan yang dimanakan kerahasiaan. Aman bisa juga berarti bahwa kita ingin pesan yang akan kita kirm kepenerima samapai dengan utuh tanpa ada kurang atau lebih pada pesan tersebut, artinya tidak ada manipulasi selama pesan itu dalam perjalanan menuju penerima, dan harus di pastikan bahwa pesan yang di terima oleh penerima adalah pesan asli yang memang dikirim oleh pengirim tanpa ada penambahan atau pengurangan terhadap isi pesan yang memungkinkan akan merubah isi dari pesan tersebut. Selain itu, penerima yakin bahwa pesan tersebut memang benar berasal dari kita sendiri, buak dari dari orang lain nyang menyamar dan kita yakin bahwa si penerima pesan adalah orang yang benar yang akan kita kirim pesan. Ini adalah masalah keamanan pesan yang dinamakan otentifikasi. Jika kita menjadi penerima pesan, kitapun tidak ingin sesuatu saat pengirim pesan membanah jika pernah mengirim pesan kepada kita.Ini adalah masalah keamanan yang di sebut penyangkalan (repudiation) . Zaman sekarang banyak orang yang membantah telah mengirim pesan, maka anda perlu membuktikan ketidak benaran tersebut (no
8
9
repudiation). Keempat masalah keamanan tersebut adalah kerahasiaan, integritas data, otentifikasi, dang penyangkalan dapat diselesaikan dengan menggunakan keriptografi. Kriptogrfi tidak hanya menyediakan alat untuk keamanan pesan tatapai juga sekumpulan teknik yang berguan. Keamanan data pada komputer tidak hanya tergantung pada teknologi saja, tetapi dari aspek prosedur dan kebijakan keamanan yang di terapkan serta kedisiplinan sumber daya manusia. Jika firewall dan perangkat keamanan lainnya bisa dibobol oleh orang yang tidak berhak, maka peran utama kriptografi untuk mengamankan data atau pesan dengan menggunakan teknik enkripsi sehingga data atau dokumen tidak bisa di baca. (Herryawan, 2010 : 10).
II.2. Pesan Teks Pesan teks adalah setiap pemberitahuan kata, yang bersifat tertulis yang biasanya menggunakan alat tulis maupun aplikasi, seperti sms, email yang dikrimkan dari satu orang kepada orang lain. Pesan menjadi inti dari setiap proses komunikasi yang terjalin. Ada beberapa alat atau media dalam pengiriman pesan teks salah satunya adalah telepon seluler ataupun smartphone (Hanafi ; 2013 : 12). Pesan teks melalui sms merupakan revolusi dalam layanan telekomunikasi, dimana layanan tidak berbasis suara melainkan layanan berupa pengiriman pesan teks singkat antar perangkat telepon selular. Layanan ini merupakan layanan tambahan terhadap dua layanan utama ( voice dan switched data) dalam sistem jaringan komunikasi GSM. Namun, karena keberhasilan SMS yang tidak terduga menjadikannya sebagai bagian integral dari layanan sistem standar komunikasi lainnya, seperti CDMA,
10
UMTS bahkan jaringan telefon rumah juga mulai mengadopsi dan yang terbaru adalah pesan teks berbasis android.(Hanafi ; 2013 : 23)
II.3. Algoritma IDEA II.3.1 Pengertian Algoritma IDEA IDEA merupakan block cipher (cipher blok), yang beroperasi pada blok plaintext 64 bit. Panjang kuncinya 128 bit. Algoritma yang sama digunakan untuk proses enkripsi dan dekripsi. Sebagaimana algoritma enkripsi yang lain, IDEA menggunakan confusion dan diffusion, berbeda dengan DES yang menggunakan permutasi dan substitusi untuk confusion dan diffusion, IDEA menggunakan operasi aljabar yang tidak kompatibel sebagai berikut, a. XOR. b. Penambahan modulo 216. c. Perkalian modulo 216 + 1 (operasi ini menggantikan kotak-S atau S-Box). Algoritma IDEA menggunakan perkalian modulo 216 + 1 dengan pertimbangan berikut ini, Perkalian dengan nol selalu menghasilkan nol dan tidak memiliki inversi. Perkalian modulo n juga tidak memiliki inversi jika angka yang dikalikan tidak relatif prima terhadap n. Sementara algoritma kriptografi memerlukan operasi yang memiliki inversi. Angka 65537 (216 + 1) adalah sebuah bilangan prima. Oleh karena itu, operasi perkalian modulo (216 + 1) pada algoritma IDEA memiliki inversi. Jika kita membentuk suatu tabel perkalian untuk bilangan-bilangan mulai dari 1 sampai 65536, maka setiap baris dan kolom hanya berisi setiap bilangan satu kali saja.
11
Dalam IDEA, untuk operasi perkalian, bilangan 16 bit yang terdiri dari nol semua dianggap sebagai bilangan 65536, sedangkan bilangan lainnya tetap sesuai dengan bilangan tak bertanda yang diwakilinya. Algoritma IDEA ini dapat dibagi menjadi tiga bagian besar, yaitu algoritma pembentukan kunci, enkripsi dan dekripsi. (Elroy ; 2013 : 10) II.3.3. Pembentukan Kunci Proses pembentukan ini dimulai dengan membagi 128 bit key menjadi 8 buah 16 bit subkey. Ini merupakan delapan subkey pertama untuk algoritma dengan perincian enam subkey pertama untuk putaran (round) 1 dan dua subkey terakhir untuk putaran 2. Key dirotasikan 25 bit ke kiri dan dibagi menjadi 8 subkey lagi. Ini merupakan delapan subkey kedua untuk algoritma dengan perincian empat subkey pertama untuk putaran 2 dan empat subkey terakhir untuk putaran 3. Algoritma hanya menggunakan 52 buah subkey dengan perincian 6 buah subkey untuk 8 putaran ditambah 4 buah subkey untuk transformasi output. Proses pembentukan kunci dapat dilihat pada gambar 2.10 di bawah ini :
12
Kunci masukan 128 bit
k1 … k128
Diputar ke kiri 25 bit
k1 … k128
o o o
Dikelompokkan ke dalam 8 buah subkey dengan panjang 16 bit. K1 K2 K3 K4 K5 K6 Round 1 K1 K2 K3 K4 K5 K6
K7 K8 Round 2 K1 K2
Dikelompokkan ke dalam 8 buah subkey dengan panjang 16 bit. K1 K2 K3 K4 Round 2 K3 K4 K5 K6
K5 K6 K7 K8 Round 3 K1 K2 K3 K4
Diputar ke kiri 25 bit
k1 … k128
Dikelompokkan ke dalam 8 buah subkey dengan panjang 16 bit. 4 buah subkey terakhir tidak digunakan. K1 K2 K3 K4
K5 K6 K7 K8
Transformasi Output
K1 K2 K3 K4
Gambar II.1 Proses Pembentukan Kunci untuk IDEA (Sumber : Elroy ; 2013) II.3.4. Enkripsi Proses enkripsi algoritma IDEA adalah sebagai berikut, Pertama – tama, plaintext 64 bit dibagi menjadi 4 buah sub blok dengan panjang 16 bit, yaitu X1, X2, X3, X4. Empat sub blok ini menjadi masukan bagi iterasi tahap pertama algoritma. Total terdapat 8 iterasi. Pada setiap iterasi, 4 sub blok di-XOR-kan, ditambahkan, dikalikan dengan yang lain dan dengan 6 buah subkey 16 bit. Diantara iterasi sub blok kedua dan ketiga saling dipertukarkan. Akhirnya 4 buah sub blok
13
dikombinasikan dengan 4 subkey dalam transformasi output. Pada setiap tahapan, urutan berikut ini dikerjakan, 1. Kalikan X1 dengan K1 mod (216 + 1). 2. Tambahkan X2 dengan K2 mod 216. 3. Tambahkan X3 dengan K3 mod 216. 4. Kalikan X4 dengan K4 mod (216 + 1). 5. XOR hasil dari step 1 dan 3. 6. XOR hasil dari step 2 dan 4. 7. Kalikan hasil dari step 5 dengan K5 mod (216 + 1). 8. Tambahkan hasil dari step 6 dan 7 mod 216. 9. Kalikan hasil dari step 8 dengan K6 mod (216 + 1). 10. Tambahkan hasil dari step 7 dan 9. 11. XOR hasil dari step 1 dan 9. 12. XOR hasil dari step 3 dan 9. 13. XOR hasil dari step 2 dan 10. 14. XOR hasil dari step 4 dan 10. Output dari setiap round adalah empat sub blok yang dihasilkan pada langkah 11, 12, 13 dan 14. Sub blok 12 dan 13 di-swap (kecuali untuk putaran terakhir) sehingga input dari putaran berikutnya adalah hasil kombinasi dari langkah 11 13 12 14. Setelah 8 putaran, akan dilakukan tranformasi output berikut : 1.
Kalikan X1 dengan subkey K1 mod (216 + 1).
2.
Tambahkan X2 dengan subkey K2 mod 216.
3.
Tambahkan X3 dengan subkey K3 mod 216.
14
4.
Kalikan X4 dengan subkey K4 mod (216 + 1).
Proses enkripsi algoritma IDEA dapat dilihat pada gambar berikut ini, X1
X2
X3
K1(1)
K2(1)
X4
K3(1)
K4(1)
K5(1)
Satu putaran / iterasi (round)
K6(1)
o o o
Tujuh putaran / iterasi (round) lainnya K1(9)
K2(9) Y1
Y2
K3(9)
Transformasi Output
K4(9) Y3
Y4
Gambar II.2. Proses Enkripsi Algoritma IDEA (Sumber : Elroy ; 2013 ) II.3.4. Dekripsi Proses dekripsi sama persis dengan proses enkripsi. Perbedaannya hanya terletak pada aturan dari subkey-nya. Urutan subkey terbalik dengan proses enkripsi dan subkey-
15
nya di-inverse-kan. Subkey pada langkah transformasi output pada proses enkripsi diinverse-kan dan digunakan sebagai subkey pada putaran 1 pada proses dekripsi. Subkey pada putaran 8 di-inverse-kan dan digunakan sebagai subkey pada putaran 1 dan 2 pada proses dekripsi. Demikian seterusnya. Agar lebih jelas, lihatlah tabel berikut ini.
Tabel II.1 Subkey enkripsi dan dekripsi algoritma IDEA Round
Subkey Enkripsi
Subkey Dekripsi
1
K1(1) K2(1) K3(1) K4(1) K5(1) K6(1)
K1(9)-1 -K2(9) -K3(9) K4(9)-1 K5(8) K6(8)
2
K1(2) K2(2) K3(2) K4(2) K5(2) K6(2)
K1(8)-1 -K3(8) -K2(8) K4(8)-1 K5(7) K6(7)
3
K1(3) K2(3) K3(3) K4(3) K5(3) K6(3)
K1(7)-1 -K3(7) -K2(7) K4(7)-1 K5(6) K6(6)
4
K1(4) K2(4) K3(4) K4(4) K5(4) K6(4)
K1(6)-1 -K3(6) -K2(6) K4(6)-1 K5(5) K6(5)
5
K1(5) K2(5) K3(5) K4(5) K5(5) K6(5)
K1(5)-1 -K3(5) -K2(5) K4(5)-1 K5(4) K6(4)
6
K1(6) K2(6) K3(6) K4(6) K5(6) K6(6)
K1(4)-1 -K3(4) -K2(4) K4(4)-1 K5(3) K6(3)
7
K1(7) K2(7) K3(7) K4(7) K5(7) K6(7)
K1(3)-1 -K3(3) -K2(3) K4(3)-1 K5(2) K6(2)
8
K1(8) K2(8) K3(8) K4(8) K5(8) K6(8)
K1(2)-1 -K3(2) -K2(2) K4(2)-1 K5(1) K6(1)
output
K1(9) K2(9) K3(9) K4(9)
K1(1)-1 -K2(1) -K3(1) K4(1)-1
( Sumber : Elroy ; 2013 )
16
II.4.
Kriptografi
II.4.1. Pengertian Kriptografi Kriptografi adalah ilmu yang bersandarkan pada teknik matematika yang berkaitan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan otentikasi tentitas. Jadi pengertian kriptografi modern adalah tidak hanya berkaitan dengan penyembunyian pesan namun lebih tertuju pada sekumpulan teknik yang menyediakan kemanan informasi. Berikut ini diberikan beberapa istilah yang umum digunakan dalam pembahasan kriptografi. 1.
Plaintext Plaintext (message) merupakan pesan asli yang ingin dikirimkan dan dijaga keamanannya. Pesan ini tidak lain berupa dari informasi tersebut.
2.
Chipertext Chipertext merupakan pesan yang telah dikodekan (disandikan) sehingga siap untuk dikirimkan.
3.
Chiper Chiper merupakan algoritma matematis yang digunakan untuk proses penyandian plaintext menjadi ciphertext.
4.
Enkripsi Enkripsi (encryption) merupakan proses yang dilakukan untuk menyandikan plaintext sehingga menjadi chipertext.
5.
Dekripsi
17
Dekripsi (decryption) merupakan proses yang dilakukan untuk memperoleh kembali plaintext dari chipertext. (Sadikin ; 2012 ;12)
II.4.2. Tujuan Kriptografi Kriptografi sesungguhnya merupakan studi terhadap teknik matematis yang terkait dengan 4 aspek keamanan dari suatu informasi yakni kerahasiaan (confidentiality), integritas data (data integrity), otentikasi (authentication), dan ketiadaan penyangkalan (non-repudiation). Keempat aspek tersebut merupakan tujuan utama dari suatu sistem kriptografi yang dapat dijelaskan sebagai berikut, 1. Kerahasiaan (confidentiality) Kerahasiaan bertujuan untuk melindungi suatu informasi dari semua pihak yang tidak berhak atas informasi tersebut. Terdapat beberapa cara yang dapat digunakan untuk menjaga kerahasiaan suatu informasi, mulai dari penjagaan secara fisik misalnya menyimpan data pada suatu tempat khusus sampai dengan penggunaan algoritma matematika untuk mengubah bentuk informasi menjadi tidak terbaca. 2. Integritas data (data integrity) Integritas data bertujuan untuk mencegah terjadinya pengubahan informasi oleh pihak-pihak yang tidak berhak atas informasi tersebut. Untuk menjamin integritas data ini kita harus mempunyai kemampuan untuk mendeteksi terjadinya manipulasi data oleh pihak-pihak yang tidak berkepentingan. Manipulasi data yang dimaksud di sini meliputi penyisipan, penghapusan, maupun penggantian data.
18
3. Otentikasi (authentication) Otentikasi merupakan identifikasi yang dilakukan oleh masing – masing pihak yang saling berkomunikasi, maksudnya beberapa pihak yang berkomunikasi harus mengidentifikasi satu sama lainnya. Informasi yang didapat oleh suatu pihak dari pihak lain harus diidentifikasi untuk memastikan keaslian dari informasi yang diterima. Identifikasi terhadap suatu informasi dapat berupa tanggal pembuatan informasi, isi informasi, waktu kirim dan hal-hal lainnya yang berhubungan dengan informasi tersebut. 4. Non-repudiation Non-repudiation berfungsi untuk mencegah terjadinya penyangkalan terhadap suatu aksi yang telah dilakukan oleh pelaku aksi itu sendiri. Jika terjadi penyangkalan maka diperlukan suatu prosedur yang melibatkan pihak ketiga untuk menyelesaikan masalah tersebut.(Sadikin ; 2013 : 12) II.2.2. Aplikasi Kriptografi Kriptografi telah banyak digunakan di dalam aplikasi-aplikasi khususnya aplikasi pengamanan data pada saat sekarang ini. Aplikasi khas dari kriptografi adalah sistem yang dikembangkan dengan teknik dasar. Sistem seperti ini, dapat memiliki tingkat kompleksitas yang beraneka ragam. Beberapa aplikasi yang lebih sederhana antara lain, komunikasi yang aman, identifikasi, otentikasi, dan secret sharing. Aplikasi yang lebih rumit seperti sistem untuk electronic commerce (e-commerce), sertifikasi, electronic mail yang aman, penemuan kunci dan akses komputer yang aman. Secara umum, makin sederhana aplikasi makin cepat menjadi realita. (Sadikin ; 2013 : 20)
19
II.2.3. Jenis Sistem Kriptografi Berdasarkan pemakaian kunci maka sistem kriptografi (cryptosystems) dapat digolongkan atas atas 2 jenis sistem yakni sistem kriptografi kunci publik (public key cryptography) dan sistem kriptografi kunci rahasia (secret key cryptography). Dalam sistem kriptografi kunci rahasia yang dikenal juga dengan symmetric cryptosystems, pihak pengirim dan penerima bersama-sama menyepakati sebuah kunci rahasia yang akan digunakan dalam proses enkripsi dan dekripsi tanpa diketahui oleh pihak lain. Sedangkan dalam sistem kriptografi kunci publik atau dikenal dengan assymmetric cryptosystem, pihak pengirim maupun pihak penerima mendapatkan sepasang kunci yakni kunci publik (public key) dan kunci rahasia (private key) dimana kunci publik dipublikasikan dan kunci rahasia tetap dirahasiakan. Enkripsi dilakukan dengan menggunakan kunci publik sedangkan dekripsi dilakukan dengan menggunakan kunci rahasia. (Sadikin ; 2013 : 25)
II.5.
Matematis Kriptografi
II.5.1. Aritmatika Modular Aritmatika
modular
merupakan
operasi
matematika
yang
banyak
diimplementasikan pada metode kriptografi. Pada metoda IDEA, operasi aritmetika modular yang dipakai adalah operasi penjumlahan modulo 216 dan operasi perkalian modulo 216 + 1. Operasi modulo ini melibatkan bilangan 0 dan 1 saja sehingga identik dengan bit pada komputer. Contohnya, (65530 + 10) mod 216 = 65540 mod 65536 = 4
20
(32675 * 4) mod (216 + 1) = 131060 mod 65537 = 65523 II.5.2. Operasi XOR XOR adalah operasi Exclusive-OR yang dilambangkan dengan tanda “”. Operasi XOR akan menghasilkan nilai bit “0” (nol) jika meng-XOR-kan dua buah bit yang sama nilainya dan akan menghasilkan nilai bit “1” (satu) jika meng-XOR-kan dua buah bit yang masing – masing nilai bitnya berbeda. Aturan yang berlaku untuk operasi XOR dapat dilihat pada Tabel 2.1 berikut ini,
Tabel II.2 Aturan Operasi XOR A
B
AB
0
0
0
0
1
1
1
0
1
1
1
0
( Sumber : Sadikin 2013 : 40) Nilai A jika di-XOR-kan dengan nilai B sebanyak dua kali maka akan didapatkan nilai A kembali. Karena sifat istimewa yang dimiliki operasi XOR tersebut sehingga operasi XOR cenderung dipakai dalam proses enkripsi dan dekripsi yang memiliki algoritma yang sama.
21
PK=C; CK=P Keterangan, P = Plaintext K = Key C = Ciphertext
Berikut ini adalah contoh operasi XOR : 1101 0110 0001 0100 1000 0001 1110 0000 101 1 1111 0100 Sumber : Sadikin 2013 : 40 II.4.3. Pergeseran Bit (Shift) Pergeseran bit (Shift) adalah operasi pergeseran terhadap suatu barisan bit sebanyak yang diinginkan. Bit kosong yang telah tergeser akan diberikan nilai bit “0” (nol). Operasi pergeseran terbagi menjadi dua macam yaitu, 1. Operasi Geser Kiri (Shift Left) yaitu operasi yang menggeser (shift) sejumlah bit ke kiri (left) dengan nilai bit “0” (nol). Operasi shift left dilambangkan dengan “<<”. Contoh operasi shift left : 11000110 << 1 : 10001100 11000110 << 2 : 00011000 11000110 << 3 : 00110000
22
2. Operasi Geser Kanan (Shift Right) yaitu operasi yang menggeser (shift) sejumlah bit ke kanan (right) dengan nilai bit “0” (nol). Operasi shift right dilambangkan dengan “>>”. Contoh operasi shift right : 11000110 >> 1 : 01100011 11000110 >> 2 : 00110001 11000110 >> 3 : 00011000 (Sumber : Sadikin 2013 : 50)
II.4.4. Rotasi Bit (Rotate) Rotasi bit (Rotate) adalah operasi perputaran terhadap suatu barisan bit sebanyak yang diinginkan. Bit yang tergeser akan dipindahkan ke sisi barisan bit yang berlawanan dengan arah putaran bit. Operasi rotasi terbagi atas dua macam yaitu, 1. Operasi Rotasi Kiri (Rotate Left) yaitu operasi memutar barisan bit ke kiri sebanyak nilai yang diberikan secara per bit, bit kosong yang telah tergeser di sebelah kanan akan digantikan dengan bit yang telah tergeser di sebelah kirinya. Operasi rotate left dilambangkan dengan “<<<”. Contoh operasi rotate left : 11000110 <<< 1 : 10001101 11000110 <<< 2 : 00011011 11000110 <<< 3 : 00110110 2. Operasi Rotasi Kanan (Rotate Right) yaitu operasi memutar barisan bit ke kanan sebanyak nilai yang diberikan secara per bit, bit kosong yang telah tergeser di sebelah kiri akan digantikan dengan bit yang telah tergeser di sebelah kanannya. Operasi rotate right dilambangkan dengan “>>>”.Contoh operasi rotate right :
23
11000110 >>> 1 : 01100011 11000110 >>> 2 : 10110001 11000110 >>> 3 : 11011000
II.4.5. Perkalian Modulo Perkalian dengan nol selalu menghasilkan nol dan tidak memiliki invers. Perkalian modulo n juga tidak memiliki invers jika angka yang dikalikan tidak relatif prima terhadap n. Sementara algoritma kriptografi memerlukan operasi yang memiliki inversi. Angka 65537 (216 + 1) adalah sebuah bilangan prima. Oleh karena itu, operasi perkalian modulo (216 + 1) pada algoritma IDEA memiliki inversi. Jika kita membentuk suatu tabel perkalian untuk bilangan-bilangan mulai dari 1 sampai 65536, maka setiap baris dan kolom hanya berisi setiap bilangan satu kali saja. Dalam IDEA, untuk operasi perkalian, bilangan 16 bit yang terdiri dari nol semua dianggap sebagai bilangan 65536, sedangkan bilangan lainnya tetap sesuai dengan bilangan tak bertanda yang diwakilinya. Contoh : (32542 * 10) mod 65537 = 325420 mod 65537 = 63272 (3154
* 25) mod 65537 = 78850 mod 65537 = 13313
(Sumber : Sadikin 2013 : 40)
24
II.6.
Android
II.6.1. Pengertian Android Android adalah sistem operasi berbasis Linux bagi telepon seluler seperti telepon pintar dan komputer tablet. Android juga menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri yang akan digunakan untuk berbagai macam piranti gerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat piranti lunak untuk ponsel. kemudian dalam pengembangan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan piranti keras, piranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. Dalam sub bab ini, kami akan membahas mengenai berbagai macam hal mengenai Android, serta tools apa saja yang akan digunakan untuk mengembangkan aplikasi yang kami rancang ini. ( Safaat ; 2012 : 1).
II.1.1 Versi Android 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 yang tidak search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email. 2. Android versi 1.5 (Cupcake) Pada pertengahan Mei 2009, Google kembali merilis telepon seluler dengan menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5
25
(Cupcake). Terdapat beberapa pembaharuan untuk penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus kamera, mengunggah video 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 indicator baterai dan kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus, kamera, camcorder dan galeri yang dintegrasikan adalah CDMA / EVDO, 802.1x, VPN, Gestures, dan Text-tospeech engine dan kemampuan dial kontak, teknologi text to change speech (tidak tersedia pada semua ponsel pengadaan resolusi VWGA). 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, peningkatan Google Maps3.1.2, perubahan UI dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1. Agar dapat bergerak cepat dalam persaingan perangkat generasi yang berikutnya, Google melakukan investasi dengan mengadakan kompetisi aplikasi mobile terbaik (killer apps – aplikasi unggulan). Kompetisi ini berhadiah $25,000 bagi setiap pengembang aplikasi
26
terpilih. Kompetisi diadakan selama dua tahap yang tiap tahapnya dipilih 50 aplikasi terbaik. Dengan semakin berkembangnya dan bertambahnya jumlah handset Android, semakin banyak pihak ketiga yang berminat untuk menyalurkan aplikasi mereka dalam 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. 5. Android versi 2.2 (Froyo: Frozen Yoghurt) Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahan-perubahan umumterhadap versi – versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerjadan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai GoogleChrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi Android Market. 6. Android versi 2.3 (Gingerbread) Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan. Perubahan-perubahanumum yang didapat dari Android versi ini antara lain peningkatan kemampuan permainan (gaming), peningkatan fungsi copy paste, layar antar muka (User Interface) yang sudah didesain ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb, equalization, headphone
27
virtualization,
dan
bass
boost),
dukungan
kemampuan
Near
Field
Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu. 7. Android versi 3.0/3.1 (Honeycomb) 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 processor dan juga akselerasi perangkat keras (hardware) untuk grafis. Tablet pertama kali yang dibuat dengan menjalankan Honeycomb adalah Motorola Xoom. Perangkat tablet tersebut bernama Eee Pad Transformer yang merupakan produk dari Asus yang masuk ke pasar Indonesia pada Mei 2011. 8. Android versi 4.0 (ICS: Ice Cream Sandwich) Pada tanggal 19 Oktober 2011, diperkenalkannya Android versi 4.0 yang membawa fitur Honeycomb untuk smartphone, menambahkan fitur baru termasuk membuka kunci dengan pengenalan wajah, jaringan data pemantauan penggunaan dan kontrol, kontak jaringan sosial terpadu, perangkat tambahan fotografi, pencarian email secara offline, dan berbagi informasi dengan menggunakan NFC. Ponsel pertama yang menggunakan sistem operasi ini adalah Samsung Galaxy Nexus. 9. Android versi 4.1 (Jelly Bean) Android Jelly Bean yaang diluncurkan pada acara Google I/O membawa sejumlah keunggulan dan fitur baru. Adapun penambahan fitur baru diantaranya yaitu meningkatkan input keyboard, desain baru fitur pencarian, UI yang baru dan pencarian melalui Voice Search yang lebih cepat. Google Now yang juga
28
menjadi bagian yang diperbarui pun tak ketinggalan. Google Now memberikan informasi yang tepat pada waktu yang tepat pula. Salah satu kemampuannya adalah dapat mengetahui informasi cuaca, lalu-lintas, ataupun hasil pertandingan olahraga. Sistem operasi Android Jelly Bean 4.1 muncul pertama kali dalam produk tablet Asus, yakni Google Nexus 7. ( Safaat ; 2012 : 10).
II.1.2. Fitur Android Adapun beberapa fitur – fitur di Android adalah sebagai berikut ini : 1. Kerangka aplikasi memungkinkan penggunaan dan penghapusan komponen yang tersedia. 2. Dalvik mesin virtual dioptimalkan untuk perangkat telepon seluler. 3. Grafik 2D dan grafik 3D berdasarkan pustaka OpenGL. 4. SQLite untuk penyimpanan data. 5. Mendukung media audio, video, dan berbagai format gambar (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF). 6. GSM, Bluetooth, EDGE, 3G, 4G dan WiFi (tergantung piranti keras), 7. Kamera, Global Positioning System (GPS), kompas, NFC dan accelerometer (tergantung piranti keras). ( Safaat ; 2012 : 5).
II.1.3. Android SDK Android SDK adalah tools API (Application Programming Interface) yang diperlukan untuk mengembangkan aplikasi pada platform Android yang menggunakan bahasa pemrograman Java. Android merupakan subset perangkat lunak untuk ponsel
29
yang meliputi sistem operasi, middleware dan aplikasi kunci yang di-release oleh Google. Saat ini disediakan Android SDK (Software Development Kit) sebagai alat bantu dan API untuk mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Sebagai platform Android aplikasi netral, Android memberi Anda kesempatan untuk membuat Aplikasi yang kita butuhkan yang bukan merupakan aplikasi bawaan Handphone/Smartphone. (Safaat ; 2012 : 5).
II.1.4. ADT (Android Development Tools) Android Development Tools (ADT) adalah plug-in yang didesain untuk IDE Eclipse yang memberi kita kemudahan dalam mengembangkan aplikasi Android dengan menggunakan IDE Eclipse. Dengan menggunakan ADT untuk Eclipse, ini akan memudahkan kita dalam membuat aplikasi project Android, membuat GUI aplikasi, dan menambahkan komponen – komponen yang lainnya. Selain itu kita juga dapat melakukan running aplikasi menggunakan Android SDK melalui Eclipse. Dengan ADT kita juga dapat melakukan pembuatan package Android (.apk) yang digunakan untuk distribusi aplikasi Android yang kita rancang. Mengembangkan aplikasi Android dengan menggunakan ADT di Eclipse sangat mudah dan baik untuk memulai mengembangkan aplikasi Android. Semakin tinggi platform Android yang kita gunakan, maka penggunaan ADT dianjurkan untuk memakai versi yang lebih baru, karena munculnya platform baru diikuti oleh munculnya versi ADT yang terbaru. Versi ADT yang kami gunakan untuk Eclipse dalam pembuatan aplikasi ini adalah versi terbaru ADT yang telah dirilis, yaitu ADT 20.0.3 . (Safaat ; 2012 : 5).
30
II.1.5. AVD (Android Virtual Device) AVD (Android Virtual Device) merupakan emulator yang digunakan untuk menjalankan program aplikasi Android yang telah dirancang. AVD dapat dikonfigurasi agar dapat menjalankan berbagai macam versi Android yang telah diinstal. Dalam perancangan aplikasi ini, kami menggunakan konfigurasi Android versi 4.0 (Ice Cream Sandwich). (Safaat ; 2012 : 19). II.1.6. IDE Eclipse Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak agar dapat dijalankan di semua platform (platformindependent). Berikut ini adalah sifat dari Eclipse: 1. Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X. 2. Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Java, Cobol, Python, Perl, PHP, dan lain sebagainya. 3. Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun dapat digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya. Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan bersifat open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini. Selain itu, kelebihan dari Eclipse adalah kemampuannya untuk dapat dikembangkan oleh user dengan komponen yang dinamakan plug-
31
in. Eclipse yang kami gunakan untuk mengembangkan aplikasi ini adalah Eclipse Classic 4.2.1
II.1.7. JDK (Java Development Kit) Java adalah sebuah teknologi yang diperkenalkan oleh Sun Microsysytems pada pertengahan tahun 1990. Menurut definisi Sun, Java adalah nama untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada computer standalone ataupun pada lingkungan jaringan. Untuk membuat program Java dibutuhkan kompiler dan interpreter untuk program Java berbentuk Java Development Kit (JDK) yang diproduksi oleh Sun Microsystems. Sebelum memulai instalasi Android SDK, terlebih dahulu kita harus melakukan instalasi JDK di komputer. JDK yang kami gunakan untuk dapat mengompilasi aplikasi android yang kami rancang ini adalah Java SE Development Kit 7.
II.7. Unified Modelling Lnguage II.7.1. Pengertian Unified Modelling Lnguage (UML) Unified Modelling Lnguage (UML) adalah salah satu bantu analisis serta perancangan perangkat lunak berbasis objek. Unified Modelling Lnguage (UML) merupakan standart modelling language yang terdiri dari kumpulan kumpulan diagram, dikembangkan untuk membantu para pengembang sistem dan software agar bisa menyelesaikan tugas tugas seperti spesifikasi, visualisasi, desain arsitektur, konstruksi, simulasi dan testing serta dokumentasi.
32
Berdasarkan beberapa
pendapat yang di kemukakan diatas dapat di tarik
kesimpulan bahwa Unified Modelling Language (UML) adalah sebuah bahasa yang berdasarkan
grafik
atau
gambar
untuk
menvisualisasikan,
menspesifikasikan,
membangun dan pendokumentasian dari sebuah sistem pengembangan perangkat lunak berbasis OO (Object Oriented). UML merupakan suatu kumpulan teknik terbaik yang telah terbukti sukses dalam memodelkan system yang besar dan kompleks. UML tidak hanya digunakan dalam proses pemodelan perangkat lunak, namun hampir dalam semua bidang yang membutuhkan pemodelan. Bagian-bagian utama dari UML adalah view, diagram, Model element, dan general mechanisme. (Adi Nugroho ; 2012 :110)
NO
GAMBAR
Tabel II.3. Simbol Use Case Diagram NAMA KETERANGAN Actor
Menspesifikasikan himpuan peran yang pengguna mainkan ketika berinteraksi dengan use case.
2
Dependency
Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (independent) akan mempengaruhi elemen yang bergantung padanya elemen yang tidak mandiri (independent).
3
Generalizati on
Hubungan dimana objek anak (descendent) berbagi perilaku dan struktur data dari objek yang ada di atasnya objek induk (ancestor).
4
Include
Menspesifikasikan bahwa use case sumber secara eksplisit.
5
Extend
Menspesifikasikan bahwa use case target memperluas perilaku dari use case sumber pada suatu titik yang diberikan.
1
33
6
Association
7
System
8
Use Case
Apa yang menghubungkan antara objek satu dengan objek lainnya. Menspesifikasikan paket yang menampilkan sistem secara terbatas.
Deskripsi dari urutan aksi-aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu aktor
9
Interaksi aturan-aturan dan elemen lain yang Collaboratio bekerja sama untuk menyediakan prilaku yang n lebih besar dari jumlah dan elemen-elemennya (sinergi).
10
Elemen fisik yang eksis saat aplikasi dijalankan dan mencerminkan suatu sumber daya komputasi
Note
Tabel II.4. Simbol Class Diagram NO 1
2
GAMBAR
NAMA
KETERANGAN Hubungan dimana objek anak (descendent) berbagi perilaku dan struktur Generalization data dari objek yang ada di atasnya objek induk (ancestor). Upaya untuk menghindari asosiasi dengan Nary lebih dari 2 objek. Association Class
Himpunan dari objek-objek yang berbagi atribut serta operasi yang sama.
4
Collaboration
Deskripsi dari urutan aksi-aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu aktor
5
Realization
3
6
Dependency
Operasi yang benar-benar dilakukan oleh suatu objek. Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (independent) akan mempegaruhi elemen yang bergantung padanya elemen yang tidak
34
7
Association
mandiri Apa yang menghubungkan antara objek satu dengan objek lainnya
Tabel II.5. Simbol Sequence Diagram NO
GAMBAR
NAMA
1
LifeLine
KETERANGAN Objek entity, antarmuka yang saling berinteraksi.
2
Message
Spesifikasi dari komunikasi antar objek yang memuat informasi-informasi tentang aktifitas yang terjadi
3
Message
Spesifikasi dari komunikasi antar objek yang memuat informasi-informasi tentang aktifitas yang terjadi
Tabel II.6. Simbol StateChart Diagram NO
GAMBAR
NAMA
KETERANGAN Nilai atribut dan nilai link pada suatu waktu tertentu, yang dimiliki oleh suatu objek.
1
State
2
Initial Pseudo State
3
Final State
Bagaimana dihancurkan
4
Transition
Sebuah kejadian yang memicu sebuah state objek dengan cara memperbaharui satu atau lebih nilai atributnya
5
Association
Apa yang menghubungkan antara objek satu dengan objek lainnya.
Bagaimana objek dibentuk atau diawali objek
dibentuk
dan
35
6
Node
Elemen fisik yang eksis saat aplikasi dijalankan dan mencerminkan suatu sumber daya komputasi.
VTabel II.7. Simbol Actifity Diagram NO
GAMBAR
NAMA
KETERANGAN
1
Actifity
Memperlihatkan bagaimana masingmasing kelas antarmuka saling berinteraksi satu sama lain
2
Action
State dari sistem yang mencerminkan eksekusi dari suatu aksi
3
Initial Node
Bagaimana objek dibentuk atau diawali.
4
Actifity Final Node
Bagaimana dihancurkan
5
Fork Node
objek
dibentuk
dan
Satu aliran yang pada tahap tertentu berubah menjadi beberapa aliran
36