program Biaya_Sewa
Deklarasi
biaya : integer
jenis,tipe : char
Algoritma
input (jenis)
if (jenis='A') then
input (tipe)
case tipe of
'A' : biaya <- 300000
'B' : biaya <- 100000
'C' : biaya <- 65000
else
output('Tipe Mobil yang
anda pilih tidak ada')
endcase
endif
else if (jenis='B') then
Input(kelas)
case kelas of
'A' : biaya <- 150000
'B' : biaya <- 50000
'C'
: biaya <- 32500
else
Output('Tipe Sepeda Motor yang anda
masukkan tidak ada');
endcase
endelseif
else
output('Jenis Kendaraan
yang anda pilih tidak ada');
endelse
Output (biaya)
end.
Operasi Dasar
|
Tmax(n)
|
Tmin(n)
|
Tavg(n)
|
<-
|
n
|
0
|
1/2n
|
=
|
n
|
0
|
1/2n
|
input
|
n+1
|
n |
1/2n + 1/2
|
output
|
n+1
|
n |
1/2n + 1/2
|
Operasi dasar yang paling penting adalah (output)
Tmax(n) = n + n + (n+1) + (n+1)
Tn = n+1 = n
Tmin(n) = 0 + 0 + (n) + (n)
Tn = n
Tavg(n) = 1/2n + 1/2n + (1/2n+1/2) + (1/2n+1/2)
Tn = 1/2n = n
Contoh 2 : Algoritma Procedure Selection Sort
Data yang harus di urut kan dengan metode selection yaitu :
3
|
1
|
4
|
5
|
2
|
procedure sort_selection(var data:larik)
Deklarasi
i,j,result:integer
n<--5;
for i <-- 1 to n do
for j <-- i to n do
if data[j]
< data [i] then
result
<-- data [j]
data [j]
<-- data [i]
data [i]
<-- result;
endfor
endfor
endfor
Operasi
Dasar
|
Tmax(n)
|
Tmin(n)
|
Tavg(n)
|
<--
|
n+23
|
n+11
|
12n
|
<
|
n+5
|
n+5
|
0
|
Operasi dasar yang paling penting adalah (<--)
Tmax(n) = 23n + 5n
Tmax(n) = 23n + 5n
Tn = 23n = n
Tmin(n) = 11n + 5n
Tn = 11n = n
Tavg(n) = (23-11)/2 n + (5-5)/2 n
12n + 0
12n + 0
Tn
= 12n = n
Contoh 3 : Algoritma
mencari x di dalam elemen menggunakan metode sequential search
Procedure
Pencarian
Berurutan (input: a1,a2,a3…,a(n) : integer, x :integer,
{
mencari nilai x di
dalam elemen a1,a2,a3…a(n). lokasi (indeks elemen) tempat x ditemukan diisi ke
daalam idx. Jika x tidak ditemukan, maka idx diisi dengan 0.
Masukan : a1,a2,a3…a(n)
Keluaran : idx
}
Algoritma
i ← 1
ketemu ← false
while (
1 ≤ n) and (not ketemu) do
if a(i) = x then
ketemu ← true
else
i ← i + 1
endif
endwhile { i > n or ketemu }
if ketemu then
{x ditemukan}
idx ← i
else
idx ← 0 {x tidak ditemukan}
endif
Operasi
Dasar
|
Tmax(n)
|
Tmin(n)
|
Tavg(n)
|
←
|
n+2
|
n+3
|
1/2n
|
=
|
n
|
n
|
0
|
≤
|
n+1
|
1
|
1/2(n+1)
|
and
|
n+1
|
1
|
1/2(n+1)
|
+
|
n
|
0
|
1/2n
|
Operasi dasar yang paling penting adalah (←)
Penyelasaian:
Algoritma pencarian
membandingkan setiap elemen larik dengan x, mulai dari elemen pertama sampai x
ditemukan atau sampai elemen terakhir. Jika x ditemukan, maka proses pencarian
dihentikan. Kita akan menghitung jumlah operasi perbandingan elemen larik yang
terjadi selama pencarian ( a (i) = x ). Operasi perbandingan yang lain, seperti
i ≤ n tidak akan dihitung. Operasi perbandingan elemen-elemen larik adalah
abstrak yang mendasari algoritma-algoritma pencarian.
1. Kasus
terbaik Tmin : ini terjadi bila a (i) = x
Operasi perbandingan elemen ( a (i)
= x) hanya dilakukan satu kali,
maka Tmin (n) = (n+3) + n + 1 + 1 + 0
Tn = n+3 = n
maka Tmin (n) = (n+3) + n + 1 + 1 + 0
Tn = n+3 = n
2. Kasus
terburuk Tmax: bila a(n) = x atau x tidak ditemukan.
Seluruh elemen larik dibandingkan, jumlah perbandingan elemen larik (a (i) = x)
maka Tmax(n) = (n+3) + n + (n+1) + (n+1) + n
Tn = n+3 = n
maka Tmax(n) = (n+3) + n + (n+1) + (n+1) + n
Tn = n+3 = n
.
3. Kasus
rata-rata Tavg : Jika ditentukan pada posisi ke-j, maka
operasi perbandingan ( a(i) = x)
Dilakukan sebanyak j kali. Jadi,
kebutuhan waktu rata-rata algoritma adalah:
Tavg(n) = (1+2+3+…+n) / n = 1/2 n(1+n) / n = (n+1) / 2 = n
T(n) = 1/2n = n
Contoh 4 : Algoritma Program Indeks Nilai
Program indeks_nilai
Deklarasi
nilai : integer
indeks : char
Algoritma
input (nilai)
if (nilai ≥ 80) then
indeks <- ‘A’
else if (nilai ≥ 70) AND (nilai ≤ 80) then
indeks <- ‘B’
else if (nilai ≥ 55) AND (nilai ≤ 70) then
indeks <- ‘C’
else if (nilai ≥ 50) AND (nilai ≤ 55) then
indeks <- ‘D’
else
indeks <- ‘E’
end if
output (indeks)
end.
Operasi
Dasar
|
Tmax(n)
|
Tmin(n)
|
Tavg(n)
|
<-
|
5n
|
n
|
1/2(5n-n)
|
≥
|
4n
|
n
|
1/2(4n-n)
|
≤
|
3n
|
n
|
1/2(3n-n)
|
input
|
n
|
n
|
0
|
output
|
n
|
n
|
0
|
Operasi dasar yang paling penting adalah (<-)
Tmax(n) = 5n + 4n + 3n + n + n
Tmax(n) = 5n + 4n + 3n + n + n
Tn = 4n = n
Tmin(n) = n + n + n + n + n
Tn = n
Tavg(n) = 1/2(5n-n) + 1/2(4n-n) + 1/2(3n-n) + 0 + 0
2 n + 1 1/2 n + n + 0 + 0
2 n + 1 1/2 n + n + 0 + 0
Tn = 2 n = n
Algoritma
Contoh 5 : Algoritma Cetak Nama Lengkap
program ctkNamaLengkap
Deklarasi
nama : array [1..10] of string[15]
program ctkNamaLengkap
Deklarasi
nama : array [1..10] of string[15]
nmLkp, nm: string [150]
n, i : integer
Algoritma
input(n)
nmLkp <- ' '
for i <- 1 to n do
output("Masukkan nama ke ",i," : ")
input(nama[i])
nmLkp <- nmLkp + nama[i] + ' '
endfor
if nmLkp = 3
nm <- "Nama anda sudah pas"
else if nmLkp > 3
nm <- "Nama anda terlalu panjang"
else
nm <- "Nama anda terlalu singkat"
endif
if nmLkp = 3
nm <- "Nama anda sudah pas"
else if nmLkp > 3
nm <- "Nama anda terlalu panjang"
else
nm <- "Nama anda terlalu singkat"
endif
output("Nama lengkap anda adalah",nmLkp)
output(nama)
output(nama)
Operasi Dasar
|
Tmax(n)
|
Tmin(n)
|
Tavg(n)
|
<-
|
5n+1
|
2n+1
|
1/2(5n+1 - 2n+1)
|
=
|
n
|
n
|
1/2n
|
input
|
n+1
| n |
1/2n + 1/2
|
output
|
n+1
| n |
1/2n + 1/2
|
Operasi dasar yang paling penting adalah (<-)
Tmax(n) = (5n+1) + n + (n+1) + (n+1)
Tn = 5n+1 = n
Tmin(n) = (2n+1) + n + n + n
Tn = 2n = n
Tavg(n) = 1/2(5n+1 - 2n+1) + 1/2n + (1/2n+1/2) + (1/2n+1/2)
(1 1/2n+1) + 1/2n + (1/2n + 1/2) + (1/2n + 1/2)
Tn = 1 1/2n + 1 = n
No comments:
Post a Comment