• Tidak ada hasil yang ditemukan

BAB 9 AKSES INTERNAL DEVICE KAMERA

C. Mengembangkan aplikasi kamera

3. Izin untuk menggunakan kamera dan penyimpanan harus disetujui agar aplikasi dapat digunakan.

C. Mengembangkan aplikasi kamera

Langkah – Langkah umum untuk mengembangkan aplikasi kamera adalah sebagai berikut :

112 PEMROGRAMAN APLIKASI MOBILE 1. Memeriksa & Meminta Izin

2. Mendeteksi dan Mengakses Kamera - Buat kode untuk meminta akses dan memeriksa keberadaan kamera.

3. Membuat Class Preview - Buat class preview kamera yang memperluas SurfaceView dan mengimplementasikan antarmuka SurfaceHolder. Class ini mempreview gambar langsung dari kamera.

4. Membuat Tata Letak Preview - Setelah memiliki class preview kamera, buat tata letak tampilan yang menggabungkan preview dan kontrol antarmuka pengguna yang diiinginkan.

5. Menyiapkan listener untuk Pengambilan Foto - Hubungkan listener untuk kontrol antarmuka guna memulai pengambilan gambar atau video sebagai respons terhadap tindakan pengguna, seperti menekan tombol.

6. Mengambil dan Menyimpan File - Siapkan kode untuk mengambil gambar atau video dan menyimpan hasilnya.

7. Melepas Kamera - Setelah menggunakan kamera, aplikasi harus dirilis dengan benar untuk digunakan oleh aplikasi lain.

Hardware kamera adalah sumber daya bersama yang harus dikelola dengan hati-hati agar aplikasi tidak bertabrakan dengan aplikasi lain yang mungkin juga ingin menggunakannya. Bagian berikut membahas cara mendeteksi hardware kamera, cara meminta akses ke kamera, cara mengambil gambar atau video, dan cara melepas kamera setelah aplikasi selesai menggunakannya.

Perhatian: Ingatlah untuk melepas objek Camera dengan memanggil Camera.release() setelah aplikasi selesai menggunakannya! Jika aplikasi tidak merilis kamera dengan benar, semua upaya berikutnya untuk mengakses kamera, termasuk yang dilakukan oleh aplikasi itu sendiri, akan gagal dan dapat menyebabkan aplikasi atau lainnya error.

1. Buat New Project, Beri nama Camera_1, Gunakan minimum API 21 keatas (21+) agar dapat menggunakan semua fitur

PEMROGRAMAN APLIKASI MOBILE 113 Gambar 9.1 Konfigurasi Project Baru

2. Menambahkan Izin

Langkah pertama yang perlu dilakukan adalah menambahkan izin untuk penggunaan kamera, dan izin untuk melakukan penyimpanan gambar atau video ke dalam perangkat pada file AndroidManifest.xml

Gambar 9.2 Izin pada AndroidManifest.xml

Sehingga tampilan AndroidManifest.xml Menjadi seperti berikut

114 PEMROGRAMAN APLIKASI MOBILE

Gambar 9.3 Tampilan AndroidManifest.xml setelah ditambahkan izin

3. Memeriksa Izin

Agar mendapatkan izin untuk menggunakan kamera, pada saat aplikasi pertama kali di buka, perlu ditambahkan permintaan izin untuk penggunaan kamera dan pengaksesan storage (menyimpan file).

Tambahkan sebuah method boolean untuk meminta izin dengan nama cekIzinDitolak() pada file MainActivity.Java

Gambar 9.4 Pengecekan Izin dalam program

PEMROGRAMAN APLIKASI MOBILE 115 Method cekIzinDitolak() akan mengembalikan nilai berupa true jika izin belum di berikan, dan false jika sudah. dan PERMISSION adalah sebuah Variabel String Array yang berisi izin apa saja yang mau diminta.

Gambar 9.5 Kode Permissions untuk mengecek izin Dimana izin yang akan diminta yaitu untuk penggunaan camera dan penyimpanan.

Panggil callBack onResume, dan tambahkan code berikut untuk menggunakan method yang sudah di buat sebelumnya.

Gambar 9.6 Kode untuk method callback onResume Pada saat callback onResume() dipanggil, aplikasi akan melakukan pengecekan izin, dan jika izin belum diberikan, akan memanggil fungsi requestPermissions() yang akan meminta izin kepada pengguna. Dan REQUEST_CODE adalah variable int yang berisi code yang digunakan sebagai code untuk melakukan request.

4. Mengakses kamera

Untuk mengakses camera, langkah pertama yang perlu dilakukan yaitu mendapatkan objek Camera, Untuk itu fungsi Camera.open() perlu dipanggil. Dan untuk memudahkan penggunaan, buat sebuah method Camera dengan nama getCamera()

116 PEMROGRAMAN APLIKASI MOBILE

Gambar 9.7 Fungsi Untuk memanggil kamera pertama kali

Memanggil Camera.open() akan memunculkan error/exception jika kamera sudah digunakan oleh aplikasi lain, Oleh karena itu ditambahkan dalam blok try-catch dan akan menampilkan sebuah Toast jika kamera tidak dapat diakses.

Keterangan : Fungsi Camera.open() dapat diberi sebuah parameter untuk memilih kamera berupa integer jika kamera yang tersedia lebih dari satu.

Contoh : Camera.open(1); //untuk menggunakan kamera depan

Untuk memanggil fungsi getCamera() panggil fungsi getCamera pada callback OnResume dan masukan pada sebuah variabel Camera dengan nama mCamera

Gambar 9.8 Fungsi getCamera()

Variabel mCamera adalah sebuah variable Camera yang diisi dengan null untuk sementara.

PEMROGRAMAN APLIKASI MOBILE 117 Perlu diingat bahwa setiap pemanggilan variable Camera, yang digunakan(di import) adalah android.hardware.Camera

Gambar 9.9 Import library android.hardware.camera

5. Membuat Preview Kamera

Agar pengguna dapat mengambil gambar atau video secara efektif, mereka harus dapat melihat apa yang dilihat kamera perangkat. Class preview kamera adalah SurfaceView yang dapat menampilkan data gambar langsung yang berasal dari kamera, sehingga pengguna dapat membingkai dan mengambil gambar atau video.

6. Class Preview

Untuk mulai menampilkan preview, diperlukan class Preview.

Preview memerlukan implementasi

android.view.SurfaceHolder.Callback, yang digunakan untuk membuat dan menutup tampilan kamera.

Tambahkan Class Preview berikut pada mainActivity sebagai local Class.

118 PEMROGRAMAN APLIKASI MOBILE

Class yang dibuat akan dikenali sebagai error karena class yang mengimplementasikan SurfaceHolder.Callback wajib memiliki implementasi method surfaceCreated(), surfaceChanged(), dan surfaceDestroyed()

Untuk memengimplementasikan method tersebut, klik lampu merah pada bagian yang error / klik alt+enter

Gambar 9.10 Implement method (1)

Lalu pilih implement methods, pilih ketiga method lalu klik OK

Gambar 9.11 Implement method (2)

Maka ketiga method tersebut akan secara otomatis diimplementasikan

PEMROGRAMAN APLIKASI MOBILE 119 Gambar 9.12 Implement method (3)

Kemudian tambahkan lagi method constructor dengan menekan tombol lampu merah sekali lagi

Gambar 9.13 Create Constructor (1) Pilih Create constructor matching super

Gambar 9.14 Create Constructor (2)

Dan pilih pilihan pertama lalu klik tombol Ok, dan ubah method Constructor yang dibuat dengan menambahkan parameter Camera,

120 PEMROGRAMAN APLIKASI MOBILE

Dan isikan code berikut untuk menambahkan SurfaceHolder dan Kamera

Gambar 9.15 Menambahkan SurfaceHolder Camera

Dimana surfaceHolder digunakan untuk memanggil fungsi ketika preview di buat ,dirubah atau ditutup.

Lalu pada method surfaceCreated, tambahkan code berikut untuk mengatur tampilan camera.

Gambar 9.16 Method SurfaceCreated

Dimana Fungsi :

• setPreviewDisplay digunakan untuk menentukan tampilan preview

• startPreview untuk menampilkan tampilan preview Camera

• dan setDisplayOrientation digunakan untuk mengatur orientasi kamera

PEMROGRAMAN APLIKASI MOBILE 121 Fungsi diletakan pada blok try-catch agar ketika camera tidak dapat digunakan aplikasi akan menampilkan toast pemberitahuan.

Method surfaceChanged digunakan untuk mengatur jika preview camera yang diinginkan dapat berubah tampilan atau berubah orientasi nya (rotate). Untuk sekarang biarkan kosong.

Method surfaceDestroyed akan dipanggil ketika tampilan preview ditutup, dan diisi dengan camera.Release() atau menutup Camera agar dapat digunakan pada aplikasi lain.

Gambar 9.17 Method SurfaceDestroyed

Class Preview yang telah dibuat sebelumnya, harus diletakan dalam suatu komponen View yang nantinya digunakan sebagai tempat untuk mengatur tampilan kamera. Dan dalam contoh ini, komponen yang digunakan adalah FrameLayout, yang digunakan sebagai Container untuk kelas preview kamera.

Dan tambahkan sebuah Imagebutton yang nantinya digunakan untuk shutter camera.

122 PEMROGRAMAN APLIKASI MOBILE

Dimana android:src diisi dengan gambar camera yang perlu ditambahkan.

Gambar 9.18 Tampilan Awal FrameLayout untuk Camera

Lalu pada fungsi onResume, tambahkan class preview ke dalam komponen FrameLayout yang telah dibuat sebelumnya

PEMROGRAMAN APLIKASI MOBILE 123 Dimana preview adalah variable objek dari local class preview yang telah dibuat sebelumnya.

Dan frameLayoutPreview adalah komponen frameLayout

Sehingga method onResume menjadi seperti berikut

Gambar 9.19 Method OnResume

Coba Jalankan dan lihat apakah camera telah dapat digunakan.

7. Mengambil Foto

Setelah membuat class preview dan tata letak tampilan untuk menampilkannya, Aplikasi siap digunakan untuk mengambil gambar. Untuk mengambil gambar, gunakan metode Camera.takePicture(), metode ini mengambil tiga parameter ayng menerima data dari kamera. Untuk menerima data dalam format JPEG, harus diimplementasikan antarmuka Camera.PictureCallback untuk menyimpan gambar yang diterima dari kamera.

Sebelum mengatur method PictureCallback, tambahkan sebuah method File getOutputMediaFile() yang berfungsi

124 PEMROGRAMAN APLIKASI MOBILE

untuk menentukan letak penyimpanan dan nama file yang akan dibuat. Output dari method ini adalah sebuah file image yang masih kosong.

Gambar 9.20 Fungsi getOutputMediaFile

Tambahkan code berikut pada fungsi onResume untuk memanggil method PictureCallback()

Dimana mPicture merumapan variable dari objek Camera.PictureCallback

Gambar 9.21 Fungsi onPictureTaken

PEMROGRAMAN APLIKASI MOBILE 125 Lalu tambahkan method setOnClickListener untuk menghandle button click dan memanggil method takePicture()

Gambar 9.22 Fungsi Handle saat button shutter di click

Ketika button di click, aplikasi akan mengambil gambar ( takePicture() ) dan layar preview akan menampilkan gambar yang diambil dan tidak menampilkan preview kamera. Untuk menampilkan ulang tampilan preview camera, harus menampikan ulang preview dari camera dengan memanggil camera.startPreview()

Oleh karena itu switch case digunakan, aplikasi akan menampilkan ulang preview camera Ketika previewState bernilai BUSY, dan akan mengambil gambar Ketika previewState bernilai PREVIEW.

Dimana nilai default dari previewState adalah “PREVIEW”.

Coba jalankan, dan click tombol untuk mengambil gambar.

Amati hasilnya

Untuk fungsi-fungsi camera lainnya dapat dilihat pada link berikut :

126 PEMROGRAMAN APLIKASI MOBILE

https://developer.android.com/training/camera

https://developer.android.com/training/camera/cam eradirect

https://developer.android.com/guide/topics/media/c amera

Tugas

• Mengerjakan Latihan diatas untuk menggunakan kamera pada perangkat smartphone / emulator

