Laporan Otomatis · Pelajaran 7 dari 8

Membuat laporan otomatis

9 menit baca · BelajarCode

Setelah data diolah, langkah terakhir adalah menyajikannya. Laporan yang konsisten setiap bulan lebih mudah dibaca atasan dan rekan kerja, dan program bisa membuatnya dalam sekejap.

Format angka rupiah

Python
1def rupiah(angka):2    return "Rp" + f"{angka:,.0f}".replace(",", ".")34for nilai in [5000, 1250000, 987654321.6]:5    print(rupiah(nilai))
Keluaran
Rp5.000
Rp1.250.000
Rp987.654.322

Tabel dengan kolom rata

Python
1data = [("Kopi susu", 27, 405000), ("Roti bakar", 12, 216000),2        ("Teh tarik", 8, 96000), ("Mi goreng", 4, 80000)]34def rupiah(angka):5    return "Rp" + f"{angka:,.0f}".replace(",", ".")67total_omzet = sum(o for _, _, o in data)8garis = "-" * 429print(f"{'Produk':<14}{'Porsi':>8}{'Omzet':>12}{'Bagian':>8}")10print(garis)11for produk, porsi, omzet in data:12    print(f"{produk:<14}{porsi:>8}{rupiah(omzet):>12}{omzet / total_omzet:>8.1%}")13print(garis)14print(f"{'Total':<14}{sum(p for _, p, _ in data):>8}{rupiah(total_omzet):>12}")
Keluaran
Produk           Porsi       Omzet  Bagian
------------------------------------------
Kopi susu           27   Rp405.000   50.8%
Roti bakar          12   Rp216.000   27.1%
Teh tarik            8    Rp96.000   12.0%
Mi goreng            4    Rp80.000   10.0%
------------------------------------------
Total               51   Rp797.000
  • <14 rata kiri selebar 14 karakter, >8 rata kanan selebar 8.
  • .1% mengubah pecahan menjadi persen dengan satu desimal. Kolom Bagian menunjukkan porsi setiap produk dari total omzet.

Templat laporan

Untuk laporan yang isinya selalu sama kecuali angka-angkanya, tulis templat sekali lalu isi dengan data.

Python
1TEMPLAT = """Yth. {penerima},23Berikut ringkasan penjualan {periode}:4- Total omzet: {omzet}5- Produk terlaris: {terlaris} ({porsi} porsi)6- Dibanding periode sebelumnya: {perubahan}78Salam,9{pengirim}"""1011def rupiah(angka):12    return "Rp" + f"{angka:,.0f}".replace(",", ".")1314omzet_lalu, omzet_ini = 720000, 79700015perubahan = (omzet_ini - omzet_lalu) / omzet_lalu16print(TEMPLAT.format(17    penerima="Ibu Ratna",18    periode="minggu pertama September 2026",19    omzet=rupiah(omzet_ini),20    terlaris="Kopi susu",21    porsi=27,22    perubahan=f"{'naik' if perubahan >= 0 else 'turun'} {abs(perubahan):.1%}",23    pengirim="Tim Kedai",24))
Keluaran
Yth. Ibu Ratna,

Berikut ringkasan penjualan minggu pertama September 2026:
- Total omzet: Rp797.000
- Produk terlaris: Kopi susu (27 porsi)
- Dibanding periode sebelumnya: naik 10.7%

Salam,
Tim Kedai

format mengganti setiap {nama} di templat dengan nilai yang diberikan.

Cek pemahaman

Apa hasil f"{0.256:.1%}"?

Latihan

Laporan absensi

Dari data absensi {"Andi": 20, "Bela": 18, "Citra": 22, "Dimas": 15} (jumlah hari hadir dari 22 hari kerja), buat laporan berisi nama, hari hadir, persentase kehadiran, dan keterangan "perlu dipantau" jika di bawah 80%.

Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.

Tandai pelajaran ini selesai

Masuk ke aplikasi untuk mencatat kemajuan, lalu lanjutkan ke pelajaran berikutnya dari perangkat mana pun.

Buka di aplikasi