Menu
CoddyTech

Refactoring Loop

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

Melakukan refaktor pada perulangan dapat meningkatkan keterbacaan dan kemudahan pemeliharaan kode.

Ganti perulangan tradisional dengan foreach agar lebih sederhana:

string[] fruits = { "apple", "banana", "cherry" };

// Sebelum refaktorisasi
for (int i = 0; i < fruits.Length; i++)
{
    Console.WriteLine(fruits[i]);
}

// Setelah refaktorisasi
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}

Ekstrak logika perulangan yang kompleks ke dalam method:

int[] numbers = { 1, 2, 3, 4, 5, 6 };

// Sebelum refactoring
for (int i = 0; i < numbers.Length; i++)
{
    if (numbers[i] % 2 == 0)
    {
        Console.WriteLine($"{numbers[i]} is even");
    }
}

// Setelah refactoring dengan method pembantu
for (int i = 0; i < numbers.Length; i++)
{
    if (IsEven(numbers[i]))
    {
        Console.WriteLine($"{numbers[i]} is even");
    }
}

// Method pembantu
bool IsEven(int number)
{
    return number % 2 == 0;
}

Pecah perulangan besar menjadi perulangan yang lebih kecil dan lebih terfokus:

int[] data = { 1, 2, 3, 4, 5 };

// Sebelum: Satu perulangan besar mengerjakan beberapa hal
for (int i = 0; i < data.Length; i++)
{
    // Proses data
    data[i] = data[i] * 2;
    // Cetak hasil
    Console.WriteLine(data[i]);
}

// Sesudah: Perulangan terpisah dengan tujuan yang jelas
// Proses data
for (int i = 0; i < data.Length; i++)
{
    data[i] = data[i] * 2;
}

// Cetak hasil
for (int i = 0; i < data.Length; i++)
{
    Console.WriteLine(data[i]);
}
challenge icon

Tantangan

Sedang

Buat method bernama refactorArrayFilter yang:

  1. Menerima array bilangan bulat sebagai parameter
  2. Menerapkan dua versi kode yang menghitung jumlah bilangan yang habis dibagi 3:
    • Versi asli: Gunakan for loop tradisional dengan pernyataan if
    • Versi refaktor: Gunakan foreach loop dengan logikanya dipisahkan ke helper method
  3. Mengembalikan jumlah dari versi refaktor sebagai bilangan bulat

Misalnya, jika diberikan array [3, 4, 6, 7, 9], method tersebut harus mengembalikan 3 karena ada tiga bilangan (3, 6, dan 9) yang habis dibagi 3.

Catatan: Kamu tidak perlu mencetak apa pun, cukup kembalikan jumlahnya sebagai bilangan bulat.

Coba sendiri

public class RefactorArrayFilter
{
    // Implementasikan method refactorArrayFilter
    public static int refactorArrayFilter(int[] numbers)
    {
        // Tulis kodemu di sini
        
    }
    
    // Implementasikan method pembantu yang kamu perlukan
}
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