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
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
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
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
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
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
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: