5/23/2018 Modul C -Libre
1/92
M odul 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
beror ientasi 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 Small talk.
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
5/23/2018 Modul C -Libre
2/92
M odul 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 diterimaoleh 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 t idak terkomunikasi langsung dengan Sistem Operasi, tetapi
melalui CLR terlebih dahulu.
5/23/2018 Modul C -Libre
3/92
M odul Pemrograman C# Fundamental
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.
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 menjadinative 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 dikompi lasi) 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 r ibuan class yang menyediakan
akses ke windows API dan fungsi pada umumnya seperti Manipulasi
String, Data struktur umum, IO, Streams, Threads, Security, Network
5/23/2018 Modul C -Libre
4/92
M odul Pemrograman C# Fundamental
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.
e. Common Language Specification
Anda mungkin sering menggunakan istilah . NET CompliantLanguage 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 t ipe data integer.
5/23/2018 Modul C -Libre
5/92
M odul Pemrograman C# Fundamental
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 menemukanbeberapa 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 padasuatu 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 :
Framework
Bahasa Pemrograman
C# VB.NET F# C++
Windows Linux MAC OS
.NET MONO
5/23/2018 Modul C -Libre
6/92
M odul Pemrograman C# Fundamental
1.2 Struktur Program C#
Keyword using digunakan untuk memberitahu compiler class apa
yang sedang digunakan pada aplikasi
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 sebagaiparameter dari command C#.
Args merupakan merupakan array argumen yang dapat di tambahkan
pada saat menggunakan command C# untuk menjalankan program
C#
5/23/2018 Modul C -Libre
7/92
M odul Pemrograman C# Fundamental
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
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 tanpamemerlukan 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
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)
5/23/2018 Modul C -Libre
8/92
M odul Pemrograman C# Fundamental
a. Membuka Jendela Microsoft Visual Studio 2010
b. P
i
l
i
h
F
i
l
e
-
>
New -> Project
5/23/2018 Modul C -Libre
9/92
M odul Pemrograman C# Fundamental
c. Pilih Visual C#, Console Appl ication , Beri nama aplikasi
(Menentukan Nama Class) , dan pilih tempat penyimpanan
project
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
Lembar KerjaJendela
SoulutionJendela properti
5/23/2018 Modul C -Libre
10/92
M odul Pemrograman C# Fundamental
Lembar Kerja = Tempat dimana kita mengisikan list dari program
yang akan ki ta 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
5/23/2018 Modul C -Libre
11/92
M odul Pemrograman C# Fundamental
1.5 Latihan I1. Apakah perbedaan antara Console.Write dengan Console.WriteLine?
2. Buatlah sebuah tampilan program sepert i berikut menggunakan
Console.WriteLine!
3. Apakah fungsi Console.Read(); pada program diatas?
4. Bagaimana hasil tampilan jika Console.Read(); tidak digunakan?
5/23/2018 Modul C -Libre
12/92
M odul Pemrograman C# Fundamental
Tipe data,Variable & Operator
2.1 Pengenalan Tipe DataTipe 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
Tipe Integral
Byte 8-bit unsigned integerbyte 8-bit signed integerhort Short integer
ushort An Unsigned Short IntegerInt IntegerUint An Unsigned IntegerLong Long Integer
ulong An Unsigned Long IntegerTipe Floating Point
Float Single-precision Float Pointdouble Double-precision Float Point
Tipe data lain
char Characterbool Memberikan nilai True/ Falsedecimal Bilangan bulatString Berisi karakter alfanumerik
atau gabungan dari beberapa
karakter
2
5/23/2018 Modul C -Libre
13/92
M odul Pemrograman C# Fundamental
menggunakan tanda petikdua. Sedangkan untuk String, harus
mendefinisikan suatu nilai dengan menggunakan tanda petik dua.
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 olehkarakter 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. Penul isan variable tidak boleh menggunakan spasi
f. Syntax Penul isan 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]
5/23/2018 Modul C -Libre
14/92
M odul Pemrograman C# Fundamental
Contoh 2.1:Ketikkan coding berikut ini:
namespaceConsoleApplication7{classProgram
{staticvoidMain(String[] args)
{Stringnama;Console.Write("\ n Masukkan Nama Anda: ");
nama = Console.ReadLine();
Console.WriteLine("\ n Selamat belajar C# {0}" , nama);Console.Read();
}}
}
2.2.2 KonstantaVariable 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]
5/23/2018 Modul C -Libre
15/92
M odul Pemrograman C# Fundamental
Contoh 2.2:Ketikkan coding berikut ini:
2.3 Jenis-Jenis OperatorOperator 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 AritmatikaOperator aritmatika digunakan untuk perhitungan matematis
seperti dalam penambahan, pengurangan, perkalian, dan pembagian
5/23/2018 Modul C -Libre
16/92
M odul Pemrograman C# Fundamental
Simbol Keterangan+ operator penjumlahan
- operator pengurangan
* operator perkalian
/ operator pembagian% operator sisa bagi
Contoh 2.3:Ketikkan coding berikut ini :
staticvoidMain(String[] args){
Stringnim, nama, nabsen, ntugas, nuts, nuas;doublenakhir, 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();
}
5/23/2018 Modul C -Libre
17/92
M odul Pemrograman C# Fundamental
2.3.2 Operator RelasiOperator 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 :
staticvoidMain(String[] args){
Stringa, b;boollb, 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 besarlk = var_a < var_b;/ / lebih kecilbs = var_a >= var_b;/ / lebih besar sama denganlks = var_a = lebih dari sama dengan
== sama dengan
!= tidak sama dengan
5/23/2018 Modul C -Libre
18/92
M odul Pemrograman C# Fundamental
2.3.3 Operator LogikaOperator 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
5/23/2018 Modul C -Libre
19/92
M odul Pemrograman C# Fundamental
Contoh 2.5:
staticvoidMain(String[] args){
Stringa, b;int convert_a, convert_b;booldan, atau, bukan_a, bukan_b, var_a, var_b;
Console.WriteLine("\ n Input nilai a dan b dengan 1 atau 0");Console.Write(" Masukkan ni lai a : ");
a = Console.ReadLine();Console.Write(" Masukkan ni lai 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();
}
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 memilik i tampilan
seperti di bawah ini :
5/23/2018 Modul C -Libre
20/92
M odul Pemrograman C# Fundamental
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?
5/23/2018 Modul C -Libre
21/92
M odul Pemrograman C# Fundamental
Operasi
Penyeleksian Kondisi ( IF)
3.1 Pernyataan BerkondisiPernyataan 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 terpentingdalam 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:
3
IF (Kondisi)
{ Keputusan;}
Else
{Keputusan;}
5/23/2018 Modul C -Libre
22/92
M odul Pemrograman C# Fundamental
Contoh 3.1: Menampi lkan Grade Pada Contoh 2.3
staticvoidMain(String[] args){
Stringnim, nama, nabsen, ntugas, nuts, nuas;doublenakhir, 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();}
5/23/2018 Modul C -Libre
23/92
M odul Pemrograman C# Fundamental
3.1.2 Pernyataan Switch CasePernyataan 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:
staticvoidMain(String[] args){
Console.WriteLine("Password yang anda masukkan salah, coba lagi");Console.Write(" Masukkan Password : ");Stringpass = 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();}
Switch (Expresion)
{
Case kondisi1 :
Keputusan 1;
Break;
Default:
Keputusan n;
Break;
}
5/23/2018 Modul C -Libre
24/92
M odul Pemrograman C# Fundamental
Tampilan :
5/23/2018 Modul C -Libre
25/92
M odul 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 pil ihan diinput dengan opsi yang akan dipi lih dan tampilan serta
jumlah akan muncul secara otomatis.
5/23/2018 Modul C -Libre
26/92
M odul 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, whi le, dan go to.
4.1 Struktur ForDengan menggunakan for, kita menginstruksikan C# untuk
melakukan iterasi data yang dimulai dengan nilai counter yang kita
definisikan.
Contoh 4.1
staticvoidMain(String[] args){
for(int angka = 1; angka
5/23/2018 Modul C -Libre
27/92
M odul Pemrograman C# Fundamental
Contoh 4.2
staticvoidMain(String[] args){
for(int angka = 10; angka >= 1; angka--){
Console.WriteLine("\ n Angka Ke -"+ angka.ToStr ing() );
}Console.Read();
}
4.2 Struktur WhilePerulangan 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 memil iki str uktur
sebagai berkut :
While (Ekspresi boolean)
{
Statement perulangan;
}
5/23/2018 Modul C -Libre
28/92
M odul Pemrograman C# Fundamental
Contoh 4.3
staticvoidMain(String[] args){int i = 1;
while(i
5/23/2018 Modul C -Libre
29/92
M odul Pemrograman C# Fundamental
4.4 Struktur Foreach
Foreach memiliki konsep yang sama dengan for. Biasanya foreach
digunakan unr uk 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 str uktur dari foreach.
Contoh 4.5
staticvoidMain(String[] args){
String[] Str ingarray = { "one", "two", "three"};foreach(Stringelement inStringarray)
{Console.WriteLine(element + " ");
}Console.Read();
}
4.5 Deret dalam perulangan
4.5.1 Fibonacci
4.6 Latihan
Foreach (tipe_data nama_var in nama_array)
{
Statement;
}
5/23/2018 Modul C -Libre
30/92
M odul Pemrograman C# Fundamental
Pengenalan OOP
5.1 Pengantar OOP
Secara umum, sebuah program komputer terdiri atas kode
dan data yang dapat berupa variable maupun konstanta. Kode dan datatersebut 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 modulbar dalam pr ogram, 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 enti tas yang memil iki 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 OOPpopuler 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.
5
5/23/2018 Modul C -Libre
31/92
M odul Pemrograman C# Fundamental
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 r eusable, sehingga dapat digunakan
untuk program-program lain.
Struktur program lebih jelas, trackable (kesalahan mudah dilacak), danmudah untuk dikmbangkan.
5.2 Pengertian ClassClass adalah rancangan/ sketsa/ bluepr int 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 yangdapat 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
5/23/2018 Modul C -Libre
32/92
M odul 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 dicompile dan di jlnkan, 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
5/23/2018 Modul C -Libre
33/92
M odul 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
5/23/2018 Modul C -Libre
34/92
M odul 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.
5/23/2018 Modul C -Libre
35/92
M odul Pemrograman C# Fundamental
5.3 ObjectSeperti yang telah dibahas pada sub bab class, class merupakan
sketsa/ blue pr int 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
*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.
Sapi y =new api();
5/23/2018 Modul C -Libre
36/92
M odul 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.
5/23/2018 Modul C -Libre
37/92
M odul Pemrograman C# Fundamental
Instantiasi object pada program.cs
R
u
n
n
i
n
g
5/23/2018 Modul C -Libre
38/92
M odul Pemrograman C# Fundamental
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#.
Tambahkan kode program berikut ini pada class
R
o
b
o
t
5/23/2018 Modul C -Libre
39/92
M odul Pemrograman C# Fundamental
Mengakses Method pada Program.cs
Running
5/23/2018 Modul C -Libre
40/92
M odul Pemrograman C# Fundamental
5.3.4 Encapsulation
Enkapsulasi adalah sebuah metode untuk menyembunyikan
elemen tertentu dari sebuah class. Fitur ini penting karena att r ibut 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 iniumur 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 (att r ibut & method)
didalam sebuah class. Access Identifier yang sering digunakan dalam
pemrograman bahasa C# ada 3 yaitu:
a. Public
Menyatakan bahwa anggota class tersebut
(attr ibut / method/ property) boleh diakses oleh siapa saja (class yang
lain).b. Private
Menyatakan bahwa anggota class tersebut
(attr ibut/ method/ property) hanya boleh diakses oleh dirinya sendir i
(class itu sendiri) .
c. Protected
5/23/2018 Modul C -Libre
41/92
M odul Pemrograman C# Fundamental
Menyatakan bahwa anggota class tersebut
(attr ibut/ method/ property) hanya boleh diakses oleh dirinya sendir i
dan turunan-turunan classnya (class yang menurunkan sifat-sifat dari
class tersebut).
Agar lebih mudahnya mari kita praktekkan
Ubah data pada clas Robot.cs
Running Program
5/23/2018 Modul C -Libre
42/92
M odul Pemrograman C# Fundamental
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 att r ibut-att r ibut tersebut
hanya bisa diakses oleh Robot.cs
Sekarang ubah kode program yang ada
p
a
d
a
R
o
b
o
t.
c
s
5/23/2018 Modul C -Libre
43/92
M odul Pemrograman C# Fundamental
Ubah juga kode program yang ada pada
Program.cs
Dari kasus diatas attribut-attribut yang bertipe private ter-enkapsulasi
(terbungkus) dalam method yang bertipe public(method getter) sehingga tetapdapat 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 t idak dapat mengubah jumlah dari att r ibute-att r ibute
tersebut.
5/23/2018 Modul C -Libre
44/92
M odul Pemrograman C# Fundamental
5.3.4.2 Property
Dalam bahasa pemrograman C#, terdapat cara lain untuk
membungkus field/ att r ibut , yaitu dengan membuat property. Property
memil iki 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
5/23/2018 Modul C -Libre
45/92
M odul Pemrograman C# Fundamental
Berikan kode program berikut ini pada
Malware.cs
Membuat Property
o Blok attr ibute
o Klik Kanan pilih refractor
o Pilih Encapsulate Field
o Pilih all, ok
5/23/2018 Modul C -Libre
46/92
M odul 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
5/23/2018 Modul C -Libre
47/92
M odul Pemrograman C# Fundamental
Running Program
5.3.4.3 Hubungan antara Class, Attribute, MethodHubungan antara Class, Attr ibute , dan method biasa digambarkan
dalam bentuk Class Diagram sepert i contoh dibawah ini:
Robot
+ Nama : String-JumlahKaki : int
-JumlahTangan : int-JumlahSenjata : int-JumlahRocket : int
+LihatJumlahkaki()+LihatTangan()+LihatSenjata()+Terbang()
Attribute (+ = public)(- = private)
Attribute (+ = public) (-
= private)
Class
5/23/2018 Modul C -Libre
48/92
M odul Pemrograman C# Fundamental
Pewarisan/ Inheritance
6.1 Pengertian Inheritance
Inheri tance/ 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/ inheri tance
terdapat beberapa isti lah yang perlu diketahui yaitu:a. Sub Class, digunakan untuk menunjukkan class anak atau turunan
secara hir arkis dari super class
b. Super Class, digunakan untuk menunjukkan class induk secara
hirarkis dari sub class (class anak)
6.1.1 Studi KasusBuatlah sebuah project yang berisi t iga class berikut ini:
Viru+ nama: Str ing+size : int+kemampuan : String+banyak : int
+Menyerang() : void+MemperbanyakDiri() :void
Worm+nama : Str ing+size : int+kemampuan : String
+Menyerang() : void+MenginfeksiRegistry() void+Menghapus NTLDR() void
Trojan
+nama : Str ing+size : int+kemampuan : String
+Menyerang () : void+MenyembunyikanFile() :void+MemblokirCMD() : void
6
5/23/2018 Modul C -Libre
49/92
M odul Pemrograman C# Fundamental
Berikut ini adalah kode program dari bagan diatas:
Virus.cs
Trojan.cs
W
o
rm
.
c
s
5/23/2018 Modul C -Libre
50/92
M odul Pemrograman C# Fundamental
Program.cs
R
un
n
i
n
g
Pr
o
g
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
5/23/2018 Modul C -Libre
51/92
M odul Pemrograman C# Fundamental
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 str uktur 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/ tr ojan/ 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
5/23/2018 Modul C -Libre
52/92
M odul Pemrograman C# Fundamental
T
rojan.cs
Worm.cs
5/23/2018 Modul C -Libre
53/92
M odul Pemrograman C# Fundamental
Program.cs
Running Program
5/23/2018 Modul C -Libre
54/92
M odul 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.cssebagai 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 sesuatuyang 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
Overridepada 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 yangnantinya akan di override/ ditimpa menggunakan keyword Virtual.
Berikut adalah contoh penerapan vi rtual dan overr ide method.
Malware.cs
M
enandakan
Menyerang
dapat di
override
5/23/2018 Modul C -Libre
55/92
M odul Pemrograman C# Fundamental
Virus.cs Menimpa void menyerang() yg ada pada parentc
l
a
ss
R
u
n
n
i
n
g Program
5/23/2018 Modul C -Libre
56/92
M odul 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 -fi tur oop khususnya inheritance (overr iding)
Method Class IsiBeraksi Robot Robot [nama] beraksiBeraksi Robot Berkaki Robot [nama] berjalan 10 langkahBeraksi Robot Beroda Robot [nama] meluncur 1 meterBeraksi Robot Terbang Robot [nama] melayang di ketinggian
2 meterBeraksi Robot
PenyelamRobot [nama] menyelam sedalam 2meter
Atur sensor Robot Mengatur sensitifi tas [ jenissensor]Atursensor Robot
PenyelamMengatur sensitifitas tekanan air pada[jenissensor]
5/23/2018 Modul C -Libre
57/92
M odul Pemrograman C# Fundamental
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
3. Signature method harus sama baik yang ada pada superclass
ataupun yang ada ada subclass
4. Method access attribute pada subclass tidak boleh lebihterbatas 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. Cir i khas dari method overloading adalah berada dalam class yang
sama. Sebagai contoh mari simak kode program berikut ini.
7
5/23/2018 Modul C -Libre
58/92
M odul Pemrograman C# Fundamental
Buatlah sebuah project baru dengan nama latihan overload
Buatlah sebuah class baru dengan nama siswa
Ikut i kode program berikut ini
Siswa.cs
Program.cs
5/23/2018 Modul C -Libre
59/92
M odul Pemrograman C# Fundamental
Running Program
5/23/2018 Modul C -Libre
60/92
M odul 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
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
8
Tipedata_namavariable = new_array[ukuran]
5/23/2018 Modul C -Libre
61/92
M odul Pemrograman C# Fundamental
Arraydimensi1.cs
P
r
o
gr
a
m
.
c
s
Running Program
5/23/2018 Modul C -Libre
62/92
M odul 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 arraymul tidimensi.cs
Sertakan kode program berikut ini
Arraymultidimensi.cs
5/23/2018 Modul C -Libre
63/92
M odul Pemrograman C# Fundamental
Program.cs
Running Program
5/23/2018 Modul C -Libre
64/92
M odul 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 datanyasama? 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
5/23/2018 Modul C -Libre
65/92
M odul 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.
5/23/2018 Modul C -Libre
66/92
M odul Pemrograman C# Fundamental
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
5/23/2018 Modul C -Libre
67/92
M odul Pemrograman C# Fundamental
Running Program
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).
QueueElemenyang
diambil
dari sini
Elemen
baru akan
ditambah
dari sini
5/23/2018 Modul C -Libre
68/92
M odul Pemrograman C# Fundamental
Buatlah project baru dengan nama latihanqueue
Ketikkan kode program berikut ini
Program.cs
Running program
5/23/2018 Modul C -Libre
69/92
M odul Pemrograman C# Fundamental
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:
StackElemen akanditambah
dan diambil
dari sini
5/23/2018 Modul C -Libre
70/92
M odul Pemrograman C# Fundamental
Running program
5/23/2018 Modul C -Libre
71/92
M odul Pemrograman C# Fundamental
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
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 SortPada 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 projr ct baru dengan nama latihanbubblesort
Ketikkan kode program berikut ini pada program.cs
9
5/23/2018 Modul C -Libre
72/92
M odul Pemrograman C# Fundamental
Running Program
5/23/2018 Modul C -Libre
73/92
M odul 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
5/23/2018 Modul C -Libre
74/92
M odul Pemrograman C# Fundamental
Mencari elemen yang tepat untuk diletakkan di posisi yang telah
diketahui, dan meletakkannya di posisi tersebut setelah data tersebut
ditemukan.
Running Program
9.1.4 Insertion 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.
5/23/2018 Modul C -Libre
75/92
M odul Pemrograman C# Fundamental
9.2.1 Sequential SearchSequential 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 t erletak 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 akhi r, 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 l ist, 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
5/23/2018 Modul C -Libre
76/92
M odul Pemrograman C# Fundamental
Abstract & Interface
10.1 Pengertian Abstract ClassClass abstract adalah sebuah fitur yang tersedia dalam
pemrogrman berorientasi pada objek yang mana mengij inkan 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
5/23/2018 Modul C -Libre
77/92
M odul 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, kemudianketikkan kode program berikut:
T
a
m
b
a
hk
an Class baru dengan nama Balok.cs, kemudian ketikkan kode
program berikut :
Tambahkan Class baru dengan nama Bola.cs, kemudian
ketikkan kode program berikut:
Program.cs
5/23/2018 Modul C -Libre
78/92
M odul Pemrograman C# Fundamental
Running Program
10.2 InterfaceInterface 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)
5/23/2018 Modul C -Libre
79/92
M odul Pemrograman C# Fundamental
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 kketikkankode program berikut ini
publicabstractclassMammal{
publicabstractvoidmakeanoise();}
}
Buatlah class baru dengan nama dog.cs, dan ketikkan kode
program berikut ini
5/23/2018 Modul C -Libre
80/92
M odul Pemrograman C# Fundamental
Ketiklah kode program berikut ini pada Ihead
Ketiklah kode program berikut ini pada Inameable
5/23/2018 Modul C -Libre
81/92
M odul Pemrograman C# Fundamental
Program.cs
Running program
5/23/2018 Modul C -Libre
82/92
M odul Pemrograman C# Fundamental
Graphical User Interface (GUI)
11.1 Pengenalan IDE Visual Studio 2010Agar 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
11
5/23/2018 Modul C -Libre
83/92
M odul Pemrograman C# Fundamental
Anda dapat mensetting tampilan IDE sesuai dengan selera anda
5/23/2018 Modul C -Libre
84/92
M odul 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
5/23/2018 Modul C -Libre
85/92
M odul Pemrograman C# Fundamental
Buatlah seperti ini
5/23/2018 Modul C -Libre
86/92
M odul Pemrograman C# Fundamental
Solution Explorer
Solution Explorer adalah bagian yang berfungsi untuk melihat
item-item penyusun sebuah proyek atau solution. Sebuahproyek 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.
5/23/2018 Modul C -Libre
87/92
M odul Pemrograman C# Fundamental
Selanjutnya kita akan merubah properties daari objek-objek yang ada
pada form1. Coblah anda klik button1, kemudian pada properties, rubah
Textdan 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 tersebutlahobjek 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? (whats next?) pada kasus ini
5/23/2018 Modul C -Libre
88/92
M odul Pemrograman C# Fundamental
behaveatau tingkah laku dari tombol tutup belumlah sempurna, karena
hanya berperi laku sepert i halnya tombol nyata saja, akan tetapi t idak 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 (dr iven) 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 ki ta coba memberikan event agar
tombol tutup mendapatkan behaveyang sempurna. Mari ikuti langkah-
langkah berikut ini:
5/23/2018 Modul C -Libre
89/92
M odul Pemrograman C# Fundamental
GUI Lanjutan
12.1 Pembuatan Program Sederhana dengan GUIAgar 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
12
5/23/2018 Modul C -Libre
90/92
M odul Pemrograman C# Fundamental
Running program
2. Penerapan Combobox dan Radio Button
Design form seperti berikut ini
5/23/2018 Modul C -Libre
91/92
M odul Pemrograman C# Fundamental
Running Program
3. Penerapan Checkbox dan Listbox
Buatlah design form seperti berikut ini :
5/23/2018 Modul C -Libre
92/92
M odul Pemrograman C# Fundamental
Running Program
12.2 Penerapan OOP pada GUI