Algoritma dan Struktur Data

Slides:



Advertisements
Presentasi serupa
Desain Dan Analisis Algoritma
Advertisements

Kompleksitas Algoritma
Aryo Pinandito, ST, M.MT - PTIIK UB
ARRAY 1 DIMENSI #10 STIKOM Searching Pengantar Manfaat Inisialisasi
1 Algoritma Bahasa Pemrograman dan Bab 1.1. Pengertian Algoritma.
Desain Dan Analisis Algoritma
Searching Alpro-2.
Algoritma Sorting (Selection – Insertion)
Meningkatkan kemampuan quick sort
Desain dan Analisis Algoritma
Design and Analysis of ALGORITHM (Session 3)
Tim Matematika Diskrit
PENCARIAN (SEARCHING)
Modul-8 : Algoritma dan Struktur Data
Kompleksitas Algoritma
Desain dan Analisis Algoritma
PENCARIAN (SEARCHING)
Sulidar Fitri, M.Sc Lab Meeting 13 Maret 2014
Function(2).
Kompleksitas Algoritma
MATEMATIKA DISKRIT Kompleksitas Algoritma Kelompok 9
Algoritma dan Struktur Data
Kompleksitas Algoritma
Kompleksitas Waktu Asimptotik
Searching.
Searching Pada suatu data seringkali dibutuhkan pembacaan kembali informasi (retrieval information) dengan cara searching. Searching adalah pencarian data.
Pertemuan-3 Laju Pertumbuhan Fungsi : Pengertian, motivasi dan manfaat
Pemprograman Terstruktur 1
Design and Analysis Algorithm
Design and Analysis Algorithm
Algoritma dan Struktur Data
1 Diselesaikan Oleh KOMPUTER Langkah-langkah harus tersusun secara LOGIS dan Efisien agar dapat menyelesaikan tugas dengan benar dan efisien. ALGORITMA.
Sorting 2007/2008 – Ganjil – Minggu 5.
Pertemuan 3 ALGORITMA & FUNGSI KOMPLEKSITAS
Algoritma dan Struktur Data
Pertemuan-2 Kriteria kebaikan suatu algoritme Correctness
Pertemuan 10 DIVIDE And CONQUER Lanjutan ….
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
Algoritma dan Pemrograman – Pertemuan 3 & 4 Sorting (Pengurutan)
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
Algoritma Pencarian (searching)
CSG523/ Desain dan Analisis Algoritma
Pencarian pada Array Tim PHKI Modul Dasar Pemrograman
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
Analisis Algoritma Team Fasilkom.
PENGANTAR STRUKTUR DATA
CSG523/ Desain dan Analisis Algoritma
Algoritma dan Struktur Data
MATERI PERKULIAHAN ANALISIS ALGORITMA
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
Pertemuan 4 ALGORITMA lanjutan….
Kompleksitas Algoritma
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
Faktor analisa algoritma
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
Analisis dan Perancangan Algoritma Kuliah 4 : Asymptotic pd Kasus
MATERI PERKULIAHAN ANALISIS ALGORITMA
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
Desain dan Analisis Algoritma
Strategi Algoritma Kuliah 3 : Algoritma Efisien
Algoritma Brute Force.
SEARCHING.
Kompleksitas Algoritma
Algoritme dan Pemrograman
Analisa algoritma rekursif
Desain dan Analisis Algoritma
SEARCHING Universitas Dian Nuswantoro Semarang 12/7/2018.
Transcript presentasi:

Algoritma dan Struktur Data Pertemuan 3 Pengantar Analisa Efisiensi Algoritma

Analisa efisiensi algoritma bertujuan mengestimasi waktu dan memori yang dibutuhkan untuk mengeksekusi sebuah algoritma atau fungsi Efisiensi waktu seberapa cepat algoritma dieksekusi Efisiensi memori berapa banyak memori yang dibutuhkan untuk menjalankan algoritma

Faktor apa yang mempengaruhi efisiensi waktu sebuah algoritma? Ukuran input banyaknya data input yang diolah oleh algoritma Contoh : ??? Basic operation bagian dari algoritma yang yang dieksekusi berulang - ulang

Jelaskan isi algoritma di atas Algorithm sequential search (A[0..n-1], K) // searches for a given value in a given array by sequential search // input: an array A[0..n-1] and a search key K // output: returns the index of the first element of A that matches K or -1 if there are no matching elements i  0 1 x while i  n and A[i]  K do 2 x i  i + 1 1 x if i  n return i 2 x else return -1 1 x Jelaskan isi algoritma di atas

Berapa ukuran input algoritma sequential search? Tunjukkan basic operationnya Basic operation selalu merupakan bagian loop paling dalam. Mengapa??? Bagian program non basic operation memberi tambahan sangat kecil pada waktu eksekusi program

Estimasikan waktu eksekusi algoritma sequential search! i  0 1 x while i  n and A[i]  K do 2 x i  i + 1 1 x if i  n return i 2 x else return -1 1 x Estimasikan waktu eksekusi algoritma sequential search!

