Post Detail

September 13, 2026 in Python Dasar, Video

Menukar Nilai Dua Variabel di Python (Swap Variables) + Latihan 3 Variabel

Menukar nilai dua variabel (swap variables) adalah latihan sederhana untuk memahami urutan penugasan di Python. Kamu akan mempelajari mengapa cara langsung bisa gagal, lalu mencoba cara dengan variabel sementara dan cara ringkas Python.

Video berikut memperagakan pertukaran nilai dengan analogi gelas. Penjelasan dan contoh code juga tersedia di bawah video.

1. Analogi Dua Gelas Air

Bayangkan Gelas A berisi teh manis dan Gelas B berisi kopi susu. Kamu ingin menukar isinya tanpa mencampurkan kedua minuman. Gunakan satu gelas cadangan:

  1. Tuangkan teh dari Gelas A ke gelas cadangan.
  2. Tuangkan kopi dari Gelas B ke Gelas A.
  3. Tuangkan teh dari gelas cadangan ke Gelas B.

Gelas cadangan membantu mengingat nilai yang perlu disimpan lebih dahulu. Namun, analogi ini tidak menggambarkan memori Python secara harfiah: temp = a tidak mengosongkan a. Nama temp dan a sama-sama merujuk ke nilai yang sama sampai salah satunya diberi nilai baru.

2. Kesalahan Umum: Menukar Secara Berurutan

Contoh keliru: dua baris penugasan berikut dapat dijalankan, tetapi tidak menghasilkan pertukaran yang kita inginkan.

a = 1
b = 2

# Contoh keliru: a berubah sebelum nilai awalnya disimpan.
a = b
b = a

print("a =", a)
print("b =", b)

Coba di IDE

Output:

a = 2
b = 2

Python menjalankan kedua penugasan tersebut sesuai urutan. Setelah a = b, nilai yang dapat diakses melalui a sudah menjadi 2. Baris b = a kemudian memakai nilai 2 itu juga; nilai awal a belum disimpan untuk dipakai kembali.

3. Solusi Klasik: Variabel Sementara temp

Simpan nilai awal a ke variabel sementara bernama temp, lalu lakukan pertukaran. Kita bisa langsung menulis temp = a; tidak perlu mendahuluinya dengan temp = None.

a = 1
b = 2

temp = a  # Simpan nilai awal a.
a = b
b = temp

print("a =", a)
print("b =", b)

Coba di IDE

Output:

a = 2
b = 1

Alur perubahan nilai

Langkahtempab
Nilai awalBelum dibuat12
temp = a112
a = b122
b = temp121

Perhatikan bahwa temp tetap bernilai 1 setelah pertukaran selesai. Penugasan tidak memindahkan isi seperti menuangkan cairan dari satu gelas ke gelas lain.

4. Cara Ringkas Python: a, b = b, a

Python menyediakan penugasan beberapa target dalam satu pernyataan. Untuk menukar dua nilai, tulis a, b = b, a:

a = 1
b = 2

a, b = b, a

print("a =", a)
print("b =", b)

Coba di IDE

Output:

a = 2
b = 1

Python mengevaluasi sisi kanan terlebih dahulu, yaitu nilai awal b dan a: 2 dan 1. Setelah itu, kedua nilai tersebut ditetapkan ke target di sisi kiri sesuai urutannya.

  • Nilai pertama, 2, ditetapkan ke a.
  • Nilai kedua, 1, ditetapkan ke b.

Karena sisi kanan dibaca terlebih dahulu, nilai awal yang diperlukan untuk pertukaran masih tersedia. Cara ini ringkas dan umum dipakai untuk menukar dua variabel di Python.

5. Latihan: Menukar Tiga Variabel Secara Melingkar

Mulailah dengan a = 10, b = 20, dan c = 30. Putar nilainya dengan arah berikut:

  • Nilai awal c menjadi nilai baru a.
  • Nilai awal a menjadi nilai baru b.
  • Nilai awal b menjadi nilai baru c.

Target akhir: a = 30, b = 10, dan c = 20. Pikirkan urutannya sebelum membuka pembahasan.

Lihat pembahasan dan solusi

Solusi 1: Simpan nilai awal b

Cukup gunakan satu variabel sementara. Simpan nilai awal b sebelum b diisi dengan nilai a.

a = 10
b = 20
c = 30

temp = b  # Simpan b sebelum namanya diberi nilai baru.
b = a
a = c
c = temp

print("a =", a)
print("b =", b)
print("c =", c)

Coba di IDE

Output:

a = 30
b = 10
c = 20

Alternatif: Simpan nilai awal a

Kamu juga dapat menyimpan a terlebih dahulu. Urutan penugasan berikutnya perlu disesuaikan agar setiap nilai awal masih tersedia saat dibutuhkan.

a = 10
b = 20
c = 30

temp = a
a = c
c = b
b = temp

print("a =", a)
print("b =", b)
print("c =", c)

Coba di IDE

Output:

a = 30
b = 10
c = 20

Solusi 2: Penugasan beberapa target

Tulis nilai sumber di sisi kanan sesuai urutan targetnya. Untuk target a, b, c, urutan sumbernya adalah c, a, b.

a = 10
b = 20
c = 30

a, b, c = c, a, b

print("a =", a)
print("b =", b)
print("c =", c)

Coba di IDE

Output:

a = 30
b = 10
c = 20

Sisi kanan dibaca sebagai 30, 10, dan 20 sebelum nilai-nilai itu ditetapkan ke a, b, dan c. Hasilnya sama dengan kedua solusi sebelumnya.

Rangkuman

  • Penugasan = mengikat nama ke objek; penugasan ulang mengubah objek yang dirujuk nama tersebut.
  • a = b lalu b = a gagal menukar contoh di atas karena nilai awal a belum disimpan.
  • Variabel temp membantu menyimpan nilai awal. temp = None tidak wajib.
  • Gunakan a, b = b, a untuk pertukaran ringkas, atau a, b, c = c, a, b untuk rotasi seperti latihan.

Rujukan: penugasan dalam Python dan urutan evaluasi ekspresi.




Leave a Reply

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