14. Bekerja dengan teks

Bab 12 mencakup alat string sehari-hari: menggabungkan dengan + dan f-string, panjang dengan len(), huruf besar dan kecil, mengulang, dan formatting. Bab ini menambahkan alat untuk melihat ke dalam sebuah string: memotongnya, mencari sesuatu di dalamnya, dan mengganti bagian darinya. Di Python, semuanya ini adalah method yang terpasang langsung pada objek string — tidak butuh library terpisah.

Slicing dengan s[i:j]

Python menggunakan slice notation untuk mengekstrak bagian dari sebuah string. Sintaksnya adalah s[start:stop], di mana start adalah indeks karakter pertama yang kamu inginkan dan stop adalah indeks setelah karakter terakhir:

print("hello"[0:3])   # hel
print("hello"[2:])    # llo   (from index 2 to the end)
print("hello"[-2:])   # lo    (last 2 characters)

Tiga hal yang perlu diperhatikan:

  • Indeks dimulai dari 0, bukan 1. Karakter pertama berada di indeks 0, kedua di 1, dan seterusnya.
  • Menghilangkan stop berarti "sampai akhir string".
  • Indeks negatif menghitung dari akhir: -1 adalah karakter terakhir, -2 adalah kedua dari akhir, dan seterusnya.

Seperti semua operasi string, slicing mengembalikan string baru dan membiarkan yang asli tidak berubah.

String Python menggunakan indeks berbasis 0. Jika kamu ingin karakter pertama, gunakan s[0], bukan s[1]. Meminta s[1] memberikan karakter kedua. Ini akan terasa aneh pada awalnya; lama-lama akan terasa alami.

Buka exercises/14/01-slice.py. Sebuah variable menyimpan sebuah kata. Menggunakan slicing, cetak hanya huruf pertamanya, lalu hanya huruf terakhirnya.

Mencari dengan in dan .find()

Cara paling sederhana untuk memeriksa apakah sebuah string mengandung sesuatu adalah operator in, yang mengembalikan True atau False:

print("world" in "hello world")   # True
print("z" in "hello world")       # False

Karena mengembalikan boolean, in secara alami berpasangan dengan if:

sentence = "the password is swordfish"
if "sword" in sentence:
    print("Found it.")
else:
    print("Not in there.")

Ketika kamu juga perlu tahu di mana kecocokannya, gunakan .find(sub). Ia mengembalikan indeks kemunculan pertama, atau -1 jika tidak ditemukan:

print("hello world".find("world"))   # 6
print("hello world".find("z"))        # -1

.find() Python mengembalikan -1 ketika tidak ada kecocokan, bukan None. Untuk menguji keberadaan, gunakan in — lebih jelas. Gunakan .find() ketika kamu butuh nomor posisinya.

Mengganti dengan .replace()

.replace(old, new) mengembalikan string baru dengan setiap kemunculan old diganti dengan new:

print("hello".replace("l", "L"))         # heLLo
print("a-b-c".replace("-", " "))         # a b c

String aslinya tidak berubah. Jika kamu ingin menyimpan hasilnya, simpan di variable:

message = "meet me at noon"
dashed = message.replace(" ", "-")
print(dashed)   # meet-me-at-noon

Method string lain yang berguna

String Python punya banyak method. Beberapa yang sering kamu pakai:

Method Fungsinya
s.strip() Hapus whitespace di awal dan akhir.
s.split() Pecah berdasarkan whitespace, kembalikan list kata-kata.
s.split(sep) Pecah berdasarkan separator tertentu.
s.startswith(t) True jika s dimulai dengan t.
s.endswith(t) True jika s diakhiri dengan t.
padded = "  hello  "
print(padded.strip())              # hello

words = "one two three".split()
print(words)                       # ['one', 'two', 'three']

parts = "a,b,c".split(",")
print(parts)                       # ['a', 'b', 'c']

Pekerjaan Rumah

File pekerjaan rumah ada di exercises/14/homework/.

Soal 1 — Inisial

Buka exercises/14/homework/01-initials.py. Dua variable menyimpan nama depan dan nama belakang. Menggunakan slicing (s[0]), cetak inisial orangnya, seperti K.R. untuk "Keiko Raharja".

Soal 2 — Mengandung

Buka exercises/14/homework/02-contains.py. Sebuah variable menyimpan sebuah kalimat. Gunakan operator in di dalam if untuk mencetak yes jika mengandung kata python, dan no jika tidak.

Soal 3 — Sensor

Buka exercises/14/homework/03-censor.py. Sebuah variable menyimpan pesan pendek. Gunakan .replace() untuk mengganti setiap spasi dengan tanda hubung -, lalu cetak.

Tantangan — Panjang kata terakhir

Buka exercises/14/homework/04-last-letter.py. Sebuah variable menyimpan sebuah kata. Menggunakan indeks negatif dalam slice, cetak tiga karakter terakhirnya, lalu cetak panjangnya dengan len(). Buat agar bekerja untuk kata apapun tanpa menghitung manual.

Buntu atau sudah selesai? Buka halaman solusi pekerjaan rumah.