7
Metode Sorting dan Aplikasinya Tugas Kuliah Algoritma dan Struktur Data Selamat Riady Manajemen Informatika Politeknik Negeri Lampung Bandar Lampung, Lampung [email protected] I. PENGENALAN ALGORITMA SORTING Menurut rudiwiyono011in Uncategorized .trackback Algoritma adalah kumpulan langkah sistematis untuk memperoleh hasil yang diinginkan.Salah satu contoh dari algoritma adalah Sorting (pengurutan).Sorting dapat didefinisikan sebagai pengurutan sejumlah data berdasarkan nilai tertentu. Pengurutan dapat dilakukan dari nilaiterkecil ke nilai terbesar (ascending) atau sebaliknya (descending). II.JENIS-JENIS SORTING Sorting dapat dibedakan menjadi dua yaitu ; a.Comparasion Sort Comparasion Sort atau disebut juga penggurutan dengan pembandingan adalah algoritma yang dalam proses pengurutannya melakukan pembandingan antar data. Yang termasuk algoritma comparasion sort yaitu Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort. b.Non-Comparasion Sort Non-Comparasion Sort atau pengurutan tanpa pembandingan adalah algoritma pengurutan dimana dalam prosesnya tidak melakukan perbandingan antar data. Yang termasuk algoritma ini yakni Radix Sort dan Counting Sort.. a.Metode sorting comparasion sort 1.sorting bublesort a.pengertian bublesort Buble sort atau sorting buble adalah teknik sorting dengan menukar posisi data secara perlahan seperti gelembung yang keluar dari sebuah gelas bersoda.Selection sort mencari data dari yang kecil ke besar dan bisa dimulai dari kanan maupun dari kanan. jika data sekarang lebih besar dari elemen berikutnya maka data tersebut ditukar (pengurutan ascending) jika data sekarang lebih kecil daripada data berikutnya,maka kedua data tersebut ditukar (pengurutan descending).. b.Contoh buble sort menurut selamat riady sorting buble atau buble sort dapat dilakukan dari kanan maupun dari kiri. 1. 10 56 5 7 9 8 10 5 56 7 9 8 5 10 56 7 9 8 2. 5 10 56 7 9 8 5 10 7 56 9 8 5 7 10 56 9 8 3 5 7 10 56 9 8 5 7 10 56 8 9 5 7 10 8 56 9 5 7 8 10 56 9 4 5 7 8 10 56 9 5 7 8 10 9 56

Tugas selamat riady algoritma

Embed Size (px)

Citation preview

Page 1: Tugas selamat riady algoritma

Metode Sorting dan Aplikasinya

Tugas Kuliah Algoritma dan Struktur Data

Selamat RiadyManajemen Informatika

Politeknik Negeri LampungBandar Lampung, Lampung

[email protected]

I. PENGENALAN ALGORITMA SORTING

Menurut rudiwiyono011in Uncategorized.trackback Algoritma adalah kumpulan langkah sistematis untuk memperoleh hasil yang diinginkan.Salah satu contoh dari algoritma adalah Sorting (pengurutan).Sorting dapat didefinisikan sebagai pengurutan sejumlah data berdasarkan nilai tertentu. Pengurutan dapat dilakukan dari nilaiterkecil ke nilai terbesar (ascending) atau sebaliknya (descending).

II.JENIS-JENIS SORTING

Sorting dapat dibedakan menjadi dua yaitu ;

a.Comparasion Sort

Comparasion Sort atau disebut juga penggurutan dengan pembandingan adalah algoritma yang dalam proses

pengurutannya melakukan pembandingan antar data. Yang termasuk algoritma comparasion sort yaitu Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort.

b.Non-Comparasion Sort

Non-Comparasion Sort atau pengurutan tanpa pembandingan adalah algoritma pengurutan dimana dalam prosesnya tidak melakukan perbandingan antar data. Yang termasuk algoritma ini yakni Radix Sort dan Counting Sort..

a.Metode sorting comparasion sort1.sorting bublesorta.pengertian bublesortBuble sort atau sorting buble adalah teknik sorting

