---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 ```c 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: ```c #include 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: ```c #include 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. ```c #include 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 ```c for (int i = 0; i <= 10; i += 2) { printf("%d ", i); // Output: 0 2 4 6 8 10 } ``` ### Menurunkan nilai ```c 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 ```c 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: ```c #include 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: ```c // 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:** - [https://www.w3schools.com/c/c_for_loop.php](https://www.w3schools.com/c/c_for_loop.php) - [https://www.w3schools.com/c/c_for_loop_nested.php](https://www.w3schools.com/c/c_for_loop_nested.php) - [https://www.w3schools.com/c/c_for_loop_reallife.php](https://www.w3schools.com/c/c_for_loop_reallife.php) ---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 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 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---