540 likes | 910 Views
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
E N D
AlgoritmadanDasarPemograman Pertemuan5 StrukturKontrolPercabangan YudhaDwi 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 • 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 15>=3*5 bernilai : 1 8==7 bernilai : 0 11<=5+4 bernilai : 0
StrukturKontrol : Percabangan • Program dapatmenentukanoperasi/perintahmana yang akandijalankansesuaikondisitertentu • Bentuknyasepertipilihanatasalternatif-alternatif yang disediakan
StrukturKontrol : Percabangan • Ada 3 macam perintah percabangan di C • If (kondisi) <statement> • If (kondisi) { … <statement> …} else { … <statement> …} • switch (expression) { … <statement> … }
StrukturKontrol : 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”);
StrukturKontrol : Percabangan Flowchart
StrukturKontrol : Percabangan • Lengkapnya menjadi : … if(nilai > 80) printf(“Nilai anda : A”);
Contohkasus 1 Contoh: Algoritmamenentukanapakahsebuah bilangan bulat merupakan bilangan genap. Algoritma BILANGAN_GENAP { Menentukanapakahsebuahbilanganbulat yang dibacadaripirantimasukanmerupakanbilangangenap } DEKLARASI intbil; DESKRIPSI : scanf(bil); if bil mod 2 = 0 printf(‘bilangangenap’) endif
Contohkasus 2 Program BILANGAN_GENAP; { Menentukanapakahsebuahbilanganbulatyang dibacadaripirantimasukanmerupakanbilangangenap } (* DEKLARASI *) intbil; (* DESKRIPSI *) void main(){ Printf(‘Masukkan suatu bilangan bulat : ‘); scanf(bil); if (bilmod 2 = 0) printf(‘bilangangenap’); (*endif*) }
StrukturKontrol : Percabangan • Padabentuk If (kondisi) <statement> • Adakemungkinanuntukmenjalankanlebihdari 1 perintah, menjadi: If (kondisi) { … <statement> … } Compound Statement
StrukturKontrol : Percabangan • Contoh: … if(nilai > 80) { printf(“selamat anda lulus alpro\n”); printf(“nilai anda : A”); }
StrukturKontrol : 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
StrukturKontrol : Percabangan DalamstrukturIF-THEN-ELSE: • aksi1 akan dilaksanakan jika kondisi bernilai benar(true) • jika kondisi bernilai salah (false) maka aksi2 yang akandilaksanakan • Statemen else menyatakaningkaran (negation) darikondisi.
Contuhkasus 1 Algoritma MAKSIMUM { Menentukanbilanganterbesardariduabilanganbulat } DEKLARASI int A, B; DESKRIPSI : scanf(A,B) if (A >= B) printf (‘Bilanganterbesar : ’,A) else {B <=A } printf(‘Bilanganterbesar : ’,B) endif
Contuhkasus 2 program MAKSIMUM; { Menentukan bilangan terbesar dari dua bilangan bulat } (* DEKLARASI *) intA, B; (* DESKRIPSI *) Void main(){ scanf(‘Masukkanbilangan A : ‘);readln(A); scanf(‘Masukkanbilangan B : ‘);readln(B); if A > B then printf(‘Bilanganterbesar:%d ’,A) else printf(‘Bilanganterbesar : %d’,B); (*endif*) }
StrukturKontrol : Percabangan • Contoh: Bilajumlahmemboloslebihdari 5 makatampilkanpesan “tidakbolehujian”, jikatidakmakatampilkanpesan “bolehujian”. … if(bolos>5) printf(“tidakbolehujian”); else printf(“bolehujian);
StrukturKontrol : Percabangan • Jumlahalternatifkondisi <else> bisalebihdari 1, seperticontohberikut : … if(suhu>=100) printf(“berwujud gas”); else if(suhu<=0) printf(“wujudpadat”); else printf(“wujudcair”);
StrukturKontrol : 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?
StrukturKontrol : Percabangan • Bentukketigamenggunakan switch • Formatnya: switch(expression) { case <constant expr> : <statement>; break; … case <constant expr> : <statement>; break; default : <statement>; }
StrukturKontrol : Percabangan • switch (expression) • Expression disinibiasanyaadalahvariabel/fungsi • Constant-expr : konstanta • Berupakonstanta, misal ‘A’, 4, 20 dansebagainya • Kode program menjadilebihmudahdibacabiladitulismenggunakan switch dibanding if-else-if • default : <statement> perintah yang dijalankanbilatidakmemenuhikriteria-kriteria yang ada
StrukturKontrol : Percabangan • Contoh: switch(nilai) { case ‘A’ : bobot = 4; break; case ‘B’ : bobot = 3; break; case ‘C’ : bobot = 2; break; default : bobot = 1; }
StrukturKontrol : 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 * / perkaliandanpembagian < <= => > == != && AND || OR
Operator Logical • Operator Logical AND
Operator Logical • Operator Logical OR
Operator Logical • Operator Logical NOT
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 dapatmenggunakan operator logical untukdigunakansebagaipengecekankondisipadapercabangan if • Contoh: if((nilai>40) && (nilai < 60)) printf(“nilaihuruf : C”); else if((nilai > 61) && (nilai < 80)) printf(“nilaihuruf : B”); else if(nilai > 81) printf(“nilaihuruf : 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
PercabanganKompleks Percabangandimanakondisipemilihantidakhanyasatutetapibisaterdiridaribanyakalternatifsertaperintah-perintah yang dikerjakannyajugabisalebihdarisatu
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 printf(“a yang terbesar”); } else if(c>a) { if(c>b) printf(“c yang terbesar”); else printf(“b yang terbesar”); }
LatihanSoal • LatihanSoal • Buatlah program untukmenentukanapakahpenghasilan per bulan yang dimasukkankenapajakatautidak(kenapajakjikapenghasilansetahunlebihbesarsamadenganRp. 15.600.000) • Buatlah program untukmenentukanbilangan yang terletakditengahantaratigabilangan yang dimasukkanpengguna. Misal : 35, 12, 27 berartibilangan yang ditengahadalah 27