BAB 2 LANDASAN TEORI Teori Umum 2.1
Perangkat Lunak Menurut Roger Pressman dalam bukunya Software Engineering a Practitioner’s Approach ( 2010, p13 ) perangkat lunak adalah teknologi yang berlapis. Setiap pendekatan rekayasa perangkat lunak harus berakhir pada komitmen organisasi ke kualitas. Manajemen mutu total, six sigma, dan filosofi yang sama mengembangkan budaya proses perbaikan berkesinambungan, dan budaya ini akhirnya mengarah pada pengembangan pendekatan yang semakin efektif untuk rekayasa perangkat lunak. Landasan yang mendukung software engineering adalah fokus kualitas. Menurut Pressman ( 2010, p13 ), komponen metodologi pengembangan perangkat lunak dapat dibagi dalam tiga unit, yaitu : •
Proses Proses rekayasa perangkat lunak adalah lem yang memegang lapisan teknologi bersama dan memungkinkan pengembangan rasional dan tepat waktu dari perangkat lunak komputer. Proses mendefinisikan kerangka kerja untuk satu set area proses kunci yang harus dibentuk untuk pengiriman yang efektif dari teknologi rekayasa perangkat lunak. Bidang utama membentuk dasar bagi kontrol manajemen proyek perangkat lunak dan menetapkan konteks dimana metode teknis telah diterapkan, produk
6
7 kerja telah dihasilkan, milestone telah dibangun, kualitas dijamin, dan perubahan dikelola dengan baik. •
Metode Metode rekayasa perangkat lunak memberikan teknik bagaimana membangun perangkat lunak. Metode mencakup array yang luas dari tugas-tugas yang mencakup analisis kebutuhan, desain, konstruksi program, pengujian dan dukungan, rekayasa perangkat lunak relay metode pada serangkaian prinsip dasar yang mengatur setiap area teknologi dan termasuk aktivitas pemodelan dan teknik deskriptif lain.
•
Peralatan Alat rekayasa perangkat lunak memberikan dukungan otomatis atau semi-otomatis untuk proses atau metode. Ketika alat terintegrasi sehingga informasi yang dibuat oleh satu alat yang dapat digunakan oleh yang lain, sebuah sistem untuk mendukung pengembangan perangkat lunak, yang disebut
Computer-Aided
Software
Engineering
didirikan.
CASE
menggabungkan software, hardware, dan database software engineering untuk membuat lingkungan rekayasa perangkat lunak untuk analog CAD / CAE ( Computer-Aided Design / Engineering ) untuk hardware.
Gambar 2.1 Software Engineering Layers (Pressman, 2010, p14)
8 2.1.1
Waterfall Model Menurut Pressman ( 2010, p39 ), salah satu model pengembangan sistem adalah dengan model waterfall. Waterfall model adalah model yang paling populer dan sering dianggap sebagai pendekatan klasik dalam daur hidup pengembangan sistem. Adapun tahapannya sebagai berkut : •
Communication Pada
tahap
ini
akan
dilakukan
inisiasi
proyek,
seperti
menganalisis masalah yang ada dan tujuan yang akan dicapai. Selain itu dilakukan juga requirements gathering, dimana akan dikumpulkan requirement dari user melalui analisis kuisioner. •
Planning Tahap ini merupakan tahap dimana akan dilakukan estimasi mengenai kebutuhan-kebutuhan yang diperlukan untuk membuat sebuah sistem. Selain itu, penjadwalan dalam proses pengerjaan juga ditentukan pada tahap ini.
•
Modeling Kemudian mulai masuk pada tahap perancangan dimana perancang menerjemahkan kebutuhan sistem kedalam representasi untuk menilai kualitas sebelum tahap selanjutnya dikerjakan. Tahap ini lebih difokuskan pada atribut program, seperti struktur data, arsitektur perangkat lunak, dan detail prosedur.
9 •
Construction Tahap ini merupakan tahap dimana perancangan diterjemahkan ke dalam bahasa yang dimengerti oleh mesin. Setelah itu dilakukan pengetesan / pengujian terhadap sistem yang telah dibuat.
•
Deployment Setelah proses pengkodean dan pengujian selesai, dilakukan pengiriman yang artinya implementasi kepada masyarakat luas. Pada tahap ini juga dilakukan pemeliharaan, perbaikan, dan pengembangan agar sistem tersebut tetap dapat berjalan sebagaimana fungsinya. Urutan proses lebih jelasnya dapat dilihat pada gambar 2.2.
Gambar 2.2 Waterfall Model
2.2
Database Database adalah kumpulan data yang saling berhubungan dan didesain sedemikian rupa untuk memenuhi kebutuhan informasi dari suatu organisasi. Database adalah sebuah tempat penyimpanan dari data yang digunakan secara bersamaan oleh banyak departemen dan pengguna. Database tidak lagi dimiliki oleh satu departemen tetapi menjadi sumber daya bersama dalam perusahaan.
10 Database tidak hanya memegang data operasional organisasi tetapi juga deskripsi dari data tersebut. Untuk alasan ini, database juga diartikan sebagai sekumpulan data terintegrasi yang mejelaskan dirinya sendiri. (Connolly dan Begg, 2010, p14). 2.2.1
Relational Database Relational database adalah sebuah kumpulan dari relasi yang telah dinormalisasi dengan nama relasi yang jelas (Connolly dan Beg, 2010, p74). Relational database merupakan suatu tipe database yang berdasarkan model relational, dimana semua data dapat dilihat oleh pengguna, 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. Terdapat 3 jenis relasi antar-record dalam tabel (Connolly dan Beg, 2010, p344), 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 antar satu record dengan lebih dari satu record dalam tabel lain sehingga saling berhubungan. 3. Relasi many-to-many adalah relasi antar banyak record dengan lebih dari satu record dalam tabel lain yang saling berhubungan.
2.2.2
Database Management System (DBMS) DBMS (Database Management System) adalah sebuah sistem software yang memungkinkan pengguna untuk mendefinisikan, memuat,
11 memelihara, dan mengatur akses ke dalam database (Connolly dan Beg, 2010, p16). DBMS merupakan sebuah software yang berinteraksi dengan pengguna program aplikasi dan database. Sebuah DBMS menyediakan beberapa fasilitas sebagai berikut : 1. Data Definition Language (DDL) DDL
adalah
sebuah
bahasa
yang
mengijinkan
Database
Administrator atau pengguna untuk menggambarkan dan memberi nama dari entitas, attribute, dan relationship yang dibutuhkan untuk aplikasi bersama dengan semua kepercayaan yang berhubungan dengan batasan keamanan (Connolly dan Begg, 2010, p41). Contoh dari operasi DDL adalah create, drop, dan alter tabel. 2. Data Manipulation Language (DML) DML adalah sebuah bahasa yang menyediakan sekumpulan operasi yang mendukung operasi manipulasi data di dalam database. (Connolly dan Begg, 2010, p41). Contoh dari operasi DML adalah insert dan update. 3. Menyediakan kontrol akses ke database, sebagai contoh : a. Security system, dimana mencegah pengguna yang tidak mempunyai hak untuk mengakses database. b. Integrity system, dimana menjaga konsistensi dari data. c. Concurrency control system, dimana mengijinkan akses yang terbagi dalam database. d. Recovery control system, dimana mengembalikan kondisi database sebelum kegagalan hardware atau software.
12 e. User-accessible catalog, dimana berisi deskripsi dari data dalam database. SQL adalah suatu bahasa yang dirancang untuk sistem operasi pengaksesan data pada struktur relational database yang diinginkan pengguna (Connolly dan Begg, 2010, p111). Operasi pengaksesan data meliputi penyisipan data (insert), pengubahan data (update), pengambilan data (select), dan penghapusan data (delete). Perintah-perintah di atas dilakukan atas permintaan dari pengguna.
2.3
Unified Modelling Language (UML) 2.3.1
Sejarah UML Pada tahun 1994, Grady Booch dan James Rumbaugh sepakat menggunakan metode pengembangan berorientasi objek dengan tujuan membuat proses standar tunggal untuk mengembangkan sistem berorientasi objek. Ivar Jacobson bergabung pada tahun 1995, dan mereka bertiga membuat suatu bahasa pemodelan objek standar sebagai ganti dari pendekatan/metode berorientasi objek standar, yaitu Unified Model Language (UML) yang dirilis pada tahun 1997.
2.3.2
Diagram UML Menurut Whitten, dan Bentley, (2007) UML menawarkan diagram-diagram dengan perspektif yang berbeda untuk memodelkan suatu sistem. Berikut adalah macam-macam diagram, serta tujuannya:
13 1.
Diagram Use Case Diagram use case secara grafis menggambarkan interaksi antara sistem, sistem eksternal dan pengguna. Mendeskripsikan siapa yang akan menggunakan sistem dan dalam cara apa pengguna mengharapkan interaksi dengan sistem tesebut.
Gambar 2.3 Contoh Use Case Diagram (Whitten, 2007, p246)
Nama Simbol
Gambar
Penjelasan
Aktor
Apapun yang mempresentasikan seseorang atau sesuatu (seperti perangkat, sistem lain) yang berinteraksi dengan sistem
Use Case
Gambaran fungsionalitas dari suatu sistem, sehingga customer atau pengguna sistem paham dan mengerti mengenai kegunaan sistem yang akan dibangun Tabel 2.1 Penjelasan Diagram Use Case
14 2.
Diagram Activity Menggambarkan aliran aktivitas. Diagram ini digunakan untuk memodelkan aksi yang akan dilakukan saat sebuah operasi dieksekusi dan memodelkan hasil dari aksi tersebut.
Gambar 2.4 Contoh Activity Diagram (Whitten, 2007, p392)
15
Nama Simbol
Gambar
Penjelasan
Initial Node
lingkaran penuh yang menggambarkan awal dari proses
Action
segiempat bersudut tumpul yang menggambarkan sebuah kegiatan atau tugas yang perlu dilakukan
Flow
tanda panah pada diagram yang menandakan sasaran yang mengawali kegiatan
Decision
bentuk wajik yang menggambarkan sebuah kegiatan keputusan
Fork
bar hitam penuh dengan 1 panah datang dan keluar dengan panah lebih dari 1 yang menggambarkan kegiatan pararel
Join
bar hitam penuh dengan lebih dari 1 panah datang dan keluar dengan 1 panah yang menggambarkan penggabungan
Activity Final
lingkaran penuh di dalam sebuah lingkaran berlubang menggambarkan akhir dari sebuah proses
Tabel 2.2 Penjelasan Diagram Activity (Whitten, 2007, p391)
16 3.
Diagram kelas Menggambarkan struktur objek sistem. Diagram ini menunjukan kelas objek yang menyusun sistem dan hubungan antar kelas objek tersebut.
Gambar 2.5 Contoh Class Diagram (Whitten, 2007, p406)
17
Notasi Multiplicity Multiplicity UML
Tepat 1
Nol atau 1
Nol atau lebih
Asosiasi dengan Multiplicity
Makna Asosiasi
1 atau biarkan kosong
Seorang karyawan bekerja pada satu dan hanya satu departemen
0..1
Seorang karyawan memiliki satu suami/ istri atau tidak punya suami/istri
0..* atau *
Customer dapat tidak melakukan pembayaran sampai beberapa kali
1 atau lebih 1..*
Universitas menawarkan paling sedikit 1 matakuliah sampai beberapa matakuliah
Kisaran tertentu
Tim memiliki pertandingan terjadwal sebanyak 7, 8, atau 9 pertandingan
7..9
Tabel 2.3 Multiplicity untuk Class Diagram (Whitten, 2007, p377)
18 2.4
Multimedia Menurut Tay Vaughan (2011, p1) multimedia adalah kombinasi dari teks, foto, seni grafis, suara, animasi, dan video yang dimanipulasi secara digital. Multimedia yang memperbolehkan penggunanya untuk menentukan apa dan kapan elemen multimedia disampaikan disebut sebagai multimedia interaktif. Sedangkan multimedia interaktif yang menyediakan struktur elemen yang terhubung satu sama lainnya dan pengguna dapat menavigasikannya disebut sebagai hypermedia. Saat ini banyak pengguna yang menggunakan multimedia dengan beberapa alasan, diantaranya mudah digunakan, menarik banyak perhatian, penyimpanan yang lebih baik, antarmuka yang intuitif (mudah dimengerti), pengertian yang lebih baik terhadap konten, dan lebih menyenangkan sehingga menjadi lebih efektif. 2.4.1
Elemen Multimedia Ada 5 elemen multimedia yang dijelaskan Vaughan (2011, p1) dalam bukunya, Multimedia : Making It Work, yaitu: 1.
Teks Sebuah kata dapat memiliki banyak arti, jadi dalam pembuatan teks sangat penting untuk memperhatikan ketepatan penggunaan kata. Dalam multimedia, teks memainkan peranan penting dalam penyampaian informasi kepada pengguna.
2.
Suara Suara adalah salah satu elemen multimedia yang paling bersensasi. Penggunaan suara dalam suatu proyek multimedia akan membuat multimedia tersebut terlihat biasa saja atau profesional.
19 3.
Gambar Elemen gambar biasanya dapat diubah ukurannya, warna atau motif, transparansi, posisi, dan penampakannya. Cara mengatur gambar dapat menentukan hubungan visual antara pengembang dengan pengguna multimedia.
4.
Animasi Animasi membuat suatu objek statik menjadi hidup. Animasi merupakan perubahan visual bedasarkan waktu dan dapat memberikan kekuatan dalam suatu proyek multimedia.
5.
Video Video adalah elemen multimedia yang dapat menarik perhatian dalam suatu pertunjukkan. Dari semua elemen multimedia, video memerlukan performance paling tinggi dari komputer, baik itu memori ataupun penyimpanannya.
2.4.2
Interaksi Manusia Komputer (IMK) Interaksi manusia-komputer adalah suatu area penelitian dan praktek yang muncul pada awal tahun 1980, yang pada awalnya memfokuskan diri dalam ilmu komputer. IMK telah berkembang pesat selama tiga dekade, dan telah menarik berbagai pakar dari ilmu lain untuk menggabungkan konsep dan pendekatan yang beragam. Interaksi Manusia Komputer adalah suatu pembelajaran tentang hubungan atau interaksi antara manusia dan komputer. IMK adalah suatu ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi
20 sistem komputer interaktif untuk digunakan manusia, serta pembelajaran fenomena disekitarnya. IMK juga sering dianggap sebagai persimpangan dari ilmu komputer, ilmu perilaku, ilmu desain dan bidang lainnya.
2.4.3
Delapan Aturan Emas Dalam buku Designing the User Interface (Shneiderman, 2010, p88-89), terdapat 8 (delapan) aturan yang dapat digunakan sebagai petunjuk dasar yang baik untuk merancang suatu user interface. Delapan aturan ini disebut dengan Eight Golden Rules of Interface Design, yaitu: •
Berusaha keras untuk konsisten Aturan ini adalah salah satu yang paling sering dilanggar, tetapi untuk mengikutinya akan sedikit sulit karena ada banyak bentuk konsistensi. Konsistensi urutan tindakan diperlukan dalam situasi serupa; terminologi identik harus digunakan dalam prompt, menu, dan layar bantuan; warna yang konsisten, tampilan, kapitalisasi, jenis huruf dan sebagainya harus diterapkan di seluruh bagian.
•
Memenuhi kebutuhan menyeluruh / universal Kenali kebutuhan pengguna yang beragam dan lakukan desain yang fleksibel, dan memfasilitasi perubahan konten. Seorang pemula dan seorang ahli memiliki perbedaan kemampuan dan kebutuhan. Perbedaan usia, ketidak mampuan khusus, dan keragaman setiap teknologi juga perlu diperhatikan. Menambahkan fitur untuk pemula seperti penjelasan, serta fitur untuk ahli seperti shortcuts
21 juga dapat memperkaya desain antar muka dan meningkatkan kualitas sistem yang dirasakan. •
Memberikan umpan balik yang informatif Untuk setiap tindakan pengguna, harus ada sistem umpan balik. Untuk tindakan yang sering dan sederhana, dapat diberikan respon yang sederhana, tetapi untuk tindakan yang jarang dan aksi yang besar, maka respon yang diberikan juga harus lebih substansial.
•
Merancang dialog untuk menghasilkan penutupan Urutan tindakan hendaknya diorganisasi kedalam kelompok awal, tengah, dan akhir. Umpan balik yang informatif pada penyelesaian dari sekelompok tindakan memberikan kepuasan, rasa lega, dan sinyal untuk mempersiapkan kelompok tindakan berikutnya. Sebagai contoh, situs web e-commerce memindahkan pengguna dari pemilihan produk ke kasir, dan berakhir dengan halaman konfirmasi yang jelas untuk melengkapi transaksi.
•
Memberikan penanganan kesalahan yang sederhana. Sebisa mungkin desain sistem sehingga pengguna tidak dapat membuat kesalahan serius. Jika kesalahan dibuat, sistem harus mampu mendeteksi kesalahan dan menawarkan mekanisme sederhana, konstruktif, dan spesifik untuk pemulihan sehingga pengguna tidak merasa bersalah dan mau untuk mengeksplorasi lebih jauh lagi.
22 •
Mengijinkan pembalikan aksi (undo) dengan mudah. Sebisa mungkin, tindakan harus dapat dibalikkan menjadi keadaan sebelumnya. Fitur ini akan mengurangi kecemasan pengguna karena mereka tahu bahwa kesalahan yang dibuat dapat diperbaiki dengan demikian mendorong eksplorasi yang lebih jauh.
•
Dukungan kontrol internal Pengguna yang berpengalaman, sangat menginginkan perasaan bahwa mereka memegang kendali atas sistem dan bahwa sistem merespon tindakan mereka.
•
Mengurangi beban ingatan jangka pendek. Manusia memiliki keterbatasan pengolahan informasi dalam suatu waktu (manusia hanya dapat mengingat tujuh, plus atau minus dua potongan informasi). Batasan ini berarti tampilan harus dibuat sesederhana mungkin sehingga tidak membuat seorang user bingung karena terlalu banyak info.
Teori Khusus 2.5
Mobile Platform Menurut Tarkoma (2009), sebuah sistem operasi merupakan unit organisasi dalam sistem komputer. Dalam hal ini sistem operasi berperan sebagai tampilan interface antara aplikasi dan hardware. Fungsi utama dari sistem operasi adalah administrasi penyediaan sumber daya operasi.
23 Sebuah sistem mobile adalah sistem komputer yang tidak terhubung ke suatu tempat tertentu. Hal ini memungkinkan untuk memindahkan atau membawa perangkat tersebut seperti telepon genggam. Meskipun ada banyak kesamaan antara stasioner dan sistem operasi mobile, ada juga perbedaan yang jelas dalam hal mobilitas. Contoh untuk aplikasi di mana sistem operasi normal tidak bisa digunakan adalah ABS (Anti-lock bracking system) kontrol pada mobil. Suatu sistem operasi seperti Windows XP tidak cukup stabil untuk menjamin dapat menjalankan sistem ABS untuk waktu yang lama. Contoh ini menunjukkan atribut yang penting bagi sistem perangkat mobile manapun yaitu sistem harus stabil dan terjamin. Platform mobile memiliki sifat antara lain : 1.
Koleksi layanan pusat dan library dengan fungsi baik reaktif dan proaktif.
2.
Terdistribusi antar elemen dari fasilitas yang ada :
3.
•
Multi-tier client-server
•
Peer-to-peer
•
Hybirds
Platform yang berjalan pada terminal mobile dan karakteristik dari perangkat menentukan layanan seperti apa yang diberikan bagi pengguna akhir.
4.
Skalabilitas server yang dapat dicapai melalui solusi tradisional yaitu clusters, caching, geographical distribution, load balancing, data centers. Contoh platform mobile yaitu WAE, Java ME, Symbian, MAEMO, Android, Pervasive Computing Middleware, Spice dan Fuego.
24 2.6 Android Android adalah sebuah kumpulan perangkat lunak untuk perangkat mobile yang mencakup sistem operasi, middleware dan aplikasi utama mobile. Android memiliki empat karakteristik sebagai berikut: 1. Terbuka Android dibangun untuk benar-benar terbuka sehingga sebuah aplikasi dapat memanggil salah satu fungsi inti ponsel seperti membuat panggilan, mengirim pesan teks, menggunakan kamera, dan lain-lain. Android menggunakan sebuah mesin virtual yang dirancang khusus untuk mengoptimalkan sumber daya memori dan perangkat keras. Android merupakan open source, dapat secara bebas disebarluaskan untuk memasukkan teknologi baru yang lebih maju pada saat teknologi tersebut muncul. Platform ini akan terus berkembang untuk membangun aplikasi mobile yang inovatif. 2. Semua aplikasi dibuat sama Android tidak memberikan perbedaan terhadap aplikasi utama dari telepon dan aplikasi pihak ketiga (third-party application). Semua aplikasi dapat dibangun untuk memiliki akses yang sama terhadap kemampuan sebuah telepon dalam menyediakan layanan dan aplikasi yang luas terhadap para pengguna. 3. Memecahkan hambatan pada aplikasi Android memecah hambatan untuk membangun aplikasi yang baru dan inovatif. Misalnya, pengembang dapat menggabungkan informasi yang diperoleh dari web dengan data pada ponsel seseorang seperti kontak pengguna, kalender, atau lokasi geografis.
25 4. Pengembang aplikasi yang cepat dan mudah Android menyediakan akses yang sangat luas kepada semua pengguna untuk menggunakan library dan tools yang diperlukan untuk membangun aplikasi yang semakin baik. Android memiliki sekumpulan tools yang dapat digunakan sehingga membantu para pengembang dalam meningkatkan produktivitas pada saat membangun aplikasi yang dibuat. (Sumber : http://www.android.com/about/ )
Google Inc. sepenuhnya membangun Android dan menjadikannya bersifat terbuka (open source) sehingga para pengembang dapat menggunakan Android tanpa mengeluarkan biaya untuk lisensi dari Google dan dapat membangun Android tanpa adanya batasan-batasan. Android Software Development Kit (SDK) menyediakan alat dan Application Programming Interface (API) yang diperlukan untuk memulai pengembangan aplikasi pada platform Android menggunakan bahasa pemrograman Java. 2.6.1
Sejarah Sistem Operasi Android Telepon seluler menggunakan berbagai macam sistem operasi seperti Symbian OS®, Microsoft’s Windows Mobile®, Mobile Linux®, iPhone OS® (berdasarkan Mac OS X), Moblin® (dari intel), dan berbagai macam sistem operasi lainnya. API yang tersedia untuk mengembangkan aplikasi mobile terbatas, oleh karena itulah Google mulai
mengembangkan
dirinya.
Platform
Android
menjanjikan
26 keterbukaan, kemudahan untuk menjangkau, source code yang terbuka, dan pengembangan framework yang high end. Google membeli perusahaan Android Inc., yang merupakan sebuah perusahaan kecil berbasis pengembangan perangkat lunak untuk ponsel pada tahun 2005 untuk memulai pengembangan pada platform mobile. Tokoh utama dari Android Inc. meliputi Andy Rubin, Rich Miner, Nick Sears, dan Chris White. Pada tanggal 5 November 2007, kelompok pemimpin industri bersama-sama membentuk Open Handset Alliance (OHA) yang diciptakan untuk mengembangkan standar terbuka bagi perangkat mobile. OHA terdiri dari 34 anggota besar dan beberapa anggota yang terkemuka, diantaranya sebagai berikut: Sprint Nextel®, T-Mobile®, Motorola®, Samsung®, Sony Ericsson®, Toshiba®, Vodafone®, Google, Intel® dan Texas Instruments. Android SDK diliris pertama kali pada 12 November 2007 dan para pengembang memiliki kesempatan untuk memberikan umpan balik dari pengembangan SDK tersebut. Pada bulan September 2008, T-Mobile memperkenalkan ketersedian T-Mobile G1 yang merupakan smartphone pertama berbasiskan platform Android. Beberapa hari kemudian, Google merilis Android SDK 1.0. Google membuat source code dari platform Android menjadi tersedia di bawah lisensi Apache’s open source. Google merilis perangkat mobile (disebut Android Dev Phone1) yang dapat menjalankan aplikasi Android tanpa terikat oleh berbagai
27 jaringan provider telepon seluler pada akhir tahun 2008. Tujuan dari perangkat ini adalah memungkinkan pengembang untuk melakukan percobaan dengan perangkat sebenarnya yang dapat menjalankan Android OS tanpa berbagai kontrak. Google juga merilis versi 1.1 dari sistem operasi Android pada waktu yang tidak lama. Versi 1.1 dari Android tidak mendukung adanya soft keyboard
dan membutuhkan
perangkat yang memiliki keyboard secara fisik. Android menyelesaikan masalah ini dengan merilis versi 1.5 pada bulan April 2009 dengan sejumlah tambahan fitur seperti kemampuan perekaman media, widgets, dan live folders. Versi 1.6 dari Android OS dirilis pada bulan September 2009 dan hanya dalam waktu satu bulan, versi Android 2.0 dirilis dan membanjiri seluruh perangkat Android. Versi ini memiliki kemampuan advanced search, text to speech, gestures, dan multi touch. Android 2.0 memperkenalkan kemampuan untuk menggunakan HTML karena didukung oleh HTML 5. Semakin banyak aplikasi berbasiskan Android setiap harinya yang terdapat pada Application Store secara online atau dikenal sebagai Android Market. (Sumber: Katysovas, Tomas.(2008). A First Look of Google Android, p4)
2.6.2
Fitur Sistem Operasi Android Menurut Tomas Katysovas ( 2008, p4 ) sistem operasi Android memiliki fitur-fitur sebagai berikut:
28 a.
Kerangka kerja aplikasi (application framework) Digunakan untuk menuliskan aplikasi di Android sehingga memungkinkan penggunaan kembali dan penggantian komponen. Kerangka kerja ini didukung oleh berbagai open source libraries seperti openssl, sqlite, dan libc serta didukung oleh libraries utama Android. Kerangka kerja sistem operasi Android didasarkan pada UNIX file system permission yang menjamin bahwa aplikasiaplikasi tersebut hanya memiliki kemampuan yang diberikan oleh pemilik ponsel pada waktu penginstalan.
b.
Dalvik Virtual Machine (DVM) Dalvik Virtual Machine (DVM) adalah sebuah mesin virtual yang menggunakan memori yang sangat rendah dan secara khusus dirancang untuk Android untuk dijalankan pada embedded system. DVM bekerja dengan baik pada situasi dengan tenaga yang rendah dan mengoptimalkan perangkat mobile. DVM juga mengatur atribut dari Central Processing Unit (CPU) serta membuat sebuah format file yang spesial (.dex) yang dibuat selama build time post processing. DVM dapat menggunakan kembali salinan informasi dari beberapa class file dan secara efektif mengurangi kebutuhan penyimpanan oleh setengah dari Java Archieve (.jar) file tradisional. Konversi antara class Java dan format (.dex) dilakukan dengan memasukkan “dx-tool”. DVM menggunakan assembly-code yang berbeda dimana DVM menggunakan register sebagai unit utama dari penyimpanan data
29 daripada menggunakan stack. Hasil akhir dari executable-code pada Android merupakan hasil dari DVM yang didasarkan bukan pada Java byte-code melainkan pada file (.dex). Hal ini berarti bahwa Java byte-code tidak dieksekusi secara langsung melainkan dimulai dari
Java
class
file
terlebih
dahulu
dan
kemudian
mengkonversikannya ke dalam file (.dex) yang berhubungan. c.
Browser yang terintegrasi Didasarkan pada open source WebKit engine yang memiliki dua layout dan pengelompokan frame. Layout menampilkan halaman tanpa menunggu untuk melakukan pembalikan elemen eksternal seperti Cascade Style Sheet (CSS) atau eksternal JavaScript. Fiturfitur inilah yang meningkatkan kecepatan dan penggunaan browsing internet melalui ponsel.
d.
Grafik yang teroptimasi Didukung oleh library grafis 2D dan grafis 3D yang berdasarkan spesifikasi OpenGl ES 1.0 (akselerasi perangkat keras bersifat opsional)
e.
SQLite SQLite merupakan relational database management system yang kecil (sekitar 500 kb) yang diintegrasikan pada sistem operasi Android. SQLite didasarkan pada function calls dan single file, dimana semua definisi, tabel, dan data disimpan.
f.
Dukungan media untuk suara, video dan format gambar seperti Moving Picture Experts Group 4 (MPEG4), MPEG-1 or MPEG-2
30 Audio Layer 3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic experts Group (JPG), Portable Network Graphics (PNG), Graphics Interchange Format (GIF). g.
GSM Telephony (bergantung dari perangkat keras yang digunakan)
h.
Bluetooth, Enhanced Data Rates for GSM Evolution (EDGE), 3rd Generation (3G), dan WIFITM (Bergantung dari perangkat keras yang digunakan)
i.
Kamera,
Global
Positioning
System
(GPS),
kompas
dan
accelerometer (Bergantung dari perangkat keras yang digunakan) j.
Lingkungan pengembangan yang lengkap, seperti emulator, peralatan untuk debugging, memori dan performance profiling, serta plug-in untuk Eclipse IDE.
2.6.3
Arsitektur Android Menurut Speckmann ( 2008, p11 ), software stack dibagi dalam empat layer yang berbeda, yang meliputi lima kelompok yang berbeda: 1.
The Application Layer Platform software Android akan datang dengan satu set aplikasi dasar seperti browser, e-mail, program SMS, peta, kalender, kontak dan banyak lagi. Semua aplikasi tersebut ditulis dengan bahasa Java. Selain itu aplikasi dapat dijalankan secara bersamaan, sehingga dimungkinkan untuk mendengar musik dan membaca e-mail pada
31 saat yang sama. Layer ini paling banyak digunakan oleh user ponsel pada umumnya. 2.
The Application Framework Sebuah aplikasi framework adalah suatu software framework yang digunakan untuk menerapkan struktur standar aplikasi untuk sistem operasi tertentu. Dengan bantuan manajer, penyedia konten dan layanan lainnya programmer dapat menggunakan kembali fungsifungsi yang digunakan oleh aplikasi lain yang sudah ada.
3.
The Libraries Library yang tersedia semua ditulis dengan bahasa pemrograman C/C++. Mereka akan dipanggil melalui tampilan interface Java. Ini termasuk Surface Manager, 2D dan 3D grafis, Media Codec seperti MPEG-4 dan MP3, SQL Database, SQLite dan engine web browser WebKit.
4.
The Runtime Android runtime terdiri dari dua komponen. Pertama menetapkan inti library yang menyediakan sebagian besar fungsi yang tersedia di inti library tersebut dari pemrograman bahasa Java. Kedua mesin virtual Dalvik yang beroperasi seperti penerjemah antara sisi aplikasi dan sistem operasi. Setiap aplikasi yang berjalan pada Android ditulis dalam bahasa Java. Sebagai sistem operasi yang tidak dapat memahami bahasa pemrograman ini secara langsung, progam Java akan diterima dan diterjemahkan oleh mesin virtual Dalvik. Code yang diterjemahkan kemudian dapat dieksekusi oleh
32 sistem operasi. Selain itu aplikasi tersebut dienkapsulasi dalam Dalvik. Untuk setiap program memiliki mesin virtualnya sendiri bahkan ketika beberapa program berjalan paralel. Keuntungannya adalah bahwa program-program yang berbeda tidak mempengaruhi satu sama lain, sehingga kesalahan program misalnya
dapat
menyebabkan
crash
suatu
program,
tidak
menyebabkan kerusakan keseluruhan sistem. 5.
The Kernel The Linux Kernel akan digunakan oleh Android sebagai divers dari perangkatnya dalam hal pengaturan memori, pengaturan proses, pengaturan input/output, pengaturan file, dan jaringan. Gambar 2.6 menunjukan komponen utama dari sistem operasi dalam Android.
Gambar 2.6 Arsitektur Android Sumber: http://developer.android.com/guide/basics/what-is-android.html
33 2.6.4
Fungsi Dalam Android Menurut Murphy ( 2008, p3 ), fungsi-fungsi yang terdapat dalam Android adalah: 1.
Activities Blok pemrograman dari tampilan interface user adalah “activity”. Sebuah activity dapat digambarkan seperti sebuah tampilan chatbox dalam desktop. Meskipun begitu sebuah activity memungkinkan untuk tidak memilki tampilan interface user, kemungkinan besar code tersebut akan dikemas dalam penyedia konten dan bukan pada user.
2.
Content Providers Penyedia konten memberikan tingkat abstraksi untuk setiap data yang disimpan dalam perangkat yang dapat diakses oleh beberapa aplikasi. Model pegembangan Android memungkinkan suatu data dapat tersedia untuk beberapa aplikasi. Dengan begitu ketika melakukan maintenance perbaikan data dapat dilakukan secara terpusat.
3.
Intens Intens adalah pesan sistem, berjalan di bagian dalam perangkat, memberitahu aplikasi dari berbagai event, dari perubahan kondisi hardware (misalnya, kartu SD terpasang) sampai keluarnya masuknya data (misalnya, pesan SMS tiba).
34 4.
Services Activities, content providers, dan internet receiver merupakan program singkat yang dapat diaktifkan dan dimatikan setiap saat. Service didesain untuk tetap menjalankan program-program tersebut jika diperlukan. Service dapat digunakan untuk memeriksa update ke RSS feed, atau untuk memutar musik bahkan ketika pengontrolan activity tidak beroperasi lagi.
5.
Storage Paket file data dapat dibuat dengan aplikasi yang telah dibangun untuk hal-hal yang tidak mengalami perubahan, seperti icon atau bantuan file tertentu. Tempat penyimpanan yang dibuat dari aplikasi berfungsi sebagai database atau untuk menerima input dari user yang diperlukan oleh aplikasi. Jika user memasukkan sejumlah file, maka file tersebut dapat dibaca ataupun dimasukkan data lain kedalamnya.
6.
Network Umumnya perangkat Android terkoneksi dengan internet. Hal tersebut mendukung WebKit berbasis web browser sehingga widget dapat ditanamkan dalam aplikasi.
7.
GPS Perangkat Android akan secara rutin melakukan akses penyedia lokasi, seperti GPS, yang dapat memberitahu aplikasi dimana perangkat user berada. User juga dapat menampilkan peta atau
35 sebaliknya mengambil keuntungan dari lokasi, seperti melacak gerakan perangkat jika perangkat telah dicuri. 8.
Multimedia Perangkat Android memiliki kemampuan untuk memutar dan merekam audio dan video. Meskipun mungkin terdapat spesifikasi yang berbeda antar perangkat, namun perangkat tersebut dapat diprogram untuk menyesuaikannya dengan perangkat lain dan memanfaatkan hal tersebut dalam bidangnya.
9.
Phone Services Perangkat Android tentunya memiliki fitur ponsel, memungkinkan software untuk memulai panggilan, mengirim dan menerima SMS, dan hal-hal lain yang terdapat pada teknologi ponsel.
2.6.5
Keuntungan dari Dalvik Virtual Machine Dalvik virtual machine adalah mesin penerjemah bahasa Java sederhana, sepenuhnya dioptimalkan untuk platform Android yang dikembangkan untuk dapat berjalan di memori low-end perangkat mobile. Salah satu aspek yang menonjol dalam Dalvik yaitu kemampuan untuk menjalankan aplikasi sepanjang kompilasi dengan meningkatkan performa runtime aplikasi. Dalvik bukan merupakan bagian dari mesin Java karena tidak bisa membaca code Java, tetapi terdiri dari code-byte sendiri yang disebut “Dex” sehingga file executable didapatkan menggunakan Dalvik dengan jenis nama file “.dex”.
36 2.7
Google Maps API 2.7.1
Pengertian API Menurut
Tulach
(2008,
p1-14),
API
atau
Application
Programming Interface bukan hanya satu set class dan method atau fungsi dan signature yang sederhana. Akan tetapi API, yang bertujuan utama untuk mengatasi “clueless” dalam membangun software yang berukuran besar, berawal dari sesuatu yang sederhana sampai ke yang kompleks dan merupakan perilaku komponen yang sulit dipahami. Secara sederhana dapat dipahami dengan membayangkan kekacauan yang akan timbul bila mengubah database atau skema XML. Perubahan ini dapat dipermudah dengan bantuan API. Dari beberapa sumber yang didapat, dapat disimpulkan bahwa API adalah sekumpulan perintah, fungsi, class dan protokol yang memungkinkan suatu software berhubungan dengan software lainnya. Tujuan dari API adalah untuk menghilangkan “clueless” dari sistem dengan cara membuat blok besar yang terdiri dari software di seluruh dunia dan menggunakan kembali perintah, fungsi, class, atau protokol yang mereka atau API miliki. Dengan cara ini, programmer tidak perlu lagi membuang waktu untuk membuat dan menulis infrastruktur sehingga akan menghemat waktu kerja dan lebih efisien.
2.7.2
Pengertian Google Maps API Seperti yang tercatat oleh Svennerberg ( Beginning Google Maps API 3, p1 ), Google Maps API yang paling populer di internet. Pencatatan
37 yang dilakukan pada bulan Mei 2010 ini menyatakan bahwa 43% mashup (aplikasi dan situs web yang menggabungkan dua atau lebih sumber data) menggunakan Google Maps API . Beberapa tujuan dari penggunaan Google Maps API adalah untuk melihat lokasi, mencari alamat, mendapatkan petunjuk mengemudi dan lain sebagainya. Hampir semua hal yang berhubungan dengan peta dapat memanfaatkan Google Maps. Google Maps (tanpa API) diperkenalkan pada Februari 2005 dan merupakan revolusi bagaimana peta di dalam web, yaitu dengan membiarkan user untuk menarik peta sehingga dapat menavigasinya. Solusi peta ini pada saat itu masih baru dan membutuhkan server khusus. Beberapa saat setelahnya, ada yang berhasil men-hack Google Maps untuk digunakan di dalam webnya sendiri. Hal ini membuat Google Maps mengambil kesimpulan bahwa mereka membutuhkan API dan pada Juni 2005, Google Maps API dirilis secara publik.