• Tidak ada hasil yang ditemukan

Bab 2 LANDASAN TEORI 2.1. Shalat - Implementasi Location Base Service (LBS) Memanfaatkan Sensor GPS untuk Menentukan Waktu Shalat, Posisi Kiblat dan Mesjid Terdekat pada Smartphone Android

N/A
N/A
Protected

Academic year: 2019

Membagikan "Bab 2 LANDASAN TEORI 2.1. Shalat - Implementasi Location Base Service (LBS) Memanfaatkan Sensor GPS untuk Menentukan Waktu Shalat, Posisi Kiblat dan Mesjid Terdekat pada Smartphone Android"

Copied!
36
0
0

Teks penuh

(1)

Bab 2

LANDASAN TEORI

2.1. Shalat

2.1.1. Pengertian Shalat

Salat (Bahasa Arab: صلاة; transliterasi: Shalat), merujuk kepada ritual ibadah pemeluk agama Islam. Menurut syariat Islam, praktik salat harus sesuai dengan segala petunjuk tata cara Rasulullah SAW sebagai figur pengejawantah perintah Allah. Rasulullah SAW bersabda, Salatlah kalian sesuai dengan apa yang kalian lihat aku mempraktikkannya.

(2)

2.1.2. Waktu Shalat Fardhu

Waktu salat dari hari ke hari, dan antara tempat satu dan lainnya bervariasi. Waktu salat sangat berkaitan dengan peristiwa peredaran semu Matahari relatif terhadap bumi. Pada dasarnya, untuk menentukan waktu salat, diperlukan letak geografis, waktu (tanggal), dan ketinggian. urutan waktu salat (dari pagi sampai malam) yaitu imsak, Subuh, syuruq, Zuhur, Asar, Maghrib dan Isya.

1. Syuruq

Syuruq adalah terbitnya Matahari. Waktu syuruq menandakan berakhirnya waktu Subuh. Waktu terbit Matahari dapat dilihat pada almanak astronomi atau dihitung dengan menggunakan algoritma tertentu.

2. Zuhur

Waktu istiwa’ (zawaal) terjadi ketika Matahari berada di titik tertinggi. Istiwa’ juga dikenal dengan sebutan tengah hari (bahasa Inggris: midday/noon). Pada saat istiwa’, mengerjakan ibadah salat (baik wajib maupun sunah) adalah haram. Waktu Zuhur tiba sesaat setelah istiwa’, yakni ketika Matahari telah condong ke arah barat. Waktu tengah hari dapat dilihat pada almanak astronomi atau dihitung dengan menggunakan algoritma tertentu.

(3)

istiwa’dengan masuknya zhuhur membutuhkan waktu 2,5 menit, dan untuk faktor keamanan, biasanya pada jadwal salat, waktu Zuhur adalah 5 menit setelah istiwa’.

3. Asar

Menurut mazhab Syafi'i, Maliki, dan Hambali, waktu Asar diawali jika panjang bayang-bayang benda melebihi panjang benda itu sendiri. Sementara madzab Imam Hanafi mendefinisikan waktu Asar jika panjang bayang-bayang benda dua kali melebihi panjang benda itu sendiri. Waktu Ashar dapat dihitung dengan algoritma tertentu yang menggunakan trigonometri tiga dimensi.

Waktu salat dari hari ke hari, dan antara tempat satu dan lainnya bervariasi. Waktu salat sangat berkaitan dengan peristiwa peredaran semu Matahari relatif terhadap bumi. Pada dasarnya, untuk menentukan waktu salat, diperlukan letak geografis, waktu (tanggal), dan ketinggian.

4. Magrib

Waktu Magrib diawali ketika terbenamnya Matahari. Terbenam Matahari di sini berarti seluruh "piringan" Matahari telah "masuk" di bawah horizon (cakrawala).

5. Isya dan Subuh

Waktu Isya didefinisikan dengan ketika hilangnya cahaya merah (syafaq) di langit, hingga terbitnya fajar shaddiq. Sedangkan waktu Subuh diawali ketika terbitnya fajar shaddiq, hingga sesaat sebelum terbitnya Matahari (syuruq).

(4)

