Anda di halaman 1dari 94

Modul Pemrograman C# Fundamental

Modul Pemrograman Visual C# Fundamental

Oleh:
TIM KONSORSIUM

Teknik komputer Akademi Manajemen


Informatika dan komputer bina sarana
informatika
2013

Modul Pemrograman C# Fundamental

1
1.1

Pengenalan Bahasa C#

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 bahasabahasa pemrograman lain.

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
framework pada sistem operasi berbasis windows dan mono framework pada

Modul Pemrograman C# Fundamental


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:

Bahasa Pemrograman
C#

VB.NET

F#

C++

Framework
MONO

.NET
Windows

1.2

Linux

MAC OS

Struktur Program C#

Keyword using digunakan untuk memberitahu compiler class apa yang


sedang digunakan pada aplikasi

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
Console.Write (pernyataan dlm bntuk String, argument)

b. Cara Menampilkan variable


Console.Write (Nilai A = {0} , dan Nilai B = {1}, A,B)

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


c. Perintah Membaca inputan

Console.Readline ();
Console.ReadKey();

d. Perintah Konversi
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. Pilih File -> New -> Project

c. Pilih Visual C#, Console Application , Beri nama aplikasi


(Menentukan Nama Class) , dan pilih tempat penyimpanan project

Modul Pemrograman C# Fundamental

Pilih Visual C#

Pilih Console Application


Nama Aplikasi
Menu

Start

Lembar Kerja

Jendela
Output

Jendela properti

Soulution
Explorer

Menu Bar = Berisi pilihan File, Edit, View, Reflector, Project, Build, Debug,
Tools, Architecture, Test, Analyze, Window, Help

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.

Modul Pemrograman C# Fundamental


1.4

Menjalankan Project
1.4.1 Perintah Untuk Menamplkan Hello World
Untuk menjalankannya tekan F5
Hasil Tampilan

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
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:


Tipe Integral
Byte
Sbyte
Short
ushort
Int
Uint
Long
ulong
Float
double
char
bool
decimal
String

8-bit unsigned integer


8-bit signed integer
Short integer
An Unsigned Short Integer
Integer
An Unsigned Integer
Long Integer
An Unsigned Long Integer
Tipe Floating Point
Single-precision Float Point
Double-precision Float Point
Tipe data lain
Character
Memberikan nilai True/False
Bilangan Pecahan
Berisi karakter alfanumerik
atau gabungan dari beberapa
karakter

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.

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.
Syntax : [tipe_data] [nama_variable]

Contoh 2.1:
Ketikkan coding berikut ini:

namespace ConsoleApplication7
{
class Program
{
static void Main(String[] args)
{
String nama;
Console.Write("\n Masukkan Nama Anda: ");
nama = Console.ReadLine();
Console.WriteLine("\n Selamat belajar C# {0}", nama);
Console.Read();
}
}
}

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:

Syntax : const[tipe_data] [nama_variable]

Contoh 2.2:
Ketikkan coding berikut ini:

Tampilan

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

Modul Pemrograman C# Fundamental


Contoh 2.3:
Ketikkan coding berikut ini:
static void 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();
}

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)

Simbol
<
<=
>
>=
==
!=

Keterangan
kurang dari
kurang dari sama dengan
lebih dari
lebih dari sama dengan
sama dengan
tidak sama dengan

Modul Pemrograman C# Fundamental


Contoh 2.4:
Ketikkan coding berikut ini:
static void 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
Console.WriteLine(" apakah a
Console.WriteLine(" apakah a
Console.WriteLine(" apakah a
Console.WriteLine(" apakah a
Console.WriteLine(" apakah a
Console.Read();
}

a lebih besar dari b? {0}",lb);


lebih kecil dari b? {0}", lk);
lebih besar sama dengan b? {0}", lbs);
lebih kecil sama dengan b? {0}", lks);
sama dengan b? {0}", smd);
tidak sama dengan b? {0}", tsm);

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).
Simbol
!
&&
||

Keterangan
NOT
short-circuit AND
short-circuit OR

Contoh 2.5:
static void 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);
Console.WriteLine(" hasil dari not a adalah {0}",bukan_a);
Console.WriteLine(" hasil dari not b adalah {0}", bukan_b);
Console.Read();
Console.Read();
}

Modul Pemrograman C# Fundamental

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
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:

IF (Kondisi)
{ Keputusan;}
Else
{Keputusan;}

Contoh 3.1:

Menampilkan Grade Pada Contoh 2.3


static void 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

: ");
: ");
: ");

Modul Pemrograman C# Fundamental


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
}
else if (nakhir >= 70)
{
Console.WriteLine(" Grade
}
else if(nakhir >= 60)
{
Console.WriteLine(" Grade
}
else if (nakhir >= 50)
{
Console.WriteLine(" Grade
}
else
{
Console.WriteLine(" Grade
}
Console.Read();
}

: A");

: B");

: C");

: D");

: E");

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:

Switch (Expresion)
{
Case kondisi1 :
Keputusan 1;
Break;
Default:
Keputusan n;
Break;
}

Contoh 3.2:
static void 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();
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();}

Modul Pemrograman C# Fundamental


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. Buatlah sebuah program perhitungan IP adress dan subnetting dengan tampilan
sebagai berikut:

Dengan ketentuan sebagai berikut:


-IP dimasukkan berdasarkan byte nya, dari byte pertama sampai byte ke empat, dan
CIDR dimasukkan sebagai penentu subnet dari ip tersebut
-Jika
IP
1~126

Kelas
A

net id
net.0.0.0

host

CIDR

Jml
subnet

Jml host

New sub

2pangkat(32- 255.255.255.(256
cidr)
- 2pangkat (16dikurang dua
(cidr-16)))
2pangkat(32- 255.255.(256 2pangkat
16~23
cidr)
2pangkat (8(cidr-8)
dikurang dua
(cidr-16))).0

2pangkat
host.host.host 24~30
(cidr-8)

Modul Pemrograman C# Fundamental

128~191

192~223

8~15

2pangkat
(cidr-8)

24~30

2pangkat
(cidr-16)

16~23

2pangkat
(cidr-16)

net.net.net.0 host.host.host 24~30

2pangkat
(cidr-24)

net.net.0.0

host.host

2pangkat(32255.(256 cidr)
2pangkat (8dikurang dua
(cidr-8))).0.0
2pangkat(16- 255.255.255.(256
(cidr-16))
- 2pangkat (16dikurang dua
(cidr-16)))
2pangkat(16- 255.255.(256 (cidr-16))
2pangkat (8dikurang dua
(cidr-16))).0
2pangkat(8- 255.255.255.(256
(cidr-24))
- 2pangkat (8dikurang dua
(cidr-24)))

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.

For (Niali awal; kondisi; Increment/Decrement)


{
Pernyataan yang akan diulang;
}

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

Modul Pemrograman C# Fundamental


Contoh 4.2
static void 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;
}

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

Modul Pemrograman C# Fundamental


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)

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

Modul Pemrograman C# Fundamental


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.

Foreach (tipe_data nama_var in nama_array)


{
Statement;
}

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

Modul Pemrograman C# Fundamental

5
5.1

Pengenalan OOP

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
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

Modul Pemrograman C# Fundamental


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.

CLASS

OBJEK

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

5.2.2 Cara Membuat Class Baru


1. Klik Menu View -> Pilih
Solution Explorer

Modul Pemrograman C# Fundamental


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.

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

Modul Pemrograman C# Fundamental


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

Sapi y = new Sapi();

Constructor

Objek
*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.

Modul Pemrograman C# Fundamental


5.3.2 Contoh penggunaan Objek
Buatlah sebuah project baru

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

Modul Pemrograman C# Fundamental


Running

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 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#.

Modul Pemrograman C# Fundamental


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
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

Modul Pemrograman C# Fundamental


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
private is inaccessible due to its protection level yang artinya,,
atribut-attribut tersebut tidak dapat diakses selama berlevel terprotect. Sehingga attribut-attribut tersebut hanya bisa diakses oleh
Robot.cs

Sekarang ubah kode program yang ada pada


Robot.cs

Modul Pemrograman C# Fundamental


Ubah juga kode program yang ada pada
Program.cs

Running 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

Modul Pemrograman C# Fundamental


informasi tentang jumlah tangan, jumlah kaki, jumlah rocket, dan jumlah senjata, tetapi
tidak dapat mengubah jumlah dari attribute-attribute tersebut.

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
latihanproperty

project

baru

dengan

nama

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

Modul Pemrograman C# Fundamental


Hasilnya akan terlihat seperti ini

Property

Lakukan Hal yang sama pada attribut-attribut yang lainnya


Buatlah sebuah objek pada Program.cs kemudian
ketikkan program dibawah ini

Modul Pemrograman C# Fundamental


Running Program

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:

Class

Attribute (+ =
public) (- = private)

Method (+ = public) (= private)

Robot
+ Nama : String
-JumlahKaki : int
-JumlahTangan : int
-JumlahSenjata : int
-JumlahRocket : int
+LihatJumlahkaki()
+LihatTangan()
+LihatSenjata()
+Terbang()

Modul Pemrograman C# Fundamental

6
6.1

Pewarisan/Inheritance

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

Trojan

Worm

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

+nama : String
+size : int
+kemampuan : String
+Menyerang () : void
+MenyembunyikanFile() :
void
+MemblokirCMD() : void

+nama : String
+size : int
+kemampuan : String
+Menyerang() : void
+MenginfeksiRegistry() :
void
+Menghapus NTLDR() :
void

Berikut ini adalah kode program dari bagan diatas:

Modul Pemrograman C# Fundamental


Virus.cs

Trojan.cs

Worm.cs

Modul Pemrograman C# Fundamental


Program.cs

Running Program

Modul Pemrograman C# Fundamental


6.1.2 Latihan 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:

Dari bagan/ 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:

Modul Pemrograman C# Fundamental


Malware.cs

Virus.cs

Trojan.cs

Worm.cs

Menandakan class virus turunan dari class malware

Modul Pemrograman C# Fundamental


Program.cs

Running Program

Modul Pemrograman C# Fundamental


6.2

Virtual 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
Menandakan Menyerang dapat di override

Modul Pemrograman C# Fundamental

Virus.cs

Running Program

Menimpa void menyerang() yg ada pada parent class

Modul Pemrograman C# Fundamental


Soal-Soal
1. Buatlah kelas- kelas dari class diagram berikut ini

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]
4. Buatlah object dari masing-masing class pada program.cs
5. Akses masing-masing attribut dan method.
6. Jalankan program

Modul Pemrograman C# Fundamental


2. Buatlah interaksi antar kelas dengan diagram class dibawah ini:

Polymorphism

7
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
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

Modul Pemrograman C# Fundamental

Ikuti kode program berikut ini

Siswa.cs

Program.cs

Modul Pemrograman C# Fundamental


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.1.1 Deklarasi Array Dimensi Satu


Tipedata_namavariable = new_array[ukuran]

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

Modul Pemrograman C# Fundamental


Arraydimensi1.cs

Modul Pemrograman C# Fundamental


Program.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

8.4

Running program

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

Elemen
yang
diambil
dari sini

Buatlah project baru dengan nama latihanqueue


Ketikkan kode program berikut ini
Program.cs

Elemen
baru akan
ditambah
dari sini

Modul Pemrograman C# Fundamental

Running program

8.4.3 Stack
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:
Elemen akan
ditambah
dan diambil
dari sini

Stack

Modul Pemrograman C# Fundamental

Running program

Modul Pemrograman C# Fundamental

Sorting & Searching

9
9.1

Sorting
Sorting adalah proses mengurutkan (menata) sejumlah data sehingga
tertata menurut aturan tertentu, misalnya menaik, data[0]data[1]
data[2]....data[n]. Manfaat dari sorting adalah mempercepat proses pencarian
data. .NET Framework juga menyediakan dalam kelas koleksi untuk
mengurutkan data.
Ada 3 metode yang dapat digunakan pada shorting array:
1. Exchange
a. Bubble Sort
b. Shaker Sort
2. Selection
3. Insertion
4. Radix sort

9.1.1 Bubble Sort


Algoritma bubble sort melakukan pengurutan data dengan cara
membandingkan dua data yang bersebelahan letaknya dan menukar kedua data
tersebut bila perlu. Pembandingan selalu dimulai datri data berindeks terbesar
dengan data di sebelah kirinya.

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

9.2

Running Program

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:

Modul Pemrograman C# Fundamental


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

