1 Pengenalan Bahasa C#
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
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 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
.NET MONO
a. Perintah Keluaran
Console.Readline ();
Console.ReadKey();
d. Perintah Konversi
b. P
i
l
i
h
F
i
l
e
-
>
New -> Project
Modul Pemrograman C# Fundamental
Menu
Jendela Output = Berisi pesan debug dan eror dari list program yang
kita ketikkan.
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!
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
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
Modul Pemrograman C# Fundamental
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();
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:
Simbol Keterangan
+ operator penjumlahan
- operator pengurangan
* operator perkalian
/ operator pembagian
% operator sisa bagi
Contoh 2.3:
Ketikkan coding berikut ini:
Simbol Keterangan
< kurang dari
<= kurang dari sama dengan
> lebih dari
>= lebih dari sama dengan
== sama dengan
!= tidak sama dengan
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;
var_a = Convert.ToInt16(a);
var_b = Convert.ToInt16(b);
Simbol Keterangan
! NOT
&& short-circuit AND
|| short-circuit OR
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;
convert_a = Convert.ToInt16(a);
convert_b = Convert.ToInt16(b);
var_a = Convert.ToBoolean(convert_a);
var_b = Convert.ToBoolean(convert_b);
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 :
Modul Pemrograman C# Fundamental
Operasi
3 Penyeleksian Kondisi (IF)
IF (Kondisi)
{ Keputusan;}
Else
{Keputusan;}
Modul Pemrograman C# Fundamental
Contoh 3.1:
Menampilkan Grade Pada Contoh 2.3
staticvoid Main(String[] args)
{
nuas = Console.ReadLine();
n_absen = Convert.ToDouble(nabsen);
n_tugas = Convert.ToDouble(ntugas);
n_uts = Convert.ToDouble(nuts);
n_uas = Convert.ToDouble(nuas);
Switch (Expresion)
{
Case kondisi1 :
Keputusan 1;
Break;
Default:
Keputusan n;
Break;
}
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();
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
Contoh 4.1
Contoh 4.2
Contoh 4.3
staticvoid Main(String[] args)
{
int i = 1;
while (i <= 12)
{
Console.WriteLine("\n Belajar C#"+i);
i++;
} Console.Read();}
Do
{
}
While(Ekspresi Boolean)
Contoh 4.4
staticvoid Main(String[] args)
{
int i = 1;
do
{
Console.WriteLine("\n Nilai i= " + i);
i++;
}
while (i <= 5);
Console.Read();
}
Modul Pemrograman C# Fundamental
Contoh 4.5
staticvoid Main(String[] args)
{
String[] Stringarray = { "one", "two", "three" };
foreach (String element inStringarray)
{
Console.WriteLine(element + " ");
}
Console.Read();
}
4.6 Latihan
Modul Pemrograman C# Fundamental
5 Pengenalan OOP
CLASS
OBJEK
Modul Pemrograman C# Fundamental
Main Method
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.1Instansiasi Objek
Instansiasi objek adalah proses pembuatan objek software
didalam pemrograman berorientasi objek. Berikut ini adalah cara
menginstantiasi objek
Class Constructor
Sapi y = new Sapi();
Objek
R
u
n
n
i
n
g
Modul Pemrograman C# Fundamental
5.3.3Method
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#.
Running
Modul Pemrograman C# Fundamental
5.3.4Encapsulation
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.
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
Modul Pemrograman C# Fundamental
Running Program
Modul Pemrograman C# Fundamental
“
R
o
b
o
t
.
c
s
”
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.
Membuat Property
o Blok attribute
o Klik Kanan pilih refractor
o Pilih Encapsulate Field
o Pilih all, ok
Modul Pemrograman C# Fundamental
Property
Running Program
Class
Robot
+ Nama : String
-JumlahKaki : int
Attribute (+ = public) -JumlahTangan : int
(- = private) -JumlahSenjata : int
-JumlahRocket : int
+LihatJumlahkaki()
Attribute (+ = public) (- +LihatTangan()
= private) +LihatSenjata()
+Terbang()
Modul Pemrograman C# Fundamental
6 Pewarisan/Inheritance
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:
6.1.1Studi Kasus
Buatlah sebuah project yang berisi tiga class berikut ini:
Virus Worm
+nama : String
+ nama: String
+size : int
+size : int +kemampuan : String
+kemampuan : String +Menyerang() : void
+banyak : int +MenginfeksiRegistry() :
+Menyerang() : void void
+MemperbanyakDiri() : +Menghapus NTLDR() :
void void
Trojan
+nama : String
+size : int
+kemampuan : String
+Menyerang () : void
+MenyembunyikanFile() :
void
+MemblokirCMD() : void
Modul Pemrograman C# Fundamental
Virus.cs
Trojan.cs
W
o
r
m
.
c
s
Modul Pemrograman C# Fundamental
Program.cs
R
u
n
n
i
n
g
P
r
o
g
6.1.2Latihan Inheritance
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
/
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
T
rojan.cs
Worm.cs
Modul Pemrograman C# Fundamental
Program.cs
Running Program
Modul Pemrograman C# Fundamental
Malware.cs
M
enandakan
Menyerang
dapat di
override
Modul Pemrograman C# Fundamental
Latihan
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 Robot [nama] menyelam sedalam 2
Penyelam meter
Atursensor Robot Mengatur sensitifitas [jenissensor]
Atursensor Robot Mengatur sensitifitas tekanan air pada
Penyelam [jenissensor]
Modul Pemrograman C# Fundamental
7 Polymorphism
Program.cs
Modul Pemrograman C# Fundamental
Running Program
Modul Pemrograman C# Fundamental
Tipedata_namavariable = new_array[ukuran]
Arraydimensi1.cs
P
r
o
g
r
a
m
.
c
Running Program
Modul Pemrograman C# Fundamental
Program.cs
Running Program
Modul Pemrograman C# Fundamental
8.3.1Contoh ArrayList
Modul Pemrograman C# Fundamental
Program.cs
Running program
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.
Modul Pemrograman C# Fundamental
8.4.1List
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
8.4.2Queue
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
Elemen
baru akan
yang
ditambah
diambil
dari sini
dari sini
Modul Pemrograman C# Fundamental
Running program
Modul Pemrograman C# Fundamental
8.4.3Stack
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:
Running program
Modul Pemrograman C# Fundamental
1. Exchange
a. Bubble Sort
b. Shaker Sort
2. Selection
3. Insertion
9.1.1Bubble 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.
Running Program
Modul Pemrograman C# Fundamental
9.1.2Shaker 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.3Selection Sort
Modul Pemrograman C# Fundamental
9.1.4Insertion Sort
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.
Modul Pemrograman C# Fundamental
9.2.1Sequential 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.
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
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.2Binary Search
Modul Pemrograman C# Fundamental
T
a
m
b
a
h
k
an Class baru dengan nama Balok.cs, kemudian ketikkan kode
program berikut:
Program.cs
Modul Pemrograman C# Fundamental
Running Program
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)
Modul Pemrograman C# Fundamental
Pilihlah pilihan interface, kemudian beri nama Inameable. Lalu buat juga
Ihead.
publicabstractclassMammal
{
publicabstractvoid makeanoise();
}
}
Program.cs
Running program
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
Solution Explorer
Solution Explorer adalah bagian yang berfungsi untuk melihat
item-item penyusun sebuah proyek atau solution. Sebuah
proyek dapat disusun oleh berbagai macam item yaitu:
Properties
Properties berguna untuk melihat nilai properti dari sebuah
objek/class, misalnya properti Name,Text, dsbg.
Modul Pemrograman C# Fundamental
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 nyata, akan tetapi apa yang
terjadi setelah tombol tersebut ditekan? (what’s next?) pada kasus ini
Modul Pemrograman C# Fundamental
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:
Modul Pemrograman C# Fundamental
12 GUI Lanjutan
Running program
Running Program
Running Program