• Ubah program diatas untuk kamera depan / kamera lainnya.

PEMROGRAMAN APLIKASI MOBILE 127 BAB 10

MENGGUNAKAN SENSOR ANDROID - ACCELERATOR

A. Pendahuluan

Sebagian besar perangkat Android memiliki sensor bawaan yang dapat digunakan untuk mengukur dan mendeteksi gerakan, orientasi, dan berbagai kondisi lingkungan lainnya. Sensor ini dapat memberikan data dengan akurasi dan presisi tinggi dan dapat digunakan untuk memantau posisi atau pergerakan perangkat serta memantau perubahan kondisi di lingkungan sekitar perangkat.

Misalnya, jika membuat aplikasi game, maka memerlukan sensor untuk mendeteksi gerakan dan gestur dari perangkat. Seperti tilt, wobble, rotasi, swing, atau game yang menggunakan Virtual Reality.

Demikian juga, jika perangkat mendukung sensor suhu, maka dapat menggunakan sensor untuk mengetahui suhu dan kelembaban perangkat.

B. Tipe Sensor

Secara garis besar, android mendukung 3 jenis tipe sensor, yaitu:

1. Sensor Gerak ( Motion Sensor)

Sensor dalam kategori ini mengukur akselerasi, akselerasi, dan gaya rotasi perangkat berdasarkan sumbu x,y,z. Contoh:

Accelerometer, sensor gravitasi, giroskop, dan sensor vektor rotasi.

2. Sensor Kondisi Lingkungan ( Environment Sensor) Sensor dalam kategori ini mengukur parameter kondisi lingkungan, seperti tekanan udara, suhu, pencahayaan, dan kelembapan lingkungan di sekitar perangkat. Contoh:

barometer, fotometer, dan termometer.

3. Sensor Posisi (Position Sensor)

Sensor ini mengukur posisi fisik perangkat yang digunakan.

Contoh perangkat ini adalah Orientasi dan magnetometer.

C. Pengenalan Sensor

Kerangka kerja sensor Android memungkinkan untuk mengakses berbagai jenis sensor. Beberapa sensor ini berbasis perangkat keras dan beberapa berbasis perangkat lunak. Sensor berbasis

128 PEMROGRAMAN APLIKASI MOBILE

perangkat keras adalah komponen fisik yang dibangun ke dalam perangkat handset atau tablet. Sensor mengambil data dengan langsung mengukur sifat lingkungan tertentu, seperti percepatan, kekuatan medan geomagnetik, atau perubahan sudut. Sensor berbasis perangkat lunak bukanlah perangkat fisik, meskipun mereka meniru sensor berbasis perangkat keras. Sensor berbasis perangkat lunak mengambil data dari satu atau lebih sensor berbasis perangkat keras dan terkadang disebut sensor virtual atau sintetis. Sensor percepatan linier dan sensor gravitasi adalah contoh sensor berbasis perangkat lunak. Tabel 1 merangkum sensor yang didukung oleh platform Android.

Beberapa perangkat Android memiliki semua jenis sensor.

Misalnya, sebagian besar handset dan tablet memiliki akselerometer dan magnetometer, tetapi hanya sedikit perangkat yang memiliki barometer atau termometer. Selain itu, perangkat dapat memiliki lebih dari satu sensor dari jenis tertentu. Misalnya, perangkat mungkin memiliki dua sensor gravitasi, masing-masing dengan jangkauan yang berbeda

Tabel 9.1 Contoh jenis-jenis Sensor

Sensor Jenis Deskripsi Penggunaan Umum

TYPE_ACCELERO METER

Hardware Mengukur gaya

akselerasi dalam

Hardware Mengukur suhu

ruangan sekitar dalam derajat Celcius (°C).

Lihat catatan di bawah.

Memantau suhu udara.

TYPE_GRAVITY Software atau Hardware

PEMROGRAMAN APLIKASI MOBILE 129

y, z).

TYPE_GYROSCOP E

Hardware Mengukur tingkat rotasi perangkat dalam rad/s di sekitar setiap

TYPE_LIGHT Hardware Mengukur level cahaya sekitar (pencahayaan)

Hardware Mengukur medan geomagnetik sekitar

Software Mengukur derajat rotasi yang dibuat perangkat di sekitar ketiga sumbu fisik (x, y, z). Pada API level 3,

Anda dapat

memperoleh matriks kemiringan dan matriks rotasi untuk perangkat menggunakan sensor gravitasi dan sensor medan geomagnetik

TYPE_PRESSURE Hardware Mengukur tekanan Memantau

130 PEMROGRAMAN APLIKASI MOBILE

udara sekitar dalam hPa atau mbar.

perubahan tekanan udara.

TYPE_PROXIMITY Hardware Mengukur kedekatan objek dalam cm sesuai dengan layar tampilan perangkat. Sensor ini biasanya digunakan untuk menentukan apakah suatu handset berada di telinga

Hardware Mengukur kelembapan udara relatif dalam elemen vektor rotasi perangkat.

Deteksi gerakan dan deteksi rotasi.

TYPE_TEMPERAT URE

Hardware Mengukur suhu

perangkat dalam derajat Celcius (°C).

Penerapan sensor ini bervariasi antar perangkat

Memantau suhu.

D. Framework Sensor

Akses sensor sensor diatas dan untuk mendapatkan data mentah hasil pengukuran diperlukan menggunakan Android sensor framework. Framework sensor ini adalah bagian dari android.hardware dan memiliki beberapa class dan tampilan antarmuka seperti berikut

1. SensorManager

Class ini digunakan untuk membuat instance layanan sensor.

Class ini menyediakan berbagai metode untuk mengakses dan mendaftar sensor, mendaftarkan dan membatalkan

PEMROGRAMAN APLIKASI MOBILE 131 pendaftaran pendengar peristiwa sensor, dan mendapatkan informasi orientasi. Class ini juga menyediakan beberapa konstanta sensor yang digunakan untuk melaporkan akurasi sensor, mengatur kecepatan akuisisi data, dan mengkalibrasi sensor.

2. Sensor

Class ini digunakan untuk membuat dan memanggil instansi dari suatu sensor. Class ini menyediakan berbagai metode yang dapat digunakan untuk menggunakan berbagai kemampuan sensor

3. SensorEvent

Sistem menggunakan class ini untuk membuat objek yang akan di panggil ketika terjadi sebuah event/peristiwa, yang akan menyediakan informasi tentang event tersebut sensor.

Objek tersebut terdiri dari data pengukuran sensor, tipe sensor yang digunakan, tingkat akurasi data, dan waktu terjadinya event tersebut.

4. SensorEventListener

Method ini dapat digunakan interface ini untuk memanggil 2 method call back untuk menerima notifikasi dan data, ketika data yang diambil berubah atau ketika akurasi sensor berubah.

void onAccuracyChanged(Sensor sensor, int accuracy) Akan dipanggil ketika akurasi berubah

void onSensorChanged(SensorEvent event)

Akan dipanggil ketika data hasil pengukuran sensor berubah

Dalam sebuah aplikasi standar, hanya perlu menggunakan API untuk menggunakan sensor ini hanya dalam 2 pekerjaan dasar :

1. Mengidentifikasi sensor dan kemampuan sensor Mengidentifikasi sensor dan kemampuan sensor pada saat runtime sangat berguna jika aplikasi yang dibuat tergantung pada suatu sensor tertentu. Sebagai contoh, diperlukan mengidentifikasi semua sensor yang dimiliki sebuah perangkat dan mematikan semua aplikasi yang menggunakan sensor tersebut, atau untuk menggunakan kemampuan sensor tersebut agar menjadi optimal.

132 PEMROGRAMAN APLIKASI MOBILE 2. Memantau Aktifitas sensor

Memantau aktifitas sensor adalah cara untuk mendapatkan data mentah dari hasil pengukuran sensor.

Event dari sensor akan aktif setiap sensor mendeteksi perubahan pada parameter sensor yang sedang diukur.

Sensor akan memberikan 4 buah informasi dari hasil pengukuran, yaitu : nama dari sensor yang mengukur, waktu, akurasi, dan data mentah hasil pengukuran.

E. Menggunakan Sensor

1. Buat New Project, Beri nama Sensor_1, Gunakan minimum API 21 keatas (21+) agar dapat menggunakan semua fitur

Gambar 10.1 Create New Project 2. Menambahkan Textview

Sebagai latihan, Untuk menampilkan hasil pengukuran dari sensor, gunakan sebuah multiline textview. Tambahkan sebuah textview dengan ukuran lebar.

PEMROGRAMAN APLIKASI MOBILE 133 Gambar 10.2 Tampilan Layout

3. Mengidentifikasi Jenis dan Kemampuan Sensor

Framework Sensor menyediakan beberapa method yang akan memudahkan untuk mengetahui sensor apa saja yang ada pada suatu perangkat. API sensor juga menyediakan method untuk mengetahui setiap kemampuan dari sensor yang ada, seperti range maksimum, resolusi, atau kebutuhan daya.

Untuk mengidentifikasi sensor, langkah pertama yang perlu dilakukan adalah membuat sebuah instansi SensorManager class dengan memanggil method getSystemService() dan melempar argument SENSOR_SERVICE, seperti berikut

134 PEMROGRAMAN APLIKASI MOBILE

Selanjutnya, tambahkan code berikut untuk mengambil data semua sensor yang ada dengan memanggil method getSensorList() dan menggunakan konstanta TYPE_ALL

Semua sensor yang terdapat pada perangkat android, akan disimpan pada variable List deviceSensors. Dan untuk menampilkannya, tambahkan perulangan seperti berikut :

Sehingga menjadi seperti berikut

Gambar 10.3 Tampilan Kode onCreate

PEMROGRAMAN APLIKASI MOBILE 135 Dan jika di run akan menjadi seperti berikut

Gambar 10.4 List Sensor

Jika ingin menampilkan sensor untuk jenis tertentu saja, dapat mengganti konstanta TYPE_ALL menjadi TYPE sensor

lainnya, seperti TYPE_GYROSCOPE,

TYPE_LINEAR_ACCELERATION dll, contoh :

136 PEMROGRAMAN APLIKASI MOBILE

Untuk mengecek apakah sensor jenis tertentu tersedia di perangkat android dengan menggunakan method getDefaultSensor() dan melemparkan attribut konstanta untuk sensor secara spesifik. Jika sebuah perangkat memiliki lebih 1 sensor pada type tersebut, yang akan dipakai adalah yang default. Dan jika sensor yang dimaksudkan tidak tersedia, method tersebut akan bernilai null / kosong. Sebagai contoh, kode berikut untuk mengecek apakah ada Accelerometer pada sebuah perangkat.

Aplikasi akan menampilkan sebuah toast dengan keterangan tersedia atau tidaknya sensor accelerometer.

Selain menampilkan list sensor yang ada di perangkat, dapat menggunakan metode umum class Sensor untuk menentukan kemampuan dan atribut masing-masing sensor. Hal ini berguna jika ingin aplikasi yang di buat berperilaku berbeda, tergantung sensor atau kemampuan sensor yang tersedia di perangkat. Sebagai contoh, dapat menggunakan metode getResolution() dan getMaximumRange() untuk mendapatkan resolusi sensor dan rentang pengukuran maksimum. juga dapat menggunakan metode getPower() untuk mendapatkan persyaratan daya sensor.

Ada beberapa method lain yang cukup berguna, seperti getVendor untuk menampilkan produsen sensor, getVersion untuk menampilkan versi sensor, dan getMinDelay() yang dapat digunakan untuk mengatur interval pengambilan data oleh sensor.

4. Memantau Event Sensor

Untuk memantau data sensor mentah, perlu menerapkan dua metode callback yang ditampilkan melalui antarmuka SensorEventListener: onAccuracyChanged() dan onSensorChanged(). Sistem Android memanggil metode ini setiap kali hal berikut terjadi:

PEMROGRAMAN APLIKASI MOBILE 137 3. Akurasi sensor berubah

Dalam hal ini, sistem akan memanggil metode onAccuracyChanged(), yang memberi referensi ke objek Sensor yang berubah dan akurasi sensor yang baru. Akurasi direpresentasikan oleh salah satu dari empat konstanta status: SENSOR_STATUS_ACCURACY_LOW,

SENSOR_STATUS_ACCURACY_MEDIUM,

SENSOR_STATUS_ACCURACY_HIGH, atau SENSOR_STATUS_UNRELIABLE.

4. Sensor mendeteksi nilai baru

Dalam hal ini, sistem akan memanggil metode onSensorChanged(), yang menyediakan objek SensorEvent.

Objek SensorEvent berisi informasi tentang data sensor baru, termasuk: akurasi data, sensor yang menghasilkan data, stempel waktu untuk data yang dihasilkan, dan data baru yang direkam sensor.

Untuk memantau event dari sensor perlu mengubah class activity menjadi extends Activity dan implements SensorEventListener{}

Ubah public class menjadi seperti berikut

Lalu tambahkan method onAccuracyChanged dan onSensorChanged dengan cara mengklik lampu merah tanda error seperti berikut

Gambar 10.5 Menambahkan method onAccuracyChanged Pilih implement method

138 PEMROGRAMAN APLIKASI MOBILE

Gambar 10.6 Menambahkan method onAccuracyChanged Maka method onSensorChanged dan onAccuracyChanged akan terbuat secara otomatis pada bagian bawah activity.

PEMROGRAMAN APLIKASI MOBILE 139 Data dari sensor, akan dapat diambil/ditampilkan dengan memanggil method SensorEvent.values[ ].

Dimana parameter dari values akan menampilkan data mentah dari hasil pengukuran berdasarkan tabel yang dapat dilihat pada

https://developer.android.com/guide/topics/sensors/sensors_m otion.

5. Menggunakan Accelerometer

Untuk kali ini, akan digunakan Sensor Accelerometer, dimana : Tabel 9.2 Sensor Accelerometer

Sensor Data kejadian sensor Keterangan Unit ukuran

TYPE_ACCELEROMETER event.values[0] Gaya akselerasi di sepanjang sumbu x (termasuk

gravitasi).

m/s2

event.values[1] Gaya akselerasi di sepanjang sumbu y (termasuk

gravitasi).

event.values[2] Gaya akselerasi di sepanjang sumbu z (termasuk

gravitasi).

Dan untuk menggunakan nya, user perlu menambahkan code berikut (Jika belum ada) :

Lalu panggil method callback onResume dan onPause untuk memanggil method registerListener dan unregisterListener(),

140 PEMROGRAMAN APLIKASI MOBILE

dimana, setiap sensor yang digunakan, harus dipanggil dan di register pada saat onResume, dan di unregister pada saat onPause, ini dilakukan agar sensor tersebut dapat digunakan oleh aplikasi lain ketika aplikasi yang dibuat sudah tidak menggunakannya lagi.

Dan untuk menampilkan data hasil pengukuran, tambahkan code berikut pada method onSensorChanged

Coba jalankan dan tampilkan hasilnya.

Maka aplikasi akan menampilkan data mentah yang didapatkan dari accelerometer pada ketiga sumbu x,y,dan z.

Secara konseptual, Sensor accelerometer mengukur akselerasi yang di terapkan kepada perangkat (Ad) dengan mengukur gaya yang diterapkan kepada sensor tersebut (Fs) menggunakan rumus berikut :

Namun, karena manusia tinggal di bumi, akan ada gaya gravitasi yang selalu mempengaruhi nilai akselerasi, sehingga rumus menjadi seperti berikut

PEMROGRAMAN APLIKASI MOBILE 141 Karena alasan ini, saat perangkat berada di atas meja (dan tidak berakselerasi), akselerometer membaca kekuatan g = 9,81 m/s2. Demikian pula, saat perangkat jatuh bebas dan karenanya dengan cepat berakselerasi ke tanah pada 9,81 m/s2, akselerometernya membaca kekuatan g = 0 m/s2.

Jadi untuk mengukur nilai real/asli dari percepatan yang diterima oleh perangkat, kontribusi dari gaya gravitasi harus

Jadi untuk mengukur nilai real/asli dari percepatan yang diterima oleh perangkat, kontribusi dari gaya gravitasi harus