Berkenalan Dengan C# dan CLR

Kamis, Agustus 21, 2008 | | Comments

Pendahuluan

C# (dibaca “C Sharp”) merupakan bahasa pemrograman modern yang berorientasi objek.  Secara sintaks C# mirip dengan bahasa-bahasa keluarga C seperti C, C++, dan Java.  C# menggabungkan produktifitas dan kemudahan yang ada di Visual Basic dengan kemampuan dan fleksibilitas yang ada di C++, dan menambahkan hal-hal baru yang tidak ada di Java. Perancang utamanya adalah Anders Hejlsberg dari Microsoft, yang dulunya membuat Turbo Pascal dan berperan dalam pengembangan bahasa Delphi dan IDE Borland Delphi.

Bahasa ini telah diserahkan oleh Microsoft ke badan standar internasional ECMA.  Proses standarisasinya selesai pada Desember 2001 dengan nama standarnya ECMA-334.  Dengan standar tersebut, siapapun dapat dengan mudah dan bebas membuat implementasi bahasa C#.

Hello, World!!!

Mungkin cara yang paling baik untuk mengenal suatu bahasa adalah dengan melihat contoh programnya.  Inilah program “Hello World” yang dibuat dengan C#:

// Contoh001

class Halo
{
static void Main()
{
System.Console.WriteLine("Halo, dunia!!!");
}
}



Jika program tersebut dicompile dan dijalankan, maka akan keluar tulisan berikut di layar:




Halo, dunia!!!



Menganalisa “Hello World”



Cara mengcompile dan menjalankan program “Hello World” akan dibahas di akhir tutorial ini.  Sebelumnya, kita akan menganalisa program di atas sedikit demi sedikit.




// Contoh001



Baris tersebut merupakan comment satu baris.  Comment satu baris diawali dengan // dan berakhir di baris yang bersangkutan.  Comment tidak akan mempengaruhi jalannya program, walaupun begitu comment merupakan alat yang handal untuk dokumentasi dan penulisan catatan-catatan saat kita membuat program.



Lalu perhatikan baris berikut (baris sebelumnya sengaja dilompati):




static void Main()



Baris di atas mendeklarasikan suatu method yang bernama Main() (di beberapa bahasa pemrograman lain, method disebut fungsi atau subroutine). Setiap program C# harus memiliki method ini. Method Main() adalah pintu masuk program anda, yang berarti bahwa method ini akan dipanggil saat program dijalankan.  Isi atau tubuh method harus diawali dengan { (kurung kurawal buka) dan diakhiri dengan } (kurung kurawal tutup).



C# merupakan bahasa yang “case sensitive”, jadi method yang bernama Main() (m huruf besar) berbeda dengan method yang bernama main() (m huruf kecil).  Kita bisa melihat bahwa C# meninggalkan adat istiadat keluarga C yang menggunakan method main() (m huruf kecil) sebagai pintu masuk program.  Hal ini dilakukan agar C# konsisten dengan salah satu panduan penamaan modern yaitu mengawali nama method dengan huruf besar.  Untuk sementara, static dan void tidak akan dibahas.



Kita bisa lihat bahwa method Main() berada di dalam class yang bernama Halo, dengan deklarasi sebagai berikut:




class Halo



Class merupakan salah satu unit enkapsulasi di C#.  Maksudnya, class digunakan untuk mengelompokkan data-data dan method-method yang saling berhubungan.  Tubuh class dibatasi dengan { dan }.



Di dalam C#, method harus berada di dalam unit enkapsulasi, contohnya class.  Dalam Contoh001, method Main() berada di dalam class Halo.  Ini adalah aturan baru bagi programmer C dan C++, tetapi bukanlah hal yang asing bagi programmer Java.  Kita bebas menentukan nama class yang memuat method Main().



Aktivitas utama program kita terletak di baris berikut:




System.Console.WriteLine("Halo, dunia!!!");



Saat program dijalankan, baris tersebut menyebabkan keluarnya tulisan “Halo, dunia!!!” yang diikuti baris baru.  Hal tersebut dilaksanakan oleh method WriteLine().  Method WriteLine() tersebut berada di dalam class yang bernama Console (sebagaimana method Main() berada dalam suatu class). Class Console sendiri dikelompokkan ke dalam namespace yang bernama System. Namespace digunakan untuk mengelompokkan class-class dan beberapa elemen bahasa lainnya.  Jadi kita memanggil method WriteLine() dengan menuliskan mulai dari nama namespacenya, class yang memuatnya, sampai ke method itu sendiri. “Halo Dunia!” dikatakan sebagai argumen bagi method WriteLine().  Class Console merupakan bagian dari BCL (Base Class Library), jadi bisa dipastikan bahwa semua implementasi standar C# memilikinya.



