struktur dasar & perintah dasar
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 PresentationTRANSCRIPT
![Page 1: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/1.jpg)
Semester genap2011/2012
Algoritma&Pemrograman
STRUKTUR DASAR & PERINTAH DASARPrima Dewi P, AAP Ratna, Dodi Sudiana
![Page 2: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/3.jpg)
3 Introduction
![Page 4: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/5.jpg)
Algoritma&Pemrograman
Algoritma5
Permasalahan komputasi Dapat diselesaikan dengan mejalankan
sekumpulan kegiatan dalam urutan tertentu. Dengan cara Pengendalian Program
![Page 6: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/10.jpg)
10 User friendly program
![Page 11: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/15.jpg)
15 Basic selection structure
![Page 16: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/16.jpg)
Algoritma&Pemrograman
Struktur berurut (sequence structure)16
Eksekusi urutan/pernyataan tidak bersyarat
Proses A
Proses B
Proses C
![Page 17: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/24.jpg)
Algoritma&Pemrograman
24
Flowchart if..else
Apakah Nilai >= 60 ?
Cetak ‘LULUS’YATIDAK
Cetak ‘Gagal’
![Page 25: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/29.jpg)
29Repetition structure using while
![Page 30: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/43.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/44.jpg)
44 More repetition structure
![Page 45: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/45.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/46.jpg)
Algoritma&Pemrograman
46
Counter-Controlled Repetition using For
Fig. 4.3 | for statement header components.
![Page 47: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/47.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/48.jpg)
Algoritma&Pemrograman
48
Fig. 4.4 | Flowcharting a typical for repetition statement.
![Page 49: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/49.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/50.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/51.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/52.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/53.jpg)
Algoritma&Pemrograman
53
Fig. 4.10 | Flowcharting the do...while repetition statement.
![Page 54: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/54.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/55.jpg)
55 Selection statement using switch
![Page 56: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/56.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/57.jpg)
57
Fig. 4.8 | switch multiple-selection statement with breaks.
![Page 58: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/58.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/59.jpg)
59Break and continue statement
![Page 60: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/60.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/61.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/62.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/63.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/64.jpg)
64 Summary
![Page 65: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/65.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/66.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/67.jpg)
67
Dikerjakan berkelompok1 kelompok terdiri dari 3 orang
Menggunakan DevC++Didemokan pekan depan
Assignment 1
![Page 68: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/68.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/69.jpg)
Algoritma&Pemrograman
bil > 0
mutlak = bilmutlak = - bil
tidak
ya
![Page 70: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/70.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/71.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/72.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/73.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/74.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/75.jpg)
Algoritma&Pemrograman
Langkah-langkahnya menyeleksi kondisi salah dengan memeriksa nilai koefisien
menentukan jenis akar persamaan berdasarkan koefisien
![Page 76: Struktur dasar & Perintah dasar](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/76.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/77.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/78.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/79.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/80.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/81.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022061522/5681358e550346895d9cfb7d/html5/thumbnails/82.jpg)
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; }