ANALISIS DAN DESAIN ALGORITMA
[ PG167 / 3 SKS ]
Pertemuan 6
STRUKTUR KONTROL
PENGULANGAN
Tujuan Pembelajaran
Mahasiswa mampu memahami dasar penggunaan struktur perulangan FOR, WHILE, dan DO-WHILE
Topik Pembahasan
Pengertian Perulangan
Jenis-Jenis Perulangan
Contoh Perulangan Sederhana
Algoritma Mencari Nilai Terbesar Atau Terkecil Dari Sejumlah Bilangan
Algoritma Mencetak Deret, Menghitung Dan Mencetak Total Suatu Deret
PENGERTIAN PERULANGAN
Digunakan untuk menyelesaikan suatu proses yang dikerjakan beberapa kali
Banyaknya perulangan sesuai dengan nilai yang ditentukan atau batas yang ditentukan
Disebut dengan Looping
JENIS PERULANGAN (LOOPING)
3 Jenis Perulangan
JENIS PERULANGAN FOR
Keterangan:
Init (Inisialisasi), Instruksi pemberian suatu nilai yang mempengaruhi nilai condition
Cond (Condition), Suatu pernyataan yang mengandung nilai BENAR (true) atau SALAH (false)
Chng of Cond (Change Of Condition), Suatu instruksi yang dapat
mempengaruhi nilai condition
FOR init to cond step change of cond LOOP
END FOR
JENIS PERULANGAN FOR
Cara Kerja:
Menjalankan Inisialisasi. Memberikan Nilai Awal yang terkait dengan Kondisi.
Memeriksa Condition
Bila True, Mengerjakan perintah yang ada
pada Blok Kerjakan Loop. Berlanjut mengubah nilai kondisi. Kemudian kembali lagi
melakukan pemeriksaan kondisi
Bila False, perualangan selesai, keluar dari loop kemudian menjalankan Next Instruction.
JENIS PERULANGAN WHILE
Keterangan:
Init (Inisialisasi), Instruksi pemberian suatu nilai yang mempengaruhi nilai condition
Cond (Condition), Suatu pernyataan yang mengandung nilai BENAR (true) atau SALAH (false)
Chng of Cond (Change Of Condition), Suatu instruksi yang dapat
mempengaruhi nilai condition
INIT
WHILE COND DO LOOP
CHNG OF COND ENDWHILE
JENIS PERULANGAN WHILE
Cara Kerja:
Menjalankan Inisialisasi. Memberikan Nilai Awal yang terkait dengan Kondisi.
Memeriksa Condition
Bila True, Mengerjakan perintah yang ada
pada Blok Kerjakan Loop. Berlanjut mengubah nilai kondisi. Kemudian kembali lagi
melakukan pemeriksaan kondisi
Bila False, perualangan selesai, keluar dari loop kemudian menjalankan Next Instruction.
JENIS PERULANGAN DO-WHILE
Keterangan:
Init (Inisialisasi), Instruksi pemberian suatu nilai yang mempengaruhi nilai condition
Cond (Condition), Suatu
pernyataan yang mengandung nilai BENAR (true) atau SALAH (false)
Chng of Cond (Change Of
Condition), Suatu instruksi yang dapat mempengaruhi nilai
condition
INIT DO
LOOP
CHNG OF COND WHILE COND
JENIS PERULANGAN DO-WHILE
Cara Kerja:
Menjalankan Inisialisasi. Memberikan Nilai Awal yang terkait dengan Kondisi.
Kerjakan instruksi yang ada pada blok 2 perintah yang diulang
Perubahan nilai kondisi
Memeriksa Condition
Bila True, Mengerjakan perintah yang ada
pada Blok 2. Berlanjut mengubah nilai kondisi.
Kemudian kembali lagi melakukan pemeriksaan kondisi
Bila False, perualangan selesai, keluar dari loop kemudian menjalankan Next Instruction.
CONTOH PERULANGAN SEDERHANA
Buatlah algoritma dan flowchart untuk mencetak kata “FTI” ke layar sebanyak 5 kali!
CONTOH PERULANGAN SEDERHANA
Jawab (Menggunakan FOR)
#include<stdio.h>
void main() { int a;
for(a=1; a<=5; a=a+1) {
printf(”\n FTI”);
} }
FOR a=1 TO 5 STEP 1 CETAK “FTI”
ENDFOR
CONTOH PERULANGAN SEDERHANA
Jawab (Menggunakan WHILE)
#include<stdio.h>
void main() { int a;
a=1;
while (a<=5) {
printf(”\n FTI”);
a=a+1;}
} INIT a=1
WHILE a<=5 DO
CETAK “FTI”
a=a+1 ENDWHILE
CONTOH PERULANGAN SEDERHANA
Jawab (Menggunakan DO-WHILE)
#include<stdio.h>
void main() { int a;
a=1;
do {
printf(”\n FTI”);
a=a+1;
}
while(a<=5);
} INIT a=1
DO
CETAK “FTI”
a=a+1 WHILE a<=5
CONTOH PERULANGAN SEDERHANA
Buatlah algoritma dan flowchart untuk mencetak deret bilangan 2 4 6 8 10 ke layar!
CONTOH PERULANGAN SEDERHANA
Jawab (Menggunakan FOR)
#include<stdio.h>
void main() { int b;
for(b=2; b<=10; b=b+2) {
printf(“%3i”,b);
} }
FOR b=2 TO 10 STEP 2 CETAK b
ENDFOR
CONTOH PERULANGAN SEDERHANA
Jawab (Menggunakan WHILE)
#include<stdio.h>
void main() { int b;
b=2;
while (b<=10) {
printf (”%i”, b);
b=b+2;}
} INIT b=2
WHILE b<=10 DO CETAK b b=b+2 ENDWHILE
CONTOH PERULANGAN SEDERHANA
Jawab (Menggunakan DO-WHILE)
#include<stdio.h>
void main() { int b;
b=2;
printf (”%i”, b);
b=b+2;}
while (b<=10);
} INIT b=2
DO
CETAK b b=b+2 WHILE b<=10
BILANGAN
Buatlah algoritma dan flowchart untuk
menginputkan 3 buah bilangan bulat dan
tampilkan bilangan TERBESAR diantara ketiganya.
(dianggap ketiga bilangan nilainya berbeda)
BILANGAN
Jawab (Menggunakan 2 Variabel dan percabangan saja)
A, MAX INPUT A MAX=A INPUT A IF A>MAX
THEN MAX=A ENDIF
INPUT A IF A>MAX
THEN MAX=A ENDIF
CETAK MAX
BILANGAN
Jawab (Menggunakan 2 Variabel, percabangan, dan perulangan)
A, MAX INPUT A MAX=A
FOR i=1 TO 2 STEP 1 INPUT A
IF A>MAX
THEN MAX=A ENDIF
ENDFOR
A, MAX INPUT A MAX=A
INIT i=1
WHILE (i<=2) DO INPUT A IF A>MAX
THEN MAX=A ENDIF
i=i+1 ENDWHILE
A, MAX INPUT A MAX=A
INIT i=1 DO
INPUT A IF A>MAX
THEN MAX=A ENDIF
i=i+1 WHILE (i<=2)
BILANGAN
Jawab Flowchart
FLOWCHART FOR DAN WHILE
BILANGAN
Jawab Program
#include <stdio.h>
void main()
{ int A, MAX, i;
scanf (“%i”, &A);
MAX = A;
for (i=1; i<=2;i++) { scanf (“%i”, &A);
if (A > MAX) { MAX = A;}
}
printf (“%i”, MAX);
}
#include <stdio.h>
void main()
{ int A, MAX, i;
scanf (“%i”, &A);
MAX = A;
i=1;
while (i<=2)
{ scanf (“%i”, &A);
if (A > MAX) { MAX = A;}
i++;
}
printf (“%i”, MAX);
}
#include <stdio.h>
void main()
{ int A, MAX, i;
scanf (“%i”, &A);
MAX = A;
i=1;
do
{ scanf (“%i”, &A);
if (A > MAX) { MAX = A;}
i++;
} while (i<=2);
printf (“%i”, MAX);
}
BILANGAN
Buatlah algoritma dan flowchart untuk
menginputkan 100 buah bilangan bulat dan
tampilkan bilangan TERKECIL diantara 100 buah nilai yang diinput tersebut.
BILANGAN
Jawab
A, MIN INPUT A MIN=A
FOR i=1 TO 100 STEP 1 INPUT A
IF A<MIN
THEN MIN=A ENDIF
ENDFOR
A, MIN INPUT A MIN=A
INIT i=1
WHILE (i<=100) DO INPUT A
IF A<MIN
THEN MIN=A ENDIF
i=i+1 ENDWHILE
A, MIN INPUT A MIN=A
INIT i=1 DO
INPUT A IF A<MIN
THEN MIN=A ENDIF
i=i+1
WHILE (i<=100)
BILANGAN
Jawab Flowchart
FLOWCHART FOR DAN WHILE
BILANGAN
Jawab Program
#include <stdio.h>
void main()
{ int A, MIN, i
scanf (“%i”, &A) MIN = A
for (i=1;i < =100; i++) {scanf (“%i”, &A)
if(A<MIN)
{ MIN = A; } }
printf (“%i”, MIN);
}
#include <stdio.h>
void main()
{ int A, MIN, i
scanf (“%i”, &A) MIN = A
i=1;
while (i<=100)
{ scanf (“%i”, &A) if(A<MIN)
{ MIN = A } i++;
}
printf (“%i”, MAX);
}
#include <stdio.h>
void main()
{ int A, MIN, i
scanf (“%i”, &A) MIN = A
i=1;
do
{ scanf (“%i”, &A) if(A<MIN)
{ MIN = A; } i++;
} while (i<=100);
printf (“%i”, MAX);
}
SUATU DERET
Buatlah algoritma dan flowchart untuk mencetak deret bilangan berikut ini:
1 3 5 7 9 1 1 13 15 17 19
SUATU DERET
Jawab CARA 1
FOR y=1 TO 19 STEP 2 CETAK y
ENDFOR
SUATU DERET
Jawab CARA 2 (FOR)
y,N N=1
FOR y=1 TO 10 STEP 1 CETAK N
N=N+2 ENDFOR
#include <stdio.h>
void main() { int y, N;
N=1;
for (y=1; y<=10; y++) { printf (“%3i”, N;
N=N+2;
}
SUATU DERET
Jawab CARA 2 (WHILE)
y,N N=1
INIT y=1
WHILE (y<=10) DO CETAK N
N=N+2 y=y+1 ENDWHILE
#include <stdio.h>
void main() { int y, N;
N=1;
y=1;
while(y<=10)
{ printf (“%3i”, N);
N=N+2;
y=y+1;
} }
SUATU DERET
Buatlah algoritma dan flowchart untuk
menghitung dan mencetak total 10 suku pertama deret berikut ini:
1 2 3 4 5 6 7 8 9 10
SUATU DERET
Jawab FOR
T,a T=0
FOR a=1 TO 10 STEP 1 T=T+a
ENDFOR CETAK T
#include <stdio.h>
void main() { int a, T;
T = 0;
for (a = 1; a<=10; a++) { T= T + a; }
printf (“%i”, T);
}
SUATU DERET
Jawab WHILE
T,a T=0
INIT a=1
WHILE (a<=10) DO T=T+a
a=a+1 ENDWHILE
CETAK T
#include <stdio.h>
void main() { int a, T;
T = 0;
a = 1;
while (a<=10) { T= T + a;
a++;
}
printf (“%i”, T);
}