Permasalahan banjir adalah salah satu problem utama yang dialami sebagian besar kabupaten / kota di Indonesia, selain kemacetan dan tata ruang wilayah. Sehingga penanganan banjir, baik secara struktural maupun non struktural harus dilakukan secara simultan.
Penanggulangan banjir secara struktural meliputi kegiatan perbaikan sungai dan pembuatan tanggul banjir untuk mengurangi resiko banjir di sungai, pembuatan kanal banjir (floodway) untuk mengalirkan sebagian atau seluruh air, serta pengaturan sistem pengaliran untuk mengurangi debit puncak banjir dengan bangunan, seperti bendungan dan kolam retensi.
Pembangunan infrastruktur seperti; embung, rehabilitasi situ dan danau, kolam detensi, sistem polder, normalisasi sungai, sudetan (by pass) pada sungai yang berkelok (meandering) juga merupakan kegiatan penanggulangan banjir.
Pembangunan ABSAH (Aquifer Buatan Simpanan Air Hujan), sumur resapan, teknologi biopori, dan sistem drainase porous adalah bentuk upaya penanganan struktural di tingkat masyarakat atau kawasan permukiman.
Dalam upaya pengendalian banjir di suatu wilayah, membangun sebuah bendungan di bagian hulu sungai utama. Pembangunan bendungan ini biasanya dikombinasikan dengan pekerjaan normalisasi sungai dan sudetan sungai ke kanal banjir di bagian hilirnya.
Keberadaan bendungan mampu mereduksi luasan banjir pada area-area yang beresiko terdampak.
Pembangunan sebuah bendungan membutuhkan waktu konstruksi minimal 3 tahun melalui pendanaan tahun jamak (multiyears) dengan total biaya minimal 200 Milyar. Bendungan dengan tinggi di atas 50 meter bisa memiliki kapasitas tampung jutaan m3 dan luas area genangan 50-an hektare (tergantung bentuk topografi cekungan alami) mampu mereduksi banjir hingga 100-an m3/detik atau 30% banjir Q50.
Bendungan pada umumnya dibangun dengan sistem memiliki genangan atau waduk (WetDam). Saat ini baru ada 1 bendungan dengan sistem tanpa genangan (DryDam) yaitu Bendungan Ciawi di Jakarta yang berfungsi untuk pengendalian banjir wilayah DKI Jakarta.
Bendungan Ciawi fungsinya hanya ketika terjadi banjir, jika terjadi banjir sebagian debitnya ditahan sementara (temporary) di waduk sehingga tidak semuanya mengalir ke bawah, dan ketika kondisi tidak banjir air mengalir seperti biasa.
Selain berfungsi untuk mengendalikan banjir, bendungan juga dapat dijadikan sebagai tempat wisata atau kegiatan luar ruang yang lainnya seperti melepas lelah dan penat (healing).
Konstruksi tubuh bendungan bisa berupa urugan tanah, urugan batu, beton, dan/atau pasangan batu yang dibangun. Selain untuk menahan dan menampung air, bangunan ini juga dibangun untuk menahan dan menampung limbah tambang (tailing) atau menampung lumpur sehingga terbentuknya waduk.