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
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