Anda di halaman 1dari 14

BAB I

PENDAHULUAN
1.1. Latar Belakang
Teknologi informasi sudah berkembang sangat pesat pada masa ini. Pencarian
informasi yang berjumlah besardalam waktu yang cepat sangat dibutuhkan sebagai upaya
efisiensi waktu. Pencarian sebuah dokumen akan lebih cepat apabila informasi-informasi
mengenai dokumen yang dicari tersebut diurutkan terlebih dahulu, daripada pencarian
pencarian dokumen tanpa pengurutan. Sehingga proses pengurutan (sorting) merupakan salah
satu bagian penting dalam proses pencarian informasi. Beberapa algoritma pengurutan
(sorting) yang sering digunakan yaitu bubble sort, bidirectional bubble sort, heap sort, shell
sort, tree sort, radix sort, merge sort, insertion sort, quick sort, dan selection sort.
Dalam makalah ini penulis membahas tentang radix sort, bagaimana metodenya, cara
kerjanya, dan apa kelebihan serta kekurangannya. Disamping menjelaskan banyak hal tentang
radix sort, penulis juga menampilkan contoh program yang menggunakan Radix Sort dalam
bahasa pemograman C#.
Metode Radix Sort perlu untuk dipahami, sebab akan membantu programmer dalam
pembuatan program sorting yang menggunakan jumlah data yang banyak dalam waktu yang
cukup singkat. Karena alasan itu, penulis membuat paper tentang metode radix sort ini
sebagai referensi dan mengisi tugas presentasi sorting.
Penulisan paper ini tidak lepas dari berbagai kekurangan, maka dari itu diharapkan
kritik serta saran yang membangun agar kemudian hari penulis dapat membuat paper dengan
baik dan semaksimal mungkin.


1.2. Perumusan Masalah
Dalam paper ini penulis akan membahas tentang radix sort beserta metode dan
implementasinya.
1.3. Pembatasan Masalah
Pembahasan ini adalah tentang :
1. Pengertian tentang radix sort
2. Metode pengurutan array dengan radix sort
3. Algoritma radix sort
4. Kelebihan dan kekurangan radix sort pada operasi array mengunakan metode
LSD .
1.4. Tujuan
1. Mengetahui radix sort
2. Mengetahui kekurangan dan kelebihan radix sort









