Struktur kontrol program
Struktur kontrol program pada C++ secara umum sama dengan VB dan Java yang telah kita pahami. Yang berbeda adalah sintaks penulisannya. Untuk percabangan, C++ menyediakan perintah if (tanpa then) dan switch ... case. Sedangkan untuk pengulangan, C++ menyediakan perintah for, while, dan do-while. Selain itu, pada pengulangan juga menyediakan fasilitas break dan continue. Secara berurutan berikut ini akan disampaikan kode-kode program untuk menerapkan struktur kendali. Ketikkan kode-kode tersebut, kemudian jalankan dan amati apa yang terjadi.
Contoh 9.7. Penggunaan struktur percabangan if sederhana.
#include <iostream>
using namespace std;
int main() {
int bil;
cout<<"Masukkan sebuah bilangan bulat : ";
cin>>bil;
// Melakukan pengecekan bilangan dengan operator modulus
if (bil % 2 == 0) {
cout<<bil<<" adalah bilangan genap" << endl;
} else {
cout<<bil<<" adalah bilangan ganjil" << endl;
}
return 0;
}
Pada contoh di atas kita menggunakan if untuk memeriksa apakah suatu bilangan genap atau ganjil. Operator yang kita gunakan adalah modulus (%). Perhatikan cara penulisan struktur if dan else.
Contoh 9.8. Penggunaan struktur percabangan if tiga kondisi.
#include <iostream>
using namespace std;
int main() {
int bil;
cout<<"Masukkan sebuah bilangan bulat : ";
cin>>bil;
if (bil > 0) {
cout<<bil<<" adalah bilangan POSITIF";
} else if (bil < 0) {
cout<<bil<<" adalah bilangan NEGATIF";
} else {
cout<<"ini bilangan NOL";
}
return 0;
}
Contoh 9.8. merupakan pengembangan dari Contoh 9.7. Struktur pemilihan dikembangkan menjadi tiga kondisi dengan menambahkan else. Apabila pemilihan lebih dari tiga kondisi atau banyak, C++ menyediakan perintah switch … case untuk memudahkan proses pemilihan. Perhatikan contoh berikut.
Contoh 9.9. Penggunaan struktur percabangan dengan switch ... case.
#include <iostream>
using namespace std;
int main() {
int bil;
cout<<"Masukkan sebuah bilangan (1 s/d 5) : ";
cin>>bil;
switch (bil) {
case 1 : cout<<"Bilangan anda adalah : SATU";
break;
case 2 : cout<<"Bilangan anda adalah : DUA";
break;
case 3 : cout<<"Bilangan anda adalah : TIGA";
break;
case 4 : cout<<"Bilangan anda adalah : EMPAT";
break;
case 5 : cout<<"Bilangan anda adalah : LIMA";
break;
default : cout<<"Anda memasukkan di luar batas";
}
return 0;
}
Contoh 9.9. adalah contoh percabangan dengan switch untuk konversi dari bilangan angka ke teks. Perhatikan bagaimana penulisan switch dan case.
Seperti juga pada Java, pengulangan dengan for digunakan jika kita mengetahui dengan pasti berapa banyak pengulangan akan dilakukan. Berikut contoh penggunaan pengulangan dengan for.
Contoh 9.10. Penggunaan struktur pengulangan dengan for.
#include <iostream>
using namespace std;
int main() {
int C, J;
cout<<"Cetak angka dari kecil ke besar :"<<endl;
for (C=0; C<10; C+3) {
cout<<C+1<<endl;
}
cout<<endl;
cout<<"Cetak angka dari besar ke kecil"<<endl;
for (J=10; J>0; J--) {
cout<<J<<endl;
}
return 0;
}
Contoh 9.10. merupakan contoh penggunaan for untuk kasus sederhana. Ada dua pengulangan for di atas, yaitu mencetak angka dari 1 sampai dengan 10, dan dari 10 sampai dengan 1. Perhatikan penggunaan increment ++ dan --. Cara penulisan di atas sangat mirip dengan penulisan pada Java yang telah kita pahami sebelumnya. Pada contoh 9.11 berikut ini, pengulangan for dikembangkan menjadi sedikit lebih rumit dengan menerapkan for bersarang.
Contoh 9.11. Penggunaan struktur pengulangan dengan for bersarang.
#include <iostream>
using namespace std;
int main() {
for (int j=1; j<=4; j++) {
for (int k=1; k<=3; k++) {
cout<<k+j<<' ';
}
cout<<endl;
}
return 0;
}
Ada dua pengulangan pada contoh 9.11. Yang pertama dengan menggunakan j sebagai variabel counter. Sedangkan yang kedua dengan variabel counter k yang bersarang di dalam pengulangan j. Menurut kita, bagaimanakah output dari kode program di atas?
Penggunaan while pada pengulangan, tidak berbeda jauh dengan apa yang telah kita pahami pada Java maupun VB. Perhatikan contoh 9.12 dan 9.13 berikut ini.
Contoh 9.12. Penggunaan struktur pengulangan dengan while sederhana.
#include <iostream>
using namespace std;
int main() {
int C;
C = 1; // inisialisasi nilai C
while (C<10) { cout<<"Saya tidak nakal lagi"<<endl; C++; // increment }
return 0;
}
Contoh 9.13. Penggunaan struktur pengulangan dengan while bersarang.
#include <iostream>
using namespace std;
int main() {
int x, y;
x = 1; //inisialisasi variabel x
while (x<=4){
y = 1; //inisialisasi variabel y
while (y<=3){
cout<<y+x<<' ';
y++;
}
cout<<endl;
x++;
}
return 0;
}
Perhatikan contoh 9.12 di atas, bagaimanakah menurut kita output dari kode program tersebut. Coba bandingkan dengan contoh 9.11. Cobalah memindahkan inisialisasi untuk variabel y. Letakkan setelah inisialisasi variabel x. Bagaimanakah hasilnya?
Bentuk berikutnya dari pengulangan pada C++ adalah dengan menggunakan do-while. Agak sedikit berbeda dengan while. Kondisi pemeriksaan pada do-while diletakkan di akhir badan loop. Contoh 9.14 memberikan gambaran bagaimana do-while digunakan dalam C++.
Contoh 9.14. Penggunaan struktur pengulangan dengan do-while.
#include <iostream>
using namespace std;
int main() {
int J = 5;
int K;
do {
K = 1;
do {
cout<<K*J<<' ';
K++;
} while (K <= J);
cout<<endl;
J--;
} while (J >= 1);
return 0;
}
Contoh 9.14 terlihat menampilkan kode program yang cukup rumit. Namun bila kita cermati, ini adalah kode program dengan pengulangan do while yang bersarang. Perhatikan cara penulisan dan alur logika programnya. Dowhile yang luar menggunakan variabel counter J, dan ini adalah pengulangan dari besar ke kecil (perhatikan J diinisialisasi dengan nilai 10, dan syarat kondisi pada while J >=1). Sedangkan do-while yang dalam variabel counter nya adalah K dengan pengulangan dari kecil ke besar. Bagaimanakah hasil dari eksekusi kode program di atas? Perhatikan output di bawah ini. Cobalah untuk menelusuri kode program, sehingga kita benar-benar mengerti mengapa output program bisa menjadi seperti ini.
5 10 15 20 25
4 8 12 16
3 6 9
2 4
1
Halaman Terkait:
| Dasar-dasar pemrograman c++ | Kerangka program C++ | Header file (.h) | Komentar, identifier, dan tipe Data | Operator | Input/output |
Post a Comment