[
Tugas Kuliah ] Algoritma dan Pemrograman 2 | Sorting – Bubble Sort
Tugas
TI POLITALA Alpro 2C
Nama :
Prima Angelia Rehulina Barus
Kelas :
2C
Jurusan :
Teknik Informatika
NIM :
1801301109
Matkul :
Alpro 2 Tugas 3
Semester :
II
SORTING
Pada pembahasan
kali ini, saya akan menjelaskan tentang materi sorting khususnya materi sorting
dengan algoritma bubble sort dan quick sort.
Pengertian Sorting
(pengurutan)
Sorting yaitu suatu aktivitas untuk
mengurutkan suatu data yang belum terurut misalnya mengurutkan data-data dari
nilai yang terkecil ke terbesar ataupun sebaliknya.
Ada 6 jenis metode
sorting, yaitu;
1. Bubble
sort
2. Insertion
sort
3. Merge
sort
4. Quick
sort
5. Selection
sort
6. Shell
sort
Tetapi pada kali ini
saya akan membahas tentang salah satu materi yaitu sorting dengan algoritma
bubble sort dan quick sort.
a. Metode
Pengurutan dengan Bubble Sort
Metode pengurutan
bubble sort merupakan algoritma pengurutan yang paling tua dan sederhana dan
mudah untuk diimplementasikan. Metode gelembung (bubble sort) disebut juga dengan
metode pertukaran (exchange sort) yaitu metode yang mengurutkan data dengan
cara membandingkan masing-masing elemen, kemudian melakukan penukaran bila
perlu. Metode ini mudah untuk dipahami dan diprogram, tetapi bila dibandingkan
dengan metode lain yang lebih kompleks, metode ini merupakan metode yang paling
tidak efisien untuk mengurutkan data.
b.
Metode Pengurutan dengan Quick Sort
Metode pengurutan quick sort merupakan algoritma
pengurutan data yang sangat cepat dengan tipe penyelesaian divide and conquer.
sehingga cocok untuk mengurutkan data dalam jumlah yang besar.
c.
Algoritma dari Bubble Sort
Adapun Proses
Algoritma Bubble Sort adalah sebagai
berikut:
1. Pengurutan
dimulai dengan membandingkan elemen pertama untuk mendapatkan angka terbesar.
Lalu angka tersebut ditempatkan pada elemen terakhir.
2. Pada
akhir proses pertama ini, bilangan yang terbesar menempati tempat yang sesuai.
3. Pada
akhir proses kedua ini, bilangan terbesar kedua menempatkan tempat yang sesuai.
4.
Bila proses ini dilanjutkan, tidak ada
pertukaran tempat lagi bagi bilangan – bilangan tersebut, sebab bilangan
tersebut telah selesai disusun.
Algoritma pengurutan
dengan bubble sort dapat dituliskan sebagai berikut :
for(i=0; i<=n-2; i++)
{
for (j=n-1; j>=i+1; j--)
{
if (data[j]<data[j-1])
{
buble=data[j];
data[j]=data[j-1];
data[j-1]=buble;
}
}
}
d. Algoritma
dari Quick Sort
Adapun proses
Algoritma Quick Sort adalah Sebagai berikut:
1. Pilih satu
elemen secara acak sebagai pivot
2. Pindahkan
semua elemen yang lebih kecil ke sebelah kiri pivot dan semua elemen yang lebih
besar ke sebelah kanan pivot. Elemen yang nilainya sama bisa disimpan di salah
satunya.
3. Lakukan sort
secara rekursif terhadap sub-array sebelah kiri dan kanan pivot
Algoritma
pengurutan dengan quick sort dapat dituliskan sebagai berikut :
int
partisi (int data[], int awal, int akhir)
{
int
x,i,j,simpan;
i=awal;
j=akhir;
while(1)
{
while(data[i]<data[awal])
i=i+1;
while(data[j]>data[awal])
j=j-1;
if (i<j)
{
//tukarkan data
simpan=data[i];
data[i]=data[j];
data[j]=simpan;
}
else
return
j;
}
}
void
quick_sort(int data[], int awal, int akhir)
{
int
q;
if(awal<akhir)
{
q=partisi(data,awal,akhir);
quick_sort(data,awal,q);
quick_sort(data,
q+1,akhir);
}
}
e. Contoh
Program
Berikut ini adalah
contoh program bubble sort :
#include
<iostream>
using
namespace std;
int main()
{
int i,j,n, bubble,pil, data[10];
cout<<"========================================="<<endl;
cout<<"| Program Sorting
Data
|"<<endl;
cout<<"| Pilih Metode Sorting
Bubble : |"<<endl;
cout<<"| 1. Ascending |"<<endl;
cout<<"| 2. Descending |"<<endl;
cout<<"========================================="<<endl;
cout<<"Masukkan Banyak Nomor
Undian: ";cin>>n;
for(i=0; i<n; i++)
{
cout<<"Data ke -
"<<i+1<<" : ";cin>>data[i];
}
cout<<"Masukkan Metode Yang
Dipilih : ";cin>>pil;
if (pil==1)
{
for(i=0; i<=n-2; i++)
{
for (j=n-1; j>=i+1; j--)
{
if (data[j]<data[j-1])
{
bubble=data[j];
data[j]=data[j-1];
data[j-1]=bubble;
}
}
}
cout<<"Data yang
telah disorting secara ascending "<<endl;
for(i=0; i<n; i++)
{
cout<<"Data ke-
"<<i+1<<" : "<<data[i]<<endl;
}
}
else if (pil==2)
{
for(i=0; i<=n-2; i++)
{
for (j=n-1; j>=i+1; j--)
{
if (data[j]>data[j-1])
{
bubble=data[j];
data[j]=data[j-1];
data[j-1]=bubble;
}
}
}
cout<<"Data yang telah disorting
secara descending "<<endl;
for(i=0; i<n; i++)
{
cout<<"Data ke-
"<<i+1<<" : "<<data[i]<<endl;
}
}
}
Sekian penjelasan
dari saya tentang materi sorting yaitu sorting dengan algoritma bubble sort dan
quick sort. Semoga bermanfaat.
Daftar pustaka
http://ruzi.staff.gunadarma.ac.id/Downloads/files/32027/PENGURUTAN+BILANGAN+DENGAN+METODE+BUBBLE+SORT.doc
0 komentar:
Posting Komentar