Sabtu, 06 Juni 2009

BINARY SEARC PADA ARRAY URUT

/*---- SEARCHING BINARY PADA ARRAY URUT ----*/
#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
}

/*-- By Syfrin s --*/

Artikel Yang Bersangkutan



Template by : kendhin x-template.blogspot.com