Friday, October 2, 2015

Mengenal variabel variable yang terdapat dalam bahasa pemrograman c-sharp

1.        Variabel
Sebuah program yang kita buat umumnya merupakan kumpulan data yang akan kita olah untuk menghasilkan informasi yang berguna bagi pengguna program tersebut. Misalkan kita membuat sebuah program untuk mengelola data siswa di suatu sekolah maka kita harus mencacat nomor induk, nama dan umur dari siswa. Untuk mencatat data ini kita memerlukan apa yang disebut dengan variabel.

Variabel dapat didefinisikan sebagai tempat untuk menyimpan data yang memiliki suatu tipe data, variabel ini akan diwakili oleh suatu lokasi di memori komputer kita. Dengan menggunakan nama variabel ini kita akan dapat mengaskes data yang tersimpan di lokasi memori tersebut.
C# adalah suatu bahasa pemrograman yang strongly-typed ini berarti bahwa semua object yang digunakan dalam program C# harus memiliki suatu tipe data yang spesifik dan variabel ini hanya dapat menyimpan data yang memiliki tipe yang sesuai. Misalnya jika kita mendeklarasikan variabel bertipe int maka variabel ini hanya dapat menyimpan data bilangan bulat dan tidak dapat menyimpan bilangan desimal. Selain itu C# juga dikatakan sebagai sebuah bahasa yang type-safe, kompiler C# akan menjamin bahwa data yang dimasukan ke suatu variabel adalah tipe yang sesuai.
a.             Nama Variabel
Berikut adalah aturan yang harus dipatuhi untuk memberikan suatu nama variabel dalam bahasa pemgrograman C#.
·        Nama variabel terdiri dari huruf, angka dan under score (_).
·        Nama harus diawali dengan huruf. Under score juga dapat digunakan untuk mengawali nama suatu variabel tetapi ini tidak disarankan.
·        C# adalah bahasa yang case sensitif, variabel dengan nama umur tidak sama dengan Umur.
·        Keyword tidak bisa digunakan sebagai nama variabel, kecuali kalau keyword ini diawali dengan karakter @.
Berikut adalah contoh nama variabel yang benar dan salah.

Nama
Benar/Salah
nomorInduk
Benar
nama siswa
Benar
TotalPenjualan
Benar
2Date
Salah; karena diawali dengan angka
public
Salah; karena public adalah keyword
total#pembelian
Salah; karena menggunakan karakter #
_total_memory
Benar; tetapi tidak dianjurkan
@int
Benar; keyword diawali dengan @

Banyak konvensi yang digunakan untuk memformat penamaan variabel ini. Ada yang disebut dengan notasi Pascal, dimana setiap kata yang digunakan sebagai nama variabel akan selalu dimulai dengan huruf besar. Notasi Camel memiliki kesamaan dengan dengan notasi Pascal hanya saja huruf pertama dalam notasi ini selalu dimulai dengan huruf kecil. Sedangkan notasi Hungarian mirip dengan notasi Camel tetapi setiap variabel akan dimulai dengan kode yang menyatakan tipe data dari variabel tersebut.
Penggunaan konvensi dalam penamaan variabel ini bisa disesuai dengan selera masing-masing, belakangan ini yang banyak digunakan adalah notasi Camel. Yang terpenting dari penamaan variabel ini adalah gunakanlah nama yang dapat memudahkan program untuk dibaca.

Notasi
Contoh
Pascal
NamaSiswa, TotalPenjualan
Camel
namaSiswa, totalPenjualan
Hungarian
strNamaSiswa, intTotalPenjualan

