Week-11 Searching Dalam Tabel
Week-11 Searching Dalam Tabel
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}
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}
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}
Kamus
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