# Nakafa Framework: LLM URL: /id/subject/university/bachelor/ai-ds/ai-programming/string-formatting Source: https://raw.githubusercontent.com/nakafaai/nakafa.com/refs/heads/main/packages/contents/subject/university/bachelor/ai-ds/ai-programming/string-formatting/id.mdx Output docs content for large language models. --- export const metadata = { title: "Pemformatan String", description: "Pelajari teknik pemformatan string Python dengan format(), f-strings, alignment, precision control, dan error handling. Panduan lengkap dengan contoh praktis.", authors: [{ name: "Nabil Akbarazzima Fatih" }], date: "09/17/2025", subject: "Pemrograman AI", }; ## Konsep Dasar dan Width Control Pemformatan string mengatur tampilan data dalam program Python. Bayangkan menyusun data dalam tabel yang rapi, setiap kolom memiliki lebar konsisten. Python menyediakan metode `format()` dan f-strings untuk mengontrol tampilan output. Sintaks dasar replacement field adalah `{name : width}`, dimana `name` menentukan argumen dan `width` mengatur lebar minimum output. Ketika width lebih kecil dari panjang string asli, Python tetap menampilkan string lengkap. ### Format Types untuk Sistem Bilangan | Format Type | Simbol | Contoh Input | Output | Kegunaan | |-------------|---------|--------------|--------|----------| | Desimal | `d` | `45` | `45` | Default untuk integer | | Biner | `b` | `45` | `101101` | Representasi bit | | Oktal | `o` | `45` | `55` | Sistem Unix | | Heksadesimal | `x/X` | `45` | `2d/2D` | Pemrograman tingkat rendah | ## Pengaturan Posisi dan Karakter Pengisi ### Opsi Alignment B["Pilihan Alignment"] B --> C["< (Left)"] B --> D["> (Right)"] B --> E["^ (Center)"] C --> F["Output:
'xxx '"] D --> G["Output:
' xxx'"] E --> H["Output:
' xxx '"] `} /> | Simbol | Nama | Behavior | Default untuk | |--------|------|----------|---------------| | `<` | Left | Teks di kiri, padding di kanan | String, objek | | `>` | Right | Teks di kanan, padding di kiri | Angka | | `^` | Center | Teks di tengah, padding merata | - | ### Karakter Pengisi dan Format Lanjutan Fill character menentukan karakter pengisi ruang kosong. Default menggunakan spasi, tapi bisa diganti dengan karakter apapun kecuali `{` dan `}`. 15}|'.format('xxx')) # Output: | xxx| print('|{0:^15}|'.format('xxx')) # Output: | xxx | # Custom fill characters print('|{0:-<15}|'.format('xxx')) # Output: |xxx------------| print('|{0:*>15}|'.format('xxx')) # Output: |************xxx| print('|{0:^^15}|'.format('xxx')) # Output: |^^^^^^xxx^^^^^^| # Decimal formatting x = 123.98 print('x = {0:12f}'.format(x)) # Output: x = 123.980000 print('x = {0:12e}'.format(x)) # Output: x = 1.239800e+02` } ]} /> ## Metode Referensi Argumen Python menyediakan tiga cara mereferensikan argumen dalam replacement fields, masing-masing dengan aturan berbeda. B["Metode Referensi Argumen"] B --> C["Numbered Fields
{0} {1} {2}"] B --> D["Keyword Fields
{name} {age}"] B --> E["Automatic Fields
{} {} {}"] C --> F["✓ Kontrol eksplisit
✓ Bisa diulang
✗ Harus sesuai jumlah"] D --> G["✓ Mudah dibaca
✓ Urutan fleksibel
✗ Nama harus cocok"] E --> H["✓ Sintaks sederhana
✓ Urutan berurutan
✗ Tidak bisa dicampur"] `} /> ### Perbandingan Metode Referensi | Metode | Sintaks | Kelebihan | Batasan | |--------|---------|-----------|---------| | Numbered | `{0}, {1}` | Kontrol eksplisit, bisa diulang | Harus sesuai jumlah argumen | | Keyword | `{name}, {age}` | Mudah dibaca, fleksibel | Nama harus cocok | | Automatic | `{}, {}` | Sintaks sederhana | Tidak bisa dicampur dengan numbered | ## Kontrol Presisi dan Spesifikasi Tanda ### Presisi untuk Angka Desimal Precision mengontrol jumlah digit desimal atau digit signifikan dalam tampilan angka. | Format Type | Precision Behavior | Contoh | |-------------|-------------------|--------| | `f/F` | Tempat desimal | `{:.2f}` → `123.99` | | `e/E` | Tempat desimal dalam eksponensial | `{:.2e}` → `1.24e+02` | | `g/G` | Digit signifikan | `{:.3g}` → `124` | ### Opsi Tanda B{"Pilihan Sign"} B --> C["+ (selalu tampilkan)"] B --> D["- (default)"] B --> E["spasi (untuk positif)"] C --> F["Output:
+100, -200"] D --> G["Output:
100, -200"] E --> H["Output:
100, -200"] `} /> | Simbol | Behavior | Contoh | |--------|----------|--------| | `+` | Selalu tampilkan tanda | `+100`, `-200` | | `-` | Hanya tanda negatif (default) | `100`, `-200` | | ` ` (spasi) | Spasi untuk positif | ` 100`, `-200` | ## F-Strings dan Template Dinamis ### F-Strings (Python 3.6+) F-strings menyediakan sintaks paling sederhana dengan evaluasi ekspresi langsung. Lebih cepat dan mudah dibaca dibandingkan `format()`. ### Template Format Dinamis Template format dapat menggunakan variabel untuk specification, berguna ketika format ditentukan secara dinamis. ### Pola Lengkap Format Specification B["Urutan Komponen"] B --> C[": (mulai)"] C --> D["fill (karakter pengisi)"] D --> E["align (posisi: < > ^)"] E --> F["sign (tanda: + - spasi)"] F --> G["width (lebar minimum)"] G --> H[".prec (presisi desimal)"] H --> I["type (tipe: d b o x f e g)"] J["Contoh Lengkap"] --> K["{nilai:*^+10.2f}"] K --> L["* = fill character
^ = center align
+ = always show sign
10 = width minimum
.2 = 2 decimal places
f = float type"] `} /> Format specification mengikuti pola `{name:fill align sign width .prec type}` dimana setiap komponen opsional dan memiliki fungsi spesifik untuk mengontrol tampilan output.