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.


 

Latihan Soal C# VB

  1. User menginputkan sebuah bilangan. Jika tombol "Cek" di-klik, maka akan ditampilkan di sebuah objek label sebuah keterangan apakah angka tersebut merupakan bilangan genap atau ganjil.
  2. User menginputkan sebuah huruf (asumsi user menginput huruf kecil, bukan huruf capital). Jika tombol "Cek" di-klik maka akan muncul keterangan di sebuah objek label apakah huruf itu adalah huruf vocal atau bukan.
  3. Seseorang bisa menjadi asisten dosen jika dia sudah mencapai semester 5 dan IP nya minimum 2.75. Buatlah program yang menerima inputan dari user, yaitu semester saat ini dan jumlah IP nya. Jika tombol "Cek" ditekan, program akan memberitahukan apakah layak menjadi asisten dosen atau tidak.
  4. Terdapat ketentuan nilai berikut :

    0-40 = E

    41-50 = D

    51-65 = C

    66-70 = BC

    71-75 = B

    76-85 = AB

    86-100 = A

    Buatlah program untuk mengetahui kategori nilai dari nilai angka yang diinput oleh user.

  5. Terdapat klasifikasi predikat nilai berikut :

    A = Sangat memuaskan

    B = Memuaskan

    C = Baik

    D = Kurang

    E = Buruk

    Buatlah program untuk menampilkan predikat ke dalam sebuah objek label jika nilai nya diinput oleh user (nilai yang diinput menggunakan huruf besar saja).

  6. Pada awalnya, program memiliki tampilan seperti ini:


     

    User diharuskan mengisi ketiga textbox yang tersedia. Jika ketiga nya diisi dengan lengkap, lalu tombol "Simpan" di-klik, maka akan tampil seperti berikut :


     


     

    Di sebelah bawah muncul keterangan: "Data berhasil disimpan".


     

    Seandainya tadi ada textbox yang belum diisi, maka akan muncul peringatan untuk masing-masing textboxnya jika tombol "Simpan" di-klik


     

    Atau


     

    Atau


     


     

    Jika tombol "Hapus" di-klik, maka akan mengembalikan program menjadi seperti tampilan semula (tulisan di textbox menjadi bersih, dan keterangan-keterangan yang muncul menjadi hilang), dan posisi kursor berada di textbox NRP.


     

  7. properties "Backcolor" nya menjadi warna merah / "Red".


     


     

    Lalu buatlah 2 object label lagi, properties "Autosize" nya diubah menjadi "False", tapi properties "Backcolor" nya menjadi "Green". Dan tambahkan pula 2 buah object Button di bawahnya.


     


     

    Tujuan dari program ini adalah untuk membuat "animasi" sederhana. Jika tombol "Ke Kiri" di-click, maka warna merah akan berpindah ke kiri, kecual sudah mencapai label paling kiri (label1).

    Jika tombol "Ke Kanan" di-click, maka warna merah akan berpindah ke kanan, kecuali sudah mencapai label paling kanan (label3).


     

    Petunjuk:

        Untuk pewarnaan lewat program, maka source code nya seperti ini:

            label1.BackColor = Color.Green;

        atau

            label1.BackColor = Color.Red;

    Contoh:

  • Kondisi Awal :


     

  • Jika di-click tombol "Ke Kiri", maka warna merah sudah tidak bisa berpindah ke mana-mana lagi.
  • Jika di-click tombol "Ke Kanan", maka warna merah akan berpindah ke label2.


     

  •  


     


 

  • Jika label3 sudah bewarna merah, maka jika di-click tombol "Ke Kanan", tidak terjadi apa-apa. Tetapi jika di-click tombol "Ke Kiri", maka warna merah akan berpindah ke label2.


     

  • Jika tombol "Ke Kiri" di-click, maka warna merah akan berpindah ke label1.