Source Code
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
int main() {
const int MAXDATA = 500;
//deklarasi variabel
int data[MAXDATA], urutan, i, j, jmlData, jmlKetemu, cari, tukar, l, m;
int top, bottom, middle, ketemu;
char lagi='Y';
while (lagi=='Y' || lagi=='y') {
printf("Berapa jumlah data ? "); scanf("%i",&jmlData);
//proses pembangkitan data random
srand (time(NULL));
//randomize();
for (i=0; i<jmlData; i++) {
ketemu = 1;
while (ketemu==1) {
ketemu = 0;
data[i] = rand() % 1234 + 50;
for (m=0; m<i; m++) {
if (data[i] == data[m]) {
ketemu = 1;
}
}
}
}
//proses pengurutan data dengan Bubble Sort
l = jmlData - 1;
for (i = l - 1; i>=0; i--) {
for (j=0; j <= i; j++) {
if (data[j] > data[j+1]) {
tukar = data[j];
data[j] = data[j+1];
data[j+1] = tukar;
}
}
}
for(i=0;i<jmlData;i++) {
printf("%3d. %4d ", i+1, data[i]);
}
//memasukkan data yang akan dicari ke dalam cari
printf("\nMasukkan data yang akan anda cari: "); scanf("%d",&cari);
//proses pencarian data
jmlKetemu = 0;
top = jmlData;
bottom = 0;
while (top>=bottom) {
middle = (top + bottom) / 2;
if (data[middle] == cari) {
urutan = middle;
jmlKetemu++;
}
if(data[middle]<cari) {
bottom=middle+1;
} else {
top=middle-1;
}
}
if (jmlKetemu>0) {
printf("Data %i yang dicari terdapat dalam urutan ke-%i", cari, urutan+1);
} else {
printf("Data tidak ditemukan dalam array\n");
}
printf("\nIngin mencari lagi [Y/T][ ]\b\b");
char tekan=' ';
while (!(tekan=='Y' || tekan=='y' || tekan=='T' || tekan=='t')) {
tekan = getch();
}
putchar(tekan);
lagi = tekan;
putchar('\n');
}
}
Tidak ada komentar:
Posting Komentar