Asisten :
Archie Dylan Ramadhan 11211015
Disusun Oleh :
Tri Wahyuni 10221032
0! = 1
Persamaan 2) di atas merupakan contoh hubungan rekurens (recurrence relation), yang berarti
bahwa nilai suatu fungsi dengan argumen tertentu bisa dihitung dari fungsi yang sama dengan
argumen yang lebih kecil. Persamaan 1) yang tidak bersifat rekursif, disebut nilai awal. Setiap
fungsi rekursi paling sedikit mempuyai 1 (satu) nilai awal; jika tidak, fungsi tersebut tidak bisa
dihitung secara eksplisit. Proses rekursi akan selesai , ini terletak pada kondisi pernyataan if-
nya. Jika pernyataan if menjadi FALSE maka akan menghentikan proses rekursi Prinsif dan
proses rekursi:
1. Memiliki kasus non rekursi(sederhana)
2. Kasus awal diarahkan menuju kasus sederhana
3. Mendefinisikan proses rekursi
Dalam bentuk pernyataan , biasanya menggunakan pernyataan if( atau if……else). Contoh
program rekursi sederhana dengan DEV C++
#include <iostream>
using namespace std;
void cetak(int n)
{
if(n<=4)
cetak(n+1);
1
cout<<n<<endl;
}
int main(int argc, char *argv[])
{
cout<<“Hasil dengan cara menggunakan rekursif: “;
cetak(1);
system(“PAUSE”);
return EXIT_SUCCESS;
}
Bentuk rekursif :
Proses Rekursif
Untuk memahami proses rekursif yang terjadi dalam sebuah fungsi rekursif, perhatikan
contoh sederhana di bawah ini. Contoh di bawah ini menyajikan satu fungsi untuk menghitung
harga pangkat suatu nilai bilangan bulat misalnya 35. berdasarkan hubungan rekurens seperti
dijelaskan diatas, maka proses rekursif akan tampak pada gambar berikut ini:
Dari definisi tersebut, statemen pertama menunjukkan nilai yang utama dari fungsi, dan
statemen kedua menunjukan perulangan penurunan dari n yaitu n-1.
2
Selain fungsi, prosedur juga dapat dilakukan operasi rekursif. Sebagai contoh
penggunaan proses rekursif pada prosedur adalah prosedur pencarian biner (binary search).
Dalam beberapa hal rekursif kurang efisien dibandng proses iterasi. Dalam artian pemecahan
secara rekursif dan secara iterasi mempunyai keuntungan dan kekurangan yang bisa saling
diperbandingkan. Adalah cukup sulit untuk menentukan mana yang paling sederhana, paling
jelas, paling efisien dan paling mudah dibanding yang lain. Bisa ditambahkan, pemilihan secara
iteratif maupun rekursif boleh dikatakan merupakan kesenangan seorang programmer sesuai
dengan keinginannya.
Kekurangan perulangan rekursif adalah Tidak bisa melakukan nested loop atau looping
bersarang. Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan
tertentu saja. Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel
lokal dan parameter formal akan ditempatkan ke stack dan ada kalaya akan menyebabkan stack
tak cukup lagi (Stack Overum). Proses agak berbelit-belit karena terdapat pemangilan fungsi
yang berulang-ulang dan pemanggilan data yang ditumpuk.
Sebuah pernyataan try, bisa memiliki sejumlah pernyataan except untuk menangani
jenis–jenis eksepsi secara lebih spesifik. Kita juga bisa mendefinisikan beberapa error
sekaligus menggunakan tuple.
Memunculkan Eksepsi
Eksepsi muncul bila terjadi error pada saat runtime atau saat program berjalan. Akan
tetapi, kita juga bisa memunculkan eksepsi dengan sengaja untuk maksud tertentudengan
menggunakan kata kunciraise.Pernyataan try bisa memiliki pasangan pernyataan finally.
Pernyataan di dalam blokfinally akan tetap dieksekusi bagaimanapun kasusnya. Finally biasa
3
digunakan untuk melepaskan koneksi dengan resource eksternal.Seperti misalnya saat kita
sedang mengedit suatu file di internet dan tiba–tibainternet terputus. Atau saat kita login ke
pusat data dan koneksi terputus.Pada kasus tersebut, kita harus membersihkan resource yang
digunakan, terlepas iasukses atau tidak. Aksi tersebut (menutup file, atau memutus koneksi ke
jaringan) dilakukan dengan menggunakan pernyataan finally untuk menjamin suatu perintah
tetap dieksekusi.
4
Source Code
Fungsi dan Rekursif nomor 1, 2, 3, dan 5.
No. Program_Mencari_Nilai_Faktorial.py
No. Program_Merepresentasikan_Fungsi_Matematika.py
No. Program_Menghasilkan_List_Elemen.py
5
13 elif a[i] in alp:
14 c.append(a[i])
15 elif a[i] in sym:
16 d.append(a[i])
17 e.append("".join(c))
18 e.append("".join(b))
19 e.append("".join(d))
20 print(e)
21 elemen(input("masukan elemen : "))
No. Program_Mencetak_Jumlah_Bilangan_Genap.py
Penanganan Kesalahan
No. Penanganan_Kesalahan_Program_Mencari_Nilai_Faktorial.py
6
No. Penanganan_Kesalahan_ Program_Merepresentasikan_Fungsi_Matematika.py
7
Screenshot Fungsi dan Rekursif
1. Program Mencari Nilai Faktorial
Tampilan awal program, pengguna diminta untuk memasukkan nilai yang diinginkan.
Setelah memasukkan nilai atau angka, akan menampilkan hasil dari nilai atau angka yang
dimasukan dalam program ini.
8
Tampilan awal program, pengguna diminta untuk memasukan pilihan angka sesuai aturan yang
ada.
Setelah memasukkan nilai atau angka yang di inginkan pengguna, akan menampilkan hasil dari
program.
9
3. Program Menghasilkan List Elemen
Setelah memasukkan nilai atau angka yang di inginkan pengguna, akan menampilkan hasil
elemen yang tersusun sesuai fungsi program.
10
Tampilan awal program, pengguna diminta untuk memasukan nilai batas bawah dan nilai batas
atasnya.
Setelah memasukkan nilai atau angka yang di inginkan pengguna, akan menampilkan hasiil
jumlah bilangan genap dari batas atas dab batas bawah yang dipilih.
Tampilan awal program, pengguna diminta untuk memasukan angka yang diinginkan.
11
Setelah memasukkan nilai atau angka, akan menampilkan hasil dari nilai atau angka yang
dimasukan dalam program ini.
Setelah memasukkan nilai atau angka, akan menampilkan hasil dari program ini.
12
13
Pembahasan Fungsi dan Rekursif
Program_Mencari_Nilai_Faktorial.py
No. Penjelasan
5 - 6 Menggunakan fungsi def untuk variabel nilai, lalu menyatakan bahwa hasil = 1.
7 - 13 Menggunakan fungsi for i in range untuk mencakup agar data yang masuk sesuai dengan
perintah awal, setelah itu membuat variabel rumus untuk mencari niali faktorial. Jika i
yang dimasukkan sesuai dengan syarat yang ada dan telah ditetapkan yaitu i == nilai-1,
maka tambpilkan hasilnya, sesuai dengan data yang dimasukan oleh pengguna.
14 Setelah dibentuk fungsi untuk mencari nilai faktorial dari suatu bilangan, masukan angka
yang ingin diketahui nilai faktorialnya oleh pengguna.
Program_Merepresentasikan_Fungsi_Matematika.py
No. Penjelasan
6 - 14 Menggunakan fungsi if dimana x yang dimasukan nilainya antara -10 hingga 10, apabila
nilai yang dimasukan tidak memenuhi syarat maka akan menampilkan perintah untuk
memberi tahu kepada pengguna bahwa nilai yang dimasukan salah sehingga diminta
kembali memasukkan nilai yang benar. Setelah itu, membuat rumus matematika dan
menampilkan rumus dengan memasukan x kedalam rumus sesuai yang dimasukan oleh
pengguna.
15 Memasukan nilai x yang mana nilainya harus antara -10 hingga 10.
Program_Menghasilkan_List_Elemen.py
No. Penjelasan
5 - 7 Membuat variabel untuk memberi batasan komponen atau elemen mana yang termasuk
dalam bagian variabel masing-masing, diantara angka, alphabet, dan symbol.
8 - 9 Menggunakan fungsi def untuk elemen(a), setelah itu membagi elemen b,c,d serta e.
10 - 20 Menggunakan fungsi for j in range untuk elemen a yang dimana jika a[i] dalam angka
maka termasuk kedalam elemen b, jika a[i] dalam alphabet maka termasuk elemen c, dan
jika a[i] dalam symbol maka termasuk elemen d, pada hal ini menggunakan fungsi
.append. Menggunakan fungsi .append menggabungkan elemen c, elemen b dan elemen d
kedalam elemen e. Lalu setelah itu, print elemen e.
21 Memasukan elemen oleh pengguna yang terdiri dari angka, alphabet dan symbol sesuai
keinginan, tetapi harus memenuhi syarat yang ada pada program
14
Program_ Mencetak_Jumlah_Bilangan_Genap.py
No. Penjelasan
6 - 9 Menggunakan if jika nilai a lebih besar daripada b maka tidak memenuhi syarat sehingga
diminta memasukan nilai a dan b atau batas bawah dan batas atas sesuai dengan syarat
yang berlaku
10 - 21 Menggunakan else untuk pilihan yang lain, yaitu jika a%2!=0 maka a=a+1 dan a masuk
kedalam bagian elemen atau komponen d dan c merupakan penjumlahan a. Setelah itu
apabila a lebih kecil dari b dikurang 1 maka a+=2 sehingga memenuhi bagian rekrusif.
Atau menggunakan pilihan lain, dimana akan menampilkan jumlah dari bilangan genap
yang didapat dari komponen d.
22 Memasukan batas bawah dan batas atas sesuai dengan syarat yang berlaku pada program.
Penanganan_Kesalahan_ Program_Merepresentasikan_Fungsi_Matematika.py
No. Penjelasan
3 - 5 Menggunakan fungsi def untuk fungsi matematika dan memasukan rumus serta
menambahkan return.
15
7 - 8 Tambahkan try dengan input untuk memasukan nilai x.
16
Kesimpulan
Dari praktikum ini, dapat disimpulkan bahwa dalam rekursif sebenarnya terkandung pengertian
prosedur atau fungsi. Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi
prosedur atau fungsi harus dipanggil lewat pemanggil prosedur atau fungsi. Pemanggilan prosedur atau
fungsi ke dirinya sendiri bisa berarti proses yang berulang yang tidak bisa diketahui kapan akan
berakhir. Contoh paling sederhana dari proses rekursi adalah menghitung nilai faktorial dari bilangan
bulat.
Kesimpulan pada modul penanganan kesalahan ini yaitu bahwa mahasiswa sering melakukan
kesalahan dalam penulisan program pyhton. Ada dua jenis kesalahan yang sering dilakukan yaitu
kesalahan logika algoritma dan kesalahan penulisan sintaks. Kesalahan dalam Sintaks (syntax error);
yaitu diantaranya adalah berupa pemakaian Variabel Kurung kurawal{}, Operator + untuk tanda
sambung, Error dalam mengakhiri baris program,dan Lupa dalam mengimport package-nya, Dan dalam
Kesalahan Logika (logical error); diantaranya ada dalam kesalahan pemahaman antar operator postfix
dan prefix dan kesalahandalam penginputan data-data yang seharusnya.
Saran
Saran saya untuk saat ini belum ada, menurut saya apa yang sudah asisten dosen lakukan sampai saat
ini sudah bagus, baik dalam penyampaian materi dan ketegasannya. Terima kasih.
17
Daftar Pustaka
https://kelasprogrammer.com/fungsi-rekursif-python/
https://ichi.pro/id/fungsi-rekursif-python-147294995942692
https://www.advernesia.com/blog/python/errors-and-exceptions-penanganan-error-pada-python/
18