Penjelasan Algoritma Sorting dan Metode Sorting

 Pengertian Algoritma Sorting

Algoritma sorting adalah suatu metode atau teknik untuk mengurutkan data atau elemen-elemen dalam suatu struktur data secara teratur. Algoritma sorting merupakan salah satu konsep penting dalam pemrograman, tujuannya untuk mengubah data yang tidak teratur menjadi urutan yang teratur, misalnya dari data yang tidak terurut menjadi data yang terurut menaik atau menurun.

Menurut Microsoft Book-Shelf, definisi algoritmat pengurutan adalah algoritma untuk meletakkan kumpulan elemen data ke dalam urutan tertentu berdasarkan satu atau beberapa kunci dalam tiap-tiap elemen.

Keuntungan dari data yang sudah dalam keadaan terurutkan antara lain.

  1. Data mudah dicari (misalnya dalam buku telepon atau kamus bahasa), mudah untuk dibetulkan, dihapus, disisip atau digabungkan. Dalam keadaan terurutkan, kita mudah melakukan pengecekan apakah ada data yang hilang.
  2. Melakukan kompilasi program komputer jika tabel-tabel simbol harus dibentuk.
  3. Mempercepat proses pencarian data yang harus dilakukan berulang kali.
Metode Sorting

Untuk melakukan proses pengurutan tersebut dapat digunakan berbagai macam cara atau metode. Beberapa cara metode diantaranya :

  1. Bubble Sort
  2. Insertion Sort
  3. Selection Sort
  4. Merge Sort
  5. Quick Sort
Berikut ini adalah penjelasan dari kelima metode sorting : 

1. Bubble Sort
Bubble sort meupakan metode yang mengurutkan data dengan cara membandingkan masing-masing elemen, kemudian melakukan penukaran bila perlu. Metode ini mudah dipahami dan diprogram, tetapi bila dibandingkan dengan metode lain yang kita pelajari, metode ini merupakan metode yang paling tidak efisien. Analogi bubble sort :
  • Bandingkan nilai pada data ke satu dengan data kedua.
  • Apabila nilai data ke satu lebih besar dari data kedua maka ditukar posisinya.
  • Kemudian data yang lebih besar tersebut dibandingkan lagi dengan data ketiga.
  • Apabila data ke tiga lebih keil dari data ke dua maka tukar posisinya.
  • Dan begitu seterusnya hingga semua data yang ada menjadi terurut.
Contohnya seperti gambar dibawah ini :


Output dari penerapan Bubble Sort seperti gambar pada dibawah ini : 


2. Insertion Sort
Insertion Sort mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil dan dissipkan (insert) ke tempat yang seharusnya. Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusya. Pada penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang. Analogi insertion sort : 
  • Membandingkan data kedua dengan data kesatu
  • Apabila data ke dua lebih kecil maka tukar posisinya
  • Data ketiga dibandingkan dengan data kesatu dan kedua
  • Apabila data ketiga lebih kecil tukar lagi posisinya
  • Data keempat dibandingkan dengan data ketiga hingga kesatu
  • Apabila data keempat lebih kecil dari ketigana maka letakkan data keempat ke posisi paling depan
  • Begitu seterusnya hingga tidak ada lagi data yang dapat dipindahkan.
Contohnya seperti gambar dibawah ini :


Output dari penerapan Insertion Sort seperti gambar pada dibawah ini : 


3. Selection Sort
Metode seleksi melakukan pengurutan dengan cara mencari data yang terkecil kemudian menukarkannya dengan data yang digunakan sebagai acuan atau sering dinamakan pivot. Analogi selection sort : 
  • Memulai pengecekan data dari data ke 1 hingga data ke n.
  • Menentukan bilangan dengan index terkecil dari data pada bilangan tersebut.
  • Menukar bilangan index terkecil dengan bilangan pertama.
  • Begitu seterusnya hingga data berhasil diurutkan semuanya.
Contohnya seperti gambar dibawah ini :


Output dari penerapan Selection Sort seperti gambar pada dibawah ini : 


4. Merge Sort
Merge sort adalah metode pengurutan data yang dilakukan dengan menggunakan cara divide and conquer yaitu dengan memecah kemudian menyelesaikan setiap bagian kemudian menggabungkannya kembali. Pertama data dipecah menjadi 2 bagian dimana bagian pertama merupakan setengah jika data genap) atau setengah minus satu (jika data ganjil) dari seluruh data, kemudian dilakukan pemecahan kembali untuk masing-masing blok sampai hanya terdiri dari satu data tiap blok. Analogi merge sort : 
  • Data dipecah menjadi dua kelompok dimana kelompok pertama adalah setengah apabila data genap atau setengah kurang satu apabila data ganjil dari seluruh data.
  • Kemudian dilakukan pemecahan kembali pada masing-masing kelompok hingga hanya terdapat satu data pada satu kelompok.
  • Setelah digabungkan kembali dengan membandingkan pada blok yang sama apakah data pertama lebih besar dari pada data ketengah ditambah satu, jika iya maka data ketengah ditambah satu dipindah menjadi data pertama.
  • Kemudian data pertama tadi hingga data tengah dipindah menjadi data kedua sampai data ketengah ditambah satu.
  • Begitu seterusya sehingga membentuk sebuah data yang tersusun dalam satu kelompok yang utuh.
Contohnya seperti gambar dibawah ini :


Output dari penerapan Merge Sort seperti gambar pada dibawah ini : 


5. Quick Sort
Quick sort adalah algoritma Divide dan Conquer. Quick Sort mengambil elemen sebagai pivot dan mempartisi array yang diberikan di sekitar pivot yang dipilih.
  • Mempunyai data A yang memiliki N elemen, pilih sembarang elemen dari data tersebut biasanya elemen pertama misalkan elemen x
  • Kemudian semua elemen tersebut disusun dengan menempatkan x pada posisi j sedemikian rupa sehingga elemen ke satu sampai pada j-1 dan memiliki nilai yang lebih besar dari x
  • Begitu seterusnya setiap sub data
Contohnya seperti gambar dibawah ini :


Output dari penerapan Quick Sort seperti gambar pada dibawah ini : 


Jika penasaran dengan hasil program yang saya buat pada gambar. Kalian bisa lihat Link Google Colab saya ini : 















Komentar