Anda di halaman 1dari 17

BAB V

STRUKTUR KONTROL

Kegiatan Belajar : Struktur Kontrol pada C++ (Bagian 1)


a. Tujuan
Setelah mempelajari struktur kontrol pada C++, diharapkan mahasiswa dapat:
1. Menjelaskan konsep struktur kontrol pada C++;
2. Menjelaskan perbedaan penggunaan if-else dan switch-case dalam Bahasa C++;
3. Membuat program input dan output menggunakan struktur if-else dalam bahasa
pemrograman C++.
4. Membuat program input dan output menggunakan struktur switch-case dalam
bahasa pemrograman C++.

b. Uraian Materi
1. Statemen
Proses dalam mengeksekusi suatu program diperlukan suatu intruksi yang
digunakan sebagai perintah untuk mengeksekusinya. Intruksi yang digunakan pada
konteks ini dibuat dalam bentuk suatu program yang berisi intruksi untuk
mengeksekusi program tersebut. Intruksi ini disebut juga dengan istilah Statement
(pernyataan).
Selain menggunakan paradigma pemrograman berorientasi objek, pemrograman
C++ juga menggunakan paradigma pemrograman procedural. Dalam paradigma
pemrograman prosedural, setiap pernyataannya harus diakhiri dengan tanda titik
koma ; dan proses eksekusinya dilakukan sesuai urutan baris penulisan program.
Dalam bahasa pemrograman C++ terdapat dua jenis pernyataan, yaitu pernyataan
tunggal dan pernyataan majemuk:
a) Pernyataan tunggal merupakan suatu perintah yang terdiri dari satu jenis
perintah yang biasanya hanya menghabiskan satu baris dan diakhiri dengan
tanda titik koma ;. Penulisannya dapat dilakukan dengan cara sebagai berikut:

4
Pernyataan; //pernyataan tunggal

b) Pernyataan majemuk merupakan sekumpulan pernyataan yang terdiri dari


satu atau beberapa pernyataan di dalamnya. Masing-masing pernyataan
tersebut diakhiri dan dipisahkan menggunakan akhiran titik koma ; dan
kelompok pernyataan tersebut diapit dengan menggunakan tanda kurung
kurawal { }. Penulisannya dapat dilakukan dengan cara sebagai berikut:
{
Pernyataan1;
Pernyataan2;
Pernyataan3;

}
atau bisa juga ditulis dengan cara berikut:
{ Pernyataan1; Pernyataan2; pernyataan3; }

Satu blok pernyataan majemuk yang terdiri dari beberapa substatement di


dalamnya dikategorikan sebagai satu pernyataan (pernyataan majemuk)
meskipun mengandung banyak pernyataan di dalamnya. Tidak ada batasan
dalam jumlah penulisan pernyataan tunggal dan penulisan majemuk. Penulis
pernyataan tunggal dan pernyataan dalam pernyataan majemuk dapat dilakukan
secara bebas dalam hal jumlah.
Adapun cara kerja program prosedural dalam melaksanakan perintah yaitu
dengan membaca dan mengeksekusi pernyataan-pernyataan yang telah
didefinisikan sebagai perintah. Urutan eksekusinya yaitu dari baris paling atas
sampai baris terbawah satu per satu. Berdasarkan kondisi ini, maka
dimungkinkan untuk melakukan manipulasi terhadap aliran dari proses eksekusi
program tersebut. Hal itu disebut juga sebagai “Flow Control” (Kontrol Aliran).
Kontrol aliran sangat berguna untuk memberikan intruksi dengan struktur
eksekusi yang berbeda dari urutan eksekusi default dari program. Misalnya
percabangan, perulangan dan pengambilan keputusan.

5
Dalam pembahasan kontrol aliran akan banyak digunakan istilah block of
instructions (blok instruksi). Blok instruksi merupakan kumpulan instruksi yang
dibatasi dengan tanda semicolon (;) tetapi dikelompokan dalam satu blok yang
dibatasi dengan kurung kurawal { }.

2. Macam-macam flow control

Dengan menggunakan Flow Control, proses manipulasi aliran jalannya


program dapat dilakukan, seperti menyeleksi, mengulangi pernyataan, memilih
pernyataan, dan melompati beberapa pernyataan. Kondisi ini memungkinkan
kita untuk membuat program yang fleksibel dan interaktif sesuai kebutuhan
pengguna.

a) Pernyataan Penyeleksian (Selection)

Pernyataan Penyeleksian digunakan untuk menentukan pilihan


tertentu atau mengambil suatu keputusan berdasarkan kondisi tertentu yang
sedang dialami oleh program. Misalnya, dibuat dua kondisi pada alur
program. Program tersebut hanya akan mengeksekusi salah satu dari dua
pernyataan tersebut berdasarkan instruksi yang diberikan oleh user. Alur
jalannya program pada pernyataan penyeleksian ditentukan berdasarkan
kondisi yang dimasukkan sebagai perintah dalam program. Dalam C++,
pernyataan penyeleksian yang digunakan, yaitu Switch-case, if, dan if-else.
Cara kerjanya yaitu, proses eksekusi dari kumpulan pernyataan tunggal
atau Substatement dalam pernyataan majemuk akan dilakukan jika kondisi
kebutuhan tersebut terpenuhi.

Secara default, Alur pembacaan program pada C++ akan mengalir


dari atas ke bawah. Proses eksekusi anatar pernyataan dilakukan oleh CPU.
Ketika pernyataan penyeleksian ditemukan, maka terlebih dahulu CPU akan
memerika keadaan dari program saat itu. keadaan yang diperika adalah

6
mengenai inputan dari pengguna. Jika kondisi sesuai dengan keadaan
program maka pilihan tersebut akan diekseskusi.

Adapun proses kerja dari pernyataan penyeleksian secara umum dapat


dilihat pada gambar 5.1 berikut:

Gambar 5.1 Diagram alur pernyataan penyeleksian

Berdasarkan gambar 5.1 diatas dapat dilihat bahwa dalam pernyataan


penyeleksian terdapat kondisi yang digunakan sebagai penentu pilihan. Kondisi
ini disebut juga dengan conditional expression yang berfungsi layaknya
ekspresi Boolean dimana pilihan yang disediakan berupa true (1) atau false (0).
Jika input yang diberukan oleh pengguna menghasilkan nilai true, maka
pernyataan yang terdapat pada bagian tersebutlah yang akan dieksekusi, tetapi
jika perintah yang dimasukkan bernilai false, maka pernyataan tersebut
diabaikan dan pernyataan yang lain (else) yang akan dieksekusi.

7
1) Pernyataan IF
Salah satu pernyataan penyeleksian yang bisa digunakan
untuk melakukan maniplasi alur program berdasarkan conditional
expression adalah pernyataan IF. Dengan menggunakan pernyataan
ini, program bisa dibuat sesuai dengan kondisi yang ditentukan oleh
pengguna. Hal ini juga membuat program menjadi lebih fleksibel.

Dalam melakukan penyeleksian, pernyataan IF menganut


fungsi boolean dalam penanganannya. Untuk mendefinisikan
conditional expression, digunakan operasi bernilai benar atau salah.
Jika hasil dari inputan pengguna menghasilkan nilai positif, maka
pada conditional expression, maka akan dieksekusi pernyataan pada
bagian kondisi tersebut, begitupun sebaliknya.

adapun proses yang dilakukan ketika program bertemu


dengan pernyataan IF, yaitu CPU akan melakukan pemeriksaan
terlebih dahulu terhadap kondisi kebenaran dari conditional
expression yang dimasukkan. Jika perintah tersebut telah tervalidasi
benar, maka akan dieksekusi perintah ataupun statemen yang terdapat
di dalamnya. Sebaliknya, jika kondisi tersebut gagal tervalidasi atau
nilainya salah maka program akan memeriksa kondisi else nya atau
pernyataan (else-if). Proses ini dilakukan secara konprehensif ke
semua cabang pernyataannya, sampai kondisi yang bernilai benar
ditemui. Jika else tidak ada maka pernyataan if secara keseluruhan
akan diabaikan.

if(Kondisi){
Pernyataan;
}else if(Kondisi){
Pernyataan;
}else{
Pernyataan;
}

8
Secara umum struktur penulisan dari if dapat dilihat pada list
program di atas. Pada pernyataan If terdapat beberapa komponen
diantaranya yaitu, kondisi, pernyataan, dan kondisi pilihan lainnya
(else-if). Kondisi merupakan tempat mendefinisikan conditional
expression yang menentukan alur jalannya program. Bagian blok
pernyataan pada IF digunakan sebagai tempat mendefinisikan hal
yang akan dijalankan ketika kondisi tertentu dipenuhi. Pernyataan
else-if digunakan untuk menyatakan kondisi lainnya selain dari
kondisi utama. Pernyataan ini akan dieksekusi ketika kondisi pada
pernyataan utama tidak berhasil dipenuhi.
Adapun bentuk penulisan pernyataan if dapat dilakukan
dengan tiga cara yaitu, if tunggal, if-else, dan if-else majemuk.
Berikut adalah cara penulisannya
a) Pernyataan if tunggal, pada kondisi if ini hanya digunakan untuk
mendefinisikan satu kondisi saja.

if(Kondisi){
Pernyataan;
}

b) Pernyataan if-else, pada kondisi if ini terdapat dua kondisi yang


akan dipilih berdasarkan kondisi yang diinputkan oleh user.

if(Kondisi){
Pernyataan;
}else{
Pernyataan;
}

c) Pernyataan if-else majemuk, pada kondisi if ini bisa didefinisikan


lebih dari 2 kondisi. Program akan melakukan pengecekan pada
tiap-tiap kondisi jika belum ditemukan kondisi yang sesuai
dengan inputan user.

9
if(Kondisi){
Pernyataan;
}else if(Kondisi){
Pernyataan;
}else{
Pernyataan;
}

Pada semua pernyataan if diatas dapat dilihat bahwa setiap


pernyataan dibuat dalam kurung kurawal. Tetapi, jika badan pernyataan
merupakan pernyataan tunggal, maka pada badan pernyataan if tersebut
tidak diwajibkan menggunakan tanda kurung kurawal { } .

if(Kondisi)
Pernyataan;
else if(Kondisi)
Pernyataan;
else
Pernyataan;

Hal itu dapat dilakukan, kompilator akan menganggap bahwa


satu pernyataan setelah pernyataan if, else if atau else akan dianggap
sebagai substatement atau badan dari pernyataan tersebut.
Kondisi setelah keyword if atau else if adalah tempat dimana anda
menaruh sebuah nilai boolean atau ekspresi seperti perbandingan, logika
dan lain-lain yang menghasilkan bilangan Boolean. Badan
pernyataan if akan dieksekusi tergantung pada kebenaran dari kondisi

Jika evaluasi ekspresi bernilai benar (true) sesuai kondisi maka


program akan melaksanakan perintah (pernyataan) di dalamnya. Jika
tidak maka akan diabaikan dan beralih ke pilihan lain atau keluar dari
pernyataan penyeleksian if. else if adalah pilihan alternative dari
penyeleksian untuk mencari kondisi yang diinginkan, else if memiliki
fungsi yang sama seperti pernyataan if dan diletakan setelah
pernyataan if. else adalah pilihan terakhir yang akan dijalankan jika

10
semua pilihan tidak memiliki nilai benar (true) pada kondisi yang
ada. else merupakan pernyataan opsional untuk digunakan berdasarkan
kebutuhan, jika tidak menggunakan pernyataan else maka keseluruhan
dari pernyataan if akan diabaikan.

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 “<< 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.

Contoh :

11
if (x > 0)
cout << "x is positive";
else if (x < 0)
cout << "x is negative";
else
cout << "x is 0";

Contoh program:
#include <iostream>
using namespace std ;

int main() {
int nomer ;

cout<<"Masukkan [1/2/3] : ";


cin>>nomer;
if (nomer<=0){
cout<<"kurang dari 1"<<endl;
}else if(nomer==1){
cout<<"1"<<endl;
}else if(nomer==2){
cout<<"2"<<endl;
}else if(nomer==3){
cout<<"3"<<endl;
}else{
cout<<"lebih dari 3"<<endl;
}
return 0 ;
}

Cara kerja CPU dalam melaksanakan pernyataan if adalah;


pertama CPU masuk dan mengevaluasi ekspresi yang tertera pada
kondisi pernyataan if, jika bernilai benar (true) maka pernyataan-
pernyataan di dalam pernyataan if akan dijalankan, setelah dijalankan
maka CPU akan keluar dari keseluruhan pernyataan if.

Jika salah (false) dan disertakan pernyataan else if maka CPU


akan mengevaluasi ekspresi pada else if, jika bernilai benar (true) maka
akan dijalankan, jika salah (false) akan beralih ke-lainnya, hal itu terjadi
12
berulang-ulang hingga menemukan kondisi yang bernilai benar. jika dari
semua pilihan tersebut tidak ada yang memiliki nilai benar (true) maka
pernyataan secara keseluruhan if akan diabaikan atau menjalankan
pernyataan else jika disertakan.

CPU akan membaca program dari atas kebawah, jika telah


menemukan kondisi yang benar (true) maka akan dijalankan dan keluar
dari keseluruhan pernyataan if, tidak peduli jika ada pilihan alternative
lainnya yang memiliki nilai benar (true) pada kondisi yang dimilikinya.

2) Nested IF
Merupakan hal yang dimungkinkan dalam bahasa pemrograman
C++ yaitu membuat pernyataan IF di dalam pernyataan IF. hal ini dapat
memungkinkan anda untuk membuat tahapan penyeleksian yang
berlipat-lipat.

Cara penulisan program


if(kondisi){
if(kondisi){
pernyataan;
}else if{
pernyataan;
}else{
pernyataan;
}
}else if (kondisi){
if(kondisi){
pernyataan;
}else if{
pernyataan;
}else{
pernyataan;
}
}else{
if(kondisi){
pernyataan;
}else if{
pernyataan;
}else{
pernyataan;
}
} 13
Contoh kasus:

Suatu perusahaan menjual baju dengan ketentuan sebagai


berikut:
 Jika kode buku = 1 maka judul buku = Belajar C++, dengan kode
Diskon = S, maka harganya 45000, Jika kode Diskon bukan s maka
harganya 50000.
 Jika kode buku = 2 maka judul buku = Belajar C/C++, dengan code
Diskon= S, maka harganya 65000, Jika kode Diskon bukan s maka
harganya 70000.
 Jika user memasukan kode Selain kode Buku diatas, maka akan
mencetak salah memasukan kode.
Penyelesaian

#include <iostream>
#include <string.h>
using namespace std;

int main( ){
char kode,kodeDiskon,namaBuku[30];
long harga=0;

cout<<"Kode Buku : ";cin>>kode;


cout<<"Kode Diskon : ";cin>>kodeDiskon;
if (kode == '1') {
strcpy(namaBuku,"Belajarcpp.com");
if (kodeDiskon=='S' || kodeDiskon =='s'){
harga=45000;
} else {
harga = 50000;
}
} else if (kode=='2') {
strcpy(namaBuku,"Belajar C++");
if (kodeDiskon=='S' || kodeDiskon=='s'){
harga=65000;
} else {
harga = 70000;
}
} else {
cout<<"Salah Kode Buku"<<endl;
}
cout<<"----------------------"<<endl;
cout<<"Judul Buku : "<<namaBuku<<endl;
cout<<"Harga Buku : "<<harga<<endl;
return 0;
} 14
3) Switch
Pernyataan switch adalah adalah pernyataan penyeleksian untuk
memanipulasi jalanya aliran program berdasarkan conditional
expression, Mengendalikan aliran program agar dapat berjalan secara
fleksibel atas keadaan program dan keinginan pengguna. Pernyataan ini
akan memilih pilihan yang sesuai dengan ekspresi kondisi.

Pada umumnya penyataan switch tidak jauh berbeda seperti


pernyataan penyeleksian IF, yang berbeda adalah; jika pada if, if
mengevaluasi kebenaran dari sebuah ekspresi (conditional expression)
seperti operasi logika, relasi dan perbandingan yang menghasilkan
bilangan boolean 1 (benar) atau 0 (salah). dan pada switch dikhususkan
untuk penyeleksian berdasarkan nilai dari ekspresi. Dalam pernyataan
switch, penyeleksian dilakukan dengan memeriksa kondisi nilai dari
suatu variabel bertipe integer, char atau enum dan menemukan kesamaan
data yang dicari oleh salah satu label case yang ada.

a. Cara mendirikan Pernyataan switch

Adapun bentuk penulisan pernyataan switch adalah sebagai berikut:

switch (kondisi )
{
case konstanta-1 :
… perintah;
… perintah;
break;
case konstanta-2 :
… perintah;
… perintah;
break;
default :
… perintah;
… perintah;
break;
}

15
Pernyataan switch dimulai dengan kata kunci switch dan setelah
itu di lanjutkan dengan conditional expression yang diapit dengan
sepasang tanda kurung ( ), conditional expression bisa berbentuk
variabel dari integer, variabel dari char atau enum. dan kita juga bisa
melakukan operasi aritmetika yang menghasilkan nilai yang
berupa integer, char atau enum. Dan di dalam pernyataan switch ada
beberapa case label sebanyak yang dibutuhkan. Penulisan diawali
dengan kata kunci case dan diikuti dengan konstanta nilai yang dicari,
Mereka dimasukan di dalam sepasang tanda kurung kurawal {}.

kata kunci break merupakan pernyataan lompatan, dan


merupakan bagian opsional (dapat tidak digunakan) berfungsi untuk
mengeluarkan CPU yang sedang berada dalam pernyataan switch, keluar
dan melanjutkan baris setelah keseluruhan pernyataan switch.

