diff --git a/README.md b/README.md index 08d4aa4..f6e3e9a 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,116 @@ -Kalkulator BMI -=============== +# Kalkulator BMI Modern -Silahkan kembangkan aplikasi ini untuk melakukan perhitungan BMI +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. -Petunjuk lebih detil dapat dibaca di -https://docs.google.com/document/d/1iGiC0Bg3Bdcd2Maq45TYkCDUkZ5Ql51E/edit?rtpof=true +--- -Starter dimodifikasi dan terinspirasi dari: -https://developer.android.com/codelabs/basic-android-compose-calculate-tip#0 \ No newline at end of file +## 📖 Daftar Isi + +- [Fitur Utama](#-fitur-utama) +- [Tangkapan Layar](#-tangkapan-layar) +- [Teknologi yang Digunakan](#️-teknologi-yang-digunakan) +- [Struktur Proyek](#-struktur-proyek) +- [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 + +--- + +## 📂 Struktur Proyek + +``` +. +├── app +│ ├── src +│ │ ├── main +│ │ │ ├── java/com/example/tiptime +│ │ │ │ ├── MainActivity.kt # Titik masuk utama dan logika UI +│ │ │ │ └── ui/theme +│ │ │ │ ├── Color.kt # Palet warna aplikasi +│ │ │ │ ├── Theme.kt # Konfigurasi tema Material 3 +│ │ │ │ └── Type.kt # Definisi tipografi +│ │ │ └── res +│ │ │ ├── mipmap-* # Ikon aplikasi untuk berbagai resolusi +│ │ │ └── values +│ │ │ └── strings.xml # Semua teks string aplikasi +│ └── build.gradle.kts # Skrip build level aplikasi +└── README.md # File yang sedang Anda baca +``` + +--- + +## 🚀 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.*