Muhammad Amiral - Tugas Akhir

118
 Apli kas i Pe ng ing at Sha lat dan Arah K iblat M e ng gu naka n Global Positioning System (GPS) Berbasis Android 1.6  TUGA S AK HIR Oleh: Muhammad Amiral 115.06.0034 PROGRAM STUDI TEKNIK I NFORMATIKA INSTITUT TEKNOLOGI INDONESIA 2010

Transcript of Muhammad Amiral - Tugas Akhir

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 1/118

 

Aplikasi Pengingat Shalat dan Arah Kiblat Menggunakan Global

Positioning System (GPS) Berbasis Andr oid 1.6

TUGAS AKHIR

Oleh:

Muhammad Amiral

115.06.0034

PROGRAM STUDI TEKNIK INFORMATIKA

INSTITUT TEKNOLOGI INDONESIA

2010

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 2/118

 

TUGAS AKHIR:

Aplikasi Pengingat Shalat dan Arah Kiblat Menggunakan Global

Positioning System (GPS) Berbasis Android 1.6

Laporan Tugas Akhir ini disusun sebagai salah satu syarat

Untuk memperoleh gelar Sarjana Teknik 

Pada Program Studi Teknik Informatika

Institut Teknologi Indonesia 

Oleh:

Muhammad Amiral

115.06.0034

PROGRAM STUDI TEKNIK INFORMATIKA

INSTITUT TEKNOLOGI INDONESIA

2010 

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 3/118

 

LEMBAR PENGESAHAN

Judul Tugas Akhir :

Aplikasi Pengingat Shalat dan Arah Kiblat

Menggunakan Global Positioning System (GPS)

Berbasis Android 1.6

Nama : Muhammad Amiral

NRP : 115.06.0034

TUGAS AKHIR INI TELAH DIPERIKSA DAN DISETUJUI

Serpong, __ Maret 2010 

Mengetahui,

Dra. Endang RD, M.Kom Yustina Sri Suharini, MT

Ketua Program Studi Pembimbing Tugas Akhir

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 4/118

 

 

Tugas Akhir ini ku persembahkan kepada Wanita Super dalam hidupku, Mama.

Senantiasa berupaya untuk dapat terus memberi kepada anak-anaknya, agar 

selalu menjadi yang terbaik.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 5/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] i

ABTRAKSI

Ibadah shalat lima waktu merupakan kewajiban yang harus senantiasa dikerjakan

oleh umat muslim, setiap hari. Melaksanakan sesuai dengan waktu-waktu yangtelah ditentukan serta menghadap kearah kiblat merupakan keutamaan dalam

menunaikan ibadah wajib ini. Tentunya dalam era modern ini umat muslim tidak 

boleh menjadikan kesibukannya sebagai alasan untuk melalaikan perintah shalat.

Oleh karenanya umat muslim perlu disiplin dalam membagi waktu. Pemanfaatan

perangkat  Handphone sebagai pendamping dalam melaksanakan kegiatan sehari-

hari sudah sangat lumrah bagi sebagian orang. Hal ini dikarenakan beberapa

 Handphone sudah memiliki fungsi dan kemampuan lebih dari sekedar fungsi

dasarnya. Android sebagai sistem operasi yang dapat ditanamkan pada perangkat

handphone memiliki kemampuan untuk dapat diinstal aplikasi-aplikasi yang

diperlukan oleh pengguna. Pada tugas akhir ini dikembangkan aplikasi pengingat

shalat dan arah kiblat atau yang diberi nama Kupluk, diharapkan umat muslimyang menggunakan perangkat handphone berbasiskan sistem operasi Android

dapat terbantu untuk tetap melaksanakan ibadah tepat waktu dan sesuai denganarah kiblat yang benar.

Keywords: Android, Aplikasi Pengingat Shalat dan Arah Kiblat, Kupluk  

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 6/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] ii

KATA PENGANTAR

Pertama-tama penulis panjatkan puji syukur atas kehadiran Allah S.W.T

karena atas rahmat dan karunia-Nyalah akhirnya laporan tugas akhir ini dapat

penulis selesaikan. Tak lupa pula shalawat dan salam penulis panjatkan kepada

Nabi akhir zaman Muhammad S.A.W, karena berkat perjuangannyalah karunia

Iman dan Islam senantiasa menjadi inspirasi bagi penulis.

Adapun maksud penulisan Laporan Tugas Akhir ini adalah sebagai

gambaran terhadap apa yang penulis kerjakan pada Tugas Akhir. Selain itu juga

laporan ini sebagai syarat untuk pelaksanaan mata kuliah Tugas Akhir dalam

menyelesaikan program studi strata satu (S-1) di Institut Teknologi Indonesia.

Oleh karenanya, pada kesempatan ini penulis ingin mengucapkan banyak terima

kasih kepada:

1.  Kedua orang tua, khususnya mama yang telah memberikan dukungan

materil dan imateril semangat, kasih sayang, dan pengorbanan kepada

penulis yang tak terhitung dan ternilai jumlahnya.

2.  Ibu Dra. Endang RD, M.Kom selaku Ketua Program Studi Teknik 

Informatika.

3.  Ibu Yustina SS, MT. Selaku Penasehat Akademik, Koordinator Tugas

Akhir, dan Dosen Pembimbing penulis menyelesaikan laporan Tugas

Akhir ini. Telah memberikan Saran-saran perbaikan, pengetahuan dan

dorongan dalam penyelesaian Tugas Akhir Penulis.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 7/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] iii

4.  Para Dosen penguji Tugas Akhir, Ibu Dra. Endang R.D M.Kom, Bapak,

Budi Prasetyo, MT, dan Bapak Sunarto, telah menguji Tugas Akhir

penulis dan memberikan masukkan untuk perbaikan laporan Tugas Akhir

penulis.

5.  Seluruh DOSEN PROGRAM STUDI TEKNIK INFORMATIKA ITI,

terima kasih untuk bimbingan dan pengajarannya. Semoga ilmu yang

penulis terima kelak bermanfaat untuk penulis.

6.  Keluarga yang selalu mengasihi, adik-adik, bibi, paman dan saudara

lainnya yang tak bisa disebutkan satu-satu.

7.  Seseorang yang menjadi impian penulis, yang selalu mengingatkan,

menambahkan dukungan, semangat, dan kasih sayang. Oki Oktaviani.

8.  Teman-teman Teknik Informatika angkatan 2006 khususnya Aktifis-aktifis

himpunan periode 2008-2009 dan penghuni Perumahan Serpong City

Paradise Block. G : Eko, Trisna, Ramdan, Pram, Dana, Silvi, Septian,

Raqib, Rizqi, Emo, Ari, Ade, Panji, Rado, Gristi, Dadi, Kiki, Marina,

Vinda. Terima kasih atas kerjasama, kekompakkan dan kebersamaannya.

9.  Seluruh Mahasiswa Teknik Informatika 2004, 2005, 2007 dan 2008.

10. Teman-teman alumni Ma’had Al-Zaytun khususnya angkatan kedua

(Persada), terima kasih atas motivasinya.

11. Cipto, Babun, Bundo, Bejo, dan Slamet. Terima kasih telah selalu bersama

penulis memberikan bantuan yang mungkin saja tanpa kalian penulis tak 

dapat menyelesaikan masa kuliah ini dengan lancar.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 8/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] iv

Penulis mendoakan untuk semua pihak yang telah membantu penulis

mendapatkan imbalan yang setimpal dan senantiasa di berkahi rahmat berlimpah

dari Allah S.W.T. Amin.

Semoga dengan terselesaikannya Tugas Akhir dan Laporannya ini dapat

memberikan manfaat bagi penulis khususnya dan para pembaca pada umumnya.

Penulis menyadari bahwa Tugas Akhir dan Laporan ini masih jauh dari

kesempurnaan. Mengingat terbatasnya pengetahuan dan kemampuan penulis.

Oleh karenanya penulis memohon maaf dan selalu terbuka untuk menerima kritik 

dan saran dari pembaca.

Serpong, Maret 2010

Penulis

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 9/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] v

DAFTAR ISI

ABTRAKSI .......................................................................................................... i

KATA PENGANTAR .........................................................................................ii

DAFTAR ISI ....................................................................................................... v

DAFTAR GAMBAR .......................................................................................... ix

DAFTAR TABEL ..............................................................................................xi

BAB I Pendahuluan.........................................................................................1

1.1. Latar Belakang ..................................................................................... 1

1.2. Rumusan Masalah ................................................................................2

1.3. Tujuan.................................................................................................. 2

1.4. Manfaat ................................................................................................2

1.5. Batasan Masalah...................................................................................3

1.6. Metode Penelitian................................................................................. 3

1.7. Sistematika Penulisan Laporan .............................................................4

BAB II Landasan Teori..................................................................................... 6

2.1. Shalat ................................................................................................... 6

2.1.1. Pengertian Shalat ..........................................................................6

2.1.2. Waktu Shalat - Shalat Fardhu................................................ ........ 6

2.1.3. Menghitung Waktu Shalat.................................................. ......... 10

2.2. Kiblat .................................................................................................15

2.2.1. Pengertian Kiblat ........................................................................ 15

2.2.2. Menentukan Arah Kiblat..... ....................................... ........... ...... 16

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 10/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] vi

2.2.2.1. Koordinat Posisi Geografis........ ........... ............................... 16

2.2.2.2. Ilmu Ukur Segitiga Bola................................................ ...... 17

2.2.2.3. Rumus Segitiga Bola........................................................... 19

2.3. Android ..............................................................................................22

2.3.1. Pengertian Android..................................................................... 22

2.3.2. Sejarah dan Perkembangan Android............................................ 22

2.3.3. Anatomi Android ........................................................................ 23

2.3.3.1. Linux Kernel....................................................................... 24

2.3.3.2. Libraries.............................................................................. 25

2.3.3.3. Android Runtime ................................................................25

2.3.3.4. Application Framework...................................... ........... ...... 26

2.3.3.5. Application Layer ...............................................................27

2.3.4. Komponen Aplikasi .................................................................... 27

2.3.4.1. Activities............................................................................. 28

2.3.4.2. Services ..............................................................................30

2.3.4.3. Intents ................................................................................. 30

2.3.4.4. Broadcast Receivers ............................................................31

2.3.4.5. Content Providers................................................................ 31

2.3.5. Tipe Aplikasi Android ................................................................31

2.3.6. Siklus Hidup Aplikasi Android ................................................... 32

2.3.7. Kelebihan Android...................... ....................................... ......... 34

BAB III Analisis dan Perancangan ................................................................... 36

3.1. Analisis Kebutuhan Kupluk................................................................36

3.1.1. Analisis Fungsional .................................................................... 36

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 11/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] vii

3.1.2. Performansi Kupluk.................................................................... 37

3.1.3. Use Case Diagram ...................................................................... 38

3.1.4. Diagram Alir (Flowchart ) ...........................................................40

3.2. Perancangan Kupluk........................................................................... 41

3.2.1. Diagram Kelas............................................................................42

3.2.2.  Sequence Diagram ...................................................................... 44

3.2.3. Perancangan Navigasi................................................................. 45

3.2.4. Perancangan Antar Muka ( Interface) ..........................................46

3.2.4.1. Perancangan Antar Muka Menu ..........................................47

3.2.4.2. Perancangan Antar Muka Jadwal Shalat .............................. 48

3.2.4.3. Perancangan Antar Muka Arah Kiblat.......... ....................... 49

3.2.4.4. Perancangan Antar Muka Pengaturan.................................. 50

3.2.4.5. Perancangan Antar Muka Tentang...................... ........... ...... 51

BAB IV Implementasi...................................................................................... 54

4.1. Spesifikasi Perangkat Keras dan Lunak ..............................................54

4.1.1. Spesifikasi Perangkat Keras ........................................................ 54

4.1.2. Spesifikasi Perangkat Lunak ....................................................... 55

4.2. Penulisan Kode Program (Codding)....................................................57

4.2.1. Pembuatan Tampilan Utama....................................................... 57

4.2.1.1. Pembuatan Tampilan Antarmuka Tampilan Utama.............. 57

4.2.1.2. Pembuatan Kelas PerhitunganShalat.................................... 60

4.2.1.3. Pembuatan Kelas FormatWaktu ..........................................64

4.2.1.4. Pembuatan Kelas KuplukMain...................................... ...... 65

4.2.2. Pembuatan Tampilan Arah Kiblat ...............................................69

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 12/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] viii

4.2.2.1. Pembuatan Kelas KiblatView............... ............................... 70

4.2.2.2. Pembuatan Tampilan Antarmuka Arah Kiblat ..................... 72

4.2.2.3. Pembuatan Kelas Kiblat ...................................................... 73

4.2.3. Pembuatan Tampilan Pengaturan................................................ 77

4.2.3.1. Pembuatan Tampilan Antarmuka Pengaturan ...................... 77

4.2.3.2. Pembuatan Kelas Pengaturan ..............................................79

4.2.4. Pembuatan Tampilan Tentang...................... ............................... 81

4.2.4.1. Pembuatan Tampilan Antarmuka Tentang..................... ...... 81

4.2.4.2. Pembuatan Kelas Antarmuka Tentang................................. 83

4.3. Pengujian ........................................................................................... 85

4.3.1. Pengujian Black Box Fitur Jadwal Shalat .................................... 91

4.3.2. Pengujian Black Box Arah Kiblat................................................ 94

4.4. Distribusi............................................................................................ 98

BAB V Kesimpulan dan Saran...................................................................... 100

5.1. Kesimpulan ...................................................................................... 100

5.2. Saran ................................................................................................ 101

DAFTAR PUSTAKA ...................................................................................... 102

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 13/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] ix

DAFTAR GAMBAR

Gambar 2.1 Pembagian Bumi Berdasarkan Bujur dan Lintang .......... ........... ...... 17

Gambar 2.2 Segitiga Bola ABC yang menghubungkan titik A (Ka'bah), titik B

(Lokasi), dan titik C (Kutub Utara) .................................................................... 18

Gambar 2.3 Segitiga Bola .................................................................................. 20

Gambar 2.4 Detail Anatomi Android........................ ........... ............................... 24

Gambar 2.5 Prioritas Aplikasi Berdasarkan Activity ...........................................33

Gambar 3.1 Diagram Use Case .......................................................................... 39

Gambar 3.2 Diagram Alir Sistem....................................................................... 41

Gambar 3.3 Diagram Kelas dan Relasi Antar Kelas .................... ....................... 42

Gambar 3.4 Diagram Sequence .......................................................................... 45

Gambar 3.5 Struktur Navigasi............................................................................46

Gambar 3.6 Desain Layar Tampilan Menu Utama........................................ ...... 47

Gambar 3.7 Desain Layar Tampilan Jadwal Shalat............................................. 48

Gambar 3.8 Desain Layar Tampilan Arah Kiblat................................................ 49

Gambar 3.9 Desain Layar Tampilan Pengaturan........................................ ......... 50

Gambar 3.10 Desain Layar Tampilan Antarmuka Tentang .......... ....................... 52

Gambar 4.1 Antarmuka Jadwal Shalat................ ....................................... ......... 85

Gambar 4.2 Antarmuka Menu Utama...... ........... ....................................... ......... 86

Gambar 4.3 Antarmuka Arah Kiblat........ ........... ....................................... ......... 86

Gambar 4.4 Antarmuka Pengaturan............ ....................................... ........... ...... 87

Gambar 4.5 Antarmuka Pengaturan Menu Utama ..............................................87

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 14/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] x

Gambar 4.6 Antarmuka Pengaturan Mazhab ...................................................... 88

Gambar 4.7 Antarmuka Pengaturan Pengingat Waktu Shalat .................... ......... 88

Gambar 4.8 Antarmuka Pengaturan Mode Pengingat .......... ............................... 89

