‹ Daftar slidePertemuan 5: Text Files dan Penanganan Eksepsi
Program Studi Bisnis Digital • FEB UNDIP
Algoritma dan Pemrograman
Pertemuan 5 — Text Files dan Penanganan Eksepsi
Bagaimana program Anda menyimpan data ke luar memori sementara, dan bagaimana program tetap berjalan aman ketika terjadi kesalahan tak terduga.
RPS minggu 5 · 2x50 menit
Tujuan Pembelajaran Hari Ini
Empat capaian yang harus Anda kuasai setelah pertemuan ini, sejalan dengan Sub-CPMK minggu 5.
Sub-CPMK 5.1
01
Menjelaskan konsep file teks dan fungsi open() beserta mode akses r, w, dan a.
Sub-CPMK 5.2
02
Mempraktikkan cara menulis dan membaca file teks memakai Python, termasuk pola with open().
Sub-CPMK 5.3
03
Mengidentifikasi jenis eksepsi (exception) umum dan memahami mengapa program bisa berhenti mendadak.
Sub-CPMK 5.4
04
Menerapkan try-except-else-finally untuk membuat program yang tangguh terhadap kesalahan.
Mengapa Ini Penting bagi Bisnis Digital?
Bayangkan Anda mengelola sistem pencatatan transaksi untuk sebuah UMKM di Tokopedia. Dua masalah nyata akan segera Anda temui.
Masalah 1 — Data hilang. Setiap kali program Python ditutup, semua variabel di memori ikut hilang. Kalau daftar transaksi hanya disimpan di variabel, besok pagi semuanya kosong lagi. Anda butuh file teks agar data tersimpan permanen di penyimpanan komputer (disk).
Masalah 2 — Program berhenti mendadak. Kalau pelanggan mengetik huruf padahal diminta jumlah barang, atau file catatan stok belum ada, program Python tanpa penanganan akan langsung crash — berhenti total di tengah transaksi. Anda butuh penanganan eksepsi agar hal itu tidak terjadi.
Bagian 1 dari 3
Membaca & Menulis Text File
Bagaimana program Python menyimpan dan mengambil kembali data dari luar memori — ke dalam file teks di disk komputer Anda.
Fungsi open(): Pintu Masuk ke File
Python menyediakan fungsi bawaan open() untuk membuka file teks. Fungsi ini butuh nama file dan mode akses — cara Anda ingin memakai file itu.
Contoh: open("penjualan.txt", "r") membuka file penjualan.txt khusus untuk dibaca.
Pola Aman: Blok with open()
Python menyediakan pola context manager (pengelola konteks) via kata kunci with agar file otomatis tertutup setelah selesai dipakai — tanpa Anda harus mengetik close() manual.
withopen("penjualan.txt", "r") as file:
isi = file.read()
print(isi)
# file otomatis tertutup di sini
Menulis ke File: write() dan writelines()
Setelah file terbuka dalam mode "w" atau "a", Anda memakai write() untuk satu baris teks, atau writelines() untuk beberapa baris sekaligus dari sebuah list.
Langkah 1 — write() satu per satu
withopen("catatan.txt", "a") as f:
f.write("Kopi Susu - Rp18000\n")
f.write("Roti Bakar - Rp15000\n")
Tanda \n = pindah baris baru; kalau lupa, semua teks akan menyambung jadi satu baris.
Cocok kalau data Anda sudah berbentuk kumpulan (list) baris teks.
Tiga Cara Membaca File
Setelah file dibuka dalam mode "r", Python punya tiga metode baca dengan hasil yang berbeda.
read()
Satu String
Membaca seluruh isi file sekaligus jadi satu string panjang, termasuk semua tanda \n di dalamnya.
readline()
Satu Baris
Membaca satu baris saja setiap kali dipanggil — cocok dipakai berulang dalam loop while.
readlines()
List Baris
Membaca semua baris sekaligus, dikembalikan sebagai list — tiap elemen adalah satu baris teks.
Cara paling umum membaca baris demi baris: for baris in file: — Python otomatis mengiterasi file baris per baris tanpa perlu readlines() dulu.
Hitung dari Nol: Total Penjualan dari File
File penjualan.txt milik Kedai Kopi Anira berisi 4 baris angka transaksi (Rupiah). Program membaca tiap baris dan menjumlahkannya.
150000
200000
175000
300000
Langkah
Perhitungan
Nilai
Baca baris 1
total = 0 + 150.000
Rp 150.000
Baca baris 2
total = 150.000 + 200.000
Rp 350.000
Baca baris 3
total = 350.000 + 175.000
Rp 525.000
Baca baris 4
total = 525.000 + 300.000
Rp 825.000
TOTAL PENJUALAN
Rp 825.000
dari 4 transaksi tercatat
total = 0
withopen("penjualan.txt") as f:
for baris in f:
total += int(baris)
Bagian 2 dari 3
Eksepsi: Ketika Program Berhenti
Mengenali jenis-jenis kesalahan yang membuat program Python berhenti mendadak (crash) di tengah jalan.
Apa Itu Eksepsi (Exception)?
Definisi Kerja
Eksepsi (exception) adalah kesalahan yang terjadi saat program sedang berjalan (runtime), bukan kesalahan penulisan kode (syntax error) yang terdeteksi sebelum program dijalankan. Tanpa penanganan, eksepsi membuat program berhenti total (crash).
Jenis Eksepsi
Kapan Muncul
Contoh Kasus
FileNotFoundError
File yang dicari tidak ada
open("stok.txt") padahal file belum dibuat
ValueError
Nilai salah tipe/format
int("sepuluh") — teks bukan angka
ZeroDivisionError
Pembagian dengan nol
total / jumlah_item saat item = 0
KeyError
Kunci tidak ditemukan
Mencari data pelanggan dengan ID yang tak ada
Simulasi: Program Tanpa Penanganan Eksepsi
Bayangkan sistem kasir sederhana untuk toko online kecil menghitung harga per unit. Tanpa penanganan eksepsi, satu input salah bisa menghentikan seluruh program.
except ValueError:
print("Input harus berupa angka!")
Sekarang kasir mengetik "empat" → program mencetak pesan sopan, tidak crash.
Menangani Beberapa Jenis Eksepsi Sekaligus
Satu blok try boleh diikuti beberapa blok except, masing-masing untuk jenis eksepsi yang berbeda.
try:
jumlah_item = int(input("Jumlah item: "))
harga_satuan = total_harga / jumlah_item
print(f"Harga satuan: Rp{harga_satuan}")
except ValueError:
print("Input harus berupa angka, bukan huruf.")
except ZeroDivisionError:
print("Jumlah item tidak boleh nol.")
Kasir ketik "lima" → ditangkap oleh except ValueError.
Kasir ketik 0 → ditangkap oleh except ZeroDivisionError.
Melengkapi Pola: else dan finally
else — kalau TIDAK ada eksepsi
Kode di blok else hanya berjalan kalau blok tryberhasil tanpa eksepsi sama sekali — dipisah dari try agar lebih jelas mana kode "inti" dan mana kode "risiko".
finally — SELALU berjalan
Kode di blok finallyselalu dijalankan, baik terjadi eksepsi maupun tidak — cocok untuk membersihkan sumber daya, misalnya menutup file.
try:
f = open("stok.txt", "r")
except FileNotFoundError:
print("File stok.txt tidak ditemukan.")
else:
print("File berhasil dibuka.")
finally:
print("Pengecekan stok selesai.")
Hitung dari Nol: Rata-Rata Belanja dengan Penanganan Eksepsi
Kedai Kopi Anira mencatat 3 transaksi pelanggan di file belanja.txt: Rp120.000, Rp95.000, Rp130.000. Program menghitung rata-rata per transaksi.
Pola paling aman untuk bekerja dengan file: bungkus with open() di dalam try, agar file otomatis tertutup dan eksepsi tetap tertangkap.
try:
withopen("data_pelanggan.txt", "r") as f:
data = f.readlines()
print(f"{len(data)} baris berhasil dibaca")
except FileNotFoundError:
print("File data_pelanggan.txt belum ada di folder ini.")
Latihan Kelas: Sistem Pencatat Transaksi UMKM
Kerjakan berpasangan (10 menit), lalu satu pasangan akan diminta mendemonstrasikan hasilnya.
Instruksi
Buat file transaksi.txt memakai mode "a", tulis 3 transaksi contoh (nama produk & harga)
Baca kembali file itu, hitung total seluruh harga memakai perulangan
Bungkus proses pembacaan dengan try-except FileNotFoundError
Uji coba: hapus/ganti nama file lalu jalankan lagi — pastikan program tidak crash
Tantangan tambahan (opsional): Tambahkan penanganan ValueError untuk kasus harga yang tersimpan sebagai teks tidak valid, misalnya baris kosong di dalam file.
Ringkasan & Pertemuan Berikutnya
Yang Sudah Anda Kuasai
open() dengan mode r / w / a, dan pola aman with open()
Menulis file dengan write() dan writelines()
Membaca file dengan read() / readline() / readlines()
try-except-else-finally untuk menangkap eksepsi dengan tenang
Pertemuan 6 — Fungsi dalam Pemrograman. Kita akan belajar membungkus kode berulang (seperti perhitungan total & validasi input hari ini) ke dalam fungsi bernama, lengkap dengan parameter dan nilai kembali (return), agar kode Anda lebih rapi dan bisa dipakai berulang kali.