Tuesday, December 13, 2016

Bab 2. Dasar Pemrograman Visual C#



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.

Gambar 2.1 Diagram alir dari struktur keputusan sederhana

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
}

Gambar 2.2 Diagram alir dari struktur keputusan tiga-keputusan


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.

Gambar 2.3 Diagram alir dari statemen 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