Friday 9 September 2016

12. Arrays C# (Basic/Dasar)

Array merupakan tipe data yang menyimpan beberapa tipe data yang sama dalam satu wadah/kontainer dengan panjang wadah/kontainer yang tetap tidak bisa diubah panjangnya. Atau bisa dikatakan kalau arrays merupakan sekumpulan varibel yang disimpan dengan lokasi memory yang berurutan.

Tidak seperti halnya variabel yang mendefinisikan data tunggal, array disusun secara berurutan dengan menggunakan index, sehingga untuk mengakses nilai dalam array menggunakan index misalnya kita punya array A dengan panjang 2, maka kita dapat mengakses data pada array tersebut dengan menggunakan index sebagai A[0] sebagai index pertama dan A[1] sebagai index kedua dan begitu seterusnya. Index pada array dimulai dari 0.

Array tersusun dari lokasi memori yang berurutan, alamat memori rendah adalah elemen awal sedangkan alamat memori tertinggi adalah element terakhir.


Deklarasi Array

Mendeklarasikan array adalah dengan format syntax sebagai berikut:

datatype[] arrayName;


  • datatype - Adalah merupakan tipe data dari element array.
  • [] - Adalah untuk mendefinisikan sebagai array, adalah untuk menunjukkan ukuran panjang dari array.
  • arrayName - Adalan nama dari array.
Sebagai contoh:

double[] balance;

Inisialisasi Array

Sebelum meninisialisasi array, array tidak akan dapat diisi. Sehinggan untuk dapat menggunakan array perlu adanya inisialisasi array termasuk panjang array yang akan dipesan.

Untuk menginisialisasi array dapat menggunakan kata kunci new untuk membuat object array.

double[] balance = new double[10];

Statement diatas berarti kita telah menginisialisasi array dengan panjang array 10 element.

Mengisi Nilai Array

Kita dapat mengisi nilai array setelah inisialisasi dengan cara memanggil index dan mengisinya dengan nilai:

double[] balance = new double[10];
balance[0] = 4500.0;

Kita juga bisa mengisi array ketika kita mendeklarasikan array:

double[] balance = { 2340.0, 4523.69, 3421.0};

Kita juga bisa mengisi array ketika kita menginisialisasi array:

int [] marks = new int[5]  { 99,  98, 92, 97, 95};

Kita juga bisa menghilangkan panjang array ketika menginisialisasi nilai, karena panjangnya akan otomatis terdefinisi:

int [] marks = new int[]  { 99,  98, 92, 97, 95};

Ketika kita mendefinisikan array tanpa nilai, maka array tersebut secara otomatis akan mengisinya dengan nilai default dari tipe data, misalnya array integer (int) akan secara default bernilai 0.

Mengakses Element Array

Mengakses element array bisa menggunakan index array dimulai dari index 0 yang merupakan index pertama dari sebuah array:

Contoh mengakses index ke 9 dari array:

double salary = balance[9];

Berikut adalah contoh program untuk mengilustrasikan konsep deklarasi, inisialisasi, pengisian serta mengakses array:

using System;
namespace ArrayApplication
{
   class MyArray
   {
      static void Main(string[] args)
      {
         int []  n = new int[10]; /* n is an array of 10 integers */
         int i,j;

         /* initialize elements of array n */
         for ( i = 0; i < 10; i++ )
         {
            n[i] = i + 100;
         }
         
         /* output each array element's value */
         for (j = 0; j < 10; j++ )
         {
            Console.WriteLine("Element[{0}] = {1}", j, n[j]);
         }
         Console.ReadKey();
      }
   }
}

Keluaran program setelah dijalankan:

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

Menggunakan Foreach Loop untuk Mengakses Array

Pada contoh program sebelumnya kita telah menggunakan for loop untuk mengkases array, kita juga bisa mengakses array menggunakan foreach loop.

Berikut adalah program untuk akses array menggunakan foreach loop:

using System;
namespace ArrayApplication
{
   class MyArray
   {
      static void Main(string[] args)
      {
         int []  n = new int[10]; /* n is an array of 10 integers */
         
         /* initialize elements of array n */
         for ( int i = 0; i < 10; i++ )
         {
            n[i] = i + 100;
         }
         
         /* output each array element's value */
         foreach (int j in n )
         {
            int i = j-100;
            Console.WriteLine("Element[{0}] = {1}", i, j);
            
         }
         Console.ReadKey();
      }
   }
}

Hasil keluaran program setelah dijalankan:

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

Beberapa Konsep Penting dalam C# Array

1. Array Multidimensi

Seperti dalam bahasa pemrograman yang lain C# juga bisa mendefinisikan array dalam multidimensi atau sering disebut dengan rectangular array.

Misalnya kita ingin mendeklarasikan array 2 dimensi dengan tipe data String, maka dapat dilakukan dengan cara sebagai berikut:

string [,] names;

Untuk array 3 dimensi bisa kita deklarasikan sebagai berikut:

int [ , , ] m;

Bentuk array multi dimensi yang paling mudah adalah array 2 dimensi, bisa dikatakan array 2 dimensi adalah list dari array satu dimensi.

Array dua dimensi bisa digambarkan sebagai sebuah tabel yang mempunyai kolom dan baris, berikut adalah ilustrasi tabel untuk array 2 dimensi yang terdiri dari 3 baris dan 4 kolom.


Elemen dari array dapat diakses dengan a[i, j], dimana a adalah nama dari array sedangkan i adalah index baris dan j adalah index kolom.

