Teknik sorting yang mengurut data dari besar ke kecil disebut

Okeh Baiklah disini saya ingin membahas tentang tugas kuliah saya.. langsung saja ya..cekidoott….

Merupakan algoritma pengurutan paling tua dengan metode pengurutan paling sederhana. Pengurutan yang dilakukan dengan membandingkan masing-masing item dalam suatu list secara berpasangan, menukar item jika diperlukan, dan mengulaginya sampai akhir list secara berurutan, sehingga tidak ada lagi item yang dapat ditukar.

Teknik sorting yang mengurut data dari besar ke kecil disebut

Kelebihan Bubble Sort :

  • Metode Buble Sort merupakan metode yang paling simpel
  • Metode Buble Sort mudah dipahami algoritmanya

Kelemahan Bubble Sort :

Meskipun simpel metode Bubble sort  merupakan metode pengurutanyang paling tidak efisien.  Kelemahan buble sort adalah pada saat mengurutkan data yang sangat besar akan mengalami kelambatan luar biasa, atau dengan kata lain kinerja memburuk cukup signifikan ketika data yang diolah jika  data cukup banyak. Kelemahan lain adalah jumlah pengulangan akan tetap sama jumlahnya walaupun data sesungguhnya sudah cukup terurut. Hal ini disebabkan setiap data dibandingkan dengan setiap data yang lain untuk menentukan posisinya.

Algoritma Bubble Sort :

  1. Membandingkan data ke-i dengan data ke-(i+1) (tepat bersebelahan). Jika tidak sesuai maka tukar (data ke-i = data ke-(i+1) dan data ke-(i+1) = data ke-i). Apa maksudnya tidak sesuai? Jika kita menginginkan algoritme menghasilkan data dengan urutan ascending (A-Z) kondisi tidak sesuai adalah data ke-i > data ke-i+1, dan sebaliknya untuk urutan descending (A-Z).
  2. Membandingkan data ke-(i+1) dengan data ke-(i+2). Kita melakukan pembandingan ini sampai data terakhir. Contoh: 1 dgn 2; 2 dgn 3; 3 dgn 4; 4 dgn 5 … ; n-1 dgn n.
  3. Selesai satu iterasi, adalah jika kita sudah selesai membandingkan antara (n-1) dgn n. Setelah selesai satu iterasi kita lanjutkan lagi iterasi berikutnya sesuai dengan aturan ke-1. mulai dari data ke-1 dgn data ke-2, dst.
  4. Proses akan berhenti jika tidak ada pertukaran dalam satu iterasi.

Implementasi Bubble Sort dalam bahasa C++

Teknik sorting yang mengurut data dari besar ke kecil disebut

Melakukan pembandingan antara data, dan melakukan pertukaran apabila urutan yang didapat belum sesuai. Bisa dikatakan Bubble sort sama dengan Exchange Sort karena kedua metode ini melakukan pertukaran berulang-ulang terhadap elemen data yang belum diurutkan.

Perbedaan :

  • Exchange Sort membandingkan suatu elemen dengan elemen-elemen lainnya dalam array tersebut, dan melakukan pertukaran elemen jika perlu. Jadi ada elemen yang selalu menjadi elemen pusat (pivot).
  • Sedangkan Bubble Sort akan membandingkan elemen pertama/terakhir dengan elemen sebelumnya/sesudahnya, kemudian elemen tersebut itu akan menjadi pusat (pivot) untuk dibandingkan dengan elemen sebelumnya/sesudahnya lagi, begitu seterusnya.

Teknik sorting yang mengurut data dari besar ke kecil disebut

Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.

Teknik sorting yang mengurut data dari besar ke kecil disebut

Selection Sort diakui karena kesederhanaan algoritmanya dan performanya lebih bagus dari pada 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
  4. 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.

Implementasi Selection Sort dalam bahasa C++

#include <iostream> #include <conio.h> #include <stdio.h> #include <iomanip> #ifdef __cplusplus__ #include <cstdlib> #else #include <stdlib.h> #endif using namespace std; int main() {         int x[5];         int i;         int temp;         int minindex;         int j;         if (system("CLS")) system("clear");         cout << " >> Program Selection Sort << \n" << endl;         cout << "masukkan nilai x :\n";         for (i = 0; i<5; i++)         {                 cout << "x[" << i << "] = "; cin >> x[i];         }         cout << "\n Data sebelum di sort :";         for (i = 0; i<5; i++)         {                 cout << setw(4) << x[i];         }         for (i = 0; i<5 - 1; i++) //perulangan iterasi         {                 minindex = i;                 for (j = i + 1; j<5; j++) //perulangan membandingkan data                 {                         if (x[minindex]>x[j])                         {                                 minindex = j;                         }                 }                 temp = x[i];                 x[i] = x[minindex];                 x[minindex] = temp;         }         cout << "\n Data setelah di sort :";         for (i = 0; i<5; i++)         {                 cout << setw(4) << x[i];         }         getchar();         cout << endl;         system("pause"); }

