Anda di halaman 1dari 18

Algoritma Rekursif dan

Pemrograman Modular
Kenichi Shendie Harjunadi - 1906352180
M.Rangga Buwana - 1906376640
Widi Nugroho - 1906352161
Algoritma Rekursif
● Rekursif adalah salah satu metode dalam dunia matematika dimana definisi
sebuah fungsi mengandung fungsi itu sendiri.

● Dalam dunia pemrograman, rekursif diimplementasikan dalam sebuah fungsi


yang memanggil dirinya sendiri.

● Berikut beberapa contoh fungsi rekursif :


Jumlah N suku pertama bilangan asli
Sum(N)
IF N < 2 THEN
Sum = 1
ELSE
Sum = N + Sum (N-1)
END IF
Faktorial
Fakt(N)

IF N < 2 THEN

Fakt = 1

ELSE

Fakt = N * Fakt(N-1)

END IF
Algoritma Fibonacci
● Barisan bilangan :
Fib(N)
○ F₀ = 0 dan F₁ = 1
○ Fₙ = Fₙ ₋ ₁ + Fₙ ₋ ₂ IF N ≤ 1 THEN

Fib = N

● Barisan tersebut diantaranya : ELSE


○ 0, 1, 1, 2, 3, 5, 8, 13, 21, …
Fib = Fib(N-1) + Fib(N-2)

END IF
Kelebihan & Kekurangan
● Karena program lebih singkat dan ada beberapa kasus yang lebih mudah
menggunakan fungsi yang rekursif.
● Memakan memori yang lebih besar, karena setiap kali bagian dirinya
dipanggil, dibutuhkan sejumlah ruang memori tambahan.
● Mengorbankan efisiensi dan kecepatan.
● Problem : Rekursif seringkali tidak bisa “berhenti” sehingga memori akan
terpakai habis dan program bisa hang.
Pemrograman Modular

Pemrograman Modular adalah suatu teknik pemrograman yang membagi


program yang besar menjadi beberapa program yang lebih kecil.
Tujuan dari Pemrograman Modular adalah subprogram yang telah didefinisikan
dapat dipanggil berulang kali sehingga lebih efisien dalam penulisannya dan juga
meminimalisir kesalahan.

Subprogram bisa didefinisikan di dalam file yang sama dengan program utama
ataupun di file yang terpisah.
Ilustrasi Pemrograman Modular

Master Program

Subprogram 1 Subprogram 2

Subsubprogram 1-1 Subsubprogram 1-2 Subsubprogram 2-1 Subsubprogram 2-2


Keuntungan Pemrograman Modular
1. Program menjadi lebih pendek.
2. Program lebih mudah dibaca dan dimengerti.
3. Lebih mudah mencari penyebab error (debug).
4. Kesalahan yang terjadi bersifat lokal.
5. Lebih mudah memodifikasi program.
Jenis - jenis Pemrograman Modular

1.Procedure
Jenis subprogram yang mempunyai suatu tujuan spesifik dan tidak mengeluarkan
output.Procedure tidak harus memiliki parameter dalam pendefinisiannya.

Kriteria Procedure yang baik:


1. Hanya memiliki satu fungsi tujuan.
2. Panjang kodenya pendek
3. Independent (tidak bergantung pada prosedur lain)
Contoh Procedure
def sapa(nama):

print(‘halo nama saya ’+nama)


Jenis - jenis Pemrograman Modular

2. Fungsi
Fungsi adalah suatu kumpulan subprogram yang digunakan untuk
tujuan tertentu yang akan mengembalikan nilai kepada pemanggilnya.
Berbeda dengan procedure yang bisa tidak menggunakan parameter, fungsi
harus menggunakan parameter dalam penggunaannya.
Dalam membuat suatu fungsi, diperlukan:
● Data yang akan diinput
● Informasi apa yang akan diberikan oleh fungsi kepada pemanggilnya
● Algoritma apa yang harus digunakan untuk mengolah data menjadi informasi
Contoh Fungsi
def kali(a,b):

kali = a*b

return kali

def pangkat (a,b):

pangkat = a**b

return pangkat
Perbedaan Procedure dan Fungsi
1. Fungsi mengeluarkan output dengan tipe yang sudah didefinisikan pada
subprogramnya sementara Procedure tidak mengeluarkan output.
2. Fungsi memiliki setidaknya satu parameter sementara Procedure tidak harus
memiliki parameter.
Parameter
Parameter adalah variabel-variabel yang dideklarasikan pada bagian header
prosedur/fungsi yang biasanya berfungsi sebagai input.

Contoh:
def jumlah (a,b): //a dan b disini adalah parameter untuk fungsi jumlah

jumlah = a+b

return jumlah
Jenis - jenis Parameter
1.Parameter Aktual
Variabel yang dipakai dalam pemanggilan fungsi/procedure di fungsi utama.

2.Parameter Formal
Variabel yang ada pada daftar parameter saat pendefinisian fungsi/procedure.Saat
Procedure/fungsi dipanggil parameter formal akan digantikan parameter aktual.
Nama Global dan Nama Lokal
1. Nama Lokal

Nama-nama (konstanta,variabel,dll) yang dideklarasikan di dalam


prosedur/fungsi yang hanya dikenali di block tersebut.

2. Nama Global

Nama-nama (konstanta,variabel,dll) yang dideklarasikan di dalam program


utama yang dikenali di seluruh bagian program.
Terima Kasih

Anda mungkin juga menyukai