sinau-c/content/for_loops.md

5.9 KiB

---LESSON_INFO--- Learning Objectives:

  • Memahami konsep perulangan for dalam bahasa C
  • Belajar menggunakan perulangan for untuk iterasi
  • Mengenal struktur perulangan for
  • Memahami cara menggunakan perulangan untuk memproses array
  • Mengenal perulangan bersarang (nested loops)

Prerequisites:

  • Pemahaman tentang variabel dan tipe data
  • Pemahaman dasar tentang program C

---END_LESSON_INFO---

Perulangan For dalam C

Perulangan for dalam bahasa C digunakan untuk mengulang blok kode sejumlah kali yang telah ditentukan. Perulangan for sangat berguna ketika Anda tahu berapa kali Anda ingin mengulang kode tersebut.

Sintaks Perulangan For

for (inisialisasi; kondisi; peningkatan) {
    // blok kode yang akan diulang
}

Bagian-bagian Perulangan For:

  • Inisialisasi: Menetapkan nilai awal pada variabel iterator (dijalankan sekali di awal)
  • Kondisi: Kondisi yang diperiksa sebelum setiap iterasi (jika benar, perulangan dilanjutkan)
  • Peningkatan: Operasi yang dilakukan setelah setiap iterasi (meningkatkan/mengurangi iterator)

Contoh Dasar Perulangan For

Berikut adalah contoh sederhana dari perulangan for:

#include <stdio.h>

int main() {
    for (int i = 1; i <= 5; i++) {
        printf("%d ", i);
    }
    
    return 0;
}

Output:

1 2 3 4 5

Perulangan For dengan Array

Perulangan for sangat berguna untuk mengakses elemen-elemen array:

#include <stdio.h>

int main() {
    int numbers[] = {10, 20, 30, 40, 50};
    int n = sizeof(numbers) / sizeof(numbers[0]);  // menghitung jumlah elemen
    
    for (int i = 0; i < n; i++) {
        printf("Elemen ke-%d: %d\\n", i, numbers[i]);
    }
    
    return 0;
}

Output:

Elemen ke-0: 10
Elemen ke-1: 20
Elemen ke-2: 30
Elemen ke-3: 40
Elemen ke-4: 50

Perulangan For Bersarang (Nested For Loops)

Anda bisa menggunakan perulangan for di dalam perulangan for lainnya untuk membuat nested loops. Ini sangat berguna untuk bekerja dengan struktur data dua dimensi seperti matriks.

#include <stdio.h>

int main() {
    // Mencetak pola segitiga
    for (int i = 1; i <= 5; i++) {
        for (int j = 1; j <= i; j++) {
            printf("* ");
        }
        printf("\\n");
    }
    
    return 0;
}

Output:

* 
* * 
* * * 
* * * * 
* * * * * 

Jenis-Jenis Peningkatan dalam For Loop

Anda bisa menggunakan berbagai jenis peningkatan dalam perulangan for:

Menaikkan dengan nilai tertentu

for (int i = 0; i <= 10; i += 2) {
    printf("%d ", i);  // Output: 0 2 4 6 8 10
}

Menurunkan nilai

for (int i = 10; i >= 0; i--) {
    printf("%d ", i);  // Output: 10 9 8 7 6 5 4 3 2 1 0
}

Peningkatan dengan nilai selain 1

for (int i = 0; i < 20; i += 3) {
    printf("%d ", i);  // Output: 0 3 6 9 12 15 18
}

Contoh Nyata Penggunaan For Loop

Berikut adalah contoh penggunaan perulangan for dalam situasi nyata:

#include <stdio.h>

int main() {
    // Menghitung rata-rata nilai siswa
    int scores[] = {85, 92, 78, 96, 88, 76, 94, 89, 91, 87};
    int n = sizeof(scores) / sizeof(scores[0]);
    int total = 0;
    
    printf("Daftar nilai siswa:\\n");
    for (int i = 0; i < n; i++) {
        printf("Siswa %d: %d\\n", i+1, scores[i]);
        total += scores[i];
    }
    
    float average = (float)total / n;
    printf("\\nTotal nilai: %d\\n", total);
    printf("Rata-rata nilai: %.2f\\n", average);
    
    return 0;
}

Output:

Daftar nilai siswa:
Siswa 1: 85
Siswa 2: 92
Siswa 3: 78
Siswa 4: 96
Siswa 5: 88
Siswa 6: 76
Siswa 7: 94
Siswa 8: 89
Siswa 9: 91
Siswa 10: 87

Total nilai: 876
Rata-rata nilai: 87.60

Perbandingan For dan While Loop

Meskipun for dan while loop bisa digunakan untuk hal yang sama, for loop lebih cocok ketika jumlah iterasi diketahui sebelumnya:

// Menggunakan for loop
for (int i = 0; i < 5; i++) {
    printf("%d ", i);
}

// Setara dengan while loop
int i = 0;
while (i < 5) {
    printf("%d ", i);
    i++;
}

Tips:

  • Gunakan for loop ketika Anda tahu berapa kali perulangan akan dijalankan
  • Gunakan while loop ketika jumlah iterasi tergantung pada kondisi yang dinamis
  • Pastikan kondisi perulangan akan berubah sehingga perulangan tidak menjadi infinite loop
  • Gunakan variabel iterator yang sesuai untuk mengakses elemen array atau menghitung iterasi

Referensi:

---EXERCISE---

Latihan: Matriks Perkalian

Dalam latihan ini, Anda akan membuat program yang mencetak tabel perkalian 5x5 menggunakan nested for loops.

Requirements:

  • Gunakan nested for loops untuk membuat tabel perkalian
  • Baris dan kolom harus dari 1 hingga 5
  • Tampilkan hasil perkalian dari baris dan kolom
  • Format output harus rapi dan mudah dibaca

Expected Output:

Tabel Perkalian 5x5:
1  2  3  4  5  
2  4  6  8  10 
3  6  9  12 15 
4  8  12 16 20 
5  10 15 20 25 

Try writing your solution in the code editor below!

---EXPECTED_OUTPUT--- Tabel Perkalian 5x5: 1 2 3 4 5
2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 5 10 15 20 25 ---END_EXPECTED_OUTPUT---

---INITIAL_CODE--- #include <stdio.h>

int main() { printf("Tabel Perkalian 5x5:\n");

// TODO: Gunakan nested for loops untuk mencetak tabel perkalian
// Baris dan kolom dari 1 hingga 5

return 0;

} ---END_INITIAL_CODE---

---SOLUTION_CODE--- #include <stdio.h>

int main() { printf("Tabel Perkalian 5x5:\n");

for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= 5; j++) {
        printf("%-3d", i * j);  // %-3d untuk format rata kiri dengan lebar 3 karakter
    }
    printf("\\n");
}

return 0;

} ---END_SOLUTION_CODE---