free page hit counter
20

Slicing dan Copy List di Python dengan Contoh Lengkap

Dalam dunia pemrograman Python, list adalah salah satu struktur data yang paling sering digunakan. List digunakan untuk menyimpan sekumpulan data…

Dalam dunia pemrograman Python, list adalah salah satu struktur data yang paling sering digunakan. List digunakan untuk menyimpan sekumpulan data dalam satu variabel. Namun, tidak jarang kita perlu mengambil sebagian data dari list, atau menyalin list agar dapat dimodifikasi tanpa memengaruhi data aslinya.

Konsep ini disebut Slicing dan Copy List — dua fitur penting yang wajib dipahami oleh setiap programmer Python, baik pemula maupun profesional. Artikel ini akan membahas keduanya secara lengkap, mulai dari dasar hingga contoh kasus nyata dalam pemrograman sehari-hari.


Apa Itu Slicing di Python?

Slicing adalah teknik untuk mengambil sebagian elemen dari list (atau struktur data serupa seperti string dan tuple).
Dengan slicing, kamu bisa mengekstrak data berdasarkan indeks tertentu tanpa perlu menggunakan loop.

Struktur Dasar Slicing

list[start:stop:step]
  • start: indeks awal elemen yang ingin diambil (default = 0)
  • stop: indeks akhir (elemen ini tidak diambil, hanya sampai sebelum indeks ini)
  • step: langkah atau jarak antar elemen yang diambil (default = 1)

Contoh Dasar Slicing

angka = [10, 20, 30, 40, 50, 60, 70]

print(angka[1:4])    # Output: [20, 30, 40]
print(angka[:3])     # Output: [10, 20, 30]
print(angka[3:])     # Output: [40, 50, 60, 70]
print(angka[::2])    # Output: [10, 30, 50, 70]

Dari contoh di atas, terlihat bahwa slicing sangat fleksibel. Kamu bisa menentukan titik awal dan akhir sesuai kebutuhan, bahkan melangkah dengan pola tertentu menggunakan parameter step.


Menggunakan Indeks Negatif pada Slicing

Python juga mendukung indeks negatif, yang berarti kamu dapat menghitung dari belakang.
Indeks terakhir bernilai -1, lalu -2, dan seterusnya.

angka = [10, 20, 30, 40, 50, 60, 70]

print(angka[-3:])    # Output: [50, 60, 70]
print(angka[:-2])    # Output: [10, 20, 30, 40, 50]
print(angka[-5:-2])  # Output: [30, 40, 50]

Dengan cara ini, kamu bisa mengambil bagian akhir list tanpa harus tahu panjang totalnya. Ini sangat berguna untuk data dinamis seperti log, data sensor, atau input pengguna.


Slicing dengan Step Negatif (Membalik List)

Jika kamu memberi nilai step negatif, Python akan membaca list dari belakang, artinya data bisa dibalik dengan mudah.

angka = [10, 20, 30, 40, 50, 60, 70]

print(angka[::-1])    # Output: [70, 60, 50, 40, 30, 20, 10]

Teknik ini sering digunakan untuk membalik urutan list, string, atau bahkan array dua dimensi.


Apa Itu Copy List di Python?

Saat kamu menugaskan list ke variabel lain menggunakan tanda sama dengan (=), sebenarnya yang disalin bukan isi list, melainkan referensi memorinya.
Artinya, perubahan di satu variabel akan memengaruhi variabel lainnya.
Untuk membuat salinan independen, kamu perlu melakukan copy list.

Contoh Salah dalam Menyalin List

angka1 = [1, 2, 3]
angka2 = angka1   # Hanya menyalin referensi, bukan isi

angka2.append(4)
print(angka1)  # Output: [1, 2, 3, 4]
print(angka2)  # Output: [1, 2, 3, 4]

Terlihat bahwa menambahkan elemen ke angka2 juga memengaruhi angka1.
Hal ini terjadi karena keduanya menunjuk ke lokasi memori yang sama.


Cara Benar Melakukan Copy List

Ada beberapa cara untuk menyalin list secara benar di Python agar hasilnya benar-benar independen.

1. Menggunakan Slicing

angka1 = [1, 2, 3]
angka2 = angka1[:]  # Salin seluruh elemen

angka2.append(4)
print(angka1)  # Output: [1, 2, 3]
print(angka2)  # Output: [1, 2, 3, 4]

2. Menggunakan Fungsi list()

angka1 = [10, 20, 30]
angka2 = list(angka1)

angka2[0] = 99
print(angka1)  # Output: [10, 20, 30]
print(angka2)  # Output: [99, 20, 30]

3. Menggunakan copy() Method

angka1 = [100, 200, 300]
angka2 = angka1.copy()

angka2.append(400)
print(angka1)  # Output: [100, 200, 300]
print(angka2)  # Output: [100, 200, 300, 400]

4. Menggunakan Modul copy untuk Deep Copy

Jika list mengandung list lain di dalamnya (nested list), maka kamu harus menggunakan deep copy agar perubahan tidak menular ke list utama.

import copy

data_asli = [[1, 2], [3, 4]]
salinan = copy.deepcopy(data_asli)

salinan[0][0] = 99
print(data_asli)  # Output: [[1, 2], [3, 4]]
print(salinan)    # Output: [[99, 2], [3, 4]]

Deep copy memastikan semua level data disalin sepenuhnya, bukan hanya referensi.


Contoh Kasus Nyata: Mengelola Data Siswa

Misalnya kamu memiliki daftar nilai siswa, dan ingin membuat salinan untuk eksperimen perhitungan tanpa mengubah data asli.

nilai_asli = [80, 90, 75, 88, 92]
nilai_backup = nilai_asli[:]   # Salin dengan slicing

# Menambahkan nilai tambahan untuk simulasi
nilai_backup.append(95)

print("Data Asli :", nilai_asli)
print("Data Backup:", nilai_backup)

Output:

Data Asli : [80, 90, 75, 88, 92]
Data Backup: [80, 90, 75, 88, 92, 95]

Dengan teknik slicing, kamu bisa mengamankan data utama dan tetap leluasa bereksperimen pada salinannya.


Kesimpulan

Baik slicing maupun copy list adalah fitur fundamental Python yang sangat membantu dalam pengolahan data.
Dengan memahami keduanya, kamu dapat menulis kode yang lebih aman, efisien, dan mudah dikelola.

  • Slicing memungkinkan pengambilan sebagian elemen list dengan cepat dan fleksibel.
  • Copy List memastikan data yang kamu ubah tidak memengaruhi data asli.
  • Gunakan deep copy bila list mengandung struktur bersarang.

Dengan menguasai konsep ini, kamu telah selangkah lebih dekat untuk menjadi programmer Python yang andal.
Teruslah berlatih dan eksperimen dengan berbagai contoh kasus!

rysasahrial@gmail.com

Leave a Reply

Your email address will not be published. Required fields are marked *