You are on page 1of 22

LAPORAN RESPONSI

MATAKULIAH PEMROGRAMAN MOBILE

SYALAFUDIN FIRMAN SYAH


20SA1109

PRODI INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS AMIKOM PURWOKERTO
2022

 Jalankan VS Code
 Buat project flutter
 Buat Folder Screen dan Widgets dengan cara click pada nama project pilih New Folder

 Buat file dart dengan cara click kanan pada folder Widets kemudian New File beri nama
JenisKelamin.dart
import 'package:flutter/material.dart';

String jenisKelaminDipilih = "";

class JenisKelamin extends StatefulWidget {


  const JenisKelamin({Key? key}) : super(key: key);

  @override
  State<JenisKelamin> createState() => _JenisKelaminState();
}

class _JenisKelaminState extends State<JenisKelamin> {


  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.start,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        const Text("Jenis Kelamin"),
        Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Expanded(
                child: RadioListTile(
                    contentPadding: EdgeInsets.all(0),
                    title: const Text("Pria"),
                    value: "Pria",
                    groupValue: jenisKelaminDipilih,
                    onChanged: (String? jenis) {
                      setState(() {
                        jenisKelaminDipilih = jenis!;
                      });
                    })),
            Expanded(
                child: RadioListTile(
                    contentPadding: EdgeInsets.all(0),
                    title: const Text("Wanita"),
                    value: "Wanita",
                    groupValue: jenisKelaminDipilih,
                    onChanged: (String? jenis) {
                      setState(() {
                        jenisKelaminDipilih = jenis!;
                      });
                    })),
          ],
        ),
      ],
    );
  }
}

 Buat file dart dengan cara click kanan pada folder Widets kemudian New File beri nama
StatusPernikahan.dart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

String statusPernikahanDipilih = "";

class StatusPernikahan extends StatefulWidget {


  const StatusPernikahan({Key? key}) : super(key: key);
  @override
  State<StatusPernikahan> createState() => _StatusPernikahanState();
}

class _StatusPernikahanState extends State<StatusPernikahan> {


  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.start,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        const Text("Status Perkawinan"),
        Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Expanded(
              child: RadioListTile(
                  contentPadding: EdgeInsets.all(0),
                  title: const Text("Kawin"),
                  value: "Kawin",
                  groupValue: statusPernikahanDipilih,
                  onChanged: (String? statusPernikahan) {
                    setState(() {
                      statusPernikahanDipilih = statusPernikahan!;
                    });
                  }),
            ),
            Expanded(
              child: RadioListTile(
                  contentPadding: EdgeInsets.all(0),
                  title: const Text("Tidak Kawin"),
                  value: "Tidak Kawin",
                  groupValue: statusPernikahanDipilih,
                  onChanged: (String? statusPernikahan) {
                    setState(() {
                      statusPernikahanDipilih = statusPernikahan!;
                    });
                  }),
            )
          ],
        ),
      ],
    );
  }
}

 Buat file dart dengan cara click kanan pada folder Widets kemudian New File beri nama
Bahasa.dart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

bool chKIndonesia = false;


bool chKInggris = false;
bool chKArab = false;
bool chKSunda = false;
bool chKJawa = false;
bool chKMadura = false;
bool chKMandarin = false;
bool chKJepang = false;
bool chKKorea = false;

class Bahasa extends StatefulWidget {


  const Bahasa({Key? key}) : super(key: key);
  @override
  State<Bahasa> createState() => _BahasaState();
}

