Struktur Kendali Pengulangan Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN - 2008
Struktur Kontrol Pada C Struktur Pengulangan : Beberapa instruksi diulang untuk suatu jumlah pengulangan yang tertentu, jumlah pengulangan dapat diketahui sebelumnya atau ditentukan dalam perjalanan program. Konstruksi for Sintaks : for(exp1; exp2; exp3) statement; atau: for(exp1; exp2; exp3){ statement1; statement2; ……. }
Blok statement
1
dimana: exp1 : adalah ekspresi untuk inisialisasi, exp2 : adalah ekspresi conditional exp3 : adalah ekspresi increment atau decrement Infinite Loop: Untuk membuat infinite loop dapat dilakukan dengan menggunakan “for-loop”, dengan menghilangkan ketiga parameter (exp1, exp2, exp3) yang ada pada for loop. Untuk keluar dari loop dapat digunakan statement break. Contoh Program-1
Contoh Infinite Loop: for ( ; ; ) printf(“Saintek UIN ! \n”); Program tersebut akan menampilkan kalimat: “Saintek UIN !” terus menerus tanpa henti (infinite). Untuk menghentikannya Anda bisa menggunakan Ctrl + Break atau Ctrl + C atau tekan Ctrl + Alt + Del atau tekan Tombol Reset. • Contoh penggunaan for dalam program untuk mengetahui rata-rata pengeluaran uang pembelian bensin selama satu bulan, dengan data sbb :
2
Minggu 1 2 3 4
Pengeluaran Rp. 32.000,Rp. 29.000,Rp. 33.000,Rp. 24.000,-
Algoritma : 1. Set variabel jumlah ke nol 2. Baca data dari keyboard dan simpan pada variabel Data 3. Tambahkan Data ke jumlah 4. Ulangi 2 dan 3 sebanyak 4 kali 5. Rerata = Jumlah / 4
/* Program Hitung_Rerata
*/
float Data,Jumlah,Rerata; int i; void main() { Jumlah = 0.0; for( i = 1; i <= 4; i++) { printf(“Data minggu ke-%d :”,i); scanf(“%f”,&Data); Jumlah = Jumlah + Data; } Rerata = Jumlah / 4; printf(“Rerata = Rp %8.2f\n”,Rerata); }
3
/* Contoh Program Tabel Kebenaran */ #include <stdio.h> int P,Q; void main() { printf(“==============================\n”); printf(“P Q P or Q P and Q Not P P xor Q\n”); printf(“==============================\n”); for(P=1; P>=0; P--) for(Q = 1; Q>=0; Q--) printf(“%4d %4d %4d %4d %4d %4d\n”, P, Q, P||Q, P&&Q, !P, P^Q ); printf(“==============================\n”); }
Konstruksi While: Sintaks :
while (exp) statements; atau :
while(exp) { statement1; statement2; ….. …. } Dimana: • exp adalah ekspresi boolean yang menghasilkan nilai True (satu) atau False (nol).
4
• Statement di-eksekusi berulang-ulang selama exp tidak Nol. • Pengetesan exp dilakukan SEBELUM statements dilaksanakan. Konstruksi Do-While: Sintaks :
do{ < statements >; } while(exp); • Selama nilai exp berulang-ulang.
true
maka
statement
dieksekusi
• Pengetesan exp dilakukan SETELAH meng-eksekusi statement.
•
Pada konstruksi while, statement atau blok statement mungkin tidak akan pernah dilaksanakan, bila nilai ekspresi boolen (exp) bernilai False, karena sebelum konstruksi pengulangan dimasuki nilai ekspresi boolean (exp) terlebih dahulu diuji.
•
Pada konstruksi do-while statement atau blok statement pasti dikerjakan paling sedikit satu kali, karena ekspresi boolean baru diuji pada akhir blok pengulangan. Beberapa cara untuk menghentikan pengulangan, ini dapat dilakukan dengan menambah : 1. Sentinel atau Pembatas dengan kode khusus 2. Pertanyaan, Apakah pengulangan akan dilanjutkan.
5
Cara ‘Pertanyaan’ pada konstruksi While #include <stdio.h> int Panjang, Lebar, Luas; char Ulang; void main() { printf(”Teruskan Perhitungan ? (Y/T) :”); scanf(”%c”,&Ulang); while((toupper(Ulang)) == ’Y’) { printf(”Panjang : ”); scanf(”%d”,&Panjang); printf(”Lebar : ”); scanf(”%d”,&Lebar); Luas = Panjang * Lebar; printf(”Luas = %d\n\n”,Luas); printf(”Teruskan Perhitungan?(Y/T):”); scanf(”%c”,&Ulang); } }
Cara ‘sentinel’ pada konstruksi do-while sebagai sentinel, digunakan nilai 0 pada variabel Panjang atau variabel Lebar. #include <stdio.h> int Panjang,Lebar,Luas; char Ulang; void main() { do{ printf(“Panjang [0=selesai] : “); scanf(“%d”,&Panjang); printf(“Lebar [0=selesai] : “); scanf(“%d”,&Lebar); Luas = Panjang * Lebar; printf(“Luas = %d\n”,Luas); printf(“\n”); } while((Panjang != 0) && (Lebar != 0)); }
6
Latihan: 1. Tulislah algoritma untuk menampilkan teks “Hello World” sebanyak 100 kali. Buat program untuk algoritma tersebut dalam bahasa C. 2. Buat program untuk menghitung dan menampilkan jumlah bilangan ganjil dari 11 s/d 188, dengan menggunakan : • for loop • while loop • do – while loop
7