Home » , » Membuat Program Pascal/Algoritma Pencarian "1"

Membuat Program Pascal/Algoritma Pencarian "1"

Posted by Agus Nur Ikhsan on Rabu, 20 April 2011


Pencarian Linier/Sekuensial


Pencarian Linier atau Pencarian Sekuensial (Bah.Ingg: Linear Search atau Sequential Search) adalah pencarian data secara linier (garis lurus), artinya adalah pencarian dilakukan secara teratur (secara sekuensial) dari awal sampai akhir data (atau bisa juga dari akhir ke awal data). Berikut adalah 2 fakta penting tentang pencarian linier:
  • Hanya bagus untuk dipakai pada data yang acak/tak terurut (unsorted)
  • Kompleksitasnya adalah O(n)
Berikut adalah implementasi dari pencarian linier memakai function untuk pencarian data bertipe string:
type
TArrString = array of string;

function CariLinier(var Arr: TArrString; Cari: string): LongInt;
var
Idx, Batas, Ketemu: LongInt;

begin
Idx:= Low(Arr);
Batas:= High(Arr);
Ketemu:= -1;
while (Idx <= Batas) and (Ketemu = -1) do begin
if Arr[Idx] = Cari then Ketemu:= Idx;
Inc(Idx);
end;
CariLinier:= Ketemu;

Penjelasannya Sebagai Berikut:


type
TArrString = array of string;

function CariLinier(var Arr: TArrString; Cari: string): LongInt;
var
Idx, Batas, Ketemu: LongInt;

begin
Idx:= Low(Arr); // Dapatkan index terendah dari array
Batas:= High(Arr); // Dapatkan index tertinggi dari array
Ketemu:= -1; // Asumsi awal: belum ketemu

// Lakukan perulangan selama data yang dicek belum habis
// (Idx <= Batas) dan belum ketemu (Ketemu = -1)
while (Idx <= Batas) and (Ketemu = -1) do begin

// Jika array di posisi Idx adalah data yang dicari, maka
// posisi Ketemu ada di posisi Idx saat ini
if Arr[Idx] = Cari then Ketemu:= Idx;

// Naikkan posisi Idx (Cek data berikutnya)
Inc(Idx);
end;
CariLinier:= Ketemu;
end;

Thanks for reading & sharing Agus Nur Ikhsan

Previous
« Prev Post

0 komentar:

Posting Komentar

Popular Posts