BAB II
TINJAUAN PUSTAKA
2.1. RADIX SORT
Radix Sort merupakan salah satu algoritma Non-Comparasion Sort (pengurutan tanpa
pembandingan). Proses ynang dilakukan dalam metode ini adalah mengklasifikasikan data
array sesuai dengan kategori terurut yang tertentu, dan tiap kategori array dilakukan
pengklasifikasian lagi, dan seterusnya sesuai kebutuhan, lalu subkategori-kategori array
tersebut digabungkan kembali.
Secara harfiah Radix dapat diartikan sebagai posisi dalam angka, karena metode ini
pertamakalinya mengurutkan nilai-nilai input berdasarkan radix pertamanya, lalu pengurutan
dilakukan berdasarkan radix keduanya, dan begitu seterusnya.
Untuk kasus bilangan bulat (integer), algoritma ini akan mengurutkan data dengan
mengelompokkan data array berdasarkan digit yang memiliki significant position dan value
yang sama. Kelompok digit ini ditampung dalam suatu variable bucket. Struktur datanya
direpresentasikan dengan array. Algoritma ini pertama kali diperkenalkan pada tahun 1887
oleh Herman Hollerith pada mesin tabulasi.
Ada dua cara radix sort saat ini :
LSD (least significant digit) radix sort, yaitu radix sort yang mengurutkan data
dimulai dari digit terkecil. Algoritma ini cenderung stabil karena tetap
mengikuti urutan awal data-data sebelum diurutkan.
MSD (most significant digit) radix sort, yaitu radix sort yang mengurutkan data
dimulai dari digit terbesar. Algoritma ini lebih susah untuk direalisasikan
daripada LSD radix sort, dan biasanya tidak mengikuti urutan awal data-data
yang akan diurutkan.
BAB III
METODE
A. ANALISIS
Berikut ini metode radix sort secara LSD (least significant digit) :
Misalkan terdapat sebuah array dengan elemen 34 , 52 , 124 , 8 , 4 , 10:
Pass pertama :
Urutkan array berdasarkan digit terkecil (satuan) menjadi :
10 , 52 , 34 , 124 , 4 , 8
Catatan : 124 ditulis sebelum 4 karena pada urutan awal, 124 terletak sebelum 4.
Pada pass ini, terbentuk array of bucket size berikut:
1 (ukuran bucket digit 0 : 010)
1 (ukuran bucket digit 2 : 052)
3 (ukuran bucket digit 4 : 034 , 124 , 004)
1 (ukuran bucket digit 8 : 008)
Pass kedua :
Setelah itu, urutkan array berdasarkan digit selanjutnya (puluhan) menjadi :
4 , 8 , 10 , 124 , 34 , 52
Catatan : Bilangan yang tidak memiliki puluhan dianggap memiliki digit puluhan 0.
Pada pass ini, terbentuk array of bucket size berikut:
2 (ukuran bucket digit 0 : 004 , 008)
1 (ukuran bucket digit 1 : 010)
1 (ukuran bucket digit 2 : 124)
1 (ukuran bucket digit 3 : 034)
1 (ukuran bucket digit 5 : 052)
Pass ketiga :
Terakhir, urutkan array berdasarkan digit terbesar (ratusan) menjadi :
4 , 8 , 10 , 34 , 52 , 124
Pada pass ini, terbentuk array of bucket size berikut:
5 (ukuran bucket digit 0 : 004 , 008 , 010 , 034 , 052)
1 (ukuran bucket digit 1 : 124)
Pada contoh di atas, setiap pengurutan digit dilakukan dalam sekali pass. Oleh karena
itu, pada contoh di atas, terjadi tiga kali pass.
Ada banyak variasi yang digunakan dalam LSD radix sort. Perbedaan yang paling
mencolok terletak pada representasi bucket untuk menyimpan digit data-data. Secara umum,
bucket LSD radix sort direpresentasikan dengan array, tetapi dalam beberapa kasus, bucket
dapat direpresentasikan dengan menggunakan queue.
Misalkan sebuah array dengan elemen 170 , 45 , 75 , 90 , 802 , 24 , 2 , 66.
Pass pertama : Data-data dikelompokkan ke dalam queue berdasarkan digit terkecil
dari kanan ke kiri.
Queue yang terbentuk:
0 : 170 , 090
1 : NIL
2 : 002 , 802
3 : NIL
4 : 024
5 : 045 , 075
6 : 066
7 : NIL
8 : NIL
9 : NIL
Isi queue dikembalikan ke array mulai dari head (0) :
170 , 090 , 002 , 802 , 024 , 045 , 075 , 066
Pass kedua : Kelompokkan data-data ke queue berdasarkan digit selanjutnya:
0 : 002 , 802
1 : NIL
2 : 024
3 : NIL
4 : 045
5 : NIL
6 : 066
7 : 170 , 075
8 : NIL
9 : 090
Isi array setelah pemasukan dari queue:
002 , 802 , 024 , 045 , 066 , 170 , 075 , 090
Pass ketiga : Kelompokkan data-data ke queue berdasarkan digit terbesar:
0 : 002 , 024 , 045 , 066 , 075 , 090
1 : 170
2 : NIL
3 : NIL
4 : NIL
5 : NIL
6 : NIL
7 : NIL
8 : 802
9 : NIL
Isi array setelah pemasukan dari queue:
002 , 024 , 045 , 066 , 075 , 090 , 170 , 802
Array telah terurut membesar.
Berdasarkan contoh-contoh di atas, kita dapat menentukan langkah-langkah yang harus
dilakukan dalam algoritma radix sort secara umum:
1. Ambil digit terkecil dari setiap data.
2. Kelompokkan data-data berdasarkan digit. Untuk digit data sama, jangan ubah urutan
data-data.
3. Ulangi langkah pertama untuk digit selanjutnya.
B. CODE
Pseudocode RadixSort dari N bilangan dengan d digit:
RadixSort(A, N, d){
// sort N d-digit integer in the array A
for (J = d down to 1){
Initialise 10 groups to empty
Initialize a counter for each group to 0
for (I = 0; through N-1){
K = Jth digit of A[I]
Place A[I] at the end of group K
Increase Kth counter by 1
}
replace the items in A with all the items in group 0,
followed by all the items in group 1, and so on.
}
}
Realisasi radix sort di C# dapat dilihat pada gambar 1.0 1.3. Representasi bucket
berupa array digunakan di algoritma ini.

