Pengambilan Keputusan (Decision) Pemrograman Bahasa C (Bagian 2)


Artikel ini adalah lanjutan dari artikel Pengambilan Keputusan (Decision) Pemrograman Bahasa C (Bagian 1).

Pernyataan If Dalam If

Di dalam suatu pernyataan if (atau if-else) bisa saja terdapat pernyataan if (atau if-else) yang lain. Bentuk seperti ini dinamakan sebagai nested if (if yang bersarang dalam if yang lain). Secara umum, bentuk dari pernyataan ini adalah sebagai berikut :
Nested If (if didalam if)

Kondisi yang akan diseleksi pertama kali adalah kondisi yang terluar (kondisi-1). Jika kondisi-1 bernilai salah, maka statemen else yang terluar (pasangan if yang bersangkutan) yang akan diproses. Jika else (pasangannya tsb) tidak ditulis, maka penyeleksian kondisi akan dihentikan.

Jika kondisi-1 bernilai benar, maka kondisi berikutnya yang lebih dalam (kondisi-2) akan diseleksi. Jika kondisi-2 bernilai salah, maka statemen else pasangan dari if yang bersangkutan yang akan diproses. Jika else (untuk kondisi-2) tidak ditulis, maka penyeleksian kondisi akan dihentikan.

Dengan cara yang sama, penyeleksian kondisi akan dilakukan sampai dengan kondisi-n, jika kondisi-kondisi sebelumnya bernilai benar.

Contoh Program :
#include <stdio.h>
main(){
    
    //inisialisasi variabel
    int bil;

    //fungsi input output
    printf("Masukkan bilangan = ");
    scanf("%d", &bil);
    
    //pernyataan nested if
    if(bil%2==1){
        printf("bilangan ganjil\n");
 if(bil==3 || bil==5 || bil==7){
         printf("tetapi bilangan salah");
 }
 else{
            printf("dan bilangan benar");
 }
    }
    else{
 printf("bilangan genap");
    }

}
Output :

Program ini adalah program menentukan bilangan ganjil kecuali bilangan 3, 5 dan 7. Program akan mengecek apakah bilangan yang diinputkan user adalah bilangan ganjil atau tidak. Jika bilangan ganjil, program akan mengecek lagi apakah bilangan yang diinputkan user adalah bilangan 3, 5 atau 7. Jika kondisi terpenuhi, maka pernyataan akan dieksekusi. Jika tidak, maka else (pasangan if kedua) akan dieksekusi.


Pernyataan Else-If

Pernyataan yang digunakan untuk mengimplementasikan kasus yang memiliki banyak alternatif atau pilihan.

     if(kondisi_1)
          pernyataan_1;
     else if(kondisi_2)
          pernyataan_2);
     else if(kondisi_3)
          pernyataan_3);
     -
     -
     else
          pernyataan_n;
     
Contoh implementasi ini misalnya pembuatan sebuah program kalkulator sederhana.
#include <stdio.h>
main(){
    
    //inisialisasi variabel
    float bil1, bil2, hasil;
    int pilihan;
    
    //fungsi input output
    printf("masukkan bilangan pertama : ");
    scanf("%f", &bil1);
    printf("masukkan bilangan kedua : ");
    scanf("%f", &bil2);
    printf(",---------------- Menu Matematika --------------,\n");
    printf("| 1. Penjumlahan                                |\n");
    printf("| 2. Pengurangan                                |\n");
    printf("| 3. Perkalian                                  |\n");
    printf("| 4. Pembagian                                  |\n");
    printf("'-----------------------------------------------'\n");
    printf("Masukkan nomer pilihan anda : ");
    scanf("%d", &pilihan);
    
    //pernyataan else if
    if(pilihan==1){
 hasil=bil1+bil2;
 printf("Hasil operasi tersebut = %.1f", hasil);
    }
    else if(pilihan==2){
 hasil=bil1-bil2;
 printf("Hasil operasi tersebut = %.1f", hasil);
    }
    else if(pilihan==3){
 hasil=bil1*bil2;
 printf("Hasil operasi tersebut = %.1f", hasil);
    }
    else if(pilihan==4){
 hasil=bil1/bil2;
 printf("Hasil operasi tersebut = %.1f", hasil);
    }
    else{
 printf("nomor yang anda masukkan tidak ada");
    }

}
Output :

  • Jika user memilih pilihan 1, maka kedua bilangan tersebut akan dijumlah.
  • Jika user memilih pilihan 2, maka kedua bilangan tersebut akan dikurangi.
  • Jika user memilih pilihan 3, maka kedua bilangan tersebut akan dikali.
  • Jika user memilih pilihan 4, maka kedua bilangan tersebut akan dibagi.
  • Jika user memilih selain pilihan diatas, maka kedua bilangan tersebut tidak akan diproses, dan user akan mendapatkan pesan berupa : “nomor yang anda masukkan tidak ada”.

Pernyataan Switch

