Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Soal-soal
2
Apa yang tercetak : ? #include<stdio.h> void main() { int I, N;
while(I <= 5) { printf(“\n%i”,N); N = N + 5; I++; } Apa yang tercetak : ?
3
#include<stdio.h> void main() { int I, N; N = 45; I = 1;
while(I <= 5) { printf(“\n%i”,N); N = N + 5; I++; } Tercetak : 45 50 55 60 65 nilai I Kondisi I <= 5 Tercetak oleh printf(“\n%i”,N) Oleh N=N+5 nilai N menjadi: Oleh I=I+1 nilai I menjadi: N 45 50 55 60 65 70 1 2 3 4 5 6 True False 45 50 55 60 65 50 55 60 65 70 2 3 4 5 6 Keluar dari loop
4
Apa yang tercetak : ? #include<stdio.h> void main() { int I, N;
while(I <= 5) { N = N + 5; I++; } printf(“\n%i”,N); Apa yang tercetak : ?
5
Apa yang tercetak : ? #include<stdio.h> void main() { int I, N;
while(I <= 5) { printf(“\n%i”,N); N = N + 5; I++; } #include<stdio.h> void main() { int I, N; N = 45; I = 1; while(I <= 5) { N = N + 5; I++; } printf(“\n%i”,N); Tercetak : 45 50 55 60 65 Apa yang tercetak : ?
6
Apa yang tercetak : ? #include<stdio.h> void main() { int I, N;
while(I <= 5) { N = N + 5; I++; } printf(“\n%i”,N); #include<stdio.h> void main() { int I, N; N = 45; I = 1; while(I <= 5) { printf(“\n%i”,N); N = N + 5; I++; } 45 50 55 60 65 Apa yang tercetak : ? nilai I Kondisi I <= 5 Tercetak oleh printf(“\n%i”,N) Oleh N=N+5 nilai N menjadi: Oleh I=I+1 nilai I menjadi: N 45 50 55 60 65 50 55 60 65 70 2 3 4 5 6 45 50 55 60 65 70 1 2 3 4 5 6 True False Keluar dari loop
7
#include<stdio.h> void main() { int I, N; N = 45; I = 1;
while(I <= 5) { N = N + 5; I++; } printf(“\n%i”,N); Tercetak : 70 nilai I Kondisi I <= 5 Oleh N=N+5 nilai N menjadi: Oleh I=I+1 nilai I menjadi: N 50 55 60 65 70 2 3 4 5 6 45 50 55 60 65 70 1 2 3 4 5 6 True False Keluar dari loop
9
Apa yang tercetak : ? #include<stdio.h> void main() { int X, N;
while(N <= 100) { N = N + X; printf(“\n%i”,N); X = X + 5; } Apa yang tercetak : ? 263 Soal-01e Program-1
10
N = 35; X = 0; 35 while(N <= 100) { N = N + X; printf(“\n%i”,N);
X = X + 5; } Tercetak : 35 N=N+X nilai N menjadi: Tercetak oleh printf(,N) X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N 5 35 5 True 35 35 263 Soal-01e Program-1
11
N = 35; X = 0; 35 while(N <= 100) 40 { N = N + X; printf(“\n%i”,N);
X = X + 5; } Tercetak : 35 40 N=N+X nilai N menjadi: Tercetak oleh printf(,N) X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N 5 10 35 40 5 10 True 35 40 35 40 263 Soal-01e Program-1
12
N = 35; X = 0; 35 while(N <= 100) 40 { N = N + X; 50
printf(“\n%i”,N); X = X + 5; } Tercetak : 35 40 50 N=N+X nilai N menjadi: Tercetak oleh printf(,N) X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N 5 10 15 35 40 50 5 10 15 True 35 40 50 35 40 50 263 Soal-01e Program-1
13
N = 35; X = 0; 35 while(N <= 100) 40 { N = N + X; 50
printf(“\n%i”,N); X = X + 5; } Tercetak : 35 40 50 65 N=N+X nilai N menjadi: Tercetak oleh printf(,N) X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N 5 10 15 20 35 40 50 65 5 10 15 20 True 35 40 50 65 35 40 50 65 263 Soal-01e Program-1
14
N = 35; X = 0; 35 while(N <= 100) 40 { N = N + X; 50
printf(“\n%i”,N); X = X + 5; } Tercetak : 35 40 50 65 85 N=N+X nilai N menjadi: Tercetak oleh printf(,N) X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N 5 10 15 20 25 35 40 50 65 85 5 10 15 20 25 True 35 40 50 65 85 35 40 50 65 85 263 Soal-01e Program-1
15
N = 35; X = 0; 35 while(N <= 100) 40 { N = N + X; 50
printf(“\n%i”,N); X = X + 5; } Tercetak : 35 40 50 65 85 110 N=N+X nilai N menjadi: Tercetak oleh printf(,N) X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N 5 10 15 20 25 30 35 40 50 65 85 110 5 10 15 20 25 30 True 35 40 50 65 85 110 35 40 50 65 85 110 263 Soal-01e Program-1
16
N = 35; X = 0; 35 while(N <= 100) 40 { N = N + X; 50
printf(“\n%i”,N); X = X + 5; } Tercetak : 35 40 50 65 80 110 N=N+X nilai N menjadi: Tercetak oleh printf(,N) X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N 5 10 15 20 25 30 35 40 50 65 85 110 5 10 15 20 25 30 True False 35 40 50 65 85 110 35 40 50 65 85 110 263 Soal-01e Program-1 Keluar dari loop
18
Apa yang tercetak : ? N = 35; T = 0; X = 0; while(T <= 100)
{ T = T + N; printf(“\n%i”, T ); N = N + X; X = X + 5; } Apa yang tercetak : ? 263 Soal-01f Program-2
19
35 70 110 N = 35; T = 0; X = 0; while(T <= 100) { T = T + N;
printf(“\n%i”, T ); N = N + X; X = X + 5; } Tercetak : 35 70 110 Oleh T=T+N nilai T menjadi: Oleh N=N+X nilai N menjadi: Tercetak oleh printf(,T) X=X+5 nilai X menjadi: X Kondisi T <= 100 N T 35 40 50 35 70 110 5 10 15 True False 35 70 110 35 70 110 35 40 50 5 10 15 Keluar dari loop
21
Apa yang tercetak : ? #include<stdio.h> void main() { int X, N;
while(N <= 100) { X = X + 5; N = N + X; printf(“\n%i”,N); } Apa yang tercetak : ?
22
#include<stdio.h> void main() { int X, N; X = 5; N = 45;
while(N <= 100) { X = X + 5; N = N + X; printf(“\n%i”,N); } Tercetak : 55 70 90 115 Oleh N=N+X nilai N menjadi: X=X+5 nilai X menjadi: Tercetak oleh printf(,N) nilai X Kondisi N <= 100 N 10 15 20 25 5 10 15 20 25 45 55 70 90 115 True False 55 70 90 115 55 70 90 115 Keluar dari loop
24
Apa yang tercetak : ? #include<stdio.h> void main()
{ int X, N, T; X = 10; N = 20; T = 0; while(T <= 100) { X = X + 5; N = N + X; T = T + N } printf(“%i”, T); Apa yang tercetak : ?
25
X = 10; N = 20; T = 0; 170 while(T <= 100) { X = X + 5; N = N + X;
T = T + N } printf(“%i”, T); Tercetak : 170 Oleh N=N+X nilai N menjadi: Oleh T=T+N nilai T menjadi: X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N T 10 15 20 25 20 35 55 80 35 90 170 True False 15 20 25 35 55 80 35 90 170 Keluar dari loop
27
Apa yang tercetak : ? #include<stdio.h> #include<stdio.h>
for() while() #include<stdio.h> void main() { int I; I = 1; while(I<=5) { I++; printf(“\n%i”,I); } #include<stdio.h> void main() { int I; for(I=1; I<=5 ; ) { I++; printf(“\n%i”,I); } Apa yang tercetak : ? 214
28
Tercetak : 2 3 4 5 6 #include<stdio.h> #include<stdio.h>
for() while() #include<stdio.h> void main() { int I; I = 1; while(I<=5) { I++; printf(“\n%i”,I); } #include<stdio.h> void main() { int I; for(I=1; I<=5 ; ) { I++; printf(“\n%i”,I); } Tercetak : 2 3 4 5 6 214
29
Perkembangan nilai I while() I = 1 nilai I I<=5 I=I+1 printf for()
#include<stdio.h> void main() { int I; for(I=1; I<=5 ; ) { I++; printf(“\n%i”,I); } #include<stdio.h> void main() { int I; I = 1; while(I<=5) { I++; printf(“\n%i”,I); } Tercetak : 2 3 4 5 6 I<=5 I = 1 I=I+1 printf I false true Perkembangan nilai I nilai I Kondisi I <= 5 Oleh I=I+1 nilai I menjadi: Tercetak oleh printf(“\n%i”, I) 1 2 3 4 5 6 True False 2 3 4 5 6 2 3 4 5 6 Keluar dari loop 214
31
Perkembangan nilai I while() I = 1 nilai I I<=5 I=I+1 printf for()
#include<stdio.h> void main() { int I; for(I=1; I<=5 ; ) { I++; printf(“\n%i”,I); } #include<stdio.h> void main() { int I; I = 1; while(I<=5) { I++; printf(“\n%i”,I); } Tercetak : 2 3 4 5 6 I<=5 I = 1 I=I+1 printf I false true Perkembangan nilai I nilai I Kondisi I <= 5 Oleh I=I+1 nilai I menjadi: Tercetak oleh printf(“\n%i”, I) 1 2 3 4 5 6 True False 2 3 4 5 6 2 3 4 5 6 Keluar dari loop 214
32
dapat ditulis menjadi : printf(“\n%i”, ++I );
#include<stdio.h> void main() { int I; for(I=1; I<=5 ; ) {printf(“\n%i”,++I ); } } #include<stdio.h> void main() { int I; I = 1; while(I<=5) { printf(“\n%i”,++I ); } } dua instruksi : I++; printf(“\n%i”, I); dapat ditulis menjadi : printf(“\n%i”, ++I ); 214
33
Aapa yang tercetak : ? do while() (halaman 215)
#include<stdio.h> main() { int I; I=1; do { I++; printf(“\n %i”,I); } while ( I<=5 ); I++ printf I I<=5 true false Aapa yang tercetak : ? 215
34
#include<stdio.h> main() { int I; I=1; do { I++;
do while() (halaman 215) I=1 #include<stdio.h> main() { int I; I=1; do { I++; printf(“\n %i”,I ); } while ( I<=5 ); I++ printf I I<=5 true false Tercetak : 2 3 4 5 6 215
35
#include<stdio.h> main() { int I; I=1; do { I++;
do while() (halaman 215) I=1 #include<stdio.h> main() { int I; I=1; do { I++; printf(“\n %i”,I ); } while ( I<=5 ); I++ printf I I<=5 true false Tercetak : 2 3 4 5 6 Perkembangan nilai I Oleh I++ nilai I menjadi: Tercetak oleh printf (“\n %i”, I ) nilai I Kondisi I <= 5 1 2 3 4 5 2 3 4 5 6 2 3 4 5 6 True, lanjutkan False, keluar dari loop 215
36
#include<stdio.h> main() { int I; I=1; do { printf(“\n %i”,++I);
} while ( I<=5 ); #include<stdio.h> main() { int I; I=1; do printf(“\n %i”,++I); while ( I<=5 ); } printf(“\n %i”, ++I ); I ditambah 1 lebih dulu, kemudian baru dicetak 215
37
Apa yang tercetak : ? Nilai awal condition tidak mesti selalu = 1.
CONTOH-3 Nilai awal condition tidak mesti selalu = 1. Perubahan nilai condition juga tidak mesti selalu +1 Halaman : 216 #include<stdio.h> main() { int I; for ( I=3 ; I<=10 ; I=I+2 ) { printf(“\n%i”, I); } #include<stdio.h> main() { int I; I = 3; while( I<=10 ) { printf(“\n%i”, I); I=I+2; } Apa yang tercetak : ? 216
38
Tercetak : 3 5 7 9 Tercetak : 3 5 7 9 #include<stdio.h>
main() { int I; for ( I=3 ; I<=10 ; I=I+2 ) { printf(“\n%i”, I); } #include<stdio.h> main() { int I; I = 3; while( I<=10 ) { printf(“\n%i”, I); I=I+2; } Tercetak : 3 5 7 9 Tercetak : 3 5 7 9 216
39
CONTOH-4 Sebaiknya merubah nilai condition hanya ada pada satu instruksi yang sesuai bentuk umum Halaman : 216 #include<stdio.h> main() { int I; for ( I=3 ; I<=10 ; I=I+2 ) { printf(“\n %i”, I); I = I+1; } Apa yang tercetak : ? 216
40
#include<stdio.h> main() { int I; for ( I=3 ; I<=10 ; I=I+2 )
{ printf(“\n %i”, I); I = I+1; } Merubah nilai condition. di sembarang tempat mungkin tidak menyebabkan error. Tapi dapat membingungkan Pada penggunaan for( ), hindari menulis algoritma seperi ini. Tercetak : 3 6 9 printf I 3 6 9 I=I+1 4 7 10 I=I+2 6 9 12 I 3 6 9 12 I<=10 True False Keluar dari loop 216
41
Apa yang tercetak : ? #include<stdio.h> main() { int I;
for ( I=3 ; I<=10 ; I=I+2 ) { printf(“\n %i”, I); I = I-1; } Apa yang tercetak : ? 216
42
#include<stdio.h> main() { int I; for ( I=3 ; I<=10 ; I=I+2 )
{ printf(“\n %i”, I); I = I-1; } printf I 3 4 5 6 7 8 9 10 I 3 4 5 6 7 8 9 10 11 I<=10 True False I=I-1 2 3 4 5 6 7 8 9 I=I+2 4 5 6 7 8 9 10 11 Tercetak : 3 4 5 6 7 8 9 10 Keluar dari loop 216
43
for() while() Apa yang tercetak : ? Halaman 217
CONTOH-5 Halaman 217 for() while() #include<stdio.h> void main() { int I; for( I=1; I >=5; I++ ) { printf(“\n%i”,I); } #include<stdio.h> void main() { int I; I=1; while( I >= 5 ) { printf(“\n%i”,I); I++; } Apa yang tercetak : ? 217
44
for() while() Kemungkinan suatu loop tidak pernah dikerjakan.
CONTOH-5 for() while() #include<stdio.h> void main() { int I; for( I=1; I >=5; I++ ) { printf(“\n%i”,I); } #include<stdio.h> void main() { int I; I=1; while( I >= 5 ) { printf(“\n%i”,I); I++; } TIDAK ADA YANG TERCETAK printf I I++ I 1 I>=5 False Keluar dari loop 217
45
Apa yang tercetak : ? do while() #include<stdio.h> void main()
{ int I; I=1; do { printf(“\n%i”,I); I++; } while( I >= 5 ); Apa yang tercetak : ? 217
46
#include<stdio.h> void main() { int I; I=1;
do while() #include<stdio.h> void main() { int I; I=1; do { printf(“\n%i”,I); I++; } while( I >= 5 ); Tercetak : 1 printf I 1 I 1 I++ 2 I>=5 False Keluar dari loop 217
48
10. 48
49
#include<stdio.h> main() { int I; for( I=10; I>=5; I++ )
10. 49 CONTOH-6 #include<stdio.h> main() { int I; for( I=10; I>=5; I++ ) { printf(“\n%i”,I); } Apa yang tercetak : ? 217
50
#include<stdio.h> main() { int I; for( I=10; I>=5; I++ )
10. 50 CONTOH-6 #include<stdio.h> main() { int I; for( I=10; I>=5; I++ ) { printf(“\n%i”,I); } Suatu loop kemungkinan dilaksanakan terus menerus Kondisi I >= 5 selalu bernilai TRUE sehingga akan mencetak nilai I terus menerus sampai nilai batas tertinggi bilangan integer yaitu 32767 terlampaui dan nilai I menjadi baru nilai( I >= 5 ) bernilai False, dan keluar dari loop. Tercetak: 10 11 12 . 32767 Setelah nilai I = maka kondisi (I >= 5) bernilai FALSE dan keluar dari loop 217
51
10. 51
52
for() Apa yang tercetak : ? #include<stdio.h> main() { int I;
10. 52 CONTOH-7 for() #include<stdio.h> main() { int I; for ( I=3; I<=5; I=I+0.5 ) { printf(“\n %i”, I); } Apa yang tercetak : ? 218
53
for() #include<stdio.h> main() { int I;
CONTOH-7 Karena I bertipa int, maka 0.5 dianggap 0. Sehingga I = I + 0.5 dianggap sebagai I = I + 0 Sehingga program disebelah akan selalu mencetak 3 terus menerus sampai dihentikan dengan ‘break’ oleh operator, yaitu dengan cara menekan tombol <Ctrl> dan <C> atau tombol <Ctrl> dan <Break> for() #include<stdio.h> main() { int I; for ( I=3; I<=5; I=I+0.5 ) { printf(“\n %i”, I); } Tercetak : 3 3 dst 218
54
for() CONTOH-8 #include<stdio.h> main() { float F;
10. 54 CONTOH-8 for() for() #include<stdio.h> main() { int I; for(I=3; I<=5; I=I+1.5 ) { printf(“\n%i”,I); } #include<stdio.h> main() { float F; for( F=3.0; F<=5.5; F=F+0.5 ) { printf(“\n%10.8f”, F); } Tercetak : 3 4 5 Tercetak : I bertipe int, sehingga I = I dianggap I = I + 1 sehingga bila program disamping dijalankan, akan tercetak : 218
55
#include<stdio.h> main() { float F;
10. 55 for() #include<stdio.h> main() { float F; for( F=3.0; F<=3.5; F=F+0.1 ) { printf(“\n%10.8f”, F); } Tercetak : Menyimpan nilai fraction belum tentu tepat. Oleh karena itu bilangan fraction hanya tersimpan mendekati nilai sebenarnya sehingga ada istilah “Single Precision” (ketelitian tunggal) dan “Double Precision” (ketelitian ganda) Tipe float, adalah tipe ketelitian tunggal 218
56
10. 56 218
61
10. 61
62
10. 62
63
10. 63
65
65 6565 6565 6.03 Perhatikan kembali Contoh-1 sebelumnya
sebagai berikut : Contoh-1A #include<stdio.h> main() { int I; for ( I=1 ; I<=5 ; I=I+1 ) printf(“\n %i”, I); } I=I+1, dapat ditulis menjadi : I++ atau ++I sehingga menjadi: for (I=1; I<=5; I++) atau for(I=1; I<=5; ++I) Untuk menyingkat program, instruksi untuk clear screen dibuang, tapi bila akan ditest dikomputer clrscr() disertakan lagi. Beberapa Cara penulisan Contoh-1 diatas, yang menghasilkan effek yang sama : Contoh-1C #include<stdio.h> main() { int I; for ( I=1 ; I<=5 ; I++ ) printf(“\n %i”, I); } Contoh-1B #include<stdio.h> main() { int I; for ( I=1 ; I<=5 ; I++ ) printf(“\n %i”, I); } Bahkan instruksi print dapat ditulis pada baris yang sama dengan instruksi for………… Karena instruksi dalam loop hanya ada 1 instruksi, maka tanda kurung { dan } boleh tidak dipakai. Contoh-1E #include<stdio.h> main() { int I; I=1; for ( ; I<=5 ; ) { printf(“\n %i”, I); I++; } Contoh-1D #include<stdio.h> main() { int I; I=1; for ( ; I<=5 ; I++ ) printf(“\n %i”, I); } Initialization, pemberian nilai awal I dapat dilakukan sebelum instruksi for…… Perhatikan : sebelum dan sesudah I<=5 ada tanda ; (titik koma) Perhatikan : sebelum I<=5 ada tanda ; (titik koma) Perubahan nilai I dilakukan dalam loop (sesudah instruksi for….) Initialization, dilakukan sebelum instruksi for…… Karena dalam loop ada lebih dari satu instruksi, maka digunakan { dan } 6565
66
66 6666 6666 6.04 Masih melanjutkan Contoh-1 sebelumnya: Contoh-1F
#include<stdio.h> main() { int I; I=1; for ( ; I<=5 ; ) printf(“\n %i”, I++); } Lihat lagi: Contoh-1E #include<stdio.h> main() { int I; I=1; for ( ; I<=5 ; ) { printf(“\n %i”, I); I++; } Akan tercetak : 1 2 3 4 5 Penambahan nilai I dengan I++ dilakukan jadi satu dalam instruksi printf Catatan : dengan I++, maka mencetak I dulu, baru I ditambah satu. Contoh-1G #include<stdio.h> main() { int I; I=1; for ( ; I<=5 ; ) printf(“\n %i”, ++I); } Contoh-1H #include<stdio.h> main() { int I; I=1; for ( ;; ) printf(“\n %i”, ++I); if (I>=5) break; } Penambahan nilai I bukan I++, tapi ++I maka akan tecetak : 2 3 4 5 Bila nilai I >= 5 maka keluar dari loop sehingga tercetak : Catatan : dengan ++I, maka I ditambah satu dulu baru dicetak. 2 3 4 5 6666
67
67 67 6767 ? 6767 6.06 CONTOH-3 Mana hasil cetakannya???
Program disebelah tidak mengerjakan loop jadi tidak mencetak sesuatu. Karena : Nilai awal I = 10. Sehingga begitu memeriksa kondisi I<= 5 langsung nilainya FALSE dan tidak mengerjakan loop. Contoh-3A #include<stdio.h> main() { int I; for ( I=10 ; I<=5 ; I=I-2 ) printf(“\n %i”, I); } Mana hasil cetakannya??? Contoh-3B #include<stdio.h> main() { int I; for ( I=10 ; I>=5 ; I=I-2 ) printf(“\n %i”, I); } Nilai I dapat dibuat turun Bila program Contoh-3B dijalankan, akan tercetak : 10 8 6 Catatan: Untuk mengurangkan I dengan 1 dapat ditulis dengan : I-- atau --I Contoh-3C Kondisi I >= 5 selalu bernilai TRUE sehingga akan mencetak nilai I terus menerus sampai nilai batas tertinggi bilangan integer yaitu 32767 terlampaui dan nilai I menjadi baru nilai( I >= 5 ) bernilai False, dan keluar dari loop. Bila program disamping dijalankan, akan tercetak : #include<stdio.h> main() { int I; for ( I=10 ; I>=5 ; I++ ) printf(“\n %i”, I); } 10 11 12 13 . 32767 ? 6767
68
68 6868 6868 6.07 CONTOH-4 Untuk data dengan tipe integer (int),
pecahan selalu tidak diperhatikan. Jadi dianggap 0. Sehingga I = I + 0.5 dianggap sebagai I = I + 0 Sehingga program disebelah akan selalu mencetak 3 terus menerus sampai dihentikan dengan ‘break’ oleh operator, yaitu dengan cara menekan tombol <Ctrl> dan <C> atau tombol <Ctrl> dan <Break> Hasil yang tercetak : Contoh-4A #include<stdio.h> main() { int I; for ( I=3 ; I<=5 ; I=I+0.5 ) printf(“\n %i”, I); } 3 dst Contoh-4B #include<stdio.h> main() { int I; for ( I=3 ; I<=5 ; I=I+1.5 ) printf(“\n %i”, I); } I = I + 1.5 dianggap I = I + 1 sehingga bila program disamping dijalankan, akan tercetak : 3 4 5 Contoh-4C #include<stdio.h> main() { float I; for ( I=3 ; I<=5 ; I=I+0.5 ) printf(“\n %f”, I); } Untuk bekerja dengan nilai yang mengandung pecahan, digunaka data tipe float, dan dicetak dengan format %f Bila program disamping dijalankan, akan tercetak : 6868
69
69 6969 6969 6.08 CONTOH-5 Contoh-5B Contoh-5A #include<stdio.h>
main() { int I,A,B,C; A=1; B=10; C=2; for ( I=A ; I<=B ; I=I+C ) printf(“\n %i”, I); } Mudah dipahami bahwa program disebelah bila dijalankan akan mencetak: 1 3 5 7 9 Karena awalnya 1, naik 2 selama <=10 setelah nilai I =11, keluar dari loop, tidak mencetak nilai I lagi. Contoh-5B Nilai A dirobah tidak akan mempengaruhi loo. Tapi bila nilai C dan B yang dirobah akan mempengaruhi loop. sehingga bila program disebelah dijalankan, akan tercetak : #include<stdio.h> main() { int I,A,B,C; A=1; B=10; C=2; for ( I=A ; I<=B ; I=I+C ) printf(“\n %i”, I); C=C+1; } 1 4 8 Karena pada loop pertama nilai I ditambah 3 tapi pada loop kedua nilai I ditambah 4. Perhatikan perkembangan nilai I dan nilai B Contoh-5C Bila program disamping dijalankan, akan tercetak : B naik jadi I naik jadi #include<stdio.h> main() { int I,A,B,C; A=1; B=10; C=2; for ( I=A ; I<=B ; I=I+C ) printf(“\n %i”, I); B=B+1; } I B kondisi cetak 1 3 5 7 9 11 13 15 17 19 1 3 5 7 9 11 13 15 17 19 21 10 11 12 13 14 15 16 17 18 19 20 True FALSE 1 3 5 7 9 11 13 15 17 19 11 12 13 14 15 16 17 18 19 20 3 5 7 9 11 13 15 17 19 21 Keluar dari loop Nilai I = 21, tidak dicetak, karena kondisi FALSE, keluar dari loop. 6969
70
7070 7070 6.09 CONTOH-6 Contoh-6A #include<stdio.h> main() {
int I; for ( ; I<=5 ;I++ ) printf(“\n %i”, I); } Bila I tidak dinyatakan nilai awalnya tapi langsung digunakan (ditest atau dicetak) maka nilai awalnya dinyatakan = 0 sehingga program akan mencetak : 1 2 3 4 5 Contoh-6B #include<stdio.h> main() { int I; for ( ; I ; ) printf(“\n %i”,I); } for (;I;) maksudnya : - kerjakan loop bila I != 0 - keluar dari loop bila I = 0 karena nilai awal I tidak dinyatakan sehingga dinyatakan = 0, maka : program tidak mengerjakan loop, yang artinya tidak mencetak sesuat. Contoh-6C Tercetak : #include<stdio.h> main() { int I; I=1; for ( ; I ; ) printf(“\n %i”,I); } for (;I;) maksudnya : - kerjakan loop bila I != 0 - keluar dari loop bila I = 0 karena nilai awal I = 1 dan tidak pernah ditambah atau dikurang, maka : program akan mencetak nilai I yaitu mencetak angka 1 terus menerus sampai dihentikan dengan ‘break’ 1 dst sampai dihentikan dengan ^C 7070
71
7171 7171 6.10 Contoh-6D #include<stdio.h> main() { int I;
for ( ; I ;I++ ) printf(“\n %i”, I); } for (;I;I++) maksudnya : - akan mengerjakan loop bila I != 0 baru kemudian I ditambah 1. - keluar dari loop bila I = 0 karena nilai awal I tidak dinyatakan sehingga dinyatakan = 0, maka : program tidak mengerjakan loop, yang artinya tidak mencetak sesuatu. Contoh-6E #include<stdio.h> main() { int I; for ( ; I ;I-- ) printf(“\n %i”,I); } Sama dengan atas tidak mencetak sesuatu. Walaupun ada instruksi I-- atau I dikurangi 1, tapi instruksi I dikurang 1 ini belum sempat dikerjakan karena langsung keluar dari loop. Contoh-6F #include<stdio.h> main() { int I; for ( ; ; ) printf(“\n Jakarta”); } Akan mencetak “Jakarta” terus menerus sampai dihentikan dengan menekan tombol break ^C karena nilai kondisi selalu tidak sama dg 0 (nol) Tercetak: Jakarta dst. 7171
72
7272 7272 6.11 CONTOH-7. Logika penulisan program seperti diatas,
Contoh-7A #include<stdio.h> main() { int I; I = 1; for ( ; I<10 ; ) printf(“Jakarta”); } Sama kasusnya dengan Contoh 6-C yang akan mengerjakan loop terus menerus, karena kondisi selalu bernilai TRUE. Jadi program akan mencetak “Jakarta” terus menerus sampai dihentikan dengan ^C. Akan tercetak: Jakarta . Dan seterusnya Logika penulisan program seperti diatas, dapat dimanfaatkan untuk memeriksa apakah data yang diinput sesuai dengan batas nilai yang diinginkan Contoh-7B #include<stdio.h> main() { int Nilai; Nilai = -1; for (; Nilai <0 || Nilai > 100 ; ) printf(“Masukkan Nilai Ujian (0-100) : “); scanf(“%i”, &Nilai ); } Program ini meminta operator untuk menginput sebuah nilai integer. Apabila nilai yang diinput < 0 atau > 100, maka program kembali meminta operator untuk memasukkan nilai Demikianseterusnya sampai nilai yang diinput berada dalam batas 7272
73
7373 7373 6.12 6.2 Penggunaan break dan continue CONTOH-8. atau I=1
Statement break didalam loop menyebabkan control keluar dari loop langsung ke next-instruction #include<stdio.h> main() { int I, N, T; T=0; I=1; for(I=1; I<=10; I++ ) { scanf(“%i”, &N); T = T + N; if(T> 1000) break; } printf(“%i”, T) Walaupun data yang akan diinput ada 10 buah, tapi bila totalnya sudah lebih dari 1000, maka proses input harus dihentikan dengan cara keluar dari loop. atau I=1 T=0 I=1 T=0 I<=10 false I++ true T>1000 break scanf N T=T+N T=T+N T>1000 true scanf N break I<=10 I++ true false printf T printf T 7373
74
7474 7474 6.13 14 I=1 I++ I<=3 scanf N T=T+N T=T+N scanf N I<=3
Contoh-8B statement continue didalam loop yang dibuat oleh control statement for() pada contoh 8B, menyebabkan control langsung menuju ke pengubahan nilai I (dalam contoh I++ yang ada pada instruksi for() ). Untuk contoh ini, ingin dinputkan 5 buah nilai, tapi data yang nilainya lebih kecil dari 1 atau diatas 10 tidak diproses. #include<stdio.h> main() { int I, T; T=0; for ( I=1; I<=5; I++ ) { scanf(“%i” , &N); if (N<1 || N>10) continue T = T + N } printf(“\n %i”, T); Bila data yang diinput misalnya : 5, -2, 12, 9, 17 maka akan tercetak : 14 (yaitu total dari 5+9) I = 1 I=1 I<=3 I++ Perhatikan : tetap melewati I++ Bandingkan dengan algoritma berikut ini : scanf N T=T+N for ( I=1; I<=3; I++ ) { scanf(“%i” , &N); if (N >= 1 && N <= 10) { T = T + N; } } N<1 || N>10 true N<1 || N>10 continue continue true T=T+N scanf N Perhatikan instruksi : if(N >= 1 && N <= 10) Perhatikan : tetap melewati I++ I<=3 I++ true false Bila nilai N berada dalam batas maka tambahkan ke T printf Bandingkan dengan pemakaian continue pada loop yang dibentuk dengan for( )bentuk lain pada halaman lain dan while() T printf T 7474
75
7575 7575 6.14 15 I<=3 I++ scanf N T=T+N continue T=T+N scanf N I++
Contoh-8C statement continue didalam loop yang ditulis dengan for cara pada cintoh-8C, menyebabkan control langsung menuju ke pengeckan nilai I <= 3 sehingga nilai N tidak ditambahkan ke T, dan nilai I tdak ditambah 1. Untuk contoh ini, yang akan ditambahkan ke T hanyalah 3 buah data yang nilainya tidak lebih kecil dari 1 dan tidak lebih besar dari 10, dari sekian banyak data yang diinput. #include<stdio.h> main() { int I, T; T=0; for ( I=1; I<=3; ) { scanf(“%i” , &N); if (N<1 || N>10) continue; T = T + N; I++; } printf(“\n %i”, T); Bila data yang diinput misalnya : 5, -2, 12, 8, 17, 2 maka akan tercetak : 15 (yaitu total dari 5+8+2) I = 1 I = 1 I<=3 false I++ true Bandingkan dengan algoritma berikut ini : scanf N for ( I=1; I<=3; ) { scanf(“%i” , &N); if (N >= 1 && N <= 10) { T = T + N; I++; } T=T+N true N<1 || N>10 continue N<1 || N>10 continue true T=T+N scanf N Perhatikan instruksi : if(N >= 1 && N <= 10) I++ I<=3 true Bila nilai N berada dalam batas maka tambahkan ke T dan I ditambah 1 Tapi bila N < 1 atau N > 10 maka tidak ditambah ke T dan I juga tidak ditambah 1 printf printf T T Bandingkan dengan pemakaian continue pada loop yang dibentuk dengan while( ) 7575
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.