Anda di halaman 1dari 8

DESAIN DAN ANALISIS ALGORITMA

SQUENTIAL SEARCH
GUSTI BAGUS WIJAYA LAKSANA
1929101004
PENGERTIAN

• Metode yang paling sederhana dari sejumlah metode pencarian adalah metode pencarian
berurutan yang sering dikenal dengan squential search atau liniear search.
• Sequential search adalah suatu teknik pencarian data dalam array (1 dimensi) yang akan
menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu
diurutkan terlebih dahulu.
• Secara garis besar data yang dicari dibandingkan satu per satu sampai data tersebut ditemukan
atau tidak ditemukan. Pada saat data yang dicari sudah ditemukan, maka proses pencarian
langsung dihentikan. Tetapi jika data yang dicari belum ditemukan, maka pencarian diteruskan
sampai seluruh data dibandingkan.
BEST CASE & WORST CASE

• Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di indeks array
terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data
sangat sebentar (minimal).

• Kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di indeks array
terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data
sangat lama (maksimal).
ALGORITMA
Int main (input arr : [1..N] array of integer; input x :integer){
//Kamus : x adalah nilai yang dicari;

Deklarasi :
Int index, value;
Algoritma

value <- sizeoff(arr)/sizeof(arr[1]);


index <- recSearch (arr,0,value-1,x);
PROGRAM REKURSIF UNTUK
if (index != -1) then
MENCARI ELEMEN DALAM print “Element is present at index” index;
else
ARRAY YANG DIBERIKAN endif
print “element is not present”;

}
Int recSearch (input arr : array [1..N] of integer; input l,r,x : integer){
Algoritma :
If (r < l) then
Return -1
Endif
If (arr[l] == x) then
Return l;
Endif
If (arr[r] == x) then
Return r;
Endif
Return recSearch(arr,l +1, r- 1,x);
Program
// Driver Code
// Recursive C++ program
int main()
// to search x in array
{
#include<bits/stdc++.h>
int arr[] = {12, 34, 54, 2, 3};
using namespace std;
int n = sizeof(arr) / sizeof(arr[0]);
// Recursive function to
int x = 2;
// search x in arr[l..r]
int index = recSearch(arr, 0, n - 1, x);
int recSearch(int arr[], int l,
if (index != -1)
int r, int x)
cout << "Element" << x
{
<< " is present at index "
if (r < l)
<< index;
return -1;
else
if (arr[l] == x)
cout << "Element" << x
return l;
<< " is not present" ;
if (arr[r] == x)
return 0;
return r;
}
return recSearch(arr, l + 1, r - 1, x);
 
}

 
Contoh Kasus
If (3! = -1)= ….
arr = [12,34,54,2,3];
Print = Element 2 is present at index
N = (4*5) / 4 = 5;
index; 3
X = 2;

4 2

Index = recsearch (arr, 0, n-1, x)


(arr, l, r, x)

Index = reSearch(arr, 0, 4, 2);

If (4<0) // false

If(12 == 2) //false

If(3 == 2) //false

(arr, l+1, r-1, 2)


(arr, 0+1, 4-1, 2)

return recSearch(arr, 1,3,2);


If (3<1) //false

If (34==2) //false

If(2==2)//true
Contoh Kasus
return recSearch(arr, 2,5,13);
arr = [88,11,12,15,14,8,9,7];
If (5<2) // false
N = (8*4) / 4 = 8;
If(12 == 13) //false
X = 13;
If(8 == 13) //false
7 13
return recSearch(arr, 3,4,13);
Index = recsearch (arr, 0, n-1, x)
(arr, l, r, x) If (4<3) // false
Index = reSearch(arr, 0, 7, 13);
If(15 == 13) //false
If (7<0) // false
If(14 == 13) //false
If(88 == 13) //false
return recSearch(arr, 4,3,13);
If(7 == 13) //false
If (3<4) // true
return recSearch(arr, 1,6,13);
Index = -1
If (6<1) // false

If(11 == 13) //false


“element is not present”;

If(9 == 13) //false


SELESAI

Anda mungkin juga menyukai