• Tidak ada hasil yang ditemukan

BAB 7 FRAGMENT

D. Kode Fragmen

Sebelum Fragmen diperkenalkan, pengembang hanya dapat menampilkan hanya satu activitas di layar pada satu waktu tertentu. Pengguna tidak dapat membagi layar dan mengontrol bagian yang berbeda secara terpisah. Dengan bantuan Fragmen, pengembang dapat membagi layar di berbagai bagian dan mengontrol bagian-bagian yang berbeda secara terpisah.

Dengan menggunakan Fragmen, pengembang dapat membentuk beberapa Fragmen dalam satu activitas. Fragmen memiliki event, layout, dan status mereka sendiri. Semua hal tersebut memberikan fleksibilitas dan juga meniadakan limitasi dalam activitas tunggal di layar pada suatu waktu. Kode Fragmen dasar dalam XML ditampilkan dalam Gambar 7.3.

Gambar 7.3 Kode Fragment dalam XML E. Cara membuat Kelas Fragmen di Android Studio

Langkah pertama adalah extend kelas Fragmen, lalu override method status utama, lalu memasukkan logic kode aplikasi, mirip

94 PEMROGRAMAN APLIKASI MOBILE

dengan cara menggunakan kelas activity. Saat membuat Fragment callback onCreateView () harus digunakan dalam menentukan layout dan menjalankan Fragment.

Gambar 7.4 Logic Kode Fragmen

Parameter "inflater" adalah "LayoutInflater" yang digunakan untuk melakukan "inflate layout". Parameter "container" adalah parent ViewGroup (dari layout activity) tempat susunan Fragmen yang akan disisipkan.

Parameter "savedInstanceState" adalah "Bundle" yang menyediakan data tentang "instance" sebelumnya dari Fragmen.

Method inflate() memiliki tiga argumen, pertama adalah "resource layout" yang ingin kita inflate, kedua adalah "ViewGroup" sebgai parent dari layout yang dilakukan inflate. Parameter ketiga adalah nilai boolean yang mengindikasikan apakah layout yang dilakukan inflate haruskah di attach ke ViewGroup (parameter kedua).

F. Implementasi Fragmen di Android Studio

Langkah-langkan dalam mengimplementasikan Fragmen di Android Studio diantaranya:

(1) Membuat Proyek baru, silahkan memberi nama dengan FragmenNamaKalian

PEMROGRAMAN APLIKASI MOBILE 95 (2) Membuka res>layout>activity_main atau main.xml dan

silahkan modifikasi kode didalamnya seperti dalam Gambar 7.5 berikut:

Gambar 7.5 Langkah-Langkah membuat Fragmen Part 1

4. Membuka MainActivity.java, dalam Langkah ini silahkan buka MainActivity dan tambahkan kode untuk inisiasi tombol. Setelah itu buat event "setOnClickListener" di kedua Button. Pada klik Tombol Pertama kita replace "First Fragment " dan saat klik Tombol Kedua kita akan replace

"Second Fragment" dengan layout (FrameLayout). Untuk mengganti Fragment dengan FrameLayout pertama-tama kita buat Fragment Manager dan kemudian mulai transaksi menggunakan Fragment Transaction dan akhirnya replace Fragment dengan layout yaitu FrameLayout. Proses ini ditampilkan dalam gambar 7.6 berikut:

96 PEMROGRAMAN APLIKASI MOBILE

Gambar 7.6 Langkah-Langkah membuat Fragmen Part 1

5. Membuat dua fragmen dengan lahkah-langkah: klik kanan pada folder package dan buat class kemudian beri nama class pertama sebagai "FirstFragment" dan beri nama class kedua sebagai "SecondFragment" dan tambahkan kode berikut di masing-masing clas fragment. Gambar 95 adalah kode pada FirstFragment.class dan Gambar 96 adalah kode pada SecondFragment.class. Proses yang terdapat di Gambar 7.7 yaitu: pertama kita inflate layout dan mendapatkan referensi terhadap Button object.

