Menguasai String Python: Pembuatan, Format, dan Manipulasi
String Python
Dalam tutorial ini Anda akan mempelajari cara membuat, memformat, memodifikasi, dan menghapus string di Python. Anda juga akan diperkenalkan dengan berbagai operasi dan fungsi string.
Apa Itu String di Python?
Sebuah string adalah sekuens karakter.
Sebuah karakter hanyalah sebuah simbol. Misalnya, bahasa Inggris memiliki 26 karakter.
Komputer tidak menangani karakter, mereka menangani angka (biner). Meskipun Anda mungkin melihat karakter di layar Anda, secara internal disimpan dan dimanipulasi sebagai kombinasi 0 dan 1.
Konversi karakter ke angka disebut encoding, dan proses sebaliknya disebut decoding. ASCII dan Unicode adalah beberapa encoding populer yang digunakan.
Di Python, sebuah string adalah sekuens karakter Unicode. Unicode diperkenalkan untuk menyertakan setiap karakter dalam semua bahasa dan membawa keseragaman dalam encoding. Anda dapat mempelajari Unicode dari Python Unicode.
Cara Membuat String di Python?
String dapat dibuat dengan menutup karakter di dalam kutip tunggal atau kutip ganda. Bahkan kutip tiga dapat digunakan di Python tetapi umumnya digunakan untuk merepresentasikan string multiline dan docstrings.
# defining strings in Python
# all of the following are equivalent
my_string = 'Hello'
print(my_string)
my_string = "Hello"
print(my_string)
my_string = '''Hello'''
print(my_string)
# triple quotes string can extend multiple lines
my_string = """Hello, welcome to the world of Python"""
print(my_string)
Saat Anda menjalankan program, keluaran akan menjadi:
Hello Hello Hello Hello, welcome to the world of Python
Cara Mengakses Karakter dalam String?
Kita dapat mengakses karakter individu menggunakan pengindeksan dan rentang karakter menggunakan slicing. Indeks dimulai dari 0. Mencoba mengakses karakter di luar rentang indeks akan menghasilkan IndexError. Indeks harus berupa bilangan bulat. Kita tidak dapat menggunakan float atau tipe lain, ini akan menghasilkan TypeError.
Python memungkinkan indeks negatif untuk sekuensnya.
Indeks -1 merujuk ke item terakhir, -2 ke item kedua dari akhir, dan seterusnya. Kita dapat mengakses rentang item dalam string dengan menggunakan operator slicing : (titik dua).
# Accessing string characters in Python
str = 'programiz'
print('str = ', str)
# first character
print('str[0] = ', str[0])
# last character
print('str[-1] = ', str[-1])
# slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])
# slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])
Saat kita menjalankan program di atas, kita mendapatkan keluaran berikut:
str = programiz str[0] = p str[-1] = z str[1:5] = rogr str[5:-2] = am
Jika kita mencoba mengakses indeks di luar rentang atau menggunakan angka selain bilangan bulat, kita akan mendapatkan kesalahan.
# index must be in range
>>> my_string[15]
... IndexError: string index out of range
# index must be an integer
>>> my_string[1.5]
... TypeError: string indices must be integers
Slicing dapat divisualisasikan dengan mempertimbangkan indeks berada di antara elemen seperti yang ditunjukkan di bawah.
Jika kita ingin mengakses rentang, kita perlu indeks yang akan memotong bagian dari string.
Cara Mengubah atau Menghapus String?
String bersifat imutable. Ini berarti elemen string tidak dapat diubah setelah ditetapkan. Kita cukup dapat menetapkan string yang berbeda ke nama yang sama.
>>> my_string = 'programiz'
>>> my_string[5] = 'a'
... TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
'Python'
Kita tidak dapat menghapus atau menghapus karakter dari string. Namun, menghapus string sepenuhnya mungkin menggunakan kata kunci del.
>>> del my_string[1]
... TypeError: 'str' object doesn't support item deletion
>>> del my_string
>>> my_string
... NameError: name 'my_string' is not defined
Operasi String Python
Ada banyak operasi yang dapat dilakukan dengan string yang menjadikannya salah satu tipe data yang paling banyak digunakan di Python.
Untuk mempelajari lebih lanjut tentang tipe data yang tersedia di Python kunjungi: Python Data Types
Penggabungan Dua atau Lebih String
Menggabungkan dua atau lebih string menjadi satu disebut concatenation.
Operator + melakukan ini di Python. Cukup menulis dua literal string bersama juga menggabungkan mereka.
Operator * dapat digunakan untuk mengulang string untuk jumlah kali tertentu.
Menulis dua literal string bersama juga menggabungkan mereka seperti operator +.
Jika kita ingin menggabungkan string di baris yang berbeda, kita dapat menggunakan kurung.
>>> # two string literals together
>>> 'Hello ''World!'
'Hello World!'
>>> # using parentheses
>>> s = ('Hello '
... 'World')
>>> s
'Hello World'
Melakukan Iterasi Melalui String
Kita dapat melakukan iterasi melalui string menggunakan loop for. Berikut adalah contoh untuk menghitung jumlah 'l' dalam sebuah string.
# Iterating through a string
count = 0
for letter in 'Hello World':
if(letter == 'l'):
count += 1
print(count, 'letters found')
Saat kita menjalankan program di atas, kita mendapatkan keluaran berikut:
3 letters found
Pengujian Keanggotaan String
Kita dapat menguji apakah substring ada dalam string atau tidak, menggunakan kata kunci in.
>>> 'a' in 'program'
True
>>> 'at' not in 'battle'
False
Fungsi Bawaan untuk Bekerja dengan Python
Berbagai fungsi bawaan yang bekerja dengan sekuens juga bekerja dengan string.
Beberapa yang umum digunakan adalah enumerate() dan len(). Fungsi enumerate() mengembalikan objek enumerate. Ini berisi indeks dan nilai dari semua item dalam string sebagai pasangan. Ini berguna untuk iterasi.
Sama seperti, len() mengembalikan panjang (jumlah karakter) dari string.
Jika kita ingin mencetak teks seperti He said, "What's there?", kita tidak dapat menggunakan kutip tunggal maupun kutip ganda. Ini akan menghasilkan SyntaxError karena teks itu sendiri mengandung kutip tunggal dan ganda.
Salah satu cara untuk mengatasi masalah ini adalah menggunakan kutip tiga. Alternatifnya, kita dapat menggunakan escape sequence.
Escape sequence dimulai dengan backslash dan diinterpretasikan secara berbeda. Jika kita menggunakan kutip tunggal untuk merepresentasikan string, semua kutip tunggal di dalam string harus di-escaped. Sama halnya dengan kutip ganda. Berikut cara melakukannya untuk merepresentasikan teks di atas.
Saat kita menjalankan program di atas, kita mendapatkan keluaran berikut:
He said, "What's there?" He said, "What's there?" He said, "What's there?"
Berikut adalah daftar semua escape sequence yang didukung Python.
Escape Sequence
Deskripsi
\newline
Backslash dan newline diabaikan
\\
Backslash
\'
Kutip tunggal
\"
Kutip ganda
\a
ASCII Bell
\b
ASCII Backspace
\f
ASCII Formfeed
\n
ASCII Linefeed
\r
ASCII Carriage Return
\t
ASCII Horizontal Tab
\v
ASCII Vertical Tab
\ooo
Karakter dengan nilai oktal ooo
\xHH
Karakter dengan nilai heksadesimal HH
Berikut beberapa contoh:
>>> print("C:\\Python32\\Lib")
C:\Python32\Lib
>>> print("This is printed\nin two lines")
This is printed in two lines
>>> print("This is \x48\x45\x58 representation")
This is HEX representation
Raw String untuk Mengabaikan Escape Sequence
Kadang-kadang kita mungkin ingin mengabaikan escape sequence di dalam string. Untuk melakukannya kita dapat menempatkan r atau R di depan string. Ini akan menyiratkan bahwa itu adalah raw string dan escape sequence apa pun di dalamnya akan diabaikan.
>>> print("This is \x61 \ngood example")
This is a good example
>>> print(r"This is \x61 \ngood example")
This is \x61 \ngood example
Metode format() untuk Memformat String
Metode format() yang tersedia dengan objek string sangat serbaguna dan kuat dalam memformat string. Format string mengandung kurung kurawal {} sebagai placeholder atau replacement field yang akan diganti.
Kita dapat menggunakan argumen posisi atau argumen kata kunci untuk menentukan urutan.
# Python string format() method
# default(implicit) order
default_order = "{}, {} and {}".format('John','Bill','Sean')
print('\n--- Default Order ---')
print(default_order)
# order using positional argument
positional_order = "{1}, {0} and {2}".format('John','Bill','Sean')
print('\n--- Positional Order ---')
print(positional_order)
# order using keyword argument
keyword_order = "{s}, {b} and {j}".format(j='John',b='Bill',s='Sean')
print('\n--- Keyword Order ---')
print(keyword_order)
Saat kita menjalankan program di atas, kita mendapatkan keluaran berikut:
--- Default Order --- John, Bill and Sean --- Positional Order --- Bill, John and Sean --- Keyword Order --- Sean, Bill and John
Metode format() dapat memiliki format specification opsional. Mereka dipisahkan dari nama field menggunakan titik dua. Misalnya, kita dapat rata kiri <, rata kanan > atau tengah ^ sebuah string dalam ruang yang diberikan.
Kita juga dapat memformat bilangan bulat sebagai biner, heksadesimal, dll. dan float dapat dibulatkan atau ditampilkan dalam format eksponen. Ada banyak formatting yang dapat Anda gunakan. Kunjungi di sini untuk semua formatting string yang tersedia dengan metode format().
>>> # formatting integers
>>> "Binary representation of {0} is {0:b}".format(12)
'Binary representation of 12 is 1100'
>>> # formatting floats
>>> "Exponent representation: {0:e}".format(1566.345)
'Exponent representation: 1.566345e+03'
>>> # round off
>>> "One third is: {0:.3f}".format(1/3)
'One third is: 0.333'
>>> # string alignment
>>> "|{:<10}|{:^10}|{:>10}|".format('butter','bread','ham')
'|butter | bread | ham|'
Old style formatting
Kita bahkan dapat memformat string seperti gaya sprintf() lama yang digunakan dalam bahasa pemrograman C. Kita menggunakan operator % untuk menyelesaikannya.
>>> x = 12.3456789
>>> print('The value of x is %3.2f' %x)
The value of x is 12.35
>>> print('The value of x is %3.4f' %x)
The value of x is 12.3457
Metode String Umum Python
Ada banyak metode yang tersedia dengan objek string. Metode format() yang kita sebutkan di atas adalah salah satunya. Beberapa metode yang umum digunakan adalah lower(), upper(), join(), split(), find(), replace() dll. Berikut adalah daftar lengkap semua metode bawaan untuk bekerja dengan string di Python.
>>> "PrOgRaMiZ".lower()
'programiz'
>>> "PrOgRaMiZ".upper()
'PROGRAMIZ'
>>> "This will split all words into a list".split()
['This', 'will', 'split', 'all', 'words', 'into', 'a', 'list']
>>> ' '.join(['This', 'will', 'join', 'all', 'words', 'into', 'a', 'string'])
'This will join all words into a string'
>>> 'Happy New Year'.find('ew')
7
>>> 'Happy New Year'.replace('Happy','Brilliant')
'Brilliant New Year'