Looping
ASSALAMU'ALAIKUM WR.WB
Pengertian Looping
Looping adalah pengulangan sesuatu atau serangkaian “kerja” dari program. Dalam C++, paling tidak dikenal ada 3 looping.
While
- Perintah while adalah pengulangan yang dilakukan oleh program selama (while) dalam keadaan tertentu. Misalnya saja, ada sebuah kondisi yang mengharuskan program agar melakukan “pekerjaan” tertentu selama keadaan itu terpenuhi (true).
Contoh:
Mencetak angka 1 sampai 1000
#include
using namespace std;
void main() {
int i = 1;
kondisi ditetapkan (bahwa selama i lebih kecil atau sama dengan 1000 ada perintah yang diberikan pada program...)
while (i <= 1000) {
perintah untuk mencetak nilai dari i dan kemudian membuat baris baru
cout << i << “\n”; iterasi
++i;
i = i + 1;
i += 1;
Nah,
dari kode di atas kita lihat bahwa selama i lebih kecil atau sama
dengan 1000, nilai dari i akan di cetak ke layar. Jadi, hasilnya adalah:
1
2
…
1000
Akan tercetak angka dari 1 sampai 1000 di layar. Perhatikan baik – baik ada sepenggal kode yang diberi komentar “iterasi”. Apakah iterasi itu? Iterasi dalam looping adalah proses yang berpengaruh dalam nilai dari variabel yang ditetapkan sebagai acuan looping. Atau dapat pula dikatakan bahwa, iterasi adalah bagaimana penambahan nilai atau pengurangan dalam perulangan.
1
2
…
1000
Akan tercetak angka dari 1 sampai 1000 di layar. Perhatikan baik – baik ada sepenggal kode yang diberi komentar “iterasi”. Apakah iterasi itu? Iterasi dalam looping adalah proses yang berpengaruh dalam nilai dari variabel yang ditetapkan sebagai acuan looping. Atau dapat pula dikatakan bahwa, iterasi adalah bagaimana penambahan nilai atau pengurangan dalam perulangan.
Contohnya seperti nilai dari i di atas. Penulisan yang akan di berikan pada variable i adalah :
++i;
Itu sama saja dengan perintah yang berada di dalam komentar:
i = i + 1;
Dan
i += i ;
++i;
Itu sama saja dengan perintah yang berada di dalam komentar:
i = i + 1;
Dan
i += i ;
Perintah ini berarti bahwa i menambahkan dirinya sendiri dengan 1. Tanda “++” pada i pada bagian depan dari i (prefix), berarti kita langsung menambahkan variabel i dengan 1, tanpa menggunaan terlebih dahulu nilai dari i. Jika kita menggunakan tanda “++” pada bagian akhir dari variabel i (postfix), berarti nilai dari i digunakan terlebih dahulu lalu kemudian ditambahkan dengan 1.
Contoh lain dari hal ini adalah dengan menggunakan pengurangan sebagai pengulangan.
Struktur Pengulangan
Bentuk Umum: <inisialisasi>
awal pengulangan
badan pengulangan
akhir pengulangan
<terminasi>
Bentuk Umum: <inisialisasi>
awal pengulangan
badan pengulangan
akhir pengulangan
<terminasi>
- <inisialisasi>: aksi yang dilakukan sebelum pengulangan dilakukan untuk pertama kalinya.
- Badan pengulangan: bagian algoritma yang diulang
- <terminasi>: aksi yang dilakukan setelah pengulangan selesai dilaksanakan
- <inisialisasi> dan <terminasi> tidak selalu ada, namun pada berbagi kasus inisialisasi umumnya diperlukan awal dan akhir pengulangan dinyatakan sebagai kata kunci yang bergantung pada struktur pengulangan yang digunakan.
Macam struktur pengulangan
Struktur FOR pengulangan tanpa kondisi (unconditional looping) jumlah pengulangan sudah diketahui
Struktur FOR pengulangan tanpa kondisi (unconditional looping) jumlah pengulangan sudah diketahui
sebelum eksekusi
Struktur WHILE
pengulangan dengan kondisi (conditional looping) jumlah pengulangan tidak diketahui
sebelum eksekusi program. Yang dapat ditentukan hanya kondisi berhenti
Struktur REPEAT pengulangan (instruksi-instruksi di dalam badan pengulangan diulangi sampai kondisi
Struktur REPEAT pengulangan (instruksi-instruksi di dalam badan pengulangan diulangi sampai kondisi
berhenti terpenuhi)
Struktur FOR
- Struktur pengulangan FOR digunakan untuk mengulang statemen atau satu blok statemen berulang kali.
- Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi.
- Untuk mencacah sudah jumlah pengulangan diperlukan sebuah peubah (variable) pencacah (counter). Peubah ini nilainya selalu bertambah satu setiap kali pengulangan dilakukan.
- Jika cacah pengulangan sudah mencapai jumlah yang dispesifikasikan, maka proses pengulangan berhenti.
Bentuk umum struktur FOR:
– Menaik (ascending)
– Menurun (descending)
– Menaik (ascending)
– Menurun (descending)
FOR menaik
for pencacah <- nilai_awal to nilai_akhir do
aksi
endfor
- pencacah -> menggunakan tipe data yang memiliki predecessor dan successor, yaitu integer atau karakter (tipe riil tidak dapat digunakan sebagai pencacah)
- aksi -> satu atau lebih instruksi yang diulang.
- nilai_awal harus lebih kecil atau sama dengan nilai_akhir (jika nilai_awal lebih besar dari nilai_akhir, maka badan pengulangan tidak dimasuki)
- pada awalnya pencacah diinisialisasikan dengan nilai_awal. Nilai pencacah secara otomatis bertambah satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai pencacah sama dengan nilai_akhir
- jumlah pengulangan yang terjadi = nilai_akhir – nilai_awal + 1
Contoh: Mencetak tulisan ‘Informatika’ sebanyak 5 kali
Algoritma CETAK_INFORMATIKA
{ Mencetak ‘Informatika’ sebanyak 5 kali }
DEKLARASI
k : integer { pencacah pengulangan }
DESKRIPSI :
DEKLARASI
k : integer { pencacah pengulangan }
DESKRIPSI :
for k¬1 to 5 do { ulangi sebanyak 5 kali }
write(‘Informatika’)
endfor
write(‘Informatika’)
endfor
Program CETAK_INFORMATIKA;
{ Mencetak ‘Informatika’ sebanyak 5 kali }
(* DEKLARASI *)
var
k : integer;
(* DESKRIPSI *)
begin
for k := 1 to 5 do
writeln(‘Informatika’);
(*endfor*)
end.
- Struktur FOR dapat digunakan sebagai penyelesaian karena jumlah pengulangan sudah ditentukan sebelumnya (5 kali)
- Badan pengulangan hanya berisi satu instruksi, yaitu write(‘Informatika’)
- k adalah peubah pencacah yang bertipe integer
- pada mulanya k bernilai 1, nilai k selalu bertambah 1 setiap kali pengulangan dilakukan, sampai akhirnya k mencapai 5
- Jumlah pengulangan yang dilakukan: 5 – 1 + 1 = 5 kali
- Keluaran dari algoritmaCETAK_INFORMATIKA adalahstring ‘Informatika’ sebanyak 5kali:
Informatika
Informatika
Informatika
Informatika
Informatika
Informatika
Informatika
Contoh:
Menghitung jumlah
angka-angka dari 1
sampai N.
jumlah = 1 + 2 + 3 +
... + N
Nilai N dibaca terlebih
dahulu dari piranti
masukan. Misalnya,
jika N = 5, maka
jumlah angka dari 1
sampai 5 adalah deret
1 + 2 + 3 + 4 + 5 = 15
Menghitung jumlah
angka-angka dari 1
sampai N.
jumlah = 1 + 2 + 3 +
... + N
Nilai N dibaca terlebih
dahulu dari piranti
masukan. Misalnya,
jika N = 5, maka
jumlah angka dari 1
sampai 5 adalah deret
1 + 2 + 3 + 4 + 5 = 15
Algoritma PENJUMLAHAN_DERET
{ Menjumlahkan deret 1 + 2 + 3 + ... + N, dengan N adalah bilangan bulat positif yang dibaca dari piranti
masukan }
DEKLARASI
k : integer { pencacah pengulangan }
N, jumlah : integer
DESKRIPSI :
read(N) { banyaknya suku deret }
jumlah ¬ 0
for k¬1 to N do { ulangi sebanyak N
kali }
jumlah ¬ jumlah + k
endfor
write(jumlah)
for k¬1 to N do { ulangi sebanyak N
kali }
jumlah ¬ jumlah + k
endfor
write(jumlah)
Program PENJUMLAHAN_DERET;
{ Menjumlahkan deret 1 + 2 + 3 + ... + N, dengan N adalah bilangan bulat positif yang dibaca dari piranti masukan }
(* DEKLARASI *)
var
k, N, jumlah : integer;
(* DESKRIPSI *)
begin
write(‘Masukkan banyaknya suku deret : ‘);
readln(N);
jumlah := 0;
for k := 1 to N do
jumlah := jumlah + k;
(*endfor*)
writeln(jumlah);
end.
(* DEKLARASI *)
var
k, N, jumlah : integer;
(* DESKRIPSI *)
begin
write(‘Masukkan banyaknya suku deret : ‘);
readln(N);
jumlah := 0;
for k := 1 to N do
jumlah := jumlah + k;
(*endfor*)
writeln(jumlah);
end.
Contoh:
Menghitung nilai rata-rata dari N buah data bilangan bulat yang dibaca dari piranti masukan. Nilai rata-rata adalah jumlah seluruh nilai dibagi dengan banyaknya nilai.
Misalkan, N = 5 dan data bilangan yang dibaca berturut-turut adalah 12, 10, 6, 2, 4, maka nilai rataratanya
adalah:
(12 + 10 + 6 + 2 + 4)/5 = 34/5
= 6.8
Algoritma HITUNG_RATA_RATA
{ Menghitung rata-rata N buah bilangan bulat yang dibaca dari
piranti masukan. N > 0. }
DEKLARASI
k : integer { pencacah pengulangan }
N : integer { jumlah data, > 0 }
x : integer { bilangan bulat yang
dibaca }
jumlah : integer
rata : real
DESKRIPSI :
read(N) { banyaknya suku deret }
jumlah ¬ 0
for k¬1 to N do { ulangi sebanyak N
kali }
read(x)
jumlah ¬ jumlah + x
endfor
rata ¬ jumlah/N
write(rata)
Program HITUNG_RATA_RATA;
{ Menghitung rata-rata N buah bilangan bulat yang dibaca dari piranti masukan. N > 0. }
(* DEKLARASI *)
var
k, N, x, jumlah : integer;
rata : real;
(* DESKRIPSI *)
begin
write(‘Masukkan banyaknya suku deret : ‘);
readln(N);
jumlah := 0;
for k := 1 to N do
begin
write(‘Bilangan ke-’,k,’ : ‘);readln(x);
jumlah := jumlah + x;
end;
rata := jumlah/N;
writeln(rata);
end.
- Pencacah pengulangan tidak harus bertipe integer. Tipe lain pun juga dapat dijadikan sebagai pencacah asalkan tipe tersebut memiliki keterurutan (ada predecessor dan successor. Bilangan bulat dan karakter adalah tipe data yang memiliki predecessor dan successor. Bilangan riil tidak memiliki predecessor dan successor sehingga ia tidak dapat digunakan sebagai pencacah.
FOR menurun
for pencacah¬nilai_akhir downto nilai_awal do
aksi
endfor
aksi
endfor
- pencacah -> menggunakan tipe data yang memilki predecessor dan successor, yaitu integer atau karakter (tipe riil tidak dapat digunakan sebagai pencacah.
- aksi adalah satu atau lebih instruksi yang diulang)
- nilai_akhir harus lebih besar atau sama dengan nilai_awal (Jika nilai_akhir lebih kecil dari nilai_awal, maka badan pengulangan tidak dimasuki)
- pada awalnya pencacah diinisialisasikan dengan nilai_akhir. Nilai pencacah secara otomatis berkurang satu setiap kali aksi diulangi, sampai akhirnya nilai pencacah sama dengan nilai_awal.
- jumlah pengulangan yang terjadi = nilai_akhir – nilai_awal + 1
Contoh: Mencetak angka 5, 4, …, 1
Algoritma CETAK_ANGKA_TURUN
{ Mencetak 5, 4, ..., 1 ke piranti keluaran }
DEKLARASI
k : integer { pencacah pengulangan }
DESKRIPSI :
for k¬5 downto 1 do
write(k)
endfor
{ Mencetak 5, 4, ..., 1 ke piranti keluaran }
DEKLARASI
k : integer { pencacah pengulangan }
DESKRIPSI :
for k¬5 downto 1 do
write(k)
endfor
Program CETAK_ANGKA_TURUN;
{ Mencetak 5, 4, ..., 1 ke piranti keluaran }
(* DEKLARASI *)
var
k : integer;
(* DESKRIPSI *)
begin
for k := 5 downto 1 do
write(k,’ ‘);
(*endfor*)
end.
var
k : integer;
(* DESKRIPSI *)
begin
for k := 5 downto 1 do
write(k,’ ‘);
(*endfor*)
end.
Pada algoritma
CETAK_ANGKA_TURUN,
angka-angka yang dicetak bersesuaian dengan nilai pencacah pengulangan. Keluaran dari algoritma adalah angka 5 yang turun sampai ke angka 1:
5 4 3 2 1
WASSALAMU'ALAIKUM WR.WB
Terimakasih Sudah mengunjungi Blog saya
CETAK_ANGKA_TURUN,
angka-angka yang dicetak bersesuaian dengan nilai pencacah pengulangan. Keluaran dari algoritma adalah angka 5 yang turun sampai ke angka 1:
5 4 3 2 1
WASSALAMU'ALAIKUM WR.WB
Terimakasih Sudah mengunjungi Blog saya
Tidak ada komentar:
Posting Komentar