P. 1
Algoritma Dan Kompleksitas Mujan 0112

Algoritma Dan Kompleksitas Mujan 0112

|Views: 61|Likes:
Published by Joko Pinter

More info:

Published by: Joko Pinter on May 25, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

01/17/2013

pdf

text

original

By: Mujan - 43A87006100112

ALGORITMA DAN KOMPLEKSITAS
SORTING
NPM : 43A87006100112
Nama : Mujan
Dosen : Heri Juhari, S.Kom

Soal:
Buatlah 200 data urutkan dengan system sort salah satu:
1. Metode squensial
2. Metode Bineri
3. Metode Radix
4. Metode Heap
5. Metode Merger

- Buat Algoritma
- Buat SnapShot
- Buat Analisi Terhadap Kompleksitas
- Kesimpulan

By: Mujan - 43A87006100112
Metode Radix
Pengertian dan Algoritma
Radix Sort merupakan algoritma pengurutan yang ajaib yang mana mengatur pengurutan
nilainya tanpa melakukan beberapa perbandingan pada data yang dimasukkan. Kata
radix bermakna harafiah posisi dalam angka [1]. Di mana sederhananya, dalam
representasi desimal, radix adalah digitnya. Dalam implementasinya, Radix Sort
merupakan algoritma pengurutan yang cepat, mudah, dan sangat efektif. Namun banyak
orang yang berpikir bahwa algoritma ini memiliki banyak batasan di mana untuk kasus-
kasus tertentu tidak dapat dilakukan dengan algoritma ini, seperti pengurutan bilangan
pecahan dan bilangan negatif,
Berdasarkan urutan pemrosesan radixnya, Radix Sort terbagi 2 macam, yaitu: LSD
(Least Significant Digit), di mana pemrosesan dimulai dari radix yang paling tidak
signifikan. dan MSD (Most Significant Digit), di mana pemrosesan dimulai dari radix
yang paling signifikan.
Proses dasar Radix Sort adalah mengkategorikan data-data menjadi subkumpulan-
subkumpulan data sesuai dengan nilai radix-nya, mengkonkatenasinya, kemudian
mengkategorikannya kembali berdasar nilai radix lainnya.

Implementasi dari algoritma tersebut dibuat dengan menggunakan bahasa Pascal, yang
direalisasikan dengan menggunakan queue sebagai representasi tiap kategori radix untuk
pengkategorian.
Array A adalah array input, dan array B adalah array A yang sudah terurut.


By: Mujan - 43A87006100112
Procedure RadixSort (A : TArray; var B : TArray; d : byte);
var
KatRadix : array [0..9] of Queue;
i, x, ctr : integer;
pembagi : longword;
begin
{--- mengkopi A ke B ---}
for i:=1 to n do
B[i] := A[i];

pembagi := 1;
for x:=1 to d do
begin
{--- inisialisasi KatRadix ---}
for i:=0 to 9 do
InitQueue (KatRadix[i]);

{--- dikategorikan ---}
for i:=1 to n do
i: Enqueue (KatRadix [(B[i] div pembagi) mod 10], B[i]);
B[i] := 0;
{--- dikonkat ---}
ctr := 0;
for i:=0 to 9 do
begin
while (NOT IsQueueEmpty (KatRadix[i])) do
begin
ctr := ctr + 1;
B[ctr]:=DeQueue (KatRadix [i]);
end;
end;

pembagi := pembagi * 10;
end;
end;

Snapshot
Berdasar dari soal di atas untuk mengurutkan 200 data maka saya ambil sebuah
kumpulan data bilangan bulat dengan jumlah digit 3.
No 1 2 3 4 5 6 7 8 9 10
1 234 435 345 678 890 456 424 321 245 764
2 223 445 332 225 367 980 221 232 243 534
3 237 112 141 554 553 224 667 890 708 234
1
Baca kiri- knn -bwh
By: Mujan - 43A87006100112
4
123 552 565 575 345 124 231 232 331 894
5 556 787 334 657 544 343 332 344 545 578
6
887 667 445 343 111 222 330 887 778 776
7 818 886 778 668 998 999 456 125 136 557
8 345 002 399 899 881 770 776 775 568 436
9 321 222 116 113 765 556 432 213 344 987
10 334 445 543 665 775 442 433 567 878 432
11 664 665 666 667 668 669 670 671 672 325
12 234 235 236 237 238 239 240 241 242 514
13 546 549 548 547 550 554 552 551 553 564
14 679 677 678 680 684 682 681 683 685 321
15 657 659 658 660 664 662 663 661 665 023
16 377 373 379 380 384 381 383 382 385 043
17 270 278 279 280 281 282 283 284 285 056
18 140 156 147 148 149 150 151 152 153 098
19 227 220 229 230 231 236 233 239 136 101
20 050 079 043 042 879 983 069 089 981 746

Tabel 1.
Pertama kali, data dibagi-bagi sesuai dengan digit terkanan:
Warna menunjukkan urutan proses dari setiap pindah baris (1-20), misal isi Tabel 1.
cel(1,1) 234 warna merah jambu merupakan urutan proses pertama di tabel 2.
Dilanjutkan sampai kolom ke 10. Lalu dilanjutkan baris kedua, ketiga dst. Angka 234 di
tahap ini dimasukkan ke kolom dengan no 4. Yang ke dua 235 masukkan ke kolom
dengan no 5. (lihat angka paling kanan, sesuaikan dengan kolomnya)

Kategori digit
0 1 2 3 4 5 6 7 8 9
isi
1 890 321 332 223 234 435 456 367 678 999
2 980 221 232 243 424 345 556 237 708 399
3 890 141 112 553 764 245 776 667 578 899
4 330 231 552 123 534 445 886 787 778 669
5 770 331 232 343 554 225 456 657 818 239
6 670 111 332 343 224 565 136 887 778 549
7 240 881 222 113 234 575 776 667 668 679
8 550 321 002 213 124 345 436 887 998 659
9 680 671 222 543 894 545 116 557 568 379
10 660 241 432 433 334 445 556 987 878 279
2
1
2
By: Mujan - 43A87006100112
11 380 551 442 553 544 125 666 567 668 149
12 270 681 432 683 344 345 236 667 238 229
13 280 321 672 663 344 775 546 237 548 239
14 140 661 242 023 334 765 056 547 678 079
15 150 381 552 373 664 445 156 677 658 879
16 220 281 682 383 234 665 236 657 278 069
17 230 151 662 043 514 775 136 377 148 089
18 050 231 382 283 554 665 746 147 098
19 101 282 153 564 325 227
20 981 152 233 684 235
21 042 043 664 685
22 983 384 665
23 284 385
24 285
Tabel 2
Hasil pengkategorian tersebut lalu digabung kembali dengan metode konkatenasi
menjadi:
890, 980, 890,…050,
321, 221, 141,…981,
…..

Baca dari kolom 0 kebawah, kemudian dilanjutkan kolom 1 kebawah, kemudian kolom 2
dan seterusnya
Kemudian pengkategorian dilakukan kembali, namun kali ini berdasar digit kedua atau
digit tengah, dan jangan lupa bahwa urutan pada tiap sub kumpulan data harus sesuai
dengan urutan kemunculan pada kumpulan data.
Kategori digit
0 1 2 3 4 5 6 7 8 9
isi
1 101 111 220 330 240 550 660 770 980 890
1
2
By: Mujan - 43A87006100112
2 002 112 321 230 140 150 661 670 680 890
3 708 113 221 231 141 050 662 270 380 894
4

213 321 331 241 551 663 671 280 998
5

514 321 231 442 151 764 672 881 098
6

116 222 332 242 552 664 373 681 999
7

818 222 232 042 552 564 575 381 399
8

223 232 243 152 664 775 281 899
9

123 332 343 553 565 775 981
10

023 432 343 553 765 776 682
11

424 432 543 153 665 776 382
12

224 433 043 554 665 677 282
13

124 233 043 554 665 377 683
14

225 234 544 456 666 678 383
15

125 534 344 556 367 578 283
16

325 234 344 456 667 778 983
17

227 334 345 556 667 778 684
18

229 334 245 056 567 878 384
19

234 445 156 667 678 284
20

435 345 657 668 278 685
21

235 545 557 568 679 385
22

136 445 657 668 379 285
23

436 345 658 669 279 886
24

236 445 659 069 079 787
25

236 546

879 887
26

136 746

887
27

237 547

987
28

237 147

089
29

238 548


30

239 148


31

239 549


32 149
Tabel 3
Yang kemudian dikonkatenasi kembali kembali menjadi:
101,002,708
111,112,113,...818
…… dst
By: Mujan - 43A87006100112
Baca dari kolom 0 dari atas ke bawah, kemudian dilanjutkan kolom 1 dari atas ke bawah,
kemudian kolom 2 dan seterusnya
Kemudian langkah ketiga, atau langkah terakhir pada contoh ini adalah pengkategorian
kembali berdasar digit terkiri, atau yang paling signifikan.
Kategori digit
0 1 2 3 4 5 6 7 8 9
isi
1 002 101 213 321 424 514 657 708 818 980
2 023 111 220 321 432 534 657 746 878 981
3 042 112 221 321 432 543 658 764 879 983
4 043 113 222 325 433 544 659 765 881 987
5 043 116 222 330 435 545 660 770 886 998
6 050 123 223 331 436 546 661 775 887 999
7 056 124 224 332 442 547 662 775 887
8 069 125 225 332 445 548 663 776 890
9 079 136 227 334 445 549 664 776 890
10 089 136 229 334 445 550 664 778 894
11 098 140 230 343 456 551 665 778 899
12

141 231 343 456 552 665 787


13

147 231 344

552 665


14

148 232 344

553 666


15

149 232 345

553 667


16

150 233 345

554 667


17

151 234 345

554 667


18

152 234 367

556 668


19

153 234 373

556 668


20

156 235 377

557 669


21

236 379

564 670


22

236 380

565 671



23

237 381

567 672


24

237 382

568 677


25

238 383

575 678


26

239 384

578 678


27

239 385

679


28

240 399

680


29

241

681


30

242

682


31

243

683


32

245

684


1
2
1
2
By: Mujan - 43A87006100112
33

270

685


34

278


35

279


36

280


37

281


38

282


39

283


40

284


41 285
Tabel 4.
Yang kemudian di konkatenasi lagi menjadi
002,023,042,..098
101,111,112…156
Baca dari kolom 0 ke bawah, kemudian dilanjutkan kolom 1 kebawah, kemudian kolom
2 dan seterusnya (Pengurutan dari kecil ke besar /Ascending). Kalau sebaliknya
(Descending) berarti di baca dari angka paling bawah di kolom 9 keatas, kemudian
kolom 8 dari baris paling bawah keatas dan seterusnya sampai kolom 0.
Kalau dibuat tabel hasil akhirnya sebagai berikut (ascending):
0 1 2 3 4 5 6 7 8 9 10
1 2 23 42 43 43 50 56 69 79 89
2 98 101 111 112 113 116 123 124 125 136
3 136 140 141 147 148 149 150 151 152 153
4 156 213 220 221 222 222 223 224 225 227
5 229 230 231 231 232 232 233 234 234 234
6 235 236 236 237 237 238 239 239 240 241
7 242 243 245 270 278 279 280 281 282 283
8 284 285 321 321 321 325 330 331 332 332
9 334 334 343 343 344 344 345 345 345 367
10 373 377 379 380 381 382 383 384 385 399
11 424 432 432 433 435 436 442 445 445 445
12 456 456 514 534 543 544 545 546 547 548
13 549 550 551 552 552 553 553 554 554 556
14 556 557 564 565 567 568 575 578 657 657
By: Mujan - 43A87006100112
15 658 659 660 661 662 663 664 664 665 665
16 665 666 667 667 667 668 668 669 670 671
17 672 677 678 678 679 680 681 682 683 684
18 685 708 746 764 765 770 775 775 776 776
19 778 778 787 818 878 879 881 886 887 887
20 890 890 894 899 980 981 983 987 998 999

Tabel 5.
Baca dari baris 1 (darri kiri ke kanan) sampai selesai kemudian baru dilanjutkan baris
dua dan seterusnya.
Yang merupakan hasil akhir dari metode pengurutan ini. Dimana data relah terurut
dengan metode radix sort.

Analisis dan Kesimpulan
Ada beberapa masalah untuk Radix Sort yang membuatnya kurang disukai dibandingkan
jenis sorting lainnya, seperti dalam hal mengurutkan bilangan bulat dan negatif.
Kecepatan Radix Sort sebagian besar bergantung pada operasi dasar, dan jika operasi
tidak cukup efisien, Radix Sort dapat lebih lambat dibandingkan dengan beberapa
algoritma lain seperti Quick Sort dan Merge Sort. Operasi ini termasuk memasukkan dan
menghapus fungsi sublists dan proses mengisolasi angka yang diinginkan.
Jika nomor tersebut bukan dari panjang yang sama, maka tes diperlukan untuk
memeriksa digit tambahan yang perlu menyortir. Hal ini dapat menjadi salah satu bagian
paling lambat Radix Sort, dan ini adalah salah satu yang paling sulit untuk membuat
efisien.
By: Mujan - 43A87006100112
Radix Sort juga dapat mengambil ruang lebih dari algoritma pengurutan lain, karena di
samping array yang akan diurutkan, Kita harus memiliki subdaftar untuk masing-masing
mungkin digit atau huruf. Jika Anda mengurutkan kata-kata bahasa Inggris murni, Anda
akan memerlukan paling sedikit 26 sublists berbeda, dan jika Anda mengurutkan kata-
kata alfanumerik atau kalimat, Anda mungkin akan membutuhkan lebih dari 40 sublists.
Radix Sort tergantung pada angka atau huruf, Radix Sort juga lebih kurang fleksibel
dibandingkan jenis lainnya. Untuk setiap jenis data yang berbeda, Radix Sortir perlu
ditulis ulang, dan jika urutan perubahan penyortiran, menyortir perlu ditulis ulang lagi,.
Singkatnya, Radix Sort membutuhkan lebih banyak waktu untuk menulis dan sangat sulit
untuk menulis tujuan umum Radix Sort, yang dapat menangani semua jenis data.
Dengan kompleksitas yang beragam (panjang data, angka atau huruf, negatif dan
decimal data yang mau diurutkan) maka radix sort masih kurang efisien.

di mana pemrosesan dimulai dari radix yang paling signifikan. Proses dasar Radix Sort adalah mengkategorikan data-data menjadi subkumpulansubkumpulan data sesuai dengan nilai radix-nya. Dalam implementasinya. Array A adalah array input.Metode Radix Pengertian dan Algoritma Radix Sort merupakan algoritma pengurutan yang ajaib yang mana mengatur pengurutan nilainya tanpa melakukan beberapa perbandingan pada data yang dimasukkan. di mana pemrosesan dimulai dari radix yang paling tidak signifikan. radix adalah digitnya. Implementasi dari algoritma tersebut dibuat dengan menggunakan bahasa Pascal. Radix Sort merupakan algoritma pengurutan yang cepat. mudah. Di mana sederhananya. Berdasarkan urutan pemrosesan radixnya. dan array B adalah array A yang sudah terurut. Kata radix bermakna harafiah posisi dalam angka [1]. Namun banyak orang yang berpikir bahwa algoritma ini memiliki banyak batasan di mana untuk kasuskasus tertentu tidak dapat dilakukan dengan algoritma ini.43A87006100112 . kemudian mengkategorikannya kembali berdasar nilai radix lainnya. dan MSD (Most Significant Digit). Radix Sort terbagi 2 macam. yaitu: LSD (Least Significant Digit). dalam representasi desimal. seperti pengurutan bilangan pecahan dan bilangan negatif. By: Mujan . yang direalisasikan dengan menggunakan queue sebagai representasi tiap kategori radix untuk pengkategorian. mengkonkatenasinya. dan sangat efektif.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->