Membuat Aplikasi BMI Calculator Modern Menggunakan Flutter

 

📱 Membuat Aplikasi BMI Calculator Modern Menggunakan Flutter

Di era perkembangan teknologi mobile yang semakin pesat, membuat aplikasi kesehatan sederhana bisa menjadi salah satu cara yang menarik untuk belajar pemrograman. Salah satu contohnya adalah BMI Calculator, yaitu aplikasi yang dapat menghitung Indeks Massa Tubuh berdasarkan tinggi dan berat badan pengguna.

Pada project kali ini, aplikasi dibuat menggunakan Flutter dan bahasa pemrograman Dart. Aplikasi memiliki tampilan modern dengan tema gelap serta slider untuk memasukkan tinggi dan berat badan.


🚀 Apa Itu BMI Calculator?

BMI (Body Mass Index) atau Indeks Massa Tubuh (IMT) adalah nilai yang dihitung berdasarkan berat dan tinggi badan. Dalam aplikasi ini, BMI digunakan sebagai hasil perhitungan sederhana yang kemudian dikelompokkan menjadi beberapa kategori.

Rumus yang digunakan:

BMI = Berat Badan (kg) ÷ (Tinggi Badan (m) × Tinggi Badan (m))

Contohnya:

  • Tinggi = 170 cm

  • Berat = 60 kg

Maka:

BMI = 60 ÷ (1,7 × 1,7) = 20,8

Aplikasi kemudian menampilkan nilai BMI dan kategori hasilnya.

Catatan: BMI merupakan indikator sederhana dan bukan diagnosis medis. Untuk penilaian kesehatan yang lebih tepat, diperlukan pertimbangan faktor lain dan konsultasi dengan tenaga kesehatan.


🛠️ Teknologi yang Digunakan

Project ini dibuat menggunakan beberapa teknologi utama:

TeknologiFungsi
FlutterFramework untuk membuat aplikasi mobile
DartBahasa pemrograman Flutter
Material DesignKomponen dan desain antarmuka
StatefulWidgetMengatur perubahan data pada halaman
SliderMemasukkan nilai tinggi dan berat
AlertDialogMenampilkan hasil BMI

Flutter memungkinkan developer membuat aplikasi dengan tampilan yang menarik menggunakan satu basis kode.


🎨 Tampilan Aplikasi

Aplikasi menggunakan konsep dark mode dengan warna dasar gelap #0A0E21.

Pada halaman utama terdapat:

  1. AppBar dengan judul "Modern BMI Calculator".

  2. Card untuk memasukkan tinggi badan.

  3. Card untuk memasukkan berat badan.

  4. Slider untuk mengubah nilai.

  5. Tombol HITUNG BMI.

  6. Dialog yang menampilkan hasil BMI.

Penggunaan warna pink pada tombol dan slider membuat tampilan menjadi lebih modern dan menarik.


📂 Struktur Dasar Program

Program dimulai dengan fungsi:

void main() => runApp(const BMICalculatorApp());

Fungsi tersebut menjalankan aplikasi Flutter dengan widget BMICalculatorApp.

Kemudian aplikasi menggunakan:

class BMICalculatorApp extends StatelessWidget

Widget ini bertugas mengatur konfigurasi awal aplikasi, seperti tema dan halaman utama.

Halaman utama menggunakan:

class BMIPage extends StatefulWidget

StatefulWidget digunakan karena nilai tinggi dan berat badan dapat berubah ketika pengguna menggeser slider.


📏 Input Tinggi dan Berat Badan

Pada program terdapat dua variabel utama:

double height = 170;
double weight = 60;

Nilai awal tinggi badan adalah 170 cm, sedangkan berat badan adalah 60 kg.

Pengguna dapat mengubah kedua nilai tersebut melalui slider.

Untuk tinggi badan, rentang yang tersedia adalah:

100–220 cm

Sedangkan berat badan memiliki rentang:

30–150 kg


🎚️ Menggunakan Slider

Salah satu bagian menarik dari aplikasi ini adalah penggunaan Slider.

Contohnya:

Slider(
  value: val,
  min: min,
  max: max,
  onChanged: onChanged,
  activeColor: Colors.pinkAccent,
)

Ketika slider digeser, nilai tinggi atau berat akan berubah secara langsung.

Program menggunakan:

setState()

agar tampilan aplikasi diperbarui ketika pengguna mengubah nilai.


🧮 Proses Perhitungan BMI

Perhitungan BMI terdapat pada fungsi:

void _showResult()

Rumus yang digunakan dalam program adalah:

double bmi = weight / ((height / 100) * (height / 100));

Karena tinggi yang dimasukkan menggunakan satuan centimeter, maka tinggi terlebih dahulu dibagi 100 agar menjadi meter.

Contohnya:

170 cm ÷ 100 = 1,7 meter

Kemudian nilai tersebut digunakan dalam rumus BMI.


📊 Kategori Hasil BMI

Program juga memiliki kondisi untuk menentukan status hasil BMI:

String status = bmi < 18.5
    ? "Underweight"
    : bmi < 25
        ? "Normal"
        : "Overweight";

Secara sederhana, program membagi hasil menjadi:

Nilai BMIStatus
< 18,5Underweight
18,5 – <25Normal
≥25Overweight

