Anda di halaman 1dari 8

MODUL MATA KULIAH PRAKTIKUM

ALGORITMA DAN PEMROGRAMAN

Modul 4 : Konstruksi Dasar Pengulangan (Repetition)

PROGRAM STUDI S1 TEKNIK TELEKOMUNIKASI


FAKULTAS TEKNIK TELEKOMUNIKASI DAN ELEKTRO
INSTITUT TEKNOLOGI TELKOM PURWOKERTO
2019
Konstruksi Dasar Pengulangan (Repetition)
I. DASAR TEORI
Konstruksi dasar pengulangan (repetition) merupakan konstruksi dasar yang
digunakan dalam suatu algoritma untuk menjalankan satu atau beberapa
pernyataan/instruksi yang sama sebanyak beberapa kali. Secara umum, struktur
flowchart dari konstruksi dasar pengulangan adalah sebagai berikut:

Cou nter ← awal


TO akh ir

Badan loop

Increament/
decreament

Proses/instruksi
selanjutnya

Berdasarkan struktur flowchart tersebut, konstruksi dasar pengulangan terdiri dari tiga
bagian, yaitu:
- Kondisi pengulangan: berisi operasi logika untuk menentukan awal dan akhir dari
suatu pengulangan. Selama kondisi masih terpenuhi
(bernilai true), pengulangan dapat terus dilakukan.
- Badan pengulangan: deretan instruksi yang akan diulang-ulang pelaksanaannya.
Instruksi tersebut dapat berupa konstruksi dasar runtutan,
konstruksi dasar pemilihan atau bahkan konstruksi
pengulangan yang lain.
- Pencacah (counter): suatu variabel yang digunakan untuk membatasi jumlah
pengulangan yang dapat dilaksanakan. Nilai variabel perlu
diatur bertambah (increament) atau berkurang (decreament)
pada setiap pengulangan dan akan berhenti
bertambah/berkurang jika nilainya sudah melebihi batas
nilai akhir yang sudah ditentukan. Namun, pada beberapa
kondisi tertentu, pencacah tidak diperlukan (opsional)
karena pembatasan pengulangan tidak dilakukan oleh
pencacah, melainkan oleh variabel dari suatu instruksi.

[Praktikum Algoritma dan Pemrograman] | FTE – Institut Teknologi Telkom Purwokerto


Konstruksi dasar pengulangan terdiri dari empat struktur, yaitu struktur For –
to, struktur While – Do, struktur Do – While, dan struktur pengulangan bersarang.
A. FOR - TO
Struktur FOR – TO digunakan untuk melakukan pengulangan sejumlah kali
yang telah dispesifikasi nilai awal dan nilai akhir/kondisi stop-nya. Dengan kata lain,
jumlah pengulangan struktur FOR – TO sudah diketahui sebelumnya atau dapat
ditentukan sebelum eksekusi program. Bentuk pseudocode untuk struktur FOR - TO
adalah sebagai berikut.
1. Strukur FOR – TO Meningkat
FOR [Counter]  [Nilai Awal] TO [Nilai Akhir]
DO
Proses/instruksi {Badan Pengulangan}
ENDFOR

2. Strukur FOR – TO Menurun


FOR [Counter]  [Nilai Akhir] DOWNTO [Nilai Awal]
DO
Proses/instruksi {Badan Pengulangan}
ENDFOR

Jika ditranslasikan ke struktur Bahasa C++ menjadi sebagai berikut.


for ([Counter]=[Nilai Awal]; [Counter]<=[Nilai Akhir];[Increament/Decreament])
{
Proses/instruksi; //Badan Pengulangan
}

Keterangan:
- [Counter] diisi dengan variabel yang berfungsi sebagai pencacah pengulangan
- [Nilai Awal] dan [Nilai Akhir] diisi dengan nilai yang sudah ditentukan dimana
[Nilai Akhir] ≥ [Nilai Awal]
- [Increament/Decreament] diisi dengan operasi aritmatika (+, -, ×, /) untuk
membuat nilai pada variabel [Counter] bertambah/berkurang. Pada pseudocode,
[Increament/Decreament] tidak perlu dituliskan karena nilai pada variabel
[Counter] diasumsikan selalu bertambah/berkurang satu secara otomatis pada
setiap pengulangan.

