Tugas Mobile Programming Belajar Flutter Dasar

 

                     Mata Kuliah

              Mobile Programming

                         Prodi

                  Ilmu Komputer

               Dosen Pembimbing

                                  Esron Ricardo Nainggolan, M.Kom


                                                          Tugas Kelompok:

No

Nama

Nim

Kelas

1

Donius Tamo Ama

15200016

15 3A 25

2

Muhamad Sandi 

15200167 

15 3A 25

3

Ferdinsyah 

15200208 

15 3A 25

4

Fawas Abdul  Aziz

15200217 

15 3A 25

5

Syifa Eka Phiana 

15200320 

15 3A 25

                                               

 

 





Tugas Pertemuan 2 1.

 Membuat Form dengan flutter:

  Untuk membuat form dengan flutter, agar lebih rapi untuk tampilan halaman akan kita kelompokkan dalam sebuah folder tersendiri, dalam hal ini kita membuat folder dengan nama ui didalam folder lib.



 Kemudian didalam folder ui tersebut kita buat sebuah file dengan nama produk_form.dart





 Kemudian Ketikkan kode berikut di bagian main.dart

import 'package:flutter/material.dart';

import 'package:aplikasi_flutter_pertamaku/hello_world.dart';

import 'package:aplikasi_flutter_pertamaku/column_widget.dart';

import 'package:aplikasi_flutter_pertamaku/row_widget.dart';

import 'package:aplikasi_flutter_pertamaku/ui/produk_form.dart';

import 'package:aplikasi_flutter_pertamaku/ui/produk_page.dart';

 

void main() {

  runApp(const MyApp());

}

 

class MyApp extends StatelessWidget {

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

 

  // This widget is the root of your application.

  @override

  Widget build(BuildContext context) {

    return MaterialApp(

      title: 'Flutter Aplikasi pertama',

      home: ProdukPage(),

    );

  }

}

 

 




 

selanjutnya kita ketikan code ini bagian file produk_form.dart yang sudah di buat

import 'package:flutter/material.dart';

 

class ProdukForm extends StatefulWidget {

  @override

  _ProdukFormState createState() => _ProdukFormState();

}

 

class _ProdukFormState extends State<ProdukForm> {

  @override

  Widget build(BuildContext context) {

    return Scaffold(

      appBar: AppBar(

        title: Text('Form Produk'),

      ),

      body: SingleChildScrollView(

        child: Column(

          children: [

            TextField(

              decoration: InputDecoration(labelText: "Kode Produk"),

            ),

            TextField(

              decoration: InputDecoration(labelText: "Nama Produk"),

            ),

            TextField(

              decoration: InputDecoration(labelText: "Harga"),

            ),

            RaisedButton(

              child: Text('Simpan'),

              onPressed: () {},

            )

          ],

        ),

      ),

    );

  }

}

 

    

 Ubah pada main.dart dengan memanggil class ProdukForm, sehingga hasilnya akan menjadi


 Buat sebuah file dengan nama produk_detail.dart di dalam folder ui, kemudian ketikkan kode berikut

import 'package:flutter/material.dart';

 

class ProdukDetail extends StatefulWidget {

  final String? kodeProduk;

  final String? namaProduk;

  final int? harga;

  ProdukDetail({this.kodeProduk, this.namaProduk, this.harga});

 

  @override

  _ProdukDetailState createState() => _ProdukDetailState();

}

 

class _ProdukDetailState extends State<ProdukDetail> {

  @override

  Widget build(BuildContext context) {

    return Scaffold(

      appBar: AppBar(

        title: Text("Detail Produk"),

      ),

      body: Column(

        children: [

          Text("Kode Produk : ${widget.kodeProduk}"),

          Text("Nama Produk : ${widget.namaProduk}"), // jika didalam String

          Text("Harga : ${widget.harga.toString()}"), // jika didalam String

        ],

      ),

    );

  }

}

 

 


Buka kembali file produk_form.dart tambahkan attribute untuk membuat fungsi tombol simpan dan menampilkan data pada Detail Produk

 final _kodeProdukTextboxController = TextEditingController(); 

