People Innovation Excellence
 
Feature Image

Menukar isi dua buah variabel

Pada post kali ini, saya akan menjelaskan beberapa teknik untuk menukar nilai dari 2 variabel. Maksudnya ketika kita mempunyai variabel a dengan nilai 1 dan variabel b dengan nilai 2. maka setelah kita tukar nilainya, variabel a mempunyai nilai 2 dan variabel b mempunyai nilai 1.

Ada beberapa metode yang dapat digunakan untuk menukar nilai ini.

  1. Menggunakan Variabel Sementara
  2. Menggunakan Hanya 2 Variabel dengan melibatkan perhitungan aritmatika
  3. Menggunakan Hanya 2 Variabel dengan melibatkan bits operation XOR (eXclusive OR)

Perlu diketahui untuk cara ke-2 dan ke-3, lebih baik dijalankan hanya untuk bilangan bulat saja (baca mengenai bilangan bulat di http://id.wikipedia.org/wiki/Bilangan_bulat ).

1. Menggunakan Variabel Sementara

Cara ini adalah cara termudah dan cara yang paling ‘tepat menuju sasaran’ / ‘naif’ karena cara ini menggunakan logika keseharian yang tidak rumit. Logika dari cara ini adalah seperti ini:

Asumsikan kita mempunyai secangkir kopi di gelas A, dan secangkir teh di gelas B. Bagaimana cara kita untuk menukar isi dari kedua cangkir ini sehingga Kopi di gelas B, dan teh di gelas A?

Cara termudah tentunya adalah kita menghadirkan gelas C ! Sehingga kopi yang di gelas A dituang ke gelas C, dan teh yang di gelas B dituang ke gelas A, setelah itu Kopi yang di gelas C tuangkan ke gelas B. Tertukarlah sudah isi dari kedua buah gelas itu. mudah bukan?

dengan logika sederhana ini, kita dapat membuat algoritmanya dalam bahasa C seperti berikut:

Sangat mudah bukan?

Bagaimana dengan Cara ke-2?

2. Variabel, Perhitungan !

Boleh dikatakan bahwa cara ke-2 ini secara logika lebih sulit untuk terpikirkan karena melibatkan perhitungan aritmatika. Namun, perhitungan aritmatika ini sebenarnya hanya melibatkan operator tambah dan kurang saja. Terlebih lagi, kita tidak membutuhkan sebuah variabel tambahan seperti cara pertama.

Mari kita asumsikan bahwa variabel a memiliki nilai 2 dan b memiliki nilai 3. Maka caranya adalah kita buat variabel a memiliki nilai hasil tambah dari variabel a dan b yaitu menjadi 5, dan variabel b tetap memiliki nilai 3. kemudian, variabel b kita buat agar menyimpan hasil dari nilai variabel a dikurang variabel b, yaitu 5 – 3 = 2. Sampai disini, maka variabel a kita buat agar menyimpan hasil dari variabel a dikurang variabel b yaitu 5 – 2 = 3. Maka setelah proses ini selesai, nilai dari variabel a dan b akan tertukar.

Logika di atas, kita dapat membuat algoritmanya dalam bahasa C seperti berikut:

Lalu, apakah ada yang dapat menemukan kelemahan dari algoritma di atas? Atau bahkan testcase (test data) yang dapat membuat algoritma di atas menjadi salah?

Setelah ini, apakah anda tertarik untuk membahas algoritma tercepat untuk tukar nilai ini?? Algoritma ke-3 akan sedikit rumit karena bukan melibatkan perhitungan, melainkan dengan cara operasi bits.

Tertarik?

3. XOR ! Bits Operation Involved

Untuk mengerti tentang operasi ini, anda harus terlebih dahulu mengenal operasi bits XOR. Sesuai dengan namanya, operasi bits bekerja dalam level bits. Baca mengenai XOR di http://en.wikipedia.org/wiki/Exclusive_or

Perlu diketahui, operasi bits memiliki sifat sebagai berikut

sehingga, melalui sifat tersebut, Apabila kita memiliki dua buah variabel A dan B, dan melakukan operasi berikut

X = ( A XOR B ) XOR A, maka hasil dari X adalah B. Kenapa?

Sehingga, melihat sifat tersebut, kita dapat menukar isi dari variabel A dan B melalui algoritma berikut:

Setelah baris ketiga, maka nilai dari variabel A akan berubah menjadi nilai variabel B, dan begitu pula dengan nilai variabel B akan berubah menjadi nilai variabel A.

Berikut adalah algoritma di atas diimplementasikan dengan bahasa C:

Operator “^” pada bahasa C/C++ bukan merupakan operator untuk melakukan pangkat ( “^” adalah operator untuk pangkat dalam microsoft excel ) melainkan operator bitwise XOR.

Akhir kata, semoga tutorial ini bermanfaat bagi kita semua sehingga yang sebelumnya tidak mengerti menjadi mengerti, yang sebelumnya tidak tahu menjadi tahu, dan yang sebelumnya sudah mengerti menjadi tambah mengerti.


Published at : Updated
Written By
Felix Jingga
Leave Your Footprint
  1. Sederhana tapi mengena. Ditungu tips lainnya. Top!

Periksa Browser Anda

Check Your Browser

Situs ini tidak lagi mendukung penggunaan browser dengan teknologi tertinggal.

Apabila Anda melihat pesan ini, berarti Anda masih menggunakan browser Internet Explorer seri 8 / 7 / 6 / ...

Sebagai informasi, browser yang anda gunakan ini tidaklah aman dan tidak dapat menampilkan teknologi CSS terakhir yang dapat membuat sebuah situs tampil lebih baik. Bahkan Microsoft sebagai pembuatnya, telah merekomendasikan agar menggunakan browser yang lebih modern.

Untuk tampilan yang lebih baik, gunakan salah satu browser berikut. Download dan Install, seluruhnya gratis untuk digunakan.

We're Moving Forward.

This Site Is No Longer Supporting Out-of Date Browser.

If you are viewing this message, it means that you are currently using Internet Explorer 8 / 7 / 6 / below to access this site. FYI, it is unsafe and unable to render the latest CSS improvements. Even Microsoft, its creator, wants you to install more modern browser.

Best viewed with one of these browser instead. It is totally free.

  1. Google Chrome
  2. Mozilla Firefox
  3. Opera
  4. Internet Explorer 9
Close