Cara Membuat Program Bubble Sort, Insertion sort Dan Selection Sort Menggunakan C++ (DEV) - Nandea96
Artikel Terbaru
Loading...

Monday, 8 July 2019

Cara Membuat Program Bubble Sort, Insertion sort Dan Selection Sort Menggunakan C++ (DEV)

Hy Semua bertemu lagi dengan Diah. Diah harap kalian semua baik baik saja. nah kali ini Diah akan membuat codingan pengurutan dengan algoritma Bubble Sort, Insertion Sort & Selection Sort...
berikut ini Diah Akan share pengertian masing-masing dan gabungan coding dari ketiganya..


Macam Macam Sort

1. Bubble Sort
Metode/algoritma pengurutan dengan dengan cara mengambil 2 data dan melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut.



2. Insertion sort
Data dicek satu per satu mulai dari yang kedua sampai dengan yang terakhir. Apabila ditemukan data yang lebih kecil daripada data sebelumnya, maka data tersebut disisipkan pada posisi yang sesuai. Akan lebih mudah apabila membayangkan pengurutan kartu. Pertama-tama anda meletakkan kartu-kartu tersebut di atas meja, kemudian melihatnya dari kiri ke kanan. Apabila kartu di sebelah kanan lebih kecil daripada kartu di sebelahkiri, maka ambil kartu tersebut dan sisipkan di tempat yang sesuai.


3. Selection Sort
Mencari elemen yang tepat untuk diletakkan di posisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan, Selection Sort Membandingkan elemen yang sekarang dengan elemen yang berikutnya sampai dengan elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan kemudian ditukar.




#include<time.h>
#include<iostream>
#include<conio.h>
#include<windows.h>
using namespace std;
int main() {
 int pil;
cout<< "Nama   :<<endl;
cout<< "Nim     :<<endl;
cout<< "Kelas   :<<endl;
cout<<"  "<<endl;
cout << "<============== Program Sorting (Bubble, Insertion, Selection) ===============>"<<endl<<endl;
cout << "1. Bubble sort" <<endl;
cout << "2. Insertion sort" <<endl;
cout << "3. Selection sort" <<endl<<endl;
cout << "<======================================>"<<endl<<endl;
cout << "Masukan pilihan anda = "; cin >> pil;
switch(pil) {


 ////////////////////////////////////

 ////  Buble start /////////////

 ////////////////////////



 case 1:
 system("cls");
 cout << endl;
 cout << "Bubble sort"<<endl;
 cout << "=============="<<endl;
 int t1,t2;
    int hold;
 int array[5];
 cout<<"Masukan 5 angka :"<<endl;
 for(int i=0; i<5; i++) {
  cout << "  angka ke " <<i+1 <<" = ";cin>>array[i];
 }
 cout<<endl;
 cout<<endl;
 t1=GetTickCount();
 cout<<"Sebelum di sortir = ";
 for(int j=0; j<5; j++) {
 cout<<array[j];
 cout<<"  ";
 }
cout<<endl;
 cout <<endl<< "Urutan program"<<endl;
 for(int i=0; i<4; i++) {
  for(int j=0; j<4; j++) {
   if(array[j]<array[j+1]) {
    hold=array[j];
    array[j]=array[j+1];
    array[j+1]=hold;
    for(int i=0; i<5; i++) {
  cout<<array[i]<<"  ";
  }
  cout<<endl;
   }
  }
 }
cout<<endl;
 cout<<"Setelah di sortir = ";
 for(int i=0; i<5; i++) {
  cout<<array[i]<<"  ";
 }
    cout<<endl;
 t2=GetTickCount();
 cout << endl <<"Lama proses = " << (int)(t2 - t1) << " ms";
 cout<<endl;
 break;

//////////////////////////////////////////////////////////

///////       Insertion start               /////////

////////////////////////////////////////////////

 case 2:
 system("cls");
 cout << "Insertion sort";
 cout <<endl<<"============="<<endl;
 cout<<endl;
 int t3,t4;
 int Key;
 int array1[5];
 cout<<"Masukan 5 angka : "<<endl;
for(int i=0; i<5; i++)  {
 cout << "  angka ke " <<i+1 <<" = ";cin>>array1[i];
}
cout<<endl;
t3=GetTickCount();
cout<<"Angka sebelum di sortir = ";
for(int j=0; j<5; j++) {
 cout<<array1[j]<<"  ";
}
cout<<endl;
cout<<endl<< "Data proses "<<endl;
for(int j=1 ; j < 5 ; j++) {
 Key = array1[j];            
 int i = j-1;                
 while(i >= 0 && array1[i] < Key) {
  array1[i + 1] = array1[i];
  i = i - 1;
 }
 array1[i + 1] = Key;
 for(int l=0; l<5; l++) {
  cout<<array1[l]<<"  ";
 }
 cout<<endl;
}
cout<<endl<<"Angka setelah disortir = ";
for(int i=0; i<5; i++) {
 cout<<array1[i]<<"  ";
}
t4=GetTickCount();
cout << endl<<endl <<"Lama proses = " << (int)(t4 - t3) << " ms";
 cout<<endl;


 break;

////////////////////////////////////////////////////////

//////////////   Selection start /////////////////////

/////////////////////////////////////


 case 3:
 system("cls");
 cout << "Selection sort";
 cout <<endl<< "================="<<endl<<endl;
 int t5,t6;
 int arr[5];
int mini,temp;


cout<<"masukan 5 angka ="<<endl;


for(int i=0; i<5; i++) {
 cout << "  angka ke " <<i+1 <<" = ";cin>>arr[i];
}

t5=GetTickCount();
cout<<endl;
cout<<"Angka sebelum di sortir = ";

for(int j=0; j<5; j++) {
 cout<<arr[j]<<"  ";
}

for(int r1=0;r1<4;r1++) {
 mini=r1;
 for(int r2=r1+1; r2<5; r2++)
   if(arr[r2]>arr[mini])
   mini=r2;
    if(mini !=r1) {
     temp=arr[r1];
     arr[r1]=arr[mini];
     arr[mini]=temp;
    }
}
cout<<endl;
cout<<endl;
cout<<"Setelah di sortir = ";
for(int q=0; q<5; q++) {
 cout<<arr[q]<< "  " ;
}
t6=GetTickCount();
cout << endl<<endl <<"Lama proses = " << (int)(t6 - t5) << " ms";
 cout<<endl;
 break;

//////////////////////////////////////////

//////           PILIHAN TIDAK ADA   /////////

//////////////////////////////////////////

 default:
 system("cls");
 cout << "Pilihan tidak ada";
 break;
}  
 getch();
}

Hasil :






jika ada salah-salah Dea minta maaf, Dea juga masih belajar dan disini Dea cuma menyalurkan apa yang Dea dapet selama masa belajar.. sekalian share siapa tau bisa membantu menyelesaikan apa yang jadi persoalan temen-temen...

Share with your friends

Give us your opinion

Selamat Datang Di Website Nandea96
Mohon untuk selalu mencuci tangan dengan air bersih serta sabun setiap 15 menit sekali agar terhindar dari covid-19 dan penyakit lainnya seperti diare. selalu gunakan masker ketika berpergian kemanapun 😷. meskipun itu hanya berbelanja sekitar 0.1 km atau ke tetangga. hindari kontak fisik dan beri jarak sekitar 2 meter dari jarak tempat kita berdiri dengan seseorang agar tidak memunculkan klaster baru yang tidak di-inginkan.

-Terimakasih 🙏-
Done