Skip to main content

String Indexes & String Slicing

String dalam Python merupakan urutan karakter yang teratur. Setiap karakter di dalam string memiliki posisi yang disebut index.

Index digunakan untuk mengakses karakter tertentu, sedangkan slicing digunakan untuk mengambil sebagian karakter dari sebuah string.


1. String Indexing​

Setiap karakter dalam string memiliki nomor index.

Hal penting yang perlu diingat adalah index Python dimulai dari 0, bukan dari 1.

Contohnya:

selfish = "01234567"

Posisi setiap karakter dapat digambarkan seperti berikut:

Karakter : 0 1 2 3 4 5 6 7
Index : 0 1 2 3 4 5 6 7

Karakter pertama berada pada index 0, sedangkan karakter terakhir berada pada index 7.


2. Mengakses Karakter dengan Index​

Untuk mengambil karakter tertentu, kita dapat menggunakan tanda kurung siku:

selfish = "01234567"

print(selfish[0])

Hasil:

0

Untuk mengambil karakter pada index 7:

print(selfish[7])

Hasil:

7

Secara sederhana:

selfish[0]
↑
index

3. Index Dimulai dari Nol​

Kesalahan yang sering terjadi ketika pertama kali mempelajari indexing adalah menganggap karakter pertama berada pada index 1.

Dalam Python, karakter pertama selalu berada pada index 0.

Misalnya:

name = "Python"

Index-nya:

Karakter : P y t h o n
Index : 0 1 2 3 4 5

Maka:

print(name[0])

menghasilkan:

P

Sedangkan:

print(name[5])

menghasilkan:

n

4. String Slicing​

Selain mengambil satu karakter, kita juga dapat mengambil sebagian karakter dari sebuah string.

Teknik ini disebut string slicing.

Sintaks dasarnya:

variable[start:stop:step]

Terdapat tiga bagian:

[start : stop : step]
│ │ │
│ │ └── Langkah
│ └───────── Batas akhir
└──────────────── Posisi awal

Ketiganya memiliki fungsi yang berbeda.


5. Parameter start​

start menentukan index awal dari slicing.

Index start termasuk dalam hasil.

Contohnya:

selfish = "01234567"

print(selfish[0:2])

Hasil:

01

Prosesnya:

Index : 0 1 2 3 4 5 6 7
Karakter: 0 1 2 3 4 5 6 7
└─┴─┘

Slicing dimulai dari index 0.


6. Parameter stop​

stop menentukan batas akhir slicing.

Hal penting yang harus diingat:

Index stop tidak termasuk dalam hasil.

Contohnya:

selfish = "01234567"

print(selfish[0:2])

Hasil:

01

Bukan:

012

Karena slicing berhenti sebelum index 2.

Secara sederhana:

start → termasuk
stop → tidak termasuk

7. Parameter step​

step menentukan berapa banyak index yang dilewati ketika mengambil karakter.

Contohnya:

selfish = "01234567"

print(selfish[0:8:2])

Hasil:

0246

Python mengambil karakter dengan langkah 2:

0 → 2 → 4 → 6

Penjelasan:

  • start (0): Dimulai dari index 0 (yaitu karakter '0').
  • stop (8): Berhenti sebelum index 8 (berarti mengambil hingga karakter terakhir, yaitu index 7).
  • step (2): Mengambil karakter dengan melangkah sebanyak 2 index setiap kali pengambilan.

Proses Pengambilan Karakter:

  • Langkah 1: Ambil index 0 ➡️ '0'
  • Langkah 2: Melangkah 2 kali ke index 2 ➡️ '2'
  • Langkah 3: Melangkah 2 kali ke index 4 ➡️ '4'
  • Langkah 4: Melangkah 2 kali ke index 6 ➡️ '6'
  • Hasil akhirnya digabungkan menjadi string "0246".

8. Slicing Tanpa step​

Jika step tidak ditulis, Python menggunakan nilai default:

step = 1

Contohnya:

selfish = "01234567"

print(selfish[0:5])

Secara konsep sama dengan:

print(selfish[0:5:1])

Keduanya menghasilkan:

01234

9. Mengambil String Sampai Akhir​

Kita dapat menghilangkan stop jika ingin mengambil karakter dari start sampai akhir string.

Contohnya:

selfish = "01234567"

print(selfish[1:])

Hasil:

1234567

Artinya:

Mulai dari index 1
↓
Ambil sampai akhir

10. Mengambil String dari Awal​

Kita juga dapat menghilangkan start jika ingin mengambil string dari awal.

Contohnya:

selfish = "01234567"

print(selfish[:5])

Hasil:

01234

Secara konsep:

selfish[0:5]

sama dengan:

selfish[:5]

Karena ketika start tidak ditentukan, Python menggunakan awal string.


11. Mengambil Seluruh String​

Kita dapat menggunakan:

selfish[:]

untuk mengambil seluruh string.

Contohnya:

selfish = "01234567"

print(selfish[:])

Hasil:

01234567

