TE E 2 103 Algoritma dan Pemrograman

Post on 25-Jan-2016

48 views 1 download

description

TE E 2 103 Algoritma dan Pemrograman. Pengulangan. Dosen: Abdillah, MIT Hp : 0853 6581 8665 Email: abdill 01 @ gmail.com Website: www. abdill01.wordpress.com. Tujuan. M emahami proses pengulangan while , for dan do dalam runtunan komputasi program C. Pe ngulangan while. - PowerPoint PPT Presentation

Transcript of TE E 2 103 Algoritma dan Pemrograman

TEE 2103 Algoritma dan Pemrograman

Pengulangan

Dosen: Abdillah, MITHp: 0853 6581 8665Email: abdill01@gmail.comWebsite: www.abdill01.wordpress.com

Tujuan

Memahami proses pengulangan while, for dan do dalam runtunan komputasi program C.

Pengulangan while

Bentuk umum pengulangan while adalah

while (ekspresi) statement

Ekspresi dievaluasi, jika bernilai benar maka statement dieksekusi dan ekspresi kembali dievaluasi. Pengulangan berlanjut hingga ekspresi bernilai salah.

Program konversi.c

/* Mencetak tabel F – C untuk 0,202000F */#include <stdio.h>main(){

float fahr, celsius, lower, upper, step;lower = 0; /* batas bawah skala suhu */upper = 200; /* batas atas skala suhu */step = 20; /* interval suhu */fahr = lower;while (fahr <= upper) {

celsius = (5.0/9.0) * (fahr-32.0);printf("%3.0f %6.1f\n", fahr, celsius);fahr = fahr + step;

}}

Pengulangan for

Bentuk umum pengulangan for adalah:

for (expr1; expr2; expr3)statement

Pernyataan ini ekuivalen dengan:

expr1;while (expr2) {

statementexpr3;

}

Program konversi2.c

/* Mencetak tabel F – C untuk 0,202000F */#include <stdio.h>

main(){

int fahr;for (fahr = 0; fahr <= 200; fahr = fahr + 20) printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-

32));}Program di atas tampak beda, tapi menghasilkan output yang sama dengan program konversi.c. Perbedaan pada jumlah variabel, ekspresi yang menghitung temperatur celcius dan pernyataan for yang menggantikan while.

Nested for

Jika ada for di dalam for, kompilator akan mengeksekusi pengulangan for yang di dalam lebih dahulu.

Bentuk pengulangan nested for adalah

for (expr1; expr2; expr3){for (expr4; expr5; expr6)statement

}

Contoh Nested for

Tulislah algoritma yang mencetak segitiga bintang jika tinggi segitiga adalah N (N > 0). Contohnya, jika N = 5, maka segitiga yang dihasilkan adalah:

***************

Perhatikan gambar segitiga: baris ke-1 terdiri atas satu bintang, baris ke-2 dua bintang, dan seterusnya hingga baris ke-5 lima bintang.

Algoritma Nested for

PROGRAM Bintang{Mencetak segitiga bintang dengan tinggi N }

DEKLARASIN, i, j : integer

ALGORITMA:read (N)for i 1 to N do for (i=1;i<=N;i++)

for j 1 to i do for (j=1;j<=i;j++) write ( * ) printf (“*”);endfor

endfor

Program bintang.c

/* Mencetak segitiga bintang */ #include <stdio.h> main() { int N, i, j; printf (“Masukkan sebuah bilangan: “); scanf (“%d”, &N); for (i=1;i<=N;i++){

for (j=1;j<=i;j++) printf (“*”);

printf(“\n”); }}

Pengulangan do

Bentuk umum pengulangan do adalah:

dostatement

while (expression); Statement dieksekusi kemudian ekspresi

dievaluasi, jika bernilai benar maka statement kembali dieksekusi. Pengulangan berlanjut hingga ekspresi bernilai salah.

Algoritma do

PROGRAM Deret{ Menjumlahkan deret 1 + 2 + 3 + … + N }DEKLARASI N, i, jumlah : integerALGORITMA: read (N) jumlah 0 i 1 do

jumlah jumlah + i i i + 1

while (i <= N) write (jumlah)

Program deret.c

#include <stdio.h>main(){ int N, i, jumlah; printf("Ketikkan N: "); scanf("%d", &N); jumlah = 0; i = 1; do {

jumlah = jumlah + i; i++; } while (i <= N); printf("Jumlah deret = %d", jumlah);}

break dan continue

Sama seperti pada pemilihan switch, pernyataan break menyediakan pintu keluar lebih awal bagi pengulangan for, while dan do.

Pernyataan continue menyebabkan iterasi berikutnya dari pengulangan for, while dan do dimulai. Dalam while dan do, ini berarti ekspresi langsung dievaluasi. Dalam for, ini berarti kendali program langsung menuju tahap menaik/menurun.

Goto dan label

goto biasanya digunakan sebagai pintu keluar dari nested for yang panjang menuju ke sebuah label.

for (i = 0; i < n; i++)for (j = 0; j < m; j++)

if (a[i] == b[j])goto found;

/* tidak menemukan elemen yang sama */...found:/* dapat satu: a[i] == b[j] */...

Algoritma while

PROGRAM Deret{ Menjumlahkan deret 1 + 2 + 3 + … + N }

DEKLARASIN, i, jumlah : integer

ALGORITMA: read (N)jumlah 0i 1while (i N) do

jumlah jumlah + ii i + 1

endwhilewrite (jumlah)

#include <stdio.h>main(){ int N, i, jumlah; printf("Ketikkan N: "); scanf("%d", &N); jumlah = 0; i = 1; while (i <= N) { jumlah = jumlah + i; i++; } printf("Jumlah deret = %d", jumlah);}

Program deret2.c

Algoritma for menaik

PROGRAM Deret{ Menjumlahkan deret 1 + 2 + 3 + … + N }

DEKLARASIN, i, jumlah : integer

ALGORITMA:read (N)jumlah 0for i 1 to N do for (i=1; i<=N; i++)

jumlah jumlah + i i = i +1endforwrite (jumlah)

Program deret3.c

#include <stdio.h>

main()

{

int N, i, jumlah;

printf("Ketikkan N: "); scanf("%d", &N);

jumlah = 0;

for (i=1; i<=N; i++){

jumlah = jumlah + i;

}

printf("Jumlah deret = %d", jumlah);

}

Algoritma for menurun

PROGRAM Deret{ Menjumlahkan deret 1 + 2 + 3 + … + N }

DEKLARASIN, i, jumlah : integer

ALGORITMA:read (N)jumlah 0for i N to 1 do for (i=N; i>=1; i--)

jumlah jumlah + i i = i ‒ 1endforwrite (jumlah)

#include <stdio.h>

main()

{

int N, i, jumlah;

printf("Ketikkan N: "); scanf("%d", &N);

jumlah = 0;

for (i=N ; i>=1 ; i--){

jumlah = jumlah + i;

}

printf("Jumlah deret = %d", jumlah);

}

Program deret4.c