1 / 38

Pengulangan (looping)

Pengulangan (looping). DPK. UNIVERSITAS BRAWIJAYA MALANG. Contoh Algoritma. Algoritma Sarapan Pagi Mulai Ambil piring Masukkan nasi dan lauk dalam piring Ambil sendok dan garpu Ulangi Angkat sendok dan garpu Ambil nasi dan lauk Suapkan ke dalam mulut Taruh sendok dan garpu Kunyah

brina
Download Presentation

Pengulangan (looping)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pengulangan (looping) DPK UNIVERSITAS BRAWIJAYA MALANG

  2. ContohAlgoritma AlgoritmaSarapanPagi Mulai Ambilpiring Masukkannasidanlaukdalampiring Ambilsendokdangarpu Ulangi Angkatsendokdangarpu Ambilnasidanlauk Suapkankedalammulut Taruhsendokdangarpu Kunyah Sampai (nasidanlaukhabis) ATAU kekenyangan Bereskanpiring, sendokdangarpu Selesai

  3. Struktur Pengulanangan • Strukturpengulangandimaksudkanuntukmelakukanprosespengulangandaribeberapainstruksidalamsejumlahpengulangantertentu • Jumlahpengulangandapatditentukansebelumnyaatauditentukandalamprosespelaksanaanpengulangan. • Tigamacam struktur pengulangan dalam pemrograman terstruktur, yaitu: • Struktur for • Struktur while • Struktur do-while

  4. Struktur Pengulangan for • Konstruksifor for(exp1; exp2; exp3) statement; atau: for(exp1; exp2; exp3){ statement1; statement2; ……. } exp1:adalahekspresiuntukinisialisasi, exp2:adalahekspresi conditional exp3:adalahekspresi increment ataudecrement exp1, exp2 dan exp3 adalahsifatnya optional (bolehadabolehtidakada).

  5. Struktur Pengulangan for exp1 exp1 exp3 exp3 statements statements true true exp2 exp2 false false Struktur logika pengulangan for

  6. Struktur Pengulangan for x = 1 x++ printf(“%d\n”,x) true x<=10 false • Contoh : • for (x=1; x <= 10; x++) printf(“%d\n”,x);

  7. Struktur Pengulangan for #include<stdio.h> int main() { int x; for( x = 1 ; x <= 10 ; x++ ) printf( "%d\n", x ); return(0); } #include<stdio.h> int main() { int x; for( x = 10 ; x >= 1 ; x-- ) printf( "%d\n", x); return(0); } Contoh :

  8. Struktur Pengulangan for #include <stdio.h> #include <iostream.h> int main () { int i = 0; for(;;) { i++; printf("%d ", i); if (i>=10) break; } printf("\n\n"); system("PAUSE"); return(0); } • 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:

  9. Struktur Pengulangan for 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) 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 • Nested Loop Jika di dalam sebuah pengulangan terdapat statement pengulangan. Pengulangan akan dijalankan dimulai dari pengulangan terdalam.

  10. Struktur Pengulangan while statements true eks. boolean false • Sintaks : while (eks.boolean) statements; atau : while(eks.boolean){ statement1; statement2; ….. }

  11. Struktur Pengulangan while product=2*product; product <= 1000 true false • Contoh : • while(product <= 1000) product = 2*product;

  12. Struktur Pengulangan while • exp1;while( exp2 ) { statement1; • statement2; • …. • exp3} • for(exp1; exp2; exp3 ) { statement1; • statement2; • ….} setara #include<stdio.h> void main() { intx = 1; while (x<=10) { printf( "%d\n", x ); x++; } } #include<stdio.h> void main() { int x; for( x = 1 ; x <= 10 ; x++ ) printf( "%d\n", x ); } serupa dg • Kesetaraan for denganwhile sbb: • Contoh:

  13. Struktur Pengulangan do - while statements true eks. boolean false • Sintaks : do statement while (eks.boolean); atau : do { statement1; statement2; ….. } while(eks.boolean) • Selamaeks.booleanbernilaitrue makastatements dieksekusiberulang-ulang. • Pengetesaneks.booleandilakukansetelahmeng-eksekusistatements.

  14. Struktur Pengulangan do - while I = 0 Cetak i true ++i <= 10 false • Contoh: inti = 0; do { printf(”%d\n”, i); } while(++i<=10);

  15. Pengulangan 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.

  16. Pengulangan • 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?”.

  17. Pengulangan #include <stdio.h> 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); } • Contoh : Cara ‘sentinel’ pada konstruksi do-while dengan memakai nilai 0 pada variabel panjang dan variabel lebar.

  18. Pengulangan #include <stdio.h> 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); } Contoh : Cara ‘Pertanyaan’ pada konstruksi While

  19. Statement break dan continue • 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

  20. Break • Contoh penggunaan statement breakpadaloop yangmenyebabkan program keluardari loop tersebut Keluardari loop #include<stdio.h> int main() { int x = 1; while (x<=10) { printf( "%d\n", x ); x++; if (x>5) break; } return 0; }

  21. continue #include <stdio.h> 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 Contoh:

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

  23. Latihan for (i=k; i < n; i++) printf(”TIF-FTUB\n”); • Jika k < n makaberapa kali kataTIF-FTUB dicetakdilayarmonitor? • Jika k=n makaberapa kali kataTIF-FTUB dicetakdilayar monitor ? • Jika k > n makaberapa kali kataTIF-FTUB dicetakdilayar monitor ?

  24. Latihan for (i=k; i >= n; i--) printf(” TIF-FTUB \n”); • Jika k < n makaberapa kali kataTIF-FTUB dicetakdilayar monitor ? • Jika k=n makaberapa kali kataTIF-FTUB dicetakdilayar monitor ? • Jika k > n makaberapa kali kataTIF-FTUB dicetakdilayar monitor ?

  25. Latihan • 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;

  26. Latihan 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); • Bandingkan dua buah sintaks for berikut ini : Jelaskan outputnya dan perbedaannya dari dua potongan program di atas!

  27. Latihan APA OUTPUT PROGRAM BERIKUT ?? awas! Adatitikkoma #include <stdio.h> int main() { int x,y; for(x=1;x<=3;x++); for (y=3;y>=1;y--) printf("%d %d ",x,y); return 0; } #include <stdio.h> int main() { int x,y; for(x=1;x<=3;x++) for (y=3;y>=1;y--) printf("%d %d ",x,y); return 0; }

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

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

  30. Latihan #include<stdio.h> 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; } Jelaskan output program berikut ini :

  31. Latihan • Buat program untukmenampilkanbilanganganjildari 11 s/d 188, denganmenggunakan : • for • while • do - while

  32. Latihan • 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 • 2 3 n = 7 • 2 3 4 5 6 7 n = 10 1 2 3 4 5 6 7 1 2 3

  33. Latihan • Berapa kali kata Hello dicetak di layar monitor oleh setiap potongan program dibawah ini? int x=0; for(;;){ if(x<10) printf("Hello\n"); else break; x++; } 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 ; for(x=0; x<10; x++) printf("Hello\n");

  34. Latihan n n • Buatlah program untukmenampilkangambarseperticontohdibawah, dimananvariabel integer ygnilainyadi-input dari keyboard (dengan for, while atau do-while loop). * * * * * * * * * * * * * * *

  35. Latihan n n • 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). * * * * * * * * * * * * * * *

  36. Latihan #include <stdio.h> int main() { intx,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("diTIF-FTUB\n"); getch(); return(0); } Apa Output dari program dibawahini?

  37. Struktur Pengulangan for exp1 exp3 statements true exp2 false Struktur logika pengulangan for

  38. Struktur Pengulangan for exp1 exp3 statements true exp2 false Struktur logika pengulangan for

More Related