Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1 Dasar Pemrograman Komputer [TKL-4002] 2010. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :  Memahami struktur kendali pengulangan (looping)

Presentasi serupa


Presentasi berjudul: "1 Dasar Pemrograman Komputer [TKL-4002] 2010. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :  Memahami struktur kendali pengulangan (looping)"— Transcript presentasi:

1 1 Dasar Pemrograman Komputer [TKL-4002] 2010

2 Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :  Memahami struktur kendali pengulangan (looping) dan memanfaatkannya dalam pembuatan aplikasi program komputer dengan bahasa pemrograman C/C++. 2

3 Struktur Pengulangan (looping)  Konstruksi for, while dan do-while  Nested dan infinite loop  Compound atau Block statement  Break dan Continue 3

4  Struktur pengulangan dimaksudkan untuk melakukan proses pengulangan dari beberapa instruksi dalam sejumlah pengulangan tertentu  Jumlah pengulangan dapat ditentukan sebelumnya atau ditentukan dalam proses pelaksanaan pengulangan.  Tiga macam struktur pengulangan dalam pemrograman terstruktur, yaitu:  Struktur for  Struktur while  Struktur do-while 4

5  Konstruksi for for (exp1; exp2; exp3) statement; atau: for (exp1; exp2; exp3){ statement1; statement2; ……. } exp1 : adalah ekspresi untuk inisialisasi, exp2 : adalah ekspresi conditional exp3 : adalah ekspresi increment atau decrement exp1, exp2 dan exp3 adalah sifatnya optional (boleh ada boleh tidak ada). 5

6 6 SStruktur logika pengulangan for exp1 exp3 statements exp2 true false exp1 exp3 statements exp2 true false

7 7  Contoh : for (x=1; x <= 10; x++) printf(“%d\n”,x); x = 1 x++ printf(“%d\n”,x) x<=10 true false

8  exp1 dan exp3 boleh terdiri dari beberapa ekspresi yang dipisahkan dengan koma.  Contoh: 8 #include int main () { int i,j; for(i=1, j=30; i<j; i++, j--){ printf("%04d -- %04d\n", i,j); } printf("\n\n"); system("PAUSE"); return(0); }

9  Contoh : Program mencetak angka dari 1 sampai 10 Program mencetak angka dari 10 sampai 1 9 #include int main() { int x; for( x = 1 ; x <= 10 ; x++ ) printf( "%d\n", x ); return(0); } #include int main() { int x; for( x = 10 ; x >= 1 ; x-- ) printf( "%d\n", x); return(0); }

10  Contoh penggunaan for untuk menghitung rata-rata pengeluaran uang bensin selama satu bulan, dengan data sbb : MingguPengeluaran 1Rp. 32.000,- 2Rp. 29.000,- 3Rp. 33.000,- 4Rp. 24.000,- 10 Algoritma : 1. Variabel jumlah diberi nilai nol 2. Baca data pengeluaran bensin dari keyboard dan simpan ke variabel data 3. Tambahkan data ke jumlah 4. Ulangi 2 dan 3 sebanyak 4 kali 5. Rerata = Jumlah / 4

11  Program dalam C: 11 /*----------------------------------*/ /* Program Hitung_Rerata */ /*----------------------------------*/ #include int main() { float data, jumlah, rerata; int x; jumlah = 0.0; for( x = 1; x <= 4; x++) { printf(“Data minggu ke-%d :”,x) ; scanf(“%f”,&data); jumlah = jumlah + data; } rerata = jumlah / 4; printf(“Rerata = Rp %8.2f\n”,rerata); return(0); }

12  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: 12 #include int main () { int i = 0; for(;;) { i++; printf("%d ", i); if (i>=10) break; } printf("\n\n"); system("PAUSE"); return(0); }

13  Nested Loop Jika di dalam sebuah pengulangan terdapat statement pengulangan. Pengulangan akan dijalankan dimulai dari pengulangan terdalam. 13 for (int x=1;x<=5;x++) for (int y=5; y>=1; y--) printf(”%d %d ”,x,y); Output : 1 5 1 4 1 3.. 2 5 2 4.. 5 1 int x, y; for (x=1;x<=5;x++) for (y=5; y>=1; y--) printf(”%d %d ”,x,y); Bahasa C Bahasa C++ (diperbolehkan)

