Struktur Kontrol
Struktur Kontrol
Sebuah program biasanya tidak terbatas
hanya pada intruksi yang terurut saja, tetapi juga memungkinkan terjadinya
percabangan, perulangan dan pengambilan keputusan. Untuk mengatasi kebutuhan
itu C++ menyediakan struktur kontrol yang dapat menangani hal-hal tersebut.
Untuk membahas hal tersebut diatas, akan
ditemui istilah block of instructions. Blok instruksi adalah sekumpulan
instruksi yang dibatasi dengan tanda semicolon (;) tetapi dikelompokan dalam
satu blok yang dibatasi dengan kurung kurawal { }.
Struktur Kondisional : if and else
Digunakan untuk mengeksekusi sebuah atau satu blok instruksi jika kondisi terpenuhi, sintaks:
if (condition) statement
condition merupakan ekspresi yang dievaluasi. Jika kondisi bernilai true, maka statement akan dijalankan. Jika false, maka statement akan diabaikan dan program menjalankan instruksi selanjutnya.
Contoh, Akan tercetak x is 100 jika nilai yang disimpan pada variable x adalah 100:
if (x == 100)
cout << "x is 100";
Jika ada lebih dari satu instruksi yang akan dijalankan maka harus dibuat dalam blok instruksi dengan menggunakan tanda kurung kurawal { }:
if (x == 100)
{
cout << "x is ";
cout << x;
}
{
cout << "x is ";
cout << x;
}
Dapat juga menggunakan keyword else,
jika kondisi tidak terpenuhi. Penulisannya digabungkan dengan if :
if (condition)
statement1 else statement2
Contoh :
if (x == 100)
cout << "x is 100";
else
cout << "x is not 100";
Akan tercetak x is 100 jika nilai x adalah 100, jika tidak akan tercetak x is not 100.
if (x == 100)
cout << "x is 100";
else
cout << "x is not 100";
Akan tercetak x is 100 jika nilai x adalah 100, jika tidak akan tercetak x is not 100.
Contoh :
if (x > 0)
cout << "x is positive";
else if (x < 0)
cout << "x is negative";
else
cout << "x is 0"
if (x > 0)
cout << "x is positive";
else if (x < 0)
cout << "x is negative";
else
cout << "x is 0"
Struktur perulangan
(loops)
Loops merupakan perulangan statement dengan jumlah tertentu jika kondisi terpenuhi.
The while loop.
Sintaks :
Loops merupakan perulangan statement dengan jumlah tertentu jika kondisi terpenuhi.
The while loop.
Sintaks :
while (expression) statement
Fungsi dari statement diatas adalah
mengulang statement jika expression bernilai true.
Contoh :
// custom countdown using while
Contoh :
// custom countdown using while
#include <iostream.h>
int main ()
{
int n;
cout << "Enter the starting number > ";
cin >> n;
while (n>0) {
cout << n << ", ";
--n;
}
cout << "FIRE!";
return 0;
}
Output :
Enter the starting number > 8
8, 7, 6, 5, 4, 3, 2, 1, FIRE!
int main ()
{
int n;
cout << "Enter the starting number > ";
cin >> n;
while (n>0) {
cout << n << ", ";
--n;
}
cout << "FIRE!";
return 0;
}
Output :
Enter the starting number > 8
8, 7, 6, 5, 4, 3, 2, 1, FIRE!
Algoritma program dimulai dari main :
1. User meng-input nilai untuk n.
2. Instrukti while mengevaluasi apakah (n>0). Ada dua kemungkinan :
true: meng-eksekusi statement (step 3,)
false: melompati statement. lanjut ke step 5..
3.Mengeksekusi statement : cout << n << ", ";
--n;
(Menampilkan n di layar dan mengurangi n dengan 1).
4. Akhir dari blok. kembali ke step 2.
5. lanjut menuju program setelah blok. Cetak : FIRE! dan program berakhir.
1. User meng-input nilai untuk n.
2. Instrukti while mengevaluasi apakah (n>0). Ada dua kemungkinan :
true: meng-eksekusi statement (step 3,)
false: melompati statement. lanjut ke step 5..
3.Mengeksekusi statement : cout << n << ", ";
--n;
(Menampilkan n di layar dan mengurangi n dengan 1).
4. Akhir dari blok. kembali ke step 2.
5. lanjut menuju program setelah blok. Cetak : FIRE! dan program berakhir.
The do-while loop.
Format:
Format:
do statement while (condition);
Secara fungsional, hampir sama dengan
while loop, hanya saja condition dalam do-while
dievaluasi setelah eksekusi statement , dengan kata lain, sedikitnya satu kali eksekusi statement
walaupun kondisi tidak terpenuhi. Contoh :
dievaluasi setelah eksekusi statement , dengan kata lain, sedikitnya satu kali eksekusi statement
walaupun kondisi tidak terpenuhi. Contoh :
// number echoer
#include <iostream.h>
int main ()
{
unsigned long n;
do {
cout << "Enter number (0 to end): ";
cin >> n;
cout << "You entered: " << n << "\n";
} while (n != 0);
return 0;
}
Output :
Enter number (0 to end): 12345
You entered: 12345
Enter number (0 to end): 160277
You entered: 160277
Enter number (0 to end): 0
You entered: 0
int main ()
{
unsigned long n;
do {
cout << "Enter number (0 to end): ";
cin >> n;
cout << "You entered: " << n << "\n";
} while (n != 0);
return 0;
}
Output :
Enter number (0 to end): 12345
You entered: 12345
Enter number (0 to end): 160277
You entered: 160277
Enter number (0 to end): 0
You entered: 0
The for loop.
Format :
for (initialization; condition; increase) statement;
Fungsinya akan mengulang statement jika condition bernilai benar. Sama seperti while loop.,
hanya saja for memungkinkan untuk memberikan instruksi initialization dan intruksi increase,
sehingga dapat menampilkan loop dengan counter.
Algoritma perulangan for :
1. initialization, digunakan untuk memberikan nilai awal untuk variable counter. Dieksekusi
hanya sekali.
2. condition, Dievaluasi, jika bernilai true maka loop berlanjut, sebaliknya loop berhenti dan
statement diabaikan
3. statement, dieksekusi, bisa berupa instruksi tunggal maupun blok instruksi (dalam tanda
{ } ).
4. increase, dieksekusi kemudian algoritma kembali ke step 2.
Format :
for (initialization; condition; increase) statement;
Fungsinya akan mengulang statement jika condition bernilai benar. Sama seperti while loop.,
hanya saja for memungkinkan untuk memberikan instruksi initialization dan intruksi increase,
sehingga dapat menampilkan loop dengan counter.
Algoritma perulangan for :
1. initialization, digunakan untuk memberikan nilai awal untuk variable counter. Dieksekusi
hanya sekali.
2. condition, Dievaluasi, jika bernilai true maka loop berlanjut, sebaliknya loop berhenti dan
statement diabaikan
3. statement, dieksekusi, bisa berupa instruksi tunggal maupun blok instruksi (dalam tanda
{ } ).
4. increase, dieksekusi kemudian algoritma kembali ke step 2.
Contoh :
// countdown using a for loop
// countdown using a for loop
#include <iostream.h>
int main ()
{
for (int n=10; n>0; n--) {
cout << n << ", ";
}
cout << "FIRE!";
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, FIRE!
int main ()
{
for (int n=10; n>0; n--) {
cout << n << ", ";
}
cout << "FIRE!";
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, FIRE!
Initialization dan increase bersifat
optional. Sehingga dapat dituliskan : for (;n<10;) untuk for tanpa
initialization dan increase; atau for (;n<10;n++) untuk for dengan increase
tetapi tanpa initialization. Dengan operator koma (,) kita dapat
mendeklarasikan lebih dari satu instruksi pada bagian manapun termasuk dalam
loop for, contoh :
for ( n=0, i=100 ; n!=i ; n++, i-- )
{
// whatever here...
}
Loop diatas akan meng-eksekusi sebanyak 50 kali :
for ( n=0, i=100 ; n!=i ; n++, i-- )
{
// whatever here...
}
Loop diatas akan meng-eksekusi sebanyak 50 kali :
nilai awal n = 0 dan i
= 100, dengan kondisi (n!=i) (yaitu n tidak sama dengan i). Karena n mengalami
penambahan 1 dan i mengalami pengurangan 1, maka kondisi loop akan salah
setelah loop yang ke-50, yaitu ketika n dan i bernilai 50.
Kontrol Percabangan
(Bifurcation) dan Lompatan (jumps)
Instruksi break
Dengan menggunakan instruksi break, program akan keluar dari loop walaupun kondisi untuk berakhirnya loop belum terpenuhi. Dapat digunakan untuk mengakhiri infinite loop, atau untuk menyebabkan loop selesai sebelum saatnya, contoh :
Instruksi break
Dengan menggunakan instruksi break, program akan keluar dari loop walaupun kondisi untuk berakhirnya loop belum terpenuhi. Dapat digunakan untuk mengakhiri infinite loop, atau untuk menyebabkan loop selesai sebelum saatnya, contoh :
// break loop example
#include <iostream.h>
int main ()
#include <iostream.h>
int main ()
{
int n;
for (n=10; n>0; n--) {
cout << n << ", ";
if (n==3)
{
cout << "countdown aborted!";
break;
}
}
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, countdown aborted!
int n;
for (n=10; n>0; n--) {
cout << n << ", ";
if (n==3)
{
cout << "countdown aborted!";
break;
}
}
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, countdown aborted!
Instruksi continue
Instruksi continue menyebabkan program akan melewati instruksi selanjutnya hingga akhir blok dalam loop. Atau dengan kata lain langsung melompat ke iterasi selanjutny. Contoh berikut akan melewati angka 5 dalam hitungan mundur :
Instruksi continue menyebabkan program akan melewati instruksi selanjutnya hingga akhir blok dalam loop. Atau dengan kata lain langsung melompat ke iterasi selanjutny. Contoh berikut akan melewati angka 5 dalam hitungan mundur :
// break loop example
#include <iostream.h>
int main ()
{
for (int n=10; n>0; n--) {
if (n==5) continue;
cout << n << ", ";
}
cout << "FIRE!";
return 0;
}
Output :
10, 9, 8, 7, 6, 4, 3, 2, 1, FIRE!
#include <iostream.h>
int main ()
{
for (int n=10; n>0; n--) {
if (n==5) continue;
cout << n << ", ";
}
cout << "FIRE!";
return 0;
}
Output :
10, 9, 8, 7, 6, 4, 3, 2, 1, FIRE!
Instruksi goto
Menyebabkan lompatan dalam program. Tujuan dari lompatan diidentifikasikan dengan label,
yang berisikan argumen-argumen. penulisan label diikuti dengan tanda colon (:). Contoh :
// goto loop example
Menyebabkan lompatan dalam program. Tujuan dari lompatan diidentifikasikan dengan label,
yang berisikan argumen-argumen. penulisan label diikuti dengan tanda colon (:). Contoh :
// goto loop example
#include <iostream.h>
int main ()
{
int n=10;
loop:
cout << n << ", ";
n--;
if (n>0) goto loop;
cout << "FIRE!";
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, FIRE!
int main ()
{
int n=10;
loop:
cout << n << ", ";
n--;
if (n>0) goto loop;
cout << "FIRE!";
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, FIRE!
Struktur Seleksi
:
switch.
Instruksi switch digunakan untuk membandingkan beberapa nilai konstan yang mungkin untuk sebuah ekspresi, hampir sama dengan if dan else if. Bentuk umumnya :
switch (expression) {
case constant1:
block of instructions 1
break;
case constant2:
block of instructions 2
break;
.
.
default:
default block of instructions
}
Instruksi switch digunakan untuk membandingkan beberapa nilai konstan yang mungkin untuk sebuah ekspresi, hampir sama dengan if dan else if. Bentuk umumnya :
switch (expression) {
case constant1:
block of instructions 1
break;
case constant2:
block of instructions 2
break;
.
.
default:
default block of instructions
}
switch meng-evaluasi expression dan
memeriksa apakah equivalen dengan constant1, jika ya, maka akan meng-eksekusi
block of instructions 1 sampai terbaca keyword break, kemudian program akan
lompat ke akhir dari stuktur selektif switch. Jika expression tidak sama dengan
constant1, maka akan diperiksa apakah expression equivalen dengan constant2.
jika ya, maka akan dieksekusi block of instructions 2 sampai terbaca break.
Begitu seterusnya, jika tidak ada satupun konstanta yang sesuai maka akan
mengeksekusi
default:
default:
contoh :
switch example
switch (x) {
case 1:
cout << "x is 1";
break;
case 2:
cout << "x is 2";
break;
default:
cout << "value of x unknown";
}
switch example
switch (x) {
case 1:
cout << "x is 1";
break;
case 2:
cout << "x is 2";
break;
default:
cout << "value of x unknown";
}
if-else equivalent
if (x == 1) {
cout << "x is 1";
}
else if (x == 2) {
cout << "x is 2";
}
else {
cout << "value of x unknown";
}
Referensi:
if (x == 1) {
cout << "x is 1";
}
else if (x == 2) {
cout << "x is 2";
}
else {
cout << "value of x unknown";
}
Referensi:
Andri Kristanto. 2003. “Struktur Data dengan C++”. Yogyakarta: Graha Ilmu. 2.
Budi Sutedjo, Michael A.N. 2000. “Algoritma dan Teknik Pemrograman”.
Yogyakarta: ANDI OFFSET. 3. Fathul Wahid. 2004. “Dasar-Dasar Algoritma dan
Pemrograman”. Yogyakarta: ANDI OFFSET. 4. Heri Sismoro, Kusrini Iskandar. 2004.
”Struktur Data dan Pemrograman dengan Pascal”. Yogyakarta:ANDI OFFSET. 5. Insap
Santosa. 2004. ”Struktur Data Menggunakan Turbo Pascal 6.0”. Yogyakarta: ANDI
OFFSET. 6. Rinaldi Munir, Leoni Lidya. 2002.
struktur Kontrol : Percabangan
Algoritma Percabangan
Sebuah program tidak selamanya akan berjalan dengan
mengikuti struktur berurutan, kadang-kadang kita perlu merubah urutan
pelaksanaan program dan menghendaki agar pelaksanaan program meloncat ke baris
tertentu. Peristiwa ini kadang disebut sebagai
percabangan/pemilihan atau keputusan. Berikut beberapa
kondisi percabangan :
1. Penulisan percabangan
1 kondisi
if then
pernyataan
penjelasan :
Jika <kondisi> bernilai benar maka pernyataan dikerjakan,
sedangkan jika tidak, makapernyataan tidak dikerjakan dan proses
langsung keluar dari percabangan
Flowchart :
2. Penulisan percabangan
2 kondisi
if then
pernyataan1
else
pernyataan2
penjelasan :
Jika <kondisi>
bernilai benar maka pernyataan1 dikerjakan. Sedangkan jika
tidak (<kondisi> bernilai salah), maka pernyataan yang
dikerjakan adalah pernyataan2. Berbeda dengan percabangan satu
kondisi, pada percabangan dua kondisi ada dua pernyataan untuk dua keadaan
kondisi, yaitu untuk <kondisi> yang bernilai benar dan <kondisi>
yang bernilai salah
Flowchart :
3. Penulisan percabangan
lebih dari 2 kondisi
If then
Pernyataan1
else if then
Pernyataan2
...
else if then
Pernyataan(n)
else
Pernyataan(n)
Penjelasan :
Mula-mula <kondisi1>
dicek nilai kebenarannya. Jika benar, maka dikerjakanpernyataan1. Jika
salah, maka dicek nilai kebenaran <kondisi2>. Jika <kondisi2>
benar, maka dikerjakan pernyataan2. Jika tidak algoritma akan
mengecek ke kondisi berikutnya dengan cara yang sama dengan yang sebelumnya.
Terakhir, jika semua kondisi bernilai salah, maka pernyataan yang dikerjakan
adalah Pernyataan(n+1).
Flowchart :
4. Penulisan percabangan
bersarang
If then
if then
Pernyataan1
else
Pernyataan2
else
If
Pernyataan3
else
Pernyataan4
Penjelasan :
Mula-mula <kondisi1>
dicek nilai kebenarannya. Jika benar, maka dicek nilai kebenaran <kondisi2>.
Jika <kondisi2> benar, maka dikerjakan pernyataan1.
Jika tidak algoritma akan dikerjakan pernyataan2. Jika <kondisi1>
tidak benar maka akan dicek nilai kebenaran . Jika <kondisi3>
benar, maka dikerjakan pernyataan3. Jika tidak akan
dikerjakan pernyataan4.
Flowchart :
truktur
Kontrol Percabangan. Struktur Kontrol Pecabangan
merupakan suatu algoritma program memiliki suatu kondisi yang dimana kondisi
tersebutlah yang akan menentukan perintah-perintah yang akan dijalankan oleh
suatu program. Perintah dalam suatu kondisi akan dijalankan ketika kondisi
tersebut bernilai benar, dan sebaliknya apabila kondisi bernilai salah maka
perintah didalamnya tidak akan dijalankan.
Ada beberapa macam Struktur Kontol Pecabangan yang ada didalam C++, yaitu :
Pecabangan if
Pecabangan if
merupakan struktur kontrol pecabangan yang memiliki sebuah kondisi. Bentuk umum
penulisannya adalah sebagai berikut.
if(kondisi){
statement;
}
Contoh Penerapannya
dalam kode program adalah sebagai berikut :
#include <iostream.h>
#include <conio.h>
main(){
int a = 10;
int b = 7;
if(a>=b){
a = 7;
b = 10;
}
cout<<"Nilai A :
"<<a<<endl;
cout<<"Nilai B :
"<<b<<endl;
getch();
}
Percabangan if-else
Percabangan if-else
merupakan struktur kontrol pecabangan yang memiliki sebuah kondisi yang apabila
kondisi tersebut benar maka perintah yang didalamnya akan dijalankan dan
apabila kondisinya salah maka ada perintah lainnya yang akan dijalankan oleh
program. Bentuk umum penulisannya adalah sebagai berikut.
if(kondisi){
statement;
}
else{
statement;
}
Contoh Penerapannya
dalam kode program adalah sebagai berikut :
#include <iostream.h>
#include <conio.h>
main(){
int x;
int angka = 10;
cout<<"Angka 1 -
10"<<endl;
cout<<"Masukan Tebakan anda :
";cin>>x;
if(x==angka){
cout<<"Tebakan anda benar"<<endl;
cout<<"Selamat!";
}
else {
cout<<"Maaf tebakan anda salah!";
}
getch();
}
Percabangan if-else if-else
Percabangan if-else
if-else merupakan struktur kontrol pecabangan yang memiliki banyak kondisi.
Bentuk umum penulisannya adalah sebagai berikut.
if(kondisi1){
statement;
}
else if(kondisi2){
statement;
}
else{
statement;
}
Contoh Penerapannya
dalam kode program adalah sebagai berikut :
#include <iostream.h>
#include <conio.h>
main(){
int x;
int angka = 6;
cout<<"Angka 1 -
10"<<endl;
cout<<"Masukan Tebakan anda :
";cin>>x;
if(x==angka){
cout<<"Tebakan anda benar"<<endl;
cout<<"Selamat!";
}
else
if(x>angka){
cout<<"Tebakan anda terlalu besar";
}
else{
cout<<"Tebakan anda terlalu kecil";
}
getch();
}
Percabangan switch
Percabangan switch
merupakan struktur kontrol pecabangan yang juga memiliki banyak kondisi, akan
tetapi kondisi dalam percabangan switch ini bertipe numerik. Default berfungsi
untuk menjalankan perintah default/umum/dasar apabila kondisi tidak sesuai
dengan nilai case yang ada. Bentuk umum penulisannya adalah sebagai
berikut.
switch(kondisi){
case
konstanta_1:
statement;
break;
case
konstanta_2:
statement;
break;
default:
statement;
}
Contoh Penerapannya
dalam kode program adalah sebagai berikut :
#include <iostream.h>
#include <conio.h>
main(){
int nilai;
cout<<"Masukan Nilai anda 0 - 10 :
";cin>>nilai;
cout<<"Anda masuk kategori ";
switch(nilai){
case 10:
case 9:
cout<<"A";
break;
case 8:
case 7:
cout<<"B";
break;
case 6:
case 5:
cout<<"C";
break;
case 4:
case 3:
case 2:
case 1:
case 0:
cout<<"D";
break;
default:
cout<<"nilai anda tidak masuk kategori!";
}
getch();
}
Itulah Pembahasan dan Contoh Struktur Kontrol Percabangan pada Bahasa Pemrograman C++. Semoga bermanfaat bagi anda. Sekian dulu dari saya dan Terima kasih sudah berkunjung.
Comments
Post a Comment