Menu
CoddyTech

Logika Boolean yang Kompleks

Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 9 dari 66.

Logika Boolean bisa menjadi rumit saat menggabungkan beberapa kondisi. Memahami prioritas operator dan menggunakan tanda kurung membantu kamu menulis ekspresi yang jelas dan benar.

Urutan prioritas operator boolean di C# adalah:

  1. NOT (!)
  2. AND (&&)
  3. OR (||)

Berikut contoh ekspresi boolean yang kompleks:

bool isValid = age >= 18 && (score > 70 || hasPriorExperience) && !isBlacklisted;

Gunakan Hukum De Morgan untuk menyederhanakan negasi yang rumit:

// Alih-alih:
if (!(age >= 18 && score > 70))
{
    // Ini setara dengan:
    if (age < 18 || score <= 70)
    {
        Console.WriteLine("Not eligible");
    }
}

Evaluasi short-circuit: Dengan && dan ||, C# hanya mengevaluasi hal yang diperlukan:

// Jika user bernilai null, C# tidak akan mengevaluasi kondisi kedua
if (user != null && user.IsActive)
{
    Console.WriteLine("Active user");
}

Gunakan tanda kurung secara eksplisit agar lebih jelas, meskipun sebenarnya tidak wajib:

bool result = (isWeekend || isHoliday) && (hour > 10 && hour < 20);
challenge icon

Tantangan

Sedang

Buat method bernama determineAccess yang menentukan apakah pengguna memiliki akses ke sistem berdasarkan aturan berikut:

  1. Menerima lima parameter:
    • isAdmin (bool): Apakah pengguna adalah administrator
    • isLoggedIn (bool): Apakah pengguna sedang masuk
    • timeOfDay (int): Jam saat ini (0-23)
    • isMaintenanceMode (bool): Apakah sistem sedang dalam mode pemeliharaan
    • hasEmergencyAccess (bool): Apakah pengguna memiliki akses darurat
  2. Mengembalikan true jika SALAH SATU kondisi berikut terpenuhi:
    • Pengguna adalah admin DAN sedang masuk
    • Waktu berada dalam jam kerja (9-17, termasuk kedua batasnya) DAN pengguna sedang masuk DAN sistem TIDAK dalam mode pemeliharaan
    • Pengguna memiliki akses darurat

Coba sendiri

public class DetermineAccess
{
    // Implementasikan method determineAccess
    public static bool determineAccess(bool isAdmin, bool isLoggedIn, int timeOfDay, bool isMaintenanceMode, bool hasEmergencyAccess)
    {
        // Tulis kodemu di sini
        
    }
}
quiz iconUji dirimu

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

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C# online