If-Else

Statement 'if'

Jika di bahasa Indonesia, ‘if’ berarti ‘jika’, ‘statement’ berarti ‘pernyataan’, mulai dari sekarang cobalah membaca kode kalian, karena sebenarnya bahasa pemrograman sangat mudah dipahami jika mengerti bahasa inggris.

Sekarang coba bayangkan suatu skenario jika kalian menjadi guru, dan ingin menilai tugas siswa dengan nilai huruf A, B, C, D, F berdasarkan nilai angka mereka, di mana A mempresentasikan kompetensi ter tinggi dan F paling rendah, B, C, dan D merepresentasikan di tengah-tengahnya.

Prosesnya cukup sederhana, gurunya hanya perlu melihat nilai, misal jika nilainya 90 ke atas, maka siswa mendapat nilai A. Jika 80 ke atas, mereka mendapat B, dan seterusnya. Jadi untuk menentukan nilai huruf apa yang siswa dapatkan, kalian harus membuat suatu keputusan, berdasarkan dari suatu kondisi. Kita memutuskan sesuatu dengan kondisi, yang berarti suatu keputusan hanya terjadi pada satu waktu. Kita hanya memberi beberapa siswa dengan A, yang lain B, dan seterusnya.

Mari coba memulai membuat program yang dapat menentukan nilai huruf siswa, berdasarkan nilai angka.

Di C#, pengambilan keputusan akan selalu di awali dengan if statement. Sebuah if statement sederhana dapat mengecek apakah dua hal itu setara, seperti kode berikut:

if (nilai == 100)
{
    // Kode di dalam kurung kurawal hanya akan dijalankan ketika kondisi di dalam kurung di atas terpenuhi
    Console.WriteLine("Nilai Sempurna!");
}

Ada beberapa bagian pada pernyataan if dasar, yaitu kita mulai dari kata if. Lalu di dalam kurung, kita masukkan kondisi yang ingin kita cek.

Ada banyak sekali cara untuk menuliskan kondisi, tapi untuk sekarang kita hanya memakai operator == (“sama dengan” 2x). Operator == disebut sebagai operator kesetaraan. Operator ini akan bernilai true jika kedua hal di sisi kiri dan kanannya setara satu sama lain.

Lalu kita menuliskan kurung kurawal (‘{‘ dan ‘}’) dan menuliskan di dalamnya sebuah blok kode yang hanya kan di jalankan jika kondisinya bernilai true, yaitu jika nilai siswa adalah 100 pada kasus ini.

Jadi pada program yang lengkap, kodenya mungkin akan seperti ini

Program.cs
using System;
namespace Variables
{
    class Program
    {
        static void Main(string[] args)
        {
            // Di luar sini, sebelum if, kodenya akan selalu dijalankan
            int nilai;

            Console.WriteLine("Masukkan nilai mu:");
            string nilaiSebagaiTeks = Console.ReadLine();
            nilai = Convert.ToInt32(nilaiSebagaiTeks);

            if (nilai == 100)
            {
                // Kode di dalam kurung kurawal hanya akan dijalankan ketika kondisi di dalam kurung di atas terpenuhi
                Console.WriteLine("Nilai Sempurna!");
            }

            // Kode setelah if juga akan selalu dijalankan
            Console.ReadKey();
        }
    }
}

Latihan. Menggunakan kode di atas, serta pengetahuan tentang if statement, cobalah modifikasi kode di atas untuk menampilkan nilai huruf siswa dengan kriteria sebagai berikut:

100 → A

80 → B

60 → C

40 → D

Selain nilai-nilai itu, tidak usah ditampilkan pesan apa pun dulu, kita akan membahasnya di materi berikutnya. Ini berarti kalian perlu membuat 4 blok if (termasuk yang sudah dituliskan di contoh). Semuanya dalam satu program yang sama

Statement 'else'

Statement else diletakkan setelah blok if berakhir, jika kondisi pada if tidak terpenuhi maka blok else akan dijalankan. Contohnya dari potongan kode sebelumnya, jika nilai mendapat 100 maka menampilkan “nilai sempurna” tetapi jika tidak maka akan menampilkan "nilai tidak sempurna":

if (nilai == 100)
{
    // Kode di dalam kurung kurawal hanya akan dijalankan ketika kondisi di dalam kurung di atas terpenuhi
    Console.WriteLine("Nilai Sempurna!");
}
else
{
    // Kode disini dijalankan ketika kondisi tidak terpenuhi
    Console.WriteLine("Nilai Tidak Sempurna");
}

Yang perlu diingat adalah, hanya salah satu dari dua blok kode tersebut yang akan dijalankan, tetapi tidak keduanya secara bersamaan.

Statement 'else if'

Jika kalian membuat dua blok ‘if’ maka ada kemungkinan keduanya masih dapat dijalankan jika kondisinya keduanya terpenuhi, tetapi jika menggunakan else if kode hanya akan dijalankan ketika kondisi pada if utama tidak terpenuhi dan pada else if kondisinya terpenuhi, misal:

if (nilai == 100)
{
    Console.WriteLine("Nilai Sempurna!");
}
else if (nilai == 99)
{
    Console.WriteLine("Kurang sedikit, bro!");
}
else if (nilai == 0)
{
    Console.WriteLine("WOW");
}
else
{
    Console.WriteLine("Nilai Tidak Sempurna");
}

Pada kode tersebut, hanya salah satu blok yang akan dijalankan, tergantung nilainya.

Walaupun selama ini kita hanya menuliskan satu statement (statement yang dimaksud adalah perintah Console.WriteLine) di dalam blok, ini bukanlah kewajiban, kalian bisa mengisinya sebanyak yang kalian mau.

Kurung Kurawal Tidak Selalu Dibutuhkan

Selama ini, contohnya selalu menggunakan kurung kurawal, tetapi sebenarnya, jika dalam blok isinya hanya satu statement, kalian bisa juga menghilangkan kurung kurawalnya.

if (nilai == 100)
    Console.WriteLine("Nilai Sempurna!");
else if (nilai == 99)
    Console.WriteLine("Kurang sedikit, bro!");
else if (nilai == 0)
    Console.WriteLine("WOW");
else
    Console.WriteLine("Nilai Tidak Sempurna");

Tetapi perlu diingat ini hanya akan bekerja jika isinya Cuma satu statement, jika isinya ditambah statement lagi, akan eror. Kecuali jika di akhir blok if-else seperti ini:

if (nilai == 100)
    Console.WriteLine("Nilai Sempurna!");
    Console.WriteLine("Keren!"); // Kode ini akan selalu dijalankan

Di kode tersebut tidak ada eror, tetapi pada baris terakhir pada kode tersebut, baris tersebut akan selalu dijalankan, karena itu dianggap di luar dari blok if. Jadi meskipun itu terlihat seperti bagian dari if, sebenarnya bukan, hanya baris di tengah saja yang bagian dari if, ini karena if tanpa kurung kurawal hanya bisa mengeksekusi satu statement, jika kalian ingin memasukkannya pada blok if, kalian harus menggunakan kurung kurawal dan memasukkan keduanya.

Statement 'if' bersarang

Kalian dapat menulis if statement (dan juga if-else statement) di dalam if statement lainnya. Ini biasanya disebut if statement yang bersarang atau jika di bahasa inggris, nested if statement.

Contohnya:

if (perisai <= 0)
{
    if (armor <= 0)
        Console.WriteLine("Perisai dan armor mu 0! Kau mati!");
    else
        Console.WriteLine("Perisaimu hancur, tetapi armor mu masih ada");
}
else
{
    Console.WriteLine("Perisamu masih ada. Aman bos.");
}

Dan kalian masih bisa memasukkan if lagi di dalam if seterusnya, tidak ada batasnya. Tetapi walaupun itu bisa dilakukan, bukan berarti itu ide yang bagus. Terlalu banyak melakukan hal ini juga membuat kode lebih susah dibaca. Gunakan jika memang perlu saja, tetapi jangan terlalu berlebihan.

Last updated