Anda di halaman 1dari 92

Modul Pemrograman C# Fundamental

Pengenalan Bahasa
C#


1.1 Sejarah Singkat
1.1.1 Sejarah Singkat Lahirnya Bahasa C#

Pada akhir dekade 1990an, Microsoft membuat program Microsoft
Visual J++ sebagai percobaan untuk menggunakan Java di dalam sistem
operasi Windows untuk meningkatkan antarmuka dari Microsoft Component
Object Model (COM). Akan tetapi, akibat masalah dengan pemegang hak
cipta bahasa pemrograman Java, Sun Microsystems, Microsoft pun
menghentikan pengembangan J++, dan beralih untuk membuat pengganti
J++. Kompiler dan mmesin vitualnya sendiri menggunakan sebuah bahasa
pemrograman yang bersifat general-purpose.
Untuk menangani proyek ini, Microsoft merekrut Andres Helsberg,
yang merupakan mantan karyawan Borland, pembuat bahasa Turbo Pascal,
dan Borland Delphi, yang juga mendesain Windows Foundation Classes
(WFC) yang digunakan dalam J++.
Sebagai Hasil dari usaha tersebut, C# pertamakali diperkenalkan pada
bulan Juli 2000 sebaga sebuah bahasa pemrograman modern berorientasi
objek yang menjadi sebuah bahasa pemrograman utama di dalam
pengembangan di dalam platform Microsoft .NET Framework.
Pengalaman Helsberg sebelumnya dalam mendesain bahasa
pemrograman (Seperti Visual J++, Delphi, Turbo Pascal) dengan mudah
dilihat dalam sintaksis bahasa C#, begitu pula hal nya pada inti Common
Language untime (CLR). Dari kutipan atas interview dan makalah makalah
teknisnya, ia menyebutkan kelemahan kelemahan yang terdapat pada
bahasa pemrograman yang umum digunakan saat ini, misalnya C++, Java,
Delphi, ataupun Smalltalk.
Kelemahan- kelemahan yang dikemukakan itu akhirnya dijadikan
basis CLR sebagai bentukan baru untuk menutupi kelemahan kelemahan
tersebut., dan pada akhirnya mempengaruhi desain pada bahasa C# itu
sendiri. Ada kritik yang menyatakan C# sebagai bahasa yang berbagi akar
dari bahasa-bahasa pemrograman lain.
1
Modul Pemrograman C# Fundamental



Fitur-fitur yang diambil dari bahasa C++ dan Java adalah desain
berorientasi objek, seperti garbage collection, reflection, akar kelas (root
class), dan juga penyederhanaan terhadap pewarisan jamak (multiple
inheritance). Fitur-fitur tersebut didalam C# kini telah diaplikasikan terhadap
iterasi, properti, kejadian (event), metadata, dan konversi antara tipe-tipe
sederhana dan juga objek.
C# didesain untuk memenuhi kebutuhan akan sintaksis C++ yang lbih
ringkas dan Rapid Application Development yang tanpa batas (dibandingkan
dengan RAD yang terbatas seperti yang terdapat pada Delphi dan Visual
Basic).
Agar mampu mmpromosikan penggunaan besar-besaran dari bahasa
C#, Microsoft, dengan dukungan dari Intel Corporation dan Hewlett-Packard,
Mencoba mengajukan standarisasi terhadap bahasa C#. Akhirnya pada bulan
Desember 2001, standar pertama pun diterima oleh European Computer
Manufacturers Association atau Ecma International (ECMA), dengan nomor
standar ECMA-334. Pada Desember 2002, standar kedua pun diadopsi oleh
ECMA, dan tiga bulan kemudian diterima oleh International Organization
for Standarization (ISO), dengan nomor standar ISO/IEC 23270:2006


1.1.2 Arsitektur .NET dan .NET Framework
a. Common Language Runtime (CLR)

Konsep paling penting dalam .NET framwork adalah keberaaan dan
fungsionalitas .NET Common Language Runtime (CLR). CLR adalah
sebuah layer atau lapisan framework yang berada pada sistem operasi dan
menangani eksekusi dari aplikasi .NET. Program yang nantinya akan dibuat
tidak terkomunikasi langsung dengan Sistem Operasi, tetapi melalui CLR
terlebih dahulu.

b. MSIL (Microsoft Intermediate Language) Code

