7 Algoritma Dan Pemrograman Komputer 7
-
Upload
arif-usman -
Category
Documents
-
view
21 -
download
3
description
Transcript of 7 Algoritma Dan Pemrograman Komputer 7
27/09/2011
Ditulis oleh Endro Purnomo 1
Algoritma dan Pemrograman KomputerAlgoritma dan Pemrograman Komputer3 SKS3 SKS
1
Pertemuan ke Pertemuan ke 77
dosendosenEndro PurnomoEndro Purnomo
Program Studi Pendidikan MatematikaProgram Studi Pendidikan MatematikaUniversitas Muhammadiyah PurworejoUniversitas Muhammadiyah Purworejo
S1 Ilmu Komputer UGM
S2 Master of Computer Science UGM (studi)
Cisco Certified Network Associate
Email : [email protected]
YM and Gtalk : endrosri
Website : www.lintassolusi.com
Blog : blog.lintassolusi.com
2
Endro PurnomoEndro Purnomo
27/09/2011
Ditulis oleh Endro Purnomo 2
Struktur KendaliStruktur Kendali
1. Percabangan / Pemilihan
2. Perulangan / Looping
3
Percabangan / PemilihanPercabangan / Pemilihan
4
27/09/2011
Ditulis oleh Endro Purnomo 3
Percabangan / PemilihanPercabangan / Pemilihan
Adalah perintah yang memungkinkan pemilihan atasperintah yang akan dijalankan sesuai dengan kondisitertentu.
Ada tiga macam perintah percabangan dalam C:
� if (kondisi) { …}
� if (kondisi) { …} else { …}
� switch (kondisi) { …}
5
Percabangan / Pemilihan [Cont.2]Percabangan / Pemilihan [Cont.2]
Percabangan (brancing) di dalam pemrogramandigunakan oleh komputer untuk menentukan langkahkerja. Percabangan menggunakan operator kondisionalyang akan menghasilkan nilai benar/true/1atausalah/false/0.
Jika nilai yang dihasilkan benar, maka akan perintahakan dilaksanakan, sedangkan jika salah, maka instruksitidak akan dilaksanakan.
6
27/09/2011
Ditulis oleh Endro Purnomo 4
Percabangan / Pemilihan [Cont.3]Percabangan / Pemilihan [Cont.3]Contoh:
� 9 > 5, pasti selalu bernilai TRUE
� N > 60, belum tentu benar, tergantung nilai N,sehingga terdapat alternatif pilihan yang dihasilkan,TRUE atau FALSE.
Cobalah:
� printf( “%d”, 5>9); //akan menghasilkan nilai 0
� printf(“%d”, 10>2); //akan menghasilkan nilai 1
Di dalam bahasa C, tidak dikenal variabel boolean, yangada adalah 0 (salah) dan 1 (benar) sehingga digunakan %duntuk menampilkan hasil kondisi, karena bertipe numerik
7
IF SederhanaIF Sederhana
Bentuk Umum
if (<kondisi>) <perintah yang dikerjakan jika benar>;
Contoh
x=100;
y=10;
If (x>y)
{
printf(“x lebih besar dari y”);
}
8
27/09/2011
Ditulis oleh Endro Purnomo 5
IF ... ELSE ...IF ... ELSE ...
Bentuk Umum
if (<kondisi>)
<perintah yang dikerjakan jika benar>;
else
<perintah yang dikerjakan jika salah>;
Contoh
x=100;
y=10;
If (x>y)
printf(“%d lebih besar dari %d”,x,y);
else
printf(“%d tidak lebih besar dari %d”,x,y);
9
Bentuk IF lainBentuk IF lain
#include<stdio.h>
void main()
{
int a;
10>2&&2<1?a=1:a=0;
printf (“%d”,a);
}
Jawab : 0
Karena pernyataan 10>2&&2<1 bernilai FALSE sehinggaperintah a=0 yang akan dikerjakan
10
27/09/2011
Ditulis oleh Endro Purnomo 6
IF ... ELSE ... Statement JamakIF ... ELSE ... Statement Jamak
if (<kondisi>)
{
<perintah 1 yang dikerjakan jika benar>;
<perintah 2 yang dikerjakan jika benar>;
<perintah 3 yang dikerjakan jika benar>;
...
<perintah n yang dikerjakan jika benar>;
}
else
{
<perintah 1 yang dikerjakan jika salah>;
<perintah 2 yang dikerjakan jika salah>;
<perintah 3 yang dikerjakan jika salah>;
...
<perintah n yang dikerjakan jika salah>;
} 11
SoalSoal--SoalSoal
� Buatlah program untuk memeriksa suatu bilangangenap atau ganjil
� Buatlah program untuk memeriksa bilanganterbesar dari 2 bilangan
� Buatlah program untuk memvalidasi umur (1-100tahun)
� Buatlah program untuk mengecek apakah suatu segitiga sama sisi atau bukan!
� Buatlah program untuk memeriksa apakahpemasukkan lebih besar / kecil dari pengeluaran
12
27/09/2011
Ditulis oleh Endro Purnomo 7
Percabangan KompleksPercabangan Kompleks
Percabangan dimana kondisi pemilihan tidak hanya satutetapi bisa terdiri dari banyak alternatif serta perintah-perintah yang dikerjakannya juga bisa lebih dari satu.
� IF Bersarang (Nested IF)
� IF Bertingkat
13
IF Bersarang (Nested IF)IF Bersarang (Nested IF)
14
27/09/2011
Ditulis oleh Endro Purnomo 8
IF Bersarang (Nested IF) [Cont.2]IF Bersarang (Nested IF) [Cont.2]
15
IF Bersarang (Nested IF) [Cont.3]IF Bersarang (Nested IF) [Cont.3]
16
27/09/2011
Ditulis oleh Endro Purnomo 9
IF Bersarang (Nested IF) [Cont.4]IF Bersarang (Nested IF) [Cont.4]
17
IF Bersarang (Nested IF) [Cont.5]IF Bersarang (Nested IF) [Cont.5]
18
27/09/2011
Ditulis oleh Endro Purnomo 10
IF Bersarang (Nested IF) [Cont.6]IF Bersarang (Nested IF) [Cont.6]
19
IF BertingkatIF Bertingkatif (<kondisi1>)
{
<perintah 1 dikerjakan jika benar>;
}
else if (<kondisi2>)
{
<perintah 2 dikerjakan jika benar>;
}
else if (<kondisi3>)
{
<perintah 3 dikerjakan jika benar>;
}
...
else if (<kondisi4>)
{
<perintah 4 dikerjakan jika benar>;
}20
27/09/2011
Ditulis oleh Endro Purnomo 11
Bedakan denganBedakan denganif (<kondisi1>)
{
<perintah 1 dikerjakan jika benar>;
}
if (<kondisi2>)
{
<perintah 2 dikerjakan jika benar>;
}
if (<kondisi3>)
{
<perintah 3 dikerjakan jika benar>;
}
...
if (<kondisi4>)
{
<perintah 4 dikerjakan jika benar>;
}21
Percabangan dengan SwitchPercabangan dengan Switch
Perintah ini digunakan sebagai alternatif pengganti darisintaks if …else secara sederhana dimana alternatifpilihan bisa lebih dari satu.
Namun switch tidak bisa digunakan untuk pilihan yangmengandung suatu kondisi tertentu.
Dengan perintah ini program percabangan akansemakin mudah dibuat dan dipelajari
22
27/09/2011
Ditulis oleh Endro Purnomo 12
Switch dengan breakSwitch dengan break
Bentuk Umum
switch (<variabel>)
{
case <konstanta 1> : <perintah 1>; break;
case <konstanta 2> : <perintah 2>; break;
case <konstanta 3> : <perintah 3>; break;
...
case <konstanta n> : <perintah n>; break;
default : <perintah default>;
}
23
Bedakan dengan Switch tanpa breakBedakan dengan Switch tanpa break
switch (<variabel>)
{
case <konstanta 1> : <perintah 1>;
case <konstanta 2> : <perintah 2>;
case <konstanta 3> : <perintah 3>;
...
case <konstanta n> : <perintah n>;
default : <perintah default>;
}
Perintah break digunakan untuk keluar daristruktur kendali percabangan/pemilihan danperulangan
24
27/09/2011
Ditulis oleh Endro Purnomo 13
Flowchart switch dengan breakFlowchart switch dengan break
25
Karakteristik SwitchKarakteristik Switch
� Perintah switch akan menyeleksi kondisi yang diberikan dankemudian membandingkan hasilnya dengan konstanta-konstanta yang berada di case.
� Pembandingan akan dimulai dari konstanta 1 sampaikonstanta terakhir.
� Jika hasil dari kondisi sama dengan nilai konstanta tertentu,misalnya konstanta 1, maka pernyataan 1 akan dijalankansampai ditemukan break.
� Pernyataan break akan membawa proses keluar dariperintah switch. Jika hasil dari kondisi tidak ada yang samadengan konstanta-konstanta yang diberikan, makapernyataan pada default akan dijalankan
26
27/09/2011
Ditulis oleh Endro Purnomo 14
Contoh program dengan switchContoh program dengan switch#include<stdio.h>
void main()
{
int hari;
printf("Hari ini adalah hari ke ");
scanf("%d",&hari);
printf("yaitu hari ");
switch(hari)
{
case 1 : printf("Minggu");break;
case 2 : printf("Senin");break;
case 3 : printf("Selasa");break;
case 4 : printf("Rabu");break;
case 5 : printf("Kamis");break;
case 6 : printf("Jumat");break;
case 7 : printf("Minggu");break;
default : printf("Tidak ada hari lebih dari 7");
}
printf("\n");
system("pause");27
Contoh program dengan switchContoh program dengan switch#include<stdio.h>
void main()
{
int hari;
printf("Hari ini adalah hari ke ");
scanf("%d",&hari);
printf("yaitu hari ");
switch(hari)
{
case 1 : printf("Minggu");break;
case 2 : printf("Senin");break;
case 3 : printf("Selasa");break;
case 4 : printf("Rabu");break;
case 5 : printf("Kamis");break;
case 6 : printf("Jumat");break;
case 7 : printf("Minggu");break;
default : printf("Tidak ada hari lebih dari 7");
}
printf("\n");
system("pause");28
27/09/2011
Ditulis oleh Endro Purnomo 15
SoalSoal--SoalSoal
� Buatlah konversi nilai huruf dari nilai yangdiinputkan user
• A = 80-100
• B = 65-79
• C = 50-64
• D = 35-49
• E = 0-34
29
SoalSoal--SoalSoal
� Buatlah program yang menerima inputan 3 buahpanjang sisi segitiga, kemudian:
• Jika segitiga tersebut sama sisi katakan SEGITIGASAMA SISI
• Jika segitiga tersebut sama kaki katakanSEGITIGA SAMA KAKI
• Jika bukan keduanya katakan SEGITIGASEMBARANG
30