Belajar Bahasa C sharp/Bab II: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Willysaef (bicara | kontrib)
Willysaef (bicara | kontrib)
k Metode dan Kelas
Baris 372:
Kita juga bisa mendeklarasikan beberapa variabel secara berbarengan di dalam sebuah statemen ‎deklarasi, dan mendeklarasikan variabel lainnya di dalam pernyataannya sendiri-sendiri:‎
‎<source lang="csharp">
int JumlahHariIzin, JumlahHariGhaibJumlahHariAlfa, JumlahHariSakit;
int TotalAbsensi;
 
Baris 403:
int JumlahHariIzin = 10;
</source>
 
===Inisialisasi variabel===
 
Pada saat sebuah variabel diberi nilai pada saat deklarasinya, maka variabel tersebut dikatakan ‎‎"melakukan inisialisasi" (''initialization''). Tentu saja, setelah inisialisasi dilakukan, kita bisa mengubah ‎nilainya dengan nilai yang berbeda di lain waktu, karena memang tidak ada bedanya antara melakukan ‎inisialisasi variabel pada saat deklarasi di dalam pernyataan deklarasi dengan menetapkan sebuah nilai ‎kepada sebuah variabel sesaat setelah pernyataan deklarasi dilakukan.‎
<source lang="csharp">
Baris 423 ⟶ 425:
Pada pernyataan deklarasi satu baris, kita dapat memilih untuk melakukan inisialisasi terhadap ‎beberapa variabel untuk tidak melakukannya pada beberapa variabel, dengan memisahkan setiap variabel ‎dengan menggunakan karakter koma, seperti di bawah ini:‎
<source lang="csharp">
int JumlahHariIzin = 10, JumlahHariGhaibJumlahHariAlfa, JumlahHariSakit, TotalAbsensi;
TotalAbsensi = JumlahHariIzin + JumlahHariSakit + JumlahHariAlfa;
</source>
Baris 442 ⟶ 444:
int TotalAbsensi = JumlahHariIzin + JumlahHariSakit + JumlahHariAlfa;
</source>
 
==Method (metode)==
Sampai di sini, apakah program C# di atas merupakan kode yang lengkap? Sayangnya, belum! ‎Dalam C#, seperti halnya di dalam sebagian besar bahasa pemrograman modern lainnya, kode disusun ‎sedemikian rupa ke dalam satuan yang disebut dengan '''kelas''' ('''''class''''') dan '''metode''' ('''''method'''''). Setiap metode ‎mengandung kode yang mampu melakukan beberapa tugas tertentu. Mungkin, jika Anda pernah ‎mempelajari bahasa pemrograman lainnya, istilah '''metode''' ini ekuivalen dengan '''prosedur''' (''procedure''), '''‎subrutin''' (''subroutine'') atau '''fungsi''' (''function''). Metode-metode yang saling berhubungan dapat ‎dikelompokkan ke dalam sebuah kelas.
 
‎Program paling sederhana di dalam C# adalah program yang hanya memiliki satu buah kelas yang ‎mengandung satu buah metode. Paling tidak, sebuah program dalam C# harus memiliki sebuah metode ‎yang disebut dengan <code>Main()</code>. Metode <code>Main()</code> merupakan sebuah metode yang selalu dijalankan oleh ‎komputer pertama kali ketika program tersebut dijalankan oleh pengguna. Jika Anda pernah mempelajari ‎bahasa pemrograman lain sebelumnya, mungkin Anda pernah mengenal istilah "'''''Entry Point'''''". Metode ‎Main() adalah Entry Point di dalam C#! Untuk program-program yang sangat pendek, metode <code>Main()</code> ‎kadang-kadang merupakan metode yang terdapat di dalam program yang bersangkutan. Meskipun Main ‎memiliki peranan yang sangat besar di dalam bahasa C#, kata "<code>Main</code>" sendiri bukanlah kata kunci di dalam ‎C#. Karena bukan kata kunci, maka kita bisa memberikan nama variabel menjadi <code>Main</code>, jika mau.
===Bagaimana mendeklarasikan metode?===
Seperti halnya variabel, <code>Main</code> harus dideklarasikan di dalam program. Pendeklarasian metode ‎memang sedikit lebih rumit dibandingkan dengan pendeklarasian variabel, karena memang ada beberapa ‎hal yang terlibat di dalamnya. ‎
 
Metode pada umumnya memiliki ''input'' dan ''output''. Sebagai contoh, sebuah metode yang ‎menghitung jumlah absensi siswa, inputnya adalah jumlah harian di mana siswa yang bersangkutan tidak ‎masuk kelas, dan outputnya adalah total jumlah absensi milik siswa tersebut. Metode dapat kita ‎bayangkan sebagai sebuah "pabrik" yang mengubah bahan baku menjadi barang jadi. Pada umumnya, ‎sebuah metode menerima input dalam bentuk beberapa variabel, yang disebut sebagai '''parameter ‎metode''' (''method parameter''). Nah, metode tersebut kemudian akan mengubah variabel-variabel tersebut ‎sedemikian rupa lalu mengeluarkan hasilnya sebagai output, yang disebut '''nilai kembalian''' (''return value'').
Kita saat ini akan membahas bagaimana mendeklarasikan sebuah metode sederhana, yang selalu ‎ada di dalam setiap program C#, <code>Main</code>, tanpa penggunaan parameter dan nilai kembalian. Sedangkan ‎bagaimana penggunaan parameter dan nilai kembaliannya nanti akan dibahas kemudian.‎
<source lang="csharp">
Main
</source>
Perlu diingat, karena bahasa C# merupakan sebuah bahasa pemrograman yang bersifat ''case-‎sensitive'', maka antara <code>Main</code>, <code>MAIN</code>, dan <code>main</code> adalah berbeda. Metode <code>Main</code> harus dimulai dengan huruf <code>M</code> ‎besar.
Normalnya, parameter metode diindikasikan dengan sebuah daftar variabel yang dikurung di ‎dalam sepasang tanda kurung buka ( dan tanda kurung tutup ) setelah nama metode tersebut ‎dideklarasikan. Karena versi metode Main kita kali ini tidak memiliki parameter dan juga nilai ‎kembaliannya, maka kata "<code>Main</code>" akan diikuti dengan menggunakan tanda kurung buka dan kurung tutup ‎tanpa isi, seperti di bawah ini:‎
<source lang="csharp">
Main()
</source>
Saat sebuah metode memiliki nilai kembalian, tipe data dari nilai tersebut (seperti halnya <code>int</code>) ‎harus ditambahkan di sebelah kiri nama metode pada saat deklarasi metode. Akan tetapi, saat metode ‎tersebut tidak memiliki nilai kembalian, maka kita harus menggunakan kata kunci <code>void</code> untuk menyatakan ‎bahwa metode tersebut memang tidak memiliki nilai kembalian.‎
<source lang="csharp">
void Main()
</source>
Lantas, apa bedanya pendeklarasian variabel dengan pendeklarasian metode? Secara sekilas ‎memang tidak ada perbedaan antara pendeklarasian variabel dengan pendeklarasian metode. Akan ‎tetapi, jika pada pendeklarasian variabel, jenis variabel adalah hal yang ditulis sebelum nama variabel, ‎pada pendeklarasian metode, jenis nilai kembalian adalah hal yang ditulis sebelum nama metode. Di situ ‎adalah perbedaannya!
Apakah dengan menggunakan <code>void Main()</code> sudah membentuk sebuah metode yang sempurna? ‎Masih belum! Kita harus menambahkan kata kunci <code>static</code>, seperti di bawah ini:‎
<source lang="csharp">
static void Main()
</source>
Buat apa sih kata kunci <code>static</code>? Untuk menjawabnya, sayangnya, hal tersebut melibatkan ‎beberapa konsep yang berada di luar jangkauan konsep dasar (karena memang bab ini merupakan bab ‎yang dikhususkan untuk pengenalan konsep dasar maka hal tersebut tidak akan dibahas saat ini). Untuk ‎sekarang, kita bisa memikirkan kata kunci <code>static</code> sebagai pernyataan bahwa metode tersebut berdiri ‎sendiri (mandiri), dan bersifat tetap serta tidak berubah-ubah selama eksekusi program dilakukan.
Deklarasi sebuah metode juga memasukkan tubuh metode tersebut, yang merupakan kode ‎aktual yang membangun metode tersebut. Tubuh metode akan diapit dengan menggunakan sepasang ‎tanda kurung keriting buka <code>{</code> dan tanda kurung keriting tutup <code>}</code> yang mengikuti daftar parameter, seperti di ‎bawah ini:‎
<source lang="csharp">
static void Main()
{
 
}
</source>
Saya memang meletakkan tanda kurung keriting dalam dua baris berbeda, karena memang hal ‎itu merupakan suka-suka! Karena C# merupakan bahasa dengan bentuk penulisan yang bebas, kita juga ‎bisa menuliskannya di dalam baris yang sama, seperti:‎
<source lang="csharp">
static void Main()
{}
</source>
atau:‎
<source lang="csharp">
static void Main(){}
</source>
Nah, sekarang kita bisa menambahkan kode-kode dan algoritma ke dalam metode tersebut. ‎Marilah kita mencoba memasukkan pernyataan-pernyataan sebelumnya ke dalam metode Main:‎
‎<source lang="csharp">
static void Main()
{
int JumlahHariIzin, JumlahHariAlfa, JumlahHariSakit;
int TotalAbsensi;
 
JumlahHariIzin = 10;
JumlahHariAlfa= 2;
JumlahHariSakit = 10;
TotalAbsensi = JumlahHariIzin + JumlahHariSakit + JumlahHariAlfa;
}
</source>
Sekelompok statemen-statemen C# yang diapit dengan menggunakan kurung keriting seperti di ‎atas kadang disebut sebagai '''blok program''' (''program block''). Sehingga, jika kita mengambil kaidah dari ‎contoh di atas, kita bisa merumuskan bahwa dalam pendeklarasian metode, terdapat beberapa hal yang ‎terlibat, mulai dari ''modifier'' (yang dinyatakan dengan kata kunci <code>static</code>), jenis nilai kembaliannya (yang ‎dinyatakan dengan kata kunci <code>void</code>), nama metodenya (<code>Main</code>), daftar parameter yang berada di dalam ‎kurung (), dan juga blok program yang mengandung kode program dalam bahasa C#.
Sebagian besar ''programmer'' menulis program tidak seperti di atas, tetapi menjorokkan ke dalam ‎satu tabulasi, seperti di bawah ini:‎
<source lang="csharp">
static void Main()
{
int JumlahHariIzin, JumlahHariAlfa, JumlahHariSakit;
int TotalAbsensi;
 
JumlahHariIzin = 10;
JumlahHariAlfa= 2;
JumlahHariSakit = 10;
TotalAbsensi = JumlahHariIzin + JumlahHariSakit + JumlahHariAlfa;
}
</source>
Apa yang dilakukan ''programmer'' di atas terhadap blok kode C# membuat metode tersebut ‎terlihat lebih mudah untuk dibaca, dan juga menandakan bahwa pernyataan-pernyataan tersebut berada ‎di dalam metode. Penggunaan berapa banyak spasi atau tabulasi adalah "terserah Anda!", meskipun ‎memang sebagian besar programmer menggunakan 1 tabulasi. Microsoft Visual Studio dan Microsoft Visual C# Express Edition, pada kondisi ‎bakunya memiliki konfigurasi 1 tabulasi setara dengan 4 spasi (Anda bisa mengubahnya lho). Sementara ‎itu, kode yang ada di buku ini menggunakan empat buah spasi.
Beberapa ''programmer'' juga sering menulis kurung keriting buka pada baris yang sama dengan ‎deklarasi metode, seperti:‎
<source lang="csharp">
static void Main(){
int JumlahHariIzin, JumlahHariAlfa, JumlahHariSakit;
int TotalAbsensi;
 
JumlahHariIzin = 10;
JumlahHariAlfa= 2;
JumlahHariSakit = 10;
TotalAbsensi = JumlahHariIzin + JumlahHariSakit + JumlahHariAlfa;
}
</source>
Banyak ''programmer'' yang familier dengan bahasa <code>Pascal</code>, C dan C++ menggunakan bentuk kode ‎seperti di bawah ini:‎
<source lang="csharp">
static void Main()
{
int JumlahHariIzin, JumlahHariAlfa, JumlahHariSakit;
int TotalAbsensi;
 
JumlahHariIzin = 10;
JumlahHariAlfa= 2;
JumlahHariSakit = 10;
 
TotalAbsensi = JumlahHariIzin + JumlahHariSakit + JumlahHariAlfa;
}
</source>
Atau, mereka juga sering menggunakan dua spasi untuk menjorokkan blok kode, seperti di ‎bawah ini:
<source lang="csharp">
static void Main()
{
int JumlahHariIzin, JumlahHariAlfa, JumlahHariSakit;
int TotalAbsensi;
 
JumlahHariIzin = 10;
JumlahHariAlfa= 2;
JumlahHariSakit = 10;
 
TotalAbsensi = JumlahHariIzin + JumlahHariSakit + JumlahHariAlfa;
}
</source>
Cara apapun yang kita gunakan dalam mengetik blok kode C#, kompiler C# tidak akan melihat ‎bagaimana gaya kita menjorokkan blok kode. Terserah Anda mau menulis seperti apa, asalkan memang ‎ada konsistensi dalam menulis kode, agar mata yang melihat tidak “capek”.‎
 
==Kelas (''class'')==
Sudah sampai di sini, apakah kode di atas bisa dibilang lengkap? Sayangnya, masih belum ‎lengkap! Di dalam C#, semua metode harus tergabung ke dalam sebuah kelas program (class) atau ‎struktur program (structure). Kelas dan struktur agak-agak mirip, sehingga, hingga kita belajar letak ‎perbedaan di antara keduanya, anggap saja kelas dan struktur adalah sama, dan apa yang saya bilang ‎mengenai kelas juga bisa diaplikasikan ke dalam struktur.
 
Dalam pemrograman berorientasi objek seperti halnya C#, sebuah kelas adalah unit organisasi ‎dasar yang terdiri atas kode dan data. Semuanya akan tersibak ketika kita terus belajar mengikuti ‎rentetan artikel di dalam kumpulan artikel ini. Hanya saja, yang perlu diingat adalah sebuah program C# ‎paling tidak haruslah terdiri atas satu kelas atau lebih, yang setiap kelasnya bisa berisi satu anggota (yang ‎disebut dengan member) atau lebih, termasuk di antaranya adalah metode semacam Main.
 
Program C# paling sederhana, tetapi lengkap akan terdiri atas sebuah kelas yang mengandung ‎satu anggota, yang berupa metode dengan nama Main.‎
===Bagaimana mendeklarasikan Kelas?===
Deklarasi Kelas dilakukan dengan menggunakan kata kunci <code>class</code> yang diikuti nama dari kelas ‎yang hendak dibuat, seperti di bawah ini:‎
‎<source lang="csharp">
class Program
</source>
Peraturan yang digunakan untuk membuat kelas sama saja dengan peraturan yang dimiliki oleh ‎nama-nama variabel. Nama-nama variabel dan nama kelas dikenal juga dengan sebutan ''identifier'' (tanda ‎pengenal), yang tentunya ditentukan oleh kita. Semua identifier harus dimulai dengan huruf atau karakter ‎garis bawah dan harus mengandung hanya huruf, angka, dan karakter garis bawah saja. Meski demikian, ‎kita tidak bisa menggunakan kata-kata kunci sebagai nama identifier. Walaupun Main bukanlah sebuah ‎kata kunci di dalam C#, kita tidak dapat menggunakan Main sebagai nama kelas, jika memang di dalam ‎kelas yang bersangkutan memiliki metode dengan nama Main.
Pendeklarasian kelas juga mengharuskan kita untuk menggunakan kurung keriting buka <code>{</code> dan ‎kurung keriting tutup <code>}</code> seperti di bawah ini:‎
<source lang="csharp">
class Program
{
 
}
</source>
Di antara kurung keriting tersebut, kita bisa memasukkan metode-metode yang hendak kita buat, ‎termasuk di antaranya adalah Main yang telah kita buat sebelumnya. Terserah Anda, jika ingin merapikan ‎penulisan blok-blok kode program milik member dari kelas tersebut dengan menjorokkannya ke kanan:
<source lang="csharp">
class Program
{
static void Main()
{
int JumlahHariIzin, JumlahHariGhaib, JumlahHariSakit;
int TotalAbsensi;
 
JumlahHariIzin = 10;
JumlahHariAlfa = 2;
JumlahHariSakit = 10;
 
TotalAbsensi = JumlahHariIzin + JumlahHariSakit + JumlahHariAlfa;
}
}
</source>
Dan, akhirnya kode di atas merupakan kode dalam bahasa C# yang lengkap. Bagaimana cara ‎membaca kode di atas? Kode tersebut hanya mengandung satu buah kelas, yang diberi nama Program. ‎Kelas <code>Program</code> tersebut memiliki satu buah metode yang disebut dengan <code>Main</code>. Metode <code>Main ‎</code>mendeklarasikan empat buah variabel dengan jenis data bilangan bulat. Program tersebut terdiri atas ‎empat buah statemen penugasan.‎