14  Contoh : 14 #include int main () { int p,q; 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("%2d %2d %6d %8d %8d %8d\n",p, q, p||q, p&&q, !p, p^q ); printf("===========================================\n"); printf("\n\n"); system("PAUSE"); return(0); }

15  Sintaks : while (eks.boolean) statements; atau : while(eks.boolean){ statement1; statement2; ….. } 15 eks. boolean statements true false

16  Contoh : while(product <= 1000) product = 2*product; 16 product <= 1000 product=2*product; false true

17  Contoh program: 17 #include int main () { int n,i,f; printf("MENGHITUNG NILAI FAKTORIAL n (n!)\n\n"); printf("Masukkan sebarang bilangan integer: "); scanf("%i",&n); i = n; f = n; while (i>1){ i--; f=f*i; } printf("%d! = %d\n\n",n,f); system("PAUSE"); return(0); }

18  Kesetaraan for dengan while sbb:  Contoh: 18 #include void main() { int x; for( x = 1 ; x <= 10 ; x++ ) printf( "%d\n", x ); } #include void main() { int x = 1; while (x<=10) { printf( "%d\n", x ); x++; } exp1; while ( exp2 ) { statement1; statement2; …. exp3 } for (exp1; exp2; exp3 ) { statement1; statement2; …. } setara serupa dg

19  Sintaks : do statement while (eks.boolean); atau : do { statement1; statement2; ….. } while(eks.boolean)  Selama eks.boolean bernilai true maka statements dieksekusi berulang-ulang.  Pengetesan eks.boolean dilakukan setelah meng-eksekusi statements. 19 eks. boolean true false statements

20  Contoh: int i = 0; do { printf(”%d\n”, i); } while(++i <=10); 20 ++i <= 10 true false I = 0 Cetak i

21  Pada pengulangan while, statement atau blok statement mungkin tidak akan pernah dilaksanakan, bila nilai ekspresi boolen bernilai false, karena operasi pengulangan diawali dengan mengeksekusi ekspresi boolean terlebih dahulu.  Pada pengulangan do-while statement atau blok statement pasti dikerjakan paling sedikit satu kali, karena ekspresi boolean baru diuji pada akhir blok pengulangan. 21

22  Beberapa cara untuk menghentikan pengulangan untuk program interaktif, di antaranya dapat dilakukan dengan menambah: Sentinel atau Pembatas dengan kode khusus. Pertanyaan, misalkan: “Apakah pengulangan akan dilanjutkan ?”. 22

23  Contoh : Cara ‘sentinel’ pada konstruksi do-while dengan memakai nilai 0 pada variabel panjang dan variabel lebar. 23 #include int main() { int panjang,lebar,luas; char ulang; do{ printf(“Panjang [0=selesai] : “); scanf(“%d”,&panjang); printf(“Lebar [0=selesai] : “); scanf(“%d”,&lebar); luas = panjang * lebar; printf(“Luas = %d\n”,luas); } while((panjang != 0) && (lebar != 0)); return(0); }

24  Contoh : Cara ‘Pertanyaan’ pada konstruksi While 24 #include int main() { int panjang, lebar, luar; char ulang; 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); } return(0); }

25  break Digunakan untuk keluar dari loop (for, while dan do- while) Digunakan untuk keluar dari switch  continue skip sisa instruksi dalam loop, dan eksekusi loop berjalan ke tahap selanjutnya 25

26 #include int main() { int x = 1; while (x<=10) { printf( "%d\n", x ); x++; if (x>5) break; } return 0; } 26  Contoh penggunaan statement break pada loop yang menyebabkan program keluar dari loop tersebut Keluar dari loop

27  Contoh: 27 #include int main() { int x; for(x=1; x<=10; x++) { if (x == 5) continue; printf("%d ", x); } return 0; } Output : 1 2 3 4 6 7 8 9 10

28 28 do { scanf(“%f”, &x); if(x<0) { printf”\nEror. Negatif”); break; } /*Proses nonnegatif */ … } while(exp); do { scanf(“%f”, &x); if(x<0) { printf”\nEror. Negatif”); continue; } /*Proses nonnegatif */ … } while(exp);

29 for (i=k; i < n; i++) printf(”TIF-FTUB\n”); 1. Jika k < n maka berapa kali kata TIF-FTUB di cetak dilayar monitor? 2. Jika k=n maka berapa kali kata TIF-FTUB di cetak dilayar monitor ? 3. Jika k > n maka berapa kali kata TIF-FTUB di cetak dilayar monitor ? 29

30 for (i=k; i >= n; i--) printf(” TIF-FTUB \n”); 1.Jika k < n maka berapa kali kata TIF-FTUB di cetak dilayar monitor ? 2.Jika k=n maka berapa kali kata TIF-FTUB di cetak dilayar monitor ? 3.Jika k > n maka berapa kali kata TIF-FTUB di cetak dilayar monitor ? 30

31  Dapatkah infinite/forever loop ditulis menggunakan for loop, while loop dan do-while loop ?  Jika p = pernyataan dan e = ekspresi, ubahlah loop for berikut menjadi loop while. a.for(; e ;) p; b.for(; ; e) p; 31

32  Bandingkan dua buah sintaks for berikut ini : Jelaskan outputnya dan perbedaannya dari dua potongan program di atas! 32 for (i=0, j=1; i<8; i++, j++) printf("%d + %d = %d\n", i, j, i+j); for (i=0, j=1; i<8; ++i, ++j); printf("%d + %d = %d\n", i, j, i+j);

33 #include int main() { int x,y; for(x=1;x<=3;x++) for (y=3;y>=1;y--) printf("%d %d ",x,y); return 0; } 33 #include int main() { int x,y; for(x=1;x<=3;x++); for (y=3;y>=1;y--) printf("%d %d ",x,y); return 0; } APA OUTPUT PROGRAM BERIKUT ?? awas! Ada titik koma

34 #include int main() { int x,y; for(x=1;x<=3;x++) for (y=3;y>=1;y--); printf("%d %d ",x,y); return 0; } 34 #include int main() { int x,y; for (x=1;x<=3;x++); for (y=3;y>=1;y--); printf("%d %d ",x,y); return 0; } APA OUTPUT PROGRAM BERIKUT ?? awas! ada titik koma Awas! ada titik koma

35 Jelaskan output program berikut ini : 35 #include int main() { int nilai = 0, jumlah = 0; while(nilai < 10) { jumlah += nilai; printf(”\nNilai =%d, Jumlah =%d”, nilai++, jumlah); } return 0; }

36  Jelaskan output program berikut ini : 36 #include int main() { long bil, tmp, x=1; printf(”\nInput bil:”); scanf(”%d”, &bil); tmp=bil; while(bil >= 1) x*=bil--; printf(”\n%ld ! = %ld”,tmp, x); return 0; }

37  Buat program untuk menampilkan bilangan ganjil dari 11 s/d 188, dengan menggunakan : for while do - while 37

38  Diasumsikan hari 1 menyatakan senin, 2 - selasa, 3 - rabu,…, 7 – minggu. Buatlah sebuah program untuk menampilkan angka hari sebanyak n yang diinput dari keyboard. Perhatikan pola berikut : n = 3 1 2 3 n = 7 1 2 3 4 5 6 7 n = 10 1 2 3 4 5 6 7 1 2 3 38

39 int x ; for(x=0 ; x<10 ; x++) printf("Hello\n"); 39  Berapa kali kata Hello dicetak di layar monitor oleh setiap potongan program di bawah ini? int x=0; for( ; x<10 ; x++) printf("Hello\n"); int x=0; for( ; ; x++){ if(x<10) printf("Hello\n"); else break; } int x=0; for( ; ; ){ if(x<10) printf("Hello\n"); else break; x++; }

40  Buatlah program untuk menampilkan gambar seperti contoh dibawah, dimana n variabel integer yg nilainya di-input dari keyboard (dengan for, while atau do-while loop). * * * * * * * * * * * 40 n n

41  Buatlah program untuk menampilkan gambar seperti contoh dibawah, dimana n variabel integer yg nilainya di-input dari keyboard (dengan for, while atau do-while loop). * * * * * * * * * * * 41 n n

42 Apa Output dari program di bawah ini? 42 #include int main() { int x,y,z; for (x=0; x<4; x++) { for (y=0; y<3; y++) { for (z=0; z<3; z++) { if (z==2) break; } printf("Selamat\n"); } printf("Datang\n"); } printf("di TIF-FTUB\n"); getch(); return(0); }

43 43 SStruktur logika pengulangan for exp1 exp3 statements exp2 true false

44 44 exp1 exp3 statements exp2 true false  Struktur logika pengulangan for


Download ppt "1 Dasar Pemrograman Komputer [TKL-4002] 2010. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :  Memahami struktur kendali pengulangan (looping)"

Presentasi serupa


Iklan oleh Google