I Made Sunia Raharja/Class B 974/Pra-MIK/57/2011 Pencarian Sekuensial Pencarian Sekuensial sering disebut pencarian

berurutan merupakan metode pencarian yang paling sederhana. Pencarian berurutan menggunakan prinsip sebagai berikut : data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data tersebut ditemukan atau tidak ditemukan. Pada dasarnya, pencarian ini hanya melakukan pengulangan dari 1 sampai dengan jumlah data. Pada setiap data I, dibandingkan data ke-I dengan yang dicari. Apabila sama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir tidak ada data yang sama, berarti data tidak ada. Pada kasus yang paling buruk, untuk N elemen data harus dilakukan pencarian sebanyak N kali. Algoritma Kamus Const N : integer = 8 { misalkan jumlah elemen array maksimum = 8 } Type A = array [ 1 ..... N ] of integer I : integer ALGORITMA Input (cari) { meminta nilai data yang akan dicari} While ( I < N) and (A[I] <> cari) do Next(I) EndWhile If (A[I]=cari ) then Output ( ‘Data ditemukan pada’,I ) Else Output ( ‘Data tidak ditemukan’ ) Endif

Pencarian Biner Salah satu syarat agar pencarian biner dapat dilakukan adalah data sudah dalam keadaan urut. Dengan kata lain, apabila data belum dalam keadaan urut, pencarian biner tidak dapat dilakukan. Prinsip dari pencarian biner dapat dijelaskan sebagai berikut : mula-mula diambil posisi BatasAtas 1 dan posisi BatasBawah = N, kemudian dicari posisi data tengah dengan rumus (BatasAtas + BatasBawah) / 2. Kemudian data yang dicari dibandingkan dengan data tengah. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan

BatasAtas. Algoritma Kamus Const N : integer = 8 { misalkan jumlah elemen array maksimum = 8 } Type A = array [ 1 .. Tengah : Integer Ketemu : boolean ALGORITMA Input (cari) { meminta nilai data yang akan dicari} BatasAtas 1 { indeks array dimulai dari 1 } BatasBawah  N Ketemu  False While (not ketemu) do Tengah  (BatasAtas + BatasBawah) div 2 If A [Tengah] = cari then Ketemu ← true Output ( ‘Data berada di index nomor’. Tengah ) Else If ( A [Tengah] < cari ) then { cari di bagian kanan } BatasAtas ← Tengah + 1 Else BatasBawah  Tengah – 1 { cari di bagian kiri } Endif Endif EndWhile If (BatasAtas > BatasBawah ) then Ketemu ← true Output ( ‘Data tidak ditemukan’ ) Endif .posisi tengah –1. Jika lebih besar.... Demikian seterusnya sampai data tengah sama dengan yang dicari. N ] of integer Cari. BatasBawah. porses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi tengah + 1.

Sign up to vote on this title
UsefulNot useful