Skip to main content

Pembahasan Dan Contoh Algoritma Pencarian | Algoritma Searching

Pencarian dalam konteks pemrograman adalah proses mencari sebuah data dengan kriteria tertentu. Konsep dasar dari algoritma pencarian mempunyai alur sebagai berikut:
Proses searching :
  1. Sistem menerima suatu nilai yang dicari
  2. Jika nilai ditemukan, menampilkan data yang bersangkutan
  3. Jika nilai tidak ditemukan, menampilkan pesan data tidak ditemukan

Metoda Pencarian :

  • Pencarian berturutan (sequential search)
    • Skema dengan boolean
    • Skema tanpa boolean
  • Pencarian sequential pada tabel terurut
  • Pencarian sequential dengan sentinel
  • Binary Search
    • Mulai dari posisi tengah
    • (tabel harus terurut membesar)

Pembahasan Algoritma


Deklarasi Tabel
   Kamus
   Constant NMax = 100
   Type Tabint : array[1..NMax] of integer
   T : Tabint {tabel integer}
   N : integer {banyaknya elemen tabel T yang sudah terdefinisi}

Pencarian Sequential
Pembahasan Dan Contoh Algoritma Pencarian Sequential
Kasus 1 untuk X = 42
  • Diperiksa terhadap {20,15,45,90,76,36,42}
  • Ditemukan pada indeks ke 7
  • Pencarian dihentikan pada indeks i=7
Kasus 2 untuk X = 58
  • Diperiksa terhadap  {20,15,45,90,76,36,42,67,88,23}
  • Pencarian dihentikan pada indeks i=11

Algoritma Pencarian Sequential skema dengan boolean

Procedure SeqSearch1
                       (input T:Tabint, N:integer, X:integer output IX : integer; Found : boolean)
Kamus i:integer
Algoritma
     i ← 1 ; Found ← false
     while (i≤N) and (not Found) do
           if (T[i] = X) then
               Found ← true
           else i ← i+1
           endif
endwhile
{(i>N) or (Found) }
if (Found)
then IX ← i
else IX ← 0
endif

Contoh Program

Program Cari
Kamus
     {deklarasi tabel T}
      x : integer
      procedure SeqSearch(input T:Tabint, N:integer, X:integer, output IX : integer, Found : boolean)
      procedure IsiTabel(output T:Tabint,N:integer)
Algoritma
     IsiTabel(T,N)
     input(X)
     SeqSearch(T,N,X,IN,Found)
     if (Found) then
          output (“X ada di indeks ke “,IN)
     else output (“X tidak ada”)
     endif

Pencarian Sequential skema tanpa boolean

Procedure SeqSearch2
     (input T:Tabint, N:integer, X:integer 
     output IX : integer)
Kamus i:integer
Algoritma
     i ← 1
     while (i < N) and (T[i] ≠ X) do
                   i ← i+1
     endwhile
     {(i >= N) or (T[i] = X) }
     if (T[i]=X)
     then IX ← i
     else IX ← 0
     endif


Pencarian Sequential pada tabel terurut

Procedure SeqSearchSorted
     (input T:Tabint, N:integer, X:integer
     output IX : integer)
Kamus i:integer
Algoritma
     i ← 1
     while (i < N) and (T[i] < X) do
                  i ← i+1
     endwhile
     {(i >= N) or (T[i] >= X) }
     if (T[i]=X)
     then IX ← i
     else IX ← 0
     endif

Pencarian Sequential dengan sentinel

Procedure SeqSearchSentinel
     (input T:Tabint, N:integer, X:integer
     output IX : integer)
Kamus i:integer
Algoritma
     T[N+1] = X {pasang sentinel}
     i ← 1
     while (T[i] ≠ X) do
                  i ← i+1
     endwhile
     {(T[i] = X) }
     if (i<N+1)
     then IX ← i
     else IX ← 0
     endif

Binary Search

Procedure BinSearch
     (input T:Tabint, N:integer, X:integer
     output IX : integer)
Kamus Atas,Bawah,Tengah:integer
                Found : boolean
Algoritma
     Atas←1; Bawah←N; Found←false; IX ← 0
     while (Atas <= Bawah)and(not Found) do
                  Tengah ← (Atas+Bawah) div 2
                 if(X=T[Tengah])
                 then Found←true;IX←Tengah
                 else if(X<T[Tengah])
                          then Bawah←Tengah-1
                          else Atas←Tengah+1
                          endif
                 endif
endwhile
{(Atas > Bawah)or Found }


Demikian artikel Pembahasan Dan Contoh Algoritma Pencarian.

Dan seperti biasa, terima kasih:)

Comments