Saturday, December 24, 2016

Bab 1. Pemrograman C# Belajar Dari Contoh


1. Sekilas Tentang C#







Program C# Pertama

Langsung saja, Anda diajak untuk melihat program C# sederhana.  Anda dapat mengkompilasi dan menjalankannya.

/*
  Ini adalah program C# sederhana.
  Pangil program ini dengan Contoh.cs.
*/

using System;
class Contoh
{
    // Sebuah program C# dimulai dengan memanggil Main().
    static void Main()
    {
        Console.WriteLine("Sebuah program C# sederhana.");
    }
}

Perangkat pengembangan C# yang paling populer adalah Microsoft Visual Studio. Untuk mengkompilasi semua program pada buku ini, digunakan Microsoft Visual Studio 2010 yang mendukung C#.


Menggunakan IDE Visual Studio
Langkah-langkah yang diperlukan untuk mengedit, mengkompilasi, dan menjalakan program C# menggunakan IDE Visual Studio 2010 disajikan berikut. Tampilan bisa saja sedikit berbeda dengan beberapa versi lain dari Visual Studio 2010.

1.     Ciptakan projek C# baru dengan memilih File|New|Project. Kemudian, pilih Windows pada daftar Installed Template. Selanjutnya, pilih Empty Project:



Kemudian, tekan OK untuk menciptakan projek.

2.     Setelah projek baru diciptakan, IDE Visual Studio akan tampak seperti ini:




3.     Pada titik ini, projek kosong dan Anda perlu menambahkan sebuah kode sumber C# pada projek tersebut. Lakukan hal ini dengan mengklik-kanan pada nama projek (Project2 pada contoh ini) di dalam Solution Explorer dan kemudian pilih Add. Anda akan melihat berikut:



4.     Selanjutnya, pilih New Item. Ini menyebabkan dialog Add New Item ditampilkan. Pilih Code dalam daftar Installed Templates. Berikutnya, pilih Code File dan kemudian ubah nama menjadi Contoh.cs, seperti ditunjukkan di sini:



  
5.     Selanjutnya, tambahkan file ke dalam projek dengan menekan Add. Layar Anda akan tampak seperti ini:



6.     Selanjutnya, ketikkan contoh program ke dalam jendela Contoh.cs. Ketika selesai, Layar Anda akan tampak seperti ini:




7.     Kompilasi program dengan memilih Build Solution dari menu Build.

8.     Jalankan program dengan memilih Start Without Deubugging dari menu Debug. Ketika Anda menjalankan program, Anda akan melihat jendela berikut:



Anda tidak perlu menciptakan projek baru untuk setiap contoh program pada buku ini. Anda dapat memakai projek yang sama. Anda hanya perlu menghapus file sumber sekarang dan tambahkan file sumber baru.  Kemudian kompilasi-ulang dan jalankan program tersebut. Akan tetapi, dalam aplikasi di dunia nyata, setiap program akan menggunakan projek sendiri.


Penjelasan Program, Baris Demi Baris
Meskipun Contoh.cs adalah program pendek, tetapi program itu memuat beberapa fitur kunci yang umum ditemukan di semua program C#. Akan dimulai memeriksa setiap bagian program, dimulai dari namanya. Nama suatu program C# bisa apa saja. Tidak seperti beberapa bahasa pemrograman yang lain (khususnya Java) dimana di dalam Java nama suatu file program sangat penting. Hal ini tidak berlaku bagi C#. Pada program contoh sebelumnya, Anda dapat menamainya dengan Contoh.cs, Uji.cs, atau apapun yang lain.

Secara konvensi, program C# menggunakan ekstensi file .cs, dan konvensi ini harus Anda ikuti. Di samping itu, banyak programer lebih memilih nama file sesuai dengan nama kelas yang didefinisikan di dalam file tersebut. Itu mengapa Contoh.cs dipilih karena sama dengan nama kelas Contoh. Tetapi, pada prinsipnya Anda dapat memilih nama file sesukanya.

Program dimulai dengan beberapa baris berikut:

/*
  Ini adalah program C# sederhana.
  Panggil program ini dengan Contoh.cs.
*/

