Selasa, 09 Juni 2015

Program C ++ Mengenai Sorting [Ascending]



Assalamu'alaikum.wr.wb - Selamat Pagi Mahasiswa/i pemrograman II yang ibu banggakan, berikut ini ibu akan membahas materi tentang Sorting atau pengurutan. sebelum kita membahas contoh programnya, ada baiknya kita mengetahui terlebih dahulu apa itu Sorting??. Sorting atau pengurutan data adalah proses yang sering harus dilakukan dalam pengolahan data. Sort dalam hal ini diartikan mengurutkan data yang berada dalam suatu tempat penyimpanan, dengan urutan tertentu baik urut menaik (ascending) dari nilai terkecil sampai dengan nilai terbesar, atau urut menurun (descending) dari nilai terbesar sampai dengan nilai terkecil.


Sorting adalah proses pengurutan. Terdapat dua macam pengurutan:
  1. Pengurutan internal (internal sort), yaitu pengurutan terhadap sekumpulan data yang disimpan dalam media internal komputer yang dapat diakses setiap elemennya secara langsung. Dapat dikatakan sebagai pengurutan tabel.
  2. Pengurutan eksternal (external sort), yaitu pengurutan data yang disimpan dalam memori sekunder, biasanya data bervolume besar sehingga tidak mampu untuk dimuat semuanya dalam memori.
Dalam Kesempatan ini ada 3 buah metode Sorting yang akan kita bahas yaitu :
  1. Metode Bubble Sort
  2. Metode Selection Sort
  3. Metode Insertion Sort
Oke, Selanjutnya mari kita bahas satu persatu dari masing-masing metode tersebut :

1. Metode Bubble Sort

Bubble sort adalah proses pengurutan sederhana yang bekerja dengan cara berulang kali membandingkan dua elemen data pada suatu saat dan menukar elemen data yang urutannya salah. Ide dari Bubble sort adalah gelembung air yang akan "mengapung" untuk table yang terurut menaik (ascending). Elemen bernilai kecil akan "diapungkan" (ke indeks terkecil), artinya diangkat ke "atas" (indeks terkecil) melalui pertukaran. Karena algoritma ini melakukan pengurutan dengan cara membandingkan elemen-elemen data satu sama lain, maka bubble sort termasuk ke dalam jenis algoritma comparison-based sorting.
Proses dalam Bubble sort dilakukan sebanyak N-1 langkah (pass) dengan N adalah ukuran array. Pada akhir setiap langkah ke – I , array L[0..N] akan terdiri atas dua bagian, yaitu bagian yang sudah terurut L[0..I] dan bagian yang belum terurut L[I+1..N-1]. Setelah langkah terakhir, diperoleh array L[0..N-1] yang terurut menaik.

SYNTAX PROGRAM BUBBLE SORT

#include <iostream>

using namespace std;

void TampilArray(int nilai[20], int n)
{
    for (int i=0; i<n; i++)
    {
        cout<<nilai[i]<<' ';
    }cout<<endl;
}

int main()
{
    int nilai[20];
    int i,n,j,tmp;

    cout<<" \n ====== Program Bubble Sort Dan Sequential Search ======= "<<endl;
    cout<<" \n Masukkan Banyaknya Elemen Array = "; cin>>n;
    cout<<endl;
    for(int i=0; i<n;i++)
    {
        cout<<" Elemen Array Ke-"<<i<<" : ";cin>>nilai[i];
    }
    cout<<"\n Data Sebelum diurut : ";
    TampilArray(nilai,n);
    for(int i=1; i<n;i++)
    {
        for(int j=0;j<n-i;j++)
        {
        if (nilai[j] > nilai[j+1])
            {
                tmp=nilai[j];
                nilai[j]= nilai[j+1];
                nilai[j+1] = tmp;
            }
        }
    }
     cout<<" \n\n Data Setelah diurut : ";
     TampilArray(nilai,n);

     cout<<" \n ====== Created By : Kartika Nadim Fatwa ======= "<<endl;
    return 0;
}

SCREENSHOOT PROGRAM


2. Metode Selection Sort

Selection sort adalah 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.

Konsep Selection Sort Algoritma pengurutan sederhana salah satunya adalah Selection Sort. Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data. Untuk sorting ascending (menaik), elemen yang paling kecil di antara elemen-elemen yang belum urut,  disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut. Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan indeksnya kemudian ditukar.
Selection Sort diakui karena kesederhanaan algoritmanya dan performanya lebih bagus daripada algoritma lain yang lebih rumit dalam situasi tertentu. Algoritma ini bekerja sebagai berikut:
  1. Mencari nilai minimum (jika ascending) atau maksimum (jika descending) dalam sebuah list.
  2. Menukarkan nilai ini dengan elemen pertama list.
  3. Mengulangi langkah di atas untuk sisa list dengan dimulai pada posisi kedua.
