Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Struktur Data & Algoritma

Pelajaran 4 dari 17

Rekursi dan bagi-kuasai

Misi: merapikan arsip folder bersarang

Setelah pelajaran ini kamu bisa menelusuri struktur folder bersarang secara rekursif untuk menghitung ukuran, mendaftar jalur berkas, dan mengukur kedalaman.

±17 menitDiperiksa 1 Okt 2026

Materi

Kantor pemasaran mewarisi satu cakram arsip yang foldernya bersarang tanpa aturan. Sebelum dipindahkan ke penyimpanan baru, tim perlu tahu tiga hal: berapa ukuran totalnya, berkas apa saja yang ada beserta jalurnya, dan seberapa dalam folder terdalamnya, karena layanan penyimpanan baru membatasi kedalaman folder.

Arsip itu dibaca sebagai dict. Setiap kunci adalah nama; nilainya bilangan bulat bila itu berkas (ukuran dalam KB), atau dict lain bila itu folder. Folder boleh kosong. Bentuk ini persis bentuk yang rekursif: isi sebuah folder adalah arsip yang lebih kecil. Ketiga latihan kode memakai arsip contoh yang sama supaya hasilnya bisa dicocokkan satu sama lain.

arsip = {
    "laporan.pdf": 120,
    "foto": {"a.jpg": 300, "lama": {"b.jpg": 50}},
    "kosong": {},
}

Untuk setiap latihan, tentukan dulu tiga hal sebelum menulis kode: apa jawaban untuk folder kosong (kasus dasar), apa yang dilakukan pada satu berkas, dan bagaimana hasil dari subfolder digabung dengan hasil di tingkat ini. Kedalaman dihitung sebagai banyaknya tingkat yang dilewati sampai berkas terdalam: berkas di akar berkedalaman 1, dan folder yang tidak berisi berkas sama sekali berkedalaman 0.

Latihan

0/4 lulus

Misi akhir modul: luluskan minimal 4 dari 4 tugas. Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 4 dari 4

total_ukuran berjalan benar pada arsip contoh, tetapi berhenti dengan RecursionError pada cakram aslinya yang hanya berisi 40 folder. Penyebab yang paling mungkin?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke