LAPORAN PRAKTIKUM APLIKASI MOBILE 2

C. Project Visual Studio Code

Buka aplikasi visual studio code, pastikan ekstensi Flutter sudah ada di Visual Studio Code tersebut

Buat project bernama hai dengan cara membuka command pallete dengan shortcut ctrl+shift+p lalu ketik Flutter: New Project > Application

Stateless & Statefull

  • Stateless – widget yang data atau tampilannya tidak mengalami perubahan ketika sebuah state dijalankan, Widget ini bersifat statis atau tetap misalnya teks statis, logo aplikasi dll
  • Statefull – widget dinamis yang ketika sebuah state berubah maka tampilan UI juga berubah. contohnya ketika tombol diklik atau ditekan maka tombol berubah warna atau form input nilainya berubah.
Basic Widget

Text – widget dasar yang digunakan untuk menampikan teks pada layer

const Text(
                "Hai i am Text Widget",
                style: TextStyle(
                  fontSize: 14.0,
                  color: Colors.red,
                  fontWeight: FontWeight.bold,
                  fontStyle: FontStyle.italic,
                ),
                textAlign: TextAlign.center,
              ),

Container – widget yang berfungsi sebagai KOTAK yang dapat menampung satu widget child dan menyediakan berbagai properti untuk dekorasi, mengatur posisi dan mengatur ukuran widget.

 // Kotak biru
              Container(
                width: 200,
                height: 200,
                margin: const EdgeInsets.all(20),
                padding: const EdgeInsets.all(20),
                decoration: BoxDecoration(
                  color: Colors.blueAccent,
                  border: Border.all(color: Colors.white, width: 2),
                  borderRadius: BorderRadius.circular(10),
                ),
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: [
                    const Text("Kelipatan 2 : "),
                    Text(
                      '$_kelipatan',
                      style: Theme.of(context).textTheme.headlineMedium,
                    ),
                  ],
                ),
              ),

ElevatedButton – widget yang mewakili tombol dan memiliki shadow

// ElevatedButton
              ElevatedButton(
                onPressed: () {
                  print("tombol ditekan");
                },
                style: ElevatedButton.styleFrom(
                  backgroundColor: Colors.green,
                  foregroundColor: Colors.white,
                  padding: const EdgeInsets.all(20),
                  shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.circular(16),
                  ),
                ),
                child: const Text("Elevated Button"),
              ),

Icon – widget yang digunakan untuk menampilkan icon, Flutter telah menyediakan set icon seperti Material Icons dari Google atau Cupertino Icons dari Apple

floatingActionButton: FloatingActionButton(
          onPressed: _kelipatanDua,
          tooltip: "Kelipatan 2",
          child: const Icon(
            Icons.add,
            color: Colors.amber,
            size: 50.0,
          ),
        ),
  • Image NetworkImage – widget dasar yang digunakan untuk menampikan gambar dari jaringan internet
 Image.network(
                "https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Logo_Unand.svg/600px-Logo_Unand.svg.png",
                width: 100,
                height: 150,
              ),

Untuk AssetsImage buatkan baris tambahan di dalam file pubspec.yaml menjadi seperti berikut, dan juga tambahkan folder assets/image lalu upload foto yang ingin digunakan di dalam folder image

 assets:
    - assets/images/devia.jpg

CircleAvatar – widget yang sering digunakan untuk menampilkan gambar profil pengguna atau inisialnya dalam bentuk lingkaran.

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text("Statefull Widget"),
          backgroundColor: Colors.purple[50],
          actions: [
            Padding(
              padding: const EdgeInsets.only(right: 40), // supaya tidak ketutup debug ribbon
              child: Row(
                children: [
                  CircleAvatar(
                    radius: 18,
                    backgroundColor: Colors.green,
                    child: const Text(
                      "IF",
                      style: TextStyle(fontSize: 12, color: Colors.white),
                    ),
                  ),
                  const SizedBox(width: 10),
                  CircleAvatar(
                    radius: 18,
                    backgroundColor: Colors.blue,
                    child: const Icon(
                      Icons.person,
                      color: Colors.white,
                      size: 18,
                    ),
                  ),

Leave a Reply

Your email address will not be published. Required fields are marked *