• Tidak ada hasil yang ditemukan

Pernyataan if-else if-else

Dalam dokumen LAPORAN PRAKTIKUM (Halaman 28-47)

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 dalam

iif 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  pernyataan

if 

 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 :

Dalam dokumen LAPORAN PRAKTIKUM (Halaman 28-47)

Dokumen terkait