Algoritma sorting(pengurutan data)
Materi kali ini kita akan membahas apa itu algoritma sorting, sebagai mahasiswa teknik informatika pasti diwajibkan untuk mempelajari materi sorting ini karena materi ini adalah langkah dasar untuk memahami kinerja bahasa pemograman ketingkat selanjutnya maka dari itu mahasiswa teknik informatika di tuntun untuk bisa mempelajari dan mengimplementasikan algoritma sorting kedalam pemograman.
Pengertian sorting
Pengurutan atau sorting adalah suatu proses penyusunan data yang akan disusun menurut pola/aturan tertentu. Terdapat 2 bentuk pengurutan yang dilakukan yaitu:
- Pengurutan naik (ascending) mengurutkan data dari nilai yang terkecil atau yang terendah ke nilai yang lebih besar/tinggi.
- Pengurutan turun (descending) adalah kebalikan dari pengurutan ascending dimana data akan diurutkan dari yang terbesar ke yang terkecil.
Jika teman-teman semua masih belum paham apa yang dimaksud dengan ascending dan descending didalam sorting, silahkan di klik dan dipelajari terlebih dahulu materi dibawah ini
pengertian, fungsi dan contoh program ascending dan descendingTanpa basa-basi langsung saja kita ke materinya, sebelum itu kita harus tahu dulu macam-macam metode yang di gunakan untuk melakukan pengurutan atau sorting data yaitu sebagai berikut :
- Bubble sort
- Selection sort
- Quick sort
- Shell sort
- Insert sort
- Merge sort
Selanjutnya kita akan mempelajari masing-masing fungsi dari tiap metode yang ada dan contoh program dari setiap metode dalam bahasa pemograman c++
Bubble sort
Bubble sort / pengurutan gelembung ini merupakan suatu metode pengurutan gelembung yang terinspirasi dari gelembung sabun yang ada di dalam permukaan air, karena berat jenis gelembung sabun lebih ringan daripada berat jenis air maka gelembung sabun akan selalu megapung. Prinsip pengapungan ini juga dipakai pada pengurutan gelembung. Elemen yang berharga paling kecil “diapungkan”, yang artinya diangkat ke atas (atau ke ujung paling kiri) melalui pertukaran. Proses pengapungan ini dilakukan N kali langkah, metode ini adalah sebuah metode algortima sorting data yang paling sederhana diantara metode sorting yang lain baik dari segi pengertian maupun pengimplementasian dalam pemograman c++, cara kerjanya adalah melakukan proses pembandingkan dari tiap-tiap elemen data array yang ada lalu melakukan proses penukaran apabila menemukan data yang urutannya salah. Secara berulang-ulang membandingkan data yang ada sehingga dapat menyusun data yang diinginkan hingga proses penukaran tidak dilakukan lagi dan sampai semua data yang diinginkan terurut dengan benar. Biarpun metode bubble sort ini merupakan metode yang sederhana namun metode ini nyatanya ada kekurangan yaitu sangat lambat melakukan pencarian data dalam skala besar, jadi disarankan gunakan metode bubble sort ini untuk melakukan sorting data dalam skala yang kecil sehingga tidak memakan waktu yang lama
Cara kerja Algoritma Bubble sort
Algoritma bubble sort bekerja dengan cara membandingkan data dari elemen data yang pertama dibandingkan tepat pada elemen berikutnya hingga elemen ke-n (n adalah banyaknya jumlah data). Bila saat dibandingkan terdapat nilai yang lebih kecil dari elemen pertama maka posisinya akan ditukar. Nilai tersebut akan terus dibandingkan hingga sampai pada elemen ke-n, ini menjadi iterasi/tahap pertama pada proses pengurutannya. Hasil pengurutan pada tahap pertama akan menjadi acuan pada iterasi tahap berikutnya dimana nilai pada elemen pertama tidak akan dibandingkan lagi dengan elemen yang lain. Pada tahap/iterasi kedua ini nilai pada elemen ke-2 akan dibandingkan dengan cara yang sama pada iterasi yang pertama. Iterasi akan terus dilakukan hingga nilai pada setiap elemen terurut sesuai aturan.
Contoh program Bubble sort
#include <iostream>
#include <conio.h>
using namespace std;
int data[10], data2[10];
int n;
int tukar (int a,int b){
int t;
t=data[b];
data[b]=data[a];
data[a]=t;
}
int input(){
cout<<"Masukan Jumlah Data = ";
cin>>n;
cout<<endl;
for (int i=0;i<n;i++){
cout<<"Masukan Data Ke-"<<i+1<<" = ";
cin>>data[i];
data2[i]=data[i];
}
cout<<endl;
}
int tampil(){
for (int i=0;i<n;i++){
cout<<"["<<data[i]<<"] ";
}
cout<<endl;
}
int bubble_sort(){
for (int i=1; i<n;i++){
for (int j=n-1; j>=i;j--){
if (data[j]<data[j-1]){
tukar(j,j-1);
}
}
tampil();
}
cout<<endl;
}
int main()
{
cout<<"ALGORITMA BUBBLE SORT"<<endl;
cout<<"----------------------"<<endl;
input();
cout<<"Proses Bubble Sort"<<endl;
tampil();
bubble_sort();
getch();
}
Output program
Sekian, semoga artikel pembahasaan saya diatas dapat membantu teman-teman semua jika ada yang ditanyakan silahkan tinggalkan kata-kata di kolom komentar Terima kasih.
No comments:
Silahkan berkomentar dengan bijak sesuai dengan topik pembahasan