Heapsort merupakan salah satu bentuk dari selection sort yang memiliki kompleksitas algorima O(n log(n)) yang menggunakan struktur data heap. Algoritma ini bekerja dengan menentukan elemen terbesar (atau terkecil) dari sebuah daftar elemen, dan diletakkan pada akhir (atau awal) dari daftar tersebut. Heap sort menyelesaikan sebuah pengurutan menggunakan struktur data yang disebut heap. Heap merupakan sebuah pohon biner hampir lengkap dimana isi dari simpul ayah selalu lebih besar dari isi simpul anak-anaknya sehingga simpul akar selalu merupakan elemen terbesar.

Algoritma :

  1. Buat suatu heap.
  2. Ambil isi dari root masukkan kedalam sebuah array.
  3. Hapus element root dengan mempertahankan properti heap.
  4. Ulangi sampai tree menjadi kosong

Teknik sorting yang mengurut data dari besar ke kecil disebut

Implementasi Heap Sort dalam bahasa C++

Teknik sorting yang mengurut data dari besar ke kecil disebut

#include <iostream> #include <conio.h> #include <stdio.h> #include <iomanip> #ifdef __cplusplus__ #include <cstdlib> #else #include <stdlib.h> #endif using namespace std; int main() {         int x[5];         int i;         int temp;         int minindex;         int j;         if (system("CLS")) system("clear");         cout << " >> Program Selection Sort << \n" << endl;         cout << "masukkan nilai x :\n";         for (i = 0; i<5; i++)         {                 cout << "x[" << i << "] = "; cin >> x[i];         }         cout << "\n Data sebelum di sort :";         for (i = 0; i<5; i++)         {                 cout << setw(4) << x[i];         }         for (i = 0; i<5 - 1; i++) //perulangan iterasi         {                 minindex = i;                 for (j = i + 1; j<5; j++) //perulangan membandingkan data                 {                         if (x[minindex]>x[j])                         {                                 minindex = j;                         }                 }                 temp = x[i];                 x[i] = x[minindex];                 x[minindex] = temp;         }         cout << "\n Data setelah di sort :";         for (i = 0; i<5; i++)         {                 cout << setw(4) << x[i];         }         getchar();         cout << endl;         system("pause"); }

Insertion sort adalah sebuah metode pengurutan data dengan menempatkan setiap elemen data pada pisisinya dengan cara melakukan perbandingan dengan data – data yang ada. Ide algoritma dari metode insertion sort ini dapat dianalogikan sama seperti mengurutkan kartu, dimana jika suatu kartu dipindah tempatkan menurut posisinya, maka kartu yang lain akan bergeser mundur atau maju sesuai kondisi pemindahanan kartu tersebut. Dalam pengurutan data, metode ini dipakai bertujuan untuk menjadikan bagian sisi kiri array terurutkan sampai dengan seluruh array diurutkan.

Penganalogian Insertion Sort dengan pengurutan kartu :

Berikut menjelaskan bagaimana algoritma Insertion Sort bekerja dalam pengurutan kartu, Anggaplah kita ingi mengurutkan satu set kartu dari kartu yang bernilai paling kecil hingga yang paling besar.

  1. Dimulai dengan posisi tangan kosong, dan semua kartu berada diatas meja. dan anggaplah kita akan menyusun kartu ke tangan kiri kita.
  2. Mengamil kartu pertama dari meja dan meletakannya ke tangan kiri.
  3. Mengambil kartu kedua dan membandingkannya dengan kartu yang sudah ada di tangan kiri.
  4. Jika kartu yang diambil dari meja memenuhi syarat perbandingan, maka kartu tersebut akan diletakan didepan kartu yang dibandingkan, serta kartu yang lain yang telah dibandingkan akan bergeser mundur (ke belakang).

Teknik sorting yang mengurut data dari besar ke kecil disebut

Implementasi Insertion Sort dalam bahasa C++