b.             Kategori Variabel
Variabel dalam C# dikelompokan menjadi variabel static, variabel instance, variabel lokal, elemen array dan parameter.
Variabel static dibuat dengan mendeklarasikan suatu variabel dengan menggunakan keyword static. Variabel static adalah bagian dari tipe dan bukan merupakan bagian dari object, oleh karena itu variabel static hanya dapat diakses melalui tipenya. Jika kita mengakses data static melalui instance/object maka kompiler akan memberikan pesan kesalahan. Variabel static juga sering disebut dengan static field.
Variabel instance adalah variabel yang merupakan bagian dari instance suatu tipe. Variabel ini dideklarikan dalam suatu tipe tanpa menggunakan keyword static. Variabel ini juga sering disebut dengan instance field.
Variabel lokal adalah variabel yang dideklarasikan di dalam suatu blok, statemen for, switch, atau using. Sebelum nilai dari variabel lokal ini dapat diakses maka variabel ini perlu diberikan suatu nilai secara ekplisit. Kompiler akan gagal melakukan kompilasi jika variabel ini diakses pada saat belum diberikan suatu nilai.
public class FooClass
{
    private static int x;
    private int y;
    public void Method(int[] z)
    {
        string name = "Foo";
    }
}
x merupakan variabel static bertipe int, y adalah instance variabel bertipe int dan z adalah array yang memiliki elemen betipe int dan name adalah sebuah variabel lokal.
b.1.  Parameters
Suatu method dapat memiliki serangkaian parameter. Parameter ini akan mengirimkan informasi yang diperlukan oleh method untuk melakukan operasinya. Dalam C# parameter dibagi menjadi value parameter, output parameter dan reference parameter. Untuk membuat parameter output digunakan keyword out dan untuk membuat parameter reference digunakan keyword ref. Jika tidak ditentukan out atau ref maka parameter akan dikirimkan secara by-value, ini bearti salinan dari value akan dibuat pada saat kita mengakses suatu method.
using System;
public class Foo
{
    public static void FooMethod(int x, out int y, ref int z)
    {
        x = x * 10; y = x + 10; z = x * 100;
    }
    public static void Main()
    {
        int a = 10;
        int b;
        int c = 10;
        FooMethod(a, out b, ref c);
        Console.WriteLine("Nilai a = {0}", a);
        Console.WriteLine("Nilai b = {0}", b);
        Console.WriteLine("Nilai c = {0}", c);
    }
}
Pada contoh program diatas, pada method FooMethod, a merupakan parameter value, b merupakan parameter output dan c merupakan parameter reference.
Parameter value dan parameter reference sebelum dikirimkan kedalam suatu method harus diberikan suatu nilai, sedangkan parameter output tidak perlu diberikan suatu nilai pada saat dikirimkan kedalam suatu method, tetapi parameter output ini harus diberikan suatu nilai sebelum keluar dari exit point di method tersebut. Dalam contoh diatas juga terlihat bahwa untuk mengkases method yang menerima parameter out dan ref maka ekspresi untuk memanggil juga harus menggunakan keyword out dan ref.
Jika program diatas dijalankan akan menampilkan hasil berikut:
Nilai a = 10
Nilai b = 110
Nilai c = 10000

Karena a dikirimkan by value maka walaupun x didalam FooMethod nilainya dikalikan dengan 10 hasil yang ditampilkan tetap 10. Sedangkan c dikirimkan by-reference maka hasil yang ditampilkan adalah 10000; karena di dalam FooMethod nilai z diubah dengan mengalikannya dengan x yang sebelumnya telah dikalikan dengan 10 (10 * 10 * 100). b dikirimkan sebagai parameter output, jika b tidak diberikan suatu nilai dalam FooMethod kompiler akan memberikan pesan kesalahan berikut pada saat program di kompilasi.
The out parameter 'b' must be assigned to before control leaves the current method

c.              Mendeklarasikan Variabel
Variabel dibuat dengan mendeklarasikan tipe data, memberinya suatu nama. Adapun cara untuk mendeklarasikan suatu variabel adalah:
type identifier;
    int jumlahSiswa;
Akan mendeklarasikan variabel jumlahSiswa yang bertipe int. Kita juga dapat mendeklarasikan beberapa variabel yang memiliki tipe data yang sama dengan memisahkan setiap variabel dengan tanda koma.
int day, month, year;
Contoh diatas akan mendeklarasikan tiga variabel sekaligus yaitu day, month dan year. Pendeklarasian variabel sebaiknya dibuat secara terpisah untuk setiap variabel, ini dapat memudahkan kita untuk membaca program dan melakukan pelacakan kesalahan dalam program kita.
Pendeklarasian suatu varibel dapat juga digabungkan dengan pemberian initial value untuk variabel tersebut.
type identifier = initial_value;
    int day = 30, month = 12, year = 1976;
Contoh diatas menambahkan nilai awal terhadap tiga variabel yang dideklarasikan.
Program berikut memberi contoh pendeklarasian variabel yang dilanjutkan dengan memberikan suatu nilai.
using System;
class Variabel
{
    public static void Main(string[] args)
    {
        int x = 10;
        Console.Out.WriteLine("x = {0}", x); x = 20;
        Console.Out.WriteLine("x = {0}", x);
    }
}
Jika program ini dijalankan maka di layar akan ditampilkan hasil sebagai berikut:
x = 10 x = 20
Program diatas mendeklarasikan sebuah variabel bertipe int dengan nama x yang kemudian diberikan nilai 10 yang kemudian ditampilkan. Setelah itu nilai x diubah menjadi 20 dan kemudian ditampilkan sekali lagi.
d.             Assigment / Pemberian Nilai
C# mengharuskan sebuah variabel memiliki suatu nilai sebelum dapat membaca nilai yang dimilikinya, tetapi ini tidak mengharuskan suatu variable diinisialisasi pada saat pendeklarasiannya. Keharusan pemberian nilai kedalam variabel ini di dalam C# ini disebut dengan definite assignment.
Adapun cara untuk memberikan nilai kedalam suatu variabel adalah:
identifier = value;
Identifier adalah nama dari variabel sendangkan value adalah sebuah nilai yang diberikan kepada variabel ini.
Sebagai contoh jika program pada sub deklarasi sebelumnya dimodifikasi menjadi sebagai sebagai berikut:
using System;
class Variabel
{
    public static void Main(string[] args)
    {
        int x;
        Console.Out.WriteLine("x = {0}", x);
        x = 20;
        Console.Out.WriteLine("x = {0}", x);
        X = 30;
        Console.Out.WriteLine("x = {0}", x);
    }
}
Pada contoh diatas variabel x coba untuk ditampilkan padalah belum memiliki suatu nilai, maka sewaktu program dikompilasi akan memberikan pesan kesalahan sebagai berikut:
Variabel.cs(8,42): error CS0165: Use of unassigned local variable 'x'
Untuk mencegah terjadinya kesalahan diatas maka x harus diberi nilai sebelum ditampilkan. Pada program diatas kita dapat menambahkan 1 baris kode yaitu:
x = 10;
tepat dibawah pendeklarasian variabel x, kompile ulang program dan tidak akan muncul pesan kesalahan. Nilai dari suatu variabel dapat diubah kapan saja dengan memberikan nilai baru pada variabel tersebut.
e.             Default Value
C# mengenal dua buah tipe yang disebut dengan value-type dan reference-type. Untuk tipe value nilai default-nya sesuai dengan nilai dari masing-masing tipe yang dihasilkan oleh default constructor dari tipe ini. Sedangkan untuk tipe reference nilai default-nya adalah null.
Variabel yang dideklarasikan sebagai variabel static, variabel instance dan elemen array akan langsung diberikan nilai default jika nilainya tidak ditentukan pada saat deklarasi. Tabel berikut memberikan gambaran yang lebih jelas mengenai nilai default dari suatu variabel

Tipe
Nilai Default
Bool
False
Char
\0
Enum
0
Numerik
0
Reference
null

