Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Analisis Algoritma dan Struktur Data

Presentasi serupa


Presentasi berjudul: "Analisis Algoritma dan Struktur Data"— Transcript presentasi:

1 Analisis Algoritma dan Struktur Data
Suarga

2 Rencana Topik Bahasan Review Algoritma Dasar Review Struktur Data
Fondasi Matematis Analisis Algoritma Algoritma Greedy Divide and Conquer Dynamic Programming HeapSort + QuickSort Counting Sort + Radix Sort

3 Rencana Topik Bahasan 10 .Median and Order Statistcs 11 .Binary Search Tree 12. B-Trees 13. Algoritma Graf 14. Algoritma Dijkstra dan Bellman-Ford

4 References 1. References:
Aho, Hopcroft, and Ullman, “The Design and Analysis of Computer Algorithm”, Addison Wesley Sedgewick and Flajolet, “Analysis of Algorithm”, Addison Wesley Cormen, Leiserson, and Rivest, “Introduction to Algorithms”, McGraw Hill , MIT Press Suarga, “Algoritma Pemrograman”, Andi Offset

5 Review Algoritma Dasar

6 Pendahuluan Kata Algoritma Algorithm  Algorism  Al Kwarizmi  Abu Ja’far Muhammad Ibnu Musa Al-Kwarizmi : memakai prinsip algoritma dalam penyelesaian aljabar (Aljabar wal Muqabala). Algoritma : teknik penyusunan langkah penyelesaian masalah dalam bentuk kalimat singkat dengan jumlah kata terbatas, namun tersusun secara logis dan sistematis

7 Ciri Algoritma Donal E.Knuth menyatakan:
Algoritma mempunyai awal dan akhir, jadi memiliki langkah yang jumlahnya terbatas Setiap langkah harus didefinisikan dengan tepat sehingga tidak memiliki arti ganda Memiliki kondisi awal, atau nilai masukan Memiliki kondisi akhir atau nilai keluaran Effektif, bila langkahnya di-ikuti maka persoalan harus memiliki penyelesaian

8 Struktur Algoritma Header: yang memuat nama algoritma serta keterangan singkat tentang kondisi awal, kondisi akhir, atau tujuan algoritma Deklarasi /Definisi Variable: memuat definisi dari semua variabel yang akan digunakan dalam algoritma Deskripsi / Rincian Langkah: susunan logis dan sistematis dari langkah penyelesaian masalah

9 Contoh Algoritma Nilai-Rata { menghitung nilai rata dari n buah data } Deklarasi integer N, k; real x, jumlah, rata; Deskripsi Read(N); k 1; jumlah  0.0;

10 While (k <= N) do Read(x); Jumlah  jumlah + x; k  k + 1; endWhile; Rata  jumlah/N; Write(Rata);

11 Data dan Variabel Ada dua kategori dari tipe data, yaitu: tipe dasar dan tipe bentukan. Tipe dasar : adalah tipe data yang selalu tersedia pada setiap bahasa pemrograman, antara lain: bilangan bulat (integer), bilangan biasa (real), bilangan tetap (const), karakter (character atau char), logik (logic atau boolean). Tipe bentukan : adalah tipe data yang dibentuk dari kombinasi tipe dasar, antara lain: larik (array), rekaman (record), string (string).

12 Array : Kumpulan elemen sejenis
1-dimensi: integer nilai[20]; 2-dimensi: real matriks[5][10]; 3-dimensi: real tensor[3][5][10]; String: array dari karakter String nama, alamat; Record: Kumpulan elemen tdk sejenis Type DataMhs : record < NomerMhs : integer, Nama : String, Alamat: String, Umur : integer Jkel : char; >

13 Contoh variable yang benar : Nama, Alamat, Nilai_Ujian
Variable adalah nama yang mewakili suatu elemen data seperti: jenkel untuk jenis kelamin, t4lahir untuk tempat lahir, alamat untuk alamat, dsb. Ada aturan tertentu yang wajib diikuti dalam pemberian nama variable antara lain: Harus dimulai dengan abjad, tidak boleh dengan angka atau simbol Tidak boleh ada spasi diantaranya Jangan menggunakan simbol-simbol yang bisa membingungkan seperti titik dua, titik koma, koma, dsb. Sebaiknya memiliki arti yang sesuai dengan elemen data Sebaiknya tidak terlalu panjang Contoh variable yang benar : Nama, Alamat, Nilai_Ujian Contoh variable yang salah : 4XYZ, IP rata, Var:+xy,458;

14 Pemberian nilai pada variabel
Pemberian nilai dengan cara assignment mempunyai bentuk umum sebagai berikut: Variable  nilai; Variable1  variable2; Variable  ekspressi; Pemberian nilai dengan cara pembacaan dapat dilakukan melalui instruksi pembacaan dengan bentuk umum sbb: read(variable); atau read( variable1, variable2, … );

15 Menampilkan nilai variabel
Agar hasil pelaksanaan algoritma dapat dikomunikasikan atau ditayangkan maka nilai variable yang telah diproses dalam algoritma dapat ditampilkan. Instruksi untuk menampilkan nilai variable adalah: write(variable, … ); Contoh penampilan nilai adalah sbb: write(“nama anda : “, Nama); write(“nilai ujian = “, nilai); write(“Jumlah variable = “, X + Y + Z);

16 Operator Operator aritmetika : operator untuk melakukan fungsi aritmetika seperti: + (menjumlah), - (mengurangkan), * (mengalikan), / (membagi), %(sisa). Operator relational : operator untuk menyatakan relasi atau perbandingan antara dua operand, seperti : > (lebih besar), < (lebih kecil), >= (lebih besar atau sama), <= (lebih kecil atau sama), == (sama), != (tidak sama) atau > <, < >.

17 Operator logik : operator untuk merelasikan operand secara logis, seperti && (and), || (or), dan ! (not). Operator string : operator untuk memanipulasi string, seperti : (concatenation), len (panjang string), dan substr (substring, mencuplik). Fungsi : berbagai fungsi matematis seperti: floor(), ceil(), log(), sin(), cos(), tan(), sqrt(), dsb

18 Instruksi Utama Instruksi Sequential :
tiap instruksi dikerjakan sekali satu per-satu urutan pelaksanaan instruksi sama dengan urutan penulisan algoritma instruksi terakhir merupakan akhir dari algoritma urutan penulisan instruksi bisa menjadi penting, bila diubah dapat menyebabkan hasil yang berbeda.

19 Instruksi Selection (pemilihan alternatif)
Instruksi pemilihan adalah instruksi yang dipakai untuk memilih satu aksi dari beberapa kemungkinan aksi berdasarkan suatu persyaratan. Ada dua bentuk instruksi pemilihan yang sering digunakan yaitu: Instruksi if / then / else Instruksi case

20 bentuk 1 kasus: if (syarat) if ( x > 100) then aksi then x  x + 1; endif endif bentuk 2 kasus: if ( syarat ) if ( x > 0) then aksi then Write(‘ X positif”); else aksi else Write(“X negatif”); endif endif

21 Bentuk bersusun (nested)
if ( syarat-1 ) if (syarat-1) then aksi then if (syarat-2) else if ( syarat-2 ) then aksi-1 then aksi else aksi-2 else aksi endif endif else aksi-3 endif endif

22 Bentuk instruksi case :
case ( variable ) nilai-1 : aksi-1; nilai-2 : aksi-2; nilai-3 : aksi-3; ……….. default : aksi-n; endcase.

23 Perulangan Repeat-until
Instruksi Perulangan Perulangan While-do while (kondisi) do ……….. instruksi-instruksi ………. endwhile. Perulangan Repeat-until repeat instruksi – instruksi until ( kondisi ).

24 Perulangan dengan for for ( var = awal to akhir step n ) instruksi – instruksi …………… endfor.

25 Studi Kasus Menjumlahkan Deret
Buatlah sebuah algoritma untuk menghitung jumlah deret dengan N buah suku sbb: S = 1 – 1/2 + 1/4 - 1/ / / / /14 + … 2. Buatlah sebuah algoritma yang mencari x dalam sebuah array dengan N bilangan yang telah ber-urut ascending, menurut teknik bagi-dua.

26 Algoritma Jumlah_Deret
{ menjumlahkan deret bersuku N } Deklarasi integer N, cacah, k; real S; Deskripsi write ( “Berapa banyak suku ? “); read ( N ); S  1; cacah  1; k  0; while ( cacah < = N ) do cacah  cacah + 1; k  k + 2; if ( cacah % 2 = 0 ) then S  S – 1/k; else S  S + 1/k; endif. endwhile. write ( “Jumlah deret = “, S);

27 Algoritma Binary_Search
{ pencarian elemen dengan metoda bagi dua } Deklarasi integer m=10; integer A[m], x; integer idx1, idx2, indeks; boolean ketemu; Deskripsi idx1  1; { indeks ujung kiri} idx2  m; { indeks ujung kanan} ketemu  false; while ( !ketemu && ( idx1 < idx2 ) ) do { menghitung titik tengah } indeks  (idx1 + idx2) \ 2; if ( x = A[indeks] ) then ketemu  true; else if ( x > A[indeks] ) then idx1  indeks + 1; { sisi kanan } else idx2  indeks – 1; { sisi kiri } endif. endwhile. if ( ketemu ) then write ( “ x ketemu di posisi : “, indeks ); else write ( “ x tidak ditemukan “ );


Download ppt "Analisis Algoritma dan Struktur Data"

Presentasi serupa


Iklan oleh Google