Struktur dasar & Perintah dasar

82
Semester genap 2011/2012 Algoritma&Pemrograman STRUKTUR DASAR & PERINTAH DASAR Prima Dewi P, AAP Ratna, Dodi Sudiana

description

Struktur dasar & Perintah dasar. Prima Dewi P, AAP Ratna , Dodi Sudiana. Outline. Introduction Algoritma , pseudocode Basic program structure User friendly program Basic selection structure using IF Repetition structure using while using for and do..while - PowerPoint PPT Presentation

Transcript of Struktur dasar & Perintah dasar

Page 1: Struktur dasar  &  Perintah dasar

Semester genap2011/2012

Algoritma&Pemrograman

STRUKTUR DASAR & PERINTAH DASARPrima Dewi P, AAP Ratna, Dodi Sudiana

Page 2: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

2

Outline

Introduction Algoritma, pseudocode Basic program structure

User friendly program Basic selection structure using IF Repetition structure

using while using for and do..while

Selection structure using switch Break and continue statement

Page 3: Struktur dasar  &  Perintah dasar

3 Introduction

Page 4: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Pendahuluan4

Sebelum membuat program: Harus memahami masalah yang

dihadapi definisi dan deskripsi masalah

Membuat perencanaan yang baik (Algoritma) untuk menyelesaikannya.

Page 5: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Algoritma5

Permasalahan komputasi Dapat diselesaikan dengan mejalankan

sekumpulan kegiatan dalam urutan tertentu. Dengan cara Pengendalian Program

Page 6: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Pseudocode6

Pseudocode Bahasa buatan yang tidak formal dimana

dapat membantu untuk mengembangkan algoritma

Dapat menggunakan bahasa sehari-hari Tidak dapat dijalankan dengan komputer Membantu ‘membuat’ program sebelum

membuat codingnya. Mudah untuk diterjemahkan ke dalam bentuk

bahasa pemrograman

Page 7: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

7

Perintah Dasar

Menyatakan algoritma Alur pemecahan masalah Mudah diimplementasi dengan bahasa pemrograman

Singkat, jelas, terstruktur, fleksibel

Konsep pengolahan data berbasis Komputer

Page 8: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

8

Perintah Dasar dalam pseudocode

Perintah-perintah dasar yang dapat digunakan pada pseudocode

Perintah Lambang

penulisan tulis/printf/writepembacaan baca/scanf/readpemuatan (assignment) =pengulangan while…(do)-ewhilepencabangan if…(then)-else-eif

Page 9: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

9

Struktur Dasar

Bohm dan Jacopini Seluruh program dapat ditulis dalam 3 struktur pengendali: Struktur berurut (sequence structure) Struktur seleksi/percabangan

(selection structure): if, if…else, and switch

Struktur pengulangan (repetition structure): while, do…while and for

Page 10: Struktur dasar  &  Perintah dasar

10 User friendly program

Page 11: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

11

Program yang akrab (User friendly)

Komunikatif Mudah digunakan (memberikan Fasilitas

Kemudahan bagi pemakai) Petunjuk singkat penggunaan program Pernyataan error Cara mengatasi kesalahan Fasilitas Help

Singkat, jelas, terstruktur dan fleksibel

Page 12: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Hal-hal penting yang dapat membuat program User friendly

12

Tujuan/Judul program Petunjuk pengoperasian program Pesan kesalahan Keterangan Siap Panggil Tataletak peragaan Hemat kegiatan Fleksibel

Page 13: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Contoh program yang user friendly13

/*Peragakan petunjuk pengoperasian*/Write (‘Menghitung rata-rata bilangan positif \n

======================================= \n - Masukkan sembarang bil. Positif atau \n

negatif diakhiri dengan <enter> \n - Masukkan nol untuk menandakan bilangan\n

terakhir \n ----------------------------------------\n’)

/*Inisialisasi*/n = 0jumlah = 0

Page 14: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

14

/*Penjumlahan bilangan positif*/read (bil) while (bil<> 0) do

if (bil > 0) thenjumlah = jumlah + biln = n + 1

eif read (bil)

Ewhile

/*Penulisan hasil perhitungan*/If (n <>) 0 then

write (n, jumlah, jumlah/n)eif

Page 15: Struktur dasar  &  Perintah dasar

15 Basic selection structure

Page 16: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Struktur berurut (sequence structure)16

Eksekusi urutan/pernyataan tidak bersyarat

Proses A

Proses B

Proses C

Page 17: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Struktur seleksi/percabangan (selection structure)

17

Tidak setiap baris program akan dikerjakan Hanya yang memenuhi syarat (kondisi)

Syarat/kondisi terdiri dari operand-operand yang dihubungkan dengan operator relasi dan operator logika

Pengalihan pengendalian Bila perintah yang dijalankan adalah bukan perintah

berikutnya dalam urutan program

Hindari perintah ‘goto’ menimbulkan banyak masalah

Page 18: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

18

Struktur seleksi/percabangan (selection structure)

Kondisi/syarat berisi pernyataan Boolean, yang dapat bernilai benar (true) atau salah (false)

Menggunakan perintah: if If else switch

Page 19: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Pernyataan Seleksi if19

Digunakan untuk memilih alur alternatif Contoh Pseudocode:

If nilai mahasiswa lebih besar atau sama dengan 60Print “lulus”

Jika kondisi true (benar) Pernyataan Print dijalankan dan program

akan meneruskan ke perintah berikutnya. Jika false, pernyataan print diabaikan

dan menjalankan perintah berikutnya.

Page 20: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Mengubah pseudocode if menjadi program C

20

Pseudocode:If nilai mahasiswa lebih besar atau sama

dengan 60Print “lulus”

Bahasa C:if ( grade >= 60 ) printf( "Passed\n" );

Kondisi yang diseleksi

Page 21: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

21

Flowchart if

Digunakan untuk seleksi

Hasilnya: benar atau salah

Menguji kondisi dan mengikuti jalur yang tepat.

Simbol Berlian (decision symbol)

Apakah Nilai >= 60 ?

Cetak ‘LULUS’YA

TIDAK

Page 22: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Seleksi dengan if…else22

if Hanya melaksanakan aksi bila kondisinya

adalah benar/true if…else

Melaksanakan suatu aksi untuk kedua kondisi, baik benar/true atau salah/false

Page 23: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Mengubah pseudocode if..else menjadi program C

23

Pseudocode:If nilai siswa lebih besar atau sama dengan 60

Print “Lulus”else

Print “Gagal” Code C:

if ( nilai >= 60 ) printf( “Lulus\n“ );else printf( “Gagal\n“ );

Page 24: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

24

Flowchart if..else

Apakah Nilai >= 60 ?

Cetak ‘LULUS’YATIDAK

Cetak ‘Gagal’

Page 25: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Pernyataan if…else bersarang25

Pernyataan if…else di dalam pernyataan if…else

Struktur ini digunakan apabila ada banyak kemungkinan kondisi yang diseleksi Satu kondisi terpenuhi, yang lain di-skip

Page 26: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

26

PseudocodeIf student’s grade is greater than or equal to 90

Print “A”else

If student’s grade is greater than or equal to 80 Print “B”else If student’s grade is greater than or equal to 70

Print “C” else If student’s grade is greater than or equal to

60 Print “D” else Print “F”

Pernyataan if…else bersarang

Page 27: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Jenis kesalahan27

Syntax errors Caught by compiler

Logic errors: Have their effect at execution time Non-fatal: program runs, but has incorrect

output Fatal: program exits prematurely

Page 28: Struktur dasar  &  Perintah dasar

28

Selection Structure using ifif

Only performs an action if the condition is true

if…elseSpecifies an action to be performed both when the condition

is true and when it is false

Nested if..elseTest for multiple cases by placing if…else selection

statements inside if…else selection statement

Once condition is met, rest of statements skipped

What we have learned so far..

Page 29: Struktur dasar  &  Perintah dasar

29Repetition structure using while

Page 30: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

30

Struktur perulangan (Repetition structure)

Sejumlah aksi harus dilaksanakan berulang kali selama kondisi bernilai benar (true)

Dapat dibuat dengan while for do…while (equal to repeat…until)

Page 31: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

31

Repetition Essentials

Counter-controlled repetition Definite repetition: jumlah perulangan

diketahui Control variable digunakan untuk

menghitung jumlah perulangan Sentinel-controlled repetition

Indefinite repetition: jumlah perulangan tidak diketahui

Sentinel value digunakan untuk menyatakan akhir data

Page 32: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

32

Counter-Controlled Repetition

Counter-controlled repetition requires1. The name of a control variable (or loop

counter)2. The initial value of the control variable3. An increment (or decrement) by which the