final _namaProdukTextboxController = TextEditingController(); 

final _hargaProdukTextboxController = TextEditingController(); 

 pada Class ProdukFormState sehingga menjadi seperti berikut:


  selanjutnya:

Pada setiap masing-masing TextField yang telah dibuat data yang diinput dikirim ke attribute TextEditingController() yang telah kita buat sebelumnya 

Pada fungsi =

 _textboxKodeProduk()

 _textboxNamaProduk()

 _textboxhargaProduk()


=> Kemudian pada fungsi _tombolSimpan() pada saat diklik akan mengirim data inputan dan menampilkan data tersebut pada ProdukDetail yang telah kita buat sebelumnya

                                         Sehingga keseluruhan kode menjadi:

import 'package:aplikasi_flutter_pertamaku/ui/produk_detail.dart';

import 'package:flutter/material.dart';

 

class ProdukForm extends StatefulWidget {

  @override

  _ProdukFormState createState() => _ProdukFormState();

}

 

class _ProdukFormState extends State<ProdukForm> {

  final _kodeProdukTextboxController = TextEditingController();

  final _namaProdukTextboxController = TextEditingController();

  final _hargaProdukTextboxController = TextEditingController();

 

  @override

  Widget build(BuildContext context) {

    return Scaffold(

      appBar: AppBar(

        title: Text('Form Produk'),

      ),

      body: SingleChildScrollView(

        child: Column(

          children: [

            _textboxKodeProduk(),

            _textboxNamaProduk(),

            _textboxHargaProduk(),

            _tombolSimpan()

          ],

        ),

      ),

    );

  }

 

  _textboxKodeProduk() {

    return TextField(

      decoration: InputDecoration(labelText: "Kode Produk"),

      controller: _kodeProdukTextboxController,

    );

  }

 

  _textboxNamaProduk() {

    return TextField(

      decoration: InputDecoration(labelText: "Nama Produk"),

      controller: _namaProdukTextboxController,

    );

  }

 

  _textboxHargaProduk() {

    return TextField(

      decoration: InputDecoration(labelText: "Harga"),

      controller: _hargaProdukTextboxController,

    );

  }

 

  _tombolSimpan() {

    return RaisedButton(

      child: Text('Simpan'),

      onPressed: () {

        String kode_produk = _kodeProdukTextboxController.text;

        String nama_produk = _namaProdukTextboxController.text;

        int harga = int.parse(

            _hargaProdukTextboxController.text); //parsing dari String ke int

// pindah ke halaman Produk Detail dan mengirim data

        Navigator.of(context).push(new MaterialPageRoute(

            builder: (context) => ProdukDetail(

                  kodeProduk: kode_produk,

                  namaProduk: nama_produk,

                  harga: harga,

                )));

      },

    );

  }

}


                                                                  tampilan hasil run:



 

 



 Buat sebuah file dengan nama produk_page.dart di dalam folder ui, untuk membuat ListView Produk, kemudian ketikkan kode berikut

import 'package:flutter/material.dart';

 

class ProdukPage extends StatefulWidget {

  @override

  _ProdukPageState createState() => _ProdukPageState();

}

 

class _ProdukPageState extends State<ProdukPage> {

  @override

  Widget build(BuildContext context) {

    return Scaffold(

      appBar: AppBar(

        title: Text("Data Produk"),

      ),

      body: ListView(

        children: [

          //list 1

          Card(

            child: ListTile(

              title: Text("Kulkas"),

              subtitle: Text("2500000"),

            ),

          ),

          //list 2

 

          Card(

            child: ListTile(

              title: Text("TV"),

              subtitle: Text("5000000"),

            ),

          ),

          //list 3

          Card(

            child: ListTile(

              title: Text("Mesin Cuci"),

              subtitle: Text("1500000"),

            ),

          ),

        ],

      ),

    );

  }

}

 

 

         Kemudian daftarkan ProdukPage pada main.dart, dan hasilnya akan menjadi seperti berikut




Buka file produk_page.dart, kemudian modifikasi pada bagian AppBar menjadi seperti berikut .

GestureDetector adalah widget yang digunakan untuk mendeteksi gesture pada widget seperti gesture ontap, doubletab dan lain-lain. Secara Keseluruhan kode tersebut akan menjadi :

import 'package:aplikasi_flutter_pertamaku/ui/produk_form.dart';

import 'package:flutter/material.dart';

 

class ProdukPage extends StatefulWidget {

  @override

  _ProdukPageState createState() => _ProdukPageState();

}

 

class _ProdukPageState extends State<ProdukPage> {

  @override

  Widget build(BuildContext context) {

    return Scaffold(

      appBar: AppBar(

        title: Text("Data Produk"),

        actions: [

          GestureDetector(

            // menampilkan icon +

            child: Icon(Icons.add),

            //pada saat icon + di tap

            onTap: () async {

              //berpindah ke halaman ProdukForm

              Navigator.push(context,

                  new MaterialPageRoute(builder: (context) => ProdukForm()));

            },

          )

        ],

      ),

      body: ListView(

        children: [

          //list 1

          Card(

            child: ListTile(

              title: Text("Kulkas"),

              subtitle: Text("2500000"),

            ),

          ),

          //list 2

          Card(

            child: ListTile(

              title: Text("TV"),

              subtitle: Text("5000000"),

            ),

          ),

          //list 3

          Card(

            child: ListTile(

              title: Text("Mesin Cuci"),

              subtitle: Text("500000"),

            ),

          ),

        ],

      ),

    );

  }

}

 

 

Hasilnya akan muncul icon + pada bagian kanan AppBar, jika diklik akan membuka ProdukForm 









Menampilkan Detail Produk saat ListView diklik
Adapun untuk keseluruhan kode pada produk_page.dart sebagai berikut:

import 'package:aplikasi_flutter_pertamaku/ui/produk_detail.dart';

import 'package:aplikasi_flutter_pertamaku/ui/produk_form.dart';

import 'package:flutter/material.dart';

 

class ProdukPage extends StatefulWidget {

  @override

  _ProdukPageState createState() => _ProdukPageState();

}

 

class _ProdukPageState extends State<ProdukPage> {

  @override

  Widget build(BuildContext context) {

    return Scaffold(

      appBar: AppBar(

        title: Text("Data Produk"),

        actions: [

          GestureDetector(

            // menampilkan icon +

            child: Icon(Icons.add),

            //pada saat icon + di tap

            onTap: () async {

              //berpindah ke halaman ProdukForm

              Navigator.push(context,

                  new MaterialPageRoute(builder: (context) => ProdukForm()));

            },

          )

        ],

      ),

      body: ListView(

        children: [

          //list 1

          ItemProduk(

            kodeProduk: "A001",

            namaProduk: "Kulkas",

            harga: 2500000,

          ),

          //list 2

          ItemProduk(

            kodeProduk: "A002",

            namaProduk: "TV",

            harga: 5000000,

          ),

          //list 3

          ItemProduk(

            kodeProduk: "A003",

            namaProduk: "Mesin Cuci",

            harga: 1500000,

          ),

        ],

      ),

    );

  }

}

 

class ItemProduk extends StatelessWidget {

  final String? kodeProduk;

  final String? namaProduk;

  final int? harga;

 

  //membuat constructor

  ItemProduk({this.kodeProduk, this.namaProduk, this.harga});

 

  @override

  Widget build(BuildContext context) {

    return GestureDetector(

      child: Card(

        child: ListTile(

          title: Text("namaProduk"),

          subtitle: Text(harga.toString()), //parsing dari int ke string

        ),

      ),

      onTap: () {

        // pindah ke halaman Produk Detail dan mengirim data

        Navigator.of(context).push(new MaterialPageRoute(

            builder: (context) => ProdukDetail(

                  kodeProduk: kodeProduk,

                  namaProduk: namaProduk,

                  harga: harga,

                )));

      },

    );

  }

}

 

                                                               Hasil Running:





SELESAI




Komentar

Postingan populer dari blog ini

QUIS LOGIKA ALGORITMA

UTS sistem terdistribusi

UAS PENGOLAHAN CITRA