Membuat Tampilan Sederhana & Eksperimen

Laporan Tugas Flutter: Implementasi UI Sederhana Menggunakan Column dan Row

Identitas

  • Nama: Mochammad Alfin Fauzan

  • Mata Pelajaran: Pemrograman Mobile / Flutter


Pendahuluan

Flutter merupakan framework UI open-source dari Google yang digunakan untuk membangun aplikasi mobile dengan tampilan menarik dan responsif. Pada tugas ini, dilakukan pembuatan dua jenis tampilan antarmuka (UI) sederhana menggunakan Flutter, yaitu tampilan vertikal menggunakan Column dan tampilan horizontal menggunakan Row dengan tambahan efek visual seperti gradient dan icon.


Tujuan

Tujuan dari pembuatan tugas ini adalah:

  1. Memahami struktur dasar project Flutter.

  2. Mengimplementasikan widget AppBar, Column, dan Row.

  3. Membuat tampilan UI vertikal dan horizontal.

  4. Menerapkan styling sederhana seperti warna, gradient, icon, dan alignment.

  5. Membandingkan dua jenis tampilan UI dalam Flutter.


Alat dan Bahan

  • Software: Flutter SDK, Android Studio / Visual Studio Code

  • Bahasa Pemrograman: Dart

  • Library: Flutter Material


Langkah-langkah Pengerjaan

1. Pembuatan Project Flutter

  • Membuat project Flutter baru menggunakan perintah flutter create.

  • Mengatur file main.dart sebagai file utama aplikasi.

2. Pembuatan Widget Utama

  • Membuat class MyApp sebagai root widget.

  • Menggunakan MaterialApp dengan debugShowCheckedModeBanner: false agar tampilan lebih bersih.

3. Pembuatan Halaman Utama

  • Membuat class HomePage sebagai halaman utama.

  • Menambahkan AppBar dengan judul nama dan warna khusus.


Implementasi Program

A. Tampilan Vertikal Sederhana (Column)

Tampilan ini merupakan versi paling sederhana dan dijadikan sebagai implementasi awal. Widget Column digunakan untuk menyusun beberapa card teks secara vertikal. Semua card memiliki ukuran lebar yang sama agar tampilan seragam dan mudah dipahami oleh pemula.

Fitur utama:

  • AppBar berwarna coklat gelap.

  • Tiga card teks tersusun vertikal.

  • Lebar card tetap (250).

  • Teks rata tengah dan mudah dibaca.

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  final Color appBarColor = Color.fromARGB(255, 100, 0, 22);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: appBarColor,
        title: Text('Mochammad Alfin Fauzan', style: TextStyle(color: Colors.white)),
        centerTitle: true,
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            _buildCard('Halo'),
            SizedBox(height: 12),
            _buildCard('Belajar Flutter'),
            SizedBox(height: 12),
            _buildCard('Hari ini mendong'),
          ],
        ),
      ),
    );
  }

  Widget _buildCard(String text) {
    return Container(
      width: 250,
      padding: EdgeInsets.symmetric(horizontal: 20, vertical: 16),
      color: Colors.grey[400],
      alignment: Alignment.center,
      child: Text(
        text,
        style: TextStyle(color: Colors.black, fontSize: 18, fontWeight: FontWeight.bold),
        textAlign: TextAlign.center,
      ),
    );
  }
}




B. Tampilan Horizontal dengan Gradient dan Icon (Row)

Tampilan ini merupakan pengembangan dari tampilan sederhana. Widget Row dan SingleChildScrollView digunakan untuk menampilkan card secara horizontal. Ditambahkan efek gradient, icon, dan shadow agar tampilan lebih modern dan menarik.

Fitur utama:

  • AppBar berwarna navy gelap.

  • Background menggunakan gradient.

  • Card tersusun horizontal dan dapat di-scroll.

  • Setiap card memiliki icon dan efek bayangan.


### B. Tampilan Horizontal dengan Gradient dan Icon (Row)
Tampilan ini menggunakan widget `Row` dan `SingleChildScrollView` horizontal untuk menampilkan card secara menyamping. Ditambahkan efek gradient, icon, dan shadow agar tampilan lebih modern.

**Fitur utama:**
- AppBar berwarna navy gelap.
- Background menggunakan gradient.
- Card tersusun horizontal dan dapat di-scroll.
- Setiap card memiliki icon dan efek bayangan.

```dart
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  final Color appBarColor = Color(0xFF001F54);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: appBarColor,
        title: Text('Mochammad Alfin Fauzan', style: TextStyle(color: Colors.white)),
        centerTitle: true,
      ),
      body: Container(
        width: double.infinity,
        height: double.infinity,
        decoration: BoxDecoration(
          gradient: LinearGradient(
            colors: [Color(0xFF001F54), Color(0xFF3A6EA5)],
            begin: Alignment.topLeft,
            end: Alignment.bottomRight,
          ),
        ),
        child: Center(
          child: SingleChildScrollView(
            scrollDirection: Axis.horizontal,
            child: Row(
              children: [
                _buildCard('Halo', Color(0xFF001F54), Color(0xFF3A6EA5), Icons.emoji_people),
                SizedBox(width: 12),
                _buildCard('Belajar Flutter', Color(0xFF003366), Color(0xFF336699), Icons.menu_book),
                SizedBox(width: 12),
                _buildCard('Hari ini mendung', Color(0xFF004080), Color(0xFF6699CC), Icons.chat),
              ],
            ),
          ),
        ),
      ),
    );
  }

  Widget _buildCard(String text, Color startColor, Color endColor, IconData icon) {
    return Container(
      padding: EdgeInsets.symmetric(horizontal: 20, vertical: 16),
      decoration: BoxDecoration(
        gradient: LinearGradient(
          colors: [startColor, endColor],
          begin: Alignment.topLeft,
          end: Alignment.bottomRight,
        ),
        borderRadius: BorderRadius.circular(25),
        boxShadow: [
          BoxShadow(color: startColor.withOpacity(0.5), blurRadius: 12, offset: Offset(0, 6)),
        ],
      ),
      child: Row(
        mainAxisSize: MainAxisSize.min,
        children: [
          Icon(icon, color: Colors.white, size: 28),
          SizedBox(width: 16),
          Text(text, style: TextStyle(color: Colors.white, fontSize: 18, fontWeight: FontWeight.bold)),
        ],
      ),
    );
  }
}




Hasil yang Dicapai

  1. Aplikasi berhasil dijalankan tanpa error.

  2. Tampilan vertikal dan horizontal dapat ditampilkan dengan baik.

  3. UI terlihat rapi, konsisten, dan mudah dibaca.

  4. Penggunaan gradient dan icon membuat tampilan lebih menarik.


Kesimpulan

Dari tugas ini dapat disimpulkan bahwa Flutter sangat fleksibel dalam pembuatan antarmuka pengguna. Dengan widget sederhana seperti Column, Row, dan Container, dapat dibuat berbagai variasi tampilan UI. Penambahan styling seperti warna, gradient, dan icon mampu meningkatkan kualitas visual aplikasi secara signifikan.

Komentar

Postingan populer dari blog ini

Macam Macam Sistem Operasi Smartphone

UI/UX Alfin XI RPL1

2 ARTIKEL PENGEMBANGAN GIM