Pernyataan
if-elseif-else
Pernyataan
Pernyataan
if-elseif-else
memiliki bentuk : memiliki bentuk : if (kondisi) if (kondisi) pernyataan-1; pernyataan-1; else else pernyataan-2; pernyataan-2;Diagram alir dapat dilihat seperti gambar 3.2. Diagram alir dapat dilihat seperti gambar 3.2.
Arti dari pernyataan
Arti dari pernyataan if-elseif-else : :
Jika kondisi benar, makaJika kondisi benar, maka pernyataan-1pernyataan-1 dijalankan. dijalankan.
Sedangkan bila kondisi bernilai salah, makaSedangkan bila kondisi bernilai salah, maka pernyataaan-2pernyataaan-2 yang dijalankan. yang dijalankan. Masing-masing
Masing-masing pernyataan-1pernyataan-1 dan dan pernyataan-2pernyataan-2 dapat berupa sebuah pernyataan dapat berupa sebuah pernyataan tunggal, pernyataan majemuk ataupun pernyataan kosong.
tunggal, pernyataan majemuk ataupun pernyataan kosong. Contoh penggunaan pernyataan
Contoh penggunaan pernyataan if-elseif-else adalah untuk menyeleksi nilai suatu bilangan adalah untuk menyeleksi nilai suatu bilangan pembagi. Jika
pembagi. Jika nilai nilai bilangan pembagi bilangan pembagi adalah adalah nol, maka nol, maka hasil hasil pembagian dengan pembagian dengan nilai nilai nolnol akan mendapatkan hasil tak berhingga. Jika ditemui nilai pembaginya nol, maka proses akan mendapatkan hasil tak berhingga. Jika ditemui nilai pembaginya nol, maka proses pembagian tidak akan dilakukan
pembagian tidak akan dilakukan..
Pernyataan
Pernyataan
iif f
di dalam di dalamiif f
Di dalam suatu pernyataan
Di dalam suatu pernyataan if if (atau (atau if-elseif-else) bisa saja terdapat pernyataan) bisa saja terdapat pernyataan if if (atau (atau if-else)if-else) yang lain. Bentuk seperti ini dinamakan sebagai
yang lain. Bentuk seperti ini dinamakan sebagai nested if nested if . Secara umum, bentuk . Secara umum, bentuk daridari pernyataan ini adalah sebagai berikut :
if (kondisi-1) if (kondisi-2) . . if(kondisi-n) pernyataan; else pernyataan; . . else pernyataan; else pernyataan;
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.
Pernyataan else-
if
Contoh implementasi nested if ini misalnya pembuatan sebuah program kalkulator sederhana. User memberikan masukan dengan format :
operand1 operator operand2
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 operand1 akan dibagi dengan operand2.
Jika operator berupa tanda ‘+’ maka operand1 akan dijumlahkan dengan operand2. Jika operator berupa tanda ‘-’ maka operand1 akan dikurangi dengan operand2. 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 !”
Pernyataan
switch
Pernyataan
switch
merupakan pernyataan yang dirancang khusus untuk menangani pengambilan keputusan yang melibatkan sejumlah alternatif, misalnya untuk menggantikan pernyataanif
bertingkat.Bentuk umum pernyataan
switch
adalah :switch (ekspresi) { case konstanta-1: pernyataan-1; ... break; case konstanta-2: . . . case konstanta-n: pernyataan-n; ... break; default: ... ... break; }
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.
Tanda kurung kurawal tutup (}) menandakan akhir dari proses penyeleksian kondisi case.
C. HASIL PERCOBAAN
3.1 Penggunaan if-else bertingkat Listing programnya adalah : #include<stdio.h>
main() {
float a, t, L; int bil;
printf("1. Luas Segitiga\n");
printf("2. Luas Persegi Panjang atau Bujur Sangkar \n"); printf("Apa yang ingin anda cari : ");
scanf("%d", &bil); if(bil==1)
{
printf("Masukkan alas & tinggi : "); scanf("%f", &a); scanf("%f", &t); L=0.5*a*t;
printf("Luas Segitiga = %2.2f",L); }
else if (bil==2) {
printf("Masukkan panjang & lebar : "); scanf("%f", &a); scanf("%f", &t); L=a*t;
printf("Luas Persegi Panjang / Bujur Sangkar = %2.2f", L); }
else {
printf("Pilihan anda tidak sesuai"); }
return 0; }
Listing program dengan switch case: #include<stdio.h>
main() {
float a, t, L; int bil;
printf("1. Luas Segitiga\n");
printf("2. Luas Persegi Panjang atau Bujur Sangkar \n"); printf("Apa yang ingin anda cari : ");
scanf("%d", &bil); switch(bil)
{
case 1:
printf("Masukkan alas & tinggi : "); scanf("%f", &a); scanf("%f", &t); L=0.5*a*t;
printf("Luas Segitiga = %2.2f",L); break;
case 2:
printf("Masukkan panjang & lebar : "); scanf("%f", &a); scanf("%f", &t);
L=a*t;
printf("Luas Persegi Panjang / Bujur Sangkar = %2.2f", L); break;
}
return 0; }
Hasil programnya adalah : 1. if-else bertingkat
2. switch case
Kesimpulan :
switch case dengan if else bertingkat dapat membentuk sebuah program yang sama namun fungsi yang berbeda.
3.2 Penggunaan switch case Listing programnya adalah : #include<stdio.h>
main() {
char a;
printf("Masukkan nilai huruf = "); scanf("%c", &a);
{ case 'A': printf("Nilai angka = 4"); break; case 'B': printf("Nilai angka = 3"); break; case 'C': printf("Nilai angka = 2"); break; case 'D': printf("Nilai angka = 1"); break; case 'E': printf("Nilai angka = 0"); break; } return 0; }
Flowchart 3.2 :
Kesimpulan : switch case dapat diguakan membuat program dengan kondiisi yang cukup banyak dengan tampilan yang lebih sederhana.
3.3 Penggunaan nested if Listing programnya adalah : #include<stdio.h>
main() {
double a, b, c;
printf("Masukkan nilai huruf = "); scanf("%lf",&a); printf("Masukkan nilai huruf = "); scanf("%lf",&b); printf("Masukkan nilai huruf = "); scanf("%lf",&c); if(a<c) if(a<c) { printf("Terkecil %2.lf",a); } else { printf("Terkecil %2.lf",c); } else if(b<c) printf("Terkecil %2.lf",b); else printf("terkecil %2.lf",c); return 0; }
3.4 Percobaan 3.2 denngan if-else Listing programnya adalah :
#include<stdio.h> main() { char e; printf("Nilai Huruf : "); scanf("%c",&e); if(e=='A') printf("4"); else if (e=='B') printf("3"); else if (e=='C') printf("2"); else if (e=='D') printf("1"); else if (e=='E') printf("0"); else
printf("Pilihan Tidak Sesuai"); }
Flowchart 3.4 : Flowchart 3.4 :