Menu
CoddyTech

And, Or, dan Not di Dart

Termasuk bagian Membuat Aplikasi Interaktif dalam perjalanan Flutter di Coddy. Pelajaran 19 dari 34.

Sering kali, satu bool saja tidak cukup. Dart menggabungkannya dengan tiga operator:

  • a && b (dan): true hanya ketika keduanya true
  • a || b (atau): true ketika setidaknya salah satunya true
  • !a (bukan): membalik true dan false
bool _hasTicket = true;
bool _isLate = false;

_hasTicket && !_isLate   // true: kamu bisa naik
_hasTicket || _isLate    // true: setidaknya satu bernilai true

Hasilnya berupa bool, jadi bisa digunakan sebelum ? pada percabangan, atau di dalam if. Tanda kurung membuatnya lebih mudah dibaca:

Text((_hasTicket && !_isLate) ? 'Board now' : 'Wait')
challenge icon

Tantangan

Mudah

Pintu hanya terbuka dengan kunci dan kode. Ubah dua baris ini:

  • baris pertama menampilkan The door is open saat kamu memiliki kunci dan mengetahui kodenya, jika tidak, tampilkan The door is locked
  • baris kedua menampilkan Getting closer saat kamu memiliki kunci atau mengetahui kodenya, jika tidak, tampilkan Find the key and the code

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) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: const HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  bool _hasKey = false;
  bool _knowsCode = false;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Door')),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            const Text('The door is locked', style: TextStyle(fontSize: 24)),
            const Text('Find the key and the code'),
            const SizedBox(height: 16),
            ElevatedButton(
              onPressed: () {
                setState(() {
                  _hasKey = true;
                });
              },
              child: const Text('Take the key'),
            ),
            ElevatedButton(
              onPressed: () {
                setState(() {
                  _knowsCode = true;
                });
              },
              child: const Text('Learn the code'),
            ),
          ],
        ),
      ),
    );
  }
}
quiz iconUji dirimu

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

Semua pelajaran di Membuat Aplikasi Interaktif

Latihan sendiri: Compiler Flutter online