fh

fh
vh

makalah buble sort dan counting sort



BAB I
PENDAHULUAN
1.1 Latar Belakang
Pengurutan dalam pengolahan data dirasakan sangat penting dalam Teknologi Informasi. Kita tahu bahwa pemecahan permasalahan pengolahan data dapat menjadi lebih efektif dan efisien bila data sudah dalam keadaan terurut. Seperti dalam proses pencarian data (searching), algoritma pencarian tingkat lanjut yang lebih efektif daripada cara konvensional seperti Binary Search ataupun Interpolation Search membutuhkan data yang sudah terurut. Contoh lain di mana data terurut dibutuhkan adalah dalam penggabungan data menggunakan metode merging.
Pengurutan adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending) atau menurun (descending). Adanya kebutuhan terhadap proses pengurutan memunculkan bermacam-macam metode pengurutan. Tidak ada metode yang terbaik untuk pengurutan. Kebanyakan metode pengurutan sederhana hanya bagus untuk volume data yang kecil tetapi lambat untuk ukuran data yang besar. Metode pengurutan yang lebih cepat pun (seperti quick sort dan merge sort) memang bagus untuk mengurutkan data yang banyak, tetapi tidak bagus untuk ukuran data yang sedikit karena memerlukan beban tambahan (overhead) yang boros waktu dan memori.
Di antara banyak algoritma pengurutan terdapat Comparison Sort atau pengurutan dengan pembandingan merupakan proses pengurutan dengan melakukan pembandingan antardata, yang kemudian diikuti dengan pertukaran data bila tidak sesuai dengan syarat keterurutan tertentu.
1.2 Rumusan Masalah
Berdasarkan  latar belakang  diatas, dapat ditarik beberapa rumusan masalah, yaitu sebagai berikut :
1.2.1              Apa yang dimaksud dengan Bubble Sort?
1.2.2              Bagaimana ilustrasi dari Bubble Sort?
1.2.3             Bagaimana  notasi algoritmik dan kompleksitas waktu dari Bubble Sort  tersebut?
1.2.4              Bagaimana kelebihan dan kelemahan dari Bubble Sort?
1.2.5              Apa yang dimaksud dengan Counting Sort Algorithm?
1.2.6              Bagaimana Implementasi Counting Sort?
1.2.7              Bagaimana algoritma dan kompleksitas waktu Counting Sort?

1.3      Tujuan
1.3.1              Untuk mengetahui apa yang dimaksud dengan Bubble Sort.
1.3.2              Untuk mengetahui bagaimana ilustrasi Bubble Sort.
1.3.3             Untuk mengetahui bagaimana  notasi algoritmik dan kompleksitas waktu dari Bubble Sort tersebut.
1.3.4             Untuk mengetahui bagaimana kelebihan dan kelemahan dari Bubble Sort.
1.3.5              Untuk mengethaui pengertian Counting Sort Algorithm.
1.3.6              Untuk mengetahui bagaimana implementasi Counting Sort.
1.3.7             Untuk mengetahui bagaimana algoritma dan kompleksitas waktu Counting Sort.












BAB II
PEMBAHASAN
2.1 Ide Dasar Bubble Sort
Algoritma bubble sort adalah salah satu algoritma pengurutan yang paling simple, baik dalam hal pengertian maupun penerapannya. Ide dari algoritma ini adalah mengulang proses pembandingan antara tiap-tiap elemen array dan menukarnya apabila urutannya salah. Pembandingan elemen-elemen ini akan terus diulang hingga tidak perlu dilakukan penukaran lagi. Algoritma ini termasuk dalam golongan algoritma comparison sort, karena menggunakan perbandingan dalam operasi antar elemennya.
.Diberi nama “Bubble” karena proses pengurutan secara berangsur-angsur bergerak/berpindah ke posisinya yang tepat, seperti gelembung yang keluar dari sebuah gelas bersoda. Gagasan dasar dari algoritma Bubble Sort adalah membandingkan sepasang elemen yang berurutan di dalam larik dan mempertukarkan keduanya jika perlu. Nama bubble sort ini berasal dari sifat elemen terbesar yang selalu naik ke atas seperti bubble.
Ide dari bubble sort adalah sebagai berikut :
F     Algoritma dimulai dari elemen paling awal.
F     2 buah elemen pertama dari list dibandingkan.
F     Jika elemen pertama lebih besar dari elemen kedua,dilakukan pertukaran.
F     Langkah 2 dan 3 dilakukan lagi terhadap elemen kedua dan ketiga, seterusnya sampai ke ujung elemen
F     Bila sudah sampai ke ujung dilakukan lagi ke awal sampai tidak ada terjadi lagi pertukaran elemen.
F     Bila tidak ada pertukaran elemen lagi, maka list elemen sudah terurut
Algoritma ini seolah-olah menggeser satu per satu elemen dari kanan ke kiri atau kiri ke kanan, tergantung jenis pengurutannya, ascending atau descending.
F     Pengurutan Ascending : Jika elemen sekarang lebih besar dari elemen berikutnya maka kedua elemen tersebut ditukar (Pengurutan dari kecil ke besar).
F     Pengurutan Descending : Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar (Pengurutan dari besar ke kecil).
   Ketika satu proses telah selesai, maka bubble sort akan mengulangi proses, demikian seterusnya dari 0 sampai dengan iterasi sebanyak n-1. Kapan berhentinya? Bubble sort berhenti jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telah diinginkan.
2.2 Ilustrasi dari Bubble Sort
Berikut ini adalah gambaran dari algoritma bubble sort.
Misalkan kita mempunyai sebuah array dengan elemen-elemen “4 2 5 3 9”. Proses yang akan terjadi apabila digunakan algoritma bubblesort adalah sebagai berikut.
Pass pertama
(4 2 5 3 9) menjadi (2 4 5 3 9)
(2 4 5 3 9) menjadi (2 4 5 3 9)
(2 4 5 3 9) menjadi (2 4 3 5 9)
(2 4 3 5 9) menjadi (2 4 3 5 9)
Pass kedua
(2 4 3 5 9) menjadi (2 4 3 5 9)
(2 4 3 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
Pass ketiga
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)

Dapat dilihat pada proses di atas, sebenarnya pada pass kedua, langkah kedua, array telah terurut. Namun algoritma tetap dilanjutkan hingga pass kedua berakhir. Pass ketiga dilakukan karena definisi terurut dalam algoritma bubble sort adalah tidak ada satupun penukaran pada suatu pass, sehingga pass ketiga dibutuhkan untuk memverifikasi keurutan array tersebut.

***Kura-kura dan Kelinci pada Bubble Sort***
Dalam algoritma Bubble Sort ini, terdapat beberapa ciri khas yang cukup menonjol, Ciri khas dari algoritma Bubble Sort ini adalah cepatnya elemen-elemen besar menempati posisi yang tepat dan lambatnya elemen-elemen yang lebih kecil dalam menempati posisi yang tepat. Hal ini dapat ditunjukkan pada contoh data “9 2 4 1” yang akan diurutkan berikut ini menggunakan algoritma Bubble Sort.
Pass Pertama
(9 2 4 1) menjadi (2 9 4 1)
(2 9 4 1) menjadi (2 4 9 1)
(2 4 9 1) menjadi (2 4 1 9)
Pass Kedua
(2 4 1 9) menjadi (2 4 1 9)
(2 4 1 9) menjadi (2 1 4 9)
(2 1 4 9) menjadi (2 1 4 9)
Pass Ketiga
(2 1 4 9) menjadi (1 2 4 9)
(1 2 4 9) menjadi (1 2 4 9)
(1 2 4 9) menjadi (1 2 4 9)
Pass Keempat
(1 2 4 9) menjadi (1 2 4 9)
(1 2 4 9) menjadi (1 2 4 9)
(1 2 4 9) menjadi (1 2 4 9)

Dari proses pengurutan di atas, dapat dilihat bahwa elemen terbesar, “9”, langsung menempati posisi akhir pada pass pertama. Akan tetapi elemen terkecil, “1”, baru menempati posisi pertama pada pass keempat, yaitu pass yang terakhir. Oleh karena itu, muncullah istilah “kura-kura” dan “kelinci” dalam algoritma Bubble Sort. Pada contoh di atas, “1” berperan sebagai “kura-kura”, sedangkan “9” berperan sebagai “kelinci”. Fenomena “kura-kura dan kelinci” ini sering kali mengakibatkan proses pengurutan menjadi lama, terutama elemen “kura-kura”. Hal ini disebabkan oleh “kura-kura” membutuhkan satu kali pass hanya untuk bergeser posisi ke sebelah kiri.


2.3  Notasi Algoritmik dan Kompleksitas Waktu Bubble Sort
2.3.1        Notasi Algoritmik Bubble Sort
















2.3.2                  Kompleksitas Waktu Bubble Sort
Kompleksitas Algoritma Bubble Sort dapat dilihat dari beberapa jenis kasus, yaitu worst-case, average-case, dan best-case.
Kondisi Best-Case
Dalam kasus ini, data yang akan disorting telah terurut sebelumnya, sehingga proses perbandingan hanya dilakukan sebanyak (n-1) kali, dengan satu kali pass. Proses perbandingan dilakukan hanya untuk memverifikasi keurutan data. Contoh Best-Case dapat dilihat pada pengurutan data “1 2 3 4” di bawah ini.

Pass Pertama
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)

Dari proses di atas, dapat dilihat bahwa tidak terjadi penukaran posisi satu kalipun, sehingga tidak dilakukan pass selanjutnya. Perbandingan elemen dilakukan sebanyak tiga kali. Proses perbandingan pada kondisi ini hanya dilakukan sebanyak (n-1) kali. Persamaan Big-O yang diperoleh dari proses ini adalah O(n).

Kondisi Worst-Case
Dalam kasus ini, data terkecil berada pada ujung array. Contoh Worst-Case dapat dilihat pada pengurutan data “4 3 2 1” di bawah ini.

Pass Pertama
(4 3 2 1) menjadi (3 4 2 1)
(3 4 2 1) menjadi (3 2 4 1)
(3 2 4 1) menjadi (3 2 1 4)
Pass Kedua
(3 2 1 4) menjadi (2 3 1 4)
(2 3 1 4) menjadi (2 1 3 4)
(2 1 3 4) menjadi (2 1 3 4)
Pass Ketiga
(2 1 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)
Pass Keempat
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)

Dari langkah pengurutan di atas, terlihat bahwa setiap kali melakukan satu pass, data terkecil akan bergeser ke arah awal sebanyak satu step. Dengan kata lain, untuk menggeser data terkecil dari urutan keempat menuju urutan pertama, dibutuhkan pass sebanyak tiga kali, ditambah satu kali pass untuk memverifikasi. Sehingga jumlah proses pada kondisi best case dapat dirumuskan sebagai berikut.

Jumlah proses = n2+n

Dalam persamaan di atas, n adalah jumlah elemen yang akan diurutkan. Sehingga notasi Big-O yang didapat adalah O(n2). Dengan kata lain, pada kondisi worst-case, algoritma Bubble Sort termasuk dalam kategori algoritma kuadratik.

Kondisi Average-Case
Pada kondisi average-case, jumlah pass ditentukan dari elemen mana yang mengalami penggeseran ke kiri paling banyak. Hal ini dapat ditunjukkan oleh proses pengurutan suatu array, misalkan saja (1 8 6 2). Dari (1 8 6 2), dapat dilihat bahwa yang akan mengalami proses penggeseran paling banyak adalah elemen 2, yaitu sebanyak dua kali.
Pass Pertama
(1 8 6 2) menjadi (1 8 6 2)
(1 8 6 2) menjadi (1 6 8 2)
(1 6 8 2) menjadi (1 6 2 8)
Pass Kedua
(1 6 2 8) menjadi (1 6 2 8)
(1 6 2 8) menjadi (1 2 6 8)
(1 2 6 8) menjadi (1 2 6 8)
Pass Ketiga
(1 2 6 8) menjadi (1 2 6 8)
(1 2 6 8) menjadi (1 2 6 8)
(1 2 6 8) menjadi (1 2 6 8)

Dari proses pengurutan di atas, dapat dilihat bahwa untuk mengurutkan diperlukan dua buah passing, ditambah satu buah passing untuk memverifikasi. Dengan kata lain, jumlah proses perbandingan dapat dihitung sebagai berikut.

