Keputusan
2.1 Struktur Keputusan
Struktur
Keputusan Dalam Diagram Alir dan Pseudocode
Dalam format paling
sederhana dari struktur keputusan, ekspresi diuji apakah nilainya true atau false. Jika ekspresi bernilai true,
sebuah aksi akan dilakukan. Jika ekspresi bernilai false, aksi tidak akan dilakukan. Gambar 2.1 menunjukkan diagram
alir dari sebuah struktur keputusan. Simbol diamond merepresentasikan
pertanyaan ya/tidak, atau ekspresi true/false. Jika jawaban terhadap pertanyaan
itu adalah ya (atau jika ekspresi bernilai true),
maka program melalui satu lintasan atau alur. Jika jawaban terhadap pertanyaan
itu adalah tidak (atau jika ekspresi bernilai false), maka program melalui lintasan atau alur lain.
Pada diagram alir, aksi Pakai jaket dilakukan hanya ketika di
luar dingin. Jika di luar tidak dingin, aksi ini akan dilompati. Aksi
dieksekusi secara kondisional (dengan syarat) karena ia dilakukan hanya ketika
kondisi atau syarat tertentu dipenuhi. Gambar 2.2 menunjukkan diagram alir yang
lebih kompleks, dimana tiga aksi dilakukan, hanya ketika di luar dingin.
Struktur keputusan dapat
pula diekspresikan dengan pseudocode. Sebagai contoh, struktur keputusan yang
ditampilkan pada Gambar 2.1 dapat diekspresikan sebagai:
If (dingin di luar)
{
Pakai jaket
}
Kurung kurawal } menandai
akhir dari struktur keputusan dalam pseudocode. Statemen-statemen yang ada di
antara { dan } dieksekusi hanya ketika di luar dingin.
Struktur keputusan yang
ditampilkan pada Gambar 2.2, yang secara kondisional mengeksekusi tiga aksi,
dapat diekspresikan sebagai:
if (dingin di luar)
{
Pakai jaket
Pakai topi
Pakai sarung tangan
}
2.2 Statemen if
KONSEP: Statemen if menyebabkan statemen-statemen lain dieksekusi hanya
ketika ekspresi bernilai true.
Salah satu cara
memprogram struktur keputusan dalam C# adalah dengan menggunakan statemen if. Berikut adalah bentuk umum dari
statemen if:
if
(ekspresi)
{
statemen
(atau statemen-statemen lain)
}
Statemen if memang sangat sederhana: jika
ekspresi bernilai true, statemen
atau statemen-statemen lain yang ada di antara { dan } akan dieksekusi.
Sebaliknya, statemen-statemen itu akan dilompati.
Ekspresi Boolean
dan Operasi Relasional
Ekspresi yang diuji di
dalam sebuah statemen if dapat
bernilai true atau false. Ekspresi semacam itu dikenal dengan ekspresi Boolean. Operator-operator
spesial yang dikenal sebagai operator-operator relasional umumnya dipakai pada
ekspresi Boolean. Operator relasional menentukan apakah ada relasi spesifik
antara dua nilai atau tidak. Sebagai contoh, operator lebih-dari (>)
menentukan apakah satu nilai lebih besar dari nilai lain atau tidak. Operator
sama-dengan (=) menentukan apakah dua nilai bernilai sama atau tidak. Tabel 2.1
mencantumkan sejumlah operator relasional dalam C#.
Tabel 2.1 Operator-operator relasional dalam C#
Operator Relasional
|
Arti
|
>
<
=
!=
>=
<=
|
Lebih besar dari
Lebih kecil dari
Sama dengan
Tidak sama dengan
Lebih besar dari atau
sama dengan
Lebih kecil dari atau
sama dengan
|
Semua operator relasional
adalah operator biner, yang berarti bahwa semuanya menggunakan dua operand.
Berikut adalah contoh dari sebuah ekspresi yang menggunakan operator
lebih-dari:
panjang > lebar
Ekspresi ini menentukan
apakah nilai dari panjang lebih
besar dari nilai dari lebar. Jika panjang lebih besar dari lebar, maka nilai dari ekspresi
tersebut adalah true. Sebaliknya,
nilai dari ekspresi adalah false.
Karena ekspresi hanya bisa bernilai true
atau false, ia dikatakan sebagai
ekspresi Boolean. Ekspresi berikut menggunakan operator kurang-dari (<)
untuk menentukan apakah panjang
bernilai kurang dari lebar:
panjang
< lebar
Tabel 2.2 menunjukkan
beberapa contoh ekspresi relasional yang membandingkan variabel x dan y.
Tabel 2.2 Ekspresi-ekspresi Boolean yang menggunakan operator relasional
Ekspresi relasional
|
Arti
|
x > y
x < y
x >= y
x <= y
x = y
x != y
|
Apakah x lebih besar
dari y?
Apakah x lebih kecil
dari y?
Apakah x lebih besar
dari atau sama dengan y?
Apakah x lebih kecil
dari atau sama dengan y?
Apakah x sama dengan y?
Apakah x tidak sama
dengan y?
|
Operator =, ketika
digunakan di dalam ekspresi relasional, menentukan apakah operand di sisi
kirinya sama dengan operand di sisi kananya. Jika kedua operand memiliki nilai
sama, ekspresi bernilai true.
Diasumsikan bahwa a bernilai 4. Ekspresi a = 4 bernilai true dan ekspresi a = 2 bernilai false.
Terdapat dua operator
yang dapat menguji lebih dari satu relasi pada saat yang sama. Operator >=
menentukan apakah operand di sisi kiri lebih besar dari atau sama dengan
operand di sisi kanan. Diasumsikan bahwa a adalah 4, b adalah 6, dan c adalah
4. Ekspresi b >= a dan a >= c bernilai true, dan a >= 5 bernilai false.
Operator <= menentukan
apakah operand kiri bernilai kurang dari atau sama dengan operand kanannya.
Sekali lagi, diasumsikan bahwa a adalah 4, b adalah 6, dan c adalah 4. Baik a
<= c maupun b <= 10 bernilai true,
tetapi b <= a bernilai false.
Operator != adalah
operator tidak sama dengan. Ia menentukan apakah operand di sisi kirinya tidak
sama dengan operand di sisi kanan, yang berlawanan dengan operator =. Seperti
sebelumnya, diasumsikan bahwa a adalah 4, b adalah 6, dan c adalah 4. Baik a !=
b maupun b != c bernilai true karena
a bernilai tidak sama dengan b dan b bernilai tidak sama dengan c. Namun, a
<> c bernilai false karena a
bernilai sama dengan c. Nilai-nilai yang dibandingkan oleh sebuah ekspresi
relasional tidak harus bertipe data sama. Dimisalkan bahwa sebuah variabel
bertipe Single dibandingkan dengan
sebuah konstanta integer, seperti pada berikut:
sngSuhu
> 40
Pada contoh ini, integer
40 dikonversi secara temporer menjadi Single
sehingga perbandingan dapat dilakukan. Anda tidak perlu khawatir tentang
konversi ini, karena hal ini secara otomatis dilakukan oleh kompiler C#. Sama
halnya, Anda bisa saja membandingkan sebuah Double dengan sebuah Single,
seperti pada berikut:
dblSuhu
< sngTitikDidih
Nilai dari sngTitikDidih secara otomatis
dikonversi menjadi tipe Double
sehingga nilai-nilai dapat dibandingkan.
Menyatukan Semua
Lihat sebuah contoh dari
statemen if berikut:
if
(decPenjualan > 50000)
{
labelHasil.Text = "Anda layak mendapat
bonus!"
}
Statemen ini menggunakan
operator > untuk menentukan apakah decPenjualan
lebih besar dari 50000. Jika ekspresi decPenjualan
> 50000 bernilai true, maka
pesan Anda layak mendapat bonus!
akan ditampilkan pada user.
Contoh berikut secara
kondisional mengeksekusi sejumlah statemen berikut:
if
(decPenjualan > 50000)
{
labelHasil.Text = " Anda layak
mendapat bonus!"
decPersenKomisi = 0.12
intHariLibur = intHariLibur + 1
}
Berikut beberapa aturan
yang perlu diingat pada statemen if
multi-baris:
·
Sebuah ekspresi Boolean harus diberikan antara If dan }.
·
Kata if
ditempatkan pada baris yang sama.
Gaya Pemrograman
dan Statemen if
Ketika Anda mengetikkan
statemen if, Visual Studio secara
otomatis akan menata statemen-statemen yang ada di dalamnya. Ini bukanlah
persyaratan sintaksis, tetapi hanyalah konvensi gaya pemrograman. Sebagai
contoh, bandingkan statemen-statemen berikut:
if
(decPenjualan > 50000)
{
labelHasil.Text = " Anda layak
mendapat bonus!"
decPersenKomisi = 0.12
intHariLibur = intHariLibur + 1
}
dengan
if
(decPenjualan > 50000)
{
labelHasil.Text
= " Anda layak mendapat bonus!"
decPersenKomisi
= 0.12
intHariLibur
= intHariLibur + 1
}
Kedua statemen if tersebut memberikan hasil yang sama.
Contoh pertama lebih mudah dibaca oleh mata manusia daripada yang kedua.
Menggunakan
Operator Relasional dengan Operator Matematika
Adalah dimungkinkan untuk
menggunakan operator relasional dan operator matematika pada ekspresi yang
sama. Berikut adalah contohnya:
if
(intX + intY > 20)
{
labelPesan.Text = "Ini juga bisa!"
}
Ketika operator
relasional berada di dalam ekspresi yang sama bersama satu atau lebih operator
matematika, operator matematika selalu dieksekusi lebih dahulu. Pada statemen
ini, operator + menjumlahkan intX
dan intY. Hasilnya dibandingkan
dengan 20 menggunakan operator >. Berikut adalah contoh lainnya:
if
(intX + intY > intA – intB)
{
labelPesan.Text = "Ini juga bisa!"
}
Pada statemen ini, hasil
dari intx + intB dibandingkan,
menggunakan operator >, dengan hasil dari intA – intB.
Hampir semua programer
lebih memilih menggunakan kurung untuk menegaskan urutan operasi. Berikut
adalah cara yang lebih dipilih untuk menuliskan statemen If…Then tersebut:
if
(intX + intY > (intA – intB))
{
labelPesan.Text = "Ini juga bisa!"
}
Menggunakan
Variabel Boolean Sebagai Bendera (Flag)
Flag atau bendera adalah
sebuah variabel Boolean yang memberikan sinyal ketika kondisi tertentu ada di
dalam program. Ketika bendera ditetapkan false,
ia mengindikasikan kondisi belum dipenuhi. Ketika bendera ditetapkan true, ini berarti kondisi tertentu ada
atau dipenuhi. Lihat pada kode berikut, yang menggunakan sebuah variabel
Boolean dengan nama blnKuota:
if
(blnKuota)
{
labelPesan.Text = "Anda telah mencapai
target penjualan"
}
Statemen tersebut
menugaskan string “Anda telah mencapai
target penjualan” kepada labelPesan.Text
jika variabel Boolean bernilai true.
Jika blnKuota bernilai false, statemen penugasan itu tidak
akan dieksekusi. Anda tidak memerlukan operator = untuk membandingkan variabel
Boolean dengan true. Statemen
tersebut ekivalen dengan berikut:
if
(blnKuota = true)
{
labelPesan.Text = "Anda telah mencapai
target penjualan"
}
2.3 Statemen if…else
KONSEP: Statemen if…else mengeksekusi satu grup statemen jika ekspresi
Boolean bernilai true dan mengeksekusi grup statemen lain jika ekspresi Boolean
bernilai false.
Statemen if…else merupakan ekspansi dari
statemen if. Berikut adalah
formatnya:
if
(kondisi)
{
statemen
(atau statemen-statemen lain)
}
else
{
statemen
(atau statemen-statemen lain)
}
Sama seperti statemen if, ekspresi Boolean dievaluasi lebih
dahulu. Jika ekspresi tersebut bernilai true,
maka sebuah grup statemen akan dieksekusi. Jika ekspresi bernilai false, maka sebuah grup statemen lain
akan dieksekusi, seperti berikut:
if
(dblSuhu < 20)
{
labelPesan.Text = "Cukup dingin kan?"
}
else
{
labelPesan.Text = "Cuaca sangat baik
hari ini!"
}
Klause else menetapkan sebuah statemen atau
grup statemen yang akan dieksekusi bila ekspresi Boolean bernilai false. Pada contoh tersebut, jika
ekspresi dblSuhu < 20 bernilai false, maka statemen yang ada setelah
klausa else akan dieksekusi.
Gambar 2.3 menunjukkan
diagram alir dari struktur keputusan if…else.
Logika yang ditunjukkan
pada diagram alir pada Gambar 2.3 dapat pula diekspresikan dengan pseudocode
berikut:
if (suhu < 20)
{
Tampilkan pesan "Cukup dingin kan?"
}
else
{
Tampilkan pesan "Cuaca sangat baik hari ini!"
}
2.4 Contoh Penggunaan Statemen if dan
if..else
Contoh 1:
Menghitung Rerata Tiga Angka Dengan if
Program berikut
menghasilkan nilai rerata dari tiga angka yang diberikan oleh user menggunakan
statemen if. Keluaran ditampilkan
pada sebuah kotak teks.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace RerataTigaAngka
{
public
partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
private
void tombolHitung_Click(object
sender, EventArgs e)
{
//Variabel-variabel untuk menampung
data
Double dblSkor1 = 0.0;
Double dblSkor2 = 0.0;
Double dblSkor3 = 0.0;
Double dblRerata = 0.0;
//Konstanta-konstanta
const Int16 JUM_SKOR =
3;
const Double
dblSKOR_TINGGI = 95.0;
//Salin ketiga skor pada kotak teks
ke dalam variabel-variabel.
dblSkor1 = Double.Parse(teksSkor1.Text);
dblSkor2 = Double.Parse(teksSkor2.Text);
dblSkor3 = Double.Parse(teksSkor3.Text);
//Menghitung skor rerata.
dblRerata = (dblSkor1 + dblSkor2 +
dblSkor3) / JUM_SKOR;
//Menampilkan rerata,
membulatkannya menjadi 2 dijit di belakang desimal.
teksRerata.Text =
dblRerata.ToString("n2");
//Jika skor tinggi, berikan pujian.
if (dblRerata > dblSKOR_TINGGI)
labelPesan.Text =
"Selamat! Kerja keras membuahkan hasil!";
}
private
void tombolBersih_Click(object
sender, EventArgs e)
{
teksSkor1.Text = "";
teksSkor2.Text = "";
teksSkor3.Text = "";
teksRerata.Text = "";
labelPesan.Text = "";
}
}
}
Contoh 2:
Menghitung Rerata Tiga Angka Dengan if-else
Program berikut
menghasilkan nilai rerata dari tiga angka yang diberikan oleh user menggunakan
statemen if-else. Keluaran
ditampilkan pada sebuah kotak teks.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace RerataTigaAngka
{
public
partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
private
void tombolHitung_Click(object
sender, EventArgs e)
{
//Variabel-variabel untuk menampung
data
Double dblSkor1 = 0.0;
Double dblSkor2 = 0.0;
Double dblSkor3 = 0.0;
Double dblRerata = 0.0;
//Konstanta-konstanta
const Int16 JUM_SKOR =
3;
const Double
dblSKOR_TINGGI = 95.0;
//Salin ketiga skor pada kotak teks
ke dalam variabel-variabel.
dblSkor1 = Double.Parse(teksSkor1.Text);
dblSkor2 = Double.Parse(teksSkor2.Text);
dblSkor3 = Double.Parse(teksSkor3.Text);
//Menghitung skor rerata.
dblRerata = (dblSkor1 + dblSkor2 +
dblSkor3) / JUM_SKOR;
//Menampilkan rerata,
membulatkannya menjadi 2 dijit di belakang desimal.
teksRerata.Text =
dblRerata.ToString("n2");
//Jika skor tinggi, berikan pujian.
if (dblRerata > dblSKOR_TINGGI)
labelPesan.Text =
"Selamat! Kerja keras membuahkan hasil!";
else
labelPesan.Text = "Tetap
Semangat!";
}
private void tombolBersih_Click(object
sender, EventArgs e)
{
teksSkor1.Text = "";
teksSkor2.Text = "";
teksSkor3.Text = "";
teksRerata.Text = "";
labelPesan.Text = "";
}
}
}
Contoh 3:
Menghitung Rerata Huruf Dari Tiga Angka Dengan if-else
Program ini merupakan
pengembangan dari kasus 4. Nilai rerata yang dihitung juga direpresentasikan
dengan nilai huruf. Keluaran ditampilkan pada dua buah kotak teks.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace RerataTigaAngka
{
public
partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
private
void tombolHitung_Click(object
sender, EventArgs e)
{
//Variabel-variabel untuk menampung
data
Double dblSkor1 = 0.0;
Double dblSkor2 = 0.0;
Double dblSkor3 = 0.0;
Double dblRerata = 0.0;
//Konstanta-konstanta
const Int16 JUM_SKOR = 3;
const Double dblSKOR_TINGGI = 95.0;
//Salin ketiga skor pada kotak teks
ke dalam variabel-variabel.
dblSkor1 = Double.Parse(teksSkor1.Text);
dblSkor2 = Double.Parse(teksSkor2.Text);
dblSkor3 = Double.Parse(teksSkor3.Text);
//Menghitung skor rerata.
dblRerata = (dblSkor1 + dblSkor2 +
dblSkor3) / JUM_SKOR;
//Menampilkan rerata,
membulatkannya menjadi 2 dijit di belakang desimal.
teksRerata.Text = dblRerata.ToString("n2");
//Menampilkan nilai huruf
if (dblRerata < 60)
teksNilai.Text = "F";
else if (dblRerata <
70)
teksNilai.Text = "D";
else if (dblRerata <
80)
teksNilai.Text = "C";
else if (dblRerata <
90)
teksNilai.Text = "B";
else if(dblRerata <=
100)
teksNilai.Text = "A";
//Jika skor tinggi, berikan pujian.
if (dblRerata > dblSKOR_TINGGI)
labelPesan.Text =
"Selamat! Kerja keras membuahkan hasil!";
else
labelPesan.Text = "Tetap
Semangat!";
}
private
void tombolBersih_Click(object
sender, EventArgs e)
{
teksSkor1.Text = "";
teksSkor2.Text = "";
teksSkor3.Text = "";
teksRerata.Text = String.Empty;
labelPesan.Text = String.Empty;
teksNilai.Text = String.Empty;
//Reset fokus.
teksSkor1.Focus();
}
}
}
Contoh 4:
Menghitung Rerata Dari Dua Skor Tertinggi Dengan if-else
Program berikut
menghitung rerata dari dua skor tertinggi yang diberikan oleh user menggunakan
statemen if-else. Nilai rerata
kemudian ditampilkan pada sebuah kotak teks.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DemoRerata
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void
tombolHitung_Click(object sender, EventArgs e)
{
Double s1, s2, s3; //3 skor
Double rerata; //rerata
dari dua skor tertinggi
s1 = Double.Parse(teksSkor1.Text);
s2 = Double.Parse(teksSkor2.Text);
s3 = Double.Parse(teksSkor3.Text);
if ((s1 <= s2) & (s1 <= s3)) //s1 nilai terkecil
rerata = (s2 + s3) /
2;
else if ((s2 <= s1)
& (s2 <= s3)) //s2 nilai terkecil
rerata = (s1 + s3) /
2;
else
rerata = (s1 + s2) /
2;
teksRerata.Text =
rerata.ToString();
}
}
}
Contoh 5: Penggunaan Lain Dari if-else
Sebuah
supermarket menjual apel seharga Rp. 25000 per kilo. Berikut merupakan sebuah
program kasir yang meminta jumlah kilo (apel) dan jumlah uang sebagai masukan dan
menampilkan jumlah uang kembalian dari transaksi tersebut. Jika uang yang
dibayarkan tidak mencukupi, pesan “Saya perlu Rp. xxx lagi” akan ditampilkan,
dimana Rp. xxx adalah selisih antara total biaya dan uang yang dibayarkan.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DemoKembalian
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void
tombolHitung_Click(object sender, EventArgs e)
{
Double berat, biaya, uang, kembalian;
berat = Double.Parse(teksBerat.Text);
uang = Double.Parse(teksUang.Text);
biaya = berat * 25000;
if (uang >= biaya) {
kembalian = uang -
biaya;
teksKeluaran.Text =
"Kembalian Anda adalah " + "Rp. " +
kembalian.ToString("N") + ".";
}
else {
teksKeluaran.Text =
"Saya perlu " + "Rp. " +
(biaya -
uang).ToString("N") + " lagi.";
}
}
}
}
Contoh 6:
Penggunaan Lain Dari if-else
Sebuah
form dengan sebuah kotak teks dan dua tombol yang dikapsion Ambon dan
Lombok. Ketika Ambon pertama-tama ditekan, kalimat “Ambon
manise tanah yang elok.” ditampilkan pada kotak teks. Ketika Ambon ditekan
kembali, kalimat “Waktu hujan sore-sore.” ditampilkan. Ketika Lombok ditekan,
kalimat “Takjub dengan kemegahan alam senggigi.” ditampilkan. Jalankan
program dan tekan Ambon, Lombok, dan Ambon untuk
mendapatkan ketiga kalimat tersebut.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DemoAmbonLombok
{
public partial class Form1 : Form
{
//jumBaris memberitahu
jumlah baris yang telah ditampilkan.
Int16 jumBaris = 0;
public Form1()
{
InitializeComponent();
}
private void
tombolAmbon_Click(object sender, EventArgs e)
{
if (jumBaris == 0) {
listKeluaran.Items.Add("Ambon manise tanah yang elok.");
jumBaris += 1;
}
else if (jumBaris == 2)
{
listKeluaran.Items.Add("Waktu hujan sore-sore.");
jumBaris += 1;
}
}
private void
tombolLombok_Click(object sender, EventArgs e)
{
if (jumBaris == 1) {
listKeluaran.Items.Add("Takjub dengan kemegahan alam
senggigi.");
jumBaris += 1;
}
}
}
}
Contoh 7:
Kalkulator Dengan ComboBox
Antarmuka GUI berikut menggunakan
beberapa statemen if-else dan memanfaatkan kotak Combo dipakai
untuk menampilkan beberapa pilihan operator perhitungan.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace KalkulatorComboBox
{
public
partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
private
void tombolHitung_Click(object
sender, EventArgs e)
{
Double angka1, angka2, hasil;
if ((teks1.Text == "") || (teks2.Text == ""))
MessageBox.Show("Operand
Kosong");
else {
if (kotakKombo.SelectedIndex == -1)
MessageBox.Show("Operator tidak dipilih");
else if (kotakKombo.SelectedIndex
== 0) {
angka1 = Double.Parse(teks1.Text);
angka2 = Double.Parse(teks2.Text);
hasil = angka1 + angka2;
teksHasil.Text =
hasil.ToString();
}
else if
(kotakKombo.SelectedIndex == 1) {
angka1 = Double.Parse(teks1.Text);
angka2 = Double.Parse(teks2.Text);
hasil = angka1 - angka2;
teksHasil.Text = hasil.ToString
();
}
else if
(kotakKombo.SelectedIndex == 2) {
angka1 = Double.Parse(teks1.Text);
angka2 = Double.Parse(teks2.Text);
hasil = angka1 * angka2;
teksHasil.Text =
hasil.ToString ();
}
else if
(kotakKombo.SelectedIndex == 3) {
angka1 = Double.Parse(teks1.Text);
angka2 = Double.Parse(teks2.Text);
hasil = angka1 / angka2;
teksHasil.Text =
hasil.ToString ();
}
}
}
}
}
Contoh 8:
Statemen if Bersarang
Program berikut
menggunakan statemen if bersarang
untuk menentukan apakah seorang karyawan memenuhi kriteria untuk mendapatkan
pinjaman.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace StatemenIfBersarang
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void
tombolPeriksa_Click(object sender, EventArgs e)
{
//Variabel-variabel
untuk menampung data masukan.
Double dblGaji;
Int64 intTahunKerja;
//Membaca masukan
pengguna
dblGaji = Double.Parse(teksGajiPerTahun.Text);
intTahunKerja = Int64.Parse(teksJumThnKerja.Text);
//Menentukan apakah
aplikan memenuhi kualifikasi
//untuk pinjaman
tertentu
if (dblGaji > 30000000)
if (intTahunKerja > 2)
teksKualifikasi.Text = "Aplikan" +
"
memenuhi kualifikasi untuk meminjam.";
else
teksKualifikasi.Text = "Aplikan " +
"tidak
memenuhi kualifikasi untuk meminjam.";
else
if (intTahunKerja > 5)
teksKualifikasi.Text = "Aplikan" +
" tidak
memenuhi kualifikasi untuk meminjam.";
else
teksKualifikasi.Text = "Aplikan" +
"
memenuhi kualifikasi untuk meminjam.";
}
}
}
Contoh 9: Statemen if Dengan Operator Logikal
Program berikut meminta
user untuk memasukkan jumlah propinsi di Indonesia. Hasil evaluasi jawaban
ditampilkan pada sebuah kotak teks.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace StatemenIfDenganOperatorLogikal
{
public partial class Form1 :
Form
{
public Form1()
{
InitializeComponent();
}
private void tombolEvaluasi_Click(object sender, EventArgs e)
{
Int16 jawaban;
jawaban = Int16.Parse(teksJawaban.Text);
if ((jawaban >= 30) &&
(jawaban <= 35))
teksHasil.Text = "Bagus, Taksiran Anda hampir benar." +
" Ada 33 propinsi di Indonesia";
else
teksHasil.Text = "Tebakan Anda masih jauh dari jawaban ";
}
}
}
Contoh 10:
Menghitung Rerata Berjalan
Program ini menghitung
rerata berjalan dari nilai-nilai yang dimasukkan oleh user. Setiap nilai
ditampilkan pada sebuah kotak list, sedangkan rerata berjalan ditampilkan pada
suatu kotak teks.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace RerataBerjalan
{
public
partial class Form1 : Form
{
Double
nilai;
Double
nilaiRerata;
Int16
kounter = 0;
public
Form1()
{
InitializeComponent();
}
private
void tombolHitung_Click(object
sender, EventArgs e)
{
try
{
nilai =
Double.Parse(teksNilai.Text);
nilaiRerata += nilai;
//menambahkan nilai pada total
kounter += 1; //bertambah satu setiap kali tombolHitung
diklik
teksRerata.Text = "Rerata:
" + (nilaiRerata / kounter);
if (nilai < 50)
kotakList.Text =
"Gagal";
else if (nilai < 60)
kotakList.Text =
"C";
else if (nilai < 80)
kotakList.Text =
"B";
else if (nilai < 101)
kotakList.Text = "A";
kotakList.Items.Add(nilai +
" ==> " + kotakList.Text);
teksNilai.Text = "";
}
catch
{
MessageBox.Show("Silahkan
masukkan angka " + teksNilai.Text + " salah!!");
teksNilai.Text = " ";
}
}
}
}
Contoh 11:
Menghitung Rerata, Nilai Maksimum dan Nilai Minimum Berjalan
Program berikut merupakan
pengembangan dari kasus 12, dimana nilai maksimum dan nilai minimum berjalan
juga ditampilkan pada dua kotak teks lainnya.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace NilaiMaksdanMin
{
public
partial class Form1 : Form
{
Double
nilai;
Double
nilaiRerata;
Int16
kounter = 0;
Double
nilaiMaks;
Double
nilaiMin;
public
Form1()
{
InitializeComponent();
}
private
void tombolHitung_Click(object
sender, EventArgs e)
{
try {
nilai = Double.Parse(teksNilai.Text);
nilaiRerata += nilai;
//menambahkan nilai pada total
kounter += 1; //bertambah satu
setiap kali tombolHitung diklik
teksRerata.Text = "Rerata:
" + nilaiRerata / kounter;
if (kounter == 1) {
nilaiMaks = nilai; //hanya
untuk pertama kali
nilaiMin = nilai;
}
if (nilai > nilaiMaks) //jika nilai lebih besar dari nilaiMaks
nilaiMaks = nilai;
//memperbarui nilaiMaks
teksMaks.Text = "Nilai
Maksimum: " + nilaiMaks; //menampilkan
if (nilai < nilaiMin) //jika nilai lebih kecil dari nilaiMin
nilaiMin = nilai;
//memperbarui nilaiMin
teksMin.Text = "Nilai
Minimum: " + nilaiMin; //menampilkan
if (nilai < 50)
kotakList.Text =
"Gagal";
else if (nilai < 60)
kotakList.Text =
"C";
else if (nilai < 80)
kotakList.Text =
"B";
else if (nilai < 101)
kotakList.Text =
"A";
kotakList.Items.Add(nilai +
" ==> " + kotakList.Text);
teksNilai.Text = " ";
}
catch {
MessageBox.Show("Silahkan
masukkan angka " + teksNilai.Text + " salah!!");
teksNilai.Text = " ";
}
}
}
}
Contoh 12: Statemen if dengan &&
Program ini menggunakan
statemen if dengan operator && untuk mendemonstrasikan tiga
syarat yang harus dipenuhi untuk menyalakan mobil.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace StatemenIfDenganAND
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void
tombolNyalakan_Click(object sender, EventArgs e)
{
//Mendefinisikan 3
variabel untuk memuat kondisi-kondisi
String strBaterei, strKunci, strBhnBakar;
//Melewatkan data dalam ketiga kotak teks
kepada variabel-variabel
strBaterei =
teksBaterei.Text;
strKunci =
teksKunci.Text;
strBhnBakar =
teksBahanBakar.Text;
//Statemen If dengan AND
untuk menyalakan mobil
if ((strBaterei == "baterei") && (strKunci ==
"kunci") && (strBhnBakar == "bensin"))
MessageBox.Show("Bummmmmm, Gas terus!!");
else
MessageBox.Show("Tidak bisa nyala ...");
}
}
}
Contoh 13:
Statemen if dengan ||
Program ini menggunakan
statemen if dengan operator || untuk mendemonstrasikan tiga syarat
yang harus dipenuhi untuk menyalakan mobil, dimana salah satu syarat memiliki
tiga opsi yang dapat dipilih user (bateri, Baterei, atau ya).
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace StatemenIfDenganAND
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void
tombolNyalakan_Click(object sender, EventArgs e)
{
//Mendefinisikan 3
variabel untuk memuat kondisi-kondisi
String strBaterei, strKunci, strBhnBakar;
//Melewatkan data dalam
ketiga kotak teks kepada variabel-variabel
strBaterei =
teksBaterei.Text;
strKunci =
teksKunci.Text;
strBhnBakar =
teksBahanBakar.Text;
//Statemen If dengan AND
untuk menyalakan mobil
if ((strBaterei == "baterei") || (strBaterei == "Baterei") || (strBaterei == "ya")
&&
((strKunci == "kunci") && (strBhnBakar ==
"bensin")))
MessageBox.Show("Bummmmmm, Gas terus!!");
else
MessageBox.Show("Tidak bisa nyala ...");
}
}
}
Contoh 14: Statemen if Untuk Menentukan Biaya Kesehatan
Program
berikut menghitung biaya bulanan untuk rencana biaya kesehatan suatu
perusahaan. Pengguna dapat mencentang rencana-rencana yang diinginkan, kemudian
mengklik tombol untuk
menghitung
biaya total.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MenuKesehatan
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void tombolTentukan_Click(object sender, EventArgs e)
{
int jum = 0;
if (checkObat.Checked)
jum +=
350000;
if (checkGigi.Checked)
jum +=
550000;
if (checkMata.Checked)
jum +=
750000;
if (checkKesehatan.Checked)
jum +=
1500000;
teksTotal.Text
= "Rp. " + jum.ToString("N");
}
}
}
Contoh 15:
Statemen if-else Untuk Menentukan Biaya Kesehatan
Contoh
ini memvariasi kasus 34. Jumlah uang pada kotak teks bertambah setiap kali
kotak teks dicentang dan berkurang setiap kali kotak teks ditak-centang. Untuk
menciptakan header bagi prosedur event, Anda bisa mengklik-ganda kotak
periksa yang pertama, dan mengubah nama prosedur event dari checkObat_CheckedChanged
menjadi kotakPeriksa_CheckedChanged, dan menambahkan ketiga event
setelah katakunci Handles.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MenuKesehatan
{
public
partial class Form1 : Form
{
static
int jum = 0;
public
Form1()
{
InitializeComponent();
}
private
void checkObat_CheckedChanged(object
sender, EventArgs e)
{
if (checkObat.Checked)
jum += 350000;
else
jum -= 350000;
teksTotal.Text = "Rp. " +
jum.ToString("N");
}
private
void checkGigi_CheckedChanged(object
sender, EventArgs e)
{
if (checkGigi.Checked)
jum += 550000;
else
jum -= 550000;
teksTotal.Text = "Rp. " +
jum.ToString("N");
}
private
void checkMata_CheckedChanged(object
sender, EventArgs e)
{
if (checkMata.Checked)
jum += 750000;
else
jum -= 750000;
teksTotal.Text = "Rp. " +
jum.ToString("N");
}
private
void
checkKesehatan_CheckedChanged(object sender, EventArgs e)
{
if (checkKesehatan.Checked)
jum += 1500000;
else
jum -= 1500000;
teksTotal.Text = "Rp. " +
jum.ToString("N");
}
}
}
Contoh 16:
Statemen if-else Untuk Penjualan Komputer
Seorang
penjual komputer menawarkan dua jenis komputer, Deluxe (Rp. 10 juta) dan Super (Rp.
15 juta). Konsumen dapat memesan beberapa opsi lainnya: kartu video (Rp. 2
juta), modem internal plus Wi-Fi (Rp. 300 ribu), atau memori 1GB (Rp. 1,2
juta). Program menghitung biaya dari komputer yang diseleksi.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace PembelianKomputer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void
tombolHitung_Click(object sender, EventArgs e)
{
if ((radDeluxe.Checked) || (radSuper.Checked))
{
Double biaya = 0;
//menambah jumlah uang berdasarkan
seleksi.
if (radDeluxe.Checked)
biaya +=
10000000;
else //model super
biaya +=
15000000;
if (checkVideo.Checked)
biaya += 2000000;
if (checkModem.Checked)
biaya += 300000;
if (checkMemori.Checked)
biaya +=
1200000;
teksBiayaTotal.Text
= "Rp. " + biaya.ToString("N");
}
}
}
}
Contoh 17:
Statemen if-else Untuk Menghitung Biaya Keanggotaan Klub
Biaya
bulanan bagi keanggotaan klub olahraga dan kesehatan adalah Rp. 100 ribu untuk dewasa
dan Rp. 75 ribu untuk orang tua. Adapula biaya ekstra untuk tiap bulannya
sebesar Rp. 25 ribu. Program berikut menghitung biaya keanggotaan bulanan.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace KeanggotaanKlub
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void
tombolHitung_Click(object sender, EventArgs e)
{
Double biaya = 0;
if ((radDewasa.Checked) || (radSenior.Checked))
{
int jumEkstra = 0;
if (checkTennis.Checked)
jumEkstra += 1;
if (checkLocker.Checked)
jumEkstra += 1;
if (checkLaundry.Checked)
jumEkstra += 1;
if (radDewasa.Checked)
biaya = 100000 +
(jumEkstra * 25000);
else
biaya = 75000 +
(jumEkstra * 25000);
}
teksBiaya.Text =
"Rp. " + biaya.ToString("N");
}
}
}
Contoh 18:
Statemen if-else Untuk Menghitung Usia Di Planet Tertentu
Tabel
berikut menunjukkan jumlah hari Bumi tiap tahunnya dari keempat planet pada sistem
tatasurya, dan jumlah tahun Bumi tiap tahunnya dari empat planet terakhir.
Sebagai contoh, tabel tersebut menunjukkan bahwa satu tahun pada Mercury adalah
88 hari Bumi. Program berikut meminta Anda untuk memilih nama sebuah planet dan
tanggal kelahiran Anda, dan kemudian memberikan tanggal dan usia Anda pada
planet terseleksi.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DemoUsiaPadaPlanet
{
public
partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
private
void tombolHitung_Click(object
sender, EventArgs e)
{
Double usiaPdPlanet = 0, usiaHariBumi, usiaTahunBumi;
DateTime dt;
dt =
DateTime.Parse(maskedUltah.Text);
String nom = "";
bool tdkRespon = false;
teksToday.Text =
DateTime.Today.ToString();
usiaHariBumi =
(DateTime.Today.Subtract(dt)).Days;
usiaTahunBumi = usiaHariBumi /
365.26;
if (radMerkurius.Checked) {
usiaPdPlanet = usiaHariBumi /
88;
nom = " Mercurian ";
}
else if
(radVenus.Checked){
usiaPdPlanet = usiaHariBumi /
224.7;
nom = " Venusian ";
}
else if
(radBumi.Checked){
usiaPdPlanet = usiaTahunBumi;
nom = " Bumi ";
}
else if
(radMars.Checked) {
usiaPdPlanet = usiaHariBumi /
687;
nom = " Martian ";
}
else if
(radJupiter.Checked) {
usiaPdPlanet = usiaTahunBumi /
11.86;
nom = " Jovian ";
}
else if
(radSaturnus.Checked) {
usiaPdPlanet = usiaTahunBumi /
29.46;
nom = " Saturian ";
}
else if
(radUranus.Checked) {
usiaPdPlanet = usiaTahunBumi /
84.07;
nom = " Uranian ";
}
else if
(radNeptunus.Checked) {
usiaPdPlanet = usiaTahunBumi /
164.8;
nom = " Neptunian ";
}
else {
tdkRespon = true;
}
if (tdkRespon)
MessageBox.Show("Anda
harus memilih satu planet.");
else
teksUsiaHari.Text =
usiaPdPlanet.ToString("N1") +
" tahun " + nom +
".";
}
}
}
Contoh 19:
Statemen if Dengan Event TextChanged
Program berikut
mendemonstrasikan event TextChanged
pada sebuah kendali TextBox. Ketika
apa yang dituliskan pada kotak teks tersebut tidak berupa dijit numerik, maka
kotak dialog MessageBox akan
ditampilkan.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace EventTextChanged
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public bool
ApaNumerik(string masukan)
{
int uji;
return int.TryParse(masukan, out uji);
}
private void
teksNilai_TextChanged(object sender, EventArgs e)
{
if (ApaNumerik(teksNilai.Text) == false)
MessageBox.Show("Silahkan Masukkan Angka...");
}
}
}
Contoh 20:
Kalkulator Sederhana
Program berikut
menampilkan hasil beberapa operasi numerik atas dua angka. Empat tombol
diberikan untuk merepresentasikan empat operasi numerik (perkalian, pembagian,
pengurangan, dan penjumlahan). Keluaran yang dihasilkan dari tiap operasi
kemudian ditampilkan pada sebuah kotak list.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace KalkulatorSederhana
{
public
partial class Form1 : Form
{
Double
angka1;
Double
angka2;
Double
angkaJawaban;
public
Form1()
{
InitializeComponent();
}
private
void tombolKali_Click(object sender,
EventArgs e)
{
angka1 = Double.Parse(teksAngka1.Text);
angka2 = Double.Parse(teksAngka2.Text);
angkaJawaban = angka1 * angka2;
teksJawaban.Text =
angkaJawaban.ToString();
listJawaban.Items.Add(angka1 +
" x " + angka2 + " = " + angkaJawaban);
}
private
void tombolBagi_Click(object sender,
EventArgs e)
{
angka1 = Double.Parse(teksAngka1.Text);
angka2 = Double.Parse(teksAngka2.Text);
angkaJawaban = angka1 / angka2;
teksJawaban.Text =
angkaJawaban.ToString();
listJawaban.Items.Add(angka1 +
" / " + angka2 + " = " + angkaJawaban);
}
private
void tombolKurang_Click(object
sender, EventArgs e)
{
angka1 = Double.Parse(teksAngka1.Text);
angka2 = Double.Parse(teksAngka2.Text);
angkaJawaban = angka1 - angka2;
teksJawaban.Text =
angkaJawaban.ToString();
listJawaban.Items.Add(angka1 + " - "
+ angka2 + " = " + angkaJawaban);
}
private
void tombolTambah_Click(object
sender, EventArgs e)
{
angka1 = Double.Parse(teksAngka1.Text);
angka2 = Double.Parse(teksAngka2.Text);
angkaJawaban = angka1 + angka2;
teksJawaban.Text =
angkaJawaban.ToString();
listJawaban.Items.Add(angka1 +
" + " + angka2 + " = " + angkaJawaban);
}
}
}
No comments:
Post a Comment