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
Sebelum apa pun dijalankan: a berisi 1, b berisi 2.
Urutan yang benar
SET temp = a SET a = b SET b = temp
Keadaan awal. temp belum ada.
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.