f.               Tipe Data Numerik
Tabel berikut memberikan penjelasan singkat tentang tipe data C#, padanannya dengan tipe data pada .Net Framework dan nilai yang dapat disimpannya.

Tipe Data C#
Tipe Data Net
Byte
Nilai Minimum
Nilai Maksimum
sbyte
System.S byte
1
-128
127
byte
System.B yte
1
0
255
short
System.I nt16
2
-32,768
32,767
ushort
System.U Int16
2
0
65,535
int
System.Int 32
4
-2,147,483,648
2,147,483, 647
uint
System.UIn t32
4
0
4,294,967, 295
long
System.Int 64
8
9,223,372,036,854,775,808
9,223,372,036,854,775,807
ulong
System.UIn t64
8
0
18,446,744,073709,551,615
char
System.Ch ar
2
0
65,535

g.             Contoh Program
Berikut adalah sebuah program yang berfungsi untuk menghitung umur dalam hari, jam dan menit. Program ini akan meminta anda untuk memasukkan data berupa tanggal, bulan dan tahun kelahiran anda. Kemudian akan melakukan perhitungan untuk mendapatkan hari, jam dan menit umur anda sampai hari ini.
using System;
public class Umur
{
    public static void Main()
    {
        int day; int month; int year;
        Console.Out.WriteLine("Menghitung Umur     "); Console.Out.WriteLine("====================");
        try
        {
            Console.Out.Write("Masukkan Tanggal: ");
            day = Convert.ToInt32(Console.In.ReadLine());
            Console.Out.Write("Masukkan Bulan : ");
            month = Convert.ToInt32(Console.In.ReadLine());
            Console.Out.Write("Masukkan Tahun : ");
            year = Convert.ToInt32(Console.In.ReadLine());
            DateTime birthDate = new DateTime(year, month, day); DateTime today = DateTime.Now;
            TimeSpan age = today.Subtract(birthDate); Console.Out.WriteLine(
            "Saat ini umur anda adalah: {0} hari, {1} jam, " + "{2} minutes.", age.Days, age.Hours, age.Minutes);
        }
        catch (FormatException e)
        {
            Console.Out.WriteLine(
            "Data tanggal, bulan dan tahun harus berupa angka.");
        }
        catch (Exception e)
        {
            Console.Out.WriteLine("Terjadi kesalahan: " + e.Message);
        }
    }
}

Langkah pertama dalam program ini adalah mendeklarasikan variabel day, month dan year yang bertipe int. Kemuadian program akan menampilkan kalimat agar anda memasukan data tanggal, bulan dan tahun kelahiran anda.
Kemudian dengan menggunakan Console.In.ReadLine() program dapat membaca data yang anda masukkan. Data yang dibaca dengan method ReadLine() ini bertipe string, oleh karena itu kita harus mengkonversinya menjadi tipe int dengan menggunakan method ToInt32() yang terdapat di class System.Convert.
Setelah mendapatkan semua informasi yang dibutuhkan kita akan membuat dua buah object bertipe System.DateTime, yang pertama merupakan object yang mewakili tanggal kelahiran anda dan yang kedua merupakan object yang mewakili waktu saat ini.
Kemudian kalkulasi akan dilakukan dengan mengurangi tanggal sekarang dengan tanggal kelahiran anda untuk mendapatkan umur anda. Untuk melakukan kalkulasi ini digunakan object dari class System.TimeSpan.
Pada langkah terakhir hasil kalkulasi akan ditampilkan dengan menggunakan Console.Out.WriteLine().
Contoh hasil dari eksekusi program diatas adalah sebagai berikut:
Menghitung Umur ====================
Masukkan Tanggal: 30
Masukkan Bulan : 12
Masukkan Tahun : 1976
Saat ini umur anda adalah: 10150 hari, 20 jam, 14 minutes.

0 komentar

Post a Comment