‹ Daftar slidePertemuan 4: Konsep String: Indexing, Slicing, dan Method
Program Studi Bisnis Digital • FEB UNDIP
Algoritma dan Pemrograman
Pertemuan 4 — Konsep String: Indexing, Slicing, dan Method
Cara Python menyimpan dan mengolah teks: dari mengambil satu huruf sampai membersihkan data pelanggan yang berantakan.
RPS MINGGU 4 • 2X50 MENIT
Tujuan Pembelajaran Hari Ini
Setelah pertemuan ini, Anda mampu:
TUJUAN 1–2
Menjelaskan bahwa string adalah urutan karakter yang tiap karakternya punya posisi (indeks).
Mengambil karakter tertentu dari string memakai indexing positif maupun negatif.
TUJUAN 3–4
Memotong sebagian teks memakai slicing[start:stop:step].
Menerapkan method string (upper, strip, replace, split, dsb.) untuk membersihkan data teks nyata.
Konteks: seluruh contoh hari ini memakai data khas bisnis digital Indonesia — nama toko, kode voucher, dan input pelanggan dari marketplace seperti Tokopedia.
Mengapa String Penting di Bisnis Digital?
Coba lihat data pelanggan mentah dari formulir checkout sebuah toko online berikut ini.
Masalah: ada spasi berlebih, huruf besar-kecil tidak konsisten, dan kode promo perlu diuraikan jadi bagian-bagian. Semua ini butuh method string untuk dibereskan sebelum data disimpan ke database.
Apa itu String?
Dalam Python, string (disingkat str) adalah tipe data untuk menyimpan teks — kumpulan karakter yang diapit tanda kutip.
nama = "Tokopedia"
KUTIP TUNGGAL / GANDA
'Bisnis Digital' — kutip tunggal
"Bisnis Digital" — kutip ganda
Keduanya setara di Python, boleh dipilih salah satu, asal konsisten.
CATATAN PENTING
String bersifat immutable (glos: tidak bisa diubah langsung per karakter setelah dibuat — harus buat string baru).
Bahkan angka dalam kutip, misal "22", dianggap teks, bukan angka.
String = Deret Karakter Berindeks
Setiap karakter dalam string punya posisi (indeks), dimulai dari 0, bukan 1.
Panjang string "TOKPED" = 6 karakter, tetapi indeks tertingginya adalah 5 (karena mulai dari 0). Ini yang paling sering membuat pemula salah hitung.
Sintaks Indexing di Python
Gunakan tanda kurung siku [ ] setelah nama variabel string untuk mengambil satu karakter.
CONTOH KODE
toko = "TOKPED"
print(toko[0]) # Output: T (karakter pertama) print(toko[2]) # Output: K print(toko[-1]) # Output: D (karakter terakhir) print(toko[6]) # Error! IndexError, indeks maksimal cuma 5
Jebakan umum (glos IndexError): pesan galat yang muncul saat mengakses indeks yang tidak ada dalam string — indeks maksimal string sepanjang n karakter adalah n-1, bukan n.
Hitung dari Nol: Indexing "TOKOPEDIA"
Variabel platform = "TOKOPEDIA" (9 karakter). Ambil huruf ke-4 dari depan dan huruf ke-3 dari belakang.
LANGKAH PERHITUNGAN
Langkah
Perhitungan
Nilai
Panjang string
hitung karakter T-O-K-O-P-E-D-I-A
9 karakter
Rentang indeks positif
0 sampai (9−1)
0 – 8
Huruf ke-4 dari depan → indeks
posisi ke-4, mulai hitung dari 0
indeks 3
platform[3]
T(0) O(1) K(2) O(3)
"O"
Huruf ke-3 dari belakang → indeks
−1, −2, −3
indeks -3
platform[-3]
A(-1) I(-2) D(-3)
"D"
HASIL AKHIR
"O" & "D"
platform[3] dan platform[-3]
Selalu tulis dulu deretan karakter dengan nomor indeksnya di kertas coretan sebelum menebak — cara ini menghindarkan Anda dari salah hitung off-by-one.
Slicing: Memotong Sebagian Teks
Slicing mengambil rentang karakter, bukan hanya satu, dengan sintaks string[start:stop:step].
nama[start:stop:step]
START
Indeks awal (ikut terambil). Kosong = mulai dari awal string.
STOP
Indeks batas akhir (TIDAK ikut terambil). Kosong = sampai akhir string.
Slicing sangat berguna untuk menguraikan kode berformat tetap, seperti kode produk UMKM "BD-2026-0417" yang punya struktur: 2 huruf kategori, tahun, dan nomor urut.
Bagian 2 dari 3
Operasi & Method String
Setelah bisa mengambil dan memotong teks, sekarang kita pelajari perkakas siap pakai Python untuk membersihkan, mengubah, dan mencari isi string.
Operasi Dasar String
Sebelum ke method, kenali dulu operator dasar yang bisa langsung dipakai pada string.
PENGGABUNGAN & PENGULANGAN
nama = "Toko" + " " + "Maju" # "Toko Maju"
garis = "-" * 10 # "----------"
PANJANG & PENGECEKAN ISI
len("Tokopedia") # 9
"toko" in "tokopedia" # True (glos: benar)
Operator + menyambung string (glos: concatenation), * mengulang string, len() menghitung jumlah karakter, dan in mengecek apakah suatu teks ada di dalam teks lain.
Method Mengubah Kapitalisasi
Empat method paling umum untuk menstandardisasi format huruf pada data teks.
Method
Fungsi
Contoh
.upper()
Semua huruf jadi KAPITAL
"siti".upper() → "SITI"
.lower()
Semua huruf jadi kecil
"SITI".lower() → "siti"
.title()
Huruf Awal Tiap Kata Kapital
"toko maju".title() → "Toko Maju"
.capitalize()
Hanya huruf pertama kalimat kapital
"toko maju".capitalize() → "Toko maju"
Kasus nyata: sebelum menyimpan email pelanggan ke database, praktik umum adalah memakai .lower() supaya "SITI@GMAIL.COM" dan "siti@gmail.com" dikenali sebagai email yang sama.
Method Membersihkan Teks
Method untuk menghapus spasi berlebih dan mengganti sebagian teks — sangat sering dipakai saat membersihkan input pengguna.
.strip() — HAPUS SPASI TEPI
nama = " Siti Aminah " nama.strip() # "Siti Aminah" # (spasi tengah tetap ada)
Ingat sifat immutable: .strip() dan .replace() tidak mengubah variabel asli, melainkan mengembalikan string baru — harus ditampung ke variabel, misal nama = nama.strip().
Glos: list (hasil .split()) adalah kumpulan nilai berurutan dalam satu variabel, ditandai tanda kurung siku — akan dibahas mendalam Pertemuan 7.
Coba Sendiri: Indexing, Slicing, dan Rantai Method String
Ketik string sendiri, geser posisi index/slice (termasuk index negatif), dan tambahkan method berantai untuk melihat hasilnya tahap demi tahap.
Hitung dari Nol: Membersihkan Data Pelanggan
Input mentah: email_mentah = " SITI.AMINAH@GMAIL.COM ". Bersihkan menjadi format standar database.
LANGKAH PENGOLAHAN (WALKTHROUGH)
Langkah
Operasi
Hasil Sementara
1. Data mentah
—
" SITI.AMINAH@GMAIL.COM "
2. Hapus spasi tepi
.strip()
"SITI.AMINAH@GMAIL.COM"
3. Ubah ke huruf kecil
.lower()
"siti.aminah@gmail.com"
4. Cek posisi "@"
.find("@")
indeks 11
5. Ambil bagian username
[0:11] → slicing
"siti.aminah"
EMAIL SIAP SIMPAN
siti.aminah@gmail.com
gabungan strip → lower → find → slicing
Ini adalah pola nyata yang dipakai sistem pendaftaran akun: rangkaian method dipanggil berurutan (method chaining) untuk membersihkan satu input mentah.
Bagian 3 dari 3
Studi Kasus & Latihan
Sekarang kita terapkan indexing, slicing, dan method sekaligus pada dua kasus khas bisnis digital: validasi input dan penguraian kode produk.
Studi Kasus: Validasi Nomor HP Pelanggan
Sistem toko online perlu memastikan nomor HP pelanggan diawali kode operator yang benar sebelum mengirim OTP (glos: One Time Password, kode sekali pakai untuk verifikasi).
if tiga_digit_awal == "081" or tiga_digit_awal == "082": print("Nomor valid, kirim OTP") else: print("Format nomor tidak dikenali")
Perhatikan: kita gabungkan method (.replace()) dengan slicing ([0:3]) dan struktur if/else dari Pertemuan 3 — ilmu tidak berdiri sendiri, semua saling terhubung.
Studi Kasus: Menguraikan Kode Produk UMKM
Sebuah UMKM menyimpan kode produk dengan format "KATEGORI-TAHUN-NOMOR", misalnya "MKN-2026-0089" (MKN = Makanan).
WALKTHROUGH PENGURAIAN
kode = "MKN-2026-0089" bagian = kode.split("-") # bagian =
MKN
2026
0089
kategori = bagian[0] # "MKN" tahun = bagian[1] # "2026" nomor = bagian[2] # "0089"
print(f"Produk kategori {kategori}, tahun {tahun}") # Output: Produk kategori MKN, tahun 2026
Alternatif tanpa split: kode[0:3] untuk kategori, kode[4:8] untuk tahun — tetapi .split() lebih aman kalau panjang tiap bagian bisa berubah-ubah.
Latihan Kelas: Coba Sendiri
Kerjakan berpasangan dengan teman sebangku selama 10 menit, lalu kita bahas bersama.
SOAL 1 — INDEXING & SLICING
Variabel toko = "WARUNGDIGITAL". Tentukan: (a) huruf pada toko[5], (b) hasil dari toko[-4:], (c) berapa panjang string ini menurut len().
SOAL 2 — METHOD
Variabel ulasan = " Barangnya BAGUS sekali!! ". Tulis kode Python untuk: (a) menghapus spasi tepi, (b) mengubah semua huruf jadi kecil, (c) mengganti "!!" dengan "!".
Petunjuk: kerjakan di kertas dulu dengan menomori tiap huruf sebelum mengetik ke komputer — kebiasaan ini mengurangi kesalahan off-by-one secara drastis.
Rangkuman & Persiapan Minggu Depan
CHEAT SHEET PERTEMUAN 4
Konsep
Sintaks
Indexing
teks[i], negatif dari -1
Slicing
teks[start:stop:step]
Kapitalisasi
.upper() .lower() .title()
Pembersihan
.strip() .replace()
Pencarian/Split
.find() .split() .join()
MINGGU DEPAN — PERTEMUAN 5
Text Files & Exception
Membaca/menulis file .txt, try/except
Kita akan memakai kemampuan mengolah string hari ini untuk membaca data dari file teks sungguhan, sekaligus belajar menangani error dengan try/except supaya program tidak langsung crash.