modul pemrograman bahasa c# fundamental 592013.docx

116
1 Modul Pemrograman C# Fundamental Pengenalan Bahasa C# 1.1 Sejarah Singkat 1.1.1 Sejarah Singkat Lahirnya Bahasa C# Pada akhir dekade 1990an, Microsoft membuat program Microsoft Visual J++ sebagai percobaan untuk menggunakan Java di dalam sistem operasi Windows untuk meningkatkan antarmuka dari Microsoft Component Object Model (COM). Akan tetapi, akibat masalah dengan pemegang hak cipta bahasa pemrograman Java, Sun Microsystems, Microsoft pun menghentikan pengembangan J++, dan beralih untuk membuat pengganti J++. Kompiler dan mmesin vitualnya sendiri menggunakan sebuah bahasa pemrograman yang bersifat general-purpose. Untuk menangani proyek ini, Microsoft merekrut Andres Helsberg, yang merupakan mantan karyawan Borland, pembuat bahasa Turbo Pascal, dan Borland Delphi, yang juga mendesain Windows Foundation Classes (WFC) yang digunakan dalam J++. Sebagai Hasil dari usaha tersebut, C# pertamakali diperkenalkan pada bulan Juli 2000 sebaga sebuah bahasa pemrograman modern berorientasi objek yang menjadi sebuah bahasa

Upload: hilal-crooz-rolan

Post on 19-Jan-2016

199 views

Category:

Documents


36 download

TRANSCRIPT

Page 1: Modul pemrograman bahasa C# Fundamental 592013.docx

1 Pengenalan Bahasa C#

1.1 Sejarah Singkat1.1.1 Sejarah Singkat Lahirnya Bahasa C#

Pada akhir dekade 1990an, Microsoft membuat program Microsoft Visual J++ sebagai percobaan untuk menggunakan Java di dalam sistem operasi Windows untuk meningkatkan antarmuka dari Microsoft Component Object Model (COM). Akan tetapi, akibat masalah dengan pemegang hak cipta bahasa pemrograman Java, Sun Microsystems, Microsoft pun menghentikan pengembangan J++, dan beralih untuk membuat pengganti J++. Kompiler dan mmesin vitualnya sendiri menggunakan sebuah bahasa pemrograman yang bersifat general-purpose.

Untuk menangani proyek ini, Microsoft merekrut Andres Helsberg, yang merupakan mantan karyawan Borland, pembuat bahasa Turbo Pascal, dan Borland Delphi, yang juga mendesain Windows Foundation Classes (WFC) yang digunakan dalam J++.

Sebagai Hasil dari usaha tersebut, C# pertamakali diperkenalkan pada bulan Juli 2000 sebaga sebuah bahasa pemrograman modern berorientasi objek yang menjadi sebuah bahasa pemrograman utama di dalam pengembangan di dalam platform Microsoft .NET Framework.

Pengalaman Helsberg sebelumnya dalam mendesain bahasa pemrograman (Seperti Visual J++, Delphi, Turbo Pascal) dengan mudah dilihat dalam sintaksis bahasa C#, begitu pula hal nya pada inti Common Language untime (CLR). Dari kutipan atas interview dan makalah – makalah teknisnya, ia menyebutkan kelemahan –kelemahan yang terdapat pada bahasa pemrograman yang umum digunakan saat ini, misalnya C++, Java, Delphi, ataupun Smalltalk.

Kelemahan- kelemahan yang dikemukakan itu akhirnya dijadikan basis CLR sebagai bentukan baru untuk menutupi kelemahan – kelemahan tersebut., dan pada akhirnya mempengaruhi desain pada bahasa C# itu sendiri. Ada kritik yang menyatakan C# sebagai bahasa yang berbagi akar dari bahasa-bahasa pemrograman lain.

Page 2: Modul pemrograman bahasa C# Fundamental 592013.docx

Fitur-fitur yang diambil dari bahasa C++ dan Java adalah desain berorientasi objek, seperti garbage collection, reflection, akar kelas (root class), dan juga penyederhanaan terhadap pewarisan jamak (multiple inheritance). Fitur-fitur tersebut didalam C# kini telah diaplikasikan terhadap iterasi, properti, kejadian (event), metadata, dan konversi antara tipe-tipe sederhana dan juga objek.

C# didesain untuk memenuhi kebutuhan akan sintaksis C++ yang lbih ringkas dan Rapid Application Development yang tanpa batas (dibandingkan dengan RAD yang terbatas seperti yang terdapat pada Delphi dan Visual Basic).

Agar mampu mmpromosikan penggunaan besar-besaran dari bahasa C#, Microsoft, dengan dukungan dari Intel Corporation dan Hewlett-Packard, Mencoba mengajukan standarisasi terhadap bahasa C#. Akhirnya pada bulan Desember 2001, standar pertama pun diterima oleh European Computer Manufacturers Association atau Ecma International (ECMA), dengan nomor standar ECMA-334. Pada Desember 2002, standar kedua pun diadopsi oleh ECMA, dan tiga bulan kemudian diterima oleh International Organization for Standarization (ISO), dengan nomor standar ISO/IEC 23270:2006

1.1.2 Arsitektur .NET dan .NET Frameworka. 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.

Page 3: Modul pemrograman bahasa C# Fundamental 592013.docx

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

c. Just in Time Compilers (JITers)

Pada saat kode intermediate language membutuhkan untuk dieksekusi, CLR akan meminta JIT compiler untuk mengompilasi IL (Intermediate Language) ke native executable code (Exe atau DLL) yang dirancang pada mesin atau OS tertentu. JITers pada dasarnya berbeda sama sekali dengan compiler konvensional yang mengompilasi IL ke Native kode hanya pada saat dibutuhkan.

Misalkan ketika sebuah fungsi dipanggil, Intermediate Language dari function body akan diubah pada saat itu juga atau just in time. Jadi, bagian dari kode yang tidak digunakan tidak akan diubah menjadi native code.

Jika beberapa kode IL diubah ke native code, dan kode tersebut di lain waktu dibutuhkan lagi, CLR akan menggunakan copy kode yang sama (yang telah dikompilasi) tanpa harus mengompilasi ulang kode tersebut. JITers sangat memperhatikan jenis processor dan sistem operasi pada saat runtime. JITers dapat mengoptimasi kode dengan sangat efisien dalam merancang sebuah aplikasi yang baik.

d. The Framework Class Library (FCL)

.NET Framework menyediakan banyak sekali jenis Framework Class Library (FCL) untuk digunakan secara serentak dalam proses pengembangan aplikasi. FCL berisi ribuan class yang menyediakan akses ke windows API dan fungsi pada umumnya seperti Manipulasi String, Data struktur umum, IO, Streams, Threads, Security, Network Programing, Pemrograman Windows, Pemrograman web, data akses, dan masih banyak lagi yang lainnya.

Pengertian sederhananya, FCL merupakan library standar besar yang dikemas dalam satu bahasa pemrograman. Bagian terbaik dari library ini adalah peggunaan teknik pemrograman object oriented yang membuat teknik pengaksesan dan penggunaannya menjadi sangat sederhana. Anda dapat menggunakan FCL pada program yang akan dibuat hanya seperti menggunakan kelas-kelas lainnya. Anda bahkan dapat menerapkan teknik inheritance dan polimorfisme pada kelas FCL ini.

Page 4: Modul pemrograman bahasa C# Fundamental 592013.docx

e. Common Language Specification

Anda mungkin sering menggunakan istilah . “NET Compliant Language” yang berasal dari common language specification (CLS). Microsoft telah mengeluarkan sebuah subset kecil dari spesifikasi masing-masing bahasa yang dapat digunakan dan dapat memenuhi standar .NET Compliant Language.

CLS pada dasarnya adalah sebuah desain bahasa yang menetapkan standar bawah tertentu. Sebagai contoh, misalkan anda membuat program namun tidak terdapat pointer , tidak terdapat multiple inheritance, maupun tidak ada global variable, maka kode anda dijamin dapat digunakan lagi pada bahasa .NET yang lain selama masih dalam ruang lingkup CLS.

