5
BAB II TINJAUAN PUSTAKA
Bab ini memuat teori-teori literatur yang berhubungan dengan permasalahan dan pembahasan. Teori-teori tersebut meliputi konsep dasar sistem, pengenalan citra, biometrika, serta Android mobile development platform.
2.1
Konsep Dasar Sistem Informasi Aplikasi atau sistem yang digunakan untuk mengolah data menjadi suatu
informasi yang berguna disebut dengan sistem informasi. Digunakan dalam berbagai aspek kehidupan sehingga manusia dengan mudah mampu memahami keadaan atau isi dari informasi yang dicari atau digunakan. Sub bab ini menjelaskan tentang pengertian sistem informasi.
2.1.1 Konsep Dasar Sistem Sistem merupakan sekelompok komponen yang saling berhubungan, bekerja bersama untuk mencapai tujuan bersama dengan menerima input serta menghasilkan output dalam proses transformasi yang teratur. Unsur-unsur yang mewakili sistem secara umum adalah masukan (input) pengolahan (processing) dan keluaran (output). Suatu sistem senantiasa tidak terlepas dari lingkungan sekitarnya. Umpan balik (feedback) di samping dapat berasal dari output, juga dapat berasal dari lingkungan sistem tersebut. Dapat dilihat lebih lanjut tentang pengertian sistem secara umum, yaitu: 1.
Setiap sistem terdiri dari berbagai unsur.
2.
Unsur-unsur tersebut merupakan bagian yang tidak terpisahkan dari sistem yang bersangkutan.
3.
Unsur-unsur di dalam sistem tersebut bekeija sama untuk mencapai tujuan sistem.
4.
Suatu sistem merupakan bagian dari sistem lain yang lebih besar.
6
2.1.2 Elemen Sistem Sistem tersusun dari beberapa elemen yang saling berkaitan, yaitu : tujuan, masukan, proses, keluaran, batas, mekanisme pengendalian dan umpan balik serta lingkungan. Berikut penjelasan mengenai elemen-elemen yang membentuk sebuah sistem : 1.
Tujuan Setiap sistem memiliki tujuan (goal), entah hanya satu atau mungkin
banyak. Tujuan tersebut yang menjadi acuan kemana dan bagaimana sistem akan dibangun. Tujuan juga sebagai alasan mengapa sebuah sistem dibuat.
2.
Masukan Masukan (input) sistem adalah segala sesuatu yang masuk ke dalam sistem
dan selanjutnya menjadi bahan yang diproses. Masukan berupa data akan diolah oleh sistem agar dapat ditampilkan sebagai sebuah informasi. Masukkan dapat juga hanya disimpan tanpa perlu diolah, namun sudah dapat dikatakan sebagai informasi.
3.
Proses Proses merupakan bagian yang melakukan perubahan atau transformasi
dari masukan menjadi keluaran yang berguna dan lbih bernilai, misalnya berupa informasi dan produk, tetapi juga bisa berupa hal-hal yang tidak berguna, misalnya saja sisa pembuangan atau limbah. Proses dapat berupa bahan mentah pada pabrik kimia, atau pada rumah sakit, proses dapat berupa aktivitas pembedahan pasien.
4.
Keluaran Keluaran (output) merupakan hasil dari pemrosesan. Keluaran bisa berupa
suatu informasi, saran, cetakan laporan, dan sebagainya.
7
5.
Batas Batas (boundary) sistem adalah pemisah antara sistem dan daerah di luar
sistem (lingkungan). Batas sistem menentukan konfigurasi, ruang lingkup, atau kemampuan sistem. Contoh, tim sepakbola mempunyai aturan permainan dan keterbatasan
kemampuan
pemain.
Pertumbuhan
sebuah
toko
kelontong
dipengaruhi oleh pembelian pelanggan, gerakan pesaing dan keterbatasan dana dari bank. Batas sebuah sistem yang dikurangi atau dimodifikasi akan mengubah perilaku sistem.
6.
Mekanisme Pengendalian dan Umpan Balik Mekanisme pengendalian (control mechanism) diwujudkan dengan
menggunakan umpan balik (feedback), yang mencuplik keluaran. Umpan balik ini digunakan untuk mengendalikan baik masukan maupun proses. Tujuannya adalah untuk mengatur agar sistem berjalan sesuai dengan tujuan.
7.
Lingkungan Lingkungan adalah segala sesuatu yang berada diluar sistem. Lingkungan
bisa berpengaruh terhadap operasi sistem dalam arti bisa merugikan atau menguntungkan sistem itu sendiri. Lingkungan yang merugikan tentu saja harus ditahan dan dikendalikan supaya tidak mengganggu kelangsungan operasi sistem, sedangkan yang menguntungkan tetap harus terus dijaga, karena akan memacu terhadap kelangsungan hidup sistem.
Berdasarkan beberapa definisi di atas dapat dirumuskan bahwa sistem terdiri dari beberapa elemen-elemen yang merupakan bagian terpadu dari suatu sistem yang bersangkutan. Elemen-elemen sistem tersebut berhubungan erat satu sama lain dan tidak dapat berdiri sendiri, mereka saling berinteraksi dan saling berhubungan membentuk satu kesatuan, sehingga tujuan atau sasaran suatu sistem dapat tercapai. Sesuatu dapat dikatakan sistem, apabila memenuhi sedikitnya dua syarat. Pertama adalah memiliki bagian-bagian yang saling berinteraksi untuk
8
mencapai tujuan tertentu, kedua adalah bahwa suatu sistem harus memiliki tiga unsur, yaitu input, proses, dan output.
2.1.3 Konsep Dasar Informasi Informasi adalah data yang telah diklasifikasikan atau diolah untuk digunakan dalam proses pengambilan keputusan. Informasi adalah data yang telah diproses, atau data yang telah memiliki arti. Dengan kata lain informasi adalah data yang telah diolah menjadi bentuk yang lebih berguna dan lebih berarti bagi yang menerimanya. Informasi dapat dikelompokkan menjadi tiga bagian. 1.
Informasi Strategis. Informasi ini digunakan untuk mengambil keputusan jangka panjang, mencakup informasi eksternal, rencana perluasan perusahaan, dan sebagainya.
2.
Informasi Taktis. Informasi ini dibutuhkan untuk mengambil keputusan jangka menengah,
seperti informasi
tren
penjualan yang dapat
dimanfaatkan untuk menyusun rencana penjualan. 3.
Informasi Teknis. Informasi ini dihamilkan untuk keperluan operasional sehari-hari, seperti informasi persediaan, retur penjualan, dan laporan kas harian.
2.1.4 Konsep Dasar Sistem Informasi Sistem informasi adalah suatu sistem di dalam suatu organisasi yang mempertemukan kebutuhan pengolahan transaksi harian yang mendukung fungsi operasi organisasi yang bersifat manajerial dengan kegiatan strategi dari suatu organisasi untuk dapat menyediakan kepada pihak luar tertentu dengan laporanlaporan yang diperlukan. Sistem informasi memiliki beberapa fungsi, antara lain : 1.
Menambah pengetahuan
2.
Mengurangi ketidakpastian
3.
Mengurangi resiko kegagalan
4.
Mengurangi keanekaragaman atau variasi yang tidak diperlukan
5.
Memberi standar, aturan-aturan, ukuran-ukuran, dan keputusan-keputusan yang menentukan pencapaian sasaran dan tujuan.
9
Fungsi tersebut menjadi patokan dimana sebuah aplikasi dapat dikategorikan sebagai sistem informasi yang baik dalam pencapaiannya untuk mengolah data yang dimiliki menjadi informasi yang berguna.
2.2
Konsep Dasar Mobile Application Mobile Application merupakan aplikasi yang cara aksesnya menggunakan
perangkat bergerak (mobile device) seperti handphone, smartphone dan PDAphone.
2.2.1 Pengertian Android Android adalah kumpulan perangkat lunak yang ditujukan bagi perangkat bergerak mencakup sistem operasi, middleware, dan aplikasi kunci. Android Standart Development Kid (SDK) menyediakan perlengkapan dan Application Programming Interface (API) yang diperlukan untuk mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Android dikembangkan oleh Google bersama Open Handset Allience (OHA) yaitu aliansi perangkat selular terbuka yang terdiri dari 47 perusahaan Hardware,
Software
dan
perusahaan
telekomunikasi
ditujukan
untuk
mengembangkan standar terbuka bagi perangkat selular.
2.2.2 Konsep Dasar Android Platform Platform Android adalah software stack untuk perangkat mobile yang mencakup sistem operasi, middleware dan aplikasi kunci. Pengembangan aplikasi Android dapat dilakukan melalui Android Standard Development Key (Android SDK) dengan sintaks yang berbasis pemrograman Java. Aplikasi Android ini tidak berjalan pada kernel system operation melainkan pada sebuah virtual machine yang dirancang khusus untuk digunakan pada system embedded yang dinamakan Dalvik.
10
2.2.3 Sejarah dan Perkembangan Android Awal mulanya terdapat berbagai macam sistem operasi pada perangkat selular, diantaranya sistem operasi Symbian, Microsoft Windows Mobile, Mobile Linux, iPhone, dan sistem operasi lainnya. Sistem operasi yang ada belum mendukung standar dan penerbitan API yang dapat dimanfaatkan secara keseluruhan dan dengan biaya yang murah. Google akhirnya ikut berkecimpung didalamnya
dengan
Platform
Android,
yang
menjanjikan
keterbukaan,
keterjangkauan, open source, dan framework yang berkualitas. Tahun 2005, Google mengakuisisi perusahaan Android Inc. untuk memulai pengembangan platform android. Nama-nama yang terlibat dalam pengembangan ini, yaitu : Andy Rubin, Rich Miner, Nick Sears, dan Chris White. Pertengahan 2007 sekelompok pemimpin industri bersama-sama membentuk aliansi perangkat selular terbuka, disebut dengan Open Handset Alliance (OHA). Bagian dari tujuan aliansi ini adalah berinovasi dengan cepat dan menanggapi kebutuhan konsumen dengan lebih baik, dengan produk awalnya adalah platform Android. Platform Android dirancang untuk melayani kebutuhan operator telekomunikasi,
manufaktur
handset,
dan
pengembang
aplikasi.
OHA
berkomitmen untuk membuat android open source dengan lisensi Apache versi 2.0. [Sayed Y. Hashimi and Satya Komatineni, Pro Android, Apress, USA 2009] Android pertama kali diluncurkan pada 5 November 2007, dan smartphone pertama yang menggunakan sistem operasi android dikeluarkan oleh T-Mobile dengan sebutan G1 pada bulan September 2008. Hingga saat ini android telah merilis beberapa versi android untuk menyempurnakan versi sebelumnya. Selain berdasarkan penomoran, pada setiap versi android terdapat kode nama berdasarkan nama-nama kue. Hingga saat ini sudah terdapat beberapa versi yang telah diluncurkan, diantaranya: versi 1.5 dirilis pada 30 April 2009 diberi nama Cupcake, versi 1.6 dirilis pada 15 September 2009 diberi nama Donut, dan versi terakhir 2.0 dirilis pada 26 Oktober 2009 diberi nama Eclair.
11
2.2.4 Anatomi Android Paket sistem operasi android tediri dari beberapa unsur seperti tampak pada gambar 2.1. Secara sederhana arsitektur android merupakan sebuah kernel Linux dan sekumpulan pustaka C / C++ dalam suatu framework yang menyediakan dan mengatur alur proses aplikasi.[Google IO, Android Anatomy and Physiology]
Gambar 2.1 Detil Anatomi Android
1.
Linux Kernel Android dibangun di atas kernel Linux 2.6, namun secara keseluruhan
android bukanlah linux, karena dalam android tidak terdapat paket standar yang dimiliki oleh linux lainnya. Linux merupakan sistem operasi terbuka yang handal dalam manajemen memori dan proses, sehingga pada android hanya terdapat beberapa servis yang diperlukan, seperti : keamanan, manajemen memori, manajemen proses, jaringan dan driver. Kernel linux menyediakan driver layar,
12
kamera, keypad, WiFi, Flash Memory, audio, dan IPC (Interprocess Communication) untuk mengatur aplikasi dan lubang keamanan.
2.
Libraries Android menggunakan beberapa paket pustaka (libraries) yang terdapat
pada C/C++ dengan standar Berkeley Software Distribution (BSD) hanya setengah dari yang aslinya untuk tertanam pada kernel Linux. Beberapa pustaka diantaranya: a.
Media Library untuk memutar dan merekam berbagai macam format audio dan video.
b.
Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi.
c.
Graphic Library termasuk didalamnya SGL dan OpenGL, untuk tampilan 2D dan 3D.
d.
SQLite untuk mengatur relasi database yang digunakan pada aplikasi.
e.
SSl dan WebKit untuk browser dan keamanan internet.
Pustaka-pustaka 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 Tertanam paket pustaka inti pada android yang menyediakan sebagian
besar fungsi android. Pustaka inti 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. Terdapat 2 bagian utama dalam Android Runtime, diantaranya: a.
Pustaka Inti, android dikembangkan melalui bahasa pemrograman Java, tapi Android Runtime bukanlah mesin virtual Java. Pustaka inti android
13
menyediakan hampir semua fungsi yang terdapat pada pustaka Java serta beberapa pustaka khusus android. b.
Mesin Virtual Dalvik, Dalvik merupakan sebuah mesin virtual yang dikembangkan oleh Dan Bornstein yang terinspirasi dari nama sebuah perkampungan yang berada di Iceland. Dalvik hanyalah interpreter mesin virtual yang mengeksekusi file dalam format Dalvik Executable (*.dex). Format
yang
digunakan
Dalvik
akan
mengoptimalkan
efisiensi
penyimpanan dan pengalamatan memori pada file yang dieksekusi. Dalvik berjalan di atas kernel Linux 2.6, dengan fungsi dasar seperti threading dan manajemen memori yang terbatas. [Nicolas Gramlich, Andbook, anddev.org]
4.
Application Framework Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk
mengembangkan aplikasi android. Framework 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 [Hello Android 2nd Edition]: a.
Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan menjaga keadaan ”Backstack“ untuk navigasi penggunaan.
b.
Content Providers, berfungsi untuk merangkum data yang memungkinkan digunakan oleh aplikasi lainnya, seperti daftar nama.
c.
Resuource Manager, untuk mengatur sumber daya yang ada dalam program. Serta menyediakan akses sumber daya diluar kode program, seperti karakter, grafik, dan file layout.
d.
Location Manager, berfungsi untuk memberikan informasi detail mengenai lokasi perangkat android berada.
e.
Notification Manager, mencakup berbagai macam peringatan seperti, pesan masuk, janji, dan lain sebagainya yang akan ditampilkan pada status bar.
14
5.
Application Layer Puncak dari diagram arsitektur android adalah lapisan aplikasi dan widget.
Lapisan aplikasi merupakan lapisan yang paling tampak pada pengguna ketika menjalankan program. Pengguna 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. Semua aplikasi android, baik aplikasi inti (native) maupun aplikasi pihak ketiga berjalan diatas lapisan aplikasi dengan menggunakan pustaka API (Application Programming Interface) yang sama.
6.
Komponen Aplikasi Fitur penting android adalah bahwa satu aplikasi dapat menggunakan
elemen dari aplikasi lain (untuk aplikasi yang memungkinkan). Sebagai contoh, sebuah aplikasi memerlukan fitur scroller dan aplikasi lain telah mengembangkan fitur scroller yang baik dan memungkinkan aplikasi lain menggunakannya. Pengembang tidak perlu lagi mengembangkan hal serupa untuk aplikasinya, cukup menggunakan scroller yang telah ada. Sistem harus dapat menjalankan aplikasi ketika setiap bagian aplikasi itu dibutuhkan agar fitur tersebut dapat bekerja, dan pemanggilan objek java untuk bagian itu. Komponen ini yang membedakan Android dari sistem operasi lainnya. Android tidak memiliki satu tampilan utama program seperti fungsi main() pada aplikasi lain. Aplikasi Android memiliki komponen penting yang memungkinkan sistem untuk memanggil dan menjalankan ketika dibutuhkan.
7.
Activities Activity merupakan bagian yang paling penting dalam sebuah aplikasi,
karena Activity menyajikan tampilan visual program yang sedang digunakan oleh pengguna. Setiap Activity dideklarasikan dalam sebuah kelas yang bertugas untuk menampilkan antarmuka pengguna yang terdiri dari Views dan respon terhadap
15
Event. Setiap aplikasi memiliki sebuah activity atau lebih. Biasanya pasti akan ada activity yang pertama kali tampil ketika aplikasi dijalankan. Perpindahan antara activity dengan activity lainnya diatur melalui sistem, dengan memanfaatkan activity stack. Keadaan suatu activity ditentukan oleh posisinya dalam tumpukan acitivity, LIFO (Last In First Out) dari semua aplikasi yang sedang berjalan. Bila suatu activity baru dimulai, activity yang sebelumnya digunakan maka akan dipindahkan ketumpukan paling atas. Jika pengguna ingin menggunakan activity sebelumnya, cukup menekan tombol Back, atau menutup activity yang sedang digunakan, maka activity yang berada diatas akan aktif kembali. Memory Manager android menggunakan tumpukkan ini untuk menentukan prioritas aplikasi berdasarkan activity, memutuskan untuk mengakhiri suatu aplikasi dan mengambil sumber daya dari aplikasi tersebut. Terdapat 4 kemungkinan kondisi transisi yang akan terjadi ketika activity diambil dan disimpan dalam tumpukkan activity [Reto Meier, Profesional Android Application Development, Wiley Publishing, Canada, 2009]: a.
Active, setiap activity yang berada ditumpukan paling atas, maka dia akan terlihat, terfokus, dan menerima masukkan dari pengguna. Android akan berusaha untuk membuat activity aplikasi ini untuk untuk tetap hidup dengan segala cara, bahkan akan menghentikan activity yang berada dibawah tumpukkannya jika diperlukan. Jika activity sedang aktif, maka yang lainnya akan dihentikan sementara.
b.
Paused, dalam beberapa kasus activity akan terlihat tapi tidak terfokus pada kondisi inilah disebut paused. Keadaan ini terjadi jika activity transparan dan tidak fullscreen pada layar. Jika activity dalam keadaan paused, dia terlihat active namun tidak dapat menerima masukkan dari pengguna. Android akan menghentikan activity dalam keadaan paused ini jika diperlukan, untuk menunjang sumber daya bagi activity yang sedang aktif.
c.
Stopped, ketika sebuah activity tidak terlihat, maka itulah yang disebut stopped. Activity akan tetap berada dalam memori dengan semua keadaan dan informasi yang ada, namun akan menjadi kandidat utama untuk
16
dieksekusi oleh sistem ketika membutuhkan sumberdaya lebih. Jika suatu activity dalam kondisi stopped, maka perlu disimpan data dan kondisi antarmuka saat itu, karena ketika activity telah keluar atau ditutup, maka dia akan menjadi inactive. d.
Inactive, kondisi ketika activity telah dihentikan dan sebelum dijalankan. Inactive activity telah ditiadakan dari tumpukan activity sehingga perlu restart ulang agar dapat tampil dan digunakan kembali.
Kondisi transisi ini sepenuhnya ditangani oleh manajer memori android. Android akan memulai menutup aplikasi yang mengandung activity inactive, kemudian stopped activity, dan dalam kasus luar biasa paused activity juga akan di tutup.
8.
Services Suatu service tidak memiliki tampilan antarmuka, melainkan berjalan di
background untuk waktu yang tidak terbatas. Komponen service diproses tidak terlihat, memperbarui sumber data dan menampilkan notifikasi. Service digunakan untuk melakukan pengolahan data yang perlu terus diproses, bahkan ketika Activity tidak aktif atau tidak tampak.
9.
Intents Intens merupakan sebuah mekanisme untuk menggambarkan tindakan
tertentu, seperti memilih foto, menampilkan halaman web, dan lain sebagainya. Intents tidak selalu dimulai dengan menjalankan aplikasi, namun juga digunakan oleh sistem untuk memberitahukan ke aplikasi bila terjadi suatu hal, misal pesan masuk. Intents dapat eksplisit atau implisit, contohnya jika suatu aplikasi ingin menampilkan URL, sistem akan menentukan komponen apa yang dibutuhkan oleh Intents tersebut.
17
10.
Broadcast Receivers Broadcast Receivers merupakan komponen yang sebenarnya tidak
melakukan
apa-apa
kecuali
menerima
dan
bereaksi
menyampaikan
pemberitahuan. Sebagian besar Broadcast berasal dari sistem misalnya, battery sudah hampir habis, informasi zona waktu telah berubah, atau pengguna telah merubah bahasa default pada perangkat. Broadcast Receivers tidak menampilkan antarmuka pengguna seperti yang dilakukan service, namun, Broadcast Receivers dapat menggunakan Notification Manager untuk memberitahukan sesuatu kepada pengguna.
11.
Content Providers Content Providers digunakan untuk mengelola dan berbagi database. Data
dapat disimpan dalam file sistem, dalam database SQLite, atau dengan cara lain yang pada prinsipnya sama. Content Provider memungkinkan antar aplikasi untuk saling berbagi data. Komponen ini sangat berguna ketika sebuah aplikasi membutuhkan data dari aplikasi lain, sehingga mudah dalam penerapannya. Anatomi Android tersebut tersusun saling terkait satu sama lain dalam pembuatan suatu aplikasi, sehingga menjadikan pemrograman android sebagai sebuah platform yang mampu menangani berbagai kreatifitas aplikasi yang akan dibangun.
2.2.5 Tipe Aplikasi Android Terdapat tiga kategori aplikasi pada android [Reto Meier, Profesional Android Application Development, Wiley Publishing, Canada, 2009] : 1.
Foreground Activity Aplikasi yang hanya dapat dijalankan jika tampil pada layar dan tetap
efektif walaupun tidak terlihat. Aplikasi dengan tipe ini pasti mempertimbangkan siklus hidup activity, sehingga perpindahan antar activity dapat berlangsung dengan lancar.
18
2.
Background Service Aplikasi yang memiliki interaksi terbatas dengan user, selain dari
pengaturan konfigurasi, semua dari prosesnya tidak tidak tampak pada layar. Contohnya aplikasi penyaringan panggilan atau sms auto respon.
3.
Intermittent Activity Aplikasi yang masih membutuhkan beberapa masukkan dari pengguna,
namun sebagian sangat efektif jika dijalankan di background dan jika diperlukan akan memberi tahu pengguna tentang kondisi tertentu. Contohnya : pemutar musik.
Aplikasi yang kompleks akan sulit untuk menentukan kategori aplikasi tersebut apalagi aplikasi memiliki ciri-ciri dari semua kategori, sehingga perlu pertimbangan bagaimana aplikasi tersebut digunakan dan menentukan kategori aplikasi yang sesuai.
2.2.6 Siklus Hidup Aplikasi Android Siklus hidup aplikasi android dikelola oleh sistem, berdasarkan kebutuhan pengguna, sumberdaya yang tersedia, dan sebagainya. Sistem sangat berperan dalam menentukan apakah aplikasi dijalankan, dihentikan sementara, atau dihentikan sama sekali. Jika pengguna ketika itu sedang menjalankan sebuah Activity, maka sistem akan memberikan perioritas utama untuk aplikasi yang menjalankan Activity tersebut. Sebaliknya, jika suatu Activity tidak terlihat dan sistem membutuhkan sumber daya yang lebih, maka Activity yang prioritas rendah akan ditutup. [Sayed . Y. Hashimi and Satya Komatineni, Pro Android, Apress, USA 2009] Android menjalankan setiap aplikasi dalam proses secara terpisah, dan masing-masing memliki mesin virtual pengolah sendiri, dengan ini melindungi penggunaan memori berlebih pada aplikasi. Android juga dapat mengontrol aplikasi mana yang layak menjadi prioritas utama, karenanya android sangat
19
sensitive dengan siklus hidup aplikasi dan komponen-komponennya. Perlu adanya penanganan terhadap setiap kondisi agar aplikasi menjadi stabil.
Active
Critical
process
Priority
Visible process
High
Started
Priority
service process Backgr ound process Empty
Low Priority
process Gambar 2.2 Prioritas aplikasi berdasarkan activity
Gambar 2.2 menunjukkan prioritas dari aplikasi. Prioritas digolongkan menjadi 3 bagian, yaitu : kritis (harus), tinggi (diutamakan), dan rendah.
2.2.7 Kelebihan Android Banyak platform yang dibuat untuk perangkat selular saat ini, namun ada beberapa hal yang menjadi kelebihan Android. Android adalah yang pertama menggabungkan hal seperti berikut walaupun beberapa fitur-fitur yang ada telah muncul sebelumnya pada platform lain [Ed Burnette, Hello Android 2nd Edition, usa 2009]: 1.
Keterbukaan, Bebas pengembangan tanpa dikenakan biaya terhadap sistem karena berbasiskan Linux dan open source. Pembuat perangkat menyukai hal ini karena dapat membangun platform yang sesuai yang diinginkan tanpa harus membayar royality. Pengembang software menyukai karena
20
android dapat digunakan diperangkat manapun dan tanpa terikat oleh vendor manapun. 2.
Arsitektur komponen dasar android terinspirasi dari teknologi internet Mashup. Bagian dalam sebuah aplikasi dapat digunakan oleh aplikasi lainnya, bahkan dapat diganti dengan komponen lain yang sesuai dengan aplikasi yang dikembangkan.
3.
Banyak dukungan service, kemudahan dalam menggunakan berbagai macam layanan pada aplikasi seperti penggunaan layanan pencarian lokasi, database SQL, browser dan penggunaan peta. Service tersebut sudah tertanam pada android sehingga memudahkan dalam pengembangan aplikasi.
4.
Siklus hidup aplikasi diatur secara otomatis, setiap program terjaga antara satu sama lain oleh berbagai lapisan keamanan, sehingga kerja sistem menjadi lebih stabil. Pengguna tak perlu kawatir dalam menggunakan aplikasi pada perangkat yang memorinya terbatas.
5.
Dukungan grafis dan suarat terbaik, dengan adanya dukungan 2D grafis dan animasi yang diilhami oleh Flash menyatu dalam 3D menggunakan OpenGL memungkinkan membuat aplikasi maupun game yang berbeda.
Portabilitas aplikasi, aplikasi dapat digunakan pada perangkat yang ada saat ini maupun yang akan datang. Semua program ditulis dengan menggunakan bahas pemrograman Java dan dieksekusi oleh mesin virtual Dalvik, sehingga kode program portabel antara ARM, X86, dan arsitektur lainnya. Dukungan input seperti penggunaan keyboard, layar sentuh, trackball dan resolusi layar semua dapat disesuaikan dengan program.
2.2.8 Versi Android Android memiliki beberapa versi yang terus berkembang, versi-versi android adalah sebagai berikut:
21
1.
Android versi 1.1 Google merilis Android versi 1.1 pada 9 Maret 2009. Android versi ini
dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email.
2.
Android versi 1.5 (Cupcake) Google kembali merilis telepon seluler pada pertengahan Mei 2009
dengan menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Pembaruan terjadi pada beberapa sektor termasuk juga penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus kamera, mengunggah video ke youtube dan gambar ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuan terhubung secara otomatis ke headset Bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem.
3.
Android versi 1.6 (Donut) Donut (versi 1.6) dirilis pada September 2009 dengan menampilkan proses
pencarian yang lebih baik dibanding sebelumnya, penggunaan baterai indikator dan kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus, kamera camcorder dan galeri yang dintegrasikan, CDMA / EVDO, 802.1x, VPN, Gestures, dan Text-to-speech engine, kemampuan dial kontak, teknologi text to change speech (tidak tersedia pada semua ponsel), dan pengadaan resolusi VWGA.
4.
Android versi 2.0/2.1 (Eclair) Diluncurkan lagi ponsel Android dengan versi 2.0/2.1 (Eclair) pada
penghujung 2009, perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1. Untuk bergerak cepat dalam persaingan perangkat generasi berikut, Google melakukan investasi dengan mengadakan
22
kompetisi aplikasi mobile terbaik (killer apps-plikasi unggulan). Kompetisi ini berhadiah $25,000 bagi setiap pengembang aplikasi terpilih. Kompetisi diadakan selama dua tahap yang tiap tahapnya dipilih 50 aplikasi terbaik. Semakin berkembangnya dan semakin bertambahnya jumlah handset Android, semakin banyak pula pihak ketiga yang berminat untuk menyalurkan aplikasi mereka kepada sistem operasi Android. Aplikasi terkenal yang diubah ke dalam sistem operasi Android adalah Shazam, Backgrounds, dan WeatherBug. Sistem operasi Android dalam situs Internet juga dianggap penting untuk menciptakan aplikasi Android asli, contohnya oleh MySpace dan Facebook.
5.
Android versi 2.2 (Froyo: Frozen Yoghurt) Android versi 2.2 (Froyo) diluncurkan pada 20 Mei 2010,. Perubahan-
perubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi Android Market.
6.
Android versi 2.3 (Gingerbread) Tujuh bulan kemudian, tepatnya pada 6 Desember 2010, Android versi 2.3
(Gingerbread) diluncurkan. Perubahan umum yang didapat dari Android versi ini antara lain peningkatan kemampuan permainan, peningkatan fungsi copy paste, layar antar muka (User Interface) didesain ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb, equalization, headphone virtualization, dan bass boost), dukungan kemampuan Near Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu.
7.
Android versi 3.0/3.1 (Honeycomb) Dirilis pada 22 Februari 2011 silam. Android versi Honeycomb didesain
khusus untuk tablet. Perubahan signifikan dari Honeycomb sendiri adalah
23
kemampuan dalam mendukung perangkat dengan layar tampilan lebih besar, serta kinerja yang lebih canggih dalam penanganan multi processor. Dukungan bagi gamers sangat terasa pada fitur joystick dan gamepad yang disematkan pada versi ini.
8.
Android versi 4.0 (ICS : Ice Cream Sandwich) Versi Android berikutnya adalah 4.0 dimana lebih dikenal dengan nama
ICS (Ice Cream Sandwich) yang dirilis pada 19 Oktober 2011. Fitur dari generasi ICS kebanyakan diturunkan dari Honeycomb, namun beberapa fitur baru tentu saja disematkan pada versi 4.0. Pengenalan wajah, perangkat tambahan pada fotografi, pencarian email secara offline, dan kemampuan berbagi informasi melalui NFC (Near Field Communication).
9.
Android versi 4.1/4.3 (Jellybean) Fitur pencarian yang menggunakan voice search merupakan fitur unggulan
dari Android versi 4.1 yang kita kenal dengan nama Jellybean. Dirilis pada 9 Juli 2012 silam dengan tampilan user interface (UI) yang sangat halus, serta input keyboard yang lebih dinamis. Pembaruan tersebut diwujudkan Google dalam “Proyek Butter”, perbaikam ini termasuk antisipasi sentuhan layar, triple buffering, perpanjangan waktu vsync, dan peningkatan frame rate hingga 60fps untuk menciptakan UI yang lebih halus.
10.
Android versi 4.4 (Kitkat) Diluncurkan pada 31 Oktober 2013 sebagai Android terbaru yang telah
dirilis. Memiliki tampilan yang lebih halus serta ketersediaan cloud storage untuk melakukan back up foto, video, dan berbagai file lainnya. Keunggulan lain dari versi Kitkat, adalah screen orientation dengan kecepatan jauh lebih baik, serta penggunaan daya baterai yang lebih tidak konsumtif.
24
2.2.9 Fitur Android Android dilengkapi dengan berbagai fitur dan API yang menyediakan akses ke berbagai fitur yang dimiliki perangkat mobile. Fitur yang ditawarkan Android berupa: 1.
Application Framework, mendukung pemakaian komponen-komponen yang mudah diganti dan digunakan kembali.
2.
Dalvik Virtual Machine, sebuah virtual machine yang dioptimasi untuk piranti mobile
3.
Integrated Browser, browser yang terintegrasi
4.
Optimized Graphics, didukung oleh custom 2D graphics library, 3D graphics dibangun berdasarkan OpenGL ES 1.0 Specification
5.
SQLite, untuk penyimpanan database terstruktur
6.
Media Support, untuk mendukung berbagai audio, video, dan still image format (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
7.
GSM Telephony
8.
Bluetooth, EDGE, 3G, dan WiFi
9.
Camera, GPS, Compass and Accelerometer
10.
Rich Development Environtment, meliputi device emulator, tools untuk debugging, memory dan performance profiling, dan plugin untuk Eclipse Integrated Development Environment (IDE)
2.3
Web Service Web service merupakan suatu komponen perangkat lunak yang merupakan
self-containing, aplikasi modular self-describing yang dapat dipublikasikan, dialokasikan dan dilaksanakan pada web. Web service adalah teknologi yang mengubah kemampuan internet dengan menambahkan kemampuan transactional web, yaitu kemampuan web untuk saling berkomunikasi dengan pola program-toprogram (P2P). Fokus web selama ini didominasi oleh komunikasi program-touser dengan interaksi business-to-computer, sedangkan transactional web akan didominasi oleh program-to-program dengan interaksi business-to-business.
25
Perbedaan signifikan web service dengan website, adalah : 1.
Web service tidak memiliki interface yang bagus, berbeda dengan website dimana menggunakan web interface yang baik dan interaktif dalam tujuannya berinteraksi langsung dengan pengguna.
2.
Web service dibangun untuk berinteraksi dengan aplikasi yang lain, baik itu berbeda sistem operasi, maupun berbeda konsep sekalipun.
3.
Web service dibangun untuk bekerja pada semua tipe aplikasi client atau perangkat client, sedangkan website dibangun untuk berjalan baik pada web browser.
Gambar 2.3 merupakan blok bangunan web service yang mana menyediakan fasilitas komunikasi jarak jauh antara dua aplikasi yang merupakan layer arsitektur web service. 1.
Layer 1 : HTTP dan TCP/IP merupakan protokol internet standar yang digunakan sebagai sarana transportasi.
2.
Layer 2 : Simple Object Access Protocol (SOAP) berbasiskan XML dan digunakan untuk pertukaran informasi antar sekelompok layanan.
3.
Layer 3 : Web Service Definition Language (WSDL) digunakan untuk mendiskripsikan attribute layanan.
4.
Layer 4 : Universal Description, Discovery and Integration, yang mana merupakan direktori pusat untuk deskripsi layanan.
Gambar 2.3 Blok Bangunan Web Service
26
Secara sederhana, web service dapat diartikan pula sebagai sistem software yang dirancang untuk mendukung kemampuan interaksi mesin-ke-mesin yang dilakukan melalui jaringan. Sistem yang berinteraksi dengan suatu web service ditentukan oleh deskripsi dengan menggunakan pesan SOAP, umumnya disampaikan menggunakan HTTP request dengan serialisasi XML dalam hubungannya dengan web lain yang terkait standar.
2.3.1 JSON (Java Script Object Notation) JSON (JavaScript Object Notation) adalah format pertukaran data yang bersifat ringan karena mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScript, Standar ECMA-262 Edisi ke-3 - Desember 1999. JSON merupakan format teks yang tidak bergantung pada bahasa pemprograman apapun karena menggunakan bahasa yang umum digunakan oleh programmer kelompok C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Hal tersebut yang menjadikan JSON sangat ideal digunakan sebagai format bahasa pertukaran data. JSON (JavaScript Object Notation) terdiri dari dua strukutur, yaitu: 1.
Kumpulan sepasang nama/nilai. Pada beberapa bahasa, hal ini dinyatakan sebagai objek (object), record, struktur (struct), dictionary, hash table, key list, atau associative array.
2.
List values yang diurutkan (an ordered list of values). Sebagian besar bahasa, hal ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan (sequence).
Struktur-struktur data ini disebut sebagai struktur data universal karena pada dasarnya, semua bahasa pemprograman modern yang mendukung struktur data ini dalam bentuk yang sama maupun berlainan. Hal ini dapat disebut demikian karena format data mudah ditukarkan dengan bahasa-bahasa pemprograman yang juga berdasarkan pada struktur data tersebut.
27
JSON (JavaScript Object Notation) menggunakan bentuk sebagai berikut: 1.
Objek adalah sepasang nama/nilai yang tidak diurutkan. Objek dimulai dengan lambang “ { “ (kurung kurawal buka) dan diakhiri dengan “ } ” (kurung kurawal tutup). Setiap nama diikuti dengan tanda “ : ” (titik dua) dan setiap pasangan nama/nilai dipisahkan oleh tanda “ , ” (koma).
Gambar 2.4 JSON Format Objek
2.
Larik adalah kumpulan nilai yang terurutkan. Larik dimulai dengan “[“ (kurung siku buka) dan diakhiri dengan “]“ (kurung siku tutup). Setiap nilai dipisahkan oleh “ , “ (koma)
Gambar 2.5 JSON Format Array
Nilai (value) dapat berupa sebuah string dalam tanda kutip ganda, atau angka, atau true atau false atau null, atau sebuah objek atau sebuah larik. Strukturstruktur tersebut dapat disusun bertingkat.
28
Gambar 2.6 JSON Format Value
3.
String merupakan kumpulan dari nol atau lebih karakter unicode, yang dibungkus dengan tanda kutip ganda. Di dalam string dapat digunakan backslash escapes "\" untuk membentuk karakter khusus. Sebuah karakter mewakili karakter tunggal pada string. String sangat mirip dengan string C atau Java.
Gambar 2.7 JSON Format String
4.
Number adalah sangat mirip dengan angka yang terdapat di C atau Java, kecuali format oktal dan heksadesimal tidak digunakan
29
Gambar 2.8 JSON Format Number
Whitespace dapat disisipkan di antara pasangan tanda-tanda tersebut, kecuali beberapa detil encoding yang secara lengkap dipaparkan oleh bahasa pemprograman yang bersangkutan.
2.3.2 XML (Xtensible Markup Language) XML merupakan bahasa web turunan dari SGMW (Standard Generalized Markup Language) yang ada sebelumnya. Teknologi XML dikembangkan mulai tahun 1966 dan mendapat pengakuan dari World Wide Web Consortium (W3C) pada bulan Februari 1998. Secara sederhana XML adalah suatu bahasa yang digunakan untuk mendeskripsikan dan memanipulasi dokumen secara terstruktur. Sebuah bahasa meta-markup yang menyediakan format tertentu untuk dokumendokumen yang memiliki data terstruktur. XML tidak memiliki definisi secara tepat dikarenakan ada yang berpendapat bahwa XML bukanlah bahasa pemrograman, melainkan sebuah sintaks yang digunakan untuk menjelaskan bahasa markup lainnya, sehingga dinamakan meta-language. XML memiliki tiga tipe file yang umum digunakan, yaitu : 1.
XML, merupakan format standar dari struktur berkas (file).
2.
XSL, merupakan format standar untuk memodifikasi data yang diimpor atau diekspor.
3.
XSD, merupakan format standar yang mendefinisikan struktur database dalam XML.
30
Perlu diketahui bahwa XML bukan merupakan pengganti HTML, dimana perbedaan signifikan terasa dari fungsi masing-masing. HTML lebih bertujuan untuk menampilkan informasi yang dititik beratkan pada bagaimana informasi tersebut terlihat secara gamblang, sedangkan XML bertujuan untuk transportasi dan menyimpan data yang dititik beratkan pada isi data yang dibawa.
Dokumen XML dapat digunakan untuk berbagai macam tujuan, yaitu : 1.
Sebagai media penyimpanan data (database) yang mudah dibaca oleh user karena disimpan dalam bentuk teks.
2.
Sebagai media transfer data seperti data transaksi antar perusahaan, atau mentransfer data adari DBMS yang berbeda (Oracle ke SQL Server).
3.
Sebagai acuan untuk membuat bahasa baru, seperti WML (Wireless Markup Language) yang digunakan pada perangkat mobile dengan protokol WAP, atau VoiceXML yang digunakan sebagai bahasa markup untuk pengenalan suara, dialog, aplikasi interaksi respon suara maupun DTMF (aplikasi call centre).
4.
Sebagai file konfigurasi, pada Java dokumen XML sering kali dijumpai seperti file server.xml dan web.xml yang digunakan Tomcat, atau perintahperintah query yang disimpan dalam bentuk file XML.
XML menjadi dasar dari beberapa bahasa markup yang telah dikembangkan sampai saat ini, seperti : XHTML (perbaikan dari HTML), VoiceXML (bahasa untuk aplikasi suara, telepon), Xforms (pengembangan form pada web), Xpath, Xpointer, XSL dan XSLT (transformasi dan presentasi XML).
2.4
Absensi Absensi adalah proses pencatatan waktu hadir seseorang dalam sebuah
dokumen yang dibuat sebagaimana mestinya guna sebagai acuan dalam menentukan sebuah keputusan dalam lingkup penilaian. Catatan waktu hadir dapat berupa daftar hadir biasa, dapat pula berbentuk kartu hadir yang diisi dengan menggunakan mesin pencatatan waktu. Kegiatan mencatat waktu pada
31
dasarnya dapat dipisahkan menjadi dua bagian, yaitu : pencatatan waktu hadir (attendance time keeping) dan pencatatan waktu kerja (shop time keeping).
2.4.1 Tujuan Absensi. Pencatatan waktu kehadiran dimaksudkan untuk mengumpulkan data mengenai kapan atau jam berapa seseorang hadir dalam suatu periode. Pencatatan waktu kehadiran umumnya bertujuan sebagai acuan dalam menentukan tarif upah, sikap tepat waktu seseorang, nilai tunjangan pada lingkup karyawan, dan dapat digunakan sebagai acuan dalam mengambil keputusan akan nilai kerajinan pada seseorang. Pencatatan waktu kerja dimaksudkan untuk mencatat jumlah jam kerja sesungguhnya yang digunakan oleh seseorang dalam setiap pekerjaan (job) atau departemennya. Catatan waktu kerja ini dapat digunakan untuk menilai kinerja atau rentan waktu yang dibutuhkan seseorang dalam menangani suatu kasus, mendapatkana data produksi yang diperlukan untuk distribusi upah dan gaji dan berbagai perhitungan intensif dalam lingkup pekerjaan.
2.4.2 Metode Absensi Pencatatan waktu absensi dapat dilakukan dengan beberapa cara yang umum dilakukan, yaitu : 1.
Absensi Catatan Tangan. Merupakan cara absensi yang paling umum dan mudah digunakan dalam
penerapannya. Menggunakan catatan tangan (tanda tangan atau catatan yang ditulis tangan) yang dimiliki sebagai penanda kehadiran dalam dokumen absen. Tidak mencatat jam atau waktu kehadiran dalam dokumen, sehingga presisi waktu kerja diabaikan, serta waktu kehadiran dipukul rata secara global sesuai waktu mulai kegiatan. Kekurangan metode absensi catatan tangan adalah : a. Seseorang dapat menulis waktu hadir atau waktu pulang sesuai dengan kehendaknya.
32
b. Seseorang dapat menulis waktu hadir atau waktu pulang temannya (orang lain) yang belum datang atau pulang lebih awal, atau bahkan yang tidak hadir sama sekali (kecurangan). c. Memiliki kesulitan yang tinggi dalam melakukan rekap jam hadir pada akhir kegiatan. Metode absensi catatan tangan memiliki banyak kekurangan, namun metode ini paling umum digunakan dalam suatu kegiatan sosial dan belajar mengajar di Indonesia, karena kemudahan dalam menyiapkan alat dan dokumen yang dibutuhkan untuk proses absensi yang dilakukan.
2.
Absensi Almano Metode absensi ini menggunakan mesin almano atau mesin absensi
dengan sistem check lock. Menggunakan sebuah kartu kehadiran sebagai dokumen dalam pencatatan absensi seseorang, dengan memasukkan kartu absen kedalam mesin almano, dan secara otomatis pada kartu tersebut akan dicetak jam hadir atau jam pulang seseorang sesuai dengan patokan waktu yang digunakan di suatu tempat. Kelebihan yang dimiliki oleh absensi dengan metode almano adalah : a. Mudah digunakan dimana seseorang hanya perlu memasukkan kartu absen kedalam mesin almano. b. Seseorang tidak bisa menulis waktu hadir atau waktu pulang sekehendak hati. c. Proses perekapan jam hadir akan lebih mudah dikarenakan dokumen yang dihasilkan terlihat lebih rapi dan mudah dilihat. Metode absensi almano masih memiliki celah dalam sisi keamanan, dimana dokumen atau kartu absen yang digunakan untuk pencatatan absensi dapat digunakan oleh orang lain yang datang lebih awal. Hal ini dikarenakan kartu absensi diletakkan dekat dengan mesin almano, dimana seseorang masih dapat menggunakan kartu orang lain untuk membantu temannya yang datang terlambat.
33
3.
Absensi Sidik Jari Absensi sidik jari (Finger Scan) umumnya digunakan oleh perusahaan
menengah keatas. Cara kerja sistem absensi ini adalah dengan cara menempelkan salah satu jari (umumnya ibu jari tangan kanan) pada mesin setelah memasukkan nomor identitas miliknya. Metode absensi sidik jari memiliki kelebihan sebagai berikut : a. Absensi tidak dapat digantikan oleh orang lain, karena membutuhkan sidik jari pemilik yang tidak dapat ditemukan selain pada jari si pemilik nomor identitas. b. Pencatatan waktu kehadiran menjadi sangat akurat sesuai dengan waktu pemindaian sidik jari berlangsung. c. Proses perekapan data absensi menjadi lebih mudah. Metode sidik jari, walaupun memiliki nilai keamanan yang tinggi, namun dalam penerapannya masih rentan dengan kesalahan yang terjadi (error). Kesalahan tersebut dapat terjadi pada sistem apabila sistem tidak berhasil mengenali sidik jari yang digunakan, atau pada manusia dimana pengguna yang belum fasih akan membutuhkan waktu lama untuk proses absensi. Harga yang relatif mahal merupakan salah satu alasan mengapa sistem absensi ini masih belum lumrah di masyarakat.
4.
Absensi Telapak Tangan. Sistem absensi ini biasanya digunakan oleh perusahaan atau golongan
berskala besar. Cara kerja sistem absensi ini serupa dengan finger scan, yaitu dengan cara menempelkan telapak tangan pada mesin absensi setelah memasukkan nomor identitas pemilik. Kesalahan yang mungkin terjadi, serupa dengan metode finger scan, dimana cacat atau luka pada telapak tangan akan berpengaruh terhadap kemampuan sistem dalam mengenali telapak tangan pemilik absen.