Kondisional/Pencabangan/Pemilihan
•Konsep Pencabangan •Sintaks •Konsep if (kasus tunggal) •Konsep if-else (2-3 kasus) •Konsep switch (lebih dari 3 kasus)
Konsep Pencabangan/Pemilihan • Konsep pencabangan/pemilihan : – Ada kondisi – Persyaratan hanya akan dieksekusi jika kondisi terpenuhi
• Pemecahan masalah Æ – Menganalisa kasus yang mungkin ada – Melakukan aksi untuk setiap kasus
• Konsep pencabangan minimal untuk kasus tunggal 10/25/2010
EL-1304 Pemrograman C
2
Pencabangan kasus tunggal - if •
•
Æ Pencabangan yang membutuhkan satu solusi/skenario penyelesaian masalah
•Algoritma
Sintaks dalam C If (kondisi) { Statement Æ Eksekusi isi dari kurung kurawal ini }
Ya/benar
kondisi
statement
Tidak/salah
10/25/2010
EL-1304 Pemrograman C
3
Contoh Pencabangan kasus tunggal • Deskripsi masalah : persoalan angka sial • Penyelesaian masalah: masukan nilai jika nilai=13 maka tampilkan pesan angka sial
10/25/2010
EL-1304 Pemrograman C
4
Pencabangan 2 kasus – if else • Æ Pencabangan dengan 2 solusi/skenario penyelesaian masalah
•Algoritma
• Sintaks dalam C If (kondisi) { Statement Æ Eksekusi isi dari kurung kurawal ini }
else
kondisi1
Ya
statement untuk kondisi1 terpenuhi
Tidak statement untuk kondisi1 tdk terpenuhi
{ Statement Æ Eksekusi isi dari kurung kurawal ini } 10/25/2010
EL-1304 Pemrograman C
5
Contoh Pencabangan 2 kasus • Melakukan pembagian masukan nilai pembilang masukan nilai penyebut jika penyebut kosong maka tampilkan pesan error jika penyebut tidak kosong maka hasil=pembilang/penyebut tampilkan hasil 10/25/2010
EL-1304 Pemrograman C
6
Pencabangan 3 kasus •
Æ Pencabangan dengan 3 solusi/skenario penyelesaian masalah
•
Sintaks dalam C If (kondisi1)
If (kondisi1)
{ Statement Æ Eksekusi isi dari kurung kurawal ini }
else if (kondisi2) { Statement Æ Eksekusi isi dari kurung kurawal ini }
else if (kondisi3) { Statement Æ Eksekusi isi dari kurung kurawal ini }
10/25/2010
{ Statement Æ Eksekusi isi dari kurung kurawal ini }
else if (kondisi2) { Statement Æ Eksekusi isi dari kurung kurawal ini }
else
EL-1304 Pemrograman C
{ Statement Æ Eksekusi isi dari kurung kurawal ini } 7
Algoritma Pencabangan 3 kasus kondisi1
Ya
statement untuk kondisi1
Ya
statement untuk kondisi2
Ya
statement untuk kondisi3
Tidak kondisi2 Tidak kondisi3 Tidak
10/25/2010
EL-1304 Pemrograman C
8
Contoh Pencabangan 3 kasus • Menentukan nilai absolut Nilai absolut(mutlak) dari bilangan: Masukan nilai X Jika nilai X > 0 maka absolut=X Jika nilai X<0 maka absolut= -1*X Jika nilai X=0 maka absolut=0 Next statement… 10/25/2010
EL-1304 Pemrograman C
9
Contoh Pencabangan 3 kasus • Alternatif penyelesaian Nilai absolut dari bilangan Masukan nilai X Jika nilai X > 0 maka absolut=X Jika tidak maka jika nilai X<0 maka absolut= -1*X jika tidak maka absolut=0 Next statement… 10/25/2010
EL-1304 Pemrograman C
10
Diskusi 1. Jelaskan perbedaan antara penyelesaian alternatif 1 dengan alternatif 2 2. Jelaskan keuntungan alternatif 2 dibandingkan alternatif 1
10/25/2010
EL-1304 Pemrograman C
11
Pencabangan lebih dari 3 kasus • • • •
Jika kasus lebih dari 3, penggunaan if bersarang tidak efektif Sintaks untuk lebih dari 3 kasus Æ switch case Switch case dilakukan untuk mengetes kondisi persamaan(==) Switch case untuk nilai integer dan karakter – Jika kondisi 1 maka aksi 1 (kondisi adalah komparasi variabel) – Jika kondisi 2 maka aksi 2 – Jika kondisi n maka aksi n
•
Konversi Æ switch (variabel) { case nilai 1 : aksi 1; break; case nilai 2 : aksi 2; break; case nilai n : aksi n; break; default : aksi default;
} 10/25/2010
EL-1304 Pemrograman C
12
Contoh Pencabangan lebih dari 3 kasus • Konversi kode hari jika 0 maka tampilkan pesan minggu jika 1 maka tampilkan pesan senin jika 2 maka tampilkan pesan selasa jika 3 maka tampilkan pesan rabu jika 4 maka tampilkan pesan kamis jika 5 maka tampilkan pesan jumat jika 6 maka tampilkan pesan sabtu 10/25/2010
EL-1304 Pemrograman C
13
Konversi logika pencabangan ke bahasa C(6)contoh 4 main() { int hari; printf(“Masukan kode hari”); scanf(“%d”,&hari); switch (hari) { case 0: printf(“ahad”);break; case 1: printf(“senin”);break; case 2: printf(“selasa”);break; case 3: printf(“rabu”);break; case 4: printf(“kamis”);break; case 5: printf(“jumat”);break; case 6: printf(“sabtu”);break; default: printf(“salah kode”); } return 0; } 10/25/2010
EL-1304 Pemrograman C
14