PENDAHULUAN
1.1 Algoritma
1). Finiteness
Ditinjau dari asal usul katanya kata Algoritma sendiri
mempunyai sejarah yang aneh. Orang hanya menemukan kata
Algorism,
yang
berarti
proses
pengerjaan
arithmatika
dibaca
orang
barat
menjadi
Algorism.
Al-
Khuwarizmi menulis buku yang berjudul Kitab Al Jabar WalMuqabala yang artinya Buku pemugaran dan pengurangan (The
book of restoration and reduction). Dari judul buku itu kita juga
memperoleh akar kata Aljabar (Algebra).
Pada
abad
pertengahan
dengan
abacus
sebagai
2). Definiteness
Setiap langkah algoritma harus disefinisikan dengan tepat
dan tidak menimbulkan makna ganda (ambiguous). Karena
itu maka sebetulnya cara paling tepat untuk menuliskan
algoritma adalah dengan menggunkan formal language
(bahasa pemrograman komputer).
3). Input
Setiap algoritma memerlukan data sebagai masukan untuk
diolah. Algoritma yang tidak memerlukan masukan apa-apa
sebetulnya tidak begitu bermanfaat karena jumlah kasus
yang dapat diselesaikan juga terbatas.
4). Output
perhitungan
berangsur-angsur
metode
perhitungan
basis
pemerograman
komputer,
algoritma
pemecahan
masalah
(penyelesaian
persoalan),
yang
3) setiap
kinerjanya
langkah
sederhana,
sehingga
akal
pemecahan
masalah
dengan
algoritma
tertentu
Definisi
masalah
Buat model
Rancangan
algoritma
Tulis
program
compile
Syntax
error
Tidak
RUN
Ya
Output
error
Tidak
DOKUMENNTASI
beban komputasi
- Kompleksitas
1.4 Masalah Kompleksitas
Menurut kesepakatan para ilmuwan komputer, algoritma
berdaya guna untuk komputasi bila kompleksitas waktu O (baca
Oh) berkembang secara polinomial dalam respect terhadap ukuran
input n.
Secara lebih positif, wajah polinomial suatu algoritma seperti:
O(n), O(n log n), O(n3), O(106n8), O(2n), O(nlog n), O(n!)
Dalam perkembangan yang lebih menguntungkan kompleksitas
waktu dapat seperti:
O(n),
O(n
log
O(10n),O(nlog n),
n),
O(n2),
O(n3),
O(108n4),
O(2n),
O(n!)
Main module
Sub module
SUB
dan efisiensi
CALL SUB
dihadapi.
-
Perlu
perhatikan
tingkat
kemudahan
operasional
dan
CALL SUB
antarmuka
-
populasi pemakainya
-
Bentuk submodule:
struktur
dasar:
menggunakan
flowchart
utama)
akan menggunakan.
dan
pseudocode
-
External subroutine:
dalam
menggunakannya,
pemrogram
perlu
Modul utama
sehubungan
alogaritma
SUB
1
SUB
2
SUB
3
SUB
12
SUB
22
dan
efektifitas
permasalahan
suatu
yang
SUB
31
SUB
21
efisiensi
memecahkan
dihadapi.
SUB
11
dengan
dalam
SUB
23
SUB
24
SUB
241
-
sub modul dari suatu modul minimum dua. Bila hanya satu
ditinjau kembali. Dalam gambar di atas perlu ditinjau
kembali submodul 31 dan 241
1.7
Kesalahan
Yang
Sering
Terjadi
Dalam
Pemilihan
Algoritma
kelebihan
atau
kelemahan
dari
10
II. SORTING
Lewatan ke-
A(I)
1
2
3
4
5
6
7
8
9
10
42
23
74
11
65
58
94
36
99
87
pertama.
Data terkecil (terbesar) dicari mulai dari data kedua sampai
data terakhir, lalu data terkecil (terbesar) ditukar dengan
data kedua.
Demikian seterusnya sehingga terurutkan naik atau turun,
tergantung yang dikehendaki.
11
23
74
42
65
58
94
36
99
87
11
23
74
42
65
58
94
36
99
87
11
23
36
42
65
58
94
74
99
87
11
23
36
42
65
58
94
74
99
87
11
23
36
42
58
65
94
74
99
87
11
23
36
42
58
65
94
74
99
87
11
23
36
42
58
65
74
94
99
87
11
23
36
42
58
65
74
87
99
94
11
23
36
42
58
65
74
87
94
99
metode
seleksi
(lihat
pada
Proses
terus
berlangsung
dengan
elemen
ketiga
dan
ditukar.
Contoh
halaman
berikutnya):
11
12
Lewatan keI
A(I)
1
2
3
4
5
6
7
8
9
10
42
23
74
11
65
58
94
36
99
87
Lewatan ke-
23
42
11
65
58
74
36
94
87
99
23
11
42
58
65
36
74
87
94
99
11
23
42
58
36
65
74
87
94
99
11
23
42
36
58
65
74
87
94
99
11
23
36
42
58
65
74
87
94
99
11
23
36
42
58
65
74
87
94
99
A(I)
1
2
3
4
5
6
7
8
9
3
11
4
6
5
9
7
8
1
3
11
3
4
11
3
4
6
11
3
4
5
6
11
3
4
5
6
9
11
3
4
5
6
7
9
11
3
4
5
6
7
8
9
11
1
3
4
5
6
7
8
9
11
Lebih efisien untuk selipkan suatu nilai pada tabel yang sudah
terurut
2.3 Metode Sisipan
Algoritmanya adalah sebagai berikut:
-
Langkah-langkah
berikutnya,
rekaman
demi
rekaman
dibangun itu.
Metode ini dapat diterapkan pada struktur data larik maupun
rantai
Contoh penggunaan metode sisipan (lihat halaman berikutnya):
13
14
11
Babak I
11
Babak II
11
11
11
Babak III
Posisi 0
Seleksi
median
91
10
27
63
32
55
87
43
16
74
55
91
9
55
16
55
Hasil
11
43
Seleksi
median
27
27
16
32
55
63
55
91
55
43
55
87
7
91
74
63
8
9
Bubble
16
27
32
43
Hasil
16
27
32
43
10
55
63
74
87
91
11
diurutkan
-
Bag 3
Bag 2
Median 2
Bag 1
Median 1
elemen median.
Penjelasan
1. Langkah
Nilai
median
yang
dipilih
dengan
membandingkan
91 (posisi 0 )
55 (posisi 5 )
9 (posisi 10)
2. Langkah
15
16
3. Langkah
Dengan
pada baris 2.
kiri
dan
dibandingkan
dengan
median
5. Langkah 5 8
ditukar
dengan
kecil
kemudian
dari
median.
Nilai
ini
9 (posisi 10)
: elemen diteliti
55(posisi 0)
: median
pada posisi 6.
dilakukan,
63,
4. Langkah 4
demikian
seperti
yang
disajikan
pada
baris 3.
median.
pada
empat
6. Langkah 910
ilustrasi
elemen
ini)
hanya
sedang
mengandung
bagian
kiri
nilai median.
disajikan
berikut:
pada
baris
10.
Tahap
ini,
Posisi 10 : 55 (median)
Posisi 0 : 9
(elemen kecil)
elemen.
7. Langkah 11
17
18
yaitu
menyusun
rekaman-rekaman
menjadi
berkas
struktur pohon biner. Dalam hal ini data satu demi satu dibaca
antrian.
Contoh :
kecil daripada induknya dan cabang kanan lebih besar atau sama
42, 23, 65, 57, 94, 36, 99, 87, 70, 81, 61, 11, 74
cabang kanan, dan hal ini dilakukan secara rekursif. Maka hasil
pembacaan
seluruh
rekaman
telah
terurutkan
seuai
yang
diinginkan.
Saku(5) = 65
Saku(6) = 36
Saku (2) = 42
Saku(7) = 57, 87
Contoh:
Saku (3) = 23
Saku(8) = ---
Masukan rekaman adalah sebagai berikut : 47, 94, 23, 87, 35, 71,
Saku(9) = 99
dengan saku (9) pada puncak: 70, 81, 61, 11, 42, 23, 94, 74, 65,
36, 57, 87, 99.
Pada lewatan kedua, deret diatas dikelompokkan dalam
47
12
94
35
16
87
46
38
98
71
Saku(5) = 57
Saku (1) = 11
Saku(6) = 61, 65
Saku (2) = 23
Saku(7) = 70, 74
Saku (3) = 36
Saku(8) = 81, 87
Saku (4) = 42
Saku(9) = 99
Saku-saku dikombinasikan dari saku (0) pada dasar sampai dengan saku
66
(9) pada puncak: 11, 23, 36, 42, 57, 61, 65, 70, 74, 81, 87, 99.
Penelusuran pohon tersebut akan menghasilkan nilai-nilai :
2, 12, 16, 23, 35, 38, 46, 47, 66, 71, 87, 94, 98
19
20
1
1
1
kemudian digabung menjadi
,
,
, dan seterusnya.
2n 4n 8n
Contoh:
(terkecil).
(25, 57)
(37, 48)
(12,92)
(33, 86)
Windyarto
Lewatan 3:
begitu nampak.
pembandingan
diulang
terus
dan
yang
sudah
UGM) menunjukkan :
dan Heap.
pemenang.
21
22
III. SEARCHING
cepat untuk data alfabetis (cacah data sampai dengan 200 buah)
FETCH : -
namun untuk cacah data dari 200 sampai 1000 buah adalah
metode cepat dan Heap.
NEXT :
pembacaan rekaman
pemilahan data :
Pile
Sequential
Indexed sequential
Indexed
Hashed (= direct)
Maksud
pile
untuk
mengumpulkan
massa
data
dan
menyelamatkannya.
-
23
24
efisien dimungkinkan.
dalam tiap blok secara fisis. Tiap blok pada disk berisi pointer
sulit diorganisasikan.
3.1.2 Sequential
sequential
-
kunci.
-
berkas
-
Berkas index terdiri dari dua medan yaitu medan kunci dan
pointer.
Berkas index berstruktur sequential
Yang diakses berkas index untuk mencari medan yang sama
(cocok)
dengan kunci.
25
26
3.1.4 Indexed
321
592
876
8
14
26
38
72
115
306
321
329
387
409
512
540
567
583
592
602
611
618
741
798
811
814
876
f = fungsi hash
Kunci
f
Berkas
primer
Berkas
limpahan
Tiap rekaman juga perlu diberi medan kunci, tetapi tak ada
konsep/aturan harus sequential.
27
28
a) Pile
1) R = a'(A+V+2)
2) TF =
1 B
1 B
b atau TF = n
2 t'
2 t'
3) TN = TF
4) TI = s + r + btt + TRW
5) TU = TF + TRW + TI
a. Ukuran rekaman (R)
6) TX = 2TF = n
7) TY = (n + O)
O = ninsert + v
d = ndelete + v
btt = block transfer time
1) R = aV
2) -
TFO =
1 R
n
(mainfile)
2 t'
1 R
O (overflow file)
2 t'
Sehingga TF =
sequential search
TF =
R
R
+ (n + O d)
t'
t'
b) Sequential
ntotal
R
t'
1
R
(n+O)
2
t'
(total)
binary search
29
30
TF = log2 (
-
n
)(s + r + btt + c)
Bfr
Mungkin
= (i2 + i3 + + 1)B
n
Bfr
ilevel =
btt
R
3) TN =
Bfr
t'
TY
O
TF overflow =
5) TU FF (mainfile) + TI (logfile)
Estimasi :
R
t'
R
R
R
+O
+ nnew
t'
t'
t'
TY = Tsort(o) + 2(n + O)
o'
1
1 o'2
(s + (r + btt) +
Bfr(r + btt)
n
2
2 n
o'2
Bfr 1, sehingga
n
TF = (x + 1 +
3) TN =
o'
)(s + r + btt)
n
o'
1
(s + r + btt) +
(r + btt)
Bfr
nm
Estimasi :
R
t'
TN
c) Indexed Sequential
Fanout (Y):
Y=
ilevel
y
2) TF = TFmain + TF overflow
n
R
TI = n
+n
atau
t'
Bfr
7) TY = Tsort(o) + nold
ilevel 1
y
bilevel =
1 n
(btt + TRW) atau
4) TI = TF +
2 Bfr
6) TX = Tsort(o) + (n + O)
nm
Bfr
i1 =
n
TF ~ 0.2146
Bfr
TI = s + 3r + btt +
n m R + oR + SI
n
Rtotal =
n + o' Bfr
(r + btt)
(n + o' )Bfr
B
V+P
5) TU = TF + TRW = TF + 2r (rewrite)
General :
n
n
) atau X = (ln
)/ ln (Y)
X = logY (
Bfr
Bfr
TU = TF + TRW + TI atau
TU = 2TF + 7r + btt
1) R = aV + P
dengan adanya rekaman utama (main record) dan overflow
record, serta index record maka
31
6) Tx = TF + (n + o' 1)TN
(n + o')TN
32
7) TY =
R
SI
n + o' Bfr
(r + btt) + (n + o' d)
+
Bfr
t'
t'
Bfr
C
c
D
d
F
G
G
h
I
j
K
k
L
M
M
m
N
n
O
o
P
p
q
R
RW
r
SI
s
T
Tsort
t
d) Index
a' : atribut per record (rerata)
index rata-rata :
n' = n
a'
a
Index size:
SItotal 1.5 n a' (Vindex + P)
Rtotal = Rmain + a' Rindex
= a' (A + V + 2) + 1.5 a'(Vindex + P)
dengan Vindex = V, maka
1) R = a' (A + 2.5V + 1.5P + 2)
TF = 2 + (x + 1)(r + btt)
2)
3) TN = s + r + btt
4) TI = (1 + a')s + (3 + 4a')r + (1 + 2a')btt
5) TU = (4 + 4aupdate)(s + 2 + 2r + btt)
6) Tx = TF + (n-1) TN (serial)
Tx = n
Tx =
R
(random sequential)
t
B
n
(s + r + ) (random)
Bfr
t'
7) TY one = Tx + Tsort(n')
TY = 2Tx + aTY(one)
Keterangan : Variable yang digunakan dalam formula di atas :
A
a
a'
B
b
btt
33
t'
U
u
uf
V
w
W
X
x
Y
y
34
Pada
rekaman-
rekaman
yang
diorganisasikan
serial
memayar berkas.
tetap
dalam
masing-
masing
rekaman.
Untuk
(concatenated key)
NB =
kalau kali lebih besar dari Ks, maka rekaman- rekaman dari ruas
sebagai kunci. Kunci harus unik, karena kunci itu dipakai untuk
berkas
hal
ini
diperlukan
index
yang
mewakili
seluruh
rekaman.
35
yang
mana.
Kemudian
menuju
ketengah-tengah
36
Sepaerti diketahui
sulit
untuk
menentukan
titik
tengahnya.
yang
yang ditempatinya.
Pemayaran cakram atau alur drum dapat dibuat bersamaan
dengan waktu rotasi dan karena itu bermanfaat.
Nf .
pointer,
dituju
akan
bergeser
untuk
menyesuaikan
penambahan itu.
Pencarian biner lebih baik dilakukan pada index-index
berkas daripada langsung mencari berkasnya sendiri.
37
38
ruas-
ruas
rekaman
Misalnya APNA, APNE, APNI, APNK, dan seterusnya. Dalam hal ini
APN sama semua.
Berkas berurutan berindex jauh lebih ekonomis, karena ruang
dibandingkan
dengan
untuk
yang satu diurutkan, maka kunci yang lain tidak akan terurutkan.
dicari
dalam
keseluruhannya,
dan
dengan
demikian
Suatu index dapat dipakai untuk tiap kunci, index untuk kunci
diurutkan,
berurutan pendek.
karena
masup
cepat
dimungkinkan
oleh
index
judul buku dan nama pengarang. Kedua kunci ini tidak dipakai
untuk pengurutan buku- buku pada rak- rak. Oleh karena itu
harus ada suatu entri untuk setiap buku dalam kedua index it.
Buku- buku itu disusun dalam urutan dengan nomor katalog,
Apabila pemakai telah menemukan nomor katalog dari buku yang
diinginkannya, lalu dia mencari pada jajaran-jajaran rak (lemarilemari rak). Analog dengan pencarian Index dalam berkas. Masing-
nomor akhir katalog dari buku- buku dalam jajaran itu. Pemakai
banyak, karena harus berisi satu entry untuk satu rekaman. Lagi
39
40
tiap rak dalam jajaran itu. Analog dengan index induk pada suatu
index
silinder
dam
kemudian
pada
index
alur.
Setelah
waktu
mencari- cari buku tersebut dalam rak itu. Dalam hal ini
banyak,
karenasetiap
kali
ditambahkan
buku
baru,
Cara
pemecahan
persoalan
pengalamatan
yang
paling
dengan
termasuk
kemudian
dengan
misalnya
digunakan
judul
buku
untuk
pengembilan
adalah
kunci
rekaman
utama,
sedang
nama
menemukan
langsung.Dlam
sederhana.Pola
banyak
ini
aplikasi,
adalah
mancakup
itu
sangaty
lincah
Metode
pengalamatan
pengambilannya
dengan
berkas
utamanya.
supaya
bahwa
kunci
kunci
dan
penyisipan
41
nomor
Jawabandalam
acuan
pesanan
mesin
teletip
dari
rekaman
diterima,
penumpang.
misalnya
tentang
42
alamat mesin.
Kerugian
kelakuannya.
dari
pola
Sepaerti
ini
pengalamatan
diketahui
bahwa
langsung
alamt
mesin
yakni
dpat
Tetapi metode ini adalah sederhana dan cepat untuk aplikasi yang
dapat menerapkannya.
rinci
Apabila panjang rekaman 100 byte, maka alamat byte relatif dari
bucket
slot. Jumalah rekaman nalari yang dapat disimpan dalam area ini
tersebut
disimpan.
Bilangan
hampir
acak
itu
dapat
43
44
berikut:
Pengalamatan
bilangan
hampir
acak,
yaitu
n,
dengan
diminta.
4. Apabika rekaman yang diminta tiadak ada dalam bucket
luapan dibaca dan di- search. Kadang- kadang perlu
45
46
CITY-PAIR.
Kunci
untuk
pengalamatan
rekaman
CITY-PAIR
adalah
BA = R NE + NH
Di mana NE
NH
BA
dilayani
penerbangan,
sehingga
tidak
memerlukan
rekaman
menjadi bilangan urut. Dalam hal ini l byte dapat dipakai untuk
dari operasi pencarian tabel dalam inti. Urutan dalam tabel ini
disebarkan
tabel ini dapat juga mengubah kembali bilangan urut kota manjadi
pada
beberapa
cakram
untuk
meningkatkan
sebutan kota
Bilangan urut pasangan kotqa kemudian dipakaisebagai
kunci untuk mengambil suatu rekaman CITY- INDEX. Algoritma
berikut ini dipakai:
(CON1 NC ) + CON 2
=Q+R
NI
dimana CON1 = bilangan urut dari kota berangkat
CON 2 = bilangan urut dari kota tiba
NC
NI
= hasil bagi
= sisa pembagian
47
48
IV. GRAPH
lain sebagainya
Lintasan
ke
dari
A
B
C
D
E
menuju j.
lintasan langsung ij : lintasan dari i ke j tanpa
melewati simpul yang lain
lintasan tak langsung ij : lintasan dari i ke j dengan
A B C D E
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1 : ada lintasan
0 : tidak ada lintasan
Maka
1 : TRUE
0 : FALSE
0
0
1
0
0
simpul
yang bersangkutan
B
D
D
E
A
C
C
ke
Vertex A : derajat 6
dari
A
B
C
D
E
derajat masuk : 3
derajat keluar : 3
Graph dapat mewakili :
jaringan tranportasi
49
A B C D E
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
: ada hubungan
: tidak ada
hubungan atau
vertex itu sendiri
50
Bobot
lintasan
menunjukkan
harga
besaran
yang
V1
V2
Sebagai contoh, untuk masalah transportasi udara, unsurunsur matriks lintasan menunjukkan biaya (dalam satuan mata
V6
V3
uang).
1
2
3
4
5
6
1
0
1
1
0
0
0
2
1
0
1
0
0
0
3
1
1
0
1
1
0
4
0
0
1
0
0
0
5
0
0
1
0
0
0
6
0
0
0
0
0
0
V5
V4
A
10
39
20
10
30
39
20
15
30
25
Matrix lintasan A
E
15
25
35
Nilai 0 ada
tidak ditulis
35
150
B
100
200
D
350
300
39
Contoh kasus:
250
51
52
Contoh persoalan :
asal
250
2
D
100
100
50
200
175
6
5
S2
5
w
w
2
20
S1
T1
S3
2
1
4. 1 Algoritma E. Dijktra
Algoritmanya :
T3
3
w
1
4. Ulangi langkah 2
2
x
1. 1.Inisialisasi tree T.
Bila
x
atau
T4
lintasan
adalah
minimum
yang
2
u
53
3
w
3. Bila E(T) = P-1 (P= cacah vertex) maka output adalah E(T).
Bila tidak, ke langkah 2.
Algoritmanya:
diperbaharui.
w
2
2. T
T2
54
Contoh:
V= {1,2,3,4}
sebaliknya ke langkah 2.
Contoh:
y
2
F1
G
6
9
4
w
w
7
u
5
1
y
2
2
x
F2
F3
3
w
5
u
55
56
V0
V1
8
16
13
V5
10
Bila P = u0,u1,u2,u3...un, v
V6
V7
11
Eksentrisitas : e(v)
17
V2
V4
6
14
V3
Radius Graph
rad G = min {e(v) | v(G)}
Diameter Graph
diam G = max {e(v) | v(G)}
l(v0)
0
v1
v2
v3
v4
v5
(,-)
(,-)
(,-)
(,-)
(,-)
(,-) (13,v0) (,-) (16,v0) (8,v0)
(18,v5) (13,v0) (25,v5) (15,v5)
(18,v5)
(25,v5) (15,v5)
(18,v5)
(20,v4)
(20,v4)
v6
v7
(,-)
(,-)
(,-)
(,-)
(,-)
(,-)
(,-)
(,-)
(,-)
(,-)
v0
v5
v2
v4
v1
v3
Median Graph :
M(G) subgraph dengan min jarak.
Untuk i = 1, 2, ... 5,
Qi adalah jalur v0 vi :
Q1 = v0, v5, v1
Q4 = v0, v5, v4
Q2 = v0, v2
Q5 = v0, v5
57
58
NY
NY
DC
DA
DE
CH
LA
SE
DC
200
200
DA
DE
CH
800
1300
1300
800
2600
780
780
900
1400
900
1000
1000
LA
2600
1400
2000
2000
2000
1300
SE
1300
2000
1100
NY
DA
1100
CH
Bagaiman kota- kota itu dihubungkan , dapat dilihat pada peta
CH
berikut :
CH
200
DC
SE
2600
1300
DE
200
DC
780
800
900
1000
1100
DE
NY
DA
DE
LA
1300
SE
1300
DC
1400
NY
DA
900
800
CH
780
DE
1000
DA
1300
SE
DA
2000
1100
LA
CH
1400
LA
2000
SE
2000
LA
2000
CH
DC
2600
LA
59
60
200
DC
NY
DA
780
DE
900
800
1300
DC
0
SE
CH
1100
NY
(,-)
(200,DC)
LA
DA
(,-)
(1300,DC)
(1300,DC)
(1300,DC)
DE
(,-)
(2000,CH)
(2000,CH)
CH
(,-)
(1000,NY)
LA
(,-)
(2600,DC)
(2600,DC)
(2600,DC)
(2600,DC)
(2600,DC)
SE
(,-)
(3000,CH)
(3000,CH)
(3000,CH)
(3000,CH)
Solusi
1
NY
CH
DA
DE
LA
SE
200
DC
2600
1300
Penyelesaiannya
NY
DA
(,-)
(1500,DC)
(1500,DC)
200
DC
NY
DE
DE
CH
LA
(,-)
(,-)
(,-)
(800,NY)
(800,NY) (2800,DC)
(1800,CH)
(2800,DC)
(1800,CH)
(2800,DC)
(2800,DC)
SE
Sol
(,-)
1
D
N
(2800,CH)
D
(2800,CH)
D
(2800,CH)
L
(2800,CH)
S
CH
SE
2000
LA
Maka berdasar tabel di atas, jika kota DC dijadikan kota pusat pelayanan
maka eksentrisitasnya adalah : e(DC,DC NY CH SE) = 3000.
Jika kota DA yang menjadi titik pusat pelayanan
1300
DA
0
DE
1000
CH
1000
800
2600
DA
800
DA
SE
2000
NY
(,-)
(1700,CH)
(1500,CH)
(1500,CH)
DC
(,-)
(1300,DA)
(1300,DA)
(1300,DA)
DE
(,-)
(780,DA)
CH
(,-)
(900,DA)
(900,DA)
LA
(,-)
(1400,DA)
(1400,DA)
(1400,DA)
(1400,DA)
SE
(,-)
(2080,DE)
(2080,DE)
(2080,DE)
(2080,DE)
(2080,DE)
Solusi
1
DE
CH
DC
LA
NY
SE
LA
61
62
DC
200
1300
CH
0
1400
NY
DA
780
DE
NY
(,-)
(800,CH)
1300
900
DC
(,-)
(1000,NY)
(1000,NY)
(1000,NY)
DA
(,-)
(900,CH)
(900,CH)
DE
(,-)
(1000,CH)
(1000,CH)
(1000,CH)
SE
CH
LA
(,-)
(2000,CH)
(2000,CH)
(2000,CH)
(2000,CH)
(2000,CH)
SE
(,-)
(2000,CH)
(2000,CH)
(2000,CH)
(2000,CH)
(2000,CH)
(2000,CH)
Solusi
1
NY
DA
DE
DC
LA
SE
LA
200
NY
SE) = 2080.
NY
(,-)
(1800,CH)
(1800,CH)
200
DA
DE
DC
(,-)
(2080,DA)
(2080,DA)
(2080,DA)
(2000,NY)
DA
(,-)
(780,DE)
CH
(,-)
(1000,DE)
(1000,DE)
LA
(,-)
(2180,DA)
(2180,DA)
(2180,DA)
(2180,DA)
(2180,DA)
SE
(,-)
(1300,DE)
(1300,DE)
(1300,DE)
Solusi
1
DA
CH
SE
NY
DC
LA
DA
780
1000
CH
SE
2000
LA
2000
Maka berdasar tabel di atas, jika kota CH dijadikan kota pusat pelayanan
maka eksentrisitasnya adalah : e(CH,CH LA) = e(CH, CH SE) = 2000.
Jika kota LA yang menjadi titik pusat pelayanan
LA
0
1400
800
1000
CH
DC
NY
900
800
DC
DE
1300
SE
NY
(,-)
(2800,CH)
(2800,CH)
(2800,CH)
DC
(,-)
(2600,LA)
(2600,LA)
(2600,LA)
(2600,LA)
(2600,LA)
DA
(,-)
(1400,LA)
(1400,LA)
DE
(,-)
(2400,SE)
(2400,SE)
(2400,SE)
CH
(,-)
(2000,LA)
(2000,LA)
(2000,LA)
SE
(,-)
(1100,LA)
Solusi
1
SE
DA
CH
DE
DC
NY
LA
Maka berdasar tabel di atas, jika kota DE dijadikan kota
pusat pelayanan maka eksentrisitasnya adalah : e(DE,DE DA
LA) = 2180.
63
64
2600
DC
1400
NY
DA
DE
1300
800
SE
CH
1100
LA
2000
NY
(,-)
(2800,CH)
(2800,CH)
200
DC
(,-)
(3700,LA)
(3700,LA)
(3700,LA)
(3380,DA)
(3380,DA)
DA
(,-)
(2500,LA)
(2080,DE)
(2080,DE)
DE
(,-)
(1300,SE)
(1300,SE)
CH
(,-)
(2000,SE)
(2000,SE)
(2000,SE)
LA
(,-)
(1100,SE)
Solusi
1
LA
DE
CH
DA
NY
DC
DC
NY
DA
780
DE
800
CH
1300
SE
2000
1100
LA
65
66
Dua deretan :
1) min (a0, a n ), min (a1, a n ), . . . min ( a n ,an-1) dan
+1
+1
+1
+1
langkah
tunggal
Max (a,b)
a0
Min (a,b)
a1
High to low comparator
an
yang memiliki :
1) index i, 0 i (n-1) sedemikian sehingga a0 sampai dengan
ai bertambah secara monotolik dan ai ke an-1 berkurang
an
2
+
2
an
an
+2
pertama memuaskan
2k,
n
elemen
2
bitonic sorter
n
elemen
2
bitonic sorter
n=
tukar
Max (a,b)
Apabila
pembanding
suatu
Min (a,b)
an-2
dan
an-1
a n a n . . . an-1
2
+1
67
68
A A
A A
A A
A A
G G
D D
M M
D D
O O
H H
M M
G G
N N
H H
M M
D D
H H
K K
M M
N K
O O
K N
input
output
69
A A
A A
A A
A A
G G
D D
M M
D D
O O
H H
M M
G G
N N
H H
D D
M M
H H
M M
K K
N K
O O
K N
70
pada
ada-tidaknya
global
clock
untuk
sinkronisasi
4) Interkoneksi prosesor
Sistem switching
71
P1
M1
P2
M2
P3
M3
P4
M4
72
Sistem network
M1
representasi (x1+x2)(x2+x3) .
M2
P1
P2
P4
P3
x1
x2
x1 x2
M4
x3
x22
x1 x3
X2 x3
M3
x 1 x 3+ x 2 x 3
M
2
x 1 x 2+ x 2
(x1+x2)(x2+x3)
P1
P2
xi = fi ({xj | j is predecessor of i})
P3
P4
xi = input variable
ukuran kompleksitas :
P2
P3
P4
P7
P5
P8
P6
P9
73
cacah prosesor
74
DAG optimal:
x1
x2
x3
A
A2 S
x1+x2
A4 S
x2+ x3
A3
S A8
(x1+x2)(x2+x3)
Contoh representasi komputasi paralel untuk penjumlahan 16
A7
A5
A6
2
x1(t+1) = f1 (x1(t),x3(t))
x3(t+1) = f3 (x2(t),x3(t),x4(t))
3
Bentuk alternatif lain :
x2(t+1) = f2 (x1(t),x2(t))
x4(t+1) = f4 (x2(t),x4(t))
75
1.0
2.0
3.0
4.0
1.1
2.1
3.1
4.1
1.2
2.2
3.2
4.2
76
1.0
2.0
3.0
4.0
1.1
2.1
prosesor
3.1
tunggal
dimana
penyelesaian
problem
komputasi
4.1
Model-model Komputasi :
1. Single Instrumen Stream, Single Data Stream (SISD)
Control
instruk
i
Prosesor
data
Memory
Prosesor
1
Memory
instruksi
Control
1
Prosesor
2
Control
2
Prosesor
n
Control
n
MISD
77
78
Contoh aplikasi :
komputasi
untuk
menentukan
suatu
bilangan
integer
dua atau lebih prosesor write pada lokasi yang sama secara
simultan.
iii) Exclusive -Read, Concurent -Write (ERCW) SM SIMD
Kedua-duanya
Shared memory
or
interconnection network
Kerumitan
utama
multiple-read
dalam
SM
and
multiple-write
SIMD
adalah
secara
mahal
dan
Data
1
Proc
1
Data
2
Proc
2
Data
N
Proc
N
Prosesor 1
Prosesor 2
instruksi
SIMD
Prosesor 3
Control
Prosesor 4
Model-model shared memory (SM) SIMD :
Prosesor 5
memory
block 1
memory
block 2
memory
block 3
79
80
interkoneksi SIMD.
Prosesor 1
Prosesor 2
Prosesor 5
Prosesor 3
Prosesor 4
Model kurang
Level 2
P1
sangat terbatas.
Lebih rendah daripada shared memory dengan block, karena
P2
Level 1
P3
secara simultan.
Untuk mengatasi kekurangan model jaringan interkoneksi,
P4
P5
P6
P7
Level 0
i) linear array
Cacah prosesor : N = 2d - 1
iv) perfect shuffle connection
P1
P2
P3
P4
P5
P6
j=
81
; 0 i N/2 i
82
Contoh 8 prosesor
P0
P1
P2
P3
P4
P5
P6
3. cost
P7
4. others:
- Area
- Length of wires
v) cube connection
Cacah prosesor N =
2q
; q 1,
SUMMATION (SISD) :
begin
sum a0
for i 1 to n-1 do
sum sum + ai
endfor
end
Shared memory
or
interconnection network
Data
1
P1
Instruksi
1
C1
Data
2
P2
Instruksi
2
C2
Data
N
PN
Instruksi
3
CN
83
84
n-1. Prosesor Pi berisi ai, bi, dan ti. Dibutuhkan iterasi n/2.
SUMMATION (SIMD-PS) :
begin
for i 1 to log n do
for all Pj, where 0j<n do
shuffle (aj)
bj aj
exchange (bj)
aj aj + bj
endfor
endfor
end
shuffle
begin
for i 1 to n/2 do
for all Pj, where 0jn-1 do
if j < n-1 and odd (j) then
tj aj+1
bj max (aj , tj)
aj min (aj , tj)
endif
if even (j) then
if j>0 then
aj bj-1
endif
tj aj+1
bj max (aj , tj)
aj min (aj , tj)
endif
if odd (j) then
aj bj-1
endif
endfor
endfor
end
pada
SIMD-MC
model
menggunakan
dasar
transposisi odd-even
Data A = (a0, a1, a2, . . . . , an-1)
, bn-1)
T = (t0, t1, t2, . . . . , tn-1)
85
for i 1 to n-1 do
for j i downto 0 do
d 2j
for all Pk, where 0k2m -1 do
if k mod 2d < d then
tk ak+d
if k mod 2i+2 < 2i+1 then
bk max (tk , ak)
ak min (tk , ak)
86
else
bk min (tk , ak)
ak max (tk , ak)
endif
endif
if k mod 2d then
ak bk-d
endif
endfor
endfor
endfor
end
BITONIC MERGE SORT (SIMD PS)
Sorting pada SIMD-PS (perfect shuffle) dengan cacah elemen
data = n, sehingga
87
shuffle (mi)
endfor
endfor
for j m-1 to m do
for all Pi where 0in -1 do
shuffle (ai)
shuffle (mi)
endfor
COMPARE-EXCHANGE (A,M)
endfor
endfor
end
COMPARE EXCHANGE (A,M)
begin
for all Pi where 0in -1 do
if even (i) then
ti ai+1
if mi = 0 then {sort low to hig}
bi max (ai , ti)
ai min (ai , ti)
else {sort high to low}
bi min (ai , ti)
ai max (ai , ti)
endif
endfor
end
88
INVERS MATRIX
ARn x n
pernyataan :
aj1x1 + . . . + aj,i-1xi-1 untuk j i telah tersedia maka prosesor
1) Struktur spesial
A adalah matriks segitiga bawah (MSB) dengan ARn x n dan
elemen matriksnya :
xi =
1
(bi ai1x1 - . . . ai,i-1xi-1)
a ii
aii 0.
pernyataan :
A=IL
aj1x1 + . . .
L : MSB
pernyataan terdahulu :
aj1x1 + . . . + aj,i-1xi-1.
A-1 = (I + L + L2 + . . . + Ln-1)
A
Bila A = 1
A 2
0
dimana :
A3
(a)
A11
0
A-1 =
1
1
1
A
A
A
A
3
2 1
3
x1
xi-2
i+2
i+1
2i-1
2i
2i
2i
i 1
a i +1,k x k
k =1
xi-1
xi
1
(b)
xi
i+1
i+2
xi-1
2i-1
x2
k =1
a i + 1, k x
xi
xi+1
(c)
i+1
i+2
x3
89
90
dan evaluasi
i 1
a i +1,k x k
k =1
1
(bi fixi-1 hixi+1)
gi
bila i diganti dengan (i-1) dan (i+1) untuk eliminasi xi-1 dan
xi+1, maka :
i 1
fi
f
(bi-1 fi-1xi-2 hi-1xi) + gihi + i (bi+1 fi+1xi hi+1xi+2) = bi
gi 1
gi +1
k =1
Sehingga :
Bentuk alternatif lain (linear array) :
i 1
-(
a i +1,k x k
a i + 2, k x k
hi
bi+1
gi +1
k =1
k =1
i+1
i
i 1
a i + 2, k x k
a i +3,k x k
k =1
k =1
i
i 1
i+1
a i +3,k x k
a i + 4, k x k
k =1
k =1
fi fi 1
h f
hf
hh
f
)xi-2 + (gi - i 1 i - i i +1 )xi ( i i +1 ) xi+2 = bi - i bi-1 gi 1
gi 1
gi +1
gi +1
gi 1
a i + 2, k x k
i+1
k =1
91
92
DAFTAR PUSTAKA
8
Blahut, R.E. Fast Algorithms for Digital Signal Processing, AddisonWesley, 1985.
Graw Hill.
Enem, S. Graph Algorithms, Computer Science Press, Inc, 1999
93
94
3.3.1
DAFTAR ISI
BAB
PENDAHULUAN---------------------------------1
1.1 Algoritma --------------------------------------1
1.2 Proses Pemrogaman --------------------------3
1.3 Masalah Analisis Algoritma ----------------6
1.4 Masalah Kompleksitas -----------------------6
1.5 Teknik Pemrogaman -------------------------7
1.6 Pendekatan Pemrogaman Modular:
Model Top Down-----------------------------9
1.7 Kesalahan Yang Sering Terjadi Dalam Pemilihan
Algoritma --------------------------------------9
BAB
II
SORTING ------------------------------------------2.1 Metode Seleksi--------------------------------2.2 Metode Bubble--------------------------------2.3 Metode Sisipan -------------------------------2.4 Metode Sheel----------------------------------2.5 Metode Cepat ---------------------------------2.6 Metode Pohon Biner -------------------------2.7 Metode Radix ---------------------------------2.8 Metode Merge---------------------------------2.9 Metode Tournament--------------------------2.10 Metode Heap ----------------------------------2.11 Telaah Penggunaan Berbagai
Metode Sorting--------------------------------
11
11
12
13
14
15
19
20
21
21
22
SEARCHING --------------------------------------3.1 Macam Organisasi Berkas-------------------3.1.1 Pile ------------------------------------3.1.2 Sequential ----------------------------3.1.3 Indexed Sequential------------------3.1.4 Indexed -------------------------------3.1.5 Hashed (Direct) ---------------------3.2 Analisis dan Evaluasi Sistem Berkas ------3.2.1 Kriteria Untuk Pengorganisasian
Berkas --------------------------------3.2.2 Kriteria Kinerja Berkas-------------3.3 Teknik Pengalamatan -------------------------
21
24
24
25
26
29
29
30
BAB
22
BAB
BAB
III
BAB
BAB
30
30
36
BAB
95
Teknik 1 :
Pemayaran Berkas
(Scanning the file) ---- 26
3.3.2 Teknik 2 : Pencarian Ruas
(Block Search) -------- 37
3.3.3 Teknik 3 : Pencarian Biner
(Biner Search)--------- 37
3.3.4 Teknik 4 : Berkas Serial
Berindex --------------- 38
3.3.5 Teknik 5 : Berkas Tak Berurutan
Berindex (Indexed
Nonsequential Files) - 40
3.3.6 Teknik 6 : Pengalamatan Alamat
Setara Kunci (Key
Equals Address)------- 43
3.3.7 Teknik 7 : Algoritma Untuk
Konversi Kunci ------- 44
3.3.8 Teknik 8 : Gabungan (Hashing) - 45
3.4 Hubungan Penyisipan dan Penghapusan
dengan Pengalamatan ------------------------- 47
3.5 Kombinasi dari Berbagai Teknik
Pengalamatan ---------------------------------- 47
IV GRAPH ---------------------------------------------- 51
4.1 Algoritma E. Dijktra -------------------------- 55
4.2 Algoritma Prim -------------------------------- 55
4.3 Algoritma Boruvka ---------------------------- 57
4.4 Eormula Pohon Cayley ----------------------- 58
V
SORTING DENGAN PARALLEL
PROCESSOR--------------------------------------- 69
5.1 Algoritma Bitonic Merge--------------------- 69
VI KOMPUTASI PARAREL dan DISTRIBUSI 74
6.1 Klasifikasi Komputer Paralel ---------------- 74
6.2 Algoritma Pralel dengan DAG--------------- 76
6.3 Paralelisasi Metode Keratif ------------------ 78
VII DESAIN DAN ANALISIS ALGORITMA
PARALEL------------------------------------------- 80
7.1 Algoritma Addisi Pada Prosesor Paralel---- 86
7.2 Algoritma Sort Pada Prosesor Paralel------- 87
VIII ALGORITMA PARALEL untuk PERSAMAAN
LINEAR dan INVERS MATRIX -------------- 91
96