141
Dr. Ernastuti Dr. D. L. Crispina Pardede Dr. Ricky Agus ALGORITMA

ALGORITMA - ricky.staff.gunadarma.ac.id

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ALGORITMA - ricky.staff.gunadarma.ac.id

Dr. ErnastutiDr. D. L. Crispina Pardede

Dr. Ricky Agus

ALGORITMA

Page 2: ALGORITMA - ricky.staff.gunadarma.ac.id

3

2

1

4

5

6

LINGKUP MATERI ü Pengertian Algoritma

ü Kriteria Algoritma yang baik

ü Analisis Suatu Algoritma

ü Pengertian kompleksitas waktu: worst case, average case, best case

Pengertian Teknik IteratifPenerapan Teknik Iteratif:ü Perhitungan Nilai Faktorialü Pembentukan Barisan Fibonacci

Pengertian Teknik Rekursif Penerapan Teknik Rekursif pada: ü Perhitungan Nilai Faktorial ü Pembentukan Barisan Fibonacci ü Masalah Menara Hanoi

ü Contoh-contoh Soal Menghitung Kompleksitas Waktu Algoritma

ü Perbedaan Teknik Iteratif dan Teknik Rekursif

Page 3: ALGORITMA - ricky.staff.gunadarma.ac.id

LANGKAH-LANGKAHPENYELESAIN MASALAHDengan bantuan KOMPUTERSecara umum, langkah-langkah yang perlu dilalui dalam penyelesaian suatu masalah dengan bantuan komputer adalah sebagai berikut :

Problema → Model Yang Tepat → Algoritma → Program Komputer → Solusi

MODEL yang TEPAT

PROGRAM

ALGORITMA

EKSEKUSI

HASIL/SOLUSI

PROBLEM

DATA

Page 4: ALGORITMA - ricky.staff.gunadarma.ac.id

G raf G(V,E)Adalah struktur diskrit yang terdiri atas himpunan simpul (V) dan himpunan ruas (E), di mana setiap ruas di dalam E menghubungkan simpul-simpul di V.

Page 5: ALGORITMA - ricky.staff.gunadarma.ac.id

G rafSecara umum graf dapat didefinisikan sebagai kumpulan simpul yang dihubungkan dengan ruas

Page 6: ALGORITMA - ricky.staff.gunadarma.ac.id

DATA

PROBLEM

MODEL GRAF

PROGRAM

ALGORITMA

EKSEKUSI

HASIL/ SOLUSI

MATRIKS

ARRAY

MODEL GRAF

Page 7: ALGORITMA - ricky.staff.gunadarma.ac.id
Page 8: ALGORITMA - ricky.staff.gunadarma.ac.id

ALGORITMAPertama kali diperkenalkan oleh seorang ahli matematika

ABU JA’FAR MUHAMMAD IBNU MUSA AL KHAWARIZMI.

Page 9: ALGORITMA - ricky.staff.gunadarma.ac.id

ALGORITMAPertama kali diperkenalkan oleh seorang ahli matematika

Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi.

Algoritma adalah:• Urutan dari barisan instruksi

untuk menyelesaikan suatu masalah.• Sebuah metode atau sebuah proses

yang diikuti untuk memecahkan sebuah masalah.

Page 10: ALGORITMA - ricky.staff.gunadarma.ac.id

ALGORITMAPertama kali diperkenalkan oleh seorang ahli matematika

Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi.

Algoritma adalah:• Urutan dari barisan instruksi

untuk menyelesaikan suatu masalah.• Sebuah metode atau sebuah proses

yang diikuti untuk memecahkan sebuah masalah.

Sebuah algoritma menerima input dari sebuah masalah dan mengubahnya menjadi output.

Sebuah masalah dapat memiliki banyak algoritma.

Page 11: ALGORITMA - ricky.staff.gunadarma.ac.id

ALGORITMA

Algoritma adalah suatu metode khusus untuk menyelesaikan suatu masalah yang nyata (Webster Dictionary).

Pertama kali diperkenalkan oleh seorang ahli matematika

Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi.

Algoritma adalah:• Urutan dari barisan instruksi

untuk menyelesaikan suatu masalah.• Sebuah metode atau sebuah proses

yang diikuti untuk memecahkan sebuah masalah.

Sebuah algoritma menerima input dari sebuah masalah dan mengubahnya menjadi output.

Sebuah masalah dapat memiliki banyak algoritma.

Page 12: ALGORITMA - ricky.staff.gunadarma.ac.id

ALGORITMA

Algoritma adalah suatu metode khusus untuk menyelesaikan suatu masalah yang nyata (Webster Dictionary).

Pertama kali diperkenalkan oleh seorang ahli matematika

Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi.

Algoritma adalah:• Urutan dari barisan instruksi

untuk menyelesaikan suatu masalah.• Sebuah metode atau sebuah proses

yang diikuti untuk memecahkan sebuah masalah.

Sebuah algoritma menerima input dari sebuah masalah dan mengubahnya menjadi output.

Sebuah masalah dapat memiliki banyak algoritma.

Algoritma dapat dinyatakan dalam bentuk diagram alir, bahasa semu.

Page 13: ALGORITMA - ricky.staff.gunadarma.ac.id

ALGORITMA

Sebuah Algoritma Memiliki Sifat• Harus “benar” (correct).• Tersusun dari serangkaian langkah

konkrit (concrete steps)• Tidak mengandung ambiguitas (no

ambiguity) tentang langkah mana yang harus dilakukan berikutnya.

• Harus mengandung sejumlah hingga (finite) langkah.

• Harus berakhir/berhenti (terminate).

Page 14: ALGORITMA - ricky.staff.gunadarma.ac.id

ALGORITMA

Sebuah Algoritma Memiliki Sifat• Harus “benar” (correct).• Tersusun dari serangkaian langkah

konkrit (concrete steps)• Tidak mengandung ambiguitas (no

ambiguity) tentang langkah mana yang harus dilakukan berikutnya.

• Harus mengandung sejumlah hingga (finite) langkah.

• Harus berakhir/berhenti (terminate).

Kriteria untuk Menilai Sebuah Algoritma• Efektif dan efisien• Jumlah langkah berhingga• Berakhir• Ada output• Terstruktur

Page 15: ALGORITMA - ricky.staff.gunadarma.ac.id

PENYELESAIAN MASALAH DENGAN BANTUAN KOMPUTER

Sebuah program komputer adalah sebuah instant, atau penyajian konkrit, dari sebuah algoritma dalam beberapa bahasa pemrograman.

MODEL yang TEPAT

PROGRAM

ALGORITMA

EKSEKUSI

HASIL/SOLUSI

PROBLEM

DATA

Page 16: ALGORITMA - ricky.staff.gunadarma.ac.id

Bagaimana memilih satu pendekatan (algoritma) dari sekian banyak algoritma yang ada?

Dua tujuan dari perancangan program (yang terkadang berlawanan):1. Merancang algoritma yang mudah dimengerti, dikodekan, di-

debug. 2. Merancang algoritma yang menggunakan sumber daya

komputer secara efisien.

Page 17: ALGORITMA - ricky.staff.gunadarma.ac.id

STUDI TENTANG ALGORITMA

Hal-hal yang dipelajari:1. Bagaimana Merencanakannya2. Bagaimana Menyatakannya3. Bagaimana Validitasnya4. Bagaimana Menganalisisnya5. Bagaimana Menguji suatu program

Page 18: ALGORITMA - ricky.staff.gunadarma.ac.id

STUDI TENTANG ALGORITMA

Hal-hal yang dipelajari:1. Bagaimana Merencanakannya2. Bagaimana Menyatakannya3. Bagaimana Validitasnya4. Bagaimana Menganalisisnya5. Bagaimana Menguji suatu program

Merencanakan algoritma merupakan suatu studi tentang teknik variasi design (model)

Page 19: ALGORITMA - ricky.staff.gunadarma.ac.id

STUDI TENTANG ALGORITMA

Hal-hal yang dipelajari:1. Bagaimana Merencanakannya2. Bagaimana Menyatakannya3. Bagaimana Validitasnya4. Bagaimana Menganalisisnya5. Bagaimana Menguji suatu program

Menyatakannya dengan singkat dalam bahasa pemrograman yang terstruktur, misalnya Pascal, C

Page 20: ALGORITMA - ricky.staff.gunadarma.ac.id

STUDI TENTANG ALGORITMA

Hal-hal yang dipelajari:1. Bagaimana Merencanakannya2. Bagaimana Menyatakannya3. Bagaimana Validitasnya4. Bagaimana Menganalisisnya5. Bagaimana Menguji suatu program

Validitas algoritma memenuhi kebutuhan yang diinginkan, dan perhitungannya/solusinya selalu benar untuk semua kemungkinan input yang legal

Page 21: ALGORITMA - ricky.staff.gunadarma.ac.id

STUDI TENTANG ALGORITMA

Hal-hal yang dipelajari:1. Bagaimana Merencanakannya2. Bagaimana Menyatakannya3. Bagaimana Validitasnya4. Bagaimana Menganalisisnya5. Bagaimana Menguji suatu program

Perbandingan waktu dan banyaknya storage/memori yang digunakan (efisiensi).

Page 22: ALGORITMA - ricky.staff.gunadarma.ac.id

STUDI TENTANG ALGORITMA

Hal-hal yang dipelajari:1. Bagaimana Merencanakannya2. Bagaimana Menyatakannya3. Bagaimana Validitasnya4. Bagaimana Menganalisisnya5. Bagaimana Menguji suatu program

Pengujian program dilakukan dalam dua fase: debugging dan profiling.

Page 23: ALGORITMA - ricky.staff.gunadarma.ac.id

FAKTOR EFISIENSI

1. Waktu tempuh (running time)• banyaknya langkah• besar dan jenis input data• jenis operasi• jenis komputer dan kompilator

2. Jumlah memori yang dipakai

Page 24: ALGORITMA - ricky.staff.gunadarma.ac.id

PENGUKURAN EFISIENSI

1. Perbandingan empiris (run programs)2. Analisis algoritma asimtotik

Faktor yg mempengaruhi running time:

• Bagi sebagian besar algoritma, running time tergantung pada “ukuran” input.

• Running time dinyatakan sebagai T(n) untuk beberapa fungsi T untuk kuran input n.

Page 25: ALGORITMA - ricky.staff.gunadarma.ac.id

RUNNING TIME

Sebagian besar algoritma mengubah input menjadi output

Running time dari sebuah algoritma berubah sesuai ukuran input

Waktu rata-rata biasanya sulit untuk ditentukan

Worst case running time Lebih mudah dianalisis Penting bagi aplikasi seperti

games, finance dan robotics

0

20

40

60

80

100

120

Running

Time

1000 2000 3000Input Size

4000

best caseaverage caseworst case

Page 26: ALGORITMA - ricky.staff.gunadarma.ac.id

Menulis program untuk mengimplementasi algoritma

STUDI EKSPERIMENTAL

Jalankan program dengan berbagai ukuran dan komposisi input Gunakan sebuah metodeuntuk memperoleh running time yang tepatPlot hasilnya 0

1000

2000

3000

4000

5000

6000

7000

8000

9000

0 50 100Input Size

Time (ms)

Page 27: ALGORITMA - ricky.staff.gunadarma.ac.id