Pada saat mengkompilasi aplikasi .NET menggunakan bahasa
pemograman .NET (misalkan C#, VB.net atau C#.net), source code yang
telah anda buat tidak akan dubah langsung menjadi sebuah kode biner
executable tetapi diubah dahulu menjadi intermediate code yang bernama
MSIL, yang diinterpretasikan oleh CLR.
Modul Pemrograman C# Fundamental



MSIL adalah kode sistem operasi dan kode hardware yang berdiri
sendiri. Pada saat program dieksekusi, MSIL akan mengubahnya menjadi
kode biner executable.


c. Just in Time Compilers (JITers)

Pada saat kode intermediate language membutuhkan untuk dieksekusi,
CLR akan meminta JIT compiler untuk mengompilasi IL (Intermediate
Language) ke native executable code (Exe atau DLL) yang dirancang pada
mesin atau OS tertentu. JITers pada dasarnya berbeda sama sekali dengan
compiler konvensional yang mengompilasi IL ke Native kode hanya pada
saat dibutuhkan.
Misalkan ketika sebuah fungsi dipanggil, Intermediate Language dari
function body akan diubah pada saat itu juga atau just in time. Jadi, bagian
dari kode yang tidak digunakan tidak akan diubah menjadi native code.
Jika beberapa kode IL diubah ke native code, dan kode tersebut di lain
waktu dibutuhkan lagi, CLR akan menggunakan copy kode yang sama
(yang telah dikompilasi) tanpa harus mengompilasi ulang kode tersebut.
JITers sangat memperhatikan jenis processor dan sistem operasi pada saat
runtime. JITers dapat mengoptimasi kode dengan sangat efisien dalam
merancang sebuah aplikasi yang baik.

d. The Framework Class Library (FCL)

.NET Framework menyediakan banyak sekali jenis Framework Class
Library (FCL) untuk digunakan secara serentak dalam proses pengembangan
aplikasi. FCL berisi ribuan class yang menyediakan akses ke windows API
dan fungsi pada umumnya seperti Manipulasi String, Data struktur umum,
IO, Streams, Threads, Security, Network Programing, Pemrograman
Windows, Pemrograman web, data akses, dan masih banyak lagi yang
lainnya.
Pengertian sederhananya, FCL merupakan library standar besar yang
dikemas dalam satu bahasa pemrograman. Bagian terbaik dari library ini
adalah peggunaan teknik pemrograman object oriented yang membuat teknik
pengaksesan dan penggunaannya menjadi sangat sederhana. Anda dapat
menggunakan FCL pada program yang akan dibuat hanya seperti
menggunakan kelas-kelas lainnya. Anda bahkan dapat menerapkan teknik
inheritance dan polimorfisme pada kelas FCL ini.
Modul Pemrograman C# Fundamental




e. Common Language Specification

Anda mungkin sering menggunakan istilah . NET Compliant
Language yang berasal dari common language specification (CLS).
Microsoft telah mengeluarkan sebuah subset kecil dari spesifikasi masing-
masing bahasa yang dapat digunakan dan dapat memenuhi standar .NET
Compliant Language.
CLS pada dasarnya adalah sebuah desain bahasa yang menetapkan
standar bawah tertentu. Sebagai contoh, misalkan anda membuat program
namun tidak terdapat pointer , tidak terdapat multiple inheritance, maupun
tidak ada global variable, maka kode anda dijamin dapat digunakan lagi pada
bahasa .NET yang lain selama masih dalam ruang lingkup CLS.


f. The Common Type System (CTS)

.NET juga mendefinisikan sebuah common type system (CTS). Seperi
CLS, CTS juga terdiri dari beberapa set standar. CTS mendefinisikan tipe data
dasar ang dipahami dan digunakan oleh IL. Masing-masing .NET Compliant
Language harus memetakan datanya pada sebuah tipe data standar.
Hal ini yang membuat dua bahasa berkomunikasi satu sama lain
dengan cara menerima parameter untuk dan dari satu sama lain. Misalkan,
CTS mendefinisikan sebuah tipe data int (integer 32 bit) yang dipetakan
dengan bahasa C# menjadi int dan VB.NET juga akan memetakanna menjadi
tipe data integer.

g. Garbage Collection (GC)
CLR juga berisi sebuah Garbage Collector (GC) yang berjalan di
prioritas thread rendah dan memeriksa apakah terdapat alokasi ruang memori
yang tidak direferensikan. Jika Garbage Collection menemukan beberapa data
yang tidak direferensikan oleh sebuah variable, ruang memori tersebut akan
dikembalikan lagi ke sistem operasi. Kehadiran Garbage Collector berguna
untuk memudahkan programmer dalam melacak data yang kacau.
h. .NET Framework

.NET Framework adalah kombinasi dari layer CLR, FCL, Data, dan
kelas XML, Windows, aplikasi web dan web service. Framework adalah
sebuah kerangka penopang sebuah program untuk dapat berjalan pada suatu
sistem operasi. Contohnya adalah yang biasa kita kenal dengan .NET
Modul Pemrograman C# Fundamental



framework pada sistem operasi berbasis windows dan mono framework pada
sistem operasi berbasis UNIX dan Mac OS. Dan C# bukan hanya bisa
dijalankan pada sistem berbasis windows namun juga ke sistem operasi lain
dengan perantara frameworknya, analoginya seperti berikut:















1.2 Struktur Program C#










Keyword using digunakan untuk memberitahu compiler class apa yang
sedang digunakan pada aplikasi
Framework
Bahasa Pemrograman
C# VB.NET F# C++
Windows Linux MAC OS
.NET MONO
Modul Pemrograman C# Fundamental



Keyword namespace digunakan untuk mendeklarasikan ruang lingkup dari
class yang dibuat. Class didalam namespace dapat dipanggil dengan
mencantumkan nama spacenya terlebih dahulu.
Using system; pada baris pertama mempunyai arti bahwa user dapat
menggunakan clas-class yang ada pada namespace System.
Static menunjukan tipe method
void menunjukkan bahwa method tidak mengembalikan nilai atu objek
Main merupakan nama method utama program C#
String merupakan tipe argumen yang akan diterima sebagai parameter dari
command C#.
Args merupakan merupakan array argumen yang dapat ditambahkan pada
saat menggunakan command C# untuk menjalankan program C#

1.2.1 Sintaks Dasar C#
a. Perintah Keluaran




b. Cara Menampilkan variable




A , B adalah variable yang dimasukkan kedalam {0} dan {1}

c. Perintah Membaca inputan




d. Perintah Konversi


Console.Write (pernyataan dlm bntuk String, argument)
Console.Write (Nilai A = {0} , dan Nilai B = {1}, A,B)
Console.Readline ();
Console.ReadKey();


Tipedata.Tryparse(variable yang akan dikonversi, out variable keluaran)
Modul Pemrograman C# Fundamental




Contoh: int.Tryparse(input, out jumlah)
Mengubah isi dari variable input yang bertipe data String ke integer,
dan dikeluarkan pada variable jumlah.


1.3 Membuat Project

Project adalah kumpulan file yang dapat di-compile menghasilkan
program. Program dapat didistribusikan dan dapat dieksekusi tanpa
memerlukan IDE yang digunakan untuk menulis kode program. Program
dapat juga disebut aplikasi. Sebuah aplikasi dihasilkan dari satu project atau
lebih dan didesain untuk menjalankan fungsi tertentu. Berikut ini adalah cara
membuat project didalam Microsoft Visual Studio 2010

a. Membuka Jendela Microsoft Visual Studio 2010






Modul Pemrograman C# Fundamental














b. P
i
l
i
h

F
i
l
e

-
> New -> Project

c. Pilih Visual C#, Console Application , Beri nama aplikasi
(Menentukan Nama Class) , dan pilih tempat penyimpanan project
Modul Pemrograman C# Fundamental





Menu Bar = Berisi pilihan File, Edit, View, Reflector, Project, Build,
Debug, Tools, Architecture, Test, Analyze, Window, Help
Pilih Visual C#
Pilih Console Application
Nama Aplikasi
Menu
BarStart
Page
Lembar Kerja
Jendela
Output
Soulution
Explorer
Jendela properti
Modul Pemrograman C# Fundamental



Lembar Kerja = Tempat dimana kita mengisikan list dari program yang
akan kita buat.
Jendela Output = Berisi pesan debug dan eror dari list program yang kita
ketikkan.
Jendela Properti = Berisi properti dari sebuah objek, biasanya digunakan
dalam penggunaan aplikasi berbentuk form.
Solution Explorer = Jendela yang memudahkan dalam pengaturan dan
pembuatan class dan sebagainya yang berhubungan dengan properti dari
suatu program.

1.4 Menjalankan Project
1.4.1 Perintah Untuk Menamplkan Hello World




















Untuk menjalankannya tekan F5

Hasil Tampilan


Modul Pemrograman C# Fundamental

















1.5 Latihan I
1. Apakah perbedaan antara Console.Write dengan Console.WriteLine?
2. Buatlah sebuah tampilan program seperti berikut menggunakan
Console.WriteLine!






3. Apakah fungsi Console.Read(); pada program diatas?
4. Bagaimana hasil tampilan jika Console.Read(); tidak digunakan?







Modul Pemrograman C# Fundamental



Tipe data,Variable& Operator


2.1 Pengenalan Tipe Data
Tipe data merupakan jenis data yang digunakan pada program untuk
dioperasikan
Pada C# terdapat dua jenis tipe data, yaitu:
Tipe data dasar misalkan integer, float, byte, dan sebagainya.
Tipe data reference misalkan object dan delegates
Tipe data dasar yang terdapat pada C# adalah:













Saat kita mendeklarasikan suatu variable dengan tipe data integer atau int,
data tersebut tidak akan bisa diisi dengan huruf. Kemudian pengisian data
tersebut juga tidak menggunakan tanda petik dua ( ). Sama halnya dengan
double, float, dan decimal, dimana pengisiannya tidak menggunakan tanda
petikdua. Sedangkan untuk String, harus mendefinisikan suatu nilai dengan
menggunakan tanda petik dua.
Tipe Integral
Byte 8-bit unsigned integer
Sbyte 8-bit signed integer
Short Short integer
ushort An Unsigned Short Integer
Int Integer
Uint An Unsigned Integer
Long Long Integer
ulong An Unsigned Long Integer
Tipe Floating Point
Float Single-precision Float Point
double Double-precision Float Point
Tipe data lain
char Character
bool Memberikan nilai True/False
decimal Bilangan bulat
String Berisi karakter alfanumerik
atau gabungan dari beberapa
karakter
2
Modul Pemrograman C# Fundamental




2.2 Attribute / Variable
2.2.1 Attribut/ Variable

Variable adalah nama dari suatu lokasi di memori yang digunakan
untuk menyimpan data sementara. Variable diberi nama tertentu yang
menunjukkan domain yang diwakilinya. Dalam memberikan nama variable
ada beberapa ketentuan yang harus diperhatikan yaitu:
a. Panjang karakter nama variable tidak dibatasi
b. Nama variable harus diawali dengan huruf, tanda garis
bawah(underscore_) atau tanda $. Selanjutnya dapat diikuti oleh karakter
lain selain operator(*,-,+), dengan kata lain variable dapat diawali dengan
karakter khusus kecuali operator.
c. Tidak diperbolehkan menggunakan kata kunci (keyword) yang digunakan
pada C# (contoh: if, for, while, dll)
d. Bersifat case sensitive (membedakan huruf besar dan huruf kecil)
e. Penulisan variable tidak boleh menggunakan spasi
f. Syntax Penulisan variable harus diawali dengan tipe data terlebih dahulu
karena data yang tersimpan dalam variable harus memiliki tipe tertentu
sebelum digunakan dalam aplikasi.




Contoh 2.1:
Ketikkan coding berikut ini:


namespace ConsoleApplication7
{
classProgram
{
staticvoid Main(String[] args)
{
String nama;
Console.Write("\n Masukkan Nama Anda: ");
nama = Console.ReadLine();

Console.WriteLine("\n Selamat belajar C# {0}", nama);
Console.Read();
}
}
}
Syntax : [tipe_data] [nama_variable]
Modul Pemrograman C# Fundamental











2.2.2 Konstanta
Variable konstata adalah salah satu jenis variable memiliki nilai tetap
atau tidak dapat diubah. Untuk menuliskan variable konstanta, sintaksnya
adalah:






Contoh 2.2:
Ketikkan coding berikut ini:















Tampilan


Syntax : const[tipe_data] [nama_variable]
Modul Pemrograman C# Fundamental



2.3 Jenis-Jenis Operator
Operator digunakan untuk mengombinasikan suatu data dengan data
lain. Biasanya operator digunakan pada data yang tipenya dapat dikalkulasi
seperti data yang bersifat integral atau floating point. Pengkalkulasian data
melalui operator ada berbagai macam cara tergantung tipe dari data tersebut.
Berikut ini adalah jenis-jenis operator:


2.3.1 Operator Aritmatika
Operator aritmatika digunakan untuk perhitungan matematis seperti
dalam penambahan, pengurangan, perkalian, dan pembagian


Simbol Keterangan
+
operator penjumlahan
-
operator pengurangan
*
operator perkalian
/
operator pembagian
%
operator sisa bagi

Contoh 2.3:
Ketikkan coding berikut ini:

staticvoid Main(String[] args)
{
String nim, nama, nabsen, ntugas, nuts, nuas;
double nakhir, n_absen, n_tugas, n_uts, n_uas;
Console.Write("\n Nim : ");
nim = Console.ReadLine();
Console.Write(" Nama : ");
nama = Console.ReadLine();
Console.Write(" Nilai absen : ");
nabsen = Console.ReadLine();
Console.Write(" Nilai Tugas : ");
ntugas = Console.ReadLine();
Console.Write(" Nilai UTS : ");
nuts = Console.ReadLine();
Console.Write(" Nilai UAS : ");
nuas = Console.ReadLine();
n_absen = Convert.ToDouble(nabsen);
n_tugas = Convert.ToDouble(ntugas);
n_uts = Convert.ToDouble(nuts);
n_uas = Convert.ToDouble(nuas);
nakhir = (n_absen * 10/100)+(n_tugas* 20/100)+(n_uts* 30/100)+(n_uas* 40/100);
Console.Write(" Nilai Akhir : {0}", nakhir);
Console.Read();
Modul Pemrograman C# Fundamental



}


2.3.2 Operator Relasi
Operator relasi dalam sebuah program biasa digunakan untuk
membandingkan dua buah nilai, dan operator relasi akan memberikan nilai
benar atau salah (true, false)







Contoh 2.4:
Ketikkan coding berikut ini:
staticvoid Main(String[] args)
{
String a, b;
bool lb, lk, lbs, lks, smd, tsm;
int var_a, var_b;

Console.Write("\n Masukkan Nilai a : ");
a = Console.ReadLine();
Console.Write(" Masukkan Nilai b : ");
b = Console.ReadLine();

var_a = Convert.ToInt16(a);
var_b = Convert.ToInt16(b);

lb = var_a > var_b;// lebih besar
lk = var_a < var_b;// lebih keci
lbs = var_a >= var_b;// lebih besar sama dengan
lks = var_a <= var_b;// lebih kecil sama dengan
smd = var_a == var_b;// sama dengan
tsm = var_a != var_b;// tidak sama dengan

Console.WriteLine("\n apakah a lebih besar dari b? {0}",lb);
Console.WriteLine(" apakah a lebih kecil dari b? {0}", lk);
Console.WriteLine(" apakah a lebih besar sama dengan b? {0}", lbs);
Console.WriteLine(" apakah a lebih kecil sama dengan b? {0}", lks);
Console.WriteLine(" apakah a sama dengan b? {0}", smd);
Console.WriteLine(" apakah a tidak sama dengan b? {0}", tsm);
Console.Read();
}

Simbol Keterangan
<
kurang dari
<=
kurang dari sama dengan
>
lebih dari
>=
lebih dari sama dengan
==
sama dengan
!=
tidak sama dengan
Modul Pemrograman C# Fundamental
















2.3.3 Operator Logika
Operator logika digunakan untuk menggabungkan dua buah ungkapan
kondisi menjadi sebuah ungkapan kondisi. Oleh karena itu biasanya operator
logika digunakan bersamaan dengan percabangan (IF).


Contoh 2.5:
staticvoid Main(String[] args)
{

String a, b;
int convert_a, convert_b;
bool dan, atau, bukan_a, bukan_b, var_a, var_b;

Console.WriteLine("\n Input nilai a dan b dengan 1 atau 0");
Console.Write(" Masukkan nilai a : ");
a = Console.ReadLine();
Console.Write(" Masukkan nilai b : ");
b = Console.ReadLine();

convert_a = Convert.ToInt16(a);
convert_b = Convert.ToInt16(b);

var_a = Convert.ToBoolean(convert_a);
var_b = Convert.ToBoolean(convert_b);

dan = var_a && var_b;
atau = var_a || var_b;
bukan_a = !var_a;
bukan_b = !var_b;

Console.WriteLine("\n hasil dari a and b adalah {0}", dan);
Console.WriteLine(" hasil dari a or b adalah {0}", atau);
Simbol Keterangan
!
NOT
&&
short-circuit AND
||
short-circuit OR
Modul Pemrograman C# Fundamental



Console.WriteLine(" hasil dari not a adalah {0}",bukan_a);
Console.WriteLine(" hasil dari not b adalah {0}", bukan_b);
Console.Read();
Console.Read();
}



2.4 Latihan II

1. Sebutkan perbedaan antara tipe data string dan boolean.
2. Buatlah sebuah program operator sederhana dengan input hanya
sebanyak dua nilai (a dan b) dan memiliki tampilan seperti di
bawah ini :

3. Apakah arti dari baris program di bawah ini?
n_tugas = Convert.ToDouble(ntugas);
4. Jika a = 10 dan b = 5, maka a OR b adalah?







Modul Pemrograman C# Fundamental










Operasi
Penyeleksian Kondisi (IF)

3.1 Pernyataan Berkondisi
Pernyataan Bercabang digunakan untuk memecahkan persoalan untuk
mengambil suatu keputusan diantara sekian pernyataan yang ada. Untuk
keperluan pengambilan keputusan, Bahasa pemrograman C# menyediak
beberapa perintah antara lain.

3.1.1 Pernyataan If-Then-Else
Pengecekan kondisi merupakan suatu aspek terpenting dalam
pemrograman. Pengecekan kondisi ini sudah ada sejak bahasa assembly. C#
juga menyediakan pengecekan kondisi berupa if..then.. else. Struktur dari
pernyataan. Struktur dari pernyataan kondisi dalam C# dinyatakan seperti
berikut:











Contoh 3.1:
Menampilkan Grade Pada Contoh 2.3
staticvoid Main(String[] args)
{
3
IF (Kondisi)
{ Keputusan;}
Else
{Keputusan;}
Modul Pemrograman C# Fundamental




String nim, nama, nabsen, ntugas, nuts, nuas;
double nakhir, n_absen, n_tugas, n_uts, n_uas;

Console.Write("\n Nim : ");
nim = Console.ReadLine();
Console.Write(" Nama : ");
nama = Console.ReadLine();
Console.Write(" Nilai absen : ");
nabsen = Console.ReadLine();
Console.Write(" Nilai Tugas : ");
ntugas = Console.ReadLine();
Console.Write(" Nilai UTS : ");
nuts = Console.ReadLine();
Console.Write(" Nilai UAS : ");

nuas = Console.ReadLine();
n_absen = Convert.ToDouble(nabsen);
n_tugas = Convert.ToDouble(ntugas);
n_uts = Convert.ToDouble(nuts);
n_uas = Convert.ToDouble(nuas);

nakhir = (n_absen * 10 / 100)+(n_tugas* 20 / 100)+(n_uts*
30/100) + (n_uas* 40 / 100);
Console.WriteLine(" Nilai Akhir : {0}", nakhir);

if (nakhir >= 80)
{
Console.WriteLine(" Grade : A");
}
elseif (nakhir >= 70)
{
Console.WriteLine(" Grade : B");
}
elseif(nakhir >= 60)
{
Console.WriteLine(" Grade : C");
}
elseif (nakhir >= 50)
{
Console.WriteLine(" Grade : D");
}
else
{
Console.WriteLine(" Grade : E");
}
Console.Read();
}




Modul Pemrograman C# Fundamental









3.1.2 Pernyataan Switch Case
Pernyataan Switch Case juga merupakan satu pertanyaan terkondisi.
Pernyataan switch case pada dasarnya hampir sama dengan if then else. Jika
anda memerlukan satu pernyataan dengan banyak kondisi, gunkan pernyataan
switch case. Struktur dari pernyataan Switch Case adalah sebagai berikut:










Contoh 3.2:
staticvoid Main(String[] args)
{
Console.WriteLine("Password yang anda masukkan salah, coba lagi");
Console.Write(" Masukkan Password : ");
String pass = Console.ReadLine();

switch (pass)
{
case"P4ssw0rd":
Console.Clear();
Switch (Expresion)
{
Case kondisi1 :
Keputusan 1;
Break;
Default:
Keputusan n;
Break;
}
Modul Pemrograman C# Fundamental



Console.WriteLine("Selamat datang di ruang administrator ");
Console.WriteLine("======================================");
break;
default:
Console.Clear();
Console.WriteLine("Anda tidak berhak masuk kedalam sistem ini");
break;
}
Console.Read();}
Tampilan :









Modul Pemrograman C# Fundamental







Latihan III
1. Buatlah sebuah program dengan tampilan keluaran seperti di bawah ini

Dengan ketentuan nilai 1 dan nilai 2 berupa variabel yang di input, kemudian
pilihan diinput dengan opsi yang akan dipilih dan tampilan serta jumlah akan muncul
secara otomatis.
2.










Modul Pemrograman C# Fundamental










Proses Perulangan (Loop)


Perulangan atau iterasi sangat diperlukan untuk mencari data pada
setiap list yang telah didefinisikan. Pada C#, perulangan bisa dilakukan
dengan beberapa cara seperti for, foreach, while, dan go to.

4.1 Struktur For
Dengan menggunakan for, kita menginstruksikan C# untuk melakukan
iterasi data yang dimulai dengan nilai counter yang kita definisikan.











Contoh 4.1

staticvoid Main(String[] args)
4
For (Niali awal; kondisi; Increment/Decrement)
{
Pernyataan yang akan diulang;
}
Modul Pemrograman C# Fundamental



{
for (int angka = 1; angka <= 10; angka++)
{
Console.WriteLine("\n Angka Ke -"
+ angka.ToString());
}
Console.Read();
}






Contoh 4.2

staticvoid Main(String[] args)
{
for (int angka = 10; angka >= 1; angka--)
{
Console.WriteLine("\n Angka Ke -"
+ angka.ToString());
}
Console.Read();
}







4.2 Struktur While
Perulangan while tidak memerlukan counter (pencacah) untuk
menentukan sebuah iterasi. Perulangan while haya perlu memasukkan sebuah kondisi
yang mana while nantinya akan mengecek kondisinya terlebih dahulu baru kemudian
melakukan proses perulangan. Looping while memiliki struktur sebagai berkut:






While (Ekspresi boolean)
{
Statement perulangan;
}
Modul Pemrograman C# Fundamental








Contoh 4.3
staticvoid Main(String[] args)
{
int i = 1;
while (i <= 12)
{
Console.WriteLine("\n Belajar C#"+i);
i++;
} Console.Read();}

Tampilan


















4.3 Struktur do.. while
Looping do..while pada dasarnya sama dengan looping for. Looping
do akan berhenti jika kondisinya telah terpenuhi. Berikut ini adalah struktur dari do..
while.





Do
{
}
While(Ekspresi Boolean)
Modul Pemrograman C# Fundamental







Contoh 4.4
staticvoid Main(String[] args)
{
int i = 1;
do
{
Console.WriteLine("\n Nilai i= " + i);
i++;
}
while (i <= 5);
Console.Read();
}

4.4 Struktur Foreach

Foreach memiliki konsep yang sama dengan for. Biasanya foreach
digunakan unruk mengambil seluruh data pada list yang ada. Perbedaannya
adalah foreach tidak menggunakan counter, karena proses iterasi dilakukan
secara internal array. Kelebihan dari foreach yaitu lebih cepat mendapatkan nilai
array secara keseluruhan. Kekurangannya yaitu tidak bisa mengakses nilai dari
suatu indeks tertentu. Berikut ini adalah struktur dari foreach.










Contoh 4.5
staticvoid Main(String[] args)
{
String[] Stringarray = { "one", "two", "three" };
foreach (String element inStringarray)
{
Console.WriteLine(element + " ");
}
Console.Read();
}

Foreach (tipe_data nama_var in nama_array)
{
Statement;
}
Modul Pemrograman C# Fundamental






4.5 Deret dalam perulangan
4.5.1 Fibonacci

4.6 Latihan






Pengenalan OOP




5.1 Pengantar OOP

Secara umum, sebuah program komputer terdiri atas kode dan
data yang dapat berupa variable maupun konstanta. Kode dan data tersebut
kemudian diatur sehigga dapat bekerja sama untuk menghasilkan program
keluaran yang akan digunaan untuk menyelesaikan sebuah permasalahan.
Pada model pemrograman prosedural alur kerja program
berorientasi pada process (Process-Oriented). Program merupakan gabungan
dari data dan kode dengan struktur program yang berupa urutan proses.
Pendekatan semacam ini memiliki kelemahan, yaitu akan menemui bayak
kesulitan ketika menangani kasus-kasus yang kompleks, membutuhkan ribuan
baris kode. Kondisi seperti itu akan menyulitkan programmer dalam melacak
kesalahan (debugging), meyisipkan modul bar dalam program, dan sebagaiya.
Pemograman berorientasi objek (PBO) hadir untuk mjadi solusi
kelemahan yang terdapat pada pendekatan prosedural biasa. Dalam
pemrograman berorientasi objek, pendekatan yang dilakukan adalah dengan
5
Modul Pemrograman C# Fundamental



memodelkan sistem menjadi objek-objek. Objek dapat didefinisikan sebagai
suatu entitas yang memiliki data dan method.
Object Oriented Programing (OOP) atau yang lebih dikenal
dengan pemrograman berorientasi objek adalah suatu teknik atau pendekatan
baru dalam dunia pemrograman. Sebelum teknik OOP populer para
programmer sering menggunakan teknik prosedural dalam membuat program
untuk kebutuhan-kebutuhan mereka. Selanjutnya ketika OOP ternyata lebih
mampu menyelesaikan masalah daripada teknik prosedural, sebagian besar
programmer mulai menggunakan teknik OOP.
Dalam prosedural programming kebanyakan fungsi dalam
sebuah program ditulis dalam beberapa modul atau dapat lebih dari satu
modul tergantung dari jenis aplikasi yang dibuat. Modul-modul ini memiliki
ketergantungan antara yang satu dengan yang lainnya. Bila anda ingin
mengubah satu modul maka anda harus mengganti baris-baris yang telah anda
buat pada modul lainnya yang berkaitan dengan modul tersebut. Dengan
teknik OOP, anda tidak perlu mengubah keseluruhan program yang
bermasalah tersebut. Anda cukup mengubah coding program yang bermasalah
saja.
Beberapa hal yang merupakan keuntungn dari konsep
pemrograman berbasi object (PBO/OOP) adalah:
Objek-objek yang dibuat bersifat reusable, sehingga dapat digunakan untuk
program-program lain.
Struktur program lebih jelas, trackable (kesalahan mudah dilacak), dan
mudah untuk dikmbangkan.

5.2 Pengertian Class
Class adalah rancangan/sketsa/blueprint dari sebuah objek. Sebelum
kita dapat membuat sebuah objek maka kita harus membuat rancangannya
terlebih dahulu. Secara umum class memiliki dua macam anggota yaitu field
dan method. Field dapat diartikan sebagai atribut dari object sedangkan
method dapat diartikan sebagai aksi/tindakan yang dapat dilakukan oleh
sebuah object. Contohnya jika sebuah perusahaan ingin membut motor
keluaran terbaru, maka sebelumnya perusahaan tersebut harus membuat
rancangannya terlebih dahulu, rancangan tersebut bisa berupa gambar/ sketsa.





Modul Pemrograman C# Fundamental



















5.2.1 Main Class (Kelas
Utama)

Main class adalah class yang didalamnya terdapat main method atau
program utama, yang mana pada saat pertamakali program di compile dan
dijlnkan, mak compiler kan menerjemahkan coding yang ada pada main class.
Bentuk main class pada microsoft visual studio 2010 adalah sebagai berikut.






Main class dalam C# selalu
bernama Class Program

Main Method





CLASS
OBJEK
Modul Pemrograman C# Fundamental



5.2.2 Cara Membuat Class Baru

1. Klik Menu View -> Pilih
Solution Explorer








2. Jendela Solution Explorer akan muncul di sebelah kanan












3. Klik kanan pada nama project anda kalu sorot add, pilih new item

Modul Pemrograman C# Fundamental
















4. Muncul jendela Add New Item, Pilih Class, beri nama class pada
textbox name, lalu klik add.












Modul Pemrograman C# Fundamental



5. Anda akan melihat terdapat satu kelas baru dengan nama class yang
telah anda buat.














5.3 Object
Seperti yang telah dibahas pada sub bab class, class merupakan sketsa/
blue print dari sebuah objek, dengan begitu object adalah realisasi dari sebuah
object. Dalam kehidupan nyata objek menurut Kamus Meriam Webster adalah
suatu material yang dapat dirasakan oleh panca indera. Sedangkan objek
didalam software auat (software object) adalah konsep software yang dibundel
bersama-sama. Terdri dari data dan fungsi.

5.3.1 Instansiasi Objek

Instansiasi objek adalah proses pembuatan objek software didalam
pemrograman berorientasi objek. Berikut ini adalah cara menginstantiasi
objek

Class Constructor


Objek
Sapi y = new Sapi();
Modul Pemrograman C# Fundamental




*Keterangan: Constructor adalah method khusus yang didefinisikan didalam
class dan akan dipanggil secara otomatis tiap kali terjadi instantiasi object.
Constructor berfungsi untuk melakukan inisialisasi nilai terhadap data-data yang
terdapat pada class yang bersangkutan. Constructor dapat dibuat dapat juga tidak,
jika kita tidak membuat sebuah constructor maka microsoft visual studio 2010
akan membuatkan construktor untuk programmer yang disebut dengan default
constructor. Default constructor akan menginisialisasi semua data yang ada
dengan nilai nol, sama halnya dengan method, constructor juga dapat memiliki
parameter.










5.3.2 Contoh penggunaan Objek

Buatlah sebuah project baru








Modul Pemrograman C# Fundamental



Beri nama project latihanobjek










Beri nama clas dengan nama Robot.cs lalu berikan
coding berikut ini.











Modul Pemrograman C# Fundamental



Instantiasi object pada program.cs





R
u
n
n
i
n
g








5.3.3 Method

Method sering juga disebut function/ fungsi pada pemrograman C++
yang telah dipelajari pada semester lalu, pada pemrograman berorientasi
object pun terdapat fungsi/function yang lebih sering disebut dengan method.
Pada pertemuan sebelumnya kita telah banyak menggunakan method seperti
static void main(String[] args) juga merupakan method yang disebut sebagai
main method. Main method adalah sebuah method yang akan dijalankan
paling pertama pada saat program dijalankan. Dengan menggunkan method,
maka program bisa lebih mudah untuk dibaca dan juga dimengerti oleh
programmer karena kode program akan terbagi-bagi menjadi bagian yang
Modul Pemrograman C# Fundamental



lebih spesifik, selain itu method juga mempermudah programmer agar tidak
mengetikkan kode program secara berulang-ulang.
Jika kita membuat suatu aplikasi dengan Console Application, secara
default akan terdapat method Static Void Main untuk menjalankan apllikasi.
Sebenarnya kita bisa membuat method yang kita definisikan sendiri untuk
memenuhi kebutuhan program. Method bertipe void berarti bahwa method
tersebut tidak dapat mengembalikan nilai apapun pada method tersebut. Tetapi
jika pada suatu method tidak terdapat void maka method tersebut harus
mengembalikan sebuah nilai. Berikut ini adalah contoh penggunaan method
pada pemrograman C#.



Tambahkan kode program berikut ini pada class
Robot












Mengakses Method pada Program.cs
Modul Pemrograman C# Fundamental















Running









5.3.4 Encapsulation

Enkapsulasi adalah sebuah metode untuk menyembunyikan elemen
tertentu dari sebuah class. Fitur ini penting karena attribut yang ada didalam
class meupakan informasi penting yang terkadang harus disembunyikan agar
Modul Pemrograman C# Fundamental



tidak dapat diakses secara langsung oleh user. sebagai contoh misalnya
programmer membuat sebuah class bernama Sapi didalam class sapi
terdapat attribut public int umur ini artinya attribut umur dapat diakses
secara public dengan artian dapat diakses oleh siapa saja dengan syarat data
yang dimasukkan harus berupa integer(bilangan bulat). Bagaimana jika
seorang user memasukkan umur sapi tersebut dengan bilangan negatif (-1),
hal ini tentu bertentangan dengan kondisi objek sapi yang ada di dunia nyata,
bahwa tidak ada umur makhluk hidup yang tidak dimulai dari angka 1, maka
dalam kasus ini umur seharusnya tidak dapat mendapatkan full access (Read
and Write) mungkin hanya sebatas akses untuk membacanya saja, bukan
untuk ditulis.






5.3.4.1 Access Identifier
Access Identifier berfungsi untuk menentukan siapa saja yang dapat
mengakses(membaca/mengubah) data-data (attribut & method) didalam
sebuah class. Access Identifier yang sering digunakan dalam pemrograman
bahasa C# ada 3 yaitu:
a. Public
Menyatakan bahwa anggota class tersebut (attribut/method/property) boleh
diakses oleh siapa saja (class yang lain).
b. Private
Menyatakan bahwa anggota class tersebut (attribut/method/property) hanya
boleh diakses oleh dirinya sendiri (class itu sendiri).
c. Protected
Menyatakan bahwa anggota class tersebut (attribut/method/property) hanya
boleh diakses oleh dirinya sendiri dan turunan-turunan classnya (class yang
menurunkan sifat-sifat dari class tersebut).

Agar lebih mudahnya mari kita praktekkan

Ubah data pada clas Robot.cs
Modul Pemrograman C# Fundamental














Running Program

Karena Program.cs adalah user (Class lain) Maka akan tampil
sederet kesalahan yang menyatakan bahwa attribut yana bertipe
privateis inaccessible due to its protection level yang artinya,,
atribut-attribut tersebut tidak dapat diakses selama berlevel ter-
protect. Sehingga attribut-attribut tersebut hanya bisa diakses oleh
Robot.cs

Modul Pemrograman C# Fundamental



Sekarang ubah kode program yang ada pada

R
o
b
o
t
.
c
s











Ubah juga kode program yang ada pada
Program.cs
Modul Pemrograman C# Fundamental












R
unning Program








Dari kasus diatas attribut-attribut yang bertipe private ter-enkapsulasi
(terbungkus) dalam method yang bertipe public(method getter) sehingga tetap dapat
diakses oleh kelas yang lain tetapi dengan cara pengaksesan yang berbeda yang sudah
diatur oleh programmer. Dalam kasus ini user (class lain) hanya dapat membaca
informasi tentang jumlah tangan, jumlah kaki, jumlah rocket, dan jumlah senjata,
tetapi tidak dapat mengubah jumlah dari attribute-attribute tersebut.
Modul Pemrograman C# Fundamental




5.3.4.2 Property

Dalam bahasa pemrograman C#, terdapat cara lain untuk membungkus
field/attribut, yaitu dengan membuat property. Property memiliki fungsi yang
sama dengan method getter/setter. Dalam property method getter/setter disatukan
dalam sebuah property. Dengan demikian, kita tidak perlu lagi membuat 2 buah
method dengan nama yang berbeda. Agar lebih jelas, mari langsung saja kita
praktekkan.

Buatlah sebuah project baru dengan nama
latihanproperty










Lalu tambahkan kelas baru dengan nama
Malware.cs




Berikan kode program berikut ini pada Malware.cs
Modul Pemrograman C# Fundamental










Membuat Property
o Blok attribute
o Klik Kanan pilih refractor
o Pilih Encapsulate Field
o Pilih all, ok















Hasilnya akan terlihat seperti ini
Modul Pemrograman C# Fundamental










Property



Lakukan Hal yang sama pada attribut-attribut yang lainnya
Buatlah sebuah objek pada Program.cs kemudian
ketikkan program dibawah ini










Running Program
Modul Pemrograman C# Fundamental










5.3.4.3 Hubungan antara Class, Attribute, Method
Hubungan antara Class, Attribute , dan method biasa digambarkan
dalam bentuk Class Diagram seperti contoh dibawah ini:

Robot

+ Nama : String
-JumlahKaki : int
-JumlahTangan : int
-JumlahSenjata : int
-JumlahRocket : int

+LihatJumlahkaki()
+LihatTangan()
+LihatSenjata()
+Terbang()




Pewarisan/Inheritance

6
Attribute (+ = public)
(- = private)
Attribute (+ = public) (-
= private)

Class
Modul Pemrograman C# Fundamental




6.1 Pengertian Inheritance
Inheritance/Pewarisan adalah suatu cara pembuatan class baru dengan
menggunakan kembali class yang sudah didefinisikan sebelumnya dengan
menambahkan attribute dan method baru. Sehingga demikian class baru yang
dibuat tetap memiliki attribute dan method yang dimiliki oleh class induknya.
Pada konsep pewarisan/ inheritance terdapat beberapa istilah yang perlu
diketahui yaitu:
a. Sub Class, digunakan untuk menunjukkan class anak atau turunan secara
hirarkis dari super class
b. Super Class, digunakan untuk menunjukkan class induk secara hirarkis
dari sub class (class anak)

6.1.1 Studi Kasus
Buatlah sebuah project yang berisi tiga class berikut ini:

Virus
+ nama: String
+size : int
+kemampuan : String
+banyak : int
+Menyerang() : void
+MemperbanyakDiri() :
void

Berikut ini adalah kode program dari bagan diatas:






Virus.cs
Worm
+nama : String
+size : int
+kemampuan : String
+Menyerang() : void
+MenginfeksiRegistry() :
void
+Menghapus NTLDR() :
void
Trojan
+nama : String
+size : int
+kemampuan : String
+Menyerang () : void
+MenyembunyikanFile() :
void
+MemblokirCMD() : void
Modul Pemrograman C# Fundamental












Trojan.cs


W
o
r
m
.
c
s






P
r
o
g
r
Modul Pemrograman C# Fundamental



am.cs

Running Program





6.1.2 L
a
t
i
han Inheritance

Setelah berlatih dengan program yang diatas, bagaimana menurut
anda? Menulis berulang kali method dan attribut yang sama sangatlah
melelahkan dan membosankan bukan?? Nah disinilah peranan inheritance
diperlukan dengan inheritace/ pewarisan programer hanya perlu membuat satu
parent class (Super Class) yang mana attribut dan methodnya akan diturunkan
kepada anak-anak kelasnya (Sub Class) nya. Kemudian dari sub class jika ingin
menambahkan method baru , programer tinggal menambahkan method yang
diperlukan pada class tersebut, tanpa mengubah atau menghapus method yang
diturunkan, oleh karena itu struktur diagramnya akan berubah menjadi seperti
ini:



D
a
r
i

b
a
g
a
n
Modul Pemrograman C# Fundamental



/ diagram diatas programmer perlu membuat empat kelas baru yaitu kelas
malware, virus, trojan, worm. Mengapa lebih mudah menggunakan inheritance?
Karena setiap malware (virus/trojan/worm) sama sama memiliki attribut nama,
size, dan kemampuan, juga memiliki method Menyerang(). Agar lebih
jelasnya mari kita buat kode programnya:







Malware.cs





Virus.cs Menandakan class virus turunan dari class malware




T
rojan.cs





Modul Pemrograman C# Fundamental



Worm.cs







Program.cs















Running Program

Modul Pemrograman C# Fundamental














6.2 Virt
ual dan Override Methode

Dengan menggunakan konsep inheritance programmer dapat
mempermudah pengerjaan program menjadi lebih simple dan efektif dengan
dapat menggunakan method yang sama dengan yang ada pada parent class
(super class), akan tetapi ada kalannya method yang diwarisi oleh super class
pada sub class tidak sesuai dengan tempatnya. misalkan saja programer
membuat class dengan nama Hewan.cs sebagai parent class, kemudian
terdapat sub class dengan nama Buaya.cs, dan Banteng.cs, lalu dalam
class Hewan.cs terdapat method menyerang() , maka secara otomatis
buaya dan banteng memiliki method menyerang, akan tetapi pada realnya
(pada kehidupan nyata) buaya dan banteng memiliki cara menyerang yang
berbeda, lalu bagaimana cara inheritance dapat menurunkan method untuk
sesuatu yang lebih spesifik lagi? Yaitu dengan cara membuat override method,
override method yaitu menimpa method yang ada pada parent class untuk
diterapkan pada sub class dengan cara member awalan keyword Override
pada nama method yang sama yang ada pada parent/super class.
Sedangkan virtual adalah keyword yang digunakan pada method yang
ada pada parent class yang nantinya akan di override melalui method yang ada
di sub class. Jadi jika pada class turunan/ sub class ditambahkan keyword
override, maka pada super class method yang nantinya akan di override/
ditimpa menggunakan keyword Virtual. Berikut adalah contoh penerapan
virtual dan override method.

Malware.cs
Modul Pemrograman C# Fundamental



M
enandakan
Menyerang
dapat di
override










Virus.cs Menimpa void menyerang() yg ada pada parent class
R
u
n
n
i
n
g

P
r
ogram








Modul Pemrograman C# Fundamental






















Latihan




Modul Pemrograman C# Fundamental



Ketentuan soal
1. Buatlah program sesuai dengan class diagram diatas
2. Isilah method-method yang ada dengan data berikut
3. Gunakan fitur-fitur oop khususnya inheritance (overriding)
Method Class Isi
Beraksi Robot Robot [nama] beraksi
Beraksi Robot Berkaki Robot [nama] berjalan 10 langkah
Beraksi Robot Beroda Robot [nama] meluncur 1 meter
Beraksi Robot Terbang Robot [nama] melayang di ketinggian 2
meter
Beraksi Robot Penyelam Robot [nama] menyelam sedalam 2 meter
Atursensor Robot Mengatur sensitifitas [jenissensor]
Atursensor Robot Penyelam Mengatur sensitifitas tekanan air pada
[jenissensor]







Polymorphism





7.1 Pengertian Polymorphism

Polimorfisme digunakan untuk menyatakan suatu nama yang merujuk
pada beberapa fungsi (Sinaga,2004). Pada polimorfisme, rujukan dapat
dilakukan pada beberapa tipe objek. Hal ini dilakukan karena setiap objek
dimungkinkan memiliki instruksi yang berbeda. Dalam
mengimplementasikan polimorfisme, perlu diperhatikan hal-hal sebagai
berikut (Rickyanto, 2005):
1. Method yang dipanggil harus melalui method superclass
2. Method yang dipanggil juga harus merupakan method yang ada
pada superclass
7
Modul Pemrograman C# Fundamental



3. Signature method harus sama baik yang ada pada superclass
ataupun yang ada ada subclass
4. Method access attribute pada subclass tidak boleh lebih terbatas
dari pada yang ada di super class

7.2 Overload Method

Method overloading adalah membuat dua atau lebih method yang
bernama sama, namun dengan jumlah/ jenis parameter yang berbeda. Jadi
dengan menggunakan method overloading programmer dapat membuat
beberapa versi/ macam/ jenis dari sebuah method yang sama. Hal ini
dilakukan untuk mempermudah pemakaian method yang telah dibuat. Ciri
khas dari method overloading adalah berada dalam class yang sama. Sebagai
contoh mari simak kode program berikut ini.






Buatlah sebuah project baru dengan nama latihan overload
Buatlah sebuah class baru dengan nama siswa
Ikuti kode program berikut ini
Siswa.cs










Modul Pemrograman C# Fundamental





Program.cs











Running Program












Modul Pemrograman C# Fundamental


























Array & Collection


Array adalah suatu struktur data yang dapat menyimpan data dengan
tipe yang sama dan diakses dengan menggunakan suatu indeks yang menunjukkan
suatu elemen didalam array tersebut. Dengan begitu array masih termasuk kedalam
bentuk polymorphism.
8.1 Array Dimensi Satu

Sebuah array dikatakan berdimensi satu jika:
1. Suatu nilai yang tersimpan dalam array tersebut ditentukan oleeh satu
kondisi (baris atau kolom).
2. Setiap elemen array dapat diakses melalui index
3. Index array secara default dimulai dari 0
8
Modul Pemrograman C# Fundamental




8.1.1 Deklarasi Array Dimensi Satu




8.1.2 Contoh Array Dimensi Satu
Buatlah sebuah project baru dengan nama latihanarray
Buatlah satu class baru dengan nama arraydimensi1
Ketikkan kode program dibawah ini





Arraydimensi1.cs








P
r
o
g
r
a
m
.
Tipedata_namavariable = new_array[ukuran]
Modul Pemrograman C# Fundamental



cs









Running Program

















Modul Pemrograman C# Fundamental



8.2 Array Multidimensi

Sama dengan array dimensi satu yang membuat array multidimensi
berbeda adalah array multidimensi dapat menyimpan lebih dari satu indeks
(baris dan kolom).

8.2.1 Contoh array multidimensi

Buatlah sebuah class baru dengan nama arraymultidimensi.cs
Sertakan kode program berikut ini
Arraymultidimensi.cs



















Modul Pemrograman C# Fundamental



Program.cs









Running Program





Modul Pemrograman C# Fundamental




8.3 Array pada OOP

Setelah memperlajari dasar-dasar dari array mari kita praktekkan array
pada pemrograman berorientasi objek, bagaimana masih ingatkah kalian
tentang class Malware.cs yang mempunyai sub-sub class Virus.cs, Trojan.cs,
dan Worm.cs? kebetulan saja objek yang kita miliki hanya 3, bagaimana jika
ada 100 objek yang termasuk kedalam malware? Bagaimanakah cara
pengaksesan method yang lebih efisien jika datanya sama? Oleh karena itu
array sangat dibutuhkan didalam pemrograman berorientasi pada objek.
Berikut ini perubahan coding pada class malware pada project
latihaninheritance

8.3.1 Contoh ArrayList
Program.cs
Modul Pemrograman C# Fundamental






















Running program







Modul Pemrograman C# Fundamental



8.4 Collection

Pada .NET framework, tersedia beberapa class yang khusus disediakan
sebagai tempat menyimpan dan mengambil kumpulan data (collection of data).
Beberapa dari class tersebut adalah Array, List, Queue, dan Stack.


8.4.1 List

Pada dasarnya, fungsi list serupa dengan array. Bedanya adalah bahwa
list lebih bersifat dinamis. Jika seorang programmer membuat sebuah array 1
dimensi berukuan 10, maka array tersebut akan terus berukuran 10 meskipun
programmer hanya menggunakan 5 elemen, dan programmer tidak dapat
menghilangkn 5 elemen sisanya. Berbeda dengan array class list memiliki
method untuk menambahkan dan mengurangi elemen dari list. Dengan
demikian, tidak akan ada memori yang terbuang karena tempat penyimpanan
data yang tidak terpakai bisa dihapus. Berikut ini adalah contoh pemakaian
list .
Buatlah sebuah project baru dengan nama latihanlist
Ketikkan kode program berikut ini pada Program.cs





Modul Pemrograman C# Fundamental






























Running Program
Modul Pemrograman C# Fundamental















8.4.2 Queue

Queue juga adalah kumpulan data yang merepresentasikan sebuah
antrian. Queue juga dapat menambahkan dan mengurangi data seperti dalam list.
Perbedaannya terletak pada cara ia menambah dan mengambil data. Queue selalu
selalu menambahkan elemennya pada akhir dari queue dan mengambil
elemennya pada awalnya queue (seperti sebuah antrian pada umumnya).

Queue



Buatlah project baru dengan nama latihanqueue
Ketikkan kode program berikut ini
Program.cs



Elemen
yang
diambil
dari sini
Elemen
baru akan
ditambah
dari sini
Modul Pemrograman C# Fundamental

























Running program










8.4.3 Stack

Modul Pemrograman C# Fundamental



Stack adalah kumpulan data yang merepresentasikan sebuah tumpukan.
Seperti list dan queue, sebuah stack juga dapat menambahkan dan mengurangi
elemen pada dirinya. Bedanya dengan queue adalah bahwa stack
menambahkan dan mengurangi elemen dari awal/ depan/ atas sebuah stack
(seperti pada tumpukan pada umumnya). Seperti contoh dibawah ini:

Stack





















Elemen akan
ditambah
dan diambil
dari sini
Modul Pemrograman C# Fundamental









Running program






Sorting & Searching


9.1 Sorting

Sorting merupakan proses pengelompokan suatu informasi yang
berhubungan secara berurutan baik ascending (dari kecil ke besar) atau
descending (dari besar ke kecil). .NET Framework juga menyediakan dalam
kelas koleksi untuk mengurutkan data.
Tetapi dalam pembelajaran kali ini kita dituntut untuk menguasai proses
pengurutan data secara manual, dengan alasan sebagai berikut:
1. Pada umumnya fungsi misalnya qsort() tidak dapat diaplikasikan pada
semua situasi
9
Modul Pemrograman C# Fundamental



2. Karena qsort() adalah suatu parameter yang khusus untuk pengoperasian
data dalam jumlah besar, sehingga prosesnya berjalan sangat pelan
dibanding proses pengurutan dara dengan cara yang lain.
3. Algoritma quicksort (yang biasanya diterapkan pada qshort()), meskipun
baik digunakan pada proses yang umum, tetapi bukanlah proses shorting
yang terbaik.
Ada 3 metode yang dapat digunakan pada shorting array:
1. Exchange
a. Bubble Sort
b. Shaker Sort
2. Selection
3. Insertion

9.1.1 Bubble Sort
Pada metode bubble sort, proses pengurutan dimulai dengan
membandingkan elemen pertama untuk mendapatkan angka terbesar. Lalu
angka tersebut ditempatkan pada elemen terakhir. Agar lebih jelasnya mari
simak kode program berikut ini.

Buatlah sebuah projrct baru dengan nama latihanbubblesort
Ketikkan kode program berikut ini pada program.cs
Modul Pemrograman C# Fundamental


















Running Program


















Modul Pemrograman C# Fundamental



9.1.2 Shaker Sort

Algoritma shaker sort merupakan improvement dari algoritma
pengurutan bubble sort. Cara kerja dari algoritma ini hampir sama dengan
cara kerja dari algoritma bubble sort. Perbedaannya adalah shaker sort
melakukan pengurutan array dari dua arah.

9.1.3 Selection Sort

Mencari elemen yang tepat untuk diletakkan di posisi yang telah
diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan.
Modul Pemrograman C# Fundamental








Running Program









9.1.4 Insertion Sort











Modul Pemrograman C# Fundamental




9.2 Searching

Pencarian (Search) merupakan proses yang fundamental dalam
pemrograman, guna menemukan data (nilai) tertentu didalam sekumpulan
data yang bertipe sama. Fungsi perncarian itu sendiri adalah untuk
memvalidasi (mencocokkan) data.

9.2.1 Sequential Search
Sequential search adalah teknik pencarian data dimana data dicari
secara urut dari depan ke belakang atau dari awal sampai akhir. Berdasarkan
key yang dicari. Kelebihan dari proses pencarian secara sequential ini adalah:
1. Jika data yang dicari terletak didepan, maka data akan ditemukan dengan
cepat.
Walaupun memiliki kelebihan teknik ini juga memiliki kekurangan yaitu:
1. Jika data yang dicari terletak dibelakang atau paling akhir, maka akan
membutuhkan waktu yang lama dalam proses pencariannya.
2. Beban komputer akan semakin bertambah jika jumlah data dalam array
sangat banyak
Adapun proses dari sequential search adalah:
a. Mulai dari awal (atau dari akhir) cek seluruh record dalam array
atau list, baca satu persatu
b. Temukan record sesuai dengan key yang dicari
c. Proses searching berhenti karena salah satu alasan.
Success Found the target key
End of List No more records to compare


9.2.2 Binary Search




Modul Pemrograman C# Fundamental




Abstract & Interface


10.1 Pengertian Abstract Class
Class abstract adalah sebuah fitur yang tersedia dalam pemrogrman
berorientasi pada objek yang mana mengijinkan superclass untuk
mendeklarasikan sebuah method tanpa implementasi. Implementasi dari
method tersebut diberikan oleh sub-sub class dari class tersebut.

10.1.1 Latihan Abstract Class


Buatlah sebuah project baru dengan nama latihan abstract
Tambahkan Class baru dengan nama BangunRuang.cs, kemudian
ketikkan kode program berikut:



10
Modul Pemrograman C# Fundamental







Pada class Abstract method yang dibuat tidak perlu menggunakan
parameter, atau berisi logika, karena class abstract hanya berisi
method rancangan dari class-class yang lainnya.
Tambahkan Class baru dengan nama Kubus.cs, kemudian ketikkan
kode program berikut:



T
a
m
b
a
h
k
an Class baru dengan nama Balok.cs, kemudian ketikkan kode
program berikut:







Tambahkan Class baru dengan nama Bola.cs, kemudian ketikkan
kode program berikut:



Modul Pemrograman C# Fundamental






Program.cs











Running Program







10.2 Int
erface
Interface dari sebuah class merupakan kontrak antara kode program
dari klien dengan class yang menyediakan layanan. Class yang nyata harus
mengimplementasikan setiap method yang dideklarasikan. Inteface berfungsi
sebagai pola/ kontrak (kumpulan method/ property) yang harus dibuat oleh
class yang mengimplmentasinya. Di dalam interface kita hanya membuat
Modul Pemrograman C# Fundamental



prototype dari method/ property saja tanpa menggunakan access identifier.
Access identifier anggota interface adalah public (secara otomatis). Agar lebih
jelas, mari kita buat sebelumnya. Pertama-tama pilihlah project > Add New
Item (CTRL+SHIFT+A)
















Pilihlah pilihan interface, kemudian beri nama Inameable. Lalu buat juga
Ihead.


10.2.1 Latihan Interface
Buatlah sebuah project baru dengan nama latihan interface
Buatlah class baru dengan nama mammal.cs, dan kketikkan kode
program berikut ini



publicabstractclassMammal
{
publicabstractvoid makeanoise();
}
}