[Praktikum Algoritma dan Pemrograman] | FTE – Institut Teknologi Telkom Purwokerto


 Contoh untuk dicoba pada praktikum:

Identifikasi kode program:


- Apa nama variabel yang berfungsi sebagai [Counter]?
- Berapa [Nilai Awal] dan [Nilai Akhir] pada pengulangan tersebut?
- Operasi aritmatika apa yang digunakan pada [Increament/Decreament] dan
berapa kenaikannya untuk setiap pengulangan?
- Variasikan variabel [Counter], [Nilai Awal], [Nilai Akhir], dan
[Increament/Decreament] kemudian amati apa yang terjadi pada hasilnya?
- Ubah struktur FOR – TO meningkat di atas menjadi FOR – TO menurun dan
amati perbedaannya!
B. WHILE - DO
Bentuk pseudocode untuk struktur WHILE – DO adalah sebagai berikut.
[Counter]  [Nilai awal] {Opsional}
WHILE ([kondisi stop = TRUE]) DO
Proses/instruksi {Badan Pengulangan}
[Increament/Decreament] {Opsional}
END WHILE
Hasil translasi ke struktur Bahasa C++ adalah sebagai berikut.
[Counter] = [Nilai Awal] //Opsinal
while ([kondisi stop = TRUE])
{
Proses/instruksi; //Badan Pengulangan
[Increament/Decreament]; //Opsional
}
Berbeda dengan struktur FOR – TO yang mempunyai nilai awal dan nilai
akhir/kondisi stop, struktur WHILE – DO hanya mempunyai nilai akhir/kondisi stop
saja. Namun, struktur WHILE – DO juga dapat ditambahkan dengan nilai awal sebagai
inisialisasi, yaitu pada bagian sebelum masuk pada struktur WHILE – DO.
Sebelum melakukan pengulangan, kondisi stop akan diperiksa terlebih dahulu
apakah terpenuhi (bernilai true) atau tidak (bernilai false). Ketika kondisi tersebut
masih terpenuhi, instruksi/proses yang ada di dalam badan pengulangan akan
dikerjakan berulang kali sampai kondisi stopnya sudah tidak terpenuhi lagi.
Jika dibandingkan dengan struktur FOR – TO, struktur WHILE – DO dapat
digunakan sebaik penggunaan FOR – TO pada kasus-kasus dimana jumlah
pengulangan sudah diketahui di awal program. Namun, struktur WHILE – DO
memiliki keunggulan yang tidak dimiliki oleh FOR – TO, yaitu untuk kasus dimana
jumlah pengulangannya tidak dapat ditentukan di awal sehingga Kondisi Stop tidak
bergantung dari proses increament/decreament lagi. Pada kasus tersebut, struktur
WHILE – DO dapat mengatasi Kondisi Stop tersebut melalui suatu proses/instruksi
yang ada pada Badan Pengulangan.
 Contoh untuk dicoba pada praktikum:

Identifikasi kode program:


- Dari dua pengulangan menggunakan struktur WHILE – DO tersebut, kapan
pengulangan pertama akan berhenti dan kapan pengulangan kedua akan
berhenti?
- Manakah struktur WHILE – DO yang penggunaannya sebaik atau dapat
digantikan dengan penggunaan FOR – TO?
C. REPEAT - UNTIL
Bentuk pseudocode untuk struktur REPEAT – UNTIL adalah sebagai berikut.

[Praktikum Algoritma dan Pemrograman] | FTE – Institut Teknologi Telkom Purwokerto


[Counter]  [Nilai Awal] {Opsional}
REPEAT
Proses/instruksi {Badan Pengulangan}
[Increament/Decreament] {Opsional}
UNTIL ([Kondisi Stop = TRUE])

Hasil translasi ke struktur Bahasa C++ adalah sebagai berikut.


[Counter] = [Nilai Awal] //Opsional
do
{
Proses/instruksi; //Badan Pengulangan
[Increament/Decreament]; //Opsional
}
while ([Kondisi Stop = TRUE]);