dengan menukar posisi data secara perlahan seperti gelembung yang keluar dari sebuah gelas bersoda.Selection sort mencari data dari yang kecil ke besar dan bisa dimulai dari kanan maupun dari kanan.

jika data sekarang  lebih besar dari elemen berikutnya maka data tersebut ditukar (pengurutan ascending) jika data sekarang lebih kecil daripada data berikutnya,maka kedua data  tersebut ditukar (pengurutan descending)..

b.Contoh buble sort menurut selamat riady sorting buble atau buble sort dapat dilakukan dari

kanan maupun dari kiri.1. 10 56 5 7 9 8

10 5 56 7 9 85 10 56 7 9 8

2. 5 10 56 7 9 85 10 7 56 9 85 7 10 56 9 8

3 5 7 10 56 9 85 7 10 56 8 95 7 10 8 56 95 7 8 10 56 9

4 5 7 8 10 56 95 7 8 10 9 565 7 8 9 10 56

Kolom warna kuning adalah tempat awal perganti an datanya yang disusun dari kiri kekanan.dan warna biru adalah hasil akhirnya.

Dimana semua data yang tadinya acak menjadi tersusun sesuai urutannya.

c.aplikasi bublesortaplikasi ini dibuat di turbo pascal.

program bublesort;uses crt;var data array [1..10] of integer;i,j,n,bantu :integer;beginclrscr;writeln('masukan data: ');writeln('jumlah data ? '); writeln('mulai masukkan anda ');for i:=1 to n dobegin write ('data ke- ',i,'= ');readln(data[i]);end;for i:=1 to N-1 do

Page 2: Tugas selamat riady algoritma

for j:=1 to N-1 do

beginif data [j] > data [j+1] thenbeginbantu :=data [j];data [j] :=data [j+1];data [j+1] :=bantu;end;end;for i:=1 to n dowrite ('(',data[i],'),');readln;

end.

2.selection sorta.pengertian selection sort atau sorting seleksi adalahteknik sorting dengan menukar posisi data kan.Selection sort mencari data dari yang kecil ke besar dan bisa dimulai dari kanan maupun dari kanan.

b.Contoh menurut selamat riady1. 0 1 2 3 4 5

10 56 5 7 9 8perbandingan posisi10>5 Data ke-0 pindah ke-2

.

5 56 10 7 9 82 0 1 2 3 4 5

5 56 10 7 9 8perbandingan posisi56>7 Data ke-1

pindah ke-35 7 10 56 9 8

3 0 1 2 3 4 55 7 10 56 9 8

perbandingan posisi10<9 Data ke-2 pindah ke-45 7 9 56 10 8

4 0 1 2 3 4 55 7 9 56 10 8

perbandingan posisi56<8 Data ke-3 pindah ke-55 7 9 8 10 56

5 0 1 2 3 4 55 7 9 8 10 56

perbandingan posisi9<8 Data ke-2 pindah ke-

35 7 8 9 10 56

Kolom biru adalah hasil proses penyeleksian data.c.aplikasinya

program bublesort;uses crt;var data array [1..10] of integer;i,j,n,bantu :integer;beginclrscr;writeln('masukan data anda: ');writeln('jumlah data ? '); writeln('mulai masukkan anda ');for i:=1 to n dobegin write ('data ke- ',i,'= ');readln(data[i]);end;for i:=1 to N-1 dofor j:=i+1 to N do

beginif data [j] > data [j+1] thenbeginbantu :=data [j];data [j] :=data [j];data [j+1] :=bantu;end;end;for i:=1 to n dowrite ('(',data[i],'),');readln;

end.

3.Insert sorta.pengertianInsert sort atau sorting insert adalah teknik sorting

dengan menggeser kan data.insert sort mencari data dari yang kecil ke besar dan bisa dimulai dari kanan.

b.contoh1. 0 1 2 3 4 5

10 56 5 7 9 8temp Cek geser5 <5 2 ke 0

10 56 7 9 8

2. 0 1 2 3 4 5

5 10 56 7 9 8

Page 3: Tugas selamat riady algoritma

temp Cek geser7 <7 3 ke 1

5 7 10 56 9 8

3. 0 1 2 3 4 5

5 7 10 56 9 8temp Cek geser

8 <8 5 ke 2

