Pemrograman

5 Tugas Kantor yang Bisa Diotomasi dengan Python

Menyalin data Excel, mengganti nama ratusan file, kirim email satu per satu. Pekerjaan berulang seperti ini bisa diserahkan ke Python. Ini contoh skrip dan caranya.

BukuPraktis · 06 Oktober 2026 · 6 menit baca

Berapa jam seminggu kamu habiskan untuk pekerjaan yang itu-itu saja? Menyalin angka dari satu file ke file lain, mengganti nama file satu per satu, atau mengirim email yang isinya hampir sama. Pekerjaan seperti ini membosankan, rawan salah ketik, dan cocok sekali diserahkan ke Python, bahkan kalau kamu belum pernah memprogram. Berikut lima tugas kantor yang paling mudah diotomasi, lengkap dengan contoh skripnya.

Mengganti nama banyak file sekaligus

Misalnya folder laporan berisi file bernama acak seperti Laporan Januari.xlsx dan laporan februari.XLSX. Skrip berikut merapikan semuanya menjadi huruf kecil, memakai tanda minus, dan diberi nomor urut:

from pathlib import Path

folder = Path("laporan")
file_excel = [f for f in sorted(folder.iterdir()) if f.suffix.lower() == ".xlsx"]

for nomor, file in enumerate(file_excel, start=1):
    nama_baru = f"{nomor:02d}-{file.stem.lower().replace(' ', '-')}.xlsx"
    file.rename(folder / nama_baru)
    print(f"{file.name}  ->  {nama_baru}")

Hasilnya:

Laporan Januari.xlsx  ->  01-laporan-januari.xlsx
laporan februari.XLSX  ->  02-laporan-februari.xlsx

File lain seperti catatan.txt tidak disentuh. Untuk dua file ini terasa sepele, tetapi untuk 300 file, kamu menghemat sekitar satu jam penuh.

Menggabungkan banyak file Excel

Laporan harian dari tiap cabang bisa digabung menjadi satu tabel rekap dengan pustaka pandas. Pasang dulu lewat terminal dengan pip install pandas openpyxl. Misalkan semua file cabang ada di folder cabang, dengan susunan kolom yang sama:

from pathlib import Path
import pandas as pd

semua = []
for file in sorted(Path("cabang").glob("*.xlsx")):
    tabel = pd.read_excel(file)
    tabel["cabang"] = file.stem   # nama file jadi kolom penanda
    semua.append(tabel)

rekap = pd.concat(semua, ignore_index=True)
rekap.to_excel("rekap.xlsx", index=False)
print(f"{len(semua)} file digabung, {len(rekap)} baris")

Skrip membaca setiap file, menambahkan kolom cabang agar kamu tahu asal tiap baris, lalu menulis semuanya ke satu file baru. Kalau ada file yang kolomnya berbeda, hasilnya memuat sel kosong, jadi periksa susunan kolom lebih dulu.

Membuat laporan otomatis

Daripada menghitung total penjualan per kota secara manual tiap minggu, Python bisa menghitung dan menyimpan hasilnya sebagai file Excel yang siap dikirim. Lanjutan dari tabel rekap di atas, dengan asumsi ada kolom kota dan omzet:

per_kota = rekap.groupby("kota")["omzet"].sum().sort_values(ascending=False)
per_kota.to_excel("omzet-per-kota.xlsx")
print(per_kota.map(lambda x: f"Rp{x:,.0f}".replace(",", ".")))

Misalkan hasilnya seperti ini:

kota omzet
Jakarta Rp251.000
Surabaya Rp135.000
Bandung Rp93.000

Baris terakhir skrip mengubah angka mentah 251000 menjadi Rp251.000. Setelah skripnya jadi, laporan mingguan tinggal satu perintah: jalankan, tunggu beberapa detik, kirim.

Ingin lebih dalam? Artikel ini baru membahas sebagian kecil. Di ebook Python Praktis untuk Otomasi, kamu akan mempelajari lebih jauh:

  • Dasar Python yang benar-benar dibutuhkan untuk otomasi
  • Merapikan folder dan mengganti nama ratusan file secara otomatis
  • Membaca, menghitung, dan membuat laporan Excel dengan openpyxl

Semua langkahnya disusun berurutan dan bisa langsung dipraktikkan. Lihat isi bukunya.

Mengirim email personal ke banyak orang

Punya daftar nama dan email di Excel? Python bisa mengirim email satu per satu dengan sapaan nama masing-masing, misalnya untuk pengingat pembayaran atau undangan acara. Pola dasarnya memakai modul bawaan smtplib dan email:

import smtplib
from email.message import EmailMessage

penerima = [("Sinta", "sinta@contoh.com"), ("Budi", "budi@contoh.com")]

