0% menganggap dokumen ini bermanfaat (0 suara)
45 tayangan6 halaman

Modul 13 Pencarian

Modul ini membahas tentang pencarian data pada array dengan menggunakan dua algoritma, yaitu pencarian sekuensial dan biner. Pencarian sekuensial dilakukan dengan menelusuri seluruh elemen array secara berurutan, sedangkan pencarian biner memanfaatkan sifat terurutnya array untuk mempercepat proses pencarian. Modul ini juga menyertakan contoh kode program lengkap untuk kedua algoritma pencarian tersebut.

Diunggah oleh

Hanna Sajidha
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
45 tayangan6 halaman

Modul 13 Pencarian

Modul ini membahas tentang pencarian data pada array dengan menggunakan dua algoritma, yaitu pencarian sekuensial dan biner. Pencarian sekuensial dilakukan dengan menelusuri seluruh elemen array secara berurutan, sedangkan pencarian biner memanfaatkan sifat terurutnya array untuk mempercepat proses pencarian. Modul ini juga menyertakan contoh kode program lengkap untuk kedua algoritma pencarian tersebut.

Diunggah oleh

Hanna Sajidha
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 6

MODUL 13 PENCARIAN

1. Deskripsi Singkat
Istilah pencarian yang dibahas pada modul ini terbatas pada definisi menemukan
suatu data dengan nilai tertentu pada sekumpulan data yang bertipe sama. Pada
modul 13 ini akan dibahas tentang pencarian, algoritma pencarian, dan juga
penggunaannya dalam program.

2. Tujuan Praktikum
Setelah praktikum pada modul 13 ini diharapkan:

1. mahasiswa memahami dan menguasai konsep pencarian sekuensial dan


pencarian biner
2. mahasiswa menguasai teknik pencarian secara sekuensial dan biner

3. Material Praktikum
Kegiatan pada modul 13 ini memerlukan material berupa program Pascal

4. Kegiatan Praktikum
Pada modul 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.
Pada modul praktikum ini akan dibahas 2 metode pencarian dasar yaitu pencarian
sekuensial dan pencarian biner.
A. 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:
1. Jika data yang dicari ditemukan
2. Jika sudah sampai di data indeks terakhir.
Berikut adalah fungsi pencarian sekuensial untuk mencari data integer pada array of
integer yang tidak terurut

1
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.
B. 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:
1. Jika data yang dicari ditemukan
2. Jika nilai data pada indeks array yang sedang dikunjungi sudah melebihi atau
kurang dari nilai yang dicari (tergantung array terurut menaik atau menurun).
3. 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;

2
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.
C. Pencarian Biner
Pencarian biner atau pencarian bagi dua hanya bisa dilakukan pada array yang
terurut. Performa dari pencarian biner jauh lebih cepat dibandingkan pencarian
sekuensial. Fungsi pencarian biner dapat dinyatakan sebagai fungsi rekursif atau
iterative. berikut ini adalah fungsi pencarian biner secara iteratif
Function BinarySearch(A:larik; N: Integer; X:Integer):
integer;
var
low, mid, high: integer;
begin
low := 1;
high := N;
while (low <= high) do
begin
mid := (low + high) div 2;
if (A[mid] > X) then high := mid – 1
else if (A[mid] < X) then low := mid + 1
else break;
end;
if A[mid] = X then BinarySearch:= mid {ditemukan}
else BinarySearch := 0; {tidak ditemukan}
end;
dimana X adalah nilai yang hendak dicari, low adalah indeks array sebelah kiri, high
adalah indeks array sebelah kanan, dan mid adalah indeks array tengah.
Berikut adalah contoh listing program lengkapnya:

3
program Pencarian;
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;

Function Sequentialsearch2(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 Sequentialsearch2:=i
else Sequentialsearch2:=0;
End;

Function BinarySearch(A:larik; N: Integer; X:Integer):


integer;
var
low, mid, high: integer;
begin
low := 1;
high := N;

4
while (low <= high) do
begin
mid := (low + high) div 2;
if(A[mid] > X) then high := mid - 1
else if(A[mid] < X) then low := mid + 1
else break;
end;
if A[mid] = X then BinarySearch:= mid {ditemukan}
else BinarySearch := 0; {tidak ditemukan}
end;
var
A: larik;
i,n,x : integer;
begin
n:=10;
x:=500;
for i :=1 to n do A[i]:= i*100;
writeln(SequentialSearch(A,n,x));
writeln(SequentialSearch2(A,n,x));
writeln(BinarySearch(A,n,x));
end.

5. Penugasan
1) Ubahlah fungsi pencarian biner di atas menjadi fungsi rekursi.
2) Melanjutkan program yang telah dikerjakan pada penugasan modul 11,
tambahkan menu untuk mencari mahasiswa berdasarkan nama untuk
kemudian menampilkan nilai alpronya
Selamat Datang di Program entri mahasiswa
1. Input Data
2. Tampilkan Data
3. Nilai Alpro Terbesar

5
4. Nilai Alpro Terkecil
5. Rata-rata Nilai Alpro
6. Cari Nilai Mahasiswa
7. Keluar
Pilihan Anda (1-7):
Jika pengguna memilih nomor 6 maka akan muncul permintaan nama mahasiswa:
6. Cari Nilai Mahasiswa
Masukkan nama mahasiswa: Panji
Data Ditemukan! Nilai Alpro Panji = 90

Atau jika data tidak ditemukan maka


6. Cari Nilai Mahasiswa
Masukkan nama mahasiswa: Andi
Data Tidak Ditemukan!
Menu pencarian dapat menggunakan pencarian sekuensial maupun biner.

Anda mungkin juga menyukai