Kompleksitas Algoritma Perancangan Add On Keamanan Email Mozillathunderbird Dengan Algoritma Kriptografi Xor Dan Three Pass Protocol Serta Kompresi Lempel Ziv Welch

2.8 Kompleksitas Algoritma

Secara informal sebuah algoritma adalah prosedur komputasi yang didefenisikan dengan baik dan menerima sebuah nilai atau himpunan nilai sebagai inputnya serta menghasilkan sebuah nilai atau himpunan nilai sebagai outputnya. Jadi algoritma adalah sekuens dari langkah-langkah komputasi yang mentransformasikan input menjadi output. Algoritma juga dapat dipandang sebagai sebuah tool untuk menyelesaikan suatu masalah komputasi yang terdefenisi dengan baik [1]. Dalam konteks ilmu komputer, kajian sebuah algoritma bukan hanya sebatas kemampuan algoritma tersebut dalam menyelesaikan sebuah persoalan. Keterbatasan perangkat keras yang digunakan untuk mengeksekusi sebuah algoritma menyebabkan perlunya analisis efisiensi kinerja algoritma. Tujuannya untuk meminimalkan penggunaan sumber daya perangkat keras yang digunakan ketika mengeksekusi langkah-langkah pada sebuah algoritma. Kompleksitas yang digunakan dalam menganalisis sebuah algoritma dapat dikategorikan ke dalam dua kelompok yaitu kompleksitas waktu time complexity dan kompleksitas ruang space complexity. Kajian mengenai kompleksitas algoritma sesungguhnya bukanlah bertujuan untuk menunjukkan jumlah langkah yang dilakukan secara pasti dalam sebuah algoritma. Analisis asimtotik analisis kompleksitas pada dasarnya hanya bertujuan untuk menunjukkan hubungan antara ukuran input n dengan kompleksitas eksekusi algoritma. Untuk mengkaji kompleksitas sebuah algoritma, seorang analis harus membuat sebuah model fungsi yang domainnnya berupa bilangan bulat n ukuran input serta relasinya menunjukkan hubungan antara n dengan jumlah eksekusi yang diperlukan pada sebuah algoritma. Dalam menganalisis sebuah algoritma digunakan beberapa notasi asimtotik yaitu notasi On Big-O, Ωn Big -Omega, serta Θn Big-Tetha.yang masing- masing menunjukkan batas bawah Lower Bound, batas atas Upper Bound serta batas bawah dan batas bawah Tight Bound dari fungsi asimtot. Selanjutnya analisis yang digunakan untuk mengkaji algoritma dalam penelitian ini adalah analisis dengan notasi asimptotik Big-OUpper Bound. Universitas Sumatera Utara

2.8.1 Notasi Big-O

Sebelumnya telah disebutkan bahwa notasi Big-O menggunakan kajian asimtotik batas atas upper bound asymptotic. Notasi ini digunakan untuk menunjukkan relasi antara hubungan input terhadap penggunaan sumberdaya ketika sebuah algoritma dieksekusi. Notasi Big-O pertama sekali diperkenalkan oleh Paul Bachman pada tahun 1984. Istilah lain untuk notasi ini adalah notasi Landau, notasi Bachman-Landau atau notasi asimtotik. Untuk sebuah fungsi gn, diperoleh notasi Big-O untuk fungsi ini Ogn sebagai berikut [1], Ogn = { fn : terdapat konstanta positif c dan n 0 fn cgn , untuk semua n n sehingga diperoleh } Untuk memperoleh notasi fn sebagai notasi Big-O dari fungsi gn dapat digunakan tiga teorema berikut [2]. 1. Teorema pertama. Jika ditemukan sebuah konstanta positif K sehingga fnK ×gndiperoleh fn = Ogn dengan menggunakan dua aturan sederhana berikut. a. Rubah semua konstanta koefisien dari n dalam fn menjadi bilangan 1. b. Ambil pangkat tertinggi pada fn. Urutan kompleksitas pangkat dari terendah ke tertinggi adalah sebagai berikut

1, log n, n, n log n, n log n log log n, n

2 , n 3 ,…,n k , 2 n , n, n n 2. Teorema kedua. Jika f 1 n = Og 1 n dan f 2 n = Og 2 f n , maka 1 n + f 2 n = Og 1 n + g 2 3. Teorema Ketiga. n 2.8 Jika f 1 n = Og 1 n dan f 2 n = Og 2 f n , maka 1 n × f 2 n = Og 1 n × g 2 n 2.9 Universitas Sumatera Utara Sebagai contoh, diberikan sebuah fungsi fn = 2 n + 10n 5 + n log 2 1. Atur semua koefisienn menjadi bilangan 1 diperoleh fn=2 n + 100 maka dengan menggunakan ketiga teorema tersebut diperoleh notasi Big-O sebagai berikut. n + n 5 + n log 2 2. Dengan melihat urutan tingkat kompleksitas didapatkan Ofn = 2 n + 1 n . Grafik berikut menunjukkan pertumbuhan kompleksitas. Gambar 2.11 Grafik Perbandingan Pertumbuhan Kompleksitas[16] Pada grafik tersebut terlihat bahwa kompleksitas constantO1 sama sekali tidak terpengaruh akibat pertumbuhan input. Sedangkan untuk kompleksitas logarithmic Olog n dan polynomial On 2 terlihat bahwa pertumbuhan kompleksitas jauh lebih lambat bila dibandingkan dengan pertumbuhan kompleksitas exponential 2 n , factorial 2 dansuperexponential n n . Universitas Sumatera Utara BAB III ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem