Seleksi dalam Bahasa C

Mahir Koding – Seleksi adalah sebuah tahap dimana program akan melakukan pengecekan kondisi. Seleksi bisa digunakan untuk menentukan bagian program/statement mana yang akan dijalankan jika kondisi tertentu terpenuhi. Di dalam bahasa C, kita dapat membuat seleksi dengan if else atau switch case.

IF

Pernyataan IF : “Jika kondisi bernilai benar, maka perintah akan dikerjakan dan jika tidak memenuhi syarat maka akan diabaikan.”

if(kondisi){
       //statement
}

IF Else

Pernyataan IF Else : “Jika kondisi bernilai benar, maka perintah-1 akan dikerjakan dan jika tidak memenuhi syarat maka akan mengerjakan perintah-2”

if(kondisi){
       //statement
}else{
      //statement
}

Switch Case

Switch – case merupakan jenis seleksi yang dirancangan khusus untuk menangani pengambilan keputusan yang melibatkan sejumlah atau banyak alternatif penyelesaian. Pernyataan switch – case ini memiliki kegunaan sama seperti if – else bertingkat, tetapi penggunaannya untuk memeriksa data yang bertipe karakter atau integer.

switch(kondisi){
case 1 : 
     //statement
     //statement
     break;
case 2 : 
     //statement
     //statement
     break;
case 3 : 
     //statement
     //statement
     break;
}

Contoh Program dengan If Else : 

#include <stdio.h>

int main(){
        char grade;
	printf("Masukkan grade anda (KAPITAL) [A/B/C/D] : "); scanf("%c", &grade); fflush(stdin);
	//if artinya jika
	//membandingkan grade apakah sama dengan A (hasil input)
	//jika iya maka lakukan statement di dalamnya.
	if(grade=='A'){
		printf("Very Good! Nilai anda A");
	}
	//jika bukan A maka di cek lagi apakah inputan user == B
	//jika iya maka lakukan statement di dalamnya.
	else if(grade=='B'){
		printf("Good! Nilai anda B");
	}
	//dan seterusnya..
	else if(grade=='C'){
		printf("Okay! Nilai anda C");
	}
	else if(grade=='D'){
		printf("Bad! Nilai anda D");
	}
	//else artinya sisanya.. maksudnya jika grade bukan A bukan B bukan C ataupun bukan D maka masuk dalam else
	else{
		printf("Kami tidak mengenali grade anda");
	}
	getchar();
        return 0;
}

Dengan Program yang sama, kita akan membuat versi switch casenya.

#include <stdio.h>

int main(){
        //switch case sama saja dengan if else hanya saja lebih cocok digunakan jika yang ingin di kondisi berupa integer atau char saja. contoh case ABCD atau case 12345
	char grade;
	printf("Masukkan grade anda (KAPITAL) [A/B/C/D] : "); scanf("%c", &grade); fflush(stdin);

	//switch grade artinya kita akan mengecek isi dari grade
	switch(grade){
		//case A maksudnya apakah si grade == A
		case 'A' : 
			printf("Very Good! Nilai anda A");
			break;
		//case B maksudnya apakah si grade == B
		case 'B' : 
			printf("Good! Nilai anda B");
			break;
		case 'C' : 
			printf("Okay! Nilai anda C");
			break;
		case 'D' : 
			printf("Very Good! Nilai anda A");
			break;
		default : 
			printf("Kami tidak mengenali grade anda");
			break;
	}
	getchar();
        return 0;
}

Nah, ada juga penggabungan dari beberapa if else yang sering juga disebut Nested IF. Nested IF tidak jauh berbeda dengan if else biasa, hanya saja di dalam kondisi akan ada kondisi lainnya. Di dalam IF akan ada IF Else lainnya. Berikut adalah contohnya :

#include <stdio.h>
#include <string.h>

int main(){
        //nested if adalah if di dalam if, if bercabang atau seleksi di dalam seleksi
	char nama[50];
	char jeniskelamin;
	int umur;
	//meminta inputan nama
	do{
		printf("Masukkan nama anda [3..50] : "); scanf("%[^\n]",&nama); fflush(stdin);
	}while(strlen(nama)<3 || strlen(nama)>50); //akan terus meminta inputan ketika panjang nama dibawah 3 karakter atau lebih dari 50 karakter

	//meminta inputan jenis kelamin
	do{
		printf("Masukkan jenis kelamin anda (KAPITAL) [L/P] : "); scanf("%c",&jeniskelamin); fflush(stdin); //L untuk laki laki dan P untuk perempuan
	}while(jeniskelamin!='L' && jeniskelamin!='P'); //akan terus meminta inputan jenis kelamin jika yang diinput bukan L dan P

	//meminta inputan umur
	do{
		printf("Masukkan umur anda [1..60] : "); scanf("%d",&umur); fflush(stdin);
	}while(umur<1 || umur>60); //akan terus meminta inputan umur jika umur yang diinput dibawah 1 tahun atau lebih dari 60 tahun

	//jika jenis kelaminnya laki laki maka :
	if(jeniskelamin=='L'){
		//jika umurnya dibawah atau sama dengan 30 
		//panggil dengan sebutan abang (laki-laki)
		if(umur<=30){
			printf("Halo abang %s!",nama);
		}
		//jika umurnya lebih dari 30 
		//panggil dengan sebutan bapak (laki-laki)
		else if(umur>30){
			printf("Halo bapak %s!",nama);
		}
	//jika jenis kelaminnya perempuan maka :
	}else if(jeniskelamin=='P'){
		//jika umurnya dibawah atau sama dengan 30 
		//panggil dengan sebutan kakak (perempuan)
		if(umur<=30){
			printf("Halo kakak %s!",nama);
		}
		//jika umurnya lebih dari 30 
		//panggil dengan sebutan ibu (perempuan)
		else if(umur>30){
			printf("Halo ibu %s!",nama);
		}
	}
	getchar();
        return 0;
}