Modul Ajar Informatika Kelas 12 SMA: Strategi Algoritmik Tingkat Lanjut: Rekursi dan Divide and Conquer (Bab 1)

Menganalisis kompleksitas waktu Big-O, merancang fungsi rekursif dengan base case presisi, dan menerapkan paradigma divide and conquer pada merge sort dan binary search.

Capaian dan tujuan pembelajaran

  • Menganalisis kompleksitas komputasi waktu dan ruang menggunakan notasi Big-O ($O(1), O(\log n), O(n), O(n \log n), O(n^2)$).
  • Merancang dan mengimplementasikan fungsi rekursif dengan penanganan kondisi dasar (*base case*) dan langkah rekursif (*recursive step*) secara benar.
  • Menerapkan paradigma algoritma *Divide and Conquer* dalam pemecahan masalah pengurutan data (*Merge Sort/Quick Sort*) dan pencarian (*Binary Search*).

Materi pokok & uraian konsep pembelajaran

Strategi algoritmik merupakan inti dari pemecahan masalah komputasi berskala besar. Pada jenjang SMA Kelas 12, peserta didik beralih dari sekadar menulis kode sintaksis sederhana menuju analisis matematis efisiensi algoritma melalui notasi asimptotik Big-O. Peserta didik memahami bagaimana pemilihan algoritma yang tepat mampu membedakan program yang berjalan dalam hitungan milidetik dengan program yang memerlukan waktu berjam-jam untuk memproses jutaan data.

Konsep rekursi dieksplorasi secara mendalam dengan membedah mekanisme kerja tumpukan pemanggilan memori (*call stack*), bahaya *stack overflow*, dan penentuan kondisi terminasi (*base case*). Peserta didik menerapkan rekursi pada struktur data hierarkis dan masalah klasik seperti Menara Hanoi, faktorial, dan penjelajahan pohon biner (*tree traversal*).

Pembelajaran berlanjut pada paradigma desain *Divide and Conquer*, di mana masalah besar dipecah (*divide*) menjadi submasalah independen yang lebih kecil, diselesaikan (*conquer*), dan digabungkan (*combine*) kembali. Algoritma seperti *Merge Sort* dan *Binary Search* diimplementasikan dan diuji secara komparatif terhadap algoritma *brute force* untuk membuktikan efisiensinya secara empiris.

Peta subtopik bahasan

  • Analisis Kompleksitas Algoritma dan Notasi Big-O

    Pengukuran efisiensi waktu eksekusi terhadap ukuran input data ($n$), skenario *best case*, *average case*, dan *worst case*.

  • Struktur dan Mekanisme Rekursi (Call Stack & Base Case)

    Prinsip pemanggilan fungsi mandiri, eksekusi memori *stack frame*, *tail recursion*, dan pencegahan *infinite loop*.

  • Paradigma Divide and Conquer: Merge Sort dan Binary Search

    Tahapan divide, conquer, combine, implementasi Merge Sort ($O(n \log n)$) dan pencarian logaritmik Binary Search ($O(\log n)$).

Istilah kunci dan glosarium

Big-O Notation
Notasi matematika yang mendeskripsikan batas atas laju pertumbuhan waktu komputasi atau penggunaan memori suatu algoritma seiring bertambahnya ukuran masukan data ($n$).
Base Case
Kondisi pemberhentian dalam fungsi rekursif yang mengembalikan nilai langsung tanpa melakukan pemanggilan rekursif lebih lanjut guna mencegah *infinite loop*.
Call Stack
Struktur data memori bertipe LIFO (Last-In-First-Out) yang menyimpan informasi konteks eksekusi fungsi aktif saat dipanggil.
Divide and Conquer
Paradigma desain algoritma yang memecah masalah menjadi beberapa submasalah serupa, menyelesaikannya secara rekursif, lalu menggabungkan solusinya.
Merge Sort
Algoritma pengurutan berbasis Divide and Conquer dengan kompleksitas waktu stabil $O(n \log n)$ pada semua skenario.

Instrumen asesmen formatif & contoh soal pembelajaran

5 butir instrumen soal pilihan ganda berbasis HOTS untuk mengukur pemahaman konsep pada bab ini. Dilengkapi kunci jawaban dan uraian pembahasan analitis.

Soal 1

