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
infonya sangat bermanfaat bagi ane
ReplyDeleteSolder uap
nice information min
ReplyDeleteIsolasi hp double tape