OLEH :
- VELINA AYU W
- AULIA PUTRI
- ERLITA ANDRIYANI
Apa itu C# ?
C# atau yang dibaca C sharp adalah bahasa pemrograman sederhana yang digunakan untuk
tujuan umum, dalam artian bahasa pemrograman ini dapat digunakan untuk berbagai fungsi
misalnya untuk pemrograman server-side pada website, membangun aplikasi desktop
ataupun mobile, pemrograman game dan sebagainya. Selain itu C# juga bahasa
pemrograman yang berorientasi objek, jadi C# juga mengusung konsep objek seperti
inheritance, class, polymorphism dan encapsulation.
Dalam prakteknya C# sangat bergantung dengan framework yang disebut .NET Framework,
framework inilah yang nanti digunakan untuk mengcompile dan menjalankan kode C#. C#
dikembangkan oleh Microsoft dengan merekrut Anders Helsberg. Tujuan dibangunnya C#
adalah sebagai bahasa pemrograman utama dalam lingkungan .NET Framework (lihat C#).
Banyak pihak juga yang menganggap bahwa Java dengan C# saling bersaing, bahkan ada
juga yang menyatakan jika pernah belajar Java maka belajar C# akan sangat mudah dan
begitu juga sebaliknya. Anggapan tersebut sebenarnya tidak salah karena perlu diketahui
sebelum adanya C# Microsoft mengembangkan J++ dengan maksud mencoba membuat
Java agar berjalan pada platform Windows, karena adanya masalah dari pihak luar maka
Microsoft menghentikan proyek J++ dan beralih untuk mengembangkan bahasa baru yaitu
C#.
IDE untuk C#
Dalam mengembangkan aplikasi ataupun fungsi-fungsi lain yang berbasis C#, kita perlu IDE
(Integrated Development Environment) untuk membantu pekerjaan kita. Di Windows kita
dapat menggunakan Visual Studio yang memiliki fitur yang sangat lengkap. Akan tetapi tidak
semua dari kita memakai OS (Operating System) Windows dan memiliki kapasitas harddisk
yang memadai karena perlu diketahui Visual Studio ini sangat memakan tempat di harddisk
kita. Karena itu ada IDE alternatif Visual Studio yaitu Xamarin Studio yang bisa dipakai lintas
platform yang fiturnya menurut saya tidak kalah hebatnya dengan Visual Studio dan lebih
dari cukup untuk membangun aplikasi C#. Selain itu ada juga tool seperti SharpDevelop
namun sepertinya hanya bisa untuk platform Windows. Oh iya bagi pembaca yang memakai
OS selain windows dapat memakai Mono untuk pengganti .NET Framework.
spesifikasi laptop yang memiliki processor Atom dan dipersenjatai harddisk sebesar 18 GB,
selain itu juga Sharp Develop juga mudah digunakan oleh pemula seperti saya. Jadi
kesimpulannya untuk platform Windows kamu bisa memilih dari ketiga itu atau mau
semuanya juga terserah, akan tetapi untuk OS Mac OS X dan Linux kamu hanya dapat
memakai Xamarin Studio.
1.5 Pernyataan
Tindakan suatu program diekspresikan dengan menggunakan pernyataan. C# mendukung
beberapa jenis pernyataan yang berbeda, beberapa di antaranya didefinisikan dalam istilah
pernyataan yang disematkan.
Sebuah blok memungkinkan beberapa pernyataan untuk ditulis dalam konteks di mana satu
pernyataan diperbolehkan. Sebuah blok terdiri dari daftar pernyataan yang ditulis di antara
pembatas { dan }.
Pernyataan deklarasi digunakan untuk mendeklarasikan variabel lokal dan konstanta.
Pernyataan ekspresi digunakan untuk mengevaluasi ekspresi. Ekspresi yang dapat
digunakan sebagai pernyataan meliputi pemanggilan metode, alokasi objek menggunakan
operator baru, penugasan menggunakan = dan operator penugasan gabungan, operasi
penambahan dan pengurangan menggunakan operator ++ dan -- dan ekspresi menunggu.
Pernyataan pilihan digunakan untuk memilih salah satu dari sejumlah pernyataan yang
mungkin untuk dieksekusi berdasarkan nilai dari beberapa ekspresi. Dalam grup ini adalah
pernyataan if dan switch.
Pernyataan iterasi digunakan untuk mengeksekusi pernyataan yang disematkan berulang
kali. Dalam kelompok ini terdapat pernyataan while, do, for, dan foreach.
Pernyataan lompat digunakan untuk mentransfer kontrol. Dalam grup ini terdapat
pernyataan break, continue, goto, throw, return, dan yield.
Pernyataan try...catch digunakan untuk menangkap eksepsi yang terjadi selama eksekusi
sebuah blok, dan pernyataan try...finally digunakan untuk menentukan kode finalisasi yang
selalu dijalankan, apakah terjadi eksepsi atau tidak.
Pernyataan yang dicentang dan tidak dicentang digunakan untuk mengontrol konteks
pemeriksaan luapan untuk operasi dan konversi aritmatika tipe integral.
Pernyataan kunci digunakan untuk mendapatkan kunci pengecualian bersama untuk objek
tertentu, menjalankan pernyataan, dan kemudian melepaskan kunci.
Pernyataan using digunakan untuk mendapatkan sumber daya, menjalankan pernyataan,
dan kemudian membuang sumber daya itu.
1.6Kelas dan objek
Kelas adalah tipe C# yang paling mendasar. Kelas adalah struktur data yang
menggabungkan keadaan (bidang) dan tindakan (metode dan anggota fungsi lainnya) dalam
satu unit. Kelas memberikan definisi untuk instance kelas yang dibuat secara dinamis, juga
dikenal sebagai objek. Kelas mendukung pewarisan dan polimorfisme, mekanisme di mana
kelas turunan dapat memperluas dan mengkhususkan kelas dasar.
Kelas baru dibuat menggunakan deklarasi kelas. Deklarasi kelas dimulai dengan header
yang menentukan atribut dan pengubah kelas, nama kelas, kelas dasar (jika diberikan), dan
antarmuka yang diimplementasikan oleh kelas. Header diikuti oleh badan kelas, yang terdiri
dari daftar deklarasi anggota yang ditulis di antara pembatas { dan }.
Instance kelas dibuat menggunakan operator baru, yang mengalokasikan memori untuk
instance baru, memanggil konstruktor untuk menginisialisasi instance, dan mengembalikan
referensi ke instance. Pernyataan berikut membuat dua objek Point dan menyimpan
referensi ke objek tersebut dalam dua variabel:
Titik p1 = Titik baru(0, 0);
Titik p2 = Titik baru(10, 20);
Memori yang ditempati oleh suatu objek secara otomatis diambil kembali ketika objek
tersebut tidak lagi digunakan. Tidak perlu atau tidak mungkin untuk secara eksplisit
membatalkan alokasi objek di C#.
Anggota
Anggota kelas adalah anggota statis atau anggota instance. Anggota statis milik kelas, dan
anggota instance milik objek (contoh kelas).
Tabel berikut memberikan gambaran umum tentang jenis anggota kelas dapat berisi.
Aksesibilitas
Setiap anggota kelas memiliki aksesibilitas terkait, yang mengontrol wilayah teks program
yang dapat mengakses anggota. Ada lima kemungkinan bentuk aksesibilitas
Ketik parameter
Definisi kelas dapat menentukan satu set parameter tipe dengan mengikuti nama kelas
dengan kurung sudut yang melampirkan daftar nama parameter tipe. Parameter tipe dapat
digunakan dalam isi deklarasi kelas untuk mendefinisikan anggota kelas. Pada contoh
berikut, parameter tipe Pair adalah TFirst dan TSecond:
Tipe kelas yang dideklarasikan untuk mengambil parameter tipe disebut tipe kelas generik.
Jenis struktur, antarmuka, dan delegasi juga dapat bersifat umum.
Ketika kelas generik digunakan, argumen tipe harus disediakan untuk setiap parameter tipe:
Pair<int,string> pair = new Pair<int,string> { Pertama = 1, Kedua = “dua” };
int i = pasangan.Pertama; // TPertama sudah masuk
string s = pasangan.Kedua; // TSKedua adalah string
Tipe generik dengan argumen tipe yang disediakan, seperti Pair<int,string> di atas, disebut
tipe yang dibangun.
Kelas dasar
Deklarasi kelas dapat menentukan kelas dasar dengan mengikuti nama kelas dan parameter
tipe dengan titik dua dan nama kelas dasar. Menghilangkan spesifikasi kelas dasar sama
dengan menurunkan dari objek tipe. Dalam contoh berikut, kelas dasar Point3D adalah
Point, dan kelas dasar Point adalah objek:
Penetapan ke bidang hanya-baca hanya dapat terjadi sebagai bagian dari deklarasi bidang
atau dalam konstruktor di kelas yang sama.
Metode
Metode adalah anggota yang mengimplementasikan komputasi atau tindakan yang dapat
dilakukan oleh objek atau kelas. Metode statis diakses melalui kelas. Metode instance
diakses melalui instance kelas.
Metode memiliki daftar parameter (mungkin kosong), yang mewakili nilai atau referensi
variabel yang diteruskan ke metode, dan tipe pengembalian, yang menentukan jenis nilai
yang dihitung dan dikembalikan oleh metode. Jenis pengembalian metode adalah batal jika
tidak mengembalikan nilai.
Seperti halnya tipe, metode mungkin juga memiliki seperangkat parameter tipe, yang
argumen tipenya harus ditentukan saat metode dipanggil. Tidak seperti tipe, argumen tipe
sering dapat disimpulkan dari argumen pemanggilan metode dan tidak perlu diberikan
secara eksplisit.
Tanda tangan suatu metode harus unik di kelas di mana metode tersebut dideklarasikan.
Tanda tangan suatu metode terdiri dari nama metode, jumlah parameter tipe dan jumlah,
pengubah, dan tipe parameternya. Tanda tangan suatu metode tidak menyertakan tipe
pengembalian.
Parameter
Parameter digunakan untuk meneruskan nilai atau referensi variabel ke metode.
Parameter metode mendapatkan nilai aktualnya dari argumen yang ditentukan saat metode
dipanggil. Ada empat jenis parameter: parameter nilai, parameter referensi, parameter
keluaran, dan larik parameter.
Parameter nilai digunakan untuk melewatkan parameter input. Parameter nilai sesuai
dengan variabel lokal yang mendapatkan nilai awalnya dari argumen yang diteruskan untuk
parameter tersebut. Modifikasi parameter nilai tidak memengaruhi argumen yang
diteruskan untuk parameter tersebut.
Parameter nilai dapat bersifat opsional, dengan menetapkan nilai default sehingga argumen
terkait dapat dihilangkan.
Parameter referensi digunakan untuk melewatkan parameter input dan output. Argumen
yang diteruskan untuk parameter referensi harus berupa variabel, dan selama eksekusi
metode, parameter referensi mewakili lokasi penyimpanan yang sama dengan variabel
argumen. Parameter referensi dideklarasikan dengan modifier ref
Parameter keluaran digunakan untuk melewatkan parameter keluaran. Parameter
keluaran mirip dengan parameter referensi kecuali bahwa nilai awal dari argumen yang
disediakan pemanggil tidak penting. Sebuah
parameter output dideklarasikan dengan modifier out. Contoh berikut menunjukkan
penggunaan parameter out.
Array parameter memungkinkan sejumlah variabel argumen untuk diteruskan ke suatu
metode. Array parameter dideklarasikan dengan pengubah params. Hanya parameter
terakhir dari suatu metode yang dapat berupa larik parameter, dan tipe larik parameter
harus berupa tipe larik dimensi tunggal. Metode Write dan WriteLine dari kelas
System.Console adalah contoh yang baik dari penggunaan array parameter
Dalam metode yang menggunakan larik parameter, larik parameter berperilaku persis
seperti parameter biasa dari tipe larik. Namun, dalam pemanggilan metode dengan larik
parameter, dimungkinkan untuk melewatkan argumen tunggal dari tipe larik parameter
atau sejumlah argumen dari tipe elemen larik parameter. Dalam kasus terakhir, instance
array secara otomatis dibuat dan diinisialisasi dengan argumen yang diberikan.
Tubuh metode dan variabel lokal
Tubuh metode menentukan pernyataan yang akan dieksekusi ketika metode dipanggil.
Badan metode dapat mendeklarasikan variabel yang spesifik untuk pemanggilan metode.
Variabel seperti itu disebut variabel lokal. Deklarasi variabel lokal menentukan nama tipe,
nama variabel, dan mungkin nilai awal. Contoh berikut mendeklarasikan variabel lokal i
dengan nilai awal nol dan variabel lokal j tanpa nilai awal.
C# membutuhkan variabel lokal untuk ditetapkan secara pasti sebelum nilainya dapat
diperoleh. Misalnya, jika deklarasi i sebelumnya tidak menyertakan nilai awal, kompilator
akan melaporkan kesalahan untuk penggunaan i berikutnya karena i tidak akan ditetapkan
secara pasti pada titik-titik tersebut dalam program.
Sebuah metode dapat menggunakan pernyataan kembali untuk mengembalikan kontrol ke
pemanggilnya. Dalam metode yang mengembalikan kekosongan, pernyataan pengembalian
tidak dapat menentukan ekspresi. Dalam metode yang mengembalikan non-void,
pernyataan pengembalian harus menyertakan ekspresi yang menghitung nilai
pengembalian.
Metode statis dan instan
Metode yang dideklarasikan dengan pengubah statis adalah metode statis. Metode statis
tidak beroperasi pada instance tertentu dan hanya dapat mengakses anggota statis secara
langsung.
Metode yang dideklarasikan tanpa pengubah statis adalah metode instan. Metode instance
beroperasi pada instance tertentu dan dapat mengakses anggota statis dan instance.
Instance di mana metode instance dipanggil dapat diakses secara eksplisit seperti ini. Ini
adalah kesalahan untuk merujuk ini dalam metode statis.
Setiap instance Entitas berisi nomor seri (dan mungkin beberapa informasi lain yang tidak
ditampilkan di sini). Konstruktor Entitas (yang seperti metode instance) menginisialisasi
instance baru dengan nomor seri berikutnya yang tersedia. Karena konstruktor adalah
anggota instans, maka diizinkan untuk mengakses kolom instans serialNo dan kolom statis
nextSerialNo.
Metode statis GetNextSerialNo dan SetNextSerialNo dapat mengakses bidang statis
nextSerialNo, tetapi akan menjadi kesalahan bagi mereka untuk langsung mengakses bidang
instance serialNo.
Metode virtual, override, dan abstrak
Ketika deklarasi metode instance menyertakan pengubah virtual, metode tersebut
dikatakan sebagai metode virtual. Ketika tidak ada pengubah virtual, metode ini dikatakan
sebagai metode non-virtual.
Ketika metode virtual dipanggil, tipe run-time dari instance tempat pemanggilan itu terjadi
menentukan implementasi metode aktual yang akan dipanggil. Dalam pemanggilan metode
nonvirtual, tipe waktu kompilasi dari instance adalah faktor penentu.
Metode virtual dapat ditimpa di kelas turunan. Ketika deklarasi metode instance
menyertakan pengubah override, metode tersebut menimpa metode virtual yang diwarisi
dengan tanda tangan yang sama. Sementara deklarasi metode virtual memperkenalkan
metode baru, deklarasi metode override mengkhususkan metode virtual warisan yang ada
dengan menyediakan implementasi baru dari metode tersebut.
Metode abstrak adalah metode virtual tanpa implementasi. Metode abstrak dideklarasikan
dengan pengubah abstrak dan hanya diizinkan di kelas yang juga dideklarasikan abstrak.
Metode abstrak harus diganti di setiap kelas turunan non-abstrak.
Contoh berikut mendeklarasikan kelas abstrak, Ekspresi, yang mewakili simpul pohon
ekspresi, dan tiga kelas turunan, Konstanta, Referensi Variabel, dan Operasi, yang
mengimplementasikan simpul pohon ekspresi untuk konstanta, referensi variabel, dan
operasi aritmatika. (Ini mirip dengan, tetapi jangan bingung dengan tipe pohon ekspresi
yang diperkenalkan di bagian 4.6).
metode tertentu selalu dapat dipilih dengan secara eksplisit melemparkan argumen ke tipe
parameter yang tepat dan/atau secara eksplisit menyediakan argumen tipe.