f-string — Cara Merangkai Teks
Ada tiga cara merangkai teks di Python, tapi hanya satu yang perlu kamu pakai. Pelajari f-string, abaikan sisanya.
Intisari
- Tambahkan
fsebelum tanda kutip, lalu tulis variabel di dalam kurung kurawal:f"Halo {nama}". - Tidak perlu
str()lagi — angka, desimal, apa pun, langsung bisa disisipkan. - Di dalam kurawal boleh ada hitungan:
f"Total {harga * jumlah}". - Format angka dengan titik dua:
{nilai:.2f}untuk dua desimal,{n:,}untuk pemisah ribuan. - Cara lama (
%dan.format()) masih ada di tutorial lama — kenali kalau ketemu, jangan dipakai.
Masalahnya dulu
Tanpa f-string, merangkai kalimat dari beberapa variabel terasa berantakan:
nama = "Budi"
umur = 20
print("Halo " + nama + ", umur kamu " + str(umur) + " tahun")
Harus rajin memberi spasi, harus ingat membungkus angka dengan str(), dan sulit dibaca. Dengan f-string:
print(f"Halo {nama}, umur kamu {umur} tahun")
Kalimatnya utuh, variabelnya kelihatan di posisinya, dan tidak ada konversi tipe.
Huruf f itu wajib. Kalau lupa, Python tidak error — ia hanya mencetak kurawalnya apa adanya:
Halo {nama}. Kalau outputmu terlihat begitu, itu penyebabnya.
Isi kurawal boleh berupa hitungan
harga = 25000
jumlah = 3
print(f"Total: {harga * jumlah}") # Total: 75000
print(f"Rata-rata: {(80 + 90) / 2}") # Rata-rata: 85.0
print(f"Nama pendek: {nama.upper()}") # Nama pendek: BUDI
Merapikan angka
Bagian setelah titik dua mengatur tampilan — ini yang membedakan output amatir dan output rapi:
nilai = 3.14159
print(f"{nilai:.2f}") # 3.14 dua angka di belakang koma
print(f"{nilai:.0f}") # 3 tanpa desimal
harga = 1250000
print(f"Rp {harga:,}") # Rp 1,250,000 pemisah ribuan
persen = 0.8567
print(f"{persen:.1%}") # 85.7% otomatis dikali 100
| Format | Hasil | Untuk apa |
|---|---|---|
{x:.2f} | 3.14 | Uang, rata-rata, ukuran |
{x:,} | 1,250,000 | Angka besar supaya terbaca |
{x:.1%} | 85.7% | Persentase |
{x:>8} | ␣␣␣␣Budi | Rata kanan, untuk tabel |
{x:<8} | Budi␣␣␣␣ | Rata kiri, untuk tabel |
Perataan itu berguna saat mencetak daftar supaya kolomnya lurus:
print(f"{'Barang':<12}{'Harga':>10}")
print(f"{'Buku':<12}{15000:>10,}")
print(f"{'Pensil':<12}{3500:>10,}")
Barang Harga
Buku 15,000
Pensil 3,500
Trik debug: = di dalam kurawal
total = 75000
print(f"{total=}") # total=75000
Mencetak nama variabel sekaligus isinya. Saat kamu sedang mencari tahu kenapa hasil hitungan salah,
ini jauh lebih cepat daripada menulis print("total:", total) berulang kali.
Cara lama — kenali, jangan pakai
# Kamu akan menemukan ini di tutorial lama:
"Halo %s, umur %d" % (nama, umur) # gaya lama sekali
"Halo {}, umur {}".format(nama, umur) # gaya menengah
# Yang kamu tulis:
f"Halo {nama}, umur {umur}"
Latihan: buat program kasir sederhana. Minta nama barang, harga, dan jumlah; lalu cetak struk rapi berisi baris barang, subtotal, PPN 11%, dan total akhir — semua angka dengan pemisah ribuan.
Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.