BAB II LANDASAN TEORI 2.1. Sejarah Android Android adalah

advertisement
BAB II
LANDASAN TEORI
2.1. Sejarah Android
Android adalah sebuah sistem operasi untuk perangkat mobile
berbasis linux yang mencakup sistem operasi dan aplikasi.
Android
menyediaan platform terbuka bagi para pengembangan untuk menciptakan
aplikasi. Awalnya, Google.inc (www.google.com) membeli Android Inc
(www.android.com) yang merupakan pendatang baru yang membuat
perangkat lunak untuk telepon selular (ponsel) atau smartphone. Untuk
mengembangkan android, dibentuklah Open Handset Alliance (OHA), sebuah
perusahaan konsorsium dari 34 perusahaan peranti lunak (software), peranti
keras (hardware) dan telekomunikasi seperti google inc., HTC, Intel,
motorolla, Qualcomm, T-mobile dan Nvidia.
Pada saat peluncuran perdana, 5 November 2007, Android bersama
OHA menyatakan mendukung pengembangan open source pada perangkat
mobile. Di lain pihak, google inc. meliris kode-kode android di bawah lisensi
apache, sebuah lisensi perangkat lunak dan open platform perangkat ponsel.
Saat ini terdapat 2 (dua) jenis distributor sistem operasi android.
Pertama yang mendapat dukungan penuh dari google atau Google Mail
Service (GMS) dan kedua adalah yang benar-benar bebas distribusinya tanpa
dukungan langsung google dikenal sebagai Open Handset Distribution
(OHD)[2].
7
Android merupakan OS Mobile yang tumbuh di tengah OS lainnya,
seperti Windows Mobile, i-Phone Mobile OS, Symbian dan masih banyak
lagi yang menawarkan kekayaan isi dan keoptimalan dalam berjalan di atas
perangkat hardware yang ada. Android menawarkan sebuah lingkungan yang
berbeda untuk pengembang. Setiap aplikasi memiliki tingkat yang sama.
Android tidak membedakan antara aplikasi inti dengan aplikasi pihak ketiga.
API yang disediakan menawarkan akses ke hardware, maupun data – data
ponsel sekalipun atau data system sekalipun. Bahkan pengguna dapat
menghapus aplikasi inti dan menggantikannya dengan pihak ketiga [2].
Android OS Mobile menguasai lebih dari 30% pasar ponsel di
seluruh dunia pada saat ini. 1 Sebagian besar pengguna ponsel saat ini lebih
memilih Android mobile phonenya karena Aplikasi yang bervariasi dan
interaktif, Open Source, mudah digunakan, integrasi dengan situs sosial,
kemudahan instalasi program dan harga terjangkau.
2.2. Fitur dan Arsitektur Android
Fitur yang tersedia pada Android adalah:

Framework aplikasi: memungkinkan penggunaan dan pemindahn dari
komponen yang tersedia.

Dalvik Virtual Machine: virtual machine yang dioptimalkan untuk
perangkat mobile.

Grafik: grafik 2D dan grafik 3D yang didasarkan pada library OpenGL.

SQLite: untuk penyimpanan data.
1
Yuan Yudistira, Membuat Aplikasi iPhone, Android, & BlackBerry Itu Gampang (Jakarta: Mediakita,
2011), hal4.
8

Mendukung Media: audio, video dan berbagai format gambar.

GSM, Bluetooth, EDGE, 3G and WIFI

Camera, GPS, Compass dan Accelerometer

Lingkungan pengembangan yang kaya, termasuk diantaranya emulator,
peralatan debugging dan plugin untuk eclipse IDE.
System operasi Android dibangun berdasarkan kernel Linux dan memiliki
arsitektur sesuai gambar 2.1.
Gambar 2.1. Arsitektur Android [2]
Application
Lapisan ini adalah lapisan aplikasi, yaitu serangkaian aplikasi yang terdapat
pada perangkat mobile. Aplikasi inti yang terdapat pada Android diantaranya
9
termasuk kalender, kontak, SMS, dsb. Aplikasi – aplikasi ini ditulis dengan
bahasa pemrograman Java.
Application Framework
Lapisan selanjutnya adalah application framework, yang mencakup program
untuk mengatur fungsi-fungsi dasar smartphone. Application Framework
merupakan serangkaian tool dasar seperti alokasi resource smartphone,
aplikasi telepon, pergantian antar - proses atau program, dan pelacakan lokasi
fisik telepon. Para pengembang aplikasi memiliki aplikasi penuh kepada tooltool dasar tersebut, dan memanfaatkannya untuk menciptakan aplikasi yang
lebih kompleks.
Libraries
Satu set libraries dalam bahasa C/C++ yang digunakan oleh berbagai
komponen pada system Android.
Android Runtime
Android Runtime ini berisi Core Libraries dan Dalvik Virtual Machine. Satu
set libraries inti yang menyediakan sebagian besar fungsi yang tersedia di
libraries inti dari bahasa pemrograman Java.
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
10
beberapa driver hardware. Kernel berperan sebaagai abstraction layer antara
hardware dan keseluruhan software.
2.3. Komponen Dasar Android
Google menjabarkan aplikasi Android ke dalam empat blok bangunan
dasar (tidak semua aplikasi mempunyai keempatnya) yaitu :

Activities : yaitu ketika sebuah aplikasi memunculkan screen di layar.
Sebagai contoh, sebuah aplikasi GPS mempunyai screen peta dasar,
screen rencana perjalanan, dan screen rute di atasnya. Ketiga
penampakan screen ini disebut activities.

Intents : yaitu mekanisme perpindahan dari suatu activity ke activity
lainnya. Sebagai contoh ketika merencanakan perjalanan pada aplikasi
GPS, intent akan menginterpretasi input dan mengaktifkan screen rute
di atas screen peta.

Services : yaitu serupa dengan service di PC dan server, program yang
berjalan di belakang layar, tanpa interferensi dari pengguna.

Content Provider : yaitu mekanisme yang memungkinkan sebuah
aplikasi berbagi informasi dengan aplikasi lainnya.
11
2.4. Java
Java merupakan bahasa pemrograman yang dikembangkan agar mampu
berjalan di atas berbagai platform perangkat keras dan perangkat lunak yang
berbeda. Hal ini merupakan terobosan yang cukup besar, sebab aplikasi
sebelumnya dikembangkan hanya untuk sistem operasi tertentu. Bahasa
pemrograman Java saat ini bisa digunakan untuk mengembangkan aplikasi
desktop, yaitu menggunakan JSE (Java Standard Edition) dan aplikasi yang
berjalan di internet, yaitu menggunakan JEE (Java Enterprise Edition).
Dalam
mengembangkan
aplikasi,
Java
menggunakan
metodologi
pengembangan berorietasi objek (OOP[Object Oriented Project]) [5].
2.5. SQLite Database
Gambar 2.2. Logo SQLite [2]
Database adalah kumpulan data yang saling berhubungan yang
disimpan secara bersamaan sedemikian rupa tanpa pengulangan (redudansi)
yang tidak perlu untuk memenuhi berbagai kebutuhan[1].
SQLiteDatabase merupakan interface yang ada pada sistem operasi
Android yang digunakan untuk membuat relational database. SQLite
menyokong implementasi dari SQL yang kaya untuk apa pun yang
dibutuhkan oleh aplikasi mobile. Setiap aplikasi dapat memiliki databasenya
sendiri dengan pengaturan yang lengkap[2].
12
SQLite merupakan sebuah sistem manajemen basisdata relasional
yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif
kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat public
domain yang dikerjakan oleh D. Richard Hipp.
Tidak seperti pada paradigma client-server umumnya, Inti SQLite
bukanlah sebuah sistem yang mandiri yang berkomunikasi dengan sebuah
program, melainkan sebagai bagian integral dari sebuah program secara
keseluruhan. Sehingga protokol komunikasi utama yang digunakan adalah
melalui pemanggilan API secara langsung melalui bahasa pemrograman.
Mekanisme seperti ini tentunya membawa keuntungan karena dapat
mereduksi overhead, latency times, dan secara keseluruhan lebih sederhana.
Seluruh elemen basisdata (definisi data, tabel, indeks, dan data) disimpan
sebagai sebuah file. Kesederhanaan dari sisi disain tersebut bisa diraih dengan
cara mengunci keseluruhan file basis data pada saat sebuah transaksi dimulai.
Pustaka SQLite mengimplementasikan hampir seluruh elemenelemen standar yang berlaku pada SQL-92, termasuk transaksi yang bersifat
atomic, konsistensi basisdata, isolasi, dan durabilitas (dalam bahasa inggris
lebih sering disebut ACID), trigger, dan kueri-kueri yang kompleks. Tidak
ada pengecekan tipe sehingga data bisa dientrikan dalam bentuk string untuk
sebuah kolom bertipe integer. Beberapa kalangan melihat hal ini sebagai
sebuah inovasi yang menambah nilai guna dari sebuah basisdata, utamanya
ketika digunakan dalam bahasa pemrograman berbasis script (PHP, Perl),
sementara kalangan lain melihat hal tersebut sebagai sebuah kekurangan.
13
2.6. E-Commerce
E-commerce (elektronik commerce) adalah penyebaran, pembelian,
penjualan, pemasaran barang dan jasa melalui system elektronik seperti
internet, televisi ataupun jaringan komputer lainnya. E-Commerce dapat
menyebabkan transfer dana elektronik, pertukaran data elektronik, system
manajemen inventori otomatis dan pengumpulan data otomatis.
Aktivitas bisnis selalu membutuhkan tempat, maka jelaslah bahwa
aplikasi e-Commerce dibangun di atas infrastruktur teknologi yang ada.
Aplikasi e-Commerce ditopang oleh berbagai infrastruktur, sedangkan
implementasinya terdiri dari empat wilayah utama: manusia, kebijakan
publik, standar dan protokol teknis, serta organisasi lain [7].
Alasan menggunakan e-Commerce sebagai media periklanan
adalah[7]:

Banyak orang yang telah melewatkan waktunya di depan komputer
dan meninggalkan media TV;

Iklan dapat diupdate setiap waktu dengan biaya yang minimal;

Iklan dapat menjangkau pembeli potensial dalam jumlah yang
sangat besar;

Iklan online lebih murah, jika dibandingkan televisi ataupun media
cetak;
14
2.7. Pemodelan Sistem
2.6.1. Diagram ER (Diagram Entity Relationship)
Diagram ER adalah diagram yang digunakan untuk merancang
database dengan menggunakan Entity dan Relationship. Konsep
dasarnya diagram ER adalah model konseptual untuk menggambarkan
struktur logis dari basisdata berbagai grafis[1].
Berikut adalah simbol yang digunakan pada Diagram ER[1]:
Tabel 2.1 Simbol Diagram ER
Simbol
Nama
Entity
Keterangan
Objek
yang
dapat
dibedakan dalam dunia
nyata.
Hubungan yang terjadi
Relationship
antara satu atau lebih
dari entity.
Karakteristik dari Entity
atau relationship, yang
menyediakan penjelasan
Atribut
detail
tentang
atau
tersebut.
15
entity
relationship
2.6.2. Pemrograman Berorientasi Objek
Sebuah
program
berorientasi
objek
(Object
Oriented
Programming) merupakan program dengan paradigma pemrograman
yang berorientasi kepada objek. Semua data dan fungsi dibungkus
dalam kelas – kelas atau objek – objek. Model data berorientasi
memberikan fleksibilitas yang lebih, kemudahan merubah program
dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh
lagi, pemrograman OOP lebih mudah dipelajari, dikembangkan dan
dirawat.
Suatu program disebut pemrograman berbasis Object (OOP)
karena terdapat kelas, objek, abstraksi, encapsulation, inheritance dan
polymorphism.

Kelas
Kelas adalah sekumpulan data dan fungsi dalam satu kesatuan
untuk tujuan tertentu. Contohnya, misalnya ada kelas “pensil”
dimana kelas pensil ini merupakan turunan dari kelas “alat_tulis”.

Objek
Membungkus data dan fungsi bersama menjadi suatu unit dalam
sebuah program komputer. Objek merupakan kosep dasar dari
modularitas dan struktur dalam sebuah program computer
berbasis orientasi objek.

Abstraksi
Yaitu kemampuan sebuah program untuk melewati aspek
informasi
yang
diproses
16
olehnya,
artinya
kemapuan
memfokuskan pada inti. Setiap objek dalam system melayani
sebagai model dari “pelaku” abstrak yang dapat melakukan kerja,
laporan dan perubahan keadaannya serta berkomunikasi dengan
objek lainnya dalam system.

Encapsulation
Adalah pembungkusan variable dan method dalam sebuah objek
yang terlindungi serta menyediakan interface untuk mengakses
variable tersebut.

Inheritance
Pewarisan merupakan pewarisan atribut dan method dari sebuah
class ke class lainnya.

Polymorphism
Polimorpisme adalah kemampuan suatu objek untuk mempunyai
lebih dari satu bentuk.
17
2.6.3. Unified Modelling Language (UML)
Unified Modelling Language (UML) adalah bahasa pemodelan
untuk sistem atau perangkat lunak yang berparadigma berorientasi
objek[4]. Pemecahan masalah utama dari Object Oriented biasanya
dengan penggambaran dalam bentuk model. Beberapa tools yang
dipakai adalah bagian dari dasar UML. UML terdiri dari beberapa
diagram, yaitu:
 Diagram Use Case
