Proses Analisis KESIMPULAN DAN SARAN

3.3. Proses Analisis

Proses analisis merupakan salah satu bagian terpenting dalam penelitian ini, karena dalam proses analisis ini akan terlihat kompleksitas waktu dan kompleksitas ruang yang dicapai berdasarkan pengembangan yang dilakukan terhadap algoritma SMS, Pada sub bab berikut akan dianalisa kompleksitas ruang dari pengembangan algoritma SMS yang dilakukan penulis dan kompleksitas waktu masing-masing pengembangan prosedur Scan, Move dan Sort yang nantinya penggabungan kompleksitas waktu ketiga prosedur tersebut akan menghasilkan kompleksitas waktu keseluruhan dari pengembangan yang dilakukan terhadap algortima SMS. 3.3.1. Analisis kompleksitas waktu pengembangan prosedur scan Tujuan dari pengembangan prosedur scan adalah untuk mendapatkan nilai maksimum positif, nilai minimum positif, nilai maksimum negatif, nilai minimum negatif, jumlah elemen positif, dan jumlah elemen negatif dari array masukan. Hal ini memerlukan pengenalan array dimana setiap elemen harus dikunjungi 1 satu kali. Untuk perulangan baris 9-27 prosedur scan memerlukan kompleksitas waktu On, sehingga dapat dinyatakan untuk pengembangan yang dilakukan terhadap prosedur Scan, kompleksitas waktu tidak berubah. 3.3.2. Analisis kompleksitas waktu pengembangan prosedur move Jika semua elemen array adalah bilangan positif dan tidak ada yang negatif, maka untuk perulangan baris 8-10 dari pengembangan prosedur move membutuhkan kompleksitas waktu Omaxpos - minpos untuk menginisialisasi PosArray, dan untuk perulangan baris 18-34 dari pengembangan prosedur move membutuhkan kompleksitas waktu On. Berdasarkan penjelasan diatas, jika seluruh elemen array masukan merupakan bilangan positif, kompleksitas waktu keseluruhan prosedur move adalah On + maxpos - minpos. Di sisi lain, jika semua elemen dari array masukan adalah bilangan negatif, maka untuk perulangan baris 14 -16 dari pengembangan prosedur move membutuhkan kompleksitas waktu O|minneg| - |maxneg| Universita Sumatera Utara menginisialisasi NegArray, dan untuk perulangan baris 18-34 dari pengembangan prosedur move membutuhkan kompleksitas waktu On. Dalam hal ini berarti, kompleksitas waktu keseluruhan pengembangan prosedur move jika seluruh elemen array masukan merupakan bilangan negatif adalah On + |minneg| - |maxneg|. Dapat dikatakan bahwa dalam kasus rata-rata dan terburuk, jika terdapat elemen positif dan negatif dalam array masukan, maka kompleksitas waktu keseluruhan pengembangan prosedur move adalah On + maxpos – minpos + |minneg| - |maxneg|. Prosedur move pada algoritma SMS sebelumnya untuk kasus rata-rata dan terburuk membutuhkan kompleksitas waktu On + max + |min|, dan setelah dilakukan pengembangan pada penelitian ini, kompleksitas waktu prosedur move untuk kasus rata-rata dan terburuk menjadi lebih efisien. 3.3.3. Analisis kompleksitas waktu pengembangan prosedur sort Jika semua elemen array masukan adalah bilangan positif dan berbeda, maka perulangan baris 18-29 dari pengembangan prosedur sort membutuhkan kompleksitas waktu Omaxpos - minpos, karena perulangan baris 22-27 dari pengembangan prosedur sort membutuhkan kompleksitas waktu O1 dalam kasus ini. Jika semua elemen array masukan adalah bilangan negatif dan setiap elemen berbeda, maka untuk perulangan baris 4-15 dari pengembangan prosedur sort membutuhkan kompleksitas waktu O|minneg| - |maxneg|, karena perulangan baris 8-13 dari prosedur sort membutuhkan kompleksitas waktu O1 dalam kasus ini. Dapat dikatakan, kasus-kasus terbaik, rata-rata, dan terburuk dari prosedur sort memiliki Ofpos maxpos – minpos + Ofneg |minneg| - |maxneg|, di mana fpos adalah jumlah elemen positif yang sama dan fneg adalah jumlah elemen negatif yang sama. Dengan kata lain, kompleksitas waktu pengembangan prosedur sort adalah Ofpos maxpos – minpos + fneg |minneg| - |maxneg|. Prosedur sort pada algoritma SMS sebelumnya membutuhkan kompleksitas waktu Of max + |min|, dimana f adalah jumlah elemen yang sering muncul positif dan negatif dan setelah dilakukan pengembangan pada penelitian ini, kompleksitas waktu pengembangan prosedur sort menjadi lebih efisien. Dalam kasus rata-rata dan terburuk, pengembangan prosedur scan memerlukan kompleksitas waktu On, pengembangan prosedur move membutuhkan kompleksitas Universita Sumatera Utara waktu On + maxpos – minpos + |minneg| - |maxneg|, dan pengembangan prosedur sort memerlukan kompleksitas waktu Ofpos maxpos – minpos + fneg |minneg| - |maxneg|. Jika dianggap distribusi data adalah normal, frekuensi elemen harus sedikit, dan karena sebagian besar aplikasi nyata memiliki n jauh lebih besar dari nilai maxpos, minpos, maxneg dan |minneg|, dapat dipertimbangkan maxpos, minpos, maxneg dan minneg sebagai konstanta dan menghilangkannya, sehingga kompleksitas waktu keseluruhan dari pengembangan algoritma SMS dalam kasus rata-rata dan terburuk adalah On + fpos maxpos – minpos + fneg |minneg| - |maxneg|, di mana fpos adalah jumlah elemen positif yang sama dan fneg adalah jumlah elemen negatif yang sama. Jika pada algoritma SMS sebelumnya kompleksitas waktu yang dibutuhkan untuk kasus rata-rata dan terburuk adalah On + f max + | min | dan setelah dilakukan pengembangan pada penelitian ini kompleksitas waktu yang dibutuhkan untuk kasus rata-rata dan terburuk adalah On + fpos maxpos – minpos + fneg |minneg| - |maxneg|, maka dapat dinyatakan kompleksitas waktu yang dibutuhkan menjadi lebih efisien setelah dilakukan pengembangan algoritma SMS pada penelitian ini. 3.3.4. Analisis kompleksitas ruang memori pengembangan algoritma SMS Pada kasus terbaik, jika array masukan berisikan data yang sudah terurut, pengembangan algoritma SMS yang dilakukan penulis berhentiselesai pada prosedur Scan dan algoritma tidak memerlukan ruang memori tambahan untuk mengurutkan array masukan. Pada kasus rata-rata dan terburuk, algoritma SMS membuat 4 array baru, yakni PosArray berukuran max + 1, NegArray berukuran |minneg| + 1, FreqPosArray berukuran NOP dan NegArray berukuran NON. Dapat dikatakan dalam kasus rata-rata dan terburuk, algoritma SMS membutuhkan ruang tambahan sebesar ONOP + NON + maxpos + |minneg| +2. sehingga dapat dinyatakan untuk kompleksitas ruang memori, algoritma SMS sebelumnya dan pengembangan algoritma SMS yang dilakukan penulis memerlukan kompleksitas ruang memori yang sama, karena max=maxpos, min=minneg dan NOP+NON=n. Universita Sumatera Utara

3.4. Perancangan Program