Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah membahas List Comprehension. Sekarang kita kembali ke teks dan mengolahnya lebih jauh.
Program hampir selalu berurusan dengan teks: nama pengguna, alamat, pesan, atau kalimat. Semuanya disimpan sebagai string. Kamu sudah memakai string sejak artikel pertama, sekarang saatnya memahami apa yang sebenarnya bisa dilakukan padanya.
Membuat String
String dibuat dengan tanda kutip. Python menerima kutip satu maupun kutip dua, dan hasilnya sama:
nama = "Budi"
sapaan = 'Halo'
Pilihan kutip berguna saat string berisi kutip di dalamnya:
kutip_dua = "Dia berkata 'halo'"
kutip_satu = 'Dia berkata "halo"'
Untuk string lebih dari satu baris, gunakan tiga kutip:
pesan = """Ini baris pertama
Ini baris kedua
Ini baris ketiga"""
print(pesan)
Tanda kutip satu dan dua bisa dipakai bergantian sesuai kenyamanan. Yang penting konsisten dalam satu proyek.
String Bersifat Imutabel
Berbeda dari list, string tidak bisa diubah setelah dibuat. Kamu tidak bisa mengganti satu karakternya:
nama = "Budi"
nama[0] = "b" # TypeError: 'str' object does not support item assignment
Kalau ingin mengubahnya, buat string baru dari string lama:
nama = "Budi"
nama = "b" + nama[1:]
print(nama) # budi
Mengakses Karakter dengan Indeks
Setiap karakter punya posisi yang disebut indeks, dimulai dari 0:
kata = "Python"
print(kata[0]) # P
print(kata[1]) # y
print(kata[5]) # n
Indeks negatif dihitung dari belakang:
print(kata[-1]) # n
print(kata[-2]) # o
Jumlah karakter dicek dengan len():
print(len(kata)) # 6
Kalau indeksnya di luar jangkauan, Python memberi IndexError.
Slicing String
Slicing mengambil sebagian string dengan rentang [mulai:selesai]. Karakter pada indeks selesai tidak ikut:
kata = "Python"
print(kata[0:3]) # Pyt
print(kata[:3]) # Pyt
print(kata[3:]) # hon
print(kata[:]) # Python
Slicing juga bisa memakai langkah ketiga. Contoh membalik string:
kata = "Python"
print(kata[::-1]) # nohtyP
Langkah -1 membuat Python membaca dari belakang. Trik membalik string ini sering muncul di soal latihan.
Concatenation
Concatenation adalah menggabungkan dua string dengan tanda +:
depan = "Halo"
belakang = "Dunia"
print(depan + " " + belakang) # Halo Dunia
Ingat, + hanya bisa menggabungkan sesama string. Mencampur string dengan angka memicu TypeError:
umur = 25
print("Umur: " + umur) # TypeError
print("Umur: " + str(umur)) # Umur: 25
Konversi dulu dengan str() bila perlu. Untuk menggabungkan banyak bagian, f-string biasanya lebih mudah dibaca.
Repetition
Tanda * mengulang string sebanyak yang diminta:
print("ha" * 3) # hahaha
print("-" * 20) # --------------------
Repetition sering dipakai untuk membuat garis pemisah di output:
print("LAPORAN")
print("=" * 30)
print("Total: Rp50000")
Escape Character
Beberapa karakter tidak bisa ditulis langsung di dalam string, misalnya tanda kutip atau baris baru. Untuk itu Python memakai escape character, yaitu tanda \ diikuti kode tertentu:
| Escape | Arti |
|---|---|
\n | Baris baru |
\t | Tab |
\\ | Karakter backslash |
\' | Kutip satu |
\" | Kutip dua |
Contoh pemakaiannya:
print("Baris pertama\nBaris kedua")
print("Nama:\tBudi")
print("Dia berkata \"halo\"")
print("Path: C:\\Users\\Budi")
Tanpa escape, tanda kutip di tengah string akan dianggap penutup dan memicu SyntaxError.
Contoh Program: Format Nama
Mari rapikan nama yang dimasukkan pengguna menjadi huruf kapital di awal setiap kata:
# format_nama.py
nama = input("Nama lengkap: ")
nama_rapi = nama.title()
inisial = ""
for kata in nama_rapi.split():
inisial += kata[0] + "."
print(f"Nama: {nama_rapi}")
print(f"Inisial: {inisial}")
print(f"Jumlah karakter: {len(nama)}")
Kalau pengguna mengetik budi santoso:
Nama lengkap: budi santoso
Nama: Budi Santoso
Inisial: B.S.
Jumlah karakter: 13
Program ini memakai title() dan split() yang akan dibahas di artikel berikutnya.
Kesalahan Umum Pemula
- Mencoba mengubah karakter string — string imutabel, memicu
TypeError. - Menggabungkan string dengan angka — konversi dulu dengan
str(). - Salah indeks — karakter pertama ada di indeks 0.
- Lupa escape pada tanda kutip — memicu
SyntaxError. - Menulis path Windows tanpa escape ganda —
"C:\Users"salah, gunakan"C:\\Users"atau raw stringr"C:\Users".
Ringkasan
- String dibuat dengan kutip satu, kutip dua, atau tiga kutip untuk banyak baris
- String bersifat imutabel, isinya tidak bisa diubah
- Karakter diakses dengan indeks dan slicing, sama seperti list
+menggabungkan string,*mengulangnya- Escape character
\n,\t, dan\\menuliskan karakter khusus - Konversi angka ke string dengan
str()sebelum digabungkan
Langkah Selanjutnya
Kamu sudah bisa membuat, mengakses, dan menggabungkan string. Tapi Python masih menyimpan banyak fungsi bawaan untuk mengolah teks, dari mengubah huruf sampai memecah kalimat.
Artikel selanjutnya membahas String Methods di Python, kumpulan method untuk membersihkan dan mengolah teks.
