Kamis, 21 November 2013

C#.NET No.6:[Beginner] Belajar Arrays dan Pengertian Inheritance

Sekarang, melanjutkan tutorial sebelumnya, pada tutorial ini kita akan membahas 2 BAB sekaligus (sama seperti tutorial-tutorial sebelumnya) yaitu Arrays dan Inheritance. Saya yakin, anda pasti sudah familiar dengan sesuatu yang bernama ‘Array’. Semua bahasa pemrograman menggunakan array sebagai sebuah variable yang digunakan untuk menyimpan lebih dari satu data.

Dan untuk anda yang sudah familiar dengan OOP (Object Oriented Programming) atau pemrograman berorientasi object (Java, Actionscript3, C++, C#,VB dan lain lain) pasti juga sangat familiar dengan yang namanya ‘inheritance’. Nah, untuk yang benar benar buta, semoga tutorial ini ada manfaatnya :)


Terlebih dahulu, marilah kita membahas pengertian Arrays terlebih dahulu. Oh iya, saya sering sekali berkunjung ke MSDN (Microsoft Developer Network), bila anda tertarik dengan Windows anda dapat bergabung dengan para developer di sana, dan tutorial Arrays ini pun juga saya ambil contoh-contohnya dari sana :)

Dalam tutorial ini kita akan membahas beberapa pengertian Arrays diantaranya adalah sebagai berikut:
*Apa itu Arrays?
*Bagaimana cara mendeklarasikan Arrays?
*Bagaimana cara menginisialisasi Arrays?
*Bagaimana cara mengakses Array Member?
*Array merupakan Object??
*Penggunaan Foreach dalam Arrays?

Mari terlebih dahulu kita mulai dari pengertian Array. Array merupakan sebuah variable yang dapat menyimpan lebih dari satu data. Sama seperti pemrograman yang lain, array merupakan ‘zero indexed’, artinya array index dimulai dari nol. Sebetulnya semua Array itu sama antar bahasa pemrograman yang satu dengan yang lain, tetapi ada beberapa yang berbeda dalam C#.

Nah, apa sih bedanya??? Anda pastinya masih inget kan tentang ‘type data’ dan ‘identifier’? coba lihat kode di bawah ini.

int numbers;
string names;

‘int’ dan ‘string’ merupakan ‘type data’, sedangkan ‘numbers’ dan ‘names’ merupakan identifier.

Perbedaan antara Array dalam C# dengan bahasa pemrograman lain ialah dalam pendeklarasian Array. Dalam C#, saat mendeklarasikan array, square bracket( [] ) harus diletakan setelah type data bukan setelah identifier.

Contoh:
int[] numbers;
kalo bahasa lain pasti:
int numbers[];

Bila anda suka baca-baca di MSDN, dalam C#, size dari array bukan merupakan bagian dari type data seperti pada bahasa C. Sehingga kita dapat mendeklarasikan sebuah array seperti kode di bawah ini:

int[] numbers; // declare numbers as an int array of any size
numbers = new int[10]; // numbers is a 10-element array
numbers = new int[20]; // now it's a 20-element array

*Bagaimana cara mendeklarasikan array?

Dalam pendeklarasian Array, C# mendukung single-dimensional arrays, multi-dimensional arrays (rectangular arrays) dan array-of-arrays. Mari kita lihat contoh-contoh nya saya mengambilnya dari MSDN:

Single-dimensional arrays:
int[] numbers;

Multi-dimensional arrays:
string[,] names;

Array-of-arrays (jagged):
byte[][] scores;

Nah, mungkin untuk yang sering bermain-main dengan arrays akan bisa lebih tambah pengetahuan tentang jenis-jenis array ini. Apakah cukup sampai di sini?? Tidak, pendeklarasian di atas tidak membuat sebuah arrays. Dalam C#, array adalah sebuah object, sehingga kita perlu membuat instance, nah, yang benar adalah seperti dibawah ini:

Single-dimensional arrays:
int[] numbers = new int[5];

atau inisialisasinya:
int[] numbers = new int[5] {1, 2, 3, 4, 5};
string[] names = new string[3] {"Okie", "Nega", "Ralia"};

Multi-dimensional arrays:
string[,] names = new string[5,4];

atau inisialisasinya:
int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = new string[2, 2] { {"Okie","Nega"}, {"Ralia","Ulvi"} };

Array-of-arrays (jagged):
byte[][] scores = new byte[5][];
for (int x = 0; x < scores.Length; x++) { scores[x] = new byte[4]; } Atau inisialisasinya: int[][] numbers = new int[2][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} }; atau int[][] numbers = { new int[] {2,3,4}, new int[] {5,6,7,8,9} };


ARRAY ADALAH OBJECT
Dalam C#, Array adalah Object. Masih inget dengan ‘System.Array’ kan? Sebagai object, anda dapat menggunakan semua properties , method, dan class member yang dimiliki oleh System.Array (Mirip juga seperti Actionscript). Nah, method/properties ini contohnya adalah length, sorting, searching, copying dan lain lain.
Contoh:
int[] numbers = {1, 2, 3, 4, 5};
int LengthOfNumbers = numbers.Length;

Nah, untuk lebih lengkapnya anda dapat berkunjung ke MSDN.

Oke, mari sekarang kita lanjut ke ‘inheritance’.

INHERITANCE
Apasih sebetulnya inheritance?? Kalo kita terjemahkan ke dalam bahasa Indonesia arti dari ‘inheritance’ adalah ‘pewarisan’. Yup, ‘inheritance’ merupakan konsep utama dari OOP (Object Oriented Programming/Pemrograman berorientasi Object). Penerapan ‘inheritance’ ini tentu akan mempermudah sekaligus mempersingkat waktu untuk para Programmer.

Perhatikan contoh kode berikut ini:

  1. using System;
  2. public class ParentClass
  3. {
  4.     public ParentClass()
  5.     {
  6.         //contructor dari parent
  7.     }
  8.     public void print()
  9.     {
  10.         Console.WriteLine("Parent class C# nih.");
  11.     }
  12. }
  13. public class ChildClass : ParentClass
  14. {
  15.     public ChildClass()
  16.     {
  17.         //constructor dari child
  18.     }
  19.     public static void Main()
  20.     {
  21.         ChildClass child = new ChildClass();
  22.         child.print();
  23.     }
  24. }


Kode di atas akan menampilkan “Parent class C# nih.” Parent class bisa dibilang merupakan ‘base class’ dari child class. Perhatikan tanda “ChildClass : ParentClass” yang merupakan hubungan antara ‘base class’ dengan ‘derived class’.

Perlu kita ketahui bersama bahwa C# hanya mendukung single pewarisan class (single class inheritance) saja. Meskipun demikian, kita dapat menggunakan multiple interface.. Nah, ni ada istilah asing lagi , yaitu ‘interface’. Apa sih ini?? Kita akan membahas nya pada tutorial selanjutnya.

Nah, pewarisan (inheritance) yang kita bahas ini adalah contoh yang simple-simple saja, banyak sekali contoh contoh lebih kompleks yang dapat anda temukan di internet. Oke, semoga bermanfaat bagi yang benar – benar buta dengan Array dan Inheritance di C#.


SUMBER : MEDIA TUTORIAL

C#.NET No.5: [Beginner] Command line parameter dan Pengenalan Class

Mari mengenal Command Line dan Class!. Sebelumnya kita telah membahas tentang Hello World dan Namespace, nah sekarang kita akan membahas apa itu class dan contoh penulisan Command Line. Oke, mari kita mulai dengan Command Line terlebih dahulu. Anda tentu tidak asing dengan yang namanya ‘Console’ kan?? Atau dalam windows biasanya cmd.exe, nah, inilah yang kita sebut dengan command line. Jadi kita akan membuat sebuah aplikasi Command Line seperti itu.


Untuk membuat console application sendiri anda dapat membuka Visual Studio anda (saya menggunakan Visual Studio 2010) -> New -> Project -> Visual C# -> Console Application.

Nanti anda secara default akan mendapatkan kode seperti berikut ini pada visual studio:

Perhatikan bahwa kita memiliki sebuah ‘solution’ dengan ‘namespace’ adalah ConsoleApplication1 dan nama file ‘Program.cs’ serta nama class adalah ‘Program’.

Kode diatas bila anda debug akan menghasilkan sebuah aplikasi console, apakah kita akan membuat kode sama seperti diatas?? No, kita akan membuat yang lebih simple seperti yang saya dapat dari MSDN (Microsoft Developer Network). Perhatikan kode berikut ini:

  1. //Program.cs
  2. using System;
  3. public class Program
  4. {
  5.    public static void Main(string[] args)
  6.    {
  7.        // The Length property is used to obtain the length of the array.
  8.        // Notice that Length is a read-only property:
  9.  
  10.        Console.WriteLine("Number of command line parameters = {0}",
  11.           args.Length);
  12.        for(int i = 0; i < args.Length; i++)
  13.        {
  14.            Console.WriteLine("Arg[{0}] = [{1}]", i, args[i]);
  15.        }
  16.    }
  17. }


