Rabu, 20 April 2011

Membuat Program Pascal/Algoritma Pencarian "1"

  Agus Nur Ikhsan       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;
logoblog

Thanks for reading Membuat Program Pascal/Algoritma Pencarian "1"

Previous
« Prev Post

Tidak ada komentar:

Posting Komentar