BAB II
LANDASAN TEORI
2.1 Kriptografi
Kriptografi atau yang sering dikenal dengan sebutan ilmu penyandian data
adalah suatu bidang ilmu dan seni
yang bertujuan untuk menjaga kerahasiaan suatu
pesan
yang
berupa
data-data
dari
pihak lain yang tidak berhak
sehingga
tidak
menimbulkan
kerugian.
Pada
masa
sekarang ini,
kriptografi atau
ilmu
penyandian
data sering diklasifikasikan menjadi dua jenis yaitu kriptografi klasik dan kriptografi
modern.
Kriptografi klasik sudah mulai dipelajari manusia sejak tahun 400 SM, yaitu
pada
zaman
Yunani
kuno.
Kriptografi
klasik ini digunakan oleh orang-orang
terdahulu
untuk
menjaga
kerahasiaan
suatu
pesan
teks
pada
masa
sebelum
ditemukan komputer. Kriptografi klasik
merupakan kriptografi yang berbasis
karakter. Caesar chiper dan vigenere chiper merupakan beberapa contoh algoritma
kriptografi klasik yang kita kenal saat ini. Sedangkan kriptografi
modern
adalah
kriptografi yang berkembang pada
zaman setelah ditemukan komputer. Kriptografi
modern beroperasi dalam bit, tidak seperti kriptografi klasik yang hanya beroperasi
pada karakter. Namun pada prinsipnya, metode yang digunakan pada kriptografi
modern diadopsi
dari
kriptografi
klasik,
namun
dibuat sedemikian
rupa sehingga
lebih sulit dengan bantuan komputer.
Teknik kriptografi klasik dapat dikategorikan menjadi dua bagian yaitu teknik
substitusi dan teknik transposisi. Pada teknik transposisi, huruf-huruf pada plainteks
hanya dimanipulasi letak posisinya (transpose) untuk menjadi teks sandi, sedangkan
8
|
9
pada
teknik
substitusi,
setiap
huruf
dalam
plainteks
akan
tepat
berkorespondensi
satu-satu dengan huruf dalam teks sandinya[1].
Untuk
meningkatkan
tingkat
kompleksitas, improvisasi dapat dilakukan terhadap teknik-teknik tersebut.
Pesan atau informasi dapat dikategorikan ke dalam dua jenis, yaitu pesan yang
dapat
dibaca
dengan
mudah
(plaintext) dan
pesan
yang
tidak
mudah
dibaca
(ciphertext). Untuk
melakukan
kriptografi
digunakan
algoritma
kriptografi.
Algoritma kriptografi terdiri dari dua bagian, yaitu fungsi enkripsi dan dekripsi.
Enkripsi
adalah
proses
untuk
mengubah
plaintext
menjadi
ciphertext, sedangkan
dekripsi adalah kebalikannya yaitu mengubah ciphertext menjadi plaintext. Terdapat
dua jenis algoritma kriptografi berdasar jenis kuncinya[3], yaitu :
1.
Algoritma
Simetri,
adalah
algoritma
yang
menggunakan
kunci
enkripsi
yang
sama dengan kunci dekripsinya. Algoritma standar yang menggunakan prinsip
kunci simetri
antara
lain OTP,
DES, RC2,
RC4,
RC5,
RC6, IDEA,
Twofish,
Blowfish, dan lain lain.
2. Algoritma Asimetri, adalah algoritma yang kunci untuk enkripsi dan dekripsinya
jauh berbeda. Algoritma standar yang termasuk algoritma asimetri adalah ECC,
LUC, RSA, EI, Gamal dan DH.
Salah satu teknik enkripsi menggunakan kunci simetri adalah teknik subtitusi,
yaitu
mengganti setiap karakter plaintext dengan karakter lain.
Terdapat empat cara
dalam menggunakan teknik subtitusi[4], yaitu :
1. Monoalphabet, dimana setiap karakter ciphertext mengganti satu macam karakter
plaintext tertentu.
|
10
2. Polialphabet, dimana setiap karakter ciphertext mengganti lebih dari satu macam
karakter plaintext.
3. Monograf/unilateral, dimana satu enkripsi dilakukan terhadap satu karakter
plaintext.
4.
Poligraf/multilateral,
dimana
satu
enkripsi
dilakukan
terhadap
lebih
dari
satu
karakter plaintext.
2.1.1 Viginere cipher
Vigenere cipher merupakan salah satu algoritma klasik dengan teknik
substitusi. Nama vigenere diambil dari seorang yang bernama Blaise de Vigenere[2].
Vigenere cipher menggunakan suatu kunci yang memiliki panjang tertentu.
Panjang kunci tersebut bisa lebih
pendek
ataupun
sama
dengan
panjang
plainteks.
Jika panjang kunci kurang dari panjang plainteks, maka kunci yang tersebut akan
diulang secara periodik hingga panjang kunci tersebut sama
dengan panjang
plainteksnya.
Algoritma enkripsi vigenere cipher :
Ci = ( Pi + Ki ) mod 95
Algoritma dekripsi vigenere cipher :
Pi = ( Ci Ki ) mod 95
Dimana :
Ci = nilai desimal karakter ciphertext ke-i
Pi = nilai desimal karakter plaintext ke-i
Ki = nilai desimal karakter kunci ke-i
|
11
Sebagai
contoh,
jika plaintext
adalah
THEBEAUTYANDTHEBEAST
dan
kunci adalah ABC maka proses enkripsi yang terjadi adalah sebagai berikut :
Plaintext
:
THEBEAUTYANDTHEBEAST
Kunci
:
ABCABCABCABCABCABCAB
Chipertext
:
TIGBFCUUAAOFTIGBFCSU
Pada contoh di atas kata kunci ABC diulang sedemikian rupa
hingga panjang
kunci
sama
dengan
panjang
plainteksnya. Kemudian
setelah
panjang
kunci
sama
dengan panjang plainteks, proses enkripsi dilakukan dengan melakukan menggeser
setiap huruf pada plainteks sesuai dengan huruf kunci yang bersesuaian dengan huruf
plainteks tersebut. Pada contoh di atas plainteks huruf pertama adalah T akan
dilakukan pergeseran huruf dengan kunci Ki=0 (kunci huruf pertama adalah A yang
memiliki Ki=0) menjadi T. Huruf kedua pada plainteks adalah H akan dilakukan
pergeseran huruf dengan kunci Ki=1 (kunci
huruf
kedua
adalah
B
yang
memiliki
Ki=1) menjadi I. Begitu seterusnya dilakukan pergeseran sesuai dengan kunci pada
tiap huruf hingga semua plainteks telah terenkripsi menjadi ciphertext.
2.1.2 Modifikasi Vigenere Chiper
Berdasarkan tulisan sebelumnya bahwa
vigenere
cipher
memiliki
kelemahan
jika panjang kunci yang digunakan kurang dari panjang plainteks. Kurang
panjangnya
kunci
terhadap
plainteks menyebabkan
kunci
akan
diulang
hingga
panjang
kunci
tersebut
sama
dengan
panjang plainteks. Hal ini menyebabkan
kemungkinan timbulnya perulangan string pada cipherteks hasil enkripsi yang dapat
dimanfaatkan untuk menemukan panjang kunci dan lebih lanjut dimanfaatkan untuk
memecahkan cipherteks tersebut[5].
|
12
Sebagai contoh adalah sebagai berikut :
Plainteks
: THEBEAUTYANDTHEBEAST
Kunci
: ABCABCABCABCABCABCAB
Cipherteks
:
TIGBFCUUAAOFTIGBFCSU
Pada contoh diatas, kata THE pertama dan kata THE kedua ternyata dienkripsi
menjadi
kata
yang
sama
pula
yaitu
TIG. Hal
ini
terjadi
karena
kedua kata
THE
tersebut dienkripsi dengan menggunakan kunci yang sama yaitu ABC. Karena kunci
yang digunakan
sama,
maka pergeseran
yang dilakukan terhadap kedua kata THE
tersebut juga sama.
Dengan melihat contoh di atas maka secara intuitif kita mendapat kesimpulan
bahwa jika jarak antara dua buah string yang berulang di dalam plainteks merupakan
kelipatan dari panjang kunci, maka string yang sama tersebut akan muncul menjadi
kriptogram yang
sama
pula
di
dalam cipherteks.
Dengan
begitu,
jika
kita
dapat
menemukan
perulangan
string
pada cipherteks
yang telah
dihasilkan
melalui
vigenere
cipher,
maka besar kemungkinan bahwa panjang kunci adalah
faktor dari
jarak kedua string yang berulang tersebut.
Hal tersebut di atas tidak akan terjadi apabila panjang kunci asal yang
digunakan
adalah
sepanjang
plainteks
dan
tidak ada perulangan string
pada kunci
tersebut. Hal tersebut akan sedikit rumit untuk dilakukan jika kunci yang kita
gunakan merupakan suatu kata atau frasa yang memiliki arti. Namun sebaliknya, jika
kunci yang digunakan bukan merupakan kata atau
frasa
yang
memiliki
arti, kunci
tersebut akan menjadi sulit diingat. Dua hal inilah yang kemudian menjadi
pertimbangan penulis untuk mengembangkan suatu algoritma baru yang merupakan
|
13
modifikasi dari algoritma vigenere cipher tradisional agar lebih kuat dan tidak
mudah dipecahkan oleh pihak yang tidak berhak.
Ide penulis untuk memodifikasi algoritma vigenere cipher ini pada intinya
adalah dengan membangkitkan suatu kunci baru yang memiliki panjang sama
dengan plainteks dan tidak memiliki perulangan string pada kunci tersebut. Kunci ini
akan dibangkitkan dari sebuah kunci asal yang mudah untuk diingat. Metode
pembangkitan kunci dari sebuah kunci asal tersebut akan dilakukan dengan
menggunakan substitusi berulang pada kunci asalnya hingga mendapat sebuah kunci
baru yang memiliki panjang sama dengan plainteksnya.
Modifikasi yang dilakukan harus dapat mengurangi kemunculan key yang
berulang atau bahkan menggunakan pendekatan One-Pad kriptografi yang mana
panjang key adalah sama dengan panjang plainteks yang digunakan dimana key akan
digenerate berbeda dengan key yang digunakan sebelumnya[7]. Modifikasi Viginere
Cipher yang dilakukan disini adalah bukan modifikasi pada algoritma utamanya.
Bentuk modifikasi yang dilakukan untuk proses enkripsi adalah :
1. Plaintext
dibagi
menjadi
blok-blok
dengan
panjang
blok
adalah
panjang
key
yang digunakan.
2.
Setiap pemrosesan blok-i
akan memiliki
key Ki
masing-masing
yang
dibangkitkan
berdasarkan
blok
i-1
sebelumnya.
Key
Ki
merupakan
hasil
Vigenere
cipher plainteks blok sebelumnya (plainteks Pi-1) dengan
menggunakan key Ki-1. Khusus
untuk blok pertama, key-nya adalah key
masukan pengguna.
3.
Setiap blok plainteks-i (Pi) akan di-enkripsi terlebih dahulu dengan
menggunakan algoritma Caesar Cipher. Besar pergeseran Caesar cipher-nya
|
![]() 14
ditentukan berdasarkan key masing-masing blok (Ki) dengan fungsi generate nya
adalah :
Nilai Caesar = (Ki karakter1 + Ki karakter2 + ... + Ki karakter-n ) mod 95
4.
Hasil
enkripsi
Pi
tadi
akan
dienkripsi
menggunakan Vigenere
cipher
untuk
membentuk Cipherteks blok-i (Ci) , key yang digunakan adalah Ki.
Gambar 2.1 Skema Enkripsi Vigenere Modifikasi
Bentuk modifikasi yang dilakukan untuk proses dekripsi adalah :
1. Ciphertext
dibagi
menjadi blok-blok dengan
panjang blok
adalah
panjang
key
yang digunakan
2.
Setiap pemrosesan blok-i
akan memiliki
key Ki
masing-masing
yang
dibangkitkan
berdasarkan
blok
i-1
sebelumnya.
Key
Ki
merupakan
hasil
Vigenere
cipher plainteks blok sebelumnya (plainteks Pi-1) dengan
menggunakan key Ki-1. Khusus
untuk blok pertama, key-nya adalah key
masukan pengguna.
|
![]() 15
3. Setiap ciphertext blok-i (Ci) akan didekripsi menggunakan Vigenere cipher, key
yang digunakan adalah Ki
4. Hasil dekripsi yang diperoleh di langkah-3 akan didekripsikan Caesar Ciphernya
dengan nilai Caesar Ciphernya adalah sama dengan pada fungsi enkripsi yang
pada akhir langkah ini akan terbentuk blok plainteks-i (Pi)
Gambar 2.2 Skema Dekripsi Vigenere Modifikasi
Dikarenakan aplikasi yang dirancang pada tugas akhir ini adalah aplikasi SMS
yang
berbasis
Android,
maka
proses
enkripsi
dan
dekripsi
yang
dilakukan
tidak
hanya terpaku pada huruf abjad (A-Z) saja seperti pada aplikasi-aplikasi yang sudah
dirancang sebelumnya, melainkan dibutuhkan juga simbol-simbol lain yang lazim
digunakan dan terdapat pada keyboard maupun handphone pada umumnya. Berikut
ini adalah daftar tabel ASCII yang meliputi nilai desimal untuk setiap karakter yang
dijadikan sebagai patokan untuk
menghasilkan ciphertext dari
hasil enkripsi antara
pesan dengan password.
|
![]() 16
2.2 Teknologi Java 2
Tabel 2.1 ASCII
Java adalah bahasa pemrograman Object Oriented Programming (OOP) yang
dibuat oleh Sun Microsystem. Java dirancang untuk menjadi bahasa yang memiliki
|
17
kemampuan
tinggi
dalam
hal
portabilitas
dan
pemanfaatan
jaringan
tanpa
mengabaikan kestabilan, kemanan, serta kemudahan dari sisi desain.
Sebutan Java 2 diberikan untuk Java versi 1.2 dan versi berikutnya. Java 2
terbagi dalam 3 kategori[12], yaitu:
-
Java 2 Standard Edition (J2SE). Kategori ini digunakan untuk menjalankan
mengembangkan aplikasi Java pada level komputer personal.
-
Java 2 Enterprise Edition (J2EE). Kategori ini dikhususkan untuk pengembangan
aplikasi Java pada lingkungan enterprise/server.
-
Java 2 Micro Edition (J2ME). Kategori ini digunakan untuk pengembangan
aplikasi
Java
yang diimplementasikan pada
perangkat
semacam ponsel, Palm,
PDA dan PocketPC.
2.3 Java 2 Micro Edition
Java 2 Micro Edition (J2ME) dirancang untuk dapat menjalankan program Java
pada perangkat yang memiliki kemampuan terbatas misalnya kecilnya jumlah
memori yang dimiliki perangkat tersebut.
2.3.1 Konfigurasi J2ME
Konfigurasi
J2ME
adalah
spesifikasi
yang
mendefinisikan
sebuah virtual
machine dari kumpulan
API-API dasar yang dapat digunakan dalam kelas tertentu
dari
sebuah peralatan. Virtual machine pada J2ME berbeda dengan yang ada pada
J2SE karena hanya
fitur-fitur penting
yang berkaitan dengan perangkat tanpa kabel
(Wireless) saja yang diimplementasikan.
Ada 2 konfigurasi pada J2ME[12], yaitu:
1. CLDC (Connected Limited Device Configuration)
|
18
CLDC merupakan perangkat atau konfigurasi dasar dari J2ME. CLDC
sebenarnya berupa library dan API (Application Programming Interface) jyang
diimplementasikan pada J2ME. Konfigurasi ini biasanya untuk alat kecil seperti
telepon seluler (handphone), pager dan PDA. Peralatan tersebut biasanya
mempunyai keterbatasan memori
(RAM), sumber daya, dan kemampuan
memproses.
2. CDC (Connected Device Configuration)
CDC merupakan perangkat atau konfigurasi superset dari CLDC. Konfigurasi ini
biasanya dipakai untuk alat seperti Internet TV, Nokia Communicator dan Car
TV.
2.3.2 Profil J2ME
Sebuah
profil
dibangun
dalam sebuah
konfigurasi,
namun
ditambahkan
beberapa API khusus agar dihasilkan sebuah lingkungan yang lengkap untuk
membangun aplikasi. Profil berisi daur
hidup (life cycle), antarmuka pemakai (user
interface),
serta
penyimpanan. Salah
satu
profil J2ME
adalah
Mobile Information
Device
Profile (MIDP).
Profil MIDP
menyediakan
sebuah
platform
standar
untuk
peralatan komunikasi bergerak
yang memiliki
kapasitas
memori
terbatas sehingga
cocok untuk pengembangan aplikasi pada ponsel[10].
2.4 MIDP dan MIDlet
MIDP
merupakan profil
yang banyak digunakan dan popular dari J2ME dan
MIDlet merupakan aplikasi-aplikasi yang dibuat di dalam handphone menggunakan
profil MIDP.
|
![]() 19
2.4.1 Daur Hidup MIDlet
Daur hidup dari sebuh MIDlet ditangani oleh Aplication Management Software
(AMS).
AMS
adalah
sebuah
lingkungan
tempat
siklus
dari
sebuah
MIDlet
diciptakan, dijalankan, dihentikan, maupun dihilangkan. AMS sering disebut dengan
Java Aplication Manager (JAM). Dalam daur hidupnya MIDlet memiliki tiga status,
yaitu
Pause, Active dan, Destroy[11].
Ketika
masing-masing
status
dipanggil,
beberapa fungsi standar yang bersesuaian akan dipanggil.
Gambar 2.3 Daur Hidup MIDlet
Dari gambar 2.3 dapat dijelaskan sebagai berikut :
-
Ketika
MIDlet pertama
kali
diciptakan
dan
diinisialisasi,
MIDlet
berada
dalam
status pause.
-
Jika terjadi kesalahan selama konstruksi MIDlet, MIDlet akan berpindah ke
status
destroyed
dan MIDlet batal diciptakan
dengan
memanggil
fungsi
destroyApp().
|
![]() 20
-
Saat MIDlet dijalankan, MIDlet akan berada pada status active dan memanggil
fungsi startApp().
-
Jika saat
dijalankan
MIDlet dihentikan
sementara,
maka
MIDlet berada pada
status pause dan memanggil fungsi pauseApp().
2.4.2 Antarmuka Pemakai
Untuk
membuat
suatu
antarmuka
bagi
pemakai,
program MIDlet
harus
mengimpor
paket javac.microedition.lcdui.
Kelas yang dipergunakan untuk
membuat dan
memanipulasi
antarmuka tersebut adalah kelas yang diturunkan dari
kelas
7
Displayable. Melalui
kelas-kelas
inilah sebuah aplikasi
dapat berinteraksi
dengan pemakai.
Pada MIDP, antarmuka terdiri dari API tingkat tinggi (High-level) dan API
tingkat rendah (Low-level). API tingkat tinggi berbasis pada kelas Screen, sedangkan
API
tingkat
rendah
berbasis
pada
kelas
Canvas.
Diagram hirarki
dari
kelas
Displayable[6] dapat dilihat pada gambar 2.2.
Gambar 2.4 Hirarki Kelas Displayable
Dari
gambar 2.4 dapat dilihat bahwa kelas Screen terdiri dari beberapa kelas,
yaitu :
|
21
-
Alert, merupakan kelas yang menyediakan informasi kecil kepada pemakai
yang
ditampilkan
ke
layar
sebelum kemudian
berpindah
ke
objek
lain.
Biasanya
digunakan untuk menampilkan informasi kesalahan (error).
-
TextBox, merupakan
kelas
yang
menyediakan
media
untuk
menerima
masukan
berupa teks.
-
List, merupakan kelas yang menyediakan masukan pilihan (multiple choice) pada
layar.
-
Form, merupakan kelas yang
menyediakan
fasilitas untuk
menampung beberapa
item dalam satu layar, seperti gambar (images), kolom tanggal (datefield), kolom
teks (textfield), gauge dan daftar pilihan (choice group).
2.4.3 Event
Ketika terjadi interaksi antara pengguna dan sebuah perangkat, misalnya
ponsel,
maka
akan
dihasilkan
suatu
event,
seperti
memilih
suatu menu
atau
melakukan masukan pada layar. Kelas yang bertugas untuk menerima
event dari
pengguna
harus
mengimplementasikan antarmuka CommandListener. Fungsi-fungsi
yang harus digunakan antara lain[8] :
-
command(),digunakan untuk menciptakan tombol perintah (command) baru.
-
addCommand(), digunakan untuk mendefinisikan sebuah tombol perintah ke
dalam kelas Displayable.
-
setCommandListener(), digunakan untuk mendengarkan aksi yang dilakukan
terhadap sebuah tombol perintah.
-
commandAction(), digunakan
untuk
menentukan aksi
yang akan dikerjakan oleh
sebuah tombol perintah.
|
22
2.4.4 Pemaketan Aplikasi MIDlet
Hasil
dari
kompilasi
program sumber
Java
adalah satu atau lebih berkas
bytecode yang dikenali dengan akhiran *.class. Pada aplikasi MIDlet, semua
berkas
byte-code
dipaketkan
menjadi suatu berkas terkompresi
yang
disebut Java
Archive (JAR) yang dikenali dengan ekstensi *.jar.
Selain berkas JAR, terdapat juga berkas Java Application Descripter
(JAD)
yang berekstensi *.jad, yaitu berkas yang berisi informasi
mengenai suatu berkas
JAR. Kedua berkas inilah yang harus di-upload ke
perangkat
ponsel
agar
aplikasi
dapat dijalankan. Untuk meng-upload
berkas tersebut ke perangkat ponsel dapat
dilakukan dengan cara transfer data antara komputer dengan perangkat komunikasi
bergerak melalui media sinar infra merah, koneksi kabel data atau bluetooth.
2.5 Software Development Life Cycle
Pada setiap pengembangan perangkat lunak tidak akan terlepas dari sebuah
Software
Development
Life
Cycle
(SDLC). SDLC merupakan sebuah siklus
pengembangan perangkat lunak yang terdiri dari beberapa tahapan. Tahapan-tahapan
tersebut adalah requirements (analisis kebutuhan), analysis (analisis sistem), design
(perancangan), coding/implementation (implementasi), testing (pengujian), dan
maintenance (perawatan). Dalam SDLC terdapat banyak metode yang dapat dipakai
untuk
mengembangkan
sebuah
perangkat
lunak
misal Waterfall, Spiral,
Rapid
Application Development (RAD), dsb. Metode-metode tersebut akan dijelaskan pada
sub bab berikut.
|
![]() 23
2.5.1 Metode Waterfall
Dalam perancangan aplikasi pada tugas akhir ini penulis menggunakan metode
Waterfall. Metode Waterfall
adalah
metode
yang
menyarankan sebuah
pendekatan
yang sistematis dan sekuensial melalui tahapan-tahapan yang ada pada SDLC untuk
membangun sebuah perangkat lunak[9].
Gambar
menjelaskan
bahwa
metode Waterfall menekankan pada sebuah
keterurutan dalam proses pengembangan perangkat lunak. Metode ini adalah sebuah
metode
yang
tepat
untuk
membangun
sebuah perangkat
lunak
yang
tidak
terlalu
besar dan sumber daya manusia yang terlibat dalam jumlah yang terbatas.
Gambar 2.5 Diagram Waterfall Model
Dari
gambar 2.5
dapat
dilihat
bahwa
tahapan pada
metode Waterfall diawali
oleh
tahap
analisis
kebutuhan
yang merupakan
tahap
awal
pembangunan
sebuah
perangkat
lunak.
Tahap
ini didefinisikan sebagai
sebuah
tahap
yang
menghasilkan
sebuah kondisi yang diperlukan oleh pengguna untuk menyelesaikan permasalahan
ataupun mencapai sebuah tujuan. Tahap ini bertujuan untuk megumpulkan
|
24
kebutuhan-kebutuhan pengguna dan kemudian mentransformasikan ke dalam sebuah
deskripsi yang jelas dan lengkap.
Tahapan kedua adalah tahap analisis sistem yang bertujuan untuk menjabarkan
segala sesuatu yang nantinya akan ditangani oleh perangkat lunak. Tahapan ini
adalah
tahapan
dimana
pemodelan
merupakan
sebuah
representasi
dari
object
di
dunia
nyata.
Untuk
memahami
sifat
perangkat
lunak
yang
akan
dibangun,
analis
harus memahami domain informasi, dan tingkah laku yang diperlukan.
Tahap ketiga adalah tahap perancangan perangkat lunak yang merupakan
proses multi langkah dan berfokus pada beberapa atribut perangkat lunak yang
berbeda yaitu struktur data, arsitektur perangkat lunak, dan detil algoritma. Proses ini
menerjemahkan kebutuhan ke dalam sebuah model perangkat lunak yang dapat
diperkirakan kualitasnya sebelum dimulainya tahap implementasi.
Tahap implementasi adalah tahap yang mengkonversi apa yang telah dirancang
sebelumnya
ke
dalam
sebuah
bahasa
yang
dimengerti
komputer.
Kemudian
komputer akan menjalankan fungsi-fungsi yang telah didefinisikan sehingga mampu
memberikan layanan-layanan kepada penggunanya.
Tahap
selanjutnya adalah
tahap
pengujian.
Terdapat
dua
metode
pengujian
perangkat
lunak
yang
umum digunakan,
yaitu
metode black-box
dan
white-box.
Pengujian
dengan
metode black-box
merupakan pengujian
yang
menekankan
pada
fungsionalitas
dari
sebuah
perangkat lunak
tanpa
harus
mengetahui
bagaimana
struktur
di
dalam perangkat
lunak
tersebut.
Sebuah
perangkat
lunak
yang
diuji
menggunakan metode black-box dikatakan berhasil jika fungsi-fungsi yang ada telah
memenuhi spesifikasi kebutuhan
yang telah dibuat sebelumnya. Sedangkan
metode
|
25
white-box
menguji
struktur
internal
perangkat
lunak
dengan
melakukan
pengujian
pada algoritma yang digunakan oleh perangkat lunak.
Tahap
akhir
dari
metode
Waterfall adalah tahap
perawatan.
Tahap
ini dapat
diartikan sebagai tahap penggunaan perangkat lunak yang disertai dengan perawatan
dan perbaikan. Perawatan dan perbaikan suatu perangkat lunak diperlukan, termasuk
di dalamnya adalah pengembangan, karena dalam prakteknya ketika perangkat lunak
tersebut digunakan terkadang masih terdapat kekurangan ataupun penambahan fitur-
fitur baru yang dirasa perlu.
2.6 Android
Android adalah sistem operasi untuk telepon seluler yang berbasis Linux.
Android
menyediakan platform terbuka bagi
para pengembang
buat
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. Beberapa keunggulan dari Android antara lain :
1.
Terbuka (open
source),
platform terbuka
yang
berdasarkan
pada
Linux
yang
merupakan platform terbuka juga. Hal ini
memungkinkan proses pembelajaran,
pembuatan,
dan
pengkostumisasian
menggunakan
platform Android
tanpa
membayar royalti.
2. Probabilitas tinggi, karena semua program ditulis dengan bahasa pemrograman
Java.
|
26
3. Menyediakan kualitas suara dan grafik yang tinggi, juga didukung oleh platform
seperti OpenGL.
4. Android menyediakan berbagai macam library, sehingga tidak perlu membangun
dari awal.
5.
Karena bersifat terbuka (open source), maka Android menyediakan Software
Development
Kit
(SDK) gratis,
dan
didukung
Integrated
Development
Environtment terbuka, yaitu Eclipse.
6. Didukung puluhan ribu aplikasi, baik yang gratis, trial, maupun yang berbayar.
|