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

Popular posts from this blog

Pemrograman Java : Cara getText dan setText Pada Java GUI

Pada Java GUI untuk mendapatkan text yang user input kamu harus mengambil text dari text area atau bisa juga text field. Untuk melakukannya bisa menggunakan fungsi getText() yang ada pada Java. getText() adalah fungsi yang ada pada Java untuk mengambil teks yang diinput pada form. Lalu untuk memunculkan sebuah teks pada text area atau text field  dapat menggunakan fungsi setText(). Akan diberikan contoh form sebagai berikut untuk lebih memahami penggunaan setText() dan getText() pada Java. Berikut adalah Cara getText dan setText Pada Java GUI : Buatlah form pada JFrame seperti gambar diatas. Caranya hanya tinggal klik kanan pada package yang diinginkan new-->JFrame Form... Lalu buat form seperti berikut: Berikan nama variabel pada text field  sesuai kegunaan. Contohnya text field  jurusan akan diberi nama variabel "jurusan". Caranya klik kanan pada text field yang dikehendaki lalu pilih Change variable name. Ini untuk memudahkan menggunakan va

Pembahasan Dan Contoh Algoritma Array

Array adalah type data yang mengacu sekumpulan elemen  bertipe sama melalui indeks. Memiliki sifat tersusun secara terurut dan memiliki indeks. Contoh :   A : array[1..10] of char  TNamaHari : array[1..7] of string TJumHari : array[1..12] of integer Contoh Pemakaian Array Program NamaHari Kamus TNamaHari :  array[1..7] of string HariKe : integer Algoritma   TNamaHari[1]←”Senin”   TNamaHari[2]←”Selasa”   TNamaHari[3]←”Rabu”   TNamaHari[4]←”Kamis”   TNamaHari[5]←”Jumat”   TNamaHari[6]←”Sabtu”   TNamaHari[7]←”Minggu”   input (HariKe)   output(TNamaHari[HariKe]) Contoh di atas adalah contoh array dengan jumlah indeks 7, dan setiap indeks diisi dengan nama-nama hari. Mengisi array bisa dilakukan dengan membuat sistem/algoritma pengulangan sampai jumlah indeks array yang dibutuhkan atau tersedia. Lalu disetiap pengulangan dimasukan nilai data pada indeks array. Skema Pemrosesan Array Skema pemrosesan array :     Inisialisasi i traversal [1..NMax]  

Bandung : Peta Lokasi Universitas dan Perguruan Tinggi di Bandung

Universitas dan Perguruan Tinggi di Bandung