Anda di halaman 1dari 12

KOMPLEKSITAS & STRATEGI ALGORITMIK

By Randy Permana , S.Kom

Algoritma Kompleksitas
Kompleksitas

dari suatu algoritma adalah jumlah waktu yang digunakan atau besarnya tempat yang diperlukan di media penyimpanan dalam pemakaian oleh sebuah algoritma untuk menyelesaiakan suatu masalah di komputer

Kebutuhan

waktu dan ruang suatu algoritma tergantung ke pada jumlah inputan (n), yang menyatakan jumlah data yang diproses. Efisiensi algoritma digunakan untuk menilai algoritma yang bagus.

Model Perhitungan Waktu / Ruang


Kita

dapat mengukur waktu yang dibutuhkan oleh sebuah algoritma dengan menghitung banyaknya operasi / instruksi yang di eksekusi. Jika kita mengetahui besaran waktu ( dalam satuan detik ) untuk melaksanakan sebuah operasi tertentu , maka kita dapat mengukur berapa waktu sesungguhnya yang dibutuhkan oleh algoritma tersebut.

Ketika menjalankan sebuah program faktor apakah yang harus diperhatikan ? Efisiensi dari algoritma Jenis spesifikasi Komputer Jumlah inputan Jenis program yang digunakan Compiled atau intepreted program

Contoh kasus 1

Total t1+t2+t3= (3+2n) + (2n) +(1) t = 4+4n

Contoh Kasus 2
/*Menghitung Rata-rata*/

#include <conio.h> #include <stdio.h> main () { int i, n; float bil, jumlah, rata; printf(" program menghitung rata-rata\n"); printf(" Banyak bilangan :"); scanf("%d", &n); jumlah=0; for (i=1;i<=n;i++) { printf (" masukan bilangan :"); scanf("%f",&bil); jumlah=jumlah+bil; } rata=jumlah/n; printf("hasil jumlah %.2f\n", jumlah); printf("rata-rata %.2f \n",rata); getch(); return 0; }

Menghitung

kebutuhan waktu algoritma dengan mengukur waktu sesungguhnya (dalam satuan detik) ketika algoritma dieksekusi oleh komputer bukan cara yang tepat, karena:
1. Dalam praktek kita tidak mempunyai informasi berapa waktu sesungguhnya untuk meaksanakan suatu operasi tertentu. 2. Setiap komputer dengan arsitektur berbeda mempunyai bahasa mesin yang berbeda waktu setiap operasi antara satu komputer dengan komputer lain tidak sama.

3. Compiler bahasa pemrograman yang berbeda menghasilkan kode mesin yang berbeda waktu setiap operasi antara compiler dengan compiler lain tidak sama.

Model

abstrak pengukuran waktu/ruang harus independen dari pertimbangan mesin dan compiler apapun. banyaknya faktor yang mempengaruhi kecepatan sebuah program, kita tidak bisa menjadikan satuan waktu sebenarnya (seperti detik atau mikrodetik) sebagai parameter untuk mengevaluasi keefisienan dari sebuah algoritma. tetapi kita bisa memakai satuan jumlah operasi/instruksi yang dibutuhkan untuk menjalankan sebuah algoritma.

Dengan

Akan

Terdapat kompleksitas algoritma, yaitu: kompleksitas waktu dan kompleksitas ruang. Kompleksitas waktu, T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n. Kompleksitas ruang, S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n. Dengan menggunakan besaran kompleksitas waktu/ruang algoritma, kita dapat menentukan laju peningkatan waktu (ruang) yang diperlukan algoritma dengan meningkatnya ukuran masukan n.

Ukuran

masukan (n): jumlah data yang diproses oleh sebuah algoritma. algoritma pengurutan 1000 elemen larik, maka n = 1000. algoritma TSP pada sebuah graf lengkap dengan 100 simpul, maka n = 100. algoritma perkalian 2 buah matriks berukuran 50 x 50, maka n = 50. praktek perhitungan kompleksitas, ukuran masukan dinyatakan sebagai variabel n saja.

Contoh:

Contoh:

Contoh:

Dalam

Anda mungkin juga menyukai