PENGANTAR STRATEGI DAN ANALISA ALGORITMA - …dinus.ac.id/repository/docs/ajar/slide_1.pdf ·...

Post on 15-May-2018

230 views 0 download

Transcript of PENGANTAR STRATEGI DAN ANALISA ALGORITMA - …dinus.ac.id/repository/docs/ajar/slide_1.pdf ·...

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.