Modul Ajar Informatika Kelas 11 SMA: Berpikir Komputasional Tingkat Lanjut: Greedy dan Pemrograman Dinamis (Bab 1)

Penerapan strategi algoritma Greedy (Fractional Knapsack, Aktivitas Seleksi), Dynamic Programming (Fibonacci Memoization, 0/1 Knapsack), representasi struktur data Graf/Pohon, dan analisis kompleksitas asimtotik Big-O.

Capaian dan tujuan pembelajaran

  • Peserta didik mampu menganalisis dan menerapkan paradigma Greedy dan Dynamic Programming dalam memecahkan masalah optimasi.
  • Peserta didik mampu memodelkan persoalan kontekstual menggunakan struktur data Graf dan algoritma pencarian rute.
  • Peserta didik mampu menghitung dan mengevaluasi kompleksitas waktu algoritma menggunakan notasi Big-O.

Materi pokok & uraian konsep pembelajaran

Berpikir Komputasional (*Computational Thinking*) pada Fase F menuntut kemampuan menganalisis dan memformulasikan solusi algoritmik yang efisien untuk masalah optimasi kombinatorial berskala besar. Dua paradigma penting dalam optimasi adalah algoritma *Greedy* dan *Dynamic Programming* (DP).

Algoritma *Greedy* mengambil keputusan lokal terbaik (*locally optimal choice*) pada setiap langkah dengan harapan mencapai solusi global optimal. Sebaliknya, Pemrograman Dinamis (*Dynamic Programming*) memecah masalah menjadi sub-masalah yang tumpang tindih (*overlapping subproblems*) dan menyimpan solusinya (*memoization/tabulation*) untuk menghindari komputasi berulang.

Struktur data non-linear seperti Graf (*Graph*) dan Pohon (*Tree*) dianalisis menggunakan algoritma pencarian lintasan terpendek (*Dijkstra*) dan pohon rentang minimum (*Prim/Kruskal*). Analisis kompleksitas waktu Big-$O$ ($\mathcal{O}(n)$, $\mathcal{O}(n\log n)$, $\mathcal{O}(n^2)$) digunakan untuk mengukur efisiensi komputasi algoritma.

Peta subtopik bahasan

  • Paradigma Algoritma Greedy dan Karakteristik Optimasi

    Menerapkan pendekatan rakus pada masalah penukaran koin dan Fractional Knapsack Problem.

  • Pemrograman Dinamis (Dynamic Programming: Memoization vs Tabulation)

    Menyelesaikan masalah bilangan Fibonacci, Longest Common Subsequence, dan 0/1 Knapsack.

  • Struktur Data Graf dan Algoritma Lintasan Terpendek

    Menganalisis representasi matriks ketetanggaan dan algoritma Dijkstra pada jaringan rute.

  • Analisis Kompleksitas Asimtotik Waktu dan Ruang (Notasi Big-O)

    Membandingkan efisiensi runtime algoritma brute force versus strategi pemrograman dinamis.

Istilah kunci dan glosarium

Algoritma Greedy
Pendekatan perancangan algoritma yang membuat pilihan terbaik saat itu juga di setiap langkah tanpa mempertimbangkan konsekuensi global jangka panjang.
Dynamic Programming
Metode penyelesaian masalah optimasi kompleks dengan membaginya menjadi sub-persoalan tumpang tindih dan menyimpan hasil solusinya dalam tabel memori.
Memoization
Teknik optimasi top-down pada pemrograman dinamis dengan menyimpan hasil pemanggilan fungsi yang mahal dalam cache/tabel asosiatif.
Notasi Big-O
Notasi matematika asimtotik yang digunakan untuk mengklasifikasikan batas atas laju pertumbuhan waktu eksekusi atau kebutuhan memori suatu algoritma.
Graf Berbobot (Weighted Graph)
Struktur data graf di mana setiap sisi (edge) yang menghubungkan dua simpul (vertex) memiliki nilai numerik biaya/jarak.

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

Perbedaan mendasar antara masalah 'Fractional Knapsack' dengan '0/1 Knapsack' adalah...

  • A. Fractional Knapsack memperbolehkan pengambilan pecahan bagian dari barang (bisa diselesaikan dengan Greedy), sedangkan 0/1 Knapsack mengharuskan barang diambil utuh atau tidak sama sekali (diselesaikan dengan Dynamic Programming)
  • B. 0/1 Knapsack hanya boleh mengambil barang yang bernilai nol
  • C. Fractional Knapsack tidak memiliki batasan kapasitas beban
  • D. Keduanya selalu menghasilkan solusi yang identik dengan algoritma Greedy
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan A

Pembahasan: Pada 0/1 Knapsack barang bersifat diskret (utuh/tidak) sehingga strategi Greedy gagal mencapai optimal global, menuntut solusi DP.

Soal 2

Kompleksitas waktu untuk menghitung suku ke-$n$ bilangan Fibonacci menggunakan rekursi naif murni tanpa memoization adalah...

  • A. $\mathcal{O}(2^n)$ (Eksponensial)
  • B. $\mathcal{O}(n)$ (Linear)
  • C. $\mathcal{O}(1)$ (Konstan)
  • D. $\mathcal{O}(\log n)$ (Logaritmik)
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan A

Pembahasan: Rekursi naif memicu pohon panggilan berulang eksponensial $\mathcal{O}(2^n)$, yang dapat dipangkas menjadi $\mathcal{O}(n)$ dengan DP memoization.

Soal 3

Algoritma yang paling tepat dan efisien digunakan untuk mencari lintasan terpendek (shortest path) dari satu titik awal ke semua titik lain pada graf berbobot non-negatif adalah...

  • A. Algoritma Dijkstra
  • B. Algoritma Bubble Sort
  • C. Algoritma Binary Search
  • D. Algoritma Huffman Tree
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan A

Pembahasan: Algoritma Dijkstra menggunakan pendekatan Greedy berbasis antrean prioritas untuk mencari jarak lintasan terpendek pada graf bobot positif.

Soal 4

Teknik pemrograman dinamis yang mengisi tabel array dari kasus dasar terkecil menuju kasus tujuan akhir secara iteratif disebut pendekatan...

  • A. Tabulation (Bottom-Up)
  • B. Memoization (Top-Down)
  • C. Brute Force Permutasi
  • D. Divide and Conquer murni
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan A

Pembahasan: Tabulation menyelesaikan sub-masalah dari bawah ke atas (Bottom-Up) dengan mengisi tabel matriks atau array iteratif.

Soal 5

Sebuah loop bersarang ganda di mana kedua perulangan berjalan sebanyak $n$ kali memiliki kompleksitas waktu...

  • A. $\mathcal{O}(n^2)$
  • B. $\mathcal{O}(n)$
  • C. $\mathcal{O}(n\log n)$
  • D. $\mathcal{O}(n^3)$
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan A

Pembahasan: Dua loop bersarang $n \times n$ menjalankan operasi dasar sebanyak $n^2$ kali, sehingga kompleksitasnya $\mathcal{O}(n^2)$ (Kuadratik).

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