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
7
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 :
Tools Methods Process A Quality Focus
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
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 berbedabeda 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
dan 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 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 enduser,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.