Modul Pemrograman C# Fundamental Modul Pemrograman C# Fundamental
1.1
1.1 Sejarah Singkat Sejarah Singkat 1.1.1
1.1.1 Sejarah Singkat Lahirnya Bahasa C# Sejarah Singkat Lahirnya Bahasa C#
Pada akhir
Pada akhir dekade 1990an, dekade 1990an, Microsoft Microsoft membuat programembuat program Microsm Microsoftoft Visual J++ sebagai percobaan untuk menggunakan Java di dalam sistem Visual J++ sebagai percobaan untuk menggunakan Java di dalam sistem operasi Windows untuk meningkatkan antarmuka dari Microsoft Component operasi Windows untuk meningkatkan antarmuka dari Microsoft Component Object Model (COM). Akan tetapi, akibat masalah dengan pemegang hak Object Model (COM). Akan tetapi, akibat masalah dengan pemegang hak cipta bahasa pemrograman Java, Sun Microsystems, Microsoft pun cipta bahasa pemrograman Java, Sun Microsystems, Microsoft pun menghentikan pengembangan J++, dan beralih untuk membuat pengganti menghentikan pengembangan J++, dan beralih untuk membuat pengganti J++. Kompiler dan mesin vitualnya sendiri menggunakan sebuah bahasa J++. Kompiler dan mesin vitualnya sendiri menggunakan sebuah bahasa pemrograman yang bersifat general-purpose.
pemrograman yang bersifat general-purpose.
Untuk menangani proyek ini, Microsoft merekrut Andres Helsberg, Untuk menangani proyek ini, Microsoft merekrut Andres Helsberg, yang merupakan mantan karyawan Borland, pembuat bahasa Turbo Pascal, yang merupakan mantan karyawan Borland, pembuat bahasa Turbo Pascal, dan Borland Delphi, yang juga mendesain Windows Foundation Classes dan Borland Delphi, yang juga mendesain Windows Foundation Classes (WFC) yang digunakan dalam J++.
(WFC) yang digunakan dalam J++.
Sebagai Hasil dari usaha tersebut, C# pertamakali diperkenalkan pada Sebagai Hasil dari usaha tersebut, C# pertamakali diperkenalkan pada bulan
bulan Juli Juli 2000 2000 sebaga sebaga sebuah sebuah bahasa bahasa pemrograman pemrograman modern modern berorientasiberorientasi objek yang menjadi sebuah bahasa pemrograman utama di dalam objek yang menjadi sebuah bahasa pemrograman utama di dalam pengembangan di dalam platform Microsoft .NET Framework.
pengembangan di dalam platform Microsoft .NET Framework.
Pengalaman Helsberg sebelumnya dalam mendesain bahasa Pengalaman Helsberg sebelumnya dalam mendesain bahasa pemrograman
pemrograman (Seperti (Seperti Visual Visual J++, J++, Delphi, Delphi, Turbo Turbo Pascal) Pascal) dengan dengan mudahmudah dilihat dalam sintaksis bahasa C#, begitu pula hal nya pada inti Common dilihat dalam sintaksis bahasa C#, begitu pula hal nya pada inti Common Language Runtime (CLR). Dari kutipan atas interview dan makalah Language Runtime (CLR). Dari kutipan atas interview dan makalah – – makalah teknisnya, ia menyebutkan kelemahan
makalah teknisnya, ia menyebutkan kelemahan – – kelemahan yang terdapatkelemahan yang terdapat pada
pada bahasa bahasa pemrograman pemrograman yang yang umum umum digunakan digunakan saat saat ini, ini, misalnya misalnya C++,C++, Java, Delphi, ataupun Smalltalk.
Java, Delphi, ataupun Smalltalk.
Kelemahan- kelemahan yang dikemukakan itu akhirnya dijadikan Kelemahan- kelemahan yang dikemukakan itu akhirnya dijadikan basis
basis CLR CLR sebagai sebagai bentukan bentukan baru baru untuk untuk menutupi menutupi kelemahankelemahan – – kelemahan kelemahan tersebut., dan pada akhirnya mempengaruhi desain pada bahasa C# itu tersebut., dan pada akhirnya mempengaruhi desain pada bahasa C# itu sendiri. Ada kritik yang menyatakan C# sebagai bahasa yang berbagi akar sendiri. Ada kritik yang menyatakan C# sebagai bahasa yang berbagi akar dari bahasa-bahasa pemrograman lain.
dari bahasa-bahasa pemrograman lain.
Fitur-fitur yang diambil dari bahasa C++ dan Java adalah desain Fitur-fitur yang diambil dari bahasa C++ dan Java adalah desain berorientasi
berorientasi objek, objek, seperti seperti garbage garbage collection, collection, reflection, reflection, akar akar kelas kelas (root(root class), dan juga penyederhanaan terhadap pewarisan jamak (multiple class), dan juga penyederhanaan terhadap pewarisan jamak (multiple
Pengenalan Bahasa C Pengenalan Bahasa C
1
1
Modul Pemrograman C# Fundamental Modul Pemrograman C# Fundamental
inheritance). Fitur-fitur tersebut didalam C# kini telah diaplikasikan terhadap inheritance). Fitur-fitur tersebut didalam C# kini telah diaplikasikan terhadap iterasi, properti, kejadian (event), metadata, dan konversi antara tipe-tipe iterasi, properti, kejadian (event), metadata, dan konversi antara tipe-tipe sederhana dan juga objek.
sederhana dan juga objek.
C# didesain untuk memenuhi kebutuhan akan sintaksis C++ yang lbih C# didesain untuk memenuhi kebutuhan akan sintaksis C++ yang lbih ringkas dan Rapid Application Development yang tanpa batas (dibandingkan ringkas dan Rapid Application Development yang tanpa batas (dibandingkan dengan RAD yang terbatas seperti yang terdapat pada Delphi dan Visual dengan RAD yang terbatas seperti yang terdapat pada Delphi dan Visual Basic).
Basic).
Agar mampu mmpromosikan penggunaan besar-besaran dari bahasa Agar mampu mmpromosikan penggunaan besar-besaran dari bahasa C#, Microsoft, dengan dukungan dari Intel Corporation dan Hewlett-Packard, C#, Microsoft, dengan dukungan dari Intel Corporation dan Hewlett-Packard, Mencoba mengajukan standarisasi terhadap bahasa C#. Akhirnya pada bulan Mencoba mengajukan standarisasi terhadap bahasa C#. Akhirnya pada bulan Desember 2001, standar pertama pun diterima oleh European Computer Desember 2001, standar pertama pun diterima oleh European Computer Manufacturers Association atau Ecma International (ECMA), dengan nomor Manufacturers Association atau Ecma International (ECMA), dengan nomor standar ECMA-334. Pada Desember 2002, standar kedua pun diadopsi oleh standar ECMA-334. Pada Desember 2002, standar kedua pun diadopsi oleh ECMA, dan tiga bulan kemudian diterima oleh International Organization ECMA, dan tiga bulan kemudian diterima oleh International Organization for Standarization (ISO), dengan nomor standar ISO/IEC 23270:2006
for Standarization (ISO), dengan nomor standar ISO/IEC 23270:2006
1.1.2
1.1.2 Arsitektur .NET dan .NET Arsitektur .NET dan .NET Framework Framework a.
a. Common Language Runtime (CLR) Common Language Runtime (CLR)
Konsep paling penting dalam .NET framwork adalah keberaaan dan Konsep paling penting dalam .NET framwork adalah keberaaan dan fungsionalitas .NET Common Language Runtime (CLR). CLR adalah fungsionalitas .NET Common Language Runtime (CLR). CLR adalah sebuah layer atau lapisan framework yang berada pada sistem operasi dan sebuah layer atau lapisan framework yang berada pada sistem operasi dan menangani eksekusi dari aplikasi .NET. Program yang nantinya akan dibuat menangani eksekusi dari aplikasi .NET. Program yang nantinya akan dibuat tidak terkomunikasi langsung dengan Sistem Operasi, tetapi melalui CLR tidak terkomunikasi langsung dengan Sistem Operasi, tetapi melalui CLR terlebih dahulu.
terlebih dahulu.
b.
b. MSIL (Microsoft Intermediate Language) Code MSIL (Microsoft Intermediate Language) Code
Pada
Pada saat saat mengkompilasi mengkompilasi aplikasi aplikasi .NET .NET menggunakan menggunakan bahasabahasa pemograman
pemograman .NET .NET (misalkan (misalkan C#, C#, VB.net VB.net atau atau C#.net), C#.net), source source code code yangyang telah anda buat tidak akan dubah langsung menjadi sebuah kode biner telah anda buat tidak akan dubah langsung menjadi sebuah kode biner executable tetapi diubah dahulu menjadi intermediate code yang bernama executable tetapi diubah dahulu menjadi intermediate code yang bernama MSIL, yang diinterpretasikan oleh CLR.
MSIL, yang diinterpretasikan oleh CLR.
MSIL adalah kode sistem operasi dan kode hardware yang berdiri MSIL adalah kode sistem operasi dan kode hardware yang berdiri sendiri. Pada saat program dieksekusi, MSIL akan mengubahnya menjadi sendiri. Pada saat program dieksekusi, MSIL akan mengubahnya menjadi kode biner executable.
kode biner executable.
Modul Pemrograman C# Fundamental Modul Pemrograman C# Fundamental
inheritance). Fitur-fitur tersebut didalam C# kini telah diaplikasikan terhadap inheritance). Fitur-fitur tersebut didalam C# kini telah diaplikasikan terhadap iterasi, properti, kejadian (event), metadata, dan konversi antara tipe-tipe iterasi, properti, kejadian (event), metadata, dan konversi antara tipe-tipe sederhana dan juga objek.
sederhana dan juga objek.
C# didesain untuk memenuhi kebutuhan akan sintaksis C++ yang lbih C# didesain untuk memenuhi kebutuhan akan sintaksis C++ yang lbih ringkas dan Rapid Application Development yang tanpa batas (dibandingkan ringkas dan Rapid Application Development yang tanpa batas (dibandingkan dengan RAD yang terbatas seperti yang terdapat pada Delphi dan Visual dengan RAD yang terbatas seperti yang terdapat pada Delphi dan Visual Basic).
Basic).
Agar mampu mmpromosikan penggunaan besar-besaran dari bahasa Agar mampu mmpromosikan penggunaan besar-besaran dari bahasa C#, Microsoft, dengan dukungan dari Intel Corporation dan Hewlett-Packard, C#, Microsoft, dengan dukungan dari Intel Corporation dan Hewlett-Packard, Mencoba mengajukan standarisasi terhadap bahasa C#. Akhirnya pada bulan Mencoba mengajukan standarisasi terhadap bahasa C#. Akhirnya pada bulan Desember 2001, standar pertama pun diterima oleh European Computer Desember 2001, standar pertama pun diterima oleh European Computer Manufacturers Association atau Ecma International (ECMA), dengan nomor Manufacturers Association atau Ecma International (ECMA), dengan nomor standar ECMA-334. Pada Desember 2002, standar kedua pun diadopsi oleh standar ECMA-334. Pada Desember 2002, standar kedua pun diadopsi oleh ECMA, dan tiga bulan kemudian diterima oleh International Organization ECMA, dan tiga bulan kemudian diterima oleh International Organization for Standarization (ISO), dengan nomor standar ISO/IEC 23270:2006
for Standarization (ISO), dengan nomor standar ISO/IEC 23270:2006
1.1.2
1.1.2 Arsitektur .NET dan .NET Arsitektur .NET dan .NET Framework Framework a.
a. Common Language Runtime (CLR) Common Language Runtime (CLR)
Konsep paling penting dalam .NET framwork adalah keberaaan dan Konsep paling penting dalam .NET framwork adalah keberaaan dan fungsionalitas .NET Common Language Runtime (CLR). CLR adalah fungsionalitas .NET Common Language Runtime (CLR). CLR adalah sebuah layer atau lapisan framework yang berada pada sistem operasi dan sebuah layer atau lapisan framework yang berada pada sistem operasi dan menangani eksekusi dari aplikasi .NET. Program yang nantinya akan dibuat menangani eksekusi dari aplikasi .NET. Program yang nantinya akan dibuat tidak terkomunikasi langsung dengan Sistem Operasi, tetapi melalui CLR tidak terkomunikasi langsung dengan Sistem Operasi, tetapi melalui CLR terlebih dahulu.
terlebih dahulu.
b.
b. MSIL (Microsoft Intermediate Language) Code MSIL (Microsoft Intermediate Language) Code
Pada
Pada saat saat mengkompilasi mengkompilasi aplikasi aplikasi .NET .NET menggunakan menggunakan bahasabahasa pemograman
pemograman .NET .NET (misalkan (misalkan C#, C#, VB.net VB.net atau atau C#.net), C#.net), source source code code yangyang telah anda buat tidak akan dubah langsung menjadi sebuah kode biner telah anda buat tidak akan dubah langsung menjadi sebuah kode biner executable tetapi diubah dahulu menjadi intermediate code yang bernama executable tetapi diubah dahulu menjadi intermediate code yang bernama MSIL, yang diinterpretasikan oleh CLR.
MSIL, yang diinterpretasikan oleh CLR.
MSIL adalah kode sistem operasi dan kode hardware yang berdiri MSIL adalah kode sistem operasi dan kode hardware yang berdiri sendiri. Pada saat program dieksekusi, MSIL akan mengubahnya menjadi sendiri. Pada saat program dieksekusi, MSIL akan mengubahnya menjadi kode biner executable.
kode biner executable.
Modul Pemrograman C# Fundamental Modul Pemrograman C# Fundamental
c.
c. Just in Time Compilers (JITers) Just in Time Compilers (JITers)
Pada saat kode intermediate language membutuhkan untuk dieksekusi, Pada saat kode intermediate language membutuhkan untuk dieksekusi, CLR akan meminta JIT compiler untuk mengompilasi IL (Intermediate CLR akan meminta JIT compiler untuk mengompilasi IL (Intermediate Language) ke native
Language) ke native executable code executable code (Exe atau DL(Exe atau DLL) yang L) yang dirancang padadirancang pada mesin atau OS tertentu. JITers pada dasarnya berbeda sama sekali dengan mesin atau OS tertentu. JITers pada dasarnya berbeda sama sekali dengan compiler konvensional yang mengompilasi IL ke Native kode hanya pada compiler konvensional yang mengompilasi IL ke Native kode hanya pada saat dibutuhkan.
saat dibutuhkan.
Misalkan ketika sebuah fungsi dipanggil, Intermediate Language dari Misalkan ketika sebuah fungsi dipanggil, Intermediate Language dari function body akan diubah pada saat itu juga atau just in time. Jadi, bagian function body akan diubah pada saat itu juga atau just in time. Jadi, bagian dari kode yang tidak digunakan tidak akan diubah menjadi native code.
dari kode yang tidak digunakan tidak akan diubah menjadi native code.
Jika beberapa kode IL diubah ke native code, dan kode tersebut di lain Jika beberapa kode IL diubah ke native code, dan kode tersebut di lain waktu dibutuhkan lagi, CLR akan menggunakan copy kode yang sama waktu dibutuhkan lagi, CLR akan menggunakan copy kode yang sama (yang telah dikompilasi) tanpa harus mengompilasi ulang kode tersebut.
(yang telah dikompilasi) tanpa harus mengompilasi ulang kode tersebut.
JITers sangat memperhatikan jenis processor dan sistem operasi pada saat JITers sangat memperhatikan jenis processor dan sistem operasi pada saat runtime. JITers dapat mengoptimasi kode dengan sangat efisien dalam runtime. JITers dapat mengoptimasi kode dengan sangat efisien dalam merancang sebuah aplikasi yang baik.
merancang sebuah aplikasi yang baik.
d.
d. The Framework Class Library (FCL) The Framework Class Library (FCL)
.NET Framework menyediakan banyak sekali jenis Framework Class .NET Framework menyediakan banyak sekali jenis Framework Class Library (FCL) untuk digunakan secara serentak dalam proses pengembangan Library (FCL) untuk digunakan secara serentak dalam proses pengembangan aplikasi.
aplikasi. FCL berisi rFCL berisi ribuan class yang ibuan class yang menyediakan akses ke windows menyediakan akses ke windows APIAPI dan fungsi pada umumnya seperti Manipulasi String, Data struktur umum, dan fungsi pada umumnya seperti Manipulasi String, Data struktur umum, IO, Streams, Threads, Security, Network Programing, Pemrograman IO, Streams, Threads, Security, Network Programing, Pemrograman Windows, Pemrograman web, data akses, dan masih banyak lagi yang Windows, Pemrograman web, data akses, dan masih banyak lagi yang lainnya.
lainnya.
Pengertian sederhananya, FCL merupakan library standar besar yang Pengertian sederhananya, FCL merupakan library standar besar yang dikemas dalam satu bahasa pemrograman. Bagian terbaik dari library ini dikemas dalam satu bahasa pemrograman. Bagian terbaik dari library ini adalah peggunaan teknik pemrograman object oriented yang membuat teknik adalah peggunaan teknik pemrograman object oriented yang membuat teknik pengaksesan
pengaksesan dan dan penggunaannya penggunaannya menjadi menjadi sangat sangat sederhana. sederhana. Anda Anda dapatdapat menggunakan FCL pada program yang akan dibuat hanya seperti menggunakan FCL pada program yang akan dibuat hanya seperti menggunakan kelas-kelas lainnya. Anda bahkan dapat menerapkan teknik menggunakan kelas-kelas lainnya. Anda bahkan dapat menerapkan teknik inheritance dan polimorfisme pada kelas FCL ini.
inheritance dan polimorfisme pada kelas FCL ini.
e.
e. Common Language Specification Common Language Specification
Anda mungkin sering menggunakan istilah . “NET Compliant Anda mungkin sering menggunakan istilah . “NET Compliant Language” yang berasal dari common language specification (CLS).
Language” yang berasal dari common language specification (CLS).
Modul Pemrograman C# Fundamental
Microsoft telah mengeluarkan sebuah subset kecil dari spesifikasi masing- masing bahasa yang dapat digunakan dan dapat memenuhi standar .NET Compliant Language.
CLS pada dasarnya adalah sebuah desain bahasa yang menetapkan standar bawah tertentu. Sebagai contoh, misalkan anda membuat program namun tidak terdapat pointer , tidak terdapat multiple inheritance, maupun tidak ada global variable, maka kode anda dijamin dapat digunakan lagi pada bahasa .NET yang lain selama masih dalam ruang lingkup CLS.
f. The Common Type System (CTS)
.NET juga mendefinisikan sebuah common type system (CTS). Seperi CLS, CTS juga terdiri dari beberapa set standar. CTS mendefinisikan tipe data dasar ang dipahami dan digunakan oleh IL. Masing-masing .NET Compliant Language harus memetakan datanya pada sebuah tipe data standar.
Hal ini yang membuat dua bahasa berkomunikasi satu sama lain dengan cara menerima parameter untuk dan dari satu sama lain. Misalkan, CTS mendefinisikan sebuah tipe data int (integer 32 bit) yang dipetakan dengan bahasa C# menjadi int dan VB.NET juga akan memetakanna menjadi tipe data integer.
g. Garbage Collection (GC)
CLR juga berisi sebuah Garbage Collector (GC) yang berjalan di prioritas thread rendah dan memeriksa apakah terdapat alokasi ruang memori
yang tidak direferensikan. Jika Garbage Collection menemukan beberapa data yang tidak direferensikan oleh sebuah variable, ruang memori tersebut akan dikembalikan lagi ke sistem operasi. Kehadiran Garbage Collector berguna untuk memudahkan programmer dalam melacak data yang kacau.
h. .NET Framework
.NET Framework adalah kombinasi dari layer CLR, FCL, Data, dan kelas XML, Windows, aplikasi web dan web service. Framework adalah sebuah kerangka penopang sebuah program untuk dapat berjalan pada suatu sistem operasi. Contohnya adalah yang biasa kita kenal dengan .NET framework pada sistem operasi berbasis windows dan mono framework pada sistem operasi berbasis UNIX dan Mac OS. Dan C# bukan hanya bisa dijalankan pada sistem berbasis windows namun juga ke sistem operasi lain dengan perantara frameworknya, analoginya seperti berikut:
Modul Pemrograman C# Fundamental
1.2 Struktur Program C#
Keyword using digunakan untuk memberitahu compiler class apa yang sedang digunakan pada aplikasi
Keyword namespace digunakan untuk mendeklarasikan ruang lingkup dari class yang dibuat. Class didalam namespace dapat dipanggil dengan mencantumkan nama spacenya terlebih dahulu.
Using system; pada baris pertama mempunyai arti bahwa user dapat menggunakan clas-class yang ada pada namespace System.
Framework
Bahasa Pemrograman C# VB.NET F# C++
Windows Linux MAC OS
.NET MONO
Modul Pemrograman C# Fundamental
Static menunjukan tipe method
void menunjukkan bahwa method tidak mengembalikan nilai atu objek Main merupakan nama method utama program C#
String merupakan tipe argumen yang akan diterima sebagai parameter dari command C#.
Args merupakan merupakan array argumen yang dapat ditambahkan pada saat menggunakan command C# untuk menjalankan program C#
1.2.1 Sintaks Dasar C#
a. Perintah Keluaran
b. Cara Menampilkan variable
A , B adalah variable yang dimasukkan kedalam {0} dan {1}
c. Perintah Membaca inputan
d. Perintah Konversi
Contoh: int.Tryparse(input, out jumlah)
Mengubah isi dari variable input yang bertipe data String ke integer, dan dikeluarkan pada variable jumlah.
Console.Write (“pernyataan dlm bntukString”, argument)
Console.Write (“Nilai A = {0} , dan Nilai B = {1}”, A,B)
Console.Readline ();
Console.ReadKey();
Tipedata.Tryparse(variable yang akan dikonversi, out variable keluaran)
Modul Pemrograman C# Fundamental
1.3 Membuat Project
Project adalah kumpulan file yang dapat di-compile menghasilkan program. Program dapat didistribusikan dan dapat dieksekusi tanpa memerlukan IDE yang digunakan untuk menulis kode program. Program dapat juga disebut aplikasi. Sebuah aplikasi dihasilkan dari satu project atau lebih dan didesain untuk menjalankan fungsi tertentu. Berikut ini adalah cara membuat project didalam Microsoft Visual Studio 2010
a. Membuka Jendela Microsoft Visual Studio 2010
Modul Pemrograman C# Fundamental
b. P i l i h
F i l e
-
> New -> Project
c. Pilih Visual C#, Console Application , Beri nama aplikasi (Menentukan Nama Class) , dan pilih tempat penyimpanan project
Pilih Visual C#
Pilih Console Application Nama Aplikasi
Menu
Lembar Kerja
Jendela Jendela properti Soulution
Modul Pemrograman C# Fundamental
Menu Bar = Berisi pilihan File, Edit, View, Reflector, Project, Build, Debug, Tools, Architecture, Test, Analyze, Window, Help
Lembar Kerja = Tempat dimana kita mengisikan list dari program yang akan kita buat.
Jendela Output = Berisi pesan debug dan eror dari list program yang kita ketikkan.
Jendela Properti = Berisi properti dari sebuah objek, biasanya digunakan dalam penggunaan aplikasi berbentuk form.
Solution Explorer = Jendela yang memudahkan dalam pengaturan dan pembuatan class dan sebagainya yang berhubungan dengan properti dari
suatu program.
1.4 Menjalankan Project
1.4.1 Perintah Untuk Menamplkan Hello World
Untuk menjalankannya tekan F5