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 kompleks:

  • !(A && B) sama dengan !A || !B
  • !(A || B) sama dengan !A && !B

Meniadakan perbandingan akan membaliknya: >= menjadi < dan > menjadi <=. Kedua kondisi ini setara:

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

// tulis bentuk yang setara:
if (age < 18 || score <= 70)
{
    Console.WriteLine("Not eligible");
}

Evaluasi hubung singkat: 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 login
    • 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 ANY dari kondisi berikut terpenuhi:
    • Pengguna adalah admin DAN sedang login
    • Waktu berada dalam jam kerja (9-17 termasuk batasnya) DAN pengguna sedang login 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