Anda di halaman 1dari 15

Pengantar Analisa

Algoritma

KELOMPOK 3
NASHRULLAH SETIAWAN
MUHAMMAD IKBAL
SYAHRUL HIDAYAT
Algoritma
 Algoritma pertama kali diperkenalkan Oleh Ahli
Matematika : Abu Ja’far Muhammad Ibnu Musa
Al Khawarizmi.
 Seorang Ilmuwan Persia yang menulis kitab Al
jabr Muqabala (Rules of restoration and
Reduction) sekitar tahun 825 M
APA ITU Algoritma ?
 Definisi
 Urutan langkah-langkah untuk memecahkan
masalah
 Kamus Besar Bahasa Indonesia:
Algoritma adalah urutan logis pengambilan
putusan untuk pemecahan masalah
 Algoritma diwujudkan dalam bentuk Program
Komputer
Istilah
 Program berisi urutan langkah-langkah
penyelesaian masalah.
 Program ditulis dengan menggunakan bahasa
pemrograman.
 Orang yang membuat program disebut
pemrogram (programmer).
 Kegiatan merancang dan menulis program disebut
pemrograman.
Ciri Algoritma
1. Finiteness
• Jumlah langkah dalam algoritma harus terbatas
2. Definiteness
• Setiap langkah harus didefinisikan secara tepat,
tidak boleh membingungkan (ambiguous)
3. Input
• Sebuah algoritma memiliki nol atau lebih input yang
diberikan kepada algoritma sebelum dijalankan
4. Output
• Sebuah algoritma memiliki satu atau lebih output,
yang biasanya bergantung kepada input
5. Effectiveness
• Setiap algoritma diharapkan miliki sifat efektif
Algoritma ???
 Beberapa masalah dapat diselesaikan dengan algoritma
yang bermacam” asal hasilnya sama
 Setiap BP punya + - dalam mengimplementasikan
algoritma
 Setiap programer dapat mengimplementasikan algoritma
dengan cara yang berbeda”
 algoritma dapat dianalisis efisiensi dan kompleksitasnya,
dimana program harus berhenti dalam batas waktu yang
wajar (reasonable)
 Penilaian algoritma didasarkan pada:
 Waktu eksekusi (paling utama), d/ mengetahui berapa
banyak resource (time & space) yang diperlukan oleh
sebuah algoritma
 Penggunaan memori/sumber daya
 Kesederhanaan dan kejelasan algoritma
Analisa Algoritma….What???
 Mengukur jumlah sumber daya (time &
space) yang diperlukan oleh sebuah
algoritma
 Waktu yang diperlukan (running time) oleh
sebuah algoritma cenderung tergantung pada
jumlah input yang diproses
 Algoritma tidak terikat pada platform mesin,
OS, BP, kualitas kompilator atau bahkan
paradigma pemrograman (mis. Procedural vs
Object-Oriented)
Analisa Algoritma….How???
 Bagaimana menganalisa algoritma?
 Jumlah waktu yang digunakan bervariasi
tergantung pada
 kecepatan mesin
 sistem operasi (multi-tasking)
 kualitas kompiler
 BP yang digunakan
 Sehingga kurang memberikan gambaran yang
tepat tentang algoritma
Analisa Algortima….Kesimpulan
 Analisa algoritma tidak mudah dilakukan secara pasti hanya diambil:
 Kondisi rata-rata (average case)
 Kondisi terburuk (worst case)
 Kondisi baik (best case)
 Waktu eksekusi dipengaruhi:
 Jenis data input
 Jumlah data input
 Pemilihan instruksi BP
 Faktor” yang menyulitkan analisis, disebabkan:
 Implementasi instruksi oleh BP berbeda”
 Ketergantungan algoritma terhadap jenis data
 Ketidakjelasan algoritma yang diimplementasikan
 Langkah” analisis algoritma:
 Menentukan jenis/sifat data input
 Mengidentifikasi abstract operation dari data input
 Menganalisis secara matematis untuk menentukan average case, worst case
dan best case
Desain Algoritma: Contoh2
 Pandang sederetan n buah bilangan a 1 , a 2 , a 3 , ... , a n x n
Akan dicari bilangan max yang merupakan bilangan
terbesar dari n buah sederetan bilangan tersebut.
 Algoritma
 Input: Array A dengan n elemen bilangan
 Output: Bilangan max=maksimum(
a 1 , a 2 , a 3 , ... , a)n  x n
 Langkah-langkah:

CariMaximal(A,n,max) {
1. max=A[0];
2. for(i=1; i<n ; i++)
3. if (max<A[i]) max=A[i];
4. return max;
}
Analisis Algoritma: definisi
 Merupakan suatu metoda untuk mengetahui
unjuk kerja (performansi) suatu algoritma
 Dapat berupa membandingkan biaya
komputasi dari dua (atau lebih) algoritma
untuk suatu permasalahan yang sama, atau
untuk memperkirakan apakah solusi yang kita
berikan dapat memenuhi kendala-kendala
dari permasalahannya.
Contoh Algoritma Brute Force
Bubble Sort

• metode yang paling bagus dalam memecahkan masalah pengurutan


algoritma bubble sort
• Alur mengurutkan tabel L[1…n], sehingga terurut naik; dengan inputan
(tabel L yang sudah didefinisikan nilai”nya); output (tabel L yang terurut
naik L[1]<=L[2]…<=L[n]
Deklarasi
i,k,n,temp:integer
input/output tabel L: integer
Algoritma
for (i=1; i<n-1; i++)
for (k=n; k<n-1; i++)
if L[k]<L[k-1] then
temp=L[k]
L[k]=L[k-1]
L[k-1]=temp
Kompleksitas algoritma ini adalah O(n2)
ANALISIS CORRECTNESS DALAM
INSERTION SORT
ANALISIS CORRECTNESS DALAM
INSERTION SORT
• Pada insertion sort, yang menjadi loop invarian adalah
A[1,...,J-1].

Analisis kebenaran:
1. initialization: ketika j=2, sebelum iterasi pertama selesai, matrik a[1,
…,j-1] hanya mengandung satu elemen tunggal yang secara otomatis
pasti terurut
2. maintenance (sifat ke 2): membuktikan bahwa setiap iterasi
memperbaiki kondisi loop invariant. Di sini pada setiap iterasi matrix
A[1,..,J-1] dibuat urut dengan pengurutan mulai dari j-1, j-2, dst;
3. termination: kondisi yang membuat loop berhenti adalah ketika j=n,
karena j selalu di tambah 1 dalam setiap iterasi maka kondisi tersebut
pasti akan terjadi
TERIMAKASIH

TUGAS ADALAH BATU LONCATA UNTUK


KITA NAIK 1 TINGKAT DIATAS MEREKA
JANGAN LUPA SENYUM HARI INI!!

Anda mungkin juga menyukai