berada di bawah horizon (ufuk barat), masih ada cahaya Matahari yang direfraksikan di langit.

Dari sisi astronomis, cahaya di langit yang terdapat sebelum terbitnya Matahari dan setelah terbenamnya Matahari dinamakan twilight, yang secara harfiah artinya cahaya di antara dua, yakni antara siang dan malam. Dalam bahasa Arab, twilight disebut syafaq. Secara astronomis, terdapat tiga definisi twilight:

a. Twilight Sipil, yakni ketika Matahari berada 6° di bawah horizon b. Twilight Nautikal, yakni ketika Matahari berada 12° di bawah horizon c. Twilight Astronomis, yakni ketika Matahari berada 18° di bawah horizon

Astronom menganggap Twilight Astronomis Petang menandakan dimulainya malam hari; namun definisi ini adalah untuk keperluan praktis saja.

Secara astronomis, waktu Subuh merupakan kebalikan dari waktu Isya. Menjelang pagi hari, fajar ditandai dengan adanya cahaya yang menjulang tinggi (vertikal) di ufuk timur; Ini dinamakan "fajar kadzib". Cahaya tersebut kemudian menyebar di cakrawala (secara horizontal), dan ini dinamakan fajar shaddiq.

(5)

Sebuah penelitian dan observasi di berbagai tempat di dunia menunjukkan bahwa penentuan sudut twilight tertentu ternyata tidak valid (tidak bisa berlaku) untuk seluruh tempat di bumi ini terhadap peristiwa fajar shaddiq dan hilangnya syafaq. Peristiwa tersebut merupakan fungsi dari letak lintang dan musim yang bervariasi di tempat satu dan lainnya. (Wikipedia,2012).

.

2.1.3. Menghitung Waktu Shalat

Seiring dengan perkembangan ilmu pengetahuan para ahli astronomi berusaha membuat rumus waktu shalat berdasarkan konsep posisi matahari disuatu daerah, dengan melihat berdasarkan geografis dan ketinggian suatu tempat di permukaan bumi.

Sehingga dengan adanya rumusan matematika ini dapat ditentukan posisi matahari tanpa harus melihat secara langsung dimana matahari berada. Untuk menentukan waktu lima shalat wajib di suatu tempat pada tanggal tertentu, ada beberapa parameter yang mesti diketahui:

1. Koordinat lintang tempat tersebut (L) ataulatitude. Daerah yang terletak di sebelah utara garis khatulistiwa (ekuator) memiliki lintang positif. Sebaliknya, untuk yang disebelah selatan lintangnya negatif.

(6)

3. Zona waktu tempat tersebut (Z). Daerah yang terletak di sebelah timur Greenwich memiliki Z positif.

4. Ketinggian lokasi dari permukaan laut (H) atau altidude. ketinggian lokasi dari permukaan laut (H) menentukan waktu kapan terbit dan terbenamnya matahari. Tempat yang berada tinggi di atas permukaan laut akan lebih awal menyaksikan matahari terbit serta lebih akhir melihat matahari terbenam, dibandingkan dengan tempat yang lebih rendah. Satuan H adalah meter.

5. Tanggal (D), Bulan (M) dan Tahun (Y). Merupakan parameter yang diperlukan untuk waktu shalat pada tanggal tersebut. Dari tanggal, bulan dan tahun selanjutnya di hitung nilai Julian Day (JD). Dengan rumus sebagai berikut:

𝐽𝐽𝐽𝐽 = 17220994.5 +𝐼𝐼𝑁𝑁𝑁𝑁(365.25 ×𝑌𝑌) + 𝐼𝐼𝑁𝑁𝑁𝑁�30.6001(𝑀𝑀+ 1)�+𝐵𝐵+𝐽𝐽

Keterangan:

a. INT: nilai hasil penjumlahan di ubah ke nilai integer (bilangan bulat) b. Jika M>2, maka M dan Y tidak berubah,

c. Jika M = 1 atau M = 2, maka M +12 dan Y dikurangi 1

d. 𝐵𝐵= 2 +𝐼𝐼𝑁𝑁𝑁𝑁 �𝐴𝐴

4� − 𝐴𝐴; dimana 𝐴𝐴= 𝐼𝐼𝑁𝑁𝑁𝑁( 𝑌𝑌 100).

Nilai JD berlaku untuk pukul 12.00 UT atau saat tengah hari di Greenwich. Untuk JD yang digunakan dalam perhitungan yaitu JD lokasi tempat yang ingin ditentukan waktu shalat. Diperoleh dari JD pukul 12.00 UT waktu Greenwich dikurangi dengan Z/24, dimana Z adalah zona waktu lokal tersebut.

(7)

𝐽𝐽𝑀𝑀= 0.37877 + 23.264

7. Equation of Time (ET). Equation of Time untuk satu tanggal dapat dihitung, dengan rumus:

(8)

memberikan perbedaan waktu sekitar 4 menit. Terdapat beberapa pendapat mengenai nilai altitude matahari seperti tampak pada tabel berikut.

Tabel 2.1 Altitude Matahari Saat Subuh dan Isya

9. Tetapan panjang bayangan Ashar, dalam hal ini terdapat dua pendapat berbeda. Pendapat madzhab Imam Syafi'i menyatakan panjang bayangan benda saat Ashar adalah tinggi benda ditambah panjang bayangan saat Zhuhur. Sementara madzhab Imam Hanafi menyatakan panjang bayangan benda saat Ashar sama dengan dua kali tinggi benda ditambah panjang bayangan saat Zhuhur.

(9)

Waktu shalat dapat ditentukan dengan menggunakan rumus-rumus pergerakkan matahari dengan tepat. Berikut adalah rumus waktu shalat:

1. Rumus Waktu Shalat Subuh

2. Rumus Waktu Shalat Zuhur

𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑍𝑍𝑊𝑊ℎ𝑊𝑊𝑢𝑢= 12 +𝑍𝑍 − 𝐵𝐵

15−

𝐸𝐸𝑁𝑁 60

3. Rumus Waktu Shalat Ashar

Dimana MA merupakan Mazhab yang digunakan, MA sama dengan 1 untuk mazhab imam Syafi'i dan MA sama dengan 2 untuk Mazhab imam Hanafi.

(10)

5. Rumus Waktu Shalat Isya

2.2 Kiblat

2.2.1. Pengertian Kiblat

Dalam Qur'an, dikatakan Muslim harus menghadap Kabah di Mekkah selagi menegakkan shalat. Cukuplah bagi mereka yang tidak berada di Mekkah berdiri mengarah ke sana sehingga orang bisa mengatakan “ia berdiri dalam arah Kiblat.”Agama Islam memperkenalkan Kabah sebagai pusat pemujaan Allah dan Muslim diperintahkan menghadap Kiblat di mana pun mereka berada di bumi, sehingga persaudaraan, kesatuan, dan ketertiban di antara mereka dapat dipertahankan. (HarunYahya, 2012).

2.2.2. Menentukan Arah Kiblat

2.2.2.1. Koordinat Posisi Geografis

(11)

Setiap titik di permukaan bumi dapat dinyatakan dalam duat koordinat, yaitu bujur (longitude) dan lintang (latitude). Semua titik yang memiliki bujur nol terletak pada garis meridian Greenwich (setengah lingkaran besar yang menghubungkan kutub utara dan selatan dan melewati Greenwich). Sementara itu semua titik yang memiliki lintang nol terletak pada garis ekuator (khatulistiwa).

Bujur timur terletak di sebelah timur Greenwich, sedangkan bujur barat terletak di sebelah barat Greenwich. Sesuai kesepakatan umum, bujur timur bernilai positif, sedangkan bujur barat bernilai negatif. Sementara itu semua titik yang terletak di sebelah utara ekuator disebut lintang utara, demikian juga untuk titik di selatan ekuator disebut lintang selatan. Lintang utara bernilai positif, sedangkan lintang selatan bernilai negatif.

(12)

2.2.2.2. Ilmu Ukur Segitiga Bola

Ilmu ukur segitiga bola atau disebut juga dengan istilah trigonometri bola (spherical trigonometri) adalah ilmu ukur sudut bidang datar yang diaplikasikan pada permukaan berbentuk bola yaitu dalam hal ini Bumi. Segitiga bola menjadi ilmu andalan tidak hanya untuk menghitung arah kiblat bahkan termasuk jarak lurus dua buah tempat di permukaan bumi.

