View
230
Download
0
Category
Preview:
Citation preview
PENGANTAR STRATEGI DANANALISA ALGORITMA
PENGANTAR STRATEGI DANANALISA ALGORITMA
wijanarto
AlgorithmAlgorithm: himpunan instruksiyang menggambarkan bagaimana
melakukan pekerjaan atau proses .
eureka!
ProgrammingProgramming:: C,pascalC,pascalProgrammingProgramming:: C,pascalC,pascal
Algorithm – DefinisiFrom: Websters Revised Unabridged Dictionary, 1913:
Algorism (Al"go*rism Al"go*rithm)• n. [OE. algorism, algrim, augrim, OF. algorisme, F.
algorithme (cf. Sp. algoritmo, OSp. alguarismo, LL.algorismus)
• Al-Khowarezmi aslinya Abu Ja'far Mohammed ben Musa,ahli arithmetic awal abad 9, bukunya dalam bhs latinalgorismus.
3
From: Websters Revised Unabridged Dictionary, 1913:
Algorism (Al"go*rism Al"go*rithm)• n. [OE. algorism, algrim, augrim, OF. algorisme, F.
algorithme (cf. Sp. algoritmo, OSp. alguarismo, LL.algorismus)
• Al-Khowarezmi aslinya Abu Ja'far Mohammed ben Musa,ahli arithmetic awal abad 9, bukunya dalam bhs latinalgorismus.
• Urutan instruksi untuk menentukanlangkah yang di perlukan dalammenyelesaikan suatu tugas.
• Muhammad ibn Musa al-KhwarizmiBerasal dari Khowarezm (sekarang Khiva di
Uzbekistan)
Algorithm
4
• Urutan instruksi untuk menentukanlangkah yang di perlukan dalammenyelesaikan suatu tugas.
• Muhammad ibn Musa al-KhwarizmiBerasal dari Khowarezm (sekarang Khiva di
Uzbekistan)
5Source: http://www.atlapedia.com/online/maps/political/Kazakh_etc.htm
Algorithm– Sejarah
Muhammad ibn Musa Al-Khwarizmi• Circa 160-230 A.H. (anno Hegirae)• Circa 780-850 C.E. (Common Era)
6
Algorithm –Sejarah (lanj)
Muhammad ibn Musa Al-Khwarizmihttp://www-groups.dcs.st-andrews.ac.uk/~history/Mathematicians/Al-Khwarizmi.html
• Buku arithmetic:– Hindu numeration, decimal numbers, use of zero,
method for finding square root– Latin translation (c.1120 CE): “Algoritmi de numero
Indorum”• Buku aljabar
– Hisab al-jabr w’al-muqabala
7
Muhammad ibn Musa Al-Khwarizmihttp://www-groups.dcs.st-andrews.ac.uk/~history/Mathematicians/Al-Khwarizmi.html
• Buku arithmetic:– Hindu numeration, decimal numbers, use of zero,
method for finding square root– Latin translation (c.1120 CE): “Algoritmi de numero
Indorum”• Buku aljabar
– Hisab al-jabr w’al-muqabala
• Urutan langkah yang menggambarkanbagaimana melakukan suatu pekerjaan
Algorithm – Working Definition
8
Algorithm -- Contoh
• Resep masakan• Instruksi Assembly• Aturan main game• Instruksi VCR• Deskripsi teknik bela diri• Arahan dari A to B• Pola jahitan• Manual perbaikan mobil
9
• Resep masakan• Instruksi Assembly• Aturan main game• Instruksi VCR• Deskripsi teknik bela diri• Arahan dari A to B• Pola jahitan• Manual perbaikan mobil
Dari Algorithm ke ProgramProblem AlgorithmAlgorithm: Urutan langkah ttg bagaimana
mengerjakan suatu tugas atau process
10
C/C/pascalpascal ProgramProgram
Bgmn kita memecahkan masalah?• Langsung kerjakan
• Tebak dan untung-untungan• Trial error• Pengalaman• "Scientifically“ = dg cara ilmiah
11
• Langsung kerjakan• Tebak dan untung-untungan• Trial error• Pengalaman• "Scientifically“ = dg cara ilmiah
Patient has elevatedpressure in anteriorparietal lobe
Process memecahkan masalah
Problemspecification
Design
"Doctor, my head hurts"
Analysis
1. Sterilize cranial saw2. Anaesthetize patient3. Remove top of skull4. Get the big spoon...5. etc., etc.
12
0100111010110010101010101001010101010100110010101010101001011010011101010101010010010111010011110101010111110101010001101…
sterilize(saw,alcohol);raise_hammer();lower hammer(fast);start(saw);/* etc. etc. */
Algorithm
Program
Executable(solution)
Implementation
Compilation
1. Sterilize cranial saw2. Anaesthetize patient3. Remove top of skull4. Get the big spoon...5. etc., etc.
Process memecahkan masalah
Problemspecification
Analysis
Design
"Dok, kepala saya sakit”
Pasien ada penyumbatanpd anterior parietallobe.
1. Steril gergaji2. bius3. Potong batok kepala4. Ambil spoon...5. etc., etc.
13
steril(gergaji,alcohol);raise_hammer();lower hammer(fast);start(saw);/* etc. etc. */
Algorithm
Program
Executable(solution)
Implementation
Compilation
1. Steril gergaji2. bius3. Potong batok kepala4. Ambil spoon...5. etc., etc.
010011101011001010101010100101010101010011001010101010100101101001110101010101001001011101001111010101011111010101000110100001101...
Process memecahkan masalah
Problemspecification
Analysis
Design
Kita Berada Disini
14
Algorithm
Program
Executable(solution)
Implementation
Compilation
Tahapan Penyelesaian MasalahVersi lain
• Komputer diciptakan untuk membantumenyelesaikan masalah manusia. Masalahyang dimaksud tentunya masalah yang dapatdiselesaikan dengan menggunakan computer (computerize problems ). Adapun secaraumum, langkah-langkah penyelesaian masalahdengan komputer adalah sebagai berikut
• Komputer diciptakan untuk membantumenyelesaikan masalah manusia. Masalahyang dimaksud tentunya masalah yang dapatdiselesaikan dengan menggunakan computer (computerize problems ). Adapun secaraumum, langkah-langkah penyelesaian masalahdengan komputer adalah sebagai berikut
Diagram PS
ANALISIS MASALAH
PERANCANGANALGORITMA
MASALAH
MENURUNKAN / TO DEVIC
MENYATAKAN /TO EXPRESS
MENVALIDASI / TO VALIDATEMENGANALISIS / TOANALYZE
PEMBUATAN PROGRAMKOMPUTER
UJI HASIL PROGRAM
DAN DOKUMENTASI
PENYELESAIAN/
SOLUSI MASALAH
MENURUNKAN / TO DEVIC
MENYATAKAN /TO EXPRESS
MENVALIDASI / TO VALIDATEMENGANALISIS / TOANALYZE
Tahapan Pemecahan Masalah• Analisis Masalah (40%)
– Analisis masalah adalah kegiatan mempelajari, mendalami masalah hinggamendapatkan ide-ide penyelesaian masalah (ide global).
• Perancangan Algoritma (30%)– Perancangan algoritma adalah pembuatan algoritma dimulai dari ide-ide
penyelesaian masalah hingga terciptanya algoritma dalam bentuk standar (a.l.pseudocode).
• Pembuatan Program Komputer (20%)– Mentransfer algoritma menjadi kode program, yang sebelumnya perlu
ditentukan struktur datanya.• Pengujian Hasil Program (5%)
– Running program untuk mengetahui apakah ada kesalahan, baik kesalahansintax, running atau output/hasil.
• Pembuatan Dokumentasi Program (5%)– Pembuatan dokumentasi meliputi dokumentasi dalam program atau manual
petunjuk pemakaian dan pemeliharaan program.
• Analisis Masalah (40%)– Analisis masalah adalah kegiatan mempelajari, mendalami masalah hingga
mendapatkan ide-ide penyelesaian masalah (ide global).• Perancangan Algoritma (30%)
– Perancangan algoritma adalah pembuatan algoritma dimulai dari ide-idepenyelesaian masalah hingga terciptanya algoritma dalam bentuk standar (a.l.pseudocode).
• Pembuatan Program Komputer (20%)– Mentransfer algoritma menjadi kode program, yang sebelumnya perlu
ditentukan struktur datanya.• Pengujian Hasil Program (5%)
– Running program untuk mengetahui apakah ada kesalahan, baik kesalahansintax, running atau output/hasil.
• Pembuatan Dokumentasi Program (5%)– Pembuatan dokumentasi meliputi dokumentasi dalam program atau manual
petunjuk pemakaian dan pemeliharaan program.
Struktur Data dan Algoritma
• Algoritma– Prosedur komputasional– Instruksi yang di kerjakan Step by step
• Program– Implementasi algortima dengan bahasa tertentu
• Struktur Data– ORGANISASI DATA yang di perlukan untuk
menyelesaikan masalah
• Algoritma– Prosedur komputasional– Instruksi yang di kerjakan Step by step
• Program– Implementasi algortima dengan bahasa tertentu
• Struktur Data– ORGANISASI DATA yang di perlukan untuk
menyelesaikan masalah
Masalah Algoritmik
SpesifikasiInput ?
Spesifikasi outputsebagai fungsi
input
• Sejumlah instan input yang tidak terbatas yangmemenuhi spesifikasi, misal terurut menaik darisuatu bilangan bulat lebih besar dari nol– 1,20,,908,909,100000,10000000
Solusi Algoritmik
Instan Input Algorithm
Output yangberhubungan
dengan input yangdi butuhkan
• Algoritma menggambarkan aksi dari instaninput
Bagaimanakah Algoritma yang bagus ?
• Effisien– Running time– Space yang di pakai
• Efisiensi sebagai ukuran dari fungsi input– Jumlah bit dalam sejumlah input– Sejumlah elemen data (angka)
• Effisien– Running time– Space yang di pakai
• Efisiensi sebagai ukuran dari fungsi input– Jumlah bit dalam sejumlah input– Sejumlah elemen data (angka)
Mengukur running time
• Bagaimana kita mengukur running timealgoritma
• Studi Eksperimen– Tulis program yang mengimplementasikan suatu
algoritma– Jalankan program dengan input data yang
berbeda-beda– Pakai pengukuran waktu
• Bagaimana kita mengukur running timealgoritma
• Studi Eksperimen– Tulis program yang mengimplementasikan suatu
algoritma– Jalankan program dengan input data yang
berbeda-beda– Pakai pengukuran waktu
Waktu dalam c (gcc)
/*fungsi utk mendapatkan waktu dalam milisecond*/void get_current_time( double *time_returned )
{struct timeval tp;
gettimeofday (&tp, NULL);
*time_returned = tp.tv_usec;*time_returned += tp.tv_sec*1000000;*time_returned /= 1E6;
}
/*fungsi utk mendapatkan waktu dalam milisecond*/void get_current_time( double *time_returned )
{struct timeval tp;
gettimeofday (&tp, NULL);
*time_returned = tp.tv_usec;*time_returned += tp.tv_sec*1000000;*time_returned /= 1E6;
}
Keterbatasan Studi eksperimen
• Harus dapat di implementasikan untukmengetahui running time
• Keterbatasan input• HW dan SW yang berbeda
• Harus dapat di implementasikan untukmengetahui running time
• Keterbatasan input• HW dan SW yang berbeda
Psuedo code
Algoritma ArrMax (A,n)Input: Array A yang menyimpan n
integerOutput: Nilai maximum dalam array A
maxa[0]for i1 to n-1 doif max<a[i]then maxa[i]
max
Algoritma ArrMax (A,n)Input: Array A yang menyimpan n
integerOutput: Nilai maximum dalam array A
maxa[0]for i1 to n-1 doif max<a[i]then maxa[i]
max
Notasi Algoritmik
• Eskpresi– Simbol matematika standar
• Untuk ekspresi boolean dan aritmatika
– untuk assignment– <,>,,,,= untuk relasi kesetaraan
• Deklarasi method/fungsi– nama(param1,param2) : Bla(X)
• Hasil Balik Fungsi– X atau return X
• Eskpresi– Simbol matematika standar
• Untuk ekspresi boolean dan aritmatika
– untuk assignment– <,>,,,,= untuk relasi kesetaraan
• Deklarasi method/fungsi– nama(param1,param2) : Bla(X)
• Hasil Balik Fungsi– X atau return X
Notasi Algoritmik
• Konstruksi program– if(kondisi)then(aksi1)else(aksilain)
– while(kondisi)…do– repeat …until(kondisi)– for … do atau i Traversal 1..N– index array a[i],a[i,j]– Assignment : Y=10 atau X10
• Konstruksi program– if(kondisi)then(aksi1)else(aksilain)
– while(kondisi)…do– repeat …until(kondisi)– for … do atau i Traversal 1..N– index array a[i],a[i,j]– Assignment : Y=10 atau X10
Strategi dan Analisis Algoritma
• Strategi adalah rencana yang cermat mengenaikegiatan untuk mencapai sasaran khusus (KBBI).
• Algoritma adalah urutan langkah-langkah untukmemecahkan suatu masalah.
• Strategi algoritmik adalah kumpulan metode atauteknik untuk memecahkan masalah guna mencapaitujuan yang ditentukan, yang dalam hal ini deskripsimetode atau teknik tersebut dinyatakan dalam suatuurutan langkah-langkah penyelesaian.
• Strategi adalah rencana yang cermat mengenaikegiatan untuk mencapai sasaran khusus (KBBI).
• Algoritma adalah urutan langkah-langkah untukmemecahkan suatu masalah.
• Strategi algoritmik adalah kumpulan metode atauteknik untuk memecahkan masalah guna mencapaitujuan yang ditentukan, yang dalam hal ini deskripsimetode atau teknik tersebut dinyatakan dalam suatuurutan langkah-langkah penyelesaian.
Strategi dan Analisis Algoritma
• Analisis berhubungan dengan cara pandangkita terhadap seberapa cepat algoritma itubekerja (waktu tempuh) dan perlu berapabanya sumber daya (memori)
• Dengan menganalisis suatu algoritma,diharapkan akan mendapatkan strategi yangtepat untuk memilih algoritma dalammenyelesaikan masalah.
• Analisis berhubungan dengan cara pandangkita terhadap seberapa cepat algoritma itubekerja (waktu tempuh) dan perlu berapabanya sumber daya (memori)
• Dengan menganalisis suatu algoritma,diharapkan akan mendapatkan strategi yangtepat untuk memilih algoritma dalammenyelesaikan masalah.
Analisis Algoritma
• Analisis algoritma adalah salah satu tahapandari perancangan algoritma, Sedangkanperancangan algoritma adalah salah satutahapan dari proses pemecahan masalahdengan komputer. Sebelum pembahasananalisis algoritma, terlebih dahulu kita bahastahapan pemecahan masalah dengankomputer.
• Analisis algoritma adalah salah satu tahapandari perancangan algoritma, Sedangkanperancangan algoritma adalah salah satutahapan dari proses pemecahan masalahdengan komputer. Sebelum pembahasananalisis algoritma, terlebih dahulu kita bahastahapan pemecahan masalah dengankomputer.
Struktur Dasar Algoritma
• 3 Bentuk Standar Algoritma– Sekuensial– Pencabangan (branching)– Kalang (looping)
• 3 Bentuk Standar Algoritma– Sekuensial– Pencabangan (branching)– Kalang (looping)
Aspek Algoritma
• Valid– Algoritma harus benar, artinya memberikan keluaran
yang di kehendaki• Efektifitas
– Tepat guna, hasil guna, akurat, mencapa tujuan, aman• Efisiensi
– Hemat, Cepat dengan space memori yang kecil• Berhingga langkahnya• Logis dan terstruktur
• Valid– Algoritma harus benar, artinya memberikan keluaran
yang di kehendaki• Efektifitas
– Tepat guna, hasil guna, akurat, mencapa tujuan, aman• Efisiensi
– Hemat, Cepat dengan space memori yang kecil• Berhingga langkahnya• Logis dan terstruktur
Analisis Algoritma
• Memori– Di pengaruhi oleh variabel– Stack : tempat menyimpan data sebenarnya
• Kecepatan– Cache memori (HW)– Jumlah langkah (algoritma)– Operator dan operand
• Memori– Di pengaruhi oleh variabel– Stack : tempat menyimpan data sebenarnya
• Kecepatan– Cache memori (HW)– Jumlah langkah (algoritma)– Operator dan operand
Strategi Algoritma
• Bagaimana merencanakan atau menentukansuatu model penyelesaian masalah, untuk ituperlu di buat disain yang memenuhi aspekalgoritma yang di maksud.
• Bagaimana memilih model penyelesianmasalah yang sudah ada sehingga di pandangdapat dengan tepat untuk itu
• Bagaimana merencanakan atau menentukansuatu model penyelesaian masalah, untuk ituperlu di buat disain yang memenuhi aspekalgoritma yang di maksud.
• Bagaimana memilih model penyelesianmasalah yang sudah ada sehingga di pandangdapat dengan tepat untuk itu
Efektifitas dan efisiensi• Kecenderungan efektifitas adalah
– Kebenaran algoritma tersebut– Merespon terhadap inputan apapun
• Efisiensi– Space yang di perlukan– Waktu/banyak langkah atau waktu tempuh yang di gunakan
oleh :• Banyaknya statement• Jenis statement/struktur• Banyak operasi aritmatik dan logik• Procedure dan fungsi call
– Built-in function– User define
» Recursif» Non recursive
• Kecenderungan efektifitas adalah– Kebenaran algoritma tersebut– Merespon terhadap inputan apapun
• Efisiensi– Space yang di perlukan– Waktu/banyak langkah atau waktu tempuh yang di gunakan
oleh :• Banyaknya statement• Jenis statement/struktur• Banyak operasi aritmatik dan logik• Procedure dan fungsi call
– Built-in function– User define
» Recursif» Non recursive
Kompleksitas Algoritma
• Kebutuhan space dan waktu tempuh inilahyang di sebut dengan kompleksitas algoritma
• Space sering unpredicted, terutama jikabanyak menggunakan pointer/ tipe datadinamis
• Seringkali space tidak disertakan dalampenentuan kompleksitas algoritma, kecuali jikatipe data yang terlibat adalah statis.
• Kebutuhan space dan waktu tempuh inilahyang di sebut dengan kompleksitas algoritma
• Space sering unpredicted, terutama jikabanyak menggunakan pointer/ tipe datadinamis
• Seringkali space tidak disertakan dalampenentuan kompleksitas algoritma, kecuali jikatipe data yang terlibat adalah statis.
Problem ?
• Kompleksitas algoritma memiliki batas bawahdan batas atas yang di sebut dengan ORDER
• Bagaimana menentukan kompleksitas (dalambentuk fungsi) ???
• Bagaimana menentukan ORDERnya ????• Untuk menentukan 2 hal tersebut di perlukan
Mathematical Background.
• Kompleksitas algoritma memiliki batas bawahdan batas atas yang di sebut dengan ORDER
• Bagaimana menentukan kompleksitas (dalambentuk fungsi) ???
• Bagaimana menentukan ORDERnya ????• Untuk menentukan 2 hal tersebut di perlukan
Mathematical Background.
Background Matematika
• Hanya review, karena sudah di ajarkan di matakuliah lain (Kalkulus)
• Induksi Matematika• Fungsi, barisan dan deret• Limit barisan
• Hanya review, karena sudah di ajarkan di matakuliah lain (Kalkulus)
• Induksi Matematika• Fungsi, barisan dan deret• Limit barisan
Induksi Matematika
• Buktikan bahwa statement P(n) adalahbilangan asli untuk nN. P(n) benar, kecuali– Terdapat n0 N sehingga P(n0) benar– Untuk setiap nn0, jika P(n) benar maka P(n+1)
juga benar
• Buktikan bahwa statement P(n) adalahbilangan asli untuk nN. P(n) benar, kecuali– Terdapat n0 N sehingga P(n0) benar– Untuk setiap nn0, jika P(n) benar maka P(n+1)
juga benar
Induksi Matematika
• P(a) Benar, ini di sebut sebagai langkah basis.• Jika P(n) benar maka P(n+1) benar untuk
n a, ini di sebut sebagai langkah induksi.
Induksi Matematika
Fungsi
• Pemetaan suatu nilai dari domain ke rangeF: AB
• Pemetaan suatu nilai dari domain ke rangeF: AB
A B
Fungsi
• Penyajian Fungsi• Model Matematika
• AlgoritmaF(n)if(n1)then 1else (n*F(n+1))
1)1(*11
)(nnFnn
nF
• Penyajian Fungsi• Model Matematika
• AlgoritmaF(n)if(n1)then 1else (n*F(n+1))
1)1(*11
)(nnFnn
nF
Barisan
• Merupakan fungsi dengan himpunan asalberupa bilangan asli, jika a merupakan nilaifungsi f di n, maka an=f(n) dan dapat ditulis{ an|n=1,2,3,...} disebut dengan BARISAN.
• Contoh :
• Merupakan fungsi dengan himpunan asalberupa bilangan asli, jika a merupakan nilaifungsi f di n, maka an=f(n) dan dapat ditulis{ an|n=1,2,3,...} disebut dengan BARISAN.
• Contoh :
Deret
• Merupakan barisan dalam bentuk jumlahanbarisan.
• Di ketahui barisan a1,a2,a3,a4,…, a,…– DERET1= a1,a1+a2,a1+a2+a3,…– DERET2=a1,a2,a1+a3,a2+a4,a1+a3+a5,a2+a6,….
• Merupakan barisan dalam bentuk jumlahanbarisan.
• Di ketahui barisan a1,a2,a3,a4,…, a,…– DERET1= a1,a1+a2,a1+a2+a3,…– DERET2=a1,a2,a1+a3,a2+a4,a1+a3+a5,a2+a6,….
Limit Barisan
• Misalkan di ketahui suatu barisan {an} dengana=f(n) , maka barisan an di katakan konvergenke L apabila :
• Misalkan di ketahui suatu barisan {an} dengana=f(n) , maka barisan an di katakan konvergenke L apabila :
Limit Barisan
• Contoh
Teorema
contoh
Latihan1. Jelaskan bagaimana masalah seharusnya di selesaikan2. Dapatkah anda gambarkan komponen penyelesaian masalah,
berikan contoh aktual.3. Tuliskan pengertian konsep strategi algoritma dan analisa
algoritma serta hubungan diantaranya.4. Dapatkah anda menuliskan struktur dasar algoritma, berikan
contohnya5. Jelaskan konsep mengenai algoritma, program, pemrograman.6. Sebut dan jelaskan aspek-aspek suatu algoritma dan bagaimana
pengukuran dilakukan.7. Tuliskan konsep dasar suatu fungsi, deret dan barisan.8. Apa peranan struktur data dalam analisa algoritma.
1. Jelaskan bagaimana masalah seharusnya di selesaikan2. Dapatkah anda gambarkan komponen penyelesaian masalah,
berikan contoh aktual.3. Tuliskan pengertian konsep strategi algoritma dan analisa
algoritma serta hubungan diantaranya.4. Dapatkah anda menuliskan struktur dasar algoritma, berikan
contohnya5. Jelaskan konsep mengenai algoritma, program, pemrograman.6. Sebut dan jelaskan aspek-aspek suatu algoritma dan bagaimana
pengukuran dilakukan.7. Tuliskan konsep dasar suatu fungsi, deret dan barisan.8. Apa peranan struktur data dalam analisa algoritma.
Recommended