class _BahasaState extends State<Bahasa> {


  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.start,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        const Text("Kemampuan Berbahasa"),
        Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Expanded(
              child: Row(
                children: [
                  Checkbox(
                    checkColor: Colors.white,
                    value: chKIndonesia,
                    onChanged: (bool? value) {
                      setState(() {
                        chKIndonesia = value!;
                      });
                    },
                  ),
                  const Text("Indonesia"),
                ],
              ),
            ),
            Expanded(
              child: Row(
                children: [
                  Checkbox(
                    checkColor: Colors.white,
                    value: chKInggris,
                    onChanged: (bool? value) {
                      setState(() {
                        chKInggris = value!;
                      });
                    },
                  ),
                  const Text("Inggris"),
                ],
              ),
            ),
            Expanded(
              child: Row(
                children: [
                  Checkbox(
                    checkColor: Colors.white,
                    value: chKArab,
                    onChanged: (bool? value) {
                      setState(() {
                        chKArab = value!;
                      });
                    },
                  ),
                  const Text("Arab"),
                ],
              ),
            ),
          ],
        ),
        Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Expanded(
              child: Row(
                children: [
                  Checkbox(
                    checkColor: Colors.white,
                    value: chKSunda,
                    onChanged: (bool? value) {
                      setState(() {
                        chKSunda = value!;
                      });
                    },
                  ),
                  const Text("Sunda"),
                ],
              ),
            ),
            Expanded(
              child: Row(
                children: [
                  Checkbox(
                    checkColor: Colors.white,
                    value: chKJawa,
                    onChanged: (bool? value) {
                      setState(() {
                        chKJawa = value!;
                      });
                    },
                  ),
                  const Text("Jawa"),
                ],
              ),
            ),
            Expanded(
              child: Row(
                children: [
                  Checkbox(
                    checkColor: Colors.white,
                    value: chKMadura,
                    onChanged: (bool? value) {
                      setState(() {
                        chKMadura = value!;
                      });
                    },
                  ),
                  const Text("Madura"),
                ],
              ),
            ),
          ],
        ),
        Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Expanded(
              child: Row(
                children: [
                  Checkbox(
                    checkColor: Colors.white,
                    value: chKMandarin,
                    onChanged: (bool? value) {
                      setState(() {
                        chKMandarin = value!;
                      });
                    },
                  ),
                  const Text("Mandarin"),
                ],
              ),
            ),
            Expanded(
              child: Row(
                children: [
                  Checkbox(
                    checkColor: Colors.white,
                    value: chKJepang,
                    onChanged: (bool? value) {
                      setState(() {
                        chKJepang = value!;
                      });
                    },
                  ),
                  const Text("Jepang"),
                ],
              ),
            ),
            Expanded(
              child: Row(
                children: [
                  Checkbox(
                    checkColor: Colors.white,
                    value: chKKorea,
                    onChanged: (bool? value) {
                      setState(() {
                        chKKorea = value!;
                      });
                    },
                  ),
                  const Text("Korea"),
                ],
              ),
            ),
          ],
        ),
      ],
    );
  }
}

String cariBahasa() {
  String _bahasa = "";
  if (chKIndonesia) {
    _bahasa += "Indonesia,";
  }
  if (chKInggris) {
    _bahasa += "Inggris,";
  }
  if (chKArab) {
    _bahasa += "Arab,";
  }
  if (chKSunda) {
    _bahasa += "Sunda,";
  }
  if (chKJawa) {
    _bahasa += "Jawa,";
  }
  if (chKMadura) {
    _bahasa += "Madura,";
  }
  if (chKMandarin) {
    _bahasa += "Mandarin,";
  }
  if (chKJepang) {
    _bahasa += "Jepang";
  }
  if (chKKorea) {
    _bahasa += "Korea,";
  }
  if (_bahasa.length > 0) {
    _bahasa = _bahasa.substring(0, _bahasa.length - 1);
  }
  return _bahasa;
}

 Buat file dart dengan cara click kanan pada folder Widets kemudian New File beri nama
Agama.dart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
List<String> agama = [
  "Silakan Pilih Agama Anda",
  "Islam",
  "Katolik",
  "Protestan",
  "Hindu",
  "Budha"
];
String agamaDipilih = "Silakan Pilih Agama Anda";

class Agama extends StatefulWidget {


  const Agama({Key? key}) : super(key: key);
  @override
  State<Agama> createState() => _AgamaState();
}

class _AgamaState extends State<Agama> {


  @override
  Widget build(BuildContext context) {
    return Row(
      children: [
        const Text("Agama "),
        Padding(padding: EdgeInsets.only(right: 20.0)),
        DropdownButton(
          hint: const Text("Silakan pilih agama anda"),
          icon: Icon(Icons.arrow_drop_down),
          value: agamaDipilih,
          items: agama.map((String value) {
            return DropdownMenuItem(value: value, child: Text(value));
          }).toList(),
          onChanged: (String? value) {
            setState(() {
              agamaDipilih = value!;
            });
          },
        ),
      ],
    );
  }
}
 Buat file dart dengan cara click kanan pada folder Widets kemudian New File beri nama
HomeScreen.dart
import 'dart:io';
import 'package:flutter/material.dart';
import '../Widgets/Agama.dart';
import '../Widgets/Bahasa.dart';
import '../Widgets/JenisKelamin.dart';
import '../Widgets/StatusPernikahan.dart';