Saat anda debug, maka akan menghasilkan sebuah window console, silahkan anda ketikan saja ‘Program A B C D’ (tanpa tanda kutip), maka output akan menjadi seperti:
Number of command line parameters = 3
Arg[0] = [A]
Arg[1] = [B]
Arg[2] = [C]

Gampang bukan??? (^^,)

Nah, diatas kita menggunakan for looping, ada yang lain lagi yaitu menggunakan foreach, coba perhatikan kode di bawah ini:

  1. //Program.cs
  2. using System;
  3. public class Program
  4. {
  5.    public static void Main(string[] args)
  6.    {
  7.        Console.WriteLine("Number of command line parameters = {0}",
  8.           args.Length);
  9.        foreach(string s in args)
  10.        {
  11.           Console.WriteLine(s);
  12.        }
  13.    }
  14. }


Sekarang ketikan seperti ini di console window yang muncul ‘program Okie Eko Wardoyo’ (tanpa tanda kutip), maka hasilnya adalah:

Number of command line parameters = 3
Okie
Eko
Wardoyo

Wow, how easy it is??? :)

CLASS

Apa itu class?? Pada tutorial-tutorial sebelumnya kita tanpa sengaja setiap kode telah menggunakan class. Pada pembahasan C# class ini kita akan belajar tentang:
*Implement Constructor
*Perbedaan antara instance dan static member
*Pengertian Destructor
*Class Member

Kalo cara awam pengertian class adalah sebuah set dari kode yang dideklarasikan dengan keyword ‘class’ diikuti oleh ‘nama class’ serta dilanjutkan dengan beberapa class member yang diapit oleh tanda curly braces (kurung kurawal).

Setiap class berisi sebuah constructor yang akan dipanggil atau dieksekusi secara otomatis setiap instance class dibuat. Bingung kan? Tujuan dari constructor sebetulnya adalah meng-inisialisasi class member saat instance class dibuat. Pasti tambah bingung, class member itu apa sih?? Constructor itu apa sih? Dan lain lain,, hehe

Constructor tidak me-return value dan selalu memiliki nama yang sama dengan class. Mari kita lihat contoh codenya:

  1. //Coba.cs
  2. // Namespace Declaration
  3. using System;
  4. // helper class
  5. class Coba
  6. {
  7.     string text_ku;
  8.  
  9.     // Constructor
  10.     public Coba(string input_text)
  11.     {
  12.         text_ku = input_text;
  13.     }
  14.  
  15.     // Instance Method
  16.     public void tampil()
  17.     {
  18.         Console.WriteLine("{0}", text_ku);
  19.     }
  20.  
  21.     // Destructor
  22.     ~Coba()
  23.     {
  24.         // Some resource cleanup routines
  25.     }
  26. }
  27.  
  28. // Program start class
  29. class Program
  30. {
  31.     // Main begins program execution.
  32.     public static void Main()
  33.     {
  34.         // Instance of Coba
  35.         Coba contoh = new Coba("Hai, saya C#");
  36.  
  37.         // Call Output class' method
  38.         contoh.tampil();
  39.     }
  40. }


Nah, pada Coba.cs diatas, kita memiliki sebuah Class dengan nama ‘Coba’, didalam class Coba ini kita memiliki member class yaitu ‘text_ku’ yang bertipe ‘String’. Nah, kemudian juga terdapat sebuah constructor ‘Coba’. Seperti yang sudah kita bahas diatas, pada contructor ini kita meng-inisialisasi ‘text_ku’ tadi.

Nah, masih pada class ‘Coba’, kita juga membuat sebuah method ‘tampil’ yang akan menampilkan ‘text_ku’ tadi. Juga ada ‘Desctructor Coba’ dengan tanda ~.

Kemudian pada class lain, dalam contoh diatas adalah class ‘Program’, kita membuat sebuah instance baru dari ‘Class Coba’ dengan nama ‘contoh’. Inilah instance kita. Dari instance name yang kita buat, kita memanggil method pada class yang dipanggil yaitu method tampil(). Mudah bukan???

Ah, mungkin ada yang belum dibahas sebelum pamitan, yaitu Destructor ~Coba().

Destructor sama dengan Constructor, kecuali mereka memiliki tanda ~ di depannya. Destructor ini tidak memiliki parameter dan tidak me-return value. Ada kutipan bagus tentang pengertian desctructor yang saya ambil dari csharp-station.com “Destructors are places where you could put code to release any resources your class was holding during its lifetime. They are normally called when the C# garbage collector decides to clean your object from memory.”

OK, sekian dulu tutorial kali ini, tutorial berikutnya kita akan masih membahas C# beginner :)

SUMBER : MEDIA TUTORIAL

