Anda di halaman 1dari 48

I.

PENDAHULUAN

Menurut Donald E Knuth algoritma harus memenuhi


persyaratan;

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

(penghitungan) dengan menggunakan angka Arab : 0, 1, 2, 3, 4, 5,


6, 7, 8, 9 (Webster's New Word Dict, 1957). Para ahli bahasa
berusaha menemukan asal kata ini namun hasilnya kurang
memuaskan. Akhirnya para ahli sejarah matematika menemukan
asal kata tersebut yang berasal dari nama penulis buku arab yang
terkenal yaitu Abu Jafar Muhammad Ibnu Musa Al-Khuwarizmi.
Al-Khuwarizmi

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

algiros (painfull) + arithmos (number). Perubahan kata dari


Algorism menjadi Algorithm muncul karena kata Algorism sering
dikelirukan dengan Arithmetic, sehingga akhiran sm berubah
menjadi thm. Karena perhitungan dengan angka Arab sudah
menjadi hal yang biasa, maka lambat laun kata Algorithm
dipakai

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

menggunakan algorism, sehingga algorism lebih dikenal sebagai

berangsur-angsur

Algoritma harus berakhir (terminate) setelah melakukan


sejumlah langkah proses

metode

perhitungan

(komputasi) secara umum, sehingga kehilangan makna kata


aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi
Algoritma.

Setiap algoritma memberikan satu atau beberapa hasil


keluaran.
5). Effectiveness
Langkah-langkah algoritma dikerjakan dalam waktu yang
wajar.
Sebagai

basis

pemerograman

komputer,

algoritma

mendeskripsikankan urutan langkah-langkah yang diperlukan


untuk

pemecahan

masalah

(penyelesaian

persoalan),

yang

memiliki ciri-ciri sebagai berikut;


1) selalu memiliki terminasi/langkah akhir
2) setiap langkah dinyatakan secara jelas dan tegas

Algoritma merupakan basic semua pemrograman komputer.


Arti modern algoritma : sebagai resep, proses, metode, teknik,
prosedure, routine.

3) setiap

kinerjanya

Apabila hasilnya salah, kesalahan mungkin terjadi saat

sehubungan dengan waktu yang effisien/bisa diterima

langkah

sederhana,

sehingga

konversi rancangan algoritma manjadi program, atau

akal

salah rancang algoritma, atau salah menentukan model,

4) memberikan hasil (output), mungkin dengan satu atau


tanpa input.

atau salah mendefinisikan masalah. Ulangi langkah yang


sesuai.
9) Mendokumentasi program bila sudah benar.

1.2 Proses Pemrograman


Proses

pemecahan

masalah

dengan

algoritma

tertentu

hingga menjadi program dapat dibagi dalam sembilan tahap;


1) Mendefinisikan masalah

Definisi
masalah

Buat model

Rancangan
algoritma

Tulis
program

Masalah yang ingin dipecahkan harus jelas lingkupnya.


2) Membuat model

compile

Yang dimaksud model adalah bentuk matematis yang


dapat digunakan untuk memecahkan masalah, misalnya
Ya

apakah harus dilakukan pengurutan terhadap data,

Syntax
error

apakah menggunakan perhitungan kombinatorik, dan


sebagainya.

Tidak

3) Merancang algoritma (berupa flowchart/pseudocode)

RUN

Apa maksudnya, bagaimana rincian prosesnya, apa


keluarannya, dan lain-lainnya
4) Menulis program

Ya

Ubah algoritma menjadi program (source code) dalam

Output

error

bahasa pemrograman tertentu.


5) Mengubah source code menjadi executable code melalui
proses compiling.

Tidak
DOKUMENNTASI

6) Memeriksa hasil compiling, jika ada kesalahan maka


kembali ke tahap empat.

Bagan Tahapan Pemrograman Untuk Penyelesaian Masalah

7) Menjalankan program (run) untuk diuji kebenarannya


dengan menggunakan berbagai data
8) Memperbaiki kesalahan (debugging dan testing)

Contoh Merancang Algoritma dalam Pseudocode:

1.3 Masalah Analisis Algoritma


Kinerja yang perlu ditelaah pada algoritma:

baca jumlah data


tulis judul tabel
while data belum habis
hitung data yang dibaca
baca data nomhs, nama, nilai
tulis nomhs dan nama
if nilai > 6.0
then
tulis "lulus"
else
tulis "tidak lulus"
endif
wend
tulis gari penutup tabel
selesai

beban komputasi

efisiensi penggunaan memori

Tantangan yang dihadapi dalam membandingkan kinerja


berbagai algoritma sangat berguna.
Yang perlu diperhatikan:
-

Kasus rata-rata : running time untuk tipikal data


tertentu.

Kasus terjelek : running time yang mungkin paling jelek


pada konfigurasi masukan data tertentu.

Implementasi program dalam BASIC


10
20
30
40
50
60
70
80
90
100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250

'baca jumlah data


READ N
'tulis judul tabel
PRINT "
DAFTAR NILAI UJIAN
"
PRINT
PRINT "___________________________"
PRINT " Nomor"
PRINT " mhs
Nama
Ket"
PRINT "___________________________"
While I<N
'hitung data yang dibaca
I=I+1
'baca data nomhs, name, nilai
READ NOMHS, NAMA, NILAI
'tulis nomor mhs dan nama
PRINT NOMHS; Tab (10); NAMA$; Tab (30);
IF NILAI>60 THEN PRINT "lulus" ELSE "tidak lulus"
WEND
'tulis garis penutup
PRINT "___________________________"
DATA 3
DATA 1122, ali, 78
DATA 1133, badu, 50
DATA 2244, cakil, 55
END

Program bahasa yang dipakai

Program sensitif terhadap input

Program sulit dimengerti, dan secara matematis hasil tak


tersedia/diketahui

Sering program tak bisa dibandingkan, misal untuk data


tertentu sangat efisien, tetapi yang lain pada kondisi yang
sangat berbeda.

- 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),

Implementasi pemrograman modulasi menggunakan


subroutine- subroutine

O(n!)

Menghadapi banyaknya paket dalam TI dewasa ini:


-

kita dituntut untuk dapat melakukan pengamatan tentang

Main module

Sub module

kinerja paket-paket yang bersangkutan dan menyajikan


informasi sehubungan dengan efektivitas

SUB

dan efisiensi

masing-masing paket bagi persoalan-persoalan yang akan

CALL SUB

dihadapi.
-

Perlu perhatikan masalah kompatabilitas sistem.

Perlu

perhatikan

tingkat

kemudahan

operasional

dan

CALL SUB

antarmuka
-

Perlu perhatikan tingkat kemudahan memperoleh paket dan


RETURN

populasi pemakainya
-

Bentuk submodule:

Perhatikan masalah pemeliharaan dan perkembangan masa


mendatang.

Internal subroutine: berupa bagian dari program yang


menggunakannya.

1.5 Teknik Pemrograman


-

Penekanan pada pemrograman terstruktur

struktur

dasar:

menggunakan

flowchart

modul dapat digunakan untuk tugas lebih dari satu


program.

Modul-modul dikendalikan oleh modul utama (program

utama)

akan menggunakan.

Program dibuat dalam bentuk modul-modul untuk


fungsi tertentu maupun subroutine tertentu.

modul tersimpan dalam library dalam bentuk "object


module" yang siap digunakan oleh modul-modul yang

Menggunakan sistem modular

bukan bagian dari program yang menggunakan modul


itu.

dan

pseudocode
-

External subroutine:

dalam

menggunakannya,

pemrogram

perlu

Modul bersifat independen (tidak ada modul yang

mengetahui dimana diperoleh, namanya, bagaimana

dapat akses langsung ke modul lain, kecuali modul

kirim data padanya, dan jawab baliknya

pemanggil dan submodulnya sendiri). Modul dapat


diubah secara radikal tanpa mempengaruhi modul
lain sejauh fungsi modul tidak berubah.

1.6 Pendekatan Pemrograman Modular: Model Top-Down

Menerapkan alogaritma tanpa memandang volume data


yang akan diproses atau diolah. Hal ini harus dibedakan
antara data sedikit dengan data yang sangat banyak

Modul utama

sehubungan
alogaritma
SUB
1

SUB
2

SUB
3

SUB
12

SUB
22

dan

efektifitas

permasalahan

suatu
yang

Menerapkan alogaritma tanpa memperhitungkan kapasitas


memory dalam melakukan proses atau pengolahan data

SUB
31

yang sangat banyak.

SUB
21

efisiensi

memecahkan

dihadapi.

SUB
11

dengan
dalam

SUB
23

Mengabaikan waktu proses suatu aligaritma yang terasa


lambat bahkan lama sekali dalam melakukan proses atau

SUB
24

pengolahan data yang sangat banyak.

SUB
241
-

modul utama tunggal

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

Menerapkan suatu algoritma pada suatu aplikasi tanpa


mempertimbangkan

kelebihan

atau

kelemahan

dari

algoritma tersebut. Hal ini karena tidak semua algoritma


sesuai dan beroperasi optimal pada semua masalah yang
akan dipecahkan.

10

II. SORTING

Lewatan ke-

Sorting adalah operasi untuk membuat berkas data dalam


kondisi urut naik atau turun.
Masalah :

untuk jumlah data yang besar, perlu adanya metode yang


efisien (membutuhkan waktu yang singkat)

tanpa metode yang efisien, kegiatan sorting dapat memakan


waktu sampai berjam-jam
Metode sorting : metode seleksi, metode bubble, metode

sisipan, metode cepat, metode radix, metode pohon biner, metode


merge, metode shell, metode tournament, metode heap.

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

Elemen data pertama dibandingkan dengan elemen kedua.

metode

seleksi

(lihat

pada

Elemen data kedua dan ketiga dibandingkan. Bila dipenuhi


syarat seperti langkah sebelumnya, kedua elemen tersebut
ditukar.

Proses

terus

berlangsung

dengan

elemen

ketiga

dan

keempat, dan seterusnya sampai akhir deretan rekaman.


-

Apabila sudah tidak ada elemen yang ditukarkan, proses


berhenti dan selesai. Bila terjadi pertukaran selama lewatan,
proses akan diulang. Sehingga akhirnya semua elemen
tersusun, tidak ada pertukaran lagi, dan algoritma berhenti.

Metode ini cocok untuk struktur data larik, maupun rantai.


penggunaan

ditukar.

Dicari data yang terkecil (terbesar) dari data pertama sampai

Contoh

Bila elemen kedua lebih kecil (besar), kedua elemen tersebut

terakhir, lalu data terkecil (terbesar) ditukar dengan data

Algoritmanya adalah sebagai berikut:


-

Algoritmanya adalah sebagai berikut:

2.2 Metode Bubble

2.1 Metode Seleksi:

halaman

Contoh penggunaan metode bubble (lihat halaman berikutnya):

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:
-

2.4 Metode Shell

rekaman pertama ditempatkan pada posisi pertama dalam


suatu daftar baru. Selanjutnya data kedua dibandingkan
dengan data pertama tersebut. Pada pemilahan data urut
naik, bila data kedua lebih kecil, rekaman pertama tadi
digeser satu posisi ke bawah dan ditempatkan rekaman
kedua pada posisi pertama dalam daftar baru. Apabila data
kedua lebih besar, maka rekaman kedua ditempatkan pada
posisi kedua dalam daftar baru.

Langkah-langkah

berikutnya,

Metode sorting ini merupakan perluasan dari metode


sisipan. Dalam hal ini, pembandingan rekaman bukan dengan
rekaman yang berdekatan, tetapi pada rekaman dengan spasi
tertentu misalnya babak pertama 5 spasi, babak kedua 2 spasi
dan babak terakhir 1 spasi. Penentuan besar spasi pada setiap
babak pengulangan tidak dilakukan berdasarkan suatu algoritma
tertentu, karena memang tidak ada algoritma untuknya.
Sorting data dengan metode ini mungkin akan gagal apabila

rekaman

demi

rekaman

disisipkan pada posisi yang sesuai dalam daftar baru yang

pemilihan spasi tidak cocok.


Ilustrasi metode shell (lihat halaman berikutnya):

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

2.5 Metode Cepat (Quicksort)


Algoritmanya adalah sebagai berikut:
-

Seleksi suatu perkiraan nilai median dari elemen yang akan

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

Larik ditelusuri, elemen dipertukarkan sampai larik terbagi


menjadi dua bagian; elemen yang lebih besar daripada

Bag 2
Median 2

Bag 1

Median 1

median, dan elemen yang lebih kecil atau sama dengan ()

elemen median.

Penjelasan

Dua langkah di atas diulang pada tiap bagian yang memiliki

1. Langkah

Nilai

median

yang

dipilih

dengan

lebih dari P elemen (sebaiknya P<10).

membandingkan

Setelah bagian-bagian cukup kecil, setiap bagian diurutkan

dan terakhir, yaitu, elemen pada posisi 0, 5,

dengan metode Bubble

10. Nilainya adalah:

Ilustrasi metode cepat seperti pada halaman berikut:

elemen pertama, tengah,

91 (posisi 0 )
55 (posisi 5 )
9 (posisi 10)
2. Langkah

Nilai median ditempatkan pada posisi 0


pada array dengan menukarkannya dengan

15

16

3. Langkah

elemen yang ada di sana. Diilustrasikan

Dengan

pada baris 2.

median, menghasilkan keadaan seperti ysng

Elemen- elemen array diteliti dari kanan ke

disajikan dalam pada baris 4.

kiri

dan

dibandingkan

dengan

median

5. Langkah 5 8

ditukar

dengan

Araay tersebut ditelusuri dari arah yang


berlainan secara bergantian sampai araay

kecil

kemudian

ini terbagi menjadi dua bagian, seperti yang

ditukar dengan median. Pada contoh, nilai

tampak pada baris delapan. Araay bagian

elemen terakhir (posisi 10) dibandingkan

kiri yang berada pada posisi 0 sampai 5,

(sekarang pada posisi 0).Nilai itu adalah :

mengandung elemen- elemen dengan nilai

dari

median.

Nilai

ini

9 (posisi 10)

: elemen diteliti

yang lebih kecil dari median. Median berada

55(posisi 0)

: median

pada posisi 6.

dilakukan,

63,

sampai ditemukan suatu nilai yang lebih

9 lebih kecil dari median, dan pertukaran

4. Langkah 4

demikian

seperti

yang

disajikan

Araay bagian kanan yang berada pada

pada

posisi7 sampai 10, mengandung elemen-

baris 3.

elemn dengannilai yang lebih besar dari

Sekarang lokasi 0 mengandung suatu nilai

median.

yang lebih kecil dari median. Lokasi 10

Araay bagian kanan (dinamakan bagian 1

mengandung median. Pada langkah ini,

pada

array ditelusuri dari kirike kanan sampai

empat

nilai yang lebih besar dari median yang

mengandung enam elemen.

ditemukan. Nilai ini ditukarkan dengan

6. Langkah 910

ilustrasi
elemen

ini)

hanya

sedang

mengandung
bagian

kiri

Algoritmsa QUICKSORT diterapkan pada

nilai median.

araay bagian kiri, hasil peristiwa tersebut

Pada contoh keadaannya adalah sebagai

disajikan

berikut:

menghasilkan dua bagian baru (dinamakan

pada

baris

10.

Tahap

ini,

Posisi 10 : 55 (median)

bagan 2 dan 3 pada ilustrasi ini) masing-

Posisi 0 : 9

masing mengandung tiga elemen dan dua

(elemen kecil)

Posisi 1 : 4 : lebih kecil dari median


Posisi 2 : 27 : lebih kecil dari median
Posisi 3 : 63 : lebih besar dari median

elemen.
7. Langkah 11

Bubble sort sekarang diterapkan pada tiga


bagian tersebut, menghasilkan araay yang
ter-sort, seperti yang disajikan pada baris
11 .

17

18

2.6 Metode Pohon Biner

2.7 Metode Radix

Metode ini terdiri atas dua langkah proses. Langkah yang


pertama

yaitu

menyusun

rekaman-rekaman

menjadi

berkas

Metode ini cocok pada struktur data larik atau rantai,


karena dalam proses diperlukan proses senarai berantai dan

struktur pohon biner. Dalam hal ini data satu demi satu dibaca

antrian.

dan ditempatkan pada struktur pohon biner, cabang kiri lebih

Contoh :

kecil daripada induknya dan cabang kanan lebih besar atau sama

Bilangan pada tiap kartu :

dengan induknya (pada urut naik). Langkah yang kedua adalah

42, 23, 65, 57, 94, 36, 99, 87, 70, 81, 61, 11, 74

pembacaan secara In Order. Pada pembacaan ini, cabang kiri


dibaca terlebih dahulu, dilanjutkan pada induknya, kemudian

Pada lewatan pertama, bilangan-bilangan dikelompokkan


dalam suku tingkat digit satuan.

cabang kanan, dan hal ini dilakukan secara rekursif. Maka hasil
pembacaan

seluruh

rekaman

telah

terurutkan

seuai

yang

diinginkan.

Anggota tiap saku:


Saku (0) = 70

Metode Pohon biner dapat diterapkan untuk berkas dengan

Saku(5) = 65

Saku (1) = 81, 61, 11

Saku(6) = 36

struktur data larik, berantai maupun pohon biner

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 (4) = 94, 74

Saku(9) = 99

Saku-saku dikombinasikan dari saku (0) pada dasar sampai

66, 98, 12, 16, 2, 46, 38.


T

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

saku tingkat digit puluhan.


23

12

Anggota tiap saku:

94

35

16

87

46

38

98

71

Saku (0) = ---

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

2.8 Metode Merge

2.10 Metode Heap

Banyak digunakan untuk memasukkan dua atau lebih tabel


yang sudah terurutkan menjadi satu tabel yang terurutkan juga.

Metode ini merupakan bentuk lain dari metode seleksi.


Algoritmanya adalah sebagai berikut:

Tabel yang beranggotakan n dibagi menjadi n subtabel,

1
1
1
kemudian digabung menjadi
,
,
, dan seterusnya.
2n 4n 8n

Baca berkas data R(1), R(2), R(3) . . . R(N).

Lakukan iterasi dari i=1 sampai N untuk mengerjakan:


a) menyusun berkas Heap R(1), R(2), R(3) . . . R(N-i+1)
dengan R(1) merupakan elemen data yang terbesar

Contoh:

(terkecil).

Tabel asli: [25, 57, 48, 37, 12 92, 86, 33]

b) tukarkan R(1) dengan R(N-i+1)

Diubah menjadi 8 sub tabel :

(25) , (57) , (48) , (37) , (12) , (92) , (86) , (33)


Lewatan 1:
Lewatan 2:

(25, 57)

(37, 48)

(12,92)

(25, 37, 48, 57)

Diperoleh berkas baru R(1), R(2), R(3) . . . R(N) yang terurut


naik (turun).

(33, 86)

2.11 Telaah Penggunaan Berbagai Metode Sorting


Hasil penelitian yang dilakukan oleh Ir. A. Rida Ismu

(12, 33, 86, 92)

Windyarto

Lewatan 3:

(12, 25, 33, 37, 48, 57, 86, 92)

2.9 Metode Tournament


Algoritmanya adalah sebagai berikut:

begitu nampak.

Tiap data dibandingkan dengan data di sebelahnya, dan

bagi data numeris, sedangkan bagi data alfabetis adalah

dibandingkan yang menang untuk memperoleh yang lebih


besar (kecil). Begitu seterunya sampai keluar pemenang

metode cepat dan pohon biner.

(juara pertama) untuk dipindah sebagai keluaran.


Proses

pembandingan

diulang

terus

dan

yang

Untuk cacah data 200 sampai 400 buah, metode pemilahan


yang hemat waktu adalah metode cepat dan Shell bagi data

sudah

numeris, sedangkan bagi data alfabetis adalah metode Shell

menjadi pemenang tidak lagi memenangkan pertandingan,


sampai akhirnya semua data pernah jadi pemenang.

Untuk cacah data 100 sampai 200 buah, metode sorting


yang hemat waktu adalah metode cepat (quicksort) dan Shell

yang lebih besar (kecil) adalah yang menang. Yang menang

Untuk cacah data sampai 100 buah, perbedaan panjang


waktu eksekusi pemilahan dengan berbagai metode belum

Metode ini merupakan bentuk lain dari metode Pohon Biner.

(Dosen Jurusan Teknik Elektro Fakultas Teknik

UGM) menunjukkan :

dan Heap.

Hasil pemilahannya adalah penampung untuk keluaran

Metode sorting yang boros menggunakan memory adalah


metode pohon biner, Tournament, Radix, dan Merge.

pemenang.

21

22

Dari penelitian tersebut dapat ditarik kesimpulan algoritma

III. SEARCHING

sorting yang berefisiensi tinggi (dengan hemat waktu dan memory)


adalah : metode cepat dan Shell untuk data numeris, dan metode

Data searching (pencarian data) meliputi :

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 :

Contoh perbandingan penggunaan waktu proses (CPU) dari beberapa metode

pencarian lokasi rekaman

pembacaan rekaman

memperoleh rekaman berikutnya

membaca seluruh rekaman dalam berkas

Algoritma searching sangat erat hubungannya dengan :

pemilahan data :

sistem berkas (organisasi berkas).


Macam organisasi berkas:

Pile

Sequential

Indexed sequential

Indexed

Hashed (= direct)

3.1 Macam Organisasi Berkas


3.1.1 Pile
Sifat-sifat organisasi berkas dalam bentuk pile adalah:
-

Data terkumpul/tersusun sesuai dengan kedatangannya.

Tiap rekaman terdiri dari satu data penuh

Maksud

pile

untuk

mengumpulkan

massa

data

dan

menyelamatkannya.
-

Rekaman mungkin mempunyai medan (field) yang berbeda atau


mungkin serupa namun berbeda ordernya, sehingga tiap
medan (field) menggambarkan dirinya sendiri sehubungan
dengan nama medan dan nilainya.

Panjang medan dan rekaman berbeda-beda.


Karena organisasi berkas pile tidak berstruktur, maka akses

rekaman sukar dan makan waktu lama. Sehingga bila ingin

23

24

mendapatkan suatu rekaman yang suatu medannya berisi suatu

Bila seluruh berkas atau sebagian besar berkas dapat dibawa

nilai tertentu harus mengamati setiap rekaman dalam pile sampai

ke pengingat utama pada waktu tertentu, pelacakan yang

rekaman yang dimaksud ditemukan, dan bila ingin mendapatkan

efisien dimungkinkan.

semua rekaman yang diinginkan yang mempunyai medan/nilainya

Dapat disimpan secara sequential sederhana dalam blok-blok.

tertentu, seluruh berka harus dilacak.

Organisasi fisis berkas sequential dapat dilakukan secara

Organisasi berkas semacam ini hanya dilakukan pada saat

linked list (daftar berantai). Satu atau lebih rekaman disimpan

pengumpulan dan penyimpanan data sebelum diproses atau data

dalam tiap blok secara fisis. Tiap blok pada disk berisi pointer

sulit diorganisasikan.

(penunjuk) ke blok berikutnya.

3.1.2 Sequential

3.1.3 Indexed Sequential

Paling banyak dijumpai

Format data untuk rekaman tetap

Semua rekaman panjangnya sama, terdiri dari cacah medan

sequential
-

yang sama, panjang medan yang sama dengan order tertentu.


-

Nama medan dan panjang setiap medan atribut struktur

Atribut khusus (biasanya medan pertama dalam tiap rekaman)

kunci.
-

Nilai kunci untuk setiap rekaman yang berbeda selalu berbeda.

Berkas pelimpahan untuk limpahan rekaman (rekaman yang


disisipkan).

Rekaman disimpan dalam urutan kunci alfabetis atau numeris.

Digunakan untuk aplikasi batch.

Optimum bila melibatkan proses dari semua rekaman (misal

aplikasi billing atau gaji).

Index memberikan kemampuan untuk mencari rekaman yang


diinginkan secara cepat.

Kunci sifatnya tunggal (unique) identifikasi rekaman.

Dua hal ditambahkan yakni : suatu berkas index untuk


mendukung akses secara random, dan berkas pelimpahan.

Rekaman-rekaman diorganisasikan dalam urutan berdasar


pada suatu medan kunci

berkas
-

Pendekatan paling populer untuk mengatasi kerugian 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 untuk media simpan pita magnetis (tape), juga disk

(cocok)

Untuk aplikasi interaktif yang melibatkan query atau update

akses berkas utamanya secara langsung.

dengan kunci lalu pointernya untuk penunjuk pada

suatu rekaman, unjuk kerjanya jelek.

Cocok pada media disk.

Akses secara sequential untuk menemukan medan yang sesuai

Sangat mempersingkat waktu akses rekaman yang diinginkan.

dengan kunci.

Untuk meningkatkan efisiensi akses dilakukan dengan index


ganda.

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

Tak ada konsep sequential dan kunci tunggal.

Rekaman hanya diakses lewat indexnya.

Panjang rekaman dapat bervariasi.

Digunakan dua tipe index, yakni : exhaustive index (index


lengkap) untuk pintu masuk (entri) setiap rekaman dalam
berkas utama, dan partial index (index parsial) untuk entri
rekaman dimana medan berada.

Banyak digunakan pada sistem dimana aliran waktu sangat


kritis dan data yang jarang diproses secara lengkap (misal pada
sistem pemesanan tiket pesawat dan sistem inventarisasi).

3.1.5 Hashed (Direct)

f = fungsi hash

Kunci

f
Berkas
primer

Berkas
limpahan

Bagan Searching Index Sequential ( Index Tunggal)

Berkas diexploitasi bisa ditemukan dalam disk untuk diakses


secara langsung addres-nya.

Tiap rekaman juga perlu diberi medan kunci, tetapi tak ada
konsep/aturan harus sequential.

27

28

Dibuat berkas direct untuk hashing kunci.

2) Waktu searching (pencarian) TF, TN, TX

Diperlukan bila akses cepat diinginkan dan rekaman sering

3) Waktu updating (pembaruan) TI, TU

diakses secara serentak

4) Waktu untuk reorganisai data TY

Panjang rekaman tertentu (tetap)

Contoh aplikasi : directory, pricing table, schedules, tabel

a) Pile
1) R = a'(A+V+2)

(daftar) nama, dan lain-lain.

2) TF =

3.2 Analisis & Evaluasi Sistem Berkas


Faktor penting untuk analisis sistem berkas terdiri atas 7

1 B
1 B
b atau TF = n
2 t'
2 t'

3) TN = TF
4) TI = s + r + btt + TRW

(tujuh) parameter kinerja, yakni:

5) TU = TF + TRW + TI
a. Ukuran rekaman (R)

6) TX = 2TF = n

b. waktu untuk fetch (TF): pelokasian posisi rekaman dan


pembacaan rekaman.

Untuk rekaman tersortir:


TX = Tsort(n) + TX(sequential)

c. Waktu untuk memperoleh rekaman berikutnya (TN)

7) TY = (n + O)

d. Waktu untuk updating (TI): selipkan data baru


e. Waktu untuk updating: mengubah rekaman (TU)
f. Waktu untuk membaca seluruh rekaman dalam berkas (TX).
g. Waktu untuk reorganisasi berkas (TY): menghapus rekaman
yang invalid, klaim kembali untuk rekaman baru.

O = ninsert + v
d = ndelete + v
btt = block transfer time

1) R = aV

1) Kerangkapan data kecil

2) -

2) Akses yang cepat


4) Pemeliharaan sederhana

TFO =

3.2.2 Kriteria Kinerja Berkas:

1 R
n
(mainfile)
2 t'
1 R
O (overflow file)
2 t'

Sehingga TF =

1) Kebutuhan volume penyimpan data (ntotal.R)


R

sequential search
TF =

3) Mudah di update (dibarui)

R
R
+ (n + O d)
t'
t'

b) Sequential

3.2.1 Kriteria untuk Pengorganisasian berkas:

ntotal

R
t'

cacah seluruh rekaman

1
R
(n+O)
2
t'

(total)

binary search

= panjang rekaman byte

29

30

TF = log2 (
-

n
)(s + r + btt + c)
Bfr

SI = (bi1 + bi2 + + 1)B

probing (agak sulit dirumuskan) :


TF ~ 0.2446

Mungkin

= (i2 + i3 + + 1)B

n
Bfr

ilevel =

btt
R

3) TN =
Bfr
t'

TF main = (x + 1)(s + r + btt)

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 =

Atau bila beberapa rekaman dihapus :

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

4) TI = TF + TRW + r + btt + TRW atau


TI = TF + 5r + btt

B
V+P

5) TU = TF + TRW = TF + 2r (rewrite)

Index level (height = x)

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

average space required for attribute name


number of different attributes in a file
average number of attributes in a record
blocksize
blockcount
block tranfer time = B/t

33

t'
U
u
uf
V
w
W
X
x
Y
y

blocking factor B/R


cost factor
computational overhead per record, when not negligible
space for data storage
number of records that have been invalidated
subscript denoting a fetch for a spesific record
space required for an interblock gap
Giga or a thousand million (1073741824) times
classification variable
subscript denoting insertion of a record
number of cylinder
Kilo or thousand (1024) times)
number of tracks per cylinder
load frequency factors
multiprogramming factor
Mega or Million (1048576) times
number of available slot for records
subscript denoting getting the next erial record
number of records that overflow
order of magnitude
number of records that overflow
space required for a pointer
collision cost, also probability
production demand by a file application
space required for a complete record
subscript indicating rewriting
rotational latency time
storage space for index
average seek time
the time required for various operations
the time required to sort a file
transfer rate from a storage unit to processing memory
subscript denoting total transaction time
bulk transfer
subscript denotin an update of a record
utilization
utilization factor
average pace for value part of an attribute
wait time in queues
wated pace due to gap per record
subscript denoting an exhausting search
number of levels in an index, master level
subscript denoting a reorganization of a file
fanout ratio

34

3.3 Teknik Pengalamatan

3.3.2. Teknik 2 : Pencarian Ruas (Block Search)

Rekaman- rekaman dalam suatu berkas nalari diciri

Pada

rekaman-

rekaman

yang

diorganisasikan

serial

(diidentifikasi) oleh perangkat nomer yang unik atau kelompok

dengan kunci, tidak perlu setiap rekaman dibaca pada waktu

karakter yang unik.

memayar berkas.

Perangkat ini disebut kunci, biasanya menempati medan yang


panjangnya

tetap

dalam

masing-

masing

rekaman.

Berkas itu dalam urutan kunci utama yang menanjak (ascending).

Untuk

Misalnya kunci rekaman yang dicari Ks, maka pencarian dimulai

membentuk suatu kunci yang unik kadang- kadang diperlukan

dari kunci- kunci ruas yang kecil. Seperti halnya pembagian

gabungan dua medan atau lebih yang disebut kunci berderet.

rentetan pada bab sebelumnya, ukuran ruas yang optimum adalah

(concatenated key)

NB =

Nf . Nf adalah jumlah rekaman daklam berkas. Pada

Dalam beberapa berkas, rekaman- rekaman berisi lebih dari

pemeriksaan kalau ditemukan rekaman yang kuncinya pertama

satu kunci. Misalnya barang yang sudah dibeli mempunyai nomer

kalau kali lebih besar dari Ks, maka rekaman- rekaman dari ruas

penyalur dan nomer pemakai yang berbeda. Keduanya dipakai

yang baru saja diloncati diperiksa (dipayar) sampai ditemukan

sebagai kunci. Kunci harus unik, karena kunci itu dipakai untuk

rekaman dengan kunci Ks.Kadang- kadang cara ini disebut

menentukan di mana rekaman harus diambil dari unit

berkas

pencarian loncatan (skiipsearch). Misalnya ada 10.000 rekaman

dan untukk melacak rekaman itu dari berkasnya. Ini disebut

dalam suatu berkas. Ruas pencarian terdiri atas 100 rekaman.

kunci utama atau penciri (identifier).

Rata-rata ada 100 rekaman yang diperiksa sehingga ditemukan

Persoalan dari pengalamatan berkas adalah: diberikan kunci

rekaman yang diminta. Proses pencarian baru akan dilakukan

utama, lalu bagaiman komputer mengambil rekaman atau kunci

pada ruas yang mengandung rekaman yang diminta. Dalam

itu? Ada berbagai teknik pengalamatan rekaman.

praktek tidak ada pencarian ruas yang rekamannya sampai


10.000, yang berarti seluruh berkas ada 10.0002 rekaman . Dalam

3.3.1. Teknik 1 : Pemayaran Berkas (Scanning the file)

hal

Cara yang paling sederhana untuk pengambilan rekaman


adlah memayar berkas dengan memeriksa kunci setiap rekaman.

ini

diperlukan

index

yang

mewakili

seluruh

rekaman.

Kemudian pada index inilah dilakukan pembagian ruas-ruas


pencarian.

Metode ini sangat lambat dan hanya mungkin digunakan dalam


operasi pemrosesan kelompok yang memakai berkas serial, seperti
pita, di mana setiap rekaman mau tidak mau harus dibaca.

3.3.3. Teknik 3. Pencarian Biner ( Binary Search )


Pencarian biner pertama-tama menuju ketengah-tengah area
yang mengandung rekaman yang diminta. Lalu membandingkan
kunci rekaman yang ditengah-tengah itu dengan kunci yang
dicari. Maka akan diketahui bahwa kunci yang dicari letaknya
dibelahan

35

yang

mana.

Kemudian

menuju

ketengah-tengah

36

belahan itu lagi .Proses ini diulangi terus menerus. Berkas


(log2 Nf -1 ) kali. Untuk harga

diperiksa rata-rata kurang lebih

Nf (jumlah rekaman dalam berkas) yang besar, log Nf 1 lebih kecil


daipada

pada piranti simpanan masup langsung, karena menghabiskan


banyak waktu. Pencarian biner tidak dapat dipakai untuk
pencarian pada rentetan, karena komputer tidak mempunyai
peralatan untuk mengatur pencarian itu.

Sepaerti diketahui

rentetan terdiri atas rekaman-rekaman yang disatukan dengan


sehingga

sulit

untuk

menentukan

titik

tengahnya.

Pencarian biner bermanfaat untuk pencarian rinci-rinci dalam


memori utama atau simpanan tingkat padat (misalnya hard disk ).
Jenis khusus dari pencarian biner adalah rinci-rinci yang
dicari tidak disusun berurutan, tetapi dalam bentuk pohon biner
dengan pointer-pointer. Kemudian pencarian diteruskan dengan
menelusuri pointer-pointer. Keuntungan bentuk pencarian ini
adalah bahwa rekaman rekaman baru dapat disisipkan ke dalam
berkas , tanpa harus menggeser ke samping ( proses ini
merupakan operasi yang janggal dan memakan waktu). Titik
tengah

yang

yang ditempatinya.
Pemayaran cakram atau alur drum dapat dibuat bersamaan
dengan waktu rotasi dan karena itu bermanfaat.

Nf .

Pencarian biner umumnya tidak tepat untuk pencarian

pointer,

area yang kecil setelah teknik-teknik yang lain menemukan area

dituju

akan

bergeser

untuk

menyesuaikan

penambahan itu.
Pencarian biner lebih baik dilakukan pada index-index
berkas daripada langsung mencari berkasnya sendiri.

Apabila berkas mempunyai kunci yang berurutan, biasanya


digunakan tabel yang disebut index . Masukan pada tabel adalah
kunci rekaman yang dicari, danhasil operasi pencarian tabel
adalah alamat relatif atau alamat sesungguhnya dari rekaman itu
pada unit berkas.
Suatu index didefinisikan sebagai suatu tabel di mana
beroperasi dengan prosedur yang menerima informasi tentang
harga-harga atribet tertentu sebagai masukan, dan sebagai
keluaran memberikan informasiyang membantu pengambilan
rekaman dengan cepat, di mana rekaman itulah yang memiliki
harga-harga atribut tersebut. Index utama adalah index yang
menggunakan ciri rekaman (kunci utama) sebagai masukan dan
memberikan informasi tentang lokasi fisis dari rekaman sebagai
keluara. Index sekunder adalah index yangmengunakan kunci
yang tidak unik, tapi dapat mewakili sejumlah rekaman.
Index kadang- kadang disebut sebagai penuntun (directory)
yang memberikan informasi tentang pertalianantara rekamanrekaman, sebagai contoh, memberikan hubungan- hubungan
dalam struktur jaring atau stuktur pohon.
Apabila suatu index dipakai untuk pengelamatan berkas,
maka komputer harus mencari index, bukan mencari berkas itu.
Cara ini dapat menghemat banyak sekali waktu, tetapi dibuthkan

3.3.4. Teknik 4 . Berkas Serial Berindex


Pada umumnya pemayaran atau pencarian berkas-berkas
untuk mendapatkan suatu rinci terlalu banyak memakan waktu.
Metode tersebut hanya dipakai untuk menudingsuatu rinci dalam

37

ruangan untuk menyimpan index itu. Hal ini mirip dengan


penggunaan indek kartu dalam perpustakaan. Pemakai mencari
nama buku yang dia perludi dalam index kartu, dan index kartu

38

itu memberikan nomor katalog, yang analog dengan alamat

alamat yang dikandungnya, karena urutan karakter tingkat

relatifdari letak buku itu pada ra

tinggidari alamat berturut-turut biasanya sama.

Apabila berkas mempunyai kunci yang berurutan, umumnya


index tidak berisi acuan untuk setiap rekaman, tetapi cukup
satuan acuan untuk ruas- ruas rekaman.
Pengacuan

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

index jauh lebih sedikit dan waktu pencarian lebih cepat.

pengacuan pada rekaman individu sangant banyak mengurangi

Alasan utama tetap digunakanya berkas tak berurutan ialah

ukuran indek. Walaupun demikian index seringkali terlalu besar

bahwa harus dialamatkan lebih dari satu kunci. Apabila kunci

untuk

yang satu diurutkan, maka kunci yang lain tidak akan terurutkan.

dicari

dalam

keseluruhannya,

dan

dengan

demikian

diperlukan suatu index untuk sejumlah index.

Suatu index dapat dipakai untuk tiap kunci, index untuk kunci

Untuk menghemat waktu pencarian, segmen- segmen dari

berurutan mempunyai satu entry per ruas. Sedang kunci tak

iondex tingkat lebih rendah dapat diedarkan di antara rekaman-

berurutan, satu entry untuk setiap rekaman. Untuk berkas yang

rekaman data yang bersangkutan

berkunci banyak, kunci yang paling sering dipakai biasanya yang

Pada area berkas yang diwakili satu index, dilakukan pencarian

diurutkan,

dengan metode pencarian ruas atau pencarian biner maupun

berurutan pendek.

karena

masup

cepat

dimungkinkan

oleh

index

pemayaran. Pada berkas cakram biasanya mempunyai satu alur

Analogi index kartu perpustakaan lebih tepat untuk berkas

