Matrikulasi 2 Algo&Pemrograman
Matrikulasi 2 Algo&Pemrograman
Magister Teknologi
Informasi
STMIK Mikroskil Medan
Definisi Brute Force
Brute force adalah sebuah pendekatan
yang langsung (straightforward) untuk
memecahkan suatu masalah, biasanya
didasarkan pada pernyataan masalah
(problem statement) dan definisi konsep
yang dilibatkan.
n! = 1 × 2 × 3 × … × n , jika n > 0
=1 , jika n = 0
Deklarasi
i, j, k : integer
Algoritma
for i1 to n do
for j1 to n do
C[i,j]0 { inisialisasi penjumlah }
for k 1 to n do
C[i,j]C[i,j] + A[i,k]*B[k,j]
endfor
endfor
endfor
Algoritma:
k1
ketemu false
for k2 to n - 1 do
if n mod k = 0 then
write(k)
endif
endfor
Algoritma:
maksa1
for k2 to n do
if ak > maks then
maksak
endif
endfor
Algoritma:
k1
while (k < n) and (ak x) do
k k + 1
endwhile
{ k = n or ak = x }
if ak = x then { x ditemukan }
idxk
else
idx 0 { x tidak ditemukan }
endif
Algoritma:
for i 1 to n - 1 do
for k n downto i + 1 do
if L[k] < L[k-1] then
{pertukarkan L[k] dengan L[k-1]}
temp L[k]
L[k] L[k-1]
L[k-1] temp
endif
endfor
endfor
Algoritma:
if x < 2 then { 1 bukan prima }
return false
else
if x = 2 then { 2 adalah prima, kasus khusus }
return true
else
yx
testtrue
while (test) and (y 2) do
if x mod y = 0 then
testfalse
else
yy - 1
endif
endwhile
{ not test or y < 2 }
return test
endif
endif
Algoritma:
p0
for in downto 0 do
pangkat1
for j1 to i do {hitung xi }
pangkatpangkat * x0
endfor
pp + ai * pangkat
endfor
return p
Algoritma:
pa0
pangkat1
for i1 to n do
pangkatpangkat * x0
pp + ai * pangkat
endfor
return p
Persoalan: Diberikan
a. teks (text), yaitu (long) string yang
panjangnya n karakter
b. pattern, yaitu string dengan panjang m
karakter (m < n) yang akan dicari di dalam
teks.
10010101001011110101010001
1 001011
2 001011
3 001011
4 001011
5 001011
6 001011
7 001011
8 001011
9 001011
procedure PencocokanString(input P : string, T : string,
n, m : integer,
output idx : integer)
{ Masukan: pattern P yang panjangnya m dan teks T yang
panjangnya n. Teks T direpresentasika sebagai string
(array of character)
Keluaran: lokasi awal kecocokan (idx)
}
Deklarasi
i : integer
ketemu : boolean
Algoritma:
i0
ketemufalse
while (i n-m) and (not ketemu) do
j1
while (j m) and (Pj = Ti+j ) do
jj+1
endwhile
{ j > m or Pj Ti+j }
p3 p6
p8
p1
p7
x
Jarak dua buah titik di bidang 2-D, p1 = (x1, y1) dan p2
= (x2, y2) adalah (rumus Euclidean):
d (x x ) ( y y )
1 2
2
1 2
2
Algoritma:
dmin9999
for i1 to n-1 do
for ji+1 to n do
d((Pi.x-Pj.x)2 + ((Pi.y-Pj.y)2)
if d < dmin then { perbarui jarak terdekat }
dmind
P1Pi
P2Pj
endif
endfor
endfor