Anda di halaman 1dari 9

Programming Fundamental

Struktur Aplikasi C#
Bagi programmer, aplikasi C# terdiri dari source code (kode sumber). Source code adalah teks yang dapat dibaca manusia, dan ditulis pada sebuah editor teks. Editor teks bekerja seperti pengolah kata tapi tanpa dukungan terhadap format. Contoh editor teks adalah Notepad. Berikut adalah contoh source code dari program Hello World
using System; using System.Collections.Generic; using System.Text; namespace HelloWorld { class Program { //setiap aplikasi console dimulai dengan Main static void Main(string[] args) { System.Console.WriteLine("Hello World"); } } }

Setelah program tersimpan, berikutnya adalah melakukan kompilasi untuk mengubah source code untuk menjadi aplikasi. Hal ini dapat dilakukan baik melalui compiler terpisah melalui command prompt, atau dapat pula melalui IDE seperti Visual Studio. Tugas dari compiler adalah untuk mengubah source code menjadi program yang bekerja. Dalam .NET hal ini berarti mengubah source code menjadi Intermediate Language (IL). Setelah program di-compile maka program dapan dijalankan (run). Program di atas jika dijalankan maka akan menghasilkan tulisan Hello World dalam jendela DOS. Berikut adalah beberapa hal yang dapat dianalisa dari program di atas.
namespace HelloWorld

Dalam pemrograman C# akan terdapat banyak nama. Setiap objek dan tipe objek harus diberi nama. Sangat mungkin bagi nama-nama tersebut menghasilkan konflik. Sebuah namespace adalah cara untuk menunjukkan kepemilikan nama tersebut. Isi namespace, harus diapit oleh tanda { }. Pada source code, akan digunakan operator dot / titik untuk memisahkan namespace dari object di dalam namespace. Sehingga jika kita punya object Objectku dalam namespace Namespaceku, maka nama lengkap dari object tersebut adalah Namespaceku.Objectku. Operator dot cukup sering dipakai dalam pemrograman C#.
class Program

Class mendefinisikan type dari sebuah object. Dalam C# terdapat ribuan class, baik yang diciptakan sendiri oleh programmer mau pun yang didapatkan dari .NET Framework. Setiap kelas harus diberi nama. Sementara isinya, harus diapit oleh tanda { }. Class adalah inti dari pemrograman C# dan object-oriented. Pada saat ini penggunaan class hanya akan dianggap sebagai keharusan dan tidak akan dibahas lebih lanjut.
static void Main(string[] args)

Method Main() adalah titik awal atau entry point dari setiap aplikasi console C# (lihat pembahasan sebelumnya tentang entry point), setiap program berawal dari Main(). Sehingga setiap program C# harus ada method Main. Pembahasan mengenai method akan dibahas pada bab-bab selanjutnya. Yang perlu diketahui hanyalah isi main juga harus diapit oleh tanda { }.
//setiap aplikasi console dimulai dengan Main

Bentuk seperti di atas adalah comment. Sebuah comment adalah catatan untuk programmer (dokumentasi). Comment diberikan agar code lebih terbaca oleh programmer. Comment dapat ditempatkan pada sembarang bagian dari program tanpa mempengaruhi program yang berjalan. Selain bentuk comment seperti di atas ada pula bentuk comment yang ditulis dengan diapit dalam /* dan */ seperti contoh berikut
/*contoh comment yang terdiri dari beberapa baris*/

Bentuk comment yang lain adalah dengan menggunakan awalan ///. Ini adalah bentuk XML comment untuk teknik dokumentasi lanjut. XML comment di luar cakupan modul ini.
System.Console.WriteLine("Hello World");

Method WriteLine, berguna untuk menampilkan tulisan pada layar. Apa yang ditampilkan pada layar, terdapat di antara tanda ( ). Karena yang akan ditampilkan adalah data string / teks maka tulisan Hello World diapit dengan tanda " ". Pada bagian akhir dari baris program, terdapat tanda ;. Pada C# setiap kalimat / pernyataan harus diakhiri dengan tanda ;.
using System;

Sekalipun penggunaan namespace sangat berguna untuk memisahkan nama-nama yang tersebar dalam aplikasi, tetapi hal ini juga dapat mengakibatkan penulisan yang terlalu panjang dan bertele-tele. Untuk itu dapat digunakan using digunakan untuk melakukan penyingkatan terhadap penulisan namespace. Setelah penulisan using System; maka penulisan WriteLine sebelumnya dapat disingkat menjadi sebagai berikut

Console.WriteLine("Hello World");

Type
C# adalah bahasa yang strong type. Artinya bahwa setiap object dalam C# harus memiliki type spesifik. Type ada 2 macam, yang tersedia dalam bahasa (intrinsik) dan yang dibuat sendiri. C# memiliki beberapa type intrinsik

Table 5-1. Type Intrinsic


Size (in bytes) byte 1 char 2 bool 1 sbyte 1 short 2 ushort 2 int 4 uint 4 Type float 4 .NET type Byte Char Boolean SByte Int16 UInt16 Int32 UInt32 Deskripsi

double 8 decimal 12 long ulong 8 8

Unsigned (0 s/d 255). Karakter Unicode. True or false. Signed (-128 s/d 127). Signed (short) (-32,768 to 32,767). Unsigned (short) (0 to 65,535). Signed integer (-2,147,483,648 and 2,147,483,647). Unsigned integer (0 and 4,294,967,295). Floating point number. (sekitar +/-1.5 * 10-45 s/d sekitar +/Single 3.4 * 1038) dengan 7 angka penting. Double-precision floating point. (sekitar +/-5.0 * 10-324 s/d Double sekitar +/-1.8 * 10308) dengan 15-16 angka penting. Fixed-precision hingga 28 digit dan posisi desimal. Biasa Decimal digunakan untuk perhitungan financial. Membutuhkan awal m atau M. Signed integers (- 9,223,372,036,854,775,808 s/d Int64 9,223,372,036,854,775,807). UInt64 Unsigned integers (0 s/d 0xffffffffffffffff).

Setiap type memiliki nama dan ukuran. Ukuran menentukan berapa besar memori yang dipergunakan. Biasanya programmer tidak suka untuk menghamburkan memori, tapi dengan ukuran memori saat ini, terkadang hal ini diabaikan untuk menyederhanakan program. Tipe Numerik Sebagian besar tipe intrinsik digunakan untuk bekerja dengan angka. Secara umum ada beberapa cara untuk membagi tipe numerik - Tipe integer / bilangan bulat. Untuk menyimpan nilai bilangan bulat. o Signed. Dapat menyimpan nilai positif dan negatif.

o Unsigned. Hanya dapat menyimpan nilai positif. Tetapi tipe unsigned akan dapat menampung 2 kali dari tipe signed-nya (tentunya pada sisi positifnya). Floating point. Untuk menyimpan bilangan pecahan.

Type Non-Numerik C# menyediakan dua tipe non-numerik yaitu char dan bool. Bool menyimpan nilai Boolean, yaitu true dan false. Sementara char menyimpan sebuah karakter. Nilai dari sebuah karakter diapit dengan tanda petik tunggal (''). Nilai yang dapat disimpan adalah karakter sederhana, unicode dan escape character. Escape character berguna untuk menyimpan nilai-nilai yang tidak dapat dituliskan.
//karakter sederhana char kar1 = 'A'; //unicode char kar2 = '\u0041'; //escape character char kar3 = '\n';

Variabel
Variabel adalah object yang dapat menyimpan nilai. Agar dapat digunakan maka variabel harus dideklarasikan terlebih dahulu. Contoh deklarasi variabel
int var1;

Deklarasi variabel dilakukan dengan menuliskan tipe-nya, lalu identifier (nama)-nya. Jika diinginkan maka deklarasi variabel dapat juga diikuti dengan inisialisasi nilai
int var1 = 100;

Pada contoh di atas maka, pada saat deklarasi sebuah variabel var1 dengan tipe int, diikuti pula dengan pemberian nilai 100 untuk disimpan pada variabel var1. Selain pada saat deklarasi pemberian nilai (assignment) dapat pula dilakukan kemudian dengan cara
var1 = 100;

Tanda = berfungsi sebagai operator assignment. Untuk menampilkan isi dari sebuah variabel melalui perintah WriteLine, dapat digunakan beberapa cara sebagai berikut
//hanya ada 1 variabel

Console.WriteLine("Ini isi dari var1 {0}", var1); //terdapat lebih dari 1 variabel Console.WriteLine("Ini isi dari var1 {0} dan var2 {1}", var1, var2);

Kode {0} dan {1} disebut dengan parameter substitusi. Penulisan string diikuti dengan tanda koma (,) dan lalu nama variabel. Parameter subsitusi akan digantikan dengan nilai dari variabel sesuai dengan urutannya. Definite Assignment C# membutuhkan definite assignment, yaitu bahwa variabel harus diinisialisasi (atau diassign) sebelum dapat digunakan. Yang dimaksud dengan digunakan adalah mengambil nilai dari variabel yang dimaksud, hal ini dapat berarti digunakan dalam perintah WriteLine, digunakan dalam perhitungan atau lainnya.

Constant
Jika variabel digunakan untuk menyimpan nilai yang dapat berubah-ubah, constant berguna untuk memberikan nilai yang tetap. Ada beberapa jenis constant, yaitu literal, simbolik dan enumerasi (enumerasi). Literal Constant Sebuah literal constant adalah hanya sebuah nilai. Misal 100 seperti pada contoh sebelumnya. Symbolic Constant Sysmbolic Constant memberikan nama pada sebuah nilai tetap. Berikut adalah syntax dari symbolic constant
const type identifier = value;

Kata kunci const diikuti dengan type, identifier, operator assignment (=) dan terakhir nilai untuk inisialisasi constant. Hal ini mirip dengan deklarasi variabel kecuali bahwa kali ini diikuti dengan kata kunci dan sebuah symbolic constant harus diinisialisasi. Setelah diinisialisasi, sebuah symbolic constant tidak dapat diubah lagi nilainya.
const

Enumeration Sebuah enumeration adalah pemberian nama pada sekumpulan constant. Berikut adalah syntax dari enumeration
[attributes ] [modifiers ] enum identifier

[: base-type ] { enumerator-list };

Sedangkan berikut adalah contoh dari sebuah enumeration


enum Temperatures { WickedCold = 0, FreezingPoint = 32, LightJacketWeather = 60, SwimmingWeather = 72, BoilingPoint = 212, }

Berikut adalah contoh lengkap penggunaan enumeration


using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { enum Suhu { Beku = 0, Didih = 100, } static void Main(string[] args) { Suhu suhuSekarang = Suhu.Beku; Console.WriteLine("Suhu saat ini {0}", suhuSekarang); } } }

String
String adalah type yang memuat nilai teks atau tulisan. String sendiri dapat dianggap sebagai kumpulan dari karakter. Literal dari string ditulis dengan diapit oleh tanda petik ganda ( "" ).
string var1 = "Hello Provisi";

Statement Dalam C# penulisan pernyataan / statement selalu diakhiri dengan sebuah tanda semicolon / titik koma (;). Statement akan dijalankan secara berurutan dari atas ke bawah dalam batas-batasnya. Whitespace Dalam bahasa C#, spasi, tab dan baris baru dianggap sebagai whitespace. Secara umum pernyataan C# mengabaikan whitespace Maka statement berikut
int var1 = 5;

Akan sama dengan pernyataan berikut


int var1 = 5;

Atau bahkan pernyataan berikut


int var1 =5;

Tetapi pemisah antara type dan identifier dibutuhkan sehingga tidak diabaikan. Pernyataan berikut adalah salah
intvar1 =5;

Konversi Object dari satu type dapat dikonversi menjadi object dengan type yang berbeda. Menurut MSDN, dalam C# terdapat 4 buah jenis konversi Konversi implisit. Tidak syntax khusus yang dibutuhkan (jadi dilakukan secara otomatis). Konversi jenis ini type safe dan tidak ada data yang akan hilang. Hal ini terjadi karena tipe yang baru lebih besar jangkauannya dibandingkan dengan tipe sebelumnya. Konversi explisit. Dilakukan dengan operator cast. Cast dibutuhkan jika ada kemungkinan informasi yang hilang saat konversi, atau jika konversi mungkin gagal. Hal ini dapat terjadi karena tipe yang baru lebih kecil jangkauannya dibandingkan dengan tipe sebelumnya. Contoh lain penggunaan cast adalah untuk konversi dari class dasar ke class turunan. Konversi User-defined. Dibuat dengan method yang dibuat sendiri. Konversi dengan class bantuan. Digunakan untuk konversi antara type yang tidak kompatibel. Class bantuan yang digunakan biasanya System.Convert atau method Parse yang ada di tiap-tiap type.

int var1 = 10; byte var2 = 10; string var3 = "10"; //konversi implisit var1 = var2; //konversi eksplisit var2 = (byte) var1; //konversi dengan class bantuan var1 = Convert.ToInt32(var3);

Operator
Operator adalah sebuah symbol yang menyebabkan C# untuk melakukan tindakan. Operator Assignment Operator Assignment adalah tanda sama dengan (=). Operator assignment mengakibatkan operand di sebelah kiri operator berubah nilainya sesuai dengan apa pun yang berada di sebelah kanan operator. Berikut adalah contoh assignment nilai 15 ke var1.
var1 = 5;

Assignment dapat pula dilakukan dengan mengambil nilai dari variabel atau constant.
var2 = var1;

Operator Aritmatika Sederhana C# memiliki operator untuk aritmatika sederhana: penjumlahan (+), pengurangan (-), perkalian (*) dan pembagian (/). Satu hal yang menjadi keunikan adalah pembagian integer. Saat melakukan pembagian integer, C# akan membuang remainder (sisa bagi). Jadi membagi 17 dengan 4 akan menghasilkan 4. Sehingga jika ingin mendapatkan hasil pembagian dalam bentuk pecahan, gunakan float atau double. Pembagian antar 2 float memberikan jawaban pecahan. Operator Modulus Untuk mendapatkan remainder (sisa bagi) dari pembagian integer, digunakan operator modulus (%). Sebagai contoh, 17%4 menghasilkan 1 (sisa bagi dari pembagian integer). Operator Increment dan Decrement Operator Reassign

Jika hendak menambah variabel mySalary dengan 5000, berikut yang harus dilakukan
mySalary = mySalary + 5000;

Sekalipun agak aneh, bagi C# hal ini berarti tambahkan 5000 ke nilai mySalary, lalu assign hasilnya ke variabel mySalary. Hal ini juga berlaku pada operator lainnya (pengurangan, perkalian, pembagian). C# juga menyediakan bentuk singkatnya yaitu +=, -=, *=, /=, and %=, untuk melakukan self assignment. Berikut adalah contohnya
mySalary += 5000;

Increment 1 atau Decrement 1 C# juga menyediakan operator khusus untuk melakukan increment 1 (++) dan decrement 1 (--). Jadi jika hendak melakukan increment 1 terhadap variabel myAge, dapat digunakan perintah berikut
myAge++;

Anda mungkin juga menyukai