index untuk setiap silinder, yang berisi acuan acuan untuk

berurutan berindex. Dua kunci dipakai dalam indek kartu, yakni

rekaman- rekaman yang tersimpan dalam silinder itu.

judul buku dan nama pengarang. Kedua kunci ini tidak dipakai

Berkas serial berindex merupakan bentuk yang paling umum


dari pengalamatan berkas. Mode lokasi VIA dari CODASYL
memakai teknik ini.

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

3.3.5 Teknik 5 : Berkas Tak Berurutan Berindex (Indexed


Nonsequential Files)

diinginkannya, lalu dia mencari pada jajaran-jajaran rak (lemarilemari rak). Analog dengan pencarian Index dalam berkas. Masing-

Berkas yang tak berurutan dapat diberi index seperti halnya

masing jajaran rak biasanya terdapat tanda nomor permulaan dan

berkas berurutan. Tetapi memerlukan index yang jauh lebih

nomor akhir katalog dari buku- buku dalam jajaran itu. Pemakai

banyak, karena harus berisi satu entry untuk satu rekaman. Lagi

membandingkan nomor katalog yang telah diperoleh dengan

pula, harus berisi alamat lengkap tertentu (atau alamat relatip),

batasan nomor pada jajaran itu. Apabila

sedangkan suatu index pada berkas berurutan dapat memotong

dipegangnya berada dalam batasan itu, berarti buku yang dicari

nomor katalog yang

berada dalam jajaran itu. Lalu dicocokkan batasan nomor pada

39

40

tiap rak dalam jajaran itu. Analog dengan index induk pada suatu

dan terlalu makan waktu. Apabilabuku yang disimpan dalam rak

index

diurutkan menurut abjadnya, maka pemeliharaannya memerlukan

silinder

dam

kemudian

pada

index

alur.

Setelah

menemukan rak yang memuat buku tersebut , lalu pemakai

waktu

mencari- cari buku tersebut dalam rak itu. Dalam hal ini

sejumlah buku harus digeser. Kalau buku- buku itu tak

pencarian dalam berkas dapat menggunakan metode pencarian

berurutan, tapitapi nomor katalognya berurutan, maka buku

ruas ataupun pemayaran dan pencarian biner.

barudapat diletakkan pada posisi terakhir dengan nomor urut

Index perpustakaan tidak menunjukkan lokasi fisis dari buku

banyak,

karenasetiap

kali

ditambahkan

buku

baru,

katalog yang terakhir.

pada raknya. Tetapi memberikan pada nomor katalog yang dapat


dianggap sebagai alamat relatif atau alamat simbul. Alasannya
dipakai alamat simbul ialah kalau alamat fisis yang dipakai, lalu

3.3.6 Teknik 6 : Pengalamatan Alamat Setara Kunci


(Key- Equals- Address)

karena buku-buku dalan rak selalu bergeser tempatnya, maka

Berbagai metode pengubahan kunci langsung ke dalam suatu

index perpustakaan harus sering diperbarui/ diubah. Dengan

alamat berkas dipakai. Penggunaan metode- metode ini dapat

alasan yang sama berkas tak berurutan berindex juga kadang-

menghasilkan perangkat pengalamatan yang tercepat dan tidak

kadang memakai simbul daripada alamat sungguh. Penambahan

diperlukan pencarian berkasatau operasi index.

rekaman baru dan penghapusan rekaman lama selalu menggeser

Cara

pemecahan

persoalan

pengalamatan

yang

paling

lokasi rekaman- rekaman.

sederhana aialah dalam transaksi input, memiliki alamatsama

Apabila lebih dari satu kunci digunakan dalan rekaman- rekaman.

dengan

Index pada suatu kunci yang bukan utama dapat menunjukkan

termasuk

kunci utama dari rekaman sebagai keluarannya. Kunci utama ini

pendekatan langsung ini tidak dimungkikan. Nomor- nomor

kemudian

dengan

barang dari suatu pabrik tidak dapat diubah untuk menyesuaikan

pengalamatan yang lain. Analogi dengan index perpustakaan,

komputer karena nomor- nomor itu mempunyai arti yang penting

misalnya

bagi perusahaan tersebut.

digunakan
judul

buku

untuk

pengembilan

adalah

kunci

rekaman

utama,

sedang

nama

pengarangbukan kunci utama. Dengan kunci nama pengarang,


kitadapat

menemukan

langsung.Dlam

sederhana.Pola
banyak

ini

aplikasi,

Kadang- kadang nomor acuan mesin dapat digunakan dalam


transaksi input tanpa membutuhkan nomor konsumen ataupun
nomor barang. Sebagai contoh, alamat berkas dari rekaman dapat

tetapi pada berkas yang rekaman- rekamannya sering berubah

dicetak pada buku tabungan langganan bank. Apabila komputer

posisinya, pengalamatan simbul menunjuk manfaatnya.

pemesan perusahaan penerbangan mengirimkan pesan teletip

Alasan lain untuk penggunaan susunan rekaman tak berurutan

pada perusahaanpenerbangan yang lain, biasanya pesan itu

adalah

mancakup

itu

sangaty

lincah

Metode

pengalamatan

pengambilannya

dengan

berkas

utamanya.

supaya

menggunakan alamat simbul lebih lambat daripada alamat fisis,

bahwa

kunci

kunci

dan

penyisipan

penghapusan ke dalam berkas yang berurutan akan terlalu sulit

41

nomor

Jawabandalam

acuan

pesanan

mesin
teletip

dari

rekaman

diterima,

penumpang.

misalnya

tentang

42

penegasan pemesanan, maka harus mencakup nomor acuan


mesin, sehingga rekaman penumpang itu segera ditemukan.

(A -1) 200 52 100 + (B 1) 52 100 + (C 1) 100 + 1.


Suatu program akan mengubah alamat relatif ini ke dalam sebuah

Mode lokasi DIRECT dari CODASYL memakai teknik ini.

alamat mesin.
Kerugian

3.3.7.Teknik 7 : Alogaritma Untuk Konversi Kunci

kelakuannya.

dari

pola

Sepaerti

ini

pengalamatan

diketahui

bahwa

langsung

alamt

mesin

yakni
dpat

Penggunaan algoritma untuk mengbah kunci ke dalam

berubah- ubah, karena berkas berkembang atau dipindahkan

alamat, hampir secepat dengan teknik alamat setara kunci

pada suatu unit yang lain atau berkas digabungkan atau

(teknik 6). Alamat pada beberapa apilkasi dapat dihitung dari

dimodifikasi. Dalam hal ini pengalamatan langsung tidak dapat

penciri entiti seperti lokasi jalan, nomor penerbangan dan tanggal

berjalan. Untuk menghilangkan sifat kekakuan ini pengalamatan

penerbangan. Tidak semua aplikasi yang tidak menerapkannya.

langsung biasanya diselesaikan dalam dua tingkat. Tingkat

Tetapi metode ini adalah sederhana dan cepat untuk aplikasi yang

pertama mengubah kunci menjadi suatu bilangan urut. Tingkat

dapat menerapkannya.

kedua mengubah bilangan urut itu menjadi alamt mesin. Apabila

Teknik ini biasanya mempunyai kerugian karena tidak

alamat mesin rekaman berbah, maka bilangan- bilangan urut yang

memenuhi barkas dengan sempurna. Ada celah- celahnya, karena

dipakai tingkat kedua dapat dimodifikasi dengan mudah untuk

kunci- kunci tidak diubah menjadi satu himpunan alamat yang

menyesuaikan perubahan alamat mesin tersebut.

kontinu. Sebagai contoh, perusahaan penerbangan mempunyai

Mode lokasi CALC dari CODASYL memakai teknik ini.

150 nomor penerbangan. Algoritma memakai nomor penerbangan


dan tanggal untuk menghitung alamat berkas. Tetapi tidak setiap

3.3.8 Teknik 8 : Gabungan (Hashing)

penerbangan terbang pada setiap hari; karena itu, beberapa


alamat yang dihasilkannya tidak memuat rekaman.

Suatu bentuk yang bermanfaat dan akurat dari teknik


perhitungan alamat disebut gabungan atau kadang- kadang

Apabila rekaman- rekaman membentuk suatu matrik, maka

disebut pengacakan (randomizing) atau pengadukan (scrambling).

cocok untuk perhitungan alamat berkas. Sebagai contoh, suatu

Dalam teknik ini kunci rinci diubah menjadi suatu bilangan

perusahaan mempunyai banyak distributor,. Masing- masing

hampir acak, dan bilangan ini dipakai untuk menentuksn di man

distributor menangani 200 produk. Rekaman yang diberikan

rinci

adalah tentang penjualan setiap produk untuk setiap distributor

berhubungan dengan alamat di mana suatu rekaman disimpan.

dalam setiap distributor dalam setiap minggu untuk tahun ini.

Cara ini ;lebih ekonomis, karena berhubungan dengansuatu area

Apabila panjang rekaman 100 byte, maka alamat byte relatif dari

di mana suatu grup rekaman disimpan yang disebut sebagai

rekaman untuk distributor ke-A, produk ke- B, dan minggu ke- C

bucket

dapat dihitung dengan rumus:

slot. Jumalah rekaman nalari yang dapat disimpan dalam area ini

tersebut

disimpan.

Bilangan

hampir

acak

itu

dapat

(keranjang), kadang- kadang disebut pocket (saku) atau

disebut kapasitas bucket.

43

44

Apabila pada permulaan, berkas hendak diamati, lokasi

ruang yang diperlukan untuk index. Banyak rekaman dapat

dalam mana rekaman- rekaman disimpan ditentukan sebagai

diperoleh dengansatu pencarian, tetapi ada yang memerlukan

berikut:

pencarian dalam satu detik, yaitu pada bucket luapan. Jarang

1. Kunci dari rekaman diubah menjadi suatu bilangan

diperlukan pencarian ketiga atau keempat.

hampir acak, n, yang terletak dalam interval l sampai N, di


mana N adalah jumlah bucket yang dapat dipakai untuk

3.4 Hubungan Penyisipan dan Penghapusan Dengan

simpanan. Banyak algoritma gabungan memungkinkan

Pengalamatan

operasi ini, dan harus dipilih satu yang sesuai dengan

Perhatian utama dalam perencanaan pola- pola pengalamatan

himpunan kunci dari rekaman- rekaman yang dibicarakan.

berkas dan susunan rekaman yang berhubungan dengannya

2. Bilangan n diubah menjadi alamt dari bucket itu dibaca.

adalah bagaimana rekaman-rekaman baru dapat disisipkan ke

3. Apabila ada sisa ruang dalam bucket itu, maka rekaman

dalam berkas dan rekaman lama dihapus. Penyisipan dan


penghapusan

nalari dapat disimpan ke dalam bucket itu.


4. Apabila bucket luapan (overflow). Ini dapat sebagai urutan
berikut, atau dapat sebagai suatu bucket pada area yang

serta operasi pemeliharaan (maintenance) yang

disebabkannya akan dibahas apabila teknik pengalamatan dan


index telah dibahas lebih terinci.

terpisah yang duihubungkan dengan pointer.


Apabila rekaman- rekaman hendak dibaca dari berkas, maka

Kombinasi dari teknik-teknik yang dibicarakan di atas dapat

metode pencarian adalah sama dengan di atas , yaitu:


1. Kunci dari rekaman yang akan dicari, diubah menjadi
suatu

bilangan

hampir

acak,

yaitu

3.5 Kombinasi dari Berbagai Teknik Pengalamatan

n,

dengan

dipakai untuk mengalamatkan rekaman-rekaman. Sebagai contoh,


suatu index dapat memperoleh suatu area dari berkas, dan
kemudian area itu dipayar atau dicari dengan biner. Suatu

menggunakan algoritma yang sama.


2. Bilangan n itu diubah menjadi alamat dari bucket ke- n,
dan dan rekaman fisis di dalamnya dibaca.

algoritma pengalamtan langsung bisa mendapatkan sebagian


index, sehingga tidak perlu mencari seluruh index.

3. Bucket dicari untuk mendapatkan rekaman nalari yng

Di bawah ini adalah

sebuah contoh penggabungan teknik-

teknik pengalamatan, yakni tentang lokasi rekaman CITY PAIR

diminta.
4. Apabika rekaman yang diminta tiadak ada dalam bucket
luapan dibaca dan di- search. Kadang- kadang perlu

dalam suatu reservasi penerbangan.


Rekaman CITY PAIR dalam sistem reservasi penrbangan
menberikan perincian

membaca lebih dari satu bucket luapan.


Teknik ini tidak akan mencapai kerapatan packing 100%,
karena adanya sifat- sifat acak dari algoritma. Banyak Berkas

tentang penerbangan anatara dua kota.

Persediaan kursi pada penerbangan diberkan dalam rekaman


AVAILABILITY,

tetapi semua informasi lain yang penting untuk

dapat mencapai kerapatan packing 80%atau 90% dan tidak ada

45

46

pengumuman daftar atau persediaan terdapat di dalam rekaman

Hasilbagi Q dippakai untuk perhitungan alamat mesin dari

CITY-PAIR.

rekaman CITY- INDEX dengan memakai algoritma yang disebut

Kunci

untuk

pengalamatan

rekaman

CITY-PAIR

adalah

gabungan kedua nama kota. Penerbanagn dapat melayani 255


kota dan karena itu membutuhkan 2552 = 65.025 rekaman CITYPAIR (pergi-pulang).

address compute program.


Sisa pembagian R dipaki untuk perhitungan alamat medan
dalam rekaman CITY- INDEX sebagai berikut:

Rekaman-rekaman itu panjangnya tetap.

BA = R NE + NH

Beberapa pasangan kota begitu banyak penerbangan, dan tidak

Di mana NE

semua penerbangan dapat tercakupdalam satu rekaman. Karena

NH

= jumlah byte pada header

itu diperlukan rekaman luapan. Beberapa pasangan kota tidak

BA

= alamat byte relatif dari medan yang diminta.

dilayani

penerbangan,

sehingga

tidak

memerlukan

rekaman

pasangan kota itu.

= jumlah byte per hari

Entri yang diambil dari CITY- INDEX adalah bilangan urut


untuk CITY- INDEX. Bilangan ini diberikan pada file address

Langkah pertama adalah mengubah sebutan kedaua kota

compute program untuk menghitung alamat rekaman CITY- PAIR

menjadi bilangan urut. Dalam hal ini l byte dapat dipakai untuk

yang diminta. Setai rekaman CITY- PAIR berisi ruang untuk

setiap bilangan urut. Konversi ini dikerjakan dengan perangkat

pointer ke rekaman CITY- PAIR luapan.

dari operasi pencarian tabel dalam inti. Urutan dalam tabel ini

Rekaman- rekaman berkas tak disimpan berdekatan, tetapi

menurun sesuai banyaknya penerbangan dalam kota itu. Dengan

disebarkan

tabel ini dapat juga mengubah kembali bilangan urut kota manjadi

kemungkinan masuk serentak.

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

= jumlah total dari kota yang dilayani

NI

= jumlah entri dalam rekaman CITY- INDEX

= hasil bagi

= sisa pembagian

(termasuk kelonggoran untuk perluasan)

Bagan Teknik Pengalamatan dengan Kombinasi Teknik


Direct dan Indexed Non Sequential

47

48

IV. GRAPH

jaringan kegiatan suatu proyek


dan lain-lain

Lintasan dapat mewakili :

Graph terdiri dari simpul-simpul dan lintasan-lintasan.

Simpul Vertex : dapat mewakili peristiwa, kota, sasaran dan

Biaya operasi, lama operasi, jarak antara simpul (kota),

lain sebagainya

profit dan lain sebagainya. (lintasan dinyatakan dalam

Lintasan

besaran sesuai dimensi yang diwakilinya)

lintasan ij : menghubungkan simpul i dan j


lintasan berarah ij : menunjukkan lintasan yang
dilewati (ditunjukkan dengan

Graph dapat direpresentasikan dalam bentuk matrik lintasan.

anak panah) dari simpul i

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

melewati simpul lain

Derajat simpul (vertex) : k

menunjukkan cacah lintasan

yang terhubung dengan

simpul

Graph dengan lintasan berarah disebut directed graph atau


digraph.
Graph dengan lintasan tak berarah disebut undirected graph atau

yang bersangkutan

undigraph, disini hanya muncul ada atau tidak ada hubungan


Contoh :

antara dua vertex. (dalam undirected graph, matrik lintasannya


simetris).

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

Matrik lintasan tak


berarah
l
o

: ada hubungan
: tidak ada
hubungan atau
vertex itu sendiri

50

Bobot

lintasan

menunjukkan

harga

besaran

yang

Representasi Graph dalam Struktur Data :

diwakilinya. Dalam banyak kasus, unsur-unsur matriks lintasan


menunjukkan harga besaran yang diwakilinya.

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

Untuk vertex i ke j bila tak ada lintasannya, biaya dan bila


i=j biaya = 0
ke
dari
A
B
C
D
E

V5

V4
A

10

39

20

10
30

39
20
15

30
25

Matrix lintasan A

E
15
25
35

Representasi dalam link list :

Nilai 0 ada
tidak ditulis

35

150

B
100
200

D
350

300
39

Contoh kasus:

250

mencari lintasan terpendek, atau biaya termurah dari suatu


perjalanan

Dalam lintasan berarah, bobot lintasan yang dicantumkan


dalam matriks lintasan hanya bila ada lintasannya. Matriks

perjalanan diawali dari salah satu vertex, menuju kepada


semua vertex lain.

lintasan mungkin tidak simetris.

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 :

1. Awali pada lintasan (i) pada simpul (vo,i) lintasan

terpendek dari vo-vi. Lingkup s vo.


2. Pilih vertex (v-s) sedemikian sehingga lintasan (v) minimum

T3
3

dari lintasan dalam (v-s).

3. Untuk setiap u dalam v-s, diperbarui lintasan (u) = min

w
1

4. Ulangi langkah 2

4.2 Algoritma Prim:


Untuk menentukan: Minimum Spanning Tree

2
x

1. 1.Inisialisasi tree T.
Bila

x
atau

T4
lintasan

adalah

minimum

yang

menghubungkan vertex T dan vertex tak di T, maka T T+ e.

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

{lintasan u, lintasan v + lintasan ( v,w)}.

2. T

T2

54

4.3 Algoritma Boruvka

4.4 Formula Pohon Cayley


Bila V adalah suatu set dari kardinalitas p1, maka akan

Untuk menentukan minimum spanning Tree.


Algoritmanya:

memiliki pohon-pohon yang tak sama pada V itu sebanyak pp-2

1. inisialisasi spanning forest : F Fp.

Contoh:

2. Forest F diperbaharui. Untuk tiap komponen F' dari F,

V= {1,2,3,4}

hubungkan vertex F' ke vertex lain dari F dengan lintasan


minimum. Set lintasan adalah S, sehingga FF+S
3. Bila (F) = p-1 (p cacah vertex), maka output E(F), bila

Pohon-pohon yang dimiliki oleh V adalah: 42 = 16

sebaliknya ke langkah 2.
Contoh:

y
2

F1

G
6
9

4
w

w
7
u

5
1

y
2

2
x

F2

F3

Contoh terapan algoritma Djiktra (lihat halaman berikut)

3
w

5
u

55

56

Hal-hal yang perlu diketahui :


Jarak dari u0-S ;

V0
V1

d(u0 , S) = min {d(u0,X)XS}

8
16

13

d(u0 , S) = bila tidak ada lintasan

V5

10

Bila P = u0,u1,u2,u3...un, v

V6

lintasan terpendek u0-v :

V7

d(u0 , S) = min {d(u0 , S) + W(uv) |uS, vS, uvE(G)}

11

Eksentrisitas : e(v)

17
V2

adalah jarak dari vertex v ke suatu vertex yang terjauh dari v

V4

6
14

e(v) = max {d(v,u) | uV(G)}

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

rad G diam G 2 rad G

Median Graph :
M(G) subgraph dengan min jarak.

Contoh mencari lintasan bentang minimal (MST) dan


center, serta jalur terpanjang.

Untuk i = 1, 2, ... 5,
Qi adalah jalur v0 vi :
Q1 = v0, v5, v1

Q4 = v0, v5, v4

Q2 = v0, v2

Q5 = v0, v5

Andaikan kita ingin membangun jaringan komunikasi kabel


yang menghubungkan kota- kota besar yang diperlihatkan dalam
label matrix lintaran sebagai berikut:

Q3 = v0, v5, v4, v3

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

terkecil hingga yang terbesar maka :

2600
1400
2000

2000
2000

1300

Jika kita mengurutkan beban lintasan mulai dari yang

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

Maka jika kota tersebut dihubungkan oleh kabel dengan


panjang minimum maka gambarnya adalah sebagai berikut:

59

60

200

Maka berdasar tabel di atas, jika kota NY dijadikan kota

DC

pusat pelayanan maka eksentrisitasnya adalah : e(NY,NY DC


CH) = e(NY,NY CH SE) = 2800.

NY

DA

780

DE

900

800

Jika kota DC yang menjadi titik pusat pelayanan

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)

Andaikan tabel di atas juga merupakan matrix lintaran jalur

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

penerbangan kota besar wisata, kota manakah yang sebaiknya


Anda pilih sebagai kantor pusat pelayanan, dan kota manakah
yang jangan sampai Anda pilih?

200

DC

2600
1300

Penyelesaiannya

NY

Jika kota NY yang menjadi pusat pelayanan


DC
(,-)
(200,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

Jika kota CH yang menjadi titik pusat pelayanan

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

Maka berdasar tabel di atas, jika kota DA dijadikan kota


pusat pelayanan maka eksentrisitasnya adalah : e(DA,DA DE

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

Jika kota DE yang menjadi titik pusat pelayanan


DE
0

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

Maka berdasar tabel di atas, jika kota SE dijadikan kota

2600

DC

pusat pelayanan maka eksentrisitasnya adalah : e(SE,SE DE


DA DC) = 3000.

1400

NY

DA
DE

Dari eksentrisitas masing-masing, maka kota yang paling

1300

800

tepat untuk dijadikan sebagai kantor pusat adalah CH (dengan

SE

CH

eksentrisitas = 2000), dan kota yang jangan sampai kita pilih

1100

menjadi pusat adalah SE dan DC (dengan eksentrisitas = 3000).

LA
2000

Maka berdasar tabel di atas, jika kota LA dijadikan kota


pusat pelayanan maka eksentrisitasnya adalah : e(LA,LA CH
NY) = 2800.
Jika kota SE yang menjadi titik pusat pelayanan
SE
0

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

V. SORTING DENGAN PARALLEL PROCESSOR

Dua deretan :
1) min (a0, a n ), min (a1, a n ), . . . min ( a n ,an-1) dan

5.1 Algoritma Bitonic Merge


Algoritma bitonic merge diperkenalkan oleh Batcher (1968).
Dasar operasi algoritma ini adalah pembandingan-pertukaran
(compare-exchange) dari dua bilangan, seperti pada gambar
berikut :

+1

+1

2) max (a0, a n ), max (a1, a n ), . . . max ( a n ,an-1) adalah Bitonic


2

+1

+1

Setiap elemen pada deretan pertama adalah lebih kecil


daripada setiap elemen pada deretan kedua.
Kemudian

langkah

tunggal

Max (a,b)

bitonic. Maka deretan bitonic 2k dapat di-sort pada k langkah


secara rekursif.

a0

Min (a,b)

a1
High to low comparator

an

Bitonic sequence adalah deretan bilangan-bilangan a0, a1, . . . an-1

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) siklus bergeser dari index sedemikian sehingga kondisi

+2

pertama memuaskan
2k,

dengan integer k>0, maka a0, a1, . . . an-1

n
elemen
2
bitonic sorter

adalah deretan Bitonic bila :


a0 a1 a2 . . . a n
2

n
elemen
2
bitonic sorter

secara monotolik, atau

n=

tukar

Max (a,b)

Apabila

pembanding

mentransformasikan deretan bitonic kepada dua deretan

Low to high comparator

suatu

Min (a,b)

an-2

dan

an-1

a n a n . . . an-1
2

+1

Skema rekursif Bitonic Merge

67

68

Contoh: sorting deretan bitonic 16 elemen dengan Bitonic Merge

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

Sorting deretan bitonic 16 elemen menggunakan :


Stone's perfect shuffle

70

VI. KOMPUTASI PARALEL & TERDISTRIBUSI


6.1 Klasifikasi Komputasi Paralel
Klasifikasi komputasi paralel dibedakan menurut :
1) Tipe dan cacah prosesor

dengan ribuan prosesor paralel secara massive.


sejumlah kecil prosesor (misal orde 10)
-

tiap prosesor loosely coupled,

tiap prosesor mengerjakan tugas yang berbeda pada


waktu tertentu

2) Ada-tidaknya mekanisme kontrol global

hanya untuk load program dan data ke prosesor


tiap prosesor bekerja sendiri-sendiri
instruksi tiap prosesor, apa yang dikerjakan tiap tahap
sebagai larik prosesor dikenal : SIMD (Single Instruction
Multiple Data) dan MIMD (Multiple Instruction Multiple
Data).
3) Operasi sinkron dan asinkron
Perbedaan

pada

ada-tidaknya

global

clock

untuk

sinkronisasi
4) Interkoneksi prosesor

Sistem switching

Mesin sorting berdasarkan perfect shuffle connection

71

P1

M1

P2

M2

P3

M3

P4

M4

72

Sistem network

6.2 Algoritma Paralel Dengan DAG


Contoh penggunaan DAG (Directed Acyclic Graphs) untuk

M1

representasi (x1+x2)(x2+x3) .

M2
P1

P2

P4

P3

x1

x2

x1 x2

M4

x3

x22

x1 x3

X2 x3

M3

Sistem shared memory

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

fi = fungsi operasi pada simpul (prosesor i)

P4

xi = input variable

Sistem cluster prosesor


P1

ukuran kompleksitas :

P2

P3

P4

P7

P5

P8

P6

P9

73

cacah prosesor

waktu sampai algoritma berakhir

cacah pesan yang ditransmisikan

74

DAG optimal:

Representasi : A2, A3, . . . An dari matriks n x n

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

6.3 Paralelisasi Metode Iteratif

buah bilangan skalar


Xi(t+1) = fi (x1(t), . . . . ., xn(t))
i = 1, . . . . , n
Representasi dengan menggunakan depedency graph :

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))

Struktur algoritma di atas dapat dinyatakan dalam bentuk DAG


sebagai berikut :

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

Representasi iterasi Gauss Seidel

VII. DESAIN DAN ANALISIS ALGORITMA PARALEL

Xi(t+1) = fi (x1(t), . . . . ., xi-1(t), xi(t), . . . . , xn(t))


i = 1, . . . . , n

Dengan Algoritma Paralel, problem yang diselesaikan dibagi


menjadi subproblem-subproblem. Semua subproblem tersebut
dikerjakan secara simultan, masing-masing pada suatu prosesor

1.0

2.0

3.0

yang berbeda. Hasil dari penyelesaian subproblem-subproblem itu

4.0

selanjutnya dikombinasikan untuk memperoleh jawaban atas


penyelesaian persoalan yang semula. Ini adalah merupakan
langkah yang radikal untuk meninggalkan model komputasi yang

1.1

telah dibangun sebelumnya, yaitu yang menggunakan model

2.1

prosesor

3.1

tunggal

dimana

penyelesaian

problem

komputasi

dikerjakan secara sekuensial.

4.1

Model-model Komputasi :
1. Single Instrumen Stream, Single Data Stream (SISD)

Control

instruk
i

Prosesor

data

Memory

Banyak dijumpai pada aplikasi PC


2. Multiple Instrumen Stream, Single Data Stream (MISD)

Prosesor
1

Memory

instruksi

Control
1

Prosesor
2

Control
2

Prosesor
n

Control
n

MISD

77

78

Contoh aplikasi :

komputasi

ii) Concurent-Read, Exclusive-Write (CREW) SM SIMD

untuk

menentukan

suatu

bilangan

integer

Beberapa prosesor boleh membaca data dari lokasi memory


yang sama, tetapi write masih tetap eksklusif. Tak boleh ada

merupakan bilangan prima atau bukan.

mesin robot untuk scanning laut yang dalam untuk


membedakan suatu objek apakah ikan, batu karang,

dua atau lebih prosesor write pada lokasi yang sama secara
simultan.
iii) Exclusive -Read, Concurent -Write (ERCW) SM SIMD

bangkai kapal, atau benda lainnya.

Beberapa prosesor boleh write ke lokasi yang sama, tetapi

3. Single Instrumen Stream, Multiple Data Stream (SIMD)


Komputer memiliki N prosesor yang identik. Tiap prosesor
memiliki memori lokal untuk simpan data dan program. Semua

read masih tetap eksklusif.


iv) Concurent-Read, Concurent-Write (CREW) SM SIMD

prosesor di bawah kontrol satu aliran instruksi. Prosesor-

Kedua-duanya

prosesor beroperasi secara sinkron.

istimewa dapat dilakukan. (rumit pada m-write).

Shared memory
or
interconnection network

Kerumitan

utama

multiple-read

dalam

SM

and

multiple-write

SIMD

adalah

secara

mahal

dan

kompleksnya circuit decoding terlebih semakin banyaknya


prosesor dan lokasi memory bila diperlukan.

Data
1
Proc
1

Data
2
Proc
2

Untuk mereduksi masalah di atas, dapat dilakukan dengan

Data
N

memory-block seperti gambar di bawah ini :

Proc
N

Prosesor 1
Prosesor 2

instruksi
SIMD

Prosesor 3

Control

Prosesor 4
Model-model shared memory (SM) SIMD :

Prosesor 5

i) Exclusive-Read, Exclusive-Write (EREW) SM SIMD


Akses ke memory eksklusif, sedangkan di lain pihak tak
boleh ada dua prosesor atau lebih read or write secara

memory
block 1

memory
block 2

memory
block 3

simultan pada lokasi memory yang sama

SM SIMD dengan memory block

79

80

Selain itu juga dapat digunakan SM SIMD dengan jaringan

ii) two-dimesional array

interkoneksi SIMD.

Prosesor 1

Prosesor 2

Prosesor 5

Prosesor 3

Prosesor 4

Kekurangan model jaringan interkoneksi (fully interconnected


set of processor) adalah :

Harga amat mahal (karena kompleksnya jaringan)

Model kurang

iii) tree connection

realistik, secara praktis cacah prosesor

Level 2

P1

sangat terbatas.
Lebih rendah daripada shared memory dengan block, karena

P2

realitas tak dapat lebih dari satu prosesor dapat diakses

Level 1

P3

secara simultan.
Untuk mengatasi kekurangan model jaringan interkoneksi,

P4

P5

P6

P7

Level 0

maka dibuat simple network SIMD, model-modelnya :


Jaringan bentuk pohon biner komplit bila d level, nomor
level : 0 (d-1).

i) linear array

Cacah prosesor : N = 2d - 1
iv) perfect shuffle connection

P1

P2

P3

P4

P5

P6

Cacah prosesor N = 2k.


Hubungan prosesor Pi ke Pj :
2i

j=

81

; 0 i N/2 i

(2i + 1 N) ; N/2 i N-1

82

Contoh 8 prosesor

Analisis yang perlu :


1. Running time
2. Number of processor

P0

P1

P2

P3

P4

P5

P6

3. cost

P7

4. others:
- Area
- Length of wires
v) cube connection

- Period ( lebih-lebih pipeline)

Cacah prosesor N =

2q

; q 1,

N prosesor : P0, P1,P2,....PN-1.

7.1 Algoritma Addisi Pada Prosesor Paralel

q- dimensional cube ( or key percube)


Contoh bila q = 3 P0, P1,... P7

Dalam kenyataan aplikasi, berbagai macam problem dapat

SUMMATION (SISD) :
begin
sum a0
for i 1 to n-1 do
sum sum + ai
endfor
end

dikerjakan dengan algoritma pararel pada komputer SIMD.


Maka secara realitas banyak masalah komputasi tak cocok
dengan SIMD MIMD.
4. Multiple Intruction Stream, Multiple Data Stream (MIMD)

Shared memory
or
interconnection network
Data
1
P1
Instruksi
1
C1

Data
2
P2
Instruksi
2
C2

Algoritma addisi untuk cacah bilangan : n = 2i dengan cubeconnected processor.


SUMMATION (SIMD-CC) :
begin
for i log n-1 downto 0 do
d 2i
for all Pj, where 0j<d
do
tj aj + d
aj aj + tj
endfor
endfor
end

Data
N
PN
Instruksi
3

(Pi prosesor variabel lokal ai dan ti)

CN

83

84

Algoritma addisi untuk cacah bilangan : n = 2m pada pocessor

n-1. Prosesor Pi berisi ai, bi, dan ti. Dibutuhkan iterasi n/2.

SUMMATION (SIMD-PS) :

ODD-EVEN TRANSPOSITION (SIMD-MC)

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

Dengan anggapan n = even, hingga untuk seluruh i, 0 i

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

Algoritma addisi pada MIMD tightly coupled multiprocessor


SUMMATION (TIGHTLY COUPLED MULTIPROCESSOR) :
begin
global sum 0
for all Pi, where 0i<p-1 do
localsum 0
for j i to n step p do
localsum local-sum + aj
endfor
lock (global-sum)
globalsum global-sum + local-sum
unlock (global-sum)
endfor
end

BITONIC MERGE SORT (SIMD-CC)


Sorting pada SIMD-CC dengan cacah elemen data : n = 2m ,
m positif integer. Cacah prosesor = n = 2m
begin

7.2 Algoritma Sort Pada Prosessor Parallel


Sorting

pada

SIMD-MC

model

menggunakan

dasar

transposisi odd-even
Data A = (a0, a1, a2, . . . . , an-1)

= (b0, b1, b2, . . . .

, 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

m = log n, maka algoritma ini memerlukan

m(m+1)/2 compare-exchange steps, m(m-1) shuffle steps dari A =


(a0, a1, a2, . . . . , an-1)

dan 2m-1 shuffles dari M dan R. M adalah

vektor data yang diproses pada elemen pemroses tertentu. Jumlah


prosesor yang diperlukan = n.
begin
for all Pi where 0in -1 do {compute initial value of the
mask M}
ri i modulo 2
mi ri
endfor
for i 1 to m do
for all Pi where 0in -1 do
mi mi ri (exclusive OR)
shuffle (mi)
endfor
endfor
COMPARE EXCHANGE (A,M)
for i 1 to m-1 do
for all Pi where 0in -1 do
shuffle (ri)
mi mi ri (exclusive OR)
for j 1 to m-1-i do
shuffle (ai)

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

VIII. ALGORITMA PARALEL UNTUK PERSAMAAN LINEAR DAN

Persamaan ke-i dari Ax = b adalah :


ai1x1 + ai2x2 + . . . + aiixi = bi

INVERS MATRIX

Dengan harga-harga variabel untuk x1, . . . xi-1 dan


Persamaan Linear : Ax = b

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

ke-i untuk evaluasi xi adalah :

elemen matriksnya :

xi =

aij = 0 untuk i<j

1
(bi ai1x1 - . . . ai,i-1xi-1)
a ii

aii 0.

Akhirnya, tiap prosesor j, dengan j i+1, mengevaluasi

Bila aii=1 untuk semua i, maka berlaku :

pernyataan :

A=IL

aj1x1 + . . .

L : MSB

+ ajixi dengan penambahan ajixi kepada

pernyataan terdahulu :

lij = 0 untuk i < j


Lemma :

aj1x1 + . . . + aj,i-1xi-1.

Bila A = I L maka berlaku :

Algoritma berakhir pada tahap ke n, bila x1, x2, . . . xn telah


terhitung. Untuk backsubstitution, memerlukan n prosesor.

A-1 = (I + L + L2 + . . . + Ln-1)
A
Bila A = 1
A 2

Implementasi back substitution dengan pipelined :

0
dimana :
A3

(a)

A1 berukuran n/2 x n/2; A1 dan A3 adalah MSB maka :

A11
0
A-1 =
1
1
1
A
A
A
A

3
2 1
3

Bila n = 1, A-1 jelas

Bila n > 1, lakukan partisi A seperti di atas :

x1

xi-2
i+2

i+1

2i-1

2i

2i

2i

i 1

a i +1,k x k

k =1

Berdasarkan dekomposisi di atas, untuk matriks A = MSB :

xi-1

xi
1

(b)

a) ubah ke A1 dan A3, dimana A1 & A3 adalah MSB.

xi

i+1

i+2

xi-1

2i-1

x2

b) kalikan A3-1 dengan A2 sehingga diperoleh A3-1A2

c) kalikan hasil b) dengan A1-1.

k =1

b) dan c) menggunakan n3 prosesor.


2) Back substitution :
Penyelesaian dengan back substitution untuk persamaan

a i + 1, k x

xi

xi+1
(c)

i+1

i+2

x3

linear Ax = b dengan A adalah MSB :

89

90

a) snapshot of the algorithm as soon as xi is computed.


Prosesor i+1 telah terima x1, . . . xi-1

dan evaluasi

i 1

a i +1,k x k

Implementasi dikenal dengan : odd even reduction


Dengan gi 0, maka :
xi =

k =1

b) Secepatnya xi diterima oleh prosesor i+1, langsung


dihitung

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

a i +1,k x k , xi+1 dihitung.

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

c) xi+1 ditransmisi ke prosesor (i+2) untuk peroleh hasil xi

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

Implementasinya Untuk n = 8: (lihat halaman berikut)

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

3) Sistem dengan matriks tridiagonal


Ax = b A tridiagonal jika : aij = 0 untuk |i-j|>1
Bentuk persamaan sistem :
g1x1 + h1x2 = b1
fixi-1 + gixi + hixi+1 = bi, i = 1,2, . . . , n-1
fnxn-1 + gnxn = bn
gi = elemen diagonal matriks A
fi dan hi = elemen bawah dan atas diagonal.

91

92

DAFTAR PUSTAKA

8
Blahut, R.E. Fast Algorithms for Digital Signal Processing, AddisonWesley, 1985.

Constantinides, A : Applied Numerical Methodods With PC.I Mc.

Graw Hill.
Enem, S. Graph Algorithms, Computer Science Press, Inc, 1999

Knuth, D.E. : Fundamental Algorithms, Addison-Esley, 1975.

La Budda, K : Structure Programming Concepts. Mc. Graw Hill.


Parsons, T.W : Introductional to Algorithms in PASCAL

Quin, M.J. Designing Efficient Algoritms for Parallel Computers, Mc.


Graw Hill. 1987
Selim G

: The Design and Analysis of Parallel Algoritms. Prentice-

Hall International, Inc. 1989


Tenenbaum, A.M : Data Structures Using C. Prentice-Hall
International, Inc. 1990

Implementasi odd even untuk n = 8

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