Meizano Ardhi M., S.T.
1. Metode Sequential Search
Metode Sequential Search atau disebut pencarian beruntun dapat digunakan untuk melakukan pencarian data baik pada array yang sudah terurut maupun yang belum terurut.
1.1 Pencarian Pada Array Terurut Naik
Sebelum dilakukan pencarian, pada program di bawah ini array diurutkan menaik terlebih dahulu menggunakan metode Insertion Sort.
1.1 Pencarian Pada Array yang terurut naik
Program Pencarian_Sequential_Search; Var I,j,n,dt,temp,ketemu,posisi: integer; Data: array[0..100] of integer; Begin write (‘Banyaknya elemen array = ‘); read(n); for i:=0 to n-1 do Begin write (‘Masukkan data ke-‘,i+1,’ = ‘); read (data[i]); End; {Pengurutan Naik dengan Insertion Sort} For i:=1 to n-1 do Begin temp:=data [i]; j:=i-1; while ((data[j]>=temp) AND (j>0)) do Begin Data [j+1]:=data [j]; J:=j-1; End; If (temp>=data[j] then data [j+1]:=temp Else Begin Data [j+1]:=data [j]; Data [j]:=temp; End; End;
{Pencarian Data} write (‘Data yang dicari = ‘); read (dt); ketemu:=0; {asumsinya data belum ditemukan} I:=0; while ((ketemu=0) AND (i
Tampilan Program:
Banyaknya elemen array = 5 Masukkan data ke-1 = 2 Masukkan data ke-2 = 3 Masukkan data ke-3 = 1 Masukkan data ke-4 = 5 Masukkan data ke-5 = 4 Data yang dicari = 3 Setelah Pengurutan Data ke-1 = 1 Data ke-2 = 2 Data ke-3 = 3 Data ke-4 = 4 Data ke-5 = 5 Data yang dicari terdapat dalam array Data ditemukan pada posisi 3
1.2 Pencarian Pada Array Terurut Turun
Sebelum dilakukan pencarian, pada program di bawah ini array diurutkan menurun terlebih dahulu menggunakan metode Insertion Sort.
1.2 Pencarian Pada Array Terurut Turun
Program Pencarian_Sequential_Search; Var I,j,n,dt,temp,ketemu,posisi: integer; Data: array[0..100] of integer; Begin write (‘Banyaknya elemen array = ‘); read(n); for i:=0 to n-1 do Begin write (‘Masukkan
read (data[i]);
{Pencarian Data} write (‘Data yang dicari = ‘); read (dt); ketemu:=0; {asumsinya data belum ditemukan} I:=0; while ((ketemu=0) AND (i
=dt)) do Begin if (data[i]=dt) then Begin ketemu:=1;
data ke-‘,i+1,’ = ‘);
posisi:=i;
End; {Pengurutan Naik dengan Insertion Sort} For i:=1 to n-1 do Begin temp:=data [i]; j:=i-1; while ((data[j]<=temp) AND (j>0)) do
Begin
Data [j+1]:=data [j];
J:=j-1;
End;
If (temp>=data[j] then data [j+1]:=temp
Else
Begin
Data [j+1]:=data [j];
Data [j]:=temp;
End;
End;
End Else i:=i+1; End; if (ketemu=0) then writeln (‘Data yang dicari tidak terdapat dalam array’) Else Begin writeln (‘Setelah Pengurutan’); for i:=0 to n-1 do Begin Writeln (‘Data ke‘,i+1,’ = ‘,data[i]; End; Writeln(‘Data yang dicari terdapat dalam array’); Writeln(‘Data ditemukan pada posisi ‘,posisi+1); End; End.
Tampilan Program:
Banyaknya elemen array = 5 Masukkan data ke-1 = 2 Masukkan data ke-2 = 3 Masukkan data ke-3 = 1 Masukkan data ke-4 = 5 Masukkan data ke-5 = 4 Data yang dicari = 3 Setelah Pengurutan Data ke-1 = 5 Data ke-2 = 4 Data ke-3 = 3 Data ke-4 = 2 Data ke-5 = 1 Data yang dicari terdapat dalam array Data ditemukan pada posisi 3
2. Metode Binary Search Metode
binary search atau sering pula dinamakan pencarian biner, hanya digunakan untuk pencarian data pada array yang sudah terurut.
Proses Metode Binary Search
Proses yang terjadi pada pencarian dengan metode ini adalah sebagai berikut: Membaca array data. Apabila array belum terurut maka array diurutkan dahulu. Menentukan data yang akan dicari. Menentukan elemen tengah dari array. Jika nilai elemen tengah sama dengan data yang dicari maka pencarian selesai. Jika nilai elemen tengah tidak sama dengan data yang dicari maka:
1. 2. 3. 4. 5. 6. a. b.
Jika nilai elemen tengah lebih besar daripada data yang dicari maka pencarian dilakukan pada setengah array pertama. Jika nilai elemen tengah lebih kecil daripada data yang dicari maka pencarian dilakukan pada setengah array berikutnya.
Pencarian_Binary_Search
Program Pencarian_Binary_Search; Var I,j,indexmin,tengah,eltengah,n,dt,temp,ketemu,posisi: integer; Data: array[0..100] of integer; Begin write (‘Banyaknya elemen array = ‘); read(n); for i:=0 to n-1 do Begin write (‘Masukkan data ke-‘,i+1,’ = ‘); read (data[i]); End; {Pengurutan Naik dengan Insertion Sort} For i:=1 to n-1 do Begin temp:=data [i]; j:=i-1; while ((data[j]>=temp) AND (j>0)) do Begin Data [j+1]:=data [j]; J:=j-1; End; If (temp>=data[j] then data [j+1]:=temp Else Begin Data [j+1]:=data [j]; Data [j]:=temp; End; End; {Pencarian Data} write (‘Data yang dicari = ‘); read (dt); ketemu:=0; {asumsinya data belum ditemukan} tengah:=( n div 2) +1; eltengah:=data[tengah]; i:=0; if (dt=eltengah) then Begin ketemu:=1; posisi:=tengah; End
Else Begin i:=0; while ((ketemu=0) AND (i
Tampilan Program:
Banyaknya elemen array = 5 Masukkan data ke-1 = 2 Masukkan data ke-2 = 3 Masukkan data ke-3 = 1 Masukkan data ke-4 = 5 Masukkan data ke-5 = 4 Data yang dicari = 3 Setelah Pengurutan Data ke-1 = 1 Data ke-2 = 2 Data ke-3 = 3 Data ke-4 = 4 Data ke-5 = 5 Data yang dicari terdapat dalam array Data ditemukan pada posisi 3 Program di atas data yang disimpan dalam array diurutkan secara menaik menggunakan metode Insertion Sort, sama halnya bila diurutkan menurun.