control variable is modified each time through the loop

4. A condition that tests for the final value of the control variable (i.e., whether looping should continue)

Page 33: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

33

Contoh

Sepuluh orang mahasiswa mengikuti kuis. Range nilai yang diberikan adalah 0-100. User (dosen) akan diminta memasukkan nilai yang didapat oleh seluruh mahasiswa. Program akan menentukan rata-rata nilai kuis yang diperoleh

Page 34: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

34

1 Set total to zero

2 Set grade counter to one

3

4 While grade counter is less than or equal to ten

5 Input the next grade

6 Add the grade into the total

7 Add one to the grade counter

8

9 Set the class average to the total divided by ten 10 Print the class average

Fig. 3.5 | Pseudocode algorithm that uses counter-controlled repetition to

solve the class average problem.

Page 35: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

35

Counter-Controlled Repetition using While

Format for while repetitioninitialization;while ( loopContinuationTest ) { statement; increment;}

Example: int counter = 1; // control variable & initializationwhile ( counter <= 10 ) { // repetition condition printf( "%d\n", counter ); ++counter; // increment}

Page 36: Struktur dasar  &  Perintah dasar

36

1 /* Fig. 3.6: fig03_06.c

2 Class average program with counter-controlled repetition */

3 #include <stdio.h>

4

5 /* function main begins program execution */

6 int main( void )

7 {

8 int counter; /* number of grade to be entered next */

9 int grade; /* grade value */

10 int total; /* sum of grades input by user */

11 int average; /* average of grades */

12

13 /* initialization phase */

14 total = 0; /* initialize total */

15 counter = 1; /* initialize loop counter */

16

17 /* processing phase */

18 while ( counter <= 10 ) { /* loop 10 times */

19 printf( "Enter grade: " ); /* prompt for input */

20 scanf( "%d", &grade ); /* read grade from user */

21 total = total + grade; /* add grade to total */

22 counter = counter + 1; /* increment counter */

23 } /* end while */

Outline

fig03_06.c

(1 of 2 )

Counter to control while loop

Initialize counter to 1

while loop iterates as long as counter <= 10

Increment the counter

Page 37: Struktur dasar  &  Perintah dasar

37

24

25 /* termination phase */

26 average = total / 10; /* integer division */

27

28 printf( "Class average is %d\n", average ); /* display result */

29

30 return 0; /* indicate program ended successfully */

31

32 } /* end function main */ Enter grade: 98 Enter grade: 76 Enter grade: 71 Enter grade: 87 Enter grade: 83 Enter grade: 90 Enter grade: 57 Enter grade: 79 Enter grade: 82 Enter grade: 94 Class average is 81

Outline

fig03_06.c

(2 of 2 )

Calculate the average

Page 38: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

38

Sentinel-controlled repetition

Contoh:

User (dosen) akan diminta memasukkan nilai yang didapat oleh seluruh mahasiswa. Range nilai yang diberikan adalah 0-100. Jumlah mahasiswa belum diketahuti (tidak terbatas). Program akan menentukan rata-rata nilai kuis yang diperoleh.

Soal ini mirip dengan contoh sebelumnya. Bedanya hanyalah perulangan tidak diketahui (indefinite loop). Oleh karena itu dibutuhkan sentinel value

Page 39: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

39

Fig. 3.7 | Pseudocode algorithm that uses sentinel-controlled repetition to

solve the class average problem.

1 Initialize total to zero

2 Initialize counter to zero

3

4 Input the first grade

5 While the user has not as yet entered the sentinel

6 Add this grade into the running total

7 Add one to the grade counter

8 Input the next grade (possibly the sentinel)

9

10 If the counter is not equal to zero

11 Set the average to the total divided by the counter

12 Print the average

13 else 14 Print “No grades were entered”

Page 40: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

40

Bagaimana cara menentukan Sentinel?

Nilai sentinel yang ditentukan harus memiliki tipe yang sama dengan input yang dimasukkan, namun berada diluar range nilai yang benar Nilai input yang dimasukkan berupa angka

integer 0-100. Sehingga dapat dipilih nilai -1 yang berada diluar range nilai mahasiswa

Page 41: Struktur dasar  &  Perintah dasar

41

1 /* Fig. 3.8: fig03_08.c

2 Class average program with sentinel-controlled repetition */

3 #include <stdio.h>

4

5 /* function main begins program execution */

6 int main( void )

7 {

8 int counter; /* number of grades entered */

9 int grade; /* grade value */

10 int total; /* sum of grades */

11

12 float average; /* number with decimal point for average */

13

14 /* initialization phase */

15 total = 0; /* initialize total */

16 counter = 0; /* initialize loop counter */

17

18 /* processing phase */

19 /* get first grade from user */

20 printf( "Enter grade, -1 to end: " ); /* prompt for input */

21 scanf( "%d", &grade ); /* read grade from user */

22

Outline

fig03_08.c

(1 of 3 )

float type indicates variable can be a non-integer

Page 42: Struktur dasar  &  Perintah dasar

42

23 /* loop while sentinel value not yet read from user */

24 while ( grade != -1 ) {

25 total = total + grade; /* add grade to total */

26 counter = counter + 1; /* increment counter */

27

28 /* get next grade from user */

29 printf( "Enter grade, -1 to end: " ); /* prompt for input */

30 scanf("%d", &grade); /* read next grade */

31 } /* end while */

32

33 /* termination phase */

34 /* if user entered at least one grade */

35 if ( counter != 0 ) {

36

37 /* calculate average of all grades entered */

38 average = ( float ) total / counter; /* avoid truncation */

39

40 /* display average with two digits of precision */

41 printf( "Class average is %.2f\n", average );

42 } /* end if */

43 else { /* if no grades were entered, output message */

44 printf( "No grades were entered\n" );

45 } /* end else */

46

47 return 0; /* indicate program ended successfully */

48

49 } /* end function main */

Outline

fig03_08.c

(2 of 3 )

while loop repeats until user enters a value of -1

Ensures the user entered at least one grade

Prints result with 2 digits after decimal point

Converts total to float type

Page 43: Struktur dasar  &  Perintah dasar

43

Enter grade, -1 to end: 75 Enter grade, -1 to end: 94 Enter grade, -1 to end: 97 Enter grade, -1 to end: 88 Enter grade, -1 to end: 70 Enter grade, -1 to end: 64 Enter grade, -1 to end: 83 Enter grade, -1 to end: 89 Enter grade, -1 to end: -1 Class average is 82.50

Enter grade, -1 to end: -1 No grades were entered

Outline

fig03_08.c

(3 of 3 )

Page 44: Struktur dasar  &  Perintah dasar

44 More repetition structure

Page 45: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

45

Counter-Controlled Repetition using For

Hanya bisa digunakan untuk jumlah perulangan yang diketahui (definite repetition)

Format:for ( initialization; loopContinuationTest; increment

or decrement ) statement

Example: for( int counter = 1; counter <= 10; counter++ )

printf( "%d\n", counter );

Prints the integers from one to ten

Page 46: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

46

Counter-Controlled Repetition using For

Fig. 4.3 | for statement header components.

Page 47: Struktur dasar  &  Perintah dasar

47

1 /* Fig. 4.2: fig04_02.c 2 Counter-controlled repetition with the for statement */ 3 #include <stdio.h> 4

5 /* function main begins program execution */ 6 int main( void ) 7 { 8 int counter; /* define counter */ 9

10 /* initialization, repetition condition, and increment 11 are all included in the for statement header. */ 12 for ( counter = 1; counter <= 10; counter++ ) { 13 printf( "%d\n", counter ); 14 } /* end for */ 15

16 return 0; /* indicate program ended successfully */ 17

18 } /* end function main */

Outline

fig04_02.c

for loop begins by setting counter to 1 and repeats while counter <= 10. Each time the end of the loop is reached, counter is incremented by 1.

Page 48: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

48

Fig. 4.4 | Flowcharting a typical for repetition statement.

Page 49: Struktur dasar  &  Perintah dasar

49

1 /* Fig. 4.5: fig04_05.c 2 Summation with for */ 3 #include <stdio.h> 4

5 /* function main begins program execution */ 6 int main( void ) 7 { 8 int sum = 0; /* initialize sum */ 9 int number; /* number to be added to sum */ 10

11 for ( number = 2; number <= 100; number += 2 ) { 12 sum += number; /* add number to sum */ 13 } /* end for */ 14

15 printf( "Sum is %d\n", sum ); /* output sum */ 16

17 return 0; /* indicate program ended successfully */

18

19 } /* end function main */ Sum is 2550

Outline

fig04_05.c

