Bab 1
Pendahuluan
1.1 Latar Belakang
Dalam ilmu logika dan algoritma
sering kali menemui masalah tentang bagaimana mendapatkan suatu data dalam
kumpulan data. Dalam keperluannya untuk mencari data, terdapat beragam
algoritma pencarian(search algoritm). Algoritma sendiri merupakan “algoritma
yang menerima sebuah argumen ‘a’ dan mencoba untuk menemukan sebuah rekaman
yang memiliki kunci ‘a’. Pencarian dapat dilakukan terhadap data yang secara keseluruhan
berada dalam memory komputer ataupun yang berada dalam penyimpanan ekternal
(hardisk). Pencarian yang dilakukan terhadap data yang berada dalam komputer di
kenal dengan pencarian internal sedangkan pencarian yang dilakukan pada media
penyimpanan eksternal disebut pencarian ekternal. Pencarian internal meliputi
Pencarian sekuensial (sequential search) dan pencarian biner (binary search).
1.2 Rumusan Masalah
1.
Pengertian
Searching Linier sequential
2.
Bagaimana
algoritma pencarian berurutan itu dan mengaplikaskannya pada sebuah program.
1.3 Tujuan dan manfaat
1.
Mengkaji
metode Searching Linier sequential sebagai program dalam menyelesaikan
pencarian berurutan.
2.
Penggunaan
Metode Searching Linier Sequential dalam
menyelesaikan masalah-masalah yang ada.
Bab 2
Isi
2.1 Pembahasan
Sequential Search adalah proses membandingkan setiap elemen larik satu per
satu secara beruntun, mulai dari elemen pertama sampai elemen yang dicari
ditemukan atau seluruh elemen sudah diperiksa. Algoritma pencarian
secara linear digunakan untuk mencari sebuah nilai pada tabel sembarang. Ada
dua macam cara pencarian pada tabel. Algoritma ini mempunyai dua jenis metode
yaitu dengan boolean dan tanpa boolean. Algoritma pencairan secara linear
melakukan pengulangan sebanyak 1 kali untuk kasus terbaik (value sama dengan
elemen pertama dalam tabel) dan Nmax kali untuk kasus terburuk. Sehingga
algoritma ini mempunyai kompleksitas algoritma O(n).
Proses pencarian data dengan metode ini cukup sederhana dan mudah dipahami. Dalam pencarian ini proses dilakukan dengan cara mencocokan data yang akan dicari dengan semua data yang ada dalam kelompok data. Proses pencarian data dilakukan dengan cara mencocokan data yang akan dicari dengan semua data yang ada dalam kelompok data. Proses pencocokan data dilakukan secara berurut satu demi satu dimulai dari data ke-1 hingga data pada ururtan terakhir. Jika data yang dicari mempunyai harga yang sama dengan data yang ada dalam kelompok data, berarti data telah ditemukan. Tetapi jika data yang dicari tidak ada yang cocok dengan data-data dalam sekelompok data, berarti data tersebut tidak ada dalam sekelompok data. Selanjutnya kita tinggal menampilkan hasil yang diperoleh tersebut.
Ilustrasi Metode Linier Search :
Misalnya terdapat array satu dimensi sebagai berikut:
0 1 2 3 4 5 6 7 index
8
|
10
|
12
|
6
|
7
|
1
|
50
|
100
|
Value
Kemudian program akan meminta
data yang akan dicari, misalnya 6 (x = 6).
Iterasi :
6 = 8 (tidak!)
6 = 10 (tidak!)
6 = 6 (Ya!) => output : “Ada”
pada index ke-2
Jika sampai data terakhir tidak
ditemukan data yang sama maka output : “ data yang dicari tidak ada”.
Best case : jika data yang dicari terletak di
depan sehingga waktu yang dibutuhkan minimal.
Worst case : jika data yang dicari terletak di
akhir sehingga waktu yang dibutuhkan maksimal.
Contoh :
DATA
= 5 6 9 2 8 1 7 4
bestcase
ketika x = 5
worstcase
ketika x = 4
*x
= key/data yang dicari
Contoh Program dalam Bahasa Pemograman Pascal
program search_aditya;
uses crt;
const
nmin = 1;
nmax = 100;
type
arrint = array [nmin..nmax] of integer;
var
x : integer;
tabint : arrint;
n,i : integer;
indeks : integer;
function seqsearch1(xx : integer): integer;
var i : integer;
begin
i := 1;
while ((i xx)) do
i:=i+1;
if tabint[i] = xx then
seqsearch1:=i
else
seqsearch1:=0;
end;
begin
clrscr;
write('input banyaknya index array = '); readln(n);
for i:=1 to n do
begin
write('Tabint[',i,'] = '); readln(tabint[i]);
end;
write('Nilai yang dicari = '); readln(x);
indeks:=seqsearch1(x);
if indeks <> 0 then
write(x,' ditemukan pada indeks ke-',indeks)
else
write(x,' tidak ditemukan');
writeln;
readln;
end.
Tanpilan ketika di jalankan sbb :
Bab 3
Penutup
Kami ucapkan puji syukur kehadirat
Tuhan Yang Maha Esa, karena berkat limpahan rahmat, petunjuk dan karunia-NYA
kami dapat menyelesaikan makalah ini dengan baik.
Kami berharap makalah yang kami susun
dapat bermanfaat bagi kita semua dan
tidak lupa kami mengucapkan terima kasih kepada Ibu Ulfa sebagai Dosen Struktur
Data dan teman-teman S3Q. Kami mohon maaf apabila ada yang tidak berkenan dalam
makalah ini.
3.1 Kesimpulan
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 1 kali yaitu dari index awal (i) sampai dengan jumlah data
terakhir (N). Pada setiap pengulangan,
dibandingkan data ke-i dengan yang dicari (x).
Apabila sama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir pengulangan
tidak ada data yang sama, berarti data tidak ditemukan. Pada kasus yang paling buruk, untuk N elemen
data harus dilakukan pencarian sebanyak N kali pula.
3.2 Saran
Dari hasil Laporan makalah logika dan
algoritma mengenai Searching Linier Sequential maka dapat kami berikan masukan
atau saran – saran sebagai berikut:
Untuk menggunakan program Searching
Linier Sequential sebaiknya mencari indeks array yang terletak didepan atau
pertengahan karena apabila kita mencari data yang terletak dibelakang akan
,membutuhkan waktu yang lama.
Contohnya, untuk mencari data
sebanyak 4.294.967.296 (4 milyar) memiliki rata-rata perbandingan sebanyak 2
milyar, berbeda dengan Algoritma Binary Search yang hanya membutuhkan
perbandingan 32 kali saja
Posting Komentar
Silakan Tinggalkan pesan mengenai Blog ini, Tapi jangan Nyepam ya...Makasi atas Kunjunganya :)