Anda di halaman 1dari 36

Program Studi S1 Informatika, Fakultas Ilmu Komputer

Universitas Pembangunan Nasional Veteran Jakarta

Algoritma dan Pemrograman 1


Struktur Pengulangan 1
Dosen:
Dr. Achmad Solichin, S.Kom., MTI
Jayanta, S.Kom., M.Si.
Mayanda Mega Santoni, S.Komp., M.Kom.
Muhammad Adrezo, S.Kom., M.Sc.
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

DEFINISI :
“Struktur program yang akan melakukan pengulangan satu atau lebih
pernyataan (statement) untuk diproses atau tidak diproses berdasarkan
KONDISI tertentu”

Struktur Pengulangan 1 2
MENCETAK ANGKA 1
CONTOH SAMPAI DENGAN ANGKA
10

mulai

1 NAMA VARIABEL KONTROL i


i=1

2
salah
INISIALISASI VARIABEL i <= 10
i=1
KONTROL
benar

3
cetak i
KONDISI PENGULANGAN i<=10
i++

4 STATEMENT selesai
cetak i
PENGULANGAN

5 INCREMENT/ DECREMENT
VARIABEL KONTROL
i++
Struktur Pengulangan 1 3
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Struktur Pengulangan (Looping)

Instruksi
Instruksi Instruksi
DO …
FOR WHILE
WHILE

Struktur Pengulangan 1 4
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

“ Instruksi FOR umumnya digunakan untuk memproses pernyataan


secara berulang-ulang, dimana kita sebelumnya sudah mengetahui
berapa kali pernyataan tersebut akan diulang ”

for(inisialisasi; kondisi; increment/decrement)


{
statement_1;
statement_2;
}

Struktur Pengulangan 1 5
for(inisialisasi; kondisi; increment/decrement) Program Studi S1 Informatika, Fakultas Ilmu Komputer
{ Universitas Pembangunan Nasional Veteran Jakarta
statement_1;
statement_2;
}

1 Yang pertama kali dieksekusi adalah inisialisasi (hanya dilakukan satu kali)

2 Selanjutnya, akan diperiksa bagian kondisi. Kondisi ini merupakan ekpresi


Boolean.

3 Jika kondisi bernilai benar, maka Statement_1, Statement_2 dieksekusi.

4 Setelah itu, maka eksekusi bagian increment/decrement

5 Lakukan terus menerus, sampai dengan bagian kondisi bernilai salah


Struktur Pengulangan 1 6
for(inisialisasi; kondisi; increment/decrement)
Program Studi S1 Informatika, Fakultas Ilmu Komputer
{ Universitas Pembangunan Nasional Veteran Jakarta
statement_1;
statement_2;
}

CONTOH MENCETAK ANGKA 1 SAMPAI DENGAN ANGKA 10

Code programnya:

Struktur Pengulangan 1 7
#include <stdio.h> Tracing
int main()
{
int i, n= 5;

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


{
printf("%d ", i);
}

return 0;
}

Struktur Pengulangan 1 8
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Contoh Pemakaian
percobaan 1:
0 1 2 3 4 5 6 7 8 9
int main() {
percobaan 2:
int i;
1 2 3 4 5 6 7 8 9 10
printf("percobaan 1:\n"); percobaan 3:
for (i = 0; i < 10; i++) 0 2 4 6 8
printf("%d ", i);

printf("\npercobaan 2:\n");
for (i = 1; i <= 10; i++)
printf("%d ", i);

printf("\npercobaan 3:\n");
for (i = 0; i < 10; i = i+2)
printf("%d ", i);

return 0;
}
Struktur Pengulangan 1 9
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Contoh Pemakaian
percobaan 4:
int main() { 9 8 7 6 5 4 3 2 1 0
int i; percobaan 5:
9 7 5 3 1
printf("\npercobaan 4:\n");
for (i = 9; i >= 0; i--)
printf("%d ", i);

printf("\npercobaan 5:\n");
for (i = 9; i >= 0; i -= 2)
printf("%d ", i);

return 0;
}

Struktur Pengulangan 1 10
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Tabel Perkalian Lima


