bubble short di c++ beserta cooding program

sekedar pencerahan saja bagi anda yang masih binggung bagaimana output sebuah program buble sort itu,,

bubble sort adalah tehnik sort yang bekerja menggunakan prinsip gelembung(bubble) udara yang akan bergeraknaik ke atas secara satu persatu.dan prinsip kerja bubble sort adalah sebagai berikut.

  1. pengecekan di mulai dari data ke 1 sampai data ke-n
  2. pembandingan data ke-n dari data sebelumnya(-n)
  3. jika lebih kecil maka pindahkan bilangan tersebut dengan bilangan yang ada di depannya (sebelumnya) satu per sati (n-1,n-2,n-3,…dst)
  4. jika lebih besar maka tidak terjadi pemindahan
  5. ulangi langkah ke 2 dan 3 sampai sort optimal

nahh,,itu adalah teori mengenai bubble sort,sekarang kita langsung lihat contoh cooding nya.!!

  1. #include<iostream.h>
  2. #include<string.h>
  3. int main()
  4. {
  5.         struct DataMhs
  6.         {
  7.                 long int nim;
  8.                 char nama[50];
  9.                 int uts, uas, prak, na;
  10.         };
  11.         int menu, hasil, i, j, BykMhs;
  12.         DataMhs mahasiswa[50];
  13.         DataMhs temp;
  14.         cout<<”Sorting”<<endl;
  15.         cout<<”Banyak mahasiswa : “; cin>>BykMhs;
  16.         //input data
  17.         for(int a=0; a<BykMhs; a++)
  18.         {
  19.                 cout<<”Nim : “; cin>>mahasiswa[a].nim;
  20.                 cout<<”Nama : “; cin>>mahasiswa[a].nama;
  21.                 cout<<”UTS : “; cin>>mahasiswa[a].uts;
  22.                 cout<<”UAS : “; cin>>mahasiswa[a].uas;
  23.                 cout<<”Praktek : “; cin>>mahasiswa[a].prak;
  24.                 hasil = (0.25 * mahasiswa[a].uts) + (0.5 * mahasiswa[a].uas) +(0.25 * mahasiswa[a].prak);
  25.                 mahasiswa[a].na=hasil;
  26.                 cout<<endl;
  27.         }
  28.         //data sebelum urut
  29.         cout<<”Data yang anda masukkan (belum urut)”<<endl;
  30.         for(int b=0; b<BykMhs; b++)
  31.         {
  32.                 cout<<”Nim : “<<mahasiswa[b].nim<<endl
  33.                          <<”Nama : “<<mahasiswa[b].nama<<endl
  34.                          <<”UTS : “<<mahasiswa[b].uts<<endl
  35.                          <<”UAS : “<<mahasiswa[b].uas<<endl
  36.                          <<”Praktek : “<<mahasiswa[b].prak<<endl
  37.                          <<”Nilai akhir : “<<mahasiswa[b].na<<endl<<endl;
  38.         }
  39.         //menampilkan menu pilihan untuk sorting
  40.         cout<<endl<<”Menu pilihan sorting : “<<endl
  41.                  <<”[1] Urut berdasarkan NIM”<<endl
  42.                  <<”[2] Urut berdasarkan Nilai Akhir”<<endl
  43.                  <<”Silahkan masukkan pilihan anda : “; cin>>menu;
  44.         //sorting
  45.         if(menu==1)
  46.         {
  47.                 //sorting (buble sort) berdasarkan nim
  48.                 for(i=0; i<BykMhs-1; i++)
  49.                 {
  50.                         for(j=0; j<BykMhs-1-i; j++)
  51.                         {
  52.                                 if(mahasiswa[j].nim>mahasiswa[j+1].nim)
  53.                                 {
  54.                                         //tukar nim
  55.                                         temp.nim=mahasiswa[j].nim;
  56.                                         mahasiswa[j].nim=mahasiswa[j+1].nim;
  57.                                         mahasiswa[j+1].nim=temp.nim;
  58.                                         //tukar nama
  59.                                         strcpy(temp.nama, mahasiswa[j].nama);
  60.                                         strcpy(mahasiswa[j].nama, mahasiswa[j+1].nama);
  61.                                         strcpy(mahasiswa[j+1].nama, temp.nama);
  62.                                         //tukar UTS
  63.                                         temp.uts=mahasiswa[j].uts;
  64.                                         mahasiswa[j].uts=mahasiswa[j+1].uts;
  65.                                         mahasiswa[j+1].uts=temp.uts;
  66.                                         //tukar UAS
  67.                                         temp.uas=mahasiswa[j].uas;
  68.                                         mahasiswa[j].uas=mahasiswa[j+1].uas;
  69.                                         mahasiswa[j+1].uas=temp.uas;
  70.                                         //tukar Praktek
  71.                                         temp.prak=mahasiswa[j].prak;
  72.                                         mahasiswa[j].prak=mahasiswa[j+1].prak;
  73.                                         mahasiswa[j+1].prak=temp.prak;
  74.                                         //tukar nilai akhir
  75.                                         temp.na=mahasiswa[j].na;
  76.                                         mahasiswa[j].na=mahasiswa[j+1].na;
  77.                                         mahasiswa[j+1].na=temp.na;
  78.                                 }
  79.                         }
  80.                 }
  81.                 //data setelah urut
  82.                 cout<<”\nData telah urut”<<endl;
  83.                 for(int c=0; c<BykMhs; c++)
  84.                 {
  85.                         cout<<”Nim : “<<mahasiswa[c].nim<<endl
  86.                                  <<”Nama : “<<mahasiswa[c].nama<<endl
  87.                                  <<”UTS : “<<mahasiswa[c].uts<<endl
  88.                                  <<”UAS : “<<mahasiswa[c].uas<<endl
  89.                                  <<”Praktek : “<<mahasiswa[c].prak<<endl
  90.                                  <<”Nilai akhir : “<<mahasiswa[c].na<<endl<<endl;
  91.                 }
  92.         }else if(menu==2)
  93.         {
  94.                 //sorting (buble sort) berdasarkan nilai akhir
  95.                 for(i=0; i<BykMhs-1; i++)
  96.                 {
  97.                         for(j=0; j<BykMhs-1-i; j++)
  98.                         {
  99.                                 if(mahasiswa[j].na>mahasiswa[j+1].na)
  100.                                 {
  101.                                         //tukar nim
  102.                                         temp.nim=mahasiswa[j].nim;
  103.                                         mahasiswa[j].nim=mahasiswa[j+1].nim;
  104.                                         mahasiswa[j+1].nim=temp.nim;
  105.                                         //tukar nama
  106.                                         strcpy(temp.nama, mahasiswa[j].nama);
  107.                                         strcpy(mahasiswa[j].nama, mahasiswa[j+1].nama);
  108.                                         strcpy(mahasiswa[j+1].nama, temp.nama);
  109.                                         //tukar UTS
  110.                                         temp.uts=mahasiswa[j].uts;
  111.                                         mahasiswa[j].uts=mahasiswa[j+1].uts;
  112.                                         mahasiswa[j+1].uts=temp.uts;
  113.                                         //tukar UAS
  114.                                         temp.uas=mahasiswa[j].uas;
  115.                                         mahasiswa[j].uas=mahasiswa[j+1].uas;
  116.                                         mahasiswa[j+1].uas=temp.uas;
  117.                                         //tukar Praktek
  118.                                         temp.prak=mahasiswa[j].prak;
  119.                                         mahasiswa[j].prak=mahasiswa[j+1].prak;
  120.                                         mahasiswa[j+1].prak=temp.prak;
  121.                                         //tukar nilai akhir
  122.                                         temp.na=mahasiswa[j].na;
  123.                                         mahasiswa[j].na=mahasiswa[j+1].na;
  124.                                         mahasiswa[j+1].na=temp.na;
  125.                                 }
  126.                         }
  127.                 }
  128.                   //data setelah urut
  129.                 cout<<”\nData telah urut”<<endl;
  130.                 for(int c=0; c<BykMhs; c++)
  131.                 {
  132.                         cout<<”Nim : “<<mahasiswa[c].nim<<endl
  133.                                  <<”Nama : “<<mahasiswa[c].nama<<endl
  134.                                  <<”UTS : “<<mahasiswa[c].uts<<endl
  135.                                  <<”UAS : “<<mahasiswa[c].uas<<endl
  136.                                  <<”Praktek : “<<mahasiswa[c].prak<<endl
  137.                                  <<”Nilai akhir : “<<mahasiswa[c].na<<endl<<endl;
  138.                 }
  139.         }else
  140.         {
  141.                 cout<<”Menu yang anda masukkan tidak valid”<<endl;
  142.         }
  143.         return 0;
  144. }

terimakasih semoga bermanfaat.!!

This entry was posted in semester1. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s