01 dasar object oriented programming.doc

Upload: david-haryanto

Post on 09-Mar-2016

37 views

Category:

Documents


0 download

TRANSCRIPT

C# untuk Pemula dengan Visual C# 2005

C# untuk Pemula dengan Visual C# 2005

Pengenalan Microsoft Visual C# 2005

Membuat ProjectSecara sederhana project dapat didefinisikan sebagai direktori yang di dalamnya terdapat file dan resource lain yang dibutuhkan oleh aplikasi yang kita buat.

Untuk membuat Project dapat dilakukan dengan cara memilih pada menu, File | New Project atau dengan menekan tombol Ctrl + Shift + N.

Setelah itu tinggal memilih jenis project apa yang diinginkan.

Setelah itu simpan project, dengan memilih File | Save atau dengan menekan tombol Ctrl + S. tentukan lokasi/direktori tempat project akan disimpan.

Hello World dengan Console ApplicationBerikut langkah-langkah yang harus diikuti :

a. Buat project dengan tipe Console Application yang dapat dipilih pada window New Project | Visual Studio installed templates.b. Buka file Program.cs, dan buat isi Program.cs menjadi seperti berikut.

using System;

using System.Collections.Generic;

using System.Text;

namespace QCollege

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Hello World");

}

}

}

c. Kompilasi program yang telah dibuat dengan cara klik kanan pada solution kemudian pilih Build Solution.

d. Jalankan program yang telah dibuat dengan cara, menekan tombol Ctrl + F5 atau memilih Debug | Start Without Debugging pada menu.

Menambah Project pada SolutionSuatu solution bisa terdiri atas lebih satu project. Tipe project yang ada pada satu solution bisa berbeda.Berikut contoh menambahkan project dengan tipe class library pada Solution QCollege.

a. Klik kanan pada solution, kemudian pilih Add | New Project.

b. Pada window New Project, pilih tipe project Class Library. Dan beri nama QCollege.ClassLibrary.Matematika.Menggunakan Suatu Project sebagai Reference bagi Suatu Project LainnyaPada solution terdapat dua project. Suatu project dapat menjadi reference untuk project lainnya. Sebagai contoh project QCollege.ClassLibrary.Matematika agar class-class-nya dapat digunakan oleh project QCollege maka dapat dilakukan langkah berikut.a. Klik kanan pada project QCollege. Pilih Add Reference.

b. Pada window Add Reference, pilih tab Project kemudian pilih project QCollege.ClassLibrary.Matematika.

c. Kemudian klik tombol OK.

Hasilnya bisa dilihat seperti berikut.

Dasar Object Oriented ProgrammingKata-Kata penting dalam Object Oriented ProgrammingAda 4 hal yang penting dan mesti kita ingat ketika belajar Object Oriented Programming :

1. Class, sesuatu disekitar kita dapat dibedakan ke dalam class-class yang berbeda. Sebagai contoh meja, kursi, manusia, kucing atau pohon. Class mengkategorikan atau mengelompokkan sesuatu yang sama.

2. Object, dalam setiap class akan terdapat object-object spesifik. Sebagai contoh Budi, Wati dan Adi yang masuk dalam class manusia. Ketiga orang tadi merupakan object yang dibentuk dari class Manusia. Setiap object akan memiliki ciri yang unik.3. Setiap object pasti memiliki banyak property. Property akan dapat menerangkan object dengan lebih jelas. Sebagai contoh Budi akan mempunyai property seperti tinggi, berat, warna kulit dan sebagainya.4. Method adalah apa yang bisa dikerjakan oleh suatu object, sebagai contoh Budi bisa berjalan atau berbicara.

Selain itu juga ada hal-hal lainyang penting, yaitu :

1. Event adalah sesuatu yang dapat dilakukan terhadap object. Sebagai contoh, Wati dapat dipanggil. Dipanggil merupakan event. Event atau aksi yang dilakukan pada suatu object akan mempengaruhi object tersebut. Dalam dunia komputer,contoh event diantaranya adalah tombol diklik atau cursor mouse digerakkan.

2. Action merupakan sesuatu yang dilakukan oleh object. Sebagai contoh ketika Budi dipanggil maka Budi datang mendekat. Dalam dunia komputer, ketika tombol diklik maka akan diputar lagu.

