#include<iostream.h>
#include<string.h>
int main()
{
struct DataMtr
{
char pabrik[40],merk[40];
int cc;
long int harga;
};
int menu, i, j, BykMtr;
DataMtr motor[40];
DataMtr temp;
cout<<”Sorting”<<endl;
cout<<”Banyak motor : “; cin>>BykMtr;
//input data
for(int a=0; a<BykMtr; a++)
{
cout<<”Pabrik : “; cin>>motor[a].pabrik;
cout<<”Merk : “; cin>>motor[a].merk;
cout<<”CC : “; cin>>motor[a].cc;
cout<<”Harga : “; cin>>motor[a].harga;
cout<<endl;
}
//data sebelum urut
cout<<”Data yang anda masukkan (belum urut)”<<endl;
for(int b=0; b<BykMtr; b++)
{
cout<<”Pabrik : “<<motor[b].pabrik<<endl
<<”Merk : “<<motor[b].merk<<endl
<<”CC :”<<motor[b].cc<<endl
<<”Harga : “<<motor[b].harga<<endl<<endl;
}
//menampilkan menu pilihan untuk sorting
cout<<endl<<”Menu pilihan sorting : “<<endl
<<”[1] Ascending”<<endl
<<”[2] Descending”<<endl
<<”Silahkan masukkan pilihan anda : “; cin>>menu;
//sorting
if(menu==1)
{
//sorting (buble sort) berdasarkan cc
for(i=0; i<BykMtr-1; i++)
{
for(j=0; j<BykMtr-1-i; j++)
{
if(motor[j].cc>motor[j+1].cc)
{
//tukar pabrik
strcpy(temp.pabrik, motor[j].pabrik);
strcpy(motor[j].pabrik, motor[j+1].pabrik);
strcpy(motor[j+1].pabrik, temp.pabrik);
//tukar merk
strcpy(temp.merk, motor[j].merk);
strcpy(motor[j].merk, motor[j+1].merk);
strcpy(motor[j+1].merk, temp.merk);
//tukar cc
temp.cc=motor[j].cc;
motor[j].cc=motor[j+1].cc;
motor[j+1].cc=temp.cc;
//tukar harga
temp.harga=motor[j].harga;
motor[j].harga=motor[j+1].harga;
motor[j+1].harga=temp.harga;
}
}
}
//data setelah urut
cout<<”\nData telah urut”<<endl;
for(int c=0; c<BykMtr; c++)
{
cout<<”Pabrik : “<<motor[c].pabrik<<endl
<<”Merk : “<<motor[c].merk<<endl
<<”CC : “<<motor[c].cc<<endl
<<”Harga : “<<motor[c].harga<<endl<<endl;
}
}else if(menu==2)
{
//sorting (buble sort) secara descending
for(i=0; i<BykMtr; i++)
{
for(j=0; j<BykMtr; j++)
{
if(motor[j].cc<motor[j+1].cc)
{
//tukar pabrik
strcpy(temp.pabrik, motor[j].pabrik);
strcpy(motor[j].pabrik, motor[j+1].pabrik);
strcpy(motor[j+1].pabrik, temp.pabrik);
//tukar merk
strcpy(temp.merk, motor[j].merk);
strcpy(motor[j].merk, motor[j+1].merk);
strcpy(motor[j+1].merk, temp.merk);
//tukar cc
temp.cc=motor[j].cc;
motor[j].cc=motor[j+1].cc;
motor[j+1].cc=temp.cc;
//tukar harga
temp.harga=motor[j].harga;
motor[j].harga=motor[j+1].harga;
motor[j+1].harga=temp.harga;
}
}
}
//data setelah urut
cout<<”\nData telah urut}”<<endl;
for(int c=0; c<BykMtr; c++)
{
cout<<”Pabrik : “<<motor[c].pabrik<<endl
<<”Merk : “<<motor[c].merk<<endl
<<”CC : “<<motor[c].cc<<endl
<<”Harga : “<<motor[c].harga<<endl<<endl;
}
}else
{
cout<<”Menu yang anda masukkan tidak valid”<<endl;
}
return 0;
}