class Home extends StatefulWidget {


  const Home({Key? key}) : super(key: key);
  @override
  State<Home> createState() => _HomeState();
}

int _selectedIndex = 0;

class _HomeState extends State<Home> {


  TextEditingController controllernama = TextEditingController();
  TextEditingController controlleralamat = TextEditingController();
  TextEditingController controllertempatlahir = TextEditingController();
  void _onItemTapped(int index) {
    setState(() {
      _selectedIndex = index;
      if (index == 2) {
        _kirimData();
      } else if (index == 3) {
        _kosongkan();
      } else if (index == 4) {
        exit(0);
      }
    });
  }

  void _kosongkan() {
    controllernama.text = "";
    controllertempatlahir.text = "";
    controlleralamat.text = "";
    jenisKelaminDipilih = "";
    statusPernikahanDipilih = "";
    agamaDipilih = "Silakan Pilih Agama Anda";
    chKIndonesia = false;
    chKInggris = false;
    chKArab = false;
    chKSunda = false;
    chKJawa = false;
    chKMadura = false;
    chKMandarin = false;
    chKJepang = false;
    chKKorea = false;
  }

  void _kirimData() {
    AlertDialog alertDialog = AlertDialog(
      content: Container(
        width: 100.0,
        height: 200.0,
        child: ListView(
          children: [
            Column(
              mainAxisAlignment: MainAxisAlignment.start,
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Align(
                  alignment: Alignment.topCenter,
                  child: ElevatedButton(
                      onPressed: () {
                        Navigator.pop(context);
                      },
                      child: const Text("OK")),
Text("Nama Lengkap : " + controllernama.text),
                Text("Alamat : " + controlleralamat.text),
                Text("Tempat Lahir : " + controllertempatlahir.text),
                Text("Tanggal Lahir : " + controllertanggallahir.text),
                Text("Jenis Kelamin : " + jenisKelaminDipilih),
                Text("Status : " + statusPernikahanDipilih),
                Text("Agama : " + agamaDipilih),
                Text("Kemampuan Berbaasa : " + cariBahasa()),
              ],
            ),
          ],
        ),
      ),
    );
    showDialog(
      context: context,
      builder: (BuildContext context) {
        return alertDialog;
      },
    );
  }

  void _pencarian() {
    AlertDialog alertDialog = AlertDialog(
      content: Container(
        height: 200.0,
        width: 200.0,
        child: Column(
          children: [
            Text("Proses Pencarian"),
            Padding(padding: EdgeInsets.only(top: 30.0)),
            ElevatedButton(
                onPressed: () {
                  Navigator.pop(context);
                },
                child: const Text("OK"))
          ],
        ),
      ),
    );
    showDialog(
      context: context,
      builder: (BuildContext context) {
        return alertDialog;
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        leading: const Icon(Icons.list),
        title: const Text("Latihan Formulir"),
        backgroundColor: Color.fromARGB(255, 14, 11, 182),
        actions: [
          IconButton(
              onPressed: () {
                _pencarian();
              },
              icon: Icon(Icons.search))
        ],
      ),
      body: ListView(
        children: [
        Container(
            padding: const EdgeInsets.all(10.0),
            child: Column(
              children: [
                TextField(
                  decoration: const InputDecoration(
                      hintText: "Nama Lengkap",
                      labelText: "Nama Lengkap",
                      icon: Icon(Icons.list)),
                  controller: controllernama,
                ),
                TextField(
                  decoration: const InputDecoration(
                      hintText: "Alamat Lengkap",
                      labelText: "Alamat Lengkap",
                      icon: Icon(Icons.mail)),
                  controller: controlleralamat,
                ),
                TextField(
                  decoration: const InputDecoration(
                      hintText: "Tempat Lahir",
                      labelText: "Tempat Lahir",
                      icon: Icon(Icons.location_on)),
                  controller: controllertempatlahir,
                ),
                TextField(
                  decoration: const InputDecoration(
                      hintText: "Tanggal Lahir",
                      labelText: "Tanggal Lahir",
                      icon: Icon(Icons.calendar_month)),
                  controller: controllertempatlahir,
                ),
                const Divider(
                  height: 0,
                  thickness: 1,
                  indent: 0,
                  endIndent: 0,
                  color: Colors.black,
                ),
                JenisKelamin(),
                const Divider(
                  height: 0,
                  thickness: 1,
                  indent: 0,
                  endIndent: 0,
                  color: Colors.black,
                ),
                StatusPernikahan(),
                const Divider(
                  height: 0,
                  thickness: 1,
                  indent: 0,
                  endIndent: 0,
                  color: Colors.black,
                ),
                Bahasa(),
                const Divider(
                  height: 0,
                  thickness: 1,
                  indent: 0,
                  endIndent: 0,
                  color: Colors.black,
                ),
                Agama(),
                ElevatedButton(
                    onPressed: () {
                      _kirimData();
                    },
                    child: const Text("Proses")),
              ],
            ),
          ),
        ],
      ),
    );
  }
}

 Kemudian Edit main.dart


import 'package:flutter/material.dart';
import 'Screen/HomeScreen.dart';

void main() {
  runApp(const MaterialApp(
    home: Home(),
  ));
}

“RESPONSI PMO”

1. Tambahkan inputan berupa


a. Tanggal lahir letakan dibawah tempat lahir menggunakan TextField
        Container(
            padding: const EdgeInsets.all(10.0),
            child: Column(
              children: [
                TextField(
                  decoration: const InputDecoration(
                      hintText: "Nama Lengkap",
                      labelText: "Nama Lengkap",
                      icon: Icon(Icons.list)),
                  controller: controllernama,
                ),
                TextField(
                  decoration: const InputDecoration(
                      hintText: "Alamat Lengkap",
                      labelText: "Alamat Lengkap",
                      icon: Icon(Icons.mail)),
                  controller: controlleralamat,
                ),
                TextField(
                  decoration: const InputDecoration(
                      hintText: "Tempat Lahir",
                      labelText: "Tempat Lahir",
                      icon: Icon(Icons.location_on)),
                  controller: controllertempatlahir,
                ),
                TextField(
                  decoration: const InputDecoration(
                      hintText: "Tanggal Lahir",
                      labelText: "Tanggal Lahir",
                      icon: Icon(Icons.calendar_month)),
                  controller: controllertempatlahir,
                ),

b. Pendidikan terakhir dibawah Agama menggunakan DropdownButton


import 'package:flutter/material.dart';

List<String> pendidikan = [
  "Silahkan Pilih Pendidikan Anda",
  "SD",
  "SMP",
  "SMA",
  "D3",
  "S1",
];
String pendidikanDipilih = "Silahkan Pilih Pendidikan Anda";

class Pendidikan extends StatefulWidget {


  const Pendidikan({Key? key}) : super(key: key);

  @override
  State<Pendidikan> createState() => _PendidikanState();
}

class _PendidikanState extends State<Pendidikan> {


  @override
  Widget build(BuildContext context) {
    return Row(
      children: [
        const Text("Pendidikan"),
        const Padding(
          padding: EdgeInsets.only(
            right: 20,
          ),
        ),
        DropdownButton(
          hint: const Text("Silahkan Pilih Pendidikan Anda"),
          icon: const Icon(Icons.arrow_drop_down_rounded),
          value: pendidikanDipilih,
          items: pendidikan.map((String value) {
            return DropdownMenuItem(
              value: value,
              child: Text(value),
            );
          }).toList(),
          onChanged: (String? value) {
            setState(() {
              pendidikanDipilih = value!;
            });
          },
        ),
      ],
    );
  }
}
c. Hilangkan BottomNavigation
                ),
                StatusPernikahan(),
                const Divider(
                  height: 0,
                  thickness: 1,
                  indent: 0,
                  endIndent: 0,
                  color: Colors.black,
                ),
                Bahasa(),
                const Divider(
                  height: 0,
                  thickness: 1,
                  indent: 0,
                  endIndent: 0,
                  color: Colors.black,
                ),
                Agama(),
                ElevatedButton(
                    onPressed: () {
                      _kirimData();
                    },
                    child: const Text("Proses")),
              ],
            ),
          ),
        ],
      ),
    );
  }
}

d. Tambahkan Tombol Proses dan tombol Kosongkan


ElevatedButton(
                    onPressed: () {
                      _kosongkan();
                    },
                    child: const Text("Kosongkan")),
              ],
            ),
          ),
        ],
      ),
    );
  }
}

2. Output program
3. Saat tombol proses ditekan tampilkan semua data yang diinputkan menggunakan AlertDialog
4. Saat tombol kosongkan ditekan kosongkan semua inputan

You might also like