Teks hadir di mana-mana: nama pengguna, pesan error, isi file, hingga respons dari sebuah API. Python menyimpan teks dalam tipe str yang kaya fitur. Chapter ini memperkenalkan hal yang paling mendasar — cara membuat string, operasi dasarnya, dan sifat immutable-nya — karena pembahasan string secara menyeluruh (slicing, method lengkap, dan formatting) akan kita dalami pada Section String dan Text Processing.

Membuat String #

String dibuat dengan membungkus teks dalam tanda kutip, baik kutip tunggal ('...') maupun kutip ganda ("..."). Keduanya setara; kita tinggal memilih yang paling nyaman sesuai isi teks:

python
nama = "Budi"
pesan = 'Selamat datang'
kutipan = "Budi berkata: 'Halo!'"

print(nama)
print(pesan)
print(kutipan)

Output yang Dihasilkan:

text
Budi
Selamat datang
Budi berkata: 'Halo!'

Pada baris ketiga, tanda kutip tunggal di dalam teks aman dipakai karena pembatas string-nya adalah kutip ganda. Jika teks perlu memuat kedua jenis kutip sekaligus, gunakan karakter escape seperti \' dan \".

Perlu ditegaskan: kutip tunggal dan kutip ganda menghasilkan nilai str yang persis sama — 'Budi' dan "Budi" adalah string identik, bukan dua tipe berbeda. Pemilihan kutip hanyalah urusan gaya. Pilih satu gaya lalu gunakan secara konsisten di seluruh kode agar mudah dibaca tim.

Untuk teks yang membentang beberapa baris, gunakan kutip tiga ("""...""" atau '''...'''). Interpreter Python menjaga pemenggalan baris apa adanya:

python
pesan = """Halo, Budi!
Selamat belajar Python."""
print(pesan)

Output yang Dihasilkan:

text
Halo, Budi!
Selamat belajar Python.

Operasi Dasar String #

Beberapa operasi paling sering dipakai sehari-hari:

python
nama = "Budi"
print(len(nama))
print("Halo, " + nama + "!")
print(nama * 3)
print(nama.upper())

Output yang Dihasilkan:

text
4
Halo, Budi!
BudiBudiBudi
BUDI

Mari kita telaah baris-baris kode di atas:

  1. Baris 2 (print(len(nama))): fungsi len() menghitung jumlah karakter string "Budi", hasilnya 4.
  2. Baris 3 (print("Halo, " + nama + "!")): operator + menggabungkan (concatenation) beberapa string menjadi satu.
  3. Baris 4 (print(nama * 3)): operator * mengulang string nama sebanyak tiga kali.
  4. Baris 5 (print(nama.upper())): method .upper() mengembalikan string baru dengan seluruh huruf kapital.

Setiap karakter string dapat dibaca lewat posisi indeksnya dalam kurung siku, dimulai dari 0 untuk karakter pertama. Indeks negatif membaca dari belakang, sehingga -1 adalah karakter terakhir:

python
nama = "Budi"
print(nama[0])
print(nama[-1])

Output yang Dihasilkan:

text
B
i

String Bersifat Immutable #

Inilah sifat yang paling membedakan str dari banyak tipe data lain: sekali dibuat, isi string tidak bisa diubah (immutable). Interpreter Python menolak penggantian karakter di posisi tertentu:

python
nama = "budi"
nama[0] = "B"
print(nama)

Output yang Dihasilkan:

text
TypeError: 'str' object does not support item assignment

Interpreter Python menghentikan program karena operasi penugasan nama[0] = "B" mencoba mengubah object string yang sudah jadi. Untuk “mengubah” teks, kita membangun string baru lalu mengikatkan ulang nama variabelnya:

python
nama = "budi"
nama = "B" + "udi"
print(nama)

Output yang Dihasilkan:

text
Budi

Perhatikan bahwa baris nama = "B" + "udi" membuat object string baru, lalu nama nama dipindahkan ke object itu — persis pola rebinding yang sudah kita kenal pada Chapter Variabel dan Assignment.