Minggu, 23 Oktober 2016

KOMPLEKASITAS ALGORITMA DALAM PENGGUNAAN "NOTASI"

Kompleksitas algoritma dalam penggunaanya terhadap "NOTASI" itu terdiri atas tiga notasi , yaitu :
  1. Notasi BIG O
  2. Notasi BIG THETA, dan
  3. Notasi BIG OMEGA
berikut kami akan membrikan beberapa contoh penyelesaian tentang mencari notasi BIG O, BIG THETA, dan BIG OMEGA sebagai berikut :

Algoritma cetak_angka ;

kamus
Angka,n : integer

algoritma
input (angka)
input (n)

i = 1 
While i ≤ n do
Write (angka)
i ← i+1
Endwhile

penyelesaiannya :



2n + 1

  • Big Omega

2n +1 ≥ 2n
n = 0                    1 ≥ 0
n = 1                    3 ≥ 2
n = 2                    5 ≥ 4

C = 2
n0= 0
n ≥ 0


  • Big O
2n + 1 ≤ 2n + n

n0= 1 ≤ 0
n1= 3 ≤ 3
n2= 5 ≤ 6

C = 2
n0= 2
n ≥ 2







  • Big Theta
  

2n + n ≥ 2n + 1 ≥ 2n
2n ≤ 2n +1 ≤ 2n + n


C = 2    n0 =2








Program menghitung_faktorial;

kamus
i,n,fak: integer;

algoritma
input <- (n)
fak <- 1;
for i := n downto 1 do 
fak:=fak*i;
endfor
  
output(n,fak)

penylesaiannya :



2n + 1

  • Big Omega

2n +1 ≥ 2n
n = 0                    1 ≥ 0
n = 1                    3 ≥ 2
n = 2                    5 ≥ 4

C = 2
n0= 0
n ≥ 0


  • Big O
2n + 1 ≤ 2n + n

n0= 1 ≤ 0
n1= 3 ≤ 3
n2= 5 ≤ 6

C = 2
n0= 2
n ≥ 2




  • Big Theta
  

2n + n ≥ 2n + 1 ≥ 2n
2n ≤ 2n +1 ≤ 2n + n


C = 2    n0 =2


Program bilangan_pangkat

Kamus
x, n, i, hasil : integer

Algoritma
x <- 2                                                     //bilangan yang akan dipangkatkan
n <- 3                                                     //pangkat dari bilangan yang akan dipangkatkan

                if n <- 0 then
                                hasil <- 1
                else
                                for i <- 1 to n do
                                                hasil <- hasil * x
                                endfor
                endif

output(hasil)



2n+1 = 2n = n

Penyelesaian :

  • Big Omega


n +1 ≥ n
n = 0                    1 ≥ 0
n = 2                    3 ≥ 2

C = 1
n0= 0
n ≥ 1

  • Big O

n + 1 ≤ n + n

n0 = 1 ≤ 0
n1= 2 ≤ 2
n2= 3 ≤ 4

C = 1
n0 = 1
n ≥ 1



  • Big Theta

  


n ≤ n +1 ≤ n + n


C = 2    n0 =2




Program _Pengulangan_bersarang

Kamus
                ulang 1, ulang 2, n : integer
Algoritma
                n <-  5
                                for ulang 1 <- 1 to n do
                begin
                                for ulang 2 <- 1 to n do
                                                write (‘A’)
Penyelesaian :

n2 + 1
  • Big Omega


n2 +1 ≥ n2
n = 0                    1 ≥ 0
n = 1                    2 ≥ 1
n = 2                    5 ≥ 4

C = 1
n0= 0
n ≥ 0

  • Big O

n2 + 1 ≤ n2

n0= 1 ≤ 0
n1= 2 ≤ 1
n2= 5 ≤ 4

C = 1
n0= 1
n ≥ 2

  • Big Theta  


n2 ≤ n2 +1 ≤ n2 + n


C = 1    n0 =2



Program_Cetak_angka  1-10

Kamus
i : Integer

Algoritma
                For i <- 1 to 10 do
                                Write (“,i)
Penyelesaian :


  • Big Omega


n  ≥ n – n
n = 0                    0 ≥ 0
n = 1                    1 ≥ 0
n = 2                    2 ≥ 0

C 1
n0 = 1
n ≥ 1

  • Big O

n  ≤ n - n

n0= 0 ≤ 0
n1= 1 ≤ 0
n2= 2 ≤ 0

C 1
n0 = 1
n ≥ 1



  • Big Theta

  

n-n ≤ n ≤ n + n


C = 1    n0 =1






Sabtu, 15 Oktober 2016

KOMPLEKSITAS ALGORITMA II


Kali ini kita akan memberikan berbagai macam contoh perhitungan tentang kompleksitas algoritma II sebagai berikut ontohnya :