#include <iostream> #include <conio.h> using namespace std; int main() {         int i, j, n, data[10], simpan, min, posisi;         cout << "Masukkan banyak data = "; cin >> n;         for (i = 1; i <= n; i++)         {                 cout << "Data ke - " << i << " = "; cin >> data[i];         }         for (i = 1; i<n; i++)         {                 for (j = i + 1; j <= n; j++)                 {                         if (data[i]>data[j])                         {                                 simpan = data[i];                                 data[i] = data[j];                                 data[j] = simpan;                         }                 }         }         cout << "Hasil sorting adalah = ";         for (i = 1; i <= n; i++)                 cout << data[i] << " ";         getchar();         system("pause"); }

Tree sort adalah metode sorting dengan cara membangun pohon biner dengan menampilkan 3 hasik output:

Pre Order, In Order, Post Order.

Teknik sorting yang mengurut data dari besar ke kecil disebut

Perhatikan gambar di bawah ini.

Teknik sorting yang mengurut data dari besar ke kecil disebut

Ketentuan dari gambar diatas adalah :

  1. Menjadi akar ,
  2. Menjadi subtree kiri,
  3. Menjadi subtree kanan,
  4. Menjadi daun dari subtree kiri ,
  5. Menjadi daun dari subtree kanan.

Implementasi Tree Sort dalam bahasa C++

#include<iostream> using namespace std; struct tree{     int info;     tree *Left, *Right; }; tree *root; class TreeSort{     public:         int no_of_elements;         int elements[10];     public:         void getarray();         void sortit();         void insert1(int);         tree *insert2(tree *, tree *);         void display(tree *); }; void TreeSort::getarray(){     cout<<"How many elements? ";     cin>>no_of_elements;     cout<<"Insert array of element to sort: ";     for(int i=0;i<no_of_elements;i++){         cin>>elements[i];     } } void TreeSort::sortit(){     for(int i = 0; i  < no_of_elements; i++){         insert1(elements[i]);     } } tree* TreeSort::insert2(tree *temp,tree *newnode){     if(temp==NULL){         temp=newnode;     }     else if(temp->info < newnode->info){         insert2(temp->Right,newnode);         if(temp->Right==NULL)             temp->Right=newnode;     }     else{         insert2(temp->Left,newnode);         if(temp->Left==NULL)             temp->Left=newnode;     }     return temp; } void TreeSort::insert1(int n){     tree *temp=root,*newnode;     newnode=new tree;     newnode->Left=NULL;     newnode->Right=NULL;     newnode->info=n;     root=insert2(temp,newnode); } /* Inorder traversal */ void TreeSort::display(tree *t = root){     if(root==NULL){         cout<<"Nothing to display";     }else     if(t!=NULL){         display(t->Left);         cout<<t->info<<" ";         display(t->Right);     } } int main(){     TreeSort TS;     TS.getarray();     TS.sortit();     TS.display();     return 0; }  

Algoritma sortir yang efisien yang ditulis oleh C.A.R. Hoare pada 1962. Dasar strateginya adalah “memecah dan menguasai”. Quicksort dimulai dengan menscan daftar yang disortir untuk nilai median. Nilai ini, yang disebut tumpuan (pivot), kemudian dipindahkan ke satu sisi pada daftar dan butir-butir yang nilainya lebih besar dari tumpuan di pindahkan ke sisi lain.

Algoritma ini mengambil salah satu elemen secara acak (biasanya dari tengah) yang disebut dengan pivot  lalu menyimpan semua elemen yang lebih kecil di sebelah kiri pivot  dan semua elemen yang lebih besar di sebelah kanan pivot. Hal ini dilakukan secara rekursif terhadap elemen di sebelah kiri dan kanannya sampai semua elemen sudah terurut.

Ide dari algoritma ini 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

Implementasi Quick Sort dalam bahasa C++

Merge sort merupakan algoritma pengurutan dalam ilmu komputer yang dirancang untuk memenuhi kebutuhan pengurutan atas suatu rangkaian data yang tidak memungkinkan untuk ditampung dalam memori komputer karena jumlahnya yang terlalu besar. Algoritma ini ditemukan oleh John von Neumann pada tahun 1945.

Algoritma dirumuskan dalam 3 langkah berpola divide-and-conquer. Berikut menjelaskan langkah kerja dari Merge sort.

Memilah elemen – elemen dari rangkaian data menjadi dua bagian.

Conquer setiap bagian dengan memanggil prosedur merge sort secara rekursif

Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan

Proses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah terurut sesuai rangkaian.

Implementasi Merge Sort dalam bahasa C++

Merupakan algoritma yang stau jenis dengan insertion sort, metode ini disebut juga dengan metode pertambahan menurun (diminishing increment). Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959, sehingga sering disebut dengan Metode Shell Sort. Metode ini mengurutkan data dengan cara membandingkan suatu data dengan data lain yang memiliki jarak tertentu, kemudian dilakukan penukaran bila diperlukan.