Loop for adalah konstruksi perulangan yang paling banyak dipakai di C ketika jumlah iterasi sudah diketahui di muka—misalnya iterasi 10 kali, iterasi sebanyak elemen di sebuah array, atau iterasi dari 0 sampai N-1. Loop for menggabungkan tiga komponen kunci perulangan ke dalam satu baris: inisialisasi counter, kondisi pengulangan, dan pembaruan counter. Penggabungan ini membuat loop for lebih ringkas dan lebih mudah dibaca dibanding while untuk kasus pencacahan. Pada chapter ini kita akan menelaah sintaks for, urutan evaluasi ketiga komponennya, serta pola iterasi array yang paling umum dipakai dalam kode C sehari-hari.
Sintaks Dasar for #
Bentuk umum for di C adalah sebagai berikut:
for (init; kondisi; update) {
/* body loop */
}Tiga komponen di dalam tanda kurung dipisahkan oleh titik koma. Berdasarkan ISO/IEC 9899 §6.8.5.3, urutan eksekusinya adalah:
initdievaluasi sekali sebelum iterasi pertama.kondisidievaluasi sebelum setiap iterasi. Jika hasil0, loop berhenti. Jika bukan0, body dieksekusi.- Setelah body selesai,
updatedievaluasi, lalu kontrol kembali ke langkah 2.
Ketiga komponen boleh dikosongkan, tetapi titik koma pemisahnya wajib ada. Bentuk for (;;) adalah idiom loop tanpa akhir yang lazim dipakai bersama break.
Visualisasi Konsep #
Diagram berikut memperlihatkan urutan eksekusi tiga komponen for (init, kondisi, update) di sekitar body loop:
Pada diagram di atas, init hanya dievaluasi satu kali di awal—tidak diulang pada iterasi berikutnya. Setelah itu, siklus berulang antara kondisi → body → update → kondisi. Pengecekan kondisi selalu mendahului body, sehingga bila kondisi awal sudah false, body tidak pernah dieksekusi. Statement update dieksekusi setelah body selesai dan sebelum kondisi dievaluasi ulang. Inilah sebabnya for (int i = 1; i <= 5; i = i + 1) menghasilkan iterasi i = 1, 2, 3, 4, 5 lalu berhenti: setelah i = 5 diupdate menjadi 6, kondisi 6 <= 5 menjadi false dan loop keluar.
#include <stdio.h>
int main(void) {
for (int i = 1; i <= 5; i = i + 1) {
printf("Iterasi ke-%d\n", i);
}
printf("Selesai\n");
return 0;
}Output yang Dihasilkan:
Iterasi ke-1
Iterasi ke-2
Iterasi ke-3
Iterasi ke-4
Iterasi ke-5
SelesaiMari kita telaah baris-baris kode di atas:
- Baris 4 (
for (int i = 1; i <= 5; i = i + 1)): deklarasiint i = 1di dalamforadalah inisialisasi counter yang berlaku sepanjang loop. Kondisii <= 5dievaluasi sebelum setiap iterasi. Ekspresii = i + 1adalah update yang dieksekusi setelah body selesai. - Baris 5 (
printf(...)): body loop yang mencetak nomor iterasi. Body dieksekusi ketika kondisi menghasilkan nilai bukan0. - Baris 7 (
printf("Selesai\n");): dieksekusi satu kali setelahibernilai6dan kondisi6 <= 5menjadi false.
for dengan Step Berbeda #
Update pada for tidak harus berupa i = i + 1. Kita bebas memakai step lain, misalnya hitung mundur atau lompat dua angka sekaligus:
#include <stdio.h>
int main(void) {
printf("Hitung mundur:\n");
for (int i = 5; i >= 1; i = i - 1) {
printf(" %d...\n", i);
}
printf("Leppas!\n");
printf("Bilangan genap 0..20:\n");
for (int i = 0; i <= 20; i = i + 2) {
printf("%d ", i);
}
printf("\n");
return 0;
}Output yang Dihasilkan:
Hitung mundur:
5...
4...
3...
2...
1...
Leppas!
Bilangan genap 0..20:
0 2 4 6 8 10 12 14 16 18 20 Pada loop pertama, i dimulai dari 5 dan dikurangi satu setiap iterasi sampai i < 1 menjadi true (yaitu ketika i = 0). Pada loop kedua, i dimulai dari 0 dan ditambah dua setiap iterasi, sehingga mencetak bilangan genap 0, 2, 4, ..., 20. Loop kedua berhenti ketika i = 22 dan 22 <= 20 menjadi false.
Iterasi Array dengan for #
Salah satu pemakaian paling umum for adalah mengiterasi elemen array. Kita menghitung jumlah elemen dengan operator sizeof, lalu loop dari indeks 0 sampai n-1:
#include <stdio.h>
int main(void) {
int harga[] = {5000, 7000, 12000, 3000, 9000};
int total = 0;
int n = sizeof(harga) / sizeof(harga[0]);
for (int i = 0; i < n; i = i + 1) {
printf("Item %d: %d\n", i, harga[i]);
total = total + harga[i];
}
printf("Total belanja: %d\n", total);
return 0;
}Output yang Dihasilkan:
Item 0: 5000
Item 1: 7000
Item 2: 12000
Item 3: 3000
Item 4: 9000
Total belanja: 36000Pola for (int i = 0; i < n; i = i + 1) adalah idiom standar mengiterasi array di C. Indeks dimulai dari 0 (bukan 1) dan berhenti sebelum mencapai n. Ekspresi sizeof(harga) / sizeof(harga[0]) menghitung jumlah elemen array dengan membagi total ukuran array dengan ukuran satu elemen—pada contoh ini, sizeof(int) * 5 / sizeof(int) = 5.
Variasi Sintaks for #
Komponen for dapat dimanipulasi untuk berbagai keperluan:
fortanpainit: counter sudah dideklarasikan sebelumnya.fortanpaupdate: pembaruan dilakukan di dalam body loop.fordengan banyak counter: misalnyafor (int i = 0, j = 10; i < j; i = i + 1, j = j - 1).for (;;): ketiga komponen kosong, loop tanpa akhir—biasanya dipasangkan denganbreak.
Pilihan variasi harus dipertimbangkan dengan kejelasan kode sebagai prioritas utama. Jika loop terlihat rumit, sering kali lebih baik memecahnya menjadi loop while yang eksplisit agar pembaca dapat mengikuti alurnya.
Dengan pondasi for di atas, chapter berikutnya akan memperluas pola menjadi loop bersarang (nested loops) untuk kasus seperti tabel perkalian dan pola segitiga bintang.