bab 2 landasan teori 2.1 teori-teori umum 2.1.1...
TRANSCRIPT
7
BAB 2
LANDASAN TEORI
2.1 Teori-teori umum
Teori-teori umum yang berkaitan dalam topik skripsi disini adalah tentang
Rekayasa Piranti Lunak (RPL), Unified Modeling Language (UML), User Interface
Design, Client / Server Software Engineering, Database, SQLite, Interaksi Manusia dan
Komputer (IMK), XML.
2.1.1 Rekayasa Piranti Lunak (RPL)
Piranti lunak atau software tidak sama dengan program komputer. Piranti lunak
tidak hanya mencakup program, tetapi juga semua dokumentasi dan konfigurasi data
yang berhubungan, yang diperlukan untuk membuat program dapat beroperasi dengan
benar. Piranti lunak adalah instruksi-instruksi yang jika dijalankan akan menyediakan
fungsi yang diperlukan, struktur data yang memungkinkan program untuk memanipulasi
informasi, dokumen yang menyatakan operasi dan kegunaan program (Roger Pressman,
2010, p.4).
Sistem piranti lunak terdiri dari :
- Sejumlah program yang terpisah
- File-file konfigurasi
- Dokumentasi sistem
- Dokumentasi user
8
Dari definisi ini dapat dilihat betapa pentingnya pemeliharaan untuk rekayasa
piranti lunak. Definisi ini menganggap bahwa pendekatan yang digunakan harus
sistematis, disiplin, dan terukur bukan hanya didasarkan pada ilmu komputer dan
matematika. Definisi ini mencakup studi dalam rekayasa piranti lunak dan mencari
pendekatan untuk melaksanakan kegiatan rekayasa piranti lunak, yaitu studi dan mencari
metode, teknik, alat, dan lainnya.
Penelitian terhadap rekayasa piranti lunak sangat penting karena produksi piranti
lunak sulit, jauh lebih sulit daripada perkiraan banyak orang. Menurut Roger S.
Pressman (2010, p.14), rekayasa piranti lunak dikelompokan dalam beberapa lapisan
atau layers yaitu :
Gambar 2.1 software engineering layers
Landasan paling dasar yang mendukung dari rekayasa piranti lunak adalah fokus
terhadap kualitas atau quality focus. Yang menjadi pondasi untuk rekayasa piranti lunak
adalah lapisan proses. Proses rekayasa piranti lunak adalah lem yang memegang lapisan
teknologi bersama dan memungkinkan pengembangan rasional dan tepat waktu bagi
piranti lunak komputer. Proses mendefinisikan kerangka kerja untuk satu set area proses
kunci atau key process areas (KPAs) yang harus dibentuk untuk pengiriman efektif
Tools
Methods
Process
A Quality Focus
9
teknologi rekayasa piranti lunak. Area proses kunci membentuk dasar bagi kontrol
manajemen proyek piranti lunak dan menetapkan konteks dimana metode teknis yang
diterapkan, pekerjaan produk (model, dokumen, data, laporan, formulir, dan lainnya)
diproduksi, tonggak ditetapkan, kualitas dijamin, dan perubahan dikelola dengan baik.
Metode rekayasa piranti lunak menyediakan teknis bagaimana untuk membangun piranti
lunak. Metode mencakup array yang luas dari tugas-tugas yang mencakup analisis
kebutuhan, desain, konstruksi program, pengujian, dan metode rekayasa support.
Software bergantung pada sekumpulan prinsip dasar yang mengatur setiap area
teknologi dan termasuk aktifitas modelling dan teknik deskriptif lainnya. Alat rekayasa
piranti lunak memberikan dukungan otomatis atau semi-otomatis untuk proses dan alat
methods. Ketika alat yang terintegrasi sehingga informasi yang dibuat oleh satu alat
yang dapat digunakan oleh yang lain, sebuah sistem untuk mendukung pengembangan
piranti lunak. Kasus menggabungkan software, hardware, dan rekayasa piranti lunak
database (repositori berisi informasi penting tentang analisis, desain, konstruksi
program, dan pengujian) untuk menciptakan sebuah lingkungan piranti lunak rekayasa
analog dengan CAD / CAE (computer-aided design / engineering) untuk hardware.
(Roger Pressman, 2010, p.14).
10
2.1.2 Unified Modeling Language (UML)
UML adalah sebuah bahasa yang telah menjadi standar dalam industri untuk
memvisualisasi, menspesifikasi, merancang dan mendokumentasi sistem piranti lunak
(Roger Pressman, 2010). UML memberikan standar penulisan sebuah sistem blue print,
yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang
spesifik, skema database, dan komponen-komponen yang diperlukan dalam sistem
piranti lunak.
Pendekatan analisa dan rancangan dengan menggunakan model Object Oriented
(OO) mulai diperkenalkan sekitar pertengahan 1970 dan berkembang pada tahun 1980
dikarenakan pada saat itu aplikasi software sudah meningkat dan mulai kompleks.
Jumlah yang menggunakan metode OO mulai di ujicobakan dan diaplikasikan antara
1989 hingga 1994, seperti halnya oleh Grady Booch dengan metode yang dikenal
dengan OOSE (Object-Oriented Software Engineering), serta James Rumbaugh dari
General Electric, dikenal dengan OMT (Object Modelling Technique).
Kelemahan saat itu disadari oleh Booch maupun Rumbaugh adalah tidak adanya
standar penggunaan model yang berbasis OO, kemudian Booch, Rumbauch dan
Jacobson mulai mendiskusikan untuk mengadopsi masing-masing pendekatan metode
OO untuk membuat suatu model bahasa yang seragam yang disebut UML (Unified
Modeling Language) dan dapat digunakan oleh seluruh dunia.
Secara resmi bahasa UML dimulai pada bulan Oktober 1994, ketika Rumbaugh
bergabung dengan Booch untuk membuat sebuah project pendekatan metode yang
seragam dari masing-masing metode mereka.
11
2.1.2.1 Class Diagram
Class diagram adalah diagram yang menunjukan sekumpulan dari kelas-kelas,
interfaces, dan kolaborasi-kolaborasi serta hubungannya (Roger Pressman, 2010, p.842).
Class diagram digunakan untuk memvisualisasikan, menspesifikasikan,
mendokumentasikan model struktural dan juga membangun sistem yang dapat
dieksekusi.
Pada class diagram terdapat simbol-simbol :
1. Simbol“+” untuk menandakan public.
2. Simbol Simbol “-” untuk menandakan private.
3. Simbol “#” untuk menandakan protected.
Class diagram direpresentasikan dalam bentuk kotak yang terbagi atas tiga bagian
yaitu nama class, attribute, dan perilaku, seperti dibawah :
Class name
Attribute: Type=Initial Value
Operation(arg list): return type
Gambar 2.2 Contoh Class Diagram
12
2.1.2.2 Use Case Diagram
Use Case Diagram menggambarkan bagaimana user berinteraksi dengan sistem
dengan cara mendefinisikan langkah-langkah yang dibutuhkan untuk menyelesaikan
tujuan yang spesifik (Roger Pressman, 2010, p.847). Use Case Diagram
memvisualisasikan tingkah laku dari suatu sistem dan menggambarkan interaksi antara
aktor dengan sistem. Bagian dari Use Case Diagram :
1. Aktor
Sebuah aktor mewakili sekumpulan peranan yang saling berhubungan didalam
sistem dimana aktor tersebut berinteraksi dengan use case (Roger Pressman,
2010, p.847).
2. Use Case
Sebuah use case menjelaskan sekumpulan dari sequence, dimana setiap sequence
mewakili interaksi dari hal-hal diluar sistem (aktornya) dengan sistem itu sendiri
(Roger Pressman, 2010, p.847). Sehingga sebuah use case menunjukan sebuah
keperluan fungsional dari keseluruhan sistem.
Untuk menghubungkan antara aktor dengan use case digunakan simbol garis
yang disebut sebagai relationship.
Suatu use case dapat memiliki deskripsi teknik, yaitu : extends, dan include.
Extends berati memperluas use case dasar dengan menambah behavior-behavior
baru tanpa mengubah use case dasar itu sendiri. Titik dimana use case diperluas
disebut extension point.
13
Sebuah use case dapat meng-include fungsionalitas dari use case lain sebagai
bagian dari proses dalam diri nya. Secara umum diasumsikan bahwa use case
yang di-include akan dipanggil setiap kali use case yang meng-include
dieksekusi secara normal.
Dengan adanya use case diagram maka akan membantu dalam menyusun
kebutuhan sebuah sistem dan mengkomunikasikannya dengan klien.
2.1.2.3 Sequence Diagram
Sequence diagram menggambarkan sekumpulan objek dan interaksinya, termasuk
pesan yang dikirim terhadap urutan waktu (Roger Pressman, 2010, p.848). Sequence
diagram menunjukan sekumpulan objek dan pesan yang dikirim dan diterima oleh objek
tersebut. Sequence diagram memiliki dua buah karakteristik yaitu :
1 . Setiap objek memiliki lifeline yang digambarkan dengan garis putus-putus vertikal
dan garis ini menunjukan daur hidup dari sebuah objek.
2 . Terdapat fokus kontrol yang digambarkan dengan sebuah persegi panjang yang
tipis dan tinggi. Fokus kontrol ini menunjukan periode waktu selama sebuah objek
melakukan sebuah event.
14
2.1.3 Desain Antarmuka User (User Interface Design)
Proses keseluruhan untuk merancang antarmuka dimulai dengan penciptaan model
yang berbeda dari fungsi sistem (seperti yang dirasakan dari luar). Manusia dan
komputer berorientasi pada tugas yang diperlukan untuk mencapai fungsi sistem ini
kemudian digambarkan, desain masalah yang berlaku untuk semua desain antarmuka
dipertimbangkan, alat-alat yang digunakan untuk prototipe dan akhirnya menerapkan
model desain, dan hasilnya dievaluasi untuk kualitas.
2.1.3.1 Model Desain Antarmuka
Empat model yang berbeda datang dalam mendefinisikan sebuah sistem ketika
sebuah sistem antarmuka user dianalisis dan dirancang. Software engineer menciptakan
model desain, seorang insinyur software engineer menetapkan model user, user akhir
mengembangkan gambaran mental yang sering disebut user model atau persepsi sistem,
dan pelaksana sistem membuat implementasi dari model. Sayangnya masing-masing
model dapat berbeda secara signifikan. Peran desainer antarmuka adalah untuk
menggabungkan perbedaan-perbedaan ini dan memperoleh representasi konsisten
antarmuka. Untuk membuat rancangan antarmuka yang efektif, semua desain harus
dimulai dengan ketidakpahaman dari intended users, termasuk profil dari umur mereka,
jenis kelamin, pendidikan, budaya, motivasi, tujuan dan kepribadian. User dapat
dikategorikan menjadi beberapa kelompok (Roger Pressman, 2010, p.318) :
15
• Pemula
Tidak ada pengetahuan sintaksis dari sistem dan pengetahuan semantik sedikit dari
aplikasi atau useran komputer secara umum.
• User menengah
Memiliki pengetahuan semantik tentang aplikasi, tapi relatif rendah mengingat informasi
sintaksis yang diperlukan untuk menggunakan antarmuka.
• User professional
Mengetahui dengan baik semantik dan sintaksis pengetahuan yang sering mengarah ke
"power syndrome-user", yaitu orang yang mencari jalan pintas dan cara interaksi
singkat.
2.1.3.2 Proses Desain Antarmuka User
Proses dari desain antarmuka user adalah proses yang terjadi secara berulang
(Roger Pressman, 2010, p.319). Terdapat 4 proses meliputi empat kegiatan yang berbeda
kerangka kerja, yaitu sebagai berikut :
1. User, tugas, dan lingkungan analisis dan pemodelan
2. Desain antarmuka
3. Konstruksi antarmuka
4. Validasi antarmuka
16
2.1.4 Client / Server Software Engineering
Meskipun tidak ada definisi standar, istilah arsitektur client / server umumnya
mengacu pada sistem yang membagi pengolahan antara satu atau lebih client jaringan
dan pusat server. Dalam sistem client / server biasa, client menangani seluruh user
interface, termasuk entri data, permintaan data, dan logika layar presentasi. Server
menyimpan data dan menyediakan akses data dan fungsi manajemen database. Logika
aplikasi dibagi dalam beberapa cara antara server dan client. Dalam interaksi client /
server, client mengajukan permintaan untuk informasi dari server, yang melakukan
operasi dan menanggapi client. Seperti ditunjukkan dalam Gambar 2.2, data tidak
ditransfer dari server ke client - hanya permintaan dan hasilnya ditransmisikan di
seluruh jaringan. Untuk memenuhi permintaan dari client, server mungkin melakuan
kontak server lainnya untuk data atau dukungan pengolahan, tetapi proses yang
transparan kepada client (Gary B. Shelly, 2009).
Gambar 2.3 Perbedaan Desain File Server dengan Client/Server
17
2.1.4.1 Client/Server Design Styles
Client / server desain dapat mengambil banyak bentuk, tergantung pada jenis
server dan hubungan antara server dan client. Gambar 2.3 menunjukkan client / server
interaksi untuk server database, server transaksi, objek server, dan server Web.
Perhatikan bahwa dalam setiap kasus, pengolahan dibagi antara server dan client. para
sifat komunikasi tergantung pada jenis server. Sebuah database server memproses
sebuah perintah SQL, server transaksi menangani satu set perintah SQL, sebuah objek
server melakukan pertukaran pesan dengan client, dan web server mengirimkan dan
menerima komunikasi berbasi internet (Gary B. Shelly, 2009, p.457).
18
Gambar 2.4 Interaksi client/server untuk server database, server transaksi,
objek server, dan server Web.
2.1.5 Database
Database adalah koleksi beberapa data yang saling berhubungan dan didesain
sedemikian hingga untuk memenuhi kebutuhan informasi dari suatu organisasi
(Connolly dan Begg, 2010, p.14). Sehingga database memegang peranan penting dalam
sebuah sistem untuk penyediaan informasi bagi usernya.
19
2.1.5.1 Relational Database
Relational database adalah sebuah kumpulan dari relasi yang telah dinormalisasi
dengan nama relasi yang jelas (Connolly dan Begg, 2010, p.74). Relational database
merupakan suatu tipe database yang berdasarkan model relational, dimana semua data
dapat dilihat oleh user, disusun dalam bentuk tabel-tabel dan semua operasi pada
database bekerja pada tabel-tabel tersebut. Relasi antar tabel pada relational database
sudah melalui tahap normalisasi dengan nama relasi yang berbeda-beda.
Ada 3 jenis relasi antar records pada tabel (Connolly dan Begg, 2010, p.344), yaitu
:
1. Relasi one-to-one adalah relasi antara satu record dengan satu record dalam tabel lain
yang saling berhubungan.
2. Relasi one-to-many adalah relasi antara satu record dengan lebih dari satu record
dalam tabel lain sehingga saling berhubungan.
3. Relasi many-to-many adalah relasi antara banyak record dengan lebih dari satu record
dalam tabel lain yang saling berhubungan.
20
2.1.6 SQLite
Menurut Owens (2006, p.1), SQLite adalah sebuah open source relational
database. Dirilis pada tahun 2000, SQLite didesain untuk menyediakan cara mudah bagi
aplikasi untuk mengatur data tanpa overhead yang sering timbul dari dedicated
relational database management systems. SQLite memiliki reputasi dalam hal
portabilitas, mudah digunakan, efisien, dan reliable.
SQLite memiliki arsitektur modular yang menggunakan pendekatan unik untuk
relational database management. SQLite terdiri dari delapan grup modul yang terpisah
dalam tiga subsistem utama. Modul ini membagi proses query menjadi beberapa diskrit
yang bekerja seperti sebuah perakitan. Stack teratas meng-compile query, bagian tengah
mengeksekusi, dan bagian bawah menangani penyimpanan dan interface dengan sistem
operasi (Owens, 2006, p.5).
2.1.7 Interaksi Manusia dan Komputer (IMK)
Tujuan dari Interaksi manusia dan komputer :
• Menghasilkan sistem yang bermanfaat, memiliki manfaat dan mudah
dioperasikan atau digunakan oleh user.
• Fungsi-fungsi yang dibuat dalam sistem dibuat sesuai dengan
perencanaan.
• Keamanan, perancangan keamaan yang baik untuk sistem apakah
memiliki tingkat pengamanan terhadap data atau tidak.
• Efektifitas dan Efisiensi, berpengaruh pada produktifitas kerja dari
usernya dan sistem yang dibuat harus berfungsi dengan baik.
21
Ruang lingkup interaksi manusia dan komputer meliputi 3 komponen:
• Manusia
Manusia merupakan user yang memakai komputer. User ini berbeda-
beda dan memiliki karakteristik masing-masing sesuai dengan
kebutuhan dan kemampuannya dalam menggunakan komputer.
• Komputer
Komputer merupkan peralatan elektronik yang meliputi piranti
keras(hardware) dan piranti lunak(software).
• Interaksi
Interaksi adalah komunikasi antara dua objek yang saling
mempengaruhi satu sama lain.
Pada interaksi manusia dan komputer terdapat 8 aturan emas dalam perancangan,
menurut Ben Schneiderman, Shneiderman's "Eight Golden Rules of Interface Design", 8
panduan untuk desain interaksi yang baik (B. Schneiderman & Catherine Plaisant, 2005,
p.74) :
1. Berusaha untuk konsisten
- Urutan tindakan yang konsisten, warna yang konsisten, tata letak yang
konsisten, font yang konsisten, dan sebagainya.
2. Memungkinkan user untuk sering menggunakan jalan pintas (shortcuts)
- Untuk menggunakan laju singkatan menggunakan interaksi, tombol
khusus, perintah tersembunyi, dan sebagainya.
22
3. Memberikan umpan balik yang informatif
- Untuk setiap tindakan yang dilakukan user, sistem harus merespon dalam
beberapa cara misalnya, tombol akan mengeluarkan suara klik atau
mengubah warna saat diklik untuk menampilkan sesuatu yang akan
dikenali oleh user sebagai tanda atau pemberitahuan.
4. Merancang dialog yang memberikan keadaan akhir
- Urutan tindakan harus diatur kedalam kelompok awal, tengah, dan akhir.
Umpan balik yang informatif pada tahap dimana user telah selesai
berinteraksi dengan sistem akan menginformasikan bahwa proses yang
dilakukan telah selesai.
5. Memberikan pencegahan kesalahan dan penanganan kesalahan yang
sederhana
- Jika user melakukan kesalahan, instruksi khusus harus ditulis untuk
mendeteksi kesalahan dan menawarkan instruksi sederhana, konstruktif,
dan khusus untuk tindakan pemulihan.
6. Memungkinkan pembalikan aksi yang mudah
- Jika user salah memilih menu, user tidak perlu takut untuk melanjutkan
program. User tinggal menekan button back maka akan kembali ke menu
sebelumnya.
7. Mendukung pusat kendali internal
8. Mengurangi beban ingatan jangka pendek
- Rancangan layar yang jelas terlihat, mudah dimengerti, dan mudah untuk
diingat oleh user akan mengurangi beban memori ingatan jangka pendek
user sistem.
23
2.1.8 XML
XML adalah sebuah meta-language (bahasa yang digunakan untuk
mendeskripsikan bahasa lain) yang memungkinkan seorang desainer membuat sendiri
tag yang menyediakan fungsi yang tidak tersedia pada HTML (Connolly dan Begg,
2010, p.1073). XML merupakan sebuah versi meta-language yang diturunkan dari
Standard Generalized Markup Language (SGML), yang didesain khusus untuk
dokumen website dan dapat mendukung perancang untuk menciptakan tag sendiri, yang
memiliki kemampuan untuk mendefinisikan, mentransmisikan, memvalidasikan dan
menginterpretasikan data antara aplikasi dan organisasi.
XML dikembangkan oleh World Wide Web Consortium (W3C) yang didukung
sekitar 150 orang anggotanya dan versi 1.0 pertama kali dirilis pada tahun 1998.
Keunggulan yang dimiliki XML antara lain (Connolly dan Begg, 2010, p.1074) :
• Simplicity, XML menggunakan bahasa yang sederhana, mudah dimengerti oleh
manusia dan mesin.
• Open standard and platform / vendor-independent, XML menggunakan standar
terbuka dan tidak tergantung pada platform tertentu.
• Extensibility, XML memungkinkan user untuk mendefinisikan tag sendiri sehingga
dapat dikembangkan sesuai dengan kebutuhan user.
• Reuse, XML memungkinkan libraries dari XML tags untuk dibangun sekali dan
dapat digunakan kembali oleh banyak aplikasi.
• Separation of content and presentation, XML memisahkan antara isi dan tampilan
dari suatu data sesuai dengan pengaturan yang diinginkan.
24
• Improved load balancing, data dapat ditampilkan pada browser dengan baik.
• Support for the integration of data from multiple source. Kemampuan
mengintegrasikan data dari berbagai macam sumber yang berbeda adalah hal
yang sulit dan memakan waktu.XML dapat menggabungkan data dari banyak
sumber yang berbeda dengan cara yang mudah.
• Ability to describe data from a wide variety of applications, XML dapat digunakan
untuk mendeskripsikan data yang terdapat pada aplikasi yang berbeda.
• More advanced search engine, dengan XML mesin pencarian akan mampu untuk
menyederhanakan berbagai macam tags.
• New opportunities, XML memiliki banyak kelebihan yang dapat dihadirkan dalam
banyak aplikasi teknologi saat ini. Struktur hirarkisnya cocok untuk kebanyakan
tipe dokumen.
Kekurangan-kekurangan XML :
• Parser harus didesain untuk memahami struktur data bersarang yang berubah-ubah
dan harus melakukan pengecekan tambahan untuk mendeteksi sintaks atau data
yang tidak terformat atau terurut dengan benar.
• Urutan penekanan tombol untuk mengetikkan ekspresi XML pada keyboard
standar komputer seringkali tidak flesksible.
XML menggunakan teknologi Document Type Definitions (DTDs) yang dapat
mendefinisikan sintaksis yang valid dari dokumen XML.
25
2.1.8.1 Deklarasi XML
Sebuah file XML diawali dengan pilihan deklarasi XML, yang menunjukan versi
XML yang digunakan oleh penulis dalam dokumen, encoding system yang digunakan
dan menentukan apakah ada deklarasi external markup yang perlu dimasukkan. XML
bersifat case-sensitive (huruf kecil tidak sama dengan huruf besar). Artinya tag <home>
dan <Home> merupakan hal yang berbeda.
2.1.8.2 Element XML
Element atau tag, adalah bentuk umum dalam markup. Elemen pertama pasti
adalah sebuah root element, yang terdiri atas banyak sub element lain. Sebuah dokumen
XML harus mempunyai satu root element.
2.1.8.3 Atribut XML
Atribut adalah pasangan nama dan nilai yang mendeskripsikan informasi tentang
suatu element. Atribut diletakkan dalam tag awal setelah nama elemen dan nilai atribut
ada dalam tanda petik. Contoh :
<STAFF brachNo=”B001”>.
Jika sudah diberikan atribut maka dapat ditunjukkan element itu adalah element
yang kosong, contoh: <SEX gender=”M”/>.
2.1.8.4 Entity References
Setiap entiti harus memiliki nama yang unik dan userannya dalam sebuah
dokumen XML disebut dengan entity references. Sebuah entity references diawali
26
dengan tanda dan (&) dan diakhiri dengan titik koma (;). Entity references adalah
karakter yang mengganti illegal character di XML.
2.1.8.5 Komentar XML
Komentar pada XML menggunakan sintaks sama seperti komentar pada HTML.
Contoh :
<!-- komentar -->
Komentar ini dapat mengandung semua string kecuali ‘--’.
2.2 Teori–teori Khusus
Teori-teori khusus yang berkaitan dalam topik skripsi disini adalah tentang
Android, Enkripsi, Kriptografi, Hashing, dan Rapid Application Development.
2.2.1 Android
Android adalah sebuah aplikasi platform telepon seluler yang open source. Android
utamanya adalah produk Google, tetapi lebih tepatnya Open Handset Alliance. Open
Handset Alliance adalah aliansi dari 30 organisasi yang berkomitmen untuk membawa
sebuah perangkat seluler yang lebih baik dan terbuka untuk pasar.
Android adalah platform terbuka pertama untuk perangkat mobile, tetapi tanpa
gangguan berarti yang mengganggu inovasi. Android adalah sebuah lingkungan
perangkat lunak yang dibangun untuk perangkat-perangkat mobile. (Ableson, 2009, p.4)
Android termasuk kernel berbasis Linux, user interface yang kaya, aplikasi end-
user,framework aplikasi, dukungan multimedia,dan masih banyak lainnya. User
27
application dibangun berbasiskan bahasa pemograman Java. Bahkan aplikasi yang
dibangun juga berbasiskan Java.
Beberapa komponen yang ada dalam Android :
• Kapabilitas konektivitas seperti Wi-Fi dan Bluetooth yang ditemukan.
• Kode-kode libraries yang meliputi :
- Teknologi browser seperti WebKit.
- Dukungan database SQLite.
- Dukungan grafis, yang meliputi 2D, 3D, animasi dari SGL, dan
OPENGLES.
• Dukungan servis meliputi :
- Activity dan Views.
- Telephony.
- Windows.
- Resources.
- Location-Based Services.
2.2.1.1 Arsitektur Android
Dalam paket sistem operasi android tediri dari beberapa unsur seperti tampak
pada gambar di bawah. Secara sederhana arsitektur android merupakan sebuah kernel
28
Linux dan sekumpulan pustaka C / C++ dalam suatu framework yang menyediakan dan
mengatur alur proses aplikasi.
1) Linux Kernel
Tumpukan paling bawah pada arsitektur Android ini adalah kernel. Google
menggunakan kernel Linux versi 2.6 untuk membangun sistem Android, yang mencakup
memory management, security setting, power management, dan beberapa driver
hardware. Kernel berperan sebagai abstraction layer antara hardware dan keseluruhan
software. Sebagai contoh, HTC GI dilengkapi dengan kamera. Kernel Android terdapat
driver kamera yang memungkinkan user mengirimkan perintah kepada hardware
kamera.
Pada Android hanya terdapat beberapa servis yang diperlukan seperti keamanan,
manajemen memori, manajemen proses, jaringan dan driver. Kernel linux menyediakan
driver layar, kamera, keypad, Wi-Fi, Flash Memory, audio, dan IPC (Interprocess
Communication) untuk mengatur aplikasi dan lubang keamanan.
2) Libraries
Bertempat divlevel yang sama dengan Android Runtime adalah Libraries.
Android menyertakan satu set library-library dalam bahasa C/C++ yang digunakan oleh
berbagai komponen yang ada pada sistem Android. Kemampuan ini dapat diakses oleh
programmer melewati Android application framework. Sebagai contoh Android
mendukung pemutaran format audio, video, dan gambar.
Berikut ini beberapa core library tersebut :
29
- Media Libraries
Berdasarkan PacketVideo's OpenCORE; library-library ini mendukung playback dan
recording dari berbagai format audio and video popular, meliputi MPEG4, H.264, MP3,
AAC, AMR, JPG, dan PNG.
- Surface Manager
Mengatur akses pada display dan lapisan composites 2D and 3D grafik dari berbagai
aplikasi.
- LibWebCore
Web browser engine moderen yang mendukung Android browser maupun embeddable
web view
Library-library tersebut bukanlah aplikasi yang berjalan sendiri, namun hanya
dapat digunakan oleh program yang berada di level atasnya. Sejak versi Android 1.5,
pengembang dapat membuat dan menggunakan pustaka sendiri menggunakan Native
Development Toolkit (NDK).
3) Android Runtime
Pada android tertanam paket pustaka inti yang menyediakan sebagian besar
fungsi android. Inilah yang membedakan Android dibandingkan dengan sistem operasi
lain yang juga mengimplementasikan Linux. Android Runtime merupakan mesin virtual
yang membuat aplikasi Android menjadi lebih tangguh dengan paket pustaka yang telah
ada. Dalam Android Runtime terdapat 2 bagian utama, diantaranya:
30
• Pustaka Inti, Android dikembangkan melalui bahasa pemrograman Java, tapi Android
Runtime bukanlah mesin virtual Java. Pustaka inti Android menyediakan hampir semua
fungsi yang terdapat pada pustaka Java serta beberapa pustaka khusus Android.
4) Application Framework
Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk
mengembangkan aplikasi Android. Selain itu, juga menyediakan abstraksi generik untuk
mengakses perangkat, serta mengatur tampilan user interface dan sumber daya aplikasi.
Bagian terpenting dalam kerangka aplikasi Android adalah sebagai berikut (Burnette,
2009, p.31):
1. Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan untuk
navigasi useran.
2. Content Providers, berfungsi untuk merangkum data yang memungkinkan
digunakan oleh aplikasi lainnya, seperti daftar nama.
3. Resource Manager, untuk mengatur sumber daya yang ada dalam program.
Serta menyediakan akses sumber daya diluar kode program, seperti karakter,
grafik, dan file layout.
4. Location Manager, berfungsi untuk memberikan informasi detail mengenai
lokasi perangkat Android berada.
5. Notification Manager, mencakup berbagai macam peringatan seperti, pesan
masuk, janji, dan lain sebagainya yang akan ditampilkan pada status bar.
31
5) Application Layer
Puncak dari diagram arsitektur Android adalah lapisan aplikasi dan widget.
Lapisan aplikasi merupakan lapisan yang paling tampak pada user ketika menjalankan
program. User hanya akan melihat program ketika digunakan tanpa mengetahui proses
yang terjadi dibalik lapisan aplikasi. Lapisan ini berjalan dalam Android runtime dengan
menggunakan kelas dan service yang tersedia pada framework aplikasi.
Lapisan aplikasi Android sangat berbeda dibandingkan dengan sistem operasi
lainnya. Pada Android semua aplikasi, baik aplikasi inti (native) maupun aplikasi pihak
ketiga berjalan diatas lapisan aplikasi dengan menggunakan pustaka API (Application
Programming Interface) yang sama.
2.2.2 Enkripsi
Enkripsi adalah proses perubahan data menjadi sebuah bentuk yang tidak dengan
mudah dapat dimengerti oleh orang yang tidak berhak (Carr, 2010, p.192). Dengan kata
lain enkripsi berarti mengubah data asli menjadi data samar. Proses kebalikannya yaitu
mengubah data samar menjadi data asli atau data yang dapat dimengerti dikenal dengan
dekripsi. Proses enkripsi membutuhkan bantuan cipher, yakni sebuah key untuk
menterjemahkan data asli ke data samar atau sebaliknya.
2.2.3 Kriptografi
Untuk melakukan enkripsi, diperlukan beberapa teknik agar informasi didalam
data tidak dapat dilihat oleh orang yang tidak berhak yang dikenal dengan kriptografi.
Berasal dari bahasa Yunani, kryptos, kriptografi adalah bagian dari information security.
32
Secata sederhana, kriptografi dapat digambarkan dengan proses menerjemahkan
plaintext menjadi ciphertext (Carr, 2010, p.192). Plaintext adalah teks atau data yang
asli, sedangkan ciphertext adalah teks atau data yang dienkripsi dengan bantuan sebuah
key yang lebih dikenal dengan cipher.
2.2.4 Hashing
Hashing adalah suatu algoritma yang menghasilkan ciphertext dengan panjang
tertentu dari suatu plaintext (Carr, 2010, p.196). Panjang dari plaintext tidak
menentukan panjang dari ciphertext karena ciphertext yang dihasilkan pasti selalu sama
dengan algoritma hashing. Hashing berbeda dengan enkripsi karena ciphertext pada
hashing tidak dapat dikembalikan ke bentuk plaintext. Hashing efektif bila ukuran dari
plaintext tidak terlalu panjang, dan menjadi kurang efektif bila ukuran dari plaintext
panjang karena dimungkinkan 2 atau lebih plaintext panjang yang berbeda mempunyai
ciphertext yang sama.
2.2.5 Rapid Application Development
Rapid application development (RAD) atau rapid prototyping adalah model
proses pembangunan perangkat lunak yang tergolong dalam teknik bertingkat. RAD
menekankan pada siklus pembangunan pendek, singkat, dan cepat. Waktu yang singkat
adalah batasan yang penting untuk model ini. Rapid application development
menggunakan metode berulang dalam mengembangkan sistem dimana working model
sistem dikonstruksikan diawal tahap pengembangan dengan tujuan menetapkan
kebutuhan user dan selanjutnya disingkirkan. Working model digunakan kadang-kadang
sebagai basis desain dan implementasi sistem akhir.
33
Dalam membangun sistem menggunakan RAD terdapat empat fase didalamnya
(Gary B. Shelly, 2009), yaitu :
1. Requirements Planning Phase : Kombinasi elemen dari fase sistem perancangan
dan analisis dari System Development Life Cycle. Seluruh elemen dari fase ini
mendiskusikan sistem kebutuhan program dan mendapatkan solusi untuk
perancangan sistem.
2. User Design Phase : Dalam fase ini mulai dibuat analisis sistem dan model
pengembangan serta prototipe yang menggambarkan keseluruhan sistem dalam
program meliputi input, process, output. Pembuatan desain ini
mengkombinasikan teknik Joint Application Development (JAD) dan CASE
untuk mendapatkan kebutuhan user dan mengubahnya menjadi model. Dalam
pembuatan desain user ini juga menyertakan user untuk mengerti, mengubah,
dan memastikan model sistem yang dibuat seperti kebutuhan user.
3. Construction Phase : Fokus pada program dan pengembangan aplikasi seperti
pada System Development Life Cycle. Didalam RAD user melanjutkan untuk
berpartisipasi dan masih dapat memberikan keinginan untuk merubah atau
perbaikan sistem yang sudah dibuat. Dalam fase ini pengembangan
menitikberatkan pada pemrograman, integrasi unit, dan pengetesan sistem.
4. Cutover Phase : Ini merupakan fase akhir dalam RAD yang mencakup
implementasi, konversi data, pengetesan akhir pada sistem, dan pelatihan user.
Apabila dibandingkan dengan metode yang lama, prosesnya lebih singkat.
Sehingga pada akhirnya hasil dari sistem yang dibuat lebih cepat.
34
Gambar 2.5 Fase pada RAD
Dari penjelasan diatas dapat disimpulkan bahwa metode pengembangan aplikasi
dengan menggunakan RAD membuat waktu pengerjaan aplikasi lebih cepat, hasil lebih
baik karena terdapat kontrol user pada pengembangan sistem akan tetapi biaya yang
dikeluarkan lebih besar dan juga membutuhkan manajemen yang baik.