- Bab 2 dari 8
- 35 menit
- 2 latihan kode
- 4 soal kuis
Empat Pilar: Dekomposisi dan Pengenalan Pola
Di bab ini (6 bagian)
Tujuan bab ini
- Menjelaskan empat pilar CT secara garis besar.
- Memecah masalah besar menjadi sub-masalah dengan dekomposisi.
- Menemukan pola pada barisan bilangan dan kejadian sehari-hari.
- Menerapkan dekomposisi dan pola dalam fungsi JavaScript sederhana.
Empat pilar dalam satu gambaran
CT punya empat pilar yang akan kamu pelajari satu per satu:
| Pilar | Inti |
|---|---|
| Dekomposisi | Memecah masalah besar menjadi bagian-bagian kecil yang lebih mudah dikelola |
| Pengenalan Pola | Menemukan kesamaan atau keteraturan antarbagian masalah |
| Abstraksi | Berfokus pada informasi penting dan mengabaikan detail yang tidak relevan |
| Algoritma | Menyusun langkah-langkah penyelesaian yang runtut dan jelas |
Keempat pilar ini saling melengkapi dan tidak harus selalu dipakai berurutan. Bayangkan keluargamu menyiapkan liburan. Rencana dipecah menjadi transportasi, penginapan, dan makanan (dekomposisi). Kalian belajar dari liburan sebelumnya, misalnya hotel dekat pantai selalu cepat penuh (pola). Kalian fokus pada anggaran dan tanggal, bukan pada warna koper (abstraksi). Terakhir, kalian menyusun rencana langkah demi langkah (algoritma). Kadang kamu melompat bolak-balik, dan itu wajar.
Bab ini membahas dua pilar pertama.
Pilar 1: Dekomposisi
Dekomposisi berarti memecah masalah kompleks menjadi sub-masalah yang lebih kecil, sehingga setiap bagian bisa diselesaikan satu per satu.
Contoh: pentas seni sekolah
Panitia pentas seni tidak bisa langsung "membuat acara". Kalimat itu terlalu besar untuk dikerjakan. Maka masalahnya dipecah:
- Acara: susun rundown, pilih pengisi.
- Konsumsi: hitung porsi, pesan snack.
- Dekorasi: tentukan tema panggung, siapkan alat.
- Publikasi: buat poster, sebar undangan.
Perhatikan bahwa pemecahan terjadi dua tingkat. Mula-mula "pentas seni" dipecah menjadi empat bidang, lalu setiap bidang dipecah lagi menjadi tugas kecil. Kamu boleh terus memecah sampai setiap bagian terasa jelas dan bisa langsung dikerjakan.
Manfaat dekomposisi
- Masalah terasa tidak menakutkan. "Pesan snack" jauh lebih ringan daripada "bikin pentas seni".
- Tugas mudah dibagi ke anggota tim. Setiap orang memegang bagiannya.
- Kesalahan lebih cepat ditemukan. Kalau snack kurang, kamu tahu harus memeriksa bagian konsumsi, bukan seluruh acara.
Contoh lain: menulis laporan dipecah menjadi pendahuluan, isi, dan penutup. Coba juga pikirkan: bagaimana kamu memecah tugas "belajar untuk ujian"? Mungkin per mata pelajaran, lalu per bab, lalu per hari.
Dekomposisi dalam kode
Di JavaScript, dekomposisi biasanya berarti membuat beberapa fungsi kecil, lalu satu fungsi besar yang memanggil semuanya.
Setiap fungsi kecil mudah diperiksa sendiri. Kalau totalnya salah, kamu cukup menguji biayaKonsumsi dan biayaPublikasi satu per satu.
Pilar 2: Pengenalan Pola
Pengenalan pola berarti mencari kesamaan, keteraturan, atau tren di dalam masalah. Pola yang sudah dikenali bisa dipakai ulang untuk menyelesaikan masalah serupa, jadi kamu tidak perlu memulai dari nol.
Contoh: barisan bilangan
Lihat barisan ini: 2, 5, 8, 11, ...
Selisih antarsuku selalu 3. Jadi suku berikutnya adalah 11 + 3 = 14. Kita bisa melangkah lebih jauh dan mencari rumus suku ke-n:
| n | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
| Suku | 2 | 5 | 8 | 11 | 14 |
Karena bertambah 3 setiap langkah, rumusnya pasti mengandung 3n. Untuk n = 1, 3n = 3, padahal sukunya 2, jadi kurangi 1. Rumusnya 3n − 1. Cek: n = 4 menghasilkan 12 − 1 = 11. Cocok.
Inilah kekuatan pola. Tanpa rumus, kamu harus menjumlah satu per satu untuk mencari suku ke-100. Dengan rumus, langsung 3 × 100 − 1 = 299.
Pola juga tidak hanya berupa angka. Bentuk yang berulang, misalnya lingkaran, persegi, segitiga, lalu kembali ke lingkaran, juga pola.
Pola dalam keseharian
- Jalanan padat pada jam berangkat dan pulang kerja.
- Menu kantin yang berulang setiap minggu.
- Penjualan payung naik saat musim hujan.
Begitu pola dikenali, kamu bisa bertindak lebih cerdas: berangkat lebih pagi, membawa bekal di hari menu yang tidak kamu suka, atau, kalau kamu pedagang, menambah stok payung menjelang musim hujan.
Pola dalam kode
Rumus 3n − 1 bisa langsung ditulis sebagai fungsi. Untuk membuat banyak suku sekaligus, kita butuh array dan perulangan for.
Penjelasan sintaks baru:
const hasil = [];membuat array kosong, yaitu daftar berurutan.constdipakai untuk nama yang tidak akan diganti dengan nilai lain.for (let n = 1; n <= jumlah; n++)berarti: mulai dari n = 1, ulangi selama n kurang dari atau sama denganjumlah, dan tambah n satu setiap putaran (n++).hasil.push(...)menambahkan nilai ke ujung array.
Perhatikan bahwa barisan memakai sukuKe. Pola ditemukan sekali, lalu dipakai ulang berkali-kali.
Kesalahan umum
- Memecah terlalu sedikit. "Persiapan" dan "pelaksanaan" masih terlalu besar. Pecah lagi sampai setiap tugas jelas siapa mengerjakan apa.
- Menebak pola dari terlalu sedikit data. Dua angka belum cukup untuk yakin. Selalu cek rumusmu pada beberapa suku.
- Salah rumus karena lupa titik awal. Selisih 3 tidak otomatis berarti 3n. Periksa suku pertama untuk menentukan penyesuaiannya.
Rangkuman
- CT punya empat pilar: dekomposisi, pengenalan pola, abstraksi, dan algoritma, yang saling melengkapi dan tidak harus berurutan.
- Dekomposisi memecah masalah besar menjadi bagian kecil sehingga mudah dikerjakan, dibagi, dan diperiksa.
- Dalam kode, dekomposisi berwujud beberapa fungsi kecil yang digabungkan.
- Pengenalan pola mencari keteraturan agar solusi bisa dipakai ulang, misalnya rumus 3n − 1 untuk barisan 2, 5, 8, 11.
- Selalu uji pola yang kamu temukan pada beberapa contoh sebelum memakainya.
Slide 8 sampai 11 dari deck Computational Thinking: Berpikir Komputasional dari Nol. Penjelasan lengkapnya ada di mode Baca.

