1 / 38

Pengulangan (looping)

Pengulangan (looping). DPK. Issa Arwani , S.kom, M.sc. Issa.arwani@ub.ac.id 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

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 IssaArwani, S.kom, M.sc. Issa.arwani@ub.ac.id 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 Strukturlogikapengulangan 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() { intx; for( x = 1 ; x <= 10 ; x++ ) printf( "%d\n", x ); return(0); } #include<stdio.h> int main() { intx; 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 () { inti = 0; for(;;) { i++; printf("%d ", i); if (i>=10) break; } printf("\n\n"); system("PAUSE"); return(0); } • Infinite Loop Untukmembuat infinite loop dapatdilakukandenganmenggunakan “for-loop”, denganmenghilangkanketiga parameter (exp1, exp2, exp3) yang adapada for loop. Untukkeluardari loop dapatdigunakan 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 Jikadidalamsebuahpengulanganterdapat statement pengulangan. Pengulanganakandijalankandimulaidaripengulanganterdalam.

  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 Padapengulanganwhile, statement ataublok statement mungkintidakakanpernahdilaksanakan, bilanilaiekspresiboolenbernilaifalse, karenaoperasipengulangandiawalidenganmengeksekusiekspresibooleanterlebihdahulu. Padapengulangando-whilestatement ataublok statement pastidikerjakan paling sedikitsatu kali, karenaekspresibooleanbarudiujipadaakhirblokpengulangan.

  16. Pengulangan • Beberapacarauntukmenghentikanpengulangan untuk program interaktif, di antaranya dapatdilakukandenganmenambah: • SentinelatauPembatasdengankodekhusus. • Pertanyaan, misalkan: “Apakahpengulanganakandilanjutkan?”.

  17. Pengulangan #include <stdio.h> int main() { intpanjang,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’ padakonstruksido-while dengan memakai nilai0 padavariabelpanjangdan variabellebar.

  18. Pengulangan #include <stdio.h> intmain() { intpanjang, lebar, luar; char ulang; printf(”TeruskanPerhitungan ? (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(”TeruskanPerhitungan?(Y/T):”); scanf(”%c”,&ulang); } return(0); } Contoh : Cara ‘Pertanyaan’ padakonstruksi While

  19. Statement break dan continue • break • Digunakanuntukkeluardari loop (for, while dan do-while) • Digunakanuntukkeluardari switch • continue • skip sisainstruksidalam loop, daneksekusi loop berjalanketahapselanjutnya

  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; • } • /*Prosesnonnegatif */ • … • } 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 ditulismenggunakan for loop, while loop dan do-while loop ? • Jika p = pernyataandan e = ekspresi, ubahlah loop for berikutmenjadi 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); • Bandingkanduabuahsintaks for berikutini : Jelaskan outputnyadanperbedaannyadari dua potongan program di atas!

  27. Latihan APA OUTPUT PROGRAM BERIKUT ?? awas! Adatitikkoma #include <stdio.h> int main() { intx,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() { intx,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! adatitikkoma #include <stdio.h> int main() { intx,y; for(x=1;x<=3;x++); for (y=3;y>=1;y--); printf("%d %d ",x,y); return 0; } Awas! adatitikkoma #include <stdio.h> int main() { intx,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() { intnilai = 0, jumlah = 0; while(nilai < 10) { jumlah += nilai; printf(”\nNilai =%d, Jumlah =%d”, nilai++, jumlah); } return 0; } Jelaskan output program berikutini :

  30. Latihan #include<stdio.h> int main() { long bil, tmp, x=1; printf(”\nInputbil:”); scanf(”%d”, &bil); tmp=bil; while(bil >= 1) x*=bil--; printf(”\n%ld ! = %ld”,tmp, x); return 0; } Jelaskan output program berikutini :

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

  32. Latihan • Diasumsikanhari 1 menyatakansenin, 2 - selasa, 3 - rabu,…, 7 – minggu. Buatlahsebuah program untukmenampilkanangkaharisebanyak n yang diinputdari keyboard. Perhatikanpolaberikut : 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 dicetakdilayar monitor olehsetiap potonganprogram dibawahini? 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 untukmenampilkangambarseperticontohdibawah, dimananvariabel integer ygnilainyadi-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 Strukturlogikapengulangan for

  38. Struktur Pengulangan for exp1 exp3 statements true exp2 false Strukturlogikapengulangan for

More Related