T(n) = estimasi waktu eksekusi algoritma untuk input berukuran n T(n) = cop x C(n) T(n) = estimasi waktu eksekusi algoritma untuk input berukuran n Cop = waktu untuk mengeksekusi basic operation satu kali. Biasanya ditentukan 1 satuan waktu. Pada contoh sequential search, 1 satuan waktu kira - kira membutuhkan berapa clock CPU???

C(n) berapa kali basic operation dieksekusi untuk data berukuran n T(n) = cop x C(n) C(n) berapa kali basic operation dieksekusi untuk data berukuran n Pada kasus sequential search nilai C(n) tergantung dari posisi elemen yang akan dicari

Best Case, Worst Case, Average Case Anda beruntung. Nilai yang dicari ada pada posisi awal array. Setelah nilainya ditemukan, algoritma selesai dieksekusi. C(n) = 1 dan T(n) = 1 satuan waktu Worst-case Anda sial. Nilai yang dicari ada di posisi terakhir array atau tidak ada di array. C(n) = n dan T(n) = n satuan waktu Average-case Kasus paling umum. Nilai yang dicari bisa terletak di elemen mana saja dengan kemungkinan sama

Average Case Asumsikan Data yang dicari memang ada pada array Probabilitas data yang dicari terdapat di elemen tertentu sama besar untuk semua elemen array. Sehingga probabilitas sebuah data muncul pada elemen ke i adalah 1/n

Average Case Banyaknya eksekusi basic operation jika data yang dicari ada pada posisi 1st position = 1 2nd position = 2 ……. ith position = i nth position = n

T(n) = (n+1)/2 satuan waktu Average Case C(n) atau banyaknya eksekusi basic operation untuk data berukuran n 1(1/n) + 2 (1/n) + 3 (1/n) + …….. + i (1/n) + …… + n (p/n) = (1/n)(1 + 2 + 3 +… + n) = (1/n)(n(n+1))/2 = (n+1)/2 T(n) = (n+1)/2 satuan waktu

Catatan Tujuan utama mencari T(n) bukan mencari waktu eksak yang dibutuhkan untuk mengeksekusi sebuah algoritma Tetapi untuk mengetahui tingkat pertambahan waktu eksekusi algoritma jika ukuran input bertambah (order of growth)

Orders of Growth Tingkat pertambahan waktu eksekusi algoritma jika ukuran input bertambah

Orders of Growth Urutkan waktu eksekusi algoritma di bawah ini berdasarkan order of growthnya T1 (n) = n2 T1 (10) = 100 T1 (100) = 10,000 T2(n) = 2n T2(10) = 1,028 T2(100) = 1.3 x 030 T3(n) = n3 T3(10) = 1,000 T3(100) = 1,000,000 T4(n) = n T4(10) = 10 T4(100) = 100 T5(n) = log2 n T5(10) = 3.3 T5(100) = 6.6

Orders of Growth Makin ke bawah, order of growth makin besar C constant, we write O(1) logN logarithmic N linear NlogN N2 quadratic N3 cubic 2N exponential N! factorial Makin ke bawah, order of growth makin besar Untuk input data berukuran besar, algoritma dengan order of growth besar eksekusi waktunya jauh lebih lama dari algoritma dengan order of growth kecil

The Big-Oh Notation f(n) Є O(g(n)) Cara membaca “f(n) berada pada kelas g(n)” f(n) Є O(g(n)) Jika orders of growth f(n) kurang atau sama dengan(n).

The Big-Oh Notation C constant, we write O(1) logN logarithmic N linear NlogN N2 quadratic N3 cubic 2N exponential N! factorial N2 Є O(N2) paling presisi NlogN Є O(N2) N Є O(N2) log2N Є O(N2) logN Є O(N2) C Є O(N2)

O(1) Waktu pelaksanaan algoritma adalah tetap, tidak bergantung pada ukuran masukan. O(log n) Kompleksitas waktu logaritmik berarti laju pertumbuhan waktunya berjalan lebih lambat daripada pertumbuhan n. Rinaldi M/IF2091 Strukdis

O(n) Bila n dijadikan dua kali semula, maka waktu pelaksanaan algoritma juga dua kali semula. O(n log n) Bila n dijadikan dua kali semual, maka n log n menjadi lebih dari dua kali semula (tetapi tidak terlalu banyak) Rinaldi M/IF2091 Strukdis

O(n2) Bila n dinaikkan menjadi dua kali semula, maka waktu pelaksanaan algoritma meningkat menjadi empat kali semula. O(n3) Bila n dinaikkan menjadi dua kali semula, waktu pelaksanan algoritma meningkat menjadi delapan kali semula. Rinaldi M/IF2091 Strukdis

O(2n) Bila n dijadikan dua kali semula, waktu pelaksanaan menjadi kuadrat kali semula! O(n!) Bila n dijadikan dua kali semula, maka waktu pelaksanaan algoritma menjadi faktorial dari 2n. Rinaldi M/IF2091 Strukdis

Rinaldi M/IF2091 Strukdis

Tugas Implementasikan bubble sort dalam bahasa C Hitung T(n) untuk bubble sort Efisiensi waktu bubble sort berada pada kelas apa? Dikumpulkan dan dibahas pada pertemuan pertama setelah libur lebaran Tugas dipresentasikan oleh mahasiswa yang memiliki nomor urut mod 10 == 8