210 likes | 414 Views
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.
E N D
TEE 2103Algoritma dan Pemrograman Pengulangan Dosen: Abdillah, MIT Hp: 0853 6581 8665 Email: abdill01@gmail.com Website: www.abdill01.wordpress.com
Tujuan • Memahami proses pengulangan while, for dan do dalam runtunan komputasi program C.
Pengulanganwhile • Bentukumumpengulangan whileadalah 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 pengulanganfor adalah: • for (expr1; expr2; expr3) • statement • Pernyataan ini ekuivalen dengan: • expr1; • while (expr2) { • statement • expr3; • }
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 fordi dalam for, kompilator akan mengeksekusi pengulangan for yang di dalam lebih dahulu. • Bentukpengulangannested foradalah • 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 PROGRAMBintang {Mencetak segitiga bintang dengan tinggi N } DEKLARASI N, i, j : integer ALGORITMA: read (N) fori 1 to Ndofor (i=1;i<=N;i++) for j 1 to idofor (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: • do • statement • while (expression); • Statement dieksekusi kemudian ekspresi dievaluasi, jika bernilai benar maka statement kembali dieksekusi. Pengulangan berlanjut hingga ekspresi bernilai salah.
Algoritma do PROGRAMDeret { Menjumlahkanderet 1 + 2 + 3 + … + N } DEKLARASI N, i, jumlah : integer ALGORITMA: read(N) jumlah 0 i 1 do jumlahjumlah + i ii + 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); }
breakdan continue • Sama seperti pada pemilihan switch, pernyataan breakmenyediakan pintu keluar lebih awal bagi pengulangan for, whiledan do. • Pernyataan continuemenyebabkan iterasi berikutnya dari pengulangan for, whiledan dodimulai. Dalam whiledan do, ini berartiekspresi langsung dievaluasi.Dalamfor,ini berarti kendali program langsung menuju tahap menaik/menurun.
Goto dan label • gotobiasanya 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 } DEKLARASI N, i, jumlah : integer ALGORITMA: read (N) jumlah 0 i 1 while(i N)do jumlah jumlah + i i i + 1 endwhile write (jumlah)
Program deret2.c #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); }
Algoritma for menaik PROGRAM Deret { Menjumlahkan deret 1 + 2 + 3 + … + N } DEKLARASI N, i, jumlah : integer ALGORITMA: read (N) jumlah 0 for i 1to Ndofor (i=1; i<=N; i++) jumlah jumlah + i i = i +1 endfor write (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 } DEKLARASI N, i, jumlah : integer ALGORITMA: read (N) jumlah 0 for i N to 1dofor (i=N; i>=1; i--) jumlah jumlah + i i = i ‒ 1 endfor write (jumlah)
Program deret4.c #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); }