Dekomposisi: Memecah Masalah Besar Menjadi Sub-masalah

Updated on April 11, 2026

Gambaran besar dulu: apa sih dekomposisi itu?

Bayangin kamu disuruh makan seekor gajah. Mustahil kan, langsung dilahap sekaligus? Tapi kalau dipotong kecil-kecil, satu porsi hari ini, besok porsi berikutnya… lama-lama bisa habis juga.

Nah, dekomposisi itu persis kayak gitu. Artinya memecah satu masalah besar yang bikin kepala pusing menjadi potongan-potongan kecil yang bisa dikerjakan satu per satu — atau bahkan dikerjain bareng-bareng oleh tim berbeda secara bersamaan.

Di dunia IT, ini bukan cuma teori. Programmer profesional beneran kerja pakai cara ini setiap hari. Program besar seperti aplikasi Gojek itu bukan ditulis sekaligus oleh satu orang. Ada tim yang ngerjain bagian login, tim lain ngerjain peta, tim lain lagi ngerjain pembayaran — semuanya paralel.


Langkah-langkah dekomposisi

Mari kita praktik langsung pakai skenario: Pentas Seni Sekolah.

Langkah 1: Identifikasi masalah utama

Tuliskan dulu masalah besarnya dengan jelas:

“Kami harus menyelenggarakan Pentas Seni Sekolah yang sukses.”

Itu satu kalimat. Besar banget, abstrak, bikin bingung mulai dari mana.

Langkah 2: Pecah jadi sub-masalah level pertama

Tanya ke diri sendiri: “apa aja yang perlu ada supaya pentas seni ini bisa terjadi?”

  • Venue (tempat)
  • Jadwal
  • Penampil
  • Dekorasi
  • Konsumsi
  • Tiket
  • Sound system
  • Dokumentasi (foto/video)

Sekarang ada 8 sub-masalah. Masing-masing bisa ditangani oleh tim berbeda. Tim Venue tidak perlu nunggu Tim Tiket selesai dulu. Mereka bisa jalan paralel.

Langkah 3: Pecah lagi tiap sub-masalah

Ambil contoh satu: Tiket.

Kalau didiamkan, “tiket” itu masih terlalu besar. Pecah lagi:

  • Desain tiket (pilih warna, gambar, info yang dicantumkan)
  • Cetak tiket (pilih percetakan, tentukan jumlah)
  • Distribusi tiket (siapa yang jual, di mana, kapan mulai)
  • Pencatatan penjualan (catat uang masuk, sisa tiket)

Empat sub-tugas yang masing-masing jelas dan bisa dikerjakan. Kalau ada yang minta pertanggungjawaban nanti, gampang dicek: “Distribusi sudah sampai tahap mana?”

Langkah 4: Tentukan dependensi

Ini bagian yang sering dilupakan. Dependensi artinya: mana yang harus selesai dulu sebelum yang lain bisa mulai.

Contoh:

  • Tiket baru bisa dicetak kalau desainnya sudah jadi → berurutan (sequential)
  • Tim Dekorasi dan Tim Konsumsi bisa langsung jalan bersamaan → paralel (parallel)
  • Sound system harus dicek di venue → jadi Tim Sound System butuh info dari Tim Venue dulu

Kalau dependensi ini tidak dipetakan, bisa kacau. Misalnya, tiket sudah dicetak duluan tapi belum ada tanggal dan tempatnya karena venue belum fix. Itu pemborosan.

Langkah 5: Hubungkan ke IT

Di dunia pemrograman, dekomposisi berarti memecah satu program besar jadi fungsi atau modul yang lebih kecil.

Bayangkan program kasir di minimarket. Kalau semuanya ditulis jadi satu blok kode panjang, susah diperbaiki kalau ada yang error. Tapi kalau dipecah:

  • Fungsi hitungTotal() — tugasnya cuma ngitung total belanja
  • Fungsi prosesDiskon() — tugasnya cuma ngitung potongan harga
  • Fungsi cetakStruk() — tugasnya cuma ngeprint struk

Kalau struk salah format, cukup perbaiki cetakStruk() saja. Yang lain tidak perlu disentuh.


Latihan: dekomposisi “Membuat Website Sekolah”

Coba kerjakan ini. Tujuannya minimal 3 level kedalaman.

Level 1 (masalah utama):

Website Sekolah

Level 2 (sub-masalah):

Halaman Beranda | Halaman Profil Sekolah | Halaman Berita | Halaman Kontak | Sistem Login Admin

Level 3 (pecah salah satu, misal Halaman Berita):

Tampilan daftar berita | Halaman detail berita | Form input berita baru | Fitur hapus/edit berita

Level 4 (pecah lagi, misal Form input berita):

Field judul | Field isi | Upload gambar | Tombol simpan | Validasi form (cek kalau ada field kosong)

Nah, sampai level 4 ini sudah sangat konkret. Seorang programmer bisa langsung ngerjain “validasi form” tanpa perlu tau keseluruhan website dulu.


Jebakan umum yang sering terjadi

Ini yang sering bikin siswa (dan bahkan profesional) gagal:

Jebakan 1: Berhenti terlalu cepat. Sub-masalah “Konsumsi” itu masih terlalu besar. Kalau langsung diserahkan ke orang tanpa dipecah lagi, mereka bingung harus mulai dari mana. Pecah terus sampai tiap tugas bisa dikerjakan dalam hitungan jam atau hari, bukan minggu.

Jebakan 2: Lupa dependensi. Dikerjain semua serentak ternyata saling nunggu satu sama lain. Akibatnya lebih lambat dari kalau dikerjain berurutan sekalian.

Jebakan 3: Tidak ada koordinasi antar tim. Tim Dokumentasi tidak tahu rundown acara, jadinya telat datang dan ketinggalan momen pertama. Dekomposisi bukan berarti tiap tim kerja sendiri-sendiri tanpa komunikasi. Tetap perlu titik-titik koordinasi.


Kuis singkat

  1. Kamu diminta membuat aplikasi absensi kelas. Sebutkan minimal 4 sub-masalah hasil dekomposisi level pertama dari proyek ini.
  2. Dalam skenario Pentas Seni, mengapa Tim Sound System tidak bisa langsung jalan paralel dengan semua tim lainnya sejak awal?
  3. Apa perbedaan antara tugas yang dikerjakan “berurutan” (sequential) dan “paralel” (parallel)? Berikan satu contoh masing-masing dari kehidupan sehari-hari (bukan dari materi ini).

Next