Penyeleksian IF ELSE , Switch, dan Fungsi


 

If, Else If, dan Else

Dalam bab – bab sebelumnya, secara sekilas kita sudah melihat cara penerapan if dan else dalam kode – kode yang kita gunakan. Di sini kita kan mencoba membahasnya lebih lanjut.


 

If

Seperti namanya, if berarti jika, yang berarti "jika kondisi ini terbukti maka… (akan dilakukan sesuatu dalam kondisi seperti ini)". Dan biasanya if
"berpasangan" dengan else. Jadi, dapat dikatakan bahwa secara keseluruhan apa yang dimengerti oleh komputer adalah: "jika kondisi A terjadi, maka saya akan melakukan tindakan A, selain itu maka saya akan melakukan tindakan B".


 

Else

Else adalah kondisi selain / diluar kondisi pertama (if). Salah satu perumpamaan dari "kasus" ini adalah: "jika dia bukan laki – laki, maka dia adalah perempuan". Cukup simple, kan? OK, klo begitu kita langsung saja ke contohnya:


 


 


 

#include <ostream>

using namespace std;


 

void main () {

    char gender;

    cout << "masukkan gender anda (L/P): "

    cin >> gender;


 

    if (gender == 'L')

        cout << "anda adalah laki – laki!\n";

    else

        cout << "anda adalah wanita alias perempuan :D\n";

}


 

else if

else if sebenarnya adalah kondisi kedua yang diperkirakan akan terjadi sedangkan else sebenarnya adalahkondsi terakhir yang diperkirakan akan terjadi. Mengapa saya mengatakan demikan? Coba anda lihat kembali kode di atas. Jika anda perhatikan sebenarnya else adalah untuk semua kondisi selain kondisi pertama. Artinya, jika anda memasukkan huruf selain "L" juga akan diangap gender anda adalah perempuan. Karena yang terbaca oleh komputer adalah "jika variabel gender "isinya" huruf L, maka dia adalah laki – laki, selain itu dia adalah perempuan". Jadi, jika anda memasukkan huruf M atau H sekalipun, anda akan tetap dianggap sebagi perempuan. Penempatan else if adalah selalu di bawah if (mengingat bahwa bagaimana bisa ada else if yaitu kondisi selain if jika if-nya sendiri belum ada?). Berikut adalah kode lengkapdari penggunaan if, else if dan else:


 


 

#include <iostream>

#include <string>

using namespace std;


 

void main () {

    int pilihan;

    string nama;

    cout << "masukkan nama anda: ";

    cin >> nama;

    cout << "selamat datang di restoran kami, " << nama << "\n";

    cout << "silahkan masukkan pilihanmu, " << nama << ":\n";

    cout << "1. ayam goreng campur oli mesin\n";

    cout << "2. ikan hiu bakar plus bongkahan kapal Titanic\n";

    cout << "3. kodok hamil campur toge\n";

    cout << "silahan memilih";

    cin >> pilihan;


 

    if (pilihan == 1)

        cout << "selamat, anda memilih plihan nomor satu\n";

    else if (pilhan == 2)

        cout << "wah, selera anda cukup unik ya...?\n";

    else if (pilihan == 3)

        cout << "wah, memang menu ini lagi top di sini\n";

    else {

        cout << wah, sepertinya anda kurang bisa membaca ya?\n"

         << "dari planet mana, mas / mba?\n";

    }

}


 

    


 

switch

Dalam pemakaian if, sering kali kita harus berkali – kali menuliskan kondsi tertentu ssepert dalam dalam kondisi di atas, dimana kita harus menuliskan beberapa kondisi dengan kode yang agak panjang. Dengan memakai contoh program di atas, kita bisa membuat hasil yang sama dengan kode yang lebih singkat.Kali ini saya akan langsung menunjukkan contoh penggunaan switch.


 

#include <iostream>

using namespace std;


 

void main () {

    int pilihan;

    //dan lain sebagainya d sini...


 

    cout << "masukkan pilihan anda: ";

    cin >> pilihan;


 

    switch (pilihan) {

    case 1: {

cout << "anda memilih pilihan nomor satu!\n";

break;

    }


 

    Case 2: {

        cout << "anda memilh pilihan nomor dua!\n";

        break;

    }


 

    Case 3: {

        cout << "anda memilih pilihan nomor tiga!\n";

        break;

    }

        default:

            cout << "anda memasukkan piihan yang salah, bro!\n";

}

}

Ada yang terasa aneh atau janggal dikode tersebut? Mengapa saya memakai break
? Ini karena disebabkan oleh switch akan mengeksekusi stateent di bawahnya jika tidak dikeluarkan oleh break. Jadi, jika tida dikeluarkan oleh break, yang akan terjadi adalah:


 

Ini akan terjadi jika kita memasukan angka 1 (satu).


 


 


 


 


 

Dan ini untuk memasukkan angka 2 (dua):


 

Dan seterusnya.


 

Mengapa? Ini terjadi karena ketika switch selesai mengeskusi case 1, misalnya, tanpa break, maka switch akan terus mengeksekusi statement yang berada di bawahnya sampai selesai. Makanya, break berfungsi untuk keluar dari switch begitu statement pada satu cae selesai di eksekusi (tanpa melanjutkan ke statement berikutnya / yang berada di bawahnya). Namun demikian, "sifat" dari switch ini bisa dimanfaatkan untuk kondisi – kondis tertentu, misalnya membuat program untuk menghitung anda berada di kuartal ke berapa dari satu tahun:


 

Kodenya adalah sebagai berikut:

#include <iostream>

using namespace std;


 

void main () {

    int bulan;

    cout << "bulan sekarang: ";

    cin >> bulan;


 

    switch (bulan) {

        case 1:

        case 2:

        case 3: cout << "anda berada di kuartal pertama!\n"; break;

        case 4:

        case 5:

        case 6: cout << "anda berada di kuartal kedua!\n"; break;

        case 7:

        case 8:

        case 9: cout << "anda berada di kuartal ketiga!\n"; break;

        case 10:

        case 11:

        case 12: cout << "anda berada di kuartal keempat!\n";

break;

        default: cout << "bulannya salah!\n";

    }

}


 

Fungsi

Penggunaan fungsi adalah untuk mempersingkat proses pengkodean, dalam arti ketika menghadapi masalah yang memiliki penyelesaian yang sama. Misalnya saja, ketika harus melakukan proses kalkulasi tertentu terhadap sejumlah angka secara berulang - ulang, dll.

Penulisan fungsi adalah di mulai dari tipe data kembaliannya (return), lalu nama fungsi tersebut kemudian parameter dan kerja dari fungsi tersebut.

<tipe_data> <nama_fungsi> (<tipe_data_dari_parameter paramater>) {


 

    //kerja dari fungsi di taruh di sini...


 

return <variabel_kembalian>

//optional

}


 

Tipe data kembalian bisa tidak dispesifikasikan jika memang tidak ada kembalian dari fungsi kita. Jadi, untuk fungsi yang tidak mempunyai kembalian maka sebenarnya ada tipe khusus untuk fungsi ini yaitu void / kosong.


 

Contoh fungsi yang tidak mempunyai tipe kembalian adalah:


 

void fungsiku_yang_void (int n) {

    int n2 = n * n;

    cout << "n setelah di pangkat dua adalah " << n2 << "\n";

}

Fungsi juga bisa mempunyai parameter yang kosong (tanpa parameter). Artinya, tanpa adanya sebuah variabel pun, kita dapat memanggil fungsi ini. Dan sekali lagi, contoh untuk fungsi seperti ini adalah:

int fungsiku_tanpa_parameter () {

    cout << "hi\n";

}

Contoh lain dari fungsi adalah seperti yang bisa kita lihat dari kode di bawah:

#include <iostream>

using namespace std;


 

int fungsiku (int angka) {

    return (angka * 2);

}


 

void main () {

    int angka1, angka2, angka3;

    cout << "masukkan tiga angka yang anda ingin kalikan dengan 2: ";

    cin >> angka1 >> angka2 >> angka3;

    cout << "angka anda setelah di kalikan dengan 2 adalah: " <<

fungsiku (angka1) << " terus, " << fungsiku (angka2) <<

", dan " << fungsiku (angka3) << "\n";

}


 

Fungsi Rekursif

Sebuah fungsi dikatakan rekursif kalau fungsii itu memanggil dirinya sendiri. Misalnya saja fungsi A setelah melakukan kerjanya, memanggil ulang dirinya sendiri sampai pada batas tertentu yang telah ditetapkan. Misalnya saja, mengurangi sebuah angka sampai tersisa hanya setengah dari nilainya saja. Contohnya adalah seperti kode berikut ini:


 

#include <iostream>

using namespace std;


 

void masukan_angkanya (int n, int m) {

    if (n == m)

        cout << "angkanya setelah diproses berkali-kali, adalah: " << n << "\n";

    else {

        n -= 1;

        masukan_angkanya (n, m);

    }

}

    

void main () {

    int masukan, masukan2;

    cout << "masukkan sebuah angka yang genap: \n";

    cin >> masukan;

    masukan2 = masukan / 2;

    masukan_angkanya (masukan, masukan2);

}


 


 


 

Referensi :

Wirman a.k.a Chipp.

Email: anthonio_wirman@yahoo.com

Blog: http://cyberianzone.blogspot.com

Comments