Struktur REPEAT – UNTIL dapat dikatakan sebagai kebalikan dari kondisi


WHILE – DO. Jika pada struktur WHILE – DO, Kondisi Stop dicek di awal
pengulangan (sebelum Badan Pengulangan dijalankan), maka pada struktur REPEAT
– UNTIL, Kondisi Stop akan dicek di akhir pengulangan (setelah Badan Pengulangan
dijalankan sekali). Badan Pengulangan kembali dijalankan sampai Kondisi Stop tidak
terpenuhi (Bernilai false). Dengan kata lain, perbedaan antara struktur REPEAT –
UNTIL dan struktur WHILE – DO adalah Badan Pengulangan pada struktur REPEAT
– UNTIL akan dijalankan minimal satu kali, sedangkan pada struktur WHILE – DO
tidak akan pernah dilaksanakan bila kondisi stop pertama kali tidak terpenuhi (bernilai
false).
Contoh untuk dicoba pada praktikum:

[Praktikum Algoritma dan Pemrograman] | FTE – Institut Teknologi Telkom Purwokerto


Identifikasi kode program:
- Variabel apa yang menentukan kondisi Stop pada kode program tersebut?
- Berapa nilai awal dari Variabel tersebut dan kapan Pengulangan tersebut
berhenti?
- Jika nilai awal variabel sudah tidak memenuhi Kondisi Stop (bernilai false),
mengapa tetap ada output dari pengulangan tersebut?
D. Pengulangan Bersarang
Pengulangan bersarang terjadi ketika terdapat struktur pengulangan di dalam
struktur pengulangan sebelumnya (nested loop). Jika Kondisi Stop pada pengulangan
sebelumnya (kondisi-1) terpenuhi (bernilai true), maka Kondisi Stop pada pengulangan
di dalamnya (kondisi-2) akan diperiksa dan jika terpenuhi (bernilai true) maka
instruksi/proses yang ada di dalamnya akan diulang sampai kondisi-2 tidak terpenuhi
(bernilai false). Pengulangan Bersarang biasanya digunakan untuk data yang
melibatkan koordinat baris dan kolom (dua dimensi) seperti matriks berikut.
1 2 3 4 5
6 7 8 9 10
[ ]
11 12 13 14 15
16 17 18 19 20

Terdapat kombinasi struktur pengulangan yang dapat digunakan, seperti


kombinasi struktur yang sama (FOR – TO dengan FOR – TO, WHILE – DO dengan
WHILE – DO, dan REPAT – UNTIL dengan REPEAT – UNTIL) dan kombinasi
struktur yang berbeda (FOR – TO dengan WHILE – DO, FOR – TO dengan REPEAT
– UNTIL, dan WHILE – DO dengan REPEAT – UNTIL). Bentuk pseudocode untuk
Pengulangan Bersarang dengan kombinasi FOR – TO dengan FOR – TO adalah
sebagai berikut.
FOR [Counter1]  [Nilai Awal] TO [Nilai Akhir]
DO
FOR [Counter2]  [Nilai Awal] TO [Nilai Akhir]
DO
Proses/instruksi {Badan Pengulangan}
ENDFOR
ENDFOR

[Praktikum Algoritma dan Pemrograman] | FTE – Institut Teknologi Telkom Purwokerto


Hasil translasi ke struktur Bahasa C++ adalah sebagai berikut.
for ([Counter1]=[Nilai Awal]; [Counter1]<=[Nilai Akhir];[Increament/Decreament])
{
for ([Counter2]=[Nilai Awal]; [Counter2]<=[Nilai Akhir];[Increament/Decreament])
{
Proses/instruksi; //Badan Pengulangan
}
}

 Contoh untuk dicoba pada praktikum:

Identifikasi kode program:


- Hapus fungsi cout << endl yang terdapat pada baris ke-14 dan amati apa yang
terjadi. Apa fungsi dari cout << endl tersebut?
- Pada kombinasi dua FOR – TO di atas, struktur FOR – TO yang manakah yang
menentukan baris dan yang manakah yang menentukan kolom?

Anda mungkin juga menyukai