Note that number has a different value each time this statement is executed

Page 50: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

50

do…while Repetition Statement

The do…while repetition statement Similar to the while structure Condition for repetition only tested after

the body of the loop is performed All actions are performed at least once

Format: do { statement; } while ( condition );

Page 51: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

51

do…while Repetition Statement

Example (letting counter = 1): do { printf( "%d ", counter ); } while (++counter <= 10);

Prints the integers from 1 to 10

Page 52: Struktur dasar  &  Perintah dasar

52

1 /* Fig. 4.9: fig04_09.c 2 Using the do/while repetition statement */ 3 #include <stdio.h> 4

5 /* function main begins program execution */ 6 int main( void ) 7 { 8 int counter = 1; /* initialize counter */ 9

10 do { 11 printf( "%d ", counter ); /* display counter */ 12 } while ( ++counter <= 10 ); /* end do...while */ 13

14 return 0; /* indicate program ended successfully */ 15

16 } /* end function main */ 1 2 3 4 5 6 7 8 9 10

Outline

fig04_09.c

increments counter then checks if it is less than or equal to 10

Page 53: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

53

Fig. 4.10 | Flowcharting the do...while repetition statement.

Page 54: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

For vs Do..while vs While54

For hanya dapat digunakan untuk proses pengulangan berdasarkan harga satu variabel.

Do…whilePengulangan ditempatkan diakhir simpai.Perintah didalam simpai pasti dikerjakan 1X

kondisi awal pengulangan harus benar

Penggunaan simpai while lebih ‘aman’ karena penyeleksian kondisi dilakukan diawal

Page 55: Struktur dasar  &  Perintah dasar

55 Selection statement using switch

Page 56: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

56

Selection statement using switch

switch Useful when a variable or expression is tested for all the values

it can assume and different actions are taken Format

Series of case labels and an optional default caseswitch ( value ){

case '1':actionsbreak;

case '2':actionsbreak;

default:actions

}

break; exits from statement

Page 57: Struktur dasar  &  Perintah dasar

57

Fig. 4.8 | switch multiple-selection statement with breaks.

Page 58: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Switch vs If58

prinsip sama dengan if (lebih umum)

hanya digunakan untuk pemeriksaan berdasarkan 1 variabel (if sembarang)

digunakan untuk memeriksa harga variabel terhadap sekumpulan nilai (kalau sedikit if)

Page 59: Struktur dasar  &  Perintah dasar

59Break and continue statement

Page 60: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

60

break and continue Statements

break Causes immediate exit from a while, for, do…while or switch statement

Program execution continues with the first statement after the structure

Common uses of the break statement Escape early from a loop Skip the remainder of a switch statement

Page 61: Struktur dasar  &  Perintah dasar

61

1 /* Fig. 4.11: fig04_11.c

2 Using the break statement in a for statement */

3 #include <stdio.h>

4

5 /* function main begins program execution */

6 int main( void )

7 {

8 int x; /* counter */

9

10 /* loop 10 times */

11 for ( x = 1; x <= 10; x++ ) {

12

13 /* if x is 5, terminate loop */

14 if ( x == 5 ) {

15 break; /* break loop only if x is 5 */

16 } /* end if */

17

18 printf( "%d ", x ); /* display value of x */

19 } /* end for */

20

21 printf( "\nBroke out of loop at x == %d\n", x );

22

23 return 0; /* indicate program ended successfully */

24

25 } /* end function main */ 1 2 3 4 Broke out of loop at x == 5

Outline

fig04_11.c

break immediately ends for loop

Page 62: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

62

continue Statements

continue Skips the remaining statements in the body

of a while, for or do…while statement Proceeds with the next iteration of the loop

while and do…while Loop-continuation test is evaluated

immediately after the continue statement is executed

for Increment expression is executed, then the

loop-continuation test is evaluated

Page 63: Struktur dasar  &  Perintah dasar

63

1 /* Fig. 4.12: fig04_12.c

2 Using the continue statement in a for statement */

3 #include <stdio.h>

4

5 /* function main begins program execution */

6 int main( void )

7 {

8 int x; /* counter */

9

10 /* loop 10 times */

11 for ( x = 1; x <= 10; x++ ) {

12

13 /* if x is 5, continue with next iteration of loop */

14 if ( x == 5 ) {

15 continue; /* skip remaining code in loop body */

16 } /* end if */

17

18 printf( "%d ", x ); /* display value of x */

19 } /* end for */

20

21 printf( "\nUsed continue to skip printing the value 5\n" );

22

23 return 0; /* indicate program ended successfully */

24

25 } /* end function main */

1 2 3 4 6 7 8 9 10

Used continue to skip printing the value 5

Outline

fig04_12.c

continue skips to end of for loop and performs next iteration

Page 64: Struktur dasar  &  Perintah dasar

64 Summary

Page 65: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

65

Summary

Structured programming Easier than unstructured programs to understand, test,

debug and, modify programs All programs can be broken down into 3 controls

Sequence – handled automatically by compiler Selection – if, if…else or switch Repetition – while, do…while or for

Can only be combined in two ways Nesting Stacking

Any selection can be rewritten as an if statement, and any repetition can be rewritten as a while statement

Page 66: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

66

Latihan

Buatlah pseudocode untuk mengkonversi suhu dengan pengulangan dan pencabangan Pengulangan sampai 5 kali Pencabangan untuk input dalam C, R, K, F

Pseudocode harus sudah memasukkan unsur user friendly

Page 67: Struktur dasar  &  Perintah dasar

67

Dikerjakan berkelompok1 kelompok terdiri dari 3 orang

Menggunakan DevC++Didemokan pekan depan

Assignment 1

Page 68: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

68

Soal 1

“Harga Mutlak Bilangan“ Tujuan : menentukan harga mutlak

setiap bilangan yang dimasukkan lewat keyboard (akhirdata = 0)

Page 69: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

bil > 0

mutlak = bilmutlak = - bil

tidak

ya

Page 70: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Algoritmanyabaca(bil)

if bil > 0 then mutlak = bil else mutlak = -bil eif

tulis (mutlak) {peragakan harga mutlak tersebut}

Page 71: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

71

Soal 2

“Bilangan genap dan ganjil” Tujuan : membuat algoritma yang dapat

menyatakan suatu bilangan adalah genap atau ganjil

Akhir data dinyatakan dengan nilai “0”

Page 72: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Langkah-langkahnya menentukan suatu bilangan genap

atau ganjil dengan membagi bilangan dengan bilangan 2 (mod)Sisa pembagian nol bilangan genap

jika tidak nol bilangan ganjil

Page 73: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

AlgoritmanyaakhirData = 0Baca (bil)while bil <> akhirData do sisa =bil mod 2 if sisa == 0 then write (‘genap’) else write (‘ganjil’) eif baca (bil)ewhile

Page 74: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

74

Soal 3

“Persamaan Kuadrat” Tujuan : membuat algoritma

program menghitung akar-akar persamaan kuadrat yang koefisiennya dimasukkan melalui keyboard

Page 75: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Langkah-langkahnya menyeleksi kondisi salah dengan memeriksa nilai koefisien

menentukan jenis akar persamaan berdasarkan koefisien

Page 76: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

Algoritma: baca (a) while a<>0 do baca (b,c)

d=b^2-4*a*c

continue

Page 77: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

if d<0 then {hitung akar kompleks} p= -b/(2*a) q = abs (sqr(-d)/((2*a)) tulis (‘x1=‘, p, ‘+’, q, ‘i’) tulis (‘x2=‘, p, ‘-’, q, ‘i’) else

continue

Page 78: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

{akar komplek atau tidak} if d=0 then {hitung akar kembar} x1 = -b/(2*a) x2 = x1

Page 79: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

else {hitung akar tidak kembar} x1 = (-b+sqr(d))/(2*a) x2 = (-b-sqr(d))/(2*a) eif tulis (‘x1=‘, x1) tulis (‘x2=‘,x2)eifBaca (a)

Page 80: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

80

Soal 4

“Relasi bilangan” Tujuan: Menentukan apakah kedua

buah bilangan yang diinput sama, lebih kecil atau lebih besar

Page 81: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

81

Tugas Kelompok C program (DevC++)

Kel 1 – 4 soal 1 Kel 5 – 8 soal 2 Kel 8 – 13 soal 3 Kel 14 - 17 soal 4

Page 82: Struktur dasar  &  Perintah dasar

Algoritma&Pemrograman

82

Dev C++

Jangan lupa save program dalam .C Supaya window bisa freeze dan terlihat

hasilnya sebelum tertutup otomatis, tambahkan: System(“pause”);

Sebelum Return 0; }