f. The Common Type System (CTS)

.NET juga mendefinisikan sebuah common type system (CTS). Seperi CLS, CTS juga terdiri dari beberapa set standar. CTS mendefinisikan tipe data dasar ang dipahami dan digunakan oleh IL. Masing-masing .NET Compliant Language harus memetakan datanya pada sebuah tipe data standar.

Hal ini yang membuat dua bahasa berkomunikasi satu sama lain dengan cara menerima parameter untuk dan dari satu sama lain. Misalkan, CTS mendefinisikan sebuah tipe data int (integer 32 bit) yang dipetakan dengan bahasa C# menjadi int dan VB.NET juga akan memetakanna menjadi tipe data integer.

g. Garbage Collection (GC)

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

h. .NET Framework

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

Page 5: Modul pemrograman bahasa C# Fundamental 592013.docx

Framework

Bahasa PemrogramanC# VB.NETF#C++

Windows Linux MAC OS

.NET MONO

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

1.2 Struktur Program C#

Keyword using digunakan untuk memberitahu compiler class apa yang sedang digunakan pada aplikasi

Page 6: Modul pemrograman bahasa C# Fundamental 592013.docx

Keyword namespace digunakan untuk mendeklarasikan ruang lingkup dari class yang dibuat. Class didalam namespace dapat dipanggil dengan mencantumkan nama spacenya terlebih dahulu.

Using system; pada baris pertama mempunyai arti bahwa user dapat menggunakan clas-class yang ada pada namespace System.

Static menunjukan tipe method

void menunjukkan bahwa method tidak mengembalikan nilai atu objek

Main merupakan nama method utama program C#

String merupakan tipe argumen yang akan diterima sebagai parameter dari command C#.

Args merupakan merupakan array argumen yang dapat ditambahkan pada saat menggunakan command C# untuk menjalankan program C#

1.2.1 Sintaks Dasar C#a. Perintah Keluaran

b. Cara Menampilkan variable

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

c. Perintah Membaca inputan

d. Perintah Konversi

Console.Write (“pernyataan dlm bntuk String”, argument)

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

Console.Readline ();

Console.ReadKey();

Tipedata.Tryparse(variable yang akan dikonversi, out variable keluaran)

Page 7: Modul pemrograman bahasa C# Fundamental 592013.docx

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

1.3 Membuat Project

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

a. Membuka Jendela Microsoft Visual Studio 2010

Page 8: Modul pemrograman bahasa C# Fundamental 592013.docx

Pilih Visual C#

Pilih Console Application

b. Pilih File -> New -> Project

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

Page 9: Modul pemrograman bahasa C# Fundamental 592013.docx

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 Project1.4.1 Perintah Untuk Menamplkan Hello World

Page 10: Modul pemrograman bahasa C# Fundamental 592013.docx

Untuk menjalankannya tekan F5

Hasil Tampilan

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

Console.WriteLine!

Page 11: Modul pemrograman bahasa C# Fundamental 592013.docx

2

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

Tipe data,Variable& Operator

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

Page 12: Modul pemrograman bahasa C# Fundamental 592013.docx

Saat kita mendeklarasikan suatu variable dengan tipe data integer atau int, data tersebut tidak akan bisa diisi dengan huruf. Kemudian pengisian data tersebut juga tidak menggunakan tanda petik dua (“ ”). Sama halnya dengan double, float, dan decimal, dimana pengisiannya tidak menggunakan tanda petikdua. Sedangkan untuk String, harus mendefinisikan suatu nilai dengan menggunakan tanda petik dua.

1.7 Attribute / Variable1.7.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 dibatasib. 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.

Tipe Integral

Byte 8-bit unsigned integerSbyte 8-bit signed integerShort Short integerushort An Unsigned Short IntegerInt IntegerUint An Unsigned IntegerLong Long Integerulong An Unsigned Long Integer

Tipe Floating PointFloat Single-precision Float Pointdouble Double-precision Float Point

