free page hit counter
12

Pengantar Konsep Mutable dan Immutable pada Python

Dalam bahasa pemrograman Python, setiap data atau objek memiliki karakteristik tertentu dalam hal bagaimana nilainya dapat diubah. Dua konsep penting…

Dalam bahasa pemrograman Python, setiap data atau objek memiliki karakteristik tertentu dalam hal bagaimana nilainya dapat diubah. Dua konsep penting yang harus dipahami oleh setiap programmer Python adalah mutable dan immutable. Pemahaman terhadap konsep ini sangat penting karena mempengaruhi cara kerja variabel, performa program, dan hasil eksekusi fungsi.

Secara sederhana, mutable berarti objek yang dapat diubah setelah dibuat, sedangkan immutable berarti objek yang tidak dapat diubah setelah dibuat. Mari kita pelajari lebih dalam mengenai kedua konsep ini beserta contoh kodenya.


1. Apa Itu Objek Mutable?

Objek mutable dapat dimodifikasi setelah dibuat. Artinya, nilai di dalam objek tersebut bisa berubah tanpa harus membuat objek baru. Tipe data yang termasuk kategori mutable di Python antara lain:

  • List
  • Dictionary
  • Set
  • bytearray

Contoh Mutable Object (List)

# Contoh objek mutable
data = [1, 2, 3]
print("Sebelum diubah:", data)

# Mengubah elemen di dalam list
data[1] = 100
print("Setelah diubah:", data)

Output:

Sebelum diubah: [1, 2, 3]
Setelah diubah: [1, 100, 3]

Pada contoh di atas, kita mengubah elemen dengan indeks ke-1 menjadi 100 tanpa membuat list baru. Hal ini menunjukkan bahwa list merupakan objek mutable.


2. Apa Itu Objek Immutable?

Objek immutable tidak dapat dimodifikasi setelah dibuat. Ketika kita mencoba mengubah nilainya, Python sebenarnya akan membuat objek baru di memori. Beberapa tipe data yang termasuk kategori immutable adalah:

  • int
  • float
  • bool
  • string
  • tuple
  • frozenset

Contoh Immutable Object (String)

# Contoh objek immutable
text = "Python"
print("Sebelum diubah:", text)

# Mencoba mengubah karakter string
text = text.replace("P", "J")
print("Setelah diubah:", text)

Output:

Sebelum diubah: Python
Setelah diubah: Jython

Pada contoh di atas, meskipun tampak seperti kita mengubah isi string, sebenarnya Python membuat objek string baru dengan nilai “Jython”. Objek lama “Python” tetap ada di memori (sampai tidak direferensikan lagi).


3. Perbedaan Antara Mutable dan Immutable

KategoriMutableImmutable
Contoh Tipe DataList, Dict, SetString, Tuple, Int
Dapat Diubah Nilainya?YaTidak
Alamat Memori Setelah PerubahanTetap SamaBerubah (objek baru dibuat)
Contoh Kasus UmumMenambah elemen listMenggabung string

4. Melihat Perbedaan Menggunakan Fungsi id()

Fungsi id() digunakan untuk melihat alamat memori dari suatu objek. Ini membantu kita memahami apakah objek benar-benar berubah atau dibuat ulang oleh Python.

Contoh Mutable

data = [10, 20, 30]
print("Alamat awal:", id(data))

data.append(40)
print("Alamat setelah diubah:", id(data))

Output:

Alamat awal: 140547003202560
Alamat setelah diubah: 140547003202560

Alamat memori tetap sama meskipun kita menambahkan elemen baru, menandakan bahwa list bersifat mutable.

Contoh Immutable

text = "Python"
print("Alamat awal:", id(text))

text = text + " Rocks!"
print("Alamat setelah diubah:", id(text))

Output:

Alamat awal: 140547002918576
Alamat setelah diubah: 140547002922512

Alamat memori berubah karena string bersifat immutable.


5. Dampak Mutable dan Immutable terhadap Fungsi

Ketika kita mengirimkan objek ke dalam fungsi, perilaku mutable dan immutable juga memengaruhi hasilnya. Python menggunakan mekanisme pass by object reference. Mari lihat contohnya.

Kasus Mutable

def ubah_list(lst):
    lst.append(99)

angka = [1, 2, 3]
ubah_list(angka)
print("Hasil:", angka)

Output:

Hasil: [1, 2, 3, 99]

List berubah karena bersifat mutable, sehingga modifikasi di dalam fungsi memengaruhi data asli.

Kasus Immutable

def ubah_angka(x):
    x = x + 10

angka = 5
ubah_angka(angka)
print("Hasil:", angka)

Output:

Hasil: 5

Nilai angka tidak berubah karena integer adalah tipe data immutable. Fungsi hanya membuat salinan nilai dan memodifikasi salinan tersebut tanpa memengaruhi data asli.


6. Kapan Harus Menggunakan Mutable dan Immutable?

Pemilihan tipe data antara mutable dan immutable tergantung pada kebutuhan:

  • Gunakan mutable (seperti list/dict) ketika data perlu dimodifikasi secara langsung.
  • Gunakan immutable (seperti tuple/string) ketika data bersifat tetap dan tidak boleh berubah untuk keamanan data atau kecepatan eksekusi.

Contohnya, kunci (key) pada dictionary harus berupa objek immutable agar dapat diakses secara konsisten.


Kesimpulan

Konsep mutable dan immutable adalah dasar penting dalam pemrograman Python yang berpengaruh terhadap bagaimana data disimpan dan dimodifikasi di memori. Dengan memahami perbedaannya, Anda dapat menulis kode Python yang lebih efisien, aman, dan bebas dari bug yang sulit dilacak.

Ingat, setiap kali Anda bekerja dengan data yang dapat berubah (mutable), pastikan untuk berhati-hati agar tidak mengubah data yang tidak diinginkan. Sebaliknya, gunakan objek immutable untuk menjaga konsistensi data dan meminimalkan kesalahan logika dalam program Anda.

rysasahrial@gmail.com

Leave a Reply

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