Sabtu, 08 Juni 2019

SORTING DALAM PEMROGRAMAN C++

Posted by angel's note on Juni 08, 2019 with No comments


[ 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