BAB 2
TINJAUAN PUSTAKA
2.1. Sejarah Android
Android adalah sebuah sistem operasi untuk perangkat mobile berbasis Linux yang mencakup sistem operasi, middleware, dan aplikasi. Android menyediakan
platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka. Awalnya, Google Inc. membeli Android Inc. yang merupakan pendatang baru yang membuat peranti lunak untuk ponsel/smartphone. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan perangkat keras, perangkat lunak, dan telekomunikasi, termasuk
Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. (Huda, 2013)
Pada saat perilisan perdana Android pada tanggal 05 November 2007,
Android bersama Open Handset Alliance menyatakan mendukung pengembangan
open source pada perangkat mobile. Di lain pihak, Google merilis kode-kode
Tidak hanya menjadi sistem operasi di smartphone, saat ini Android menjadi pesaing utama dari Apple. Pesatnya pertumbuhan Android karena Android adalah
platform yang sangat lengkap dari sistem operasinya, aplikasi dan tool
pengembangan, market aplikasi Android serta dukungan yang sangat tinggi dari komunitas Open Source di dunia, sehingga Android terus berkembang pesat baik dari seri teknologi maupun dari segi jumlah device yang ada di dunia.
Android memiliki kelebihan yang dapat dipuji sebagai platform mobile
pertama yang lengkap, terbuka dan bebas. Ada pun penjelasan dari 3 kelebihannya
yaitu antara lain :
1. Lengkap, artinya para desainer dapat melakukan pendekatan yang
komprehensif ketika mereka sedang mengembangkan platformAndroid. 2. Terbuka, artinya platform Android disediakan melalui lisensi open source. 3. Bebas, artinya tidak ada lisensi atau biaya keanggotaan diperlukan, tidak
diperlukan biaya pengujian, dan tidak ada kontrak yang diperlukan.
2.2.Arsitektur Android
Secara garis besar arsitektur android memiliki 4 lapisan (layer) yang merupakan komponen sistem android. Setiap layer tersebut menghimpun beberapa program yang mendukung fungsi-fungsi spesifik dari sistem operasi pada android.
Gambar 2.1. Arsitektur Android
2.2.1. Applications and Widgets
Applications and Widgets ini adalah layer di mana kita berhubungan dengan aplikasi saja, biasanya kita download aplikasi kemudian kita lakukan instlasi dan jalankan aplikasi tersebut. Di layer ini terdapat aplikasi inti termasuk klien email, program SMS, kalender, peta, browser, kontak, dan lain-lain. Semua aplikasi dibuat menggunakan bahasa pemrograman Java.
2.2.2. Applications Frameworks
Applications Frameworks merupakan layer di mana para pembuat aplikasi melakukan peengembangan/pembuatan aplikasi yang akan dijalankan di sistem
pengembang aplikasi memiliki aplikasi penuh kepada tool-tool dasar tersebut, dan memanfaatkannya untuk menciptakan aplikasi yang lebih kompleks. Programmer
mendapatkan akses penuh untuk memanfaatkan API (AndroidProtocol Interface) yang juga digunakan core applications. Arsitektur aplikasi didesain untuk menyederhanakan pemakaian kembali komponen-komponen, setiap aplikasi dapat
menunjukkan kemampuannya dan aplikasi lain dapat memakai kemampuan
tersebut. Mekanisme yang sama memungkinkan pengguna mengganti
komponen-komponen yang dikehendaki.
Di dalam semua aplikasi terdapat servis dan sistem yang meliputi satu set
Views yang dapat digunakan untuk membangun aplikasi meliputi lists, grids, text boxes, buttons, dan embeddable web browser. Content Providers yang memungkinkan aplikasi untuk mengakses data dari aplikasi lain (misalnya
Contacts), atau untuk membagi data yang dimilikinya. Resource Manager
menyediakan akses ke non-code resources misalnya localized strings, graphics,
dan layout files. Notification Manager yang memungkinkan semua aplikasi untuk menampilkan custom alerts pada status bar. 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 servis yang tersedia pada
Lapisan aplikasi android sangat berbeda dibandingkan dengan sistem operasi lainnya. Pada android semua aplikasi, baik aplikasi inti (native) maupun aplikasi pihak ketiga berjalan diatas lapisan aplikasi dengan menggunakan pustaka API
(Application Programming Interface) yang sama. Selain komponen sistem diatas
android juga memiliki komponen yang cukup penting yaitu 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. Maka pengembang tidak perlu lagi mengembangkan hal
serupa untuk aplikasinya, cukup menggunakan scroller yang telah ada. Agar fitur tersebut dapat bekerja, sistem harus dapat menjalankan aplikasi ketika setiap
bagian aplikasi itu dibutuhkan, dan pemanggilan objek java untuk bagian itu.
2.2.3. Libraries
Libraries adalah layer di mana fitur-fitur Android berada, biasanya para pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya. Android
menyertakan satu set library-library dalam bahasa C/ C++ yang digunakan oleh berbagai komponen yang ada pada sistem android. Kemampuan ini dapat diakses oleh programmer melewati android application framework. Sebagai contoh,
android mendukung adanya database. Berikut ini ada beberapa core library
1. System C Library
Diturunkan dari implementasi standar C system library (libc) milik BSD, dioptimasi untuk piranti embedded berbasis Linux.
2. MediaLibrary
Berdasarkan PacketVideo’s OpenCORE library-library ini mendukung
playback dan recording dari berbagai format audio and video populer, meliputi MPEG4, H.264, MP3, AAC, AMR, JPG, dan PNG.
3. Surface Manager
Mengatur akses pada display dan lapisan composite 2D and 3D graphic dari berbagai aplikasi.
4. LibWebCore
Web browser engine modern yang merespon android browser maupun
embedded web view. 5. SGL
The underlying 2D graphics engine. 6. 3D Libraries
Implementasi berdasarkan OpenGL ES 1.0 APIs; library ini menggunakan
hardware 3D acceleration dan highly optimized 3D software rasterizer.
7. FreeType
Bitmap dan vector font rendering.
8. SQLite
Library-library tersebut bukanlah aplikasi yang berjalan sendiri, namun hanya dapat digunakan oleh program yang berada di level atasnya. Sejak versi Android
1.5, pengembang dapat membuat dan menggunakan pustaka sendiri menggunakan
Native Development Toolkit (NDK).
2.2.4. Linux Kernel
Linux Kernel adalah layer di mana inti dari operating sistem dari Android itu berada. Berisi file-file sistem yang mengatur sistem processing, memory,
resource, drivers, dan sistem-sistem operasi android lainnya. Linux Kernel yang digunakan Android adalah Linux Kernel release 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. Kernel linux menyediakan driver layar, kamera, keypad, WiFi, Flash Memory, audio, dan IPC (Interprocess Communication) untuk mengatur aplikasi dan lubang keamanan.
2.2.5. Android Runtime
a. Core Libraries, berfungsi untuk menterjemahkan bahasa Java/C yang ditangani oleh CoreLibraries.
b. Dalvik Virtual Machine, untuk menjalankan fungsi-fungsi secara efisien, yang merupakan pengembangan yang mampu membuat Linux Kernel untuk melakukan threading dan manajemen tingkat rendah.
2.3.Java
Java dimulai pada tahun 1997 ketika Sun Microsystem memulai proyek penelitian
yang diberi kode Green. Proyek ini bertujuan untuk membangun sebuah sistem yang memungkinkan komputer berperan dalam peralatan rumah tangga. Mereka
mengangankan peralatan cerdas yang saling berkomunikasi serta dapat diperintah
oleh manusia hanya dengan sentuhan tombol dan jarak jauh atau diprogram untuk
mengerjakan tugas-tugas tertentu. (Safaat, 2014)
Untuk merealisasikan proyek ini, mereka merencanakan untuk
membangun sebuah sistem operasi yang dibangun dengan bahasa C++. Tetapi,
salah seorang anggota proyek Green yang bernama James Gosling merasa tidak puas dengan bahasa C++. Kemudian ia memutuskan untuk membuat sendiri
bahasa pemrograman yang baru yang diberi nama Oak.
Bahasa Oak dibuat sebagai bahasa yang tidak terikat pada satu platform. Hal ini didasarkan pada kenyataan bahwa peralatan elektronik rumah tangga dibuat
oleh berbagai pabrik dengan memakai berbagai macam jenis prosesor.
diganti karena sudah ada produk lain yang menggunakan nama tersebut. Nama
Oak diganti menjadi Java.
Java adalah bahasa pemrograman yang kecil, sederhana, aman, object-oriented, dijalankan oleh interpreter, tidak tergantung pada arsitektur, alokasi data yang tidak terpakai dibersihkan secara otomatis, mendukung multi-threading, serta mempunyai mekanisme penanganan exception yang strongly-type. Bahasa ini cocok untuk dipakai dalam menulis program yang terdistribusi dan dapat
dikembangkan secara dinamis.
2.4.Android Studio
Andi (2015) mengemukakan Android Studio adalah sebuah IDE untuk Android Development yang diperkenalkan google pada acara Google I/O 2013. Android Studio merupakan pengembangkan dari Eclipse IDE, dan dibuat berdasarkan IDE Java populer, yaitu IntelliJ IDEA. Android Studio merupakan IDE resmi untuk pengembangan aplikasi Android. Sebagai pengembangan dari Eclipse, Android Studio mempunyai banyak fitur-fitur baru dibandingkan dengan Eclipse IDE. Berbeda dengan Eclipse yang menggunakan Ant, Android Studio menggunakan
Gradle sebagai buildenvironment.
dari AndroidStudio adalah editor kode cerdas mampu code completion dengan cerdas, refactoring, dan analisis code. Editor yang baik membantu Anda menjadi pengembang aplikasi Android lebih produktif.
2.5.API Google Map V2
Google telah menyediakan layanan bagi para developer aplikasi Android untuk menggukana API Google Map pada aplikasi mereka. API singkatan dari
Application Programming Interface. Perkembangan penggunaan Google Map di
Android yang ada saat ini dimulai dengan adanya Google Map V1, yang penggunaannya telah dihentikan pada akhir tahun 2012. Mulai tahun 2013,
aplikasi Android yang ingin menampilkan Google Map harus menggunakan layanan Google Map V2. (Mufti, 2014)
Ada perbedaan dalam penerapan source code antara Google Map V1
dengan Google Map V2 yaitu mulai dari penggunaan SHA1 yang menggantikan
MD5 untuk mendapatkan Google API Key hingga penggunaan Fragment yang menggantikan MapView. Kita juga harus menginstal library google-play-service
terlebih dahulu pada Android SDK (Software Development Kit).
Sebagaimana pada pengembangan Google Map V1, pada pengembangan
aplikasi yang menggunakan Google Map V2, kita juga mendapat akses untuk
menambahkan marker (tanda lokasi). Pendeteksian lokasi pengguna juga dapat ditambahkan pada pengembangan aplikasi yang menggunakan Google Map, baik
2.6. PHP dan MySQL Sebagai Web Service
Web service adalah aplikasi yang dibuat agar dapat dipanggil atau diakses oleh aplikasi lain melalui internet dengan menggunakan format pertukaran data sebagai format pengiriman pesan. Contohnya, pertukaran data dengan JSON dan XML. Sebuah web service dapat dipanggil oleh aplikasi lain dengan menggunakan bantuan HTTP (Hypertext Transfer Protocol). (Kasman, 2013)
Web service tidak sama dengan website. Website dibuat untuk memliki tampilan yang bagus, sedangkan web service tidak memliki tampilan. Web service
tidak dibuat untuk berinteraksi langsung dengan pengguna. Web service hanya menyediakan service atau layanan. Layanan tersebutlah yang kemudian akan digunakan atau dipanggil oleh aplikasinya. Dengan demikian, yang akan menjadi
interface adalah aplikasi yang memanggilnya, bukan web service itu sendiri.
2.7. JSON
Suharto (2005) mengemukaan JSON (JavaScript Object Orientation) merupakan format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta
mudah diterjemahkan dan dibuat oleh komputer. JSON juga merupakan format teks yang tidak bergantung pada bahasa pemrograman apapun karena
menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C++, C#, Java, JavaScript, dll. JSON terbuat dari dua struktur, yaitu :
1. Kumpulan pasangan nama/ nilai. Pada beberapa bahasa hal ini dinyatakan
sebagai object, record, struct, dictionary, hash table, keyed list atau
2. Daftar nilai terurutkan. Pada kebanyakan bahasa hal ini dinyatakan sebagai
array, vektor, list atau sequence.
2.8.Sistem
Sistem berasal dari bahasa Latin (systēma) dan bahasa Yunani (sustēma) adalah
suatu kesatuan yang terdiri komponen atau elemen yang dihubungkan bersama
untuk memudahkan aliran informasi, materi atau energi untuk mencapai suatu
tujuan. Istilah ini sering dipergunakan untuk menggambarkan suatu set entitas
yang berinteraksi, di mana suatu model matematika seringkali bisa dibuat.
(Havery, 2009)
Sistem juga merupakan kesatuan bagian-bagian yang saling berhubungan yang
berada dalam suatu wilayah serta memiliki item-item penggerak, contoh umum
misalnya seperti negara. Negara merupakan suatu kumpulan dari beberapa elemen
kesatuan lain seperti provinsi yang saling berhubungan sehingga membentuk
suatu negara dimana yang berperan sebagai penggeraknya yaitu rakyat yang
berada dinegara tersebut.
Kata sistem banyak digunakan dalam percakapan sehari-hari, dalam forum
diskusi maupun dokumen ilmiah. Kata ini digunakan untuk banyak hal, dan pada
banyak bidang pula, sehingga maknanya menjadi beragam. Dalam pengertian
yang paling umum, sebuah sistem adalah sekumpulan benda yang memiliki
2.9.Absensi
Absensi adalah sebuah kegiatan pengambilan data guna mengetahui jumlah
kehadiran pada suatu kegiatan belajar mengajar di sekolah. Setiap kegiatan yang
membutuhkan informasi mengenai peserta tentu akan melakukan absensi. Salah
satu kegunaan absensi kepada pihak pelajar antara lain adalah dalam perhitungan
kemungkinan pelajar untuk mengikuti ujian dan salah satu kegunaan absensi
kepada pihak pengada kegiatan belajar mengajar adalah untuk melakukan evaluasi
kepada kepuasan pelajar terhadap suatu mata pelajaran. (Shaweddy, 2011)
Pengambilan data dilakukan secara manual. Cara ini memiliki kekurangan
yaitu hilang atau rusaknya data yang ada, salah masukkan data, serta kurangnya
efisiensi dan efektifitas pada pengelolahan data. Maka dari itu, penggunaan