Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream.h>
- #include<string.h>
- int main()
- {
- struct DataMhs
- {
- long int nim;
- char nama[50];
- int uts, uas, prak, na;
- };
- int menu, hasil, i, j, BykMhs;
- DataMhs mahasiswa[50];
- DataMhs temp;
- cout<<"Sorting"<<endl;
- cout<<"Banyak mahasiswa : "; cin>>BykMhs;
- //input data
- for(int a=0; a<BykMhs; a++)
- {
- cout<<"Nim : "; cin>>mahasiswa[a].nim;
- cout<<"Nama : "; cin>>mahasiswa[a].nama;
- cout<<"UTS : "; cin>>mahasiswa[a].uts;
- cout<<"UAS : "; cin>>mahasiswa[a].uas;
- cout<<"Praktek : "; cin>>mahasiswa[a].prak;
- hasil = (0.25 * mahasiswa[a].uts) + (0.5 * mahasiswa[a].uas) + (0.25 * mahasiswa[a].prak);
- mahasiswa[a].na=hasil;
- cout<<endl;
- }
- //data sebelum urut
- cout<<"Data yang anda masukkan (belum urut)"<<endl;
- for(int b=0; b<BykMhs; b++)
- {
- cout<<"Nim : "<<mahasiswa[b].nim<<endl
- <<"Nama : "<<mahasiswa[b].nama<<endl
- <<"UTS : "<<mahasiswa[b].uts<<endl
- <<"UAS : "<<mahasiswa[b].uas<<endl
- <<"Praktek : "<<mahasiswa[b].prak<<endl
- <<"Nilai akhir : "<<mahasiswa[b].na<<endl<<endl;
- }
- //menampilkan menu pilihan untuk sorting
- cout<<endl<<"Menu pilihan sorting : "<<endl
- <<"[1] Urut berdasarkan NIM"<<endl
- <<"[2] Urut berdasarkan Nilai Akhir"<<endl
- <<"Silahkan masukkan pilihan anda : "; cin>>menu;
- //sorting
- if(menu==1)
- {
- //sorting (buble sort) berdasarkan nim
- for(i=0; i<BykMhs-1; i++)
- {
- for(j=0; j<BykMhs-1-i; j++)
- {
- if(mahasiswa[j].nim>mahasiswa[j+1].nim)
- {
- //tukar nim
- temp.nim=mahasiswa[j].nim;
- mahasiswa[j].nim=mahasiswa[j+1].nim;
- mahasiswa[j+1].nim=temp.nim;
- //tukar nama
- strcpy(temp.nama, mahasiswa[j].nama);
- strcpy(mahasiswa[j].nama, mahasiswa[j+1].nama);
- strcpy(mahasiswa[j+1].nama, temp.nama);
- //tukar UTS
- temp.uts=mahasiswa[j].uts;
- mahasiswa[j].uts=mahasiswa[j+1].uts;
- mahasiswa[j+1].uts=temp.uts;
- //tukar UAS
- temp.uas=mahasiswa[j].uas;
- mahasiswa[j].uas=mahasiswa[j+1].uas;
- mahasiswa[j+1].uas=temp.uas;
- //tukar Praktek
- temp.prak=mahasiswa[j].prak;
- mahasiswa[j].prak=mahasiswa[j+1].prak;
- mahasiswa[j+1].prak=temp.prak;
- //tukar nilai akhir
- temp.na=mahasiswa[j].na;
- mahasiswa[j].na=mahasiswa[j+1].na;
- mahasiswa[j+1].na=temp.na;
- }
- }
- }
- //data setelah urut
- cout<<"\nData telah urut"<<endl;
- for(int c=0; c<BykMhs; c++)
- {
- cout<<"Nim : "<<mahasiswa[c].nim<<endl
- <<"Nama : "<<mahasiswa[c].nama<<endl
- <<"UTS : "<<mahasiswa[c].uts<<endl
- <<"UAS : "<<mahasiswa[c].uas<<endl
- <<"Praktek : "<<mahasiswa[c].prak<<endl
- <<"Nilai akhir : "<<mahasiswa[c].na<<endl<<endl;
- }
- }else if(menu==2)
- {
- //sorting (buble sort) berdasarkan nilai akhir
- for(i=0; i<BykMhs-1; i++)
- {
- for(j=0; j<BykMhs-1-i; j++)
- {
- if(mahasiswa[j].na>mahasiswa[j+1].na)
- {
- //tukar nim
- temp.nim=mahasiswa[j].nim;
- mahasiswa[j].nim=mahasiswa[j+1].nim;
- mahasiswa[j+1].nim=temp.nim;
- //tukar nama
- strcpy(temp.nama, mahasiswa[j].nama);
- strcpy(mahasiswa[j].nama, mahasiswa[j+1].nama);
- strcpy(mahasiswa[j+1].nama, temp.nama);
- //tukar UTS
- temp.uts=mahasiswa[j].uts;
- mahasiswa[j].uts=mahasiswa[j+1].uts;
- mahasiswa[j+1].uts=temp.uts;
- //tukar UAS
- temp.uas=mahasiswa[j].uas;
- mahasiswa[j].uas=mahasiswa[j+1].uas;
- mahasiswa[j+1].uas=temp.uas;
- //tukar Praktek
- temp.prak=mahasiswa[j].prak;
- mahasiswa[j].prak=mahasiswa[j+1].prak;
- mahasiswa[j+1].prak=temp.prak;
- //tukar nilai akhir
- temp.na=mahasiswa[j].na;
- mahasiswa[j].na=mahasiswa[j+1].na;
- mahasiswa[j+1].na=temp.na;
- }
- }
- }
- //data setelah urut
- cout<<"\nData telah urut"<<endl;
- for(int c=0; c<BykMhs; c++)
- {
- cout<<"Nim : "<<mahasiswa[c].nim<<endl
- <<"Nama : "<<mahasiswa[c].nama<<endl
- <<"UTS : "<<mahasiswa[c].uts<<endl
- <<"UAS : "<<mahasiswa[c].uas<<endl
- <<"Praktek : "<<mahasiswa[c].prak<<endl
- <<"Nilai akhir : "<<mahasiswa[c].na<<endl<<endl;
- }
- }else
- {
- cout<<"Menu yang anda masukkan tidak valid"<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement