Algoritma dan Pemrograman C#

Topik :

  • Conditional Situation
  • Perintah If – Else


 


 

Conditional Situation


 

Dalam proses bisnis sehari-hari terkadang suatu pekerjaan dilakukan jika suatu kondisi tertentu dipenuhi, jika tidak maka aktivitas lain akan dikerjakan.


 

Misalnya, saat seseorang makan di sebuah restoran yang menyelenggarakan promo tertentu, maka pada saat akan membayar pelayan akan mengajukan pertanyaan :

"Apakah anda akan membayar memakai kartu kredit X ? "

Jika jawabannya ya, maka pelayan akan menghitung harga seluruh makanan dikurangi discount 50% misalnya. Sedangkan jika jawabannya tidak, maka harga seluruh makanan tidak akan mendapatkan discount. Demikianlah aktivitas menghitung jumlah yang harus dibayar seorang pelanggan tergantung pertanyaan "Apakah pembayaran memakai kartu kredit X ?"


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 

Contoh yang lain adalah, jika seseorang akan membeli 10 lembar tiket bioskop, maka untuk menghitung jumlah uang yang harus dibayar beberapa pertanyaan berikut harus dijawab :

  • Apakah ia menonton film 3D ?
  • Jika ya :
    • Apakah ini adalah hari Sabtu/Minggu/Libur ?
    • Jika ya maka harga tiket per lembar adalah Rp 50.000,-
    • Jika tidak, apakah ini adalah hari Jumat ? Jika ya maka harga tiket per lembar adalah Rp.35.000,-
    • Jika tidak maka harga tiket per lembar adalah Rp. 25.000,-
  • Jika tidak :
    • Apakah ini adalah hari Sabtu/Minggu/Libur ?
    • Jika ya maka harga tiket per lembar adalah Rp 40.000,-
    • Jika tidak, apakah ini adalah hari Jumat ? Jika ya maka harga tiket per lembar adalah Rp. 25.000,-
    • Jika tidak maka harga tiket per lembar adalah Rp. 20.000,-


 

Perintah If - Else


 

Syntax :

if ( condition )

{

    statement ;

    statement ;

    …..

}

else

{

    statement ;

    statement ;

    …..

}


 

Condition pada syntax di atas diisi dengan pertanyaan kondisi (biasanya perbandingan) yang jawabannya hanya ada dua kemungkinan yaitu true (betul) atau false (salah).


 

Contoh pertanyaan kondisi adalah :

  • nilai > 50

    nilai adalah suatu variable/object bertype int

  • huruf == 'A'

    huruf adalah suatu variable/object bertype char

  • ipk <= 2.0

    ipk adalah suatu variable/object bertype Double


 

Sedangkan statement-statement yang ada di antara kurung kurawal buka dan tutup { } di bawah "if" menunjukkan perintah-perintah yang harus dikerjakan jika suatu kondisi bernilai benar (terpenuhi). Sebaliknya statement-statement yang ada di antara kurung kurawal buka dan tutup { } di bawah "else" menunjukkan perintah-perintah yang harus dikerjakan jika suatu kondisi bernilai salah ( tidak terpenuhi).


 

Operator-operator yang dapat dipakai dalam pertanyaan kondisi adalah :

  • < (apakah lebih kecil dari)
  • <= (apakah lebih kecil atau sama dengan)
  • > (apakah lebih besar dari)
  • >= (apakah lebih besar atau sama dengan)
  • == (apakah sama dengan),
  • != (apakah tidak sama dengan)


 

Note :

Berhati-hatilah dalam memakai tanda "=" dan tanda "==" (double =). Tanda "=" berarti nilai di sisi kanan tanda tersebut akan dimasukkan ke object di sisi kiri tanda. Sedangkan tanda "==" berarti suatu pertanyaan apakah object di sisi kiri memiliki nilai yang sama dengan object di sisi kanan. Biasanya tanda "==" hanya dipakai di bagian kondisi, misalnya pada perintah "if-else".


 

Contoh :

Depot wareg adalah depot yang berjualan nasi bungkus dengan berbagai macam jenis yang memiliki harga yang berbeda-beda. Pembeli yang membeli lebih dari 10 bungkus nasi dengan harga yang sama akan mendapatkan discount 30%. Buatlah program untuk mengisikan jumlah nasi bungkus dan harga untuk menghitung jumlah total yang harus dibayar seorang pembeli.


 


 


 

Langkah-langkah :


 

  1. Buatlah form seperti tampilan di atas.


 

  1. Pada event click dari button Proses tambahkan perintah berikut :

    

    int iJumlah, iHarga, iTotal;

    iJumlah = int.Parse(txtJumlah.Text);

    iHarga = int.Parse(txtHarga.Text);

    iTotal = iJumlah * iHarga;


 

    Penjelasan :

    Mula-mula sediakan 3 variable yaitu iJumlah, iHarga, dan iTotal untuk     menampung nilai jumlah, harga dan total bayar. iJumlah dan iHarga diisi dengan     konversi isi textbox ke integer. Kemudian lakukan perhitungan total bayar     normal tanpa discount.


 

    if (iJumlah > 10)

    {

        txtDisc.Text = "30%";

        iTotal = (int) (iTotal * 0.7);

    }

    else

    {

        txtDisc.Text = " 0%";

    }

    txtTotal.Text = iTotal.ToString( );


 

    Penjelasan :

    Kemudian periksa apakah pembelian lebih dari 10, jika ya, maka tampilkan     "30%" pada textbox discount dan hitung kembali total bayar menjadi 70% dari     total bayar normal (karena discount 30%). Perhatikan bahwa nilai 70% tidak     dapat dituliskan dengan 70% (karena tanda % sudah dipakai untuk sisa bagi),     maka tanda 70% ( 70 per 100 ) diganti dengan nilai yang setara yaitu 0.7.     Setelah semua perhitungan selesai, maka iTotal diubah menjadi string dan     ditampilkan di textbox Total.

    

    Kemudian perhatikan tanda (int) pada perintah ini :

            iTotal = (int) (iTotal * 0.7);

    Perintah di atas semula adalah seperti ini :

            iTotal = iTotal * 0.7;

    iTotal adalah suatu int, sedangkan 0.7 selalu dianggap sebagai Double, maka     hasil perkalian di sisi kanan akan disimpan sebagai Double. Masalah terjadi     karena hasil perkalian (Double) tersebut harus disimpan di iTotal (int). Oleh     karena itu, casting harus dilakukan agar Double dapat disimpan di object int.     Casting adalah cara untuk mengubah type data suatu nilai menjadi suatu type     data tertentu. Casting dilakukan dengan menempatkan suatu type data tujuan     dalam tanda kurung ( ) di depan nilai yang akan diubah type datanya.


 

Persoalan di atas dapat diselesaikan dengan pemeriksaan satu kondisi saja dan satu kali pemanggilan perintah if saja. Sebenarnya dalam sebuah perintah if dapat dibuat lebih dari satu kondisi. Misalnya jika soal di atas dimodifikasi menjadi discount 30% diberikan jika pembelian lebih dari 10 tetapi maximal 50 ( jadi jumlah yang dibeli harus lebih kecil atau sama dengan 50 ).

Maka perintah if pada solusi di atas harus diubah menjadi :


 

if ((iJumlah > 10) && (iJumlah <= 50))


 

Tanda && di atas adalah contoh operator logika yang menyatakan hubungan "dan", artinya kondisi yang dinyatakan di kiri dan kanan keduanya harus bernilai benar agar "if"dianggap benar.


 

Beberapa operator logika :

  • &&

    Sebutan : AND

    Contoh pemakaian :

    if ((iJumlah > 10) && (iJumlah <= 50))

    Keterangan :

    Dianggap benar jika kedua kondisi sama-sama bernilai benar.

  • ||

    Sebutan : OR

    Contoh pemakaian :

    if ((iJumlah > 100) || (iJumlah <= 50))

    Keterangan :

    Dianggap benar jika salah satu atau kedua kondisi ada yang bernilai     benar.

  • !

    Sebutan : NOT

    Contoh pemakaian :

    if (!(iJumlah > 100))

    Keterangan :

    Dianggap benar jika kondisi bernilai salah.


 

Artikel yang Berhubungan