MODUL II PERCABANGAN DAN PERULANGAN I. TUJUAN 1. Memahami dan menerapkan sintaks-sintaks percabangan (struktur IF dan CASE) dalam menyelesaikan berbagai studi kasus 2. Memahami dan menerapkan sintaks-sintaks pengulangan (struktur For, While, dan Do…While) dalam menyelesaikan persoalan II. DASAR TEORI 1. Percabangan a. Struktur IF Sintaks sederhana IF adalah if (kondisi) statement; Statement pada sintaks di atas akan dilakukan jika kondisinya bernilai TRUE (tidak sama dengan nol). Apabila statement yang akandilakukan lebih dari satu, maka sintaksnya menjadi : if (kondisi) { statement1; statement2; } Contoh Menentukan boleh tidaknya seseorang melihat film bioskop. Seseorang diperbolehkan menonton jika usianya 17 tahun ke atas. Berikut ini program C nya : #include <stdio.h> #include <stdlib.h> int main() { int usia; printf("Berapa usia anda : "); scanf("%d",&usia); if (usia < 17) printf("Anda tidak boleh menonton bioskop"); return 0; } 1I - 1 Statement IF juga dapat ditambahkan ELSE sebagai konsekuensi alternatif jika kondisi tidak dipenuhi (FALSE). Sintaksnya: if (kondisi) { statement1; statement2; . } else { statement1; statement2; } Contoh : Anda dapat modifikasi program C untuk menentukan boleh tidaknya seseorang menonton bioskop seperti di bawah ini: #include <stdio.h> #include <stdlib.h> int main() { int usia; printf("Berapa usia anda : "); scanf("%d",&usia); if (usia < 17) printf("Anda tidak boleh menonton bioskop"); else printf("Anda boleh menonton bioskop"); return 0; } 1I - 2 b. Struktur SWITCH Statement SWITCH juga berfungsi sama dengan IF. Memperbolehkan percabangan pada multiple outcomes. Sintaks : switch( switch_ekspresi ){ case case_pilihan1: statement1;// statement2;//blok 1 break; case case_pilihan2: statement1;// statement2;//blok 2 break; default: statement1;// statement2;//blok n } Contoh #include <stdio.h> #include <stdlib.h> int main() { int nilai; printf("Masukan nilai 1-3 ?"); scanf("%d",&nilai); switch (nilai){ case 1: printf("Satu\n"); case 2: printf("Dua\n"); case 3: printf("Tiga\n"); default: printf("Bukan nilai 1, 2 atau 3 \n"); } return 0; } 1I - 3 2. Perulangan Pengulangan merupakan sebuah konsep pemrograman yang penting karena konsep ini memungkinkan pengguna menggunakan sekumpulan baris program berulang kali. Struktur perulangan secara umum ada dua bagian: Kondisi perulangan Ekspresi boolean yang harus dipenuhi untuk melaksanakan perulangan Badan perulangan Bagian algoritma yang diulang Struktur perulangan disertai pula: Inisialisasi Aksi yang dilakukan sebelum perulangan dilakukan pertama kali Terminasi Aksi yang dilakukan setelah perulangan selesai dilaksanakan Beberapa hal yang harus diperhatikan: a. Inisialisasi dan terminasi tidak selalu harus ada, namun dalam beberapa kasus inisialisasi biasanya diperlukan. b. Suatu perulangan harus berhenti! c. Beberapa struktur perulangan dapat dipakai untuk masalah yang sama, namun ada notasi perulangan yang hanya cocok dipakai untuk masalah tertentu. Notasi struktur perulangan : a. Struktur FOR Struktur perulangan FOR digunakan untuk menghasilkan perulangan sejumlah kali yang dispesifikasikan. Jumlah perulangan diketahui atau dapat ditentukan sebelum eksekusi. Diperlukan variabel counter/pencacah. Jika cacah perulangan sudah mencapai jumlah yang dispesifikasikan, maka proses perulangan berhenti. Bentuk umum struktur FOR : for(<ekspresi1>; <ekspresi2>; <ekspresi3>) { aksi1; aksi2; } Keterangan : Ekspresi1: inisialisasi counter Ekspresi2: syarat pelaksanaan Ekspresi3: naikkan counter (inkremen) 1I - 4 Contoh : Output : #include <stdio.h> Hello Word #include <stdlib.h> int main() { int i; for(i=1;i<=5;i++) Hello Word Hello Word Hello Word Hello Word printf("Hello World \n"); return 0; } b. Struktur WHILE Sintaks WHILE menyatakan pengulangan dengan pengecekan di awal setiap iterasi, apakah sebuah kondisi terpenuhi atau tidak. Jika kondisi terpenuhi (bernilai benar), maka iterasi a kan dilanjutkan. Jika kondisi tidak terpenuhi, maka iterasi dihentikan. Bentuk umum struktur WHILE : inisialisasi; while(<ekspresi>) { aksi1; aksi2; } terminasi; Keterangan : Inisialisasi : inisialisasi counter Ekspresi : syarat pelaksanaan Terminasi : menghentikan counter (inkremen) Contoh : Output : #include <stdio.h> Hello Word #include <stdlib.h> int main() { int i; i = 1; Hello Word Hello Word Hello Word Hello Word while(i<=5) printf("Hello World \n"); i++; return 0; } 1I - 5 c. Struktur DO-WHILE Sintaks DO-WHILE pada kasus yang terlebih dahulu memanipulasi objek, baru kemudian memeriksa kondisi objek tersebut. Bentuk umum struktur WHILE : inisialisasi; do { aksi1; aksi2; } while(<ekspresi>); terminasi; Keterangan : Inisialisasi : inisialisasi counter Ekspresi : syarat pelaksanaan Terminasi : menghentikan counter (inkremen) Contoh : Output : #include <stdio.h> Hello Word #include <stdlib.h> int main() { int i; i = 1; Hello Word Hello Word Hello Word Hello Word do { Printf("Hello World \n"); i++; }while(i<=5) return 0; } 1I - 6 III. GUIDED 1. Percabangan IF #include <stdio.h> #include <stdlib.h> int main() { int x; printf("Masukkan sebuah bilangan bulat: "); scanf("%d",&x); if (x % 2 ==0 ) printf("Nilai Genap\n"); else printf("Nilai Ganjil\n"); return 0; } 2. Percabangan SWICTH #include <stdio.h> #include <stdlib.h> int main() { int pilih; float sisi, jari2, tinggi; printf(" <<< M E N U <<<\n"); printf("\n"); printf("1. Menghitung Isi Kubus\n"); printf("2. Menghitung Luas Lingkaran\n"); printf("3. Menghitung Isi Silinder\n"); printf("\n"); printf("Pilih Nomor (1-3) ?"); scanf("%d",&pilih); printf("\n"); switch(pilih){ case 1: printf("Panjang Sisi Kubus ?"); scanf("%f",&sisi); printf("Isi Kubus = %f \n", sisi * sisi * sisi); break; case 2: printf("Jari-Jari Lingkaran ?"); scanf("%f",&jari2); printf("Luas Lingkaran = %f \n", 3.14 * jari2 * jari2); break; case 3: printf("Jari-Jari Lingkaran ?"); scanf("%f",&jari2); printf("Tinggi Silinder ?"); scanf("%f",&tinggi); printf("Isi Silinder = %f \n", 3.14 * jari2 * jari2 * tinggi); break; } return 0; } 1I - 7 3. Perulangan FOR #include <stdio.h> #include <stdlib.h> int main() { int i; for (i=1;i<=5;i++) printf("%d\n",i); return 0; } 4. Perulangan WHILE… #include <stdio.h> #include <stdlib.h> int main() { int x; x=3; while (x<5) printf("%d\n",x); x++; return 0;} 5. Perulangan DO… WHILE #include <stdio.h> #include <stdlib.h> int main() { int x; x=3; do { printf("%d\n",x); x++; }while (x<5) return 0; } 1I - 8 IV. UNGUIDED a. Percabangan Buatlah program dalam bahasa C untuk mengidentifikasi biaya operasi suatu penyakit. Tabel penyakit dan biayanya tertera dalam table berikut: Nama Operasi Operasi Mata Operasi Jantung Jenis Penyakit Katarak Plus / Minus Silinder Jantung Koroner Katup Jantung Otot Jantung Biaya Rp. 7.500.000 Rp. 5.000.000 Rp. 4.000.000 Rp. 500.000.000 Rp. 350.000.000 Rp. 450.000.000 Program dalam bentuk menu pilihan dimana awalnya user memasukkan nama operasinya lalu selanjutnya user memasukkan nama penyakitnya, maka akan keluar jumlah biayanya. b. Perulangan 1. Buatlah Program untuk menghitung total nilai dari suatu bilangan yang diinputkan. Misal: Input bilangan: 5, Total Nilai=5+4+3+2+1=15 2. Buatlah sebuah program untuk menghitung hasil pangkat suatu bilangan. Misal: Input bilangan = 2 ; Input Pencacah=3 ; Hasil Pangkat = 8 1I - 9