Baris yang barus saja kita bahas biasa disebut dengan statement.  Statement di atas melakukan pemanggilan method, tetapi nanti kita akan melihat bahwa masih banyak jenis-jenis statement lainnya.  Setiap statement di C# harus diakhiri dengan ; (titik koma).



Terlalu Panjang?



Jika kita membuat program console, kita akan banyak memakai method WriteLine().  Pemanggilannya yang cukup panjang seperti pada Contoh001 tentunya akan merepotkan.  Ada cara yang dapat dilakukan untuk menyingkatnya, yaitu sebagai berikut:




// Contoh002

using System;

class HaloDanDadah
{
static void Main()
{
Console.WriteLine("Halo!");
Console.WriteLine("Dadah!");
}
}



Output programnya adalah sebagai berikut:




Halo!
Dadah!



Perhatikan statement berikut:




using System;



Statement tersebut memungkinkan kita untuk menggunakan semua class yang berada di dalam namespace System secara langsung.  Karenanya, pemanggilan terhadap method WriteLine() cukup diawali dengan nama classnya yaitu Console.



Di dalam Contoh002 juga jelas terlihat bahwa method WriteLine() mengganti baris setelah menuliskan argumennya.  Oleh karena itu, “Dadah!” tertulis di bawah “Halo!”.



Membuat, Mengcompile, dan Menjalankan Program



Di bagian ini akan dibahas dua cara, yaitu menggunakan Framework .NET di Windows dan menggunakan Mono di Linux.



Menggunakan Framework .NET di Windows



Yang pertama kali harus kita lakukan adalah mendownload Microsoft .NET Framework SDK (106 MB) atau Microsoft .NET Framework Redistributable (23 MB).  Ukuran versi SDK jauh lebih besar dari versi redistributablenya, sebab versi SDK memuat dokumentasi, contoh-contoh program, dan tools-tools tambahan yang berguna untuk pengembangan program.  Untuk mencoba program-program di tutorial ini anda dapat menggunakan versi redistributable.  Dokumentasi yang ada di SDK akan menjadi kebutuhan saat anda sudah memulai pemrograman serius menggunakan C#.  Versi SDK hanya akan dapat berjalan di Windows 2000, Windows XP, dan Windows Server 2003.



Setelah menginstall Framework .NET, di dalam folder Windows anda akan terdapat folder yang menyimpan compiler C#.  Contoh foldernya adalah sebagai berikut:




C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322



Lokasi tepatnya bergantung pada lokasi folder Windows anda dan versi Framework .NET yang anda install.  Compiler C# yang terletak di folder tersebut bernama csc.exe.  Untuk dapat memanggil compiler C# dari folder manapun, pastikan untuk menulis perintah seperti berikut di command prompt (cek dulu lokasi foldernya):




PATH = %PATH%; C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322



Setting tersebut hanya akan berlaku dan bertahan pada command prompt yang sedang anda gunakan.  Untuk membuatnya universal dan permanen, tambahkan perintah tersebut ke file autoexec.bat.  Cara lainnya, jika anda menggunakan Windows 2000 atau Windows XP, adalah dengan mengklik kanan “My Computer”, memilih “Properties”, masuk ke tab “Advanced”, dan memilih “Environment Variables”.  Di bagian “System Variables” terdapat variabel “Path”.  Tambahkan folder tempat Framework .NET terinstall ke variable “Path” tersebut.



Anda dapat menuliskan program-program C# dengan text editor seperti notepad.  Save source code anda dengan akhiran cs, misalnya contoh002.cs.  Untuk mengcompile program anda, masuklah ke command prompt dan gunakan csc.  Misalnya, untuk mengcompile contoh002.cs digunakan perintah berikut:




csc contoh002.cs



Hasil kompilasinya adalah contoh002.exe.  Anda dapat menjalankannya dengan mengetikkan nama filenya, misalnya:




contoh002



Menggunakan Mono di Linux



Mono merupakan salah satu proyek open source untuk membuat implementasi Framework .NET.  Cara-cara menginstallnya terdapat di website yang bersangkutan.  Setelah Mono terinstall, ketik source code dengan text editor favorit anda dan save dengan akhiran cs.  Untuk mengcompile program anda, gunakan perintah berikut:




