.:: Jasa Membuat Aplikasi Website,Desktop,Android Order Now..!! | | Order Now..!! Jasa Membuat Project Arduino,Robotic,Print 3D ::.

[OOP] Pass by Reference di Java dan C#

0 komentar


بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم
bismillaahirrahmaanirrahiim

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
Assalamu'alaikum warahmatullahi wabarakatuh

 Mungkin bagi Anda seorang programmer tentu sudah sangat familiar dengan nama Java dan C#. Ya.. Keduanya adalah bahasa pemrograman berbasis OOP yang menurut saya sangat mirip dalam hal penggunaannya. Kedua bahasa ini merupakan bahasa yang cukup populer dan cukup bersaing jika dibanding bahasa pemrograman lainnya.

Pada artikel kali ini saya akan membahas sedikit contoh pembuatan method dengan parameter pass by reference di java dan C#. Pass by reference sendiri merupakan suatu method yang melewatkan alamat dari suatu variabel, bukan isi dari variabel. Untuk lebih jelasnya silahkan simak contoh kasus sederhana di bawah :

Contoh kasus Pass by reference :
Misal saya memiliki 2 buah variabel integer, misal : 
int a = 5, b = 10;
Kasusnya saya akan menukar nilai kedua variabel ini melalui suatu method 
swap(int a, int b)
Nah.. bagaimana cara membuatnya?? Tidak bisa menggunakan return value bukan? Satu-satunya cara adalah dengan menggunakan pass by reference.

Nah disini saya akan membahas cara membuat method / fungsi swap dalam beberapa bahasa pemrograman, khususnya java dan C#. Sebelum melangkah ke java dan C# mari kita tengok sedikit fungsi swap pada bahasa C++.

Fungsi swap pada C++
Pada C++ pass by reference dapat kita lakukan dengan memberikan parameter berupa pointer dengan tanda * dan untuk melewatkan variabel gunakan tanda & yang menyatakan alamat atau reference dari suatu variabel.
 
void swap(int* a, int* b){
int* temp = a;
a
= b;
b
= temp;
}

int main(){
int x = 5, y = 10;
int *a = &x, *b = &y;
swap
(a, b);
printf
("%d %d\n"), *a, *b); //print : 10 5
}



Fungsi swap pada C#
Pada C# fungsi swap menjadi jauh lebih mudah dibanding C++ karena memang dasarnya C# adalah bahasa pemrograman yang cukup modern. Untuk membuat parameter pass by reference cukup gunakan kata kunci ref.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1{
    class Program{
        static void Main(string[] args){
            int x=5, y=10;
            swap(x, y);
           
            Console.Write(x); //print : 10
            Console.Write(y); //print : 5
        }

        static void swap(ref int a, ref int b){
            int temp = a;
            a = b;
            b = temp;
        }
    }
}
 
Fungsi swap pada Java
Pada dasarnya java sama sekali tidak menggunakan pass by reference dan tidak dikenal istilah pass by reference pada method java. Namun perlu diingat tentang teori dasar java bahwa secara implisit untuk menghemat memori, java akan me-reference alamat yang sama dari satu obyek (instance) yang sama meskipun ditunjuk oleh variabel yang berbeda. Mungkin bingung yah deskripsi saya? saya juga bingung mau nulis kayak gimana :p Ok langsung aja ke contoh :
public class MainClass {
    public static void main(String[] args) {
        Mobil a = new Mobil(100);
        Mobil b = a;
        System.out.println(b); //print : 100
        a.setKecepatan(50);
        System.out.println(b); //print 50      
    } 

    private static class Mobil{
        private int kecepatan = 100;

        public Mobil(int kecepatan) {
            this.kecepatan = kecepatan;
        }

        public void setKecepatan(int kecepatan) {
            this.kecepatan = kecepatan;
        }     

        @Override
        public String toString() {
            return "Mobil kecepatan : " + this.kecepatan;
        }     
    }
}
 
 
Output :
run:
Mobil kecepatan : 100
Mobil kecepatan : 50
BUILD SUCCESSFUL (total time: 0 seconds)
 
Kita lihat padascript di atas, kita sama sekali merubah value dari variabel b, yang kita rubah hanya variabel a dengan script a.setKecepatan(50). Namun yang terjadi b juga ikut berubah, terbukti ketika di print nilainya menjadi 50, sama seperti a. Hal ini menunjukkan bahwa a dan b menunjuk pada alamat memori yang sama, sehingga jika salah satu di rubah maka akan berdampak pada yang lainnya. Penunjukan alamat memori yang sama ada dalam statement Mobil b = a; Sifat menunjuk alamat memori yang sama inilah yang bisa kita manfaatkan untuk pass by reference di java. Kita juga dapat memanfaatkan type data Generic untuk membuat obyek reference yang fleksibel. Langsung saja contoh pass by reference di java :

Pertama buat dulu Ref.java
 
public class Ref<T> {
    public T value;

    public Ref(T value) {
        this.value = value;
    }

    @Override
    public String toString() {
        return this.value.toString();
    }
}

Kamudian ini fungsi swapnya ada di PassByReferenceClass.java

public class PassByReferenceClass {
    public static void main(String[] args) {
        Ref<Integer> x = new Ref<>(5);
        Ref<Integer> y = new Ref<>(10);
       
        swap(x, y);
       
        System.out.println(x + " " + y);
    } 
   
    public static void swap(Ref a, Ref b){
        Object temp = a.value;
        a.value = b.value;
        b.value = temp;
    }
}

Dan outputnya adalah sbb :
 
run:
10 5
BUILD SUCCESSFUL (total time: 0 seconds)

Ok... Mungkin sekian artikel saya ini, kurang lebihnya saya mohon maaf. Tetap semangat dan terus berkarya ^^


Update Contact :
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email : Fajarudinsidik@gmail.com
NB :: Bila Sobat tertarik Ingin membuat software, membeli software, membeli source code, membeli hardware elektronika untuk kepentingan Perusahaan maupun Tugas Akhir (TA/SKRIPSI), Insyaallah Saya siap membantu, untuk Respon Cepat dapat menghubungi kami, melalui :

No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email: Fajarudinsidik@gmail.com


atau Kirimkan Private messanger melalui email dengan klik tombol order dibawah ini :

ٱلْحَمْدُ لِلَّهِ رَبِّ ٱلْعَٰلَمِين
Alhamdulilah hirobil alamin

وَ السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
wassalamualaikum warahmatullahi wabarakatuh


Artikel [OOP] Pass by Reference di Java dan C#, Diterbitkan oleh scodeaplikasi pada Selasa, 25 Maret 2014. Semoga artikel ini dapat menambah wawasan Anda. Website ini dipost dari beberapa sumber, bisa cek disini sumber, Sobat diperbolehkan mengcopy paste / menyebar luaskan artikel ini, karena segala yang dipost di public adalah milik public. Bila Sobat tertarik Ingin membuat software, membeli software, membeli source code ,Dengan Cara menghubungi saya Ke Email: Fajarudinsidik@gmail.com, atau No Hp/WA : (fajar) : 085369237896, (puat) : 085267792168.

Tawk.to