Algoritme dan Pemrograman
description
Transcript of Algoritme dan Pemrograman
![Page 1: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/1.jpg)
Algoritme dan PemrogramanKuliah #5• Compound statement• Kontrol Program : IF, SWITCH,
WHILE
![Page 2: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/2.jpg)
Simple and Compound statement• Compound statement adalah beberapa pernyataan
sederhana (simple statements) yang diapit oleh tanda kurung kurawal {…}
• Contoh:#include <stdio.h>main(){ int i=0, j=1; printf("A"); i = i + 1; return 0;}
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR
compound statement
![Page 3: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/3.jpg)
Sequential structures• Proses terhadap suatu program yang terdiri dari
beberapa statement dilakukan berurutan secara sekuensial, satu per satu, mulai dari atas ke bawah sequential.
• Contoh: output program berikut adalah ABC#include <stdio.h>main(){ int i=0, j=1; printf("A"); i = i + 1; printf("B"); j = j + 1; printf("C"); return 0;} DEPARTEMEN ILMU KOMPUTER
INSTITUT PERTANIAN BOGOR
![Page 4: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/4.jpg)
Selection control structures•Program akan memilih satu atau lebih
statement untuk diproses atau tidak diproses berdasarkan kondisi tertentu.
•Kondisi dinyatakan sebagai ekspresi.•Pernyataan yang digunakan disebut
conditional statement.•Ada dua jenis:
▫Pernyataan IF▫Pernyataan SWITCH
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR
![Page 5: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/5.jpg)
Conditional statement:IFBentuk umum:if (kondisi) simple or compound statement;
atauif (kondisi) simple or compound statement;else simple or compound statement;
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR
![Page 6: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/6.jpg)
Conditional statement:IF
kondisi?
statements
TRUE
kondisi?
statements
TRUEstatements
FALSE FALSE
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR
![Page 7: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/7.jpg)
Pernyataan IF:Contoh #1
#include <stdio.h>main(){ int a, b; scanf("%d %d", &a, &b); if (a<b) printf("%d\n", b-a); printf("%d\n", a-b); return 0; }
• Apa output program jika diberi input 5 20 ?• Apa output program jika diberi input 20 5 ?DEPARTEMEN ILMU KOMPUTER
INSTITUT PERTANIAN BOGOR
-15 1515
![Page 8: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/8.jpg)
Pernyataan IF:Contoh #2
#include <stdio.h>main(){ int a, b; scanf("%d %d", &a, &b); if (a<b) { printf("%d\n", b-a); printf("%d\n", a-b); } return 0; }
• Apa output program jika diberi input 20 5 ?DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR
![Page 9: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/9.jpg)
Pernyataan IF:Contoh #3
#include <stdio.h>main(){ int a, b; scanf("%d %d", &a, &b); if (a<b) { printf("%d\n", b-a); printf (“a lebih kecil”); } else {printf("%d\n", a-b); printf (“a lebih besar”); } return 0; }
• Apa output program jika diberi input 5 20 ?• Apa output program jika diberi input 20 5 ? DEPARTEMEN ILMU KOMPUTER
INSTITUT PERTANIAN BOGOR
15 a lebih kecil
15 a lebih besar
![Page 10: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/10.jpg)
Conditional statement:Nested IF
• Struktur seleksi if yang bercabang dengan banyak kondisi.
• Contoh, berapa nilai b jika diberikan input 12?
scanf("%d", &a);if (a<5) b=1;else if (a<10) b=2;else if (a<15) b=3;else b=4;
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR
![Page 11: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/11.jpg)
IF Ya
Else IF
Tidak
Ya
Else IF
Tidak
Ya
Else
Tidak
Ya
Struktur else if : if(syarat){
…. perintah; …. perintah;
}else if(syarat){
…. perintah; …. perintah;
}else if(syarat){
…. perintah; …. perintah;
}else if(syarat){
…. perintah; …. perintah;
} else
{…. perintah;
…. perintah;}
else yang terakhir sifatnya ’optional’, boleh ada boleh juga tidak.
![Page 12: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/12.jpg)
IFYA TIDAK
IF IFYA TIDAK YA TIDAK
Bentuk Nested IF dengan banyak perintah : if(syarat){
…. perintah; …. perintah;
if(syarat){
…. perintah; …. perintah;
}else{
…. perintah; …. perintah;
}}else{
…. perintah; …. perintah;
if(syarat){
…. perintah; …. perintah;
} else
{…. perintah;
…. perintah;}
}
![Page 13: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/13.jpg)
Conditional statement:SWITCH• Struktur dengan banyak kondisi yang berbentuk ekspresi
logika kesamaan.• Perhatikan potongan program berikut (apa yang dilakukan?)
int bil, hasil; scanf("%d", &bil);
hasil = bil % 3; if (hasil==0) printf("NOL\n"); else if (hasil==1) printf("SATU\n"); else printf("DUA\n");
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR
![Page 14: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/14.jpg)
Conditional statement:SWITCHBentuk umum struktur SWITCH
switch(switch_expr){ case (constant expr1) : S1; S2; …; break; case (constant expr2) : S3; S4; …; break; ..... default : S5; S6; …; break;}
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR
![Page 15: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/15.jpg)
Conditional statement:SWITCHModifikasi program sebelumnya:
int bil, hasil; scanf("%d", &bil);
hasil = bil % 3; switch (hasil) { case 0: printf("NOL\n"); break; case 1: printf("SATU\n");break; default: printf("DUA\n"); break; }
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR
![Page 16: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/16.jpg)
Loop control structures•Program akan mengulang satu atau lebih
statement untuk diproses atau tidak diproses berdasarkan kondisi tertentu.
•Kondisi dinyatakan sebagai ekspresi.•Pernyataan yang digunakan disebut loop
statement.•Ada tiga jenis:
▫Pernyataan WHILE▫Pernyataan DO … WHILE▫Pernyataan FOR DEPARTEMEN ILMU KOMPUTER
INSTITUT PERTANIAN BOGOR
![Page 17: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/17.jpg)
Loop control structures:WHILE•Implementasi dari pernyataan: lakukan
sesuatu berulang-ulang selama kondisi bernilai true (berarti juga hentikan melakukan itu jika kondisi bernilai false).
•Format:
while (kondisi) simple or compound statement;
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR
![Page 18: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/18.jpg)
Loop control structures:WHILE
kondisi?
statement
TRUE
FALSE
while (kondisi) statement;
Pernyataan (statements) di dalam struktur WHILE akan diproses minimum NOL kali. Mengapa?
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR
![Page 19: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/19.jpg)
Loop control structures:WHILE•Perhatikan potongan program berikut:
int i=0;while (i<5) { printf("%d", i); i++;}
•Output program tersebut adalah:01234 DEPARTEMEN ILMU KOMPUTER
INSTITUT PERTANIAN BOGOR
![Page 20: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/20.jpg)
Loop control structures:WHILE• Apa output potongan program berikut?
int i=0;while (i<5) printf("%d", i++);
• Bagaimana dengan potongan program berikut?
int i=0;while (i++<5) printf("%d", i); DEPARTEMEN ILMU KOMPUTER
INSTITUT PERTANIAN BOGOR
01234
12345
![Page 21: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/21.jpg)
Latihan #1Apa output potongan program berikut jika diberikan input data 8 20 ? Apa yang dilakukan?
int a, b, t;scanf("%d %d", &a, &b);while (b) { t = a%b; a = b; b = t;}printf("%d\n", a); DEPARTEMEN ILMU KOMPUTER
INSTITUT PERTANIAN BOGOR
4
![Page 22: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/22.jpg)
Latihan #2Apa output potongan program berikut jika diberikan input data 8 20 3 -99 ? Apa yang dilakukan?
int bil, c=0;scanf("%d", &bil);while (bil!=-99) { c++; scanf("%d", &bil); }printf("%d\n", c); DEPARTEMEN ILMU KOMPUTER
INSTITUT PERTANIAN BOGOR
3
![Page 23: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/23.jpg)
Latihan #3Apa output potongan program berikut jika diberikan input data 9872 ? Apa yang dilakukan?
int bil, t=0;scanf("%d", &bil);while (bil) { t = (t*10) + (bil%10); bil/=10; }printf("%d\n", t);
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR
2789
![Page 24: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/24.jpg)
Latihan #4Suatu alat sensor dipasang pada tanaman apel untuk mengatur suplai air. Alat secara periodik menerima data berupa kandungan air tanah di sekitar tanaman. Jika alat tersebut menerima data kandungan air tanah kurang dari 4.5 satuan, maka alat akan menyuplai air dengan volume 0.12 liter. Demikian seterusnya sampai diperoleh data kandungan air tanah lebih besar atau samadengan 4.5 satuan dan alat akan berhenti sementara. Buat program C untuk menghitung total volume air yang disuplai sampai alat tersebut berhenti sementara. Output ditulis dalam dua desimal di belakang titik.
Contoh input : 1.2 4.2 4.3 4.4 5.2Contoh output : 0.48
Contoh input : 4.9Contoh output : 0.00 DEPARTEMEN ILMU KOMPUTER
INSTITUT PERTANIAN BOGOR
![Page 25: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/25.jpg)
float bil=0, jum=0;while (bil<4.5) { jum=jum+0.12; scanf("%d", &bil); }printf("%d\n", jum);
DEPARTEMEN ILMU KOMPUTER INSTITUT PERTANIAN BOGOR
![Page 26: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/26.jpg)
Latihan #5Seorang anak suka bermain dengan bilangan bulat. Jika diberikan bilangan bulat lebih besar atau samadengan 100, dia hanya akan mengambil digit paling kiri dan paling kanan untuk membentuk suatu bilangan baru dengan dua digit. Misalkan diberikan nilai 7895, dia membentuk bilangan baru yaitu 75. Selanjutnya, dia menuliskan sisa pembagian bilangan baru tersebut dengan 6 di kertas. Jika bilangan bulat yang diberikan kurang dari 100, maka dia tidak melakukan apa-apa. Buat program C untuk mendapatkan nilai seperti yang dituliskan anak tadi.
Contoh input : 7895 Contoh input : 37Contoh output : 3 Contoh output : DEPARTEMEN ILMU KOMPUTER
INSTITUT PERTANIAN BOGOR
![Page 27: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/27.jpg)
int kiri,kanan,bil,jum, i, sisa;scanf("%d", &bil);
kanan = bil % 10; while (bil>10) {
bil = bil/10; }
kiri = bil * 10;bil = kiri + kanan;
printf("%d\n", bil);
![Page 28: Algoritme dan Pemrograman](https://reader035.fdocuments.us/reader035/viewer/2022062816/56815a62550346895dc7a014/html5/thumbnails/28.jpg)
Latihan #6• int a=3, b=0;
while (b++<a) printf("%d", b);int a=3, b=0;while (++b<a) printf("%d", b);int a=5, b=0;while (b++<a) printf("%d", b++);int a=3, b=0;while (b=a--) printf("%d %d\n", a,b);int a=3, b=0;while (b=--a) printf("%d %d\n", a,b);int a=5, b, c;while (c=--a, b=a--) printf("%d %d %d\n", a,b,c);
1 2 3
1 2
2 31 20 1
2 21 1
1 3 5
3 4 41 2 2