Gambar 4.9 Antarmuka Notifikasi Peringatan .......... ........... ............................... 89

Gambar 4.10 Antarmuka Tentang ...................................................................... 90

Gambar 4.11 Antarmuka Tentang (2)................................................................. 90

Gambar 4.12 Jadwal Shalat Kupluk (16/02/2010) ..............................................91

Gambar 4.13 Jadwal Shalat PKPU (16/02/2010) ....................................... ......... 92

Gambar 4.14 Jadwal Shalat RHI Bulan Februari ....................................... ......... 93

Gambar 4.15 Arah Kiblat Kupluk ...................................................................... 94

Gambar 4.16 Arah Kiblat RHI ........................................................................... 95

Gambar 4.17 Perangkat diputar 90o................................................................... 96

Gambar 4.18 Perangkat diputar 180 o ................................................................. 96

Gambar 4.19 Perangkat diputar 270 o ................................................................. 97

Gambar 4.20 Perangkat diputar 360 o ................................................................. 97

Gambar 4.21 Android Market ............................................................................99

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 15/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] xi

DAFTAR TABEL

Tabel 2.1 Altitude Matahari Saat Subuh dan Isya ............................. ........ 14

Tabel 3.1 Kelas, Atribut dan Method........................................................ 42

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 16/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 1

BAB 1  Pendahuluan

1.1.  Latar Belakang

Perkembangan teknologi semakin pesat dan cepat, khususnya teknologi

informasi dan komunikasi. Hal ini membuat manusia bagaikan tak terpisah oleh

 jarak ruang dan waktu. Dengan perkembangan teknologi yang kian maju, manusia

dapat membuat berbagai macam peralatan sebagai alat bantu dalam menjalankan

berbagai aktivitas untuk mendukung produktifitas.

Dengan segala aktifitas yang kian padat menjadikan sebagian orang

memiliki tingkat mobilitas yang tinggi. Terkadang hal yang tidak menjadi

prioritas namun suatu kewajiban terlalaikan. Salah satunya kewajiban ibadah

shalat fardhu lima waktu bagi umat Muslim yang kadang terlambat, terabaikan

bahkan terlupakan. Salah satu faktor penyebabnya adalah terbatasnya informasi

atau peringatan ketika telah datang waktu shalat. Misalkan ketika seseorang

berada di suatu tempat atau daerah yang suara azan tidak terjangkau dari masjid

terdekat atau suatu lokasi yang baru, maka ketika waktu shalat tiba ada

kemungkinan orang tersebut tidak tahu.

Seiring dengan tingkat mobilitas yang tinggi, beberapa tahun terakhir tengah

marak perangkat bergerak atau mobile device. Salah satu perangkat mobile yang

paling pesat adalah  Handphone dimana hampir setiap orang memilikinya.

 Handphone yang sedianya sebagai alat komunikasi, saat ini sudah lebih dari

fungsi dasarnya. Berbagai macam fitur telah ditanamkan, seperti pengolah gambar

dan video, pengolah dokumen dan lain sebagainya. Hal ini tak lepas dari

 

BAB I

PENDAHULUAN

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 17/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 2

penggunaan Sistem Operasi pada  Handphone. Layaknya pada komputer,

 Handphone pun dapat di instal berbagai macam aplikasi yang diinginkan.

Android sebagai Sistem Operasi berbasis linux yang dapat digunakan di

berbagai perangkat mobile. Android memiliki tujuan utama untuk memajukan

inovasi piranti telepon bergerak agar pengguna mampu mengeksplorasi

kemampuan dan menambah pengalaman lebih dibandingkan dengan  platform 

mobile lainnya. Hingga saat ini Android terus berkembang, baik secara sistem

maupun aplikasinya.

1.2.  Rumusan Masalah

Berdasarkan dari uraian latar belakang di atas maka dapat dirumuskan suatu

permasalahan. Bagaimana membangun dan merealisasikan suatu aplikasi pada

 paltform Android yang dapat digunakan di berbagai tempat untuk informasi arah

kiblat dan waktu shalat serta secara otomatis mengingatkan pada saat tiba waktu

shalat.

1.3.  Tujuan

Tujuan dari pengerjaan tugas akhir ini adalah membangun sebuah program

aplikasi pengingat shalat dan arah kiblat pada Sistem Operasi Android yang dapat

digunakan dimanapun dengan memanfaatkan Global Positioning System (GPS)

dan Acelometer .

1.4.  Manfaat

Manfaat dari pengembangan Aplikasi Pengingat Shalat dan Arah Kiblat ini

adalah:

1.  Membantu umat muslim khususnya pengguna Android yang memiliki

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 18/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 3

tingkat mobilitas tinggi untuk senantiasa tahu waktu shalat dan arah kiblat.

2.  Membantu umat muslim untuk senantiasa melaksanakan ibadah shalat

tepat waktu dan arah kiblat yang tepat.

3.  Meningkatkan pemahaman tentang struktur dan sistem kerja dalam

pengembangan aplikasi pada sistem operasi Android.

1.5.  Batasan Masalah

Agar dalam pengerjaan tugas akhir ini dapat lebih terarah, maka pembahasan

penulisan ini dibatasi pada ruang lingkup pembahasan sebagai berikut:

1.  Sistem pewaktuan shalat hanya dapat digunakan pada sistem operasi

Android dengan memanfaatkan Global Positioning System (GPS).

2.  Penunjukkan arah kiblat sesuai dengan arah kiblat diman lokasi user

berada.

3.  User dapat mengatur sistem pengingat waktu shalat. Sehingga sistem dapat

menampilkan pesan pengingat ketika waktu shalat tiba.

1.6.  Metode Penelitian

Metode yang digunakan dalam pembuatan Aplikasi Pewaktuan Shalat dan

menyusun laporan tugas akhir ini adalah:

1.  Metode Pengumpulan Data ( Data Gathering)

Mencari dan mengumpulkan data-data yang dibutuhkan dan berkaitan

dengan pembuatan Aplikasi Pewaktuan Shalat.

2.  Metode Wawancara

Dilakukan terhadap ahli pewaktuan shalat dan arah kiblat.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 19/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 4

3.  Studi Kepustakaan

Studi kepustakaan seperti mempelajari buku-buku referensi yang

berhubungan dengan Android dan pewaktuan shalat  untuk membantu

dalam pembuatan Aplikasi Pewaktuan Shalat. Selain itu juga mempelajari

web-web referensi seputar hal yang sama untuk membantu dalam

penyajian informasi yang akan ditampilkan.

4.  Analisa Sistem

Menganalisa kebutuhan sistem dan mengidentifikasi kebutuhan informasi

berdasarkan hasil pengamatan dan wawancara serta studi pustaka yang

telah dilakukan. Alat bantu analisis sistem yang digunakan pada sistem ini

adalah Use Case Diagram dan Class Diagram.

5.  Merancang dan Mengimplementasi

Merancang dan mengimplementasi Aplikasi yang akan dikembangkan

agar sesuai dengan yang diharapkan.

1.7.  Sistematika Penulisan Laporan

Secara garis besar materi laporan Tugas Akhir ini terbagi dalam beberapa bab

yang tersusun sebagai berikut:

BAB I PENDAHULUAN

Bab ini berisikan latar belakang, rumusan masalah, tujuan dan

manfaat, batasan masalah, metodologi dan sistematika penulisan

laporan.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 20/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 5

BAB II LANDASAN TEORI

Bab ini menguraikan tentang teori yang berhubungan dengan judul

tugas akhir, seperti penentuan waktu shalat berserta

perhitungannya, penentuan arah kiblat sesuai dengan lokasi berada,

dan hal-hal terkait mengenai Android.

BAB III ANALISIS DAN PERANCANGAN APLIKASI PENGINGAT

SHALAT

Bab ini menjelaskan mengenai analisa aplikasi pengingat shalat

dan perancangan yang dilakukan untuk membangun aplikasi.

BAB 4 IMPLEMENTASI APLIKASI PENGINGAT SHALAT

Pada bab ini menjelaskan bentuk implementasi aplikasi beserta

pengujiannya.

BAB V KESIMPULAN DAN SARAN

Pada bagian ini dijelaskan mengenai kesimpulan dan saran guna

memperbaiki kelemahan yang terdapat pada aplikasi tersebut.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 21/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 6

BAB 2  Landasan Teor i

2.1.  Shalat

2.1.1.  Pengert ian Shalat

Shalat menurut bahasa berarti doa. Menurut Istilah ahli fiqih berarti:

Perbuatan (gerak), dan perkataan yang dimulai dengan takbir dan diakhiri dengan

salam dengan syarat-syarat tertentu. Shalat merupakan ibadah yang paling

fundamental dalam Islam. Khususnya Shalat Fardhu lima kali sehari semalam

yang tak boleh ditinggalkan. [1]

Menurut syariat Islam, praktik shalat harus sesuai dengan segala petunjuk 

tata cara Rasulullah SAW sebagai figur penyampai perintah Allah. Nabi

Muhammad telah memberikan peringatan keras kepada orang yang suka

meninggalkan shalat, diantaranya beliau bersabda: “Perjanjian yang memisahkan

kita dengan mereka adalah Shalat. Barang siapa yang meninggalkan shalat,

berarti dia telah kafir”, Hadist riwayat Imam Ahmad dan Tirmidzi.

2.1.2.  Waktu Shalat - Shalat Far dhu

Untuk pelaksanaan ibadah shalat, semuanya diatur dan tertuang dalam Kitab

Suci Al-Qur'an dan Hadist Nabi Muhammad SAW. Mengenai waktu shalat fardhu

nabi bersabda dalam sebuah hadist sebagai berikut:

 

BAB II

LANDASAN TEORI

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 22/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 7

  Dari Jabir bin Abdullah meriwayatkan " Malaikat Jibril datang kepada Nabi

SAW lalu berkata: "Marilah shalat". Lalu ia melakukan shalat zhuhur di waktu

matahari telah condong (tergelincir). Kemudian Jibril datang kepada Nabi di

waktu Asar lalu berkata: "Marilah shalat". Lalu ia shalat Asar di waktu

bayangan tiap-tiap sesuatu jadi sama panjangnya dengan keadaan dirinya.

Kemudian Jibril datang kepada Nabi S.A.W di waktu maghrib lalu berkata:

"Marilah shalat" lalu ia shalat Maghrib di waktu matahari telah masuk 

(terbenam). Kemudian Jibril datang kepada Nabi S.A.W di waktu Isya lalu

berkata: "Marilah shalat". Lalu ia shalat Isya lalu berkata; "Marilah shalat".

  Lalu ia shalat Isya di waktu telah hilang tanda merah di tempat matahari

terbenam. Kemudian Jibril datang kepada Nabi S.A.W di waktu fajar lalu

berkata: "Marilah shalat" Lalu ia shalat Fajar (subuh) di waktu fajar telah terbit.

Kemudian Jibril datang kepada Nabi S.A.W pada esok harinya lagi di waktu

  zuhur lalu berkata: "Marilah shalat". Lalu ia shalat zuhur, di waktu bayangan

tiap-tiap sesuatu itu jadi sama panjangnya dengan keadaan dirinya. Kemudian

 Jibril datang kepada Nabi S.A.W di waktu Asar lalu berkata: "Marilah shalat".

 Lalu ia shalat di waktu Asar, di waktu bayangan tiap-tiap sesuatu itu jadi dua kali

 panjang daripada dirinya. Kemudian Jibril datang kepada Nabi S.A.W di waktu

maghrib yang sama waktunya dengan kemarin, lalu ia shalat maghrib. Kemudian

  jibril datang kepada Nabi S.A.W di waktu Isya, sehabis tengah malam, lalu

berkata: "marilah shalat". Lalu ia shalat Isya. Kemudian Jibril datang kepada

  Nabi pada waktu telah terang cuaca (sebelum terbit matahari). Lalu berkata:

"Marilah shalat". Lalu ia shalat fajar. Kemudian Jibril berkata: Antara dua

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 23/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 8

waktu itulah waktu bagi tiap-tiap shalat." (Hadist Riwayat: Ahmad, Tirmidzi,

Nasa'i, Ibnu Hibban dan Hakim)

Hadits di atas memberikan penjelasan mengenai awal dan akhir waktu

shalat, yaitu berdasarkan pergerakkan matahari, baik di atas ufuk (horison)

maupun dampak pergerakkan matahari di bawah ufuk. Efek pergerakkan matahari

diantaranya adalah berubahnya panjang bayangan benda, terbit dan terbenamnya

matahari, munculnya mega merah di waktu fajar dan berakhirnya mega merah di

malam hari. [10]

Dapat diambil kesimpulan berdasarkan hadits Rasulullah mengenai waktu shalat

adalah sebagai berikut:

1.  Zhuhur

Waktu zhuhur dimulai saat pertengahan hari, yaitu ketika matahari

melewati garis meridian (lingkaran besar langit yang menghubungkan

utara dan selatan). Saat melewati garis meridian, ada tiga kemungkinan

azimuth matahari (dihitung dari arah utara). Pertama, azimuth matahari = 0

derajat, yaitu ketika matahari melewati garis meridian, posisinya di

belahan langit utara. Kedua, azimuth = 180 derajat, ketika posisinya di

belahan langit selatan. Ketiga, azimuthnya tidak dapat ditentukan, ketika

posisinya benar-benar tepat di zenith (atas kepala) atau ketinggiannya tepat

90 derajat. Waktu zhuhur berakhir saat datangnya waktu shalat ashar.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 24/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 9

2.  Ashar

Berdasarkan hadits di atas, ada dua pendapat mengenai kapan datangnya

waktu shalat ashar. Ini berkaitan dengan bayangan benda yang ditegakkan

di atas tanah. Menurut mazhab Hanafi, waktu shalat Ashar adalah ketika

panjang bayangan sama dengan dua kali tinggi benda (ditambah panjang

bayangan saat Zhuhur). Panjang bayangan pada waktu Zhuhur yang

merupakan panjang bayangan minimum ini perlu diperhitungkan, karena

sangat mungkin panjang bayangan saat Zhuhur itu lebih panjang dari

tinggi benda itu sendiri seperti tempat yang memiliki lintang tinggi. Jika

bayangan saat Ashar = Sa, bayangan saat Zhuhur = Sz dan tinggi benda=

h, maka secara sederhana dapat ditulis Sa = h + Sz menurut mazhab Syafi'i

dan Sa = 2 * h + Sz menurut mazhab Hanafi. Untuk waktu Ashar berakhir

saat datangnya waktu shalat maghrib.

3.  Maghrib

Waktu shalat maghrib dimulai saat matahari terbenam (sunset). Ketika

matahari terbenam dimana posisinya di bawah ufuk, langit tidak langsung

gelap. Hal ini disebabkan adanya atmosfer bumi yang membiaskan cahaya

matahari. Karena itu, matahari harus tenggelam hingga belasan derajat di

bawah ufuk supaya tidak ada lagi cahaya matahari yang dapat dibiaskan

sehingga langit menjadi gelap. Waktu shalat maghrib berakhir saat

datangnya waktu shalat Isya'.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 25/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 10

4.  Isya'

Waktu shalat Isya' dimulai saat langit gelap, atau berakhirnya mega merah

(astronomical twilight ) di langit barat. Waktu Isya' berakhir saat datangnya

waktu shubuh.

5.  Shubuh

Waktu shubuh dimulai ketika munculnya fajar (shidiq) atau cahaya secara

merata di langit timur. Meskipun saat itu matahari masih belasan derajat di

bawah ufuk, namun akibat pembiasan atmosfer cahaya matahari dapat

dibiaskan sehingga langit tidak lagi gelap. Beberapa catatan mengenai

penentuan waktu Isya' dan Shubuh disajikan pada catatan di bawah. Waktu

shubuh berakhir saat matahari terbit.

Sebelum manusia menemukan ilmu hisab/perhitungan falak/astronomi, pada

zaman Rasulullah waktu shalat yang telah disebutkan ditentukan berdasarkan

observasi terhadap gejala alam dengan melihat langsung matahari. Lalu

berkembang dengan dibuatnya jam Surya atau Jam Matahari serta Jam Istiwa atau

sering disebut Tongkat Istiwa dengan kaidah bayangan matahari[13].

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

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 26/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 11

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 [8]:

1.  Koordinat lintang tempat tersebut (L) atau altidude. Daerah yang terletak 

di sebelah utara garis khatulistiwa (ekuator) memiliki lintang positif.

Sebaliknya, untuk yang disebelah selatan lintangnya negatif.

2.  Koordinat bujur tempat tersebut (B) atau longitude. Daerah yang terletak 

disebelah timur Greenwich memiliki bujur positif.

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

Greenwich memiliki Z positif.

4.  Ketinggian lokasi dari permukaan laut (H). 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:

JD = 1720994,5 + INT(365,25 * Y) + INT(30,6001(M + 1)) + B + D ....(1)

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 27/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 12

Ket:

INT : Lambang nilai integer (bilangan bulat)

Jika M>2, maka M dan Y tidak berubah.

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

B = 2 + INT (A/4) – A; dimana A = INT (Y/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.

6.  Sudut Deklinasi Matahari (Delta). Deklinasi matahari (Delta) untuk satu

tanggal tertentu dapat dihitung dengan menggunakan rumus berikut:

Delta = 0,37877 + 23,264 * sin(57,297 * T – 79,547) + 0,3812 * sin(2 *

57,297 * T – 82, 682) + 0,17132 * sin(3 * 57,297 * T – 59,722) ............(2)

Ket:

T adalah Sudut tanggal, dengan rumus, T = 2 * PI * (JD – 2451545) / 

365,25

7.  Equation of Time (ET). Equation of Time untuk satu tanggal dapat

dihitung, dengan rumus:

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 28/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 13

ET = (- (1789 + 237 * U) * sin(L0) – (7146 – 62 * U) * cos(L0) + (9934 –

14 * U) * sin(2 * L0) – (29 + 5 * U) * cos(2 * L0) + (74 + 10 * U) * sin(3

* L0) + (320 – 4 * U) * cos(3 * L0) – 212 * sin(4 * L0))/1000 ……….(3)

Ket:

L0 adalah Bujur rata-rata matahari, L0 = 280,46607 + 36000,7698 * U.

U = (JD – 2451545)/36525.

8.  Altitude matahari waktu Shubuh dan Isya. Shubuh saat fajar menyingsing

pagi disebut dawn astronomical twilight yaitu ketika langit tidak lagi gelap

dimana atmosfer bumi mampu membiaskan cahaya matahari dari bawah

ufuk. Sementara Isya' disebut dusk astronomical twilight  ketika langit

tampak gelap karena cahaya matahari di bawah ufuk tidak dapat lagi

dibiaskan oleh atmosfer. Nilai altitude matahari berasal dari ketika langit

berubah dari gelap menjadi mulai terang, ketika fajar menyingsing di pagi

hari dan menyebar secara horisontal dengan seragam. Altitude matahari

sangat menentukan metode perhitungan waktu shalat, dimana perbedaan 1

derajat dapat memberikan perbedaan waktu sekitar 4 menit. Terdapat

beberapa pendapat mengenai nilai altitude matahari seperti tampak pada

tabel 2.1 [12].

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 29/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 14

Tabel 2.1 Altitude Matahar i Saat Subuh dan Isya

Organisasi  Sudut Subuh  Sudut I sya  Regional 

Indonesia 20 derajat 18 derajat Indonesia

Universitas Sience

Islam, Karaci

18 derajat 18 derajat Pakistan, Bangladessh,

India, Afghanistan,

sebaian Eropa

Amerika Utara 15 derajat 15 derajat Sebagian Amerika

Serikat, Kanada,

Sebagian Inggris

Liga Muslim Dunia 18 derajat 17 derajat Eropa, sebagian

Amerika

Komite Umm Al-Qura 18.5 derajat 18.5 Semenanjung Arab

Mesir 19.5 derajat 17.5 derajat Afrika, Siria, Iraq,

Libanon, Malaysia,

Sebagian Amerika

9.  Tetapan panjang bayangan Ashar, dalam hal ini terdapat dua pendapat

berbeda. Pendapat madzhab Imam Syafi'i menyatakan panjanga 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.

Setiap parameter sangat menentukan datangnya waktu shalat, bila salah satu

parameter kurang akurat maka ketepatan datangnya waktu shalat akan sebanding.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 30/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 15

Waktu shalat dapat ditentukan dengan menggunakan rumus-rumus pergerakkan

matahari dengan tepat. Berikut adalah rumus waktu shalat.

a.  Shubuh = waktu zhuhur – (12/PI) * acos((sin(-1 * sudut altitude matahari

subuh) – sin(delta) * sin(L)) / (cos(delta) * cos(L))

b.  Zhuhur = 12 + Z – B / 15 – ET/60 

c.  Ashar = waktu zhuhur + (12/PI) * acos((sin(atan(1/MA + tan(abs(L –

delta))))) – sin(delta) * sin(L)) / (cos(delta) * cos(L)))

Dimana MA merupakan Mazhab yang digunakan, MA sama dengan 1

untuk mazhab imam Syafi'i dan MA sama dengan 2 untuk Mazhab imam

Hanafi.

d.  Magrib = waktu zhuhur + (12/PI) * acos((sin((-0,8333 – 0,0347 * H ^

0,5)) – sin(delta) * sin(L)) / (cos(delta) * cos(L)))

e.  Isya' = waktu zhuhur + (12/PI) * acos((sin(-1 * sudut altitude matahari

isya') – sin(delta) * sin(L)) / cos(delta) * cos(lintang)))

2.2.  Kiblat

2.2.1.  Pengert ian Kiblat

Kiblat berasal dari bahasa Arab “Qiblah” adalah arah yang merujuk ke suatu

tempat dimana bangunan Ka'bah di Masjidil Haram, Makkah, Arab Saudi. Ka'bah

  juga sering disebut dengan Baitullah (Rumah Allah). Menghadap arah kiblat

merupakan suatu masalah yang penting dalam syariat Islam. Menurut hukum

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 31/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 16

syariat, menghadap ke arah kiblat diartikan sebagai seluruh tubuh atau badan

seseorang menghadap ke arah Ka'bah yang terletak di Makkah yang merupakan

pusat tumpuan umat Islam bagi menyempurnakan ibadah-ibadah tertentu.

Pada awalnya, kiblat mengarah ke Baitul Maqdis atau Masjidil Aqsa

Jerusalem di Palestina, namun pada tahun 624 M ketika Nabi Muhammad SAW

hijrah ke Madinah, arah Kiblat berpindah ke arah Ka'bah di Makkah hingga kini

atas petunjuk wahyu dari Allah SWT. Menghadap ke arah kiblat menjadi syarat

sah bagi umat Islam yang hendak menunaikan shalat baik shalat fardhu lima

waktu sehari semalam atau shalat-shalat sunat yang lain. Kaidah dalam

menentukan arah kiblat memerlukan suatu ilmu khusus yang harus dipelajari atau

sekurang-kurangnya meyakini arah yang dibenarkan sesuai dengan syariat. [13]

2.2.2.  Menentukan Arah Kiblat

2.2.2.1.  Koordinat Posisi Geografis

Bola (sphere) adalah benda tiga dimensi yang unik dimana jarak antara

setiap titik di permukaan bola dengan titik pusatnya selalu sama. Karena bumi

sangat mirip dengan bola, maka cara menentukan arah dari satu tempat (misalnya

masjid) ke tempat lain (misalnya Ka'bah) dapat dilakukan dengan mengandaikan

bumi seperti bola.

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

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 32/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 17

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. [9]

Gambar 2.1 Pembagian Bumi Berdasarkan Bujur dan Lintang

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 [9].

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 33/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 18

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)

2.  Lokasi yang akan ditentukan arah kiblatnya.

3.  Kutub utara

Gambar 2.2 Segitiga Bola ABC yang menghubungkan t itik A (Ka'bah), titik B (Lokasi), dantitik C (Kutub Utar a)

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 34/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 19

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.

Dianggap jari-jari bumi sama dengan 1. Sudut yang menghubungkan titik di

khatulistiwa, pusat bumi dan kutub utara adalah 90 derajat. Karena lintang titik A

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:

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 35/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 20

Gambar 2.3 Segitiga Bola

cos(b) = cos(a) cos(c) + sin(a) sin(c) cos(B) ……………………………………(4)

cos(c) = cos(a) cos(b) + sin(a) sin(b) cos (C) ...…………………………………(5)

)sin(

)sin(

)sin(

)sin(

)sin(

)sin(

c

 B

b

 A

a== ………………………………………….………….(6)

Dengan menggabungkan ketiga rumus di atas (4, 5, 6), diperoleh rumus sebagai

berikut:

)cos()cos()cot()sin(

)sin()tan(

C aba

C  B

= ………………………………………….(7)

Sesuai yang telah ditetapkan sebelumnya, C = Ba – Bb, a = 90 – Lb, b = 90 – La,

serta mengingat cos (90 – x) = sin(x), sin (90 – x) = cos(x) dan cot (90 – x) =

tan(x), maka rumus diatas menjadi:

)cos()sin()tan()cos(

)sin()tan(

 Bb Ba Lb La Lb

 Bb Ba B

−−

−= ……………………………....(8)

Sehingga sudut B adalah: ( ))tan(arctan  B B =  

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 36/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 21

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:

•  Jika x positif dan y positif, maka tan(B) positif yang menghasilkan 0 < B <

90.

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

B < 180.

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

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

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 37/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 22

2.3.  Android

2.3.1.  Pengert ian Android

Android adalah kumpulan perangkat lunak yang ditujukan bagi perangkat

bergerak mencakup sistem operasi, middleware, dan aplikasi kunci. Android

Standart Development Kid  (SDK) menyediakan perlengkapan dan  Application

Programming Interface (API) yang diperlukan untuk mengembangkan aplikasi

pada platform Android menggunakan bahasa pemrograman Java.[7]

Android dikembangkan oleh Google bersama Open Handset Allience (OHA)

yaitu aliansi perangkat selular terbuka yang terdiri dari 47 perusahaan  Hardware,

Software dan perusahaan telekomunikasi ditujukan untuk mengembangkan

standar terbuka bagi perangkat selular.

2.3.2.  Sejarah dan Perkembangan Android

Pada mulanya terdapat berbagai macam sistem operasi pada perangkat

selular, diantaranya sistem operasi Symbian, Microsoft Windsos 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 platform Android, yang menjanjikan

keterbukaan, keterjangkauan, open source, dan framework berkualitas.

Pada tahun 2005, Google mengakuisisi perusahaan Android Inc. untuk 

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

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 38/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 23

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

dirancang untuk melayani kebutuhan operator telekomunikasi, manufaktur

handset, dan pengembang aplikasi. OHA berkomitmen untuk membuat Android

open source dengan lisensi Apache versi 2.0. [5]

Android pertama kali diluncurkan pada 5 November 2007, dan smartphone

pertama yang menggunakan sistem operasi Android dikeluarkan oleh T-Mobile

dengan sebutan G1 pada bulan September 2008. Hingga saat ini Android telah

merilis beberapa versi Android untuk menyempurnakan versi sebelumnya. Selain

berdasarkan penomoran, pada setiap versi Android terdapat kode nama

berdasarkan nama-nama kue. Hingga saat ini sudah terdapat beberapa versi yang

telah diluncurkan, diantaranya: versi 1.5 dirilis pada 30 April 2009 diberi nama

Cupcake, versi 1.6 dirilis pada 15 September 2009 diberi nama  Donut , dan versi

terakhir 2.0 dirilis pada 26 Oktober 2009 diberi nama Éclair. 

2.3.3.  Anatomi Android

Dalam paket sistem operasi Android tediri dari beberapa unsur seperti

tampak pada gambar 2.3. Secara sederhana arsitektur Android merupakan sebuah

kernel Linux dan sekumpulan pustaka C / C++ dalam suatu  framework  yang

menyediakan dan mengatur alur proses aplikasi.[11]

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 39/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 24

Gambar 2.4 Detail Anatomi Android

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

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 40/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 25

2.3.3.2.  Libraries

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:

•   Media Library untuk memutar dan merekam berbagai macam format audio

dan video. 

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

  Graphic Library termasuk didalamnya SGL dan OpenGL, untuk tampilan

2D dan 3D. 

•  SQLite untuk mengatur relasi database yang digunakan pada aplikasi.  

•  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.3.3.3.  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. Dalam Android Runtime terdapat 2 bagian utama,

diantaranya:

•  Pustaka Inti, Android dikembangkan melalui bahasa pemrograman Java,

tapi Android Runtime bukanlah mesin virtual Java. Pustaka inti Android

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 41/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 26

menyediakan hampir semua fungsi yang terdapat pada pustaka Java serta

beberapa pustaka khusus Android.

•  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. [14]

2.3.3.4.  Application Fra mework 

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 [2]:

1.   Activity Manager , berfungsi untuk mengontrol siklus hidup aplikasi dan

menjaga keadaan ” Backstack“ untuk navigasi penggunaan.

2.  Content Providers, berfungsi untuk merangkum data yang memungkinkan

digunakan oleh aplikasi lainnya, seperti daftar nama.

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.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 42/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 27

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

2.3.4.  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 [7].

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 43/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 28

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

Perpindahan antara activity dengan activity lainnya diatur melalui sistem,

dengan memanfaatkan activity stack. Keadaan suatu activity ditentukan oleh

posisinya dalam tumpukan acitivity, LIFO ( Last In First Out ) dari semua aplikasi

yang sedang berjalan. Bila suatu activity baru dimulai, activity yang sebelumnya

digunakan maka akan dipindahkan ketumpukan paling atas. Jika pengguna ingin

menggunakan activity sebelumnya, cukup menekan tombol  Back , atau menutup

activity yang sedang digunakan, maka activity yang berada diatas akan aktif 

kembali.   Memory Manager Android menggunakan tumpukkan ini untuk 

menentukan prioritas aplikasi berdasarkan activity, memutuskan untuk mengakhiri

suatu aplikasi dan mengambil sumber daya dari aplikasi tersebut.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 44/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 29

Ketika activity diambil dan disimpan dalam tumpukkan activity terdapat 4

kemungkinan kondisi transisi yang akan terjadi [4]:

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.

2)  Paused, dalam beberapa kasus activity akan terlihat tapi tidak terfokus

pada kondisi inilah disebut  paused. Keadaan ini terjadi jika activity 

transparan dan tidak  fullscreen pada layar. Ketika activity dalam keadaan

 paused , dia terlihat active namun tidak dapat menerima masukkan dari

pengguna. Dalam kasus ekstrim, Android akan menghentikan activity 

dalam keadaan  paused  ini, untuk menunjang sumber daya bagi activity

yang sedang aktif.

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. 

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 45/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 30

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.3.4.2.  Services

Suatu service tidak memiliki tampilan antarmuka, melainkan berjalan di

background  untuk waktu yang tidak terbatas. Komponen service diproses tidak 

terlihat, memperbarui sumber data dan menampilkan notifikasi. Service digunakan

untuk melakukan pengolahan data yang perlu terus diproses, bahkan ketika

 Activity tidak aktif atau tidak tampak.

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

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 46/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 31

2.3.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, Batre

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.3.4.5.  Content Providers

Content Providers digunakan untuk mengelola dan berbagi database. Data

dapat disimpan dalam file sistem, dalam database SQLite, atau dengan cara lain

yang pada prinsipnya sama. Dengan adanya Content Provider  memungkinkan

antar aplikasi untuk saling berbagi data. Komponen ini sangat berguna ketika

sebuah aplikasi membutuhkan data dari aplikasi lain, sehingga mudah dalam

penerapannya.

2.3.5.  Tipe Aplikasi Android

Terdapat tiga kategori aplikasi pada Android [4] :

1.  Foreground Activity 

Aplikasi yang hanya dapat dijalankan jika tampil pada layar dan tetap

efektif walaupun tidak terlihat. Aplikasi dengan tipe ini pasti

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 47/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 32

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.3.6.  Siklus Hidup Aplikasi Android

Siklus hidup aplikasi Android dikelola oleh sistem, berdasarkan kebutuhan

pengguna, sumberdaya yang tersedia, dan sebagainya. Misalnya Pengguna ingin

menjalankan browser web, pada akhirnya sistem yang akan menentukan

menjalankan aplikasi. 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 

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 48/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 33

terlihat dan sistem membutuhkan sumber daya yang lebih, maka  Activity yang

prioritas rendah akan ditutup. [5]

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

menunjukkan prioritas dari aplikasi.

Gambar 2.5 Prioritas Aplikasi Berdasarkan  Activity 

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 49/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 34

2.3.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 [2]: 

1.  Keterbukaan, Bebas pengembangan tanpa dikenakan biaya terhadap sistem

karena berbasiskan Linux dan open source. Pembuat perangkat menyukai

hal ini karena dapat membangun  platform yang sesuai yang diinginkan

tanpa harus membayar royality. 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.

3.  Banyak dukungan service, kemudahan dalam menggunakan berbagai

macam layanan pada aplikasi seperti penggunaan layanan pencarian

lokasi, database SQL, browser dan penggunaan peta. Semua itu sudah

tertanam pada Android sehingga memudahkan dalam pengembangan

aplikasi.

4.  Siklus hidup aplikasi diatur secara otomatis, setiap program terjaga antara

satu sama lain oleh berbagai lapisan keamanan, sehingga kerja sistem

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 50/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 35

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.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 51/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 36

BAB 3  Analisis dan Perancangan

Pada bab ini akan dijelaskan analisis dan perancangan sistem yang akan

dikembangkan. Sistem aplikasi pengingat shalat dan arah kiblat ini diberi nama

Kupluk, sehingga untuk selanjutnya penyebutan sistem aplikasi pengingat shalat

dan arah kiblat ini adalah Kupluk.

3.1.  Analisis Kebutuhan Kupluk 

Analisis sistem adalah penguraian dari suatu sistem yang utuh ke dalam

bagian-bagian komponennya dengan maksud untuk mengidentifikasi dan

mengevaluasi permasalahan. Bagian analisis ini terdiri atas analisis fungsional,

anallisis performansi, gambaran sistem dari sudut pandang user yang dinyatakan

dalam use case diagram, dan gambaran alur sistem.

3.1.1.  Analisis Fungsional

Analisis fungsional merupakan paparan mengenai fitur-fitur yang akan

dimasukkan ke dalam Kupluk. Fitur-fitur tersebut antara lain sebagai berikut:

1.  Mampu menampilkan jadwal waktu shalat yang sesuai dengan lokasi

dimana pengguna berada.

2.  Mampu menampilkan arah kiblat secara otomatis dan real position 

berdasarkan posisi pengguna dengan bantuan acelometer. 

3.  Terdapat pilihan pengaturan metode perhitungan waktu shalat sesuai yang

diinginkan pengguna.

 

BAB III

ANALISIS DAN PERANCANGAN

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 52/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 37

4.  Terdapat dua pilihan pengaturan penentuan waktu shalat Ashar

berdasarkan mazhab yang dianut pengguna.

5.  Terdapat pilihan pengaturan reminder yang berfungsi untuk mengingatkan

waktu shalat.

6.  Terdapat pilihan pengaturan mode pengingat yang berfungsi untuk 

mengatur bentuk pengingat yang diinginkan oleh pengguna.

3.1.2.  Performansi Kupluk 

Kupluk merupakan aplikasi yang berjalan di lingkungan sistem operasi

Android. Terdapat beberapa keterbatasan yang ditemui pada perangkat

berbasiskan Android. Sehingga perlu diperhatikan guna menjadi acuan dalam

pengembangan Kupluk, diantaranya:

•  Sumber daya memori yang terbatas, hingga saat ini perangkat Android

yang banyak beredar memiliki kapasistas memori terbatas. Adapun yang

tertinggi saat ini 512 Mb. 

•  Sumber daya baterai yang secara efektif hanya mampu bertahan selama

kurang lebih 6 jam, dengan penggunaan secara terus-menerus dan kurang

lebih 200 jam dalam keadaan standby.

•  Tampilan antar muka aplikasi sangat berpengaruh terhadap waktu tunggu

hingga aplikasi benar-benar siap digunakan, semakin banyak komponen

yang digunakan akan semakin lama pula waktu tunggu yang dibutuhkan. 

Dari keterbatasan-keterbatasan pada perangkat, maka diusulkan beberapa

alternatif untuk meningkatkan performa aplikasi dengan keterbatasan yang ada,

diantaranya:

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 53/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 38

o  Merancang aplikasi dengan penggunaan memori seefektif mungkin,

sehingga tidak menganggu siklus operasi Android dan aplikasi lain.

o  Merancang aplikasi dengan pemanfaatan sumber daya seefisien mungkin

namun tidak mengurangi fungsi dan performa aplikasi.

o  Merancang aplikasi dengan antar muka yang sederhana namun tetap

menarik dan ramah bagi pengguna.

3.1.3.  Use Case Diagram

Use case merupakan gambaran skenario dari interaksi antara user dengan

sistem. Sebuah diagram use case menggambarkan hubungan antara aktor dan

kegiatan yang dapat dilakukannya terhadap aplikasi.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 54/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 39

Gambar 3.1 Diagram Use Case 

Pada diagram di atas terdiri dari 2 aktor dan 4 use case. Di dalam diagram

ini terdapat sebuah extend  yang digunakan untuk menunjukkan bahwa satu use

case merupakan tambahan fungsional dari use case lain jika kondisi tertentu

terpenuhi. Alur ini dimulai dari ketika user memulai menjalankan program

Kupluk, GPS akan menyampaikan informasi mengenai nilai altitude, longitude,

dan latitude lokasi perangkat saat itu. Dari informasi inilah akan diolah oleh

aplikasi sehingga menampilkan jadwal shalat kepada user saat itu. Ketika

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 55/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 40

pengguna melakukan pengaturan untuk pengingat waktu shalat, maka aplikasi

akan secara otomatis memberikan penanda berupa alarm atau pemberitahuan

ketika waktu shalat telah tiba. Ketika pengguna menjalankan use case arah kiblat,

maka GPS memberikan informasi kepada sistem tentang nilai latitude dan

longitude user berada. Dari data ini akan diolah aplikasi yang selanjutnya dengan

bantuan sensor dari acelometer, aplikasi menunjukkan arah kiblat yang sesuai

dengan lokasi dan posisi user.

3.1.4.  Diagram Alir (Flowchart )

Diagram Alir atau Flowchart  merupakan serangkaian bagan-bagan yang

menggambarkan alir program. Pada diagram alir ini digambarkan urutan prosedur

dalam program Kupluk.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 56/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 41

Gambar 3.2 Diagram Alir Sistem

3.2.  Perancangan Kupluk 

Perancangan dilakukan untuk menggambarkan, merencanakan, dan

membuat sketsa atau pengaturan dari beberapa elemen yang terpisah ke dalam

satu kesatuan yang utuh dan berfungsi. Perancangan ini merupakan hasil

transformasi dari analisa ke dalam perancangan yang nantinya akan di

implementasikan.

Hal penting yang menjadi perhatian pada perancangan adalah bahwa

rancangan yang dibuat diharapkan dapat digunakan dengan mudah oleh semua

user. Yang dimaksud semua user adalah bahwa tidak hanya seorang ahli saja yang

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 57/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 42

dapat menggunakan aplikasi ini, namun orang awam pun dapat menggunakannya.

Selain itu beberapa hal yang harus diperhatikan antara lain adalah kinerja program

yang baik dalam mengoperasikan aplikasi yang dibuat.

3.2.1.  Diagram Kelas

Diagram kelas merupakan diagram struktural yang memodelkan sekumpulan

kelas, interface, kolaborasi dan relasinya. Diagram kelas digambarkan dengan

kotak, yang pada dasarnya terbagi atas tiga bagian yaitu, Nama Kelas, Atribut,

dan Operasi. Diagram kelas digunakan untuk menggambarkan proses statik dari

aplikasi Kupluk.

Gamba r 3.3 Diagram Kelas dan Relasi Antar Kelas

Tabel 3.1 Kelas, Atr ibut dan Method

NO Nama Class Atribut Method

1 Kupluk Main

- tahun : int- bulan : int- hari : int

- zonaWaktu : float- lokasi : LocationManger- metode : String

- mazhab : int

- sudutIsya : int

- onCreate()

- onResume()- onCreateOptionMenu()- onOptionItemSelected()

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 58/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 43

- sudutSubuh : int- shalat : PerhitunganShalat- service : KuplukService

2 Kiblat

- latMasjid : float- lonMasjid : float

- busur : float- arahKiblat : float- kiblatView : KiblatView

- sensorListener:SensorListener- sensorManager :SensorManager- lokasi : LocationManager

- onCreate()

- onResume()- onStop()

- setArahKiblat()- getArahKiblat()- segitigaBola()

- updatePerputaran()- onCreateOptionMenu()- onOptionItemSelected()

3 Tentang - webView : WebView

- onCreate()- ambilResource()- ubahKeString()

- onCreateOptionMenu()- onOptionItemSelected()

4 Pengaturan

1.  PIL_SUBUH: String2.  PIL_SUBUH_DEF:

boolean3.  PIL_ZUHUR : String4.  PIL_ZUHUR_DEF :

boolean

5.  PIL_ASHAR : String6.  PIL_ASHAR_DEF :

boolean

7.  PIL_MAGHRIB : String8.  PIL_MAGHRIB_DEF :

boolean

9.  PIL_ISYA : String10.  PIL_ISYA_DEF : boolean11.  PIL_METODE_PERHITU

NGAN : String12.  PIL_METODE_PERHITU

NGAN_DEF : String13.  PIL_MAZHAB : String14.  PIL_MAZHAB_DEF :

String

- onCreate()- getSetSubuh()

- getSetZuhur()- getSetAshar()- getSetMaghrib()

- getSetIsya()-getSetMetodePerhitungan

()- getSetMazhab()- onCreateOptionMenu()

- onOptionItemSelected()

5 PerhitunganShalat

- longitudeLokasi: double- latitudeLokasi: double

- altitudeLokasi: double- zonaWaktuLokasi : float- sudutIsya : double- sudutSubuh : double

- equtionTime : double- delta : double- jdLokasi : double

- mazhab : int- waktuSubuh : float- waktuZuhur : float

- waktuAshar : float- waktuMaghrib : float- waktuIsya : float

- PerhitunganShalat()

- setLongitudeLokasi()- getLongitudeLokasi()- setLatitudeLokasi()

- getLatitudeLokasi()- setAltitudeLokasi()- getAltitudeLokasi()- setZonaWaktuLokasi()

- getZonaWaktuLokasi()- setSudutIsya()- getSudutIsya()

- setSudutSubuh()- getSudutSubuh()- setEqutionTime()

- getEqutionTime()- setDelta()- getDelta()

- setJDLokasi()- getJDLokasi()

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 59/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 44

- setMazhab()- getMazhab()- getWaktuSubuh()

- getWaktuZuhur()- getWaktuAshar()

- getWaktuMaghrib()- getWaktuIsya()

6 KiblatView

- busur : float

- lebar : int- tinggi : int- gambarLingkarang : Paint- penandaGambar : Paint- paintText : Paint

- KiblatView()

- initKiblatView()- onMesuare()- onDraw()- setBusur()- getBusur()

7 FormatWaktu- jam : int- menit : int- detik : int

- FormatWaktu()- getJam- setJam()

- setMenit()- getMenit()

- setDetik()- getDetik()

8 KuplukService

- timer : Timer- notifikasi :NotificationManager- idNotifikasi : int

- JADWAL : String- jSubuh : int

-mSubuh : int-jZuhur : int-mZuhur : int-jAshar : int

-mAshar : int-jMaghrib : int-mMaghrib : int

-jIsya : int-mIsya :int

- onBind()- onCreate()- onDestroy()

- checkAlarm()- showNotifikasi()- startService()- shutdownService()

3.2.2.  Sequence Diagram

Sequence Diagram menggambarkan interaksi antar objek di dalam dan

disekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message

yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal

(waktu) dan dimensi horizontal (objek-objek yang terkait).

Pada sequence diagram ini menggambarkan skenario atau rangkaian

langkah-langkah yang dilakukan pada sistem sebagai respon dari sebuah event  

untuk menghasilkan output tertentu.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 60/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 45

Gambar 3.4 Diagram Sequence

3.2.3.  Perancangan Navigasi

Aplikasi Kupluk menggunakan struktur navigasi   Hierarchical Model.

Dimana menu utama adalah pusat navigasi yang merupakan penghubung ke

semua fitur pada aplikasi.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 61/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 46

Gambar 3.5 Struktur Navigasi

Dari struktur navigasi ini, perpindahan antar fitur yang tersedia dapat dilakukan

melalui menu. Karena Android mendukung fitur layar sentuh kapasitif yang dapat

menerima input sentuhan dari jari, sehingga navigasi dapat dilakukan dengan

menggunakan sentuhan pada layar.

3.2.4.  Perancangan Antar Muka ( Interface)

Perancangan interface adalah bagian yang penting dalam aplikasi, karena

yang pertama kali dilihat ketika aplikasi dijalankan adalah tampilan antar muka

(interface) aplikasi.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 62/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 47

3.2.4.1.  Perancangan Antar Muka Menu

Gambar 3.6 Desain Layar Tampilan Menu Utama

Keterangan Gambar:

1.  Teks dan Gambar

Akan dibuat dengan berisikan teks Jadwal dan gambar bedug.

2.  Teks dan Gambar

Akan dibuat dengan berisikan teks Kiblat dan gambar Ka’bah.

3.  Teks dan Gambar

Akan dibuat dengan berisikan teks Pengaturan dan gambar gear.

4.  Teks dan Gambar

Akan dibuat dengan berisikan teks Tentang dan gambar tanda tanya.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 63/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 48

3.2.4.2.  Perancangan Antar Muka Jadwal Shalat

Gambar 3.7 Desain Layar Tampilan Jadwal Shalat

Keterangan Gambar:

1.  Latar Belakang

Latar belakang ini akan dibuat berisikan gambar berbentuk masjid.

2.  Teks

Merupakan jadwal shalat yang akan ditampilkan berupa teks secara

berurut dari subuh hingga isya, dimana disebelah kanannya berisikan teks

informasi jam shalat.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 64/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 49

3.2.4.3.  Perancangan Antar M uka Arah Kiblat

Gambar 3.8 Desain Layar Tampilan Arah Kiblat

Keterangan Gambar:

1.  Latar Belakang

Pada latar belakang arah kiblat akan dibuat berisikan gambar bernuasa

islami yang disesuaikan dengan tampilan jadwal Shalat.

2.  Kompas Kiblat

Merupakan tampilan dua dimensi yang akan menujukkan arah kiblat.

3.  Teks

Akan dibuat berisi teks besar derajat sudut arah kiblat dari arah utara.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 65/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 50

3.2.4.4.  Perancangan Antar M uka Pengaturan

Gambar 3.9 Desain Layar Tampilan Pengaturan

Keterangan Gambar:

1.  Teks

Akan dibuat berisi teks yang menjelaskan kategori pengaturan shalat

2.  Teks

Akan dibuat berisi teks pengaturan metode perhitungan, yang selanjutnya

akan menampilkan dialog daftar pilihan metode perhitungan.

3.  Teks

Akan dibuat berisi teks pengaturan mazhab, yang selanjutnya akan

menampilkan dialog daftar dua mazhab.

4.  Teks

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 66/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 51

Akan dibuat berisi teks yang menjelaskan kategori pengaturan pengingat.

5.  Teks

Akan dibuat berisi teks pengaturan pengingat shalat, yang selanjutnya

akan menampilkan pilihan untuk daftar shalat 5 waktu.

6.  Teks

Akan dibuat birisi teks pengaturan mode pengingat waktu shalat, yang

selanjutnya akan menampilkan dialog pilihan mode pengingat yaitu suara

azan, getar, dan lampu.

3.2.4.5.  Perancangan Antar M uka Tentang

Tampilan antar muka tentang dibuat dengan tampilan layaknya tampilan

web. Sehingga dalam implementasi nantinya menggunakan kode program HTML.

Hal ini dilakukan untuk memudahkan pengguna dalam menghubungi

pengembang. Adapun desain perancangan muka tentang adalah sebagai berikut:

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 67/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 52

Gambar 3.10 Desain Layar Tampilan Antarmuka Tentang

Keterangan Gambar:

1.  Teks

Akan dibuat berupa berupa teks penjelasan mengenai hal tentang Kupluk 

dan filosofinya.

2.  Gambar

Akan dibuat berisi icon gambar Kupluk.

3.  Teks

Akan dibuat birisi teks informasi mengenai fitur-fitur yang tersedia pada

aplikasi.

4.  Teks

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 68/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 53

Akan dibuat berisi teks ucapan terima kasih terhadap pihak-pihak yang

ikut terlibat dalam pengembangan aplikasi.

5.  Teks

Akan dibuat berisi teks informasi umum mengenai pengembang, alamat

sistus dan dukungan email langsung kepada pengembang.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 69/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 54

BAB 4  Implementasi

Implementasi merupakan tahap pengembangan rancangan menjadi kode

program. Pada awal bagian ini dijabarkan spesifikasi perangkat keras dan lunak 

pada mana program diimplementasikan. Bagian utama implementasi adalah

penjabaran rancangan kelas menjadi kelas yang ditulis dalam sintaks Bahasa

Pemrograman Java. Di samping itu disajikan juga tampilan Kupluk setelah

diimplementasikan pada telepon genggam HTC G1 (Dream).

4.1.  Spesifikasi Perangkat Keras dan Lunak 

Dalam menerapkan rancangan yang telah dibuat, ada beberapa hal yang

harus dibutuhkan. Perangkat keras dan perangkat lunak merupakan dua hal yang

selalu dibutuhkan dalam mengimplementasikan rancangan yang telah ada.

4.1.1.  Spesifikasi Perangkat Keras

Dalam menerapkan dari rancangan yang telah dijelaskan sebelumnya

dibutuhkan beberapa perangkat keras untuk menyajikan aplikasi ini. Adapun alat-

alat yang dibutuhkan adalah:

1.  Handphone Berbasiskan Sistem Operasi Android

Handphone digunakan untuk menjalankan program aplikasi yang telah

dikembangkan. Adapun handphone yang digunakan adalah HTC G1

(Dream) dengan spesifikasi sebagai berikut:

•  Sistem Operasi : Android 1.6

 

BAB IV

IMPLEMENTASI

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 70/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 55

•  CPU : 528 Mhz Qualcomm

•  Ruang Penyimpan : 256 MB (internal) dan 2 GB (microSD)

•  Memory : 192 MB DDR SDRAM

•  Dimensi Layar : 320 x 480

•  Masukkan : Touch screen kapasitif, keyboard QWERTY, trackball,

volume controls, accelerometer.

•  Konektivitas : Wi-Fi (802.11b/g), Bluetooth 2.0, ext USB, A-GPS,

Quad band, HSDPA/HSUPA.

2.  Kabel data serial port

Fungsi dari kabel data ini adalah untuk menghubungkan antara Komputer

dengan Handphone.

3.  Satu unit PC dengan spesifkasi antara lain:

•  Prosesor : Pentium IV

•  Memori : 1 Gb

•  Ruang Penyimpan : 80 Gb

4.1.2.  Spesifikasi Perangkat Lunak 

Dalam menerapkan rancangan yang telah dibuat, dibutuhkan beberapa

software untuk membuat program pengingat shalat yaitu:

1.  Bahasa Pemrograman Java

Dalam hal ini digunakan   Java Development Kid (JDK) 1.6 dan  Java

 Runtime Environment (JRE).

2.  Sistem Operasi

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 71/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 56

Untuk penggunaan sistem operasi dapat digunakan Windows XP (32-bit)

atau Vista (32 atau 64 bit), Mac OS X 10.4.8 atau diatasnya, dan Linux.

3.   Integrated Development Environment (IDE) Eclipse 3.4 atau 3.5

Untuk memudahkan dalam pengembangan aplikasi, maka digunakan IDE

karena memiliki beberapa fasilitas yang diperlukan dalam pembangunan

perangkat lunak. Adapun dalam pengembangan ini digunakan Eclipse v

3.4 atau 3.5 dikarenakan telah mendukung Android Development Tools. 

4.   Android Software Development Kit (Android SDK)

Android SDK menyediakan development environment dengan semua

komponen yang diperlukan. Antara lain tools pengembangan, libraries,

dokumentasi, dan contoh aplikasi serta disertakan pula emulator  untuk 

mensimulasikan aplikasi berjalan pada perangkat.

5.   Android Development Tools (ADT)

Android membuat kostum  plugin untuk IDE Eclipse, sehingga dengan

adanya ADT ini memberikan kemudahan dalam pengembangan aplikasi,

membuat tampilan antarmuka aplikasi, menambahkan komponen yang

diperlukan, men-debug aplikasi dengan menggunakan perangkat SDK

Android, dan bahkan membungkus aplikasi yang telah dikembangkan

untuk di distribusikan. Adapun ADT yang digunakan adalah ADT 0.9.5.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 72/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 57

4.2.  Penulisan Kode Program (Codding)

4.2.1.  Pembuatan Tampilan Utama

Berdasarkan perancangan, tampilan utama merupakan tampilan jadwal

shalat yang terhubung dengan beberapa kelas pendukung. Sehingga sebelum

membuat kelas KuplukMain, perlu dibuat terlebih dahulu pendukung kelas

KuplukMain seperti, tampilan antarmuka, kelas PerhitunganShalat, dan kelas

FormatWaktu.

4.2.1.1.  Pembuatan Tampilan Antarmuka Tampilan Utama

Pembuatan tampilan antarmuka pada sistem Android di impelmentasikan

dalam bentuk XML. Setiap elemen dalam tampilan antarmuka perlu ditambahkan

atribut pengenal, sehingga elemen tersebut akan di generate dalam kelas Resource

dan memudahkan untuk digunakan pada kelas yang memerlukan. Adapun kode

antarmuka tampilan utama adalah sebagai berikut:

<?xml version= "1.0" encoding= "utf-8"?>

<RelativeLayout

xmlns:Android= "http://schemas.Android.com/apk/res/Android"  

Android:layout_width= "fill_parent"  

Android:layout_height= "fill_parent"  

Android:background= "@drawable/latar" >

<TextView

Android:id= "@+id/label_judul"  

Android:text= "Jadwal Shalat"  

Android:layout_width= "fill_parent"  

Android:layout_height= "wrap_content"  

Android:textSize= "20sp" 

Android:textStyle= "bold" 

Android:textColor= "#ffffffff"  

Android:gravity= "center"  

Android:paddingTop= "136dip" />

<TextView

Android:id= "@+id/label_subuh"  

Android:text= "Subuh" 

Android:layout_width= "wrap_content"  

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 73/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 58

Android:layout_height= "wrap_content"  

Android:textSize= "15sp" 

Android:textStyle= "bold" 

Android:textColor= "#ffffffff"  

Android:paddingLeft= "50dip" 

Android:layout_below= "@id/label_judul"  Android:paddingTop= "30dip"/>

<TextView

Android:id= "@+id/label_zuhur"  

Android:text= "Zuhur"  

Android:layout_width= "wrap_content"  

Android:layout_height= "wrap_content"  

Android:textSize= "15sp" 

Android:textStyle= "bold" 

Android:textColor= "#ffffffff"  

Android:paddingLeft= "50dip" 

Android:layout_below= "@id/label_subuh"  

Android:paddingTop= "20dip"/>

<TextView

Android:id= "@+id/label_ashar"  

Android:text= "Ashar"  

Android:layout_width= "wrap_content"  

Android:layout_height= "wrap_content"  

Android:textSize= "15sp" 

Android:textStyle= "bold" 

Android:textColor= "#ffffffff"  

Android:paddingLeft= "50dip"  

Android:layout_below= "@id/label_zuhur"  

Android:paddingTop= "20dip"/>

<TextView

Android:id= "@+id/label_maghrib"  

Android:text= "Magrib"  

Android:layout_width= "wrap_content"  

Android:layout_height= "wrap_content"  

Android:textSize= "15sp" 

Android:textStyle= "bold" 

Android:textColor= "#ffffffff"  

Android:paddingLeft= "50dip"  

Android:layout_below= "@id/label_ashar"  

Android:paddingTop= "20dip"/>

<TextViewAndroid:id= "@+id/label_isya"  

Android:text= "Isya" 

Android:layout_width= "wrap_content"  

Android:layout_height= "wrap_content"  

Android:textSize= "15sp" 

Android:textStyle= "bold" 

Android:textColor= "#ffffffff"  

Android:paddingLeft= "50dip"  

Android:layout_below= "@id/label_maghrib"  

Android:paddingTop= "20dip"/>

<TextView

Android:id= "@+id/label_subuh_jam"  Android:layout_width= "wrap_content"  

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 74/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 59

Android:layout_height= "wrap_content"  

Android:textSize= "15sp" 

Android:textStyle= "bold" 

Android:textColor= "#ffffffcc"  

Android:paddingRight= "50dip" 

Android:paddingLeft= "210dip"  Android:layout_below= "@id/label_judul"  

Android:paddingTop= "30dip"/>

<TextView

Android:id= "@+id/label_zuhur_jam"  

Android:layout_width= "wrap_content"  

Android:layout_height= "wrap_content"  

Android:textSize= "15sp" 

Android:textStyle= "bold" 

Android:textColor= "#ffffffcc"  

Android:paddingLeft= "210dip"  

Android:layout_below= "@id/label_subuh_jam"  

Android:paddingTop= "20dip"/>

<TextView

Android:id= "@+id/label_ashar_jam"  

Android:layout_width= "wrap_content"  

Android:layout_height= "wrap_content"  

Android:textSize= "15sp" 

Android:textStyle= "bold" 

Android:textColor= "#ffffffcc"  

Android:paddingLeft= "210dip"  

Android:layout_below= "@id/label_zuhur_jam"  

Android:paddingTop= "20dip"/>

<TextViewAndroid:id= "@+id/label_maghrib_jam"  

Android:layout_width= "wrap_content"  

Android:layout_height= "wrap_content"  

Android:textSize= "15sp" 

Android:textStyle= "bold" 

Android:textColor= "#ffffffcc"  

Android:paddingLeft= "210dip"  

Android:layout_below= "@id/label_ashar_jam"  

Android:paddingTop= "20dip"/>

<TextView

Android:id= "@+id/label_isya_jam"  

Android:layout_width= "wrap_content"  Android:layout_height= "wrap_content"  

Android:textSize= "15sp" 

Android:textStyle= "bold" 

Android:textColor= "#ffffffcc"  

Android:paddingLeft= "210dip"  

Android:layout_below= "@id/label_maghrib_jam"  

Android:paddingTop= "20dip"/>

<TextView

Android:id= "@+id/coba"  

Android:layout_width= "wrap_content"  

Android:layout_height= "wrap_content"  

Android:textSize= "15sp" Android:paddingLeft= "210dip"  

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 75/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 60

Android:layout_below= "@id/label_isya"  

Android:paddingTop= "20dip"/>

</RelativeLayout>

4.2.1.2.  Pembuatan Kelas PerhitunganShalat

Kelas PerhitunganShalat merupakan kelas yang berfungsi untuk memproses

perhitungan waktu shalat dan merupakan iplementasi terhadap rumus-rumus pada

yang telah dijabarkan pada bab landasan teori. Keluaran dari kelas

PerhitunganShalat ini adalah nilai 5 waktu shalat. Adapun kode program

berdasarkan perancangan adalah sebagai berikut:

package com.amiral.Kupluk.service;

import Android.util.Log;

public class PerhitunganShalat {

private float waktuZuhur ;

private float waktuAshar ;

private float waktuMaghrib ;

private float waktuIsya ;

private float waktuSubuh ;

private double latitudeLokasi;

private double longitudLokasi;

private double altitudeLokasi;

private double zonaWaktuLokasi;

private double jdLokasi;private double sudutSubuh;

private double sudutIsya;

private double delta;

private double ET;

private int mazhab;

//Konstruktor

public PerhitunganShalat( double latitudeLokasi, double 

longitudeLokasi, double altitudeLokasi, double zonaWaktu,

int tanggal, int bulan, int tahun) {

// TODO Auto-generated constructor stub

setLatitudeLokasi(latitudeLokasi);

setLongitudLokasi(longitudeLokasi);setAltitudeLokasi(altitudeLokasi);

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 76/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 61

setZonaWaktuLokasi(zonaWaktu);

setJdLokasi(tanggal, bulan, tahun);

}

public float getWaktuZuhur() {

setET(getJdLokasi());return waktuZuhur = ( float) (12+getZonaWaktuLokasi() -

getLongitudLokasi()/15 - getET()/60);

}

public float getWaktuAshar() {

setDelta(getJdLokasi());

(getWaktuZuhur()+(12/Math. PI)*Math.acos((Math. sin(Math

.atan(1/(getMazhab()+

Math.tan(Math.abs(getLatitudeLokasi()-getDelta())))))-

Math.sin(getDelta())*Math. sin(getLatitudeLokasi()))

/(Math. cos(getDelta())*Math. cos(getLatitudeLokasi()))));

}

public float getWaktuMaghrib() {

setDelta(getJdLokasi());

return waktuMaghrib = ( float)

(getWaktuZuhur()+(12/Math. PI)*Math.acos((Math.sin((-

0.8333-0.0347*Math. pow (getAltitudeLokasi(),

0.5))*Math. PI/180)-

Math.sin(getDelta())*Math. sin(getLatitudeLokasi()))/(M

ath.cos(getDelta())*Math. cos(getLatitudeLokasi()))));

}

public float getWaktuIsya() {

setDelta(getJdLokasi());return waktuIsya = ( float)

(getWaktuZuhur()+(12/Math. PI)*Math.acos((Math.sin((-

1*getSudutIsya())*Math. PI/180)-

Math.sin(getDelta())*Math. sin(getLatitudeLokasi()))/(M

ath.cos(getDelta())*Math. cos(getLatitudeLokasi()))));

}

public float getWaktuSubuh() {

setDelta(getJdLokasi());

return waktuSubuh = ( float) (getWaktuZuhur()-

(12/Math. PI)*Math.acos((Math.sin((-

1*getSudutSubuh())*Math. PI/180)-Math.sin(getDelta())*Math. sin(getLatitudeLokasi()))/(M

ath.cos(getDelta())*Math. cos(getLatitudeLokasi()))));

}

public double getLatitudeLokasi() {

return latitudeLokasi;

}

public void setLatitudeLokasi( double latitudeLokasi) {

this.latitudeLokasi = latitudeLokasi*Math. PI/180;

}

public double getLongitudLokasi() {

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 77/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 62

return longitudLokasi;

}

public void setLongitudLokasi( double longitudLokasi) {

this.longitudLokasi = longitudLokasi;}

public double getAltitudeLokasi() {

return altitudeLokasi;

}

public void setAltitudeLokasi( double altitudeLokasi) {

this.altitudeLokasi = altitudeLokasi;

}

public double getZonaWaktuLokasi() {

return zonaWaktuLokasi;

}

public void setZonaWaktuLokasi( double zonaWaktuLokasi) {

this.zonaWaktuLokasi = zonaWaktuLokasi;

}

public double getSudutSubuh() {

return sudutSubuh;

}

public void setSudutSubuh( double sudutSubuh) {

this.sudutSubuh = sudutSubuh;

}

public double getSudutIsya() {

return sudutIsya;

}

public void setSudutIsya( double sudutIsya) {this.sudutIsya = sudutIsya;

}

public double getJdLokasi() {

return jdLokasi;

}

public void setJdLokasi( int tanggal, int bulan, int tahun) {

int M = bulan < 3 ? bulan+12:bulan;

int Y = bulan < 3 ? tahun-1: tahun;

int A= Y/100;

int B= 2 + ( int)(A/4) - A;

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 78/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 63

double JDgreenWicht = 1720994.5 + ( int)(365.25 * Y) +

(int)(30.60001 * (M+1)) + B + tanggal + 0.5;

Log.d ("shalat", "JDG= "+JDgreenWicht+"zona=

"+getZonaWaktuLokasi());

double zona=getZonaWaktuLokasi();

double JDlokasi = JDgreenWicht - zona/24;this.jdLokasi = JDlokasi;

}

public double getDelta() {

return delta;

}

public void setDelta( double jdLks) {

double sudutTanggal = 2 * Math. PI * (jdLks - 2451545)

/ 365.25;

double dlt = 0.37877 + 23.264 * Math. sin((57.297 *

sudutTanggal - 79.547) * Math. PI/180) + 0.3812 *

Math.sin((2 * 57.297 * sudutTanggal - 82.682) *Math.PI/180) + 0.17132 * Math. sin(( 3 * 57.297 *

sudutTanggal - 59.722)* Math. PI/180);

this.delta=dlt*Math. PI/180;

}

public double getET() {

return ET;

}

public void setET(double jdLks) {

double U = (jdLks - 2451545)/36525;

double L0 = (280.46607 + 36000.7698 * U) *Math.PI/180;

double eT = (-1 * (1789+237*U) * Math. sin(L0) - (7146-

62*U) * Math. cos(L0) +(9934-14*U) * Math. sin(2*L0) -

(29+5*U) * Math. cos(2*L0) + (74+10*U)*Math. sin(3*L0) +

(320-4*U)*Math. cos(3*L0) - 212*Math. sin(4*L0))/1000;

ET = eT;

}

public int getMazhab() {

return mazhab;

}

public void setMazhab( int mazhab) {this.mazhab = mazhab;

}

}

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 79/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 64

4.2.1.3.  Pembuatan Kelas FormatWaktu

Kelas FormatWaktu merupakan kelas yang berfungsi untuk mengubah nilai

yang dihasilkan dari kelas PerhitunganShalat. Keluaran dari kelas ini adalah

berupa jam, menit, dan detik. Adapun kode programnya adalah sebagai berikut:

package com.amiral.Kupluk.service;

public class FormatWaktu {

private int jam;

private int menit;

private int detik;

//Konstruktor

public FormatWaktu( float waktu) {

setJam(waktu);

setMenit(waktu);

setDetik(waktu);

}

public int getJam() {

return jam;

}

public void setJam( float waktu) {

int jam=(int) waktu;

this.jam = jam;

}public int getMenit() {

return menit;

}

public void setMenit( float waktu) {

int menit=( int) ((waktu-getJam())*60);

this.menit = menit;

}

public int getDetik() {

return detik;

}

public void setDetik( float waktu) {

int detik=( int) ((((waktu-getJam())*60)-

getMenit())*60);this.detik = detik;

}

}

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 80/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 65

4.2.1.4.  Pembuatan Kelas KuplukMain

Dikarenakan dalam pengembangan aplikasi ini menggunakan  plugin

 Android Development Tools (ADT) sehingga ketika pertama kali projek dibuat

maka secara otomatis kelas KuplukMain telah tersedia yang diperluas (extend) ke

Activity.

import Android.app.Activity;

import Android.os.Bundle;

public class KuplukMain extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout. main);

}

}