Perbandingan Implementasi Konsep Object Oriented Programming Antara PHP dan C#Class

Apa saja yang ada di dunia ini dapat kita kelompokkan dalam suatu group, yang bisa kita sebut sebagai class.

Sebagai contoh, misalnya kelas pada suatu sekolah. Di dalam kelas tersebut kita akan menemukan kumpulan siswa yang yang ciri-cirinya kan berbeda dari satu kelas dengan kelas lainnya. Biasanya siswa dengan umur dan kemampuan yang sama akan dikelompokkan dalam suatu kelas.Dengan adanya kesamaan tersebut maka siswa pada suatu kelas dalam melakukan hal yang sama atau dapat diperlakukan dengan sama. Sebagai contoh siswa kelas 3 akan dapat mengerjakan soal-soal kelas 3 juga.

Tapi bukan berarti setiap siswa dalam kelas itu identik sama, yang sama hanya hal-hal umum seperti kemiripan umur dan kemampuan mereka. Tetapi tinggi badan atau bentuk muka akan mempunyai perbedaan.Contoh class yang lain dan sering kita temui adalah, pembagian mahluk hidup menjadi :

a. Tumbuhan.b. Hewan (manusia di anggap bagian dari class hewan, karena kemiripan ciri-ciri).

Implementasi Class pada PHPBerikut adalah cara penulisan class pada PHPHewan.php

class Hewan

{

}

Implementasi Class pada C#

Hewan.cs

class Hewan

{

}

Object

Dari class yang telah dibuat, maka dapat dibuat object yang spesifik dan tidak ada yang identik (sama). Pada gambar bisa dilihat terdapat object yang dilingkari merah, yang merupakan class Hewan.

Sebagai contoh berikut adalah daftar object yang dibuat dari class Hewan :

a. kera.b. gajah.

c. singa.

Implementasi Object pada PHP

ObjectHewan.php

include_once(Hewan.php);$kera = new Hewan();$gajah = new Hewan();

$singa = new Hewan();

Implementasi Object pada C#Program.cs

Hewan kera = new Hewan();

Hewan gajah = new Hewan();

Hewan singa;

singa = new Hewan();

Bisa dilihat perbedaan antara implementasi PHP dan C#. C# merupakan bahasa yang mempunyai ciri strong type, artinya setiap variable (ini hanya istilah, karena nanti bukan hanya variable tapi juga object, property dan lain-lain) harus diberikan tipe datanya. Pada contoh di atas, object mesti diberikan dahulu tipe data-nya. Ada dua cara, yaitu :Hewan kera = new Hewan();

Atau

Hewan singa;

singa = new Hewan();

Field dan Tipe Data

Jika kita membayangkan hewan, maka kita dapat menyebutkan ciri-ciri hewan sebagai berikut :

a. Jenis hewan.

b. Tinggi.

c. Panjang.

d. Jumlah kaki.

e. Warna.

f. Mempunyai ekor.

g. Apakah mamalia.

Ketika kita sudah memilih suatu hewan, misalnya kucing maka kita dengan mudah dapat memberikan nilai dari ciri-ciri di atas, yaitu :

a. Jenis hewan = kucing.

b. Tinggi = 25 cm.

c. Panjang = 40 cm.

d. Jumlah kaki = 4.

e. Warna = hitam.

f. Mempunyai ekor = benar.

g. Apakah mamalia = benar.

Pada C#, ciri-ciri tadi bisa disebut Field, dalam PHP mungkin biasa disebut Property.Seperti yang telah disebutkan di atas bawah C# merupakan bahasa pemrograman yang mempunyai ciri strong type, artinya setiap variable harus diberikan tipe datanya. Adapun tipe data yang dimiliki oleh C# diantaranya adalah :

a. String.

b. Number.

c. Boolean.

d. Dan lain-lain.

Bagaimana field dan bagaimana memberikan tipe data pada field tersebut, berikut adalah implementasinya.

Implementasi Property pada PHPHewan.php

class Hewan

{

var jenisHewan;

var tinggi;

var panjang;

var jumlahKaki;

var warna;

var isPunyaEkor;

var isMamalia;

}

