Parameter Fungsi Pointer/Reference dan Array

Secara umum, pointer adalah variabel yang menyimpan alamat atau referensi menuju lokasi data yang terdapat di memori. Pada bahasa C dan C++, pointer dapat digunakan secara eksplisit. Python tidak memiliki pointer eksplisit seperti C atau C++. Python menggunakan konsep object reference atau referensi objek. Ketika sebuah variabel diberikan suatu objek, variabel tersebut dapat dianggap sebagai referensi yang menunjuk kepada objek tersebut. Untuk melihat identitas objek, Python menyediakan fungsi id()

Contoh:

nilai = 10
x = nilai

print(id(nilai))
print(id(x))

Pada kondisi tersebut, nilai dan x merujuk pada objek yang sama. id() bukan alamat memori yang sebaiknya diperlakukan seperti pointer C. Dalam pembelajaran dasar, lebih tepat digunakan untuk melihat identitas objek.

Reference pada Python

Konsep reference menjadi sangat penting ketika bekerja dengan objek yang dapat diubah (mutable), seperti:

list
dict
set

Contoh:

nilai = [10, 20, 30]

data = nilai

data[0] = 100

print(nilai)
print(data)

Hasil:

[100, 20, 30]
[100, 20, 30]

nilai ikut berubah karena nilai dan data merujuk pada list yang sama.

Pointer/Reference sebagai Parameter Fungsi
Salah satu penggunaan pointer pada C/C++ adalah mengirim alamat variabel sebagai parameter fungsi sehingga fungsi dapat mengubah data asli.
Dalam Python, konsep tersebut dapat diterapkan dengan menggunakan object reference. Misalnya kita mempunyai sebuah list:

nilai = [10, 20, 30]

List tersebut dikirimkan sebagai parameter fungsi:

def ubah_data(data):
    data[0] = 100

nilai = [10, 20, 30]

ubah_data(nilai)

print(nilai)

Hasil:

[100, 20, 30]

Fungsi ubah_data() dapat mengubah list asli karena parameter data merujuk pada objek list yang sama.

def ubah_nilai(data):
    data[0] = 100

nilai = [10, 20, 30]

print("Sebelum:", nilai)

ubah_nilai(nilai)

print("Sesudah:", nilai)

Mengubah Seluruh Elemen Array melalui Fungsi
Konsep ini sangat berguna dalam algoritma pengolahan array. Misalnya kita ingin menggandakan seluruh nilai:

def kali_dua(data):
    for i in range(len(data)):
        data[i] = data[i] * 2

nilai = [10, 20, 30, 40, 50]

print("Sebelum:", nilai)

kali_dua(nilai)

print("Sesudah:", nilai)

Output:

Sebelum: [10, 20, 30, 40, 50]
Sesudah: [20, 40, 60, 80, 100]

Array sebagai Parameter Fungsi
Dalam Python, list dapat digunakan untuk merepresentasikan array satu dimensi. Contoh:

def tampilkan_array(data):
    for i in range(len(data)):
        print(data[i])

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

tampilkan_array(angka)

Output:

10
20
30
40
50

Membuat Salinan Array

Jika kita ingin membuat objek list yang berbeda, dapat menggunakan .copy() Contoh:

a = [10, 20, 30]

b = a.copy()

b[0] = 100

print(a)
print(b)

Output:

[10, 20, 30]
[100, 20, 30]

Kesimpulan

Beberapa hal penting yang perlu dipahami:

  1. Python tidak mempunyai pointer eksplisit seperti C/C++.
  2. Python menggunakan konsep object reference.
  3. Variabel Python dapat merujuk pada objek yang sama.
  4. list dapat digunakan sebagai representasi array satu dimensi.
  5. Ketika list diberikan sebagai parameter fungsi, fungsi menerima reference terhadap objek tersebut.
  6. Karena list bersifat mutable, elemennya dapat diubah dari dalam fungsi.
  7. Konsep ini memiliki fungsi yang mirip dengan penggunaan pointer/reference untuk memodifikasi array pada C/C++.

Slide materi dapat dilihat di sini.

Mungkin Anda Menyukai

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *