Document

advertisement
Bab 2
Struktur 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.
4
• Mudah untuk diterjemahkan ke dalam bentuk
bahasa pemrograman
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 Dasar
Perintah-perintah dasar yang dapat
digunakan pada pseudocode
Perintah
Lambang
penulisan
pembacaan
pemuatan (assignment)
pengulangan
pencabangan
tulis/printf/write
baca/scanf/read
=
while-do-ewhile
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
Proses A
Proses B
Proses C
9
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
60
Print “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
?
TIDAK
YA
Cetak ‘LULUS’
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 60
Cetak “Lulus”
else
Cetak“Gagal”
18
Pernyataan if…else
• Code C:
if ( nilai >= 60 )
printf( “Lulus\n");
else
printf( “Gagal\n");
19
Flowchart
Cetak ‘Gagal’
TIDAK
Apakah
Nilai >= 60
?
YA
Cetak ‘LULUS’
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 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”
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 1
– Contoh :
5 == 5  True
3 > 5  False
5 <> 3  True
(A>5) AND (B>10) 
True jika keduanya
benar
(A>5) OR (B>10) 
True jika keduanya atau
salah satu benar
START
Syarat
Perintah 2
END
Perintah 1
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
tidak
bil > 0
ya
mutlak = bil
mutlak = - bil
Contoh 2
• Algoritmanya
baca(bil)
if bil > 0 then
mutlak = bil
else
mutlak = -bil
eif
tulis (mutlak)
{peragakan harga mutlak tersebut}
Contoh 3
Contoh “Bilangan genap dan ganjil”
• Tujuan : membuat algoritma yang
dapat menyatakan suatu bilangan
adalah genap atau ganjil
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 = 0
Baca (bil)
while bil <> 0 do
sisa =bil mod 2
if sisa == 0 then
write (‘genap’)
else
write (‘ganjil’)
eif
baca (bil)
ewhile
Contoh 4
Contoh 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 4
else
{hitung akar tidak kembar}
x1 = (-b+sqr(d))/(2*a)
x2 = (-b-sqr(d))/(2*a)
eif
tulis (‘x1=‘, x1)
tulis (‘x2=‘,x2)
eif
Baca (a)
SELESAI BAB 2-a
Download