Algoritma dan Dasar Pemograman Pertemuan 5 Struktur Kontrol Percabangan Yudha Dwi P. N.
Overview Materi hari ini akan membahas mengenai bagaimana membuat program yang dapat mengambil keputusan berdasarkan input dari pengguna atau hasil dari suatu perhitungan Operator Relasional Struktur Kontrol : Percabangan Operator Logical Nested If
Operator Relasional Ada beberapa operator relasional : > : lebih besar >= : lebih besar atau sama dengan < : lebih kecil <= : lebih kecil atau sama dengan == : sama dengan != : tidak sama dengan
Operator Relasional Operator relasional melambangkan hubungan antara dua entitas Entitas tersebut bisa berupa variabel, konstanta maupun fungsi Nilai dari hubungan tersebut adalah TRUE atau FALSE
Operator Relasional Contoh : 5 > 3 bernilai benar (TRUE) 6 < 2 bernilai salah (FALSE) 45 != 34 bernilai benar (TRUE) (5 + 4) <= (3x3) bernilai benar (TRUE) 6/7 >= 12/17 bernilai benar (TRUE)
Operator Relasional Hasil dari operator relasional adalah nilai TRUE atau FALSE Nilai TRUE bernilai sama dengan 1, sedangkan FALSE bernilai sama dengan 0.
Operator Relasional #include <stdio.h> void main() { Contoh : #include <stdio.h> void main() { printf(“ 3 < 5 bernilai : %d\n”, 3 < 5); printf(“15 >= 3 * 5 bernilai : %d\n”, 15 >= 3 * 5); printf(“ 8 == 7 bernilai : %d\n”, 8==7); printf(“11<=5+4 bernilai : %d\n”, 11<=5+4); }
Operator Relasional Outputnya : 3 < 5 bernilai : 1
Struktur Kontrol : Percabangan Program dapat menentukan operasi/perintah mana yang akan dijalankan sesuai kondisi tertentu Bentuknya seperti pilihan atas alternatif-alternatif yang disediakan
Struktur Kontrol : Percabangan Ada 3 macam perintah percabangan di C If (kondisi) <statement> { … <statement> …} else { … <statement> …} switch (expression) { … <statement> … }
Struktur Kontrol : Percabangan Perintah percabangan pertama, sintaksnya : If (kondisi) <statement> (kondisi) diisi dengan operator relasional Contoh : (nilai > 80) <statement> adalah perintah yang dijalankan jika kondisi terpenuhi Contoh : printf(“Nilai anda : A”);
Struktur Kontrol : Percabangan Flowchart
Struktur Kontrol : Percabangan Lengkapnya menjadi : … if(nilai > 80) printf(“Nilai anda : A”);
Contoh kasus 1 Contoh: Algoritma menentukan apakah sebuah bilangan bulat merupakan bilangan genap. Algoritma BILANGAN_GENAP { Menentukan apakah sebuah bilangan bulat yang dibaca dari piranti masukan merupakan bilangan genap } DEKLARASI int bil; DESKRIPSI : scanf(bil); if bil mod 2 = 0 printf(‘bilangan genap’) endif
Contoh kasus 2 Program BILANGAN_GENAP; { Menentukan apakah sebuah bilangan bulat yang dibaca dari piranti masukan merupakan bilangan genap } (* DEKLARASI *) int bil; (* DESKRIPSI *) void main(){ Printf(‘Masukkan suatu bilangan bulat : ‘); scanf(bil); if (bil mod 2 = 0) printf(‘bilangan genap’); (*endif*) }
Struktur Kontrol : Percabangan Pada bentuk If (kondisi) <statement> Ada kemungkinan untuk menjalankan lebih dari 1 perintah, menjadi: If (kondisi) { … } Compound Statement
Struktur Kontrol : Percabangan Contoh: … if(nilai > 80) { printf(“selamat anda lulus alpro\n”); printf(“nilai anda : A”); }
Struktur Kontrol : Percabangan Perintah percabangan kedua, sintaksnya : if(kondisi) <statement A> else <statement B> Mirip dengan bentuk pertama, tapi yang ini ditambah dengan else, yang memuat perintah-perintah yang dijalankan jika (kondisi) tidak terpenuhi
Struktur Kontrol : Percabangan Dalam struktur IF-THEN-ELSE: aksi1 akan dilaksanakan jika kondisi bernilai benar (true) jika kondisi bernilai salah (false) maka aksi2 yang akan dilaksanakan Statemen else menyatakan ingkaran (negation) dari kondisi.
Contuh kasus 1 Algoritma MAKSIMUM { Menentukan bilangan terbesar dari dua bilangan bulat } DEKLARASI int A, B; DESKRIPSI : scanf(A,B) if (A >= B) printf (‘Bilangan terbesar : ’,A) else {B <=A } printf(‘Bilangan terbesar : ’,B) endif
Contuh kasus 2 program MAKSIMUM; { Menentukan bilangan terbesar dari dua bilangan bulat } (* DEKLARASI *) int A, B; (* DESKRIPSI *) Void main(){ scanf(‘Masukkan bilangan A : ‘);readln(A); scanf(‘Masukkan bilangan B : ‘);readln(B); if A > B then printf(‘Bilangan terbesar :%d ’,A) else printf(‘Bilangan terbesar : %d’,B); (*endif*) }
Struktur Kontrol : Percabangan Contoh: Bila jumlah membolos lebih dari 5 maka tampilkan pesan “tidak boleh ujian”, jika tidak maka tampilkan pesan “boleh ujian”. … if(bolos>5) printf(“tidak boleh ujian”); else printf(“boleh ujian);
Struktur Kontrol : Percabangan Jumlah alternatif kondisi <else> bisa lebih dari 1, seperti contoh berikut : … if(suhu>=100) printf(“berwujud gas”); else if(suhu<=0) printf(“wujud padat”); else printf(“wujud cair”);
Struktur Kontrol : Percabangan Pada C, kondisi yang bernilai tidak sama dengan 0 (nol) berarti bernilai TRUE, jika nilainya 0 maka bernilai FALSE. Contoh: If(4+5) bernilai TRUE Bagaimana dengan if(4-5)? Apa nilainya?
Struktur Kontrol : Percabangan Bentuk ketiga menggunakan switch Formatnya: switch(expression) { case <constant expr> : <statement>; break; … default : <statement>; }
Struktur Kontrol : Percabangan switch (expression) Expression di sini biasanya adalah variabel/fungsi Constant-expr : konstanta Berupa konstanta, misal ‘A’, 4, 20 dan sebagainya Kode program menjadi lebih mudah dibaca bila ditulis menggunakan switch dibanding if-else-if default : <statement> perintah yang dijalankan bila tidak memenuhi kriteria-kriteria yang ada
Struktur Kontrol : Percabangan Contoh: switch(nilai) { case ‘A’ : bobot = 4; break; case ‘B’ : bobot = 3; case ‘C’ : bobot = 2; default : bobot = 1; }
Struktur Kontrol : Percabangan Keyword break digunakan untuk keluar dari operasi switch. Jika tidak ditemukan break, maka operasi akan dilanjutkan ke constant-expression berikutnya.
Operator Logical Pada struktur kontrol percabangan, (kondisi) yang dicek selain menggunakan operator relasional juga dapat dikombinasikan dengan operator logical Operator logical : AND (&&), OR (||), NOT (!)
Operator Logical Operator precedence ! not * / perkalian dan pembagian < <= => > == != && AND || OR
Operator Logical Operator Logical AND A B A && B TRUE FALSE
Operator Logical Operator Logical OR A B A || B TRUE FALSE
Operator Logical Operator Logical NOT A !A TRUE FALSE
Operator Logical Apa nilai dari expression berikut ? (5==5)||(6==7) (!5)||(5>=6) && (3==3) !(4 < 3) && (5<=10) || (‘b’ < ‘d’) && (!0)
Operator Logical Kita dapat menggunakan operator logical untuk digunakan sebagai pengecekan kondisi pada percabangan if Contoh: if((nilai>40) && (nilai < 60)) printf(“nilai huruf : C”); else if((nilai > 61) && (nilai < 80)) printf(“nilai huruf : B”); else if(nilai > 81) printf(“nilai huruf : A”);
Nested If Jika diperlukan, kita bisa melalukan operasi percabangan dalam percabangan (nested if) Jika statement di dalam if tersebut lebih dari satu, maka perlu ditambahkan curly bracket { } untuk mengelompokkannya
Percabangan Kompleks Percabangan dimana kondisi pemilihan tidak hanya satu tetapi bisa terdiri dari banyak alternatif serta perintah-perintah yang dikerjakannya juga bisa lebih dari satu
Nested IF (1)
Nested IF (2)
Nested IF (3)
Nested IF (4)
Nested IF (5)
Nested IF (6)
Nested If : Contoh int a = 10; int b = 15; int c = 20; if(a>b) { if(a>c) printf(“a yang terbesar”); else printf(“c yang terbesar”); } else if (b>c) { if(b>a) printf(“b yang terbesar”); } else if(c>a) { if(c>b) }
Latihan Soal Latihan Soal Buatlah program untuk menentukan apakah penghasilan per bulan yang dimasukkan kena pajak atau tidak (kena pajak jika penghasilan setahun lebih besar sama dengan Rp. 15.600.000) Buatlah program untuk menentukan bilangan yang terletak di tengah antara tiga bilangan yang dimasukkan pengguna. Misal : 35, 12, 27 berarti bilangan yang di tengah adalah 27