Analisis Algoritma dan Struktur Data

Slides:



Advertisements
Presentasi serupa
TEORI ALGORITMA.
Advertisements

STRUKTUR DASAR ALGORITMA
STRUKTUR PERULANGAN Perulangan adalah instruksi yang dapat mengulang sederetan Instruksi secara berulang-ulang sesuai persyaratan yang ditetapkan. Struktur.
ALGORITMA & PEMROGRAMAN I-A
PERTEMUAN 6 Algoritma Presented by : Sity Aisyah, M.Kom
PENGURUTAN (SORTING).
Pengantar Algoritma.
Pengertian Algoritma Sebuah algoritma merupakan deskripsi pelaksanaan suatu proses, dimana algoritma disusun oleh sederetan langkah instruksi yang logis.
PENCARIAN (SEARCHING)
Flowchart dan Pseudocode
LOGIKA ALGORITMA Pertemuan 6.
Oleh Nila Feby Puspitasari
Notasi Algoritma.
Instruksi Runtutan Instruksi Pemilihan dan Instruksi Perulangan dalam Pascal Minggu XII.
Algoritma dan Pemrograman
Dasar Komputer & Pemrog. 2A
Outline Awalnya dikembangkan oleh Borland dan umunya igunakan untuk paket perangkat lunak tingkat lanjut dengan kepustakaan yang lebih banyak dan.
Matakuliah: T0034 / Perancangan & Analisis Algoritma Tahun: 2008 Pertemuan 1 PENGENALAN PERANCANGAN & ANALISIS ALGORITMA.
Algoritma (Struktur, Tipe Data, Input/Output)
Notasi Algoritma.
Algoritma Dan Pemrograman
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
Pengulangan Bambang Irawan.
Dasar-dasar Pemrograman
ALGORITMA PEMROGRAMAN 2A
Struktur Algoritma & Tipe Data
Algoritma Pencarian (searching)
STRUKTUR DASAR ALGORITMA
ALGORITMA DAN PEMROGRAMAN Tipe Data
KUG1A3 Algoritma& Pemrograman
PERTEMUAN 2 Bambang Irawan.
Dasar Algoritma dan Pemrograman
PERTEMUAN 2 Algoritma & Pemrograman
Algoritma dan Pemrograman Searching
Dasar-Dasar Pemrograman
Algoritma & Pemrograman
Notasi Algoritmik.
Algoritma.
PERTEMUAN 3 KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
STRUKTUR DASAR ALGORITMA
KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
Algoritma dan Pemrograman Searching
STRUKTUR DASAR ALGORITMA
ALGORITHMA DAN ATURAN PENULISANYA
PENGURUTAN (SORTING).
Dasar – dasar Algoritma dan Pemrograman
Pseudocode – Tipe Data, Variabel, dan Operator
Array 1.
PEMROGRAMAN PASCAL ELEMEN PEMROGRAMAN PASCAL.
Tipe Data, Operator dan Ekspresi
Pengulangan Bambang Irawan.
ALGORITMA DAN PEMROGRAMAN Tipe Data
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
PERULANGAN.
TIPE DATA DASAR C++.
ALGORITMA DAN PEMROGRAMAN Tipe Data
Teknik Informatika Politeknik Negeri Batam
Struktur Dasar Algoritma dan Runtunan
MATERI PERKULIAHAN ANALISIS ALGORITMA
SEARCHING (PENCARIAN)
Oleh : UMMU ZAHRA ALGORITMA.
ARRAY STATIS Sri Nurhayati, MT.
Algoritma dan Pemrograman Searching
KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
ARRAY STATIS Sri Nurhayati, MT.
Pencarian (searching)
Sesi-3 Algoritma dan Pemrograman
Pengulangan While - Do Temu 10.
STRUKTUR DASAR ALGORITMA
Transcript presentasi:

Analisis Algoritma dan Struktur Data Suarga

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

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

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

Review Algoritma Dasar

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

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

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

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;

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

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

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

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;

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, … );

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

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

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

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.

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

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-1 then Write(‘ X positif”); else aksi-2 else Write(“X negatif”); endif. endif

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

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

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

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

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

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

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 “ );