Ads Home1

C# Tutorial - Menyalin Array dengan Kata Kunci Clone

http://www.xcodeplus.net/2017/10/csharp-tutorial-menyalin-array.html



Menyalin Array

Umumnya dalam dunia pemrograman terkadang ada masalah yang dimana kita untuk menyalin sebuah data ke dalam data lainnya, Dalam C# suatu array dapat menyalin elemen-elemen array ke dalam array yang lain, kita dapat melakukannya dengan kata kunci Clone.
 
Clone sebenarnya adalah sebuah metode yang juga berada di dalam kelas Array, dalam deklarasinya kita harus menuliskannya dengan cara seperti berikut:

Clone();

Array merupakan sebuah objek, maka array termasuk ke dalam tipe referensi. Dengan demikian, jika kita mengisikan suatu variabel array (misalnya A1) ke variabel array lainnya (misalnya A2) maka tidak akan terjadi proses penyalinan array. Dalam situasi semacam ini, yang akan terjadi hanya A1 dan A2 akan menunjuk ke elemen yang sama. Perhatikan potongan kode berikut:

int[] A1 = new int[] {100, 200, 300, 400, 500};
int[] A2 = A1;

Dengan menuliskan kode seperti di atas, perubahan elemen yang dilakukan ke variabel A2 akan mempengaruhi elemen yang terdapat pada A1, dan inipun berlaku sebaliknya.

Hal ini disebabkan karena A1 dan A2 sebenarnya merupakan dua buah referensi yang menunjuk ke elemen yang sama, seperti yang ditunjukan oleh gambar di bawah ini:
http://www.xcodeplus.net/2017/10/csharp-tutorial-menyalin-array.html
Gambar 1.1 Array sebagai referensi yang menunjuk suatu elemen yang sama


Agar elemen-elemen dari A1 dapat disalin ke A2, kita dapat menggunakan metode Clone() yang didefinisikan di dalam kelas array.

int [] A1 = new int[] {100, 200, 300, 400, 500};
int [] A2 = (int[]) A1.Clone();


Melalui Clone(), A1 dan A2 masing-masing akan menunjuk ke daftar elemen yang berbeda, seperti yang ditunjukan oleh gambar di bawah ini.
C# Tutorial - Menyalin Array dengan Kata Kunci Clone
Gambar 1.2 Dengan metode clone(), masing-masing Array akan menunjuk daftar elemen yang berbeda

Dengan cara seperti ini, perubahan nilai yang dilakukan pada A1 tidak akan mempengaruhi nilai yang terdapat pada A2. Berikut ini program yang akan menunjukan cara kerja metode Clone().

PROGRAM 1.1
using System;

class DemoSortingArray{

 static void Main(){
        
        // Membuat array dari tipe int yang bernama A1.
 int[] A1 =  new int[] {100, 200, 300, 400, 500};

        // Menyalin elemen-elemen array A1 ke dalam array A2.
        int[] A2 = (int[]) A1.Clone();

        Console.WriteLine("Tampilan Awal : ");

        foreach(int element in A1){
               Console.Write(element + " ");
        }
        Console.WriteLine();

        foreach(int element in A2){
               Console.Write(element + " ");
        }
        Console.WriteLine("\n");

        // Mengubah nilai elemen array A1.
 A1[0] = 1000;
        A1[1] = 2000;

        Console.WriteLine("Tampilan Setelah Diubah : ");
        
        foreach(int element in A1){
               Console.Write(element + " ");
        }
        Console.WriteLine();

        foreach(int element in A2){
               Console.Write(element + " ");
        }
        Console.WriteLine();


      Console.ReadLine();
        

  }
}


HASIL PROGRAM 1.1
Tampilan Awal :
100 200 300 400 500
100 200 300 400 500

Tampilan Setelah Diubah :
1000 2000 300 400 500
100 200 300 400 500



Perlu Anda ketahui bahwa proses penyalinan elemen array seperti ini hanya berlaku jika elemen-elemen array berasal dari tipe nilai (value type). Jika elemen array berupa objek – tipe referensi (reference type) maka yang akan disalin hanya referensinya saja. Objek-objek yang ditunjuk oleh referensi tersebut akan tetap sama.

Proses penyalinan seperti ini sering disebut dengan istilah Shallow copy. Jika proses penyalinan dilakukan untuk referensi sekaligus dengan objek yang ditunjuk, maka prosesnya disebut dengan Deep copy.

Metode Clone() hanya melakukan shallow copy, oleh sebab itu jika kita ingin menunjuk ke objek-objek yang berbeda kita perlu melakukan deep copy. Melalui cara tersebut, kita dapat membuat Salinan referensi beserta objeknya sekaligus.



C# (dibaca: C Sharp) merupakan bahasa pemrograman generasi baru yang mewah, kaya akan fitur, dan dapat digunakan untuk membuat beraneka raga program/aplikasi di berbagai bidang. C# mendukung beberapa paradigma pemrograman: imperatif, deklaratif, fungsional, serta pemrograman berorientasi objek. C# termasuk dalam keluarga C, dan fitur-fiturnya banyak diadopsi dari Java dan C++. C# menggunakan pustaka (library) yang terdapat dalam .NET Framework, kelengkapan di dalam pustaka .NET Framework menjadikan proses pengembangan program/aplikasi menggunakan C# relatif lebih mudah dan cepat jika dibandingkan dengan C++ dan Java.

No comments:

Kami menerima masukan dari anda jika memang ada pembahasan yang keliru dan kami sangat senang jika anda dapat berkontribusi untuk menyempurnakan postingan kami. Anda dapat mengirimkan email ke : hari18.muhammad@gmail.com

Jika postingan ini bermanfaat jangan lupa share postingan ini. Kami sangat merekomendasikan untuk anda yang membutuhkan informasi tentang computer stuff silakan subscribe blog kami dapatkan informasi terupdate dari kami secara gratiss. Terimakasih!

Powered by Blogger.