22
3.3 Analisis proses
Dalam sistem ini terdapat dua proses utama, yaitu Proses pengurutan data dan Kompleksitas waktu berdasarkan algoritma Bucket Sort, Strand Sort dan Quick Sort 2
Pivot dalam mengurutkan data Integer.
Gambar 3.2 Bentuk dari hasil Sorting Data
3.4 Pemodelan Sistem
Pemodelan sistem yang dirancang bertujuan untuk menggambarkan peran user pengguna terhadap sistem yang dibuat. Pemodelan sistem yang digunakan dalam
merancang sistem ini yaitu Use-case diagram, activity diagram dan sequence diagram.
Max Item Max Item Value
Proses Pengurutan Data
Data Acak Sorting
Bucket Sort Strand Sort
Quick Sort 2 Pivot
Hasil Sorting Bucket Sort
Hasil Sorting Strand Sort
Hasil Sorting Quick Sort 2 Pivot
Running Time Running Time
Running Time
Universitas Sumatera Utara
23
3.4.1 Use-case Diagram
Diagram ini memperlihatkan himpunan use-case dan aktor-aktor suatu jenis dari kelas. Diagram ini sangatlah penting dan yang paling utama untuk memodelkan
sistem yang dubutuhkan oleh pengguna user. Berikut disajikan penjelasan mengenai bagaimana proses pengurutan data dalam Use-case Diagram.
Gambar 3.3 Use-case Diagram
3.4.2 Activity Diagram
Actifity Diagram menggambarkan berbagai aktifitas alir data didalam sistem yang sedang dirancang sedemikian rupa, bagaimana proses alir datanya, bagaimana proses
dan bagaimana akhir dari sebuah sistem.
Universitas Sumatera Utara
24
Gambar 3.4 Diagram Actifity Sistem
3.4.3 Sequence Diagram
Sequence Diagram adalah suatu diagram yang menunjukkan atau menampilkan hubungan-hubungan atau interaksi-interaksi antar setiap objek yang disusun pada
suatu urutan atau rangkaian waktu. Interaksi yang dimaksudkan adalah bagaimana hubungan antar pengguna dan sistemnya berlangsung atau biasa disebut bagaimana
perilaku user terhadap sistem.
Universitas Sumatera Utara
25
Gambar 3.5 Sequence Diagram Sistem
3.5 Flowchart Sistem
Flowchart adalah sebuah diagram umum yang menggambarkan sebuah proses dari algoritma dengan menggunakan diagram alir data untuk memperlihatkan bagaimana
langkah-langkah yang dilakukan program untuk menyelesaikan sebuah masalah.
Universitas Sumatera Utara
26
3.5.1 Flowchart Algoritma Bucket Sort
Flowchart Algoritma Bucket Sort dapat kita lihat pada gambar 3.6 seperti dibawah ini.
ya
tidak
tidak
ya
ya
tidak
Gambar 3.6 Flowchart Algoritma Bucket Sort
mulai Temp=array
Index=cellarr[i]a rr.lengthmax
Temp[index].le ngth=0
j=0
Temp[index][j] arr[i]
J++ i++
iarr.length swap
Arrange result selesai
Temp[index][ 0]=arr[i];
Universitas Sumatera Utara
27
3.5.2 Flowchart Algoritma Strand Sort
Flowchart Algoritma Strand Sort dapat kita lihat pada gambar 3.7 seperti dibawah ini.
tidak
ya tidak
ya
ya
tidak
Gambar 3.7 Flowchart Algoritma Strand Sort
Mulai j=i-1
index=i;
Arr[i]arr[j]
j0 Index=j;
j++
Swap; i++
i++
iarr.length-1
Selesai Arrange Result
Universitas Sumatera Utara
28
3.5.3 Flowchart Algoritma Quick Sort 2 Pivot
Flowchart Algoritma Quick Sort 2 Pivot dapat kita lihat pada gambar 3.8
tidak ya
tidak ya
tidak
ya
Gambar 3.8 Flowchart Algoritma Strand Sort
Mulai n data bilangan
Tentukan Pivot x1,x2
Ap1=x1||Aq1=x1
Ap2=x2||Aq2=x2 Swap Ap1,Aq1
Swap Ap2,Aq2
Data belum terurut
Bagi partisi
Proses Sorting
Selesai Data terurut
Data terurut Data terurut
Universitas Sumatera Utara
29
3.6 Alur Proses Sistem 3.6.1 Alur Proses Algoritma Bucket Sort
Alur proses untuk Encode dengan Algoritma Quick Sort dapat digambarkan dengan pseudocode berikut.
Tempt = array[arr.length][arr.length]; For i=0, iarr.length, i++{
Index = cellingarr[i]arr.lengthmax If temp[index].length=0
Temp[index][0]=arr[i]; }
Else { j=0;
while temp[index][j]arr[i] j++;
} {
Swapj, arr[i],temp[index]; }
Return temp[];
Universitas Sumatera Utara
30
3.6.1.1 Proses Algoritma Bucket Sort.
Pada gambar dibawah, data pada list akan diproses satu per satu hingga semua data pada list diproses hingga selesai. Selanjutnya proses pengurutan data akan terjadi
didalam Bucket ember, dan selanjutnya data yang didalam Bucket akan menghasilkan data secara terurut.
12 22
24 1
5 21
23 5
2 3
0 1 2 3 4 5 6 7 8 9
Gambar 3.9 Gambar Algoritma Bucket Sort
Cara kerja algoritma bucket sort dapat dijelaskan sebagai berikut : Tentukan array yang ingin diurutkan.
Tentukan jumlah bucket dan rentang masing-masing bucket. Masukkan array tersebut ke dalam bucket yang telah ditentukan.
Di dalam masing-masing bucket, array tersebut di urutkan. Setelah itu keluarkan hasil urutan dari dalam bucket dan kembalikan ke array
awal. 1
2 3
5 5
12 21
22 23
24
Proses penghitungan Bucket =valuenumber of
elemenmax arr value+1 -
1210100=1,2=1 -
2210100=2,2=2 -
2410100=2,4=2 -
110100=0,1=0 -
510100=0,5=0 -
2110100=2,1=2 -
2310100=2,2=2 -
510100=0,5=0 -
210100=0,2=0 -
310100=0,3=0
Universitas Sumatera Utara
31
Kelebihan dari Bucket Sort: 5.
Sebuah algortima yang stabil 6.
Prosesnya cepat. 7.
Hanya berlaku pada kisaran 0 sampai nilai maksimum M. 8.
Lebih terkhusus, dapat digunakan ketika kuncinya dapat digunakan sebagai penghitungan.
3.6.2 Alur Proses Algoritma Strand Sort Alur proses untuk Encode dengan Algoritma Quick Sort dapat digambarkan dengan
pseudocode berikut.
For i=1 to array.length-1 j=i-1; index;
while arr[i]arr[j]{ index=j;
j--; if j0
break; }
Swapi,index
3.6.2.1 Contoh Proses Algoritma Strand Sort
40 2
1 43
3 65
-1 58
3 42
4
2 40
1 43
3 65
-1 58
3 42
4
1 2
40 43
3 65
-1 58
3 42
4
1 2
3 40
43 65
-1 58
3 42
4
Universitas Sumatera Utara
32
1 2
3 40
43 65
-1 58
3 42
4
1 2
3 40
43 65
-1 58
3 42
4
1 2
3 40
43 65
-1 58
3 42
4
-1 1
2 3
40 43
65 58
3 42
4
-1 1
2 3
40 43
58 65
3 42
4
-1 1
2 3
3 40
43 58
65 42
4
-1 1
2 3
3 40
42 43
58 65
4
-1 1
2 3
3 4
40 42
43 58
65
Gambar 3.10 Gambar Algoritma Strand Sort Ket: data yang berwarna merah merupan bagian yang terurut. Proses Strand Sort
dilakukan dengan menyisipkan elemen-elemen dari sebelah kanan ketempatnya yang sesuai dibagian terurut kiri.
Universitas Sumatera Utara
33
3.6.3 Alur Proses Algoritma Quick Sort 2 Pivot Alur proses untuk Encode dengan Algoritma Quick Sort dapat digambarkan dengan
pseudocode berikut. Algoritma Quick Sort 2 Pivot A,lo,hi is
If lo hi then P:= partition A,lo,hi
Quicksort A,lo,P-1 Quicksort A,P+1,hi
Algoritma partition A,lo,hi is Pivot:= A[hi]
i:= lo place for swapping for j:= lo to hi-1 do
if A[j] = pivot then swap A[i] with A[j]
i:= i+1 swap A[i] with A[hi]
return i
3.6.3.1 Proses Algoritma Quick Sort 2 Pivot
Data yang akan diurutkan dengan algoritma quick sort 2 pivot 2
19 1
2 20
3 11
90 3
Pilih 2 Pivot secara acak yang berwarna merah, nilai yang lebih kecil dari pivot akan ditempatkan disebelah kiri dari pivot dan yang lebih besar ditempatkan di sebelah
kanan pivot. 2
19 1
2 20
3 11
90 3
2 1 2 3 3
19 11 20
90 Selanjutnya pilih lagi dua pivot dari list selain pivot yang telah dipilih, dan
selanjutnya. 2
1 2 3
3 19 11
20 90
Hasil akhir dari Pengurutan data: 1
2 2 3 3 11 19 20 90
Universitas Sumatera Utara
34
Langkah-langkah algoritma Quick Sort 2 Pivot :
Pilih nilai pivot. Kita ambil nilai di awal, ditengah, maupun diakhir secara
acak random elemen sebagai sebagai nilai dari pivot, dalam algoritma ini menggunakan 2 elemen yang menjadi pivotnya.
Partisi Atur ulang semua elemen sedemikian rupa, lalu semua elemen yang lebih rendah
daripada pivot dipindahkan ke sebelah kiri dari arraylist dan semua elemen yang lebih
besar dari pivot dipindahkan
ke sebelah
kanan dari
arraylist. Nilai yang sama dengan pivot dapat diletakkan di mana saja dari array. Ingat,mungkin arraylist akan dibagi dalam bagian yang tidak sama.
Urutkan semua bagian kirikanan elemen dari data tersebut. Selanjutnya akan menghasilkan data yang sudah terurut
Kelebihan: Algoritma Quicksort memiliki kompleksitas On log n dimana pada prakteknya lebih
cepat dari algoritma pengurutan lainnya. Kekurangan:
Pada kemungkinan terburuknya, algoritma Quicksort ini dapat memiliki kompleksitas On2. Meskipun ini sangat langka terjadi
Universitas Sumatera Utara
35
BAB 4 IMPLEMENTASI SISTEM
4.1. Pendahuluan