#include<stdio.h>
#include<conio.h>
int kode[10]={525,838,727,494,949,616,383,272,505,161};
char nama[10][50]={"buku1","buku2 ","buku3","buku4","buku5","buku6","buku7","buku8","buku9","buku10"};
int kode1[]={525,838,727,494,949};
int kode2[]={616,383,272,505,161};
void bubble(int kode[10]){
int temp, i,j;
printf("\n\tBubble Sort\n");
for (i=10-1;i>0;i--){
for (j=0;j<i;j++){
if(kode[j]>kode[j+1]){
temp=kode[j];
kode[j]=kode[j+1];
kode[j+1]=temp;
}
}
}
printf("\nSetelah diurutkan:\n ");
for (i=0;i<10;i++){
printf("Kode |%d| = Buku %s\n",kode[i],nama[i]);
}
}
void merge(int kode1[5], int kode2[5]){
int i, j, k, temp;
printf("\n");
printf("\tMerge Sort\n");
printf("\nArray Pertama: \n");
for ( i = 0 ; i <= 4 ; i++ )
{
printf("Kode |%d| = Buku %s\n",kode1[i],nama[i]);
}
printf("\nArray Kedua: \n");
for ( i = 0 ; i <= 4 ; i++ )
{
printf("Kode |%d| = Buku %s\n",kode2[i],nama[i]);
}
for ( i = 0 ; i <= 3 ; i++ )
{
for ( j = i + 1 ; j <= 4 ; j++ )
{
if( kode1[i] > kode1[j])
{
temp = kode1[i];
kode1[i] = kode1[j];
kode1[j] = temp;
}
if( kode2[i] > kode2[j])
{
temp = kode2[i];
kode2[i] = kode2[j];
kode2[j] = temp;
}
}
}
for ( i = j = k = 0 ; i <= 9 ; )
{
if ( kode1[j] <= kode2[k] )
kode[i++] = kode1[j++];
else
kode[i++] = kode2[k++];
if ( j == 5 || k == 5 )
break;
}
for ( ; j <= 4 ; )
kode[i++] = kode1[j++];
for ( ; k <= 4 ; )
kode[i++] = kode2[k++];
printf("\nSetelah diurutkan:\n ");
for ( i = 0 ; i <= 9 ; i++ )
printf("Kode |%d| = Buku %s\n",kode[i],nama[i]);
}
void quick(int kode[10], int awal, int akhir){
int pivot,j,temp,i;
if(awal<akhir){
pivot=awal;
i=awal;
j=akhir;
while(i<j){
while(kode[i]<=kode[pivot]&&i<akhir)
i++;
while(kode[j]>kode[pivot])
j--;
if(i<j){
temp=kode[i];
kode[i]=kode[j];
kode[j]=temp;
}
}
temp=kode[pivot];
kode[pivot]=kode[j];
kode[j]=temp;
quick(kode,awal,j-1);
quick(kode,j+1,akhir);
}
}
void selection(int kode[10]){
int i,j,small,swap;
printf("\n\tSelection Sort\n");
for(i=0;i<10-1;i++){
small=i;
for(j=i+1;j<10;j++){
if(kode[small]>kode[j]){
small=j;
}
}
swap=kode[small];
kode[small]=kode[i];
kode[i]=swap;
}
printf("\nSetelah diurutkan:\n ");
for (i=0;i<10;i++){
printf("Kode |%d| = Buku %s\n",kode[i],nama[i]);
}
}
void insertion(int kode[10]){
int i,K,temp;
printf("\n\tInsertion Sort\n");
for(i=1;i<10;i++){
temp = kode[i];
K = i-1;
while(temp<=kode[K]&&K>0){
kode[K+1]=kode[K];
K=K-1;}
if(temp>kode[K]){
kode[K+1]=temp;}
else{
kode[K+1]=kode[K];
kode[K]=temp;}
}
printf("\nSetelah diurutkan:\n ");
for (i=0;i<10;i++){
printf("Kode |%d| = Buku %s\n",kode[i],nama[i]);
}
}
void proses1(int kode[10]){
int x,i,w,y,z;
printf("\t\nDaftar Nama dan Kode Buku Sebelum diururtkan\n");
for(i=0;i<10;i++){
printf("Kode |%d| = Buku %s\n",kode[i],nama[i]);
}
printf("\nMasukkan Kode Buku yang dicari: ");scanf("%d",&x);
y=0;
z=10;
while(y<=z){
w=(y+z)/2;
if (x==kode[w]){
break;
}
else{
if(x<kode[w]){
z=w-1;
}
else
{
y=w+1;
}
}
}
if(y<=z){
printf("\nNama Buku = %s\n",nama[w]);
}
else{
printf("\nMaaf, Kode Buku yang Anda Masukkan Salah");
}
}
void main(){
int nomor;
int i;
printf("\tMENU\n");
printf("1. Bubble Sort \n");
printf("2. Merge Sort\n");
printf("3. Quick Sort\n");
printf("4. Selection Sort\n");
printf("5. Insertion Sort\n");
printf("Masukkan pilihan (1-5)?"); scanf("%d",&nomor);
switch(nomor){
case 1:{
bubble(kode);
break;
}
case 2:{
merge(kode1, kode2);
break;
}
case 3:{ printf("\n\tQuick Sort\n");
quick(kode,0,9);
printf("\nSetelah diurutkan:\n ");
for (i=0;i<10;i++){
printf("Kode |%d| = Buku %s\n",kode[i],nama[i]);
}
break;
}
case 4:{
selection(kode);
break;
}
case 5:{
insertion(kode);
break;
}
case 6:{
printf("angka yang dimasukkan salah");
break;
}
}
proses1(kode);
getch();
}
0 Response to "program pecarian buku dengan c/c++"
Post a Comment