modul pemrograman bahasa c# fundamental

91
Modul Pemrograman C# Fundamental Pengenalan Bahasa C# 1.1 Sejarah Singkat 1.1.1 Sejarah Singkat Lahirnya Bahasa C# Pada akhir dekade 1990an, Microsoft membuat program Microsoft Visual J++ sebagai percobaan untuk menggunakan Java di dalam sistem operasi Windows untuk meningkatkan antarmuka dari Microsoft Component Object Model (COM). Akan tetapi, akibat masalah dengan pemegang hak cipta bahasa pemrograman Java, Sun Microsystems, Microsoft pun menghentikan pengembangan J++, dan beralih untuk membuat pengganti J++. Kompiler dan mesin 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 Runtime (CLR). Dari kutipan atas interview dan makalah makalah teknisnya, ia menyebutkan kelemahan kelemahan yang terdapat pada bahasa pemrograman yang umum digunakan saat ini, misalnya C++, Java, Delphi, ataupun Smalltalk. Kelemahan- kelemahan yang dikemukakan itu akhirnya dijadikan basis CLR sebagai bentukan baru untuk menutupi kelemahan kelemahan tersebut., dan pada akhirnya mempengaruhi desain pada bahasa C# itu sendiri. Ada kritik yang menyatakan C# sebagai bahasa yang berbagi akar dari bahasa-bahasa pemrograman lain. 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 1

Upload: muhamad-ali-aldefinu

Post on 29-Dec-2015

849 views

Category:

Documents


4 download

DESCRIPTION

Modul_pemrograman_bahasa_C#_Fundamental.pdf

TRANSCRIPT

Page 1: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Pengenalan Bahasa C#

1.1 Sejarah Singkat

1.1.1 Sejarah Singkat Lahirnya Bahasa C#

Pada akhir dekade 1990an, Microsoft membuat program Microsoft

Visual J++ sebagai percobaan untuk menggunakan Java di dalam sistem

operasi Windows untuk meningkatkan antarmuka dari Microsoft Component

Object Model (COM). Akan tetapi, akibat masalah dengan pemegang hak

cipta bahasa pemrograman Java, Sun Microsystems, Microsoft pun

menghentikan pengembangan J++, dan beralih untuk membuat pengganti

J++. Kompiler dan mesin 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 Runtime (CLR). Dari kutipan atas interview dan makalah –

makalah teknisnya, ia menyebutkan kelemahan –kelemahan yang terdapat

pada bahasa pemrograman yang umum digunakan saat ini, misalnya C++,

Java, Delphi, ataupun Smalltalk.

Kelemahan- kelemahan yang dikemukakan itu akhirnya dijadikan

basis CLR sebagai bentukan baru untuk menutupi kelemahan – kelemahan

tersebut., dan pada akhirnya mempengaruhi desain pada bahasa C# itu

sendiri. Ada kritik yang menyatakan C# sebagai bahasa yang berbagi akar

dari bahasa-bahasa pemrograman lain.

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

1

Page 2: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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.

MSIL adalah kode sistem operasi dan kode hardware yang berdiri

sendiri. Pada saat program dieksekusi, MSIL akan mengubahnya menjadi

kode biner executable.

Page 3: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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.

e. Common Language Specification

Anda mungkin sering menggunakan istilah . “NET Compliant

Language” yang berasal dari common language specification (CLS).

Page 4: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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

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:

Page 5: Modul Pemrograman Bahasa C# Fundamental

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

Framework

Bahasa Pemrograman

C# VB.NET F# C++

Windows Linux MAC OS

.NET MONO

Page 6: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Static menunjukan tipe method

void menunjukkan bahwa method tidak mengembalikan nilai atu objek

Main merupakan nama method utama program C#

String merupakan tipe argumen yang akan diterima sebagai parameter dari

command C#.

Args merupakan merupakan array argumen yang dapat ditambahkan pada

saat menggunakan command C# untuk menjalankan program C#

1.2.1 Sintaks Dasar C# a. Perintah Keluaran

b. Cara Menampilkan variable

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

c. Perintah Membaca inputan

d. Perintah Konversi

Contoh: int.Tryparse(input, out jumlah)

Mengubah isi dari variable input yang bertipe data String ke integer,

dan dikeluarkan pada variable jumlah.

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)

Page 7: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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

Page 8: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

b. P

i

l

i

h

F

i

l

e

-

> New -> Project

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

(Menentukan Nama Class) , dan pilih tempat penyimpanan project

Pilih Visual C#

Pilih Console Application

Nama Aplikasi

Menu

BarStart

Page

Lembar Kerja Jendela

Output

Soulution

Explorer Jendela properti

Page 9: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Menu Bar = Berisi pilihan File, Edit, View, Reflector, Project, Build,

Debug, Tools, Architecture, Test, Analyze, Window, Help

Lembar Kerja = Tempat dimana kita mengisikan list dari program yang

akan kita buat.

Jendela Output = Berisi pesan debug dan eror dari list program yang kita

ketikkan.

Jendela Properti = Berisi properti dari sebuah objek, biasanya digunakan

dalam penggunaan aplikasi berbentuk form.

Solution Explorer = Jendela yang memudahkan dalam pengaturan dan

pembuatan class dan sebagainya yang berhubungan dengan properti dari

suatu program.

1.4 Menjalankan Project

1.4.1 Perintah Untuk Menamplkan Hello World

Untuk menjalankannya tekan F5

Page 10: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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?

Page 11: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Tipe data,Variable & Operator

2.1 Pengenalan Tipe Data Tipe data merupakan jenis data yang digunakan pada program untuk

dioperasikan

Pada C# terdapat dua jenis tipe data, yaitu:

Tipe data dasar misalkan integer, float, byte, dan sebagainya.

Tipe data reference misalkan object dan delegates

Tipe data dasar yang terdapat pada C# adalah:

Saat kita mendeklarasikan suatu variable dengan tipe data integer atau int,

data tersebut tidak akan bisa diisi dengan huruf. Kemudian pengisian data

Tipe Integral

Byte 8-bit unsigned integer

Sbyte 8-bit signed integer

Short Short integer

ushort An Unsigned Short Integer

Int Integer

Uint An Unsigned Integer

Long Long Integer

ulong An Unsigned Long Integer

Tipe Floating Point

Float Single-precision Float Point

double Double-precision Float Point

Tipe data lain

char Character

bool Memberikan nilai True/False

decimal Bilangan bulat

String Berisi karakter alfanumerik

atau gabungan dari beberapa

karakter

2

Page 12: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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.

2.2 Attribute / Variable

2.2.1 Attribut/ Variable

Variable adalah nama dari suatu lokasi di memori yang digunakan

untuk menyimpan data sementara. Variable diberi nama tertentu yang

menunjukkan domain yang diwakilinya. Dalam memberikan nama variable

ada beberapa ketentuan yang harus diperhatikan yaitu:

a. Panjang karakter nama variable tidak dibatasi

b. Nama variable harus diawali dengan huruf, tanda garis

bawah(underscore_) atau tanda $. Selanjutnya dapat diikuti oleh karakter

lain selain operator(*,-,+), dengan kata lain variable dapat diawali dengan

karakter khusus kecuali operator.

c. Tidak diperbolehkan menggunakan kata kunci (keyword) yang digunakan

pada C# (contoh: if, for, while, dll)

d. Bersifat case sensitive (membedakan huruf besar dan huruf kecil)

e. Penulisan variable tidak boleh menggunakan spasi

f. Syntax Penulisan variable harus diawali dengan tipe data terlebih dahulu

karena data yang tersimpan dalam variable harus memiliki tipe tertentu

sebelum digunakan dalam aplikasi.

Contoh 2.1: Ketikkan coding berikut ini:

namespace ConsoleApplication7 { class Program { static void Main(String[] args) { String nama; Console.Write("\n Masukkan Nama Anda: ");

Syntax : [tipe_data] [nama_variable]

Page 13: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

nama = Console.ReadLine(); Console.WriteLine("\n Selamat belajar C# {0}", nama); Console.Read(); } } }

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:

T

ampilan

Syntax : const[tipe_data] [nama_variable]

Page 14: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

2.3 Jenis-Jenis Operator Operator digunakan untuk mengombinasikan suatu data dengan data

lain. Biasanya operator digunakan pada data yang tipenya dapat dikalkulasi

seperti data yang bersifat integral atau floating point. Pengkalkulasian data

melalui operator ada berbagai macam cara tergantung tipe dari data tersebut.

Berikut ini adalah jenis-jenis operator:

2.3.1 Operator Aritmatika Operator aritmatika digunakan untuk perhitungan matematis seperti

dalam penambahan, pengurangan, perkalian, dan pembagian

Simbol Keterangan

+ operator penjumlahan

- operator pengurangan

* operator perkalian

/ operator pembagian

% operator sisa bagi

Contoh 2.3: Ketikkan coding berikut ini:

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();

Page 15: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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)

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 : ");

Simbol Keterangan

< kurang dari

<= kurang dari sama dengan

> lebih dari

>= lebih dari sama dengan

== sama dengan

!= tidak sama dengan

Page 16: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

a = Console.ReadLine(); Console.Write(" Masukkan Nilai b : "); b = Console.ReadLine(); var_a = Convert.ToInt16(a); var_b = Convert.ToInt16(b); lb = var_a > var_b;// lebih besar lk = var_a < var_b;// lebih keci lbs = var_a >= var_b;// lebih besar sama dengan lks = var_a <= var_b;// lebih kecil sama dengan smd = var_a == var_b;// sama dengan tsm = var_a != var_b;// tidak sama dengan Console.WriteLine("\n apakah a lebih besar dari b? {0}",lb); Console.WriteLine(" apakah a lebih kecil dari b? {0}", lk); Console.WriteLine(" apakah a lebih besar sama dengan b? {0}", lbs); Console.WriteLine(" apakah a lebih kecil sama dengan b? {0}", lks); Console.WriteLine(" apakah a sama dengan b? {0}", smd); Console.WriteLine(" apakah a tidak sama dengan b? {0}", tsm); Console.Read(); }

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

Page 17: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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(); }

2.4 Latihan II

Simbol Keterangan

! NOT

&& short-circuit AND

|| short-circuit OR

Page 18: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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?

3

Page 19: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Operasi

Penyeleksian Kondisi (IF)

3.1 Pernyataan Berkondisi Pernyataan Bercabang digunakan untuk memecahkan persoalan untuk

mengambil suatu keputusan diantara sekian pernyataan yang ada. Untuk

keperluan pengambilan keputusan, Bahasa pemrograman C# menyediak

beberapa perintah antara lain.

3.1.1 Pernyataan If-Then-Else Pengecekan kondisi merupakan suatu aspek terpenting dalam

pemrograman. Pengecekan kondisi ini sudah ada sejak bahasa assembly. C#

juga menyediakan pengecekan kondisi berupa if..then.. else. Struktur dari

pernyataan. Struktur dari pernyataan kondisi dalam C# dinyatakan seperti

berikut:

Contoh 3.1: Menampilkan Grade Pada Contoh 2.3

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 : ");

IF (Kondisi)

{ Keputusan;}

Else

{Keputusan;}

Page 20: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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

Page 21: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

3.1.2 Pernyataan Switch Case Pernyataan Switch Case juga merupakan satu pertanyaan terkondisi.

Pernyataan switch case pada dasarnya hampir sama dengan if then else. Jika

anda memerlukan satu pernyataan dengan banyak kondisi, gunkan pernyataan

switch case. Struktur dari pernyataan Switch Case adalah sebagai berikut:

Contoh 3.2:

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();}

Switch (Expresion)

{

Case kondisi1 :

Keputusan 1;

Break;

Default:

Keputusan n;

Break;

}

Page 22: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Tampilan :

Page 23: Modul Pemrograman Bahasa C# Fundamental

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.

Page 24: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Proses Perulangan (Loop)

Perulangan atau iterasi sangat diperlukan untuk mencari data pada

setiap list yang telah didefinisikan. Pada C#, perulangan bisa dilakukan

dengan beberapa cara seperti for, foreach, while, dan go to.

4.1 Struktur For Dengan menggunakan for, kita menginstruksikan C# untuk melakukan

iterasi data yang dimulai dengan nilai counter yang kita definisikan.

Contoh 4.1

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

4

For (Niali awal; kondisi; Increment/Decrement)

{

Pernyataan yang akan diulang;

}

Page 25: Modul Pemrograman Bahasa C# Fundamental

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:

Contoh 4.3

static void Main(String[] args)

While (Ekspresi boolean)

{

Statement perulangan;

}

Page 26: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

{ int i = 1; while (i <= 12) { Console.WriteLine("\n Belajar C# "+i); i++; } Console.Read();}

Tampilan

4.3 Struktur do.. while Looping do..while pada dasarnya sama dengan looping for. Looping

do akan berhenti jika kondisinya telah terpenuhi. Berikut ini adalah struktur dari do..

while.

Contoh 4.4

static void Main(String[] args) { int i = 1;

Do

{

}

While(Ekspresi Boolean)

Page 27: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

do { Console.WriteLine("\n Nilai i= " + i); i++; } while (i <= 5); Console.Read(); }

4.4 Struktur Foreach

Foreach memiliki konsep yang sama dengan for. Biasanya foreach

digunakan unruk mengambil seluruh data pada list yang ada. Perbedaannya

adalah foreach tidak menggunakan counter, karena proses iterasi dilakukan

secara internal array. Kelebihan dari foreach yaitu lebih cepat mendapatkan nilai

array secara keseluruhan. Kekurangannya yaitu tidak bisa mengakses nilai dari

suatu indeks tertentu. Berikut ini adalah struktur dari foreach.

Contoh 4.5

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

4.5 Deret dalam perulangan

4.5.1 Fibonacci

Foreach (tipe_data nama_var in nama_array)

{

Statement;

}

Page 28: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

4.6 Latihan

Pengenalan OOP

5.1 Pengantar OOP

Secara umum, sebuah program komputer terdiri atas kode dan

data yang dapat berupa variable maupun konstanta. Kode dan data tersebut

kemudian diatur sehigga dapat bekerja sama untuk menghasilkan program

keluaran yang akan digunaan untuk menyelesaikan sebuah permasalahan.

Pada model pemrograman prosedural alur kerja program

berorientasi pada process (Process-Oriented). Program merupakan gabungan

dari data dan kode dengan struktur program yang berupa urutan proses.

Pendekatan semacam ini memiliki kelemahan, yaitu akan menemui bayak

kesulitan ketika menangani kasus-kasus yang kompleks, membutuhkan ribuan

baris kode. Kondisi seperti itu akan menyulitkan programmer dalam melacak

kesalahan (debugging), meyisipkan modul bar dalam program, dan sebagaiya.

Pemograman berorientasi objek (PBO) hadir untuk mjadi solusi

kelemahan yang terdapat pada pendekatan prosedural biasa. Dalam

pemrograman berorientasi objek, pendekatan yang dilakukan adalah dengan

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

5

Page 29: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

mampu menyelesaikan masalah daripada teknik prosedural, sebagian besar

programmer mulai menggunakan teknik OOP.

Dalam prosedural programming kebanyakan fungsi dalam

sebuah program ditulis dalam beberapa modul atau dapat lebih dari satu

modul tergantung dari jenis aplikasi yang dibuat. Modul-modul ini memiliki

ketergantungan antara yang satu dengan yang lainnya. Bila anda ingin

mengubah satu modul maka anda harus mengganti baris-baris yang telah anda

buat pada modul lainnya yang berkaitan dengan modul tersebut. Dengan

teknik OOP, anda tidak perlu mengubah keseluruhan program yang

bermasalah tersebut. Anda cukup mengubah coding program yang bermasalah

saja.

Beberapa hal yang merupakan keuntungn dari konsep

pemrograman berbasi object (PBO/OOP) adalah:

Objek-objek yang dibuat bersifat reusable, sehingga dapat digunakan untuk

program-program lain.

Struktur program lebih jelas, trackable (kesalahan mudah dilacak), dan

mudah untuk dikmbangkan.

5.2 Pengertian Class Class adalah rancangan/sketsa/blueprint dari sebuah objek. Sebelum

kita dapat membuat sebuah objek maka kita harus membuat rancangannya

terlebih dahulu. Secara umum class memiliki dua macam anggota yaitu field

dan method. Field dapat diartikan sebagai atribut dari object sedangkan

method dapat diartikan sebagai aksi/tindakan yang dapat dilakukan oleh

sebuah object. Contohnya jika sebuah perusahaan ingin membut motor

keluaran terbaru, maka sebelumnya perusahaan tersebut harus membuat

rancangannya terlebih dahulu, rancangan tersebut bisa berupa gambar/ sketsa.

CLASS

Page 30: Modul Pemrograman Bahasa C# Fundamental

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

OBJEK

Page 31: Modul Pemrograman Bahasa C# Fundamental

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

Page 32: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

4. Muncul jendela Add New Item, Pilih Class, beri nama class pada

textbox name, lalu klik add.

Page 33: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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

telah anda buat.

5.3 Object Seperti yang telah dibahas pada sub bab class, class merupakan sketsa/

blue print dari sebuah objek, dengan begitu object adalah realisasi dari sebuah

object. Dalam kehidupan nyata objek menurut Kamus Meriam Webster adalah

suatu material yang dapat dirasakan oleh panca indera. Sedangkan objek

didalam software auat (software object) adalah konsep software yang dibundel

bersama-sama. Terdri dari data dan fungsi.

5.3.1 Instansiasi Objek

Instansiasi objek adalah proses pembuatan objek software didalam

pemrograman berorientasi objek. Berikut ini adalah cara menginstantiasi

objek

Class Constructor

Objek

Sapi y = new Student();

Page 34: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

*Keterangan: Constructor adalah method khusus yang didefinisikan didalam

class dan akan dipanggil secara otomatis tiap kali terjadi instantiasi object.

Constructor berfungsi untuk melakukan inisialisasi nilai terhadap data-data yang

terdapat pada class yang bersangkutan. Constructor dapat dibuat dapat juga tidak,

jika kita tidak membuat sebuah constructor maka microsoft visual studio 2010

akan membuatkan construktor untuk programmer yang disebut dengan default

constructor. Default constructor akan menginisialisasi semua data yang ada

dengan nilai nol, sama halnya dengan method, constructor juga dapat memiliki

parameter.

5.3.2 Contoh penggunaan Objek

Buatlah sebuah project baru

Beri nama project latihanobjek

Page 35: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Beri nama clas dengan nama “Robot.cs” lalu berikan

coding berikut ini.

I

n

s

Page 36: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

tantiasi object pada program.cs

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

Page 37: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

mengembalikan sebuah nilai. Berikut ini adalah contoh penggunaan method

