Didefinisikan sebuah kamus dengan definisi konstanta dan tipe data di bawah ini.
Kamus
constant Nmax: integer = 33
type tabelInteger: <tabInt: array [1..Nmax] of integer
N: integer> {banyaknya elemen tabInt, 0 ≤ N ≤ Nmax}
13 7 8 1 31 27 16 12 9 31 27 60 12 11 14 34 31 41
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Diberikan sebuah tabel dengan N elemen. Algoritma search akan bertujuan untuk mencari sebuah nilai pada
sekumpulan nilai yang tipenya sama, dalam hal ini tabel. Di materi berikutnya kita akan mengimplementasikan
algoritma search yang sama untuk list berkait.
Yang khas dari algoritma search adalah proses pencarian akan berhenti setelah nilai yang dicari ditemukan.
Kondisi lainnya yang membuat proses pencarian berhenti adalah jika sudah mencapai elemen terakhir.
Algoritma SEQSearchX1A mencari nilai (X) pada tabel integer T. Perhatikan IS (initial state/kondisi awal) dan FS
(final state/kondisi akhir). Algoritma X1B, dan SEQSearchX1C adalah variasi-variasi dari algoritma
SEQSearchX1A.
found T.TabInt[i]=X
( T.TabInt[i]=X)
Latihan
a. Jika X=15, dimana posisi i begitu keluar dari loop while? Berapakah nilai IX?
b. Jika X=10, dimana posisi i begitu keluar dari loop while? Berapakah nilai IX?
c. Jika X=29, dimana posisi i begitu keluar dari loop while? Berapakah nilai IX?
4 9 13 15 7 23 31 25 14 7 29
1 2 3 4 5 6 7 8 9 10 11
Algoritma SEQSearch1A, 1B, 1C hanya bisa dijalankan pada tabel yang tidak kosong. Untuk tabel yang
mungkin kosong (N < 0), algoritma SEQSearch2A, 2B, 2C bisa diberlakukan.
Latihan
a. Jika X=7, dimana posisi i begitu keluar dari loop while? Apakah nilai found?
b. Jika X=17, dimana posisi i begitu keluar dari loop while? Apakah nilai found?
4 9 13 15 7 23 31 25 14 7 29
1 2 3 4 5 6 7 8 9 10 11