Perancangan Aplikasi Sistem Absensi Smart SMA Negeri 4 Medan Berbasis Android

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
Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan open
platform perangkat seluler. Sekitar September 2007 Google memperkenalkan
Nexus One, salah satu jenis smartphone yang menggunakan Android sebagai
sistem operasinya.


Universitas Sumatera Utara

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 platform Android.

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.
(Kadir, 2013)

Universitas Sumatera Utara

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
operasi android, karena pada layer inilah aplikasi dapat dirancang dan dibuat,
seperti content-providers yang berupa SMS dan panggilan telepon. Para

Universitas Sumatera Utara

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 (Android Protocol 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 komponenkomponen 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
framework aplikasi.

Universitas Sumatera Utara

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
tersebut yaitu :

Universitas Sumatera Utara

1.

System C Library
Diturunkan dari implementasi standar C system library (libc) milik BSD,

dioptimasi untuk piranti embedded berbasis Linux.

2.

Media Library
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

Relational database engine yang powerfull dan ringan tersedia untuk semua
aplikasi.

Universitas Sumatera Utara

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
Lapisan setelah Kernel Linux adalah Android Runtime. Pada android tertanam
paket pustaka inti yang menyediakan sebagian besar fungsi android. Inilah yang
membedakan Android dibandingkan dengan sistem operasi lain yang juga
mengimplementasikan Linux. Android Runtime merupakan mesin virtual yang
membuat aplikasi android menjadi lebih tangguh dengan paket pustaka yang telah
ada. Di dalam Android Runtime ada 2 bagian yaitu:

Universitas Sumatera Utara

a. Core Libraries, berfungsi untuk menterjemahkan bahasa Java/C yang
ditangani oleh Core Libraries.
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.
Selanjutnya, Sun mengalami kegagalan sehingga nama Oak kemudian harus

Universitas Sumatera Utara

diganti karena sudah ada produk lain yang menggunakan nama tersebut. Nama
Oak diganti menjadi Java.

Java adalah bahasa pemrograman yang kecil, sederhana, aman, objectoriented, 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 build environment.

Satu hal tambahan lagi yang membuat Android Studio unggul adalah
dukungan layout xml editor secara visual yang jauh lebih baik daripada Eclipse.
Walaupun begitu, Android Studio saat ini masih dalam tahap beta dan belum
mempunyai

dukungan

untuk

NDK

(Native

Development

Kit).

Inti

Universitas Sumatera Utara

dari Android Studio 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
menggunakan GPS, jaringan seluler, maupun jaringan wifi.

Universitas Sumatera Utara

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
associative array.

Universitas Sumatera Utara

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
hubungan di antara mereka.

Universitas Sumatera Utara

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
mobile dan website dikatakan lebih efisien dan efektif karena adanya kemudahan
dalam pengaksesan dan pengambilan informasi.

Universitas Sumatera Utara