int main() {
int i, batas;
printf("Tabel Perkalian Lima\n");
printf("sampai dengan ? ");
scanf("%d", &batas);

for (i = 1; i <= batas; i++)


printf("5 * %d = %d\n", i, 5 * i);

printf("nilai pencacah = %d", i); Tabel Perkalian Lima


sampai dengan ? 3
return 0; 5 * 1 = 5
} 5 * 2 = 10
5 * 3 = 15
nilai pencacah = 4
Struktur Pengulangan 1 11
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Tabel Perkalian Lima


for (i = 1; i <= batas; i++)
printf("5 * %d = %d\n", i, 5 * i);
printf("nilai pencacah = %d", i);

Langkah Instruksi i batas i <= batas Keluaran


1 scanf( ) ? 3
2 i=1 1 3
3 i <= batas 1 3 true
4 printf("...", i, 5*i) 1 3 5*1=5
5 i++ 2 3
6 i <= batas 2 3 true
7 printf("...", i, 5*i) 2 3 5 * 2 = 10
8 i++ 3 3
Struktur Pengulangan 1 12
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Tabel Perkalian Lima


for (i = 1; i <= batas; i++)
printf("5 * %d = %d\n", i, 5 * i);
printf("nilai pencacah = %d", i);

Langkah Instruksi i batas i <= batas Keluaran


9 i <= batas 3 3 true
10 printf("...", i, 5*i) 3 3 5*3=5
11 i++ 4 3
12 i <= batas 4 3 false
13 printf("...", i) 4 3 4

Struktur Pengulangan 1 13
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Deret Bilangan Genap baca bil1, bil2


jika bil1 <= bil2
Tulis program untuk menam- cacah  bil1
pilkan bilangan-bilangan ulangi selama cacah <= bil2
genap antara dua bilangan. jika cacah habis dibagi 2
Kedua bilangan batas ini ikut cetak cacah
ditampilkan bila merupakan akhir jika
cacah  cacah + 1
bilangan genap.
akhir pengulangan
selain itu
cacah  bil2
13 19 ulangi selama cacah <= bil1
13 14 15 16 17 18 19 20 jika cacah habis dibagi 2
cetak cacah
15 10 akhir jika
10 11 12 13 14 15 16 cacah  cacah + 1
akhir pengulangan
akhir jika
Struktur Pengulangan 1 14
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Deret Bilangan Genap


int main() {
int bil1, bil2, cacah;
scanf("%d %d", &bil1, &bil2);
if (bil1 <= bil2) {
for (cacah = bil1; cacah <= bil2; cacah++)
if ((cacah % 2) == 0) printf("%d ", cacah);
} else {
for (cacah = bil2; cacah <= bil1; cacah++)
if ((cacah % 2) == 0) printf("%d ", cacah);
}
return 0;
}

13 25 16 9
14 16 18 20 22 24 10 12 14 16
Struktur Pengulangan 1 15
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Deret Bilangan Genap


Jika kedua bilangan baca bil1, bil2
jika bil1 > bil2
‘terbalik’, maka pengantara  bil1
pertukarkan kedua bil1  bil2
bilangan ini. bil2  pengantara
akhir jika
13 20 cacah  bil1
13 14 15 16 17 18 19 20 21 ulangi selama cacah <= bil2
jika cacah habis dibagi 2
cetak cacah
15 10
akhir jika
10 15 cacah  cacah + 1
10 11 12 13 14 15 16 akhir pengulangan

Struktur Pengulangan 1 16
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Deret Bilangan Genap


int main() {
int bil1, bil2, cacah, temp;
scanf("%d %d", &bil1, &bil2);
if (bil1 > bil2) {
temp = bil1;
bil1 = bil2;
bil2 = temp;
}
for (cacah = bil1; cacah <= bil2; cacah++)
if ((cacah % 2) == 0) printf("%d ", cacah);
return 0;
}

13 25 16 9
14 16 18 20 22 24 10 12 14 16

Struktur Pengulangan 1 17
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Deret Bilangan Genap


Cari bilangan genap baca bil1, bil2
yang pertama. jika bil1 > bil2
Bilangan genap pengantara  bil1
berikutnya +2. bil1  bil2
bil2  pengantara
akhir jika
13 20 jika bil1 bilangan ganjil
14 20 cacah  bil1 + 1
14 16 18 20 selain itu
cacah  bil1
15 9 akhir jika
ulangi selama cacah <= bil2
9 15 cetak cacah
10 15 cacah  cacah + 2
10 12 14 akhir pengulangan
Struktur Pengulangan 1 18
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Deret Bilangan Genap


int main() {
int bil1, bil2, cacah, temp;
scanf("%d %d", &bil1, &bil2);
if (bil1 > bil2) {
temp = bil1; 16 9
bil1 = bil2; 10 12 14 16
bil2 = temp;
}
if ((bil1 % 2) == 1) cacah = bil1 + 1;
else cacah = bil1;
for (; cacah <= bil2; cacah += 2)
printf("%d ", cacah);
return 0;
13 25
}
14 16 18 20 22 24

Struktur Pengulangan 1 19
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

“Instruksi FOR yang bersarang, artinya terdapat instruksi FOR lainnya di


dalam instruksi FOR. ”
int i, j; OUTPUT
for (i=1; i<=2; i++)
{
for (j=1; j<=3; j++)
{
printf("*");
}
printf("\n");
}
Struktur Pengulangan 1 20
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Pernyataan FOR bersarang (Nested FOR) biasa digunakan untuk


menuliskan bilangan dalam bentuk matrik. Misalkan ingin menuliskan
bilangan 1, 2, … dalam bentuk matrik ukuran 3x3. Setiap baris hanya
diakhiri oleh newline

Struktur Pengulangan 1 21
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

int main() {
int n, i, j;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
printf("kelipatan %d = ", i);
for (j = 1; j <= 5; j++)
printf("%d ", i * j);
printf("\n");
}
return 0; 3
} kelipatan 1 = 1 2 3 4 5
kelipatan 2 = 2 4 6 8 10
kelipatan 3 = 3 6 9 12 15

Struktur Pengulangan 1 22
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

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


printf("kelipatan %d = ", i);
for (j = 1; j <= 5; j++)
printf("%d ", i * j);
printf("\n");
}
i j Tampilan layar
3 1 ? kelipatan 1 =
kelipatan 1 = 1 2 3 4 5
1 1 kelipatan 1 = 1
1 2 kelipatan 1 = 1 2
1 3 kelipatan 1 = 1 2 3
1 4 kelipatan 1 = 1 2 3 4
1 5 kelipatan 1 = 1 2 3 4 5
1 6
Struktur Pengulangan 1 23
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

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


printf("kelipatan %d = ", i);
for (j = 1; j <= 5; j++)
printf("%d ", i * j);
printf("\n");
} i j Tampilan layar
2 6 kelipatan 2 =
3 2 1 kelipatan 2 = 2
kelipatan 1 = 1 2 3 4 5
kelipatan 2 = 2 4 6 8 10 2 2 kelipatan 2 = 2 4
2 3 kelipatan 2 = 2 4 6
2 4 kelipatan 2 = 2 4 6 8
2 5 kelipatan 2 = 2 4 6 8 10
2 6

Struktur Pengulangan 1 24
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

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


printf("kelipatan %d = ", i);
for (j = 1; j <= 5; j++)
printf("%d ", i * j); i j Tampilan layar
printf("\n");
} 3 6 kelipatan 3 =
3 1 kelipatan 3 = 3
3
3 2 kelipatan 3 = 3 6
kelipatan 1 = 1 2 3 4 5
kelipatan 2 = 2 4 6 8 10 3 3 kelipatan 3 = 3 6 9
kelipatan 3 = 3 6 9 12 15 3 4 kelipatan 3 = 3 6 9 12
3 5 kelipatan 3 = 3 6 9 12
15
3 6
4 6
Struktur Pengulangan 1 25
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Segitiga Siku-Siku Rata Kiri


Tulis program untuk menampilkan segitiga siku-siku
rata kiri yang dibentuk dari karakter *. Misalkan
ukuran segitiga yang diinginkan adalah 4 maka
bentuk segitiganya:
*
**
***
****

Struktur Pengulangan 1 26
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Segitiga Siku-Siku Rata Kiri


baca n baca n
i1 i1
ulangi selama i <= n ulangi selama i <= n
mencetak sebaris bintang j1
ii+1 ulangi selama j <= i
akhir pengulangan cetak ‘*’
jj+1
akhir pengulangan
Pada Nilai i Jumlah *
pindah baris
baris ke yang dicetak
ii+1
1 1 1 akhir pengulangan
2 2 2
3 3 3 *
**
… … … ***
n n n ****
Struktur Pengulangan 1 27
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Segitiga Siku-Siku Rata Kiri


int main() {
int n, i, j;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
for (j = 1; j <= i; j++)
printf("*");
printf("\n"); // pindah baris
} 5
return 0; *
}
**
***
****
*****

Struktur Pengulangan 1 28
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Segitiga Siku-Siku Rata Kanan


Tulis program untuk menampilkan segitiga siku-siku
rata kanan yang dibentuk dari karakter *. Misalkan
ukuran segitiga yang diinginkan adalah 4 maka bentuk
segitiganya:
* baca n
** i1
ulangi selama i <= n
*** cetak sejumlah spasi
**** mencetak sebaris bintang
ii+1
Berapa banyak spasi akhir pengulangan
pada masing-masing
baris?

Struktur Pengulangan 1 29
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Segitiga Siku-Siku Rata Kanan


baca n
Pada Nilai i Jumlah
i1
baris ke Spasi ulangi selama i <= n
1 1 3 jmlpasi  n – i
j1
2 2 2
ulangi selama j <= jmlspasi
3 3 1 cetak spasi
jj+1
4 4 0
akhir pengulangan
* Jumlah spasi j1
** ulangi selama j <= i
pada baris ke-i cetak ‘*’
***
ialah n - i. jj+1
**** akhir pengulangan
pindah baris
ii+1
akhir pengulangan
Struktur Pengulangan 1 30
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Segitiga Siku-Siku Rata Kanan


int main() {
int n, i, j, spasi;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
spasi = n - i;
for (j = 1; j <= spasi; j++) printf(" ");
for (j = 1; j <= i; j++) printf("*");
printf("\n");
} 5
return 0; *
} **
***
****
*****

Struktur Pengulangan 1 31
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Latihan
Latihan 1
Terdapat variabel i yang dideklarasi dengan int 1;
Apa yang ditampilkan ke layar monitor oleh masing-
masing instruksi berikut?
a. for (i = 5; i < 10; i++) printf("%d ", i);
b. for (i = 10; i > 5; i--) printf("%d ", i);
c. for (i = 6; i < 10; i--) printf("%d ", i);
d. for (i = 10; i > 6; i++) printf("%d ", i);
e. for (i = 'A'; i < 'G'; i++) printf("%c", i);
f. for (i = 'a'; i < 'z'; i++) printf("%c", i);
g. for (i = 100; i < 110; i++) { printf("%d ", i); i += 2; }
Struktur Pengulangan 1 32
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Latihan
Latihan 2
Apa keluaran program berikut?
#include <stdio.h>
int main() {
int i,j,k = 100;
for (i = 0; i < 200; i++)
for (j = 0; j < 300; j++)
k = i + j;
printf("%d", k);
return 0;
}

Struktur Pengulangan 1 33
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Latihan
Latihan 3
Tulis program untuk mencetak bilangan kelipatan 3 antara
integer a hingga b, dicetak ke layar, dipisahkan oleh spasi,
ganti baris setiap 5 bilangan. Misalnya, jika diberi inputan
a=10 dan b=50, yang muncul di layar adalah seperti
berikut:
12 15 18 21 24
27 30 33 36 39
42 45 48

Struktur Pengulangan 1 34
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Latihan
Latihan 4
Tulis program untuk mencetak bentuk seperti gambar
berikut. Ukuran maksimum adalah 100.

Ukuran 1 Ukuran 2 Ukuran 3 Ukuran 4 Ukuran 5


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

Struktur Pengulangan 1 35
Program Studi S1 Informatika, Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta

Struktur Pengulangan 1 36

Anda mungkin juga menyukai