STRUKTUR LOOPING
counter, atau
sentinel (nilai pembatas)
Jika jumlah iterasi diketahui sebelumnya, maka pengulangan dikontrol dengan
counter. Counter merupakan suatu variabel untuk menghitung jumlah iterasi.
Sentinel dipakai untuk mengontrol pengulangan (looping) apabila :
1. Jumlah iterasi tidak diketahui sebelumnya
2. Looping itu mengandung statemen untuk mengambil data dalam tiap
iterasi.
Sentinel (nilai pembatas) menyatakan akhir data. Sentinel harus muncul setelah
semua data regular telah muncul. Sentinel harus berbeda dengan data regular.
Statemen while dapat dikontrol dengan counter maupun sentinel.
for (ekspresi1;ekspresi2;ekspresi3)
statemen
Statemen di atas ekivalen dengan :
eskpresi1;
while (ekspresi2) {
statemen
ekspresi3;
}
kecuali apabila statemen mengandung statemen continue yang akan
dibahas nanti.
ekspresi1 menginisialisasi counter (variabel pengontrol looping) ;
ekspresi2 merupakan kondisi yang menentukan kelanjutan looping;
ekspresi3 mengubah nilai counter.
Konsep Pemrograman 23
#include <stdio.h>
main() {
int a;
printf("\n");
printf("\n");
printf("\n");
return 0;
}
Output :
1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1
2 5 8 11 14 17 20
/*
Konsep Pemrograman 24
* Program ini melakukan penjumlahan :
* 1 + 2 + 3 + ...N
*/
#include <stdio.h>
main() {
long int jumlah = 0;
int bilangan, N;
Output :
Variabel bertipe long int (dapat disingkat long) dapat menampung bilangan
bulat, biasanya dari -2147483648 (LONG_MIN) sampai dengan +2147483647
(LONG_MAX).
Konsep Pemrograman 25
Jika ekspresi2 tidak ada, maka kondisi itu dianggap selalu true.
Jadi
for(;;) {
. . . . .
}
merupakan suatu infinite-loop. (Dapat dipecah dengan menggunakan return atau
break.).
Ada satu lagi statemen yang bisa digunkan untuk melakukan looping, yaitu statemen
do /while, yang bentuknya :
do {
statemen
} while (kondisi);
do {
printf("%d", counter++);
} while (counter <=10);
return 0;
}
Output :
1 2 3 4 5 6 7 8 9 10
Konsep Pemrograman 26
3.1. Statemen break dan continue
#include <stdio.h>
main() {
int x;
Output :
1 2 3 4
Keluar dari loop ketika x == 5
Dalam struktur while dan do/while, evaluasi kondisi segera dilakukan setelah
pelaksanaan continue. Dalam struktur for, setelah pelaksanaan continue
yang dilakukan berikutnya adalah evaluasi ekspresi3 dan kemudian evaluasi
ekspresi2.
Konsep Pemrograman 27
/* Contoh penggunaan continue dalam for-loop */
#include <stdio.h>
main() {
int x;
Output :
1 2 3 4 5 6 7 8 9 10
Nilai 5 dilompati dengan continue.
Untuk memilih dari beberapa alternatif, dengan cara menguji apakah suatu ekspresi
mempunyai nilai yang cocok dengan satu dari beberapa konstanta bernilai bulat.
switch (ekspresi) {
case ekspresi-konstan : statemen
.
.
.
case ekspresi-konstan : statemen
default : statemen
}
Konsep Pemrograman 28
Tiap alternatif diberi label suatu konstanta atau ekspresi konstan bernilai bulat. Jika
ekspresi cocok dengan salah satu label ekspresi-konstan, eksekusi dimulai
dari statemen yang mengikuti label itu sampai dengan statemen break / statemen
terakhir sebelum tanda }. Tiap ekspresi-konstan harus unik. Alternatif yang
dilabel default akan dilaksanakan jika tidak ada alternatif lain yang cocok.
Alternatif default bisa dihilangkan. Jika tidak ada alternatif default dan tidak
ada case yang cocok, maka tidak ada aksi sama sekali
Konsep Pemrograman 29
Masukkan nilai dalam huruf
(EOF untuk berhenti) :
B
A
a
B
b
B
F
Input salah. Tolong ulangi.
c
E
Banyaknya nilai
A : 2
B : 4
C : 1
D : 0
E : 1
akan mencetak
Konsep Pemrograman 30
Kebanyakan komputer menggunakan character-set ASCII (American Standard Code
for Information Interchange), dimana 97 mengkodekan huruf kecil a.
Karakter dapat dibaca dengan fungsi scanf dengan memakai conversion-specifier
%c.
EOF adalah konstanta simbolik (biasanya bernilai -1) yang menyatakan end-of-file.
Didefinisikan dalam berkas stdio.h
Variabel nilai dalam program itu diberi tipe int agar aman, karena harus
menampung nilai dari EOF.
Untuk sistem Unix / Linux, EOF dibuat dengan mengetikkan
<return> <ctrl-d>
Untuk sistem DOS, dibuat dengan mengetiikka <ctrl-z
ekspresi !ekspresi
0 (false) 1 (true)
tidak-nol (true) 0 (false)
Konsep Pemrograman 31
tidak-nol (true) 0 (false) 0 (false)
tidak-nol (true) tidak-nol (true) 1 (true)
Contoh :
char c = 'B';
int k = 7, h = 8;
ekspresi nilai
!c 0
!(k - h) 0
!k - h -8
!!k 1
'A' < c && c <= 'Z' 1
k > h || c < 'K' 1
k / h || k && h - 8 0
Konsep Pemrograman 32
Evaluasi short-circuit ini merupakan sifat yang penting dari operator && dan ||.
Andaikan eksp1 dan eksp2 adalah ekspresi dan eksp1 mempunyai nilai nol. Dalam
ekspresi logika :
evaluasi terhadap eksp2 tidak terjadi, karena nilai dari ekspresi logika itu secara
keseluruhan sudah dapat ditentukan sama dengan nol.
Demikian pula, jika eksp1 bernilai tidak-nol, maka evaluasi terhadap eksp2 dalam
ekspresi logika :
eksp1 || eksp2
tidak terjadi, karena nilai dari ekspresi logika itu secara keseluruhan sudah dapat
ditentukan sama dengan 1.
Konsep Pemrograman 33