Analisis proses Alur Proses Sistem .1 Alur Proses Algoritma Bucket Sort

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