Dari default kelas inilah selanjutnya diinisialisasi atribut yang digunakan,

resource yang telah dibuat pada antarmuka, dan juga metode yang diperlukan.

Adapun kode program KuplukMain lengkapnya sebagai berikut:

package com.amiral.kupluk;

import java.util.Calendar;import com.amiral.kupluk.service.FormatWaktu;import com.amiral.kupluk.service.PerhitunganShalat;

import android.app.Activity;import android.app.NotificationManager;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;

import android.location.Criteria;import android.location.Location;import android.location.LocationManager;

import android.os.Bundle;import android.util.Log;import android.view.Menu;

import android.view.MenuInflater;import android.view.MenuItem;import android.widget.TextView;

public class KuplukMain extends Activity { /** Called when the activity is first created. */ 

public static final String JADWAL="jadwal";public static final String JAM_SUBUH="jamSubuh";

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 81/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 66

public static final String MENIT_SUBUH="menitSubuh";

public static int NOTIF_ID = 100;

private int hari;

private int bulan;private int tahun;private double zonaWaktu;public String metode="";

private float sudutSubuh;private float sudutIsya;private int mazhab;

  // private PerhitunganShalat shalat;

LocationManager locationManager;KuplukService updateService = null;Location location;

PerhitunganShalat shalat;FormatWaktu subuh;

FormatWaktu zuhur;

FormatWaktu ashar;FormatWaktu maghrib;FormatWaktu isya;

SharedPreferences sharedPreferences;@Override

public void onCreate(Bundle savedInstanceState) {

Intent svc = new Intent(this, KuplukService.class);stopService(svc);

super.onCreate(savedInstanceState);setContentView(R.layout.main);

NotificationManager mgr=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);

mgr.cancel(NOTIF_ID);