Karena PHP bukan bahasa yang mempunyai ciri strong type, maka setiap property (bukan field) tidak perlu diberikan tipe datanya.

Dan berikut bagaimana memberikan nilai-nilai property, pada suatu object.

ObjectHewan.php

include_once(Hewan.php);

$si_manis = new Hewan();

$si_manis->jenisHewan = kucing;

$si_manis->tinggi = 25;

$si_manis->panjang = 40;

$si_manis->jumlahKaki = 4;

$si_manis->warna = hitam;

$si_manis->isPunyaEkor = true;

$si_manis->isMamalia = true;

Implementasi Field pada C#Hewan.cs

class Hewan

{

string jenisHewan;

int tinggi;

int panjang;

int jumlahKaki;

string warna;

bool isPunyaEkor;

bool isMamalia;

}

Berikut cara memberikan nilai-nilai pada Field.

Program.cs

Hewan si_manis = new Hewan();

si_manis.jenisHewan = kucing;si_manis.tinggi = 25;

si_manis.panjang = 40;

si_manis.jumlahKaki = 4;

si_manis.warna = hitam;

si_manis.isPunyaEkor = true;

si_manis.isMamalia = true;

Pada C#, terdapat keyword private, protected dan public yang bisa dilekatkan pada field yang salah satu tujuannya adalah untuk memberi batasan akses terhadap sebuat field.

Dari gambar di atas maka bisa keyword private, protected dan public bisa dijelaskan seperti berikut :a. Private, adalah level proteksi untuk bayi yang berada di dalam rumah. Si bayi tidak boleh keluar dari rumah karena mempunya level proteksi paling tinggi. Hanya orang-orang yang dapat dipercaya yang boleh berinteraksi dengan si bayi, dalam hal ini mungkin adalah orang-orang yang berada di dalam rumah. Dalam implementasinya, field dengan level proteksi private hanya dapat diakses di dalam class tersebut.b. Protected, adalah level proteksi untuk anak yang sedang bermain bola di dalam pagar. Orang yang ingin berinteraksi dengan anak ini harus juga berada di dalam pagar juga. Dalam implementasinya, field dengan level proteksi protected dapat diakses oleh class lainnya tetapi harus mempunyai hubungan yang dekat.c. Public, dapat dianggap tidak mempunyai proteksi artinya setiap orang dapat melakukan interaksi dengan anak yang mempunya level proteksi ini. Dalam implementasinya, field dengan level proteksi public dapat diakses oleh semua class lain.Berikut cara pemanfaatan keyword private, protected dan public.Hewan.cs

class Hewan

{

public string jenisHewan;

public int tinggi;

public int panjang;

public int jumlahKaki;

public string warna;

bool isPunyaEkor;

protected bool isMamalia;

private bool isBisaBerenang;}

Field isPunyaEkor, walau tidak diberi level proteksi tapi secara default field tersebut akan mempunyai level proteksi private. Program.cs

Hewan si_manis = new Hewan();

si_manis.jenisHewan = kucing;

si_manis.tinggi = 25;

si_manis.panjang = 40;

si_manis.jumlahKaki = 4;

si_manis.warna = hitam;

si_manis.isPunyaEkor = true;

si_manis.isMamalia = true;

si_manis. isBisaBerenang = false;

Dengan pemberian level proteksi di atas maka nantinya akan terdapat error pada Program.cs, karena class Program.cs tidak boleh untuk berinterasi dengan memberi nilai secara langsung pada field isPunyaEkor, isMamalia dan isBisaBerenang.MethodBiasanya dalam OOP, method dapat didefinisikan sebagai sesuatu yang dapat dilakukan oleh suatu object. Selain itu method dapat kita definisikan juga sebagai langkah-langkah instruksi untuk melakukan sesuatu.Method dibagi atas dua, yaitu :

a. Method yang tidak mengembalikan suatu nilai, dalam bahasa pemrograman lain tipe method ini biasa disebut procedure. b. Method yang dapat mengembalikan suatu nilai, dalam bahasa pemrograman lain tipe method ini biasa disebut function.Berikut contoh method yang tidak mengembalikan suatu nilai.

Implementasi Method pada PHP

Orang.php

class Orang{

var namaDepan;

var namaAkhir;

var umur;

/* method yang tidak mengembalikan suatu nilai */

function TampilkanNamaPenuh()

{

echo(Nama penuh : + this.namaDepan + +

this.namaAkhir);

}

function TulisNamaPenuh(_namaDepan, _namaAkhir)

{

echo(Nama penuh : + _namaDepan + + _namaAkhir);

}

/* method yang mengembalikan suatu nilai */

function TampilkanSisaUmur()

{

sisaUmur = 63 this.umur;

return sisaUmur;

}

}

ObjectOrang.php

include_once(Orang.php);

adi = new Orang();adi->namaDepan = Adi;

adi->namaAkhir = Nugraha;

adi->umur = 20;

adi->TampilkanNamaPenuh();

echo(Sisa umur : + adi->TampilkanSisaUmur());

Implementasi Method pada C#

Orang.cs

class Orang{

public string namaDepan;

public string namaAkhir;

public int umur; /* method yang tidak mengembalikan suatu nilai */

public void TampilkanNamaPenuh()

{

Console.WriteLine(Nama penuh : + this.namaDepan + +

this.namaAkhir);

}

public void TulisNamaPenuh(string _namaDepan, string _namaAkhir)

{

Console.WriteLine(Nama penuh : + _namaDepan + +

_namaAkhir);

}

/* method yang mengembalikan suatu nilai */

public int TampilkanSisaUmur() {

int sisaUmur = 63 this.umur;

return sisaUmur;

}

}

Program.cs

Orang adi = new Orang();

adi.namaDepan = Adi;

adi.namaAkhir = Nugraha;

adi.umur = 20;

adi.TampilkanNamaPenuh();

Console.WriteLine(Sisa umur : + adi.TampilkanSisaUmur());

Keyword Public, Private dan Protected pada MethodSelain bisa dilekatkan pada field, keyword public, private dan protected juga bisa dilekatkan pada method. Secara default level proteksi pada method adalah private.Method Constructor

Method Constructor adalah method yang mempunyai fungsi mendefinisikan bagaimana sebuat object akan dibuat pertama kali.Dalam C# (dan beberapa bahasa pemrograman lainnya), Method Contructor mempunyai ciri sebagai berikut :

a. Nama method constructor sama dengan nama class.

b. Pada method tidak terdapat keyword void seperti pada method yang tidak mengembalikan nilai.

c. Method constructor tidak mengembalikan nilai seperti method yang mengembalikan nilai.

Berikut adalah contoh method constructor pada PHP.

Orang.php

class Orang

{

var namaDepan;

var namaAkhir;

var umur;

/* constructor */

function Orang()

{

this.namaDepan = Reza;

this.namaAkhir = Faisal;

} /* method yang tidak mengembalikan suatu nilai */

function TampilkanNamaPenuh()

{

echo(Nama penuh : + this.namaDepan + +

this.namaAkhir);

}

/* method yang mengembalikan suatu nilai */

function TampilkanSisaUmur()

{

sisaUmur = 63 this.umur;

return sisaUmur;

}

}

Berikut adalah contoh method constructor pada C#.Orang.cs

class Orang

{

public string namaDepan;

public string namaAkhir;

public int umur;

/* constructor */

public Orang()

{

this.namaDepan = Reza;

this.namaAkhir = Faisal;

}

/* method yang tidak mengembalikan suatu nilai */

public void TampilkanNamaPenuh()

{

Console.WriteLine(Nama penuh : + this.namaDepan + +

this.namaAkhir);

}

/* method yang mengembalikan suatu nilai */

public int TampilkanSisaUmur()

{

int sisaUmur = 63 this.umur;

return sisaUmur;

}

}

Apabila kita membuat object dari class Orang, maka secara otomatis field namaDepan dan namaAkhir akan diisi nilainya.

InheritanceAda satu kata yang bisa menjelaskan arti dari inheritance yaitu pewarisan. Dalam kehidupan nyata pewarisan bisa dilihat pada manusia, seorang anak manusia merupakan pewarisan orang tuanya. Karena merupakan hasil pewarisan maka seorang anak akan mempunyai kesamaan sifat dan ciri-ciri fisik dari orang tuanya.Apa yang terjadi apabila ada pewarisan pada kode program kita? Pewarisan terjadi antara class, class yang akan memberikan warisan disebut class induk sedangkan class yang akan menerima warisan bisa disebut class anak. Class anak akan mewarisi semua field dan method milik class induknya yang mempunyai level proteksi public dan protected.Sebelumnya sudah dibuat class Hewan, misalnya akan dibuat class turunan dari class Hewan, class turunan itu adalah Burung.

Implementasi Inheritance pada PHP

Burung.php

include_once(Hewan.php);

class Burung extends Hewan

{

var warnaBulu;}

Implementasi Inheritance pada C#

Burung.cs

class Burung : Hewan

{

public string warnaBulu;

}

Program.cs

Burung elang = new Burung();elang.jenisHewan = Elang Botak;

elang.warnaBulu = Hitam;

Dari contoh di atas bisa dilihat, walaupun pada class burung tidak ada deklarasi field-field dan method seperti yang ada pada class Hewan, tetapi secara otomatis field atau method yang mempunyai hak akses public dan protected dapat dimiliki oleh class Burung.Pada class Burung, dapat ditambahkan juga field atau method yang diinginkan. Kapan kita menggunakan pewarisan dari satu class ke class lain? Kasus yang paling sering terjadi adalah ketika kita ingin memodifikasi suatu class dengan menambahkan field dan method tanpa harus mengubah class tersebut, maka kita cukup menurunkan class tersebut dan melakukan penambahan field dan method pada class turunannya.PolimorfismeMethod pada objek memerlukan informasi yang dilewatkan sebagai parameter sewaktu pemanggilan method. Parameter ini mewakili nilai yang dimasukkan ke suatu method dan harus dikerjakan oleh method tersebut. Pada bahasa pemrograman yang lain, untuk melengkapi dua pekerjaan yang berbeda diperlukan dua fungsi (method) terpisah dengan nama yang berbeda. Polimorfisme, yang mengandung arti satu objek dengan banyak bentuk, adalah konsep sederhana yang memperbolehkan sebuah method memiliki beberapa implementasi yang dipilih berdasarkan tipe parameter yang dilewatkan pada saat pemanggilan method. Hal ini memungkinkan penggunaan nama method yang sama untuk Anjing.

Misalnya, suatu saat method smell pada kelas Anjing mengambil parameter Kucing, yang menyebabkan anjing menggonggong dan mengejar kucing. Method smell juga dapat mengambil Makanan sebagai parameternya, yang akan menyebabkan anjing meneteskan air liurnya dan lari mencari mangkok makanannya. Itulah ilustrasi sifat polimorfisme.Dari uraian di atas, polimorfisme dapat diterangkan secara sederhana sebagai method dengan nama yang sama tetapi berbeda parameter masukkannya. Baik dari tipe data parameter atau jumlah parameter pada method tersebut.

Sebagai contoh bisa dilihat kode berikut di bawah ini.

Orang.cs

class Orang

{

public string namaDepan;

public string namaAkhir;

public int umur;

/* constructor */

public Orang()

{

this.namaDepan = Reza;

this.namaAkhir = Faisal;

}

public Orang(string _namaDepan, string _namaAkhir)

{

this.namaDepan = _namaDepan;

this.namaAkhir = _namaAkhir;

}

public Orang(int umur)

{

this.umur = 0;

}

/* method yang tidak mengembalikan suatu nilai */

public void TampilkanNamaPenuh()

{

Console.WriteLine(Nama penuh : + this.namaDepan + +

this.namaAkhir);

}

public void TampilkanNamaPenuh(string namaDepan, string namaAkhir)

{

Console.WriteLine(Nama penuh : + namaDepan + + namaAkhir);

}

/* method yang mengembalikan suatu nilai */

public int TampilkanSisaUmur()

{

int sisaUmur = 63 this.umur;

return sisaUmur;

}

public int TampilkanSisaUmur(int umur)

{

int sisaUmur = 63 umur;

return sisaUmur;

}

}

