Langsung ke konten

String Formatting dengan f-string di Python

f-string menyisipkan nilai ke dalam teks di Python. Artikel ini membahas cara memakai f-string, menaruh ekspresi, memformat angka, dan mengatur perataan.

Belajar Python Level Basic
Belajar Python Level Basic
Advertisement

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]:

SimbolArti
<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 :.2f untuk desimal.
  • Memakai , pada string — pemisah ribuan hanya untuk angka.
  • Kurung kurawal literal — untuk mencetak {, tulis {{.

Ringkasan

  • f-string dibuat dengan menambahkan huruf f di depan string
  • Ekspresi apa pun bisa diletakkan di dalam {}
  • :.2f membatasi jumlah desimal, :, memisahkan ribuan, :.1% menampilkan persen
  • Perataan diatur dengan <, >, dan ^ diikuti lebar kolom
  • 03d menambahkan 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.