Buatlah class baru dengan nama dog.cs, dan ketikkan kode
program berikut ini

Modul Pemrograman C# Fundamental

















Ketiklah kode program berikut ini pada Ihead








Ketiklah kode program berikut ini pada Inameable










Program.cs
Modul Pemrograman C# Fundamental












Running program










10.2.2 Latihan









11
Modul Pemrograman C# Fundamental



Graphical User Interface (GUI)




11.1 Pengenalan IDE Visual Studio 2010
Agar dapat bekerja lebih efisien ketika menerapkan GUI pada
microsoft visual studio, terlebih dahulu anda perlu mengetahui lingkungan
kerja visual studio. Jika anda sudah pernah membuat sebuah program
komputer seperti Delphi, Visual C, atau bahkan Java, tampilan Visual Stdio
pada dasarnya hampir sama seperti lingkungan kerja dari aplikasi-aplikasi
pemrograman tersebut. Untuk memulainya ikuti langkah-langkah berikut ini:


Buatlah Sebuah Project Baru, pilih windows form application















Tampilan Windows Form Application
Modul Pemrograman C# Fundamental
















Anda dapat mensetting tampilan IDE sesuai dengan selera anda













Toolbox
Modul Pemrograman C# Fundamental



Toolbox adalah bagian yang berguna sebagai tempat meletakkan
objek-objek yang menjadi alat untuk melakukan pemrogrman.
Dalam istilah pemrograman berorientasi objek yang dimaksud
dengan alat adalah sebuah class. Objek-objek yang tersedia pada
Visual Studio khususnya pada pemrograman C# cukup banyak,
seperti Textbox, button, Grid, dan proggress bar. Cara
memunculkan toolbox yaitu klik menu View >> Toolbox
















Selanjutnya mari kita praktekkan jenis-jenis toolbox yang ada.
Caranya hanya dengan mengklik salah satu dari toolbox, misalnya
button











Lalu arahkan kursor yang berbentuk plus pada form1, kemudian
klik kiri


Modul Pemrograman C# Fundamental





















Buatlah seperti ini






















Solution Explorer
Modul Pemrograman C# Fundamental



Solution Explorer adalah bagian yang berfungsi untuk melihat
item-item penyusun sebuah proyek atau solution. Sebuah proyek
dapat disusun oleh berbagai macam item yaitu:

o Form dan kodenya
o Class
o Module
o Class Diagram
o File XML
o File Proyek
o File Report









Properties
Properties berguna untuk melihat nilai properti dari sebuah
objek/class, misalnya properti Name,Text, dsbg.















Modul Pemrograman C# Fundamental








Selanjutnya kita akan merubah properties daari objek-objek yang ada pada
form1. Coblah anda klik button1, kemudian pada properties, rubah Text dan
Back Colornya. Buatlah tampilan seperti berikut ini:

















Pada saat perancangan program seperti ini tombol tutup tidak dapat ditekan
seperti layaknya sebuah tombol, perlu adanya eksekusi program terlebih
dahulu, untuk mengeksekusi program tekan F5. Barulah tombol tutup dapat
ditekan seperti layaknya tombol di kehidupan nyata.


11.2 Event

Tidak hanya makhluk hidup yang memiliki tingkah laku (behaviour)
tetapi pada dasarnya salah satu alasan terciptanya teknologi adalah untuk
menggantikan peran makhluk hidup khususnya manusia agar terciptanya
kehidupan yang dinamis. Dengan alasan tersebutlah objek didalam form pada
sebuah class patutnya memiliki tingkah laku yang nantinya akan menjadi
acuan bagi proses yang akan dijalankan. Sebagai contoh setelah anda
membuat tampilan pada form1 ketika program di eksekusi, kita akan
menemukan tombol tutup dapat berperilaku seperti halnya tombol di dunia
Modul Pemrograman C# Fundamental



nyata, akan tetapi apa yang terjadi setelah tombol tersebut ditekan? (whats
next?) pada kasus ini behave atau tingkah laku dari tombol tutup belumlah
sempurna, karena hanya berperilaku seperti halnya tombol nyata saja, akan
tetapi tidak ada output yang dihasilkan dari input tekan yang diberikan. Event
adalah kejadian dimana programmer merancang sebuah objek akan berprilaku
seperti apa, dan dilempar (handle) oleh objek yang mana , atau menggerakkan
objek yang mana (driven) dengan mengetikkan logika / kode progra terhadap
objek tersebut. Instruksi yang diberikan pada objek tersebut akan menerima
input ketika program dieksekusi kemudian outputya juga telah dirancang
untuk diteruskan/ di-handle pada objek yang lain, atau mungkin untuk
merubah fungsi objek yang lain (driven). Pada kasus form1 diatas, mari kita
coba memberikan event agar tombol tutup mendapatkan behave yang
sempurna. Mari ikuti langkah-langkah berikut ini:

















GUI Lanjutan


12.1 Pembuatan Program Sederhana dengan GUI
12
Modul Pemrograman C# Fundamental



Agar lebih memahami bagaimana penerapan GUI pada pemograman
bahasa C#, mai kita berlatih dengan contoh-contoh program sederhana berikut
ini:

1. Penerapan Textbox dan Button
Design form seperti berikut ini







Ketikkan kode program berikut ini




Running program



Modul Pemrograman C# Fundamental














2. Penerapan Combobox dan Radio Button
Design form seperti berikut ini











Running Program


Modul Pemrograman C# Fundamental

















3. Penerapan Checkbox dan Listbox

Buatlah design form seperti berikut ini:

























Modul Pemrograman C# Fundamental



Running Program













12.2 Penerapan OOP pada GUI









DAFTAR PUSTAKA

Anda mungkin juga menyukai