pada pemrograman C#.

Tambahkan kode program berikut ini pada class

Robot

Mengakses Method pada Program.cs

Page 38: Modul Pemrograman Bahasa C# Fundamental

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.

Page 39: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

5.3.4.1 Access Identifier

Access Identifier berfungsi untuk menentukan siapa saja yang dapat

mengakses(membaca/mengubah) data-data (attribut & method) didalam

sebuah class. Access Identifier yang sering digunakan dalam pemrograman

bahasa C# ada 3 yaitu:

a. Public

Menyatakan bahwa anggota class tersebut (attribut/method/property) boleh

diakses oleh siapa saja (class yang lain).

b. Private

Menyatakan bahwa anggota class tersebut (attribut/method/property) hanya

boleh diakses oleh dirinya sendiri (class itu sendiri).

c. Protected

Menyatakan bahwa anggota class tersebut (attribut/method/property) hanya

boleh diakses oleh dirinya sendiri dan turunan-turunan classnya (class yang

menurunkan sifat-sifat dari class tersebut).

Agar lebih mudahnya mari kita praktekkan

Ubah data pada clas “Robot.cs”

Page 40: Modul Pemrograman Bahasa C# Fundamental

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

protect. Sehingga attribut-attribut tersebut hanya bisa diakses oleh

“Robot.cs”

Page 41: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Sekarang ubah kode program yang ada pada

“Robot.cs”

Ubah juga kode program yang ada pada

“Program.cs”

Page 42: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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

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 project baru dengan nama

“latihanproperty”

Page 43: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Lalu tambahkan kelas baru dengan nama

“Malware.cs”

Berikan kode program berikut ini pada “Malware.cs”

Membuat Property

Page 44: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

o Blok attribute

o Klik Kanan pilih refractor

o Pilih Encapsulate Field

o Pilih all, ok

Hasilnya akan terlihat seperti ini

Property

Page 45: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Lakukan Hal yang sama pada attribut-attribut yang lainnya

Buatlah sebuah objek pada “Program.cs” kemudian

ketikkan program dibawah ini

Running Program

5.3.4.3 Hubungan antara Class, Attribute, Method

Page 46: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Hubungan antara Class, Attribute , dan method biasa digambarkan

dalam bentuk Class Diagram seperti contoh dibawah ini:

Robot

+ Nama : String

-JumlahKaki : int

-JumlahTangan : int

-JumlahSenjata : int

-JumlahRocket : int

+LihatJumlahkaki()

+LihatTangan()

+LihatSenjata()

+Terbang()

Pewarisan/Inheritance

6.1 Pengertian Inheritance

Inheritance/Pewarisan adalah suatu cara pembuatan class baru dengan

menggunakan kembali class yang sudah didefinisikan sebelumnya dengan

menambahkan attribute dan method baru. Sehingga demikian class baru yang

dibuat tetap memiliki attribute dan method yang dimiliki oleh class induknya.

Pada konsep pewarisan/ inheritance terdapat beberapa istilah yang perlu

diketahui yaitu:

a. Sub Class, digunakan untuk menunjukkan class anak atau turunan secara

hirarkis dari super class

6

Attribute (+ = public)

(- = private)

Attribute (+ = public) (-

= private)

Class

Page 47: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

b. Super Class, digunakan untuk menunjukkan class induk secara hirarkis

dari sub class (class anak)

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

Virus

+ nama: String

+size : int

+kemampuan : String

+banyak : int

+Menyerang() : void

+MemperbanyakDiri() :

void

Berikut ini adalah kode program dari bagan diatas:

Virus.cs

Trojan.cs

Worm

+nama : String

+size : int

+kemampuan : String

+Menyerang() : void

+MenginfeksiRegistry() :

void

+Menghapus NTLDR() :

void

Trojan

+nama : String

+size : int

+kemampuan : String

+Menyerang () : void

+MenyembunyikanFile() :

void

+MemblokirCMD() : void

Page 48: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

W

o

r

m

.

c

s

Program.cs

R

u

n

n

i

n

g

P

r

o

g

r

Page 49: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

am

6.1.2 L

a

t

i

han Inheritance

Setelah berlatih dengan program yang diatas, bagaimana menurut

anda? Menulis berulang kali method dan attribut yang sama sangatlah

melelahkan dan membosankan bukan?? Nah disinilah peranan inheritance

diperlukan dengan inheritace/ pewarisan programer hanya perlu membuat satu

parent class (Super Class) yang mana attribut dan methodnya akan diturunkan

kepada anak-anak kelasnya (Sub Class) nya. Kemudian dari sub class jika ingin

menambahkan method baru , programer tinggal menambahkan method yang

diperlukan pada class tersebut, tanpa mengubah atau menghapus method yang

diturunkan, oleh karena itu struktur diagramnya akan berubah menjadi seperti

ini:

Malware

+ nama : String

+ size : String

+ kemampuan : String

+ Menyerang() : void

Virus

+banyak : int

Page 50: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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:

Malware.cs

Virus.cs Menandakan class virus turunan dari class malware

T

rojan.cs

+ MemperbanyakDiri() : int

Trojan

+ MenyembunyikanFile() : void

+ MemblokirCMD() : void

Worm

+ MenginfeksiRegistry() :

void

+MenghapusNTLDR() : void

Page 51: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Worm.cs

Program.cs

Page 52: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Running Program

6.2 Virt

ual dan Override Methode

Dengan menggunakan konsep inheritance programmer dapat

mempermudah pengerjaan program menjadi lebih simple dan efektif dengan

dapat menggunakan method yang sama dengan yang ada pada parent class

(super class), akan tetapi ada kalannya method yang diwarisi oleh super class

pada sub class tidak sesuai dengan tempatnya. misalkan saja programer

membuat class dengan nama “Hewan.cs” sebagai parent class, kemudian

terdapat sub class dengan nama “Buaya.cs”, dan “Banteng.cs”, lalu dalam

class “Hewan.cs” terdapat method menyerang() , maka secara otomatis

buaya dan banteng memiliki method menyerang, akan tetapi pada realnya

(pada kehidupan nyata) buaya dan banteng memiliki cara menyerang yang

berbeda, lalu bagaimana cara inheritance dapat menurunkan method untuk

sesuatu yang lebih spesifik lagi? Yaitu dengan cara membuat override method,

override method yaitu menimpa method yang ada pada parent class untuk

diterapkan pada sub class dengan cara member awalan keyword “Override”

pada nama method yang sama yang ada pada parent/super class.

Sedangkan virtual adalah keyword yang digunakan pada method yang

ada pada parent class yang nantinya akan di override melalui method yang ada

Page 53: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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

M

enandakan

Menyerang

dapat di

override

Virus.cs Menimpa void menyerang() yg ada pada parent class

R

u

n

n

i

n

g

P

r

ogram

Page 54: Modul Pemrograman Bahasa C# Fundamental

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

dimungkinkan memiliki instruksi yang berbeda. Dalam

mengimplementasikan polimorfisme, perlu diperhatikan hal-hal sebagai

berikut (Rickyanto, 2005):

7

Page 55: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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

Ikuti kode program berikut ini

Siswa.cs

Page 56: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Program.cs

Running Program

Page 57: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Array & Collection

Array adalah suatu struktur data yang dapat menyimpan dara 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:

8

Page 58: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

1. Suatu nilai yanf 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

Arraydimensi1.cs

Tipedata_namavariable = new_array[ukuran]

Page 59: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

P

r

o

g

r

a

m

.c

s

Page 60: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Running Program

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

Page 61: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Arraymultidimensi.cs

Program.cs

Page 62: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Running Program

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

Page 63: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

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

Running program

Page 64: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

8.4 Collection

Pada .NET framework, tersedia beberapa class yang khusus disediakan

sebagai tempat menyimpan dan mengambil kumpulan data (collection of data).

Beberapa dari class tersebut adalah Array, List, Queue, dan Stack.

8.4.1 List

Pada dasarnya, fungsi list serupa dengan array. Bedanya adalah bahwa

list lebih bersifat dinamis. Jika seorang programmer membuat sebuah array 1

dimensi berukuan 10, maka array tersebut akan terus berukuran 10 meskipun

programmer hanya menggunakan 5 elemen, dan programmer tidak dapat

menghilangkn 5 elemen sisanya. Berbeda dengan array class list memiliki

method untuk menambahkan dan mengurangi elemen dari list. Dengan

demikian, tidak akan ada memori yang terbuang karena tempat penyimpanan

data yang tidak terpakai bisa dihapus. Berikut ini adalah contoh pemakaian

list .

Buatlah sebuah project baru dengan nama latihanlist

Ketikkan kode program berikut ini pada Program.cs

Page 65: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Running Program

Page 66: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

8.4.2 Queue

Queue juga adalah kumpulan data yang merepresentasikan sebuah

antrian. Queue juga dapat menambahkan dan mengurangi data seperti dalam list.

Perbedaannya terletak pada cara ia menambah dan mengambil data. Queue selalu

selalu menambahkan elemennya pada akhir dari queue dan mengambil

elemennya pada awalnya queue (seperti sebuah antrian pada umumnya).

Queue

Buatlah project baru dengan nama latihanqueue

Ketikkan kode program berikut ini

Program.cs

Elemen

yang

diambil

dari sini

Elemen

baru akan

ditambah

dari sini

Page 67: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Running program

8.4.3 Stack

Page 68: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Stack adalah kumpulan data yang merepresentasikan sebuah tumpukan.