mcs namaprogram.cs



Untuk menjalankannya, gunakan perintah berikut:




mono namaprogram.exe



Terdapat juga Mono untuk Windows.  Silahkan mencobanya jika anda tertarik.



Menggunakan IDE (Integrated Development Environment)





Selain menggunakan text editor dan command line compiler, kita bisa juga menggunakan beberapa IDE yang telah tersedia.  IDE gratis yang bisa diperoleh contohnya adalah SharpDevelop (lihat gambar di atas) dan MonoDevelop.  IDE komersial yang ada contohnya adalah Microsoft Visual Studio .NET 2003.



Berkenalan dengan CLR dan Konsep Program Managed



Program-program C# yang dihasilkan tidaklah terikat dengan hardware maupun operating system tertentu.  Untuk menjalankan suatu program C#, di komputer (atau alat elektronik lain) yang bersangkutan harus tersedia CLR (Common Language Runtime).  Jalannya sebuah program C# akan dikelola sepenuhnya oleh CLR, oleh karena itu program C# dikatakan sebagai program yang managed.  Program-program klasik yang langsung berinteraksi dengan operating system maupun hardware tertentu disebut program unmanaged.  Untuk lebih jelasnya, lihatlah diagram berikut:





Dengan perantara CLR tersebut, program-program C# menjadi portable.  Misalnya, program C# yang dicompile menggunakan Microsoft .NET Framework dapat langsung dijalankan di Linux asalkan terinstall Mono atau implementasi CLR lainnya.  Mungkin anda sudah bisa menebak bahwa Microsoft .NET Framework dan Mono merupakan beberapa implementasi CLR yang ada.  Beberapa implementasi CLR lainnya contohnya adalah Microsoft .NET Compact Framework (untuk Pocket PC dan handphone), dotGNU Portable .NET (untuk Linux), dan Rotor (untuk FreeBSD).



Konsep ini sekilas terdengar mirip dengan Java dan JVMnya, namun ada beberapa hal yang membedakan CLR dengan Java.



CLR merupakan bagian dari standar internasional yang disebut CLI (Common Language Infratructure).  CLI memuat CLR, CIL (Common Intermediate Language, analog dengan Java bytecode), dan BCL (Base Class Library).  Sifat CLR yang merupakan open standard memungkinkan siapa saja membuat implementasinya.  Hal ini berbeda dengan platform Java yang merupakan platform pribadi milik Sun.



Tidak seperti platform Java yang terkait dengan bahasa Java, CLR tidak terkait dengan bahasa pemrograman apapun. Contoh-contoh bahasa yang bisa dipakai untuk membuat program managed adalah C#, Managed Extension for C++, Visual Basic .NET, Jscript .NET, J#, Pascal .NET, Delphi .NET, Phyton .NET, Eiffel#, COBOL .NET, dan Perl .NET.  Program yang dibuat dengan bahasa berbeda dapat dengan mudah berinteraksi!



CLI dibuat oleh Microsoft bersamaan dengan implementasinya yaitu Framework .NET.  Microsoft menyerahkan CLI kepada ECMA untuk distandarisasi agar pengadopsiannya lebih cepat dan meluas.  Hasil standarisasi tersebut tidaklah sia-sia, sebab dengan standar-standar yang ada muncullah implementasi-implementasi open source seperti Mono dan dotGNU Portable .NET.  Standar CLI tersebut diberi nama ECMA-335.



Penutup



Tutorial pengenalan ini mungkin belum bisa memperlihatkan keunggulan C# terhadap bahasa-bahasa pemrograman lainnya, terutama terhadap C++ dan Java.  Programmer C++ nantinya akan melihat bahwa sintaks di C# lebih bersih, aturan-aturan bahasanya lebih sederhana, dan class librarynya yang berorientasi objek sangat intuitif untuk dipakai.  Programmer Java akan lebih cepat untuk beradaptasi dan akan menghargai elemen-elemen bahasa baru seperti property, indexer, delegate, dan event.  Dengan mempelajari C#, anda juga telah mulai menapakkan kaki anda ke dunia pemrograman managed yang modern, di mana perbedaan bahasa, operating system, dan hardware tidak lagi menjadi pembatas.  Semoga tutorial ini dapat menarik minat anda untuk mempelajari C# lebih lanjut.



source : ajidotnet.wordpress.com



Technorati Tags: ,,