Jumat, 15 April 2022

ALGORITMA SORTING PADA BAHASA C

APA ITU SORTING ?

Sorting adalah kegiatan mengurutkan data dengan format yang diinginkan. Sedangkan algoritma sorting adalah aturan atau langkah untuk mengurutkan data dengan urutan tertentu. Sorting menjadi penting dalam pencarian data dan memudahkan untuk pembacaan data.

APLIKASI PENUNJANG

  1. CodeBlocks
  2. Dev C++

LANGKAH - LANGKAH PRAKTIKUM

Bubble Sort

Bubble Sort adalah salah satu sorting algorithm yang berulang kali berjalan melalui list yang akan diurutkan, membandingkan setiap pasangan item yang berdekatan, dan menukar mereka jika mereka berada di urutan yang salah. Nilai-nilai yang lebih kecil secara bertahap berjalan ke bagian atas array seperti gelembung yang naik dalam air, sedangkan nilai-nilai yang lebih besar tenggelam ke bagian bawah array

Contoh : 
  • Function algoritma Bubble Sort
  • Pemanggilan function Bubble Sort menggunakan memory allocation

Selection Sort

Selection Sort adalah salah satu sorting algorithm yang bersifat in-place (tidak memerlukan memori tambahan) dan menggunakan konsep perbandingan antar dua elemen. Pada algoritma ini, list dibagi menjadi dua bagian sorted-part (kiri) dan unsorted part (kanan). (Pada kondisi awal, sorted-part masih kosong dan unsorted-part mencakup keseluruhan list.)

Langkah yang dilakukan dalam algoritma ini adalah memilih elemen paling kecil pada unsorted-part (dengan melakukan perbandingan antar elemen), lalu meletakkannya pada bagian paling kanan dari sorted-part. Hal ini dilakukan hingga unsorted-part kosong

Algoritma ini kurang tepat digunakan untuk data dalam jumlah banyak karena kompleksitasnya tergantung jumlah elemen dalam list

BACA JUGA : Teori Rest Client Dan Karakteristiknya

Contoh :
  • Function Algoritma Selection Sort
  • Pemanggilan function Selection Sort menggunakan memory allocation

Insertion Sort

Insertion Sort adalah salah satu sorting algorithm yang bersifat in-place (tidak memerlukan memori tambahan) dan menggunakan konsep perbandingan antar dua elemen. Pada algoritma ini, list dibagi menjadi dua bagian sorted-part (kiri) dan unsorted-part (kanan). (Pada kondisi awal, sorted-part berisi satu elemen paling kiri dan unsorted-part berisi sisa elemen dalam list.)

Langkah yang dilakukan dalam algoritma ini adalah menunjuk elemen paling kiri pada unsorted-part. Elemen ini akan dibandingkan dengan elemen-elemen pada sorted-part secara berurut dan dimasukkan (‘insert’ed) pada posisi yang benar. Hal ini dilakukan hingga unsorted-part kosong.

Algoritma ini kurang tepat digunakan untuk data dalam jumlah banyak karena kompleksitasnya tergantung jumlah elemen dalam list

Contoh :
  • Function Algoritma Insertion Sort 
  • Pemanggilan function Insertion Sort menggunakan memory allocation

Radix Sort

Radix Sort adalah salah satu sorting algorithm yang bersifat not-in-place (memerlukan memori tambahan) dan menggunkan konsep perbandingan least significant digits. Pada algoritma ini, kita perlu menyediakan array of linked list sebagai penampung sementara (bucket).

Langkah yang dilakukan dalam algoritma ini adalah memasukkan tiap elemen dalam list - elemen ke-i sebagai digit ke-n nya ke dalam array[i], dimana n merupakan penentu yang dimulai dari least significant digit. Iterasi dilakukan sebanyak x kali, dimana x merupakan jumlah digit paling besar sebuah elemen dalam list.

Contoh :

  •  Simulasi Radix Sort
Jika terdapat data array[157, 84, 2, 462, 54, 90, 23, 18] dan ingin di sort secara ascending dengan Least Significant Digit Radix Sort: 

Nilai terbesar dari data tersebut adalah 462, yang memiliki 3 digit angka, sehingga akan ada 3 kali iterasi radix sort yang dilakukan.

Pertama, karena kita akan sortir bilangan integer, maka sediakan terlebih dahulu array of linked list sebanyak total satuan angka yang ada, jadi Head linked list yang ada yaitu 10 (karena angka terdiri dari 0 - 9), diberi nama variable Bucket[10] (atau Head[10] jika ingin menggunakan nama variable yang digunakan di modul-modul minggu sebelumnya agar tidak membingungkan) 

          Bucket 0: NULL 
Bucket 1: NULL
Bucket 2: NULL 
Bucket 3: NULL 
Bucket 4: NULL 
Bucket 5: NULL 
Bucket 6: NULL 
Bucket 7: NULL 
Bucket 8: NULL 
Bucket 9: NULL

Lalu, mulailah iterasi :  

Iterasi pertama

Bucket 0 : 090

Bucket 1 :

Bucket 2 : 002 -> 462 

Bucket 3 : 023

Bucket 4 : 084 -> 054

Bucket 5 : 

Bucket 6 : 

Bucket 7 : 157 

Bucket 8 : 018 

Bucket 9 :

Maka, Hasil array setelah iterasi pertama :

[90, 2, 462, 23, 84, 54, 157, 18] 

Iterasi Kedua

Bucket 0 : 002

Bucket 1 : 018

Bucket 2 : 023

Bucket 3 :

Bucket 4 :  

Bucket 5 : 054 -> 157

Bucket 6 : 46

Bucket 7 :

Bucket 8 : 084  

Bucket 9 : 090

Maka, Hasil array setelah iterasi kedua :

[2, 18, 23, 54, 157, 462, 84, 90]

Iterasi Ketiga

Bucket 0 : 002 -> 018 -> 023 -> 054 -> 084 -> 090 

Bucket 1 : 157

Bucket 2 :

Bucket 3 :

Bucket 4 : 462  

Bucket 5 :

Bucket 6 :

Bucket 7 :   

Bucket 8 : 

Bucket 9 : 

Maka, Hasil array setelah iterasi ketiga :

[2, 18, 23, 54, 84, 90, 157, 462] 

Data telah terurut tepat setelah di iterasi ketiga 

  • Implementasi Radix Sort






  • HASIL OUTPUT PROGRAM DIATAS


Sekian Dulu materi sorting di artikel kali ini, semoga artikel ini membantu untuk pekerjaan - pekerjaan programmer lainnya. Terima Kasih

Previous Post
Next Post

post written by:

Seorang anak biasa yang hanya ingin merubah nasib keluarga dan berkeinginan menjadi sukses dan memiliki keluarga sakinah mawadah warohmah dengan orang yang sekarang

0 Post a Comment: