Menukar isi dua wadah

Kenapa menukar dua nilai butuh wadah ketiga, dan apa yang hilang kalau wadah itu tidak ada.

Kenapa butuh wadah ketiga

Di dalam program, gelas itu disebut variabel. Satu variabel adalah satu tempat bernama yang menyimpan tepat satu nilai. Menuliskan nilai baru ke dalamnya tidak menambah, melainkan mengganti. Nilai lamanya hilang dan tidak dapat dipanggil kembali.

IngatMenyimpan nilai ke dalam variabel selalu menimpa isi sebelumnya. Tidak ada riwayat, tidak ada undo.

Urutan yang salah, dan akibatnya

Sekarang mari kita lakukan yang salah lebih dulu, sebab kesalahan inilah yang paling sering terjadi dan bentuknya kelihatan benar sekali dibaca.

Tanpa wadah ketiga

SET a = b
SET b = a

Dengan wadah ketiga

SET temp = a
SET a = b
SET b = temp

Di kolom kiri, baris pertama sudah menimpa a. Ketika baris kedua berjalan, nilai a yang asli sudah tidak ada lagi, jadi b hanya menerima kembali nilainya sendiri. Keduanya berakhir sama.

SET a = b
SET b = a
a1
b2

Sebelum apa pun dijalankan: a berisi 1, b berisi 2.

Langkah 1 dari 3
Langkahi satu satu cara yang salah. Perhatikan angka 1 yang hilang di langkah kedua.

Urutan yang benar

SET temp = a
SET a = b
SET b = temp
a1
b2
tempbelum ada

Keadaan awal. temp belum ada.

Langkah 1 dari 4
Sekarang cara yang benar. temp memegang angka 1 sampai giliran b tiba.

Perhatikan bahwa temp tetap berisi 1 di akhir. Itu tidak salah dan tidak perlu dibersihkan. Yang penting temp tidak lagi dibaca siapa pun setelah baris ketiga.

Periksa pemahaman

Kalau urutannya diubah menjadi SET temp = a, lalu SET b = temp, lalu SET a = b, apa hasil akhirnya untuk a = 1 dan b = 2?

Ringkasan

  • Satu variabel menyimpan tepat satu nilai, dan menulis ke dalamnya menghapus isi lamanya.
  • Menukar dua nilai menuntut satu tempat penyimpanan sementara.
  • Urutan baris menentukan hasil. Tiga baris yang sama dengan urutan berbeda memberi hasil berbeda.
  • Kesalahan urutan tidak memunculkan pesan galat. Satu satunya cara menemukannya adalah melacak nilainya baris per baris.