Kita juga dapat menuliskan:

selfish[::1]

Hasilnya sama:

01234567

12. Ringkasan Slicing Dasar​

Dengan:

selfish = "01234567"

beberapa contoh slicing:

ExpressionHasilKeterangan
selfish[0:2]"01"Index 0 sampai sebelum 2
selfish[0:8:2]"0246"Mengambil setiap 2 langkah
selfish[1:]"1234567"Dari index 1 sampai akhir
selfish[:5]"01234"Dari awal sampai sebelum 5
selfish[:]"01234567"Mengambil seluruh string
selfish[::1]"01234567"Seluruh string dengan step 1

13. Negative Indexing​

Python juga mendukung negative indexing.

Negative indexing memungkinkan kita mengakses karakter mulai dari bagian belakang string.

Contohnya:

selfish = "01234567"

Index positif:

Karakter : 0 1 2 3 4 5 6 7
Index : 0 1 2 3 4 5 6 7

Index negatif:

Karakter : 0 1 2 3 4 5 6 7
Index : -8 -7 -6 -5 -4 -3 -2 -1

Dengan demikian:

-1 → karakter terakhir
-2 → karakter kedua dari belakang
-3 → karakter ketiga dari belakang

14. Mengakses dengan Negative Index​

Contohnya:

selfish = "01234567"

print(selfish[-1])

Hasil:

7

Karena -1 menunjuk karakter terakhir.

Contoh:

print(selfish[-2])

Hasil:

6

Jadi:

selfish[-1] → "7"
selfish[-2] → "6"
selfish[-3] → "5"

15. Reverse String​

Negative indexing juga dapat digunakan bersama slicing.

Salah satu teknik yang sangat populer di Python untuk membalikkan string adalah:

[::-1]

Contohnya:

selfish = "01234567"

print(selfish[::-1])

Hasil:

76543210

Mari kita lihat:

selfish[::-1]

Bagian-bagiannya:

start : stop : step
↓ ↓ ↓
kosong kosong -1

Karena step bernilai -1, Python membaca string dari belakang ke depan.


16. Memahami [::-1]​

Expression:

selfish[::-1]

dapat dipahami sebagai:

Mulai dari akhir
↓
Bergerak mundur
↓
Ambil setiap karakter
↓
Sampai awal string

Contohnya:

01234567
↓
76543210

Teknik ini sering digunakan untuk membalikkan string.


17. Contoh dengan String Biasa​

Indexing dan slicing tidak hanya berlaku untuk angka sebagai karakter.

Contohnya:

language = "Python"

Index:

Karakter : P y t h o n
Index : 0 1 2 3 4 5

Mengambil karakter:

print(language[0])

Hasil:

P

Mengambil beberapa karakter:

print(language[0:3])

Hasil:

Pyt

Membalikkan string:

print(language[::-1])

Hasil:

nohtyP

18. String Tidak Berubah Saat Di-slicing​

Slicing menghasilkan string baru dan tidak mengubah string asli.

Contohnya:

language = "Python"

result = language[0:3]

print(result)
print(language)

Hasil:

Pyt
Python

Variable language tetap memiliki nilai:

Python

Sementara hasil slicing disimpan dalam variable result.


19. Kesalahan Index​

Jika kita mencoba mengakses index yang berada di luar jangkauan string menggunakan indexing langsung, Python akan menghasilkan error.

Contohnya:

language = "Python"

print(language[10])

Karena string hanya memiliki index 0 sampai 5, Python akan menghasilkan:

IndexError

Karena itu, penting untuk memperhatikan panjang string dan index yang digunakan.


20. Cara Mudah Mengingat Slicing​

Sintaks:

string[start:stop:step]

dapat diingat sebagai:

start
↓
Mulai dari mana?

stop
↓
Berhenti sebelum mana?

step
↓
Melangkah berapa?

Contohnya:

text[1:7:2]

berarti:

Mulai index 1
↓
Berhenti sebelum index 7
↓
Ambil setiap 2 langkah

Kesimpulan​

String indexing digunakan untuk mengakses karakter tertentu dalam string, sedangkan string slicing digunakan untuk mengambil sebagian karakter dari string.

Index Python dimulai dari 0.

P y t h o n
0 1 2 3 4 5

Untuk indexing:

text[0]

Untuk slicing:

text[start:stop:step]

Hal penting yang perlu diingat:

  • Index dimulai dari 0.
  • start termasuk dalam hasil.
  • stop tidak termasuk dalam hasil.
  • step menentukan jarak pengambilan karakter.
  • Index negatif dihitung dari belakang.
  • -1 adalah karakter terakhir.
  • [::-1] dapat digunakan untuk membalikkan string.

Contoh paling penting:

text = "Python"

print(text[0])
print(text[1:4])
print(text[-1])
print(text[::-1])

Hasil:

P
yth
n
nohtyP
info

Indexing digunakan untuk mengambil karakter tertentu, sedangkan slicing digunakan untuk mengambil bagian tertentu dari sebuah string.