Label default merupakan pilihan yang akan dieksekusi dimana


CPU tidak menemukan nilai yang dia cari sesuai dengan nilai
pada conditional expression. Label tersebut tidak wajib untuk digunakan
dan tempatnya harus berada di bawah.

Contoh penulisan:
switch ( nomer ) {
case 1 :
cout << " Anda Memilih Angka 1 " ;
break ;

case 2 :
cout << " Anda Memilih Angka 2 " ;
break ;

case 3 :
cout << " Anda Memilih Angka 3 " ;
break ;

default :
cout << " Pilihin default Terpilih " ;
break ;
}

16
b. Bagaimana CPU mengeksekusi Pernyataan switch

Disaat CPU bertemu pernyataan switch, CPU akan memeriksa


nilai yang berada pada conditional expression dari switch tersebut.
Kemudian, CPU akan mencari konstanta pada label case yang sesuai
dengan nilai yang di cari. Ketika telah ditemukan, maka CPU akan
mengeksekusi perintah / pernyataan-pernyataan yang berada di bawah
label dengan konstanta yang sesuai. Kata kunci break merupakan
opsional, dapat tidak digunakan. Jika break tercantum, ketika CPU
selesai mengeksekusi pernyataan pada label case yang terpilih dan
bertemu break maka eksekutor akan dikeluarkan dari pernyataan switch
dan melanjutkan baris setelah pernyataan switch. Dan jika break tidak
disertakan, maka CPU akan terus berjalan untuk mengeksekusi semua
pernyataan termasuk pernyataan yang berada pada label case lain hingga
bertemu kurung kurawal penutup }.

switch ( nomer ) { //jika nomer bernilai 2


case 1 :
cout << " Anda Memilih Angka 1 " ;

case 2 : // CPU mulai mengeksekusi


cout << " Anda Memilih Angka 2 " ;
//Dieksekusi

case 3 ://dan akan terus mengeksekusi semua


pernyataan hingga betemu break atau akhir dari
pernyataan switch
cout << " Anda Memilih Angka 3 " ;

default :
cout << " Pilihan default Terpilih " ;
}

Jika CPU tidak menemukan case dengan nilai konstanta yang


sesuai dengan conditional expression, hal itu berarti CPU akan

17
mengeksekusi perintah di dalam label default, jika pernyataan switch
tidak mempunyai label default maka pernyataan switch akan diabaikan.

Contoh:

#include <iostream>
using namespace std ;

int main() {
int nomor ;

cout << " Masukkan [1/2/3] : " ; cin >> nomor ;


switch ( nomor ) {
case 1 :
cout << " Anda Memilih Angka 1 " ;
break ;

case 2 :
cout << " Anda Memilih Angka 2 " ;
break ;

case 3 :
cout << " Anda Memilih Angka 3 " ;
break ;

default :
cout << " Pilihan default Terpilih " ;
break ;
}
return 0 ;
}

18
c. Latihan
1. Buatlah dan analisis Program menggunakan IF-ELSE dengan inputan
berupa jarak tempuh (km) dan ketentuan sebagai berikut
a. Jika jarak tempuh lebih dari 10 km maka gunakan alat transportasi
Mobil
b. Jika jarak tempuh 5 km smpai 10 km maka gunakan alat
transportasi Motor
c. Jika jarak tempuh kurang dari 5 km maka gunakan alat
transportasi Sepeda

2. Buatlah dan analisis Program pemesanan makanan Menggunakan


struktur SWITCH CASE dengan inputan case pemilihan menu
makanan[1,2,3]dan ketentuan sebagai berikut:
a. Jika case yang dipilih adalah menu 1, maka akan tampil “Sate - Rp
12.000
b. Jika case yang dipilih adalah menu 2, maka akan tampil “ Martabak
- Rp 15.000
c. Jika case yang dipilih adalah menu 3, maka akan tampil “ Nasi
Padang - Rp 18.000

19
3. Carilah kesalahan dalam program berikut dan buatlah program yang
benarnya

#include <iostream>
using namespace std ;

main() {
angka;

cout >> " Masukkan pilihan inputan[1/2/3] : " ;


cin << nomer ;
switch ( angka ) {
case 1 ;
cout >> " kamu mnginputkan pilihan pertama " ;

case 2 ;
cout >> " kamu mnginputkan pilihan kedua " ;

case 3 ;
cout >> " kamu mnginputkan pilihan ketiga" ;

default ;
cout >> " Pilihan tidak ada " ;

20

Anda mungkin juga menyukai