Menu
CoddyTech

Meratakan Percabangan Bersarang

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

Percabangan bersarang dapat membuat kodemu sulit dibaca dan dipelihara. Meratakannya membantu meningkatkan keterbacaan dengan mengurangi tingkat indentasi.

Berikut contoh percabangan yang bertingkat dalam:

if (userLoggedIn)
{
    if (userHasPermission)
    {
        if (fileExists)
        {
            // Proses file
            ProcessFile();
        }
        else
        {
            Console.WriteLine("File not found");
        }
    }
    else
    {
        Console.WriteLine("No permission");
    }
}
else
{
    Console.WriteLine("Not logged in");
}

Kita bisa meratakan ini menggunakan pengembalian lebih awal atau klausa penjaga:

if (!userLoggedIn)
{
    Console.WriteLine("Not logged in");
    return;
}

if (!userHasPermission)
{
    Console.WriteLine("No permission");
    return;
}

if (!fileExists)
{
    Console.WriteLine("File not found");
    return;
}

// Proses file
ProcessFile();

Perhatikan bahwa kode yang diratakan memiliki indentasi yang lebih sedikit dan lebih mudah diikuti.

challenge icon

Tantangan

Mudah

Dalam pemeriksaan kelayakan beasiswa, percabangan bersarang yang dalam membuat kode sulit dibaca dan dipelihara. Dalam tantangan ini, kamu akan mengubah struktur percabangan bersarang yang berantakan menjadi kode yang rapi dan mudah dibaca menggunakan guard clause.

Guard clause adalah pernyataan return awal yang langsung menangani kondisi tertentu, sehingga bagian fungsi lainnya dapat berfokus pada "alur normal".

Tugasmu adalah melengkapi guard clause yang belum diterapkan sepenuhnya dalam method CheckScholarshipEligibility sesuai aturan berikut:

  1. Jika usia kurang dari 17, segera kembalikan "Not eligible due to age requirement"
  2. Jika GPA ≥ 3.5 DAN siswa memiliki rekomendasi, berikan beasiswa penuh
  3. Jika GPA ≥ 3.8, berikan beasiswa penuh (meskipun tanpa rekomendasi)
  4. Jika GPA ≥ 3.0 DAN siswa memiliki rekomendasi, berikan beasiswa sebagian
  5. Jika GPA berada di antara 3.5 dan 3.8, berikan beasiswa sebagian
  6. Untuk semua kasus lainnya, kembalikan "Not eligible for scholarship"

Coba sendiri

using System;

class Program
{
    public static void CheckScholarshipEligibility(int age, double gpa, bool hasRecommendation)
    {
        // Klausa penjaga untuk persyaratan usia
        if (age < 17)
        {
            Console.WriteLine("Not eligible due to age requirement.");
            return;
        }
        
        // Klausa penjaga untuk beasiswa penuh dengan rekomendasi
        if (/* Lengkapi kondisi ini */)
        {
            Console.WriteLine("Full scholarship granted!");
            return;
        }
        
        // Klausa penjaga untuk beasiswa penuh dengan GPA yang luar biasa
        if (/* Lengkapi kondisi ini */)
        {
            Console.WriteLine("Full scholarship granted!");
            return;
        }
        
        // Klausa penjaga untuk beasiswa parsial dengan rekomendasi
        if (/* Lengkapi kondisi ini */)
        {
            Console.WriteLine("Partial scholarship granted.");
            return;
        }
        
        // Klausa penjaga untuk beasiswa parsial dengan GPA yang baik
        if (/* Lengkapi kondisi ini */)
        {
            Console.WriteLine("Partial scholarship granted.");
            return;
        }
        
        // Kasus default: tidak memenuhi syarat
        Console.WriteLine("Not eligible for scholarship.");
    }
    
    static void Main(string[] args)
    {
        // Kasus uji untuk umpan balik langsung
        Console.WriteLine("Test Case 1: Age 16, GPA 4.0, Has Recommendation: True");
        CheckScholarshipEligibility(16, 4.0, true);
        
        Console.WriteLine("\nTest Case 2: Age 18, GPA 3.9, Has Recommendation: False");
        CheckScholarshipEligibility(18, 3.9, false);
        
        Console.WriteLine("\nTest Case 3: Age 17, GPA 3.6, Has Recommendation: True");
        CheckScholarshipEligibility(17, 3.6, true);
        
        Console.WriteLine("\nTest Case 4: Age 19, GPA 3.2, Has Recommendation: True");
        CheckScholarshipEligibility(19, 3.2, true);
        
        Console.WriteLine("\nTest Case 5: Age 18, GPA 2.8, Has Recommendation: False");
        CheckScholarshipEligibility(18, 2.8, false);
    }
}
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