Diagram Use Case menggambarkan apa saja aktifitas yang
dilakukan oleh system dari sudut pandang pengamatan luar.
Kemudian akan timbul pertanyaan apa yang dilakukan dan
bagaimana melakukannya.
 Diagram Class
Diagram class memberikan pandangan secara luas dari suatu
system dengan menunjukkan kelas – kelasnya dan hubungan
mereka. Diagram class mempunyai tiga macam relationship, yaitu:
assotiation, aggregation dan generalization.
 Diagram Sequence
Merupakan diagram yang menjelaskan bagaiman suatu operasi
dilakukan, message apa yang dikirim dan kapan pelaksanaannya.
Objek – objek yang berkaitan dengan proses berjalannya operasi
diurutkan dari kiri ke kanan berdasarkan waktu terjadinya dalam
pesan yang terurut. Oleh karena itu, diagram ini diatur oleh waktu.
18
 Diagram Activity
Diagram activity berfokus pada aktifitas – aktifitas yang terjadi
yang terkait dalam proses tunggal. Dengan kata lain, diagram ini
menunjukkan bagaimanan aktifitas – aktifitas tersebut saling
bergantung satu dengan yang lain.
Sesungguhnya, transformasi diagram – diagram UML ke
dalam bentuk kode – kode Java itu bersifat mekanis. Dalam
pengembangan sistem aplikasi Java yang menggunkan paradigma
“pemrograman berorientasi objek”, para analis dan perancang sistem
menggunakan diagram – diagram UML sebagai sarana untuk
menganalisis permasalahan yang dihadapi dan juga sebagai sarana
perancangan sistem/aplikasi untuk membuat solusi terpadu[5].
2.8. Pengujian Perangkat Lunak
Berdasarkan standar IEEE, pengujian perangkat lunak memiliki
pengertian segala aktivitas yang dilakukan untuk mengevaluasi kualitas
produk dan untuk mengembangkannya dengan mengidentifikasi kelemahan
dan permasalahan yang terjadi[6].
Jenis pengujian black box testing fungsional adalah salah satu jenis
dari pengujian. Pada jenis ini, perangkat lunak diuji untuk persyaratan
fungsional. Pengujian dilakukan dalam bentuk tertulis untuk memeriksa
apakah aplikasi berjalan seperti yang diharapkan[6].
19
2.9. Eclipse
Eclipse adalah sebuah IDE (Integrated Development Environment)
untuk mengembangkan perangkat lunak dan dapat dijalankan di semua
platform. Pada saat ini, Eclipse merupakan salah satu IDE favorit karena
gratis dan open source[3].
2.8.1. Sejarah Eclipse
Bulan November tahun 2001, IBM (International Business
Machine), sebuah perusahaan komputer berskala internasional di
Amerika Serikat, menginventasikan US$ 40 juta untuk pengembangan
produk Eclipse. Awalnya Eclipse ini dikembangkan oleh IBM untuk
menggantikan perangkat lunak IBM Visual Age for Java 4.0. Sejak 5
November 2001, konsorsium Eclipse Foundation mengambil alih
pengembangan Eclipse lebih lanjut[3].
2.8.2. Arsitektur Eclipse
Sejak versi 3.0 Eclipse pada dasarnya merupakan sebuah kernel.
Yaitu apa yang digunakan pada Eclipse sebenarnya adalah fungsi dari
plug-in yang terinstall. Secara standar Eclipse selalu dilengkapi JDT
(Java Development Tools), plug-in ini yang membuat Eclipse
kompatibel untuk mengembangan program Java [3].
2.8.3. Versi Eclipse[3]
Sejak tahun 2006, Eclipes Foundation mengkoordinasikan
peluncuran Eclipse secara rutin dan simultan yang dikenal dengan
nama Simultaneous Release.
20
Tujuannya adalah menyediakan distribusi Eclipse dengan fitur –
fitur dan versi terstandarisasi dan untuk mempermudah deployment,
maintenance serta kenyamanan pengguna.
Tabel 2.2 Versi Eclipse
Kode Peluncuran
Eclipse 3.0
Tanggal Peluncuran
28 Juni 2004
Platform
3.0
Eclipse
28 Juni 2005
3.1
Callisto
30 Juni 2006
3.2
Callisto Project
Europa
29 Juni 2007
3.3
Europa Project
Ganymede
25 Juni 2008
3.4
Ganymede Project
Galileo
24 Juni 2009
3.5
Galileo Project
Helios
23 Juni 2010
3.6
21
Nama Proyek
Download