Pernyataan switch merupakan pernyataan yang dirancang khusus untuk menangani pengambilan keputusan yang melibatkan sejumlah alternatif, misalnya untuk menggantikan pernyataan if bertingkat.

Bentuk umum pernyataan switch adalah :
Bentuk Umum Pernyataan Switch

dengan ekspresi dapat berupa ekspresi bertipe integer atau bertipe karakter. Demikian juga konstanta-1, konstanta-2, …, konstanta-n dapat berupa konstanta integer atau karakter. Setiap pernyataan-i (pernyataan-1, … , pernyataan-n) dapat berupa pernyataan tunggal ataupun pernyataan jamak. Dalam hal ini urutan penulisan pernyataan case tidak berpengaruh. Proses penyeleksian berlangsung sebagai berikut :
  • pengujian pada switch akan dimulai dari konstanta-1. Kalau nilai konstanta-1 cocok dengan ekspresi maka pernyataan-1 dijalankan. Kata kunci break harus disertakan di bagian akhir setiap pernyataan case, yang akan mengarahkan eksekusi ke akhir switch.
  • Kalau ternyata pernyataan-1 tidak sama dengan nilai ekspresi, pengujian dilanjutkan pada konstanta-2, dan berikutnya serupa dengan pengujian pada konstanta-1.
  • Jika sampai pada pengujian case yang terakhir ternyata tidak ada kecocokan, maka pernyataan yang mengikuti kata kunci default yang akan dieksekusi. Kata kunci default ini bersifat opsional.

Aturan aturan pada pernyataan switch
  • Ekspresi pada switch (serta value pada case) harus berupa nilai integer atau karakter àtidak boleh float dan tidak boleh range (seperti pada kasus konversi nilai angka ke nilai huruf).
  • Urutan dari pernyataan case tidak penting.
  • Klausa default boleh diletakkan di awal (secara konvensi diletakkan terakhir).
  • Keyword break harus disertakan pada akhir dari setiap pernyataan case, digunakan untuk melompat ke akhir dari blok switch.
  • Klausa default bersifat optional àakan dieksekusi hanya jika tidak ada satupun nilai case yang cocok.

Contoh Program :
Contoh implementasi ini misalnya pembuatan sebuah program kalkulator sederhana seperti pada pernyataan else if diatas.
#include <stdio.h>
main(){
    
    //inisialisasi variabel
    int valid_operator = 1;
    char oper;
    float number1, number2, result;

    //input output
    printf("Masukkan 2 buah bilangan & sebuah operator\n");
    printf("dengan format : number1 operator number2\n\n");
    scanf("%f %c %f", &number1, &oper, &number2);

    //pernyataan switch
    switch(oper){
        case '*':
     result = number1 * number2;
     printf("\n%g %c %g is %g\n", number1, oper, number2, result );
     break;
 case '/':
     if(number2==0){
   printf("tidak bisa dibagi dengan nol");
         }
     else{
         result = number1 / number2;
         printf("\n%g %c %g is %g\n", number1, oper, number2, result );
     }
     break;
 case '+':
     result = number1 + number2;
     printf("\n%g %c %g is %g\n", number1, oper, number2, result );
     break;
 case '-':
     result = number1 - number2;
     printf("\n%g %c %g is %g\n", number1, oper, number2, result );
     break;
 default:
     printf("Invalid operator!\n");
 }

}
Output :


User memberikan masukan dengan format :

     number1 operator number2

Jenis operasi yang dikenakan bergantung pada jenis operator ang dimasukkan oleh user. Oleh karena itu program akan mengecek apakah operator berupa tanda ‘*’, ‘/’, ‘+’, ataukah tanda ‘-‘.
  • Jika operator berupa tanda ‘*’ maka number1 akan dikalikan dengan number2.
  • Jika operator berupa tanda ‘/’ maka number1 akan dibagi dengan number2.
  • Jika operator berupa tanda ‘+’ maka number1 akan dijumlahkan dengan number2.
  • Jika operator berupa tanda ‘-’ maka number1 akan dikurangi dengan number2.
  • Kalau operator yang dimasukkan bukan merupakan salah satu dari jenis operator di atas, maka ekspresi tersebut tidak akan diproses, dan user akan mendapatkan pesan berupa : “Invalid operator !”





Demikian artikel tentang Pengambilan Keputusan (Decision) Pemrograman Bahasa C (Bagian 2). Jika ada yang masih kurang mengerti, silahkan tanya di kolom komentar. Semoga bermanfaat :)

"Setiap teknologi memiliki resiko yang dapat menghancurkan kehidupan. Tapi kita juga memerlukan teknologi tersebut untuk membangun kehidupan yang lebih baik."

Related Posts

Previous
Next Post »
Load comments

Ketentuan Komentar !!!
------------------------------
1. Komentar sesuai dengan artikel di atas
2. Komentar SPAM otomatis di blokir dan tidak akan dimunculkan
3. Komentar meninggalkan link aktif otomatis terhapus
4. Berkomentar dengan etika

Terima kasih atas komentarnya, semoga postingan di atas bermanfaat :)