Modul Pemrograman C# Fundamental

10 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:

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:

Tambahkan Class baru dengan nama Balok.cs, kemudian ketikkan


kode program berikut:

Modul Pemrograman C# Fundamental

Tambahkan Class baru dengan nama Bola.cs, kemudian ketikkan


kode program berikut:

Program.cs

Running Program

Modul Pemrograman C# Fundamental


10.2 Interface
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
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

public abstract class Mammal


{
public abstract void makeanoise();
}
}

Modul Pemrograman C# Fundamental

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

Ketiklah kode program berikut ini pada Ihead

Ketiklah kode program berikut ini pada Inameable

Modul Pemrograman C# Fundamental

Program.cs

Running program

Modul Pemrograman C# Fundamental

Graphical User Interface (GUI)

11

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

Modul Pemrograman C# Fundamental

Tampilan Windows Form Application

Anda dapat mensetting tampilan IDE sesuai dengan selera anda

Modul Pemrograman C# Fundamental

Toolbox
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

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

Form dan kodenya


Class
Module
Class Diagram
File XML
File Proyek
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:

Rubahlah nama button satu menjadi TUTUP dengan merubah isi


dari text pada properties, seperti berikut ini:
1. Klik button1
2. Ubahlah Text pada properties menjadi TUTUP

Modul Pemrograman C# Fundamental

3. Dengan merubah nama textbox pada properties, bukan berarti


button1 dapat difungsikan sebagai tombol tutup, untuk
memberikan logika untuk menutup form, double klik pada
button1.
4. Perhatikan, akan terbentuk class baru yang merupakan class
turunan dari class form. Dan secara langsung, function untuk
button1 terbentuk.

Akan terbentuk 1
class baru
turunan dari
form

Form1
turunan Form

Function
button1,
bersifat
private hanya
bisa diakses
oleh form
tersebut

Modul Pemrograman C# Fundamental

5. Ketikkan coding berikut :


private void button1_Click(object sender, EventArgs e)
{
this.Close();
}

6. Untuk menjalankan program tekan F5.


7. Kembangkan form dengan desain berikut ini

Textbox
Label

Combobox
Radio Button

Checkbox

Listbox

Modul Pemrograman C# Fundamental

8. Properties
Object
Label 1
Label 2
Label 3
Label 4
Textbox1
Combobox1

Radio Button1
Radio Button 2
Checkbox 1
Checkbox 2
Checkbox 3
Checkbox 4
Checkbox 5
Checkbox 6
Listbox 1
Button 1
Button 2

Text
Username
Pilih Kursus
Waktu Kursus
~Pilih 2 Hari dalam Seminggu~
/ text kosong
Text Kosong

Items

Visual
C#,
Visual
asic,
Visual Foxpro,
Visual C++

Pagi
Siang
Senin
Selasa
Rabu
Kamis
Jumat
Sabtu
/Item kosong
TUTUP
Submit

9. Sehingga Tampilan akan


seperti berikut:

Modul Pemrograman C# Fundamental

10. Tombol submit digunakan untuk memasukkan semua informasi


yang ada di atas tombol submit ke Listbox1. Maka ketikkanlah
coding berikut ini, dengan cara men-doubleklik tombol submit.

private void button2_Click(object sender, EventArgs e)


{
// membersihkan listbox
listBox1.Items.Clear();
// memindahkan isi textbox ke dalam list
listBox1.Items.Add("Nama : "+textBox1.Text);
// memindahkan isi combobox ke dalam list
listBox1.Items.Add("Pilihan Kursus : "+comboBox1.Text);
//menyeleksi nilai dari radio button
if (radioButton1.Checked)
{
listBox1.Items.Add("Waktu Kursus :" + radioButton1.Text);
}
else if (radioButton2.Checked)
{
listBox1.Items.Add("Waktu Kursus : "+radioButton2.Text);
}
// menyeleksi nilai checkbox
if (checkBox1.Checked && checkBox2.Checked)
{
listBox1.Items.Add(" Hari Kursus adalah Senin & Selasa");
}
else if (checkBox1.Checked &&
{
listBox1.Items.Add(" Hari
}
else if (checkBox1.Checked &&
{
listBox1.Items.Add(" Hari
}
else if (checkBox1.Checked &&
{
listBox1.Items.Add(" Hari
}
else if (checkBox1.Checked &&
{
listBox1.Items.Add(" Hari
}
else if (checkBox2.Checked &&
{
listBox1.Items.Add(" Hari
}
else if (checkBox2.Checked &&
{
listBox1.Items.Add(" Hari
}

checkBox3.Checked)
Kursus adalah Senin & Rabu");
checkBox4.Checked)
Kursus adalah Senin & Kamis");
checkBox5.Checked)
Kursus adalah Senin & Jum'at");
checkBox6.Checked)
Kursus adalah Senin & Sabtu");
checkBox3.Checked)
Kursus adalah Selasa & Rabu");
checkBox4.Checked)
Kursus adalah Selasa & Kamis");

Modul Pemrograman C# Fundamental


else if (checkBox2.Checked &&
{
listBox1.Items.Add(" Hari
}
else if (checkBox2.Checked &&
{
listBox1.Items.Add(" Hari
}
else if (checkBox3.Checked &&
{
listBox1.Items.Add(" Hari
}
else if (checkBox3.Checked &&
{
listBox1.Items.Add(" Hari
}
else if (checkBox3.Checked &&
{
listBox1.Items.Add(" Hari
}
else if (checkBox4.Checked &&
{
listBox1.Items.Add(" Hari
}
else if (checkBox4.Checked &&
{
listBox1.Items.Add(" Hari
}
else if (checkBox5.Checked &&
{
listBox1.Items.Add(" Hari
}
}

checkBox5.Checked)
Kursus adalah Selasa & Jum'at");
checkBox6.Checked)
Kursus adalah Selasa & Sabtu");
checkBox4.Checked)
Kursus adalah Rabu & Kamis");
checkBox5.Checked)
Kursus adalah Rabu & Jum'at");
checkBox6.Checked)
Kursus adalah Rabu & Sabtu");
checkBox5.Checked)
Kursus adalah Kamis & Jum'at");
checkBox6.Checked)
Kursus adalah Kamis & Sabtu");
checkBox6.Checked)
Kursus adalah Jum'at & Sabtu");

Modul Pemrograman C# Fundamental

Latihan
1. Buatlah rancangan Form seperti berikut ini

Ketentuan soal:
Ketika topologi dipilih maka muncul keuntungan dan kerugiannya
seperti berikut.
Topologi

Keuntungan

Bus

1. Paling sederhana
2. Instalasi mudah
3. Murah

Ring

1. Identifikasi kerusakan
mudah
2. Instalasi Mudah
3. Murah

Star

1. Murah
2. Salah satu jaringan
bermasalah
tidak
berpengaruh pada yang
lain
3. Mudah instalasi
4. Mudah
mendeteksi
kerusakan
1. Pengembangan
fleksibel
2. Kerusakan mudah
dideteksi

Tree

Kerugian
1. Kabel backbone putus
seluruh
jaringan
trouble
2. Sering terjadi collision
1. Sinyal lemah jika jarak
jauh
2. Kerusakan satu link
mempengaruhi seluruh
jaringan
1. Jika
hub/
switch
bermasalah,
akan
mengganggu jaringan
secara keseluruhan

1. Biaya instalasi tinggi

Modul Pemrograman C# Fundamental


3.

Mesh

1.

2.

3.
4.
5.

Kerusakan
pada
client
tidak
mempengaruhi
jaringan
Dapat berkomunikasi
langsung
dengan
perangkat tujuan.
Jika salah satu jaringan
bermasalah
tidak
mempengaruhi
yang
lain
Privacy lebih terjaga
Security lebih aman
Mudah
identifikasi
masalah

2. Buatlah rancangan Form seperti berikut ini

Ketentuan Soal
a. Isi Username kemudian klik Start
b. Textbox diatas label harga, terisi stop
watch
c. Klik stop, maka waktu berhenti
d. Jika waktu kurang dari 15 detik maka
harga=2000, jika lebih dari 15 detik maka
harga=3000, jika lebih dari 30 detik maka
harga=5000

1.
2.
3.

Konfigurasi sulit
Biaya besar
Setiap
perangkat
membutuhkan nic
yang banyak.

Anda mungkin juga menyukai