Tipe data lainchar Characterbool Memberikan nilai True/Falsedecimal Bilangan bulatString Berisi karakter alfanumerik

atau gabungan dari beberapa karakter

Page 13: Modul pemrograman bahasa C# Fundamental 592013.docx

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 spasif. Syntax Penulisan variable harus diawali dengan tipe data terlebih dahulu

karena data yang tersimpan dalam variable harus memiliki tipe tertentu sebelum digunakan dalam aplikasi.

Contoh 2.1:Ketikkan coding berikut ini:

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

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

1.7.2 KonstantaVariable konstata adalah salah satu jenis variable memiliki nilai tetap

atau tidak dapat diubah. Untuk menuliskan variable konstanta, sintaksnya adalah:

Syntax : [tipe_data] [nama_variable]

Page 14: Modul pemrograman bahasa C# Fundamental 592013.docx

Contoh 2.2:Ketikkan coding berikut ini:

Tampilan

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

1.8.1 Operator AritmatikaOperator aritmatika digunakan untuk perhitungan matematis seperti

dalam penambahan, pengurangan, perkalian, dan pembagian

Syntax : const[tipe_data] [nama_variable]

Page 15: Modul pemrograman bahasa C# Fundamental 592013.docx

Simbol Keterangan+ operator penjumlahan

- operator pengurangan

* operator perkalian

/ operator pembagian

% operator sisa bagi

Contoh 2.3:Ketikkan coding berikut ini:

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

}

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

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 592013.docx

Contoh 2.4:Ketikkan coding berikut ini:

staticvoid Main(String[] args){

String a, b;bool lb, lk, lbs, lks, smd, tsm;int var_a, var_b;

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

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

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

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

}

Page 17: Modul pemrograman bahasa C# Fundamental 592013.docx

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

Contoh 2.5: staticvoid Main(String[] args)

{

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

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

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

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

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

Console.WriteLine("\n hasil dari a and b adalah {0}", dan);Console.WriteLine(" hasil dari a or b adalah {0}", atau);Console.WriteLine(" hasil dari not a adalah {0}",bukan_a);Console.WriteLine(" hasil dari not b adalah {0}", bukan_b);Console.Read(); Console.Read();

}

1.9 Latihan II

1. Sebutkan perbedaan antara tipe data string dan boolean.

Simbol Keterangan! NOT

&& short-circuit AND

|| short-circuit OR

Page 18: Modul pemrograman bahasa C# Fundamental 592013.docx

3

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?

Operasi

Page 19: Modul pemrograman bahasa C# Fundamental 592013.docx

Penyeleksian Kondisi (IF)

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

1.1.1 Pernyataan If-Then-ElsePengecekan kondisi merupakan suatu aspek terpenting dalam

pemrograman. Pengecekan kondisi ini sudah ada sejak bahasa assembly. C# juga menyediakan pengecekan kondisi berupa if..then.. else. Struktur dari pernyataan. Struktur dari pernyataan kondisi dalam C# dinyatakan seperti berikut:

Contoh 3.1: Menampilkan Grade Pada Contoh 2.3

