Karakter Unicode dan Tanda Kutip dalam String
Dalam Python, string adalah sequence karakter Unicode yang bersifat immutable. Indexing dan slicing memakai posisi setiap karakter, sehingga perubahan urutan menghasilkan string yang berbeda.
String memiliki tiga karakteristik utama yang perlu kamu pahami:
- Urutan karakter: Setiap karakter memiliki posisi tetap.
- Ditulis sebagai literal: Tanda kutip tunggal atau ganda membatasi teks dalam kode sumber.
- Bertipe
str: Python menyimpan nilai yang dihasilkan sebagai string.
Python menghitung posisi berdasarkan code point Unicode, bukan selalu satu simbol yang terlihat. Misalnya, len("é") bernilai 1, tetapi len("e\u0301") bernilai 2: bentuk kedua memakai huruf e dan tanda aksen terpisah.
# Contoh string dengan kutip tunggal
>>> 'hello'
'hello'
# Contoh string dengan kutip ganda
>>> "hello"
'hello'
# Menampilkan string dengan print
>>> print("hello")
hello
# Menyimpan string dalam variabel
>>> text = 'hello'
>>> text
'hello'Prompt interaktif menampilkan representasi string, sehingga Python dapat memilih kutip tunggal atau ganda agar representasinya mudah dibaca. print() menulis nilai string itu sendiri tanpa tanda kutip pembatas literal.
String Kosong dan Fungsi Str
Python mendukung string kosong dan konversi tipe data lain menjadi string. String kosong tidak memuat karakter dan panjangnya nol, sedangkan str() membangun representasi teks dari nilai apa pun.
String Kosong
String kosong tidak memuat karakter dan panjangnya nol. Kamu dapat menulisnya dengan sepasang tanda kutip tanpa isi.
# Membuat string kosong
>>> teks_kosong = ""
>>> teks_kosong
''Fungsi Str
Fungsi str() menghasilkan representasi string yang mudah dibaca dari suatu nilai. Gunakan fungsi ini ketika teks perlu memuat angka atau nilai non-string lain.
# Mengubah angka menjadi string
>>> str(5)
'5'
# Mengubah float menjadi string
>>> xstr = str(3.4)
>>> print(xstr)
3.4String Multibaris
Python membedakan pemecahan kode sumber ke beberapa baris dari penyimpanan karakter baris baru di dalam string. Baris kode bisa dilipat tanpa menambah baris baru pada nilainya, sedangkan string dengan tiga tanda kutip menyimpan setiap baris baru.
Karakter Lanjutan Baris
Backslash di akhir baris fisik kode sumber melanjutkan statement secara eksplisit. Pada contoh ini, statement yang dilanjutkan memuat dua literal berdekatan yang digabung Python tanpa menambahkan karakter baris baru ke nilai string.
# Melanjutkan statement dengan backslash
>>> text = 'xxx' \
... 'yyy'
>>> text
'xxxyyy'
>>> print(text)
xxxyyyLanjutan Baris dengan Tanda Kurung
Di dalam tanda kurung, Python tetap membaca baris berikutnya sebagai bagian dari statement yang sama, jadi kita tidak perlu menulis backslash. Komentar atau spasi di akhir baris tidak memutus kelanjutan ini. Saat baris dipindahkan, tidak ada tanda kelanjutan yang perlu ikut dipindahkan.
# Melanjutkan statement di dalam tanda kurung
>>> text = (
... 'xxx'
... 'yyy'
... )
>>> text
'xxxyyy'
>>> print(text)
xxxyyyTriple Quotes
Literal dengan tiga tanda kutip dapat menyimpan baris baru yang sebenarnya. Baris baru tersebut menjadi karakter \n di dalam nilai string.
# String tiga kutip dengan baris baru sebenarnya
>>> text = '''xxx
... yyy
... zzz'''
>>> text
'xxx\nyyy\nzzz'
>>> print(text)
xxx
yyy
zzzTiga kutip ganda bekerja dengan cara yang sama. Pilih pembatas yang membuat teks paling mudah dibaca dan tidak perlu banyak escape.
Penggabungan String Literal
Python dapat menggabungkan literal string saat membaca kode sumber atau menggabungkan nilai string ketika program berjalan. Literal yang bersebelahan digabung tanpa operator, sedangkan nilai di dalam variabel memerlukan operator.
Penggabungan Literal Berdekatan
Python menggabungkan literal string yang bersebelahan saat membaca kode sumber. Cara singkat ini hanya berlaku untuk teks yang ditulis langsung sebagai literal.
# String literal berdekatan otomatis digabung
>>> 'hello ' 'world'
'hello world'
# Menggabungkan beberapa string sekaligus
>>> "hel" 'lo' " world" '!'
'hello world!'Operator Plus
Operator + menggabungkan dua nilai string saat program berjalan.
# Menggunakan operator + untuk penggabungan
>>> 'hello ' + 'world'
'hello world'Operator Perkalian
Operator * mengulang string sebanyak bilangan bulat yang diberikan.
# Mengulang string dengan operator *
>>> 3 * '+o+'
'+o++o++o+'Penggabungan String Variabel
Variabel menyimpan nilai. Gunakan operator seperti + untuk menggabungkan nilai tersebut. Literal yang bersebelahan sudah digabung saat kode sumber dibaca, sehingga "a" "b" berhasil sedangkan nama lain tidak.
Menggunakan Operator
Gunakan + untuk menggabungkan nilai string dan * bersama bilangan bulat untuk mengulangnya. Meletakkan nama variabel bersebelahan tanpa operator merupakan sintaks yang tidak valid.
# Mendefinisikan variabel string
>>> text1 = 'hello'
>>> text2 = 'world!'
>>> text3 = '+o+'
>>> a = 3
# Menggabungkan dengan operator +
>>> text1 + ' world!'
'hello world!'
>>> 'hello ' + text2
'hello world!'
>>> text1 + ' ' + text2
'hello world!'
# Mengulang dengan operator *
>>> a * text3
'+o++o++o+'
>>> text3 * a
'+o++o++o+'Kesalahan Umum
Bentuk berikut gagal ketika Python membaca kode karena tidak ada operator di antara variabel dan ekspresi berikutnya.
# KESALAHAN: Tidak dapat menggabung variabel tanpa operator
>>> text1 'world'
SyntaxError ...
>>> 'hello ' text2
SyntaxError ...
>>> text1 text2
SyntaxError ...