Decision on C++ Part 1

Decision atau pengambilan keputusan merupakan salah satu implementasi algritma dalam pemecahan suatu masalah dengan berbagai alternatif jawaban yang tersedia dan anda harus mengambil keputusan untuk memilih salah satu jawaban yang tepat. Perintah pengambilan keputusan (decision) digunakan untuk memilih salah satu alternatif jawaban yang tepat dari pilihan yang ada. C++ menyediakan dua perintah pengambilan keputusan yaitu perintah IF dan perintah SWITCH yang disertai dengan CASE.

1. Pernyataan IF

Pernyataan if digunakan untuk memilih satu dari 2 atau lebih alternatif jawaban yang tersedia. Jika test condition bernilai true, maka blok-blok kode akan dijalankan. Jika tidak, maka blok-blok kode tersebut dilewati.

Perintah if memiliki bentuk umum:

if(kondisi)
    pernyataan

Bentuk di atas mempunyai arti jika kondisi bernilai benar maka pernyataan di bawahnya akan dikerjakan. jadi perintah if merupakan perintah yang menentukan pengambilan keputusan bahwa pernyataan iut akan dikerjakan atau tidak.

Contoh:

Jika nilai pembelian lebih dari 100000 maka akan mendapat kan discount 10%.

Pernyataan tersebut dapat ditulis:

discount = 0;
if (nilai_beli > 100000)
    discount = (10/100) * nilai_beli;

Contoh penggalam program diatas menunjukkan nilai awal discount adalah 0. Kemudian baris di bawahnya menerangkan proses pengujian dan pengambilan keputusan di mana apabila nilai pembelian melebihi 100000 maka akan mendapatkan discount sebesar 10% dari niali pembelian.

Pada perintah IF dapa pula diikuti oleh pernyataan majemuk. Untuk itu digunakan tanda {} untuk menandai awal dan akhir pernyataan yang akan dikerjakan jika pernyataan benar.

Bentuknya adalah sebagai berikut:

if(kondisi)
{
    pernyataan1
    pernyataan2
    pernyataan3
    ...
    pernyataan
}

Contoh :

discount=0;
if(nilai_beli>100000)
{
    discount = (10/100)*nilai_beli;
    bonus = "payung";
}

Contoh penggalan program di atas menunjukkan nilai awal discount adalah 0. Kemudian baris di bawahnya menerangkan proses pengujian dan pengambilan keputusan di mana apabila nilai pembelian melebihi 100000 akan mendapatkan discount sebesar 10% dan nilai pembelian. Selain itu juga akan mendapatkan bonus.

2. Perintah If-Else

Perintah if-else mempunyai bentuk umum yaitu:

if(kondisi)
    pernyataan1
else
    pernyataan2

Bentuk ini mempunyai arti: jika kondisi benar maka pernyataan1 akan dikerjakan dan jika kondisi salah maka pernyataan2 yang akan dikerjakan.

Misalkan ada suatu permasalahan dimana Anda diminta membuat algoritma dan program untuk menentukan seorang siswa lulus atau tidak berdasarkan nilai yang dimasukkan. Kondisi yang ada adalah jika nilai siswa terseut lebih besar dari 70 maka siswa tersebut lulus. Sebaliknya jika nilai siswa terseut kurang dari atau sama dengan 70 maka siswa tersebut tidak lulus.

Algoritma dari permasalahan di atas:

  1. Masukkan nilai siswa
  2. Jika nilai lebih besar dari 70
  3. Cetak Lulus
  4. Jika nilai kurang dari atau sama dengan 70
  5. Cetak Tidak Lulus
  6. Tampilkan keterangan Lulus atau Tidak Lulus

Keterangan dari algoritma di atas adalah

Pada baris pertama, anda diminta untuk memasukkan variabel nilai sebagai input yang akan digunakan sebagai dasar untuk pengujian dan pengambilan keputusan. Variabel nilai tersebut bertipe integer. Kemudian pada baris kedua dan ketiga menyebutkan bahwa nilai tersebut yang sudah dimasukkan akan diuji apakah nilai > 70? Kalau jawabannya iya, maka cetak Lulus. Kalau jawabannya tidak maka algoritma akan pindah ke baris ke empat dan kelima yang menyebutkan bahwa nilai yang dimasukkan kurang dari atau saama dengan 70 maka siswa tidak lulus. Pada baris keenam, tampilkan keterangan siswa tersebut lulus atau tidak.