staticvoid Main(String[] args){

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

IF (Kondisi)

{ Keputusan;}

Else

{Keputusan;}

Page 20: Modul pemrograman bahasa C# Fundamental 592013.docx

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

1.1.2 Pernyataan Switch Case

Page 21: Modul pemrograman bahasa C# Fundamental 592013.docx

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

Contoh 3.2:

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

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

Switch (Expresion)

{

Case kondisi1 :

Keputusan 1;

Break;

Default:

Keputusan n;

Break;

}

Page 22: Modul pemrograman bahasa C# Fundamental 592013.docx

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 23: Modul pemrograman bahasa C# Fundamental 592013.docx

4Proses 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.

1.2 Struktur ForDengan menggunakan for, kita menginstruksikan C# untuk melakukan

iterasi data yang dimulai dengan nilai counter yang kita definisikan.

Page 24: Modul pemrograman bahasa C# Fundamental 592013.docx

Contoh 4.1

staticvoid Main(String[] args) {

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

}

Contoh 4.2

staticvoid Main(String[] args) {

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

}

For (Niali awal; kondisi; Increment/Decrement)

{

Pernyataan yang akan diulang;

}

Page 25: Modul pemrograman bahasa C# Fundamental 592013.docx

1.3 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

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

Tampilan

While (Ekspresi boolean)

{

Statement perulangan;

}

Page 26: Modul pemrograman bahasa C# Fundamental 592013.docx

1.4 Struktur do.. whileLooping 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

staticvoid Main(String[] args) {

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

}

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

Do

{

}

While(Ekspresi Boolean)

Foreach (tipe_data nama_var in nama_array)

{

Statement;

}

Page 27: Modul pemrograman bahasa C# Fundamental 592013.docx

5

Contoh 4.5

staticvoid Main(String[] args) {

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

}

1.6 Deret dalam perulangan1.6.1 Fibonacci

1.7 Latihan

Pengenalan OOP

1.8 Pengantar OOP

Secara umum, sebuah program komputer terdiri atas kode dan data yang dapat berupa variable maupun konstanta. Kode dan data tersebut

Page 28: Modul pemrograman bahasa C# Fundamental 592013.docx

kemudian diatur sehigga dapat bekerja sama untuk menghasilkan program keluaran yang akan digunaan untuk menyelesaikan sebuah permasalahan.

Pada model pemrograman prosedural alur kerja program berorientasi pada process (Process-Oriented). Program merupakan gabungan dari data dan kode dengan struktur program yang berupa urutan proses. Pendekatan semacam ini memiliki kelemahan, yaitu akan menemui bayak kesulitan ketika menangani kasus-kasus yang kompleks, membutuhkan ribuan baris kode. Kondisi seperti itu akan menyulitkan programmer dalam melacak kesalahan (debugging), meyisipkan modul bar dalam program, dan sebagaiya.

Pemograman berorientasi objek (PBO) hadir untuk mjadi solusi kelemahan yang terdapat pada pendekatan prosedural biasa. Dalam pemrograman berorientasi objek, pendekatan yang dilakukan adalah dengan memodelkan sistem menjadi objek-objek. Objek dapat didefinisikan sebagai suatu entitas yang memiliki data dan method.

Object Oriented Programing (OOP) atau yang lebih dikenal dengan pemrograman berorientasi objek adalah suatu teknik atau pendekatan baru dalam dunia pemrograman. Sebelum teknik OOP populer para programmer sering menggunakan teknik prosedural dalam membuat program untuk kebutuhan-kebutuhan mereka. Selanjutnya ketika OOP ternyata lebih mampu menyelesaikan masalah daripada teknik prosedural, sebagian besar programmer mulai menggunakan teknik OOP.

Dalam prosedural programming kebanyakan fungsi dalam sebuah program ditulis dalam beberapa modul atau dapat lebih dari satu modul tergantung dari jenis aplikasi yang dibuat. Modul-modul ini memiliki ketergantungan antara yang satu dengan yang lainnya. Bila anda ingin mengubah satu modul maka anda harus mengganti baris-baris yang telah anda buat pada modul lainnya yang berkaitan dengan modul tersebut. Dengan teknik 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.

1.9 Pengertian Class

Page 29: Modul pemrograman bahasa C# Fundamental 592013.docx

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.

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

OBJEK

Page 30: Modul pemrograman bahasa C# Fundamental 592013.docx

Main class dalam C# selalu bernama Class Program

Main Method

1.9.2 Cara Membuat Class Baru

1. Klik Menu View -> Pilih Solution Explorer

2. Jendela Solution Explorer akan muncul di sebelah kanan

Page 31: Modul pemrograman bahasa C# Fundamental 592013.docx

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

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

Page 32: Modul pemrograman bahasa C# Fundamental 592013.docx

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

Page 33: Modul pemrograman bahasa C# Fundamental 592013.docx

1.10 ObjectSeperti 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.

1.10.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 Sapi();

Page 34: Modul pemrograman bahasa C# Fundamental 592013.docx

1.10.2 Contoh penggunaan Objek

Buatlah sebuah project baru

Beri nama project latihanobjek

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

Page 35: Modul pemrograman bahasa C# Fundamental 592013.docx

Instantiasi object pada program.cs

Page 36: Modul pemrograman bahasa C# Fundamental 592013.docx

Running

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

Page 37: Modul pemrograman bahasa C# Fundamental 592013.docx

Tambahkan kode program berikut ini pada class Robot

Mengakses Method pada Program.cs

Page 38: Modul pemrograman bahasa C# Fundamental 592013.docx

Running

1.10.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 592013.docx

1.10.4.1Access 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. PublicMenyatakan bahwa anggota class tersebut (attribut/method/property) boleh diakses oleh siapa saja (class yang lain).

b. PrivateMenyatakan bahwa anggota class tersebut (attribut/method/property) hanya boleh diakses oleh dirinya sendiri (class itu sendiri).

c. ProtectedMenyatakan 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 592013.docx

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”

Sekarang ubah kode program yang ada pada “Robot.cs”

Page 41: Modul pemrograman bahasa C# Fundamental 592013.docx

Ubah juga kode program yang ada pada “Program.cs”

Running Program

Page 42: Modul pemrograman bahasa C# Fundamental 592013.docx

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.

1.10.4.2Property

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

Buatlah sebuah project baru dengan nama “latihanproperty”

Lalu tambahkan kelas baru dengan nama “Malware.cs”

Page 43: Modul pemrograman bahasa C# Fundamental 592013.docx

Berikan kode program berikut ini pada “Malware.cs”

Membuat Propertyo Blok attributeo Klik Kanan pilih refractoro Pilih Encapsulate Fieldo Pilih all, ok

Page 44: Modul pemrograman bahasa C# Fundamental 592013.docx

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

Page 45: Modul pemrograman bahasa C# Fundamental 592013.docx

Running Program

1.10.4.3Hubungan antara Class, Attribute, Method

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

Robot

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

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

Attribute (+ = public) (- = private)

Attribute (+ = public) (- = private)

Class

Page 46: Modul pemrograman bahasa C# Fundamental 592013.docx

6 Pewarisan/Inheritance

1.11 Pengertian Inheritance

Inheritance/Pewarisan adalah suatu cara pembuatan class baru dengan menggunakan kembali class yang sudah didefinisikan sebelumnya dengan menambahkan attribute dan method baru. Sehingga demikian class baru yang dibuat tetap memiliki attribute dan method yang dimiliki oleh class induknya. Pada konsep pewarisan/ inheritance terdapat beberapa istilah yang perlu diketahui yaitu:

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

b. Super Class, digunakan untuk menunjukkan class induk secara hirarkis dari sub class (class anak)

1.11.1 Studi KasusBuatlah 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:

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 47: Modul pemrograman bahasa C# Fundamental 592013.docx

Virus.cs

Trojan.cs

Worm.cs

Page 48: Modul pemrograman bahasa C# Fundamental 592013.docx

Program.cs

Running Program

1.11.2 Latihan Inheritance

Page 49: Modul pemrograman bahasa C# Fundamental 592013.docx

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

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

Page 50: Modul pemrograman bahasa C# Fundamental 592013.docx

Malware.cs

Virus.cs Menandakan class virus turunan dari class malware

Trojan.cs

Worm.cs

Page 51: Modul pemrograman bahasa C# Fundamental 592013.docx

Program.cs

Running Program

Page 52: Modul pemrograman bahasa C# Fundamental 592013.docx

1.12 Virtual dan Override Methode

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

Sedangkan virtual adalah keyword yang digunakan pada method yang ada pada parent class yang nantinya akan di override melalui method yang ada di sub class. Jadi jika pada class turunan/ sub class ditambahkan keyword override, maka pada super class method yang nantinya akan di override/ ditimpa menggunakan keyword “Virtual”. Berikut adalah contoh penerapan virtual dan override method.

Malware.cs

Menandakan Menyerang dapat di override

Page 53: Modul pemrograman bahasa C# Fundamental 592013.docx

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

Running Program

Page 54: Modul pemrograman bahasa C# Fundamental 592013.docx

Latihan

Ketentuan soal1. Buatlah program sesuai dengan class diagram diatas2. Isilah method-method yang ada dengan data berikut3. Gunakan fitur-fitur oop khususnya inheritance (overriding)

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 Penyelam Robot [nama] menyelam sedalam 2 meterAtursensor

Robot Mengatur sensitifitas [jenissensor]

Atursensor

Robot Penyelam Mengatur sensitifitas tekanan air pada [jenissensor]

Page 55: Modul pemrograman bahasa C# Fundamental 592013.docx

7 Polymorphism

1.13 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 superclass2. Method yang dipanggil juga harus merupakan method yang ada

pada superclass3. Signature method harus sama baik yang ada pada superclass

ataupun yang ada ada subclass4. Method access attribute pada subclass tidak boleh lebih terbatas

dari pada yang ada di super class

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

Page 56: Modul pemrograman bahasa C# Fundamental 592013.docx

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

Siswa.cs

Program.cs

Page 57: Modul pemrograman bahasa C# Fundamental 592013.docx

Running Program

Page 58: Modul pemrograman bahasa C# Fundamental 592013.docx

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

1.15 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 index3. Index array secara default dimulai dari 0

1.15.1 Deklarasi Array Dimensi Satu

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

Tipedata_namavariable = new_array[ukuran]

Page 59: Modul pemrograman bahasa C# Fundamental 592013.docx

Arraydimensi1.cs

Page 60: Modul pemrograman bahasa C# Fundamental 592013.docx

Program.cs

Running Program

Page 61: Modul pemrograman bahasa C# Fundamental 592013.docx

1.16 Array Multidimensi

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

1.16.1 Contoh array multidimensi

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

Page 62: Modul pemrograman bahasa C# Fundamental 592013.docx

Program.cs

Running Program

1.17

Array pada OOP

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

Page 63: Modul pemrograman bahasa C# Fundamental 592013.docx

didalam pemrograman berorientasi pada objek. Berikut ini perubahan coding pada class malware pada project latihaninheritance

1.17.1 Contoh ArrayList Program.cs

Running program

Page 64: Modul pemrograman bahasa C# Fundamental 592013.docx

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

1.18.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 592013.docx
Page 66: Modul pemrograman bahasa C# Fundamental 592013.docx

Running Program

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

Elemen yang diambil dari sini

Elemen baru akan ditambah dari sini

Page 67: Modul pemrograman bahasa C# Fundamental 592013.docx

Program.cs

Page 68: Modul pemrograman bahasa C# Fundamental 592013.docx

Running program

1.18.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 akan ditambah

dan diambil dari sini

Page 69: Modul pemrograman bahasa C# Fundamental 592013.docx

Running program

Page 70: Modul pemrograman bahasa C# Fundamental 592013.docx

9 Sorting & Searching

1.19 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. Exchangea. Bubble Sortb. Shaker Sort

2. Selection3. Insertion

1.19.1 Bubble SortPada metode bubble sort, proses pengurutan dimulai dengan

membandingkan elemen pertama untuk mendapatkan angka terbesar. Lalu

Page 71: Modul pemrograman bahasa C# Fundamental 592013.docx

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

Running Program

Page 72: Modul pemrograman bahasa C# Fundamental 592013.docx

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

1.19.3 Selection Sort

Page 73: Modul pemrograman bahasa C# Fundamental 592013.docx

Mencari elemen yang tepat untuk diletakkan di posisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan.

Running Program

Page 74: Modul pemrograman bahasa C# Fundamental 592013.docx

1.19.4 Insertion Sort

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

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

Page 75: Modul pemrograman bahasa C# Fundamental 592013.docx

10

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 dicaric. Proses searching berhenti karena salah satu alasan.

Success – Found the target key End of List – No more records to compare

1.20.2 Binary Search

Abstract & Interface

1.21 Pengertian Abstract ClassClass abstract adalah sebuah fitur yang tersedia dalam pemrogrman

berorientasi pada objek yang mana mengijinkan superclass untuk mendeklarasikan sebuah method tanpa implementasi. Implementasi dari method tersebut diberikan oleh sub-sub class dari class tersebut.

Page 76: Modul pemrograman bahasa C# Fundamental 592013.docx

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

Page 77: Modul pemrograman bahasa C# Fundamental 592013.docx

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

Tambahkan 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 78: Modul pemrograman bahasa C# Fundamental 592013.docx

Running Program

1.22Interface

Interface dari sebuah class merupakan kontrak antara kode program dari klien dengan class yang menyediakan layanan. Class yang nyata harus mengimplementasikan setiap method yang dideklarasikan. Inteface berfungsi sebagai pola/ kontrak (kumpulan method/ property) yang harus dibuat oleh class yang mengimplmentasinya. Di dalam interface kita hanya membuat prototype dari method/ property saja tanpa menggunakan access identifier. Access identifier anggota interface adalah public (secara otomatis). Agar lebih jelas, mari kita buat sebelumnya. Pertama-tama pilihlah project > Add New Item (CTRL+SHIFT+A)

Page 79: Modul pemrograman bahasa C# Fundamental 592013.docx

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

1.22.1 Latihan Interface Buatlah sebuah project baru dengan nama latihan interface Buatlah class baru dengan nama mammal.cs, dan kketikkan kode

program berikut ini

publicabstractclassMammal {publicabstractvoid makeanoise(); }}

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

