Contoh Sorting Dengan Menggunakan Bubble Sort + Struct
23/04/2010 3 Komentar
Sebelumnya kita telah membahas secara sederhana penggunakan metode sorting ‘Bubble Sort’. Nah sekarang saya akan memberikan contoh yang lebih kompleks lagi, yaitu mengkombinasikan ‘Bubble Sort’ dengan ‘Struct’.
Seperti apa contoh programnya?
ni saya berikan contoh program yang menggunakan kombinasi ‘Bubble Sort’ dan ‘Struct’
//Sorting Dengan Metode Bubble Sort
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
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 :
Last Comments