2 struktur dasar algoritma dan notasi algoritmik pseudo-code
Bab 2 Struktur Dasar
-
Upload
winchell-vance -
Category
Documents
-
view
46 -
download
0
description
Transcript of Bab 2 Struktur Dasar
Bab 2 Bab 2 Struktur DasarStruktur Dasar
Bab 2 Bab 2 Struktur DasarStruktur Dasar
Pendahuluan• Sebelum membuat program:
– Harus memahami masalah yang dihadapi
– Membuat perencanaan yang baik (Algoritma) untuk menyelesaikannya.
2
Algoritma• Permasalahan komputasi :
– Dapat diselesaikan dengan mejalankan sekumpulan kegiatan dalam urutan tertentu.
• Pengendalian Program– Urutan tertentu dalam bentuk
pernyataan (statement) untuk dijalankan.
3
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
4
Perintah Dasar•Perintah:
–Menyatakan algoritma •Alur pemecahan masalah•Mudah diimplementasi dengan bahasa pemrograman
Perintah Dasar•Perintah:
–Singkat, jelas, terstruktur, fleksibel
–Konsep pengolahan data berbasis Komputer
Perintah DasarPerintah-perintah dasar yang dapat digunakan
pada pseudocodePerintah Lambang
penulisan tulis/printf/writepembacaan baca/scanf/readpemuatan (assignment)=pengulangan while-do-ewhilepencabangan if-then-else-eif
Struktur Dasar• Struktur Dasar pada pemrograman
adalah sebagai berikut : •Struktur berurut•Struktur seleksi (pencabangan /
pemilihan)•Struktur pengulangan
Struktur Pengendali• Eksekusi urutan/pernyataan tidak
bersyarat
9
Proses AProses A
Proses BProses B
Proses CProses C
Struktur Pengendali• Pengalihan pengendalian
– Bila perintah yang dijalankan adalah bukan perintah berikutnya dalam urutan program
– Hindari perintah ‘goto’ menimbulkan banyak masalah
10
Struktur Pengendali• Bohm dan Jacopini
– Seluruh program dapat ditulis dalam 3 struktur pengendali :•Struktur berurut•Struktur seleksi / percabangan: if, if…else, and switch
•Struktur pengulangan: while, do…while and for
11
PERCABANGAN• Tidak setiap baris program akan
dikerjakan• Hanya yang memenuhi syarat
(kondisi)• Syarat terdiri dari operand-operand,
yang dihubungkan dengan operator relasi dan operator logika
PERCABANGAN• Menghasilkan pernyataan Boolean,
yang dapat bernilai benar (true) atau salah (false)
• Menggunakan perintah : – if– else-if– switch
Pernyataan Seleksi if• Struktur Seleksi
– Digunakan untuk memilih alur alternatif
– Pseudocode:If nilai mahasiswa lebih besar dari 60Print “lulus”
14
Pernyataan seleksi if• Jika kondisi true (benar)
– Pernyataan Print dijalankan dan program akan meneruskan ke perintah berikutnya.
– Jika false, pernyataan print diabaikan dan menjalankan perintah berikutnya.
Pernyataan seleksi if• Pseudocode statement dengan bahasa
C:if ( grade >= 60 ) printf( "Passed\n" );
• Simbol Berlian (decision symbol)– Digunakan untuk seleksi– Hasilnya: benar atau salah– Menguji kondisi dan mengikuti jalur yang
tepat.
16
Struktur Seleksi
Apakah Nilai >= 60 ?
Cetak ‘LULUS’YA
TIDAK
Pernyataan if…else• if
– Hanya melaksanakan aksi bila kondisinya adalah benar/true
• if…else– Melaksanakan suatu aksi untuk kedua kondisi,
baik benar/true atau salah/false• Psuedocode:
If nilai siswa lebih besar atau sama dengan 60Cetak “Lulus”
elseCetak“Gagal”
18
Pernyataan if…else• Code C:
if ( nilai >= 60 ) printf( “Lulus\n");else printf( “Gagal\n");
19
Flowchart
Apakah Nilai >= 60 ?
Cetak ‘LULUS’YATIDAK
Cetak ‘Gagal’
Pernyataan if…else• Pernyataan if…else nested /
bersarang– Pernyataan if…else didalam
pernyataan if…else– Satu kondisi terpenuhi, yang lain
diskip
21
Pernyataan if…else– Pseudocode
If student’s grade is greater than or equal to 90Print “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”
22
Pernyataan if…else• 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
23
Contoh 1START
END
Syarat Perintah 1
Perintah 2
– Contoh :5 == 5 True3 > 5 False5 <> 3 True(A>5) AND (B>10) True jika keduanya
benar(A>5) OR (B>10) True jika keduanya
atau salah satu benar
Contoh 2• Contoh “Harga Mutlak Bilangan“• Tujuan : menentukan harga mutlak setiap bilangan
yang dimasukkan lewat keyboard (akhirdata = 0)– bagan alir perintah percabangan :
•if-else-eif
Contoh 2
bil > 0
mutlak = bilmutlak = - bil
tidak
ya
Contoh 2• Algoritmanya
baca(bil)if bil > 0 then mutlak = bil else mutlak = -bil eif
tulis (mutlak) {peragakan harga mutlak tersebut}
Contoh 3Contoh “Bilangan genap dan ganjil”• Tujuan : membuat algoritma yang
dapat menyatakan suatu bilangan adalah genap atau ganjil
• Akhir data dinyatakan dengan nilai “0”
Contoh 3• 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
Contoh 3• Algoritmanya
akhirData = 0Baca (bil)while bil <> akhirData do sisa =bil mod 2 if sisa == 0 then write (‘genap’) else write (‘ganjil’) eif baca (bil)ewhile
Contoh 4Contoh kasus “Persamaan
Kuadrat”• Tujuan : membuat algoritma
program menghitung akar-akar persamaan kuadrat yang koefisiennya dimasukkan melalui keyboard
Contoh 4• Langkah-langkahnya
–menyeleksi kondisi salah dengan memeriksa nilai koefisien
–menentukan jenis akar persamaan berdasarkan koefisien
Contoh 4
Algoritma: baca (a) while a<>0 do baca (b,c) d=b^2-4*a*c
continue
Contoh 4
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
Contoh 4 {akar komplek atau tidak} if d=0 then {hitung akar kembar} x1 = -b/(2*a) x2 = x1
Contoh 4else {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)
Contoh 5• Menentukan apakah kedua buah
bilangan yang diinput sama, lebih kecil atau lebih besar
Tugas Kelompok C program (DevC++)
• Kel 1 – 3 contoh 1• Kel 4 – 6 contoh 2• Kel 7 – 9 contoh 3• Kel 10 – 12 contoh 4• Kel 13 – 14 contoh 5
Dev C++• Jangan lupa save program dalam .C• Supaya window bisa freeze dan
terlihat hasilnya sebelum ertutup otomatis, tambahkan:
• System(“pause”);• Sebelum Return 0; }
SELESAI BAB 2-a