Ini adalah komentar. Seperti kebanyakan bahasa pemrograman, C# mengijinkan Anda untuk memiliki komentar di dalam file sumber. Isi komentar diabaikan kompiler. Komentar bertujuan untuk mendeskripsikan operasi yang dijalankan program. Pada kasus ini, komentar menjelaskan file sumber Contoh.cs.

C# mendukung tiga gaya komentar. Gaya komentar yang dipakai pada program contoh disebut dengan komentar baris-jamak. Gaya komentar ini dimulai dengan /* dan diakhiri dengan */. Apapun yang berada di antara kedua simbol tersebut akan diabaikan kompiler. Seperti namanya, gaya komentar baris-jamak dapat memuat beberapa baris.

Baris selanjutnya di dalam program adalah

using System;

Baris ini mengindikasikan bahwa program menggunakan namespace System. Dalam C#, namespace mendefinisikan sebuah region deklaratif. Meskipun namespace akan dijelaskan secara detil nanti pada buku ini, deskripsi singkat akan diberikan. Melalui penggunaan namespace, suatu himpunan nama dipisahkan dari himpunan nama yang lain. Nama-nama yang dideklarasikan di dalam satu namespace tidak akan berkonflik dengan nama-nama yang dideklarasikan di dalam namespace yang lain. Namespace yang digunakan oleh program ini adalah System, yang diperuntukkan untuk item-item yang berkaitan dengan pustaka kelas Framework .NET (pustaka yang digunakan oleh C#). Katakunci using menyatakan bahwa program menggunakan nama-nama yang ada di dalam namespace terkait.

Baris kode berikutnya di dalam program adalah:

class Contoh {

Baris ini menggunakan katakunci class untuk mendeklarasikan bahwa suatu kelas baru sedang didefinisikan. Seperti disebutkan sebelumnya, kelas merupakan unit dasar C# untuk enkapsulasi. Contoh merupakan nama kelas. Definisi kelas diawali dengan kurung kurawal buka ({) dan diakhiri dengan kurung kurawal tutup (}). Semua elemen yang diapit oleh kedua kurung kurawal tersebut disebut dengan anggota kelas. Untuk sementara ini, Anda tidak perlu khawatir tentang detil suatu kelas.

Baris berikutnya di dalam program adalah komentar satu-baris, ditunjukkan di sini:

// Sebuah program C# dimulai dengan memanggil Main().

Ini merupakan gaya komentar kedua yang didukung oleh C#. Komentar satu-baris diawali dengan // dan berakhir pada akhir baris. Baris kode berikutnya adalah

static void Main() {

Baris ini diawali dengan metode Main(). Seperti disebelumnya disebutkan, dalam C#, subrutin disebut dengan metode. Semua aplikasi C# dieksekusi dengan memanggil Main(). Arti seutuhnya dari setiap bagian baris ini tidak bisa diberikan sekarang, karena memerlukan pemahaman detil atas beberapa fitur C#. Tetapi, karena banyak contoh di dalam buku ini menggunakan baris kode ini, maka akan dijelaskan sedikit di sini.

Baris tersebut diawali dengan katakunci static. Suatu metode yang dimodifikasi dengan static dapat dipanggil sebelum sebuah objek dari kelasnya diciptakan. Katakunci void mengindikasikan bahwa Main() tidak menghasilkan suatu nilai balik. Seperti yang Anda akan lihat, beberapa metode dapat menghasilkan nilai balik. Kurung kosong yang mengikuti Main mengindikasikan bahwa tidak ada informasi yang dilewatkan kepada Main(). Meskipun adalah hal yang memungkinkan untuk melewatkan informasi kepada Main(), tidak ada yang dilewatkan dalam contoh ini. Karakter terakhir pada baris ini adalah {. Karakter ini menandai awal tubuh Main().

Baris kode selanjutnya ditunjukkan di sini. Perhatikan bahwa baris kode tersebut berada di dalam Main().

Console.WriteLine("Sebuah program C# sederhana.");

Baris ini menampilkan “Sebuah program C# sederhana.” diikuti dengan baris baru pada layar. Keluaran dilakukan dengan menggunakan metode built-in WriteLine(). Pada kasus ini, WriteLine() menampilkan string yang dilewatkan kepadanya. Informasi yang dilewatkan kepada sebuah metode disebut pula dengan argumen. Di samping string, WriteLine() dapat digunakan untuk menampilkan jenis informasi lain. Baris kode tersebut diawali dengan Console, yang merupakan nama dari kelas terdefinisi yang mendukung konsol I/O. Dengan mengkoneksikan Console dengan WriteLine(), Anda memberitahukan kompiler bahwa WriteLine() merupakan anggota dari kelas Console.

Perhatikan bahwa statemen WriteLine() diakhiri dengan tanda titik-koma, sama seperti statemen using System sebelumnya. Secara umum, statemen dalam C# diakhiri dengan tanda titik-koma. Pengecualian untuk aturan ini adalah blok, yang diawali dengan { dan diakhiri dengan }. Blok berperan sebagai mekanisme untuk mengelompokkan beberapa statemen dan akan didiskusikan nanti.

Satu hal penting lagi: C# adalah bahasa sensitif. Hal ini merupakan masalah yang serius. Sebagai contoh, jika Anda secara tak sengaja mengetikkan main menggantikan Main, atau writeline menggantikan WriteLine, maka program akan menjadi bermasalah.


Penanganan Error Sintaks
Jika Anda baru dalam pemrograman, maka adalah hal penting untuk belajar bagaimana menginterpretasi dan merespon error yang terjadi ketika Anda mencoba mengkompilasi suatu program. Kebanyakan error kompilasi terjadi diakibatkan oleh kesalahan pengetikan. Jika Anda salah mengetikkan sintaks, kompiler akan melaporkan pesan error sintaks. Pesan ini memberitahu Anda nomor baris dan deskripsi error yang terjadi.

Meskipun error yang dilaporkan kompiler berguna, kadangkala pesan error dapat menyesatkan. Kompiler C# mencoba memahami kode sumber Anda, tak peduli apapun yang Anda tulis. Karena alasan ini, error yang dilaporkan bisa jadi tidak merefleksikan penyebab masalah yang ada. Pada program sebelumnya, misalnya, pengabaian secara tak-sengaja atas kurung kurawal buka ({) setelah metode Main() akan menghasilkan runtun error berikut:

Contoh.cs(10,23): error CS1002: ; expected
Contoh.cs(12,26): error CS1519: Invalid token '(' in class, struct, or interface member declaration
Contoh.cs(14,1): error CS1022: Type or namespace definition, or end-of-file expected

Jelaslah bahwa pesan error pertama sangat menyesatkan karena apa yang hilang bukanlah tanda titik-koma, tetapi kurung kurawal buka. Pesan error kedua juga sama membingungkannya.


Variasi Kecil
Meskipun semua program dalam buku ini akan menggunakannya baris

using System;

pada awal contoh program pertama sebenarnya bisa diabaikan dengan cara tertentu. Sebagai contoh, baris kode

Console.WriteLine("Sebuah program C# sederhana.");

dapat ditulis-ulang menjadi

System.Console.WriteLine("Sebuah program C# sederhana.");

Jadi, contoh pertama dapat ditulis-ulang menjadi:

// Versi ini tidak mencantumkan "using System;".
class Contoh
{
    // Sebuah program C# diawali dengan pemanggilan Main().
    static void Main()
    {
        // Di sini, Console.WriteLine secara penuh dikualifikasi.
        System.Console.WriteLine("Sebuah program C# sederhana.");
    }
}

Karena cukup merepotkan untuk selalu menspesifikasi namespace System kapan saja sebuah anggota namespace digunakan, kebanyakan programer C# mencantumkan using System di atas program mereka, sama seperti semua program dalam buku ini.


Program Sederhana Kedua
Mungkin, tidak ada yang lebih penting dari variabel dalam suatu bahasa pemrograman. Variabel adalah sebuah lokasi memori bernama yang dapat ditugasi suatu nilai. Disebut sebagai variabel karena nilainya dapat diubah selama eksekusi program. Program berikut menciptakan dua variabel x dan y.

// Program ini menciptakan variabel.
using System;

class Contoh2 {
  static void Main() {
      int x; // mendeklarasikan sebuah variabel
      int y; // mendeklarasikan variabel lain
     
      x = 100; // menugaskan 100 kepada x

      Console.WriteLine("x memuat " + x);
      y = x / 2;

      Console.Write("y memuat x / 2: ");
      Console.WriteLine(y);
  }
}

Ketika Anda menjalankan program ini, didapatkan keluaran berikut:

x memuat 100
y memuat x / 2: 50

Program ini mengintroduksi beberapa konsep baru. Pertama, statemen

int x; // mendeklarasikan sebuah variabel

mendeklarasikan sebuah variabel yang dinamakan x bertipe integer. Dalam C#, semua variabel harus dideklarasikan sebelum digunakan. Di samping itu, jeni nilai yang dapat ditampung variabel harus juga dispesifikasi. Jenis nilai tersebut dikenal dengan tipe variabel. Pada kasus ini, x dapat menampung nilai integer. Dalam C#, untuk mendeklarasikan sebuah variabel bertipe integer, Anda perlu mencantumkan katakunci int sebelum nama variabel.

Baris selanjutnya mendeklarasikan variabel kedua yang dinamakan dengan y.

int y; // mendeklarasikan variabel lain

Perhatikan bahwa statemen tersebut menggunakan format yang sama dengan pendeklarasian variabel pertama.

Secara umum, untuk mendeklarasikan sebuah variabel, Anda harus menggunakan statemen seperti ini:

tipe_data nama_var;

Di sini, tipe_data adalah tipe data variabel yang sedang dideklarasikan, dan nama_var adalah nama variabel. Di samping int, C# mendukung beberapa tipe data lain.

Baris kode berikut menugaskan nilai 100 kepada variabel x:

x = 100; // menugaskan 100 kepada x

Dalam C#, operator penugasan adalah tanda sama dengan (tunggal). Statemen di atas menyalin nilai di sisi kanan operator ke dalam variabel di sisi kiri operator penugasan.

Baris kode berikutnya menampilkan nilai x yang didahului dengan string “x memuat”.

Console.WriteLine("x memuat " + x);

Dalam statemen ini, tanda plus menyebabkan nilai x ditampilkan setelah string yang mengawalinya. Pendekatan ini  dapat digeneralisir. Menggunakan operator +, Anda dapat merangkai sebanyak mungkin item yang Anda inginkan di dalam sebuah statemen WriteLine() tunggal.

Baris kode berikutnye menugaskan nilai x dibagi dengan 2 kepada y:

y = x / 2;

Baris ini membagi nilai di dalam x dengan 2 dan kemudian menyimpan hasilnya di dalam y. Jadi, setelah baris tersebut dieksekusi, y akan memuat nilai 50. Nilai x tidak berubah. Seperti bahasa pemrograman lainnya, C# mendukung beberapa operator aritmatika, termasuk yang ditunjukkan di sini:

+
Penjumlahan
-
Pengurangan
*
Perkalian
/
Pembagian

Berikut adalah dua baris selanjutnya di dalam program:

Console.Write("y memuat x / 2: ");
Console.WriteLine(y);

Dua hal baru terjadi di sini. Pertama, metode built-in Write() digunakan untuk menampilkan string “y memuat x / 2: “. String ini tidak diikuti dengan garis baru. Ini berarti bahwa ketika keluaran berikutnya dihasilkan, ia ditempatkan pada baris yang sama. Metode Write() sama seperti WriteLine(), kecuali bahwa ia tidak menampilkan sebuah garis baru pada tiap pemanggilannya. Kedua, dalam pemanggilan WriteLine(), perhatikan bahwa yang ditampilkan hanya nilai dari y. Kedua metode Write() dan WriteLine() dapat dipakai untuk menampilkan nilai dari sembarang tipe built-in C#.

Satu hal lain tentang pendeklarasian variabel adalah bahwa memungkinkan untuk mendeklarasikan dua atau lebih variabel menggunakan statemen deklarasi yang sama. Anda hanya perlu memisahkan nam-nama variabel menggunakan koma. Sebagai contoh, x dan y dapat dideklarasikan seperti ini:

int x, y; // keduanya dideklarasikan menggunakan satu statemen


Tipe Data Lainnya
Dalam contoh sebelumnya, sebuah variabel bertipe int dipakai. Namun, variabel int hanya dapat memuat bilangan bulat. Variabel tersebut tidak bisa dipakai ketika komponen pecahan diperlukan. Sebagai contoh, sebuah variabel int dapat menampung nilai 18, tetapi tidak bisa menampung nilai 18.3. Untungnya, int hanyalah salah satu dari beberapa tipe data yang didefinisikan oleh C#. Untuk menampung bilangan pecahan, C# mendefinisikan dua tipe titik-mengambang: float dan double, yang merepresentasikan nilai kepresisian tunggal dan ganda. Dari keduanya, double adalah yang paling umum dipakai.

Untuk mendeklarasikan sebuah variabel bertipe double, digunakan statemen seperti berikut:

double hasil;

Di sini, hasil adalah nama variabel, yang bertipe double. Karena hasil memiliki tipe titik-mengambang, ia dapat menampung nilai-nilai seperti 122.23, 0.035, atau -19.34.

Untuk melebih memahami perbedaan antara int dan double, Anda bisa mencoba program berikut:

/*
Program ini mengilustrasikan perbedaan
antara int dan double.
*/

using System;
class Contoh3
{
    static void Main()
    {
        int ivar; // mendeklarasikan sebuah variabel int
        double dvar; // mendeklarasikan sebuah variabel titik-mengambang
       
        ivar = 100; // menugaskan 100 kepada ivar
       
        dvar = 100.0; // menugaskan 100.0 kepada dvar
       
        Console.WriteLine("Nilai asli dari ivar: " + ivar);
        Console.WriteLine("Nilai asli dari dvar: " + dvar);
       
        Console.WriteLine(); // tampilkan baris baru
       
        // Sekarang, bagi keduanya dengan 3.
        ivar = ivar / 3;
        dvar = dvar / 3.0;
       
        Console.WriteLine("ivar setelah pembagian: " + ivar);
        Console.WriteLine("dvar setelah pembagian: " + dvar);
    }
}

Keluaran program ditampilkan di sini:

Nilai asli dari ivar: 100
Nilai asli dari dvar: 100

ivar setelah pembagian: 33
dvar setelah pembagian: 33.3333333333333

Seperti yang dapat Anda lihat, ketika ivar (sebuah variabel int) dibagi dengan 3, pembagian integer dilakukan dan menghasilkan keluaran 33, komponen pecahan hilang. Namun, ketika dvar (sebuah variabel double) dibagi dengan 3, komponen pecahan dipertahankan.

Seperti yang ditunjukkan dalam program, ketika Anda ingin menetapkan sebuah nilai titik-mengambang, Anda harus mencantumkan titik desimal. Jika tidak, nilai akan diinterpretasikan sebagai integer. Sebagai contoh, dalam C#, nilai 100 adalah sebuah integer, tetapi nilai 100.0 adalah nilai titik-mengambang (pecahan).

Ada satu hal baru yang perlu diperhatikan di dalam program. Untuk menampilkan sebuah baris kosong, Anda cukup hanya memanggil WriteLine() tanpa argumen.

Tipe data titik-mengambang seringkali dipakai ketika bekerja dengan kuantitas dunia nyata dimana komponen pecahan umumnya dibutuhkan. Sebagai contoh, program ini menghitung luas suatu lingkaran. Program tersebut menggunakan nilai 3.1416 untuk pi.

// Menghitung luas suatu lingkaran.
using System;

class Lingkaran {
  static void Main() {
      double radius;
      double luas;

      radius = 10.0;
      luas = radius * radius * 3.1416;

      Console.WriteLine("Luas adalah " + luas);
  }
}

Keluaran program ditampilkan di sini:

Luas adalah 314.16

Jelaslah bahwa komputasi atas luas lingkaran tidak bisa dicapai dengan memuaskan tanpa menggunakan tipe data titik-mengambang.

Dua Statemen Kendali
Di dalam suatu metode, eksekusi dilakukan dari satu statemen ke statemen berikutnya, dari atas ke bawah. Adalah hal yang memungkinkan untuk mengubah aliran kendali ini menggunakan berbagai statemen kendali yang didukung oleh C#. Meskipun topik tentang statemen kendali akan dibahas nanti, dua statemen kendali akan dijelaskan secara singkat karena akan digunakan di dalam beberapa program contoh.


Statemen if
Anda dapat secara selektif mengeksekusi bagian suatu program melalui penggunaan statemen kondisional C#: statemen if. Statemen if bekerja hampir sama dengan statemen IF pada bahasa pemrograman lainnya. Sebagai contoh, secara sintaks statemen if dalam C# identik dengan statemen IF dalam C, C++, dan Java. Bentuk sederhana dari statemen if ditampilkan di sini:

if(kondisi) statemen;

Di sini, kondisi adalah sebuah ekspresi Boolean (bernilai false atau true). Jika kondisi bernilai true, maka statemen akan dieksekusi. Jika kondisi bernilai false, maka statemen diabaikan. Berikut adalah sebuah contoh:

if(10 < 11) Console.WriteLine("10 kurang dari 11");

Pada kasus ini, karena 10 kurang dari 11, ekspresi kondisional bernilai true, dan WriteLine() akan dieksekusi. Namun, perhatikan berikut:

if(10 < 9) Console.WriteLine("Ini tidak akan ditampilkan”);

Pada kasus ini, 10 tidak lebih rendah dari 9. Jadi, pemanggilan terhadap WriteLine() tidak akan pernah terjadi.

C# mendefinisikan beberapa operator relasional yang bisa dipakai di dalam ekspresi kondisional. Semua operator relasional tersebut ditampilkan di sini:

Operator
Arti
< 
Kurang dari
<=
Kurang dari atau sama dengan
> 
Lebih dari
>=
Lebih dari atau sama dengan
==
Sama dengan
!=
Tidak sama dengan

Berikut adalah suatu program yang mengilustrasikan statemen if:

// Mendemonstrasikan statemen if.
using System;

class DemoIf
{
    static void Main()
    {
        int a, b, c;
       
        a = 2;
        b = 3;
       
        if (a < b) Console.WriteLine("a kurang dari b");
       
        // Ini tidak akan menampilkan apapun.
        if (a == b) Console.WriteLine("Anda tidak akan melihat ini");
       
        Console.WriteLine();
       
        c = a - b; // c memuat -1
       
        Console.WriteLine("c memuat -1");
        if (c >= 0) Console.WriteLine("c tak-negatif");
        if (c < 0) Console.WriteLine("c negatif");
       
        Console.WriteLine();
       
        c = b - a; // c sekarang memuat 1
        Console.WriteLine("c memuat 1");
        if (c >= 0) Console.WriteLine("c tak-negatif");
        if (c < 0) Console.WriteLine("c negatif");
    }
}

Keluaran program yang dihasilkan ditampilkan di sini:

a kurang dari b

c memuat -1
c negatif

c memuat 1
c tak-negatif

Perhatikan satu hal di dalam program. Baris

int a, b, c;

mendeklarasikan tiga variabel a, b, dan c, yang dipisahkan oleh koma. Seperti yang disebutkan sebelumnya, ketika Anda mendeklarasikan dua atau lebih variabel bertipe sama, Anda bisa mendeklarasikannya dalam satu statemen, menggunakan koma sebagai pemisah.


Loop for
Anda dapat secara berulang mengeksekusi runtun kode dengan menciptakan sebuah loop. C# mendukung penggunaan loop. Loop yang akan didiskusikan di sini adalah loop for. Seperti statemen if, loop for pada C# sama dengan loop for dalam C, C++, dan Java. Bentuk paling sederhana dari loop for adalah:

for(inisialisasi; kondisi; iterasi) statemen;
Dalam kebanyakan bentuknya, bagian inisialisasi dari loop menetapkan nilai awal dari variabel kendali loop. kondisi adalah ekspresi Boolean yang menguji variabel kendali loop. Jika keluaran dari ekspresi Boolean tersebut bernilai true, maka loop for akan berlanjut beriterasi. Jika false, maka loop for akan berhenti. Ekspresi iterasi menentukan bagaimana variabel kendali loop diubah setiap kali loop beriterasi. Berikut adalah program pendek untuk mengilustrasikan loop for:

// Mendemonstrasikan loop for.
using System;

class DemoFor
{
    static void Main() {
        int hitung;
        for (hitung = 0; hitung < 5; hitung = hitung + 1)
            Console.WriteLine("Ini adalah hitung: " + hitung);
        Console.WriteLine("Selesai!");
    }
}

Keluaran program adalah:

Ini adalah hitung: 0
Ini adalah hitung: 1
Ini adalah hitung: 2
Ini adalah hitung: 3
Ini adalah hitung: 4
Selesai!

Pada contoh ini, hitung adalah variabel kendali loop. Bagian inisialisasi dari loop for menetapkan variabel kendali menjadi nol. Pada awal tiap iterasi (termasuk yang pertama), uji kondisional hitung < 5 dilakukan. Jika hasil pengujian bernilai true, maka statemen WriteLine() akan dieksekusi. Berikutnya, bagian iterasi dari loop dieksekusi, yang menambahkan 1 pada hitung. Proses ini berlanjut sampai hitung meraih 5. Pada titik ini, uji kondisional menjadi false, menyebabkan loop for berhenti.

Para programer C# profesional tidak akan pernah menuliskan bagian iterasi loop seperti yang ditunjukkan pada program. Anda akan jarang sekali melihat statemen seperti ini:

hitung = hitung + 1

Alasannya adalah bahwa C# mencantumkan operator inkremen yang melakukan operasi ini. Operator inkremen ++ menambahkan satu pada operandnya. Statemen sebelumnya dapat ditulis-ulang menjadi

hitung++;

Jadi, loop for pada program terdahulu akan dituliskan seperti ini:

for (hitung = 0; hitung < 5; hitung++)


Menggunakan Blok Kode
Elemen kunci C# yang lain adalah kode blok. Kode blok adalah beberapa statemen yang dikelompokkan. Ini dilakukan dengan mengapit beberapa statemen menggunakan kurung kurawal buka dan kurung kurawal tutup. Begitu suatu blok kode diciptakan, ia menjadi sebuah unit logis yang dapat dipakai di sembarang tempat seperti layaknya statemen tunggal. Sebagai contoh, sebuah blok dapat menjadi target untuk statemen if dan statemen for. Perhatikan statemen if berikut:

if(w < h) {
  v = w * h;
  w = 0;
}

Di sini, jika w lebih kecil dari h, maka kedua statemen di dalam blok akan dieksekusi. Jadi, dua statemen di dalam blok membentuk suatu unit logis, dan salah satu statemen tidak dapat dieksekusi bila statemen lain tidak dieksekusi juga. Kunci penting di sini adalah kapan saja Anda perlu menghubungkan satu atau lebih statemen secara logis, Anda bisa melakukannya dengan menciptakan sebuah blok. Blok kode membuat banyak algoritma dapat diimplementasikan dengan kejelasan dan efisiensi yang lebih baik.

Berikut adalah sebuah program yang menggunakan blok kode untuk mencegah pembagian oleh nol:

// Mendemonstrasikan blok kode.
using System;

class DemoBlok
{
    static void Main() {
        int i, j, d;
        i = 5;
        j = 10;
      
        // Target dari if ini adalah sebuah blok.
        if (i != 0) {
            Console.WriteLine("i tidak sama dengan nol");
            d = j / i;
            Console.WriteLine("j / i adalah " + d);
        }
    }
}

Keluaran program ditampilkan di sini:

i tidak sama dengan nol
j / i adalah 2

Pada kasus ini, target dari statemen if adalah sebuah blok kode dan bukan hanya statemen tunggal. Jika kondisi pengendali if bernilai true (seperti pada kasus ini), tiga statemen di dalam blok tersebut akan dieksekusi. Anda bisa mencoba menetapkan i dengan nol dan amati hasilnya.

Di sini akan diberikan contoh lain, yang menggunakan sebuah kode blok untuk menghitung penjumlahan dan perkalian dari angka 1 sampai 10.

// Menghitung penjumlahan dan perkalian angka 1 sampai 10.
using System;

class JumlahKali
{
    static void Main()
    {
        int perkalian;
        int penjumlahan;
        int i;
       
        penjumlahan = 0;
        perkalian = 1;
      
        for (i = 1; i <= 10; i++)
        {
            penjumlahan = penjumlahan + i;
            perkalian = perkalian * i;
        }
        Console.WriteLine("Penjumlahan adalah " + penjumlahan);
        Console.WriteLine("Perkalian adalah " + perkalian);
   
    }
}

Tampilan program ditunjukkan di sini:

Penjumlahan adalah 55
Perkalian adalah 3628800

Di sini, blok membuat satu loop bisa menghitung penjumlahan dan perkalian. Tanpa penggunaan blok, dua loop for terpisah akan diperlukan.


Tanda Titik-Koma, Pemosisian, dan Identasi
Dalam C#, tanda titik-koma menandai akhir suatu statemen. Setiap statemen individual harus diakhir dengan titik-koma.

Seperti yang Anda ketahui, blok merupakan sekelompok statemen yang terkoneksi secara logis yang diapit oleh kurung kurawal tutup dan kurung kurawal buka. Blok tidak dihentikan dengan titik-koma.

C# tidak mengenali akhir baris sebagai akhir suatu statemen, karena hanya tanda titik-koma yang menandai akhir statemen. Karena alasan ini, tidak menjadi persoalan dimana Anda menempatkan statemen di dalam suatu baris. Sebagai contoh, bagi C#

x = y;
y = y + 1;
Console.WriteLine(x + " " + y);

sama dengan

x = y; y = y + 1; Console.WriteLine(x + " " + y);

Di samping itu, elemen-elemen individual dari suatu statemen dapat ditempatkan pada baris terpisah. Misalnya, berikut adalah statemen yang sah:

Console.WriteLine("Ini adalah sebaris panjang keluaran" +
                   x + y + z +
                  "lebih banyak keluaran");

Memecah baris panjang dalam gaya seperti ini seringkali dipakai untuk membuat program lebih mudah dibaca. Cara ini juga dapat mencegah baris menjadi terlalu panjang.


Katakunci C#
C# mendefinisikan dua tipe umum dari katakunci: reservasi dan kontekstual. Katakunci reservasi tidak dapat dipakai sebagai nama untuk variabel, kelas, atau metode. Terdapat 77 katakunci reservasi yang didefinisikan oleh bahasa C#, yang ditampilkan pada Tabel 1.1.

Tabel 1.1 Katakunci reservasi C#


C# juga mendefinisikan 18 katakunci kontekstual yang memiliki makna spesial dalam konteks tertentu. Di luar konteks tersebut, katakunci tersebut dapat dipakai seperti untuk nama variabel. Namun, secara teknis, Anda direkomendasikan untuk tidak menggunakan katakunci ini untuk nama variabel, kelas, atau metode. Semua katakunci kontekstual dalam C# ditunjukkan pada Tabel 1.2.

Tabel 1.2 Katakunci kontekstual dalam C#



Identifier atau Pengenal
Dalam C#, pengenal adalah sebuah nama yang ditugaskan pada metode, variabel, atau sembarang item yang didefinisikan pengguna. Pengenal dapat mempunyai panjang berapapun. Pengenal dapat diawali dengan sembarang huruf atau garis-bawah (underscore) dan diikuti dengan huruf, dijit, atau garis-bawah (underscore). Pengenal yang memuat dua garis-bawah, seperti nilai__maks, hanya diperuntukkan untuk kompiler. Huruf besar berbeda dengan huruf kecil; varku dan VarKu dalah dua nama yang berbeda. Berikut adalah beberapa contoh pengenal yang sah.

Uji
x
y2
BebanPenuh
bawah
_atas
var_ku
contoh23

Ingat bahwa Anda tidak dapat mengawali pengenal dengan sebuah dijit. Jadi, 12x adalah pengenal yang salah. Praktek pemrograman yang baik adalah bahwa Anda memilih pengenal yang merefleksikan makna atau kegunaan dari item yang sedang dinamai.

Meskipun Anda tidak dapat menggunakan katakunci reservasi C# sebagai pengenal, C# mengijinkan Anda untuk mengawali katakunci dengan @ agar menjadi pengenal yang sah. Sebagai contoh, @for adalah pengenal yang sah.

// Mendemonstrasikan pengenal @.

using System;

class TestID
{
    static void Main()
    {
        int @if; // menggunakan if sebagai pengenal
       
        for (@if = 0; @if < 10; @if++)
            Console.WriteLine("@if adalah " + @if);
    }
}

Keluaran dari program ditampilkan di sini:

@if adalah 0
@if adalah 1
@if adalah 2
@if adalah 3
@if adalah 4
@if adalah 5
@if adalah 6
@if adalah 7
@if adalah 8
@if adalah 9





2 comments: