Minggu, 13 Oktober 2024

 LEMBAR KERJA SISWA (LKS)

Materi: Pengenalan Bahasa Pemrograman Python

Topik: Rekursi dalam Python


Identitas Siswa:

  • Nama: ___________________________

  • Kelas: ___________________________

  • Tanggal: _________________________


A. Tujuan Pembelajaran

  1. Siswa memahami konsep rekursi.

  2. Siswa mengenal cara kerja fungsi rekursif dalam Python.

  3. 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

  1. Basis Kasus (Base Case): Kondisi yang menghentikan rekursi. Jika tidak ada basis kasus, rekursi akan berjalan tanpa henti (infinite loop).

  2. 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)}")

  1. Jalankan program di atas dan hitung faktorial dari bilangan 5. Apa hasilnya?


  1. 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=" ")

  1. Jalankan program dan coba cetak 10 angka pertama dari deret Fibonacci.


  1. 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:

  1. Buat fungsi pangkat(x, y) yang menghitung xyx^yxy.

  2. Gunakan rekursi dengan basis kasus: x0=1x^0 = 1x0=1.

  3. 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)}")

  1. Jalankan program dan hitung 252^525. Apa hasilnya?


  1. Apa yang terjadi jika Anda menghitung 505^050? Jelaskan mengapa.



E. Pertanyaan Refleksi

  1. Apa itu rekursi dan bagaimana cara kerjanya dalam sebuah fungsi?


  1. Mengapa rekursi memerlukan basis kasus? Apa yang terjadi jika tidak ada basis kasus?


  1. 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

  1. Pemahaman tentang Rekursi (30%)

  2. Kebenaran Program (40%)

  3. 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