Baik, kita akan lanjutkan pembahasan manipulasi string pada python untuk part ke-2.
Bagi kalian yang belum membaca bagian part-1, sangat saya sarankan untuk membacanya terlebih dahulu.
Pengertian Format String Pada Python
String formatting pada python adalah satu proses memasukkan atau menyisipkan variabel atau nilai ke dalam template string yang telah ditentukan [1].
Terdapat setidaknya 3 cara untuk melakukan hal ini. Beberapa di antaranya adalah cara jadul, dan beberapa di antaranya adalah cara yang lebih baru dan modern.
Kita akan coba satu-persatu.
Memformat String dengan Format Specifiers
Cara yang pertama (dan ini adalah cara yang cukup lama), adalah menggunakan format specifiers.
Format specifiers adalah simbol %s
yang berarti string.
Contoh:
template = 'Halo, saya %s dari %s'
print(template % ('Lendis Fabri', 'Indonesia'))
# output: Halo, saya Lendis Fabri dari Indonesia
Model cara seperti ini akan terlihat sangat “old-style” jika kita bandingkan dengan fungsi string.format()
pada python 3.
Memformat String dengan Fungsi format()
Untuk cara yang kedua adalah menggunakan fungsi string.format()
yang baru diperkenalkan pada python versi 3 [2].
Fungsi ini juga pernah kita pelajari pada pembahasan Macam-Macam Output Python.
Berikut ini contoh penggunaannya:
template = 'Halo, saya {nama} dari {asal}'
template_2 = 'Saya suka makan {} dan minum {}'
print(template.format(nama = 'Lendis Fabri', asal = 'Indonesia'))
# Halo, saya Lendis Fabri dari Indonesia
print(template_2.format('Nasi Goreng', 'air putih'))
# Saya suka makan Nasi Goreng dan minum air putih
Memformat String dengan String Interpolation / F-Strings
String interpolation atau F-Strings adalah fitur terbaru dari python 3.6 [3].
Fungsi ini memiliki tujuan yang sama dengan 2 cara sebelumnya. Hanya saja, ia memiliki sintaks yang jauh lebih modern dan lebih sederhana.
Hal ini akan terlihat sangat familiar bagi kalian yang pernah belajar javascript mau pun kotlin, karena secara sintaks penulisannya hampir sama dengan string template literal pada dua bahasa tersebut.
Berikut ini contohnya:
nama = 'Lendis Fabri'
asal = 'Indonesia'
print(f'Perkenalkan saya {nama} dari {asal} ๐')
Output:
Perkenalkan saya Lendis Fabri dari Indonesia ๐
Bagaimana? Jauh lebih manusiawi bukan sintaksnya? ๐
Memecah String Menjadi List dan Sebaliknya
Fungsi selanjutnya adalah memecah string menjadi list.
Hal ini bisa kita lakukan menggunakan fungsi string.split()
dan string.join()
.
alamat = 'Surabaya, Jawa Timur, Indonesia'
print(alamat.split())
# ['Surabaya,', 'Jawa', 'Timur,', 'Indonesia']
print(alamat.split(','))
# ['Surabaya', ' Jawa Timur', ' Indonesia']
print(alamat.split(', '))
# ['Surabaya', 'Jawa Timur', 'Indonesia']
print('โค๏ธ'.join(['aku', 'suka', 'python']))
# akuโค๏ธsukaโค๏ธpython
print('๐ฆ'.join(alamat.split(', ')))
# Surabaya๐ฆJawa Timur๐ฆIndonesia
Penjelasan
- Fungsi
string.split()
menerima satu parameter optional. Parameter ini akan dijadikan sebagai pembatas atau separator yang kemudian string akan dibagi menjadi list berdasarkan pembatas tersebut. - Jika fungsi
string.split()
tidak diberi parameter, maka defaultnya adalah spasi ( - Fungsi
string.join()
berfungsi untuk menggabungkan item list menjadi string utuh, dengan string awal sebagai glue atau perekat antar masing-masing item.
Mengubah String Menjadi Upper Case
Selanjutnya kita bisa memodifikasi string menjadi uppercase alias huruf besar semua dengan fungsi upper()
.
print('halo selamat pagi!'.upper())
print('Halo Selamat Siang!'.upper())
Output:
HALO SELAMAT PAGI!
HALO SELAMAT SIANG!
Ini hanya working untuk abjad yang memiliki variasi huruf besar.
salam = "ุงูุณูุงู
ุนูููู
"
print(salam)
print(salam.uppercase())
Output:
ุงูุณูุงู
ุนูููู
ุงูุณูุงู
ุนูููู
NB: bisa jadi teks arabnya kacau untuk di CLI
Mengubah String Menjadi Lower Case
Kebalikannya, kita bisa menggunakan fungsi string.lower()
untuk mengubah string menjadi huruf kecil semua.
Contoh:
print('APA KABAR?'.lower())
print('Lagi Dimana?'.lower())
Output:
apa kabar?
lagi dimana?
apa kabar? lagi dimana?
## Mengubah String Menjadi Title Case
Selanjutnya, untuk mengubah `teks string` menjadi `Teks String` alias **title case**, kita bisa menggunakan fungsi `string.title()`.
Perhatikan contoh berikut:
```py3
print('daun tidak pernah membenci angin'.title())
print('LASKAR PELANGI'.title())
Output:
Daun Tidak Pernah Membenci Angin
Laskar Pelangi
Mengubah String Menjadi Reverse Case
Yang terakhir, kita bisa membalikkan huruf kecil menjadi huruf besar, dan huruf besar menjadi huruf kecil dengan perintah string.reverse()
.
Perhatikan contoh:
print('Indonesia Adalah Negara Kepulauan'.swapcase())
print('aKu cInTa NeGeRiKu'.swapcase())
Output:
iNDONESIA aDALAH nEGARA kEPULAUAN
AkU CiNtA nEgErIkU
Mencari Kata Pada String
Pada python, mencari sebuah kata atau karakter dalam suatu string caranya sangat mudah. Kita bisa menggunakan fungsi string.find()
.
Fungsi tersebut akan mengembalikan indeks dari hasil pertama pencarian, dan akan mengembalikan -1 jika karakter yang dicari tidak ditemukan.
Contoh:
angka = '12345'
print('Index angka 3:', angka.find('3'))
print('Index angka 45:', angka.find('45'))
print('Index angka 35:', angka.find('35'))
Output:
Index angka 3: 2
Index angka 45: 3
Index angka 35: -1
Mereplace Kata Pada String
Dengan memanfaatkan fungsi string.replace()
, kita bisa mencari lalu menimpa sebuah karakter/teks dengan teks baru.
Perhatikan contoh berikut:
ibu_kota = 'Jakarta'
print(ibu_kota.replace('a', 'i'))
print(ibu_kota.replace('kar', '๐ฆ'))
Output:
Jikirti
Ja๐ฆta
Menghapus Karakter Tertentu Pada String
Tentu saja, jika kita memanggil fungsi replace()
pada suatu string, lalu kita timpa teks lama dengan string kosong (''
), seolah-olah kita telah menghapus karakter tersebut.
Contoh:
ibu_kota = 'Jakarta'
print(ibu_kota.replace('a', ''))
Output:
Jkrt
Menghitung Jumlah Karakter Yang Muncul
Terakhir tapi bukan yang paling akhir, kita bisa menghitung berapa kali sebuah teks muncul dalam suatu string.
Misal kita ingin menghitung berapa kali kata di
muncul pada sebuah paragraf, kita bisa menggunakan fungsi count()
pada string.
Perhatikan contoh berikut:
paragraf = 'Baru-baru ini telah ditemukan sebuah meteor di suatu sungai'
x = paragraf.count('di')
print(f'Kata "di" muncul sebanyak {x} kali')
Output:
Kata "di" muncul sebanyak 2 kali
Kesimpulan
Ada banyak sekali hal yang bisa kita lakukan untuk memanipulasi string pada python. Bahkan, cara-cara tersebut umumnya sangat mudah dilakukan. Berbeda dengan jika kita menggunakan bahasa pemrograman lain yang tidak memiliki fungsi manipulasi string sebanyak python.
Kode Program Lengkap
Kalian bisa mendapatkan kode program lengkap untuk seri tutorial ini pada link repository python-menengah.
Pertemuan Selanjutnya
Insyaallah, pada pertemuan selanjutnya kita akan membahas tentang modul pada python.
Stay tune, terima kasih banyak!
Referensi
[1] https://www.w3schools.com/python/ref_string_format.asp - diakses tanggal 17 Februari 2021
[2] https://realpython.com/python-string-formatting/ - diakses tanggal 17 Februari 2021
[3] https://dbader.org/blog/cool-new-features-in-python-3-6 - diakses tanggal 17 Februari 2021