membuat aplikasi BMI

 


## 📱 Belajar Flutter: Membuat Aplikasi BMI Sederhana

berikut codingan yang saya buat:

import 'package:flutter/material.dart';


void main() {

  runApp(const MyApp());

}


class MyApp extends StatelessWidget {

  const MyApp({super.key});


  @override

  Widget build(BuildContext context) {

    return const MaterialApp(

      debugShowCheckedModeBanner: false,

      home: BmiPage(),

    );

  }

}


class BmiPage extends StatefulWidget {

  const BmiPage({super.key});


  @override

  State<BmiPage> createState() => _BmiPageState();

}


class _BmiPageState extends State<BmiPage> {

  final TextEditingController nameController = TextEditingController();

  final TextEditingController ageController = TextEditingController();

  final TextEditingController heightController = TextEditingController();

  final TextEditingController weightController = TextEditingController();


  String gender = 'Laki-laki';

  double bmi = 0;


  void hitungBMI() {

    final double? height =

        double.tryParse(heightController.text);

    final double? weight =

        double.tryParse(weightController.text);


    if (height == null || weight == null) return;


    setState(() {

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

    });

  }


  @override

  Widget build(BuildContext context) {

    return Scaffold(

      appBar: AppBar(

        backgroundColor: Colors.pinkAccent,

        title: const Text('BMI 💖'),

      ),

      body: SingleChildScrollView(

        padding: const EdgeInsets.all(16),

        child: Column(

          children: [

            TextField(

              controller: nameController,

              decoration: const InputDecoration(

                labelText: 'Nama',

              ),

            ),

            const SizedBox(height: 10),


            DropdownButtonFormField<String>(

              value: gender,

              items: const [

                DropdownMenuItem(

                  value: 'Laki-laki',

                  child: Text('Laki-laki'),

                ),

                DropdownMenuItem(

                  value: 'Perempuan',

                  child: Text('Perempuan'),

                ),

              ],

              onChanged: (value) {

                setState(() {

                  gender = value!;

                });

              },

              decoration: const InputDecoration(

                labelText: 'Jenis Kelamin',

              ),

            ),

            const SizedBox(height: 10),


            TextField(

              controller: ageController,

              keyboardType: TextInputType.number,

              decoration: const InputDecoration(

                labelText: 'Umur',

              ),

            ),

            const SizedBox(height: 10),


            TextField(

              controller: heightController,

              keyboardType: TextInputType.number,

              decoration: const InputDecoration(

                labelText: 'Tinggi Badan (cm)',

              ),

            ),

            const SizedBox(height: 10),


            TextField(

              controller: weightController,

              keyboardType: TextInputType.number,

              decoration: const InputDecoration(

                labelText: 'Berat Badan (kg)',

              ),

            ),

            const SizedBox(height: 20),


            ElevatedButton(

              onPressed: hitungBMI,

              style: ElevatedButton.styleFrom(

                backgroundColor: Colors.pinkAccent,

              ),

              child: const Text('Hitung BMI'),

            ),

            const SizedBox(height: 20),


            if (bmi > 0)

              Column(

                children: [

                  Text(

                    'Nama: ${nameController.text}',

                    style: const TextStyle(fontSize: 16),

                  ),

                  Text(

                    'Jenis Kelamin: $gender',

                    style: const TextStyle(fontSize: 16),

                  ),

                  Text(

                    'Umur: ${ageController.text} tahun',

                    style: const TextStyle(fontSize: 16),

                  ),

                  const SizedBox(height: 10),

                  Text(

                    'BMI: ${bmi.toStringAsFixed(1)}',

                    style: const TextStyle(

                      fontSize: 28,

                      fontWeight: FontWeight.bold,

                    ),

                  ),

                ],

              ),

          ],

        ),

      ),

    );

  }

}


Di postingan kali ini, aku mau sharing hasil belajar Flutter dengan membuat **aplikasi BMI (Body Mass Index) sederhana**.

Aplikasi ini cocok banget buat pemula yang lagi belajar Flutter karena isinya masih basic tapi kepake banget.


Aplikasi ini dibuat pakai **Flutter dan bahasa Dart**, dengan tampilan sederhana dan warna pink biar nggak ngebosenin 😆


---


## ✨ Fitur yang Ada di Aplikasi


Di aplikasi BMI ini, pengguna bisa:


* Mengisi **nama**

* Memilih **jenis kelamin**

* Mengisi **umur**

* Menginput **tinggi badan (cm)**

* Menginput **berat badan (kg)**

* Menghitung nilai **BMI**

* Melihat hasil BMI langsung di layar


Semua data dimasukkan lewat form, lalu diproses setelah tombol **Hitung BMI** ditekan.


---


## 🧠 Cara Kerja Aplikasi


Perhitungan BMI di aplikasi ini menggunakan rumus standar:


**BMI = Berat Badan (kg) / (Tinggi Badan (m) × Tinggi Badan (m))**


Setelah pengguna mengisi data dan menekan tombol, aplikasi akan langsung menampilkan nilai BMI beserta informasi pengguna.


---


## 🛠 Teknologi yang Digunakan


Beberapa teknologi dan widget Flutter yang digunakan:


* Flutter

* Bahasa Dart

* `StatefulWidget`

* `TextField`

* `DropdownButtonFormField`

* `ElevatedButton`

* `setState()` untuk update tampilan


---


## 🎀 Tampilan Aplikasi


Untuk tampilannya, aku pakai **warna pink pastel** supaya kelihatan lebih lucu dan friendly.

Desainnya dibuat simpel agar mudah dipahami, terutama buat yang masih belajar Flutter.


---


## 📝 Penutup


Dari project kecil ini, aku jadi lebih paham:


* Cara membuat form input di Flutter

* Mengelola state menggunakan `setState()`

* Menggabungkan logika perhitungan dengan tampilan UI


Ke depannya, aplikasi ini masih bisa dikembangkan lagi, misalnya:


* Menambahkan kategori BMI (kurus, normal, gemuk, dll)

* Memisahkan halaman input dan hasil

* Memperbaiki desain UI supaya lebih menarik

jika kalian ingin mencoba yang ada pada gambar ini link nya :

https://zjz606vdjz70.zapp.page/#/


Semoga sharing ini bermanfaat, terutama buat teman-teman yang lagi belajar Flutter juga 🚀

Terima kasih sudah membaca 😊

Komentar

Postingan populer dari blog ini

Membuat tampilan sederhana

To do list part 2

MEMBUAT JADWAL PELAJARAN