Ilustrasi: Kecepatan dan ekspresi dalam formatting Python.
Apa Itu "F" dalam Python?
Ketika kita berbicara tentang "f" pada Python, hampir pasti kita merujuk pada **f-strings**, atau yang secara resmi dikenal sebagai Formatted String Literals. Fitur ini diperkenalkan pada Python 3.6 dan dengan cepat menjadi metode yang paling disukai untuk menyematkan ekspresi Python ke dalam string. F-string menawarkan sintaksis yang jauh lebih ringkas, mudah dibaca, dan, yang paling penting, lebih cepat daripada metode pemformatan string sebelumnya seperti operator `%` atau metode `.format()`.
Inti dari f-string adalah awalan huruf 'f' (atau 'F') tepat sebelum tanda kutip pembuka string. Ini memberi tahu interpreter Python bahwa string tersebut mengandung variabel atau ekspresi yang harus dievaluasi pada saat runtime.
Keunggulan Utama F-Strings
1. Keterbacaan (Readability)
Ini adalah keuntungan terbesar. Dengan f-string, Anda dapat melihat variabel mana yang Anda masukkan langsung di tempatnya, tanpa harus mengacu pada indeks atau nama argumen di akhir baris kode. Ini mengurangi potensi kesalahan saat melakukan debugging.
Perbandingan sederhana:
# Metode lama (.format)
nama = "Budi"
umur = 30
pesan_lama = "Halo, nama saya {} dan umur saya {} tahun.".format(nama, umur)
# Metode F-String
nama = "Budi"
umur = 30
pesan_baru = f"Halo, nama saya {nama} dan umur saya {umur} tahun."
2. Kecepatan Eksekusi
F-strings diimplementasikan pada tingkat yang lebih rendah di interpreter CPython. Mereka umumnya jauh lebih cepat daripada metode pemformatan string lainnya karena evaluasi ekspresi terjadi secara langsung saat string dibuat, bukan melalui pemanggilan metode terpisah.
Menggunakan Ekspresi di Dalam F-String
Daya tarik utama dari f-string adalah kemampuannya untuk mengevaluasi hampir semua ekspresi Python yang valid di dalam kurung kurawal `{}`. Ini melampaui sekadar memasukkan variabel.
Aritmatika dan Fungsi
Anda dapat melakukan operasi matematika atau memanggil fungsi langsung di dalam string:
harga = 10000
ppn = 0.11
total_bayar = f"Total yang harus dibayar (termasuk PPN): Rp {harga * (1 + ppn):.0f}"
print(total_bayar)
# Output: Total yang harus dibayar (termasuk PPN): Rp 11100
Pemanggilan Metode
Anda juga dapat memanggil metode pada objek string atau objek lain di dalamnya:
kata = "python"
hasil = f"Kata dalam huruf kapital: {kata.upper()}"
print(hasil)
# Output: Kata dalam huruf kapital: PYTHON
Kontrol Pemformatan Tingkat Lanjut
F-strings juga mendukung spesifikasi format mini yang sama seperti yang digunakan pada metode `.format()`. Ini memungkinkan Anda mengontrol presisi angka desimal, perataan (alignment), dan lebar bidang.
Presisi Angka Desimal
Untuk angka floating-point, Anda dapat menentukan berapa banyak angka desimal yang ingin ditampilkan menggunakan sintaks titik dua `:` diikuti oleh spesifikasi format.
pi = 3.14159265
output_presisi = f"Nilai Pi dibulatkan: {pi:.2f}"
print(output_presisi)
# Output: Nilai Pi dibulatkan: 3.14
Perataan dan Pengisian (Padding)
Anda dapat memastikan string Anda memiliki lebar tertentu dan diratakan ke kiri (<), kanan (>), atau tengah (^). Karakter pengisi (fill character) dapat ditentukan sebelum simbol perataan.
angka = 42
format_rata_tengah = f"Angka: {angka:^10}" # Lebar 10, rata tengah
format_nol_depan = f"ID: {angka:05d}" # Lebar 5, diisi nol di depan
print(format_rata_tengah)
# Output: Angka: 42
print(format_nol_depan)
# Output: ID: 00042
Keterbatasan F-String
Meskipun sangat kuat, ada beberapa batasan yang perlu diperhatikan:
- Tidak Dapat Digunakan dalam Multi-line String Literal: Anda tidak dapat menggunakan backslash (`\`) untuk memformat string secara bertahap dalam satu literal string yang menggunakan tiga tanda kutip (`"""`).
- Evaluasi Ekspresi Tunggal: Anda tidak dapat menempatkan pernyataan (statements) seperti
if/elsemulti-baris atau perulanganfordi dalam kurung kurawal; hanya ekspresi yang dievaluasi hasilnya yang diizinkan. Namun, ekspresi kondisional satu baris (ternary operator)A if C else Bdidukung. - Karakter Khusus: Anda tidak dapat menggunakan kutip ganda di dalam kurung kurawal jika string luar menggunakan kutip ganda, dan sebaliknya, tanpa melakukan escape.
Kesimpulan
F-string (menggunakan awalan 'f') adalah evolusi signifikan dalam pemformatan string di Python. Mereka menggabungkan kecepatan eksekusi, keterbacaan kode yang luar biasa, dan kemampuan untuk menyertakan ekspresi Python yang kompleks secara langsung. Jika Anda menggunakan Python 3.6 ke atas, migrasi ke f-string hampir selalu merupakan langkah yang tepat untuk kode yang lebih bersih dan modern.