Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Struktur dasar & Perintah dasar
Prima Dewi P, AAP Ratna, Dodi Sudiana
2
Outline Introduction User friendly program
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
3
Introduction
4
Pendahuluan Sebelum membuat program: Harus memahami masalah yang dihadapi definisi dan deskripsi masalah Membuat perencanaan yang baik (Algoritma) untuk menyelesaikannya.
5
Algoritma Permasalahan komputasi
Dapat diselesaikan dengan mejalankan sekumpulan kegiatan dalam urutan tertentu. Dengan cara Pengendalian Program
6
Pseudocode 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
7
Perintah Dasar Menyatakan algoritma
Alur pemecahan masalah Mudah diimplementasi dengan bahasa pemrograman Singkat, jelas, terstruktur, fleksibel Konsep pengolahan data berbasis Komputer
8
Perintah Dasar dalam pseudocode
Perintah-perintah dasar yang dapat digunakan pada pseudocode Perintah Lambang penulisan tulis/printf/write pembacaan baca/scanf/read pemuatan (assignment) = pengulangan while…(do)-ewhile pencabangan if…(then)-else-eif
9
Struktur Dasar Struktur berurut (sequence structure)
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
10
User friendly program
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
12
Hal-hal penting yang dapat membuat program User friendly
Tujuan/Judul program Petunjuk pengoperasian program Pesan kesalahan Keterangan Siap Panggil Tataletak peragaan Hemat kegiatan Fleksibel
13
Contoh program yang user friendly
/*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 = 0 jumlah = 0
14
/*Penjumlahan bilangan positif*/
read (bil) while (bil<> 0) do if (bil > 0) then jumlah = jumlah + bil n = n + 1 eif Ewhile /*Penulisan hasil perhitungan*/ If (n <>) 0 then write (n, jumlah, jumlah/n)
15
Basic selection structure
16
Struktur berurut (sequence structure)
Eksekusi urutan/pernyataan tidak bersyarat Proses A Proses B Proses C
17
Struktur seleksi/percabangan (selection structure)
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
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
19
Pernyataan Seleksi if Digunakan untuk memilih alur alternatif
Contoh Pseudocode: If nilai mahasiswa lebih besar atau sama dengan 60 Print “lulus” Jika kondisi true (benar) Pernyataan Print dijalankan dan program akan meneruskan ke perintah berikutnya. Jika false, pernyataan print diabaikan dan menjalankan perintah berikutnya.
20
Mengubah pseudocode if menjadi program C
If nilai mahasiswa lebih besar atau sama dengan 60 Print “lulus” Bahasa C: if ( grade >= 60 ) printf( "Passed\n" ); Kondisi yang diseleksi
21
Flowchart if Simbol Berlian (decision symbol) Digunakan untuk seleksi
Apakah Nilai >= 60 ? Digunakan untuk seleksi Hasilnya: benar atau salah Menguji kondisi dan mengikuti jalur yang tepat. Cetak ‘LULUS’ YA TIDAK
22
Seleksi dengan if…else
Hanya melaksanakan aksi bila kondisinya adalah benar/true if…else Melaksanakan suatu aksi untuk kedua kondisi, baik benar/true atau salah/false
23
Mengubah pseudocode if..else menjadi program C
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“ );
24
Flowchart if..else Apakah Nilai >= 60 ? Cetak ‘Gagal’ Cetak ‘LULUS’
TIDAK YA Cetak ‘LULUS’
25
Pernyataan if…else bersarang
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
26
Pernyataan if…else bersarang
Pseudocode If student’s grade is greater than or equal to 90 Print “A” else If student’s grade is greater than or equal to Print “B” else If student’s grade is greater than or equal to Print “C” else If student’s grade is greater than or equal to Print “D” else Print “F”
27
Jenis kesalahan Syntax errors Logic errors: Caught by compiler
Have their effect at execution time Non-fatal: program runs, but has incorrect output Fatal: program exits prematurely
28
What we have learned so far..
Selection Structure using if if Only performs an action if the condition is true if…else Specifies an action to be performed both when the condition is true and when it is false Nested if..else Test 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..
29
Repetition structure using while
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)
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
32
Counter-Controlled Repetition
Counter-controlled repetition requires The name of a control variable (or loop counter) The initial value of the control variable An increment (or decrement) by which the control variable is modified each time through the loop A condition that tests for the final value of the control variable (i.e., whether looping should continue)
33
Contoh Sepuluh orang mahasiswa mengikuti kuis. Range nilai yang diberikan adalah User (dosen) akan diminta memasukkan nilai yang didapat oleh seluruh mahasiswa. Program akan menentukan rata-rata nilai kuis yang diperoleh
34
Fig. 3.5 | Pseudocode algorithm that uses counter-controlled repetition to solve the class average problem.
35
Counter-Controlled Repetition using While
Format for while repetition initialization; while ( loopContinuationTest ) { statement; increment; } Example: int counter = 1; // control variable & initialization while ( counter <= 10 ) { // repetition condition printf( "%d\n", counter ); ++counter; // increment }
36
Outline (1 of 2 ) Counter to control while loop
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
37
Outline Calculate the average fig03_06.c (2 of 2 )
38
Sentinel-controlled repetition
Contoh: User (dosen) akan diminta memasukkan nilai yang didapat oleh seluruh mahasiswa. Range nilai yang diberikan adalah 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
39
Fig. 3.7 | Pseudocode algorithm that uses sentinel-controlled repetition to solve the class average problem.
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 Sehingga dapat dipilih nilai -1 yang berada diluar range nilai mahasiswa
41
Outline (1 of 3 ) float type indicates variable can be a non-integer
fig03_08.c (1 of 3 ) float type indicates variable can be a non-integer
42
Outline while loop repeats until user enters a value of -1 (2 of 3 )
fig03_08.c (2 of 3 ) Ensures the user entered at least one grade Converts total to float type Prints result with 2 digits after decimal point
43
Outline fig03_08.c (3 of 3 )
44
More repetition structure
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
46
Counter-Controlled Repetition using For
Fig. 4.3 | for statement header components.
47
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.
48
Fig. 4.4 | Flowcharting a typical for repetition statement.
49
Outline fig04_05.c Note that number has a different value each time this statement is executed
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 );
51
do…while Repetition Statement
Example (letting counter = 1): do { printf( "%d ", counter ); } while (++counter <= 10); Prints the integers from 1 to 10
52
Outline fig04_09.c increments counter then checks if it is less than or equal to 10
53
Fig. 4.10 | Flowcharting the do...while repetition statement.
54
For vs Do..while vs While For hanya dapat digunakan untuk proses pengulangan berdasarkan harga satu variabel. Do…while Pengulangan ditempatkan diakhir simpai. Perintah didalam simpai pasti dikerjakan 1X kondisi awal pengulangan harus benar Penggunaan simpai while lebih ‘aman’ karena penyeleksian kondisi dilakukan diawal
55
Selection statement using switch
56
Selection statement using 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 case switch ( value ){ case '1': actions break; case '2': default: } break; exits from statement
57
Fig. 4.8 | switch multiple-selection statement with breaks.
58
Switch vs If 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)
59
Break and continue statement
60
break and continue Statements
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
61
Outline fig04_11.c break immediately ends for loop
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
63
Outline continue skips to end of for loop and performs next iteration
fig04_12.c continue skips to end of for loop and performs next iteration
64
Summary
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
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
67
Assignment 1 Dikerjakan berkelompok 1 kelompok terdiri dari 3 orang
Menggunakan DevC++ Didemokan pekan depan
68
Soal 1 “Harga Mutlak Bilangan“
Tujuan : menentukan harga mutlak setiap bilangan yang dimasukkan lewat keyboard (akhirdata = 0)
69
tidak bil > 0 ya mutlak = - bil mutlak = bil
70
Algoritmanya tulis (mutlak) {peragakan harga mutlak tersebut}
baca(bil) if bil > 0 then mutlak = bil else mutlak = -bil eif tulis (mutlak) {peragakan harga mutlak tersebut}
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”
72
Sisa pembagian nol bilangan genap jika tidak nol bilangan ganjil
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
73
Algoritmanya akhirData = 0 Baca (bil) while bil <> akhirData do
sisa =bil mod 2 if sisa == 0 then write (‘genap’) else write (‘ganjil’) eif baca (bil) ewhile
74
Soal 3 “Persamaan Kuadrat”
Tujuan : membuat algoritma program menghitung akar-akar persamaan kuadrat yang koefisiennya dimasukkan melalui keyboard
75
Langkah-langkahnya menyeleksi kondisi salah dengan memeriksa nilai koefisien menentukan jenis akar persamaan berdasarkan koefisien
76
Algoritma: baca (a) while a<>0 do baca (b,c) d=b^2-4*a*c
continue
77
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
78
if d=0 then {hitung akar kembar} x1 = -b/(2*a) x2 = x1
{akar komplek atau tidak} if d=0 then {hitung akar kembar} x1 = -b/(2*a) x2 = x1
79
else {hitung akar tidak kembar} x1 = (-b+sqr(d))/(2*a) x2 = (-b-sqr(d))/(2*a) eif tulis (‘x1=‘, x1) tulis (‘x2=‘,x2) Baca (a)
80
Soal 4 “Relasi bilangan”
Tujuan: Menentukan apakah kedua buah bilangan yang diinput sama, lebih kecil atau lebih besar
81
Tugas Kelompok C program (DevC++)
Kel 1 – 4 soal 1 Kel 5 – 8 soal 2 Kel 8 – 13 soal 3 Kel soal 4
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; }
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.