 // Mengambil text View di layout

TextView waktuSubuh= (TextView) findViewById(R.id.label_subuh_jam);TextView waktuZuhur= (TextView) findViewById(R.id.label_zuhur_jam);TextView waktuAshar= (TextView) findViewById(R.id.label_ashar_jam);TextView waktuMaghrib= (TextView) findViewById(R.id.label_maghrib_jam);

TextView waktuIsya= (TextView) findViewById(R.id.label_isya_jam);

 //inisialisasi tanggal sekarangfinal Calendar c= Calendar.getInstance();hari=c.get(Calendar.DAY_OF_MONTH);bulan=c.get(Calendar.MONTH)+1;

tahun=c.get(Calendar.YEAR);zonaWaktu=Variabel.getZonaWaktu();

 //inisialisasi LokasilocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

 //kriteria penggunaan lokasi

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 82/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 67

Criteria criteria= new Criteria();criteria.setAccuracy(Criteria.ACCURACY_COARSE);

criteria.setPowerRequirement(Criteria.POWER_LOW);criteria.setBearingRequired(false);criteria.setSpeedRequired(false);

criteria.setCostAllowed(true);

String provider = locationManager.getBestProvider(criteria, true);location=locationManager.getLastKnownLocation(provider);

 /*** Untuk mengambil nilai metode yang telah ditentukan oleh user* @params metode merupakan tempenat menyimpan sementara*/ metode=Pengaturan.getMetodePerhitungan(this);

char a= metode.charAt(0);switch (a) {

case '0':{

sudutSubuh=20;sudutIsya=18;

}break;

case '1':{sudutSubuh=18;

sudutIsya=18;} break;

case '2':{sudutSubuh=15;

sudutIsya=15;}break;

case '3':{sudutSubuh=17;

sudutIsya=18;}break;

case '4':{sudutSubuh=18;

sudutIsya=(float) 18.5;

}break;

case '5':{sudutSubuh=(float) 17.5;

sudutIsya=(float) 19.5;}break;

}

 /*** Untuk mengambil nilai mazhab yang sudah ditentukan oleh user

*/ String mzb = Pengaturan.getMazhab(this);char m = mzb.charAt(0);

mazhab = m == '0'? 1 : 2 ;

 //Menghitung variabel  // shalat = new PerhitunganShalat(-6.166666667, 106.85, 50, zonaWaktu, hari, bulan, tahun);

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 83/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 68

shalat= new PerhitunganShalat(location.getLatitude(), location.getLongitude(),location.getAltitude(), zonaWaktu, hari, bulan, tahun);

shalat.setSudutSubuh(sudutSubuh);shalat.setSudutIsya(sudutIsya);

shalat.setMazhab(mazhab);

 //Untuk mengkonfersi hasil perhitungan dalam format jam.FormatWaktu subuh=new FormatWaktu(shalat.getWaktuSubuh());

FormatWaktu zuhur= new FormatWaktu(shalat.getWaktuZuhur());FormatWaktu ashar= new FormatWaktu(shalat.getWaktuAshar());FormatWaktu maghrib=new FormatWaktu(shalat.getWaktuMaghrib());FormatWaktu isya=new FormatWaktu(shalat.getWaktuIsya());

waktuIsya.setText(""+isya.getJam()+":"+isya.getMenit()+":"+isya.getDetik());

waktuMaghrib.setText(""+maghrib.getJam()+":"+maghrib.getMenit()+":"+maghrib.getDetik());waktuSubuh.setText(""+subuh.getJam()+":"+subuh.getMenit()+":"+subuh.getDetik());

waktuZuhur.setText(""+zuhur.getJam()+":"+zuhur.getMenit()+":"+zuhur.getDetik());waktuAshar.setText(""+ashar.getJam()+":"+ashar.getMenit()+":"+ashar.getDetik());

 //untuk menyimpan waktu shalat agar dapat dipanggil di KuplukService

SharedPreferences jadwal = getSharedPreferences(JADWAL, 0);

SharedPreferences.Editor editor= jadwal.edit();editor.clear();

editor.putInt("jSubuh", subuh.getJam());editor.putInt("mSubuh", subuh.getMenit());editor.putInt("jZuhur", zuhur.getJam());editor.putInt("mZuhur", zuhur.getMenit());

editor.putInt("jAshar", ashar.getJam());editor.putInt("mAshar", ashar.getMenit());editor.putInt("jMaghrib", maghrib.getJam());

editor.putInt("mMaghrib",maghrib.getMenit());editor.putInt("jIsya", isya.getJam());editor.putInt("mIsya", isya.getMenit());

editor.commit();

 //cek keluaran

Log.d("kupluk", "sudut subuh: "+shalat.getSudutSubuh());Log.d("kupluk", "sudut isya: "+shalat.getSudutIsya());Log.d("kupluk", "metode: "+metode);Log.d("kupluk", "mazhab: "+mazhab);

Log.d("kupluk", "zonawaktu: "+zonaWaktu);Log.d("kupluk", "Jd LOkasi: " + shalat.getJdLokasi());

Log.d("kupluk", "Delta: "+shalat.getDelta());Log.d("kupluk", "ET: "+shalat.getET());Log.d("k", "subuh= "+shalat.getWaktuSubuh());Log.d("kupluk", "zuhur= "+shalat.getWaktuZuhur());

Log.d("kupluk", "Ashar= "+shalat.getWaktuAshar());Log.d("kupluk", "maghrib= "+shalat.getWaktuMaghrib());Log.d("k", "isya= "+shalat.getWaktuIsya());

 // Inisiasi service

startService(svc);

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 84/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 69

}

@Overridepublic void onResume(){

super.onResume();metode=Pengaturan.getMetodePerhitungan(this);NotificationManager mNM = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE);

mNM.cancel(KuplukService.NOTIF_ID);}

 //untuk mendeklarasikan Menu@Overridepublic boolean onCreateOptionsMenu(Menu menu){

super.onCreateOptionsMenu(menu);MenuInflater inflater= getMenuInflater();inflater.inflate(R.menu.menu, menu);

return true;}

 //Untuk mengeksekusi jika pilihan menu dipilih@Override

public boolean onOptionsItemSelected(MenuItem item){super.onOptionsItemSelected(item);switch (item.getItemId()) {

case R.id.jadwal_menu:startActivity(new Intent(this, KuplukMain.class));return true;

case R.id.kiblat_menu:

startActivity(new Intent(this, Kiblat.class));return true;

case R.id.pengaturan_menu:

startActivity(new Intent(this, Pengaturan.class));return true;

case R.id.tentang_menu:

startActivity(new Intent(this, Tentang.class));return true;

}

return false;}

}

4.2.2.  Pembuatan Tampilan Arah K iblat

Tampilan Arah Kiblat dibuat dengan menggunakan kelas KiblatView

sebagai kostum komponen untuk penunjuk arah, yang selanjutnya akan digunakan

pada tampilan antarmuka Arah Kiblat. Dari tampilan antarmuka Arah Kiblat

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 85/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 70

diatur pergerakkan busur penunjuk arah melalui kelas Kiblat dengan menggunkan

sensor.

4.2.2.1.  Pembuatan Kelas KiblatView

Demi memudahkan dalam membuat penunjuk arah kiblat yang dapat

menunjukkan arah secara benar dan real position maka dibuat kostum komponen

yang nantinya akan digunakan pada tampilan antarmuka arah kiblat. Adapun kode

programnya adalah sebagai berikut:

package com.amiral.Kupluk;

import Android.content.Context;

import Android.content.res.Resources;

import Android.graphics.Canvas;

import Android.graphics.Paint;

import Android.util.AttributeSet;

import Android.view.View;

public class KiblatView extends View{

private float busur;

private int lebar=240;private int tinggi=240;

private Paint penandaGambar;

private Paint paintText;

private Paint gambarLingkaran;

private String northString;

private int textHeight;

/** Konstruktor */public KiblatView(Context context){

super(context);

initKiblatView();

}

public KiblatView(Context context, AttributeSet attrs) {

super(context, attrs);

// TODO Auto-generated constructor stub

initKiblatView();

}

public KiblatView(Context context, AttributeSet attrs, int 

defStyle){

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 86/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 71

super(context,attrs,defStyle);

initKiblatView();

}

protected void initKiblatView() {

setFocusable( true);

gambarLingkaran = new Paint(Paint. ANTI_ALIAS_FLAG );

gambarLingkaran.setColor(R.color. background_color );

gambarLingkaran.setStrokeWidth(1);

gambarLingkaran.setStyle(Paint.Style. FILL_AND_STROKE );

Resources r = this.getResources();

northString = r.getString(R.string. cardinal_north );

paintText = new Paint(Paint. ANTI_ALIAS_FLAG );

paintText.setColor(r.getColor(R.color. text_color ));

textHeight = ( int)paintText.measureText("yY");

penandaGambar = new Paint(Paint. ANTI_ALIAS_FLAG );

penandaGambar.setColor(r.getColor(R.color. marker_color 

));

}

@Override

protected void onMeasure( int widthMeasureSpec, int 

heightMeasureSpec) {

setMeasuredDimension(lebar, tinggi);}

/** untuk mengatur arah*/

public void setBearing( float _bearing) {

busur = _bearing;

}

/** mengambil arah */

public float getBusur() {

return busur;

}

@Overrideprotected void onDraw(Canvas canvas) {

int px = getMeasuredWidth() / 2;

int py = getMeasuredHeight() / 2 ;

int radius = Math. min(px, py);

// Membetuk latar

canvas.drawCircle(px, py, radius, gambarLingkaran);

canvas.save();

// Rotasi perspektif

canvas.rotate(-busur, px, py);

int textWidth = ( int)paintText.measureText("W");

int cardinalX = px-textWidth/2;int cardinalY = py-radius+textHeight;

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 87/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 72

for (int i = 0; i < 24; i++) {

canvas.save();

canvas.translate(0, textHeight);

if (i % 6 == 0) {

String dirString = "";

switch (i) {

case(0) : {

dirString = northString;

int arrowY = 2*textHeight;

canvas.drawLine(px, arrowY, px-5, 3*textHeight,

penandaGambar);

canvas.drawLine(px, arrowY, px+5, 3*textHeight,

penandaGambar);

canvas.drawLine(px, py, px, arrowY,

penandaGambar);

break;}

}

canvas.drawText(dirString, cardinalX, cardinalY,

paintText);

}

canvas.restore();

canvas.rotate(15, px, py);

}

canvas.restore();

}

}

4.2.2.2.  Pembuatan Tampilan Antarmuka Arah Kiblat

Tampilan antarmuka Arah Kiblat menggunakan kostum komponen

KiblatView. Komponen KiblatView diberi nama atribut pengenal yang

selanjutnya akan dipanggil pada kelas Kiblat. Adapun Kode programnya adalah

sebagai berikut:

<?xml version= "1.0" encoding= "utf-8"?>

<RelativeLayout

xmlns:Android= "http://schemas.Android.com/apk/res/Android"  

Android:orientation= "vertical"  

Android:layout_width= "fill_parent"  

Android:layout_height= "fill_parent"  

Android:background= "@drawable/bg_kiblat3"  

>

<TextView

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 88/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 73

Android:layout_width= "fill_parent"  

Android:layout_height= "wrap_content"  

Android:id= "@+id/text"  

/>

<!-- Untuk menampilkan kiblat --><LinearLayout Android:orientation= "horizontal"  

Android:layout_height= "wrap_content" a

ndroid:layout_width= "wrap_content"  

Android:layout_gravity= "center_horizontal|center_vertical"  

Android:paddingTop= "142px" 

Android:paddingLeft= "40px" 

Android:paddingBottom= "5px">

<com.amiral.Kupluk.KiblatView

Android:layout_width= "wrap_content"  

Android:layout_height= "wrap_content"  

Android:layout_gravity= "fill|center"  Android:id= "@+id/arahKiblat" />

</LinearLayout>

<TextView

Android:layout_width= "wrap_content"  

Android:layout_height= "wrap_content"  

Android:id= "@+id/text"  

Android:layout_below= "@id/arahKiblat"  

Android:paddingLeft= "30dip" 

/>

</RelativeLayout>

4.2.2.3.  Pembuatan Kelas Kiblat

Kelas Kiblat merupakan kelas yang akan melakukan penunjukkan arah

kiblat sencara real position dengan menerima setiap perubahan sensor terhadap

posisi handphone yang selanjutnya akan dilakukan perhitungan terhadap arah

kiblat yang sesuai berdasarkan lokasi. Hasil perhitungan arah kiblat akan

diimplementasikan pada tampilan antarmuka Arah Kiblat. Adapun Kode

programnya adalah sebagai berikut:

package com.amiral.Kupluk;

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 89/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 74

import com.amiral.Kupluk.R;

import Android.app.Activity;

import Android.content.Context;

import Android.content.Intent;

import Android.hardware.SensorListener ;import Android.hardware.SensorManager;

import Android.location.Criteria;

import Android.location.Location;

import Android.location.LocationManager;

import Android.os.Bundle;

import Android.util.Log;

import Android.view.Menu;

import Android.view.MenuInflater;

import Android.view.MenuItem;

import Android.widget.TextView;

public class Kiblat extends Activity{

private float arahKiblat=0;

private float busur = 0;

private double lonMasjid;

private double latMasjid;

private KiblatView kiblatView;

private SensorManager sensorManager;

TextView text;

private LocationManager locationManager;

// private final SensorListener sensorListener;// private static boolean isTrackingOrientation = false;

@Override

public void onCreate(Bundle icicle){

super.onCreate(icicle);

setContentView(R.layout. kiblat);

//inisialisasi Lokasi

locationManager = (LocationManager)

getSystemService(Context. LOCATION_SERVICE );

//kriteria penggunaan lokasi

Criteria criteria= new Criteria();criteria.setAccuracy(Criteria. ACCURACY_COARSE );

criteria.setPowerRequirement(Criteria. POWER_LOW );

criteria.setBearingRequired( false);

criteria.setSpeedRequired( false);

criteria.setCostAllowed( true);

String provider = locationManager.getBestProvider(criteria,

true);

Location

location=locationManager.getLastKnownLocation(provider);

latMasjid= location.getLatitude();

lonMasjid= location.getLongitude();

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 90/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 75

float kiblat

=(float)segitigaBola(lonMasjid,latMasjid);

setArahKiblat(kiblat);

kiblatView = (KiblatView)

this.findViewById(R.id. arahKiblat );text= (TextView) findViewById(R.id. text);

text.setText("Arah Kiblat adalah: "+kiblat);

sensorManager =

(SensorManager)getSystemService(Context. SENSOR_SERVICE );

updatePerputaran(0,0);

Log.d ("Kupluk", "kiblat: "+getArahKiblat());

Log.d ("Kupluk", "Latitude masjid: " + latMasjid

+"Longitude Masjid: "+ lonMasjid );

}

private final SensorListener sensorListener = new SensorListener () {

public void onSensorChanged( int sensor, float[]

values) {

updatePerputaran(values[SensorManager. DATA_X ],getArahKiblat());

}

public void onAccuracyChanged( int sensor, int 

accuracy) {}

};

private void updatePerputaran( float _busur, float _arah){

busur=( float) (_busur+ ( float)(360 - _arah));if (kiblatView!= null){

kiblatView.setBearing(busur);

kiblatView.invalidate();

}

}

@Override

protected void onResume()

{

super.onResume();

sensorManager.registerListener(sensorListener,

SensorManager. SENSOR_ORIENTATION ,SensorManager. SENSOR_DELAY_FASTEST );

}

@Override

protected void onStop()

{

sensorManager.unregisterListener(sensorListener);

super.onStop();

}

/**

* Rumus ini untuk menghitung arah kiblat dari utara.* Perhitungan sesuai dengan arah jarum jam.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 91/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 76

* Jika nilai utara ditemukan maka selanjutnya adalah dengan

menambah arah utara

* dengan hasil perhitungan .*/

public double segitigaBola( double lngMasjid, double 

latMasjid){

double lngKabah=39.82616111;double latKabah=21.42250833;

double lKlM=(lngKabah-lngMasjid);

double sinLKLM= Math. sin(lKlM*2.0*Math. PI/360);

double cosLKLM= Math. cos(lKlM*2.0*Math. PI/360);

double sinLM = Math. sin(latMasjid *2.0 * Math. PI/360);

double cosLM = Math. cos(latMasjid *2.0 *

Math.PI/360);

double tanLK = Math. tan(latKabah*2*Math. PI/360);

double penyebut= (cosLM*tanLK)-sinLM*cosLKLM;

double kiblat;

double arah;

kiblat = Math. atan2(sinLKLM, penyebut)*180/Math. PI;

arah= kiblat<0 ? kiblat+360 : kiblat;

return arah;

}

//untuk mendeklarasikan Menu

@Override

public boolean onCreateOptionsMenu(Menu menu){

super.onCreateOptionsMenu(menu);

MenuInflater inflater= getMenuInflater();

inflater.inflate(R.menu. menu, menu);

return true;

}

//Untuk mengeksekusi jika pilihan menu dipilih

@Override

public boolean onOptionsItemSelected(MenuItem item){

super.onOptionsItemSelected(item);

switch (item.getItemId()) {

case R.id.jadwal_menu :

startActivity( new Intent( this,

KuplukMain. class));

return true;

case R.id.kiblat_menu :startActivity( new Intent( this, Kiblat. class));

return true;

case R.id. pengaturan_menu :

startActivity( new Intent( this,

Pengaturan. class));

return true;

case R.id.tentang_menu :

startActivity( new Intent( this, Tentang. class));

return true;

}

return false;

}

public float getArahKiblat() {

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 92/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 77

return arahKiblat;

}

public void setArahKiblat( float arahKiblat) {

this.arahKiblat = arahKiblat;

}

}

4.2.3.  Pembuatan Tampilan Pengaturan

Tampilan pengaturan merupakan tampilan yang akan menyediakan pilihan

bagi user untuk melakukan perubahan terhadap beberapa ketentuan yang

diinginkan.

4.2.3.1.  Pembuatan Tampilan Antarmuka Pengaturan

Tampilan antarmuka Pengaturan juga berbeda dibandingkan tampilan

lainnya, dikarenakan pada aplikasi Kupluk ini menggunakan tampilan antarmuka

pengaturan khusus yang disediakan oleh Android. Hal ini dilakukan guna

memudahkan dalam menampilkan setiap pilihan-pilihan pengaturan dan

memudahkan dalam penyimpanan setiap perubahan pengaturan tersebut. Adapun

kode programnya adalah sebagai berikut :

<?xml version= "1.0" encoding= "utf-8"?>

<PreferenceScreen

xmlns:Android= "http://schemas.Android.com/apk/res/Android"  

Android:key= "pengaturan_Kupluk"  

Android:title= "@string/pengaturan_judul" >

<PreferenceCategory

xmlns:Android= "http://schemas.Android.com/apk/res/Android"  

Android:key= "pengaturan_shalat"  

Android:title= "@string/pengaturan_kategori_shalat"  

Android:summary= "@string/pengaturan_kategori_shalat_ket" >

<ListPreference

Android:key= "pilihan_metode_perhitungan"  

Android:title= "@string/pengaturan_perhitungan_shalat"  

Android:summary= "@string/pengaturan_perhitungan_shalat_ket"  

Android:entries= "@array/daftar_metode_perhitungan"  

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 93/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 78

Android:entryValues= "@array/daftar_metode_perhitungan_nilai"  

Android:dialogTitle= "@string/pengaturan_perhitungan_shalat_j

udul" 

Android:defaultValue= "0"></ListPreference>

<ListPreference

Android:key= "pilihan_mazhab"  

Android:title= "@string/pengaturan_mazhab"  

Android:summary= "@string/pengaturan_mazhab_ket"  

Android:entries= "@array/daftar_mazhab"  

Android:entryValues= "@array/daftar_mazhab_nilai"  

Android:dialogTitle= "@string/pengaturan_mazhab_judul"  

Android:defaultValue= "0">

</ListPreference>

</PreferenceCategory>

<PreferenceCategory

xmlns:Android= "http://schemas.Android.com/apk/res/Android"  

Android:key= "pengaturan_pengingat"  

Android:title= "@string/pengaturan_kategori_pengingat"  

Android:summary= "@string/pengaturan_kategori_pengingat_ket" >

<PreferenceScreen

Android:title= "@string/pengaturan_pengingat"  

Android:summary= "@string/pengaturan_pengingat_ket" >

<CheckBoxPreference

Android:key= "set_zuhur"  Android:title= "Zuhur"/>

<CheckBoxPreference

Android:key= "set_ashar"  

Android:title= "Ashar"/>

<CheckBoxPreference

Android:key= "set_maghrib"  

Android:title= "Maghrib" />

<CheckBoxPreference

Android:key= "set_isya"  

Android:title= "Isya"/>

<CheckBoxPreference

Android:key= "set_subuh"  

Android:title= "Subuh"/></PreferenceScreen>

<ListPreference

android:key= "pilihan_mode_pengingat"  

android:title= "@string/pengaturan_mode_pengingat"  

android:summary= "@string/pengaturan_mode_pengingat_ket"  

android:entries= "@array/daftar_mode_pengingat"  

android:entryValues= "@array/daftar_mode_pengingat_nilai"  

android:dialogTitle= "@string/pengaturan_mode_pengingat_judul

android:defaultValue= "0">

</ListPreference>

</PreferenceCategory></PreferenceScreen>

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 94/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 79

4.2.3.2.  Pembuatan Kelas Pengaturan

Kelas Pengaturan berfungsi untuk mengambil nilai pilihan-pilihan

pengaturan yang diinginkan oleh pengguna. Dari kelas Pengaturan inilah nilai

yang tersimpan tersebut dapat digunakan oleh kelas Activity lainnya seperti kelas

KuplukMain dan KuplukService.Adapun kode programnya adalah sebagai

berikut:

package com.amiral.kupluk;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.preference.PreferenceActivity;

import android.preference.PreferenceManager;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

public class Pengaturan extends PreferenceActivity{

private static final String

PIL_METODE_PERHITUNGAN="pilihan_metode_perhitungan";private static final String PIL_METODE_PERHITUNGAN_DEF="0";

private static final String PIL_MAZHAB="pilihan_mazhab";

private static final String PIl_MAZHAB_DEF="0";

private static final String PIL_ZUHUR = "set_zuhur";

private static final boolean PIL_ZUHUR_DEF = true;

private static final String PIL_ASHAR = "set_ashar";

private static final boolean PIL_ASHAR_DEF = true;

private static final String PIL_MAGHRIB="set_maghrib";

private static final boolean PIL_MAGHRIB_DEF=true;

private static final String PIL_ISYA= "set_isya";private static final boolean PIL_ISYA_DEF=true;

private static final String PIL_SUBUH="set_subuh";

private static final boolean PIL_SUBUH_DEF=true;

private static final String PIL_MODE_PENGINGAT=

"pilihan_mode_pengingat";

private static final String PIL_MODE_PENGINGAT_DEF="0";

@Override

protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

addPreferencesFromResource(R.xml.pengaturan);

}

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 95/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 80

//mengambil nilai default dari settingan waktu shalat

public static boolean getSetZuhur(Context context){

return

PreferenceManager.getDefaultSharedPreferences(context)

.getBoolean(PIL_ZUHUR, PIL_ZUHUR_DEF);}

public static boolean getSetAshar(Context context){

return

PreferenceManager.getDefaultSharedPreferences(context)

.getBoolean(PIL_ASHAR, PIL_ASHAR_DEF);

}

public static boolean getSetMaghrib(Context context){

return

PreferenceManager.getDefaultSharedPreferences(context)

.getBoolean(PIL_MAGHRIB, PIL_MAGHRIB_DEF);

}

public static boolean getSetIsya(Context context){

return

PreferenceManager.getDefaultSharedPreferences(context)

.getBoolean(PIL_ISYA, PIL_ISYA_DEF);

}

public static boolean getSetSubuh(Context context){

return

PreferenceManager.getDefaultSharedPreferences(context)

.getBoolean(PIL_SUBUH, PIL_SUBUH_DEF);

}

public static String getMetodePerhitungan(Context context){

return

PreferenceManager.getDefaultSharedPreferences(context)

.getString(PIL_METODE_PERHITUNGAN,

PIL_METODE_PERHITUNGAN_DEF);

}

public static String getMazhab(Context context){

return

PreferenceManager.getDefaultSharedPreferences(context)

.getString(PIL_MAZHAB, PIl_MAZHAB_DEF);

}

public static String getMode(Context context){

return

PreferenceManager.getDefaultSharedPreferences(context)

.getString(PIL_MODE_PENGINGAT,

PIL_MODE_PENGINGAT_DEF);

}

//untuk mendeklarasikan Menu

@Override

public boolean onCreateOptionsMenu(Menu menu){

super.onCreateOptionsMenu(menu);

MenuInflater inflater= getMenuInflater();

inflater.inflate(R.menu.menu, menu);

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 96/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 81

return true;

}

//Untuk mengeksekusi jika pilihan menu dipilih

@Override

