Monday, September 23, 2013

Logika sederhana - swap 2 variabel integer (angka) tanpa menggunakan variable temp

Bila ada suatu kasus kita ingin menswap atau menukar 2 variabel yg isinya angka terkadang kita harus menggunakan variable  tambahan atau variable temp.
Misalnya contoh codenya seperti ini, maaf kalo code nya pake java. :)


 void swap (int bil1, int bil2){  
 int temp;  
 temp= bil1;  
 bil1= bil2;  
 bil2= temp;  
 }  

Penjelasannya code diatas ;
Misal bil1 = 10 , bil2 =7;
temp = 10,
bil1= 7,
bil2= 10.
Maka bil1 dan bil2 sudah tertukar.

Tapi bagaimana jika untuk melakuakn swap 2 bilangan tidak boleh menggunakan variable temp atau variable tambahan lain.

Sebenarnya ada sedikit trik untuk menukar bil1 dan bil2 tanpa tambahan variable. Memakai operasi penjumlahan dan pengurangan.
Mari kita lihat contohnya.

 void swap (int bil1, int bil2){  
 System.out.println("before swap bil1 "+bil1);  
           System.out.println("before swap bil2 "+bil2+"\n");  
           bil1= bil1+ bil2;  
          
           bil2=bil1-bil2;  
           bil1=bil1-bil2;  
           System.out.println("after swap bil1 "+bil1);  
           System.out.println("after swap bil2 "+bil2);  
 }  

Penjelasannya seperti ini  
Misal bil1 =10 , bil2 =7
Pertama2 ;  bil1 diisi penjumlahan bil1 + bil2 ( 10+7 =17)
Selanjutnya bil2 diisi bil1 yg sudah diisi penjumlahan dikurang bil2 ( 17-7=10)
Terakhir bil1 diisi bil1 yg lama dikurangi bil2 (17-10=7)
Maka kedua bilangan tersebut otomatis tertukar bil1=7, bil2=10
Code diatas mungkin hanya bisa dilakukan jika variabelnya integer atau angka.
tidak akan bisa untuk menswap 2 buah string Misalnya.

Selamat mencoba trik diatas. :)

0 comments:

Post a Comment