Kuliah 1 2 Algoritma Pseudocode Prosedure dan Fungsi
























- Slides: 24

Kuliah 1 -2 (Algoritma) • Pseudocode • Prosedure dan Fungsi • Call by value vs call by Refrence • Membaca algoritma • Latihan

Psudocode Fungsi dan Prosedure n Notasi n Perbedaan Fungsi dan Prosedure n Call By Value vs Call by Refrence

Fungsi vs Prosedure Fungsi n Parameter inpur min 1 dan output mak 1 Procedure n Parameter sembarang Analysis of Algorithms 3

Fungsi Pseudocode nama. Fungsi(daftar par) : type. Hasil variabel local algoritma body return nilai Analysis of Algorithms 4

Contoh fungsi f(X, Y) = X^2+Y/2 Fucntion f(x, y) Algoritma Return x^2 + Y/2 Analysis of Algorithms 5

Fungsi Rekursif Fungsi yang memanggil dirinya sendiri Contoh : n n n n fak(5) = 5 * fak(4) = 4 * fak(3) = 3 * fak(2) = 2 * fak(1) = 1 > fak(n) = n*fak(n-1) If n = 1 or n Analysis = 0 ofthen fak(n) = 1 Algorithms 6

Contoh 2 1, 2, 3, 5, 8, 13, 21, 34, …. F(n) = ? Analysis of Algorithms 7

Pseodocode Prosedure Nama. Prosedure (daftar parameter in/out) Variabel lokal Algoritma n Bodi Daftar parameter n Call by value n Call by refrence Analysis of Algorithms 8

Contoh 1. input data array 2. Cetak data array 3. Cari posisi suatu data di array 4. Cari pos-pos data suatu array 5. Cari nilai terbesar di array 6. Copy array dari pos I sebanyak k item 7. Ganti item array yang nilainya genap dengan rumus A[i] = A[i-1]*3 Analysis of Algorithms 9

Langkah-langkah solusi Buat Rancangan Black Box (IPO) n Untuk mentukan fungsi atau prosedure Buat flowchart Buat pseudocode Analysis of Algorithms 10

Contoh Buat algoritma fungsi/prosedure untuk mencari posisi data tertentu di suatu array A. Analysis of Algorithms 11

1. BB A : Larik find. Post. Dt posisi : int dt. Cari : tp. Dt Bentuk yang paling sesuai adalah fungsi Analysis of Algorithms 12

2. Flowchart dan Pseodocode Function Find. Pos. Dt(A : Larik, dt. Cari : tp. Dt) : int Var local i : integer ketemu : boolean pos : integer Algoritma i 0 Ketemu false Pos -1 While (not ketemu and I < N) do If (dt. Cari = A[i]) then Ketermu true Pos I End if i i+1 End while Analysis of Algorithms 13

Latihan : kerjakan dengan cara yang sama untuk 1. 2. 3. 4. 5. Cari posisi suatu data di array Cari posisi-posisi data suatu array Cari nilai terbesar di array Copy array dari pos I sebanyak k item Ganti item array yang nilainya genap dengan rumus A[i] = A[i-1]*3 6. Tukar isi dari array A dan B dengan ketentuan sebagai berikut : n Jika A[i] genap maka A[i] = B[i]*A[i] n Jika B[i] ganjil maka B[i] = B[i-1]-A[i] Analysis of Algorithms 14

Algoritma & Struktur Data ASD C algstrdttif-c Analysis of Algorithms 15

Tugas 1 kelas C Dikumpulkan Selasa 5 Maret 2013 (JANGAN LUPA SERTAKAN NO KELOMPOK DENGAN FORMAT SBB: n K 01_C_T 1 Susun 1. BB, 2. Flowchart, 3. Pseudocode dan Program berbasis OOP untuk ADT Matrik meliputi : hitung. Rata-rata perbaris hitung. Rata-rata perkolom Penjumlahan 2 buat matrik Perkalian 2 buah matrik Tranpos Matrik Standart deviasi dari suatu matrik (rumus cari di buku statistik) Kesamaan dua buah matrik Ambil baris yang rata-ratanya terbesar Analysis of Algorithms 16

Tugas 1 kelas D Dikumpulkan Senin 4 Maret 2013 (JANGAN LUPA SERTAKAN NO KELOMPOK DENGAN FORMAT SBB: n K 01_D_T 1 Susun 1. BB, 2. Flowchart, 3. Pseudocode dan Program berbasis OOP untuk ADT Matrik meliputi : hitung. Rata-rata perbaris hitung. Rata-rata perkolom Penjumlahan 2 buat matrik Perkalian 2 buah matrik Tranpos Matrik Standart deviasi dari suatu matrik (rumus cari di buku statistik) Kesamaan dua buah matrik Analysis of Algorithms 17

Tugas 1 E Dikumpulkan Selasa 5 Maret 2013 (JANGAN LUPA SERTAKAN NO KELOMPOK DENGAN FORMAT SBB: n K 01_E_T 1 Susun 1. BB, 2. Flowchart, 3. Pseudocode dan 4. Program berbasis OOP untuk ADT Matrik meliputi : 1. 2. 3. 4. 5. 6. 7. 8. • cetak. Matrik hitung. Rata-rata perbaris hitung. Rata-rata perkolom Penjumlahan 2 buat matrik Perkalian 2 buah matrik Tranpos Matrik Standart deviasi dari suatu matrik (rumus cari di buku statistik) Kesamaan dua buah matrik Dikumpulkan HC (A 4, Font Courier. New 9 untuk coding) Analysis of Algorithms 18

Latihan : susun algoritma prosedure atau fungsi dari persamaan berikut : Analysis of Algorithms 19

Membaca Algoritma Misalkan diberikan dua buah variabel x dan y, dan variable hasil yang nilai awalnya 0. Lakukan proses berikut selama nilai x lebih besar 0. 1. jika nilai x ganjil maka hasil = hasil + y 2. nilai x selanjutnya adalah nilai x sebelumnya dibagi dua, bila ada hasil pecahan, maka pecahannya dibuang (contoh bilai nilai x sebelumnya 1 maka nilai selanjutnya 0) 3. nilai y selanjutnya adalah nilai y sebelumnya dikali 2. Analysis of Algorithms 20

X = {3, 2, 1, 4} Jika diberikan potorngan pseudocode berikut : Function yyy(a : integer) : integer; Begin If (a >= 0) then yyy a else yyy -a End Function zzz : integer; Var tmp 1, tmp 2, j : integer; Begin Tmp 1 yyy(x[0]-x[1]); For j 0 to panjang. X-1 do begin Tmp 2 yyy(x[j]-x[j+1]) If (tmp 2 > tmp 1) then tmp 1 tmp 2 End Zzz tmp 1 End Analysis of Algorithms 21

X = {45, 23, 12, 90} X = {45, 23, 12, 90, 2, 7, 9, 11, 100, 5, 17, 11, 32, 56} Procedure Kocok(I : integer) Var j : integer; Begin If(I >= 0) and (I < 15) then begin For j I + 1 to 14 do If (x[j] < x[I]) then • Fungsi Zaff adalah fungsi untuk • • menukar dua buah bilangan A dan B dengan ketentuan sebagai berikut : Jika A < B tidak terjadi penukaran Jika A > B maka tukar isi A dengan isi B Zaff(x[j], x[I]) Kocok(I+1) Write(x[I], “ “) End Kocok(10) : ? Analysis of Algorithms 22

Berapakah nilai dari apakah. Ini(10) ? X = {3, 2, 6, 7, 1} X = {45, 23, 12, 90, 2, 7, 9, 11, 100, 5, 17, 11, 32, 56} Function apaka. Ini(I : integer) : integer Var temp : integer Algoritma If (i < 15) then Tmp x[i] apakah. Ini tmp X[i] (x[i] + apakah. Ini(i+1))/2 Output (x[i]) Else apakah. Ini 0 Analysis of Algorithms 23

ADA PERTANYAAN ? ? ? Analysis of Algorithms 24