PERCABANGAN
7
Tujuan Instruksi Umum (TIU):
Mampu mengetahui dan menggunakan statemen percabangan yang dapat digunakan untuk membantu dalam memecahkan masalah.
Tujuan Instruksi Khusus (TIK):
• Mengetahui statemen-statemen percabangan.
• Dapat memilih statemen percabangan yang tepat untuk membantu memecahkan masalah.
Pembahasan Materi:
• Statemen if dan if-else
• Statemen if-else bersarang • Statemen switch-case
• Statemen break dan default
Dalam pembuatan algoritma atau program untuk memecahkan masalah adakalanya kita dihadapi beberapa kondisi atau keadaaan, kondisi tersebut biasanya menentukan hasil akhir dari proses yang akan didapat. Misalnya untuk menentukan kelulusan seorang siswa berdasarkan nilai. Jika nilai siswa lebih dari atau samadengan 50 maka siswa tersebut dinyatakan lulus, sebaliknya jika nilai siswa tersebut di bawah 50 maka tidak lulus, dan seterusnya.
Kondisi merupakan hal yang menentukan didalam mengambil keputusan mengenai tindakan yang diambil.
Didalam pemrograman kondisi dikenal dalam bentuk IF, CASE ataupun yang setara.
7.1 Pernyataan If
Pada bentuk if, pernyataan hanya akan dijalankan kalau kondisi bernilai benar. Yang terpenting dari bagan alur diatas adalah kondisinya. Kodisilah yang menentukan apakah sebuah pernyataan program akan dieksekusi atau tidak
Bentuk algoritma untuk pernyataan if adalah sebagai berikut :
if kondisi(-kondisi) yang harus dipenuhi
Pernyataan Pernyataan …… ……
56
-----------------------------------------------------Page 1-----------------------------------------------------
Bagan alurnya adalah sebagai berikut :
False (Salah)
Kondisi
True (benar)
Pernyataan
Contoh pseudocode dari bentuk pernyataan if adalah :
Variabel :
nilai : bilangan nyata
Mulai
Masukkan nilai
Jika nilai > 50
maka nyatakan ”Lulus”
Cetak Nilai anda = nilai
Selesai
Bentuk umum untuk statemen if dalam bahasa C adalah sebagai berikut:
if-then
Bentuk: if (kondisi) statement;
Jika ada lebih dari satu statemen yang harus dilaksanakan maka harus digunakan tanda ( { ) dan (}).
Bentuk:
if (kondisi)
{ statemen-1;
….
statemen-n;
}
57
-----------------------------------------------------Page 2-----------------------------------------------------
Listing Program 7.1 Contoh Penggunaan if
#include <stdio.h>
void main() {
float nilai;
printf(“Masukkan nilai : “); scanf(“%f”, &nilai);
if (nilai > 50) /*jika nilai di atas 50 maka
Masukkan nilai : 45
printf(“Lulus”); akan mencetak kata Lulus */
Nilai anda = 45.00
printf(“\nNilai anda = %.2f“, nilai);
}
Masukkan nilai : 56
Lulus
Nilai anda = 56.00
Pada pernyataan diatas “Lulus” tidak selalu ditampilkan tergantung kepada nilai yang dimasukkan pada saat program dijalankann. Tetapi pernyataan ”Nilai anda = ....” akan selalu ditampilkan karena tidak tergantung kepada kondisi if.
7.2 Pernyataan If....else
Pernyataan if..else digunakan untuk menguji sebuah kondisi. Bila kondisi yang diuji terpenuhi, program akan menjalankan pernyataan-pernyataan tertentu; dan bila kondisi yang diuji salah, program akan menjalankan pernyatan-pernyataan yang lain.
Bentuk umum pernyataan if..else dalam algoritma adalah sebagai berikut:
if kondisi(-kondisi) yang harus dipenuhi
Pernyataan Pernyataan …… …… else
Pernyataan Pernyataan …… ……
Kondisi sendiri merupakan suatu ekspresi bertipe boolean, artinya hanya dapat bernilai benar (true) atau
salah (false).
58
-----------------------------------------------------Page 3-----------------------------------------------------
Bagan alurnya adalah sebagai berikut :
True (benar)
Pernyataan
Kondisi
False (Salah)
Pernyataan
Pada bentuk ini :
1. Pernyataan sesudah if akan dieksekusi kalau kondisi bernilai benar 2. Pernyataan sesudah else akan dieksekusi kalau kondisi bernilai salah
Sebagai contoh diinginkan tampilan :
1. ”Anda Lulus” jika nilai bernilai lebih dari 50 2. ”Anda tidak lulus” jika nilai kurang dari 50
Maka contoh pseudocodenya adalah sebagai berikut :
Variabel :
Nilai : bilangan nyata
Mulai
Masukkan Nilai
Jika Nilai > 50
maka nyatakan ”Anda Lulus”
Jika sebaliknya maka nyatakan ”Anda tidak lulus”
Cetak nilai = nilai
Selesai
Bentuk umum untuk statemen if-else dalam bahasa C adalah sebagai berikut:
if (kondisi) statement;
else
statemen;
59
-----------------------------------------------------Page 4-----------------------------------------------------
Listing Program 7.2 Contoh Penggunaan if-else
#Include <stdio.h>
void main (void)
{
float nilai;
printf( “Masukkan nilai : ”);
scanf(“%f”, &nilai);
if (nilai > 50)
{ printf(“Anda Lulus”); }
else
Masukkan nilai : 45
Anda tidak lulus
Nilai anda = 45.00
{ printf(“Anda tidak lulus”); }
}
printf( “\n Nilai anda =%.2f ””, nilai);
Masukkan nilai : 56
Anda Lulus
Nilai anda = 45.00
7.3 Pernyataan if..else if (if bersarang)
Dalam kasus-kasus tertentu, sebuah konstruksi if dan else dapat terdapat bentuk bersarang (nested). Bentuk bersarang merupakan contoh bentuk dari sebuah atau beberapa buah pernyataan if dan else yang terdapat didalam bentuk if dan else yang lainnya. Nested IF dan ELSE merupakan pernyataan yang lebih rumit dibandingkan dengan pernyataan IF dan ELSE sederhana.
Bentuk umum pernyataan if bersarang dalam algoritma adalah sebagai berikut:
if kondisi_1 yang harus dipenuhi
Pernyataan …… else
if kondisi_2 yang harus dipenuhi
Pernyataan
…… else
pernyataan ……
60
-----------------------------------------------------Page 5-----------------------------------------------------
Bentuk umum pernyataan if..else dalam Bahasa C adalah sebagai berikut:
if (kondisi_1)
statemen;
else
if(kondisi_2)
statemen;
else
Catatan:
Untuk if sebanyak n maka ada else sebanyak n pula.
if (kondisi_n)
statemen;
else
statemen;
……
Bagan alurnya adalah sebagai berikut :
Harga Buku = 2500
Jumlah Buku >= 50
Jumlah Buku >= 35
Jumlah Buku >= 20
Tdk Ada
Diskon 20%
Diskon 15 %
Diskon 10 %
Diskon
Berdasarkan contoh flowchart di atas, listing program dalam bahasa C dapat dilihat pada listing program 7.3 di bawah ini:
61
-----------------------------------------------------Page 6-----------------------------------------------------
Listing Program 7.3 Contoh Program if-bersarang
#include <stdio.h>
void main(void) {
int Jumlah_Buku; float harga;
printf(“Jumlah Buku: “); scanf(“%d”, &Jumlah_Buku);
if (Jumlah_Buku >= 50) {
harga= Jumlah_Buku * 0.8 * 2500;
scanf(“\nTotal harga: %.2f”, harga);
}
else
Listing Program 7.2 Contoh
{
harga= Jumlah_Buku * 0.85 * 2500;
printf(“\nTotal harga: %.2f”, harga);
}
else
if (Jumlah_Buku >= 20)
{
harga= Jumlah_Buku * 0.9 * 2500;
printf(“\nTotal harga: %.2f”,harga);
} else
{
harga= Jumlah_Buku * 2500;
Jumlah Buku: 34
Total harga: 76500.00
printf(”\nTotal Harga: %.2f”,harga);
} }
7.4 Pernyataan switch-case
Pernyataan switch-case digunakan untuk menyederhanakan struktur pemilihan dengan banyak kondisi.
Bentuk umum dalam bahasa C :
switch (<ekspresi>)
{
case <nilai_1>:
statemen_1;
break ;
…….
case <nilai_n> : statemen_n;
break ;
}
default :
statemen_default;
- - -
<nilai> pada case hanya dapat diisikan oleh nilai yang “ integral constants ”
case dengan break: digunakan jika satu kondisi hanya mengerjakan satu kelompok statemen.
case tanpa break: digunakan jika suatu case dapat mengerjakan satemen milik case yang ada di bawahnya.
62
if (Jumlah_Buku >= 35) Penggunaan if-else
-----------------------------------------------------Page 7-----------------------------------------------------
Statemen switch akan menyeleksi kondisi yang diberikan dan kemudian membandingkan hasilnya dengan nilai-nilai yang berada dalam case . Pembandingan akan dimulai dari nilai1 sampai dengan nilai_n. Jika hasil dari kondisi sama dengan nilai tertentu, maka statemen-statemen yang ada di case nilai tersebut akan diproses sampai ditemui statemen break yang akan membawa proses keluar dari blok switch . Jika semua nilai yang dibandingkan tidak ada yang sama dengan kondisi, maka statemen yang akan diproses adalah statemen yang berada dalam default .
Statemen break digunakan untuk membuat proses keluar dari blok switch seteleh selesai memproses sebuah case . Jika statemen break tidak digunakan, maka apabila proses sudah selesai memproses sebuah bagian dalam case proses akan masuk ke bagian case yang berikutnya.
Pernyataan switch digunakan untuk menyederhanakan konstruksi if-else-if yang terlalu banyak. Sebagai
contoh penggalan program berikut:
if (x == 0)
printf("X bernilai 0");
else if (x == 1)
printf ("X bernilai 1");
else if (x == 2) printf ("X bernilai 2");
else if (x == 3) printf ("X bernilai 3");
else printf ("X tidak bernilai 0, 1,
Dapat diganti menjadi lebih ringkas dan mudah dibaca dengan program berikut:
switch(x)
2, ataupun 3");
{
case 0 :
case 1 :
case 2 :
case 3 :
printf("X bernilai 0");
printf("X bernilai 1");
printf("X bernilai 2");
printf("X bernilai 3");
break;
break;
break;
break;
default:
printf ("X tidak bernilai 0, 1,
2, ataupun 3");
}
Jika dilihat pada contoh di atas bahwa meskipun hasil dari kedua program tersebut sama tetapi penulisan
dengan case lebih mudah dibaca.
Contoh-contoh soal:
1. Tulislah algoritma dan program yang menampilkan ’Genap’ jika suatu bilangan adalah bilangan genap atau
’Ganjil’ jika bilangan tersebut adalah bilangan ganjil. Nilai masukan adalah bilangan bulat, yaitu x , dimana 0 ≤ x ≤ 65535. keluaran dari program ini adalah ’Bilangan Genap’ atau ’Bilangan ganjil’.
Jawab :
Suatu bilangan dikatakan bilangan genap jika habis dibagi 2. dengan demikian algoritma pengecekan bilangan genap atau ganjil dapat dituliskan sebagai berikut: 1. Masukkan bil .
63
-----------------------------------------------------Page 8-----------------------------------------------------
2. jika ( bil habis dibagi 2 ) maka kerjakan baris 3; jika tidak kerjakan baris 4. 3. tulis ’Bilangan genap’. Selesai. 4. tulis ’Bilangan ganjil’. Selesai.
Contoh program dalam C untuk mengecek suatu bilangan termasuk bilangan ganjil atau genap:
#include <stdio.h>
void main(void) {
int bil; /*deklarasi variabel bil */
printf("Masukkan suatu bilangan bulat sembarang: "); scanf("%d", &bil);
if(bil % 2 == 0)
printf("Bilangan genap");
else
printf("Bilangan ganjil");
}
Keluaran dari program tersebut adalah sebagai berikut:
Masukkan suatu bilangan bulat sembarang: 25 Bilangan ganjil
Masukkan suatu bilangan bulat sembarang: 4 Bilangan genap
2. Tulislah algoritma dan program yang meminta masukan bilangan bulat dari pengguna. Jika pengguna memasukkan 0, program menampilkan ’Minggu’; jika pengguna memasukkan 1, program menampilkan ’Senin’, dan seterusnya sampai dengan ’Sabtu’. Jika pengguna memasukkan nilai di luar jangkauan 0 sampai dengan 6, program menuliskan ’Hari tidak Valid’.
Jawab :
Algoritma untuk menampilkan hari dapat dituliskan sebagai berikut: 1. Masukkan x.
2. Jika (x = 0) Tulis ’Minggu’. Selesai. 3. Jika (x = 1) Tulis ’Senin’. Selesai. 4. Jika (x = 2) Tulis ’Selasa’. Selesai. 5. Jika (x = 3) Tulis ’Rabu’. Selesai. 6. Jika (x = 4) Tulis ’Kamis’. Selesai. 7. Jika (x = 5) Tulis ’Jumat’. Selesai. 8. Jika (x = 6) Tulis ’Sabtu’. Selesai. 9. Tulis ’Hari tidak Valid’
64
-----------------------------------------------------Page 9-----------------------------------------------------
Jika ditulis dalam program C sebagai berikut:
#include <stdio.h>
void main(void) {
unsigned int x;
/*deklarasi variabel x */
printf("Masukkan bilangan bulat (0 - 6): "); scanf("%d", &x);
switch (x) {
case 0: case 1: case 2: case 3: case 4: case 5: case 6: default
printf("Minggu"); break; printf("Senin"); break; printf("Selasa"); break; printf("Rabu"); break; printf("Kamis"); break; printf("Jumat"); break; printf("Sabtu"); break;
: printf("Hari tidak Valid");
} }
Keluaran dari program di atas adalah sebagai berikut:
Masukkan bilangan bulat (0 – 6) : 5 Jumat
Masukkan bilangan bulat (0 – 6) : 8 Hari tidak Valid
Latihan:
1. Apa perbedaan antara if-else bersarang dengan switch-case ?
2. Statemen _____ digunakan untuk membuat program keluar dari blok switch .
3. statemen _______digunakan untuk membuat proses menegerjakan suatu instruksi bila tidak ada nilai yang
sesuai dengan kondisi yang diseleksi.
4. Buatlah algoritma untuk membuat program menegcek sebuah bilangan berkelipatan 5.
5. Carilah kesalahan dari program di bawah ini dan jika telah diperbaiki apakah keluaran dari program dibawah
ini?
#include <stdio.h>
void main(void) {
int n;
printf("Masukkan bilangan: "); scanf("%d", &n);
if(n % 5); printf("Kelipatan 5"); else printf("Bukan Kelipatan 5");
}
65
-----------------------------------------------------Page 10-----------------------------------------------------
Tugas Mandiri:
1. Buatlah program kalkulator , jika program dijalankan maka program akan meminta masukan dua bilangan real (dapat mengandung pecahan), kemudian program menampilkan sebuah menu. Menu tersebut memiliki 4 buah pilihan. Jika pilihan ke satu yang dipilih
Program Kalkulator
Masukkan Bilangan 1: <3.5> Masukkan Bilangan 2: <5>
maka program akan menghitung penjumlahan dua bilangan. Jika pilihan yang kedua yang dipilih maka program akan menghitung pengurangan dua bilangan. Jika pilihan ke tiga yang dipilih maka program kan melakukan perkalian dua bilangan dan jika pilihan yang
1. 2. 3. 4.
<<< Menu >>> Penjumlahan Pengurangan Perkalian Pembagian
ke empat yang dipilh maka program akan membagi bilangan yang dimasukkan. Apabila tidak ada pilihan yang sesuai maka tampilkan
Pilihan anda : <3>
3.50 * 5.00 = 17.50
pesan pilihan yang anda pilih tidak ada.
2. Tulislah program untuk menghitung bunga tabungan, dengan ketentuan sebagai berikut:
Tabungan (Rp)
<1juta
1juta – 5 juta
5.000.001 – 10 juta > 10 juta
Bunga/bulan
0.15% 0.56 %
12 % 20 %
==============
Referensi:
Cheltenham Computer Training, C Programming , www.cctglobal.com , United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition , Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa C , Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C , Salemba Teknika, Jakarta, 2004
☺☺☺
66
-----------------------------------------------------Page 11-----------------------------------------------------
7
Tujuan Instruksi Umum (TIU):
Mampu mengetahui dan menggunakan statemen percabangan yang dapat digunakan untuk membantu dalam memecahkan masalah.
Tujuan Instruksi Khusus (TIK):
• Mengetahui statemen-statemen percabangan.
• Dapat memilih statemen percabangan yang tepat untuk membantu memecahkan masalah.
Pembahasan Materi:
• Statemen if dan if-else
• Statemen if-else bersarang • Statemen switch-case
• Statemen break dan default
Dalam pembuatan algoritma atau program untuk memecahkan masalah adakalanya kita dihadapi beberapa kondisi atau keadaaan, kondisi tersebut biasanya menentukan hasil akhir dari proses yang akan didapat. Misalnya untuk menentukan kelulusan seorang siswa berdasarkan nilai. Jika nilai siswa lebih dari atau samadengan 50 maka siswa tersebut dinyatakan lulus, sebaliknya jika nilai siswa tersebut di bawah 50 maka tidak lulus, dan seterusnya.
Kondisi merupakan hal yang menentukan didalam mengambil keputusan mengenai tindakan yang diambil.
Didalam pemrograman kondisi dikenal dalam bentuk IF, CASE ataupun yang setara.
7.1 Pernyataan If
Pada bentuk if, pernyataan hanya akan dijalankan kalau kondisi bernilai benar. Yang terpenting dari bagan alur diatas adalah kondisinya. Kodisilah yang menentukan apakah sebuah pernyataan program akan dieksekusi atau tidak
Bentuk algoritma untuk pernyataan if adalah sebagai berikut :
if kondisi(-kondisi) yang harus dipenuhi
Pernyataan Pernyataan …… ……
56
-----------------------------------------------------Page 1-----------------------------------------------------
Bagan alurnya adalah sebagai berikut :
False (Salah)
Kondisi
True (benar)
Pernyataan
Contoh pseudocode dari bentuk pernyataan if adalah :
Variabel :
nilai : bilangan nyata
Mulai
Masukkan nilai
Jika nilai > 50
maka nyatakan ”Lulus”
Cetak Nilai anda = nilai
Selesai
Bentuk umum untuk statemen if dalam bahasa C adalah sebagai berikut:
if-then
Bentuk: if (kondisi) statement;
Jika ada lebih dari satu statemen yang harus dilaksanakan maka harus digunakan tanda ( { ) dan (}).
Bentuk:
if (kondisi)
{ statemen-1;
….
statemen-n;
}
57
-----------------------------------------------------Page 2-----------------------------------------------------
Listing Program 7.1 Contoh Penggunaan if
#include <stdio.h>
void main() {
float nilai;
printf(“Masukkan nilai : “); scanf(“%f”, &nilai);
if (nilai > 50) /*jika nilai di atas 50 maka
Masukkan nilai : 45
printf(“Lulus”); akan mencetak kata Lulus */
Nilai anda = 45.00
printf(“\nNilai anda = %.2f“, nilai);
}
Masukkan nilai : 56
Lulus
Nilai anda = 56.00
Pada pernyataan diatas “Lulus” tidak selalu ditampilkan tergantung kepada nilai yang dimasukkan pada saat program dijalankann. Tetapi pernyataan ”Nilai anda = ....” akan selalu ditampilkan karena tidak tergantung kepada kondisi if.
7.2 Pernyataan If....else
Pernyataan if..else digunakan untuk menguji sebuah kondisi. Bila kondisi yang diuji terpenuhi, program akan menjalankan pernyataan-pernyataan tertentu; dan bila kondisi yang diuji salah, program akan menjalankan pernyatan-pernyataan yang lain.
Bentuk umum pernyataan if..else dalam algoritma adalah sebagai berikut:
if kondisi(-kondisi) yang harus dipenuhi
Pernyataan Pernyataan …… …… else
Pernyataan Pernyataan …… ……
Kondisi sendiri merupakan suatu ekspresi bertipe boolean, artinya hanya dapat bernilai benar (true) atau
salah (false).
58
-----------------------------------------------------Page 3-----------------------------------------------------
Bagan alurnya adalah sebagai berikut :
True (benar)
Pernyataan
Kondisi
False (Salah)
Pernyataan
Pada bentuk ini :
1. Pernyataan sesudah if akan dieksekusi kalau kondisi bernilai benar 2. Pernyataan sesudah else akan dieksekusi kalau kondisi bernilai salah
Sebagai contoh diinginkan tampilan :
1. ”Anda Lulus” jika nilai bernilai lebih dari 50 2. ”Anda tidak lulus” jika nilai kurang dari 50
Maka contoh pseudocodenya adalah sebagai berikut :
Variabel :
Nilai : bilangan nyata
Mulai
Masukkan Nilai
Jika Nilai > 50
maka nyatakan ”Anda Lulus”
Jika sebaliknya maka nyatakan ”Anda tidak lulus”
Cetak nilai = nilai
Selesai
Bentuk umum untuk statemen if-else dalam bahasa C adalah sebagai berikut:
if (kondisi) statement;
else
statemen;
59
-----------------------------------------------------Page 4-----------------------------------------------------
Listing Program 7.2 Contoh Penggunaan if-else
#Include <stdio.h>
void main (void)
{
float nilai;
printf( “Masukkan nilai : ”);
scanf(“%f”, &nilai);
if (nilai > 50)
{ printf(“Anda Lulus”); }
else
Masukkan nilai : 45
Anda tidak lulus
Nilai anda = 45.00
{ printf(“Anda tidak lulus”); }
}
printf( “\n Nilai anda =%.2f ””, nilai);
Masukkan nilai : 56
Anda Lulus
Nilai anda = 45.00
7.3 Pernyataan if..else if (if bersarang)
Dalam kasus-kasus tertentu, sebuah konstruksi if dan else dapat terdapat bentuk bersarang (nested). Bentuk bersarang merupakan contoh bentuk dari sebuah atau beberapa buah pernyataan if dan else yang terdapat didalam bentuk if dan else yang lainnya. Nested IF dan ELSE merupakan pernyataan yang lebih rumit dibandingkan dengan pernyataan IF dan ELSE sederhana.
Bentuk umum pernyataan if bersarang dalam algoritma adalah sebagai berikut:
if kondisi_1 yang harus dipenuhi
Pernyataan …… else
if kondisi_2 yang harus dipenuhi
Pernyataan
…… else
pernyataan ……
60
-----------------------------------------------------Page 5-----------------------------------------------------
Bentuk umum pernyataan if..else dalam Bahasa C adalah sebagai berikut:
if (kondisi_1)
statemen;
else
if(kondisi_2)
statemen;
else
Catatan:
Untuk if sebanyak n maka ada else sebanyak n pula.
if (kondisi_n)
statemen;
else
statemen;
……
Bagan alurnya adalah sebagai berikut :
Harga Buku = 2500
Jumlah Buku >= 50
Jumlah Buku >= 35
Jumlah Buku >= 20
Tdk Ada
Diskon 20%
Diskon 15 %
Diskon 10 %
Diskon
Berdasarkan contoh flowchart di atas, listing program dalam bahasa C dapat dilihat pada listing program 7.3 di bawah ini:
61
-----------------------------------------------------Page 6-----------------------------------------------------
Listing Program 7.3 Contoh Program if-bersarang
#include <stdio.h>
void main(void) {
int Jumlah_Buku; float harga;
printf(“Jumlah Buku: “); scanf(“%d”, &Jumlah_Buku);
if (Jumlah_Buku >= 50) {
harga= Jumlah_Buku * 0.8 * 2500;
scanf(“\nTotal harga: %.2f”, harga);
}
else
Listing Program 7.2 Contoh
{
harga= Jumlah_Buku * 0.85 * 2500;
printf(“\nTotal harga: %.2f”, harga);
}
else
if (Jumlah_Buku >= 20)
{
harga= Jumlah_Buku * 0.9 * 2500;
printf(“\nTotal harga: %.2f”,harga);
} else
{
harga= Jumlah_Buku * 2500;
Jumlah Buku: 34
Total harga: 76500.00
printf(”\nTotal Harga: %.2f”,harga);
} }
7.4 Pernyataan switch-case
Pernyataan switch-case digunakan untuk menyederhanakan struktur pemilihan dengan banyak kondisi.
Bentuk umum dalam bahasa C :
switch (<ekspresi>)
{
case <nilai_1>:
statemen_1;
break ;
…….
case <nilai_n> : statemen_n;
break ;
}
default :
statemen_default;
- - -
<nilai> pada case hanya dapat diisikan oleh nilai yang “ integral constants ”
case dengan break: digunakan jika satu kondisi hanya mengerjakan satu kelompok statemen.
case tanpa break: digunakan jika suatu case dapat mengerjakan satemen milik case yang ada di bawahnya.
62
if (Jumlah_Buku >= 35) Penggunaan if-else
-----------------------------------------------------Page 7-----------------------------------------------------
Statemen switch akan menyeleksi kondisi yang diberikan dan kemudian membandingkan hasilnya dengan nilai-nilai yang berada dalam case . Pembandingan akan dimulai dari nilai1 sampai dengan nilai_n. Jika hasil dari kondisi sama dengan nilai tertentu, maka statemen-statemen yang ada di case nilai tersebut akan diproses sampai ditemui statemen break yang akan membawa proses keluar dari blok switch . Jika semua nilai yang dibandingkan tidak ada yang sama dengan kondisi, maka statemen yang akan diproses adalah statemen yang berada dalam default .
Statemen break digunakan untuk membuat proses keluar dari blok switch seteleh selesai memproses sebuah case . Jika statemen break tidak digunakan, maka apabila proses sudah selesai memproses sebuah bagian dalam case proses akan masuk ke bagian case yang berikutnya.
Pernyataan switch digunakan untuk menyederhanakan konstruksi if-else-if yang terlalu banyak. Sebagai
contoh penggalan program berikut:
if (x == 0)
printf("X bernilai 0");
else if (x == 1)
printf ("X bernilai 1");
else if (x == 2) printf ("X bernilai 2");
else if (x == 3) printf ("X bernilai 3");
else printf ("X tidak bernilai 0, 1,
Dapat diganti menjadi lebih ringkas dan mudah dibaca dengan program berikut:
switch(x)
2, ataupun 3");
{
case 0 :
case 1 :
case 2 :
case 3 :
printf("X bernilai 0");
printf("X bernilai 1");
printf("X bernilai 2");
printf("X bernilai 3");
break;
break;
break;
break;
default:
printf ("X tidak bernilai 0, 1,
2, ataupun 3");
}
Jika dilihat pada contoh di atas bahwa meskipun hasil dari kedua program tersebut sama tetapi penulisan
dengan case lebih mudah dibaca.
Contoh-contoh soal:
1. Tulislah algoritma dan program yang menampilkan ’Genap’ jika suatu bilangan adalah bilangan genap atau
’Ganjil’ jika bilangan tersebut adalah bilangan ganjil. Nilai masukan adalah bilangan bulat, yaitu x , dimana 0 ≤ x ≤ 65535. keluaran dari program ini adalah ’Bilangan Genap’ atau ’Bilangan ganjil’.
Jawab :
Suatu bilangan dikatakan bilangan genap jika habis dibagi 2. dengan demikian algoritma pengecekan bilangan genap atau ganjil dapat dituliskan sebagai berikut: 1. Masukkan bil .
63
-----------------------------------------------------Page 8-----------------------------------------------------
2. jika ( bil habis dibagi 2 ) maka kerjakan baris 3; jika tidak kerjakan baris 4. 3. tulis ’Bilangan genap’. Selesai. 4. tulis ’Bilangan ganjil’. Selesai.
Contoh program dalam C untuk mengecek suatu bilangan termasuk bilangan ganjil atau genap:
#include <stdio.h>
void main(void) {
int bil; /*deklarasi variabel bil */
printf("Masukkan suatu bilangan bulat sembarang: "); scanf("%d", &bil);
if(bil % 2 == 0)
printf("Bilangan genap");
else
printf("Bilangan ganjil");
}
Keluaran dari program tersebut adalah sebagai berikut:
Masukkan suatu bilangan bulat sembarang: 25 Bilangan ganjil
Masukkan suatu bilangan bulat sembarang: 4 Bilangan genap
2. Tulislah algoritma dan program yang meminta masukan bilangan bulat dari pengguna. Jika pengguna memasukkan 0, program menampilkan ’Minggu’; jika pengguna memasukkan 1, program menampilkan ’Senin’, dan seterusnya sampai dengan ’Sabtu’. Jika pengguna memasukkan nilai di luar jangkauan 0 sampai dengan 6, program menuliskan ’Hari tidak Valid’.
Jawab :
Algoritma untuk menampilkan hari dapat dituliskan sebagai berikut: 1. Masukkan x.
2. Jika (x = 0) Tulis ’Minggu’. Selesai. 3. Jika (x = 1) Tulis ’Senin’. Selesai. 4. Jika (x = 2) Tulis ’Selasa’. Selesai. 5. Jika (x = 3) Tulis ’Rabu’. Selesai. 6. Jika (x = 4) Tulis ’Kamis’. Selesai. 7. Jika (x = 5) Tulis ’Jumat’. Selesai. 8. Jika (x = 6) Tulis ’Sabtu’. Selesai. 9. Tulis ’Hari tidak Valid’
64
-----------------------------------------------------Page 9-----------------------------------------------------
Jika ditulis dalam program C sebagai berikut:
#include <stdio.h>
void main(void) {
unsigned int x;
/*deklarasi variabel x */
printf("Masukkan bilangan bulat (0 - 6): "); scanf("%d", &x);
switch (x) {
case 0: case 1: case 2: case 3: case 4: case 5: case 6: default
printf("Minggu"); break; printf("Senin"); break; printf("Selasa"); break; printf("Rabu"); break; printf("Kamis"); break; printf("Jumat"); break; printf("Sabtu"); break;
: printf("Hari tidak Valid");
} }
Keluaran dari program di atas adalah sebagai berikut:
Masukkan bilangan bulat (0 – 6) : 5 Jumat
Masukkan bilangan bulat (0 – 6) : 8 Hari tidak Valid
Latihan:
1. Apa perbedaan antara if-else bersarang dengan switch-case ?
2. Statemen _____ digunakan untuk membuat program keluar dari blok switch .
3. statemen _______digunakan untuk membuat proses menegerjakan suatu instruksi bila tidak ada nilai yang
sesuai dengan kondisi yang diseleksi.
4. Buatlah algoritma untuk membuat program menegcek sebuah bilangan berkelipatan 5.
5. Carilah kesalahan dari program di bawah ini dan jika telah diperbaiki apakah keluaran dari program dibawah
ini?
#include <stdio.h>
void main(void) {
int n;
printf("Masukkan bilangan: "); scanf("%d", &n);
if(n % 5); printf("Kelipatan 5"); else printf("Bukan Kelipatan 5");
}
65
-----------------------------------------------------Page 10-----------------------------------------------------
Tugas Mandiri:
1. Buatlah program kalkulator , jika program dijalankan maka program akan meminta masukan dua bilangan real (dapat mengandung pecahan), kemudian program menampilkan sebuah menu. Menu tersebut memiliki 4 buah pilihan. Jika pilihan ke satu yang dipilih
Program Kalkulator
Masukkan Bilangan 1: <3.5> Masukkan Bilangan 2: <5>
maka program akan menghitung penjumlahan dua bilangan. Jika pilihan yang kedua yang dipilih maka program akan menghitung pengurangan dua bilangan. Jika pilihan ke tiga yang dipilih maka program kan melakukan perkalian dua bilangan dan jika pilihan yang
1. 2. 3. 4.
<<< Menu >>> Penjumlahan Pengurangan Perkalian Pembagian
ke empat yang dipilh maka program akan membagi bilangan yang dimasukkan. Apabila tidak ada pilihan yang sesuai maka tampilkan
Pilihan anda : <3>
3.50 * 5.00 = 17.50
pesan pilihan yang anda pilih tidak ada.
2. Tulislah program untuk menghitung bunga tabungan, dengan ketentuan sebagai berikut:
Tabungan (Rp)
<1juta
1juta – 5 juta
5.000.001 – 10 juta > 10 juta
Bunga/bulan
0.15% 0.56 %
12 % 20 %
==============
Referensi:
Cheltenham Computer Training, C Programming , www.cctglobal.com , United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition , Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa C , Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C , Salemba Teknika, Jakarta, 2004
☺☺☺
66
-----------------------------------------------------Page 11-----------------------------------------------------
ok,
ReplyDelete