Gambar 1.0
Realisasi Radix Sort dengan Bahasa Pemrograman C#

Gambar 1.2
Realisasi Radix Sort dengan Bahasa Pemrograman C#

Gambar 1.3
Realisasi Radix Sort dengan Bahasa Pemrograman C#






BAB IV
HASIL DAN PEMBAHASAN
4.1. HASIL
Berikut hasil dari coding radix sort pada Visual Studio.

Gambar 1.4
Pengujian implementasi radix sort pada Visual Studio

Gambar 1.5
Hasil yang ditampilkan pada Visual Studio
Pada kedua gambar tersebut, tampak Array dengan inputan value acak / tidak terurut
berjumlah 6 value. Diantaranya : Array [6] : {45, 33, 66, 76, 23, 14}. Value tersebut adalah
Array dalam posisi acak, yang kemudian setelah diurutkan dengan algoritma radix sort maka
value tersebut menjadi seperti berikut : Array [6] : {14, 23, 33, 45, 66, 76}.
4.2. PEMBAHASAN
Radix sort merupakan algoritma pengurutan tanpa pembandingan (non-comparison
sorting) adalah algoritma pengurutan yang cepat, efektif, namun penggunaannya terbatas
pada kasus-kasus tertentu dan memerlukan memori tambahan dalam prosesnya. Metode
Radix sort ini adalah mengkategorikan data-data menjadi subkumpulan-subkumpulan data
sesuai dengan nilai radix-nya, mengkonkatenasinya, kemudian mengkategorikannya kembali
berdasar nilai radix lainnya.








BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
1. Radix Sort merupakan salah satu algoritma Non-Comparasion Sort (pengurutan tanpa
pembandingan). Proses ynang dilakukan dalam metode ini adalah mengklasifikasikan
data sesuai dengan kategori terurut yang tertentu, dan tiap kategori dilakukan
pengklasifikasian lagi, dan seterusnya sesuai kebutuhan, lalu subkategori-kategori
tersebut digabungkan kembali.
2. Radix sort memiliki kelebihan dan kekurangan, yaitu:
2.1. Kelebihan :
Algoritma sangat mangkus. Hal ini mengakibatkan algoritma radix sort sangat efektif
untuk data dalam jumlah yang sangat besar sekalipun.
Konsep algoritma mudah dipahami. Algoritma radix sort mengurutkan data
berdasarkan digit, tidak melalui proses perbandingan yang cenderung sulit dipahami.
2.2. Kekurangan :
Realisasi program rumit dan kurang fleksibel untuk digunakan pada tipe data lain.
Realisasi program untuk algoritma radix sort tidak semudah memahami konsep
dasarnya.
Algoritma radix sort membutuhkan bucket untuk mengelompokkan data-data yang
sedang diurutkan. Inisialisasi bucket untuk kasus ini tidak mudah dilakukan.
5.2. Saran :
Jangan menggunakan input berupa elemen value karakter (3a, 3b, 3c), karena
menyebabkan ketidakstabilan pada output.
DAFTAR PUSTAKA
Rahman, Arief. 2010. Analisis Algoritma Radix Sort. Bandung
Damas, Dominikus. Pengkajian Algoritma Pengurutan-Tanpa-Pembandingan Counting Sort
dan Radix Sort. Bandung.
Fathony, Dean, dkk.Implementasi Algoritma Radix Sort dalam Berbagai Kasus Bilangan
Dibandingkan Algoritma Pengurutan yang lain.Bandung.













KELOMPOK 4
INTAN KURNIASARI : 114.13.1439/ NILAI = 20
ANITA SRI HANDAYANI : 114.13.1430/ NILAI = 35
MERDI WALELA : 114.13.1436/ NILAI = 20

Anda mungkin juga menyukai