Anda di halaman 1dari 11

PROSES SEARCHING (TABLE LOOK-UP)

• Proses mencari nilai tertentu dalam sebuah tabel


• Ada beberapa variasi metode pencarian; yg diinginkan biasanya metode
yg memerlukan waktu lebih cepat

Mencari nilai X
dalam Tabel
X Last-Element
atau
First-Element End-of Process
Next-Element

1 2 3 ... n-1 n
MODEL PEMROSESAN SEKUENSIAL
Pemrosesan sekuensial dapat dilakukan dengan dua cara :
• Model dengan MARK. Berakhirnya pemrosesan ditandai dengan suatu elemen fiktif. Disebut fiktif karena
bukan merupakan anggota dari data yang diproses. Model dengan mark lebih banyak dipakai dalam
pemrograman praktis
• Model tanpa MARK. Berakhirnya pemrosesan ditandai dengan suatu elemen yang merupakan elemen
terakhir dari data yang diproses

Last-Element
atau
First-Element End-of Process
Next-Element

#
1 2 3 ... n-1 n
PEMROSESAN TABEL (TANPA MARK)
• Pemrosesan sekuensial terhadap tabel merupakan pemrosesan sekuensial tanpa mark
• Tabel memungkinkan adanya akses langsung ketika indeksnya terdefinisi; karena indeks pada tabel memiliki
keterurutan tertentu, sehingga akses dari satu elemen ke elemen berikutnya dapat dilakukan dengan
memanfaatkan keterurutan indeksnya
• Dalam tabel, First Element adalah elemen dengan indeks terkecil
• Next Element didapat melalui indeks suksesor
• Elemen terakhir adalah elemen dengan nilai indeks terbesar
• Kondisi berhenti dicapai ketika telah mencapai indeks terbesar
• Asumsi: tabel tidak pernah kosong; artinya jika mendefinisikan tabel, maka minimal ada satu elemennya

Last-Element
atau
First-Element End-of Process
Next-Element

1 2 3 ... n-1 n
Program SeqSearch1
{Sequential search dengan boolean}
{K. awal : tabel T terdefinisi dan berisi data}
{K. akhir: X berisi integer yg dibaca dari keyboard, IX berisi 0 jika X tidak
ditemukan; atau berisi index tempat pertama kali X ditemukan}

Kamus
Constant Nmin : integer = 1 {batas bawah}
Constant Nmax : integer = 100 {batas atas}

Type ElType : integer


i : integer [Nmin..Nmax] {indeks tabel}
T : array of [Nim..Nmax] of ElType {tabel yg akan diproses}
IX : integer
Found : boolean

Algoritma
input (X)
T 1 3 5 -8 12 90 3 5 Found  false
i  1 {First Element}
1 2 3 4 5 6 7 8 iterate
Found  T[i] = X
stop: (Found or i = Nmax)
i i+1
end-iterate
if (Found) then
IX = i
else
IX = 0
end-iif
Program SeqSearch2
{Sequential search dengan boolean}
{K. awal : tabel T terdefinisi dan berisi data}
{K. akhir: X berisi integer yg dibaca dari keyboard, IX berisi 0 jika X tidak
ditemukan; atau berisi index tempat pertama kali X ditemukan}

Kamus
Constant Nmin : integer = 1 {batas bawah}
Constant Nmax : integer = 100 {batas atas}

Type ElType : integer


i : integer [Nmin..Nmax] {indeks tabel}
T : array of [Nim..Nmax] of ElType {tabel yg akan diproses}
IX : integer
Found : boolean

Algoritma
Found  false
T 1 3 5 -8 12 90 3 5 i  1 {First Element}
while (i < Nmax and not Found) do
1 2 3 4 5 6 7 8 if (T[i] = X then
Found  true
else
i i+1
end-if
end-while
if (Found) then
IX = i
else
IX = 0
end-iif
Program SeqSearch3
{Sequential search tanpa boolean}
{K. awal : tabel T terdefinisi dan berisi data}
{K. akhir: X berisi integer yg dibaca dari keyboard, IX berisi 0 jika
X tidak ditemukan; atau berisi index tempat pertama kali X
ditemukan}

Kamus
Constant Nmin : integer = 1 {batas bawah}
Constant Nmax : integer = 100 {batas atas}

Type ElType : integer


i : integer [Nmin..Nmax] {indeks tabel}
T : array of [Nim..Nmax] of ElType {tabel yg akan diproses}
IX : integer
T 1 3 5 -8 12 90 3 5
1 2 3 4 5 6 7 8 Algoritma
i  1 {First Element}
while (i < Nmax and T[i] <> X) do
i i+1
end-while
if (T[i] = X) then
Ix = i
else
IX = 0
end-iif
Function Found (X : integer) → boolean
{Mencari nilai X dalam tabel T yg sudah terdefinisi secara global;
mengeluarkan true jika X ditemukan; atau false jika X tidak ditemukan
dalam tabel T}

Kamus

i : integer [Nmin..Nmax] {indeks tabel}

T 1 3 5 -8 12 90 3 5 Algoritma
i  1 {First Element}
1 2 3 4 5 6 7 8 while (i < Nmax and T[i] <> X) do
i i+1
end-while
return (T[i] = X)
Function FindMax () → integer
{Mencari nilai integer terbesar dalam tabel T yg sudah terdefinisi secara
global; mengeluarkan nilai integer terbesar yang ditemukan}

Kamus

T 1 3 5 -8 12 90 3 5 Algoritma

1 2 3 4 5 6 7 8
Procedure FindMinMax (output Min : integer, output Max : integer)
{K. awal: tabel T terdefinisi secara global dan berisi data integer}
{K. akhr: Min berisi nilai terkecil dan Max berisi nilai terbesar yg ditemukan
dalam tabel T}

Kamus

T 1 3 5 -8 12 90 3 5 Algoritma

1 2 3 4 5 6 7 8
THANK YOU

Anda mungkin juga menyukai