Pada contoh di atas bisa dilihat bawah terdapat nama method constructor yang sama dan nama method yang sama tetapi berbeda parameter yang digunakan.Static

Keyword static berfungsi membuat method-method pada suatu class static dapat digunakan tanpa harus melakukan instansiasi atau pembuatan object.

Sebagai contoh :

Orang.cs

class Orang

{

. . .

public static int HitungSisaUmur(int umur)

{

int sisaUmur = 63 umur;

return sisaUmur;

}

}

Cara penggunaannya :

Program.cs

int sisaUmur = Orang.HitungSisaUmur(33);

Console.WriteLine(sisaUmur);

Atau :

Program.cs

Console.WriteLine(Orang.HitungSisaUmur(33));

Mengenal Lebih Jauh Bahasa C#

namespace

Fungsi namespace secara sederhana bisa didefinisikan sebagai cara untuk mengelompokkan class agar mudah dipanggil atau dicari.Cara penulisan namespace bisa dilihat pada contoh berikut :

namespace nama_namespace

{

class nama_class

{

}

}

namespace Reza.ClassLibrary.Matematika

{

public class MatematikaDasar

{

public MatematikaDasar()

{

}

public static void Tambah(int bilangan1, int bilangan2)

{

int hasil = bilangan1 + bilangan2;

Console.WriteLine(hasil);

}

}

}

Cara memanggil namespace yang telah dibuat bisa dilihat contoh berikut :

. . .

using Reza.ClassLibrary.Matematika;

. . .

VariableBebeda dengan PHP, pada C# setiap variable mesti di defenisikan terlebih dahulu tipe datanya. Sebagai contoh di PHP akan ditulis sebagai berikut :

Hasil = 0;Bilangan1 = 5;

Bilangan2 = 6;

Hasil = Bilangan1 + Bilangan2;

isBenar = true;

nama_saya = Reza;

Hasil = Satu;

Dan berikut cara deklarasi variable dan penggunaannya pada C#.

int Hasil;

int Bilangan1;

int Bilangan2;

bool isBenar;

string nama_saya;

Hasil = 0;

Bilangan1 = 5;

Bilangan2 = 6;

isBenar = true;

nama_saya = Reza;

Hasil = Satu;

Apakah yang terjadi pada kode yang ditulis pada PHP? Dijamin tidak akan terjadi error. Dengan kode yang sama, maka akan terjadi error pada kode yang ditulis dengan C#. error yang terjadi karenan variable Hasil yang telah didefinisikan tipe datanya yaitu integer tetapi di akhir baris kode diisi dengan nilai yang bertipe string.

PercabanganSeperti pada PHP, pada C# juga mempunyai fasilitas untuk percabangan dengan menggunakan :

a. if.

b. switch.

Tidak ada perbedaan antara percabangan pada PHP dengan di C#.

Pengulangan

Seperti pada PHP, pada C# juga mempunyai pengulangan dengan for dan while. Yang mesti diingat bahwa variable yang digunakan pada pengulanan mesti dideklarasikan terlebih dahulu tipe datanya. Berikut contohnya :int counter;

counter = 10;

for(int i = 0; i < counter; i++)

{

. . .

}

Bandingkan dengan kode yang ditulis dengan PHP berikut :

counter = 10;

for(i = 0; i < counter; i++)

{

. . .

}

ExceptionDalam bahasa sederhana, kita bisa mendefinisikan exception sebagai cara untuk menangkap dan melembar error. Sebagai contoh bisa dilihat pada kode berikut :Sintaks :

try

{

}

catch

{

}

Implementasi :

float pembagi;

float bilangan;

float hasil;

pembagi = 5;

bilangan = 15;

hasil = 0;

try

{

hasil = bilangan / pembagi;

Console.WriteLine(hasil);

}

catch (Exception ex)

{

Console.WriteLine(ex.Message);

Console.WriteLine(Tidak boleh dibagi dengan 0);

}

Hasil dari kode di atas akan mengeluarkan nilai 3, artinya hasil dari proses yang ada pada blok try akan dikeluarkan. Bagaimana bila nilai dari pembagi diganti dengan nilai 0. Akan terjadi error, dan blog catch akan dieksekusi.