BAB 3 ANALISA SISTEM Untuk merancang sebuah sistem dengan baik maka dibutuhkan analisa yang tepat agar proses desain sistem lebih terarah dan memudahkan untuk mengimplementasikan sistem. 3.1 Analisa Analisis perbandingan algoritma ini memiliki flowchart seperti berikut: A B Gambar 8 flowchart perbandingan algoritma (A) merge sort dan (B) selection sort 21
Terkait pada Gambar 8, bahwa analisis adalah penguraian dari suatu pembahasan, dalam hal ini pembahasan mengenai pengurutan data menggunakan algoritma merge sort dan algoritma selection sort. Analisis ini sendiri membahas perbandingan merge sort dan selection sort dalam bahasa PHP dari aspek execution time untuk mengetahui seberapa efektifnya suatu proses pada kecepatan waktu untuk mengurutkan suatu database sebanyak kurang dari 100 data. Data yang digunakan adalah data nama - nama anggota POLRI yang berdasarkan NRP (Nomor Registrasi Pokok). 3.2 Analisa Merge Sort Merge sort selalu membagi setiap array menjadi dua sub-array hingga mencapai basis, sehingga kompleksitas dari algoritma merge sort, berlaku untuk semua kasus (Worst Case = Best Case = Average Case). Anggap jumlah elemen array (n) adalah kelipatan 2, jadi setiap dilakukan divide (pemecahan menjadi dua sub-array), kedua sub-array akan berukuran n/2. Basis untuk n = 1, maka array tersebut sudah terurut dengan sendirinya. Rekurens untuk n > 1, maka akan dilakukan langkah-langkah merge sort, yaitu: Divide: Hitung nilai q yang merupakan rata-rata dari p + r, yang bernilai Θ(1) Conquer: Secara rekursif menyelesaikan 2 sub-array, setiap sub-array berukuran n/2, maka bernilai 2T(n/2) Combine: Menggabungkan elemen dari sub-array ke dalam array dengan prosedur MERGE, bernilai Θ(n). Jumlahkan semua fungsi yang dihasilkan, sehingga dihasilkan rekurens: θ(1) if n = 1 T(n) = ( 2T ( n ) if n > 1) 2 22
3.3 Analisa Selection Sort Gambar 9 Contoh pengurutan data selection sort (Sumber: Fredian Simanjuntak, 2013) Algoritma ini mempunyai dua buah array, satu kalang di dalam kalang yang lainnya. Banyaknya perbandingan yang harus dilakukan untuk siklus pertama adalah n, perbandingan yang harus dilakukan untuk siklus yang kedua n-1, dan seterusnya, sehingga jumlah keseluruhan perbandingan adalah n(n+1)/2-1 perbandingan. Hindari penggunaan algoritma pengurutan seleksi dengan pengurutan nilai dengan data pada tabel lebih besar dari 1000 buah, dan hindari mengurutkan tabel lebih dari beberapa ratus kali. Waktu eksekusi diukur dengan satuan second (s). Proses pengurutan menggunakan metode algoritma selection sort secara terurut NRP adalah sebagai berikut: 1. Mencari data terkecil dari data pertama sampai dengan data yang terakhir. Kemudian ditukar posisinya dengan data pertama. 2. Begitu seterusnya sampai semua data terurut naik. Apabila terdapat 100 buah data yang akan diurutkan, maka membutuhkan (n-1) langkah pengurutan, dengan data terakhir, yaitu data ke 100 tidak perlu diurutkan karena hanya tinggal data satu-satunya 23
3.4 Analisa Perbandingan Algoritma dari Segi Kompleksitas Waktu 3.4.1 Kompleksitas Merge Sort Meskipun kompleksitas waktu keseluruhan tetap sama (O (n log n)), jumlah perbandingan antara elemen array dalam beberapa kasus tertentu telah berkurang. Pemeriksaan eksperimental menunjukkan bahwa ketika kita mengurutkan daftar bilangan secara acak, cara kerja algoritma yang lebih baik seefisien algoritma sekarang. Namun, dalam kasus terbaik, jumlah perbandingan telah berkurang secara drastis (hampir 86%). Menggabungkan pengurutan, yang kita modifikasi salinan isi array input ke dalam array sementara, dan kemudian menyalin array sementara kembali ke array input. Jadi secara rekursif mengurutkan array input, menempatkan dua bagian yang diurutkan ke dalam array sementara. Kemudian menggabungkan, menempatkan urutan diurutkan ke dalam array input saat berjalan. Perbaikannya adalah bahwa penggandaan ganda ini boros bisa dilakukan tanpanya (Subham et al., 2013). Kompleksitas dalam merger sort merupakan jumlah perbandingan yang dibutuhkan untuk mengurutkan array elemen n dengan algoritma merge sort. Dengan memisahkan sebuah array dalam dua bagian kita mengurangi masalah untuk meburutkan dua bagian namun ukurannya lebih kecil, yaitu n / 2. Setiap bagian bisa diurutkan dalam T (n / 2). Akhirnya, pada langkah terakhir kita melakukan perbandingan n-1 untuk menggabungkan kedua bagian ini menjadi satu. Semua bersama-sama, kita memiliki persamaan berikut: T(n) = 2 T n + (n 1) 2 3.4.2 Kompleksitas Selection Sort Algoritma di dalam selection sort terdiri dari kalang bersarang. Dimana array tingkat pertama (disebut pass) berlangsung N-1 kali. Di dalam array kedua, dicari elemen dengan nilai terkecil. Berdasarkan operasi perbandingan elemennya: 24
T(n) = (n 1) + (n 2) + + 2 + 1 = n 1 = n(n 1) 2 = 0(n 2 ) Jika didapat, indeks yang didapat ditimpakan ke variabel min. Lalu dilakukan proses penukaran. Begitu seterusnya untuk setiap pass. Pass n 1 f=1 sendiri makin berkurang hingga nilainya menjadi semakin kecil. Tabel 4 Kompleksitas waktu algoritma selection sort Best case Worst case Average case O(n 2 ) O(n 2 ) O(n 2 ) Kasus terburuk (worst case) terjadi bila tidak ada pengulangan dalam daftar, namun dapat menjamin waktu menjalankan kasus terbaik O (n), jika semua nilai dalam daftar sama atau jumlah nilai yang berbeda relatif kecil (Hayfron-Acquah et al., 2015). 3.5 Analisa Kebutuhan Software Pengurutan data dengan menggunakan algoritma merge sort dan selection sort dengan bahasa pemograman PHP yang telah terintegrasi dalam sebuah Integrated Development Environment (IDE) yaitu Notepad++ yang berfungsi sebagai editor dalam proses pembuatan aplikasi. Notepad++ yang di gunakan dalam pembuatan aplikasi ini menggunakan versi 7.3.3 (32 Bit). Pembuatan aplikasi mengunakan Notepad++ tidak perlu memerlukan spesifikasi hardware yang tinggi karena Notepad++ cukup ringan tidak memerlukan memory besar. Sementara itu, XAMPP untuk pembuatan MySQL database menggunakan versi versi 3.2.2 (32 Bit). 3.6 Analisa Kebutuhan Hardware Dalam Pembangunan aplikasi ini, penulis menggunakan software Notepad++ dan XAMPP seperti yang di jelaskann pada bagian analisa kebutuhan software diatas. Untuk menjalankan aplikasi Notepad++ dan XAMPP ada minimum hardware yang harus di penuhi untuk menggunakan aplikasi tersebut. Berikut adalah minimum hardware dan system requirements yang di butuhkan untuk menjalankan Notepad++ dan XAMPP: 25
Tabel 5 System requirements Notepad++ Windows Minimum 512MB RAM, recommended 180MB hard drive space required 800X600 minimum monitor resolution Internet connection (for installation) Macintosh Minimum 512MB RAM, recommended 210 MB hard drive space required 800X600 minimum monitor resolution Internet connection (for installation) Tabel 6 System requirements XAMPP Windows Minimum 64 MB RAM, recommended 350 MB hard drive space required 800X600 minimum monitor resolution 3.7 Analisa Kebutuhan Data Analisa kebutuhan data merupakan tahapan dimana dilakukannya analisis terhadap data-data apa saja yang diolah dalam sistem atau prosedur sebuah rancangan, dalam hal ini data yang akan di urutkan pada algoritma merge sort dan selection sort adalah data anggota POLRI yang mengurutkan data dari NRP (Nomer Registrasi Pokok). 26