Jumat, 29 April 2016

Menukarkan 2 Variable di Java tanpa pihak Ketiga

Pada kesempatan ini, saya sedikit tertarik tentang metode pertukaran 2 nilai variable tanpa pihak ketiga. Maksud pihak ketiga disini bisa berbentuk variable ataupun media penampung nilai dalam bahasa pemrograman tersebut. Kenapa saya membahas ini? Seminggu yang lalu tepatnya, per tanggal 31 Agustus 2015 saya mencoba melamar pekerjaan sebagai junior programmer di salah satu perusahaan swasta yang sedang berkembang. Pada saat tes dan interview, saya mendapatkan salah satu soal yang menurut saya cukup menarik bagi saya. Karena, jujur memang pada saat itu saya belum pernah sama sekali mengerjakan soal tersebut. Yakni soalnya kira – kira seperti judul tutorial ini. Memang pada umumnya menukarkan 2 nilai variable dalam bahasa pemrograman sebenarnya gampang kalau Anda menggunakan variable bantuan sebagai tempat media penyimpanan sementaranya. Bentuk umumnya kira – kira seperti inilah kalau menukarkan 2 variable dengan bantuan pihak ketiga.

int a = 3;
int b = 2;
int c = a;
a = b;
b = c;
Hal itu sering saya gunakan ketika saya melakukan proses sorting menggunakan teknik Bubble Sort. Memang hal itu tidaklah salah dalam bahasa pemrograman karena, dalam membangun aplikasi Anda sebagai programmer diberikan kebebasan untuk berekspresi dan mempercantik tulisan kode Anda. Tapi, untuk melatih skill programming Anda apa salahnya Anda sedikit bereksperimen tentang hal ini. Tapi, sebagai catatan hal ini tidak bisa Anda jadikan patokan untuk membangun aplikasi Anda untuk selalu menggunakan teknik ini. Namun, dalam kondisi tertentu teknik ini bisa Anda gunakan. Tapi, dengan catatan bahwa kondisinya memang tepat untuk digunakan. Karena selain susah dan repot teknik ini juga bisa menghemat penggunaan memory pada aplikasi yang Anda bangun karena, sedikit menggunakan variable.
Dan berikut ialah contoh cara umum menukarkan nilai 2 variable dengan pihak ketiga.
/**
 * 
 * @author Yudi Setiawan
 * 
 * Teknik Umum dengan bantuan pihak ketiga
 *
 */

public class Main4
{
 public static void main(String[] args)
 {
  // variable
  int a = 3;
  int b = 2;
  
  System.out.println("A : "+a);
  System.out.println("B : "+b);
  
  // proses pertukaran
  int c = a;
  a = b;
  b = c;
  
  System.out.println("Tukar");
  System.out.println("A : "+a);
  System.out.println("B : "+b);
 }
}
Kira – kira seperti itulah bentuk umum dari penulisan coding Anda jika menukarkan 2 variable dengan pihak ketiga. Dan pada tutorial ini, ternyata saya berhasil menemukan 3 teknik untuk melakukan penukaran 2 variable tanpa bantuan pihak ketiga. Ketiga teknik ini sebenarnya hanya bermain – main di operasi matematika seperti , Penjumlahan, Pengurangan, Perkalian dan Pembagian. Berikut akan saya bahas satu per satu.
  1. Teknik Pertama
    Pada teknik pertama, Anda hanya bermain – main di operasi Penjumlahan dan Pengurangan. Berikut ialah contohnya
    /**
     * 
     * @author Yudi Setiawan
     * 
     * Teknik Pertama
     *
     */
    
    public class Main
    {
     public static void main(String[] args)
     {
      // variable
      int a = 5;
      int b = 3;
      System.out.println("A : "+a);
      System.out.println("B : "+b);
      
      // proses pertukaran
      a = a + b; // a = 5 + 3 = 8
      b = a - b; // b = 8 - 3 = 5
      a = a - b; // a = 8 - 5 = 3
      
      System.out.println("Tukar");
      System.out.println("A : "+a);
      System.out.println("B : "+b);
     }
    }
    Penjelasan :
    • Pertama, variable A dan B di inisialisasikan terlebih dahulu.
    • Kemudian, tambahkan nilai A dengan B dan simpan di dalam variable A atau A = A + B.
    • Setelah itu, kurangkan nilai A dengan variable B dan simpan di dalam variable B atau B = A – B
    • Kemudian. Kurangkan nilai A dengan variable B dan simpan di dalam variable A atau A = A – B.
    • Pada penjelasan ini harap perhatikan perubahan nilai variable A dan B. Karena, jika Anda paham di teknik pertama saya rasa untuk teknik kedua dan ketiga Anda tidak akan kesulitan untuk memahaminya lagi.
  2. Teknik Kedua
    Pada teknik kedua, Anda akan bermain – main di operasi perkalian dan pembagian. Tidaklah sulit memang namun, Anda harus teliti lagi dalam melihat perubahan nilai variable-nya. Berikut contohnya.
    /**
     * 
     * @author Yudi Setiawan
     * 
     * Teknik Kedua
     *
     */
    
    public class Main2 
    {
     public static void main(String[] args) 
     {
      // Variable
      int a = 3;
      int b = 2;
      System.out.println("A : "+a);
      System.out.println("B : "+b);
      
      // Proses pertukaran
      a = a * b; // a = 3 * 2 = 6
      b = a / b; // b = 6 / 2 = 3
      a = a / b; // a = 6 / 3 = 2
      System.out.println("Tukar");
      System.out.println("A : "+a);
      System.out.println("B : "+b);
      
     }
    }
    Penjelasan :
    • Pertama, kalikan nilai A dengan B dan simpan dalam variable A atau A = A * B
    • Setelah itu, bagi nilai A dengan B dan simpan dalam variable B atau B = A / B
    • Dan terakhir, bagi nilai A dengan B dan simpan dalam variable A atau A = A / B
    • Sekali lagi, perhatikan baik – baik perubahan nilai variable nya.
  3. Teknik Ketiga
    Pada teknik ketiga, masih sama operasi yang dipakai yakni Pengurangan dan Penjumlahan. Berikut ialah contohnya.
    /**
     * 
     * @author Yudi Setiawan
     * 
     * Teknik Ketiga
     *
     */
    
    public class Main3 
    {
     public static void main(String[] args) 
     {
      // variable
      int a = 3;
      int b = 2;
      System.out.println("A : "+a);
      System.out.println("B : "+b);
      
      // proses pertukaran
      a = a - b; // a = 3 - 2 = 1
      b = a + b; // b = 1 + 2 = 3
      a = b - a; // a = 3 - 1 = 2
      System.out.println("Tukar");
      System.out.println("A : "+a);
      System.out.println("B : "+b);
      
     }
    }
    Penjelasan :
    • Pertama, kurangkan nilai A dengan B dan simpan dalam variable A atau A = A – B
    • Setelah itu, tambahkan nilai A dengan B dan simpan dalam variable B atau B = A + B
    • Terakhir, kurangkan nilai B dengan A dan simpan dalam variable A atau A = B – A

Tidak ada komentar:

Posting Komentar