Senin, 04 Januari 2016

Searching

TUGAS KELOMPOK


Searching merupakan proses dasar dalam pengolahan data. Yaitu untuk menemukan nilai tertentu dalam sekumpulan data yang bertipe sama. Algoritma searching dijelaskan secara luas sebagai algoritma yang menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah tersebut.

Beberapa algoritma sorting/pencarian yang akan dipelajari yaitu :
- Sequential Search
- Binary Search

1. Pencarian Beruntun (Sequential Searching)

     Sequential Search merupakan salah satu teknik pencarian data.. Dalam C++ dan Pemrograman lainnya sequential search adalah algoritma pencarian data yang paling umum dipelajari. Selain sequential search masih ada teknik pencarian data lainnya seperti Binary Search.  

Teknik sequential search sangat sederhana dimana data dicari secara berurut (sequential) dari awal sampai akhir. Contoh nyatanya misalkan anda ingin mencari siswa dengan nama Herry di buku absen kelas, tentu anda akan mengurutnya dari awal sampai akhir kan dalam mencarinya.

Kelebihan dari teknik pencarian ini adalah jika data yang dicari terletak didepan, maka data akan ditemukan dengan cepat.

Kekurangannya adalah jika data yang dicari terletak dibelakang atau paling akhir, maka akan membutuhkan waktu yang lama dalam proses pencariannya. Dan apabila jumlah datanya banyak, tentu juga akan membutuh waktu yang lama dan beban yang besar pula.

Algoritma pencarian berurutan dapat dituliskan sebagai berikut :
1 i ← 0
2 ditemukan ← false
3 Selama (tidak ditemukan) dan (i <= N) kerjakan baris 4
4 Jika (Data[i] = x) maka ditemukan ← true, jika tidak i ← i + 1
5 Jika (ditemukan) maka i adalah indeks dari data yang dicari, jika tidak data tidak ditemukan

Contoh program sequential search pada C++
  Contoh
#include <stdio.h>
#include <conio.h>
void main()
{
  int data[8] = {8,10,6,-2,11,7,1,100};
  int cari;
  int flag=0;
  printf(“masukkan data yang ingin dicari = “);scanf(“%d”,&cari);
  for(int i=0;i<8;i++)
 {
   if(data[i] == cari) flag=1;
  }
  if(flag==1) printf(“Data ada!\n”);
  else printf(“Data tidak ada!\n”);
  getch();
  return 1;
}

Dari program di atas, terlihat bahwa dilakukan perulangan untuk mengakses semua elemen array data satu per satu berdasarkan indeksnya.
- Program menggunakan sebuah variable flag yang berguna untuk menandai ada atau tidaknya   data yang dicari dalam array data. Hanya bernilai 1 atau 0.
- Flag pertama kali diinisialisasi dengan nilai 0.
- Jika ditemukan, maka flag akan diset menjadi 1, jika tidak ada maka flag akan tetap bernilai 0.
-Semua elemen array data akan dibandingkan satu per satu dengan data yang dicari dan diinputkan oleh user.

2. Binary Search

1. Teknik pencarian data dengan cara membagi data menjadi dua bagian.
2. Data harus diurutkan terlebih dahulu.
3. Tahapan pencariannya sebagai berikut :
      -Data diambil dari posisi awal (kiri) sampai posisi akhir (kanan)
      -Kemudian cari posisi tengah dengan rumus :
      -Data tengah tersebut kemudian dibandingkan dengan data yang dicari, sbb :
a. Jika tengah = data yang dicari, maka data ketemu.
b. Jika data yang dicari > tengah, maka dilakukan pergeseran variabel
    awal, yaitu awal (kiri) = tengah +1
              c.Jika data yang dicari < tengah , maka dilakukan pergeseran variabel
   akhir, yaitu akhir (kanan) = tengah 1

4.Ilustrasi pencarian data 17, pada array dibawah ini :
 
 
 

cuma source codenya ya guys... selamat mencoba.