Docstoc

Searching dalam Pascal

Document Sample
Searching dalam Pascal Powered By Docstoc
					        PRAKTIKUM
ALGORITMA DAN PEMOGRAMAN II




                 PERTEMUAN IV
                  SEARCHING


          NAMA        : Muhammad Zaien
          NIM         : J1F111016
          ASISTEN I   : Muhammad Shaufi
          ASISTEN II : Oky Rahmanto




       PROGRAM STUDI S-1 ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
       UNIVERSITAS LAMBUNG MANGKURAT
                   BANJARBARU

                        2012
                               PERTEMUAN IV

                                 SEARCHING

1. Tinjauan Pustaka
     Searching adalah sebuah cara atau prosedur untuk mencari suatu nilai tertentu
 dalam sebuah larik data bertipe sama. Metode searching ada bermacam-macam
 antara lain : Sequential search, Binary search, dan lain-lain (Anonim, 2012).
   1. Sequential search
     Proses pencarian dengan metode sequential search adalah dengan melakukan
 perbandingan nilai yang dicari dengan setiap elemen pada array mulai dari indeks
 terkecil sampai indeks terbesar. Pencarian dihentikan jika nilai yang dicari telah
 ditemukan atau semua elemen array sudah diperiksa (Anonim, 2012).
     Ilustrasi Kasus :
     Terdapat sebuah array TabInt yang terdiri dari n=10 elemen
     Isi Tabel | 7 | 5 | 23 | 1 | 15 | 8 | 17 | 75 | 10 | 4 |
     Indeks     1     2   3    4       5   6      7    8       9   10


     Kasus      1 : Misalkan       nilai       yang    dicari      adalah   x      =    7
                    Elemen yang dibandingkan : 7 (ditemukan)                Karena data
                    langsung ditemukan maka pengulangan dihentikan Indeks larik
                    yang dikembalikan : idx = 1
     Kasus      2 : Misalkan       nilai       yang   dicari       adalah   x     =    17
                    Elemen yang dibandingkan : 7, 5, 23, 1, 15, 8, 17 (ditemukan)
                    Setelah     data       ditemukan        pengulangan         dihentikan
                    Indeks larik yang dikembalikan : idx = 7
     Kasus      3 : Misalkan       nilai   yang       dicari       adalah   x     =    25
                    Elemen yang dibandingkan : 7, 5, 23, 1, 15, 8, 17, 75, 10, 4
                    (tidak ditemukan)
     Karena pencarian data sudah mencapai indeks terbesar dan nilai yang dicari
 belum ditemukan maka pencarian dihentikan. Indeks larik yang dikembalikan :
 idx = 0 (Anonim, 2012).
    2. Binary Search
      Binary search adalah algoritma pencarian untuk data yang terurut. Pencarian
  dilakukan dengan cara menebak apakah data yang dicari berada ditengah-tengah
  data, kemudian membandingkan data yang dicari dengan data yang ada ditengah.
  Bila data yang ditengah sama dengan data yang dicari, berarti data ditemukan.
  Namun, bila data yang ditengah lebih besar dari data yang dicari, maka dapat
  dipastikan bahwa data yang dicari kemungkinan berada disebelah kiri dari data
  tengah dan data disebelah kanan data tengah dapat diabai. Upper bound dari
  bagian data kiri yang baru adalah indeks dari data tengah itu sendiri. Sebaliknya,
  bila data yang ditengah lebih kecil dari data yang dicari, maka dapat dipastikan
  bahwa data yang dicari kemungkinan besar berada disebelah kanan dari data
  tengah. Lower bound dari data disebelah kanan dari data tengah adalah indeks dari
  data tengah itu sendiri ditambah 1. Demikian seterusnya (Himessi, 2011).


2. Deskripsi Program
      Ketika program pertama kali dijalankan program akan meminta inputan
  jumlah data, kemudian meminta inputan nama,nim,nilai sebanyak jumlah data
  yang diinputkan. Ketika selesai penginputan data, program akan meminta nilai
  yang ingin dicari, kemudian program akan menjalankan prosedure pencarian,
  kemudian akan menampilkan hasil berdasarkan nilai yang dicari.


3. Source Code
uses crt;
type
    data=record
    nama,nim:string;
    nilai:integer;
    end;
var
   mhs:array [1..10] of data;
   hs:array [1..10] of data;
   a,i,get:byte;
   b:integer;

procedure cari (x:integer);
var
   i:byte;
begin
     get:=0;
     for i:=1 to a do
         begin
              if x=mhs[i].nilai then
                 begin
                       get:=get+1;
                       hs[get]:=mhs[i];
                 end;
         end;
end;
begin
     clrscr;
     write ('Jumlah Data : ');readln (a);
     writeln;
     for i:=1 to a do
         with mhs[i] do
              begin
                    writeln;
                    write ('Nama : ');readln (nama);
                    write ('NIM   : ');readln (nim);
                    write ('Nilai : ');readln (nilai);
              end;
     clrscr;
     write ('Nilai Yang Dicari : ');readln (b);
     cari (b);writeln;
     if get = 0 then writeln ('Nilai Tidak Ditemukan !')
     else
         begin
              for i:=1 to get do
                   with hs[i] do
                        begin
                             writeln;
                             writeln ('Nama   : ',nama);
                             writeln ('NIM    : ',nim);
                             writeln ('Nilai : ',nilai);
                        end;
         end;
     readkey;
end.
4. Alur Program
                                     Begin




                                  Readln (a)




                           Y      For i:=1
                                  to a do


                                         N

                               With mhs[i] do




                               Readln (nama);
                               Readln (nim);
                               Readln (nilai);



                                 Readln (b)



                                   Cari (b)




                                   If get=0         Writeln
                                   then          (‘Nilai Tidak
                                                 Diemukan’);

           For i:=1
           to get do




         With hs[i] do               end



        writeln (nama);
        writeln (nim);
        writeln (nilai);
5. Output
6. Kesimpulan
     Kesimpulan dari hasil praktikum ini adalah sebagai berikut :
        1. Searching adalah prosedur atau cara untuk mencari suatu nilai dalam
            sebuah larik data yang bertipe data sama.
        2. Metode searching ada bermacam-macam, sebagiannya adalah
            Sequential search, dan Binary search.
        3. Sequential search adalah melakukan perbandingan nilai yang dicari
            dengan setiap elemen pada array mulai dari indeks terkecil sampai
            indeks terbesar. Sequential search tidak dipengaruhi oleh urutan data.
        4. Binary search adalah algoritma pencarian untuk data terurut. Pertama
            ia akan mencari di tengah indeks jika nilai yang dicari lebih besar dari
            nilai indeks tengah nya maka ia akan mencari ke bagian kanan dari
            indeks tengah, dan jika lebih kecil maka sebaliknya.
                            DAFTAR PUSTAKA

Anonim. Dunia Informatika - Searching (Pascal). 19 February 2012. http://saga-
      informatika.blogspot.com/2012/02/searching-dalam-pascal.html (diakses
      May 08, 2012).
Himessi, Indra. Binary Search Pada Pascal. 27 April 2011.
      http://indrahimessi.wordpress.com/2011/04/27/binary-search-pada-pascal/
      (diakses May 08, 2012).

				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:264
posted:5/13/2012
language:
pages:8
Description: contain document about programing with pascal