String: Index, Slicing & Method
Mengolah teks: indexing, slicing, method string, dan f-string.
String = deretan karakter
s = "Python"
print(len(s)) # 6
print(s[0]) # P (index mulai dari 0)
print(s[-1]) # n (index negatif: dari belakang)
String bersifat immutable: tidak bisa diubah di tempat (s[0] = "p" → TypeError). Untuk "mengubah" kamu membuat string baru.
Slicing
Format: s[mulai:akhir:langkah] — index akhir tidak ikut.
s = "Belajar Python"
s[0:7] # "Belajar"
s[:7] # "Belajar" (mulai boleh kosong)
s[8:] # "Python" (akhir boleh kosong)
s[-6:] # "Python"
s[::2] # "BljrPto" (langkah 2)
s[::-1] # "nohtyP rajaleB" (dibalik)
Slicing tidak pernah error walau di luar jangkauan; hasilnya string kosong.
Method string yang sering dipakai
| Method | Fungsi | Contoh |
|---|---|---|
upper() / lower() / title() | Ubah huruf | "go".upper() → "GO" |
strip() | Buang spasi di tepi | " a ".strip() → "a" |
replace(a, b) | Ganti | "halo".replace("a","e") |
split(sep) | Pecah jadi list | "a,b".split(",") → ["a","b"] |
join(list) | Gabung list jadi string | "-".join(["a","b"]) → "a-b" |
find(sub) | Posisi pertama (-1 jika tidak ada) | "kata".find("t") → 2 |
startswith() / endswith() | Cek awalan/akhiran | |
count(sub) | Hitung kemunculan | "banana".count("a") → 3 |
isdigit() / isalpha() | Cek isi | "123".isdigit() |
Method tidak mengubah string asli; mereka mengembalikan string baru.
f-string: menyisipkan nilai
nama = "Dina"
umur = 20
print(f"{nama} berumur {umur} tahun")
print(f"Tahun depan {umur + 1}") # ekspresi boleh
print(f"Harga: {15000.5:,.2f}") # 15,000.50 (format angka)
print(f"{nama:>10}|") # rata kanan lebar 10
print(f"{umur=}") # umur=20 (Python 3.8+, untuk debugging)
Format umum: :.2f (2 desimal), :, (pemisah ribuan), :05d (nol di depan), :>10 / :<10 / :^10 (rata kanan/kiri/tengah).
String multi-baris dan escape
teks = """Baris 1
Baris 2"""
print("Dia berkata \"halo\"") # escape tanda kutip
print("Kolom1\tKolom2\nBaris baru")
print(r"C:\folder\baru") # raw string: backslash apa adanya
Memeriksa isi
"py" in "python" # True
"Python" == "python" # False (peka huruf besar/kecil)
"apel" < "jeruk" # True (urutan kamus)