(dalam hal ini kita mengambil dari operasi yang terdalam)

Program bilangan_pangkat

Kamus
x, n, i, hasil : integer

Algoritma
x <- 2                                                     //bilangan yang akan dipangkatkan
n <- 3                                                     //pangkat dari bilangan yang akan dipangkatkan

                if n <- 0 then
                                hasil <- 1
                else
                                for i <- 1 to n do
                                                hasil <- hasil * x
                                endfor
                endif

output(hasil)

2n+1 = 2n = n

kasus terbaik bila n=1 maka tmin = 1
kasus terburuk bila n tidak sama dengan 1 maka tmax = n
kasus rata-rata tavg = (1/2n(1+n))/n = (n+1)/2

Berat_Badan_ideal


kamus
tinggi,berat : integer
ideal     : real

algoritma
//input
input (tinggi)
input (berat)

//proses
ideal <- berat/(tinggi^2)

if(ideal < 17) then
output ("Kurus")
else if (ideal >= 17)or(ideal <=22) then
output ("Ideal")
else if (ideal >= 23)or(ideal <= 27) then 
output ("Kegemukan")
else if (ideal > 27) then
output ("obesitas")
else output ("Inputan anda salah")
endif
endif
endif

endif

tmin = 1
tmax = 5
tavg = (1/2n(n+1)/n) = 15/5 = 3


Nilai_Mahasiswa


Kamus
nilai:integer
grade:char

Algoritma
input (nilai)
if (nilai > = 80) and (nilai <=100) then
grade <- 'A'
else if (nilai > = 70) and (nilai <=79) then
grade <- 'B'
elseif (nilai > = 60) and (nilai <=69) then
grade <- 'C'
elseif (nilai > = 50) and (nilai <=59) then
grade <- 'D'
elseif (nilai > = 40) and (nilai <=49) then
grade <- 'E'
else
output ('Masukan Anda Salah')
endif
endif
endif
endif
endif
endif

output (grade)

tmin = 1
tmax = 6
tavg = (1/2n(n+1)/n) = (3(7)/6) = 21/6 = 3.5


Total_Gaji_Pegawai

kamus:
gaji_pokok, tunjangan, tot_gaji : integer
status:string

algoritma:
//input
input(status)

//proses
if (status == "Manajer") then
gaji_pokok <-- 4000000
tunjangan <-- 1000000
else if (status == "Asisten") then
gaji_pokok <-- 3500000
tunjangan <-- 500000
else if (status == "karyawan") then
gaji_pokok <-- 2500000
tunjangan <-- 300000
else
output("maaf inputan anda salah")
endif
endif
endif

tot_gaji <-- gaji_pokok + tunjangan

//output
output(tot_gaji)

tmin = 1
tmax = 4
tavg = (1/2n(n+1))/n = (2(5))/4 = 10/4 = 2.5


Algoritma_yudisium

Kamus

MK: real
ket: string

Algoritma
//input
input(IPK,MK)

//proses
If (IPK>=3.5) and (MK<=4)then
ket <- ‘cum laude’
else
ket <- ‘tidak cumlaude’
endif
//output
output (ket)

tmin = 1
tmax = 2
tavg = 3/2 = 1.5

KOMPLEKSITAS ALGORITMA II


Kali ini kita akan memberikan berbagai macam contoh perhitungan tentang kompleksitas algoritma II sebagai berikut ontohnya :

(dalam hal ini kita mengambil dari operasi yang terdalam)

Program bilangan_pangkat

Kamus
x, n, i, hasil : integer

Algoritma
x <- 2                                                     //bilangan yang akan dipangkatkan
n <- 3                                                     //pangkat dari bilangan yang akan dipangkatkan

                if n <- 0 then
                                hasil <- 1
                else
                                for i <- 1 to n do
                                                hasil <- hasil * x
                                endfor
                endif

output(hasil)

2n+1 = 2n = n

kasus terbaik bila n=1 maka tmin = 1
kasus terburuk bila n tidak sama dengan 1 maka tmax = n
kasus rata-rata tavg = (1/2n(1+n))/n = (n+1)/2

Berat_Badan_ideal


kamus
tinggi,berat : integer
ideal     : real

algoritma
//input
input (tinggi)
input (berat)

//proses
ideal <- berat/(tinggi^2)

if(ideal < 17) then
output ("Kurus")
else if (ideal >= 17)or(ideal <=22) then
output ("Ideal")
else if (ideal >= 23)or(ideal <= 27) then 
output ("Kegemukan")
else if (ideal > 27) then
output ("obesitas")
else output ("Inputan anda salah")
endif
endif
endif

endif

tmin = 1
tmax = 5
tavg = (1/2n(n+1)/n) = 15/5 = 3


Nilai_Mahasiswa


Kamus
nilai:integer
grade:char

Algoritma
input (nilai)
if (nilai > = 80) and (nilai <=100) then
grade <- 'A'
else if (nilai > = 70) and (nilai <=79) then
grade <- 'B'
elseif (nilai > = 60) and (nilai <=69) then
grade <- 'C'
elseif (nilai > = 50) and (nilai <=59) then
grade <- 'D'
elseif (nilai > = 40) and (nilai <=49) then
grade <- 'E'
else
output ('Masukan Anda Salah')
endif
endif
endif
endif
endif
endif

output (grade)

tmin = 1
tmax = 6
tavg = (1/2n(n+1)/n) = (3(7)/6) = 21/6 = 3.5


Total_Gaji_Pegawai

kamus:
gaji_pokok, tunjangan, tot_gaji : integer
status:string

algoritma:
//input
input(status)

//proses
if (status == "Manajer") then
gaji_pokok <-- 4000000
tunjangan <-- 1000000
else if (status == "Asisten") then
gaji_pokok <-- 3500000
tunjangan <-- 500000
else if (status == "karyawan") then
gaji_pokok <-- 2500000
tunjangan <-- 300000
else
output("maaf inputan anda salah")
endif
endif
endif

tot_gaji <-- gaji_pokok + tunjangan

//output
output(tot_gaji)

tmin = 1
tmax = 4
tavg = (1/2n(n+1))/n = (2(5))/4 = 10/4 = 2.5


Algoritma_yudisium

Kamus

MK: real
ket: string

Algoritma
//input
input(IPK,MK)

//proses
If (IPK>=3.5) and (MK<=4)then
ket <- ‘cum laude’
else
ket <- ‘tidak cumlaude’
endif
//output
output (ket)

tmin = 1
tmax = 2
tavg = 3/2 = 1.5

Minggu, 09 Oktober 2016

EFISIENSI WAKTU PADA ALGORITMA DAN CARA PERHITUNGANNYA

Pada kesempatan kali ini kita akan membahas tentang bagaimana pengaturan Efisiensi waktu eksekusi dalam suatu Algoritma.
dan kita juga telah menelaah beberapa contoh Algortma dan perhitungan waktunya yang disebut juga T(n).


Program menentukan_berat_badan_ideal

Kamus
tb, tinggi1, tinggi2, tinggi3 : real

Algoritma
input (tb)
                tinggi1 <- tb – 100
                tinggi2 <- tinggi1 * 10 / 100
                tinggi3 <- tinggi1 – tinggi2
output (tinggi3)

Perhitungan T(n)
n = 1

Operasi
C(1)
C(n)
Cop
<-
4
n
a
*
1
n
b
/
1
n
c
-
2
n
d
output
1
n
e

T(n) = 4na + nb + nc + 2nd + ne
T(1) = 4a + b + c + 2d + e
  


Program bilangan_pangkat

Kamus
x, n, i, hasil : integer

Algoritma
x <- 2                                                     //bilangan yang akan dipangkatkan
n <- 3                                                     //pangkat dari bilangan yang akan dipangkatkan

                if n <- 0 then
                                hasil <- 1
                else
                                for i <- 1 to n do
                                                hasil <- hasil * x
                                endfor
                endif

output(hasil)

Perhitungan T(n)
n = 3

Operasi
C(3)
C(n)
Cop
<-
11
4+(2n+1)
x
*
3
n
y
output
1
1
z

T(n) = ( 4+(2n+1) )x + ny + z
T(3) = 11x + 3y + z


Program faktorial

Kamus
a, f : integer
Algoritma
a <- 3
f <- a

while a > 1 do
                a <- a – 1
                f <- f * a
endwhile

output(f)

Perhitungan T(n)
n = 3
Operasi
C(3)
C(n)
Cop
<-
6
2+2(n-1)
j
*
2
n-1
k
> 
3
n
l
-
2
n-1
m
output
1
1
o

T(n) = 2+2(n-1)j + (n-1)k + nl + (n-1)m + o
T(3) = 6j + 2k + 3l + 2m + o  


Program volume_kubus

Kamus
s, v : real
Algoritma
s <- 5        //input pan jang sisi kubus
 v <- s*s*s
Output(v)

Menghitung T(n)
n=1

Operasi
C(1)
C(n)
Cop
<-
2
n
s
*
2
n
t
Output
1
n
u

T(n) = 2ns + 2nt + nu
T(1) = 2s + 2t + u



Program menghitung_arus_listrik

Kamus

V, I, r : integer
Algoritma
Input(v)
Input(r)
 I<-v/r
Output (I)

Menghitung T(n)
n=1

Operasi
C(1)
C(n)
Cop
Input
2
n
p
<-
1
n
q
/
1
n
r
Output
1
n
s

T(n) = 2np + nq + nr + n’s
T(1) = 2p + q + r + s