5 7 8 10 56 9

0 1 2 3 4 55 7 8 10 56 9temp cek Geser9 <9 5 ke 35 7 8 9 10 56

c.aplikasinya#include<iostream>

#include <conio.h>

int main()

{

int data[]={5, 2, 4, 6, 1, 3};

cout<<“sebelum disorting: “;

for(int i=0; i<6; i++)

cout<<data[i] <<“, “;

cout<<endl <<endl;

for(int i=1; i<6; i++)

{

int j=i;

while(data[j]<data[j-1])

{

int tmp=data[j];

data[j]=data[j-1];

data[j-1]=tmp;

j–;

}

}

cout<<“Setelah disorting: “;

for(int i=0; i<6; i++)

cout<<data[i] <<“, “;

getch();

}

4.Merge Sort a.Pengertian :Merge sort merupakan salah satu teknik sorting yang menurutkan suatu data dengan cara penggabungan. Merge sort juga menggunakan proses divide and conquer pada rekursi. Berikut adalah langkah kerja merge sort :Devide       : Memilah elemen – elemen dari data menjadi dua bagian.Conquer    : Menyelesaikan setiap bagian dengan memanggil prosedur merge sort secara rekursif.Kombinasi : Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan.Proses rekursi akan berhenti jika telah mencapai lemen dasar, atau artinya jika bagian yang diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah sesuai rangkaian.

Metode penggabungan biasanya digunakan pada pengurutan berkas. Prinsip dari metode penggabungan sebagai berikut :         

Mula-mula diberikan dua kumpulan data yang sudah dalam keadaan urut. Kedua kumpulan data tersebut harus dijadikan satu table sehingga dalam keadaan urut. Misalnya kumpulan data pertama (T1) adalah sebagai berikut :           

3 11 12 23 31 Sedangkan kumpulan data kedua (T2) adalah sebagai

berikut :  

9 15 17 20 35  

Proses penggabungan ini dapat dijelaskan sebagai berikut : mula-mula diambil data pertama dari T1 yaitu 3 dan data pertama dari T2 yaitu 9. Data ini dibandingkan, kemudian yang lebih kecil diletakkan sebagai data pertama dari hasil pengurutan, misalnya T3. Jadi T3 akan memiliki satu data yaitu 3. Data yang lebih besar yaitu 9 kemudian dibandingkan dengan data kedua dari T1, yaitu 11. Ternyata 9 lebih kecil dari 11, sehingga 9 diletakkan sebagai data kedua dari T3. Demikian seterusnya sehingga didapat hasil sebagai berikut :

Page 4: Tugas selamat riady algoritma

3 9 11 12 15 17 20 23 31 35

Algoritma penggabungan dapat dituliskan sebagai berikut :

1.i=02.j=03.J3=04. Kerjakan baris 5 sampai dengan 7 selama(i<J1)atau(j<J2)5.J3=J3+16. Jika (T1[i] < T2[j]) maka T3[J3] = T1[i], i = i + 17. Jika (T1[i] >= T2[j]) maka T3[J3] = T2[j], j = j + 18. Jika (i > J1) maka kerjakan baris 9,jika tidak

Kerjakanbaris159.i=j10. Selama (i < J2) kerjakan baris 11 sampai dengan 1311.J3=J3+112.T3[J3]=T2[i]13.i=i+114.Selesai15.j=i16. Selama (j < J1) kerjakan baris 17 sampai dengan 1917.J3=J3+118.T3[J3]=T1[j]19. j = j + 1

B.APLIKASINYA

void MergeSort(int T1[],int T2[],int J1,int J2, int T3[],int *J3){int i=0, j=0;int t=0;while ((i<J1)||(j<J2)){ if(T1[i]<T2[j]){T3[t] = T1[i];i++;}else{T3[t] = T2[j];j++;}t++;}if(i>J1)for(i=j; i<J2; i++){ T3[t] = T2[i];t++;}if(j>J2)for(j=i; j<J1; j++){T3[t] = T1[j];t++;}

*J3 = t;}

5.RADIX SORT 

A.Radix Sorting

Radix Sort merupakan salah satu algoritma Non-Comparasion Sort (pengurutan tanpa pembandingan). Proses yang dilakukan dalam metode ini adalah mengklasifikasikan/menyelesaikan data sesuai dengan kategori terurut yang tertentu, dan tiap kategori dilakukan pengklasifikasian lagi, dan seterusnya sesuai kebutuhan, kemudian subkategori-kategori atau bagian-bagian dari  kategori  tersebut digabungkan kembali.

Secara harfiah Radix dapat diartikan sebagai posisi dalam angka, karena cara ini pertama kalinya mengurutkan nilai-nilai yang dimasukan (input) berdasarkan radix pertamanya, lalu pengurutan dilakukan berdasarkan radix keduanya, dan begitu seterusnya. Pada sistem desimal, radix adalah digit dalam angka desimal. Misalnya, angka “169” mempunyai 3 digit yaitu 1,6 dan 9.

Saya akan membeikan contoh penggunaan algoritma radix sort untuk pengurutan sebuah kumpulan bilangan bulat positif, dengan jumlah digit maksimal 3 :

121 076 823 367 232 434 742936 272 

Pertama kali data dibagi-bagi sesuai dengan digit terkanan  :

121 076 823 367 232 434 742936 272 

 

Sehingga dapat di bentuk tabel :

121 076 823 367 232 434 742936 272 

Pada saat penentuan kategori lihat terlebih dahulu nilai digit yang terbesar dicontoh ini yakni nilai digit yang terbesar 9 sehingga kategori sebanyak 9 baris dan diawali dari 0. Langsung aja supaya lebih jelas perhatikan tabel dibawah ini :

Kategori Digit 1 Isi

0 –

1 121

Page 5: Tugas selamat riady algoritma

2 232, 742

3 823

4 434, 274

5 –

6 076, 936

7 367

8 –

9 –

Hasil pengkategori pertama kemudian digabungkan kembali menurut penjelasan yang diatas:

121 232 742 823 274 076 936367

Kemudian dilakukan pengkategorian kembali berdasarkan digit yang kedua dengan berpatokan(melihat) baris urutan pengkategorian pertama yaitu :

121 232 742 823 434 274 936367

Kategori Digit 2 Isi

0 –

1 –

2 121,823

3 232, 434, 936

4 742

5 –

6 367

7 274, 076

8 –

9 –

Selanjutnya hasil pengkategori kedua digabungkan kembali

121 823 232 434 936 742 367274 076

Kemudian langkah ketiga (terakhir), dilakukan pengkategorian kembali berdasar digit ketiga. dengan berpatokan(melihat) baris urutan pengkategorian kedua  yaitu :

121 823 232 434 936 742 367274 076

Kategori Digit 3 Isi

0 076

1 121

2 232,274

3 367

4 434

5 –

6 –

7 742

8 823

9 936

Jadi hasil akhirnya dapat dituliskan :

076 121 232 274 367 434 823 936

Dari langkah-langkah yang telah dilakukan dalam proses pengurutan menggunakan radix sort, jelas tampak bahwa radix sort termasuk algoritma pengurutan tanpa pembanding. Dengan sifatnya yang melihat digit-digit angka sebagai pengontrolnya, Radix Sort dapat diimplementasikan dalam pengurutan bilangan desimal dan bilangan bit. Namun dalam penggunaannya radix sort bisa dimodifikasi sehingga bisa digunakan untuk menggurutkan data data negatif dan pecahan.

 Kelebihan yang dimiliki Radix Sort antara lain adalah merupakan algoritma pengurutan yang cepat, mudah, dan sangat efektif. Namun penggunaannya terbatas pada kasus-kasus tertentu dan memerlukan memori tambahan dalam prosesnya.

Daftar pusaka1.Buble sort,selection sort,dan insert sort,

Page 6: Tugas selamat riady algoritma

(Selamat Riady,2 juni 2015 Bandar lampung) 1.Merge sort oleh Hendri Pratama (http://phpratama.blogspot.com/2014/04/metode-pengurutan-algoritma-1.html).2. pegertian algoritma sorting dan Radix sort oleh rudin https://rudiinformatics011.wordpress.com/2012/05/26/algoritma-radix-sorting/ ( Mei 26, 2012)