Perlu diperhatikan bahwa batas tersebut merupakan kategori sederhana yang digunakan oleh program dan tidak selalu cocok untuk semua orang, misalnya anak/remaja atau kondisi tertentu.


💬 Menampilkan Hasil dengan AlertDialog

Setelah tombol HITUNG BMI ditekan, aplikasi akan menampilkan sebuah dialog.

Bagian ini menggunakan:

showDialog(
  context: context,
  builder: (_) => AlertDialog(

Hasil BMI kemudian ditampilkan menggunakan:

bmi.toStringAsFixed(1)

Artinya, nilai BMI akan ditampilkan dengan satu angka di belakang koma.

Misalnya:

20.8

Selain nilai BMI, aplikasi juga menampilkan status seperti:

Normal

Dengan demikian, pengguna dapat langsung mengetahui hasil perhitungan.


🧩 Fungsi _buildCard()

Program juga memiliki fungsi:

Widget _buildCard(
  String label,
  double val,
  Function(double) onChanged,
  double min,
  double max
)

Fungsi tersebut digunakan untuk membuat card input tinggi dan berat badan.

Keuntungan menggunakan fungsi ini adalah kode menjadi lebih ringkas dan terstruktur, karena komponen yang memiliki desain serupa tidak perlu ditulis berulang kali.

Card memiliki:

  • Judul input

  • Nilai angka

  • Slider

  • Background gelap

  • Sudut yang membulat


🖥️ Alur Kerja Aplikasi

Secara sederhana, alur aplikasi dapat digambarkan seperti berikut:

        ┌─────────────────┐
        │     Pengguna    │
        └────────┬────────┘
                 │
                 ▼
       ┌───────────────────┐
       │ Masukkan Tinggi   │
       │ dan Berat Badan   │
       └─────────┬─────────┘
                 │
                 ▼
       ┌───────────────────┐
       │  Tombol Hitung    │
       │       BMI         │
       └─────────┬─────────┘
                 │
                 ▼
       ┌───────────────────┐
       │ Perhitungan BMI   │
       └─────────┬─────────┘
                 │
                 ▼
       ┌───────────────────┐
       │ Menentukan Status  │
       │ BMI               │
       └─────────┬─────────┘
                 │
                 ▼
       ┌───────────────────┐
       │ Menampilkan Hasil │
       │  BMI + Status     │
       └───────────────────┘

🌟 Kelebihan Aplikasi

Beberapa kelebihan dari aplikasi BMI Calculator ini adalah:

1. Tampilan Modern

Penggunaan dark mode, card, slider, dan warna pink membuat aplikasi terlihat sederhana tetapi modern.

2. Mudah Digunakan

Pengguna tidak perlu mengetik angka secara manual karena tinggi dan berat dapat dipilih melalui slider.

3. Ringan

Aplikasi hanya melakukan perhitungan sederhana sehingga tidak membutuhkan database atau koneksi internet untuk fungsi utamanya.

4. Cocok untuk Belajar Flutter

Project ini cocok bagi pemula karena mempelajari beberapa konsep penting Flutter seperti:

  • StatelessWidget

  • StatefulWidget

  • setState()

  • Slider

  • Container

  • Column

  • AlertDialog

  • ElevatedButton


🔧 Kekurangan dan Pengembangan Selanjutnya

Walaupun sudah dapat digunakan, aplikasi ini masih bisa dikembangkan menjadi lebih lengkap.

Beberapa fitur yang dapat ditambahkan antara lain:

  • 👤 Input nama pengguna

  • 📋 Riwayat hasil BMI

  • 📊 Grafik perkembangan BMI

  • 💾 Penyimpanan data

  • 🔄 Tombol reset

  • 🎨 Pilihan tema terang dan gelap

  • 📱 Responsive design

  • 🔔 Notifikasi

  • 📝 Informasi mengenai BMI

  • 🧑‍⚕️ Informasi kesehatan yang lebih lengkap

Dengan penambahan fitur tersebut, aplikasi dapat berkembang dari sekadar project pembelajaran menjadi aplikasi yang memiliki fitur lebih lengkap.


📚 Kesimpulan

Membuat Modern BMI Calculator menggunakan Flutter merupakan project yang cukup sederhana tetapi sangat baik untuk mempelajari dasar-dasar pengembangan aplikasi mobile.

Melalui project ini, kita dapat belajar bagaimana membuat tampilan menggunakan Flutter, menerima input dari pengguna, mengubah data secara real-time menggunakan setState(), melakukan perhitungan menggunakan Dart, serta menampilkan hasil menggunakan AlertDialog.

Project ini juga menunjukkan bahwa membuat aplikasi mobile tidak selalu harus dimulai dari sesuatu yang kompleks. Dengan memahami konsep dasar seperti widget, state, input, proses, dan output, kita sudah dapat membuat aplikasi yang dapat digunakan secara langsung.

Flutter + Dart + kreativitas = satu langkah awal menjadi Mobile Developer! 🚀📱

#Flutter #Dart #MobileDevelopment #BMI #AppDevelopment #Programming #Coding #BelajarFlutter

Komentar

Postingan populer dari blog ini

Mengenal Widget Flutter

pembuatan aplikasi kas kelas

Dunia Mobile Development