Pendamping Bab 6: String Dasar: Mengolah Teks. Gunakan nomor contoh dan latihan yang sama dengan buku.
Tujuan Belajar
- Mengakses karakter dan mengambil bagian string.
- Menggunakan metode string tanpa mengubah string asli.
- Menyusun pesan dengan f-string.
Persiapan
Kamu sudah memahami variabel dan tipe data. Contoh inti memakai nilai tetap; percabangan, perulangan, dan input dipelajari pada bab berikutnya.
Program dengan tombol Coba di IDE dapat dijalankan di browser. Untuk program lokal, unduh sumber, ekstrak ZIP, lalu ikuti README.txt.
Pembahasan
06-01 – Apa Itu String?
Kadang-kadang kamu ingin membuat string yang mengandung tanda kutip di dalamnya, seperti.
Coba di IDE Unduh Sumberteks = "Mico berkata 'Halo, apa kabar?'"
print(teks)
Hasil yang diharapkan:
Mico berkata 'Halo, apa kabar?'Coba ubah: Ganti isi teks dengan teks lain dan bandingkan hasilnya.
06-02 – Apa Itu String?
Kadang-kadang kamu ingin membuat string yang mengandung tanda kutip di dalamnya, seperti.
Coba di IDE Unduh Sumberteks = 'Mico berkata "Halo, apa kabar?"'
print(teks)
Hasil yang diharapkan:
Mico berkata "Halo, apa kabar?"Coba ubah: Ganti isi teks dengan teks lain dan bandingkan hasilnya.
06-03 – Menjalankan instruksi
Begitu juga ketika kamu ingin membuat baris baru, tab, atau menampilkan backslash (\) itu sendiri.
Coba di IDE Unduh Sumberprint("Saya suka Python.\nIni baris kedua.")
print('Dia berkata, "Python itu keren!"')
print("C:\\Users\\Andi\\Dokumen")
Hasil yang diharapkan:
Saya suka Python.
Ini baris kedua.
Dia berkata, "Python itu keren!"
C:\Users\Andi\DokumenCoba ubah: Ubah satu nilai pada contoh, lalu jelaskan pengaruhnya terhadap hasil.
06-04 – Indexing: Mengakses Karakter
Indeks di Python dimulai dari 0 untuk karakter pertama.
Coba di IDE Unduh Sumberteks = "Python"
# P y t h o n
# 0 1 2 3 4 5 (Indeks dari kiri ke kanan)
# -6-5-4-3-2-1 (Indeks dari kanan ke kiri)
print(teks[0]) # Output: P (Karakter pertama)
print(teks[2]) # Output: t
print(teks[-1]) # Output: n (Karakter terakhir)
print(teks[-3]) # Output: h
Hasil yang diharapkan:
P
t
n
hCoba ubah: Ganti isi teks dengan teks lain dan bandingkan hasilnya.
06-05 – Slicing: Memotong String
mengambil satu karakter, kamu juga bisa mengambil "potongan" atau "irisan" (slice) dari sebuah string. Bayangkan kamu memiliki sepotong roti panjang (string), dan slicing memungkinkanmu memotong beberapa bagian dari roti tersebut.
Coba di IDE Unduh Sumberteks_slice = "Pemrograman Python"
# Indeks: 012345678901234567
# Karakter: P e m r o g r a m a n P y t h o n
# Mengambil dari indeks 0 sampai sebelum 4
print(teks_slice[0:4]) # Output: Pemr
# Mengambil dari indeks 12 sampai sebelum 18
print(teks_slice[12:18]) # Output: Python
# Mengambil dari awal sampai sebelum 11
print(teks_slice[:11]) # Output: Pemrograman
# Mengambil dari indeks 12 sampai akhir
print(teks_slice[12:]) # Output: Python
# Mengambil seluruh string (membuat salinan)
print(teks_slice[:]) # Output: Pemrograman Python
Hasil yang diharapkan:
Pemr
Python
Pemrograman
Python
Pemrograman PythonCoba ubah: Ganti isi teks_slice dengan teks lain dan bandingkan hasilnya.
06-06 – Slicing: Memotong String
Instruksi dijalankan dari atas ke bawah; print menampilkan nilai saat instruksi itu dijalankan.
Coba di IDE Unduh Sumberangka_str = "0123456789"
# Output: 02468 (ambil karakter dengan step 2)
print(angka_str[0:10:2])
# Output: 0369 (ambil setiap karakter ke-3 dari seluruh string)
print(angka_str[::3])
print(angka_str[::-1]) # Output: 9876543210 (membalik string!)
Hasil yang diharapkan:
02468
0369
9876543210Coba ubah: Ganti isi angka_str dengan teks lain dan bandingkan hasilnya.
06-07 – String Bersifat Immutable (Tidak Dapat Diubah)
Jika kamu melakukan operasi yang terlihat seperti "mengubah" string, sebenarnya Python membuat string baru di memori.
Coba di IDE Unduh Sumber# Nama variabel diubah
salam_lama = "Halo"
# Membuat string baru "Jalo"
salam_baru = "J" + salam_lama[1:]
# Output: Halo (string asli tidak berubah)
print(salam_lama)
# Output: Jalo (ini adalah string yang baru)
print(salam_baru)
Hasil yang diharapkan:
Halo
JaloCoba ubah: Ganti isi salam_lama dengan teks lain dan bandingkan hasilnya.
06-08 – String Bersifat Immutable (Tidak Dapat Diubah)
String lama ("Halo" yang dirujuk salam_lama sebelum salam_lama = salam_baru jika ada assignment ulang) akan dihapus dari memori oleh Python jika tidak ada variabel lain yang merujuk padanya (proses ini disebut *garbage collection*).
Coba di IDE Unduh Sumber# Kurang efisien untuk banyak penggabungan
# Nama variabel diubah
hasil_loop = ""
# Nama variabel diubah
daftar_kata_loop = ["Ini", "adalah", "kalimat", "panjang"]
# Nama variabel diubah
for kata_loop in daftar_kata_loop:
# Setiap kali membuat string baru
hasil_loop += kata_loop + " "
print(f"Hasil cara lama: '{hasil_loop}'")
# Lebih efisien
hasil_efisien = " ".join(daftar_kata_loop)
print(f"Hasil cara join: '{hasil_efisien}'")
Hasil yang diharapkan:
Hasil cara lama: 'Ini adalah kalimat panjang '
Hasil cara join: 'Ini adalah kalimat panjang'Coba ubah: Ganti isi hasil_loop dengan teks lain dan bandingkan hasilnya.
06-09 – Menghitung Panjang String
Gunakan fungsi len() untuk mengetahui berapa banyak karakter (termasuk spasi dan tanda baca) dalam sebuah string.
Coba di IDE Unduh Sumberteks = "Belajar Python"
print(len(teks)) # Output: 14
Hasil yang diharapkan:
14Coba ubah: Ganti isi teks dengan teks lain dan bandingkan hasilnya.
06-10 – Perbandingan String
String di Python bisa dibandingkan menggunakan operator perbandingan seperti == (sama dengan), != (tidak sama dengan), < (kurang dari), > (lebih dari), <= (kurang dari atau sama dengan), dan >= (lebih dari atau sama dengan). Perbandingan dilakukan berdasarkan urutan karakter (lexicographical order), yang umumnya mengikuti urutan alfabet.
Coba di IDE Unduh Sumberprint("apel" == "apel") # Output: True
# 'a' datang sebelum 'b' dalam urutan alfabet
print("apel" < "banana") # Output: True
# Perbandingan case-sensitive
print("apel" == "Apel") # Output: False
# 'Z' memiliki nilai ASCII lebih kecil dari 'a'
print("Zebra" < "apel") # Output: True
Hasil yang diharapkan:
True
True
False
TrueCoba ubah: Ubah satu nilai pada contoh, lalu jelaskan pengaruhnya terhadap hasil.
06-11 – Perbandingan String
Jika ingin membandingkan isi teks tanpa memperhatikan besar kecil huruf, kamu bisa mengubah kedua string menjadi huruf kecil (atau besar) semua sebelum membandingkan.
Coba di IDE Unduh Sumberkata1 = "Python"
kata2 = "python"
print(kata1 == kata2) # Output: False
print(kata1.lower() == kata2.lower()) # Output: True
# kata2 sudah lowercase
print(kata1.lower() == kata2) # Output: True
Hasil yang diharapkan:
False
True
TrueCoba ubah: Ganti isi kata1 dengan teks lain dan bandingkan hasilnya.
06-12 – Menggabungkan String (Concatenation)
Kamu bisa "menjahit" atau menggabungkan dua atau lebih string menjadi satu menggunakan operator +. Bayangkan kamu memiliki beberapa utas benang (string) dan kamu menyambungnya menjadi satu utas yang lebih panjang.
Coba di IDE Unduh Sumberkata1 = "Selamat"
kata2 = "Pagi"
spasi = " "
sapaan = kata1 + spasi + kata2
print(sapaan) # Output: Selamat Pagi
Hasil yang diharapkan:
Selamat PagiCoba ubah: Ganti isi kata1 dengan teks lain dan bandingkan hasilnya.
06-13 – Menggabungkan String (Concatenation)
Penting: Kamu hanya bisa menggabungkan string dengan string. Jika ingin menggabungkan string dengan angka atau tipe data lain, kamu harus mengubahnya menjadi string terlebih dahulu menggunakan str().
Coba di IDE Unduh Sumbernama_concat = "Budi"
umur_concat = 10
# Ini akan Error! TypeError karena umur_concat bukan string:
# print(nama_concat + " berusia " + umur_concat + " tahun.")
# Harus dikonversi ke string dulu:
print(nama_concat + " berusia " + str(umur_concat) + " tahun.")
Hasil yang diharapkan:
Budi berusia 10 tahun.Coba ubah: Ganti isi nama_concat dengan teks lain dan bandingkan hasilnya.
06-14 – Mengulang String (Repetition)
Kamu bisa "memfotokopi" sebuah string berkali-kali menggunakan operator *.
Coba di IDE Unduh Sumbergaris = "-" * 20
print(garis) # Output: --------------------
# Nama variabel diubah
kata_ulang = "Echo! " * 3
# Output: Echo! Echo! Echo!
print(kata_ulang)
Hasil yang diharapkan:
--------------------
Echo! Echo! Echo!Coba ubah: Ubah satu nilai pada contoh, lalu jelaskan pengaruhnya terhadap hasil.
06-15 – Mengecek Keberadaan Substring (Membership)
Kamu bisa mengecek apakah sebuah karakter atau urutan karakter (substring) ada di dalam string lain menggunakan operator in (atau not in). Hasilnya adalah nilai Boolean (True atau False).
Coba di IDE Unduh Sumber# Nama variabel diubah
kalimat_cek = "Python itu seru dan mudah."
print("seru" in kalimat_cek) # Output: True
print("sulit" in kalimat_cek) # Output: False
# Output: True
print("Java" not in kalimat_cek)
Hasil yang diharapkan:
True
False
TrueCoba ubah: Ganti isi kalimat_cek dengan teks lain dan bandingkan hasilnya.
06-16 – Mengubah Kapitalisasi (Case Conversion)
Perhatikan pemakaian lower, upper, capitalize, title pada data contoh dan bandingkan hasilnya dengan nilai awal.
Coba di IDE Unduh Sumber# Nama variabel diubah
teks_kapital = "belajar Python Itu Menyenangkan"
# Output: belajar python itu menyenangkan (semua huruf kecil)
print(teks_kapital.lower())
# Output: BELAJAR PYTHON ITU MENYENANGKAN (semua huruf besar)
print(teks_kapital.upper())
# Output: Belajar python itu menyenangkan (huruf pertama kapital)
print(teks_kapital.capitalize())
# Output: Belajar Python Itu Menyenangkan
# (huruf pertama setiap kata kapital)
print(teks_kapital.title())
print("hELLo".swapcase()) # Output: HellO (menukar besar/kecil)
Hasil yang diharapkan:
belajar python itu menyenangkan
BELAJAR PYTHON ITU MENYENANGKAN
Belajar python itu menyenangkan
Belajar Python Itu Menyenangkan
HellOCoba ubah: Ganti isi teks_kapital dengan teks lain dan bandingkan hasilnya.
06-17 – Menghilangkan Spasi (Trimming)
Kadang kamu ingin menghapus spasi kosong di awal dan akhir string, terutama dari input pengguna atau teks hasil pembacaan file. Gunakan metode .strip(), .lstrip(), atau .rstrip().
Coba di IDE Unduh Sumberteks_spasi = " Halo dunia! "
# Output: 'Halo dunia!' (hapus kiri & kanan)
print(f"'{teks_spasi.strip()}'")
# Output: 'Halo dunia! ' (hapus kiri saja)
print(f"'{teks_spasi.lstrip()}'")
# Output: ' Halo dunia!' (hapus kanan saja)
print(f"'{teks_spasi.rstrip()}'")
Hasil yang diharapkan:
'Halo dunia!'
'Halo dunia! '
' Halo dunia!'Coba ubah: Ganti isi teks_spasi dengan teks lain dan bandingkan hasilnya.
06-18 – Mencari dan Mengganti (Find & Replace)
Perhatikan pemakaian find pada data contoh dan bandingkan hasilnya dengan nilai awal.
Coba di IDE Unduh Sumberkalimat_cari = "Saya suka programming, programming itu asyik!"
# Nama variabel diubah
posisi1 = kalimat_cari.find("programming")
# Output: 10
print(f"Kata 'programming' pertama ditemukan di indeks: {posisi1}")
posisi2 = kalimat_cari.find("Python")
# Output: -1 (karena tidak ada)
print(f"Kata 'Python' ditemukan di indeks: {posisi2}")
# Kamu juga bisa memberikan posisi awal untuk mencari:
# Cari setelah kemunculan pertama
posisi3 = kalimat_cari.find("programming", posisi1 + 1)
# Output: 23
pesan_posisi = "Kata 'programming' berikutnya "
pesan_posisi += f"ditemukan di indeks: {posisi3}"
print(pesan_posisi)
Hasil yang diharapkan:
Kata 'programming' pertama ditemukan di indeks: 10
Kata 'Python' ditemukan di indeks: -1
Kata 'programming' berikutnya ditemukan di indeks: 23Coba ubah: Ganti isi kalimat_cari dengan teks lain dan bandingkan hasilnya.
06-19 – Mencari dan Mengganti (Find & Replace)
Perhatikan pemakaian replace pada data contoh dan bandingkan hasilnya dengan nilai awal.
Coba di IDE Unduh Sumberpesan_replace = "Saya benci hari Senin."
# Nama variabel diubah
pesan_baru_replace = pesan_replace.replace("benci", "suka")
print(pesan_baru_replace) # Output: Saya suka hari Senin.
# Output: Saya benci hari Senin. (string asli tidak berubah)
print(pesan_replace)
# Kamu bisa membatasi jumlah penggantian:
teks_berulang_replace = "apel apel apel apel"
# Output: jeruk jeruk apel apel
print(teks_berulang_replace.replace("apel", "jeruk", 2))
Hasil yang diharapkan:
Saya suka hari Senin.
Saya benci hari Senin.
jeruk jeruk apel apelCoba ubah: Ganti isi pesan_replace dengan teks lain dan bandingkan hasilnya.
06-20 – Mencari dan Mengganti (Find & Replace)
ulan old dalam string dan menggantinya dengan new. Metode ini menghasilkan string baru (ingat, string immutable!).
Coba di IDE Unduh Sumber# Nama variabel diubah
cerita_count = "Satu satu aku sayang ibu, dua dua juga sayang ayah."
# Case-sensitive
jumlah_satu = cerita_count.count("satu")
jumlah_sayang = cerita_count.count("sayang")
print(f"'satu' muncul {jumlah_satu} kali.") # Output: 2
print(f"'sayang' muncul {jumlah_sayang} kali.") # Output: 2
Hasil yang diharapkan:
'satu' muncul 1 kali.
'sayang' muncul 2 kali.Coba ubah: Ganti isi cerita_count dengan teks lain dan bandingkan hasilnya.
06-21 – Memecah dan Menggabung String (Splitting & Joining)
Perhatikan pemakaian split pada data contoh dan bandingkan hasilnya dengan nilai awal.
Coba di IDE Unduh Sumberkalimat_data_split = "apel,jeruk,mangga,pisang"
# Pemisah adalah koma
daftar_buah_split = kalimat_data_split.split(",")
# Output: ['apel', 'jeruk', 'mangga', 'pisang']
print(daftar_buah_split)
# Nama variabel diubah
kalimat_kata_split = "Ini adalah contoh kalimat"
# Pemisah default adalah spasi
daftar_kata_split = kalimat_kata_split.split()
# Output: ['Ini', 'adalah', 'contoh', 'kalimat']
print(daftar_kata_split)
# Kamu bisa membatasi jumlah pemecahan
info_split = "Nama:Budi:Usia:25:Kota:Jakarta"
# Pecah hanya pada ':' pertama
data_nama_split = info_split.split(":", 1)
print(data_nama_split)
# Output: ['Nama', 'Budi:Usia:25:Kota:Jakarta']
Hasil yang diharapkan:
['apel', 'jeruk', 'mangga', 'pisang']
['Ini', 'adalah', 'contoh', 'kalimat']
['Nama', 'Budi:Usia:25:Kota:Jakarta']Coba ubah: Ganti isi kalimat_data_split dengan teks lain dan bandingkan hasilnya.
06-22 – Memecah dan Menggabung String (Splitting & Joining)
Perhatikan pemakaian join pada data contoh dan bandingkan hasilnya dengan nilai awal.
Coba di IDE Unduh Sumber# Nama variabel diubah
kata_kunci_join = ["belajar", "python", "itu", "asyik"]
# Gabungkan dengan spasi sebagai separator
kalimat_hasil_join = " ".join(kata_kunci_join)
print(kalimat_hasil_join) # Output: belajar python itu asyik
data_csv_join = ["ID001", "Produk A", "15000"]
# Gabungkan dengan titik koma
baris_csv_join = ";".join(data_csv_join)
print(baris_csv_join) # Output: ID001;Produk A;15000
Hasil yang diharapkan:
belajar python itu asyik
ID001;Produk A;15000Coba ubah: Ubah satu nilai pada kata_kunci_join dan periksa bagian hasil yang ikut berubah.
06-23 – Mengecek Kondisi String (Boolean Checks)
Perhatikan pemakaian startswith, endswith, isalnum, isdigit pada data contoh dan bandingkan hasilnya dengan nilai awal.
Coba di IDE Unduh Sumberprint("LaporanBulanan.pdf".startswith("Laporan")) # True
print("gambar.jpg".endswith(".png")) # False
print("Python3".isalnum()) # True
print("12345".isdigit()) # True
print("NamaSaya".isalpha()) # True
print("hanya spasi ".isspace()) # False
print(" ".isspace()) # True
print("Judul Buku Ini".istitle()) # True
Hasil yang diharapkan:
True
False
True
True
True
False
True
TrueCoba ubah: Ubah satu nilai pada contoh, lalu jelaskan pengaruhnya terhadap hasil.
06-24 – Format String (f-string): Cara Elegan Menyusun Teks
f-string diawali dengan huruf f atau F sebelum tanda kutip pembuka, dan kamu bisa menyisipkan ekspresi Python (variabel, perhitungan, pemanggilan fungsi) langsung di dalam string dengan mengapitnya dalam kurung kurawal {}.
Coba di IDE Unduh Sumbernama_f = "Siti"
umur_f = 22
pekerjaan_f = "Analyst Data"
# Menggunakan f-string untuk membuat kalimat lengkap
info_pribadi_f = f"Nama saya {nama_f}, "
info_pribadi_f += f"saya berusia {umur_f} tahun"
info_pribadi_f += f" dan bekerja sebagai {pekerjaan_f}."
print(info_pribadi_f)
# Output: Nama saya Siti, saya berusia 22 tahun
# dan bekerja sebagai Analyst Data.
print(f"Tahun depan, {nama_f} akan berusia {umur_f + 1} tahun.")
# Output: Tahun depan, Siti akan berusia 23 tahun.
Hasil yang diharapkan:
Nama saya Siti, saya berusia 22 tahun dan bekerja sebagai Analyst Data.
Tahun depan, Siti akan berusia 23 tahun.Coba ubah: Ganti isi nama_f dengan teks lain dan bandingkan hasilnya.
06-25 – Format Specifiers dalam f-string
Instruksi dijalankan dari atas ke bawah; print menampilkan nilai saat instruksi itu dijalankan.
Coba di IDE Unduh Sumberharga_barang_f = 45000.758
diskon_f = 0.15 # 15%
print(f"Harga asli: Rp{harga_barang_f}")
# Output: Harga asli: Rp45000.758
print(f"Harga asli (2 desimal): Rp{harga_barang_f:.2f}")
# Output: Harga asli (2 desimal): Rp45000.76 (dibulatkan)
nilai_ujian_f = 85
# Output: Nilai: 085 (total 3 digit, isi nol)
print(f"Nilai: {nilai_ujian_f:03d}")
nama_produk_f = "Buku Python"
jumlah_f = 5
print(f"{nama_produk_f:<20} | Jumlah: {jumlah_f:>3}")
# Output: Buku Python | Jumlah: 5
# (rata kiri 20 char) (rata kanan 3 char)
Hasil yang diharapkan:
Harga asli: Rp45000.758
Harga asli (2 desimal): Rp45000.76
Nilai: 085
Buku Python | Jumlah: 5Coba ubah: Ubah harga_barang_f dari 45000.758 menjadi 45001.758, lalu prediksi hasilnya.
Studi Kasus
06-26 – Merapikan label barang
strip dan title menghasilkan nama baru yang rapi. len menghitung karakter termasuk spasi di antara kata.
Coba di IDE Unduh Sumbernama_barang = " buku tulis "
harga = 7500
nama_rapi = nama_barang.strip().title()
print(f"{nama_rapi}: Rp {harga}")
print(f"Jumlah karakter nama: {len(nama_rapi)}")
Hasil yang diharapkan:
Buku Tulis: Rp 7500
Jumlah karakter nama: 10Coba ubah: Ganti nama barang dan amati perubahan jumlah karakternya.
Rangkuman
String adalah urutan karakter yang immutable. Indeks dimulai dari nol; batas akhir slicing tidak disertakan. Metode seperti strip dan upper menghasilkan string baru. f-string menyisipkan nilai ke dalam pesan.
Cek Pemahaman
Lima pertanyaan ini sama dengan pertanyaan di buku. Periksa jawaban di kuis untuk melihat skor dan pembahasan.
- Apa hasil "Python"[0]?
- Apa hasil "Python"[1:4]?
- Apa arti string immutable?
- Metode untuk menghapus spasi di kedua ujung teks adalah …
- Jika nama = "Ayu", hasil f"Halo, {nama}" adalah …
Latihan Mandiri
Latihan 06-L01 – Nama rapi
Dasar. Rapikan teks " ayu putri " menjadi "Ayu Putri".
Kerjakan di IDE Unduh LatihanHasil yang diharapkan:
Ayu Putri
Lihat Petunjuk
Gabungkan strip dan title.
Lihat Solusi
nama = " ayu putri "
print(nama.strip().title())
strip membersihkan ujung teks; title mengubah kapitalisasi tiap kata.
Coba Solusi di IDEUnduh SolusiLatihan 06-L02 – Dua potongan
Penerapan. Dari teks "PYTHON", cetak tiga karakter pertama lalu tiga karakter terakhir.
Kerjakan di IDE Unduh LatihanHasil yang diharapkan:
PYT
HON
Lihat Petunjuk
Gunakan slicing dengan batas akhir dan indeks negatif.
Lihat Solusi
teks = "PYTHON"
print(teks[:3])
print(teks[-3:])
Kedua operasi menghasilkan string baru.
Coba Solusi di IDEUnduh SolusiLatihan 06-L03 – Pesan belanja
Pengembangan. Gunakan f-string untuk menampilkan "3 buku: Rp 15000" dari jumlah 3 dan harga 5000.
Kerjakan di IDE Unduh LatihanHasil yang diharapkan:
3 buku: Rp 15000
Lihat Petunjuk
Ekspresi perkalian dapat ditulis di dalam kurung kurawal.
Lihat Solusi
jumlah = 3
harga = 5000
print(f"{jumlah} buku: Rp {jumlah * harga}")
f-string menggabungkan teks dan hasil perhitungan.
Coba Solusi di IDEUnduh SolusiPengembangan
Membandingkan dan Menyamakan Teks
Prasyarat: kerjakan setelah Bab 13.
Kegiatan pengembangan:
- Apakah
'semangka' > 'melon'akan menghasilkanTrueatauFalse? Jelaskan mengapa! - Bagaimana cara memeriksa apakah input pengguna (misalnya, jawaban
“YA”) sama dengan “ya”, “Ya”, atau “YA” tanpa menulis tiga kondisi
orterpisah?
Menata Judul Buku
Prasyarat: kerjakan setelah Bab 13.
Kegiatan pengembangan: Penata Judul Input pengguna seringkali tidak konsisten kapitalisasinya. Buatlah program kecil yang meminta nama buku dari pengguna, lalu cetak nama buku tersebut dalam format title case.
Membersihkan Input Kota
Prasyarat: kerjakan setelah Bab 13.
Kegiatan pengembangan: Pembersih Input Seringkali input dari pengguna memiliki spasi ekstra di awal atau akhir. Mintalah pengguna memasukkan nama kota, lalu bersihkan spasi ekstra tersebut sebelum menampilkannya kembali.
Memecah dan Menggabungkan Data Teks
Prasyarat: kerjakan setelah Bab 13.
Kegiatan pengembangan: Pengolah Data CSV Sederhana
Diberikan string CSV:
data_csv_tantangan = ("Nama,Usia,Kota\n" "Andi,25,Jakarta\n" "Budi,30,Bandung")Pecah string ini menjadi baris-baris, lalu setiap baris menjadi kolom-kolom.
Dari list berikut:
daftar_kata_join_tantangan = ['Hello', 'World', 'from', 'Python']Buatlah string
"Hello-World-from-Python".
Memvalidasi Nomor dan Nama File
Prasyarat: kerjakan setelah Bab 13.
Kegiatan pengembangan: Validator Sederhana
- Buat program yang meminta pengguna memasukkan nomor telepon. Cek apakah inputnya hanya berisi angka dan tidak kosong.
- Minta pengguna memasukkan nama file. Cek apakah nama file tersebut
berakhiran
.txtatau.csv.
Menyusun Struk Belanja
Prasyarat: kerjakan setelah Bab 13.
Kegiatan pengembangan: Struk Belanja Rapi Buat program yang menerima input nama barang, harga satuan, dan jumlah barang. Lalu cetak struk sederhana yang rapi menggunakan f-string, menampilkan total harga dengan format dua angka desimal dan nama barang rata kiri. Contoh Output:
Nama Barang | Jumlah | Total Harga
-----------------|--------|-------------
Pensil | 5 | Rp 7500.00
Buku Tulis | 2 | Rp 10000.00
Referensi dan Materi Pendamping
- Slicing String di Python: Mengambil Sebagian Teks
- f-string di Python: Format String Modern dengan Contoh
- len() di Python: Menghitung Panjang String, List, dan Lainnya
Langkah Selanjutnya
Bab 7 membahas String Lanjutan: Format dan Unicode. Sebelum melanjutkan, pastikan kamu dapat menjelaskan tujuan belajar dan menyelesaikan tiga latihan inti bab ini.
Edisi September 2026. Nomor contoh, pertanyaan, dan latihan digunakan bersama pada buku dan halaman ini.
