Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
P–5 Bab 4 : Seleksi Kondisi
4.1 Tujuan Mahasiswa mampu : • Mengetahui Perintah Kondisi • Mengetahui penggunaan statemen if • Mengetahui penggunaan statement switch
4.2 Materi 1. If ✔ If tunggal ✔ If..Else ✔ If bersarang 2. Switch ✔ Switch Tunggal ✔ Swtich Bersarang
4.3 IF IF Tunggal ◦ ◦
Struktur kondisi dari IF digunakan untuk melakukan seleksi terhadap pernyataan (statement) tunggal. Bentuk IF Tunggal adalah sebagai berikut : if (kondisi) pernyataan;
◦
Jika IF yang diseleksi bernilai benar (bernilai 1) maka pernyataan yang mengikutinya akan diproses, begitu juga sebaliknya jika IF yang diseleksi bernilai salah (bernilai 0) maka pernyataan berikutnya yang akan diproses.
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 1
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
◦
Contoh : ▪ Jika nilai yang diperoleh kurang dari 70 maka belum berhasil (pernyataan tidak akan dikerjakan), jika nilai yang diperoleh lebih dari atau sama dengan 70 maka telah berhasil (pernyataan akan dikerjakan). /* -------------------------* Contoh IF Tunggal * author : SidiQ - UMBY * -------------------------*/ #include <stdio.h> main() { float Nilai; printf("Nilai yang diperoleh = "); scanf("%f",&Nilai); if(Nilai >= 70) printf("Selamat Anda Telah Berhasil Dengan Nilai: %0.2f ",Nilai); }
Output :
IF-ELSE ◦
Bentuk IF...ELSE adalah sebagai berikut : if (kondisi) pernyataan; else pernyataan;
◦
◦
Jika IF yang diseleksi bernilai benar (bernilai 1) maka pernyataan yang mengikutinya akan diproses, dan sebaliknya jika IF yang diseleksi bernilai salah (bernilai 0) maka pernyataan setelah ELSE yang berikutnya akan diproses. Contoh : ▪ Jika nilai yang diperoleh lebih dari atau sama dengan 70 maka pernyataan setelah kondisi IF akan dikerjakan , kemudian jika nilai kurang dari atau sama dengan 70 maka pernyataan setelah else yang akan dikerjakan.
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 2
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
/* -------------------------* Contoh IF Else * author : SidiQ - UMBY * -------------------------*/ #include <stdio.h> main() { float Nilai; printf("Nilai yang diperoleh = "); scanf("%f",&Nilai); if(Nilai >= 70) printf("Selamat Anda Telah Berhasil Dengan Nilai:%0.2f ",Nilai); else printf("Maaf Anda Belum Berhasil, Nilai Anda:%0.2f ",Nilai); }
Output :
IF Bersarang ◦ ◦
Pernyataan IF Bersarang yang merupakan suatu pernyataan IF yang merupakan bagian (berada di dalam) pernyataan IF lainnya. Bentuk IF Bersarang adalah sebagai berikut : if (kondisi_1) if(kondisi_2) . . if(kondisi_n) pernyataan_n; else pernyataan_n; . . else pernyataan_2; else pernyataan_1;
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 3
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
◦
◦
Kondisi yang diseleksi pertama adalah kondisi yang paling luar (kondisi_1). ▪ Jika kondisi_1 bernilai salah (bernilai 0), maka pernyataan setelah else yang terluar yang akan di proses (pernyataan_2 = yang merupakan pasangan dari kondisi IF yang bersangkutan). Jika pernyataan setelah else tidak ditulis, maka proses akan dihentikan. ▪ Jika kondisi_1 bernilai benar (bernilai 1), maka kondisi berikutnya (kondisi_2) yang akan diproses. ▪ Jika kondisi_2 bernilai salah (bernilai 0), maka pernyataan setelah else yang merupakan pasangan dari kondisi_2 yang akan diproses. Jika pernyataan setelah else tidak ditulis maka proses aka dihentikan. ▪ Proses penyeleksian pada kondisi IF Bersarang akan dilakukan sampai kondisi_n. Contoh : ▪ Jika nilai yang diperoleh lebih dari atau sama dengan 70 maka proses akan dilanjutkan pada kondisi IF berikutnya. Jika nilai yang diperoleh kurang dari atau sama dengan 70 maka yang akan dikerjakan pernyataan setelah else yang merupakan pasangannya “ printf (“Silahkan Mencoba Lagi”)”. ▪ Jika nilai yang diperoleh lebih dari 70 atau bernilai benar (bernilai 1), maka pernyataan setelah if “printf (“Selamat ….”) yang akan dikerjakan. Jika nilai yang diperoleh kurang dari 70 maka pernyataan setelah else yang merupakan pasangannya “printf (“Maaf ...”)” yang akan dikerjakan. /* * * *
-------------------------Contoh IF Bersarang author : SidiQ - UMBY -------------------------*/
#include <stdio.h> main() { float Nilai; printf("Nilai yang diperoleh = "); scanf("%f",&Nilai); if(Nilai >= 70) if (Nilai > 70) { printf("Selamat Anda Telah Berhasil Dengan Nilai:%0.2f ",Nilai); } else { printf("Maaf Anda Belum Berhasil, Nilai Anda : %0.2f ",Nilai); } else {
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 4
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
printf("Silahkan Mencoba Lagi"); } }
Output :
4.4 SWITCH SWITCH Tunggal ◦
Bentuk SWITCH Tunggal adalah sebagai berikut : switch (kondisi) { case konstanta_1 : pernyataan; pernyataan; break; case konstanta_2 : pernyataan; pernyataan; break; . . default : pernyataan; pernyataan; }
◦
Pernyataan SWITCH akan menyeleksi kondisi yang diberikan, selanjutnya akan membandingkan hasilnya dengan konstanta yang berada di CASE. ▪ Jika hasil dari kondisi cocok dengan nilai pada konstanta_1 maka yang akan dikerjakan pernyataan yang berada setelah konstanta_1 dan diakhiri sampai BREAK.
▪
Jika hasil dari kondisi tidak cocok dengan konstanta_1 maka yang akan diperikasa selanjutnya adalah konstanta_2. Dan jika konstanta_2 cocok maka pernyataan setelah konstanta_2 yang akan dikerjakan sampai BREAK. Tetapi jika konstanta_2 tidak cocok maka proses yang akan dikerjakan yaitu pernyataan dibawah DEFAULT. SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 5
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
◦
Contoh : /* * * *
-------------------------Contoh Switch Tunggal author : SidiQ - UMBY -------------------------*/
#include <stdio.h> main() { int pilihan; float p, l, s; printf (" ==== Program Switch Case Menghitung Luas ==== \n \n"); printf (" 1. Menghitung Luas Persegi Panjang \n"); printf (" 2. Menghitung Luas Persegi \n \n"); printf (" Pilihan (1 atau 2) ? ");scanf("%d", &pilihan); printf ("\n"); printf (" ============================================= \n \n"); switch (pilihan) { case 1: printf(" Panjang Persegi Panjang : ");scanf("%f",&p); printf(" Lebar Persegi Panjang : ");scanf("%f",&l); printf(" Luas Persegi Panjang : %0.2f \n",p*l); break; case 2: printf(" Sisi Persegi : ");scanf("%f",&s); printf(" Luas Persegi : %0.2f \n",s*s); break; default : printf("Warning ... ! Angka yang Anda masukan SALAH"); } }
Output :
SWITCH Bersarang ◦
Pernyataan SWITCH Bersarang yang merupakan suatu pernyataan SWITCH yang merupakan bagian (berada di dalam) pernyataan SWITCH lainnya.
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 6
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
◦
Bentuk SWITCH Bersarang adalah sebagai berikut : switch (kondisi) { case konstanta_a : switch (kondisi_1) { case konstanta_1: pernyataan; pernyataan; break; case konstanta_2: pernyataan; pernyataan; break; } break; case konstanta_b : switch (kondisi_2) { case konstanta_1: pernyataan; pernyataan; break; case konstanta_2: pernyataan; pernyataan; break; } break; . . default : pernyataan; pernyataan; }
◦
Contoh : /* * * *
-------------------------Contoh Switch Bersarang author : SidiQ - UMBY -------------------------*/
#include <stdio.h> main() {
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 7
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
char pilihan; int pilihan1, pilihan2; float p, l, s; printf (" == Program Switch Case Bersarang Luas & Keliling == \n \n"); printf (" a. Menghitung Persegi Panjang \n"); printf (" b. Menghitung Persegi \n \n"); printf (" Pilihan (a atau b) ? ");scanf("%c", &pilihan1); printf ("\n"); printf (" ============================================= \n \n"); switch (pilihan) { case 'a': printf (" 1. Menghitung Luas Persegi Panjang \n"); printf (" 2. Menghitung Luas Persegi \n \n"); printf (" Pilihan (1 atau 2) ? ");scanf("%d", &pilihan2); printf ("\n"); printf(" Panjang Persegi Panjang : ");scanf("%f",&p); printf(" Lebar Persegi Panjang : ");scanf("%f",&l); switch (pilihan1) { case 1: printf(" Luas Persegi Panjang : %0.2f \n",p*l); break; case 2: printf(" Keliling Persegi Panjang : %0.2f \n",2*p*l); break; default : printf("Warning ... ! Angka yang Anda masukan SALAH"); } break; case 'b': printf (" 1. Menghitung Luas Persegi \n"); printf (" 2. Menghitung Keliling Persegi \n \n"); printf (" Pilihan (1 atau 2) ? ");scanf("%d", &pilihan3); printf ("\n"); printf(" Sisi Persegi : ");scanf("%f",&s); switch (pilihan2) { case 1: printf(" Luas Persegi : %0.2f \n",s*s); break; case 2: printf(" Keliling Persegi : %0.2f \n",6*s*s); break; default : printf("Warning ... ! Angka yang Anda masukan SALAH"); } break; default :
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 8
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
printf("Warning ... ! Huruf yang Anda masukan SALAH"); } }
Output :
4.5 Evaluasi ◦
Buat algoritma (flowchart) dan program untuk menentukan nama-nama bulan dalam satu tahun (Januari, Februari, Maret, April, Mei, Juni, Juli, Agustus, Septembet, Oktober, November, Desember). ▪ Misalnya jika diinputkan angka 7, maka output yang keluar adalah bulan Juli, ▪ Jika diinputkan angka 12, maka output yang keluar adalah bulan Desember, dan seterusnya.
◦
Contoh Output :
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 9
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
Ketentuan : 1. File name : P5_Elr_23_Algo_NIM.docx (Ex : P5_Elr_23_Algo_10111071.docx) 2. Kirimkan dengan subject P3_Elr_23_Algo_NIM (Ex : P5_Elr_23_Algo_10111071) 3. Ke email :
[email protected]
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 10