Berpikir Komputasional

Media Pembelajaran Interaktif

Guru: Haikal Chaniago

🧩 Dekomposisi

Dekomposisi adalah proses memecah masalah kompleks menjadi bagian-bagian yang lebih kecil dan mudah dikelola. Seperti memecah puzzle besar menjadi potongan-potongan kecil.

Mengapa Dekomposisi Penting?

• Membuat masalah kompleks lebih mudah dipahami
• Memungkinkan pembagian tugas dalam tim
• Memudahkan identifikasi dan perbaikan kesalahan
• Meningkatkan efisiensi pemecahan masalah

šŸ“Œ Contoh: Membuat Website Sekolah

Masalah besar: "Buat website sekolah"

Dekomposisi menjadi:

1. Halaman Beranda (informasi umum)
2. Halaman Profil (visi, misi, sejarah)
3. Halaman Guru (daftar dan profil guru)
4. Halaman Siswa (prestasi dan kegiatan)
5. Halaman Kontak (alamat dan formulir)

šŸŽ® Demo Interaktif

Klik tombol untuk melihat dekomposisi masalah:

šŸŽÆ Abstraksi

Abstraksi adalah proses menyaring informasi, memfokuskan pada hal-hal penting dan mengabaikan detail yang tidak relevan. Seperti membuat peta yang hanya menampilkan jalan utama tanpa detail setiap bangunan.

Prinsip Abstraksi

• Identifikasi informasi penting
• Abaikan detail yang tidak diperlukan
• Fokus pada pola dan karakteristik utama
• Sederhanakan representasi masalah

šŸ“Œ Contoh: Sistem Perpustakaan

Detail Lengkap Buku:

• Judul, Penulis, Penerbit, Tahun Terbit
• ISBN, Jumlah Halaman, Berat, Dimensi
• Warna Sampul, Jenis Kertas, Font

Abstraksi untuk Sistem Peminjaman:

Yang Penting: Judul, Penulis, ISBN, Status (Tersedia/Dipinjam)
Yang Diabaikan: Warna sampul, jenis kertas, font

šŸŽ® Demo Interaktif

Lihat perbedaan detail lengkap vs abstraksi:

šŸ” Pengenalan Pola

Pengenalan Pola adalah kemampuan mengidentifikasi kesamaan, perbedaan, atau keteraturan dalam data atau masalah. Pola membantu kita memprediksi dan menyelesaikan masalah dengan lebih efisien.

Jenis-jenis Pola

• Pola Berulang: Kejadian yang terjadi secara konsisten
• Pola Sekuensial: Urutan yang mengikuti aturan tertentu
• Pola Struktural: Organisasi atau susunan yang teratur
• Pola Fungsional: Hubungan sebab-akibat

šŸ“Œ Contoh: Pola dalam Pemrograman

Pola Berulang:

Menampilkan angka 1-10:
for i = 1 to 10: print(i)

Pola Sekuensial:

Deret Fibonacci: 1, 1, 2, 3, 5, 8, 13, 21...
(Setiap angka = jumlah 2 angka sebelumnya)

šŸŽ® Demo Interaktif

Temukan pola dalam deret angka:

šŸ“Š Sorting (Pengurutan)

Sorting adalah proses mengatur data dalam urutan tertentu (ascending/naik atau descending/turun). Pengurutan membuat data lebih mudah dicari dan dianalisis.

Mengapa Sorting Penting?

• Mempercepat pencarian data
• Memudahkan analisis dan visualisasi
• Meningkatkan efisiensi algoritma lain
• Membuat data lebih terorganisir

Jenis-jenis Algoritma Sorting

• Bubble Sort: Membandingkan elemen bersebelahan
• Selection Sort: Memilih elemen terkecil/terbesar
• Insertion Sort: Menyisipkan elemen ke posisi yang tepat
• Quick Sort: Membagi data dengan pivot
• Merge Sort: Menggabungkan data yang sudah terurut

šŸ“Œ Contoh: Mengurutkan Nilai Siswa

Data Awal: [75, 82, 68, 95, 71]

Setelah Sorting (Ascending): [68, 71, 75, 82, 95]

Setelah Sorting (Descending): [95, 82, 75, 71, 68]

šŸŽ® Demo Interaktif

Lihat visualisasi sorting:

⚔ Insertion Sort

Insertion Sort adalah algoritma pengurutan yang bekerja seperti cara kita mengurutkan kartu di tangan. Setiap elemen diambil dan disisipkan ke posisi yang tepat dalam bagian yang sudah terurut.

Cara Kerja Insertion Sort

1. Mulai dari elemen kedua (indeks 1)
2. Bandingkan dengan elemen sebelumnya
3. Geser elemen yang lebih besar ke kanan
4. Sisipkan elemen ke posisi yang tepat
5. Ulangi untuk semua elemen

šŸ“Œ Contoh Langkah demi Langkah

Data: [5, 2, 4, 6, 1, 3]

Pass 1: [2, 5, 4, 6, 1, 3] → Sisipkan 2
Pass 2: [2, 4, 5, 6, 1, 3] → Sisipkan 4
Pass 3: [2, 4, 5, 6, 1, 3] → 6 sudah di posisi
Pass 4: [1, 2, 4, 5, 6, 3] → Sisipkan 1
Pass 5: [1, 2, 3, 4, 5, 6] → Sisipkan 3

Kompleksitas Insertion Sort

• Best Case: O(n) - Data sudah terurut
• Average Case: O(n²)
• Worst Case: O(n²) - Data terurut terbalik
• Space: O(1) - In-place sorting

šŸ“Œ Pseudocode Insertion Sort
untuk i dari 1 sampai n-1:
    key = array[i]
    j = i - 1
    
    selama j >= 0 dan array[j] > key:
        array[j + 1] = array[j]
        j = j - 1
    
    array[j + 1] = key
          

šŸŽ® Demo Interaktif Insertion Sort

Lihat animasi langkah demi langkah:

šŸ“ Kuis Berpikir Komputasional

šŸ“ˆ Hasil Kuis Siswa

Memuat data...