Setelah itu lakukan event setOnClickListener di Button sehingga setiap kali pengguna mengklik tombol. Pesan

"First Fragment" ditampilkan di layar dengan menggunakan Toast.

PEMROGRAMAN APLIKASI MOBILE 97 Gambar 7.7 Kode FirstFragment.class

Gambar 7.8 Kode SecondFragment.class

6. Membuat dua xml layout. Masing-masing diberi nama sebagai fragment_first dan fragment_second.

Tambahkan kode berikut di file masing-masing. Proses menambahan kode titampilkan dalam Gambar 7.9 untuk fragment_first.xml dan Gambar 7.10 untuk fragment_second.xml

98 PEMROGRAMAN APLIKASI MOBILE

Gambar 7.9 Kode Fragment_First.xml

Gambar 7.10 Kode fragment_second.xml

7. Membuka res > value > colors.xml. Proses dalam tahap ini adalah mendefinisikan warna yang akan digunakan dalam file xml. Seperti yang ditampilkan dalam Gambar 7.11

PEMROGRAMAN APLIKASI MOBILE 99 Gambar 7.11 Kode Colors.xml

8. Membuka AndroidManifest.xml. Dalam langkah ini, pengembang membuka buka file Android Manifest yang sebenarnya tidak perlu dilakukan pengeditan sama sekali karena aplikasi ini hanya berisi satu Activity yaitu MainActivity, yang sudah didefinisikan didalamnya. Dalam contoh proyek ini, memang membuat dua fragment tetapi kedua fragment tersebut tidak perlu didefinisikan dalam manifest karena fragment adalah bagian dari activity.

Jalankan aplikasikasi dan contoh dari kegiatan ini ditampilkan dalam Gambar 7.12 dan 7.13.

Gambar 7.12 Hasil Uji Coba Fragmen Di Android Part 1

100 PEMROGRAMAN APLIKASI MOBILE

Gambar 7.13 Hasil Uji Coba Fragmen Di Android Part 2

PEMROGRAMAN APLIKASI MOBILE 101 BAB 8

AKSES GOOGLE MAPS, GPS

A. Persiapan Instalasi

Bab ini akan menampilkan Google Maps dengan menunjuk pada koordinat yang telah kita tentukan. Namun sebelum menampilkan Maps, ada beberapa tahapan yang harus dilakukan, yaitu:

Instalasi Google Play Service dan mendaftar pada Google Maps API untuk mendapatkan API Key.

Silahkan download project yang telah disediakan pada link berikut Ekstrak dan buka proyek Android tersebut, pastikan bahwa Google Play services telah terinstall pada Android Studio dengan cara buka: Tools > SDK Manager,

maka akan muncul kotak dialog seperti pada gambar di bawah ini.

Pilih tab SDK Tools dan ceklis pada Google Play Services, jika statusnya Not Installed, klik Apply pada bagian bawah untuk memulai proses instalasi. Proses dari langkah ini ditampilkan dalam Gambar 8.1.

Gambar 8.1 Instalasi Google Play Service

102 PEMROGRAMAN APLIKASI MOBILE B. Membuat API Key

API key diperlukan untuk mengakses server Google Maps. Key ini bersifat gratis dan dapat digunakan dengan aplikasi apa pun.

Tahapan untuk membuat API Key adalah sebagai berikut:

1. Kunjungi link berikut: [Google developer console]

(https://console.developers.google.com/), kemudian login menggunakan email gmail yang telah dimiliki. Satu akun gmail hanya bisa mendapatkan satu API key.

2. Membuat project baru dengan cara klik Create pada bagian dashboard, atau melalui dropdown Select a Project. Proses ini ditampilkan dalam Gambar 8.2 dan Gambar 8.3 Pada halaman New Project, isikan nama project dan lokasi, kemudian klik tombol Create.

Gambar 8.2 Membuat Project Baru di Google API Part 1

Gambar 8.3 Membuat Project Baru di Google API Part 2

3. Klik link ENABLE APIS AND SERVICES pada dashboard, dan pilih Maps SDK for Android. Proses ini ditampilkan dalam Gambar 8.4.

4. Klik tombol ENABLE . Setelah itu pilih tab Credentials, proses ini ditampilkan dalam Gambar 8.5.

PEMROGRAMAN APLIKASI MOBILE 103 Gambar 8.4 Membuat Project Baru di Google API Part 3

Gambar 8.5 Membuat Project Baru di Google API Part 4

5. Klik Create Credentials pada dropdown, dan pilih api key untuk membuat key. Proses ini ditampilkan dalam Gambar 8.6. Maka akan muncul popup bahwa API key telah berhasil dibuat.

6. Pada bagian Restrict and rename API key, pilih Android apps, dan selanjutnya simpan perubahan. Proses ini ditampilkan dalam Gambar 8.7.

7. Setelah menyimpan pengaturan, copy API Key untuk digunakan di tahap selanjutnya. Proses ini ditampilkan dalam Gambar 8.8.

104 PEMROGRAMAN APLIKASI MOBILE

Gambar 8.6 Membuat Project Baru di Google API Part 5 Gambar 65:

Gambar 8.7 Membuat Project Baru di Google API Part 6 Gambar 66:

Gambar 8.8 Membuat Project Baru di Google API Part 7

PEMROGRAMAN APLIKASI MOBILE 105 C. Menambahkan Kunci API ke Aplikasi

Pengguna tidak dipebolehkan memasukkan kunci API ke dalam sistem kontrol versi, jadi disarankan untuk menyimpan kunci tersebut dalam file local.properties, file ini terletak di direktori utama project. Informasi selengkapnya tentang file local.properties, dapat dipelajari dalam link File properti Gradle. Teknik Gradle berikut menunjukkan cara menyimpan kunci API dalam file local.properties agar dapat direferensikan dengan aman oleh aplikasi pengguna.

Langkah-langkah untuk menambahkan kunci API adalah :

1. Buka local.properties di direktori tingkat project, lalu

tambahkan kode berikut ke file.

Ganti YOUR_API_KEY dengan kunci API. Ditampilkan dalam Gambar 8.9.

Gambar 8.9 Menambahkan Kunci API ke Aplikasi Part 1

2. Pada file build.gradle di tingkat aplikasi, tambahkan kode ini dalam elemen defaultConfig. Hal ini memungkinkan Android Studio membaca kunci Maps API dari file local.properties pada waktu build, lalu memasukkan variabel build mapsApiKey ke manifes Android. Proses ini ditampilkan dalam Gambar 8.10.

Gambar 8.10 Menambahkan Kunci API ke Aplikasi Part 2

106 PEMROGRAMAN APLIKASI MOBILE

3. Dalam file AndroidManifest.xml, tambahkan potongan kode berikut sebagai turunan dari elemen application.

Proses ini ditampilkan dalam Gambar 8.11.

Gambar 8.11 Menambahkan Kunci API ke Aplikasi Part 3

4. Catatan: Membatasi Kunci API akan meningkatkan keamanan aplikasi dengan memastikan hanya permintaan sah yang dibuat dengan Kunci API. Sebaiknya ikuti petunjuk untuk menetapkan pembatasan pada Kunci API.

Untuk informasi selengkapnya, lihat disini, namun pada Latihan saat ini, belum wajib untuk diterapkan

D. Menampilkan Maps pada Android Studio

Proses ini memiliki beberapa Langkah, diantaranya adalah:

1. Silahkan Cek MapsMarkerActivity.Java: lengkapi apabila terdapat coding yang kurang. Penjelasan lebih lanjut dapat dilihat dalam Gambar 8.12 dan Gambar 8.13

Gambar 8.12 Menampilkan Maps pada Android Studio Part 1

2. Menambahkan Kunci API ke dalam aplikasi: Edit file gradle.properties project. Tempelkan kunci API ke nilai properti GOOGLE_MAPS_API_KEY. Saat membuat aplikasi, Gradle menyalin kunci API ke dalam manifes Android untuk aplikasi tersebut. Proses ini ditampilkan dalam Gambar 8.14.

PEMROGRAMAN APLIKASI MOBILE 107 Gambar 8.13 Menampilkan Maps pada Android Studio Part 2

Gambar 8.14 Menampilkan Maps pada Android Studio Part 3

3. Jika default program di atas dijalankan, maka akan muncul Google Maps dengan maker yang mengarah secara default ke Sydney, seperti pada Gambar 8.15 berikut:

Gambar 8.15 Menampilkan Maps pada Android Studio Part 4 4. Silahkan melakukan pengeditan kode tersebut sehingga

dapat menampilkan lokasi tertentu seperti gambar berikut:

Contoh dalam Gambar 8.16: alun2 Batu. Cara mendapatkan latitude dan longitude dapat membaca artikel berikut.

108 PEMROGRAMAN APLIKASI MOBILE

Gambar 8.16 Menampilkan Maps pada Android Studio Part 5 E. Memahami Kode

Bagian ini akan menjelaskan perihal yang paling signifikan dari sebuah aplikasi MapWithMarker untuk membantu memahami cara membuat aplikasi yang serupa.

1. Memeriksa manifes Android: Silahkan membuka file AndroidManifest.xml di Aplikasi, tambahkan elemen meta-data untuk meletekakkan versi layanan Google Play yang digunakan dalam mengkompilasi Aplikasi. Bagian ini dijelaskan dalam Gambar 8.17

Gambar 8.17 Menyematkan Kode di Meta-data Part 1 2. Menambahkan elemen meta-data yang merupakan kunci

API yang telah dibuat sebelumnya. Petakan nilai untuk kunci API ke dalam string google_maps_key saat membuat aplikasi, Gradle akan menyalin kunci API dari file gradle.properties project tang telah dibuat ke nilai string. Proses ini ditampilkan dalam Gambar 8.18

PEMROGRAMAN APLIKASI MOBILE 109 Gambar 8.18 Menambahkan Kode di Meta-data Part 2

3. Untuk melihat bagaimana kunci API dipetakan ke nilai string, silahkan perhatikan build.gradle aplikasi yang telah dibuat. File build.gradle ini berisi baris yang ditampilkan

dalam Gambar 8.19 yang memetakan

string google_maps_key ke dalam property gradle GOOGLE_MAPS_API_KEY.

Gambar 8.19 Pemetaan Kunci API ke Nilai String

4. Contoh Manifest Lengkap akan ditampilkan dalam Gambar 8.20 dan Gambar 8.21 Berikut:

Gambar 8.20 Kode Manifes Part 1

110 PEMROGRAMAN APLIKASI MOBILE

Gambar 8.21 Kode Manifes Part 2

PEMROGRAMAN APLIKASI MOBILE 111 BAB 9

AKSES INTERNAL DEVICE KAMERA

A. Pendahuluan

Kamera merupakan salah satu perangkat keras pada Android dan dapat diakses dalam pengembangan aplikasi mobile. Android menyediakan akses penuh ke perangkat keras kamera.

Kerangka kerja Android mencakup dukungan untuk berbagai kamera dan fitur kamera yang tersedia di perangkat, memungkinkan untuk mengambil gambar di aplikasi. Lembar kerja ini membahas tentang cara mengakses kamera dan mengambil gambar dari aplikasi kamera yang dibuat.

Catatan: buku ini menjelaskan kelas android.hardware.camera, yang sebenarnya sudah tidak digunakan lagi. Untuk kelas kamera yang lebih baru terdapat camera2 dan cameraX. Namun penggunaannya lebih sulit untuk dipelajari, oleh karena itu yang digunakan adalah kelas camera.

B. Persiapan

Sebelum mengaktifkan aplikasi untuk menggunakan kamera pada perangkat Android, perhatikan beberapa hal berikut :

1. Camera – Smartphone yang digunakan harus memiliki minimal 1 kamera yang dapat diakses.

2. Kelas Kamera yang digunakan,

android.hardware.camera sudah kuno dan sudah tidak disupport oleh android (deprecated) oleh karena itu, tampilan pada android studio dicoret namun tetap dapat digunakan.

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 :