Menulis program untuk mengimplementasi algoritma

STUDI EKSPERIMENTAL

Jalankan program dengan berbagai ukuran dan komposisi input Gunakan sebuah metodeuntuk memperoleh running time yang tepatPlot hasilnya

Implementasi algoritma bukanlah hal yang mudahHasil tidak menunjukkan running time pada input lain yang tidak digunakan dalam eksperimen.Dalam membandingkan dua algoritma, harus menggunakan lingkungan perangkat keras dan perangkat lunak yang sama

KETERBATASAN EKSPERIMEN

Page 28: ALGORITMA - ricky.staff.gunadarma.ac.id

ANALISIS TEORITIS

Menggunakan deskripsi algoritma, bukan eksperimen

Menyatakan running time sebagai fungsi dari ukuran input, n.

Memperhatikan semua input yang mungkin

Memungkinkan pengukuran kecepatan algoritma bebas dari lingkungan hardware/software

Page 29: ALGORITMA - ricky.staff.gunadarma.ac.id

KOMPLEKSITAS ALGORITMA

KOMPLEKSITAS adalah:Sebuah fungsi f(n) yang diberikan untuk waktu tempuh dan/atau kebutuhan storage dengan ukuran n input data.

Kompleksitas dapat berupa kompleksitas waktu dan memori.

Page 30: ALGORITMA - ricky.staff.gunadarma.ac.id

NOTASI ASIMPTOTIK

O : BIG OH

f(n) = (g(n)) dua konstanta positif c dan n0 sedemikian hingga f(n) cg(n) n n0.

Upper Boundf(n)

O(g(n))

Page 31: ALGORITMA - ricky.staff.gunadarma.ac.id

NOTASI BIG OH

CONTOHDiketahui f(n) = 5n2 + 2n + 1

akan dibandingkan dengan g(n) = n2 untuk konstanta c = 8 berlaku f(n) 8n2 , untuk n 1, dan n0 = 1.

Jadi f(n) = 5n2 + 2n + 1 adalah O(n2) (dibaca big oh n kuadrat)

Page 32: ALGORITMA - ricky.staff.gunadarma.ac.id

NOTASI ASIMPTOTIK

W : OMEGA

f(n) = W(g(n)) konstanta positif c dan n0 sedemikian hingga f(n) cg(n) n n0

f(n)c(g(n))

Lower Bound

Page 33: ALGORITMA - ricky.staff.gunadarma.ac.id

NOTASI BIG OMEGA

CONTOHDiketahui f(n) = 5n2 + 2n + 1

akan dibandingkan dengan g(n) = n2 .untuk c = 5, n0 = 0berlaku 5n2 f(n) , n 0 .

Jadi f(n) = 5n2 + 2n + 1 adalah W(n2)

Page 34: ALGORITMA - ricky.staff.gunadarma.ac.id

NOTASI ASIMPTOTIK

: THETA

f(n) = (g(n)) konstanta positif c1, c2 dan n0 sedemikian hingga c1g(n) f(n) c2g(n), n n0

Tight Bound

Page 35: ALGORITMA - ricky.staff.gunadarma.ac.id

NOTASI THETA

CONTOHDiketahui f(n) = 5n2 + 2n + 1

akan dibandingkan dengan g(n) = n2 untuk C1 = 5, C2 = 8, n0 = 1. berlaku 5n2 f(n) 8n2 , n 0.

Jadi f(n) = 5n2 + 2n + 1 adalah (n2)

Page 36: ALGORITMA - ricky.staff.gunadarma.ac.id

KOMPLEKSITAS ALGORITMA

WORST CASE BIG OH f(n) = (g(n)) dua konstanta positif c dan n0 sedemikian

hingga f(n) cg(n) nn0. BEST CASE BIG OMEGA

f(n) = W(g(n)) konstanta positif c dan n0 sedemikian hinggaf(n) cg(n) n>n0

AVERAGE CASE BIG THETAf(n) = (g(n)) konstanta positif c1, c2 dan n0 sedemikian

hingga c1g(n)f(n) c2g(n), n>n0

Page 37: ALGORITMA - ricky.staff.gunadarma.ac.id

KOMPLEKSITAS ALGORITMA

f(n) = 3n5 + 4n4 + 10n2 + 56 = (n5 )

f(n) = 9n7 + 5n6 + 36 = (n7 )

f(n) = 8n9 = (n9 )

f(n) = n6 + 19 = (n6 )

f(n) = 25 = (n0 ) = (1)

TEOREMAJika f(n) = am nm + am-1 nm-1 + . . .+ a1 n + a0 adalah polinomial tingkat m, maka f(n) = (nm)

CONTOH

Page 38: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

(i) c a + b

(ii) for i 1 to n doc a + b

repeat (iii) for i 1 to n do

for j 1 to n doc a + b

repeatrepeat

BAGAIMANA ANALISISNYA?

Page 39: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

(i) c a + b

(ii) for i 1 to n doc a + b

repeat (iii) for i 1 to n do

for j 1 to n doc a + b

repeatrepeat

Banyaknya Operasi ‘+’ f(n) Big Oh

(i) 1 kali f(n) = 1 (1)

(ii) n kali f(n) = n (n)

(iii) n2 kali f(n) = n2 (n2)

ANALISISNYA

Page 40: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

(i) c a + b

(ii) for i 1 to n doc a + b

repeat (iii) for i 1 to n do

for j 1 to n doc a + b

repeatrepeat

Banyaknya Operasi ‘+’ f(n) Big Oh

(i) 1 kali f(n) = 1 (1)

(ii) n kali f(n) = n (n)

(iii) n2 kali f(n) = n2 (n2)

ANALISISNYA

Page 41: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

(i) c a + b

(ii) for i 1 to n doc a + b

repeat (iii) for i 1 to n do

for j 1 to n doc a + b

repeatrepeat

Banyaknya Operasi ‘+’ f(n) Big Oh

(i) 1 kali f(n) = 1 (1)

(ii) n kali f(n) = n (n)

(iii) n2 kali f(n) = n2 (n2)

ANALISISNYA

Page 42: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

(i) c a + b

(ii) for i 1 to n doc a + b

repeat (iii) for i 1 to n do

for j 1 to n doc a + b

repeatrepeat

Banyaknya Operasi ‘+’ f(n) Big Oh

(i) 1 kali f(n) = 1 (1)

(ii) n kali f(n) = n (n)

(iii) n2 kali f(n) = n2 (n2)

ANALISISNYA

Page 43: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

1. Set A[i,j], B[i,j], C[i,j] real2. Untuk i 1 s/d m kerjakan3. untuk j 1 s/d n kerjakan4. C[i,j] A[i,j] + B[i,j]5. akhir j6. akhir I

Penjumlahan 2 matriks riil berorde (m x n).

Page 44: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

1. Set A[i,j], B[i,j], C[i,j] real2. Untuk i 1 s/d m kerjakan3. untuk j 1 s/d n kerjakan4. C[i,j] A[i,j] + B[i,j]5. akhir j6. akhir i

Penjumlahan 2 matriks riil berorde (m x n).

Jumlah operasi ‘+’ Pada loop j = n

ANALISISNYA

n

Page 45: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

1. Set A[i,j], B[i,j], C[i,j] real2. Untuk i 1 s/d m kerjakan3. untuk j 1 s/d n kerjakan4. C[i,j] A[i,j] + B[i,j]5. akhir j6. akhir i

Penjumlahan 2 matriks riil berorde (m x n).

Loop pada baris 3-4 dilakukan sebanyak m kali

ANALISISNYA

m

Page 46: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

1. Set A[i,j], B[i,j], C[i,j] real2. Untuk i 1 s/d m kerjakan3. untuk j 1 s/d n kerjakan4. C[i,j] A[i,j] + B[i,j]5. akhir j6. akhir I

Penjumlahan 2 matriks riil berorde (m x n).

Jadi, jumlah operasi ‘+’ = mn

ANALISISNYA

n m

Page 47: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

1. Set A[i,j], B[i,j], C[i,j] real2. Untuk i 1 s/d m kerjakan3. untuk j 1 s/d n kerjakan4. C[i,j] A[i,j] + B[i,j]5. akhir j6. akhir I

Penjumlahan 2 matriks riil berorde (m x n).

Asumsi: 1 elemen memerlukan 4 satuan memori/byte.

Jumlah elemen: 3

ANALISISNYA

Page 48: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

1. Set A[i,j], B[i,j], C[i,j] real2. Untuk i 1 s/d m kerjakan3. untuk j 1 s/d n kerjakan4. C[i,j] A[i,j] + B[i,j]5. akhir j6. akhir I

Penjumlahan 2 matriks riil berorde (m x n).

Asumsi: 1 elemen memerlukan 4 satuan memori/byte.

Jumlah elemen: 3

Jadi, Jumlah memori = 3 mn x 4

= 12 mn

ANALISISNYA

Page 49: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

1. Set A[i,j], B[i,j], C[i,j] real2. Untuk i 1 s/d m kerjakan3. untuk j 1 s/d n kerjakan4. C[i,j] A[i,j] + B[i,j]5. akhir j6. akhir I

Penjumlahan 2 matriks riil berorde (m x n).

Jumlah operasi ‘+’ = mnJumlah memori = 12 mn

TOTAL = 13 mn

ANALISISNYA

Page 50: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

1. Set k:= 1 ; loc := 02. REPEAT langkah 3 dan 4

WHILE loc := 0 dan k n3. IF Item := Data(k) then set loc := k4. Set k := k + 15. IF loc := 0 then

WRITE Elemen tidak ada pada array dataELSE WRITE loc adalah lokasi dari elemen

6. EXIT

Menentukan lokasi suatu elemen pada array data secara linier

Page 51: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

1. Set k:= 1 ; loc := 02. REPEAT langkah 3 dan 4

WHILE loc := 0 dan k n3. IF Item := Data(k) then set loc := k4. Set k := k + 15. IF loc := 0 then

WRITE Elemen tidak ada pada array dataELSE WRITE loc adalah lokasi dari elemen

6. EXIT

Menentukan lokasi suatu elemen pada array data secara linier

Bila elemen (item) yang dicari merupakan elemen terakhir dari array tersebut atau tidak terdapat dalam array, makaWORST CASE F(n) = (n)

ANALISISNYA

Page 52: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

1. Set k:= 1 ; loc := 02. REPEAT langkah 3 dan 4

WHILE loc := 0 dan k n3. IF Item := Data(k) then set loc := k4. Set k := k + 15. IF loc := 0 then

WRITE Elemen tidak ada pada array dataELSE WRITE loc adalah lokasi dari elemen

6. EXIT

Menentukan lokasi suatu elemen pada array data secara linier

Bila elemen (item) yang dicari merupakan elemen pertama dari array tersebut, makaBEST CASE F(n) = (1)

ANALISISNYA

Page 53: ALGORITMA - ricky.staff.gunadarma.ac.id

CONTOH ANALISIS ALGORITMA

1. Set k:= 1 ; loc := 02. REPEAT langkah 3 dan 4

WHILE loc := 0 dan k n3. IF Item := Data(k) then set loc := k4. Set k := k + 15. IF loc := 0 then

WRITE Elemen tidak ada pada array dataELSE WRITE loc adalah lokasi dari elemen

6. EXIT

Menentukan lokasi suatu elemen pada array data secara linier

Bila elemen (item) yang dicari berada di antara elemen pertama dan elemen terakhir dari array tersebut, makaAVERAGE CASE F(n) = (n)

ANALISISNYA

Page 54: ALGORITMA - ricky.staff.gunadarma.ac.id
Page 55: ALGORITMA - ricky.staff.gunadarma.ac.id

Materi Terapan Teori Graf M#61. Pengertian Algoritma2. Kriteria Algoritma yang baik3. Analisis Suatu Algoritma 4. Pengertian kompleksitas waktu: worst case, average case, best case5. Pengertian Teknik Iteratif Penerapan Teknik Iteratif pada: (a) Perhitungan Nilai Faktorial (b) Pembentukan Barisan Fibonacci6. Pengertian Teknik Rekursif Penerapan Teknik Rekursif pada: (a) Perhitungan Nilai Faktorial (b) Pembentukan Barisan Fibonacci (c) Masalah Menara Hanoi 7. Perbedaan Teknik Iteratif dan Teknik Rekursif

Page 56: ALGORITMA - ricky.staff.gunadarma.ac.id

Teknik Iteratif & Teknik Rekursif

Page 57: ALGORITMA - ricky.staff.gunadarma.ac.id

Penerapan Teknik Iteratif: (1) Perhitungan Nilai Faktorial (2) Pembentukan Barisan Fibonacci

Pengertian Teknik IteratifTeknik Iteratif merupakan suatu teknik pembuatan algoritma dengan pemanggilan procedure beberapa kali hingga suatu kondisi tertentu terpenuh

Page 58: ALGORITMA - ricky.staff.gunadarma.ac.id

Nilai Bilangan Faktorial n!

Page 59: ALGORITMA - ricky.staff.gunadarma.ac.id

Nilai Bilangan Faktorial n!

Page 60: ALGORITMA - ricky.staff.gunadarma.ac.id

Nilai Bilangan Faktorial n!

Page 61: ALGORITMA - ricky.staff.gunadarma.ac.id

Nilai Bilangan Faktorial n!

Page 62: ALGORITMA - ricky.staff.gunadarma.ac.id

Nilai Bilangan Faktorial n!

Page 63: ALGORITMA - ricky.staff.gunadarma.ac.id

Nilai Bilangan Faktorial n!

Page 64: ALGORITMA - ricky.staff.gunadarma.ac.id

FLOWCHART Bilangan FAKTORIAL N!

Penerapan Teknik Iteratif (Bilangan FAKTORIAL)

i = i + 1

FAK=1,i=0

FAK = FAK * i

i=N ?

Page 65: ALGORITMA - ricky.staff.gunadarma.ac.id

ALGORITMA FAKTORIAL Teknik Iteratif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n:

Pseudocode

Set FAK, i, n : integer FAK = 1 for i = 1 to n

FAK = FAK * i next i

Penerapan Teknik Iteratif (Bilangan FAKTORIAL n!)

Page 66: ALGORITMA - ricky.staff.gunadarma.ac.id

i= FAK=

ALGORITMA FAKTORIALTeknik Iteratif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n:

Set FAK, i, n :integer FAK=1 for i = 1 to n

FAK = FAK * i next i

Penerapan Teknik Iteratif (Bilangan FAKTORIAL n!)

Untuk n = 5, maka : gambaran jalannya proses algoritma

FAK=1, kemudian

Page 67: ALGORITMA - ricky.staff.gunadarma.ac.id

i= FAK=1 1 * 1 = 1

Penerapan Teknik Iteratif (Bilangan FAKTORIAL n!)

Untuk n = 5, maka : gambaran jalannya proses algoritma

FAK=1, kemudian

ALGORITMA FAKTORIALTeknik Iteratif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n:

Set FAK, i, n :integer FAK=1 for i = 1 to n

FAK = FAK * i next i

Page 68: ALGORITMA - ricky.staff.gunadarma.ac.id

i= FAK=1 1 * 1 = 1

2 1 * 2 = 2

Penerapan Teknik Iteratif (Bilangan FAKTORIAL n!)

Untuk n = 5, maka : gambaran jalannya proses algoritma

FAK=1, kemudian

ALGORITMA FAKTORIALTeknik Iteratif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n:

Set FAK, i, n :integer FAK=1 for i = 1 to n

FAK = FAK * i next i

Page 69: ALGORITMA - ricky.staff.gunadarma.ac.id

i= FAK=1 1 * 1 = 1

2 1 * 2 = 2

3 2 * 3 = 6

Penerapan Teknik Iteratif (Bilangan FAKTORIAL n!)

Untuk n = 5, maka : gambaran jalannya proses algoritma

FAK=1, kemudian

ALGORITMA FAKTORIALTeknik Iteratif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n:

Set FAK, i, n :integer FAK=1 for i = 1 to n

FAK = FAK * i next i

Page 70: ALGORITMA - ricky.staff.gunadarma.ac.id

i= FAK=1 1 * 1 = 1

2 1 * 2 = 2

3 2 * 3 = 6

4 6 * 4 = 24

Penerapan Teknik Iteratif (Bilangan FAKTORIAL n!)

Untuk n = 5, maka : gambaran jalannya proses algoritma

FAK=1, kemudian

ALGORITMA FAKTORIALTeknik Iteratif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n:

Set FAK, i, n :integer FAK=1 for i = 1 to n

FAK = FAK * i next i

Page 71: ALGORITMA - ricky.staff.gunadarma.ac.id

Untuk n = 5, maka : gambaran jalannya proses algoritma

FAK=1, kemudian

i= FAK=1 1 * 1 = 1

2 1 * 2 = 2

3 2 * 3 = 6

4 6 * 4 = 24

5 24 * 5 = 120

Penerapan Teknik Iteratif (Bilangan FAKTORIAL n!)

ALGORITMA FAKTORIALTeknik Iteratif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n:

Set FAK, i, n :integer FAK=1 for i = 1 to n

FAK = FAK * i next i

Page 72: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 73: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 74: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 75: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 76: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 77: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 78: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 79: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 80: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 81: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 82: ALGORITMA - ricky.staff.gunadarma.ac.id

FLOWCHART BIL. FIBONACCI

Page 83: ALGORITMA - ricky.staff.gunadarma.ac.id

Teknik Iteratif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci, adalah sebagai berikut :

Penerapan Teknik Iteratif (Bilangan Fibonacci)

Misal n = 5, maka : gambaran jalannya proses algoritma tersebut adalah sebagai berikut :

x=1, y=1, kemudian

Page 84: ALGORITMA - ricky.staff.gunadarma.ac.id

Teknik Iteratif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci, adalah sebagai berikut :

Penerapan Teknik Iteratif (Bilangan Fibonacci)

i F x y

3 1 + 1 = 2 1 2

Misal n = 5, maka : gambaran jalannya proses algoritma tersebut adalah sebagai berikut :

x=1, y=1, kemudian

Page 85: ALGORITMA - ricky.staff.gunadarma.ac.id

Teknik Iteratif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci, adalah sebagai berikut :

Penerapan Teknik Iteratif (Bilangan Fibonacci)

i F x y

3 1 + 1 = 2 1 2

4 1 + 2 = 3 2 3

Misal n = 5, maka : gambaran jalannya proses algoritma tersebut adalah sebagai berikut :

x=1, y=1, kemudian

Page 86: ALGORITMA - ricky.staff.gunadarma.ac.id

Teknik Iteratif pada algoritma untuk menentukan suku ke-n dari barisan bilangan Fibbonaci, adalah sebagai berikut :

Penerapan Teknik Iteratif (Bilangan Fibonacci)

i F x y

3 1 + 1 = 2 1 2

4 1 + 2 = 3 2 3

5 2 + 3 = 5 3 5

Misal n = 5, maka : gambaran jalannya proses algoritma tersebut adalah sebagai berikut :

x=1, y=1, kemudian

Page 87: ALGORITMA - ricky.staff.gunadarma.ac.id

Teknik Iteratif & Teknik Rekursif

Page 88: ALGORITMA - ricky.staff.gunadarma.ac.id

Rekursif (Recurcion)

Page 89: ALGORITMA - ricky.staff.gunadarma.ac.id

REKURSIF (RECURCION)

Page 90: ALGORITMA - ricky.staff.gunadarma.ac.id

Penerapan Teknik Rekursif: (1) Perhitungan Nilai Faktorial (2) Pembentukan Barisan Fibonacci (3) Menara Hanoi

Pengertian Teknik RekursifTeknik Rekursif merupakan salah satu cara pembuatan algoritma dengan pemanggilan procedure atau function yang sama

Page 91: ALGORITMA - ricky.staff.gunadarma.ac.id

NILAI FAKTORIAL n !

Page 92: ALGORITMA - ricky.staff.gunadarma.ac.id

NILAI FAKTORIAL n !

Page 93: ALGORITMA - ricky.staff.gunadarma.ac.id

NILAI FAKTORIAL n !

Page 94: ALGORITMA - ricky.staff.gunadarma.ac.id

NILAI FAKTORIAL n !

Page 95: ALGORITMA - ricky.staff.gunadarma.ac.id

NILAI FAKTORIAL n !

Page 96: ALGORITMA - ricky.staff.gunadarma.ac.id

NILAI FAKTORIAL n !

Page 97: ALGORITMA - ricky.staff.gunadarma.ac.id

ALGORITMA menghitung FAKTORIAL Teknik Rekursif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n:

Pseudocode

function FAK(n: integer): integer if n:= 0 then FAK := 1 else FAK := n * FAK(n-1)

Penerapan Teknik Rekursif (Bilangan FAKTORIAL n!)

Page 98: ALGORITMA - ricky.staff.gunadarma.ac.id

Untuk n = 5, maka : gambaran jalannya proses algoritma

ALGORITMA menghitung FAKTORIAL

Teknik Rekursif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n:

function FAK(n: integer): integer if n:= 0 then FAK := 1 else FAK := n * FAK(n-1)

Penerapan Teknik Rekursif (Bilangan FAKTORIAL n!)

Page 99: ALGORITMA - ricky.staff.gunadarma.ac.id

Misal n = 5, maka : Gambaran jalannya proses algoritma

FAK = 5 * FAK(4)

Penerapan Teknik Rekursif (Bilangan FAKTORIAL n!)ALGORITMA menghitung FAKTORIAL

Teknik Rekursif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n:

function FAK(n: integer): integer if n:= 0 then FAK := 1 else FAK := n * FAK(n-1)

Page 100: ALGORITMA - ricky.staff.gunadarma.ac.id

Misal n = 5, maka : Gambaran jalannya proses algoritma

FAK = 5 * FAK(4)FAK = 5 * 4 * FAK(3)

Penerapan Teknik Rekursif (Bilangan FAKTORIAL n!)ALGORITMA menghitung FAKTORIAL

Teknik Rekursif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n:

function FAK(n: integer): integer if n:= 0 then FAK := 1 else FAK := n * FAK(n-1)

Page 101: ALGORITMA - ricky.staff.gunadarma.ac.id

Misal n = 5, maka : Gambaran jalannya proses algoritma

FAK = 5 * FAK(4)FAK = 5 * 4 * FAK(3)FAK = 5 * 4 * 3 * FAK(2)

ALGORITMA mehgitung FAKTORIAL Teknik Rekursif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n:

function FAK(n: integer): integer if n:= 0 then FAK := 1 else FAK := n * FAK(n-1)

Penerapan Teknik Rekursif (Bilangan FAKTORIAL n!)

Page 102: ALGORITMA - ricky.staff.gunadarma.ac.id

Misal n = 5, maka : Gambaran jalannya proses algoritma

FAK = 5 * FAK(4)FAK = 5 * 4 * FAK(3)FAK = 5 * 4 * 3 * FAK(2) FAK = 5 * 4 * 3 * 2 * FAK(1)

ALGORITMA mehgitung FAKTORIAL Teknik Rekursif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n:

function FAK(n: integer): integer if n:= 0 then FAK := 1 else FAK := n * FAK(n-1)

Penerapan Teknik Rekursif (Bilangan FAKTORIAL n!)

Page 103: ALGORITMA - ricky.staff.gunadarma.ac.id

Misal n = 5, maka : Gambaran jalannya proses algoritma

FAK = 5 * FAK(4)FAK = 5 * 4 * FAK(3)FAK = 5 * 4 * 3 * FAK(2) FAK = 5 * 4 * 3 * 2 * FAK(1)FAK = 5 * 4 * 3 * 2 * 1 * FAK(0)

ALGORITMA mehgitung FAKTORIAL Teknik Rekursif pada algoritma untuk menghitung faktorial dari bilangan bulat positif n:

function FAK(n: integer): integer if n:= 0 then FAK := 1 else FAK := n * FAK(n-1)

Penerapan Teknik Rekursif (Bilangan FAKTORIAL n!)

Page 104: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 105: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 106: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 107: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 108: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 109: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 110: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 111: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 112: ALGORITMA - ricky.staff.gunadarma.ac.id

Barisan Bilangan Fibonacci F(i)

Page 113: ALGORITMA - ricky.staff.gunadarma.ac.id

Teknik Rekursif pada algoritma untuk menentukan Bilangan ke-n dari barisan bilangan Fibbonaci, adalah sebagai berikut : Gambaran jalannya proses algoritma

tersebut untuk n = 5:

Penerapan Teknik Rekursif (Bilangan Fibonacci)

Procedure F(n : integer) : integer

If n 2 then F(n) = 1

else F(n) = F(n-1) + F(n-2)

Endif

End 1+1=2

2+1=3 1+1=2

3+2=5

Page 114: ALGORITMA - ricky.staff.gunadarma.ac.id

Berapa Bilangan Fibonacci ke 5?Penerapan Teknik Rekursif (Bilangan Fibonacci)

Page 115: ALGORITMA - ricky.staff.gunadarma.ac.id

Berapa Bilangan Fibonacci ke 5?Penerapan Teknik Rekursif (Bilangan Fibonacci)

Page 116: ALGORITMA - ricky.staff.gunadarma.ac.id

Berapa Bilangan Fibonacci ke 5?Penerapan Teknik Rekursif (Bilangan Fibonacci)

Page 117: ALGORITMA - ricky.staff.gunadarma.ac.id

Berapa Bilangan Fibonacci ke 5?Penerapan Teknik Rekursif (Bilangan Fibonacci)

Page 118: ALGORITMA - ricky.staff.gunadarma.ac.id

Berapa Bilangan Fibonacci ke 5?Penerapan Teknik Rekursif (Bilangan Fibonacci)

Page 119: ALGORITMA - ricky.staff.gunadarma.ac.id

Berapa Bilangan Fibonacci ke 5?Penerapan Teknik Rekursif (Bilangan Fibonacci)

Page 120: ALGORITMA - ricky.staff.gunadarma.ac.id

Berapa Bilangan Fibonacci ke 5?Penerapan Teknik Rekursif (Bilangan Fibonacci)

Page 121: ALGORITMA - ricky.staff.gunadarma.ac.id

Berapa Bilangan Fibonacci ke 5?Penerapan Teknik Rekursif (Bilangan Fibonacci)

Page 122: ALGORITMA - ricky.staff.gunadarma.ac.id

PERMAINAN MENARA HANOI

Page 123: ALGORITMA - ricky.staff.gunadarma.ac.id

Permainan Menara Hanoiü Contoh paling umum dari penggunaan teknik rekursif

adalah pada permainan menara Hanoi.

ü Berdasarkan legenda, pertama kali dimainkan secara manual oleh seorang pendeta Budha di Hanoi, sehingga permainan ini disebut Menara Hanoi.

ü Dalam permainan ini, akan dipindahkan sejumlah piringan yang tidak sama besarnya dari satu tonggak ke tonggak lainnya, dengan diperbolehkan menggunakan (melewati) sebuah tonggak bantuan.

( Jumlah Tonggak ada 3 yaitu: A, B, C )

Penerapan Teknik Rekursif

Ketentuan:

Pemindahan piringan dilakukan satu per satu dan piringan yang lebih besar tidak boleh diletakan di atas piringan yang lebih kecil.

Page 124: ALGORITMA - ricky.staff.gunadarma.ac.id

Permainan Menara Hanoiü Contoh paling umum dari penggunaan teknik rekursif

adalah pada permainan menara Hanoi.

ü Berdasarkan legenda, pertama kali dimainkan secara manual oleh seorang pendeta Budha di Hanoi, sehingga permainan ini disebut Menara Hanoi.

ü Dalam permainan ini, akan dipindahkan sejumlah piringan yang tidak sama besarnya dari satu tonggak ke tonggak lainnya, dengan diperbolehkan menggunakan (melewati) sebuah tonggak bantuan.

( Jumlah Tonggak ada 3 yaitu: A, B, C )

Penerapan Teknik Rekursif

Ketentuan:

