Perancangan Aplikasi Doa-Doa Agama Islam Berbasis Android
BAB 2
LANDASAN TEORI
2.1 Aplikasi Doa Harian
Aplikasi Doa Harian merupakan suatu aplikasi yang menampilkan pekerjaan Doa
sesuai kebutuhan penggunanya. Perangkat lunak ini dibuat berdasarkan
perhitungan yang didasarkan pada Al-Quran dan Sunnah.
2.1.1
Pengertian Doa
Doa menurut bahasa berarti permintaan dan permohonan. Doa menurut istilah
adalah penyerahan diri kepada Allah Swt dalam memohon segala yang diinginkan,
dan meminta dihindarkan dari segala yang dibenci. Doa juga berarti ibadah.
Bahkan berdoa merupakan ibadah yang utama, karena doa adalah inti ibadah. Doa
dapat melembutkan kerasnya qadha dan menolak bala bencana. Banyak berdoa
membuat doa diperkenankan dan dicintai Allah Swt.
Doa merupakan salah satu bentuk ibadah yang harus dilaksanaan dengan
seksama. Tidak hanya lisan, doa membutuhkan keikut sertaan hati yang tulus.
Kata “doa” sering kita dengan dalam Al-Qur’an dengan makna beragam. Doa,
misalnya berarti istighatsah (memohon bantuan dan pertolongan). Doa tidak
hanya perlu dipanjatkan saat kita ditimpa kesulitan atau masalah yang tak kunjung
Universitas Sumatera Utara
7
selesai. Doa harus menjadi bagian tak terpisahkan dalam hiup kita. Sebab, segala
yang di dunia ini bersumber dari kasih sayang Allah unuk semesta alam.
Doa menghubungkan empat unsur dari diri kita, yakni hati (niat), ucapan
(statement), pikiran (planning), dan tindakan (action).
2.2.2 Macam-Macam Doa
a. Zikir dapat berarti menginat dan menyebut. Zikir merupakan upaya
mengingat Allah yang di lakukan makhluk-Nya yang hendak dilakukannya
setiap saat. Firman Allah “Karena itu ingatlah kamu kepada-Ku Niscaya Aku
ingat pula kepadamu” [Qs Al-Baqarah:152].
b. Istighfar berarti kita memohn ampun kepada Allah dapat menjadi jalan keluar
bagi segala kesulitan dan kesempaitan hidup.
c. Sabar adalah perhiasan sekaligus senjata orang beriman saat menghadapi
berbagai ujian dan cobaan. Sabar bukan berarti pasrah. Sabar justru menjadi
simbol kekuatan untuk terus berjuang. “sesungguhnya hanya orang-orang
yang bersabarlah yangdiberikan pahala mereka tanpa batas” [Qs AlZumar:10].
2.2 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
Universitas Sumatera Utara
8
mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari
34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google,
HTC, Intel, Motorola, Qualcom, T-Mobile, dan Nvidia. Pada saat perilisan
perdana Android, 5 November 2007, Android bersama Open Handset Alliance
menyatakan mendukung pengembangan open source pada perangkat mobile.
Dilain pihak, Google merilis kode-kode Android dibawah lisensi Apache,
sebuah lisensi perangkat lunak dan open platform perangkat seluler. Pada masa
saat ini sebagian besar vendor-vendor smartphone sudah memproduksi
smartphone berbasis android, vendor-vendor itu antara lain HTC, Motorola,
Samsung, LG, HKC, Sony Ericsson dan masih banyak lagi vendor smartphone di
dunia yang memproduksi android. Hal ini, karena android itu adalah sistem
operasi yang open source sehingga bebas didistribusikan dan dipakai oleh vendor
manapun.
Tidak hanya menjadi sistem operasi di smartphone, saat ini Android
menjadi pesaing utaa dari Apple pada sistem operasi Tablet PC. Android itu
sendiri adalah platform yang sangat lengkap baik itu sistem operasinya, Aplikasi
dan Tool Pengembangan, serta dukungan yang sangat tinggi dari komunitas Open
Source dunia sehingga android terus berkembang pesat.
Universitas Sumatera Utara
9
2.2.1
Tujuan Android Diciptakan
Beberapa hal yang berusaha dicapai Android, yaitu :
a. Keseragaman Lingkungan Pengembangan Aplikasi.
Jutaan smartphone terjual disetiap tahunnya diseluruh dunia sehingga peluang
bisnis aplikasi terbuka lebar. Namun, setiap merek smartphone memiliki
lingkungan pengembangan aplikasi masing-masing. Ketidak seragaman ini
menghambat pengembangan aplikasi bilitas menjadi rendah. Developer aplikasi
mengembangkan setiap aplikasinya hanya untuk hardware tertentu.
Untuk
pengembangan
Aplikasi,
Android
menawarkan
platform
pengembangan yang konsisten untuk beragam vendor mobile phone. Oleh sebab
itu Aplikasi yang dibuat untuk platform Android dapat dijalankan
b. Konsistensi Akses Hardware.
Pada Android, Aplikasi dapat menggunakan hardware yang tersedia sepanjang
memiliki izin yang cukup. Developer dapat membuat aplikasi yang kaya fitur,
yang terintegrasi dengan semua hardware yang digunakan.
c. Ekosistem Mobile Phone Bertenga, Kaya Fitur, Aman, dan Terjangkau.
Android dirancang untuk menyediakan beragam itur supaya piranti komunikasi
menjadi lebih dari sekedar telepon. Selain layanan telepon dan pesan, Android
juga menyediakan fitur kelola lokasi, grafis, multimedia, jaringan, dan database.
Karena dibangn diatas kernel linux, android mewarisi fitur keamanan dan
stabilitas. Android menerapkan aturan ketat terkait penggunaan layanan dan
hardware yang tersedia. Aplikasi tidak dapat menggunakan fitur hardwar tanpa
sepengetahuan pengguna. Android dirilis menggunakan Apache License.
Universitas Sumatera Utara
10
Pengguna lisensi ini menyebabkan Android bersifat gratis dan bebas
dikembangkan sehingga mampu menekan biaya produksi perangkat mobile
phone.Vendor mobile phone sendiri tidak dikenakan biaya untuk menggunakan
Android.
2.2.2
Arsitektur Android
Secara umum, arsitektur Android terdiri darilapisan software, yaitu lapisan
framework, Android run-time sebagai lapisan perantara (middleware), serta kernel
Linux yang membungkus hardware. Berikut penjelasan arsitektur dari Android :
a. Aplikasi
Aplikasi yang dibuat berada pada level tertinggi dalam hirerki struktur software di
Android. Termasuk didalamya aplikasi bawaan utama Android seperti telepon,
pembaca email, program SMS, kontak, browser, dan kalender. Aplikasi umumnya
ditulis didalam bahasa pemograman Java.
b. Framework Aplikasi
Dibawah aplikasi terdapat sejumlah software pendukung, meliputi layanan
pengeola Activity View, sumber daya, pemberitahuan dan lain-lain.
c. Pustaka
Android menyediakan sejumlah pustaka dasar seperti pustaka grafis 2D dan 3D,
multimedia playback, browser engine, pencetak font, database, dan lain-lain.
Aplikasi yang memanfaatkan pustaka fungsi ini melalui lapisan framework
aplikasi.
d. Android runtime.
Universitas Sumatera Utara
11
Android menyediakan sejumlah pustaka ini bagi pemograman Java. Dibawahnya
terdapat Dalvik Virtual Machine (Dalvik VM) yang akan menjalankan aplikasi.
Tiap aplikasi akan dijalankan pada proses terpisah dengan VM yang berbeda
sehingga terisolasi satu sama lain. Aplikasi masih dapat berkomunikasi dengan
aplikasi lain melalui mekanisme yang disediakan framework aplikasi. Dalvik VM
bergantung pada lapisan dibawahannya (kernel Linux) untuk multi-threading dan
pengelolaan memori tingkat rendah.
e. Kernel Linux
f. Kernel Linux bertanggung jawab menyediakan layanan dasar seperti
keamanan, pengelolaan proses, pengelolaan file pengelolaan sumber daya
memori, dan hardware.
Gambar 2.1 Arsitektur Android
2.2.3
Dasar Aplikasi Android
Universitas Sumatera Utara
12
Aplikasi Android ditulis dalam bahasa pemrograman java. Kode java dikompilasi
bersama dengan data file resource yang dibutuhkan oleh aplikasi, dimana
prosesnya dipackage oleh tools yang dinamakan “apt tools” kedalam paket
android sehingga menghasilkan file dengan ekstensi apk. File apk itulah yang kita
sebut dengan aplikasi, dan nantinya dapat di install di perangkat mobile. Ada
enam jenis :
a. Activities
Suatu activities akan menyajikan user interface (UI) kepada pengguna, Sehingga
pengguna dapat melakukan interaksi. Sebuah aplikasi android bisa jadi hanya
memiliki satu activity, tetapi umumnya aplikasi memiliki banyak activity
tergantung pada tujuan aplikasi dan desain dari aplikasi tersebut.
b. Service
Service tidak memiliki Graphic User Interface (GUI), tetapi service berjalan
secara background, sebagai contoh dalam memainkan music, service mungkin
memainkan music atau mengambil data dari jaringan, tetapi setiap service harus
berada dalam kelas induknya.
c. Broadcast Receiver
Broadcast Receifer berfungsi menerima dan bereaksi untuk menyampaikan
notifikasi. Contoh broadcast seperti zona waktu berubah, baterai low, gambar
telah selesai diambil oleh kamera, atau pengubahan referensi bahasa yang
digunakan. Broadcast Receifer tidak memiliki User Interface (UI), tetapi memiliki
sebuah acticity untuk merespon informasi yang mereka terima, atau mungkin
menggunakan Notification Manager untuk memberitahu kepada pengguna, seperti
lampu latar atau vibrating (getaran) perangkat, dan lain sebagainya.
Universitas Sumatera Utara
13
2.3 Java
Java adalah bahasa pemrograman tingkat tinggi yang berorientasi objek dan
program java tersusun dari bagian yang disebut kelas. Kelas terdiri atas metodemetode yang melakukan pekerjaan dan mengembalikan informasi setelah
melakukan tugasnya. Para pemrogram Java banyak mengambil keuntungan dari
kumpulan kelas di pustaka kelas Java, yang disebut dengan Java Application
Programming Interface (API).
Kelas-kelas ini diorganisasikan menjadi sekelompok yang disebut paket
(package). Java API telah menyediakan fungsionalitas yang memadai untuk
menciptakan applet dan aplikasi canggih. Jadi ada dua hal yang harus dipelajari
dalam Java, yaitu mempelajari bahasa Java dan bagaimana mempergunakan kelas
pada Java API. Kelas merupakan satu-satunya cara menyatakan bagian eksekusi
program, tidak ada cara lain. Pada Java program javac untuk mengkompilasi file
kode sumber Java menjadi kelas-kelas bytecode. File kode sumber mempunyai
ekstensi *.java. Kompilator javac menghasilkan file bytecode kelas dengan
ekstensi *.class. Interpreter merupakan modul utama sistem Java yang digunakan
aplikasi Java dan menjalankan program bytecode Java.
Beberapa keunggulan java yaitu java merupakan bahasa yang sederhana.
Java dirancang agar mudah dipelajari dan digunakan secara efektif. Java tidak
menyediakan fitur-fitur rumit bahasa pemrograman tingkat tinggi, serta banyak
pekerjaan pemrograman yang mulanya harus dilakukan manual, sekarang
digantikan dikerjakan Java secara otomatis seperti dealokasi memori. Bagi
pemrogram yang sudah mengenal bahasa C++ akan cepat belajar susunan bahasa
Universitas Sumatera Utara
14
Java namun harus waspada karena mungkin Java mengambil arah (semantiks)
yang berbeda dibanding C++.
Java merupakan bahasa berorientasi objek (OOP) yaitu cara ampuh dalam
pengorganisasian dan pengembangan perangkat lunak. Pada OOP, program
komputer sebagai kelompok objek yang saling berinteraksi. Deskripsi ringkas
OOP adalah mengorganisasikan program sebagai kumpulan komponen, disebut
objek. Objek-objek ini ada secara independen, mempunyai aturan-aturan
berkomunikasi dengan objek lain dan untuk memerintahkan objek lain guna
meminta informasi tertentu atau meminta objek lain mengerjakan sesuatu. Kelas
bertindak sebagai modul sekaligus tipe. Sebagai tipe maka pada saat jalan,
program menciptakan objek-objek yang merupakan instan-instan kelas. Kelas
dapat mewarisi kelas lain. Java tidak mengijinkan pewarisan jamak namun
menyelesaikan kebutuhan pewarisan jamak dengan fasilitas antarmuka yang lebih
elegan.
Seluruh objek diprogram harus dideklarasikan lebih dulu sebelum
digunakan. Ini merupakan keunggulan Java yaitu Statically Typed. Pemaksaan ini
memungkinkan kompilator Java menentukan dan melaporkan terjadinya
pertentangan (ketidakkompatibelan) tipe yang merupakan barikade awal untuk
mencegah kesalahan yang tidak perlu (seperti mengurangkan variabel bertipe
integer dengan variabel bertipe string).
Java menggunakan model pengamanan tiga lapis (three-layer security
model) untuk melindungi sistem dari untrusted Java code. Pertama, bytecode
verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi
aturan-aturan dasar bahasa Java. Kedua, class loader menangani pemuatan kelas
Universitas Sumatera Utara
15
Java ke runtime interpreter. Ketiga, manajer keamanan menangani keamanan
tingkat aplikasi dengan mengendalikan apakah program berhak mengakses
sumber daya seperti sistem file, port jaringan, proses eksternal dan sistem
window.
2.4 Android Studio
Android
Studio
adalah
Lingkungan
Pengembangan
TerpaduIntegrated
Development Environment (IDE) untuk pengembangan aplikasi Android,
berdasarkan IntelliJ IDEA. Selain merupakan editor kode IntelliJ dan alat
pengembang yang berdaya guna, Android Studio menawarkan fitur lebih banyak
untuk meningkatkan produktivitas Anda saat membuat aplikasi Android,
misalnya:
1. Sistem versi berbasis Gradle yang fleksibel.
2. Emulator yang cepat dan kaya fitur.
3. Lingkungan yang menyatu untuk pengembangan bagi semua perangkat
Android.
4. Instant Run untuk mendorong perubahan ke aplikasi yang berjalan tanpa
membuat APK baru.
5. Template kode dan integrasi GitHub untuk membuat fitur aplikasi yang sama
dan mengimpor kode contoh.
6. Alat pengujian dan kerangka kerja yang ekstensif.
7. Alat Lint untuk meningkatkan kinerja, kegunaan, kompatibilitas versi, dan
masalah-masalah lain.
8. Dukungan C++ dan NDK
9. Dukungan bawaan untuk
GoogleCloud
Platform,
mempermudah
pengintegrasian Google Cloud Messaging dan App Engine.
10. Laman ini berisi pengantar dasar fitur-fitur Android Studio. Untuk
memperoleh rangkuman perubahan terbaru, lihat Catatan Rilis Android
Studio.
Universitas Sumatera Utara
16
2.5 Integrated Development Enviorment (IDE)
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. Berikut tampilannya.
Gambar 2.2 Interface Android Studio
Universitas Sumatera Utara
17
Gambar 2.3 Tampilan Folder
Tampilan layout yang memiliki dua modeyaitu text activity untuk codingan dan
design untuk mendesain tampilan aplikasi. Seperti gambar 2.4 dibawah ini.
Gambar 2.4 Tampilan Layout Desain
Universitas Sumatera Utara
18
2.6 Simbol pada Flowchart
Simbol pada flowchart merupakan gambar atau bagan yang memperlihatkan
urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan
dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu.
Sedangkan hubungan antar proses digambarkan dengan garis penghubung.
Flowchart disusun dengan simbol-simbol. Simbol ini dipakai sebagai alat bantu
menggambarkan proses di dalam program. Simbol-simbol yang dipakai antara
lain:
1. Flow Direction Symbols
Yaitu, simbol yang dipakai untuk menghubungkan antara simbol yang satu dengan
simbol lainnya atau disebut juga connecting line.
Tabel 2.1 Flow Direction Symbols
Simbol
Nama
Arus / Flow
Fungsi
Penghubung antara
prosedur / proses.
Simbol keluar / masuk
Connector
prosedur atau proses dalam
lembar / halaman yang sama.
Universitas Sumatera Utara
19
Simbol keluar / masuk
Off-line Connector
prosedur atau proses. dalam
lembar / halaman yang lain.
2. Processing Simbols
Merupakan simbol yang menunjukkan jenis operasi pengolahan dalam suatu prosedur,
berikut adalah tabel tentang Processing Simbols
Universitas Sumatera Utara
20
Tabel 2.2 Processing Symbols
Simbol
Nama
Fungsi
Simbol yang menunjukkan
Process
pengolahan yang dilakukan
Komputer.
Simbol untuk kondisi yang akan
Decision
menghasilkan beberapa
kemungkinan jawaban / aksi.
Simbol untuk mempersiapkan
Predefined Process
penyimpanan yang akan
digunakan sebagai tempat
pengolahan didalam storage.
Terminal
Manual Input
Simbol untuk permulaan atau
akhir darti suatu program.
Simbol untuk pemasukan data
secara manual on-line keyboard.
3. Input-Output Simbol
Simbol yang dipakai untuk menyatakan jenis peralatan yang digunakan sebagai
media input atau output.
Universitas Sumatera Utara
21
Tabel 2.3. Input-Output Simbol
Simbol
Nama
Fungsi
Simbol yang
menyatakan proses
Input-Output
input dan output tanpa
tergantung dengan jenis
peralatannya.
Simbol yang
menyatakan input
Document
berasal dari dokumen
dalam bentuk kertas
atau output di cetak
dikertas.
Simbol untuk
menyatakan input
Disk and On-line Storage
berasal dari disk atau
output di simpan ke
disk.
Universitas Sumatera Utara
LANDASAN TEORI
2.1 Aplikasi Doa Harian
Aplikasi Doa Harian merupakan suatu aplikasi yang menampilkan pekerjaan Doa
sesuai kebutuhan penggunanya. Perangkat lunak ini dibuat berdasarkan
perhitungan yang didasarkan pada Al-Quran dan Sunnah.
2.1.1
Pengertian Doa
Doa menurut bahasa berarti permintaan dan permohonan. Doa menurut istilah
adalah penyerahan diri kepada Allah Swt dalam memohon segala yang diinginkan,
dan meminta dihindarkan dari segala yang dibenci. Doa juga berarti ibadah.
Bahkan berdoa merupakan ibadah yang utama, karena doa adalah inti ibadah. Doa
dapat melembutkan kerasnya qadha dan menolak bala bencana. Banyak berdoa
membuat doa diperkenankan dan dicintai Allah Swt.
Doa merupakan salah satu bentuk ibadah yang harus dilaksanaan dengan
seksama. Tidak hanya lisan, doa membutuhkan keikut sertaan hati yang tulus.
Kata “doa” sering kita dengan dalam Al-Qur’an dengan makna beragam. Doa,
misalnya berarti istighatsah (memohon bantuan dan pertolongan). Doa tidak
hanya perlu dipanjatkan saat kita ditimpa kesulitan atau masalah yang tak kunjung
Universitas Sumatera Utara
7
selesai. Doa harus menjadi bagian tak terpisahkan dalam hiup kita. Sebab, segala
yang di dunia ini bersumber dari kasih sayang Allah unuk semesta alam.
Doa menghubungkan empat unsur dari diri kita, yakni hati (niat), ucapan
(statement), pikiran (planning), dan tindakan (action).
2.2.2 Macam-Macam Doa
a. Zikir dapat berarti menginat dan menyebut. Zikir merupakan upaya
mengingat Allah yang di lakukan makhluk-Nya yang hendak dilakukannya
setiap saat. Firman Allah “Karena itu ingatlah kamu kepada-Ku Niscaya Aku
ingat pula kepadamu” [Qs Al-Baqarah:152].
b. Istighfar berarti kita memohn ampun kepada Allah dapat menjadi jalan keluar
bagi segala kesulitan dan kesempaitan hidup.
c. Sabar adalah perhiasan sekaligus senjata orang beriman saat menghadapi
berbagai ujian dan cobaan. Sabar bukan berarti pasrah. Sabar justru menjadi
simbol kekuatan untuk terus berjuang. “sesungguhnya hanya orang-orang
yang bersabarlah yangdiberikan pahala mereka tanpa batas” [Qs AlZumar:10].
2.2 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
Universitas Sumatera Utara
8
mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari
34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google,
HTC, Intel, Motorola, Qualcom, T-Mobile, dan Nvidia. Pada saat perilisan
perdana Android, 5 November 2007, Android bersama Open Handset Alliance
menyatakan mendukung pengembangan open source pada perangkat mobile.
Dilain pihak, Google merilis kode-kode Android dibawah lisensi Apache,
sebuah lisensi perangkat lunak dan open platform perangkat seluler. Pada masa
saat ini sebagian besar vendor-vendor smartphone sudah memproduksi
smartphone berbasis android, vendor-vendor itu antara lain HTC, Motorola,
Samsung, LG, HKC, Sony Ericsson dan masih banyak lagi vendor smartphone di
dunia yang memproduksi android. Hal ini, karena android itu adalah sistem
operasi yang open source sehingga bebas didistribusikan dan dipakai oleh vendor
manapun.
Tidak hanya menjadi sistem operasi di smartphone, saat ini Android
menjadi pesaing utaa dari Apple pada sistem operasi Tablet PC. Android itu
sendiri adalah platform yang sangat lengkap baik itu sistem operasinya, Aplikasi
dan Tool Pengembangan, serta dukungan yang sangat tinggi dari komunitas Open
Source dunia sehingga android terus berkembang pesat.
Universitas Sumatera Utara
9
2.2.1
Tujuan Android Diciptakan
Beberapa hal yang berusaha dicapai Android, yaitu :
a. Keseragaman Lingkungan Pengembangan Aplikasi.
Jutaan smartphone terjual disetiap tahunnya diseluruh dunia sehingga peluang
bisnis aplikasi terbuka lebar. Namun, setiap merek smartphone memiliki
lingkungan pengembangan aplikasi masing-masing. Ketidak seragaman ini
menghambat pengembangan aplikasi bilitas menjadi rendah. Developer aplikasi
mengembangkan setiap aplikasinya hanya untuk hardware tertentu.
Untuk
pengembangan
Aplikasi,
Android
menawarkan
platform
pengembangan yang konsisten untuk beragam vendor mobile phone. Oleh sebab
itu Aplikasi yang dibuat untuk platform Android dapat dijalankan
b. Konsistensi Akses Hardware.
Pada Android, Aplikasi dapat menggunakan hardware yang tersedia sepanjang
memiliki izin yang cukup. Developer dapat membuat aplikasi yang kaya fitur,
yang terintegrasi dengan semua hardware yang digunakan.
c. Ekosistem Mobile Phone Bertenga, Kaya Fitur, Aman, dan Terjangkau.
Android dirancang untuk menyediakan beragam itur supaya piranti komunikasi
menjadi lebih dari sekedar telepon. Selain layanan telepon dan pesan, Android
juga menyediakan fitur kelola lokasi, grafis, multimedia, jaringan, dan database.
Karena dibangn diatas kernel linux, android mewarisi fitur keamanan dan
stabilitas. Android menerapkan aturan ketat terkait penggunaan layanan dan
hardware yang tersedia. Aplikasi tidak dapat menggunakan fitur hardwar tanpa
sepengetahuan pengguna. Android dirilis menggunakan Apache License.
Universitas Sumatera Utara
10
Pengguna lisensi ini menyebabkan Android bersifat gratis dan bebas
dikembangkan sehingga mampu menekan biaya produksi perangkat mobile
phone.Vendor mobile phone sendiri tidak dikenakan biaya untuk menggunakan
Android.
2.2.2
Arsitektur Android
Secara umum, arsitektur Android terdiri darilapisan software, yaitu lapisan
framework, Android run-time sebagai lapisan perantara (middleware), serta kernel
Linux yang membungkus hardware. Berikut penjelasan arsitektur dari Android :
a. Aplikasi
Aplikasi yang dibuat berada pada level tertinggi dalam hirerki struktur software di
Android. Termasuk didalamya aplikasi bawaan utama Android seperti telepon,
pembaca email, program SMS, kontak, browser, dan kalender. Aplikasi umumnya
ditulis didalam bahasa pemograman Java.
b. Framework Aplikasi
Dibawah aplikasi terdapat sejumlah software pendukung, meliputi layanan
pengeola Activity View, sumber daya, pemberitahuan dan lain-lain.
c. Pustaka
Android menyediakan sejumlah pustaka dasar seperti pustaka grafis 2D dan 3D,
multimedia playback, browser engine, pencetak font, database, dan lain-lain.
Aplikasi yang memanfaatkan pustaka fungsi ini melalui lapisan framework
aplikasi.
d. Android runtime.
Universitas Sumatera Utara
11
Android menyediakan sejumlah pustaka ini bagi pemograman Java. Dibawahnya
terdapat Dalvik Virtual Machine (Dalvik VM) yang akan menjalankan aplikasi.
Tiap aplikasi akan dijalankan pada proses terpisah dengan VM yang berbeda
sehingga terisolasi satu sama lain. Aplikasi masih dapat berkomunikasi dengan
aplikasi lain melalui mekanisme yang disediakan framework aplikasi. Dalvik VM
bergantung pada lapisan dibawahannya (kernel Linux) untuk multi-threading dan
pengelolaan memori tingkat rendah.
e. Kernel Linux
f. Kernel Linux bertanggung jawab menyediakan layanan dasar seperti
keamanan, pengelolaan proses, pengelolaan file pengelolaan sumber daya
memori, dan hardware.
Gambar 2.1 Arsitektur Android
2.2.3
Dasar Aplikasi Android
Universitas Sumatera Utara
12
Aplikasi Android ditulis dalam bahasa pemrograman java. Kode java dikompilasi
bersama dengan data file resource yang dibutuhkan oleh aplikasi, dimana
prosesnya dipackage oleh tools yang dinamakan “apt tools” kedalam paket
android sehingga menghasilkan file dengan ekstensi apk. File apk itulah yang kita
sebut dengan aplikasi, dan nantinya dapat di install di perangkat mobile. Ada
enam jenis :
a. Activities
Suatu activities akan menyajikan user interface (UI) kepada pengguna, Sehingga
pengguna dapat melakukan interaksi. Sebuah aplikasi android bisa jadi hanya
memiliki satu activity, tetapi umumnya aplikasi memiliki banyak activity
tergantung pada tujuan aplikasi dan desain dari aplikasi tersebut.
b. Service
Service tidak memiliki Graphic User Interface (GUI), tetapi service berjalan
secara background, sebagai contoh dalam memainkan music, service mungkin
memainkan music atau mengambil data dari jaringan, tetapi setiap service harus
berada dalam kelas induknya.
c. Broadcast Receiver
Broadcast Receifer berfungsi menerima dan bereaksi untuk menyampaikan
notifikasi. Contoh broadcast seperti zona waktu berubah, baterai low, gambar
telah selesai diambil oleh kamera, atau pengubahan referensi bahasa yang
digunakan. Broadcast Receifer tidak memiliki User Interface (UI), tetapi memiliki
sebuah acticity untuk merespon informasi yang mereka terima, atau mungkin
menggunakan Notification Manager untuk memberitahu kepada pengguna, seperti
lampu latar atau vibrating (getaran) perangkat, dan lain sebagainya.
Universitas Sumatera Utara
13
2.3 Java
Java adalah bahasa pemrograman tingkat tinggi yang berorientasi objek dan
program java tersusun dari bagian yang disebut kelas. Kelas terdiri atas metodemetode yang melakukan pekerjaan dan mengembalikan informasi setelah
melakukan tugasnya. Para pemrogram Java banyak mengambil keuntungan dari
kumpulan kelas di pustaka kelas Java, yang disebut dengan Java Application
Programming Interface (API).
Kelas-kelas ini diorganisasikan menjadi sekelompok yang disebut paket
(package). Java API telah menyediakan fungsionalitas yang memadai untuk
menciptakan applet dan aplikasi canggih. Jadi ada dua hal yang harus dipelajari
dalam Java, yaitu mempelajari bahasa Java dan bagaimana mempergunakan kelas
pada Java API. Kelas merupakan satu-satunya cara menyatakan bagian eksekusi
program, tidak ada cara lain. Pada Java program javac untuk mengkompilasi file
kode sumber Java menjadi kelas-kelas bytecode. File kode sumber mempunyai
ekstensi *.java. Kompilator javac menghasilkan file bytecode kelas dengan
ekstensi *.class. Interpreter merupakan modul utama sistem Java yang digunakan
aplikasi Java dan menjalankan program bytecode Java.
Beberapa keunggulan java yaitu java merupakan bahasa yang sederhana.
Java dirancang agar mudah dipelajari dan digunakan secara efektif. Java tidak
menyediakan fitur-fitur rumit bahasa pemrograman tingkat tinggi, serta banyak
pekerjaan pemrograman yang mulanya harus dilakukan manual, sekarang
digantikan dikerjakan Java secara otomatis seperti dealokasi memori. Bagi
pemrogram yang sudah mengenal bahasa C++ akan cepat belajar susunan bahasa
Universitas Sumatera Utara
14
Java namun harus waspada karena mungkin Java mengambil arah (semantiks)
yang berbeda dibanding C++.
Java merupakan bahasa berorientasi objek (OOP) yaitu cara ampuh dalam
pengorganisasian dan pengembangan perangkat lunak. Pada OOP, program
komputer sebagai kelompok objek yang saling berinteraksi. Deskripsi ringkas
OOP adalah mengorganisasikan program sebagai kumpulan komponen, disebut
objek. Objek-objek ini ada secara independen, mempunyai aturan-aturan
berkomunikasi dengan objek lain dan untuk memerintahkan objek lain guna
meminta informasi tertentu atau meminta objek lain mengerjakan sesuatu. Kelas
bertindak sebagai modul sekaligus tipe. Sebagai tipe maka pada saat jalan,
program menciptakan objek-objek yang merupakan instan-instan kelas. Kelas
dapat mewarisi kelas lain. Java tidak mengijinkan pewarisan jamak namun
menyelesaikan kebutuhan pewarisan jamak dengan fasilitas antarmuka yang lebih
elegan.
Seluruh objek diprogram harus dideklarasikan lebih dulu sebelum
digunakan. Ini merupakan keunggulan Java yaitu Statically Typed. Pemaksaan ini
memungkinkan kompilator Java menentukan dan melaporkan terjadinya
pertentangan (ketidakkompatibelan) tipe yang merupakan barikade awal untuk
mencegah kesalahan yang tidak perlu (seperti mengurangkan variabel bertipe
integer dengan variabel bertipe string).
Java menggunakan model pengamanan tiga lapis (three-layer security
model) untuk melindungi sistem dari untrusted Java code. Pertama, bytecode
verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi
aturan-aturan dasar bahasa Java. Kedua, class loader menangani pemuatan kelas
Universitas Sumatera Utara
15
Java ke runtime interpreter. Ketiga, manajer keamanan menangani keamanan
tingkat aplikasi dengan mengendalikan apakah program berhak mengakses
sumber daya seperti sistem file, port jaringan, proses eksternal dan sistem
window.
2.4 Android Studio
Android
Studio
adalah
Lingkungan
Pengembangan
TerpaduIntegrated
Development Environment (IDE) untuk pengembangan aplikasi Android,
berdasarkan IntelliJ IDEA. Selain merupakan editor kode IntelliJ dan alat
pengembang yang berdaya guna, Android Studio menawarkan fitur lebih banyak
untuk meningkatkan produktivitas Anda saat membuat aplikasi Android,
misalnya:
1. Sistem versi berbasis Gradle yang fleksibel.
2. Emulator yang cepat dan kaya fitur.
3. Lingkungan yang menyatu untuk pengembangan bagi semua perangkat
Android.
4. Instant Run untuk mendorong perubahan ke aplikasi yang berjalan tanpa
membuat APK baru.
5. Template kode dan integrasi GitHub untuk membuat fitur aplikasi yang sama
dan mengimpor kode contoh.
6. Alat pengujian dan kerangka kerja yang ekstensif.
7. Alat Lint untuk meningkatkan kinerja, kegunaan, kompatibilitas versi, dan
masalah-masalah lain.
8. Dukungan C++ dan NDK
9. Dukungan bawaan untuk
GoogleCloud
Platform,
mempermudah
pengintegrasian Google Cloud Messaging dan App Engine.
10. Laman ini berisi pengantar dasar fitur-fitur Android Studio. Untuk
memperoleh rangkuman perubahan terbaru, lihat Catatan Rilis Android
Studio.
Universitas Sumatera Utara
16
2.5 Integrated Development Enviorment (IDE)
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. Berikut tampilannya.
Gambar 2.2 Interface Android Studio
Universitas Sumatera Utara
17
Gambar 2.3 Tampilan Folder
Tampilan layout yang memiliki dua modeyaitu text activity untuk codingan dan
design untuk mendesain tampilan aplikasi. Seperti gambar 2.4 dibawah ini.
Gambar 2.4 Tampilan Layout Desain
Universitas Sumatera Utara
18
2.6 Simbol pada Flowchart
Simbol pada flowchart merupakan gambar atau bagan yang memperlihatkan
urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan
dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu.
Sedangkan hubungan antar proses digambarkan dengan garis penghubung.
Flowchart disusun dengan simbol-simbol. Simbol ini dipakai sebagai alat bantu
menggambarkan proses di dalam program. Simbol-simbol yang dipakai antara
lain:
1. Flow Direction Symbols
Yaitu, simbol yang dipakai untuk menghubungkan antara simbol yang satu dengan
simbol lainnya atau disebut juga connecting line.
Tabel 2.1 Flow Direction Symbols
Simbol
Nama
Arus / Flow
Fungsi
Penghubung antara
prosedur / proses.
Simbol keluar / masuk
Connector
prosedur atau proses dalam
lembar / halaman yang sama.
Universitas Sumatera Utara
19
Simbol keluar / masuk
Off-line Connector
prosedur atau proses. dalam
lembar / halaman yang lain.
2. Processing Simbols
Merupakan simbol yang menunjukkan jenis operasi pengolahan dalam suatu prosedur,
berikut adalah tabel tentang Processing Simbols
Universitas Sumatera Utara
20
Tabel 2.2 Processing Symbols
Simbol
Nama
Fungsi
Simbol yang menunjukkan
Process
pengolahan yang dilakukan
Komputer.
Simbol untuk kondisi yang akan
Decision
menghasilkan beberapa
kemungkinan jawaban / aksi.
Simbol untuk mempersiapkan
Predefined Process
penyimpanan yang akan
digunakan sebagai tempat
pengolahan didalam storage.
Terminal
Manual Input
Simbol untuk permulaan atau
akhir darti suatu program.
Simbol untuk pemasukan data
secara manual on-line keyboard.
3. Input-Output Simbol
Simbol yang dipakai untuk menyatakan jenis peralatan yang digunakan sebagai
media input atau output.
Universitas Sumatera Utara
21
Tabel 2.3. Input-Output Simbol
Simbol
Nama
Fungsi
Simbol yang
menyatakan proses
Input-Output
input dan output tanpa
tergantung dengan jenis
peralatannya.
Simbol yang
menyatakan input
Document
berasal dari dokumen
dalam bentuk kertas
atau output di cetak
dikertas.
Simbol untuk
menyatakan input
Disk and On-line Storage
berasal dari disk atau
output di simpan ke
disk.
Universitas Sumatera Utara