Bab 4 Percabangan Percabangan • Struktur satu kondisi • Struktur dua kondisi • Struktur tiga kondisi • Pemilihan menggunakan kata kunci switch Struktur satu kondisi • Jika hanya satu statemen if (kondisi) Statemen; • Jika terdapat lebih dari statemen if (kondisi) { Statemen1; Statemen2; … } Contoh 1 #include <iostream> using namespace std; int main() { int nilai; cout<<"Masukkan X (bil. bulat): "; cin>>nilai; if (nilai > 0) cout<<"X termasuk bilangan positif."<<endl; cout<<"Terima kasih atas partisipasi Anda."; return 0; } Contoh 2 #include <iostream> using namespace std; int main() { int nilai; cout<<"Masukkan X (bil. bulat): "; cin>>nilai; if (nilai > 0) { cout<<"X termasuk bilangan positif."<<endl; cout<<"Terima kasih atas partisipasi Anda."; } return 0; } Contoh 2b #include <iostream> using namespace std; int main() { int nilai; cout<<"Masukkan X (bil. bulat): "; cin>>nilai; if (nilai > 0) { cout<<"X termasuk bilangan positif."<<endl; cout<<"Terima kasih atas partisipasi Anda."; } return 0; } Struktur dua kondisi Bentuk umum: if (kondisi) { Statemen jika kondisi terpenuhi; } else { Statemen jika tidak terpenuhi; } #include <iostream> using namespace std; int main() { int bil; cout<<"Masukkan bilangan: "; cin>>bil; if (bil % 2 == 0) { cout<<bil<<" adalah bil. genap"; } else { cout<<bil<<" adalah bil. ganjil"; } return 0; } Struktur tiga kondisi if (kondisi 1) { Statemen jika kondisi 1 terpenuhi; } else if (kondisi 2) { Statemen jika kondisi 2 terpenuhi; } else if (kondisi 3) { Statemen jika kondisi 3 terpenuhi; } …. else { Statemen jika semua kondisi tidak terpenuhi; } #include <iostream> using namespace std; int main() { int bil; cout<<"Masukkan bilangan bulat: "; cin>>bil; if (bil > 0) { cout<<bil<<" adalah bil. POSITIF"; } else if (bil < 0) { cout<<bil<<" adalah bil. NEGATIF"; } else { cout<<bil<<" adalah bil. NOL"; } return 0; } Menggunakan kata kunci switch switch (ekspresi) { case nilai_konstan1: statemen; break; case nilai_konstan2: statemen; break; …. case nilai_konstanN: statemen; break; default statemen alternatif; } #include <iostream> using namespace std; int main() { int bil; cout<<"Masukkan bil. (1..7): "; cin>>bil; switch (bil) { case 1 : cout<<"Hari ke-"<<bil<<" : adalah MINGGU"; break; case 2 : cout<<"Hari ke-"<<bil<<" : adalah SENIN"; break; case 3 : cout<<"Hari ke-"<<bil<<" : adalah SELASA"; break; case 4 : cout<<"Hari ke-"<<bil<<" : adalah RABU"; break; case 5 : cout<<"Hari ke-"<<bil<<" : adalah KAMIS"; break; case 6 : cout<<"Hari ke-"<<bil<<" : adalah JUMAT"; break; case 7 : cout<<"Hari ke-"<<bil<<" : adalah SABTU"; break; default : cout<<"Tidak ada hari ke-"<<bil; } return 0; } Soal: 1. Menentukan wujud air (uap, cair, es) jika temperaturnya berbeda 2. Menentukan panjang 3 garis apakah dapat membentuk segitiga atau tidak 3. Mengubah satuan dari cm ke m 4. Membaca 3 bilangan bulat (a,b,c) kemudian menghitung 6*(ax2+bx+c) jika x=2 Soal 5. Program MAX: memasukkan 2 bilangan real (a,b) kemudian dihitung bilangan yang terbesar, a atau b? 6. Dengan menggunakan program MAX tsb, dimasukkan 3 bilangan real (a,b,c) kemudian dihitung bilangan yang terbesar, a, b, atau c? 7. Program NextDay: menghitung hari berikutnya dari hari yang dimasukkan Soal 8. Menghitung tegangan (volt) jika tahanan (ohm) dan kuat arusnya (ampere) diketahui dengan rumus V=I*R 9. Menukar nilai dari suatu variabel, semula a=x dan b=y menjadi a=y dan b=x 10. Memutar nilai-nilai dari suatu variabel, semula a=x, b=y, dan c=z menjadi a=z, b=x, dan c=y Soal 1. Menentukan wujud air (uap, cair, es) jika temperaturnya berbeda #include <iostream> using namespace std; int main() { int temp; cout<<"Masukkan temperatur air (dlm Celcius): "; cin>>temp; if (temp >= 100) { cout<<"Wujud air adalah gas"; } else if (temp <= 0) { cout<<"Wujud air adalah es/beku"; } else cout<<"Wujud air adalah cair"; return 0; } #include <iostream> Soal 2. Menentukan panjang 3 garis using namespace std; apakah dapat membentuk segitiga/tidak int main() { float a, b, c, max, jml; cout<<"Masukkan panjang garis a: "; cin>>a; cout<<"Masukkan panjang garis b: "; cin>>b; cout<<"Masukkan panjang garis c: "; cin>>c; if ((a > b) && (b > c)) { cout<<"Garis terpanjang adalah: "<<a<<endl; max = a; jml = b + c; } else if ((b > a) && (a > c)) { cout<<"Garis terpanjang adalah: "<<b<<endl; max = b; jml = a + c; } else { cout<<"Garis terpanjang adalah: "<<c<<endl; max = c; jml = a + b; } if (max < jml) { cout<<"Terbentuk sebuah segitiga!"; } else { cout<<"Segitiga tidak bisa terbentuk!"; } return 0; } Soal 3. Mengubah satuan dari cm ke m #include <iostream> using namespace std; int main() { int cm, cm_out, m_out; cout<<"Masukkan nilai (dalam cm): "; cin>>cm; m_out = cm / 100; cm_out = cm % 100; cout<<"Nilai tsb adalah: "<<m_out<<" meter "<<cm_out<<" cm"<<endl; return 0; } #include <iostream> using namespace std; const int x = 2; • Soal 4. Membaca 3 bilangan bulat (a,b,c) kemudian menghitung 6*(ax2+bx+c) jika x=2 int main() { int a, b, c; float y; cout<<"Diketahui persamaan y=6*(ax2+bx+c)"<<endl; cout<<"Masukkan bilangan a: "; cin>>a; cout<<"Masukkan bilangan b: "; cin>>b; cout<<"Masukkan bilangan c: "; cin>>c; y = 6*((a*x*x)+(b*x)+c); cout<<"Jika x = "<<x<<endl<<"Maka solusi persamaan y=6*(ax2+bx+c) adalah: "<<y<<endl; return 0; } //program max #include <iostream> using namespace std; 5. Program MAX: memasukkan 2 bilangan real (a,b) kemudian dihitung bilangan yang terbesar, a atau b? int main() { float a,b; cout<<"Masukkan bilangan real a: "; cin>>a; cout<<"Masukkan bilangan real b: "; cin>>b; if (a == b) { cout<<"Bilangan a sama dengan b"; } else if (a > b) { cout<<"Nilai maksimum adalah bilangan a"; } else { cout<<"Nilai maksimum adalah bilangan b"; } return 0; }