Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah membahas String Methods. Sekarang kita tampilkan data dengan format yang rapi.
Sejauh ini kita sudah sering memakai f-string, tapi baru sebatas menyisipkan nilai. Padahal f-string bisa jauh lebih banyak: mengatur jumlah desimal, menambah nol di depan, sampai membuat kolom yang sejajar.
Apa itu f-string?
f-string adalah cara memformat string dengan menambahkan huruf f di depan tanda kutip. Ekspresi di dalam {} akan dihitung dan disisipkan ke dalam teks:
nama = "Budi"
umur = 25
print(f"Nama saya {nama}, umur {umur} tahun")
Output: Nama saya Budi, umur 25 tahun.
Huruf f wajib ada. Tanpa itu, {nama} akan tercetak apa adanya:
print("Nama saya {nama}") # Nama saya {nama}
Menyisipkan Ekspresi
Di dalam {} kamu tidak hanya bisa menaruh variabel, tapi juga ekspresi apa pun:
harga = 25000
jumlah = 3
print(f"Total: {harga * jumlah}") # Total: 75000
print(f"Nama panjang: {len('Budi')}") # Nama panjang: 4
print(f"Huruf besar: {'halo'.upper()}") # Huruf besar: HALO
Bahkan pemanggilan function dan operasi logika bisa diletakkan di sana:
nilai = 80
print(f"Status: {'Lulus' if nilai >= 75 else 'Tidak lulus'}")
Memformat Angka Desimal
Nilai float sering menampilkan banyak angka di belakang koma. Untuk membatasinya, gunakan :. diikuti jumlah desimal:
pi = 3.14159265
print(f"{pi:.2f}") # 3.14
print(f"{pi:.4f}") # 3.1416
print(f"{pi:.0f}") # 3
Format ini sering dipakai untuk nilai mata uang atau hasil perhitungan:
total = 55000
orang = 3
print(f"Tiap orang bayar: {total / orang:.2f}") # Tiap orang bayar: 18333.33
Memisahkan Ribuan
Untuk angka besar, tambahkan koma pada format agar ribuan dipisah:
harga = 1500000
print(f"Rp{harga:,}") # Rp1,500,000
Pemisah ini mengikuti aturan lokal dan sangat membantu keterbacaan angka.
Persentase
Nilai desimal bisa langsung ditampilkan sebagai persen:
benar = 45
total = 50
print(f"Akurasi: {benar / total:.1%}") # Akurasi: 90.0%
Python mengalikan otomatis dengan 100 dan menambahkan tanda persen.
Mengatur Perataan dan Padding
f-string bisa mengatur lebar kolom dan perataan dengan format :[perataan][lebar]:
| Simbol | Arti |
|---|---|
< | Rata kiri |
> | Rata kanan |
^ | Rata tengah |
nama = "Budi"
print(f"|{nama:<10}|") # |Budi |
print(f"|{nama:>10}|") # | Budi|
print(f"|{nama:^10}|") # | Budi |
Angka 10 adalah lebar kolom. Teks yang lebih pendek akan diisi spasi.
Padding juga bisa memakai karakter lain, misalnya nol untuk angka:
nomor = 7
print(f"{nomor:03d}") # 007
Format 03d berarti lebar 3 digit, diisi nol di depan. Ini berguna untuk membuat nomor urut berformat tetap.
Contoh Program: Struk Belanja
Mari gabungkan semuanya untuk membuat struk yang rapi:
# struk_belanja.py
belanjaan = [
("Apel", 15000, 2),
("Jeruk", 12000, 3),
("Mangga", 20000, 1),
]
print("=" * 40)
print(f"{'STRUK BELANJA':^40}")
print("=" * 40)
print(f"{'Item':<15}{'Harga':>10}{'Qty':>5}{'Total':>10}")
print("-" * 40)
grand_total = 0
for nama, harga, qty in belanjaan:
subtotal = harga * qty
grand_total += subtotal
print(f"{nama:<15}{harga:>10,}{qty:>5}{subtotal:>10,}")
print("-" * 40)
print(f"{'Total':<30}{grand_total:>10,}")
print("=" * 40)
Output:
========================================
STRUK BELANJA
========================================
Item Harga Qty Total
----------------------------------------
Apel 15,000 2 30,000
Jeruk 12,000 3 36,000
Mangga 20,000 1 20,000
----------------------------------------
Total 86,000
========================================
Perhatikan f"{'Item':<15}". String literal pun bisa diberi format perataan. Kolom angka memakai > agar rata kanan dan mudah dibandingkan.
Kesalahan Umum Pemula
- Lupa huruf
f—{nama}tercetak apa adanya. - Kutip bertabrakan —
f"{"halo"}"error di Python lama; gunakan kutip berbeda:f'{"halo"}'. - Salah urutan format — lebar dan jenis tipe harus sesuai, misalnya
:.2funtuk desimal. - Memakai
,pada string — pemisah ribuan hanya untuk angka. - Kurung kurawal literal — untuk mencetak
{, tulis{{.
Ringkasan
- f-string dibuat dengan menambahkan huruf
fdi depan string - Ekspresi apa pun bisa diletakkan di dalam
{} :.2fmembatasi jumlah desimal,:,memisahkan ribuan,:.1%menampilkan persen- Perataan diatur dengan
<,>, dan^diikuti lebar kolom 03dmenambahkan nol di depan angka- f-string paling praktis untuk menyusun output yang rapi
Langkah Selanjutnya
Kamu sudah menguasai struktur data dan pengolahan teks. Program yang kamu tulis mulai panjang, dan menyalin kode yang sama berkali-kali jadi tidak nyaman.
Artikel selanjutnya membahas Membuat dan Memanggil Function di Python, cara membungkus kode yang sering dipakai agar bisa dipanggil berulang kali.