Page 80: Modul pemrograman bahasa C# Fundamental 592013.docx

Ketiklah kode program berikut ini pada Ihead

Ketiklah kode program berikut ini pada Inameable

Page 81: Modul pemrograman bahasa C# Fundamental 592013.docx

Program.cs

Running program

1.22.2 Latihan

Page 82: Modul pemrograman bahasa C# Fundamental 592013.docx

11 Graphical User Interface (GUI)

1.23 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

Page 83: Modul pemrograman bahasa C# Fundamental 592013.docx

Tampilan Windows Form Application

Anda dapat mensetting tampilan IDE sesuai dengan selera anda

Page 84: Modul pemrograman bahasa C# Fundamental 592013.docx

ToolboxToolbox 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

Page 85: Modul pemrograman bahasa C# Fundamental 592013.docx

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

Buatlah seperti ini

Page 86: Modul pemrograman bahasa C# Fundamental 592013.docx

Solution ExplorerSolution 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 kodenyao Classo Moduleo Class Diagramo File XMLo File Proyeko File Report

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

Page 87: Modul pemrograman bahasa C# Fundamental 592013.docx

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.

Page 88: Modul pemrograman bahasa C# Fundamental 592013.docx

1.24 Event

Tidak hanya makhluk hidup yang memiliki tingkah laku (behaviour) tetapi pada dasarnya salah satu alasan terciptanya teknologi adalah untuk menggantikan peran makhluk hidup khususnya manusia agar terciptanya kehidupan yang dinamis. Dengan alasan tersebutlah objek didalam form pada sebuah class patutnya memiliki tingkah laku yang nantinya akan menjadi acuan bagi proses yang akan dijalankan. Sebagai contoh setelah anda membuat tampilan pada form1 ketika program di eksekusi, kita akan menemukan tombol tutup dapat berperilaku seperti halnya tombol di dunia nyata, akan tetapi apa yang terjadi setelah tombol tersebut ditekan? (what’s next?) pada kasus ini 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:

Page 89: Modul pemrograman bahasa C# Fundamental 592013.docx

12 GUI Lanjutan

1.25 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

Page 90: Modul pemrograman bahasa C# Fundamental 592013.docx

Running program

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

Page 91: Modul pemrograman bahasa C# Fundamental 592013.docx

Running Program

3. Penerapan Checkbox dan Listbox

Buatlah design form seperti berikut ini:

Page 92: Modul pemrograman bahasa C# Fundamental 592013.docx

Running Program

Page 93: Modul pemrograman bahasa C# Fundamental 592013.docx

1.26 Penerapan OOP pada GUI

DAFTAR PUSTAKA