Dasar Teori.
Struktur Kontrol
Suatu program tidak terbatas hanya pada instruksi yang terurut saja, tetapi juga memungkinkan terjadinya percabangan, perulangan, dan pengambilan keputusan. Untuk memenuhi kebutuhan itu C++ menyediakan struktur kontrol yang dapat menangani hal hal tersebut, selanjutnya akan ditemuii istilah block of instructions. Blok instruksi adalah sekumpulan instruksi yang dibatasi dengan tanda semicolon (;) tetapi dikelompokkan dalam satu blok yang dibatasi tanda ( {} )
Percabangan
Percabangan dapat menjadikan program menjadi lebih fleksibel. Percabangan yang dimaksud adalah suatu pemilihan statemen( baris program ) yang akan dieksekusi apabila suatu kondisi yang didefinisikan terpenuhi(bernilai benar), dan tidak dieksekusi apabila tidak terpenuhi(bernilai salah). Dalam C++ terdapat dua jenis struktur yang digunakan untuk implementasi suatu percabangan. Pertama, struktur if dan yang kedua struktur switch.
1. Struktur Kondisional : if and else.
Digunakan untuk mengeksekusi sebuah atau satu blok instruksi jika kondisi terpenuhi. Bentuk umum dari statemen if adalah :
if (kondisi) statement;
Tingkatan if… else, disesuaikan dengan kebutuhan. Kondisi yang harus dipenuhi dapat berbentuk ekspresi dengan operator logika dan operator relasi. Operator logika yang bisa digunakan antara lain:
Simbol |
Arti |
&& |
AND |
|| |
OR |
! |
NOT |
Sedangkan operator relasi antara lain:
Simbol |
Arti |
== |
Sama dengan |
>= |
Lebih dari sama dengan |
> |
Lebih dari |
<= |
Kurang dari sama dengan |
< |
Kurang dari |
!= |
Tidak sama dengan |
Implementasi struktur if pada program secara ringkas dari yang paling sederhana hingga yang lebih rumit dapat dibagi menjadi empat yakni struktur satu kondisi, dua kondisi, tiga kondisi, dan if bersarang.
a. Struktur Satu Kondisi.
Bentuk umum
1 |
If (kondisi) statement; |
Atau;
12 3 4 5 6 7 |
If (kondisi){ statement1; statement2; . . . . statementN; } |
Kondisi merupakan ekspresi yang di evaluasi. Jika kondisi bernilai true, maka statement akan dijalankan. Jika false, maka statement akan diabaikan dan program menjalankan instruksi selanjutnya. Jika ada lebih dari satu instruksi (statement) yang akan dijalankan maka harus dibuat blok instruksi dengan menggunakan kurung kurawal {}.
Contoh pada program
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
//contoh dengan satu kondisi#include<iostream> using namespace std; int main() { int bilangan; char huruf; cout<< “Masukkan sebuah bilangan bulat: ”; cin>>bilangan; if((bilangan>0) && (bilangan < 10) ) cout<<bilangan<<”lebih besar dari nol dan lebih kecil dari sepuluh”; cout<<”Masukkan sebuah huruf: “; if((huruf == ‘A’) || (huruf == ‘a’) || (huruf == ‘I’) || (huruf == ‘I’) || (huruf == ‘U’) || (huruf == ‘u’) || (huruf == ‘E’) || (huruf == ‘e’) || (huruf == ‘O’) || (huruf == ‘o’) ) { cout<<”huruf berhasil dikenali \n”; cout<<”Huruf yang anda masukkan adalah huruf vokal”; } return 0; } |
b. Struktur Dua Kondisi
Konsep struktur dua kondisi ini terdapat sebuah statement khusus yang berguna untuk mengatasi kejadian apabila kondisi yang didefinisikan tersebut tidak terpenuhi(bernilai salah). Bentuk umum:
12 3 4 5 6 7 8 9 10 11 12 13 14 |
if(kondisi){ statement1; statement2; … statementN; } else { statementN; } //Atau if (kondisi)statement1_jika_kondisi_terpenuhi else statement2_jika_kondisi_tidak_terpenuhi |
Contoh program
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include<iostream>#include<iomanip> using namespace std; int main() { cout<<”Masukkan bilangan yang akan dibagi : “; cin>>x; cout<<”Masukkan bilangan pembagi : “; cin>>y; if(Y==0) { cout<<”Kesalahan : Bilangan pembagi tidak boleh nol”; } else { z=x/y; cout.precision = 2; cout<<”Hasil bagi : “<<z; } return 0; } |
c. Struktur Tiga Kondisi
Contoh program
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include<iostream>
|
d. Struktur if Bersarang(Nested)
Bentuk umum
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
if(kondisi){ statement1; …; statementN; if (kondisi2) { statement1; … ; statementN; } else if(kondisi3) AND (kondisi4) { if(kondisi5) {statement;} else if(kondisi5){statement;} else {statement} } else { statementN; } } |
Contoh program
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include<iostream>using namespace std; int main() { int nilai; cout<<”Masukkan Angka (0-20)”; cin>>nilai; if(nilai<=20) { If(nilai>10) {cout<<”Nilai yang dimasukkan adalah lebih dari sepuluh”;} else{cout<<”Nilai yang dimasukkan kurand dari atau sama dengan sepuluh”;} else{cout<<”\n Anda memasukkan nilai yang lebih dari 20”; } return 0; } |
2. Struktur Kondisional : switch – case.
Selain menggunakan struktur if, C++ juga menawarkan penggunaan keyword switch.
Tipe data untuk ekspresi pada keyword switch haruslah berupa bilangan bulat atau karakter. Selain tipe data tersebut, C++ tidak mengijinkan.
Bentuk umum
Switch(ekspresi){ case nilai_konstan2 : statemen_statemen; break; ……… case nilai_konstanN : statemen_statemen; break; default statemen_statemen_alternatif; } |
Statement default digunakan untuk mengeksekusi program jika seluruh case tidak terpenuhi maka complier akan mengeksekusi statemen alternative yaitu, jika nilai yang dimasukkan ternyata tidak sesuai dengan nilai-nilai konstan yang telah didefinisikan. Nilai konstan didefinisikan dengan statement case. Dalam bahasa C++diizinkan untuk menggukan statemen case sebanyak 16.384 buah dalam sebuah struktur percabangan menggunakan kata kunci switch. Namun, pada prakteknya lebih baik membacasi penggunaan case untuk efisiensi. Statemen break berfungsi sebagai statemen peloncatan.
Soal soal latihan
-
Buatlah program yang bisa menghitung nilai determinan dari sebuah persamaan kuadrat kemudian tentukan nilai masing masing akarnya. Setelah nilai determinan diketahui, terdapat tiga kemungkinan yang dapat menentukan akar-akar persamaan kuadrat, yaitu:
-
Jika D>0, maka x1 dan x2 bersifat ril dan berbeda, rumus untuk penentuan nilainya adalah sebagai berikut:
x1 = (-b + sqrt(D))/2a
x2 = (-b – sqrt(D))/2a
-
Jika D = 0, maka x1 dan x2 bersfat ril dan sama
-
Jika D < 0, maka x1 dan x2 bersifat imaginer.
-
Buatlah program untuk menentukan bilangan terbesar dari tiga buah bilangan yang diinputkan oleh user
Contoh:
inputkan bilangan 1 : 15
inputkan bilangan 2 : 7
inputkan bilangan 3 : 22
bilangan terbesar adalah 22
-
Buatlah program yang menentukan hari dengan inputan berupa angka dari user.
Contoh:
Input bilangan 1 : senin
Input bilangan 2 : selasa
Dst…
0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.