DASAR TEORI
A. OPERASI BERSYARAT
a) Operasi Bersyarat dengan if
Pernyataan if dipakai untuk mengambil keputusan berdasarkan suatu
kondisi. Jika kondisi dipenuhi (benar) maka
diambil keputusan untuk
menjalankan atau mengeksekusi perintah-perintah atau pernyataanpernyataan. Jika kondisi tidak dipenuh (salah) diambil keputusan untuk
menghentikan eksekusi. Gambar 2.1 menunjukkan skema operasi bersyarat
dengan if. Penentuan kondisi dilaksanakan dengan menggunakan operator
relasi atau logika (lihat Bab I).
salah
kondisi
benar
Pernyataan
(kondisi)
{
pernyataan 1 ;
pernyataan 2;
.................
pernyataan n;
}
Bentuk pertama dapat dipakai jika kondisi dipenuhi (benar), hanya ada satu
pernyataan saja yang dieksekusi. Sedang bentuk kedua dipakai jika kondisi
dipenuhi (benar), terdapat banyak pernyataan yang harus yang harus
dieksekusi.
16
Contoh 2.1 :
if ( (bil % 2) == 0)
cout << Genap << endl;
Contoh 2.2:
if ((bil % 2) !=0)
{
cout << Ganjil << endl;
cout << Bukan kelipatan 2 << endl;
}
Pada contoh 2.1, C++ akan memperlakukan nilai kondisi sama dengan
nol sebagai benar dan tidak sama dengan nol sebagai salah. Jika kondisi
benar dipenuhi, maka kata Genap akan tampil di layar. Pada contoh 2.2, C+
+ akan memperlakukan nilai kondisi tidak sama dengan nol benar dan
sama dengan nol sebagai salah. JJika kondisi benar dipenuhi, maka kalimat
Ganjil dan Bukan kelipatan 2 akan tampil di layar.
b) Operasi Bersyarat dengan if..else
Operasi bersyarat if..else menyediakan pernyataan atau perintah altenatif
yang mesti dieksekusi jika kondisi tidak dipenuhi (salah). Operasi bersyarat
if..else dipakai untuk mengambil keputusan berdasarkan suatu kondisi
tertentu. Jika kondisi dipenuhi (benar) maka
diambil keputusan untuk
menjalankan atau mengeksekusi perintah-perintah atau pernyataanpernyataan pertama. Jika kondisi tidak dipenuh (salah) diambil keputusan
untuk menjalankan atau mengeksekusi perintah-perintah atau pernyataanpernyataan kedua. Gambar 2.2 menunjukkan skema operasi bersyarat
dengan if..else. Penentuan kondisi dilaksanakan dengan menggunakan
operator relasi atau logika (lihat Bab I).
salah
kondisi
benar
Pernyataan1
Pernyataan 2
if (kondisi)
pernyataan 1 ;
else
pernyataan 2;
atau
if (kondisi)
{
pernyataan 1.1 ;
.................
pernyataan 1.n;
}
else
{
pernyataan 2.1 ;
.................
pernyataan 2.n;
}
Bentuk pertama dapat dipakai jika kondisi dipenuhi (benar), hanya ada satu
pernyataan saja yang dieksekusi atau jika kondisi tidak dipenuhi (salah),
hanya ada satu pernyataan saja yang dieksekusi. Sedang bentuk kedua
dipakai jika kondisi dipenuhi (benar), terdapat beberapa pernyataan pertama
yang harus yang harus dieksekusi, atau jika kondisi tidak dipenuhi (salah),
terdapat beberapa pernyataan kedua yang harus yang harus dieksekusi .
Contoh 2.3 :
if ( (bil % 2) == 0)
cout << Genap << endl;
else
cout <<Ganjil <<endl;
Contoh 2.4 :
if ((bil % 2) !=0)
{
cout << Ganjil << endl;
cout << Bukan kelipatan 2 << endl;
}
else
{
cout << Genap <<endl;
cout << Merupakan kelipatan 2 << endl;
}
char kode_nilai;
cin >> kode_nilai ;
if (kode_nilai == A)
cout << Istimewa <<endl;
else if (kode_nilai == B)
cout << Bagus Sekali <<endl;
else if (kode_nilai == C)
cout << Bagus <<endl;
else if (kode_nilai == D)
cout << Kurang <<endl;
else cout << Kurang <<endl;
salah
salah
Kondisi
2
Kondisi
1
benar
Pernyataan 1
salah
Kondisi
N
benar
Pernyataan 2
benar
Pernyataan N
Pernyataan M
Pernyataan 1;
Break ;
Salah
Benar
Kondisi2
Pernyataan 2;
Break ;
Salah
Pernyataan x;
Atau
switch (ungkapan)
{
case kondisi1 :
{
pernyataan 1.1 ;
pernyataan 1.2 ;
}
break ;
case kondisi2 :
{
pernyataan 2.1 ;
pernyataan 2.2 ;
}
break ;
case kondisi3 :
{
pernyataan 3.1 ;
pernyataan 3.2 ;
}
break ;
.............
default :
{
pernyataan x.1 ;
pernyataan x.2 ;
}
}
Bentuk pertama dapat dipakai jika salah satu kondisi dipenuhi (benar), maka
hanya ada satu pernyataan saja yang dieksekusi. Sedang bentuk kedua
dipakai jika salah satu kondisi dipenuhi (benar), dan terdapat beberapa
pernyataan yang harus yang harus dieksekusi.
Contoh 2.7:
switch (kode_hari)
//seleksi dengan switch
{
case 1 : cout << " Anda memilih hari Senin" <<endl;
break;
case 2 : cout << " Anda memilih hari Selasa" <<endl;
break;
case 3 : cout << " Anda memilih hari Rabu" <<endl;
break;
case 4 : cout << " Anda memilih hari Kamis" <<endl;
break;
case 5 : cout << " Anda memilih hari Jum'at" <<endl;
break;
case 6 : cout << " Anda memilih hari Sabtu" <<endl;
break;
case 7 : cout << " Anda memilih hari Minggu" <<endl;
break;
default :
cout<< " Kode hari salah " << endl;
break;
}
B. OPERASI PERULANGAN
a) Operasi Perulangan dengan for
Operasi perulangan dengan for adalah operasi yang digunakan untuk
menjalankan perulangan eksekusi satu atau beberapa pernyataan ketika
kondisinya masih terpenuhi. Penentuan kondisi dilaksanakan dengan
menggunakan operator relasi atau logika (lihat Bab I). Perulangan ini dimulai
dari suatu nilai inisial yang diberikan untuk suatu pencacah tertentu. Nilai
pencacah ini dinaikkan atau diturunkan terus-menerus setiap kali terjadi
eksekusi perulangan. Ketika nilai pencacah sudah tidak memenuhi kondisi
yang disyaratkan, maka operasi perulangan terhenti.
Gambar 2.5
menunjukkan skema operasi perulangan dengan for.
inisialisasi
Salah
Kondisi
Benar
Pernyataan
Tubuh
loop
Pencacah
Keluar loop
Gambar 2.5 skema operasi perulangan dengan for
Bentuk umum operasi perulangan dengan for adalah :
for (isialisasi ; kondisi ;pencacah)
pernyataan ;
atau
Contoh 2.8:
for (int i=1; i<=10; i++ )
cout << Saya sekarang baru latihan Bahasa C++ ke- <<i<< endl;
Contoh 2.9:
float celcius, fahrenheit ;
celcius=0;
for (int i=1; i<=20; i++ )
{
fahrenheit = 1.8*celcius + 32;
cout << " " <<i <<"
" <<celcius <<"
celcius+=0.25;
}
" <<
Salah
Kondisi
Benar
Pernyataan
Tubuh
loop
Pencacah
Keluar loop
Gambar 2.6 skema operasi perulangan dengan while
while ( kondisi)
{
pernyataan 1 ;
pernyataan 2;
.................
pernyataan n;
}
Contoh 2.10 :
int i=0;
while (i<=10 )
cout << Ini kalimat ke - << i++ << endl;
Contoh 2.11:
float celcius, fahrenheit ;
celcius=0;
int i=0;
while ( i<=10 )
{
fahrenheit = 1.8*celcius + 32;
cout << " " <<i <<"
" <<celcius <<"
celcius+=0.25;
i++ ;
}
" <<
Pernyataan
Benar
Tubuh loop
Kondisi
Salah
Gambar 2.7 skema operasi perulangan dengan do...while
Oleh karena pengujian ungkapan dilakukan di belakang, bagian
pernyataan pada operasi
do...while minimal akan dijalankan sekali.
Sedangkan pada opersi while , bagian pernyaataan ada kemungkinan tidak
akan dieksekusi.
Bentuk umum operasi bersyarat dengan do...while adalah :
do
{
pernyataan 1 ;
pernyataan 2;
.................
pernyataan n;
}
while ( kondisi)
Contoh 2.12 :
float celcius, fahrenheit ;
celcius=0;
int i=0;
do
{
fahrenheit = 1.8*celcius + 32;
cout << " " <<i <<"
" <<celcius <<"
celcius=+0.25;
i++ ;
}
while ( i<=10 ) ;
" <<
//*****************************************
// Program menghitung nilai mutlak
//*****************************************
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <iomanip.h>
void main()
{
float angka,abs;
clrscr;
cout<<" Program penghitung nilai mutlak"<<endl;
cout<<" Masukkan angka sembarang"<<endl;
cin>>angka;
if(angka>=0)
abs=angka;
else
abs=-angka;
cout<<" Nilai absolut dari "<< angka<<" adalah :"<<setw(10)<<abs<<endl;
getch();
}
Studi kasus 2
Berikut ini contoh program untuk mencari jenis bilangat bulat, apakah
bilangan bulat positif atau negatif dengan menggunakan operasi bersyarat
if...else.
//***************************************
// Program penentu bilangan bulat
//***************************************
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
int angka,abs;
clrscr;
cout<<" Program penentu bilangan bulat "<<endl;
cout<<" Masukkan angka sembarang : ";
cin>>angka;
if (angka>0)
cout<<" Jenis bilangan bulat positif "<<endl;
else if (angka<0)
cout<<" Jenis bilangan bulat negatif "<<endl;
else
cout<<" Bilangan tersebut adalah nol "<<endl;
}
Studi kasus 3
Berikut ini contoh program untuk memilih hari dengan menggunakan
operasi switch.
//*********************************************
// Program penentu hari
//********************************************
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
int kode_hari;
cout<<" Menentukan hari "<<endl;
cout<<" 1=senin, 2=selasa, 3=rabu, 4=kamis, "<<endl;
cout<<" 5=jumat, 6=sabtu, 7=minggu "<<endl;
cout<<" masukkan kode hari (1..7): ";
cin>>kode_hari;
cout<<endl<<endl<<endl;
switch(kode_hari)
//selesai dengan switch
{
case 1: cout<<" Anda memilih hari senin"<<endl;
break;
case 2: cout<<" Anda memilih hari selasa"<<endl;
break;
case 3: cout<<" Anda memilih hari rabu"<<endl;
break;
case 4: cout<<" Anda memilih hari kamis"<<endl;
break;
case 5: cout<<" Anda memilih hari jumat"<<endl;
break;
case 6: cout<<" Anda memilih hari sabtu"<<endl;
break;
case 7: cout<<" Anda memilih hari minggu"<<endl;
break;
default:
cout<<" Kode hari salah "<<endl;
break;
}
getch();
}
Studi kasus 4
Berikut ini contoh program untuk membuat tabel konversi suhu celcius ke
fahrenheit dengan menggunakan operasi perulangan for.
//************************************************************
//Program konversi suhu dari celcius ke fahrenheit dengan for
//************************************************************
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr;
float celcius,fahrenheit;
cout<<"---------------------------"<<endl;
cout<<" No. Celcius Fahrenheit "<<endl;
cout<<"---------------------------"<<endl;
celcius=0;
for(int i=1;i<=10;i++)
{
}
}
getch();
Studi kasus 5
Berikut ini contoh program untuk membuat tabel konversi suhu celcius ke
fahrenheit dengan menggunakan operasi perulangan while.
//***********************************************************
// Program konversi suhu celcius ke fahrenheit dengan while
//***********************************************************
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
float celcius, fahrenheit;
cout<<"---------------------------"<<endl;
cout<<" No. Celcius Fahrenheit "<<endl;
cout<<"---------------------------"<<endl;
celcius=0;
int i=0;
while (i<=10)
{
fahrenheit=1.8*celcius+32;
cout<<" "<<i<<" "<<celcius<<"
celcius += 0.25;
i++;
}
"<<fahrenheit<<endl;
Studi kasus 6
Berikut ini contoh program untuk membuat tabel konversi suhu celcius ke
fahrenheit dengan menggunakan operasi perulangan do...while.
//**************************************************************
// Program konversi suhu celcius ke fahrenheit dengan do..while
//**************************************************************
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr;
float celcius, fahrenheit;
cout<<"--------------------------"<<endl;
cout<<" No. Celcius Fahrenheit "<<endl;
cout<<"--------------------------"<<endl;
celcius=0;
int i=1;
do
{
fahrenheit=1.8*celcius+32;
cout<<" "<<i<<" "<<celcius<<"
celcius+=0.25;
i++;
}
while(i<=10);
getch();
"<< fahrenheit<<endl;
Studi kasus
7
Berikut ini contoh program untuk menghitung nilai faktorial dari suatu
bilangan tertentu dengan menggunakan operasi perulangan for dan operasi
bersyarat if ... else
//******************************************
***
// Program perhitungan nilai hasil
faktorial
//******************************************
***
#include
<iostream.h>
#include
<conio.h>
#include
<math.h>
#include
<iomanip.h>
void
main()
{
int
n;
long f;
cout<<"
Menghitung
Nilai
hasil
faktorial"<<endl;
cout<<" Masukkan nilai bilangan yang di cari faktorilnya:
"<<endl;
cin>>
n;
if(n<
=0)
f=1;
e
l
s
e
{ f=1;
for(i=1;i<=n;i
++) f=f*i;
}
cout<<"
Hasil
"<<"<<setw(8)<<f<<endl;
getch
();
}
faktorial
dari"<<n<<"adalah:
Studi kasus
8
Berikut ini contoh program perulangan bertingkat untuk menghitung sisi
sisi suatu segitiga dengan menggunakan perulangan for sesuai dengan
teorema pytagoras .
//***********************************
***
//
Program untuk perulangan
bertingkat
//***********************************
***
#include
<iostream.h>
#include
<conio.h>
#include <math.h>
void main()
{
clrscr();
cout<<"--------------------------"<<endl;
cout<<" SisiA SisiB SisiC"<<endl;
cout<<"--------------------------"<<endl;
for (int a=1; a<=8; a++)
{
for(int b=1;b<=8; b++)
{
float c;
c=(float)sqrt(a*a+b*b);
cout<<" "<<a<<"
"<<b<<"
}
}
getch();
}
"<<c<<endl;
III. LATIHAN
Latihan 1
Buatlah program untuk menampilkan bilangan ganjil yang lebih besar dari a
dan lebih kecil dari b (misalnya, a =45 dan b =97 ).
Latihan 2
Tulislah program untuk menghitung sudut terkecil yang terbentuk antara
jarum jam panjang dan jarum jam pendek pada saat menunjuk jam tertentu.
Sebagai contoh, jika pengguna memasukkan jam 12:00, program akan
menampilkan keluaran 0 derajat. Masukan fungsi adalah berupa dua bilangan
bulat yang melambangkan jam dan menit. Keluaran fungsi adalah sudut terkecil
yang dibentuk oleh jarum jam tersebut.
Latihan 3
Tulislah program untuk menghitung jumlah deret berikut :
-
y x 1 i
x
i 1
yx n
i 1
1 x i
Latihan 4
Tulislah program dengan menggunakan operasi for ... dan while untuk
menghitung FPB (Faktor persekutuan terbesar ) dari dua bilangan bulat.
Masukan program berupa dua bilangan bulat dan keluarannya berupa faktor
persekutuan terbesar dari dua bilangan tersebut.
Latihan 5
Tulislah program untuk mencari semua nilai x , y dan z yang memenuhi
persamaan liniar berikut :
Latihan 6
Buatlah program untuk mencari nilai bilangan prima dari batas terendah
bilangan a hingga batas tertinggi bilangan b .
Latihan 7
Buatlah program untuk menghitung akar-akar persamaan kuadrat dengan
menggunakan operasi kondisi if...else .
Latihan 8
Buatlah program untuk menentukan nilai mahasiswa dengan menggunakan
operasi switch dengan masukan berupa nilai dalam bentuk angka dan keluaran
berupa nilai dalam bentuk huruf (A, B, C, D, atau E) .
Latihan 9
Buatlah program yang menampilkan perubahan energi kinetik, energi
potensial dan energi total tiap detik dari benda bermassa m yang bergerak jatuh
bebas dari ketinggian h hingga menyentuh tanah. (Diasumsikan percepatan
2
gravitasinya 9.8 m/s )
Latihan 10
Buatlah program untuk menampilkan perubahan besar kecepatan total peluru
o
sebuah meriam yang ditembakkan pada arah dengan kecepatan awal v0