Pemindahan piringan dilakukan satu per satu dan piringan yang lebih besar tidak boleh diletakan di atas piringan yang lebih kecil.

Page 125: ALGORITMA - ricky.staff.gunadarma.ac.id

Tower of Hanoi (3 piring)Penerapan Teknik Rekursif

Page 126: ALGORITMA - ricky.staff.gunadarma.ac.id

Tower of Hanoi (3 piring)Penerapan Teknik Rekursif

Page 127: ALGORITMA - ricky.staff.gunadarma.ac.id

Tower of Hanoi (3 piring)Penerapan Teknik Rekursif

Page 128: ALGORITMA - ricky.staff.gunadarma.ac.id

Tower of Hanoi (3 piring)Penerapan Teknik Rekursif

Page 129: ALGORITMA - ricky.staff.gunadarma.ac.id

Tower of Hanoi (3 piring)Penerapan Teknik Rekursif

Page 130: ALGORITMA - ricky.staff.gunadarma.ac.id

Tower of Hanoi (3 piring)Penerapan Teknik Rekursif

Page 131: ALGORITMA - ricky.staff.gunadarma.ac.id

Tower of Hanoi (3 piring)Penerapan Teknik Rekursif

Page 132: ALGORITMA - ricky.staff.gunadarma.ac.id

Penerapan Teknik RekursifPermainan Menara Hanoi ( 3 piring )

1

2

3

4

5

6

7

Diselesaikan dalam 7 langkah

Page 133: ALGORITMA - ricky.staff.gunadarma.ac.id

Penerapan Teknik RekursifPermainan Menara Hanoi ( 4 piring )

Diselesaikan dalam 15 langkah

14

13

12

11

10

8

1 9

3

4

5

6

7

2

15

Page 134: ALGORITMA - ricky.staff.gunadarma.ac.id

4

1

56

15

8

48

12

Penerapan Teknik RekursifPermainan Menara Hanoi ( 6 piring )

Diselesaikan dalam 63 langkah

63

60

52

Page 135: ALGORITMA - ricky.staff.gunadarma.ac.id

Penyelesaianü Permainan ini dapat diselesaikan dalam 2n - 1 langkah,

di mana n adalah jumlah piring.

ü Jika terdapat 64 piring yang harus dipindahkan, maka

dibutuhkan 264 - 1 atau 18.446.744.073.709.551.615 langkah.

ü Jika setiap langkah membutuhkan waktu 1 detik, maka dibutuhkan sekitar 585 milyar tahun,

yaitu setara dengan 127 kali usia matahari sekarang.

Penerapan Teknik RekursifPermainan Menara Hanoi ( n piring )

Diselesaikan dalam 2n-1 langkah

Page 136: ALGORITMA - ricky.staff.gunadarma.ac.id

Persamaan antara teknik iteratif dan rekursif

ITERATIF REKURSIF1. Sama-sama merupakan bentuk

perulangan.

1. Sama-sama merupakan bentuk perulangan.

2. Sama-sama melakukan pengecekan kondisi terlebih dahulu sebelum mengulang.

2. Sama-sama melakukan pengecekan kondisi terlebih dahulu sebelum mengulang.

Page 137: ALGORITMA - ricky.staff.gunadarma.ac.id

Perbedaan antara teknik iteratif dan rekursif

ITERATIF REKURSIF

1. Tidak ada variabel lokal baru 1. Ada variabel lokal baru

2. Program tidak sederhana 2. Program menjadi lebih sederhana

Page 138: ALGORITMA - ricky.staff.gunadarma.ac.id

No ITERATIF REKURSIF3. Perulangan iteratif merupakan perulangan yang

melakukan proses perulangan terhadap sekelompok intruksi.

Perulangan dilakukan dalam batasan syarat tertentu. Ketika syarat tersebut tidak terpenuhi lagi maka perulangan akan berhenti.

Perulangan rekursif merupakan salah satu metode didalam pemrograman yang mana dalam sebuah fungsi terdapat intruksi yang memanggil fungsi itu sendri, atau lebih sering disebut memanggil dirinya sendiri.

4. Menggunakan FOR, WHILE, DO-WHILE Hanya menggunakan IF.

5. Dapat berjalan pada program yang terdiri dari prosedur (Tidak terdapat fungsi)

Sedangkan rekursif merupakan fungsi.

Perbedaan antara teknik iteratif dan rekursif

Page 139: ALGORITMA - ricky.staff.gunadarma.ac.id

KELEBIHANITERATIF REKURSIF

1. Kelebihan perulangan iteratif yaitu mudah dipahami dan mudah dilakukan debuging ketika ada perulangan yang salah

2. Ddapat melakukan nested loop atau yang disebut dengan looping bersarang.

3. Proses lebih singkat karena perulangan terjadi pada kondisi yang telah disesuaikan,

4. Jarang terjadi overflow karena batasan dan syarat perulangan yang jelas.

1. Kelebihan perulangan rekursif yaitu sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar, dapat melakukan perulangan dengan batasan fungsi.

Perbedaan antara teknik iteratif dan rekursif

Page 140: ALGORITMA - ricky.staff.gunadarma.ac.id

KELEMAHANITERATIF REKURSIF

1. Tidak dapat menggunakan batasan berupa fungsi.

2. Perulangan dengan batasan yang luas akan menyulitkan dalam pembuatan program perulangan itu sendiri.

1. Tidak bisa melakukan nested loop (looping bersarang).

2. Membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu saja.

3. Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalanya akan menyebabkan stack tak cukup lagi (Stack Overum).

4. Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk.

Perbedaan antara teknik iteratif dan rekursif

Page 141: ALGORITMA - ricky.staff.gunadarma.ac.id

TERIMAKSIH