BELAJAR ADALAH KENIKMATAN

Searching Binary Pada Array Urut

by e Best Materi , at Saturday, May 22, 2010 , have 1 comment

Pencarian Biner (Binary Search) dilakukan untuk :
  • Memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar ukurannya.
  • Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (berarti ada kemungkinan data tidak ditemukan).
  • Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut, misalkan terurut menaik.


#include <stdio.h>

#include <conio.h>

void main() {
     int i, j, iMin;
   int Tengah, ElmTengah, Tmp;
   int n, dt;
   int Posisi, Ketemu;
   int Arr[50];

   //Aplikasi dimulai
    printf("Inputkan banyak data : ");
   scanf("%i", &n);
   //Input array
   for(i = 0; i < n; i++) {         //Perulangan untuk inputan 
                                               array
        printf("Masukan data ke %i : ", i + 1);
      scanf("%i", &Arr[i]);
   }
   //Lakukan sorting ascending dengan metode bubble
   for(i = 1; i < n; i++) {              //Lakukan perulangan untuk akses array
        for(j = 0; j < n - 1; j++) {       //Lakukan perulangan untuk pencocokan
           if(Arr[j] > Arr[j + 1]) {       //Cocokkan data 1 dengan data yang disebelahnya
              Tmp = Arr[j];                //Tampung array lama
            Arr[j] = Arr[j + 1];         //Ganti yang lama dengan array baru
            Arr[j + 1] = Tmp;            //Array baru ditukar dengan yang lama
         }
      }
   }

   //Proses Pencarian
   printf("\nMasukan data yang dicari : ");
   scanf("%i", &dt);
   //Init Proses Pencarian
   Ketemu = 0;                           //Data belum ditemukan
   Tengah = (n / 2) + 1;                 //Cari titik tengah
   ElmTengah = Arr[Tengah];              //Set elemen tengah
   i = 0;                                //Set index = 0
   //Proses dimulai
   if(dt == ElmTengah) {
       Ketemu = 1;
      Posisi = Tengah;
   } else {
        if(dt < ElmTengah) {
           i = 0;
         while((Ketemu == 0 && i < Tengah) && Arr[i] <= dt) {
                if(Arr[i] == dt) {
                    Ketemu = 1;
               Posisi = i;
            } else {
                 i = i + 1;
            }
         }
      } else {
          i = Tengah + 1;
         while((Ketemu == 0 && i < n) && Arr[i] <= dt) {
             if(Arr[i] == dt) {
                    Ketemu = 1;
               Posisi = i;
            } else {
                 i = i + 1;
            }
         }
      }
   }
   //Tampilkan Hasil
    if(Ketemu == 0) {                     //Jika data tidak ditemukan
        printf("Data tidak ditemukan...\n");
   } else {                              //Jika data ditemukan
      printf("Setelah Pengurutan : \n");
      for(i = 0; i < n; i++) {           //Perulangan untuk tampilan array
            printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
      }
      printf("Data ditemukan pada Posisi %i \n", Posisi + 1);
   }
   getch();                              //Tahan tampilan
}

/*-- AUTHOR BY PYXIS_AMIKOM --*/
e Best Materi
Searching Binary Pada Array Urut - written by e Best Materi , published at Saturday, May 22, 2010, categorized as C++ . And have 1 comment
1 comment Add a comment
Dikata_Blogg
mkasih program by...
whh,.. Aq rg bsa e.. soalny...
^_'
Reply Delete
Cancel Reply
GetID
Theme designed by Damzaky - Published by Proyek-Template
Powered by Blogger