C++ Bagian 3

Pernyataan if-else
Pernyataan if

Pernyataan if menguji operator relasional dan memutuskan bagian program yang dijalankan dan yang diabaikan. Berikut ini adalah format pernyataan if :

if (tesRelasi)
{ satu pernyataan atau beberapa pernyataan C++ }

Disini pernyataan if memakai tes relasional yang anda berikan didalam tanda kurung, dan pernyataan if akan dijalankan hanya kalau tes relasinya bernilai benar. Contoh baris if :

if ( penjualan < 5000 )

if ( inisial == ‘M’ )

if ( jumlah >= nilai )

Jangan pernah memberikan tanda titik koma sesudah kurung tutup! C++ akan menganggap bahwa pernyataan if berakhir dan akan melanjutkan eksekusi ke blok pernyataan berikutnya tak tergantung tes relasional apakah bernilai benar atau salah.

Contoh 3.1 :
Pada program ini pernyataan berikut mungkin akan dicetak atau barangkali tidak.

#include

void main()
{
int jarak;

cout << “Berapa meter jarak rumah anda dari kampus : “;
cin >> jarak;

if ( jarak >= 250 )
{
cout << “Rumah anda cukup jauh juga dari kampus!” << endl;
}
cout << “Semoga anda tidak telat sampai kampus.”;
}

Keluaran program :

Rumah anda cukup jauh juga dari kampus!
Semoga anda tidak telat sampai kampus.

Atau

Semoga anda tidak telat sampai kampus.

Apakah anda mengetahui bagaimana data mengendalikan program ? ada sebuah baris pada program, cout kedua yang mungkin tidak pernah dijalankan. Eksekusi cout ini didasarkan oleh nilai variabel jarak dan membandingkan nilai tersebut dengan bilangan 250. Jika dan hanya jika jarak berisi nilai yang lebih besar daripada 250, cout kedua akan dieksekusi.

Contoh 3.2 :
Menentukan biaya penginapan pada hotel

#include

void main()
{
char jawab;
int jumlah_hari;
float harga_penuh = 25000;
float harga_khusus = 17500;
float total_biaya = 0.0;

cout << "Berapa lama anda menginap? ";
cin >> jumlah_hari;

cout << "Apakah anda pernah menginap disini sebelumnya (Y/T)?
";
cin >> jawab;

if ( jawab == 'Y')
{ total_biaya = harga_khusus * jumlah_hari; }

if ( jawab == 'T')
{ total_biaya = harga_penuh * jumlah_hari; }

cout.setf(ios::showpoint);
cout.setf(ios::fixed);
cout.precision(2);
cout << "Total biaya menginap : Rp " << total_biaya;
}

Keluaran program :

Berapa lama anda menginap? 5
Apakah anda pernah menginap disini sebelumnya (Y/T)? Y
Total biaya menginap : Rp 87500.00

Lainnya :

Berapa lama anda menginap? 5
Apakah anda pernah menginap disini sebelumnya (Y/T)? T
Total biaya menginap : Rp 125000.00

Program ini akan menganggap bahwa pemakai akan memasukkan huruf kapital Y atau T. nilai awal nol diberikan kepada total_biaya untuk menghindari adanya sampah terhadap variabel itu, dalam hal pemakai tidak memasukkan huruh kapital Y atau T. kalau anda menjalankan program ini dan memperoleh total biaya menginap berupa : Rp 0.00, anda akan tahu bahwa anda harus memasukkan jawaban dalam huruf kapital terhadap pernyataan tersebut.

Pernyataan else

If yang anda ketahui saat ini menentukan suatu blok akan dijalankan atau tidak, tetapi adalah mungkin untuk memperluas tindakan if sehingga ia akan mejalankan suatu blok kode atau yang lain. Untuk membuat if memutuskan antara satu dari dua kemungkinan blok kode, tambahkan pernyataan else setelah kurung kurawal tutup if. Bentuk umumnya adalah :

if ( tesrelasi )
{ satu pernyataan atau lebih C++ }
else
{ satu pernyataan atau lebih C++ }

Dengan pernyataan if-else perhatikan bahwa relasi benar atau salah menentukan blok yang akan dijalankan. Blok if akan dijalankan bila relasi bernilai benar jika tidak atau relasi bernilai salah maka blok else akan dijalankan. Dengan demikian pernyataan if atau else akan dijalankan, tetapi tak pernah kedua-duanya.

Contoh 3.3 :

#include