Selesaikan bab ini
- 1. Baca materi
- 2. Latihan kode (2)
- 3. Kuis (4 soal)
Latihan kode: Dekomposisi biaya pentas seni
Panitia pentas seni memecah perhitungan biaya menjadi bagian kecil. Lengkapi tiga fungsi:
biayaKonsumsi(porsi, hargaPerPorsi)mengembalikan porsi × harga per porsi.biayaDekorasi(jumlahAlat, hargaPerAlat)mengembalikan jumlah alat × harga per alat.totalBiaya(porsi, hargaPerPorsi, jumlahAlat, hargaPerAlat)mengembalikan jumlah kedua biaya. Panggil dua fungsi sebelumnya, jangan menghitung ulang.
Contoh: totalBiaya(100, 5000, 4, 25000) menghasilkan 500000 + 100000 = 600000.
Latihan kode: Pola barisan 4, 7, 10, 13
Barisan 4, 7, 10, 13, ... selalu bertambah 3.
- Temukan rumus suku ke-n, lalu tulis di
sukuKe(n). Petunjuk: mulai dari 3n, lalu sesuaikan dengan suku pertama. barisan(jumlah)mengembalikan array berisi suku ke-1 sampai suku ke-jumlah. Pakai perulanganfordanpush, serta panggilsukuKe.
Contoh: sukuKe(5) menghasilkan 16, dan barisan(4) menghasilkan [4, 7, 10, 13].
Cek pemahaman
1Panitia memecah "pentas seni" menjadi acara, konsumsi, dekorasi, dan publikasi. Pilar CT apa yang dipakai?
2Berapa suku berikutnya dari barisan 2, 5, 8, 11?
3Keempat pilar CT harus selalu dipakai berurutan dari dekomposisi sampai algoritma.
4Apa hasil pemanggilan barisan(3)?
function sukuKe(n) { return 3 * n - 1; } function barisan(jumlah) { const hasil = []; for (let n = 1; n <= jumlah; n++) { hasil.push(sukuKe(n)); } return hasil; } barisan(3);