BAB V. 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
<iostream>
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. Contohnya seperti nilai dari i di atas. Penulisan yang diberikan pada variabel i adalah:
++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. Contoh:
#include
<iostream>
using
namespace std;
void
main () {
int i = 1000;
while (i >= 1) {
cout << i << “\n”;
//yang digunakan adalah “—-“
--i;
}
}
Hasil yang didapat mungkin saja berbeda, tapi persamaan dari
keduanya adalah bahwa terjadi perulangan sebanyak 1000 kali, yaitu:
1000
999
…
1
Perlu diketahui bahwa yang terjadi pada perulangan jika sudah
mencapai false (dimana kondisinya
tidak lagi true melainkan false) adalah perulangan akan segera keluar dan
melanjutkan program. Misalnya saja dari program di atas, jika i tidak lagi lebih kecil atau sama dengan 1000 (misalnya 1001),
perulangan akan menghasilkan nilai false
(kondisi tidak lagi i <= 1000).
do...while
Biasanya in adalah perintah untuk tetap melakukan sesuatu dalam
program sampai kondisinya terpenuhi (aku memanggilnya “kepala batu” atau “si
keras kepala” :DDD). Misalnya perintah untuk tetap menampilan sebuah pesan
sampai adanya input yang valid dari user. Contoh:
#include
<iostream>
using
namecspace std;
void
main () {
char yes_no;
//lalu beberapa variabel diletakkan di
sini...
//... (di sini misalnya terdapat kerja
dari program)
// disini
diletakkan do...while untuk “menunggu” inputan yang
//valid dari user.
do {
cout << “masih mau lanjut? (y
/ n): “;
cin >> yes_no;
} while (yes_no != ‘y’ || yes_no != ‘n’);
if (yes_no == ‘y’)
//lakukan terserah apa aja yang anda
mau lakukan di sini
else
//di sini juga anda bisa lakukan apa
saja yang anda mau
//lakukan
}
Jika kita perhatikan mungkin ada tanda yang di pergunakan dalam kode
tersebut. Akan saya coba jelaskan mengenai beberapa operator logika yang
terdapat dalam C++.
Operator logika biasanya dipakai dalam perbandingan (kondisi).
Mengenai fungsi perbandingan ini akan dibahas dalam bab-bab berikutnya.
Operator logika yang biasanya dipakai ada beberapa macam, yaitu:
-
Tanda “&&” (and), operator ini berfungsi jika kedua
nilai pembandingnya bernilai true.
Contoh: i >= 0 && i <= 1000. Ini berarti penggunaan kondisi dimana kondisi tersebut adalah i lebih besar
atau sama dengan 0 dan lebih kecil
atau sama dengan 1.000 (0 – 1.000).
-
Tanda “||” (or), operator ini berfungsi jika salah
satu dari kedua nilai pembandingnya bernilai true. Contoh: i
>= 1000 || i <= 0. Ini berarti penggunaan kondisi dimana kondisi tersebut adalah i lebih besar
atau sama dengan 1.000 atau leih
kecil atau sama dengan 0 (-1 ke bawah atau 1.001 ke atas).
-
Tanda “!” (not), seperti yang kita lihat terdapat di bagian dari kode di atas
adalah merupakan tanda negasi, yang berarti semacam pembalik dari sesuatu.
Misalnya seperti yang kita lihat pada potongan kode di atas:
while (yes_no != ‘y’ || yes_no != ‘n’);
Ini kurang lebih dapat dibaca: “ketika yes_no tidak sama dengan ’y’ n atau
yes_no tidak tidak sama dengan ’n’.
Kembali ke masalah kode di atas, pada bagian “pembuka”
kita membuat beberap variabel, salah satunya adalah yes_no yang berfungsi untuk “menampung” nilai atau karakter yang dipilih
dari user. Jadi, kita membuat sebuah program yang entah kerjanya baagimana lalu
pada bagian akhir dari program tersebut, kita memberikan sebuah pilihan apakah
user masih mau lanjut atau tidak. Jika user memasukkan input yang tidak valid
misalnya menekan angka 0 atau menekan huruf
“t”), maka perintah yang berada dalam blok do…while akan di eksekusi,
dan begitu seterusnya jika user masih tidak memasukan input yang valid.
for
Ini adalah (mungkin) perulangan yang paling sering
dipakai dalam C++. Sintaknya adalah sebagai berikut:
for (inisialisasi; kondisi; iterasi) {
//yang ingin
dilakukan...
}
Dalam for, anda bisa melakukan inisialisasi, yaitu
mendeklarasikan variabel baru dan langsung memasukan nilai di dalamnya,
kemudian memberi kondisi dimana perulangan itu akan terus dilakukan, dan pada
akhirnya menentukan iterasi. Contoh dari for adalah sebagai berikut:
#include
<iostream>
using
namespace std;
void
main () {
int num_masuk;
cout << “berapa banyak anda mau
melakukan perulangan?: “;
cin >> num_masuk;
for (int i = 1; i <= num_masuk; ++i) {
cout << “ini adalah baris ke-“
<< i << “\n” ;
}
}
Pada kode di atas, yang akan menjadi input dari user untuk
menentukan berapa banyak perulangan akan dilakukan adalah num_masuk, dan variabel yang akan dijadikan patokan dalam perulangan adalah i, di mana i di buat
di dalam perintah for dan kemudian langsung di assign (inisialisasi). Kondisi yang digunakan adalah kondisi dimana
i <= num_masuk yang berarti, jika / selama
i lebih kecil atau sama dengan num_masuk maka perulangan akan terus dilakukan. Iteasi yang ditentukan di
sini adalah nilai dari i akan
ditambah 1 (satu) dalam setiap perulangan (++i). Contoh program yang sudah di compile
dari kode ini adalah:
Namun for juga bisa
digunakan sebagai berikut:
for
(int i = 1; i <= 10; ++i) {
for (int j = 1; j <= 10; ++j) {
cout << i * j << “\n”;
}
}
Program seperti ini dapat digunakan dalam perhitungan perkalian,
misalnya saja hasilnya dapat menjadi sebagai berikut:
Koding untuk program ini adalah:
#include
<iostream>
using
namespace std;
void
main () {
//untuk berapa banyak baris yang
diinginkan...
for (int i = 1; i <= 10; ++i) {
//jumlah kolom, mengingat bagian ini
yang akan
//dieksekusi lebih lanjut dan sampe
selesai daul baru
//dilanjutkan dengan bagian yang selanjutnya
(bagian baris)
for (int j = 1; j <= 3; ++j) {
cout << i <<
" X " << j << " = " << j * i <<
"\t";
}
//baris baru, setelah ketiga kolom
selesai “dibuat”
cout << "\n";
}
}
BAB VI. Break dan
continue
Ketika melakukan perulangan, ketika sampai batas tertentu kita ingin
memberhentikan perulangan tersebut. Untuk itulah, dibuat statement break dan continue.
break
Adalah perintah untuk langsung keluar dari looping
(perulangan). Contoh penggunaan statement break adalah:
while (i > 0) {
cout << i
<< “\n”;
if (i == 2)
break;
--i;
}
Sudah bisa tebak apa kira – kira yang akan dihasilkan
oleh program ini? Kalau belum, silahkan baca lebih lanjut.
Program tersebut akan dieksekusi sampai nilai i sama dengan 2. Seharusnya, progrma tersebut akan bejalan sampai
dengan nilai i sama dengan 1. Tapi
statement break yang diberikan pada kondisi dimana jika nilai i sama dengan 2 maka looping dihentikan, maka ketika nilai i sama dengan 2, nilai i tidak
dikurangi lagi (--i;) dan looping
keluar. Hasilnya kurang lebih bisa dilihat sama dengan contoh program berikut:
Kodenya adalah sebagai berikut:
#include
<iostream>
using
namespace std;
void
main () {
int baris;
cout << "berapa banyak anda
ingin mencetak baris?: ";
cin >> baris;
for (int i = 1; i <= baris; ++i) {
cout << "ok, ini adalah
baris yang ke-" << i << "\n";
if (i == (baris - 1))
break;
}
cout << "sorry, hanya bisa
sampe di situ doang... :D\n";
}
continue
Nah, ini juga mirip dengan break tadi hanya saja ini
kebalikannya. Langsung saja ke contohnya:
for (int i = 1; i <= 20; ++i) {
if (i % 7 == 0)
cout << i << “\n”;
else
continue;
}
Yang di atas itu adalah (kurang lebih) contoh yang saya
pelajari ketika saya belajar C++ juga :D. Itu adlaah kode untuk mencari
bilangan kelipatan 7 dari 1 – 20. Fungs continue diatas adalah, jika bilangan
itu tidak habis di bagi 7 (if
(i % 7 == 0)), maka lopingnya dilanjutkan terus, tanpa
adanya apa – apa yang akan dieksekusi. Contoh tampilannya adalah sebagai
berikut (kali ini kita akan mencoba mencari dari 1 sampai 100):
Kodenya adalah sebagai berikut:
#include
<iostream>
using
namespace std;
void
main () {
for (int i = 1; i <= 100; ++i) {
if (i % 7 == 0)
cout << i <<
" adalah kelipatan 7!\n";
else
continue;
}
}