Laporan Radix Sort

18
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

description

algoritma dan struktur data

Transcript of Laporan Radix Sort

BAB IPENDAHULUAN1.1. Latar BelakangTeknologi 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 MasalahDalam 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 sort3. Algoritma radix sort4. Kelebihan dan kekurangan radix sort pada operasi array mengunakan metode LSD . 1.4. Tujuan1. Mengetahui radix sort2. Mengetahui kekurangan dan kelebihan radix sort

BAB IITINJAUAN PUSTAKA2.1. RADIX SORTRadix 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 IIIMETODEA. ANALISISBerikut 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 , 8Catatan : 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. CODEPseudocode 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.0Realisasi Radix Sort dengan Bahasa Pemrograman C#

Gambar 1.2Realisasi Radix Sort dengan Bahasa Pemrograman C#

Gambar 1.3Realisasi Radix Sort dengan Bahasa Pemrograman C#

BAB IVHASIL DAN PEMBAHASAN4.1. HASILBerikut hasil dari coding radix sort pada Visual Studio.

Gambar 1.4Pengujian implementasi radix sort pada Visual Studio

Gambar 1.5Hasil yang ditampilkan pada Visual StudioPada 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. PEMBAHASANRadix 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 VKESIMPULAN DAN SARAN5.1. Kesimpulan1. 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 PUSTAKARahman, Arief. 2010. Analisis Algoritma Radix Sort. BandungDamas, 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 4INTAN KURNIASARI : 114.13.1439/ NILAI = 20ANITA SRI HANDAYANI: 114.13.1430/NILAI = 35MERDI WALELA: 114.13.1436/NILAI = 20