Jika suatu algoritma pencarian memiliki kompleksitas waktu $O(\log n)$ untuk memproses data berukuran $n = 1.000.000$, kira-kira berapa operasi perbandingan maksimum yang diperlukan dalam skenario terburuk?

  • A. 1.000.000 operasi
  • B. 500.000 operasi
  • C. Sekitar 20 operasi (karena $2^{20} \approx 1.048.576$)
  • D. 1 operasi saja
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan C

Pembahasan: Pada algoritma logaritmik basis 2 seperti Binary Search, $\log_2(1.000.000) \approx 19,93$, sehingga hanya dibutuhkan maksimal 20 perbandingan untuk menemukan elemen di antara 1 juta data terurut.

Soal 2

Perhatikan fungsi rekursif Python berikut: ```python def hitung(n): if n == 0: return 1 return n * hitung(n - 1) ``` Apa nilai yang dikembalikan saat `hitung(4)` dipanggil?

  • A. 10
  • B. 16
  • C. 24
  • D. 0
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan C

Pembahasan: Fungsi ini menghitung faktorial: hitung(4) = 4 * hitung(3) = 4 * 3 * hitung(2) = 4 * 3 * 2 * hitung(1) = 4 * 3 * 2 * 1 * 1 = 24.

Soal 3

Apa konsekuensi fatal yang terjadi pada sistem komputer jika sebuah fungsi rekursif ditulis tanpa menyertakan 'base case' yang tepat?

  • A. Komputer akan menghapus seluruh data di hard disk secara otomatis.
  • B. Terjadi pemanggilan fungsi tanpa batas yang menghabiskan memori tumpukan eksekusi dan memicu kesalahan 'RecursionError: maximum recursion depth exceeded' (Stack Overflow).
  • C. Kecepatan internet komputer meningkat tajam.
  • D. Program akan langsung selesai dalam waktu 0 detik.
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan B

Pembahasan: Tanpa base case, fungsi akan terus memanggil dirinya sendiri dan mengalokasikan stack frame baru di memori hingga batas alokasi stack habis (Stack Overflow).

Soal 4

Manakah pernyataan yang paling tepat mengenai perbandingan efisiensi antara algoritma Bubble Sort ($O(n^2)$) dan Merge Sort ($O(n \log n)$) ketika mengurutkan data besar ($n = 100.000$)?

  • A. Bubble Sort jauh lebih cepat karena kodenya lebih pendek.
  • B. Merge Sort jauh lebih efisien karena kompleksitas $n \log n$ tumbuh jauh lebih lambat daripada laju kuadratik $n^2$ seiring membesarnya ukuran data.
  • C. Keduanya memiliki kecepatan yang identik sama persis.
  • D. Bubble Sort membutuhkan memori tak terbatas sedangkan Merge Sort tidak memakai memori sama sekali.
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan B

Pembahasan: Untuk $n = 100.000$, $n^2 = 10.000.000.000$ operasi pada Bubble Sort, sedangkan Merge Sort hanya butuh sekitar $100.000 \times 17 \approx 1.700.000$ operasi, ribuan kali lebih cepat.

Soal 5

Dalam algoritma pencarian biner (Binary Search), syarat mutlak yang harus dipenuhi oleh struktur data array sebelum proses pencarian dilakukan adalah...

  • A. Elemen data di dalam array harus sudah terurut (sorted) secara menaik atau menurun.
  • B. Array hanya boleh berisi bilangan genap positif.
  • C. Array harus memiliki jumlah elemen ganjil.
  • D. Tipe data elemen harus berupa string huruf kapital semua.
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan A

Pembahasan: Binary Search bekerja dengan membagi dua ruang pencarian berdasarkan perbandingan dengan nilai tengah; hal ini hanya valid jika elemen array berada dalam kondisi terurut (sorted).

Petunjuk penggunaan berkas

Setelah mengunduh berkas perangkat ajar, ikuti langkah berikut untuk menggunakannya secara optimal:

  1. Buka dokumen menggunakan Microsoft Word, Google Docs, atau LibreOffice.
  2. Sesuaikan identitas satuan pendidikan, nama guru pengampu, NIP, serta alokasi waktu kelas.
  3. Cetak instrumen asesmen atau bagikan lembar kerja (LKPD) kepada peserta didik.

Bahan ajar Informatika lainnya

  • Berpikir Komputasional

    Informatika SMP Kelas 7 · Semester 1

  • Teknologi Informasi dan Komunikasi

    Informatika SMP Kelas 7 · Semester 1

  • Sistem Komputer

    Informatika SMP Kelas 7 · Semester 1