Senin, 09 Mei 2011

PROGRAM PENCARIAN (SEARCHING)…!!!!!!!!

Oke…..!!! pada pembahasan kali ini, kita akan membahas tentang materi  pencarian (searching).



Pencarian (Searching) adalah proses pencarian nilai dari sebuah larik dengan membandingkan tiap-tiap elemennya berdasarkan algoritma pencarian yang digunakan.
Pencarian (Searching) terbagi atas :
1.    Sequential search/ pencarian berurutan.
Algoritma pencarian ini yaitu membandingkan nilai yang dicari (didefenisikan) dengan setiap elemen array, mulai indeks terkecil sampai indeks terbesar yang terdefenisi. Sebagai contoh bila di indeks array ditentukan dari sebuah variabel n=8  dan tab array berisi (1,2,3,10,12,70, 42, 30) sedang nilai yang dicari adalah x=10, maka pencarian akan dihentikan pada (1,2,3,10) dan tidak perlu sampai pada tab array yang paling terakhir oleh karena nilai yang dicari telah ditemukan.  Yakni x=10 ditemukan pada indeks ke-4.

2.    Binary search.
Algoritma ini juga disebut dengan dikotomik ide dasarnya adalah membandingkan harga x, dengan elemen tengah array, jika lebih besar dari elemen tengah array, karena elemen-elemen terurut membesar, maka pencarian dilakukan pada setengah bagian yang nilainya lebih besar dari x sampai elemen terakhir. Sebagai contoh :
Diketahui sebuah tabel berisi harga integer, tabInt[1..n], yang telah terisi, dan terurut membesar , tulisakan program dengan bantuan fungsi yang jka diberikan sebuah x berniali integer , maka akan dicari apakah harga x ada dalam tabint secara dikotomik, dengan aturan sbb:
Bandingkan x dengan harga elemen tengah :
1.    Jika sama berarti x ditemukan dalam tabel
2.    Jika x
3.    Jika x > tengah, pencarian dilakukan pada elemen bagian atas dengan cara yang sama

3.    Mencari nilai ekstrim.
mencari nilai ekstrim (terbesar atau terkecil) adalah  contoh dari proses sequential terhadap array selain beberapa contoh pencarian diatas, ide dasar algoritma mencari nilai ekstrim adalah dengan membandingkan nilai elemen pertama array (diasumsikan sebagai nilai ekstrim) dengan nilai elemen-elemen sesudahnya.

Contoh program yang dapat kita kerjakan yaitu sebagai berikut :
Listing :
program Search;
uses crt;
const
    nmin= 1;
    nmax= 100;
type
    arrint = array [nmin..nmax] of integer;
var
    x,i,n,nn: integer;
    pil,indeks,maks: integer;
    tabint: arrint;
    ulang: char;

procedure Sequential_search1;
function seqsearch1(xx : integer):integer;
var
    i : integer;
begin
    i:= 1;
    while ((i<> xx)) do
      i:= i + 1;
      if tabint[i] = xx then
        seqsearch1:= i
        else
        seqsearch1:= 0;
end;
begin
    writeln('=**PROGRAM SEQUENTIAL SEARCH 1**=');
    write('Input Nilai n = '); readln(n);
    for i:= 1 to n do
      begin
        write('Tabint[',i,'] = '); readln(tabint[i]);
      end;
    write('Nilai yang di cari = ');readln(x);
    indeks:=seqsearch1 (x);
    if indeks <> 0 then
      write(x, ' Ditemukan pada indeks ke-', indeks)
      else
      write(x, ' tidak ditemukan');
end;

procedure Sequential_search2;
function seqsearch2(xx : integer):integer;
var
    i: integer;
    ditemukan: boolean;
begin
ditemukan := false;
  i := 1;
  while ((i
    if tabint[i] = xx then
      ditemukan := true
      else
      i := i + 1;
    if ditemukan = true then
      seqsearch2 := i
      else
      seqsearch2 := 0;
end;
begin
    writeln('=**PROGRAM SEQUENTIAL SEARCH 2**=');
    write('Input Nilai n = '); readln(n);
    for i:= 1 to n do
      begin
        write('Tabint[',i,'] = '); readln(tabint[i]);
      end;
    write('Nilai yang di cari = ');readln(x);
    indeks:=seqsearch2 (x);
    if indeks <> 0 then
      write(x, ' Ditemukan pada indeks ke-', indeks)
      else
      write(x, ' tidak ditemukan');
end;

procedure seq_search;
var
    L: array [1..5] of integer;
    bil,i: integer;
begin
    writeln('=**PROGRAM SEQUENTIAL SEARCH**=');
    write('Angka yang dicari = ');readln(bil);
    L[1]:=1; L[2]:=3; L[3]:=5; L[4]:=7; L[5]:=9;

Tidak ada komentar:

Posting Komentar