Contoh Sorting Dengan Menggunakan Bubble Sort + Struct
#include
#include
#include
#include
main()
{
struct mhs {
int nrp;
char nama[30];
int uts, uas, praktek, na;
};
struct mhs data_mhs[5];
struct mhs temp;
int a, b, c, d, x, y;
char lihat, e;
cout << "Data Nilai Mahasiswa Matakuliah AP2"<<endl;
cout << "==================================="<<endl;
cout << "Masukkan Jumlah Data Mahasiswa yang Akan di Input: ";
cin >> c;
clrscr();
cout << "Inputkan Data Mahasiswa!\n"<<endl;
for (a=0;a<c;a++)
{
cout << "No ["<<a+1<<"]"<<endl;
cout << "NRP\t\t: ";
cin >> data_mhs[a].nrp;
cout << "Nama\t\t: ";
gets (data_mhs[a].nama);
cout << "Nilai UTS\t: ";
cin >> data_mhs[a].uts;
cout << "Nilai UAS\t: ";
cin >> data_mhs[a].uas;
cout << "Nilai Praktek\t: ";
cin >> data_mhs[a].praktek;
data_mhs[a].na=((25*data_mhs[a].uts)+(50*data_mhs[a].uas)+(25*data_mhs[a].praktek))/100;
cout << "Nilai Akhir\t: "<<data_mhs[a].na;
cout << "\n\n";
}
clrscr();
lihat:
cout << "Lihat Data:\n";
cout << "[1] Belum Terurut\n";
cout << "[2] Berdasarkan Urutan NRP\n";
cout << "[3] Berdasarkan Urutan Nilai Akhir\n";
cout << "Masukan Pilihan: ";
cin >> lihat;
if (lihat==’1′)
{
clrscr();
for (a=0;a<c;a++)
{
cout << "NRP\t\t: "<<data_mhs[a].nrp<<endl;
cout << "Nama\t\t: "<<data_mhs[a].nama<<endl;
cout << "Nilai UTS\t: "<<data_mhs[a].uts<<endl;
cout << "Nilai UAS\t: "<<data_mhs[a].uas<<endl;
cout << "Nilai Praktek\t: "<<data_mhs[a].praktek<<endl;
cout << "Nilai Akhir\t: "<<data_mhs[a].na;
cout << "\n\n";
}
lagi:
cout << "Lihat Lagi [Y/N]: ";
cin >> e;
if (e==’Y’||e==’y’)
{
clrscr();
goto lihat;
}else if (e==’N’||e==’n’)
{
clrscr();
cout << "SELESAI";
}else{
clrscr();
cout << "Kode Salah!!!";
goto lagi;
}
}else if (lihat==’2′)
{
clrscr();
for (a=1;a<c;a++)
{
for (b=0; b<c-a; b++)
if (data_mhs[b].nrp>data_mhs[b+1].nrp)
{
temp.nrp=data_mhs[b].nrp;
data_mhs[b].nrp=data_mhs[b+1].nrp;
data_mhs[b+1].nrp=temp.nrp;
strcpy(temp.nama, data_mhs[b].nama);
strcpy(data_mhs[b].nama, data_mhs[b+1].nama);
strcpy(data_mhs[b+1].nama, temp.nama);
temp.uts=data_mhs[b].uts;
data_mhs[b].uts=data_mhs[b+1].uts;
data_mhs[b+1].uts=temp.uts;
temp.uas=data_mhs[b].uas;
data_mhs[b].uas=data_mhs[b+1].uas;
data_mhs[b+1].uas=temp.uas;
temp.praktek=data_mhs[b].praktek;
data_mhs[b].praktek=data_mhs[b+1].praktek;
data_mhs[b+1].praktek=temp.praktek;
temp.na=data_mhs[b].na;
data_mhs[b].na=data_mhs[b+1].na;
data_mhs[b+1].na=temp.na;
}
for (a=0;a<c;a++)
{
cout << "NRP\t\t: "<<data_mhs[a].nrp<<endl;
cout << "Nama\t\t: "<<data_mhs[a].nama<<endl;
cout << "Nilai UTS\t: "<<data_mhs[a].uts<<endl;
cout << "Nilai UAS\t: "<<data_mhs[a].uas<<endl;
cout << "Nilai Praktek\t: "<<data_mhs[a].praktek<<endl;
cout << "Nilai Akhir\t: "<<data_mhs[a].na;
cout << "\n\n";
}
}
goto lagi;
}else if (lihat==’3′)
{
clrscr();
for (a=1;a<c;a++)
{
for (b=0; b<c-a; b++)
if (data_mhs[b].na<data_mhs[b+1].na)
{
temp.nrp=data_mhs[b].nrp;
data_mhs[b].nrp=data_mhs[b+1].nrp;
data_mhs[b+1].nrp=temp.nrp;
strcpy(temp.nama, data_mhs[b].nama);
strcpy(data_mhs[b].nama, data_mhs[b+1].nama);
strcpy(data_mhs[b+1].nama, temp.nama);
temp.uts=data_mhs[b].uts;
data_mhs[b].uts=data_mhs[b+1].uts;
data_mhs[b+1].uts=temp.uts;
temp.uas=data_mhs[b].uas;
data_mhs[b].uas=data_mhs[b+1].uas;
data_mhs[b+1].uas=temp.uas;
temp.praktek=data_mhs[b].praktek;
data_mhs[b].praktek=data_mhs[b+1].praktek;
data_mhs[b+1].praktek=temp.praktek;
temp.na=data_mhs[b].na;
data_mhs[b].na=data_mhs[b+1].na;
data_mhs[b+1].na=temp.na;
}
for (a=0;a<c;a++)
{
cout << "Nilai Akhir\t: "<<data_mhs[a].na<<endl;
cout << "NRP\t\t: "<<data_mhs[a].nrp<<endl;
cout << "Nama\t\t: "<<data_mhs[a].nama<<endl;
cout << "Nilai UTS\t: "<<data_mhs[a].uts<<endl;
cout << "Nilai UAS\t: "<<data_mhs[a].uas<<endl;
cout << "Nilai Praktek\t: "<<data_mhs[a].praktek<<endl;
cout << "\n\n";
}
}
goto lagi;
}else{
clrscr();
cout << "Kode Salah!!!"<<endl;
goto lihat;
}
}
Dan hasil outputnya akan seperti ini ;
Di sini saya mengambil contoh jumlah data mahasiswa yang akan diinputkan adalah sebanyak 2 buah.
Maka tampilan berikutnya adalah seperti ini :
SELAMAT MENCOBA !!!