Untuk melakukan inisialisasi array 2 dimensi adalah sebagai berikut:

int [,] a = new int [3,4] {
   {0, 1, 2, 3} ,   /*  initializers for row indexed by 0 */
   {4, 5, 6, 7} ,   /*  initializers for row indexed by 1 */
   {8, 9, 10, 11}   /*  initializers for row indexed by 2 */
};

Untuk mengakses array dua dimensi kita menggunakan index baris dan kolom:

int val = a[2,3];

Untuk memperjelas marilah kita coba program berikut ini:

using System;
namespace ArrayApplication
{
   class MyArray
   {
      static void Main(string[] args)
      {
         /* an array with 5 rows and 2 columns*/
         int[,] a = new int[5, 2] {{0,0}, {1,2}, {2,4}, {3,6}, {4,8} };
         int i, j;
         
         /* output each array element's value */
         for (i = 0; i < 5; i++)
         {
            for (j = 0; j < 2; j++)
            {
               Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i,j]);
            }
         }
         Console.ReadKey();
      }
   }
}

Setelah program dijalankan akan memberikan hasil sebagai berikut:

a[0,0]: 0
a[0,1]: 0
a[1,0]: 1
a[1,1]: 2
a[2,0]: 2
a[2,1]: 4
a[3,0]: 3
a[3,1]: 6
a[4,0]: 4
a[4,1]: 8

2. Jagged Array

Jagged array adalah array di dalam array, memang sangat rumit untuk pemula jika berhadapan dengan jagged array termasuk saya :-). Tetapi akan sangat menantang ketika kita mengolah data jagged array :-).

Untuk mendefinisikan jagged array adalah sebagai berikut:

int [][] scores;

Sedangkan untuk menginisialisasi dan mengisi jagged array bisa dengan cara sebagai berikut:

int[][] scores = new int[5][];
for (int i = 0; i < scores.Length; i++) 
{
   scores[i] = new int[4];
}

Kita juga bisa menginisialisasi jagged array dengan cara sebagai berikut:

int[][] scores = new int[2][]{new int[]{92,93,94},new int[]{85,66,87,88}};

Dimana scores mempunyai 2 element yaitu element index 0 yang berupa array dengan panjang 3 dan element dengan index 1 yang berupa array dengan index 1.

Agar lebih gamblang mari kita mengilustrasikannya dengan sebuah program:

using System;
namespace ArrayApplication
{
   class MyArray
   {
      static void Main(string[] args)
      {
         /* a jagged array of 5 array of integers*/
         int[][] a = new int[][]{new int[]{0,0},new int[]{1,2},new int[]{2,4},new int[]{ 3, 6 }, new int[]{ 4, 8 } };
         int i, j;
         
         /* output each array element's value */
         for (i = 0; i < 5; i++)
         {
            for (j = 0; j < 2; j++)
            {
               Console.WriteLine("a[{0}][{1}] = {2}", i, j, a[i][j]);
            }
         }
         Console.ReadKey();
      }
   }
}

Hasil keluaran program adalah sebagai berikut:

a[0][0]: 0
a[0][1]: 0
a[1][0]: 1
a[1][1]: 2
a[2][0]: 2
a[2][1]: 4
a[3][0]: 3
a[3][1]: 6
a[4][0]: 4
a[4][1]: 8

3. Array Sebagai Parameter Method

Kita bisa melewatkan array sebagai parameter method, berikut adalah contoh untuk mengilustrasikannya:

using System;
namespace ArrayApplication
{
   class MyArray
   {
      double getAverage(int[] arr, int size)
      {
         int i;
         double avg;
         int sum = 0;
         for (i = 0; i < size; ++i)
         {
            sum += arr[i];
         }
         avg = (double)sum / size;
         return avg;
      }
      
      static void Main(string[] args)
      {
         MyArray app = new MyArray();
         
         /* an int array with 5 elements */
         int [] balance = new int[]{1000, 2, 3, 17, 50};
         double avg;

         /* pass pointer to the array as an argument */
         avg = app.getAverage(balance, 5 ) ;

         /* output the returned value */
         Console.WriteLine( "Average value is: {0} ", avg );
         Console.ReadKey();
      }
   }
}

Setelah program dijalankan akan memberikan hasil sebagai berikut:

Average value is: 214.4

4. Sebagai Parameter Jika kita tidak yakin berapa panjang parameter yang akan dimasukkan

Array juga berguna untuk parameter method jika kita tidak yakin berapa panjang parameter yang akan diterima oleh method. Program berikut ini mengilustrasikan bagaimana array sangat berguna hehe:

using System;
namespace ArrayApplication
{
   class ParamArray
   {
      public int AddElements(params int[] arr)
      {
         int sum = 0;
         foreach (int i in arr)
         {
            sum += i;
         }
         return sum;
      }
   }
      
   class TestClass
   {
      static void Main(string[] args)
      {
         ParamArray app = new ParamArray();
         int sum = app.AddElements(512, 720, 250, 567, 889);
         Console.WriteLine("The sum is: {0}", sum);
         Console.ReadKey();
      }
   }
}

Setelah program dijalankan akan memberikan hasil sebagai berikut:

The sum is: 2938

Ok guys sampai ketemu di tutorial selanjutnya Strings, jangan pernah menyerah jadi programmer karena akan menjadi perkerjaan yang paling banyak dicari.

No comments:

Post a Comment