# Nakafa Framework: LLM URL: /id/subject/university/bachelor/ai-ds/ai-programming/indexing-slicing Source: https://raw.githubusercontent.com/nakafaai/nakafa.com/refs/heads/main/packages/contents/subject/university/bachelor/ai-ds/ai-programming/indexing-slicing/id.mdx Output docs content for large language models. --- export const metadata = { title: "Indexing dan Slicing", description: "Pelajari teknik indexing dan slicing Python untuk mengakses elemen string dan list. Kuasai penggunaan indeks positif, negatif, dan stride.", authors: [{ name: "Nabil Akbarazzima Fatih" }], date: "09/17/2025", subject: "Pemrograman AI", }; ## Pengenalan Indexing Indexing adalah cara untuk mengakses elemen tertentu dalam string atau list dengan menggunakan nomor posisi. Bayangkan kamu memiliki deretan buku di rak, dan setiap buku memiliki nomor urut. Indexing memungkinkan kamu mengambil buku tertentu berdasarkan nomor urutnya. Python menggunakan sistem penomoran yang dimulai dari 0, bukan 1. Jadi elemen pertama memiliki indeks 0, elemen kedua memiliki indeks 1, dan seterusnya. Selain itu, Python juga mendukung indeks negatif yang menghitung mundur dari akhir. ### Indeks Positif dan Negatif Dalam string atau list, setiap karakter atau elemen memiliki dua jenis indeks. Indeks positif dimulai dari 0 di awal, sedangkan indeks negatif dimulai dari -1 di akhir. Ketika kamu menggunakan indeks yang melebihi panjang string atau list, Python akan menampilkan error IndexError. Ini adalah mekanisme perlindungan untuk mencegah akses ke memori yang tidak valid. ## Konsep Slicing Slicing memungkinkan kamu mengambil bagian tertentu dari string atau list, bukan hanya satu elemen. Ini seperti memotong sepotong roti dari roti utuh, kamu bisa menentukan dari mana mulai memotong dan di mana berhenti. ### Slicing Sederhana Sintaks dasar slicing menggunakan format `[i:j]` di mana `i` adalah indeks awal dan `j` adalah indeks akhir. Penting untuk diingat bahwa indeks akhir tidak termasuk dalam hasil. Ketika indeks awal lebih besar dari indeks akhir dalam slicing biasa, hasilnya adalah string atau list kosong. Ini berbeda dengan slicing menggunakan stride negatif. ### Slicing dengan Stride Stride adalah parameter ketiga dalam slicing yang menentukan langkah atau jarak antar elemen yang diambil. Stride memungkinkan kamu mengambil elemen dengan pola tertentu. Stride negatif sangat berguna untuk membalik urutan elemen. Ketika stride bernilai -1, Python akan mengambil semua elemen dari akhir ke awal. ## Properti Slicing Slicing memiliki beberapa properti penting yang perlu dipahami untuk menghindari kesalahan dalam penggunaan. ### Panjang Hasil Slicing Panjang hasil slicing dapat dihitung dengan rumus sederhana. Untuk slicing positif `s[i:j]`, panjangnya adalah `j - i` jika kedua nilai positif dan `j > i`. Salah satu keunggulan slicing adalah tidak akan menyebabkan error meskipun indeks melebihi panjang string atau list. Python secara otomatis menyesuaikan batas yang valid. ## Slicing sebagai Loop Slicing dapat dipahami sebagai bentuk singkat dari loop for. Setiap operasi slicing sebenarnya equivalent dengan loop yang mengiterasi indeks tertentu. Pemahaman hubungan antara slicing dan loop membantu kamu memahami bagaimana Python memproses operasi slicing secara internal. ## Variasi Slicing Python menyediakan beberapa cara singkat untuk melakukan slicing yang sering digunakan. ### Slicing dari Awal dan Akhir Kamu dapat mengosongkan parameter awal atau akhir untuk mengambil elemen dari awal atau sampai akhir string/list. Variasi slicing ini sangat berguna dalam pemrosesan data ketika kamu perlu mengambil bagian tertentu dari dataset besar. ## Aplikasi Praktis Indexing dan slicing sering digunakan dalam berbagai skenario pemrograman, mulai dari manipulasi string hingga pemrosesan data. Dari kelima contoh aplikasi ini, terlihat bahwa operasi indexing dan slicing dapat menggantikan logika pemrograman yang kompleks. Misalnya, membalik string dengan `[::-1]` jauh lebih ringkas dibandingkan menggunakan loop manual, dan mengambil ekstensi file dengan `[-3:]` lebih intuitif daripada mencari posisi titik terakhir. Keunggulan utama teknik ini terletak pada kemampuannya menangani data berurutan tanpa risiko IndexError pada slicing. Ketika kamu melakukan `s[10:]` pada string pendek, Python tidak akan crash melainkan mengembalikan string kosong. Fleksibilitas ini membuat kode lebih robust, terutama ketika bekerja dengan data yang panjangnya tidak dapat diprediksi. Penguasaan indeks negatif memberikan perspektif baru dalam mengakses data. Alih-alih menghitung dari depan, kamu bisa langsung mengambil elemen dari belakang dengan `s[-1]` untuk elemen terakhir atau `s[-3:]` untuk tiga elemen terakhir. Pendekatan ini sangat berguna dalam pemrosesan file, parsing teks, dan manipulasi dataset di mana posisi relatif dari akhir lebih penting daripada posisi absolut dari awal.