# Kalkulator BMI Modern Sebuah aplikasi Android modern dan elegan untuk menghitung Indeks Massa Tubuh (BMI), dibangun sepenuhnya menggunakan Jetpack Compose. Proyek ini dikembangkan oleh **Fazri Abdurrahman (202310715082)** dengan kolaborasi intensif bersama AI (Gemini) untuk menerapkan fungsionalitas canggih, desain yang menarik, dan praktik pengembangan modern. --- ## 📖 Daftar Isi - [Fitur Utama](#-fitur-utama) - [Tangkapan Layar](#-tangkapan-layar) - [Teknologi yang Digunakan](#️-teknologi-yang-digunakan) - [Instalasi & Penggunaan](#-instalasi--penggunaan) - [Proses Pengembangan dengan AI](#-proses-pengembangan-dengan-ai) - [Rencana Pengembangan](#-rencana-pengembangan) - [Lisensi](#-lisensi) --- ## ✨ Fitur Utama - **Input Data Intuitif:** Form input yang jelas untuk **Tinggi (cm)**, **Berat (kg)**, dan **Umur**. - **Visualisasi BMI Real-time:** Hasil BMI ditampilkan secara dinamis melalui **Gauge Chart (Speedometer)** yang interaktif, memberikan umpan balik visual yang langsung dipahami. - **Analisis Hasil Komprehensif:** - Nilai BMI akurat beserta **kategori** (Kurus, Normal, Gemuk, Obesitas). - Informasi **rentang berat badan ideal** sesuai tinggi badan. - Kalkulasi metrik tambahan seperti **BMI Prime** dan **Ponderal Index**. - **Desain Modern & Responsif:** Antarmuka pengguna yang bersih dengan palet warna custom (hijau army & coklat) yang diimplementasikan menggunakan **Material 3 Theming**. --- ## 📸 Tangkapan Layar *(Sangat disarankan untuk menambahkan gambar pratinjau aplikasi Anda di sini untuk menunjukkan hasil akhirnya. Ini memberikan kesan pertama yang kuat.)* --- ## 🛠️ Teknologi yang Digunakan Proyek ini dibangun menggunakan tumpukan teknologi Android modern: - **Bahasa Pemrograman:** **Kotlin** - Bahasa utama untuk pengembangan Android, dipilih karena keringkasan, keamanan, dan fitur-fitur modernnya. - **UI Toolkit:** **Jetpack Compose** - Membangun seluruh UI secara deklaratif, memungkinkan pengembangan yang lebih cepat dan kode yang lebih mudah dikelola. - **Desain Sistem:** **Material 3** - Mengimplementasikan sistem desain terbaru dari Google untuk memastikan tampilan yang konsisten dan modern. - **Manajemen State:** State management sederhana namun kuat menggunakan `remember` dan `mutableStateOf` untuk menjaga UI tetap sinkron dengan data. - **Grafik Kustom:** Pemanfaatan **`Canvas` API** untuk menggambar komponen UI yang sepenuhnya custom (Gauge Chart) dari awal. - **IDE:** Android Studio - **Version Control:** Git --- ## 🚀 Instalasi & Penggunaan 1. **Prasyarat:** Pastikan Anda memiliki versi terbaru **Android Studio**. 2. **Clone Repositori:** ```sh git clone [URL-repositori-Anda-di-sini] ``` 3. **Buka di Android Studio:** Buka proyek yang telah di-clone. 4. **Sync Gradle:** Tunggu hingga Android Studio selesai mengunduh semua dependensi yang diperlukan. 5. **Jalankan Aplikasi:** Pilih target (Emulator atau perangkat fisik) dan klik tombol 'Run'. --- ## 🤖 Proses Pengembangan dengan AI Proyek ini menjadi studi kasus menarik dalam **pengembangan perangkat lunak berbantuan AI**. Bermula dari sebuah *starter code* yang sangat dasar, sebagian besar fungsionalitas dan polesan aplikasi ini diimplementasikan melalui dialog dan iterasi dengan **Google Gemini**. Prosesnya meliputi: 1. **Prompting Fitur:** Meminta implementasi fitur dari nol, seperti Gauge Chart. 2. **Debugging Kolaboratif:** Mengidentifikasi dan memperbaiki bug (termasuk eror pada `Canvas` dan referensi tema yang salah) dengan bantuan analisis dari AI. 3. **Refactoring & Desain:** Meminta perubahan desain, seperti skema warna dan tata letak, yang kemudian diimplementasikan oleh AI. 4. **Dokumentasi:** Menghasilkan dokumentasi ini secara bertahap sesuai progres pengembangan. --- ## 🔮 Rencana Pengembangan Beberapa fitur potensial yang dapat ditambahkan di masa depan: - [ ] **Penyimpanan Riwayat:** Menyimpan hasil kalkulasi BMI untuk melacak progres. - [ ] **Grafik Tren:** Visualisasi perubahan BMI dari waktu ke waktu. - [ ] **Dukungan Unit Imperial:** Opsi input tinggi (kaki/inci) dan berat (pon). - [ ] **Lokalisasi:** Mendukung berbagai bahasa. --- ## 📄 Lisensi Proyek ini dilisensikan di bawah **MIT License**. *(Disarankan untuk membuat file `LICENSE` di root proyek Anda dan menempelkan teks lisensi MIT ke dalamnya)*. --- *Proyek ini dikembangkan dari starter code sederhana yang terinspirasi dari: Codelab "Calculate Tip" Android Developer.*