7. struktur dasar algoritma
DESCRIPTION
Struktur Dasar AlgoritmaTRANSCRIPT
-
STRUKTUR DASAR ALGORITMA
-
Tujuan
Mahasiswa mampu memecahkan masalah dalam sebuah algoritmapemecahan masalah menggunakan struktur pemilihan danpengulangan.
Mahasiswa mengetahui struktur program bahasa C dan mampumentranslasikan dengan benar dari algoritma yang sederhana keprogram bahasa C
-
Struktur Dasar Algoritma
Runtunan (sequence)
Sebuah runtunan terdiri atas satu atau lebihpernyataan yang dikerjakan secara berurutan
Penyeleksian (selection)
Sebuah aksi dikerjakan jika kondisi tertentuterpenuhi
Pengulangan (repetition)
Memungkinkan banyak aksi dikerjakan dengansatu instruksi
-
Runtunan
Algoritma merupakan runtunan satu atau lebihinstruksi yang berarti bahwa:
1. Tiap instruksi dikerjakan satu per satu
2. Tiap instruksi dikerjakan tepat satu kali
3. Urutan instruksi yang dilaksanakan kompilersama dengan urutan instruksi dalam algoritma
4. Instruksi terakhir merupakan akhir algoritma
-
Penyeleksian & Pengulangan
Sejauh ini kita bahas algoritma yang dikerjakanberurutan. Untuk program yang lebih rumit, prosespengerjaan program dapat tidak berurutan, sepertipenyeleksian kondisi dan pengulangan.
-
Struktur Penyeleksian
Ada 2 macam struktur penyeleksian. Pemilihankonstruksi yang tepat bergantung pada jumlahkasus yang akan diseleksi.
1. Pernyataan IF-THEN-ELSE
2. Pernyataan CASE
Penggunaan struktur IF-THEN-ELSE jika jumlahkasus tidak banyak. Untuk jumlah kasus yangbanyak, konstruksi CASE dapat menyederhanakanpenulisan.
-
Satu Kasus
Notasi algoritmik untuk analisis dengan satu kasusadalah dengan menggunakan konstruksi if-thendalam 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 xif x mod 2 = 0 then
write (genap)endif
-
Dua Kasus
Notasi algoritmik untuk analisis dengan dua kasusadalah dengan menggunakan konstruksi if-thendalam 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 adalahbilangan genap dan mencetak ganjil jika yang dibaca dari piranti masukanadalah bilangan ganjil }
DEKLARASIx : integer
ALGORITMA:read xif 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 { kasus 1 }pernyataan_1
else if kondisi _2 then { kasus 2 }
pernyataan_2else { kasus 3 }
pernyataan_3endif
endif
-
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 CASEKonstruksi 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 }
DEKLARASIangka : 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 yangharus dipenuhi untuk melaksanakan pengulangan
Badan pengulangan, yakni bagian algoritma yangdiulang
Di samping itu, biasanya terdapat juga bagian:
Inisialisasi, yakni aksi yang dilakukan sebelumpengulangan dilakukan pertama kali
Terminasi, yakni aksi yang dilakukan setelahpengulangan selesai dilaksanakan
-
Konstruksi Pengulangan
Ada 3 macam konstruksi pengulangan. Pemilihankonstruksi yang tepat bergantung pada masalah yangakan diprogram.
1. Pernyataan FOR
2. Pernyataan WHILE
3. Pernyataan REPEAT
Pernyataan FOR adalah konstruksi pengulangan tanpakondisi. Pernyataan WHILE dan REPAT adalah konstruksipengulangan 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 }
DEKLARASIi : 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 }
DEKLARASIi : 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 }
DEKLARASIN, i, jumlah : integer
ALGORITMA:read (N)jumlah 0 { inisialisasi }for i 1 to 10 do
jumlah jumlah + ii = i +1
endforwrite (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}
DEKLARASIi : 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 kondisibernilai benar. Jika bernilai salah, maka pernyataantidak dilaksanakan dan pengulangan berhenti.
-
Contoh WHILE :
PROGRAM Cetak_Banyak_Hello_World{ Mencetak 10 kali tulisan Hello World }
DEKLARASIi : 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 }
DEKLARASIi : 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 }
DEKLARASIN, i, jumlah : integer
ALGORITMA: read (N)jumlah 0 { inisialisasi }i 1 { inisialisasi }while i N do
jumlah jumlah + ii i + 1
endwhilewrite (jumlah) { terminasi }
-
Contoh WHILE :
PROGRAM Hitung_Rerata{ Menghitung rerata N buah bilangan bulat }
DEKLARASIN, x, i, jumlah : integerrerata : real
ALGORITMA:read (N)jumlah 0 { inisialisasi }i 1 { inisialisasi }while i N do
read (x)jumlah jumlah + xi i + 1
endwhilererata jumlah/Nwrite (rerata)
-
Contoh WHILE :
PROGRAM Hitungan_Mundur{ Mencetak hitungan mundur dari 10 sampai 0}
DEKLARASIi : 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 kondisibernilai salah. Jika bernilai benar, maka pernyataantidak dilaksanakan dan pengulangan berhenti.
-
Contoh REPEAT :
PROGRAM Cetak_Banyak_Hello_World{ Mencetak 10 kali tulisan Hello World }
DEKLARASIi : 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 }
DEKLARASIi : integer
ALGORITMA:i 1 { inisialisasi }repeat
write (i)i i + 1
until i > 10
-
Contoh REPEAT :
PROGRAM Penjumlahan_Deret{ Menjumlahkan deret 1 + 2 + 3 + + N }
DEKLARASIN, i, jumlah : integer
ALGORITMA: read (N)jumlah 0 { inisialisasi }i 1 { inisialisasi }repeat
jumlah jumlah + ii i + 1
until i > Nwrite (jumlah) { terminasi }
-
Contoh REPEAT :
PROGRAM Hitung_Rerata{ Menghitung rerata N buah bilangan bulat }
DEKLARASIN, x, i, jumlah : integerrerata : real
ALGORITMA:read (N)jumlah 0 { inisialisasi }i 1 { inisialisasi }repeat
read (x)jumlah jumlah + xi i + 1
until i > Nrerata jumlah/N write (rerata)
-
Contoh REPEAT :
PROGRAM Hitungan_Mundur{ Mencetak hitungan mundur dari 10 sampai 1}
DEKLARASIi : integer
ALGORITMA:i 10 { inisialisasi }repeat
write (i)i i - 1
until i > 0
-
WHILE atau REPEAT?
Berdasarkan contoh yang ada, kita dapat menarikkesimpulan:
Gunakan konstruksi WHILE pada kasus yangmengharuskan pemeriksaan kondisi objekterlebih dahulu sebelum objek tersebutdimanipulasi
Gunakan konstruksi REPEAT pada kasus yangterlebih dahulu memanipulasi objek, barukemudian memeriksa kondisi objek tersebut.