void main()
{
char jawab;
int jumlah_hari;
float harga_penuh = 25000;
float harga_khusus = 17500;
float total_biaya = 0.0;

cout << "Berapa lama anda menginap? ";
cin >> jumlah_hari;

cout << "Apakah anda pernah menginap disini sebelumnya (Y/T)?
";
cin >> jawab;

if ( jawab == 'Y')
{ total_biaya = harga_khusus * jumlah_hari; }

else
{ total_biaya = harga_penuh * jumlah_hari; }

cout.setf(ios::showpoint);
cout.setf(ios::fixed);
cout.precision(2);
cout << "Total biaya menginap : Rp " << total_biaya;
}

Keluaran programnya sama seperti contoh 3.2


Contoh 3.4 :

#include

void main()
{
int dept;
cout << "Masukan kode departemen : ";
cin >> dept;

if ( dept>=1 && dept<=5 )
{ cout << "Anda termasuk karyawan departemen ini" << endl; }
else
{ cout << "Anda bukan termasuk karyawan departemen ini" <<
endl; }
}

Keluaran program :

Masukan kode departemen : 4
Anda termasuk karyawan departemen ini

Atau lainnya :

Masukan kode departemen : 6
Anda bukan termasuk karyawan departemen ini

Tanda && di dalam pernyataan if memberitahu C++ untuk memeriksa masukan pemakai berada dalam jangkauan 1 sampai dengan 5. Jika dept lebih besar dari atau sama dengan 1 dan kurang dari atau sama dengan 5, jalankan blok if. Jika tidak, jalankan blok else.

Tanpa operator nalar (&&), anda harus memakai if bersarang untuk melaksanakan pemeriksaan yang sama dan if bersarang tidaklah mudah untuk dibaca. Berikut adalah kode yang sama dengan contoh 3.4 tetapi menggunakan if bersarang.

Contoh 3.5 :

#include

void main()
{
int dept;
cout << "Masukan kode departemen : ";
cin >> dept;

if ( dept>=1 )
{
if ( dept<=5 )
{ cout << "Anda termasuk karyawan departemen ini" <<
endl; }
else
{ cout << "Anda bukan termasuk karyawan departemen ini"
<< endl; }
}
else
{ cout << "Anda bukan termasuk karyawan departemen ini" <<
endl; }
}

pada if bersarang, bila if pertama bernilai benar jalankan blok yang ada didalamnya. Apabila if kedua bernilai benar jalankan pernyataan didalamnya jika salah jalankan pernyataan else. Bila if pertama tidak terpenuhi maka jalankan blok else terakhir.

C++ mempunyai kemampuan pengkondisian cepat yang seringkali membawa celaka daripada berguna. Kalau sisi kiri tanda || bernilai benar, maka C++ tidak akan melakukan pengevaluasian terhadap sisi kanannya untuk menghemat waktunya. Dengan kata lain, jika pada if berikut :

if ( amt>70 || amt<100 )

amt bernilai lebih besar dari 70 maka C++ tidak melakukan pengecekan terhadap amt<100. Memang demikianlah kondisinya. Hal ini karena operator || meminta C++ mengevaluasi if berupa benar kalau salah satu sisi || bernilai benar. Kalau bagian kiri bernilai benar, if bernilai benar dan tak peduli dengan nilai sisi kanannya. C++ juga melakukan pengkondisian cepat terhadap operator &&.

Contoh 3.6 :
Menentukan indeks nilai seorang mahasiswa berdasarkan nilai ujiannya. Nama dan nilai diinputkan dari keyboard. Keluaran pada layar berupa nama dan indeks nilainya.

#include

void main()
{
char indeks, nama[15];
float nilai;

cout << "Nama : ";
cin >> nama;
cout << "Nilai : ";
cin >> nilai;

if ( nilai >= 80 )
{
indeks = 'A';
cout << nama << “ ,nilai anda sempurna” << endl;
}
else
if ( nilai >= 70 && nilai < 80 )
{
indeks = 'B';
cout << nama << “ ,nilai anda bagus” << endl;
}
else
if ( nilai >= 60 && nilai < 70 )
{
indeks = 'C';
cout << nama << “ ,nilai anda cukup” << endl;
}
else
if ( nilai >= 30 && nilai < 60 )
{
indeks = 'D';
cout << nama << “ ,nilai anda jelek" << endl;
}
else
{
indeks = 'E';
cout << nama << “ ,nilai anda sangat mengecewakan" <<
endl;
}

cout << “Anda mendapat nilai : " << indeks;
}

Contoh 3.7 :

#include

void main()
{
int pembeli;
float total_penjualan;

cout << "Berapa pembeli hari kemarin ? ";
cin >> pembeli;

cout << "Berapa jumlah penjualannya? ";
cin >> total_penjualan;

if ( pembeli > 25)
{ cout << "Tingkatkan penjualan hari besok." << endl; }

if ( total_penjualan >= 2000.00)
{
cout << "Tambahkan stok barang." << endl;
cout << "Tambahkan juga staf karyawan ." << endl;
}
else
{ cout << "Kurangi staf karyawan." << endl; }

if (( pembeli >= 50) && (total_penjualan >= 5000.00))
{
cout << "Anda dapat bonus berlibur!" << endl;
cout << "Agar dapat meningkatkan produktivitas anda" <<
endl ;
}
}

Keluaran program :

Berapa pembeli hari kemarin ? 13
Berapa jumlah penjualannya? 650.25
Kurangi staf karyawan.

Lainnya :

Berapa pembeli hari kemarin ? 45
Berapa jumlah penjualannya? 1980.50
Tingkatkan penjualan hari besok.
Kurangi staf karyawan.

Lainnya :

Berapa pembeli hari kemarin ? 54
Berapa jumlah penjualannya? 8000
Tingkatkan penjualan hari besok.
Tambahkan stok barang.
Tambahkan juga staf karyawan .
Anda dapat bonus berlibur!
Agar dapat meningkatkan produktivitas anda

Tes relasional adalah sembarang ekspresi C++ yang memakai operator relasional. Gunakan operator kondisional sebagai pengganti pernyataan if-else yang sederhana berikut ini :

if ( a>b )
{ c=17 ; }
else
{ c=23 ; }

pada if ini, tes relasional adalah a>b, kondisi benar adalah menjalankan blok berisi c=17, dan kondisi salah akan menjalankan blok berisi c=23. Berikut adalah logika yang sama yang diungkapkan menjadi pernyataan kondisional :

( a > b ) ? ( c = 17 ) : ( c = 23 ) ;

Tanda tanya membantu pernyataan itu membaca seperti berukut :
“Apakah a lebih besar dari b ? jika ya, letakan 17 ke c. jika tidak, tempatkan 23 ke c”.
atau dalam bentuk umumnya dapat ditulis sebagai :

tesrelasional ? kodebenar : kodesalah ;

Kalau kedua ekspresi benar atau salah menugaskan nilai ke variabel yang sama, seperti diatas, anda dapat meningkatkan efisiensi penugasan variabel dalam satu waktu kesebelah kanan operator kondisional. Dengan kata lain baris

( a > b ) ? ( c = 17 ) : ( c = 23 ) ;

menjadi seperti ini :

c = ( a > b ) ? 17 : 23 ;

Contoh 3.8 :

#include

void main()
{
int val1, val2, hasil1, hasil2;
int val3, val4, hasil3, hasil4;

cout << "Pengujian menggunakan pernyataan if-else" << endl;
cout << "Masukan nilai val1 : ";
cin >> val1;

cout << "Masukan nilai val2 : ";
cin >> val2;

cout << "Pengujian menggunakan operator ?: " << endl;
cout << "Masukan nilai val3 : ";
cin >> val3;

cout << "Masukan nilai val4 : ";
cin >> val4;

if (val1 < val2)
{ hasil1 = val1;
hasil2 = val2; }
else
{ hasil2 = val1;
hasil1 = val2; }

cout << endl << "Menggunakan pernyataan if-else" << endl;
cout << "Nilai minimumnya adalah : " << hasil1 << endl;
cout << "Nilai maksimumnya adalah : " << hasil2 << endl;

hasil3 = (val3 < val4) ? val3 : val4;
hasil4 = (val4 > val3) ? val4 : val3;

cout << endl << "Menggunakan ?:"<< endl;
cout << "Nilai minimumnya adalah : " << hasil3 << endl;
cout << "Nilai maksimumnya adalah : " << hasil4 << endl;
}

Keluaran program :

Pengujian menggunakan pernyataan if-else
Masukan nilai val1 : 54
Masukan nilai val2 : 12
Pengujian menggunakan operator ?:
Masukan nilai val3 : 32
Masukan nilai val4 : 80

Menggunakan pernyataan if-else
Nilai minimumnya adalah : 12
Nilai maksimumnya adalah : 54

Menggunakan ?:
Nilai minimumnya adalah : 32
Nilai maksimumnya adalah : 80

Related Posts:

0 Response to "C++ Bagian 3"