Anda di halaman 1dari 7

13

BAB III
PENGAMBILAN KEPUTUSAN DENGAN SWITCH
3.1. TUJUAN
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk:
1. Mengerti dan memahami struktur kontrol Switch
2. Dapat menggunakan struktur kontrol Switch dalam pemrograman.
3.2. DASAR TEORI
Pernyataan switch merupakan pernyataan yang dirancang khusus untuk
menangani pengambilan keputusan yang melibatakan sejumlah alternatif.
Bentuk umum pernyataan switch.
switch (ekspresi)
{
case konstanta-1:
pernyataan-1
break;
case konstanta-2:
pernyataan-2
break;
case konstanta-x:
pernyataan-x
break;
default:
pernyataan-n
}
3.3. PEMBAHASAN PRAKTIKUM
3.3.1. LATIHAN
1. Buatlah Program sesuai dengan ketentuan sebagai berikut.Program diawali
dengan menu pilihan untuk menjalankan proses program,dengantampilan
sebagai berikut:
Menu Pilihan Proses
[A]. Menghitung Rtotal di Rangkai Seri
[B]. Menghitung Rterbesar dan Rterkecil
[C]. Selesai
Pilihan Anda [A/B/C] : ?

14

PROSES
1. - Jika pilihan = A maka melakukan input data (Rl, R2, R3) sebuah Resistor.
Kemudian buat rumus untuk mencari Rtotal.
- Jika pilihan= B maka melakukan inputdata (Rl, R2, R3) sebuah Resistor.
Kemudian buat rumus untuk mencari R terbesar dan R terkecil dari inputan ketiga
resistor tersebut.
OUTPUT
Output menyesuaikan dengan proses menu pilihan, dengan aturan sebagai berikut
- Jika pilihan = A maka berisi informasi Rl, R2, R3 dan Rtotal.
- Jikapilihan = B makaberisi informasi Rl, R2, R3 danR terbesar atauR terkecil.
Mencari Rtotal Rangkaian Seri
Rl
=
R2
=
R3
=
Rtot
=

Input program
#include <iostream>
using namespace std;
int main()
{
int r1, r2, r3, rtotal;
char pilihan;

cout << "


Menu Pilihan Proses
" << endl;
cout << "=====================================" << endl;
cout << "[A]. Menghitung Rtotal di Rangkaian Seri" << endl;
cout << "[B]. Menghitung R terbesar dan terkecil" << endl;
cout << "[C]. Selesai" << endl;
cout << "=====================================" << endl;
cout << "Pilihan Anda [A/B/C] : ";
cin >> pilihan;
cout << "" << endl;

15

switch(pilihan)
{
case 'A':
cout << "\tMasukkan R1 :"; cin >> r1;
cout << "\tMasukkan R2 :"; cin >> r2;
cout << "\tMasukkan R3 :"; cin >> r3;
cout << "" << endl;
cout << "Mencari Rtotal Rangkaian Seri" << endl;
cout << "=============================" << endl;
cout << "R1 = " << r1 << endl;
cout << "R2 = " << r2 << endl;
cout << "R3 = " << r3 << endl;
rtotal = r1+r2+r3;
cout << "Rtotal = " << rtotal << endl;
cout << "=============================" << endl;
break;
case 'B':
cout << "\tMasukkan R1 :"; cin >> r1;
cout << "\tMasukkan R2 :"; cin >> r2;
cout << "\tMasukkan R3 :"; cin >> r3;
cout << "" << endl;
cout << "Mencari Rtotal Rangkaian Seri" << endl;
cout << "=============================" << endl;
cout << "R1 = " << r1 << endl;
cout << "R2 = " << r2 << endl;
cout << "R3 = " << r3 << endl;
if(r1>r2 && r2>r3)
{cout << "R terbesar = " << r1 << endl;
cout << "R terkecil = " << r3 << endl;}
else if(r1>r3 && r3>r2){
cout << "R terbesar = " << r1 << endl;
cout << "R terkecil = " << r2 << endl;}
else if(r2>r1 && r1>r3){
cout << "R terbesar = " << r2 << endl;
cout << "R terkecil = " << r3 << endl;}
else if(r2>r3 && r3>r1){
cout << "R terbesar = " << r2 << endl;
cout << "R terkecil = " << r1 << endl;}

16

else if(r3>r1 && r1>r2){


cout << "R terbesar = " << r3 << endl;
cout << "R terkecil = " << r2 << endl;}
else {
cout << "R terbesar = " << r3 << endl;
cout << "R terkecil = " << r1 << endl;}
cout << "=============================" << endl;
break;
default:
cout << "Pilihan Anda Salah!!!!" << endl;
cout << "" << endl;
}
return 0;
}
Gambar 3.1 Gambar Coding latihan 1

Output program

Gambar 3.2 Gambar Output Program latihan 1

17

3.3.2. TUGAS
1. Buatlah program untuk mencari Rtotal pada rangkaian paralel dengan
input sejumlah n resistor maksimal 10 resistor.

INPUT
Jumlah Resistor yang akan dihitung [1..10]
OUTPUT
Mencari Rtotal di Rangkai Paralel
Rl
=
R2
=
R3
=
Rn
=
Rtot
=

Input program
#include <iostream>
using namespace std;
int main()
{
int i, j, k;
double rhitung, rtotal;
cout << "\n======================================" << endl;
cout << "=== Mencari Rtotal di Rangkai Paralel ===" << endl;
cout << "=========================================" << endl;
cout << "\nMasukkan jumlah Resitor paralel (max 10) : ";
cin >> j;
cout << "" << endl;

18

if (j>10)
{
do
{
cout << "!!! Jumlah Resistor lebih dari 10! Masukkan jumlah R = " ;
cin >> j ;
}
while(j>10);
}
int r[j];
cout << "" << endl;
cout << "=============================" << endl;
cout << "" << endl;
cout << " Masukkan R1 = ";
cin >> r[0];
rtotal = r[0];
for(i=1; i<j; i++){
cout << " Masukkan R" << i+1 << " = ";
cin >> r[i];
rhitung = ((rtotal+r[i])/(rtotal*r[i])) ;
rtotal = 1/rhitung;
}
cout << "" << endl;
cout << "=============================" << endl;
cout << "=========== HASIL ===========" << endl;
cout << "=============================" << endl;
for(k=0; k<j; k++){
cout << " R" << k+1 << " = " << r[k];
cout << "" << endl;
}
cout << "\n Rtotal = " << rtotal << endl;
cout << "=============================" << endl;

19

return 0;
}
Gambar 3.3 Gambar Coding Tugas 1

Output program

Gambar 3.4 Gambar Output Program Tugas 1

3.4. KESIMPULAN
Bahasa C++ menyediakan instruksi Switch untuk memudahkan pembacaan
alur program bercabang yang sangat banyak. Pernyataan switch-case ini
memiliki kegunaan sama dengan if else bertingkat/jamak. Konstruksi fungsi
if else bertingkat sering kali membingungkan pembacaan alur program.
Meskipun didesain untuk mengganti fungsi if else bertingkat, namun fungsi
switch memiliki batasan yaitu data yang diperiksa/diolah haruslah bertipe
integer (int) atau karakter (char). Dan range data yang diperiksa bernilai 0 s/d
255.

Anda mungkin juga menyukai