struktur dasar algoritma

advertisement
STRUKTUR DASAR ALGORITMA
Tujuan
•
•
Mahasiswa mampu memecahkan masalah dalam sebuah algoritma
pemecahan masalah menggunakan struktur pemilihan dan
pengulangan.
Mahasiswa mengetahui struktur program bahasa C dan mampu
mentranslasikan dengan benar dari algoritma yang sederhana ke
program bahasa C
Struktur Dasar Algoritma
• Runtunan (sequence)‫‏‬
Sebuah runtunan terdiri atas satu atau lebih
pernyataan yang dikerjakan secara berurutan
• Penyeleksian (selection)‫‏‬
Sebuah aksi dikerjakan jika kondisi tertentu
terpenuhi
• Pengulangan (repetition)‫‏‬
Memungkinkan banyak aksi dikerjakan dengan
satu instruksi
Runtunan
Algoritma merupakan runtunan satu atau lebih
instruksi yang berarti bahwa:
1. Tiap instruksi dikerjakan satu per satu
2. Tiap instruksi dikerjakan tepat satu kali
3. Urutan instruksi yang dilaksanakan
kompiler
sama dengan urutan instruksi
dalam algoritma
4. Instruksi terakhir merupakan akhir algoritma
Penyeleksian & Pengulangan
Sejauh ini kita bahas algoritma yang dikerjakan
berurutan. Untuk program yang lebih rumit, proses
pengerjaan program dapat tidak berurutan, seperti
penyeleksian kondisi dan pengulangan.
Struktur Penyeleksian
Ada 2 macam struktur penyeleksian. Pemilihan
konstruksi yang tepat bergantung pada jumlah
kasus yang akan diseleksi.
1. Pernyataan IF-THEN-ELSE
2. Pernyataan CASE
Penggunaan struktur IF-THEN-ELSE jika jumlah
kasus tidak banyak. Untuk jumlah kasus yang
banyak, konstruksi CASE dapat menyederhanakan
penulisan.
Satu Kasus
Notasi algoritmik untuk analisis dengan satu kasus
adalah dengan menggunakan konstruksi if-then
dalam bentuk pernyataan:
if kondisi then
pernyataan
endif
Contoh Satu Kasus :
PROGRAM Genap
{ Mencetak pesan ‘genap’ jika yang dibaca dari piranti masukan adalah
bilangan genap }
DEKLARASI
x
: integer
ALGORITMA:
read x
if x mod 2 = 0 then
write (“genap”)
endif
Dua Kasus
Notasi algoritmik untuk analisis dengan dua kasus
adalah dengan menggunakan konstruksi if-then
dalam bentuk pernyataan:
if kondisi then
pernyataan_1
else
pernyataan_2
endif
Contoh Dua Kasus :
PROGRAM Genap_ganjil
{ Mencetak pesan ‘genap’ jika yang dibaca dari piranti masukan adalah
bilangan genap dan mencetak ganjil jika yang dibaca dari piranti masukan
adalah bilangan ganjil }
DEKLARASI
x
: integer
ALGORITMA:
read x
if x mod 2 = 0 then { kasus 1 }
write (“genap”)
else
{ kasus 2 }
write (“ganjil”)
endif
Tiga Kasus
Notasi algoritmik untuk analisis dengan tiga kasus adalah:
if kondisi_1 then
pernyataan_1
else
if kondisi _2 then
pernyataan_2
else
pernyataan_3
endif
endif
{ kasus 1 }
{ kasus 2 }
{ kasus 3 }
Contoh Tiga Kasus :
PROGRAM Wujud_Air
{ Menentukan wujud air, tergantung temperatur air T }
DEKLARASI
T
: real
ALGORITMA:
read (T)
if T  0 then
{ Kasus 1 }
write (“padat”)
else
if T < 100 then
{ Kasus 2 }
write (“cair”)
else
{T  100, Kasus 3 }
write (“gas atau uap”)
endif
endif
Struktur CASE
Konstruksi CASE adalah sebagai berikut:
case ekspresi
nilai_1 pernyataan_1
nilai_2 pernyataan_2
nilai_3 pernyataan_3
.
.
.
nilai_n pernyataan_n
otherwise pernyataan_x
endcase
Contoh Struktur CASE :
PROGRAM Konversi_Angka_ke_Huruf
{ Mencetak untuk huruf untuk angka 1 sampai 4 }
DEKLARASI
angka
: integer
ALGORITMA:
Read (angka)
case angka
1 : write (“satu”)
2 : write (“dua”)
3 : write (“tiga”)
4 : write (“empat”)
otherwise : write (“angka yang dimasukkan salah”)
endcase
Struktur Pengulangan
Struktur pengulangan terdiri atas dua bagian:
• Kondisi pengulangan, yakni ekspresi boolean yang
harus dipenuhi untuk melaksanakan pengulangan
• Badan pengulangan, yakni bagian algoritma yang
diulang
Di samping itu, biasanya terdapat juga bagian:
• Inisialisasi, yakni aksi yang dilakukan sebelum
pengulangan dilakukan pertama kali
• Terminasi, yakni aksi yang dilakukan setelah
pengulangan selesai dilaksanakan
Konstruksi Pengulangan
Ada 3 macam konstruksi pengulangan. Pemilihan
konstruksi yang tepat bergantung pada masalah yang
akan diprogram.
1. Pernyataan FOR
2. Pernyataan WHILE
3. Pernyataan REPEAT
Pernyataan FOR adalah konstruksi pengulangan tanpa
kondisi. Pernyataan WHILE dan REPAT adalah konstruksi
pengulangan dengan kondisi.
Pernyataan FOR
Ada 2 macam pernyataan FOR
1. FOR menaik
for pencacah  nilai_awal to nilai_akhir do
pernyataan
endfor
2. FOR menurun
for pencacah  nilai_akhir downto nilai_awal do
pernyataan
endfor
Contoh FOR Menaik :
PROGRAM Cetak_Banyak_Hello_World
{ Mencetak 10 kali tulisan Hello World }
DEKLARASI
i
: integer
ALGORITMA:
for i  1 to 10 do
write (“Hello World”)
i = i +1
endfor
Contoh FOR Menaik :
PROGRAM Cetak_1_sampai_10
{ Mencetak angka 1 sampai 10 }
DEKLARASI
i
: integer
ALGORITMA:
for i  1 to 10 do
write (i)
i = i +1
endfor
Contoh FOR Menaik :
PROGRAM Penjumlahan_Deret
{ Menjumlahkan deret 1 + 2 + 3 + … + N }
DEKLARASI
N, i, jumlah
: integer
ALGORITMA:
read (N)
jumlah  0
{ inisialisasi }
for i  1 to 10 do
jumlah  jumlah + i
i = i +1
endfor
write (jumlah)
{ terminasi }
Contoh FOR Menaik :
PROGRAM Hitung_Rerata
{ Menghitung rerata N buah bilangan bulat }
DEKLARASI
N, x, i, jumlah : integer
rerata
: real
ALGORITMA:
read (N)
jumlah  0
{ inisialisasi }
for i  1 to N do
read (x)
jumlah  jumlah + x
i = i +1
endfor
rerata  jumlah/N { terminasi }
write (rerata)
Contoh FOR Menurun :
PROGRAM Hitungan_Mundur
{ Mencetak hitungan mundur dari 10 sampai 0}
DEKLARASI
i
: integer
ALGORITMA:
for i  10 downto 0 do
write (i)
i=i-1
endfor
Pernyataan WHILE
Bentuk umum pernyataan WHILE adalah
while kondisi do
pernyataan
endwhile
Pernyataan dilaksanakan berulangkali selama kondisi
bernilai benar. Jika bernilai salah, maka pernyataan
tidak dilaksanakan dan pengulangan berhenti.
Contoh WHILE :
PROGRAM Cetak_Banyak_Hello_World
{ Mencetak 10 kali tulisan Hello World }
DEKLARASI
i
: integer
ALGORITMA:
i1
{ inisialisasi }
while i  10 do
write (“Hello World”)
ii+1
endwhile
Contoh WHILE :
PROGRAM Cetak_1_sampai_10
{ Mencetak angka 1 sampai 10 }
DEKLARASI
i
: integer
ALGORITMA:
i1
{ inisialisasi }
while i  10 do
write (i)
ii+1
endwhile
Contoh WHILE :
PROGRAM Penjumlahan_Deret
{ Menjumlahkan deret 1 + 2 + 3 + … + N }
DEKLARASI
N, i, jumlah
: integer
ALGORITMA:
read (N)
jumlah  0
{ inisialisasi }
i1
{ inisialisasi }
while i  N do
jumlah  jumlah + i
ii+1
endwhile
write (jumlah)
{ terminasi }
Contoh WHILE :
PROGRAM Hitung_Rerata
{ Menghitung rerata N buah bilangan bulat }
DEKLARASI
N, x, i, jumlah : integer
rerata
: real
ALGORITMA:
read (N)
jumlah  0
{ inisialisasi }
i1
{ inisialisasi }
while i  N do
read (x)
jumlah  jumlah + x
ii+1
endwhile
rerata  jumlah/N
write (rerata)
Contoh WHILE :
PROGRAM Hitungan_Mundur
{ Mencetak hitungan mundur dari 10 sampai 0}
DEKLARASI
i
: integer
ALGORITMA:
i  10
{ inisialisasi }
while i  0 do
write (i)
ii-1
endwhile
Pernyataan REPEAT
Bentuk umum pernyataan REPEAT adalah :
repeat
pernyataan
until kondisi
Pernyataan dilaksanakan berulangkali selama kondisi
bernilai salah. Jika bernilai benar, maka pernyataan
tidak dilaksanakan dan pengulangan berhenti.
Contoh REPEAT :
PROGRAM Cetak_Banyak_Hello_World
{ Mencetak 10 kali tulisan Hello World }
DEKLARASI
i
: integer
ALGORITMA:
i1
{ inisialisasi }
repeat
write (“Hello World”)
ii+1
until i > 10
Contoh REPEAT :
PROGRAM Cetak_1_sampai_10
{ Mencetak angka 1 sampai 10 }
DEKLARASI
i
: integer
ALGORITMA:
i1
repeat
write (i)
ii+1
until i > 10
{ inisialisasi }
Contoh REPEAT :
PROGRAM Penjumlahan_Deret
{ Menjumlahkan deret 1 + 2 + 3 + … + N }
DEKLARASI
N, i, jumlah
: integer
ALGORITMA:
read (N)
jumlah  0
{ inisialisasi }
i1
{ inisialisasi }
repeat
jumlah  jumlah + i
ii+1
until i > N
write (jumlah)
{ terminasi }
Contoh REPEAT :
PROGRAM Hitung_Rerata
{ Menghitung rerata N buah bilangan bulat }
DEKLARASI
N, x, i, jumlah : integer
rerata
: real
ALGORITMA:
read (N)
jumlah  0
{ inisialisasi }
i1
{ inisialisasi }
repeat
read (x)
jumlah  jumlah + x
ii+1
until i > N
rerata  jumlah/N
write (rerata)
Contoh REPEAT :
PROGRAM Hitungan_Mundur
{ Mencetak hitungan mundur dari 10 sampai 1}
DEKLARASI
i
: integer
ALGORITMA:
i  10
repeat
write (i)
ii-1
until i > 0
{ inisialisasi }
WHILE atau REPEAT?
Berdasarkan contoh yang ada, kita dapat menarik
kesimpulan:
• Gunakan konstruksi WHILE pada kasus yang
mengharuskan
pemeriksaan
kondisi
objek
terlebih
dahulu
sebelum
objek
tersebut
dimanipulasi
• Gunakan konstruksi REPEAT pada kasus yang
terlebih dahulu memanipulasi objek, baru
kemudian memeriksa kondisi objek tersebut.
Download