Oleh : Sri Supatmi Penyeleksian kondisi digunakan untuk mengarahkan perjalanan suatu proses. Fungsi penyeleksian kondisi penting artinya dalam penyusunan bahasa C, terutama untuk program yang kompleks. Jenis seleksi kondisi yang terdapat dalam bahasa C dan C++ adalah: 1. IF … 2. IF … ELSE 3. SWITCH …CASE…DEFAULT Struktur if dibentuk dari pernyataan if dan sering digunakan untuk menyeleksi suatu kondisi tunggal. Bila proses yang diseleksi terpenuhi atau bernilai benar, maka pernyataan yang ada didalam blok if akan diproses dan dikerjakan. Bentuk umum struktur kondisi if adalah : If(kondisi) Pernyataan; INPUT KONDISI BENAR PERNYATAAN end #include<stdio.h> #include<conio.h> INPUT NILAI main() { float nilai; clrscr(); printf("masukkan nilai anda ="); Nilai>=60 scanf("%f",&nilai); if (nilai>=60) printf("ANDA LULUS...^_^"); BENAR return 0; } ANDA LULUS…^_^ Dalam struktur kondisi if.....else minimal terdapat dua pernyataan. Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah maka pernyataan yang kedua yang dilaksanakan. Bentuk umumnya adalah sebagai berikut : If(kondisi) Pernyataan-1; SALAH Pernyataan-2; PERNYATAAN-2 Else KONDISI BENAR PERNYATAAN-1 end #include<stdio.h> #include<conio.h> main() { float nilai; clrscr(); printf("masukkan nilai anda ="); scanf("%f",&nilai); if (nilai>=60) printf("ANDA LULUS...^_^"); else printf("ANDA TIDAK LULUS ...:("); return 0; } INPUT NILAI SALAH ANDA TIDAK LULUS… Nilai>=60 BENAR ANDA LULUS…^_^ Struktur kondisi switch....case....default digunakan untuk penyeleksian kondisi dengan kemungkinan yang terjadi cukup banyak. Bentuk umum dari struktur kondisi ini adalah : switch(kondisi) { } case 1 : pernyataan-1; F 1? break; case 2 : pernyataan-2; break; T F ..... 2? Pernyataan-1 ..... case n : pernyataan-n; break; T F n? default : pernyataan-m Pernyataan-2 T Pernyataan-n end Pernyataan-m 1. Case :digunakan sebagai label yang menandai awal eksekusi deret instruksinya hingga ditemukan pernyataan break. 2. Default : label yang digunakan atau dieksekusi apabila label case tidak ada yang memenuhi. 3. Break : Perintah pengontrol alur program, berfungsi utnuk keluar dari satu blok kondisi ataupun iterasi. 4. Dalam menggunakan struktur control switch perlu diperhatikan hal – hal sbb: a. Nilai untuk setiap label case adalah berupa konstanta yang kompetible integer (char, enum, dan varian int). b. Per keyword case hanya mempunyai satu nilai konstan. #include<stdio.h> #include<conio.h> main() { clrscr(); int hari; puts("Menentukan nama hari\n"); puts("1 = Senin 2 = Selasa 3 = Rabu 4 = Kamis"); puts("5 = Jum’at 6 = Sabtu 7 = Minggu"); printf("\nMasukan kode hari( 1-7) : "); scanf("%d", &hari); switch(hari) { case 1 : puts("Hari Senin"); /* kemungkinan pertama */ break; case 2 : puts("Hari Selasa"); /* kemungkinan kedua */ break; case 3 : puts("Hari Rabu"); /* kemungkinan ketiga */ break; case 4 : puts("Hari Kamis"); /* kemungkinan keempat */ break; case 5 : puts("Hari Jum’at"); /* kemungkinan kelima */ break; case 6 : puts("Hari Sabtu"); /* kemungkinan keenam */ break; case 7 : puts("Hari Minggu"); /* kemungkinan ketujuh */ break; default : puts("Kode hari yang Anda masukan SALAH"); } getch(); return 0; } #include<stdio.h> #include<conio.h> main() { float nilai ; clrscr(); printf(”Program Mulai \n”); printf(”masukan nilai anda : “); scanf(”%f”,&nilai); if (nilai <= 45) printf(”nilai anda kurang sekali “); else if ((nilai > 45) && (nilai < = 60)) printf(”nilai anda kurang “); else if ((nilai > 60) && (nilai < = 75)) printf(”nilai anda cukup“); else if ((nilai > 75) && (nilai < = 85)) printf(”nilai anda baik “); else if ((nilai > 85) && (nilai < = 100)) printf(”nilai anda baik sekali “); else printf(”Range 0 - 100 \n“); printf(”Program Selesai”); } #include<stdio.h> #include<conio.h> #include<ctype.h> main() { char huruf; clrscr(); printf(”program mulai \n”); printf("Masukan Huruf Mutu : "); scanf(“%c”, &huruf); huruf = toupper(huruf); switch (huruf) { case ‘A’ : { printf(”Angka Mutu = 4 \n”); } break; case ‘B’ : { printf(”Angka Mutu = 3 \n”); } break; case ‘C’ : { printf(”Angka Mutu = 2 \n”); } break; case ‘D’ : { printf(”Angka Mutu = 1 \n”); } break; case ‘E’ : { printf(”Angka Mutu = 0 \n”); } break; default : { printf(”anda mamasukan huruf mutu yang salah \n“); } break; } Printf(”program selesai \n”); } 1. Buatlah program untuk mendeteksi suatu inputan bilanagn genap / ganjil ! 2. Buatlah program untuk mencari nilai maksimum, minimum dari 3 buah inputan ! 3. Buatlah program sederhana memakai bentuk seleksi kondisi switch untuk menyeleksi nama bulan selama 1 tahun, dengan output sbb : Masukan bulan pilihan anda [1 – 12] : 2 FEBRUARI 4. Buatlah program untuk pemesanan tiket KA dengan ketentuan sbb : Input : kelas, tujuan dan banyaknya pemesanan tiket Output : discount dan jumlah pembayaran Ketentuan : Jika pesanan tiket untuk kelas bisnis lebih dari 5 orang maka mendapat discount sebesar 5% dari total harga pemesanan. Kelas Ekonomi Bisnis Tujuan Harga tiket / orang Jakarta Rp. 37.000 Yogyakarta Rp. 63.000 Solo Rp. 72.500 Jakarta Rp. 46.500 Yogyakarta Rp. 75.000 Solo Rp. 87.500 SELESAI