Jumlah proses = x2+x

Dari persamaan di atas, dapat disimpulkan bahwa notasi big-O nya adalah O(n2). Dengan kata lain, pada kondisi average case algoritma Bubble Sort termasuk dalam algoritma kuadratik.

2.4 Kelebihan dan Kekurangan Algoritma Bubble Sort
Setiap algoritma memiliki kelebihan dan kekurangannya masing-masing, demikian pula denganalgoritma Bubble Sort. Kelebihan dan kekurangan darialgoritma Bubble Sort dapat dilihat dari karakteristik algoritma Bubble Sort itu sendiri. Berikut ini adalah beberapa kelebihan dan kekurangan dari algoritma Bubble Sort.
Kelebihan Bubble Sort
Beberapa kelebihan dari algoritma Bubble Sort adalah sebagai berikut :
F    Algoritma yang simpel.
F    Mudah untuk diubah menjadi kode.
F    Definisi terurut terdapat dengan jelas dalam algoritma.
F    Cocok untuk pengurutan data dengan elemen kecil telah terurut.
Algoritma yang simpel. Hal ini dilihat dari proses pengurutan yang hanya menggunakan rekurens dan perbandingan, tanpa penggunaan proses lain. Algoritma pengurutan lain cenderung menggunakan proses lain, misalnya proses partisi pada algoritma Quick Sort. Mudah untuk diubah menjadi kode. Hal ini diakibatkan oleh simpelnya algoritma Bubble Sort, sehingga kecil kemungkinan terjadi kesalahan sintax dalam pembuatan kode.
Definisi terurut terdapat dengan jelas dalam algoritma. Definisi terurut ini adalah tidak adanya satu kalipun swap pada satu kali pass. Berbeda dengan algoritma lain yang seringkali tidak memiliki definisi terurut yang jelas tertera pada algoritmanya, misalnya Quick Sort yang hanya melakukan partisi hingga hanya ada dua buah nilai yang bisa dibandingkan.
Cocok untuk pengurutan data dengan elemen kecil telah terurut. Algoritma Bubble Sort memiliki kondisi best case dengan kompleksitas algoritma O(n).
Kekurangan Bubble Sort
Beberapa kekurangan dari algoritma Bubble Sort adalah sebagai berikut :
F    Tidak efektif dalam pengurutan data berskala besar.
F    Langkah pengurutan yang terlalu panjang.

Kekurangan terbesar dari Bubble Sort adalah kompleksitas algoritma yang terlalu besar, baik dalam average case maupun worst case, yaitu O(n2), sehingga seringkali disebut sebagai algoritma primitif, brute-force, maupun algoritma naïf. Untuk 1000 buah data misalnya, maka akan terjadi proses tidak lebih dari satu juta proses perbandingan. Kompleksitas yang besar ini juga seringkali membuat algoritma Bubble Sort sebagai “the general bad algorithm”. Bahkan, diantara algoritma pengurutan lain yang memiliki kompleksitas algoritma O(n2), insertion sort cenderung lebih efisien
2.5 Ide Dasar Counting Sort
Untuk dapat melakukan pengurutan dengan counting sort rentang nilai untuk kumpulan data yang akan diurutkan harus diketahui, katakanlah k. Ide dasar dari counting sort adalah menentukan, untuk setiap elemen x, jumlah elemen yang lebih kecil daripada x, yang kemudian informasi ini digunakan untuk menentukan posisi x. Contoh sederhana saja, jika terdapat 12 elemen yang lebih kecil daripada x, maka x akan mendapatkan posisinya di posisi 13.
Tentu saja, sedikit modifikasi harus dilakukan agar metode ini dapat menangani kasus di mana terdapat elemen-elemen lain yang nilainya sama dengan x. Di mana tentu saja kita tidak dapat menempatkan semua elemen yang nilainya sama dengan x di posisi yang sama.



2.6  Implementasi Counting Sort
Misal array data yang akan diurutkan adalah A. Counting sort membutuhkan sebuah array C berukuran k, yang setiap elemen C[i] merepresentasikan jumlah elemen dalam A yang nilainya adalah i. Di array inilah penghitungan (counting) yang dilakukan dalam pengurutan ini disimpan. Misal kita akan melakukan pengurutan pada array A sebagai berikut, dengan n adalah 10 dan diasumsikan bahwa rentang nilai setiap A[i] adalah 1..5 :
A
1
3
5
4
5
2
2
3
3
5
1      2      3      4      5      6      7     8      9     10

Dan array C setelah diinisialisasi adalah :
C
0
0
0
0
0
1      2      3      4      5     
Kemudian proses penghitungan pun dimulai, proses ini linier, dilakukan dengan menelusuri array A,
Langkah 1 : pembacaan pertama mendapat elemen A[1] dengan isi 1, maka C[1] ditambah 1.
A
1
3
5
4
5
2
2
3
3
5
1      2      3      4      5      6      7     8      9     10
C
1
0
0
0
0
1      2      3      4      5     
Langkah 2 : pembacaan kedua mendapat elemen A[2] dengan isi 3, maka C[3] ditambah 1.
A
1
3
5
4
5
2
2
3
3
5
1      2      3      4      5      6      7     8      9     10

C
1
0
1
0
0
1      2      3      4      5     
Langkah 3 : pembacaan ketiga mendapat elemen A[3] dengan isi 5, maka C[5] ditambah 1.
A
1
3
5
4
5
2
2
3
3
5
1      2      3      4      5      6      7     8      9     10
C
1
0
1
0
1
1      2      3      4      5     
Langkah 4 : pembacaan keempat mendapat elemen A[4] dengan isi 4, maka C[4] ditambah 1.
A
1
3
5
4
5
2
2
3
3
5
1      2      3      4      5      6      7     8      9     10
C
1
0
1
1
1
1      2      3      4      5     
Demikian dilakukan terus menerus hingga semua elemen A telah diakses. Hingga setelah langkah ke 10 didapatkan array C sebagai berikut :
C
1
2
3
1
3
1      2      3      4      5     
Lalu array C diproses sehingga setiap elemen C, C[i] tidak lagi merepresentasikan jumlah elemen dengan nilai sama dengan i, namun setiap C[i] menjadi merepresentasikan jumlah elemen yang lebih kecil atau sama dengan i. Dan setelah proses tersebut dilakukan didapatkan C sebagai berikut :
C
1
3
6
7
10
1      2      3      4      5     
Setelah C didapat dilakukan proses penempatan sesuai dengan posisi yang didapat. Proses ini dilakukan dengan menelusuri kembali A dari belakang. Mengapa dari belakang? Karena kita mengharapkan hasil pengurutan yang stable, yang akan sangat penting dalam pengurutan data majemuk.
Dalam proses ini kita mengakses elemen A[i], kemudian memposisikannya di posisi sebagaimana tercatat dalam C[A[i]], kemudian kita mengurangkan C[A[i]] dengan 1, yang dengan jelas untuk memberikan posisi untuk elemen berikutnya dengan yang isinya sama dengan A[i].
Proses ini memerlukan sebuah array bantu B yang ukurannya sama dengan array A, yaitu n. Yang pada awalnya semua B[i] diinisialisasi dengan nil.

B
-
-
-
-
-
-
-
-
-
-
1      2      3      4      5      6      7     8      9     10
Langkah 1 : elemen A[10] adalah 5, maka karena C[5] adalah 10, maka B[10] diisi dengan 5, dan C[5] dikurangi 1.
A
1
3
5
4
5
2
2
3
3
5
1      2      3      4      5      6      7     8      9     10
B
-
-
-
-
-
-
-
-
-
5
1      2      3      4      5      6      7     8      9     10
C
1
3
6
7
9
1      2      3      4      5     
Langkah 2 : elemen A[9] adalah 3, maka karena C[3] adalah 6, maka B[6] diisi dengan 3, dan C[3] dikurangi 1.
A
1
3
5
4
5
2
2
3
3
5
1      2      3      4      5      6      7     8      9     10

B
-
-
-
-
-
3
-
-
-
5
1      2      3      4      5      6      7     8      9     10
C
1
3
5
7
9
1      2      3      4      5     

Langkah 3 : elemen A[8] adalah 3, maka karena C[3] adalah 5, maka B[5] diisi dengan 3, dan C[3] dikurangi 1.
A
1
3
5
4
5
2
2
3
3
5
1      2      3      4      5      6      7     8      9     10
B
-
-
-
-
3
3
-
-
-
5
1      2      3      4      5      6      7     8      9     10
C
1
3
4
7
9
1      2      3      4      5     
Langkah 4 : elemen A[7] adalah 2, maka karena C[2] adalah 3, maka B[3] diisi dengan 2, dan C[2] dikurangi 1.
A
1
3
5
4
5
2
2
3
3
5
1      2      3      4      5      6      7     8      9     10

B
-
-
2
-
3
3
-
-
-
5
1      2      3      4      5      6      7     8      9     10
C
1
2
4
7
9
1      2      3      4      5     
Demikian proses dilakukan hingga elemen A[1] selesai diproses, sehingga didapatkan hasil akhir
B
1
2
2
3
3
3
4
5
5
5
1      2      3      4      5      6      7     8      9     10
Yang telah berupa array dengan elemen-elemennya terurut secara non-decreasing.

2.7 Algoritma dan Kompleksitas Waktu Counting Sort
Dari implementasi yang telah dilakukan tersebut, penulis mengimplementasikannya manjadi sebuah program menggunakan bahasa Pascal sebagai berikut :
procedure CountingSort (A : TArray; var B : TArray);
var
C : array [1..k] of byte;
i : integer;
begin
for i:=1 to k do
C[i] := 0;

for i:=1 to n do
C[A[i]] := C[A[i]] + 1;

for i:=2 to k do
C[i] := C[i] + C[i-1];

for i:=n downto 1 do begin
B[C[A[i]]] := A[i];
C[A[i]] := C[A[i]] - 1;
end;
end;
Waktu yang dibutuhkan untuk mengurutkan data menggunakan counting sort bisa didapatkan dari perhitungan sebagai berikut : Kalang pertama membutuhkan waktu O(k), kalang kedu membutuhkan waktu O(n), kalang ketiga membutuhkan waktu O(k), dan kalang keempat membutuhkan waktu O(n).
Jadi secara total membutuhkan waktu O(k+n), yang seringkali dianggap k = O(n), sehingga waktu total yang dibutuhkan menjadi O(n).








BAB III
PENUTUP. 
3.1  Kesimpulan
Gagasan dasar dari algoritma Bubble Sort adalah membandingkan sepasang elemen yang berurutan di dalam larik dan mempertukarkan keduanya jika perlu. Nama bubble sort ini berasal dari sifat elemen terbesar yang selalu naik ke atas seperti bubble. Beberapa kekurangan dari algoritma Bubble Sort adalah tidak efektif dalam pengurutan data berskala besar.serta langkah pengurutan yang terlalu panjang.
Counting Sort adalah algoritma pengurutan efektif dan efisien yang melakukan pengurutan dengan ide dasar meletakkan elemen pada posisi yang benar, di mana penghitungan posisi yang benar dilakukan dengan cara menghitung (counting) elemen-elemen dengan nilai lebih kecil atau sama dengan elemen tersebut. Dan memiliki kompleksitas waktu linier. Walaupun tidak dapat digunakan secara luas karena banyaknya batasan.
3.2 Saran
Hendaknya dalam pemilihan algoritma pengurutan yang tepat perlu memperhatikan kebutuhan memori, waktu eksekusi,implementasi algoritma/penanganan kasus-kasus tertentu. Disamping itu, perlu diadakannya penelitian yang lebih mendalam agar mendapatkan data yang valid sebagai referensi.






DAFTAR PUSTAKA
Rinaldi.2010. Buble Sort. Terdapat pada http://www.informatika.org/~rinaldi . Diakses tanggal 16 November 2012.11.16
-.2011. Buble. Terdapat pada http://www.cs.duke.edu/~ola/papers/bubble.pdf . diakses pada tanggal 16 November 2012.


Rinaldi.2010. Counting Sort. Terdapat pada http://www.informatika.org/~rinaldi . Diakses tanggal 16 November 2012.11.16

0 Response to "makalah buble sort dan counting sort"

Posting Komentar