Sebagaimana yang sudah disepakati secara umum bahwa yang disebut arah adalah jarak terpendek berupa garis lurus ke suatu tempat, sehingga Kiblat juga menunjukkan arah terpendek dari suatu lokasi ke Ka'bah. Karena bentuk bumi yang bulat, jarak ini membentuk busur besar sepanjang permukaan bumi. Lokasi Ka'bah berdasarkan pengukuran menggunakan Global Positioning System (GPS) maupun menggunakan software Google Earth secara astronomi berada di 21° 25' 21.04” Lintang Utara dan 39° 50' 34.04”. Perhitungan dan pengukuran arah kiblat dilakukan dengan derajat sudut dari titik kutub Utara, dengan menggunakan alat bantu mesin hitung atau kalkulator. Adapun untuk menghitung arah kiblat, ada 3 buah variabel yang diperlukan, yaitu:

1. Lokasi Ka'bah (Mekah)

(13)

Gambar 2.2 Segitiga Bola ABC yang menghubungkan titik A (Ka'bah), titik B (Lokasi), dan titik C (Kutub Utara)

Berdasarkan ketiga variabel ini, lokasi Ka'bah dan Kutub Utara adalah dua variabel yang tetap, sedangkan Lokasi yang akan ditentukan arah kiblat senantiasa berubah. Bila ketiga variabel tersebut digambarkan pada permukaan bumi, maka akan membentuk segitiga bola ABC seperti tampak pada Gambar. Dimana titik A merupakan Lokasi Ka'bah, B Lokasi yang ditentukan arah kiblat dan titik C Kutub Utara. Titik A (Ka'bah) memiliki koordinat bujur Ba dan lintang La. Titik B (Lokasi) memiliki koordinat bujur Bb dan lintang Lb. Titik C memiliki lintang 90 derajat. Busur a adalah panjang busur yang menghubungkan titk B dan C. Busur b adalah panjang busur yang menghubungkan titik A dan C. Busur c adalah panjang busur yang menghubungkan titik A dan B. Sudut C tidak lain adalah selisih antara bujur Ba dan bujur Bb. Jadi sudut C = Ba – Bb. Sementara sudut B adalah arah menuju titk A (Ka'bah). Jadi arah kiblat dari titik B dapat diketahui dengan menentukan besar sudut B.

(14)

adalah La, maka busur b sama dengan 90 – La. Karena lintang titik B adalah Lb, maka busur a sama dengan 90 – Lb.

2.2.2.3. Rumus Segitiga Bola

Dalam trigonometri bola, terdapat rumus-rumus standar sebagai berikut:

Gambar 2.3. Segitiga Bola cos(b) = cos(a) cos(c) + sin(a) sin(c) cos(B)

cos(c) = cos(a) cos(b) + sin(a) sin(b) cos (C)

Dengan menggabungkan ketiga rumus di atas diperoleh rumus sebagai berikut:

(15)

Azimuth arah kiblat ditujukkan oleh sudut B. Azimuth 0 derajat menunjukkan arah utara (true north). Nilai B sangat tergantung dari pembilang dan penyebut pada ruas kanan rumus tan(B). Dengan kata lain, nilai B bergantung pada nilai sin(Ba – Bb) dan nilai cos(Lb)*tan(La) – sin(Lb)*cos(Ba – Bb). Untuk memudahkan, tan(B) dapat ditulis sama dengan y/x. Sehingga nilai sudut B yang sesuai bergantung pula dari positif atau negatifnya nilai x dan y, dapat dijelaskan sebagai berikut:

1. Jika x positif dan y positif, maka tan(B) positif yang menghasilkan 0 < B < 90.

2. Jika x negatif dan y positif, maka tan(B) negatif yang menghasilkan 90 < B < 180.

3. Jika x negatif dan y negatif, maka tan(B) positif yang menghasilkan 180 < B < 270 atau -180 < B < -90. Jika B negatif, maka ditambahkan dengan 360 derajat.

4. Jika x positif dan y negatif, maka tan(B) negatif yang menghasilkan 270 < B < 360 atau -90 < B < 0.

Setelah mengetahui sudut azimuth kiblat, maka selanjutnya menentukan kutub utara sejati (true north). Dari kutub utara sejati tersebut ditambahkan dengan nilai azimuth yang ditemukan dengan pergerakkan searah jarum jam, sehingga didapatkan arah kiblat pada lokasi.

2.3. Location Based Service (LBS)

(16)

layanan untuk mendapatkan informasi yang dia butuhkan, dengan referensi posisi pengguna tersebut. Layanan berbasis lokasi dapat digambarkan sebagai suatu layanan yang berada pada pertemuan tiga teknologi yaitu:Geographic Information System, Internet Service, dan Mobile Devices, hal ini dapat dilihat pada gambar LBS adalah pertemuan dari tiga teknologi.

Secara Garis besar jenis Layanan Berbasis Lokasi juga dapat dibagi menjadi dua, yaitu:

1.Pull Service: Layanan diberikan berdasarkan permintaan dari pelanggan akan kebutuhan suatu informasi. Jenis layanan ini dapat dianalogikan seperti menggakses suatu web pada jaringan internet.

2.Push Service: Layanan ini diberikan langsung oleh sevice provider tanpa menunggu permintaan dari pelanggan, tentu saja informasi yang diberikan tetap berkaitan dengan kebutuhan pelanggan.

2.3.1 Komponen LBS

Dalam Layanan Berbasis Lokasi terdapat Lima komponen penting yaitu:

(17)

2. Comunication Network: Komponen kedua adalah jaringan komunikasi yang mengirim data pengguna dan informasi yang diminta dari mobile terminal ke Service Provider kemudian mengirimkan kembali informasi yang diminta ke pengguna. Communicationnetwork dapat berupa jaringan seluler (GSM, CDMA), Wireless Local Area Network (WLAN), atau Wireless Wide Area Network (WWAN)

3. Positioning Component: Untuk memproses suatu layanan maka posisi pengguna harus diketahui

4. Service and Aplication Provider: Penyedia layanan menawarkan berbagai macam layanan kepada pengguna dan bertanggung jawab untuk memproses informasi yang diminta oleh pengguna.

5. Data and Content Provider: Penyedia layanan tidak selalu menyimpan semua data yang dibutuhkan yang bisa diakses oleh pengguna. Untuk itu, data dapat diminta daridata and Content Provider.

Selanjutnya Service and Aplication Provider mengirim informasi yang telah diolahmelaui jaringan internet dan jaringan komunikasi.Pada akhirnya pengguna dapat menerima informasiyang diinginkan.

2.3.2. Google Maps

(18)

dalam situs web.Dengan menggunakan Google Maps APImemungkinkan untuk menanamkan situs GoogleMaps ke dalam situs eksternal, di mana situs datatertentu dapat dilakukan overlay.

Meskipun pada awalnya hanya JavaScriptAPI, API Maps sejak diperluas untuk menyertakansebuah API untuk Adobe Flash aplikasi, layananuntuk mengambil gambar peta statis, dan layananweb untuk melakukan geocoding, menghasilkanpetunjuk arah mengemudi, dan mendapatkan profilelevasi.

Kelas kunci dalam perpustakaan Mapsadalah MapView, sebuah subclass dari ViewGroupdalam standar perpustakaan Android. SebuahMapView menampilkan peta dengan data yangdiperoleh dari layanan Google Maps. BilaMapView memiliki fokus, dapat menangkap tombolyang ditekan dan gerakan sentuh untuk pan danzoom peta secara otomatis, termasuk penangananpermintaan jaringan untuk ubin peta tambahan. Inijuga menyediakan semua elemen UI yangdiperlukan bagi pengguna untuk mengendalikanpeta. Aplikasi tersebut juga dapat menggunakanmetode MapView kelas untuk mengontrolMapView secara terprogram dan menariksejumlah jenis Tampilan di atas peta.

(19)

sehingga tidak mungkin adapada beberapa perangkat Android biasa.Demikian pula, perpustakaan Maps eksternaltidak termasuk dalam perpustakaan Androidstandar yang disediakan dalam SDK. Google APIpengaya menyediakan perpustakaan Maps untuksehingga dapat mengembangkan, membangun,dan menjalankan aplikasi berbasis peta di SDKAndroid, dengan akses penuh ke data GoogleMaps.(Arifin et al., 2012).

2.4. Android

2.4.1. Pengertian Android

Android adalah satu kumpulan perangkat lunak yang dapat berupa sistem operasi, middleware, dan aplikasi kunci perangkat mobile. Android terdiri dari satu tumpukan yang lengkap, mulai dari boot loader, device driver, dan fungsi-fungsi pustaka, hingga perangkat lunak API, termasuk aplikasi dan SDK (Software Depelopment Kit). Jadi, sebenarnya Android bukanlah satu perangkat tertentu, melainkan sebuah platform yang dapat digunakan dan di adaptasikan untuk mendukung berbagai konfigurasi perangkat keras. Walaupun kelas utama perangkat yang didukung oleh Android adalah telepon mobile, tetapi sekarang ini juga digunakan pada electronic book readers, netbooks, table, dan set-top boxes (STB) (Collins et al., 2012).

(20)

Pada mulanya terdapat berbagai macam sistem operasi pada perangkat selular, diantaranya sistem operasi Symbian, Microsoft Windows Mobile, Mobile Linux, iPhone, dan sistem operasi lainnya. Namun diantara sistem operasi yang ada belum mendukung standar dan penerbitan API yang dapat dimanfaatkan secara keseluruhan dan dengan biaya yang murah. Kemudian Google ikut berkecimpung didalamnya dengan platformAndroid, yang menjanjikan keterbukaan, keterjangkauan, open source, dan framework berkualitas.

Pada tahun 2005, Google mengakuisisi perusahaan Android Inc. Untuk memulai pengembangan platformAndroid. Dimana terlibat dalam pengembangan ini Andy Rubin, Rich Miner, Nick Sears, dan Chris White. Pada pertengahan 2007 sekelompok pemimpin industri bersama-sama membentuk aliansi perangkat selular terbuka, Open Handset Alliance (OHA). Bagian dari tujuan aliansi ini adalah berinovasi dengan cepat dan menanggapi kebutuhan konsumen dengan lebih baik, dengan produk awalnya adalah platformAndroid. Dimana Android dirancang untuk melayani kebutuhan operator telekomunikasi, manufaktur handset, dan pengembang aplikasi. OHA berkomitmen untuk membuat Androidopen source dengan lisensi Apache versi 2.0.

(21)

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, pada tabel berikut diberikan daftar lengkap versi-versi Android hingga peluncuran terakhirnya pada tahun 2011.

Tabe1 2.2 Versi-Versi Android

Versi Android Tanggal Peluncuran API Level Nama Kode

1.0 23 September 2008 1 -

(22)

Gambar 2.4 Detail Anatomi Android

2.4.3.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. Oleh karenanya pada Android hanya terdapat beberapa servis yang diperlukan seperti keamanan, manajemen memori, manajemen proses, jaringan dan driver. Kernel linux menyediakan driver layar, kamera, keypad, WiFi, Flash Memory, audio, dan IPC (Interprocess Communication) untuk mengatur aplikasi dan lubang keamanan.

(23)

Android menggunakan beberapa paket pustaka yang terdapat pada C/C++ dengan standar Berkeley Software Distribution (BSD) hanya setengah dari yang aslinya untuk tertanam pada kernel Linux. Beberapa pustaka diantaranya:

1. Media Library untuk memutar dan merekam berbagai macam format audio dan video.

2. Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi.

3. Graphic Library termasuk didalamnya SGL dan OpenGL, untuk tampilan 2D dan 3D.

4. SQLite untuk mengatur relasi database yang digunakan pada aplikasi. 5. 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).

2.4.3.3. Android Runtime

(24)

yang membuat aplikasi Android menjadi lebih tangguh dengan paket pustaka yang telah ada. Dalam Android Runtime terdapat 2 bagian utama, diantaranya:

1. Pustaka Inti, Android dikembangkan melalui bahasa pemrograman Java, tapi Android Runtime bukanlah mesin virtual Java. Pustaka inti Android menyediakan hampir semua fungsi yang terdapat pada pustaka Java serta beberapa pustaka khusus Android.

2. 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). Dengan format ini 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.

2.4.3.4. Application Framework

Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk mengembangkan aplikasi Android. Selain itu, 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:

1. Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan menjaga keadaan ”Backstack“ untuk navigasi penggunaan.

(25)

3. Resuource Manager, untuk mengatur sumber daya yang ada dalam program. Serta menyediakan akses sumber daya diluar kode program,seperti karakter, grafik, dan file layout.

4. Location Manager, berfungsi untuk memberikan informasi detail mengenai lokasi perangkat Android berada.

5. Notification Manager, mencakup berbagai macam peringatan seperti, pesan masuk, janji, dan lain sebagainya yang akan ditampilkan pada status bar.

2.4.3.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. 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.

(26)

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. Oleh karenanya Android berbeda dari sistem-sistem lain, Android tidak memiliki satu tampilan utama program seperti fungsi main() pada aplikasi lain. Sebaliknya, aplikasi memiliki komponen penting yang memungkinkan sistem untuk memanggil dan menjalankan ketika dibutuhkan.

2.4.4.1. 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 Event. Setiap aplikasi memiliki sebuah activity atau lebih. Biasanya pasti akan ada activity yang pertama kali tampil ketika aplikasi dijalankan.

(27)

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.

Ketika activity diambil dan disimpan dalam tumpukkan activity terdapat 4 kemungkinan kondisi transisi yang akan terjadi, yaitu:

1. 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. Ketika activity sedang aktif, maka yang lainnya akan dihentikan sementara.

(28)

3. 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 dieksekusi oleh sistem ketika membutuhkan sumberdaya lebih. Oleh karenanya ketika 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.

4. 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.

2.4.4.2. Services

(29)

2.4.4.3. 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.

2.4.4.4. 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, Baterai sudah hampir habis, informasi zona waktu telah berubah, atau pengguna telah merubah bahasa default pada perangkat. Sama halnya dengan service, Broadcast Receivers tidak menampilkan antarmuka pengguna. Namun, Broadcast Receivers dapat menggunakan Notification Manager untuk memberitahukan sesuatu kepada pengguna.

2.4.4.5. Content Providers

(30)

untuk saling berbagi data. Komponen ini sangat berguna ketika sebuah aplikasi membutuhkan data dari aplikasi lain, sehingga mudah dalam penerapannya.

2.4.5. Tipe Aplikasi Android

Terdapat tiga kategori aplikasi pada Android, yaitu:

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.

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. Untuk aplikasi yang kompleks akan sulit untuk menentukan kategori aplikasi tersebut apalagi aplikasi memiliki ciri-ciri dari semua kategori. Oleh karenanya perlu pertimbangan bagaimana aplikasi tersebut digunakan dan menentukan kategori aplikasi yang sesuai. 2.4.6. Siklus Hidup Aplikasi Android

(31)

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 tersebut. Sebaliknya, jika suatu Activity tidak terlihat dan sistem membutuhkan sumber daya yang lebih, maka Activity yang prioritas rendah akan ditutup.

Android menjalankan setiap aplikasi dalam proses secara terpisah, yang masing-masing memliki mesin virtual pengolah sendiri, dengan ini melindungi penggunaan memori pada aplikasi. Selain itu juga Android dapat mengontrol aplikasi mana yang layak menjadi prioritas utama. Karenanya Android sangat sensitive dengan siklus hidup aplikasi dan komponen-komponennya. Perlu adanya penanganan terhadap setiap kondisi agar aplikasi menjadi stabil. Gambar 2.2 Prioritas menunjukkan prioritas dari aplikasi.

(32)

2.4.7. Kelebihan Android

Sudah banyak platform untuk perangkat selular saat ini, termasuk didalamnya Symbian, iPhone, Windows Mobile, BlackBerry, Java Mobile Edition, Linux Mobile (LiM0), dan banyak lagi. Namun ada beberapa hal yang menjadi kelebihan Android. Walaupun beberapa fitur-fitur yang ada telah muncul sebelumnya pada platform lain, Android adalah yang pertama menggabungkan hal seperti berikut:

1. Keterbukaan, Bebas pengembangan tanpa dikenakan biaya terhadap sistem karena berbasiskan Linux dan open source. Pembuat perangkat menyuka hal ini karena dapat membangun platform yang sesuai yang diinginkan tanpa harus membayar royality. Sementara pengembang software menyukai karena 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.

(33)

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.

6. 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. Sama halnya dengan dukungan masukan seperti penggunaan Keyboard, layar sentuh, trackball dan resolusi layar semua dapat disesuaikan dengan program.

2.4.8. Lingkungan Pengembangan Android

Untuk membangun perangkat lunak aplikasi Android, ada beberapa perkakas (tools) yang diperlukan, mulai dari lingkungan pengembangan, alat-alat bantu pengembagan kompiler, dll. (Haseman, 2008; Mednieks et al., 2010).

(34)

JDK menyediakan perkakas yang diperlukan untuk mengembangkan program Java, yang memuat semua perkakas (tools) dan pustaka (libraries) yang dibutuhkan untuk menjalankan aplikasi berbasis Java, misalnya Java compiler yang digunakan oleh IDE dan SDK. Disamping itu, JDK juga memuat Java Runtime Environment (JRE) yang memungkinkan program Java seperti Eclipse, hanya JRE nilai yang diperlukan.

2.4.8.2. IDE Eclipse

Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent). Berikut ini adalah sifat dari Eclipse:

1. Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X.

2. Multi-language: Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya.

(35)

Gambar 2.6 Eclipse Indigo

Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya populer adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan komponen yang dinamakan plug-in.

2.4.8.3. Android SDK

Android Software Development Kit (SDK) adalah sekumpulan file yang terdiri dari pustaka, kode eksekusi, skrip, dokumentasi dll. Android SDK dapat di unduh secara gratis di Google.

2.4.8.4. Build Target

(36)

Programming Interface). Untuk keperluan ini digunakan SDK dan AVD (Android Virtual Device) Manager. API merupakan inti dari Android SDK yang memuat kumpulan fungsi, metode, sifat-sifat, class, dan pustaka yang digunakan oleh pengembang aplikasi untuk mebuat program yang sesuai untuk platform tertentu. API terdiri dari kumpulan Google API dan Optional API.

2.4.8.5. Android Development Tools (ADT)

Gambar

Tabel 2.1 Altitude Matahari Saat Subuh dan Isya
Gambar 2.1 Pembagian Bumi Berdasarkan Bujur dan Lintang
Gambar 2.2 Segitiga Bola ABC yang menghubungkan titik A (Ka'bah), titik B
Gambar 2.3. Segitiga Bola
+5

Referensi

Dokumen terkait

Tujuan penelitian ini adalah untuk mengetahui tingkat pengetahuan siswa kelas VII SMP Negeri 1 Prambanan dalam mitigasi bencana gempa bumi dalam mitigasi bencana guna

Salah satu alat pengeringan yaitu rotary dryer (pengering putar) yang terdiri dari sebuah selongsong berbentuk silinder yang berputar, horisontal, atau agak miring ke bawah ke

Berdasarkan Peraturan Menteri Agraria Nomor 2 Tahun 1999 tentang Izin Lokasi definisi izin lokasi adalah izin yang diberikan kepada perusahaan untuk memperoleh tanah yang

Kegunaan deskriptif yang kedua dari suatu tabel 10 adalah kemampuannya dalam menyajikan distribusi output, baik ke sektor- sektor ekonomi lainnya sebagai input produksi yang

Berdasarkan hasil pengolahan dan analisis data angket maka secara umum hasil penelitian ini menunjukkan bahwa kebutuhan siswa tentang layanan informasi bidang pribadi pada

Ingat bahwa pada saat menyusun atau menulis sebuah teks, pengetahuan akan fungsi sosial, struktur teks, dan unsur kebahasaan adalah sebuah keharusan agar teks

Kadar glukosa darah rata-rata tikus sehat, tikus hasil induksi MLD-STZ dan tikus hasil terapi herbal spray Spirulina sp.. Perlakuan Rata-rata Glukosa