141 Gambar 10. Sistem Ms SQL Server PostgreSQL merupakan salah satu software database non relasional dengan reputasi tinggi. Gambar 11. Logo Postgre SQL Selain karena sifatnya yang open source, PostgreSQL juga menawarkan berbagai fitur unggulan. Salah satu fitur unggulannya adalah Table Partitioning. Dimana fitur mampu memecah tabel data berukuran besar menjadi beberapa baris lebih kecil. Aplikasi database Android tersebut dapat menjadi pilihan terbaik untuk pengelolaan dan pengolahan data digital Anda (Rahayu, 2023).
142 PostgreSQL adalah sebuah sistem basis data yang disebarluaskan secara bebas menurut perjanjian lisensi BSD. Peranti lunak ini merupakan salah satu basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle. PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data. Fitur-fitur yang disediakan PostgreSQL antara lain DB Mirror, PGPool, Slony, PGCluster dan lain-lain. PostgreSQL adalah sistem database yang kuat untuk urusan relasi, open source. Memiliki lebih dari 15 tahun pengembangan aktif dan sudah terbukti segala rancangan arsitekturnya telah mendapat reputasi tentang ‚kuat‛, ‚handal‛, ‚integritas data‛ dan ‚akurasi data‛ (MediaWiki, 2024b). Gambar 12. Database PostgreSQL Itulah diantaranya bagian pengelolaan data yang biasa digunakan dalam aplikasi android.
143 Alim Hardiansyah, ST., M.Kom.
144 SQLite adalah pustaka dalam proses yang mengimplementasikan mesin database SQL transaksional yang mandiri, tanpa server, dan tanpa konfigurasi. Kode SQLite berada dalam domain publik, jadi Anda bebas menggunakannya untuk tujuan komersial dan pribadi. SQLite adalah database yang paling banyak digunakan di dunia, digunakan oleh banyak aplikasi, termasuk beberapa proyek penting dan banyak digunakan oleh dunia industri. SQLite adalah mesin database SQL tertanam. Tidak seperti kebanyakan database SQL lainnya, SQLite tidak memiliki proses server terpisah. SQLite membaca dan menulis langsung ke file disk biasa. Database SQL lengkap dengan banyak tabel, indeks, pemicu, dan tampilan dalam satu file disk. Format file database adalah lintas platform. Anda dapat dengan bebas menyalin database antara sistem 32-bit dan 64-bit, atau antara arsitektur big-endian dan littleendian. Fitur-fitur ini menjadikan SQLite pilihan populer sebagai format file aplikasi. File database SQLite adalah format penyimpanan yang direkomendasikan oleh Library of Congress. Daripada menganggap SQLite sebagai alternatif dari Oracle, anggap saja sebagai alternatif dari fopen(). SQLite adalah perpustakaan kompak. Dengan semua fitur diaktifkan, ukuran perpustakaan mungkin kurang dari 750 KB, bergantung pada platform target dan pengaturan pengoptimalan kompiler. (Kode 64-bit lebih besar, dan beberapa optimasi compiler seperti fungsi agresif inlining dan loop unrolling dapat membuat kode objek menjadi lebih besar secara signifikan.) Penggunaan memori dan
145 kecepatan Ada trade-off di antara keduanya. SQLite biasanya berjalan lebih cepat dengan lebih banyak memori. Namun, kinerjanya biasanya sangat baik bahkan di lingkungan dengan memori rendah. Tergantung pada penggunaan Anda, SQLite bisa lebih cepat daripada I/O sistem file langsung. Tidak seperti kebanyakan produk RDBMS, SQLite tidak memiliki arsitektur klien/server. Kebanyakan sistem basis data yang besar memiliki paket server besar yang membentuk mesin basis data. Server database sering kali terdiri dari beberapa proses yang bekerja sama untuk mengelola koneksi klien, I/O file, caching, optimasi kueri, dan pemrosesan kueri. Sebuah instance database biasanya terdiri dari sejumlah file yang diorganisasikan ke dalam satu atau lebih pohon direktori dalam sistem file server. Semua file harus ada dan benar untuk mengakses database. Hal ini dapat mempersulit pemindahan atau pencadangan instance database secara andal. Untuk mengakses database, pustaka perangkat lunak klien biasanya disediakan oleh penyedia database. Perpustakaan ini harus diintegrasikan ke dalam aplikasi klien yang mengakses server database. Pustaka klien ini menyediakan API untuk menemukan dan menyambung ke server database , serta untuk mengonfigurasi dan menjalankan kueri dan perintah database. Gambar 1 menunjukkan bagaimana semuanya cocok dalam RDBMS klien/server pada umumnya. Sebaliknya, SQLite tidak memiliki server terpisah. Terlepas dari aplikasi
146 mana yang perlu mengakses database, seluruh mesin database terintegrasi ke dalamnya. Satu-satunya sumber daya yang dibagikan antar aplikasi adalah satu file database yang disimpan di disk. Jika Anda perlu memindahkan atau mereset database Anda, Anda cukup menyalin file tersebut. Gambar 1 menunjukkan infrastruktur SQLite. 1. Arsitektur database RDBMS Tradisional 2. Arsitektur SQLite
147 SQLite pada dasarnya adalah sistem manajemen basis data relasional (RDBMS) yang mirip dengan SQL. Ini adalah mandiri, tanpa server, sumber terbuka, tanpa konfigurasi, perpustakaan dalam proses, dan mesin database SQL transaksional. Konfigurasi nol di sini berarti tidak seperti sistem manajemen basis data lainnya, tidak perlu mengonfigurasinya di perangkat. Lite di SQLite mengacu pada pengaturan, manajemen database, dan semua sumber daya yang diperlukan. Berikut fitur SQLite : 1. Ini memiliki implementasi SQL berfitur lengkap dan berbagai fitur lanjutan seperti pengindeksan parsial, JSON, dan banyak lagi. 2. Sangat sederhana dengan API yang ramah pengguna. 3. Ini bisa sangat cepat dijalankan, bahkan lebih cepat daripada sistem file I/O langsung. 4. Independen karena tidak mempunyai ketergantungan eksternal. 5. Transaksi SQLite juga memiliki properti ACID seperti atomisitas, konsistensi, isolasi, dan daya tahan. 6. Lintas platform dengan dukungan untuk Android, iOS, Linux, Mac, Windows, VxWorks, dan Solaris. 7. Sangat mudah untuk port ke sistem lain. 8. Dilengkapi dengan klien antarmuka baris perintah mandiri. 9. Lintas platform Sepenuhnya tersimpan di platform. 10. Seluruhnya ditulis dalam ANSI-C. 11. Dapat dikonfigurasi dalam waktu kurang dari 400KB, membuatnya sangat ringan dan kecil.
148 12. Ketika dikonfigurasikan tanpa fitur opsional, ini mengkonsumsi kurang dari 250 KB. Berikut langkah langkah install SQLite pada berbagai sistem operasi atau platform. Untuk mendownload SQLite, Anda membuka halaman download situs resmi SQLite. 1. Pertama, buka situs web https://www.sqlite.org. 2. Kedua, buka halaman download https://www.sqlite.org/download.html 3. SQLite menyediakan berbagai alat untuk bekerja lintas platform misalnya Windows, Linux, dan Mac. Anda harus memilih versi yang sesuai untuk diunduh. Misalnya, untuk bekerja dengan SQLite di Windows, Anda mengunduh program shell baris perintah seperti yang ditunjukkan pada gambar di bawah Gambar 2. pilihan install pada sistem operasi windows Menjalankan SQLite sederhana dan mudah. Pertama, buat folder baru, misalnya C: \sqlite. Selanjutnya ekstrak isi file yang sudah anda download pada bagian sebelumnya ke
149 folder C:\sqlite. Anda akan melihat tiga program di folder C:\sqlite seperti gambar di bawah ini: Pertama buka c promp: Kedua navigasi : Keluarannya :
150 Perintah .help Ke empat keluar SQLite Contoh Android NotePad adalah integrasi SQLite dengan Android. Anda dapat mengunduhnya dari : https://android.googlesource.com/platform/developme nt/+/05523fb0b48280a5364908b00768ec71edb847a2/samples/ NotePad/src/com/example/android/notepad/NotePadProvid er.java
151
152
153
154
155
156
157
158
159
160
161
162
163 Munandar, ST., MT
164 igitalisasi dalam segala elemen yang berhubungan dengan keberlangsungan teknologi semakin berkembang baik dari segi produsen maupun pemakai teknologi tersebut untuk memudahkan segala keperluan. Produsen yang menciptakan serta mengembangkan sistem teknologi melihat akan kesesuaian dunia digital dengan keperluan yang harus disanggupi pemakai dalam menyelesaikan setiap project. Application Programming Interface (API) merupakan suatu perantara yang memungkinkan penggunaan aplikasi yang tersedia pada sistem operasi android saling berkomunikasi dengan aplikasi lain walaupun berbeda developer pembuatnya. Tersedianya sistem operasi android yang mampu menampung berbagai aplikasi dari developer yang berbedabeda mampu mengintegrasikan dengan sistem API. Sistem integrasi API terdiri dari integrasi dengan satu API dan integrasi dengan banyak API sehingga aplikasi dari developer berbedabeda dapat membantu pengguna dalam memakainya. Manfaat Aplication Programming Interface (API) dalam ruang lingkup yang luas adalah untuk memudahkan pengguna dan dapat menghemat biaya. Secara detail kegunaan API untuk setiap pembuatan aplikasi adalah adanya kemudahan dalam membuat aplikasi secara fungsional dan komplek, terciptanya suasana yang efesien dan efektiv untuk pengembangan aplikasi dan beban server yang low cost. Tahapan kerja yang ada pada API sendiri terdiri dari aplikasi yang sudah terinstall melakukan akses API kemudian API melakukan permohonan akses ke server selanjunya oleh server akan melakukan respon permohonan tersebut dan terakhir hasil data akan di input oleh API. D
165 Gambar 1. Cara kerja Aplication Programming Interface (API) Istilah API pada pemrograman komputer merupakan teknologi yang sudah banyak berkembang dan mengalami pembaruan yang terjadi mengikuti kebutuhan dalam sebuah aplikasi. API sendiri dapat menghubungkan komponen kode saat device user sedang berjalan pada sistem operasi, sehingga dukungan jaringan baik dapat membuka akses API publik bagi penggunaan umum. JSON API yang di dasari oleh web dapat berinteraksi secara terprogram dengan tujuan aplikasi yang digunakan ini menjadi perbedaan dengan API yang didasari oleh JAVA yang harus menginstall Java Development Kit (JDK) dengan begitu keduanya harus melakukan permintaan akses internet ke layanan hosting aplikasi. Berikut beberapa tambahan fitur yang perlu diketahui tentang integrasi dengan layanan web (API) pada aplikasi android. 1. Keamanan Pembahasan yang menarik dalam integrasi layanan web (API) pada sistem android adalah tentang keamanan, dimana sisi ini dianggap sangat penting untuk menlindungi data , privasi pengguna dan
166 mencegah akan terjadinya serangan (attacking). Pada sisi keamanan yang harus diperhatikan untuk keberlangsungan akses tetap stabil terdiri dari beberapa hal yaitu Hypertext Transfer Protocol Secure (HTTPS) didukung oleh Secure Sockets Layer (SSL) dimana HTTPS ini dapat melindungi koneksi jaringan dari clients ke server tidak terputus. Pada HTTPS data yang dikirim oleh clients ke server berupa informasi yang sensitif sehingga memungkinkan terjadinya pengintai memeriksa informasi apa yang dikirim selama terjadinya proses transmisi (enkripsi data). Tugas dari pengamanan sendiri dalam hal ini menyediakan lapisan keamanan pada saat akses menggunakan protokol HTTP antara clients dengan server sehingga dapat mencegah pihak ketiga dalam melihat dan mencuri data yang dikirim. Adopsi HTPPS ini menjadikan sebuah keutamaan dalam praktik sehingga memiliki standar yang dapat melindungi keamanan dan privasi data bagi pengguna layanan web pada aplikasi android yang terhubung ke sistem API. 2. Izin Internet Dalam pengembangan aplikasi Android, izin internet diperlukan untuk memberikan akses aplikasi ke jaringan internet. Izin ini diperlukan jika aplikasi yang di akses perlu berkomunikasi dengan server eksternal melalui HTTP atau HTTPS, mengambil data dari internet, atau melakukan operasi jaringan lainnya. Izin internet harus dideklarasikan di dalam file manifest Android. Berikut adalah contoh penggunaan
167 izin internet dalam file manifest Android: <usespermission android:name="android.permission.INTERNET" /> Pada dasarnya, izin ini memberikan aplikasi yang sedang di akses memperoleh hak akses untuk menggunakan koneksi internet perangkat. Tanpa izin ini, aplikasi tidak dapat melakukan operasi jaringan atau berkomunikasi dengan server eksternal. Contoh penggunaan izin internet ini juga relevan dalam konteks integrasi dengan layanan web atau API pada aplikasi Android. Saat aplikasi mengirimkan permintaan ke server eksternal atau menerima respons, izin internet memungkinkan proses ini terjadi tanpa hambatan. Penting untuk mencantumkan izin yang diperlukan di dalam file manifest agar pengguna tahu persis apa yang dapat diakses oleh aplikasi tersebut. Ini juga merupakan praktik yang baik dari segi keamanan dan transparansi aplikasi kepada pengguna. 3. Manajemen Permintaan dan Respons Aspek kunci dalam keberlangsungan manajemen permintaan dan respons adalah untuk memastikan aplikasi yang sudah terinstall pada sistem operating android seperti akses web berfungsi dengan baik, efesien dan dapat di andalkan. Beberapa hal penting dalam manajemen permintaan dan respons yang harus diperhatikan adalah asinkronitas yaitu proses permintaan client ke server menjadi lancar antarmuka pengguna (user Interface), penanganan kesaahan, timeout dan retransmisi, kontrol laju (rate limiting),
168 manajemen sesi, deserialization data, validasi respons serta penanganan kesalahan respons. Dengan memperhatikan manajemen permintaan dan respons dengan baik, maka dapat meningkatkan kualitas dan kehandalan integrasi dengan layanan web atau API pada aplikasi Android yang digunakan. 4. Format Pertukaran Data Format pertukaran data adalah cara data disusun dan diatur untuk dipertukarkan antara aplikasi atau sistem yang berbeda. Dalam konteks integrasi dengan layanan web atau API pada aplikasi Android, format pertukaran data yang umum digunakan adalah JSON (JavaScript Object Notation) atau XML (eXtensible Markup Language). Berikut adalah penjelasan singkat tentang kedua format ini: JavaScript Object Notation (JSON) penggunaannya secara luas dalam pengembangan aplikasi web dan mobile yang sudah terintegrasi dengan baik pada operating system Android melalui kelas-kelas seperti JSONObject dan JSONArray. Kelebihan yang diperoleh dari kedua kelas tersebut adalah dapat dibaca dengan mudah sehingga struktur data yang di implementasikan mudah dipahami karena didukung oleh tipe data yang sudah tetap, array, objek dan nilai yang diberikan sudah terstruktur. Adapun contoh dari pembahasan di atas adalah:
169 eXtensible Markup Language ( XML) penggunaannya sudah secara luas yang terutama dalam pertukaran data pada web (API) sebelum adanya JSON, walaupun JSON pada umunya sudah dikenal dan di sukai dalam pengembangan aplikasi modern. Kelebihan dari XML sendiri yaitu sangat cocok untuk struktur data yang kompleks yang memerlukan semantik dan validasi formal. Berikut contoh yang diberikan pada XML:
170 Untuk pengingat dalam integrasi dengan layanan web pada aplikasi android adalah Dalam konteks aplikasi Android, JSON memiliki format yang sangat umum digunakan karena kemudahan pengolahan dan dukungan yang baik di lingkungan operating system Android. 5. Pemisah Tugas Pemisahan tugas memungkinkan tim pengembang (developer) untuk bekerja secara terpisah pada bagianbagian tertentu dari aplikasi, meningkatkan keterbacaan kode, dan memfasilitasi pemeliharaan. Prinsip ini terkait erat dengan konsep-konsep seperti "Single Responsibility Principle" dalam pemrograman berorientasi objek. Pemisahan tugas (separation of concerns) adalah prinsip desain perangkat lunak yang mengadvokasi untuk memisahkan fungsi atau tanggung jawab tertentu ke dalam komponen-komponen yang terpisah. Tujuan dari pemisahan tugas adalah untuk meningkatkan keterbacaan, pemeliharaan, dan fleksibilitas kode. Dalam konteks pengembangan aplikasi Android yang mengintegrasikan layanan web atau API, pemisahan tugas dapat diterapkan dalam beberapa aspek: 6. Endpoint API Endpoint API adalah titik akhir atau URL tertentu yang digunakan untuk berkomunikasi dengan layanan web atau API (Application Programming Interface). Setiap endpoint mewakili suatu fungsi atau operasi
171 yang dapat dijalankan oleh server, dan klien (seperti aplikasi Android) dapat membuat permintaan ke endpoint tersebut untuk berinteraksi dengan server. Contoh yang diberikan adalah, https://api.example.com adalah URL dasar atau base URL dari API, sedangkan /users adalah endpoint yang mengindikasikan bahwa kita sedang mengakses data pengguna. Dengan memahami struktur dan tujuan setiap endpoint API, pengembang dapat menggunakan endpoint tersebut untuk berinteraksi dengan server, mengirim permintaan, dan menerima respons sesuai dengan kebutuhan aplikasi Android yang dikembangkan. 7. Kode Status HTTP Ketika mengintegrasikan aplikasi Android dengan layanan web atau API, pemahaman tentang kode status HTTP sangat penting. Kode status ini membantu aplikasi untuk menanggapi dengan benar terhadap hasil permintaan, memperlakukan situasi yang berbeda secara sesuai, dan memberikan umpan balik yang sesuai kepada pengguna atau mengambil tindakan yang diperlukan. Kode status HTTP adalah bagian dari respons HTTP yang memberikan informasi tentang hasil dari permintaan yang dibuat oleh klien ke server. Kode status ini terdiri dari tiga digit dan digunakan untuk mengkomunikasikan apakah permintaan tersebut berhasil, gagal, atau mengalami situasi tertentu. Berikut adalah beberapa contoh kode status HTTP umum:
172 a. 2xx (Successful - Sukses): 1) 200 OK: Permintaan berhasil. Ini adalah respons standar untuk permintaan HTTP yang berhasil. 2) 201 Created: Permintaan berhasil dan sumber daya baru telah berhasil dibuat sebagai hasilnya (misalnya, setelah POST request). b. 3xx (Redirection - Pengalihan): 1) 301 Moved Permanently: Sumber daya yang diminta telah dipindahkan secara permanen ke lokasi lain. 2) 302 Found (atau 302 Found): Sumber daya yang diminta telah dipindahkan sementara ke lokasi lain. c. 4xx (Client Error - Kesalahan Klien): 1) 400 Bad Request: Permintaan tidak dapat diproses karena sintaks yang tidak valid atau permintaan yang tidak dapat dipahami. 2) 401 Unauthorized: Klien tidak dapat mengakses sumber daya karena tidak memiliki kredensial yang valid atau tidak memiliki izin yang diperlukan. 3) 403 Forbidden: Akses ke sumber daya tersebut dilarang untuk klien yang diautentikasi. 4) 404 Not Found: Sumber daya yang diminta tidak ditemukan di server.
173 d. 5xx (Server Error - Kesalahan Server): 1) 500 Internal Server Error: Terjadi kesalahan pada server yang tidak dapat diatasi. Ini adalah respons umum untuk masalah internal server. 2) 502 Bad Gateway: Server bertindak sebagai gateway atau proxy dan mendapatkan respons yang tidak valid dari server yang bawahannya. 3) 503 Service Unavailable: Server tidak dapat menanggapi permintaan karena tidak tersedia atau sedang mengalami pemeliharaan. 8. Manajemen Versi API Manajemen versi API yang efektif adalah kunci untuk membangun dan memelihara ekosistem pengembang yang berkelanjutan. Ini memastikan bahwa perubahan dapat diadopsi tanpa merusak aplikasi yang sudah ada dan memberikan kejelasan kepada pengembang tentang perubahan yang terjadi. Manajemen versi API adalah praktik yang diterapkan untuk mengelola evolusi dan perubahan pada antarmuka pemrograman aplikasi (API) sepanjang waktu. API yang baik harus mempertimbangkan kebutuhan pengguna yang berubah seiring waktu, sambil tetap mendukung penggunaan versi lama untuk mendukung kompatibilitas mundur. 9. Caching Penting untuk mempertimbangkan dengan hatihati bagaimana dan kapan melakukan caching untuk
174 memastikan bahwa data yang digunakan aplikasi tetap akurat dan relevan. Caching harus dikendalikan dengan bijaksana untuk menghindari masalah seperti penyajian data usang atau tidak akurat kepada pengguna. Caching adalah proses menyimpan salinan data atau hasil komputasi yang sudah dihitung sebelumnya untuk mengaksesnya lebih cepat di masa mendatang. Dalam konteks pengembangan aplikasi dan integrasi dengan layanan web atau API pada aplikasi Android. 10. Logging Penting untuk menggunakan logging secara bijaksana dan hanya mencatat informasi yang benarbenar diperlukan. Terlalu banyak pesan logging atau log yang tidak relevan dapat mengaburkan informasi yang sebenarnya penting. Logging harus diatur dan dielaborasi dengan bijak untuk mendukung pemecahan masalah dan pemantauan aplikasi. Logging adalah proses mencatat informasi tentang kejadian atau keadaan tertentu yang terjadi selama eksekusi suatu program atau aplikasi. Logging adalah aspek penting dalam pengembangan perangkat lunak karena dapat memberikan wawasan tentang perilaku aplikasi, membantu pemecahan masalah (debugging), dan mendukung pemantauan kinerja. Dalam konteks pengembangan aplikasi Android yang terintegrasi dengan layanan web atau API, logging dapat menjadi instrumen berharga untuk memahami interaksi dengan server dan menanggapi kejadian yang mungkin terjadi.
175 11. Pengujian Penting untuk mencampurkan berbagai jenis pengujian ini dalam siklus pengembangan untuk memastikan aplikasi Android bekerja dengan baik, handal, dan sesuai dengan ekspektasi pengguna. Pengujian otomatis dan manual dapat diintegrasikan sesuai kebutuhan dan praktik terbaik dalam pengujian kontinu (continuous testing) dapat diterapkan untuk mempercepat dan meningkatkan kualitas proses pengujian. Pengujian (testing) adalah suatu kegiatan yang dilakukan dalam pengembangan perangkat lunak untuk memastikan bahwa aplikasi atau sistem berfungsi sebagaimana mestinya, sesuai dengan spesifikasi, dan dapat memenuhi kebutuhan pengguna. Pengujian sangat penting dalam pengembangan aplikasi Android yang terintegrasi dengan layanan web atau API. 12. Rate Limiting Rate limiting membantu melindungi infrastruktur server dari berbagai ancaman dan menjaga ketersediaan dan kinerja layanan web atau API. Implementasi yang efektif dari rate limiting adalah bagian integral dari strategi keamanan dan manajemen trafik pada aplikasi atau layanan berbasis web. Rate limiting adalah praktik yang digunakan untuk mengendalikan atau membatasi seberapa sering pengguna atau klien dapat membuat permintaan ke suatu layanan web atau API dalam periode waktu tertentu. Tujuan dari rate limiting adalah melindungi
176 server dari pembebanan berlebihan, penyalahgunaan, atau serangan Denial-of-Service (DoS) yang mungkin disebabkan oleh banyak permintaan dalam waktu singkat. Beberapa konsep dan teknik yang terkait dengan rate limiting, antara lain adalah: a. Quota: Dimana jumlah maksimal permintaan yang diizinkan untuk dilakukan oleh pengguna atau klien selama periode waktu tertentu. Misalnya, pengguna dapat diizinkan membuat 100 permintaan per jam. b. Burst Limit: Yaitu jumlah maksimal permintaan yang diizinkan dilakukan dalam waktu yang sangat singkat, yang disebut juga sebagai "ledakan" awal. Setelah batas ledakan tercapai, pengguna atau klien harus menunggu agar quota terisi kembali. c. Periode Waktu: Periode waktu menentukan durasi atau interval di mana quota dihitung. Contoh periode waktu termasuk detik, menit, atau jam. Misalnya, 100 permintaan per jam. d. Headers Rate Limiting: Informasi tentang rate limit dapat disertakan dalam header HTTP respons. Header seperti RateLimit-Limit, RateLimit-Remaining, dan RateLimit-Reset memberikan informasi tentang batasan rate yang sedang berlaku.
177 Fitri Wibowo, S.ST., M.T., M.Sc.
178 Sebagian besar perangkat Android memiliki sensor bawaan yang memiliki kemampuan untuk mengukur gerakan, orientasi, dan kondisi lingkungan lainnya. Sensor ini tidak hanya memiliki kemampuan untuk mengirimkan data mentah dengan tingkat akurasi dan presisi yang tinggi, tetapi juga dapat memantau pergerakan perangkat dalam ruang tiga dimensi, posisi, atau perubahan lingkungan sekitar. Sebagai contoh, aplikasi permainan dapat menggunakan informasi yang dicatat oleh sensor gravitasi perangkat untuk mengidentifikasi posisi dan gerakan pengguna, termasuk kemiringan, goyangan, rotasi, atau ayunan. Selain itu, aplikasi cuaca dapat menggunakan perangkat yang memiliki sensor suhu dan kelembaban untuk menghitung dan melaporkan suhu titik embun, sedangkan aplikasi perjalanan dapat menggunakan perangkat yang memiliki sensor medan geomagnetic dan accelerometer untuk melaporkan arah kompas. Salah satu sumber referensi utama yang dapat digunakan adalah dokumentasi Google Developers yang memberikan penjelasan menyeluruh tentang struktur sensor pada Android (Android Documentation, 2024a), khususnya dalam hal mengakses, memahami, dan memanfaatkan sensor yang tersedia. Dokumentasi tersebut mencakup panduan tentang ketersediaan sensor, kemampuan, pengaksesan data mentah sensor, dan register dan unregister event listener sensor. Selain sensor, penggunaan aplikasi pemetaan sangat penting untuk pengembangan aplikasi Android. Maps SDK
179 for Android (Android Documentation, 2024c), yang merupakan bagian dari platform layanan Google Play, memungkinkan pengembang untuk menyertakan peta dan informasi pemetaan yang disesuaikan ke dalam aplikasi mereka. SDK tersebut memungkinkan penanaman peta ke dalam aktivitas sebagai fragment menggunakan snippet XML, serta menawarkan berbagai fitur menarik seperti peta 3D, peta dalam ruangan, peta satelit, vector-tile untuk caching, transisi animasi, tambahan informasi mengenai titik-titik menarik di sekitar, dan masih banyak lagi. Selain itu, Places API (Android Documentation, 2024d) juga memungkinkan pengguna menemukan lokasi bisnis, restoran, dan tempat menarik lainnya berdasarkan lokasi mereka saat ini. Ketika pengguna membutuhkan informasi seperti informasi kontak dan jam buka, Places SDK for Android dapat memberikannya. Bab ini diharapkan dapat membantu pembaca memahami konsep penggunaan sensor dan aplikasi pemetaan pada aplikasi Android dan memberikan pemahaman yang solid pada sisi teknis. Banyak jenis sensor, termasuk yang berbasis hardware dan yang berbasis software, dapat diakses melalui kerangka sensor di Android. Sensor, yang merupakan komponen fisik yang tertanam dalam perangkat seluler atau tablet, disebut sensor berbasis perangkat keras. Sensor-sensor tersebut mengukur variabel lingkungan seperti akselerasi, kekuatan medan geomagnetic, atau perubahan posisi perangkat pada ruang 3 dimensi. Sensor berbasis perangkat lunak, yang
180 disebut juga sebagai sensor virtual atau sensor sintetis, mendapatkan data dari satu atau lebih sensor berbasis hardware. Sensor seperti sensor gravitasi dan akselerasi linear adalah contoh sensor berbasis perangkat lunak, yang sebenarnya sensor-sensor tersebut bukanlah sensor perangkat fisik. Beberapa perangkat Android memiliki jenis sensor tertentu. Misalnya, sebagian besar perangkat seluler dan tablet memiliki akselerometer dan magnetometer, tetapi tidak banyak dari perangkat tersebut memiliki sensor barometer atau termometer. Selain itu, sebuah perangkat dapat memiliki lebih dari satu sensor dari jenis tertentu, misalnya, sebuah perangkat dapat memiliki dua sensor gravitasi, masing-masing dengan rentang yang berbeda. Android SDK menyediakan kerangka kerja yang siap digunakan oleh pengembang untuk memanfaatkan sensorsensor yang ada pada perangkat seluler atau tablet. Kerangka kerja sensor tersebut terletak di dalam paket android.hardware, yang mencakup berbagai kelas dan antarmuka yang memfasilitasi operasi yang terkait dengan sensor, di antaranya: 1. Sensor Dengan menggunakan kelas Sensor, pengembang aplikasi dapat menginstansiasi objek dari sensor tertentu dan mengeksplorasi fungsi-fungsi dari sensor tersebut. Kelas ini juga memberikan akses pada fungsi atau method yang membantu pengembang dalam
181 memanfaatkan kemampuan sensor secara keseluruhan, sehingga memungkinkan pengembang untuk memanfaatkan sensor secara optimal. 2. SensorManager Kelas SensorManager memainkan peran penting dalam kerangka kerja sensor karena memungkinkan pengembang untuk menginstansiasi layanan sensor. Dengan kelas ini, pengembang dapat memanfaatkan berbagai method untuk mengakses dan mencantumkan sensor, mengelola event listener sensor, mendapatkan detail orientasi, dan menangani kalibrasi sensor. Selain itu, kelas SensorManager mencakup konstanta sensor penting untuk menentukan akurasi sensor, mengonfigurasi tingkat sampling data, dan mengalibrasi sensor secara efektif. 3. SensorEvent Kelas SensorEvent memungkinkan sistem untuk menghasilkan objek dari suatu kejadian/peristiwa (event) yang terjadi pada sensor. Objek-objek ini berisi rincian penting tentang event pada sensor, termasuk data sensor mentah, jenis sensor yang bertanggung jawab untuk menghasilkan event, tingkat akurasi data, dan timestamp yang terkait dengan event tersebut. Objek SensorEvent berfungsi sebagai komponen fundamental untuk memproses dan menafsirkan data sensor secara akurat dalam aplikasi Android.
182 4. SensorEventListener Antarmuka SensorEventListener berfungsi sebagai elemen kunci dalam kerangka kerja sensor di Android, yang memungkinkan pengembang menerapkan dua metode callback dengan menerima notifikasi atau dikenal juga dengan sensor events pada saat nilai atau akurasi sensor mengalami perubahan. Antarmuka ini sangat penting untuk menangani data real-time nilai sensor secara efektif. Dalam skenario aplikasi tertentu, pengembang memanfaatkan API yang terkait dengan sensor ini untuk mencapai dua tujuan utama yaitu: a. Mengidentifikasi sensor dan kemampuan mereka Kemampuan untuk mengidentifikasi sensor dan kemampuan sensor tersebut secara dinamis terbukti sangat penting untuk aplikasi yang bergantung pada jenis atau fungsi sensor tertentu. Misalnya, pengembang mungkin perlu memastikan tersedianya semua sensor pada perangkat dan menyesuaikan fitur aplikasi sesuai dengan ketersediaan sensor. Demikian pula, mendeteksi sensor jenis tertentu memungkinkan pengembang untuk memilih implementasi sensor yang paling cocok dengan kinerja optimal untuk persyaratan aplikasi yang dikembangkan. b. Memantau event pada sensor Pengawasan event pada sensor menjadi hal utama pada saat pengembang ingin memperoleh data sensor mentah di dalam aplikasi Android. Setiap sensor event
183 yang terjadi menandakan terjadinya perubahan dalam parameter yang diukur oleh sensor. Ketika hal tersebut terjadi, pengembang mendapatkan akses informasi penting termasuk nama sensor yang terkait dengan event, waktu kejadian (timestamp), tingkat akurasi, dan data sensor mentah yang memicu event tersebut. Data set yang komprehensif tersebut memungkinkan pengembang untuk menafsirkan input sensor dengan tepat dan merespon perubahan sensor dengan cepat dalam aplikasi yang dikembangkan. Bagian ini mendemonstrasikan penggunaan kerangka kerja sensor di Android. Sensor yang digunakan sebagai contoh adalah sensor accelerometer yang berfungsi untuk mendeteksi percepatan sebuah objek. Aplikasi akan menampilkan nilai pergerakan perangkat seluler berdasarkan koordinat sumbu x, y dan z yang ditampilkan pada widget TextView. Langkah-langkah implementasi aplikasi yang dimaksud meliputi: 1. Mendesain antarmuka pengguna Antarmuka pengguna didefinisikan di dalam file layout yang diberi nama activity_main.xml. Di dalam tampilan utama ini, terdapat satu widget yaitu TextView yang diletakkan di dalam ConstraintLayout. Beberapa properti yang perlu diatur pada widget TextView yang digunakan diantaranya adalah properti id, layout_width, layout_height, layout contraints, dan nilai
184 teks awal. Berikut ini adalah potongan kode dari activity_main.xml. 2. Mengimpor library yang dibutuhkan Setelah antarmuka pengguna dibuat, langkah selajutnya adalah menerapkan logic aplikasi di dalam file MainActivity.java. Berikut ini adalah potongan kode program di dalam MainActivity.java pada bagian impor library.
185 3. Menginisiasi objek-objek yang diperlukan Sebelum menuliskan kode program pada fungsi utama kelas MainActivity, beberapa objek perlu dibuat terlebih dahulu. Objek tersebut di antaranya adalah objek SensorManager, TextView, List, dan SensorEventListener. Berikut ini adalah potongan kode program pada bagian awal kelas MainActivity.java. 4. Menerapkan method onCreate Method onCreate akan dipanggil ketika objek activity dibuat. Pada method ini, layout antarmuka pengguna ditentukan dan nilai dari sensor accelerometer ditampilkan pada widget TextView. Berikut ini
186 adalah potongan kode program MainActivity.java pada method onCreate. 5. Menerapkan method onStop Method onStop dipanggil ketika activity tidak lagi tampil pada layar perangkat seluler. Pada aplikasi yang dibangun, method ini digunakan untuk menghentikan (unregister) pembacaan nilai sensor accelerometer. Berikut ini adalah potongan kode program method onStop di dalam MainActivity.java.
187 File: ActivityMain.java ... @Override protected void onStop() { if(myList.size()>0){ mySM.unregisterListener(mySensorEL); } super.onStop(); } Gambar 1 menampilkan antarmuka pengguna aplikasi yang dijalankan pada Android Virtual Device (AVD). Dapat dilihat nilai dari sensor accelerometer akan memiliki nilai yang sama dengan pengaturan virtual sensor pada AVD. Gambar 1. Hasil uji coba aplikasi pendeteksi sensor accelerometer Salah satu ciri khas dari aplikasi mobile dibandingkan dengan aplikasi lainnya adalah ketersediaan fitur location awareness, sehingga dapat meningkatkan pengalaman pengguna dengan menawarkan informasi yang relevan secara kontekstual. Pengguna perangkat seluler cenderung
188 memiliki mobilitas yang tinggi sehingga sering berpindah dari satu lokasi ke lokasi lainnya, oleh karena itu integrasi location awareness ke dalam aplikasi mobile dapat secara signifikan memperkaya fungsionalitas dan keterlibatan pengguna (Rodríguez-Priego, Porcu and Kitchen, 2022). Layanan Google Play menyediakan serangkaian API lokasi yang komprehensif yang menyederhanakan proses integrasi location awareness ke dalam aplikasi mobile dengan menawarkan fitur seperti pelacakan lokasi otomatis, deteksi ruas jalan, geofencing, hingga pendeteksi aktivitas . Dengan memanfaatkan API tersebut, pengembang dapat dengan mengintegrasikan fungsi berbasis lokasi ke dalam aplikasi yang dikembangkan, sehingga memungkinkan interaksi yang dipersonalisasi dan spesifik dengan pengguna. Selain itu fitur pelacakan lokasi otomatis memungkinkan melacak lokasi pengguna secara real-time, sementara fitur deteksi ruas jalan yang salah meningkatkan keamanan dengan memperingatkan pengguna tentang bahaya potensial yang dapat terjadi. Di sisi lain, fitur geofencing memungkinkan pengembang untuk mendefinisikan batas virtual dan memicu suatu aksi berdasarkan event dan lokasi tertentu seperti ketika pengguna masuk atau keluar dari sebuah area (Android Documentation, 2024b). Secara keseluruhan, integrasi location awareness melalui API lokasi layanan Google Play memungkinkan pengembang untuk membuat aplikasi mobile yang dinamis dan context-aware yang memenuhi kebutuhan dan preferensi pengguna yang beragam dalam berbagai skenario.
189 Novi Hendri Adi, S.Pd., M.Pd. T
190 Privasi merupakan suatu hal yang sangat penting baik bagi individu maupun lembaga atau instansi untuk berhadapan dan berinteraksi dengan individu lain atau lembaga lain. Salah dalam menyampaikan informasi yang memiliki kemungkinan bernilai confidential, classified dan rahasia tidak dapat dipungkiri akan menyebabkan kerugian baik material maupun non material. Apalagi jika sifat informasi tersebut merupakan rahasia berisi peta kekuatan dan strategi yang akan dirancang menghadapi persaingan dengan produk kompetitor, terlebih lagi jika rahasia tersebut berkaitan dengan organisasi. Kalau berkaitan dengan informasi pribadi yang tidak ingin dibagi dan diketahui oleh umum, namun sudah terlanjur tersebar dan diketahui oleh khalayak luas, kejadian ini akan menjadi sangat krusial dan mungkin dapat membahayakan posisi dan kredibilitas yang bersangkutan. Pesatnya pertumbuhan ponsel pintar telah menyebabkan kebangkitan untuk layanan aplikasi seluler. Apa pun dan ke mana pun kita pergi, kita selalu dapat mengunduh aplikasinya pada App Store (iPhone) dan Android Market (Google Android) yang menyediakan akses point and click untuk ratusan dan ribuan pengguna membayar atau gratis aplikasi ini(Wei et al., 2012). Karena itu, sekuritas layanan ponsel pintar dan aplikasi menjadi semakin penting bagi pemilik ponsel. Sebelum kita membahas masalah keamanan, pertama-tama kita harus tahu yang mana sistem operasi seluler yang digunakan ponsel cerdas sekarang.