C#.NET No.4: [Beginner] Membuat Hello World and Namespace

Pada dua tutorial sebelumnya, kita langsung ke pembahasan GUI yaitu cara membuat window app dan multiple window app. Begitu mudah membuatnya kan?? Nah, pada tutorial berikutnya ini kita akan kembali ke awal yaitu membahas Hello World C#. Kita tidak menggunakan GUI melainkan hanya kode-kode sederhana untuk pengenalan Hello World.


Ada beberapa style untuk mengetikan sebuah Hello World, tapi terlebih dahulu anda harus membuat sebuah Class atau sebuah Empty Project dari file -> new di Visual Studio anda. Ingat, buat Class atau Empty Project jangan Windows Form atau Console Application atau yang lainnnya :)

Perhatikan gambar dibawah ini:
Mari kita buat new file (File -> New ->File…)


Anda pun dapat memilih empty project dari menu File ->Project->Empty Project.

Nah, dari popup yang muncul jangan lupa anda berikan “Nama Untuk Class”, secara default Visual Studio akan memberikan nama Class1, Class2 dan seterusnya. Mari kita berikan contoh nama “Coba” saja. Nama class ini juga akan sama dengan nama file, sehingga file yang kita buat adalah Coba.cs dan code default dari Visual Studio adalah seperti di bawah ini:

  1. using System;
  2. public class Coba
  3. {
  4.         public Coba()
  5.         {
  6.  
  7.         }
  8. }


Nah, sekarang mari kita hapus dan ketikan beberapa code untuk membuat Hello World nya. Seperti yang sudah saya bilang di awal, ada beberapa cara pengetikan ,

CARA 1:
  1. public class Coba
  2. {
  3.    public static void Main()
  4.    {
  5.       System.Console.WriteLine("Hai, saya C#!");
  6.    }
  7. }

Ket:
Sama seperti C++, pada C# kita juga harus membuat sebuah Static Main Method.
System.Console didalamnya terdapat sebuah Writeline untuk menuliskan string kedalam console window.

CARA 2:
  1. using System;
  2. public class Coba
  3. {
  4.    public static void Main()
  5.    {
  6.       Console.WriteLine("Hai, saya C#!");
  7.    }
  8. }

Nah, pada cara kedua ini kita menggunakan ‘using System’ di atas kode, sehinga kita tidak perlu menambahkan ‘System’ sebelum Console.Writeline. Cara ini akan jauh lebih efektif saat anda menggunakan banyak ‘System’. Hem, mirip ‘include’ di C++ dan PHP ya, mirip juga seperti ‘import’ di Actionscript dan Java.

CARA 3:
Nah, cara yang ketiga kita dapat memberikan sebuah argument ke dalam method Main() sehingga akan menjadi seperti ini Main(String[] args). Saya mengambilnya dari MSDN (Microsoft Developer Network).
  1. public class Coba
  2. {
  3.    public static void Main(string[] args)
  4.    {
  5.       Console.WriteLine("Hai, saya C#!");
  6.       Console.WriteLine("You entered the following {0} command line arguments:",args.Length );
  7.       for (int i=0; i < args.Length; i++)
  8.       {
  9.          Console.WriteLine("{0}", args[i]);
  10.       }
  11.    }
  12. }

Nah, diatas, bila kita memberikan argument pada method Main, misalnya A B C D , maka console akan menampilkan :
A
B
C
D
Mudah bukan??

CARA 4:
Ada saat dimana kita harus mereturn sebuah integer dalam fungsi Main kita, berikut adalah contohnya:
  1. using System;
  2. public class Coba
  3. {
  4.    public static int Main(string[] args)
  5.    {
  6.       Console.WriteLine("Hai, saya C#!");
  7.       return 0;
  8.    }
  9. }

Sama persis dengan C++ kan?

NAMESPACE??
*Lalu bagaimana dengan Namaspace? Apa itu namespace?? Nah, di awal tutorial saya sudah mengatakan bahwa untuk membuat HelloWorld di atas kita dapat memulai dengan menu File -> New -> File atau File -> New -> Project -> Empty Project. Saat kita memulai dengan Empty Project kemudian membuat sebuah class , maka secara default akan ditambahkan namespace di depan code, coba perhatikan screenshot di bawah ini:

Apa sebetulnya namespace?

Namespace sebetulnya adalah sebuah program element yang dapat membantu kita meng-organisasi aplikasi kita. Namespace ini sangat berguna saat ada nama class yang sama dalam sebuah paket kode.

Ada contoh bagus, anda tau kan ‘console’ seperti kode kita diatas?? Nah ‘console’ ini tergabung ke dalam class ‘System.Console’ , padahal ‘System.Console’ ini adalah class library di .NET. Coba bila anda membuat nama class yang sama dengan yang ada di .NET atau library dari pihak ketiga yang lain, pasti akan sangat membingungkan program kan. Inilah peran besar sebuah ‘namespace’. Namespace ini mirip seperti ‘package’ kalo kita menggunakan ‘actionscript’.

Perhatikan juga bahwa ‘namespace’ ini bukanlah sebuah directory dari code, bila anda memasukan kode anda ke dalam directory tidak masalah bila tanpa namespace.

Sebagai contoh code, saya akan mengambil sample dari code diatas dan kemudian saya tambahkan ‘namespace’.

  1. //Coba.cs
  2. using System;
  3. namespace mediatutorialCode{
  4.   public class Coba
  5.   {
  6.      public static void Main(string[] args)
  7.      {
  8.         Console.WriteLine("Hai, saya C#!");
  9.      }
  10.   }
  11. }


Ada lagi contoh yang lain yaitu sebuah ‘nested namespace’.

  1. //Coba.cs
  2. using System;
  3. namespace okie{
  4.   namespace mediatutorialCode{
  5.     public class Coba
  6.       {
  7.          public static void Main(string[] args)
  8.          {
  9.             Console.WriteLine("Hai, saya C#!");
  10.          }
  11.       }
  12.    }
  13. }


Kemudian bagaimana cara memanggil member dari namespace?? Bagaimana cara memanggil fungsi di dalam namespace?? Perhatikan kode dibawah ini:

  1. //Coba.cs
  2. using System;
  3. namespace mediatutorialCode{
  4.   public class Coba
  5.   {
  6.      Public void Tampil()
  7.      {
  8.         Console.WriteLine("Hai, saya C# pertama!");
  9.      }
  10.   }
  11.   Class Calling{
  12.     Public static void Main()
  13.     {
  14.        mediatutorialCode.Coba.Tampil();
  15.        mediatutorialCode.Coba2.Tampil();
  16.    }
  17.  
  18.   }
  19. }
  20.  
  21. //Coba2.cs
  22. namespace mediatutorialCode{
  23.   public class Coba2
  24.   {
  25.      Public void Tampil()
  26.      {
  27.         Console.WriteLine("Hai, saya C# kedua!");
  28.      }
  29.   }
  30. }


Aha, ada contoh lagi, bagaimana bila kita menggunakan using directive? Perhatikan kode dibawah ini:

  1. //Coba.cs
  2. using System;
  3. using mediatutorialCode;
  4. namespace mediatutorialCode{
  5.   public class Coba
  6.   {
  7.      Public void Tampil()
  8.      {
  9.         Console.WriteLine("Hai, saya C# pertama!");
  10.      }
  11.   }
  12.   Class Calling{
  13.     Public static void Main()
  14.     {
  15.       Coba.Tampil();//tidak perlu menggunakan mediatutorialCode
  16.       Coba2.Tampil();//tidak perlu menggunakan mediatutorialCode
  17.     }
  18.  }
  19. }
  20.  
  21. //Coba2.cs
  22. namespace mediatutorialCode{
  23.   public class Coba2
  24.   {
  25.      Public void Tampil()
  26.      {
  27.         Console.WriteLine("Hai, saya C# kedua!");
  28.      }
  29.   }
  30. }


Ada satu contoh lagi yang bagus, yaitu using directive alias, perhatikan code di bawah ini:

  1. //Coba.cs
  2. using System;
  3. using ehem = mediatutorialCode.Coba;
  4. namespace mediatutorialCode{
  5.   public class Coba
  6.   {
  7.      Public void Tampil()
  8.      {
  9.         Console.WriteLine("Hai, saya C# pertama!");
  10.      }
  11.   }
  12.   Class Calling{
  13.      Public static void Main()
  14.      {
  15.        ehem.Tampil();//tidak perlu menggunakan mediatutorialCode
  16.        mediatutorialCode.Coba2.Tampil();
  17.      }
  18.   }
  19. }
  20.  
  21. //Coba2.cs
  22. namespace mediatutorialCode{
  23.    public class Coba2
  24.    {
  25.       Public void Tampil()
  26.       {
  27.          Console.WriteLine("Hai, saya C# kedua!");
  28.       }
  29.    }
  30. }


Teryata banyak ya yang dapat kita pelajari dari sebuah ‘namespace’, dan sedikit informasi kepada anda bahwa namespace dapat digunakan untuk meng-handle ‘Class’, ‘Structure’, ‘Interface’, ‘Enumeration’, ‘Delegate’.

SUMBER : MEDIA TUTORIAL