LEMBAR KERJA SISWA (LKS)
Materi: Pengenalan Bahasa Pemrograman Python
Topik: Rekursi dalam Python
Identitas Siswa:
Nama: ___________________________
Kelas: ___________________________
Tanggal: _________________________
A. Tujuan Pembelajaran
Siswa memahami konsep rekursi.
Siswa mengenal cara kerja fungsi rekursif dalam Python.
Siswa mampu membuat dan memecahkan masalah menggunakan rekursi dalam program Python.
B. Materi Singkat
Apa itu Rekursi?
Rekursi adalah teknik pemrograman di mana sebuah fungsi memanggil dirinya sendiri. Rekursi digunakan untuk memecahkan masalah yang bisa dipecah menjadi sub-masalah yang lebih kecil dengan struktur yang serupa.
Ciri-Ciri Fungsi Rekursif
Basis Kasus (Base Case): Kondisi yang menghentikan rekursi. Jika tidak ada basis kasus, rekursi akan berjalan tanpa henti (infinite loop).
Pemanggilan Diri (Recursive Call): Fungsi memanggil dirinya sendiri dengan input yang lebih sederhana setiap kali.
Contoh Sederhana: Faktorial
Faktorial dari sebuah bilangan adalah hasil kali dari semua bilangan bulat positif dari 1 hingga bilangan tersebut.
Rumus Faktorial:
n!=n×(n−1)×(n−2)×…×1n! = n \times (n-1) \times (n-2) \times \ldots \times 1n!=n×(n−1)×(n−2)×…×1
Atau secara rekursif:
n!=n×(n−1)!n! = n \times (n-1)!n!=n×(n−1)!
dengan 1!=11! = 11!=1.
Contoh Kode Python untuk Faktorial:
python
Copy code
def faktorial(n):
if n == 1: # Basis kasus
return 1
else:
return n * faktorial(n - 1) # Pemanggilan rekursif
# Menghitung faktorial dari 5
print(faktorial(5)) # Output: 120
Pada program di atas, fungsi faktorial memanggil dirinya sendiri sampai nilai n menjadi 1 (basis kasus), di mana rekursi berhenti.
C. Langkah-langkah Kegiatan
1. Latihan 1: Fungsi Faktorial
Tugas: Buatlah program Python yang menghitung faktorial dari sebuah bilangan menggunakan fungsi rekursif.
Contoh Kode:
python
Copy code
def faktorial(n):
if n == 1:
return 1
else:
return n * faktorial(n - 1)
# Meminta input dari pengguna
bilangan = int(input("Masukkan bilangan: "))
print(f"Faktorial dari {bilangan} adalah {faktorial(bilangan)}")
Jalankan program di atas dan hitung faktorial dari bilangan 5. Apa hasilnya?
Apa yang terjadi jika Anda tidak menambahkan basis kasus (contoh: menghapus if n == 1)?
2. Latihan 2: Deret Fibonacci
Tugas: Buatlah program yang menampilkan deret Fibonacci menggunakan rekursi.
Penjelasan Fibonacci: Deret Fibonacci adalah deret angka yang dimulai dengan 0 dan 1, di mana setiap angka berikutnya adalah hasil penjumlahan dua angka sebelumnya.
Deret Fibonacci:
0,1,1,2,3,5,8,13,…0, 1, 1, 2, 3, 5, 8, 13, \dots0,1,1,2,3,5,8,13,…
Secara rekursif, rumus Fibonacci adalah:
F(n)=F(n−1)+F(n−2)F(n) = F(n-1) + F(n-2)F(n)=F(n−1)+F(n−2)
dengan F(0)=0F(0) = 0F(0)=0 dan F(1)=1F(1) = 1F(1)=1.
Contoh Kode Fibonacci Rekursif:
python
Copy code
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
# Meminta input dari pengguna
n = int(input("Masukkan jumlah angka Fibonacci yang ingin ditampilkan: "))
for i in range(n):
print(fibonacci(i), end=" ")
Jalankan program dan coba cetak 10 angka pertama dari deret Fibonacci.
Apa yang terjadi jika Anda memanggil fibonacci(1) dan fibonacci(2)? Bandingkan outputnya.
D. Tugas Utama
Membuat Program Menghitung Pangkat Bilangan
Tugas: Buatlah program Python yang menghitung hasil pangkat dari sebuah bilangan menggunakan rekursi. Misalnya, xyx^yxy (x pangkat y).
Langkah-langkah:
Buat fungsi pangkat(x, y) yang menghitung xyx^yxy.
Gunakan rekursi dengan basis kasus: x0=1x^0 = 1x0=1.
Buat pemanggilan rekursif untuk mengalikan bilangan x dengan hasil pemanggilan fungsi pangkat(x, y-1).
Contoh Kode:
python
Copy code
def pangkat(x, y):
if y == 0:
return 1
else:
return x * pangkat(x, y-1)
# Meminta input dari pengguna
x = int(input("Masukkan bilangan: "))
y = int(input("Masukkan pangkat: "))
print(f"{x} pangkat {y} adalah {pangkat(x, y)}")
Jalankan program dan hitung 252^525. Apa hasilnya?
Apa yang terjadi jika Anda menghitung 505^050? Jelaskan mengapa.
E. Pertanyaan Refleksi
Apa itu rekursi dan bagaimana cara kerjanya dalam sebuah fungsi?
Mengapa rekursi memerlukan basis kasus? Apa yang terjadi jika tidak ada basis kasus?
Berikan satu contoh penggunaan rekursi dalam kehidupan nyata.
F. Kesimpulan
Rekursi adalah teknik di mana fungsi memanggil dirinya sendiri untuk menyelesaikan masalah yang lebih kecil.
Basis kasus adalah kondisi yang menghentikan rekursi, dan setiap rekursi harus memiliki basis kasus agar tidak berjalan tanpa henti.
Rekursi digunakan dalam banyak algoritma, seperti perhitungan faktorial, deret Fibonacci, pencarian, dan penyusunan ulang struktur data.
G. Penilaian
Pemahaman tentang Rekursi (30%)
Kebenaran Program (40%)
Kerapihan dan Kejelasan Kode (30%)
H. Penutup
Dengan memahami rekursi, Anda akan lebih mudah menyelesaikan masalah yang berulang dengan pola yang serupa. Rekursi juga dapat digunakan untuk menyelesaikan berbagai masalah kompleks dalam pemrograman.
Catatan: LKS ini dapat disesuaikan dengan tingkat pemahaman siswa dan dapat ditambah dengan soal latihan atau tugas tambahan sesuai kebutuhan.
Tidak ada komentar:
Posting Komentar