public boolean onOptionsItemSelected(MenuItem item){super.onOptionsItemSelected(item);

switch (item.getItemId()) {

case R.id.jadwal_menu:

startActivity(new Intent(this,

KuplukMain.class));

return true;

case R.id.kiblat_menu:

startActivity(new Intent(this, Kiblat.class));

return true;

case R.id.pengaturan_menu:

startActivity(new Intent(this,

Pengaturan.class));

return true;case R.id.tentang_menu:

startActivity(new Intent(this, Tentang.class));

return true;

}

return false;

}

}

4.2.4.  Pembuatan Tampilan Tentang

4.2.4.1.  Pembuatan Tampilan Antarmuka Tentang

Berdasarkan perancangan, tampilan antarmuka Tentang akan ditampilkan

dengan format web. Sehingga dalam tampilan antarmuka Tentang berbeda dari

tampilan antarmuka lainnya yang berformat xml melainkan menggunakan format

HTML. Adapun kode antarmuka tentang adalah sebagai berikut:

<html>

<head>

<style type="text/css">

body{

background-color: #DDDDDD;

color: black;

}

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 97/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 82

</style>

</head>

<body>

<h2>Kupluk <img src="file:///Android_asset/icon.png" align="right"/></h2>

Kupluk adalah Aplikasi Pengingat Shalat dan Arah Kiblat. "Kupluk" merupakan istilah

di sebagian orang Jawa untuk nama lain peci, kopiah songkok atau kethu. Kupluk 

digunakan sebagai penutup kepala, karena bentuknya yang simple sehingga sering

dipakai ketika shalat dan dianggap sebagai identitas muslim. Dengan semangat yang

sama, aplikasi ini bertujuan untuk memberitahukan jadwal shalat dan arah kiblat bagi

umat muslim.<br>

<h4>Fitur</h4>

<ul>

<li>Jadwal Waktu Shalat</li>

<li>Penunjuk Arah Kiblat</li>

<li>Pengingat waktu shalat</li>

<li>Pengaturan methode perhitungan dan Mazhab</li>

<li>Pengaturan suara azhan</li>

</ul>

<h4>Terima Kasih:</h4>

<ul>

<li>DR. Rito Anugraha atas metode perhitungan shalat dan arah kiblatnya.

</li>

<li><a href="http://echodock.blogspot.com/">Eko Anggit</a> Atas desain UI

nya. <br>

</li>

<li>Civitas Akademika Informatika ITI</a> atas dukungannya.<br>

</li>

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 98/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 83

</ul>

<h4>Informasi:</h4>

Pengembang: <a href="http://www.4miral.com">Muhammad Amiral</a><br>

Website: <a href="http://www.4miral.com/Kupluk">www.4miral.com/Kupluk</a><br>

Dukungan: <a href="mailto:[email protected]">e-mail ke saya</a><br>

</body>

</html>

4.2.4.2.  Pembuatan Kelas Antar muka Tentang

Kelas Tentang berfungsi untuk mengambil dan menyajikan tampilan

antarmuka Tentang. Adapun kode programnya adalah sebagai berikut:

package com.amiral.Kupluk;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import Android.app.Activity;

import Android.content.Intent;

import Android.content.res.Resources;

import Android.os.Bundle;

import Android.view.Menu;

import Android.view.MenuInflater;

import Android.view.MenuItem;

import Android.webkit.WebView;

public class Tentang extends Activity{

WebView webview;

@Overridepublic void onCreate(Bundle bundle){

super.onCreate(bundle);

setContentView(R.layout. tentang );

webview = (WebView) findViewById(R.id. tentang_Kupluk );

String content =

ambilResource (getResources(),R.raw. info);

String mimeType = "text/html";

String encoding = "UTF-8";

webview.loadDataWithBaseURL("file:///Android_asset",content, mimeType, encoding, null);

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 99/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 84

}

public static String ambilResource(Resources resources, int 

resId) {

InputStream rawResource =

resources.openRawResource(resId);String content = ubahKeString (rawResource);

try {rawResource.close();} catch (IOException e) {}

return content;

}

private static String ubahKeString(InputStream in) {

String l;

BufferedReader r = new BufferedReader( new 

InputStreamReader(in));

StringBuilder s = new StringBuilder();

try {

while ((l = r.readLine()) != null) {

s.append(l + "\n");}

} catch (IOException e) {}

return s.toString();

}

//untuk mendeklarasikan Menu

@Override

public boolean onCreateOptionsMenu(Menu menu){

super.onCreateOptionsMenu(menu);

MenuInflater inflater= getMenuInflater();

inflater.inflate(R.menu. menu, menu);

return true;

}

//Untuk mengeksekusi jika pilihan menu dipilih

@Override

public boolean onOptionsItemSelected(MenuItem item){

super.onOptionsItemSelected(item);

switch (item.getItemId()) {

case R.id.jadwal_menu :

startActivity( new Intent( this,

KuplukMain. class));

return true;

case R.id.kiblat_menu :startActivity( new Intent( this, Kiblat. class));

return true;

case R.id. pengaturan_menu :

startActivity( new Intent( this,

Pengaturan. class));

return true;

case R.id.tentang_menu :

startActivity( new Intent( this, Tentang. class));

return true;

}

return false;

}}

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 100/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 85

4.3.  Pengujian

Pengujian dilakukan dalam dua tahap utama, yaitu pengujian white box dan 

black box. Pengujian white box dilakukan dengan menguji atribut dan method

yang ada pada kelas-kelas yang dibangun. Pengujian ini dilakukan pada proses

pengembangan.

Pengujian black box dilakukan dengan cara  Acceptance Testing yaitu untuk 

menguji apakah sistem yang dikembangkan sesuai dengan apa yang tertuang

dalam spesifikasi fungsional sistem. Berikut ini disajikan hasil implementasi

sistem:

Gambar 4.1 Antar muka J adwal Shalat

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 101/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 86

Gambar 4.2 Antar muka Menu Utama 

Gambar 4.3 Antarmuka Arah Kiblat

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 102/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 87

Gambar 4.4 Antarmuka Pengaturan

Gambar 4.5 Antar muka Pengaturan Menu Utama

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 103/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 88

Gambar 4.6 Antar muka Pengaturan Mazhab

Gambar 4.7 Antar muka Pengaturan Pengingat Waktu Shalat

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 104/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 89

Gambar 4.8 Antarmuka Pengaturan Mode Pengingat 

Gambar 4.9 Antarmuka Notifikasi Peringatan

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 105/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 90

Gambar 4.10 Antarmuka Tentang

Gambar 4.11 Antarmuka Tentang (2)

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 106/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 91

4.3.1.  Pengujian Black Box Fitur Jadwal Shalat

Pengujian ini dilakukan untuk memeriksa keabasahan waktu shalat yang

ditampilkan apakah sesuai dengan waktu sebenarnya dengan membandingkan

pada sumber yang terpercaya. Pada pengujian ini membandingkan jadwal shalat

pada Kupluk dengan jadwal shalat yang terdapat pada situs PKPU (Pos Keadilan

Peduli Umat) [15], dan Situs Rukyatul Hilal Indonesia [17] dengan lokasi

Tangerang, pada tanggal 16 Febr uar i 2010.

Gambar 4.12 Jadwal Shalat Kupluk (16/02/2010)

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 107/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 92

Gambar 4.13 Jadwal Shalat PKPU (16/02/2010)

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 108/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 93

Gambar 4.14 Jadwal Shalat RHI Bulan Februar i

Berdasarkan hasil pengujian di atas, didapatkan bahwa waktu shalat yang

ditampilkan pada Kupluk sangat mendekati jadwal shalat pada situs PKPU dan

hanya memiliki perbedaan dalam detik. Sementara pada jadwal shalat yang

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 109/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 94

tedapat pada situs RHI, jadwal shalat yang ditampilkan memiliki perbedaan waktu

beberapa menit. Perbedaan ini mungkin disebabkan dalam penentuan nilai

variabel koordinat Lintang, Bujur, dan Ketinggian lokasi suatu wilayah yang

berbeda.

4.3.2.  Pengujian Black Box Arah Kiblat

Pengujian ini dilakukan untuk memeriksa apakah sudut arah kiblat sesuai

dengan derajat arah kiblat dan dapat ditampilkan secara real position berubah-

ubah jika posisi perangkat berubah. Pada pengujian sudut Arah Kiblat dilakukan

dengan membandingkan nilai sudut yang ditampilkan oleh aplikasi Kupluk 

dengan nilai Arah Kiblat pada situs Rukyatul Hilal Indonesia [18] di kota

Tangerang.

Gambar 4.15 Arah Kiblat Kupluk 

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 110/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 95

Gambar 4.16 Arah Kiblat RHI

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 111/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 96

Gambar 4.17 Pera ngkat diputar 90o 

Gambar 4.18 Perangkat diputar 180o 

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 112/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 97

Gambar 4.19 Perangkat diputar 270 o 

Gambar 4.20 Perangkat diputar 360o 

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 113/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 98

Berdasarkan hasil pengujian yang ditampilkan pada gambar di atas. Sudut

arah kiblat yang tampil pada aplikasi Kupluk dan situs RHI memiliki kesamaan

nilai, dimana aplikasi Kupluk sebesar 295,19574 derajat dan situs RHI sebesar

295,19. Sehingga dapat disimpulkan nilai sudut arah kiblat aplikasi Kupluk 

menampilkan nilai yang lebih akurat karena berdasarkan lokasi yang sebenarnya

yang diterima dari GPS. Dalam pengujian penunjuk arah kiblat secara real

 position yang tampak pada gambar, yaitu dengan memutar perangkat sebesar 90o,

180 o, 270 o, dan 360 o ,busur panah tetap menunjukkan lokasi kiblat tanpa

terpengaruh perputaran perangkat.

4.4.  Distribusi

Dalam memudahkan pengembang dan pengguna perangkat Android, Google

menyediakan toko software online bagi aplikasi-aplikasi Android yang diberi

nama Android Market. Dengan adanya aplikasi Android Market yang di instal

pada perangkat Android memungkinkan pengguna mencari dan men-download  

aplikasi yang telah dikembangkan oleh Pengembang aplikasi Android.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 114/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 99

Gambar 4.21 Android Market

Hasil akhir dari aplikasi ini adalah file paket instalasi Android yaitu

Kupluk.apk. File ini dapat di distribusikan melalui layanan Android Market,

sehingga setiap pengguna Android dapat meng-instal langsung melalui market.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 115/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 100

BAB 5  Kesimpulan dan Saran

Pada bab ini akan dijelaskan kesimpulan dan saran dari uraian-uraian pada

bab-bab sebelumnya.

5.1.  Kesimpulan

Dari hasil pengembangan aplikasi pengingat shalat menggunakan global

 positioning (GPS) berbasiskan Android dapat diambil beberapa kesimpulan, yaitu:

1.  Aplikasi Pengingat Shalat dan Arah Kiblat (Kupluk) dapat dijadikan

alternatif acuan bagi umat muslim yang menggunakan perangkat Android

agar lebih mudah dalam melaksanakan ibadah shalat.

2.  Pemanfaatan Teknologi juga dapat di terapkan dalam pelaksanaan ibadah

Shalat.

3.  Pengembangan aplikasi pada Sistem Operasi Android harus senantiasa

memperhatikan siklus hidup aplikasi tersebut, walaupun diatur oleh virtual

machine sebagai proses foreground dan background. 

4.  Memanfaatkan tools yang tepat menjadikan pengembangan aplikasi

Android menjadi lebih mudah serta Aplikasi yang dikembangkan lebih

tangguh.

5.  Perangkat bersistem Android saat ini relatif sedikit dan mahal sehingga

menjadikan Android belum terlalu diminati, khususnya di Indonesia.

Diharapkan dengan adanya aplikasi ini dapat memicu penggunaan

perangkat berbasiskan sistem operasi Android.

 

BAB V

KESIMPULAN DAN SARAN

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 116/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 101

5.2.  Saran

Saran yang dapat diberikan Penulis atas penelitian ini adalah sebagai

berikut:

1.  Penggunaan fitur arah kiblat hendaknya digunakan tidak berdekatan

dengan benda yang memiliki medan magnetik.

2.  Penambahan fitur pada aplikasi sangat disarankan, seperti tampilan widget  

untuk memudahkan pengguna melihat jadwal shalat tanpa harus membuka

program.

3.  Hingga saat ini Android terus mengalami perkembangan, hal ini di

imbangi dengan peningkatan kemampuan pada perangkat Android. Maka

diharapkan aplikasi ini dapat di-upgrade mengikuti versi selanjutnya,

sehingga dapat berjalan pada sistem operasi di atas 1.6.

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 117/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

[email protected] 102

DAFTAR PUSTAKA

Buku Teks:

[1] Dra. Neni Nuraeni M.Ag, 2008, Tuntunan Shalat Lengkap dan Benar, 

Mutiara Media.

[2] Ed Burnette, 2009, Hello Android 2nd Edition, Pragmatic Bookshelf.

[3] Mark L. Murphy, 2009, Beginning Android , Apress Inc.

[4] Retto Meier, 2009, Professional Android Application Development, Wiley

Publising Inc.

[5] Sayed Y. Hashimi and Satya Komatineni, 2009, Pro Android, Apress Inc. 

Karya Ilmiah:

[6] M. Arif Khairiansyah, 2006, Tugas Akhir Aplikasi Pengingat Sholat 

  Berbasis Windows Mobile, Teknik Informatika Institut Teknologi

Indonesia.

Situs Web:

[7] Android Developers, Android Documentation, Download 19 November

2009, http://developer.Android.com/guide/topics/data/data-storage.html

[8] Dr. Rinto Anugraha, Cara Menghitung Waktu Shalat , Download 21

Oktober 2009, http://www.eramuslim.com/syariah/ilmu-hisab/cara-

menghitung-waktu-shalat.htm

5/8/2018 Muhammad Amiral - Tugas Akhir - slidepdf.com

http://slidepdf.com/reader/full/muhammad-amiral-tugas-akhir 118/118

 

Laporan Tugas AkhirMuhammad Amiral

Institut Teknologi Indonesia

4 i l@ il 103

[9] Dr. Rinto Anugraha, Segitiga Bola dan Arah Kiblat , Download 21

Oktober 2009, http://www.eramuslim.com/syariah/ilmu-hisab/segitiga-

bola-dan-arah-kiblat.htm

[10] Dr. Rinto Anugraha, Waktu-Waktu Shalat , Download 21 Oktober 2009,

http://www.eramuslim.com/syariah/ilmu-hisab/waktu-waktu-shalat.htm

[11] Google IO, Android Anatomy and Physiology, Download 26 Oktober

2009, http://sites.google.com/site/io/anatomy--physiology-of-an-Android

[12] Islamic Finder, Prayer Calculation Methods, Download 4 Januari 2010,

http://www.islamicfinder.org/HelpPrayCal.html

[13] Mutoha Arkanuddin,  Menentukan Waktu Shalat , Download 15 Desember

2009, http://rukyatulhilal.org/waktu-shalat/index.html

[14] Nicolas Gramlich,   Andbook : Android Programming, Download 10

Oktober 2009, http://andbook.anddev.org/ 

[15] Pos Keadilan Peduli Umat,  Jadwal Shalat , Download 16 Februari 2010,

http://www.pkpu.or.id/adzan.lite.php?id=275

[16] Rukyatul Hilal Indonesia,   Menentukan Arah Kiblat, Download 28

Desember 2009, http://rukyatulhilal.org/arah-kiblat/index.html

[17] Rukyatul Hilal Indonesia,   Jadwal Shalat , Download 16 Februari 2010,

http://rukyatulhilal.org/jadwal-shalat/index.html

[18] Rukyatul Hilal Indonesia, Pencarian Arah Kiblat Presisi, Download 16

Februari 2010, http://rukyatulhilal.org/qiblalocator/index.html