Dalam pengolahan teks sehari-hari, kita hampir selalu melakukan pekerjaan yang sama: membersihkan spasi berlebih dari input pengguna, mengganti kata tertentu, atau memeriksa awalan dan akhiran sebuah teks. Python membundel pekerjaan-pekerjaan tersebut menjadi method — function yang melekat pada tipe str dan dipanggil dengan sintaks teks.nama_method(). Chapter ini membedah method-method yang paling sering dipakai di dunia nyata, mulai dari upper() sampai count().
Mengubah Kapitalisasi dan Membersihkan Spasi #
Tiga method pertama bekerja pada bentuk huruf: upper() mengubah ke huruf besar, lower() ke huruf kecil, dan title() mengkapitalkan setiap awal kata. Method keempat, strip(), memotong spasi (dan karakter whitespace lain) di awal dan akhir string tanpa menyentuh spasi di tengah:
nama = "budi santoso"
print(nama.upper())
print(nama.lower())
print(nama.title())
spasi = " budi "
print(f"[{spasi}]")
print(f"[{spasi.strip()}]")Output yang Dihasilkan:
BUDI SANTOSO
budi santoso
Budi Santoso
[ budi ]
[budi]Tanda kurung siku pada output sengaja dipakai sebagai penanda batas string sehingga spasi yang dipangkas terlihat jelas: " budi " berubah menjadi "budi" setelah strip() dipanggil. Kombinasi lower() dan strip() adalah langkah standar untuk menormalkan input pengguna sebelum dibandingkan.
Mencari, Menghitung, dan Mengganti #
Kelompok method kedua memeriksa isi string. Method replace() mengganti semua kemunculan sebuah potongan teks, startswith() dan endswith() memeriksa awalan serta akhiran, find() melaporkan posisi pertama sebuah teks ditemukan, dan count() menghitung jumlah kemunculan:
kalimat = "belajar python itu menyenangkan"
print(kalimat.replace("python", "pemrograman"))
print(kalimat.startswith("belajar"))
print(kalimat.endswith("menyenangkan"))
print(kalimat.find("python"))
print(kalimat.find("java"))
print(kalimat.count("a"))Output yang Dihasilkan:
belajar pemrograman itu menyenangkan
True
True
8
-1
4Mari kita bedah hasilnya:
- Baris 3 (
replace): setiap kemunculan"python"digantikan"pemrograman"; karena kata tersebut hanya muncul sekali, kalimat berubah di satu titik saja. - Baris 4-5 (
startswith/endswith): keduanya mengembalikan nilaibool, cocok untuk memeriksa ekstensi berkas atau protokol URL. - Baris 6 (
find("python")): posisi yang dilaporkan adalah8— index karakterppertama, dihitung dari0sama seperti aturan indexing. - Baris 7 (
find("java")): kata yang tidak ditemukan membuatfind()mengembalikan-1, bukan error. - Baris 8 (
count("a")): hurufamuncul4kali di seluruh kalimat.
Berikut ringkasan method yang telah dan akan sering kita pakai:
| Method | Tugas | Contoh pada "belajar" |
|---|---|---|
.upper() / .lower() | Ubah kapitalisasi | "BELAJAR" / "belajar" |
.title() | Kapital di tiap awal kata | "Belajar" |
.strip() | Potong whitespace di kedua ujung | "belajar" |
.replace(a, b) | Ganti semua a dengan b | "belajnet" untuk .replace("ar", "net") |
.startswith(x) / .endswith(x) | Periksa awalan/akhiran | False / True untuk "jar" |
.find(x) | Posisi pertama x, -1 jika absen | 2 untuk "la" |
.count(x) | Jumlah kemunculan x | 2 untuk "a" |
find() vs index() #
Method find() punya kembaran bernama index() dengan satu perbedaan perilaku saat teks tidak ditemukan. find() mengembalikan -1, sedangkan index() memicu ValueError:
>>> kalimat = "belajar python"
>>> kalimat.find("java")
-1
>>> kalimat.index("java")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not foundMerangkai Method (Chaining) #
Method str mengembalikan string baru, sehingga hasilnya bisa langsung dipakai memanggil method berikutnya dalam satu baris — teknik yang disebut method chaining. Pemanggilan dievaluasi dari kiri ke kanan:
nama_kotor = " bUdi sAntoso "
bersih = nama_kotor.strip().lower().title()
print(bersih)Output yang Dihasilkan:
Budi SantosoRantai strip().lower().title() bekerja tiga tahap: " bUdi sAntoso " dipangkas menjadi "bUdi sAntoso", dikecilkan menjadi "budi santoso", lalu tiap awal kata dikapitalkan menjadi "Budi Santoso". Setiap tahap menghasilkan string baru; tidak ada satu pun tahap yang mengubah variabel asal.
Method Tidak Pernah Mengubah String Asal #
Sifat immutable string berlaku penuh pada semua method. Memanggil method tanpa menangkap hasilnya sama saja dengan membuang hasil tersebut ke udara:
asli = "Belajar Python"
baru = asli.upper()
print(asli)
print(baru)Output yang Dihasilkan:
Belajar Python
BELAJAR PYTHONVariabel asli tetap berisi teks campuran setelah asli.upper() dipanggil, karena upper() membangun object string yang sama sekali baru.
Kita kini memiliki kosakata lengkap untuk membersihkan dan memeriksa teks. Bab berikutnya membahas cara menyusun string baru dari potongan nilai: string formatting.