F-String Python
F-String (formatted string literals) adalah cara modern dan paling efisien untuk memformat string di Python. Diperkenalkan di Python 3.6, f-string menjadi standar de facto untuk string formatting karena sintaksnya yang bersih dan performa yang lebih baik.
Sintaks Dasar F-String
F-string dimulai dengan huruf f atau F sebelum tanda kutip, dan ekspresi Python ditulis di dalam kurung kurawal {}:
nama = "Budi"
umur = 25
# Menggunakan f-string
print(f"Halo, nama saya {nama} dan umur saya {umur} tahun")
# Output: Halo, nama saya Budi dan umur saya 25 tahun
# Bisa juga dengan huruf F kapital
print(F"Selamat datang, {nama}!")
Perbandingan dengan Metode Lama
Sebelum f-string, ada beberapa cara untuk memformat string:
nama = "Andi"
nilai = 95.5
# Cara lama 1: Concatenation (+)
print("Nama: " + nama + ", Nilai: " + str(nilai))
# Cara lama 2: % formatting
print("Nama: %s, Nilai: %.1f" % (nama, nilai))
# Cara lama 3: .format()
print("Nama: {}, Nilai: {}".format(nama, nilai))
# Cara modern: f-string (RECOMMENDED)
print(f"Nama: {nama}, Nilai: {nilai}")
F-string lebih mudah dibaca dan lebih cepat dieksekusi!
Ekspresi dalam F-String
F-string bisa mengevaluasi ekspresi Python apapun di dalam kurung kurawal:
# Operasi matematika
a = 10
b = 5
print(f"Penjumlahan: {a + b}") # Output: Penjumlahan: 15
print(f"Perkalian: {a * b}") # Output: Perkalian: 50
print(f"Pembagian: {a / b:.2f}") # Output: Pembagian: 2.00
# Memanggil method
nama = "python"
print(f"Uppercase: {nama.upper()}") # Output: Uppercase: PYTHON
print(f"Capitalize: {nama.capitalize()}") # Output: Capitalize: Python
# Memanggil fungsi
import math
print(f"Akar 16: {math.sqrt(16)}") # Output: Akar 16: 4.0
# List dan indexing
buah = ["apel", "jeruk", "mangga"]
print(f"Buah pertama: {buah[0]}") # Output: Buah pertama: apel
Format Angka
F-string memiliki format specifier yang powerful untuk mengatur tampilan angka:
# Format desimal
pi = 3.14159265359
print(f"Pi: {pi:.2f}") # Output: Pi: 3.14
print(f"Pi: {pi:.4f}") # Output: Pi: 3.1416
# Format ribuan dengan separator
populasi = 1500000
print(f"Populasi: {populasi:,}") # Output: Populasi: 1,500,000
print(f"Populasi: {populasi:_}") # Output: Populasi: 1_500_000
# Format persentase
rasio = 0.756
print(f"Persentase: {rasio:.1%}") # Output: Persentase: 75.6%
# Format lebar minimum
angka = 42
print(f"Angka: {angka:5}") # Output: Angka: 42 (lebar 5)
print(f"Angka: {angka:05}") # Output: Angka: 00042 (padding zero)
# Format binary, octal, hexadecimal
num = 255
print(f"Binary: {num:b}") # Output: Binary: 11111111
print(f"Octal: {num:o}") # Output: Octal: 377
print(f"Hex: {num:x}") # Output: Hex: ff
print(f"Hex (uppercase): {num:X}") # Output: Hex (uppercase): FF
Format Alignment (Perataan)
teks = "Python"
# Rata kiri (default)
print(f"{teks:<15}") # Output: "Python "
# Rata kanan
print(f"{teks:>15}") # Output: " Python"
# Rata tengah
print(f"{teks:^15}") # Output: " Python "
# Dengan karakter pengisi
print(f"{teks:*^15}") # Output: "****Python*****"
print(f"{teks:-<15}") # Output: "Python---------"
F-String dengan Dictionary
mahasiswa = {
"nama": "Siti",
"nim": "12345",
"ipk": 3.85
}
print(f"Nama: {mahasiswa['nama']}, IPK: {mahasiswa['ipk']}")
# Output: Nama: Siti, IPK: 3.85
Debugging dengan F-String (Python 3.8+)
Fitur = specifier sangat berguna untuk debugging:
x = 10
y = 20
# Cara lama
print(f"x = {x}, y = {y}")
# Cara baru dengan = (Python 3.8+)
print(f"{x=}, {y=}") # Output: x=10, y=20
print(f"{x + y=}") # Output: x + y=30
print(f"{x * 2=}") # Output: x * 2=20
Multiline F-String
nama = "Andi"
pekerjaan = "Developer"
kota = "Jakarta"
# Menggunakan triple quotes
bio = f"""
Profil Pengguna
===============
Nama : {nama}
Pekerjaan : {pekerjaan}
Kota : {kota}
"""
print(bio)
Escape Kurung Kurawal
Jika ingin menampilkan kurung kurawal literal, gunakan double bracket:
print(f"Ini kurung kurawal: {{}}") # Output: Ini kurung kurawal: {}
print(f"Set Python: {{{1, 2, 3}}}") # Output: Set Python: {1, 2, 3}
Contoh Praktis
# Membuat tabel sederhana
produk = [
("Laptop", 15000000),
("Mouse", 250000),
("Keyboard", 750000),
]
print(f"{'Produk':<15}{'Harga':>15}")
print("-" * 30)
for nama, harga in produk:
print(f"{nama:<15}{harga:>15,}")
# Output:
# Produk Harga
# ------------------------------
# Laptop 15,000,000
# Mouse 250,000
# Keyboard 750,000