Pengulangan (looping)

1 / 38

# Pengulangan (looping) - PowerPoint PPT Presentation

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Pengulangan (looping)' - helen-powers

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Pengulangan (looping)

DPK

IssaArwani, S.kom, M.sc.

Issa.arwani@ub.ac.id

UNIVERSITAS BRAWIJAYA

MALANG

ContohAlgoritma

AlgoritmaSarapanPagi

Mulai

Ambilpiring

Masukkannasidanlaukdalampiring

Ambilsendokdangarpu

Ulangi

Angkatsendokdangarpu

Ambilnasidanlauk

Suapkankedalammulut

Taruhsendokdangarpu

Kunyah

Sampai (nasidanlaukhabis) ATAU kekenyangan

Bereskanpiring, sendokdangarpu

Selesai

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

for(exp1; exp2; exp3) statement;

atau:

for(exp1; exp2; exp3){

statement1;

statement2;

…….

}

Struktur Pengulangan for

exp1

exp1

exp3

exp3

statements

statements

true

true

exp2

exp2

false

false

Strukturlogikapengulangan for

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);
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 :

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:
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

Struktur Pengulangan while

statements

true

eks. boolean

false

• Sintaks :

while (eks.boolean) statements;

atau :

while(eks.boolean){

statement1;

statement2;

…..

}

Struktur Pengulangan while

product=2*product;

product <= 1000

true

false

• Contoh :
• while(product <= 1000) product = 2*product;
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:
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.
Struktur Pengulangan do - while

I = 0

Cetak

i

true

++i <= 10

false

• Contoh:

inti = 0;

do {

printf(”%d\n”, i);

} while(++i<=10);

Pengulangan

Padapengulanganwhile, statement ataublok statement mungkintidakakanpernahdilaksanakan, bilanilaiekspresiboolenbernilaifalse, karenaoperasipengulangandiawalidenganmengeksekusiekspresibooleanterlebihdahulu.

Pengulangan
• Beberapacarauntukmenghentikanpengulangan untuk program interaktif, di antaranya dapatdilakukandenganmenambah:
• SentinelatauPembatasdengankodekhusus.
• Pertanyaan, misalkan: “Apakahpengulanganakandilanjutkan?”.
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);

}

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

Statement break dan continue
• break
• Digunakanuntukkeluardari loop (for, while dan do-while)
• Digunakanuntukkeluardari switch
• continue
• skip sisainstruksidalam loop, daneksekusi loop berjalanketahapselanjutnya
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;

}

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:

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);
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 ?
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 ?
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;

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 :

Latihan

APA OUTPUT PROGRAM BERIKUT ??

#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;

}

Latihan

APA OUTPUT PROGRAM BERIKUT ??

#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;

}

Latihan

#include<stdio.h>

int main() {

intnilai = 0, jumlah = 0;

while(nilai < 10) {

jumlah += nilai;

printf(”\nNilai =%d, Jumlah =%d”, nilai++, jumlah);

}

return 0;

}

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;

}

Latihan
• Buat program untukmenampilkanbilanganganjildari 11 s/d 188, denganmenggunakan :
• for
• while
• do - while
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

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");

Latihan

n

n

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

*

* *

* * *

* * * *

* * * * *

Latihan

n

n

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

* * * * *

* * * *

* * *

* *

*

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?

Struktur Pengulangan for

exp1

exp3

statements

true

exp2

false

Strukturlogikapengulangan for

Struktur Pengulangan for

exp1

exp3

statements

true

exp2

false

Strukturlogikapengulangan for