LEMBAR KERJA PESERTA DIDIK (LKPD)

REKURSI: KONVERSI DESIMAL KE BINER DENGAN C++

Informatika Fase F • SMA Negeri 1 Muncar
๐ŸŽฏ Tujuan Pembelajaran: Peserta didik mampu memahami konsep rekursi (*call stack*) dan menerapkannya dalam program C++ untuk melakukan konversi bilangan desimal ke biner secara mandiri dan terstruktur.
IDENTITAS SISWA & KELOMPOK Lengkapi Identitas
BAGIAN 1: PETUNJUK & KONSEP DASAR Aktivitas 01 & 02
๐Ÿ“Œ Petunjuk Pengerjaan: Bacalah setiap aktivitas secara berurutan, diskusikan bersama kelompok, dan isi jawaban pada kolom yang disediakan.
AKTIVITAS 01 MEMAHAMI MASALAH KONVERSI BILANGAN

Komputer menggunakan representasi sistem bilangan biner (basis 2) yang hanya mengenal dua digit: 0 dan 1.

Contoh Manual: Konversi Bilangan Desimal 1310 ke Biner

Bilangan Desimal Operasi Pembagian Hasil Bagi Sisa Pembagian (%)
1313 รท 261
66 รท 230
33 รท 211
11 รท 201
Hasil: Membaca sisa pembagian dari urutan paling bawah ke atas → 1310 = 11012
AKTIVITAS 02 MENGENAL STRUKTUR REKURSI

Rekursi adalah teknik di mana fungsi memanggil dirinya sendiri. Sebuah fungsi rekursif wajib memiliki 2 bagian penting:

1. BASE CASE (Kondisi Berhenti)
if (n == 0) {
    return;
}
2. RECURSIVE CASE (Pemanggilan)
// Memanggil fungsi untuk data n/2
desimalKeBiner(n / 2);
BAGIAN 2: EKSPLORASI & TRACING REKURSI Aktivitas 03 & 04
AKTIVITAS 03 LATIHAN KONVERSI MANUAL DESIMAL: 1010

Lakukan konversi bilangan desimal 1010 ke biner dengan melengkapi tabel berikut:

Langkah Bilangan Desimal Hasil Bagi (รท 2) Sisa Pembagian (%)
1 10
2
3
4
AKTIVITAS 04 MENELUSURI PROSES REKURSI (TRACING STACK 1310)

A. Tahap Pemanggilan Maju (Winding / Push to Call Stack):

Tahap Fungsi yang Dieksekusi Pemanggilan Selanjutnya
1 biner(13)
2
3
4 Berhenti (Base Case: n ≤ 1)

B. Urutan Kembali & Pencetakan Nilai (Unwinding / Pop from Stack):

BAGIAN 3: ANALISIS PROGRAM C++ Aktivitas 05 & 06
AKTIVITAS 05 MEMBEDAH STRUKTUR PROGRAM C++
#include <iostream> using namespace std; void desimalKeBiner(int n) { if (n > 1) { desimalKeBiner(n / 2); // Panggilan rekursif } cout << n % 2; // Cetak sisa setelah pemanggilan selesai } int main() { int bilangan; cout << "Masukkan bilangan desimal: "; cin >> bilangan; cout << "Bilangan biner: "; desimalKeBiner(bilangan); return 0; }

Tuliskan fungsi dan penjelasan masing-masing baris kode:

Bagian Kode Penjelasan Fungsi
void desimalKeBiner(int n)
if (n > 1)
desimalKeBiner(n / 2);
n % 2
cout << n % 2;
(setelah pemanggilan rekursi)
AKTIVITAS 06 LENGKAPI PROGRAM RUMPANG

Lengkapilah bagian kode rumpang berikut:

BAGIAN 4: PRAKTIK PEMROGRAMAN C++ Aktivitas 07
AKTIVITAS 07 BUAT PROGRAM ANDA SECARA LENGKAP

Tuliskan program C++ lengkap untuk mengonversi bilangan desimal menjadi bilangan biner menggunakan metode rekursi:

๐Ÿ“‹ Checklist Program (Beri tanda centang setelah selesai):
BAGIAN 5: PENGUJIAN & TANTANGAN Aktivitas 08 & Tantangan
AKTIVITAS 08 UJI COBA PROGRAM

Jalankan program menggunakan data uji berikut dan lengkapi tabel:

No Input Desimal Prediksi Manual Hasil Program Status
1 5
2 8
3 10
4 13
5 25
TANTANGAN PENGEMBANGAN KODE

Tantangan 01: Pastikan program dapat mengonversi bilangan 0.
Tantangan 02: Buat tampilan terminal lebih informatif dengan banner.

BAGIAN 6: REFLEKSI, KESIMPULAN & PENILAIAN Refleksi & Penilaian Guru

A. REFLEKSI BELAJAR (Pilih satu pada setiap baris):

Pernyataan Kompetensi Sangat Paham Paham Belum Paham
1. Saya memahami rekursi
2. Saya memahami base case
3. Saya memahami recursive case
4. Saya memahami n / 2
5. Saya memahami n % 2
6. Saya dapat membuat program

B. KESIMPULAN (Lengkapilah pernyataan berikut):

C. LEMBAR PENILAIAN GURU:

Aspek Penilaian Skor Maksimal Nilai Perolehan
Pemahaman Konsep20
Analisis20
Algoritma15
Pemrograman25
Pengujian10
Kerapian10
TOTAL SKOR100
๐Ÿ“ฆ PANEL SIMPAN & PENGIRIMAN TUGAS SMA Negeri 1 Muncar