๐ Daftar Isi
Pada artikel ini kita akan membahas tentang pencarian. Proses pencarian adalah proses menemukan data tertentu di dalam sekumpulan data yang bertipe sama. Pada modul, sekumpulan data yang bertipe sama kita akan menggunakan array. Pencarian adalah salah satu hal yang fundamental dalam pemrograman. Jika kita membuka aplikasi pada komputer, fitur yang hampir pasti selalu ada adalah fitur pencarian. Entah itu mencari sebuah kata dalam kumpulan teks, mencari data tertentu pada spreadsheet, mencari mahasiswa dengan nama tertentu pada aplikasi database dan lain sebagainya.
Akan di bahas dua macam pencarian yaitu pencarian sekuensial dan biner. Pada artikel ini akan di bahas terlebih dahulu proses pencarian secara sekuensial.
Pencarian Sekuensial Pada Array Tidak Terurut
Pada pencarian sekuensial pada array yang tidak terurut, proses pencarian adalah proses iterasi yang dimulai dari data indeks pertama pada array sampai data yang dicari ditemukan atau sampai data pada indeks terakhir.
Dari pernyataan di atas, terdapat 2 kondisi dimana proses pencarian berhenti yaitu:
- Jika data yang dicari ditemukan
- Jika sudah sampai di data indeks terakhir.
Berikut adalah fungsi pencarian sekuensial untuk mencari data integer pada array of
integer yang tidak terurut :
Type Larik = array [1..100] of integer;
Function SequentialSearch(A:Larik; N:integer; X:integer) : integer;
Var
i:integer;
Begin
i:=1;
while (i<N) and (A[i] <> X) do
i:= i + 1;
if (A[i] <> X) then SequentialSearch:=0
else SequentialSearch:=i;
End;
dimana i adalah indeks array, N adalah jumlah data, X adalah nilai yang mau dicari. Hasil dari fungsi di atas adalah nomor indeks array dimana data X ditemukan atau 0 jika tidak ada data yang dicari pada array.
Pencarian Sekuensial Pada Array Terurut
Pada pencarian sekuensial pada array yang terurut, proses pencarian adalah proses iterasi yang dimulai dari data indeks pertama pada array sampai data yang dicari ditemukan atau nilai yang dicari sudah melebihi atau kurang dari nilai data pada indeks array yang dikunjungi atau sampai data pada indeks terakhir.
Dari pernyataan di atas, terdapat 3 kondisi dimana proses pencarian berhenti yaitu:
- Jika data yang dicari ditemukan
- Jika nilai data pada indeks array yang sedang dikunjungi sudah melebihi atau kurang dari nilai yang dicari (tergantung array terurut menaik atau menurun).
- Jika sudah sampai di data indeks terakhir.
Berikut adalah fungsi pencarian sekuensial untuk mencari data integer pada array of
integer yang terurut dari kecil ke besar
Type Larik = array [1..100] of integer;
Function Sequentialsearch(A:Larik; N:integer; X:integer):
integer;
Var
i:integer;
Begin
i:=1;
while (i<N) and (A[i] < X) do i:= i + 1;
if (A[i] = X) then Sequentialsearch:=i
else Sequentialsearch:=0;
End;
dimana i adalah indeks array, N adalah jumlah data, X adalah nilai yang mau dicari. Hasil dari fungsi di atas adalah nomor indeks array dimana data X ditemukan atau 0 jika tidak ada data yang dicari pada array.
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Pencarian, daftar lengkapnya adalah sebagai berikut.