# 4.2.1 Implementasi pada Perangkat Android

---

## Paragraf 1 — Proses Build dan Distribusi APK

Aplikasi JTA dikompilasi menjadi file APK (*Android Package*) menggunakan Flutter versi **3.38.10** (channel stable, Dart SDK 3.10.9). Proses build dilakukan menggunakan perintah berikut di direktori root proyek:

```bash
flutter build apk --release
```

Build **release** dipilih dibanding debug karena menghasilkan binary yang telah melalui proses *tree-shaking*, *code minification*, dan optimasi AOT (*Ahead-of-Time*) compilation — sehingga performa aplikasi lebih baik dan ukuran file lebih kecil. Sebagai pembanding, build debug menyertakan *debug symbols* dan *observatory* yang tidak diperlukan di lingkungan produksi. Proses kompilasi memerlukan waktu sekitar **85 detik** pada mesin pengembang melalui Gradle task `assembleRelease`.

File APK yang dihasilkan adalah `app-release.apk` dengan ukuran **56,67 MB**. Ukuran ini dipengaruhi oleh Flutter engine, asset gambar, dan package yang digunakan (terutama `supabase_flutter` dan `onesignal_flutter`). Distribusi APK ke mitra dilakukan melalui **Google Drive** dengan cara membagikan tautan unduhan langsung, sehingga mitra dapat mengunduh dan menginstal APK secara mandiri tanpa memerlukan akses ke Google Play Store. `[DUMMY — ganti sesuai cara distribusi aktual yang digunakan]`

---

## Paragraf 2 — Spesifikasi Minimum Perangkat

Aplikasi JTA dikonfigurasi dengan nilai `minSdk` mengikuti nilai default Flutter (`flutter.minSdkVersion`), yang secara bawaan bernilai **21**, setara dengan **Android 5.0 (Lollipop)**. Dengan demikian, aplikasi dapat berjalan pada mayoritas perangkat Android yang beredar di pasaran saat ini. Berikut ringkasan persyaratan teknis minimum:

| Parameter | Nilai Minimum |
|---|---|
| Versi Android | Android 5.0 (API Level 21 / Lollipop) |
| RAM | 2 GB (disarankan 3 GB untuk performa optimal) |
| Penyimpanan kosong | ± 100 MB (untuk instalasi + cache data) |
| Koneksi internet | Wajib — WiFi atau data seluler (untuk polling sensor & push notifikasi) |
| Resolusi layar | 360 × 640 dp ke atas |

Izin (*permission*) yang diminta aplikasi saat instalasi dan pertama kali dijalankan:

| Izin | Keterangan |
|---|---|
| `INTERNET` | Dideklarasikan di `AndroidManifest.xml`; wajib untuk seluruh komunikasi API dan Supabase |
| `POST_NOTIFICATIONS` | Diminta secara runtime oleh OneSignal untuk pengiriman push notifikasi peringatan sensor |
| `RECEIVE_BOOT_COMPLETED` | Digunakan OneSignal untuk memulihkan registrasi notifikasi setelah perangkat restart |

Aplikasi tidak meminta izin akses kamera, lokasi, maupun penyimpanan eksternal, sehingga profil izin yang dibutuhkan tergolong minimal dan tidak menimbulkan kekhawatiran privasi yang signifikan bagi pengguna.

---

## Paragraf 3 — Spesifikasi Perangkat yang Digunakan Saat Implementasi

Pengujian dan implementasi aplikasi dilakukan pada perangkat Android milik mitra budidaya jamur tiram sebagai pengguna akhir. Berikut spesifikasi perangkat yang digunakan:

| Spesifikasi | Detail |
|---|---|
| Merek & Model | `[DUMMY — isi merek dan model HP mitra]` |
| Sistem Operasi | `[DUMMY — misal: Android 12 (API 31)]` |
| Prosesor | `[DUMMY — misal: Mediatek Helio G85, Octa-core 2.0 GHz]` |
| RAM | `[DUMMY — misal: 4 GB]` |
| Penyimpanan Internal | `[DUMMY — misal: 64 GB]` |
| Koneksi yang Digunakan | `[DUMMY — misal: WiFi 2.4 GHz / Data seluler 4G LTE]` |
| Resolusi Layar | `[DUMMY — misal: 1080 × 2408 piksel, 6.5 inci]` |

> **Catatan:** Baris bertanda `[DUMMY]` harus diisi dengan data aktual spesifikasi perangkat mitra sebelum laporan diserahkan.

---

## Paragraf 4 — Proses Instalasi

Karena APK didistribusikan di luar Google Play Store, instalasi memerlukan satu langkah konfigurasi tambahan pada perangkat Android mitra. Secara keseluruhan, proses instalasi terdiri dari empat tahap berikut:

![Alur Instalasi APK JTA](C:/Users/user/.gemini/antigravity/brain/f5437a05-a1d5-4e3b-aa37-20e3f692fed9/diagram_instalasi_apk_1778573674521.png)

**Gambar 4.x** — Alur instalasi APK JTA pada perangkat Android.

**Langkah 1 — Menerima File APK.** Mitra mengunduh file `app-release.apk` dari tautan Google Drive yang dikirimkan oleh pengembang. `[DUMMY — sesuaikan media distribusi]`

**Langkah 2 — Mengaktifkan Izin Install dari Sumber Tidak Dikenal.** Pada Android 8.0 ke atas, izin ini bersifat per-aplikasi. Mitra membuka **Pengaturan → Aplikasi → Browser/File Manager → Instal aplikasi tidak dikenal → Izinkan**. Pada Android versi lama (< 8.0), pengaturan ini terdapat di **Pengaturan → Keamanan → Sumber Tidak Dikenal**.

**Langkah 3 — Instalasi APK.** Mitra membuka file APK menggunakan file manager, kemudian mengikuti prompt instalasi sistem Android. Proses instalasi selesai dalam waktu kurang dari 30 detik. `[DUMMY — catat durasi aktual saat instalasi di lapangan]`

**Langkah 4 — Verifikasi dan Login.** Setelah instalasi berhasil, aplikasi dibuka dan menampilkan *splash screen* JTA, diikuti halaman login. Mitra memasukkan kredensial akun yang telah disiapkan pengembang, dan berhasil masuk ke halaman dashboard monitoring. Screenshot tampilan aplikasi pertama kali terpasang di perangkat mitra:

> **[DUMMY — Sisipkan screenshot halaman login dan dashboard pertama kali di perangkat mitra]**
> Screenshot dapat diambil langsung dari perangkat mitra menggunakan tombol Power + Volume Bawah, kemudian dipindahkan ke dokumen laporan.
