Menu
CoddyTech

Parameter Bernama dan Wajib

Termasuk bagian List dan Layar dalam perjalanan Flutter di Coddy. Pelajaran 13 dari 33.

Dengan tiga atau empat field, Book('Dune', 'Frank Herbert', 412) sulit dibaca, dan mudah saja tanpa sengaja menukar dua string. Parameter bernama mencantumkan nama field pada setiap pemanggilan:

class Book {
  final String title;
  final int pages;

  Book({required this.title, required this.pages});
}

Book(title: 'Dune', pages: 412)

Kurung kurawal pada konstruktor membuat parameternya menjadi parameter bernama. Kamu menulis setiap parameter dengan format name: value, dalam urutan apa pun.

Widget yang sudah kamu gunakan juga memakai parameter bernama, seperti Text(style: ...) atau ListTile(title: ...).

required berarti parameter tersebut wajib diberikan: jika kamu tidak menyertakan pages:, editor akan menampilkan error sebelum aplikasi dijalankan.

challenge icon

Tantangan

Sedang

Tampilkan jumlah halaman setiap buku:

  • tambahkan field final int pages; ke Book
  • ubah konstruktor agar menggunakan parameter bernama dan wajib, lalu tulis buku-bukunya seperti Book(title: 'Dune', author: 'Frank Herbert', pages: 412). Emma memiliki 474 halaman dan Ulysses 730
  • tampilkan 412 pages di akhir setiap baris, sebagai trailing: pada tile

Coba sendiri

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    final List<Book> books = [
      Book('Dune', 'Frank Herbert'),
      Book('Emma', 'Jane Austen'),
      Book('Ulysses', 'James Joyce'),
    ];
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: const Text('Books')),
        body: ListView(
          children: [
            for (Book book in books)
              ListTile(
                title: Text(book.title),
                subtitle: Text(book.author),
              ),
          ],
        ),
      ),
    );
  }
}

class Book {
  final String title;
  final String author;

  Book(this.title, this.author);
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di List dan Layar

Latihan sendiri: Compiler Flutter online