Apakah ini kode program?/*Kamus*/
x,y,z : integer
terbesar: integer
/*Algoritma*/
input(x,y,z)
terbesar x
If (y > terbesar) then
terbesar y
If (z > terbesar) then
terbesar z
output(terbesar)
Algoritma vs Kode Program Algoritma tidak sama dengan kode program. Algoritma: langkah-langkah sistematis untuk
penyelesaian suatu masalah yang dapat diimplementasikan ke dalam bahasa pemrograman.
Notasi algoritmik merupakan notasi yang digunakan untuk menuliskan suatu algoritma.
Kode program merupakan implementasi dari notasi algoritmik ke dalam bahasa pemrograman tertentu.
/*Algoritma untuk menukar nilai dari dua buah variabel*/
-----------------------
/*Kamus*/
a,b,temp : integer
/*Algoritma*/
input(a,b)
temp a
a b
b temp
output(a,b)
/*Implementasi algoritma ke dalam Bahasa C*/
-----------------------
/*Deklarasi variabel*/
int a,b,temp;
/*Program utama*/
scanf(“%d”,&a);
scanf(“%d”,&b);
temp = a;
a = b
b = temp
printf(“a: %d \n”,a);
printf(“b: %d \n”,b);
Pengondisian Untuk memilih suatu tindakan
berdasarkan kondisi tertentu Ada dua macam notasi algoritmik:
1. If-then2. Depend on
Notasi “if-then” If <kondisi> then <aksi> If <kondisi> then
<aksi 1>
<aksi 2>
<aksi n> If <kondisi> then <aksi>
Else if <kondisi> then <aksi>
/*Algoritma untuk melakukan pengecekan bilangan genap atau ganjil*/
-----------------------------------------------
/*Kamus*/
bil : integer
cek : string
/*Algoritma*/
Input(bil)
if (bil mod 2 = 0) then
cek = ‘genap’
else
cek = ‘ganjil’
output(cek)
/*Algoritma untuk menentukan yudisium mahasiswa*/
-----------------------------------------------------
/*Kamus*/
ipk: integer
yudisium : string
/*Algoritma*/
input(ipk)
if (ipk >= 3.5) then
yudisium = ‘cumlaude’
Else if (ipk >= 3.0) then
yudisium = ‘sangat memuaskan’
Else if (ipk >= 2.75) then
yudisium = ‘memuaskan’
Else if (ipk >= 2.25) then
yudisium = ‘cukup’
else
yudisium ‘TIDAK LULUS’
output(yudisium)
Notasi “depend on” Depend on <variabel>
<kondisi 1> : <aksi 1>
<kondisi 2> : <aksi 2>
<kondisi n> : <aksi n> Depend on <variabel 1>
<kondisi 1> : depend on <variabel 2>
<kondisi 2.1> : <aksi 2.1>
<kondisi 2.2> : <aksi 2.2>
<kondisi 2> : <aksi 2>
/*Algoritma untuk menampilkan nama hari berdasarkan nomor urut hari*/
---------------------------------------------------------------------
/*Kamus*/
idxHari: integer [1..7]
hari: string
/*Algoritma*/
input(idxHari)
Depend on (idxHari)
1 : hari ‘Senin’
2 : hari ‘Selasa’
3 : hari ‘Rabu’
4 : hari ‘Kamis’
5 : hari ‘Jumat’
6 : hari ‘Sabtu’
7 : hari ‘Minggu’
output(hari)
If (hari = ‘Sabtu’) or (hari = ‘Minggu’) then
output(‘HOREEE…!!!’)
else
output(‘hmmmm…’)
Latihan Buatlah algoritma untuk menentukan kondisi tubuh
seseorang, apakah kurus, ideal, atau kegemukan. Diketahui bahwa rumus untuk menghitung berat badan ideal adalah:
BBI = (Tinggi Badan - 100) * 90%
Ketentuan kategori berat badan:- jika berat badan seseorang 20% lebih besar dari nilai BBI-nya, maka kategorinya = kegemukan.- jika berat badan seseorang 10% lebih kecil dari nilai BBI-nya, maka kategorinya = kurus.- jika berat badan seseorang sama dengan nilai BBI-nya, maka kategorinya = ideal.
/*Algoritma untuk menentukan kategori berat badan*/
----------------------------------------------------------
/*Kamus*/
berat,tinggi: integer
bbi,persentase,selisih: real
kategori: string
/*Algoritma*/
input(berat,tinggi)
bbi (tinggi-100) * 0.9
selisih tinggi - bbi
If (selisih < 0) then
selisih -1 * selisih /*untuk mempositifkan nilai selisih jika selisihnya bernilai
negatif*/
persentase (bbi / tinggi) * 1
/*Lanjutan dari algoritma sebelumnya*/
If (persentase > 0.2) then
kategori ‘KEGEMUKAN’
Else if (persentase < 0.1) then
kategori ‘KURUS’
Else
kategori ‘IDEAL’
output(kategori)
Pengulangan Untuk melakukan suatu proses secara
berulang-ulang, sebanyak frekuensi yang ditentukan.
Ada empat macam notasi algoritmik1. Traversal2. While-do3. Repeat-until4. Iterate-stop
Notasi “traversal” Identik dengan notasi “for” pada Bahasa C. <pencacah> traversal [nilai ke-1.. Nilai ke-n]
<aksi 1>
<aksi n>
Contoh/*Algoritma menampilkan deret bilangan genap*/
-----------------------------------------------------
/*Kamus*/
idx,awal,akhir: integer
/*Algoritma*/
Input(awal,akhir)
idx traversal[awal..akhir]
If (idx mod 2 = 0) then
output(idx)
Contoh/*Algoritma menampilkan deret bilangan genap*/
-----------------------------------------------------
/*Kamus*/
idx,awal,akhir: integer
/*Algoritma*/
Input(awal,akhir)
idx awal
While(idx <= akhir) do
If (idx mod 2 = 0) then
output(idx
end if
idx idx + 1
Latihan Buatlah algoritma untuk menampilkan
gambar berikut:
**********Input berupa satu bilangan yang akan menyatakan
berapa jumlah baris dari gambar tersebut