Seperti list dan queue, sebuah stack juga dapat menambahkan dan mengurangi

elemen pada dirinya. Bedanya dengan queue adalah bahwa stack

menambahkan dan mengurangi elemen dari awal/ depan/ atas sebuah stack

(seperti pada tumpukan pada umumnya). Seperti contoh dibawah ini:

Stack

Elemen akan

ditambah

dan diambil

dari sini

Page 69: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Running program

Sorting & Searching

9.1 Sorting

Sorting merupakan proses pengelompokan suatu informasi yang

berhubungan secara berurutan baik ascending (dari kecil ke besar) atau

descending (dari besar ke kecil). .NET Framework juga menyediakan dalam

kelas koleksi untuk mengurutkan data.

Tetapi dalam pembelajaran kali ini kita dituntut untuk menguasai proses

pengurutan data secara manual, dengan alasan sebagai berikut:

1. Pada umumnya fungsi misalnya qsort() tidak dapat diaplikasikan pada

semua situasi

9

Page 70: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

2. Karena qsort() adalah suatu parameter yang khusus untuk pengoperasian

data dalam jumlah besar, sehingga prosesnya berjalan sangat pelan

dibanding proses pengurutan dara dengan cara yang lain.

3. Algoritma quicksort (yang biasanya diterapkan pada qshort()), meskipun

baik digunakan pada proses yang umum, tetapi bukanlah proses shorting

yang terbaik.

Ada 3 metode yang dapat digunakan pada shorting array:

1. Exchange

a. Bubble Sort

b. Shaker Sort

2. Selection

3. Insertion

9.1.1 Bubble Sort Pada metode bubble sort, proses pengurutan dimulai dengan

membandingkan elemen pertama untuk mendapatkan angka terbesar. Lalu

angka tersebut ditempatkan pada elemen terakhir. Agar lebih jelasnya mari

simak kode program berikut ini.

Buatlah sebuah projrct baru dengan nama latihanbubblesort

Ketikkan kode program berikut ini pada program.cs

Page 71: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Running Program

Page 72: Modul Pemrograman Bahasa C# Fundamental

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.

Page 73: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Running Program

9.1.4 Insertion Sort

Page 74: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

9.2 Searching

Pencarian (Search) merupakan proses yang fundamental dalam

pemrograman, guna menemukan data (nilai) tertentu didalam sekumpulan

data yang bertipe sama. Fungsi perncarian itu sendiri adalah untuk

memvalidasi (mencocokkan) data.

9.2.1 Sequential Search Sequential search adalah teknik pencarian data dimana data dicari

secara urut dari depan ke belakang atau dari awal sampai akhir. Berdasarkan

key yang dicari. Kelebihan dari proses pencarian secara sequential ini adalah:

1. Jika data yang dicari terletak didepan, maka data akan ditemukan dengan

cepat.

Walaupun memiliki kelebihan teknik ini juga memiliki kekurangan yaitu:

1. Jika data yang dicari terletak dibelakang atau paling akhir, maka akan

membutuhkan waktu yang lama dalam proses pencariannya.

2. Beban komputer akan semakin bertambah jika jumlah data dalam array

sangat banyak

Adapun proses dari sequential search adalah:

a. Mulai dari awal (atau dari akhir) cek seluruh record dalam array

atau list, baca satu persatu

b. Temukan record sesuai dengan key yang dicari

c. Proses searching berhenti karena salah satu alasan.

Success – Found the target key

End of List – No more records to compare

9.2.2 Binary Search

Page 75: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Abstract & Interface

10.1 Pengertian Abstract Class Class anstract 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:

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.

10

Page 76: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Tambahkan Class baru dengan nama Kubus.cs, kemudian ketikkan

kode program berikut:

T

a

m

b

a

h

k

an Class baru dengan nama Balok.cs, kemudian ketikkan kode

program berikut:

Tambahkan Class baru dengan nama Bola.cs, kemudian ketikkan

kode program berikut:

Program.cs

Page 77: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Running Program

10.2 Interface Interface dari sebuah class merupkan 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)

Page 78: Modul Pemrograman Bahasa C# Fundamental

Modul 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 kketikkan kode

program berikut ini public abstract class Mammal { public abstract void makeanoise(); } }

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

program berikut ini

Page 79: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Ketiklah kode program berikut ini pada Ihead

Ketiklah kode program berikut ini pada Inameable

Program.cs

Page 80: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Running program

10.2.2 Latihan

Graphical User Interface (GUI)

11

Page 81: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

11.1 Pengenalan IDE Visual Studio 2010 Agar dapat bekerja lebih efisien ketika menerapkan GUI pada

microsoft visual studio, terlebih dahulu anda perlu mengetahui lingkungan

kerja visual studio. Jika anda sudah pernah membuat sebuah program

komputer seperti Delphi, Visual C, atau bahkan Java, tampilan Visual Stdio

pada dasarnya hampir sama seperti lingkungan kerja dari aplikasi-aplikasi

pemrograman tersebut. Untuk memulainya ikuti langkah-langkah berikut ini:

Buatlah Sebuah Project Baru, pilih windows form application

Tampilan Windows Form Application

Page 82: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Anda dapat mensetting tampilan IDE sesuai dengan selera anda

Toolbox

Page 83: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Toolbox adalah bagian yang berguna sebagai tempat meletakkan

objek-objek yang menjadi alat untuk melakukan pemrogrman.

Dalam istilah pemrograman berorientasi objek yang dimaksud

dengan alat adalah sebuah class. Objek-objek yang tersedia pada

Visual Studio khususnya pada pemrograman C# cukup banyak,

seperti Textbox, button, Grid, dan proggress bar. Cara

memunculkan toolbox yaitu klik menu View >> Toolbox

Selanjutnya mari kita praktekkan jenis-jenis toolbox yang ada.

Caranya hanya dengan mengklik salah satu dari toolbox, misalnya

button

Lalu arahkan kursor yang berbentuk plus pada form1, kemudian

klik kiri

Page 84: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Buatlah seperti ini

Solution Explorer

Page 85: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Solution Explorer adalah bagian yang berfungsi untuk melihat

item-item penyusun sebuah proyek atau solution. Sebuah proyek

dapat disusun oleh berbagai macam item yaitu:

o Form dan kodenya

o Class

o Module

o Class Diagram

o File XML

o File Proyek

o File Report

Properties

Properties berguna untuk melihat nilai properti dari sebuah

objek/class, misalnya properti Name,Text, dsbg.

Page 86: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Selanjutnya kita akan merubah properties daari objek-objek yang ada pada

form1. Coblah anda klik button1, kemudian pada properties, rubah Text dan

Back Colornya. Buatlah tampilan seperti berikut ini:

Pada saat perancangan program seperti ini tombol tutup tidak dapat ditekan

seperti layaknya sebuah tombol, perlu adanya eksekusi program terlebih

dahulu, untuk mengeksekusi program tekan F5. Barulah tombol tutup dapat

ditekan seperti layaknya tombol di kehidupan nyata.

11.2 Event

Tidak hanya makhluk hidup yang memiliki tingkah laku (behaviour)

tetapi pada dasarnya salah satu alasan terciptanya teknologi adalah untuk

menggantikan peran makhluk hidup khususnya manusia agar terciptanya

kehidupan yang dinamis. Dengan alasan tersebutlah objek didalam form pada

sebuah class patutnya memiliki tingkah laku yang nantinya akan menjadi

acuan bagi proses yang akan dijalankan. Sebagai contoh setelah anda

membuat tampilan pada form1 ketika program di eksekusi, kita akan

menemukan tombol tutup dapat berperilaku seperti halnya tombol di dunia

Page 87: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

nyata, akan tetapi apa yang terjadi setelah tombol tersebut ditekan? (what’s

next?) pada kasus ini behave atau tingkah laku dari tombol tutup belumlah

sempurna, karena hanya berperilaku seperti halnya tombol nyata saja, akan

tetapi tidak ada output yang dihasilkan dari input tekan yang diberikan. Event

adalah kejadian dimana programmer merancang sebuah objek akan berprilaku

seperti apa, dan dilempar (handle) oleh objek yang mana , atau menggerakkan

objek yang mana (driven) dengan mengetikkan logika / kode progra terhadap

objek tersebut. Instruksi yang diberikan pada objek tersebut akan menerima

input ketika program dieksekusi kemudian outputya juga telah dirancang

untuk diteruskan/ di-handle pada objek yang lain, atau mungkin untuk

merubah fungsi objek yang lain (driven). Pada kasus form1 diatas, mari kita

coba memberikan event agar tombol tutup mendapatkan behave yang

sempurna. Mari ikuti langkah-langkah berikut ini:

GUI Lanjutan

12.1 Pembuatan Program Sederhana dengan GUI

12

Page 88: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Agar lebih memahami bagaimana penerapan GUI pada pemograman

bahasa C#, mai kita berlatih dengan contoh-contoh program sederhana berikut

ini:

1. Penerapan Textbox dan Button

Design form seperti berikut ini

Ketikkan kode program berikut ini

Running program

Page 89: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

2. Penerapan Combobox dan Radio Button

Design form seperti berikut ini

Running Program

Page 90: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

3. Penerapan Checkbox dan Listbox

Buatlah design form seperti berikut ini:

Page 91: Modul Pemrograman Bahasa C# Fundamental

Modul Pemrograman C# Fundamental

Running Program

12.2 Penerapan OOP pada GUI