๐ŸŽฏ Tujuan ๐Ÿ” Search & Sort โšก Greedy & Rekursi ๐ŸŽฎ Search Race Studio ๐Ÿ“ Evaluasi Formatif โœจ Rangkuman & Refleksi
Learn / KKA / Berpikir Komputasional / 05. Perancangan Algoritma
๐Ÿค– KKA ยท Unit 01 ยท Modul 05

Perancangan Algoritma & Efisiensi Komputasi

Algoritma yang baik tidak hanya benar, tapi juga cepat dan hemat memori! Bandingkan kecepatan Linear Search vs Binary Search, pahami mekanisme pengurutan data Bubble Sort, pelajari strategi Greedy mencari solusi optimal instan, serta pemecahan masalah elegan dengan Rekursi.

โฑ๏ธ Waktu: 45 Menit โšก Algoritma: Search, Sort, Greedy, Rekursi ๐Ÿ“ Evaluasi: 20 Soal (4 Bagian)
๐ŸŽฏ

Tujuan Pembelajaran

Kompetensi yang akan kamu kuasai setelah menyelesaikan modul ini

01.
Membandingkan Linear vs Binary Search

Menjelaskan mengapa Binary Search jauh lebih cepat pada data terurut dibandingkan pencarian sekuensial satu per satu.

02.
Menganalisis Algoritma Bubble & Selection Sort

Memahami mekanisme penukaran elemen bersebelahan untuk mengurutkan daftar angka dari terkecil ke terbesar.

03.
Menerapkan Algoritma Greedy

Mengambil keputusan lokal terbaik di setiap langkah (contoh: menghitung kembalian uang pecahan koin minimum).

04.
Memahami Konsep Rekursi

Menjelaskan fungsi yang memanggil dirinya sendiri dengan Base Case (titik henti) dan Recursive Step.

1

Perbandingan Efisiensi Pencarian Data

Mencari 1 data di antara 1.000.000 data: Linear (1.000.000 cek) vs Binary (hanya 20 cek!)

๐Ÿšถ

1. Linear Search (Sekuensial)

Mengecek elemen satu per satu dari awal sampai akhir. Cocok untuk data yang belum terurut acak. Kompleksitas: O(N).

โšก

2. Binary Search (Bagi Dua)

Melihat titik tengah data terurut, jika target lebih besar, buang separuh data kiri! Kompleksitas super cepat: O(log N).

2

Algoritma Greedy & Rekursi

Strategi pemecahan masalah algoritmis tingkat lanjut

๐Ÿ’ฐ Algoritma Greedy (Pecahan Koin)

Ingin kembalian Rp 8.000 dengan keping koin paling sedikit? Greedy selalu mengambil koin nominal terbesar yang tersedia lebih dulu (Rp 5.000 + Rp 2.000 + Rp 1.000 = 3 koin).

๐Ÿ” Rekursi (Faktorial & Fibonacci)

Fungsi memanggil dirinya sendiri. Wajib memiliki Base Case agar tidak terjadi Infinite Loop / Stack Overflow.
faktorial(n) = n * faktorial(n - 1)

๐ŸŽฎ

Interactive Search Race Simulator

Pilih angka target lalu amati adu kecepatan langkah antara Linear Search vs Binary Search!

Algorithm Race
Daftar Data (Array Terurut): [ 3, 7, 12, 19, 25, 31, 44, 58, 67, 82, 95 ]
๐Ÿšถ LINEAR SEARCH:
Klik tombol 'Mulai Adu Cepat' untuk menjalankan simulasi...
โšก BINARY SEARCH (BAGI DUA):
Klik tombol 'Mulai Adu Cepat' untuk menjalankan simulasi...
๐Ÿ“

Evaluasi Formatif: Perancangan Algoritma

Uji pemahaman efisiensi searching, sorting, greedy, dan rekursi (Total Skor: 100)

Target Kelulusan Minimal 70 Poin
Bagian A

Pilihan Ganda (5 Soal ยท Bobot: 25 Poin)

1. Syarat mutlak yang harus dipenuhi agar algoritma Binary Search dapat dijalankan adalah...

2. Cara kerja algoritma Bubble Sort dalam mengurutkan angka adalah...

3. Algoritma Greedy adalah strategi pemecahan masalah yang...

4. Pada fungsi rekursif, kondisi pemberhentian yang mencegah fungsi memanggil dirinya tanpa henti disebut...

5. Nilai dari faktorial(4) atau 4! adalah...

Bagian B

Benar atau Salah (5 Soal ยท Bobot: 25 Poin)

1. Pada Binary Search, setiap kali perbandingan titik tengah dilakukan, separuh dari sisa data langsung dieliminasi.
2. Linear Search selalu membutuhkan waktu yang sama persis dengan Binary Search pada 1.000.000 data.
3. Selection Sort bekerja dengan cara mencari nilai terkecil pada sisa array lalu menukarnya ke posisi paling depan.
4. Jika fungsi rekursif tidak memiliki Base Case, program akan mengalami crash akibat memori stack habis (Stack Overflow).
5. Algoritma Brute Force mencoba seluruh kemungkinan kombinasi yang ada hingga menemukan solusi yang cocok.
Bagian C

Menjodohkan Algoritma & Kompleksitas/Karakternya (5 Pasangan ยท Bobot: 25 Poin)

Bagian D

Urutan Eksekusi Binary Search (Bobot: 25 Poin)

Urutkan langkah pencarian nilai angka dengan algoritma Binary Search:

A. Memastikan seluruh elemen array sudah terurut dari kecil ke besar
B. Menentukan batas indeks kiri (low = 0) dan indeks kanan (high = n - 1)
C. Menghitung indeks elemen tengah: mid = (low + high) / 2
D. Membandingkan target: jika sama maka selesai; jika target lebih besar, geser low = mid + 1
E. Mengulang pembagian dua ruang pencarian sampai target ditemukan atau rentang low > high
โœจ

Rangkuman Materi & Refleksi Belajar

Tuliskan pemahaman dan pengalaman belajarmu pada materi ini

1. Efisiensi Skala Besar: Perbedaan algoritma Linear dan Binary Search menentukan apakah server web merespons dalam 1 milidetik atau mengalami freeze.

2. Beragam Solusi: Sorting dan Greedy mengajarkan bahwa satu masalah dapat dipecahkan dengan berbagai taktik sesuai kebutuhan komputasi.

3. Berpikir Rekursif: Memecah masalah menjadi versi dirinya yang lebih kecil adalah seni berpikir programmer tingkat mahir.