Mari implementasikan algoritma tersebut pada program.

#include <iostream>

using namespace std;

int main()
{
    int nilai;
    
    cout << "Masukkan nilai :  " << endl;
    cin >> nilai;
    
    if (nilai > 70)
        cout << "Lulus" << endl;
    else
        cout << "Tidak Lulus" << endl;

    return 0 ;
}

Bila program di atas dijalankan maka hasilnya adalah sebagai berikut

Masukkan nilai : 80
Lulus

Seperti perintah if, maka perintah if-else juga dapat diikuti pernyataan majemuk. Bentuk umunya adalah sebagai berikut:

if(konsisi)
    {
        pernyataan1
        pernyataan2
        ...
        pernyataanm
    }
else
    {
        pernyataan4
        pernyataan5
        ...
        pernyataann
    }

Misalkan ada suatu permasalahan, anda diminta untuk membuat algoritma dan program untuk menghitung total pembayaran dari pembelian seorang pelanggan toko. Dalam masalah ini ada ketentuan, apabila pembelian pelanggan tersebut sama dengan atau melebihi 100000, maka pelanggan tersebut mendapat discount 10%, jika tidak pelanggan tersebut hanya mendapat discount 5%.

Algoritma dari permasalahan tersebut adalah:

  1. Masukkan pembelian
  2. Jika pembelian >= 100000, discount = 10%*pembelian
  3. Total = pembelian-discount
  4. Jika pembelian < 100000, discount = 5% * pembelian
  5. Total = pembelian - discount
  6. Tampilkan pembelian
  7. Tampilkan discount
  8. tampilkan total pembayaran

Keterangan dari algoritma di atas:

Pada baris pertama diminta untuk memasukkan input yang berkaitan dengan permasalahan di atas yaitu pembelian. Adapun pembelian tersebut disimpan pada variabel beli. Pada baris kedua, akan dilakukan pengujian dan pengecekan pembelian yang dimasukkan yaitu apabila pembelian pelanggan tersebut sama dengan atau melebihi 100000 atau tidak. Jika jawabannya ya, maka pelanggan tersebut mendapat discount 10% dan untuk menghitung total pembayarannya = pembelian - discount. Untuk discount disimpan dalam variabel disc dan total pembayaran disimpan dalam variabel total. Jika jawabannya tidak , maka baris yang akan dikerjakan dalam program adalah baris keempat dan kelima yaitu pelanggan tersebut hanya mendapat discount 5% dan menghitung total pembayaran dengan rumus = pembelian-discount. Selanjutnya pada baris ke enam sampai delapan, akan ditampilkan pembelian, discount dan total pembayaran.

Sekarang mari kita implementasikan algoritma tersebut

#include <iostream>

using namespace std;

int main()
{
    double beli, disc, total;
    
    cout << "Masukkan pembelian :  " << endl;
    cin >> beli;

    if (beli >= 100000)
    {
        disc = 0.1 * beli;
        total = beli - disc;
    }
    else
    {
        disc = 0.05 * beli;
        total = beli- disc;
    }

    cout << "Jadi pembelian adalah  " << beli << endl;
    cout << "jadi discount adalah  " << disc << endl;
    cout << "jadi total pembayaran adalah  " << total << endl;

    return 0;
}

Bila program tersebut dijalankan maka hasilnya adalah sebagai berikut

masukkan pembelian : 100000
jadi pembelian adalah : 100000
jadi discount adalah : 10000
jadi total pembayaran adalah : 90000

Dari program di atas, apabila dimasukkan pembelian, maka sesuai kondisi yang diterapkan di dalam program yaitu beli >= 100000, maka pernyataan pertama yang mengandung pernyataan disc = 0.1 * beli dan total = beli - disc yang akan dikerjakan, yaitu disc = 0.1 * 100000 dan total = 100000 - 10000 = 90000, sebaliknya apabila beli yang dimasukkan < 100000 , maka pernyataanya disc = 0.05 * beli dan total = beli - disc yang akan dikerjakan tergantung dari berapa beli yang dimasukkan.

Dari program di atas bisa dilihat apabila kondisi benar maka pernyataan pertama yang akan dikerjakan, dimana dalam pernyataan pertama mengandung 2 unsur pernyataan dan sebaliknya kalau kondisinya salah pernyataan kedua yang akan dikerjakan, juga mengandung 2 unsur pernyataan.