program pecarian buku dengan c/c++



#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