Secara efisien kita membagi list menjadi dua bagian yaitu bagian yang sudah diurutkan, yang didapat dengan membangun dari kiri ke kanan dan dilakukan pada saat awal, dan bagian list yang elemennya akan diurutkan.

SYNTAX PROGRAM SELECTION SORT

#include <iostream>
using namespace std;

void TampilArray(char nilai[20], int n)
{
    for (int i=0; i<n; i++)
    {
        cout<<nilai[i]<<' ';
    }cout<<endl;
}
int main()
{
    char nilai[20],posmin;
    int i,n,j,tmp;
    cout<<" \n ============ Program Selection Sort ========== "<<endl;
    cout<<" \n Masukkan Banyaknya Elemen Array = "; cin>>n;
    cout<<endl;
    for(int i=0; i<n;i++)
    {
        cout<<" Elemen Array Ke-"<<i<<" : ";cin>>nilai[i];
    }
    cout<<"\n Data Sebelum diurut : ";
    TampilArray(nilai,n);
    for(int i=0; i<n-1;i++)
    {
        posmin = i;
        for(int j=i+1;j<n;j++)
        {
        if (nilai[posmin] > nilai[j])
            {
               posmin = j;
            }
        }
        if(i != posmin)
        {
            tmp = nilai[i];
            nilai[i] = nilai[posmin];
            nilai[posmin]=tmp;
        }
    }
     cout<<" \n Data Setelah diurut : ";
     TampilArray(nilai,n);

     cout<<" \n ====== Created By : Kartika Nadim Fatwa ====== "<<endl;
    return 0;
}

SCREENSHOOT PROGRAM



3. Metode Insertion Sort

Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan membandingkannya dengan elemen data yang telah diurutkan. Karena algoritma ini bekerja
dengan membandingkan elemen-elemen data yang akan diurutkan, algoritma ini termasuk pula dalam comparison-based sort. Ide dasar dari algoritma Insertion Sort ini adalah mencari tempat yang "tepat" untuk setiap elemen array, dengan cara sequential search. Proses ini kemudian menyisipkan sebuah elemen array yang diproses ke tempatnya ang seharusnya. Proses dilakukan sebanyak N-1 tahapan (dalam sorting disebut sebagai "pass"), dengan indeks dimulai dari 0. Proses pengurutan dengan menggunakan algoritma Insertion Sort dilakukan dengan cara membandingkan data ke-i (dimana i dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai dengan posisi yang seharusnya.

SYNTAX PROGRAM INSERTION SORT

#include <iostream>

using namespace std;

void TampilArray(int nilai[20], int n)
{
    for (int i=0; i<n; i++)
    {
        cout<<nilai[i]<<' ';
    }cout<<endl;
}

int main()
{
    int nilai[20];
    int i,n,j,tmp;

    cout<<" \n ============ Program Insertion Sort ========== "<<endl;
    cout<<" \n Masukkan Banyaknya Elemen Array = "; cin>>n;
    cout<<endl;
    for(int i=0; i<n;i++)
    {
        cout<<" Elemen Array Ke-"<<i<<" : ";cin>>nilai[i];
    }
    cout<<"\n Data Sebelum diurut : ";
    TampilArray(nilai,n);
    for(int i=0; i<n;i++)
    {
        tmp = nilai[i];
        j = i -1;
        while(nilai[j]>tmp && j>=0)
            {
                nilai[j+1] = nilai[j];
                j--;
            }
        nilai[j+1] = tmp;
    }
     cout<<" \n Data Setelah diurut : ";
     TampilArray(nilai,n);

     cout<<" \n ====== Created By : Kartika Nadim Fatwa ====== "<<endl;
    return 0;
}


SCREENSHOOT PROGRAM


Demikianlah pembahasan materi sorting dalam pemrograman c++, Semoga apa yang telah ibu berikan dapat bermanfaat untuk ananda sekalian. Wassalamu'alaikum.wr.wb.


===== TUNTUTLAH ILMU, RAIH PRESTASIMU =====


0 komentar:

Posting Komentar

TERIMA KASIH ATAS KUNJUNGAN ANDA :)
Monggo isi Komentar nya :

||SALAM BLOGGER INDONESIA|| +++>Di sini Tempatnya Belajar & Berbagi ILMU<+++ Buat Sobat-Sobat Blogger semua,Teruslah Berkarya!!! Terima Kasih Buat Sahabat-Sahabat yang telah Mampir DiBlog Nadym::.Dan Jangan Lupa Tinggalkan Kesan & Pesan untuk Membangun Blog iNi.::
 

I-YES INDONESIA

Indonesian Youth Educate And Social

ALMAMATERKU

Universitas Muhammadiyah Riau