with smtplib.SMTP_SSL("smtp.contoh.com", 465) as server:
    server.login("kamu@contoh.com", "kata-sandi-aplikasi")
    for nama, alamat in penerima:
        pesan = EmailMessage()
        pesan["Subject"] = "Pengingat rapat Senin"
        pesan["From"] = "kamu@contoh.com"
        pesan["To"] = alamat
        pesan.set_content(f"Halo {nama}, rapat dimulai pukul 09.00 ya.")
        server.send_message(pesan)

Alamat server dan kata sandi berbeda untuk tiap penyedia email, dan banyak penyedia mewajibkan kata sandi aplikasi khusus. Jangan menulis kata sandi langsung di skrip yang kamu bagikan. Kirim hanya ke orang yang memang perlu menerimanya.

Mengambil data dari halaman web

Harga produk, kurs, atau daftar lowongan yang kamu cek setiap hari bisa diambil otomatis dengan requests dan BeautifulSoup, lalu disimpan ke spreadsheet. Pastikan situs yang diambil datanya mengizinkan hal ini lewat aturan penggunaannya, dan beri jeda antarpermintaan supaya tidak membebani server. Struktur halaman web bisa berubah sewaktu-waktu, jadi skrip jenis ini perlu diperiksa berkala.

Contoh kasus: rekap penjualan toko online

Bayangkan kamu mengelola toko online yang mengunduh laporan pesanan dari marketplace setiap Senin dalam bentuk file Excel. Tanpa otomasi, kamu membuka satu per satu, menyalin ke file rekap, menghitung total per produk, lalu mengirim ringkasan ke rekan. Dengan Python, urutan itu menjadi satu skrip: baca semua file di folder unduhan, gabungkan, hitung total per produk, simpan hasilnya, lalu cetak ringkasan di layar.

Bandingkan waktunya. Jika cara manual memakan 45 menit dan skrip hanya 2 menit, kamu menghemat 43 menit tiap Senin. Dalam setahun (52 minggu) itu 2.236 menit, sekitar 37 jam.

Skrip yang sudah jalan bisa dijadwalkan agar berjalan sendiri. Di Windows kamu bisa memakai Task Scheduler, di Linux atau macOS memakai cron. Mulailah dengan menjalankan manual selama beberapa minggu sampai yakin hasilnya benar, baru setelah itu dijadwalkan.

Menilai tugas mana yang layak diotomasi

Tidak semua pekerjaan sepadan untuk diotomasi. Pakai tabel ini sebagai saringan awal:

Pertanyaan Layak diotomasi bila
Seberapa sering dikerjakan? Mingguan atau lebih sering
Apakah langkahnya selalu sama? Ya, tanpa banyak pengecualian
Apakah format datanya stabil? Ya, kolom dan nama file jarang berubah
Apa risikonya bila salah? Rendah, atau hasilnya mudah diperiksa

Untuk tugas yang dikerjakan seminggu sekali selama 30 menit, otomasi menghemat sekitar 26 jam setahun. Waktu menulis skripnya biasanya terbayar dalam satu-dua bulan.

Kebiasaan aman sebelum menjalankan skrip

Skrip yang mengubah atau menghapus file bisa merusak data kalau salah jalan. Biasakan tiga hal ini:

  1. Salin dulu folder kerjamu sebagai cadangan, terutama sebelum skrip penamaan ulang.
  2. Coba pada 2 atau 3 file contoh sebelum menjalankannya pada ratusan file.
  3. Cetak hasilnya dengan print agar kamu bisa memeriksa apa yang dikerjakan skrip, bukan sekadar percaya.

Kesalahan yang sering terjadi

  • Mengotomasi proses yang belum dipahami. Kerjakan manual dulu sampai alurnya jelas.
  • Menulis jalur file yang hanya cocok di komputermu. Pakai folder relatif seperti Path("laporan").
  • Tidak menangani file yang rusak atau kosong. Satu file bermasalah bisa menghentikan seluruh skrip.
  • Langsung mengirim email ke semua orang. Uji dulu ke alamatmu sendiri.

Mulai dari mana?

Pilih satu pekerjaan berulang yang paling menyita waktumu, lalu otomasi itu dulu. Kamu tidak perlu menguasai seluruh Python. Cukup dasar variabel, perulangan, dan cara membaca file, lalu langsung praktik pada masalah nyata di pekerjaanmu.

Kalau artikel ini membantu, langkah berikutnya ada di ebook Python Praktis untuk Otomasi.

Mau lebih lengkap?

Pelajari sampai tuntas di “Python Praktis untuk Otomasi”

Berapa jam seminggu yang kamu habiskan untuk menyalin data Excel, mengganti nama file satu per satu, atau mengirim email yang isinya hampir sama? Pekerjaan berulang seperti itu bis...

Rp49.000 Lihat isi buku
Cukup masuk akun, tanpa bayar

Ebook gratis untukmu

Baca juga

Artikel lainnya

Semua artikel