Anda di halaman 1dari 7

Disusun Oleh : Asep Ahmad Sukmadi

DIKTAT MATA KULIAH PEMROGRAMAN LANJUT

BAB III CLASS & ENKAPSULASI CLASS

TEKNIK INFORMATIKA

Class adalah rancangan / sketsa / deskripsi dari sebuah objek dimana di dalamnya memiliki 2 macam anggota yaitu field / atribut dan juga method/fungsi. Contoh sederhana yang dapat digambarkan misalnya Mahasiswa. Kita akan menganalisis field/atribut apa saja yang di miliki mahasiswa (contoh : Nama, NIM, jurusan). Sedangkan method dari class mahasiswa dapat dikatakan apa yang dapat dilakukan oleh mahasiswa(contoh: masuk,ujian,nilai). Jika anda membuat suatu aplikasi maka class dapat digambarkan dalam sebuah diagram. Class mahasiswa diatas jika digambarkan dalam bentuk diagram maka akan seperti berikut:

Mahasiswa

Nama class Field/atribut dari class mahasiswa Property dari class mahasiswa

-_Nama : string -_NIM : string -_Jurusan : string + Nama : string + NIM : string + Jurusan : string + Masuk(): void + Ujian():void + Nilai():int

Method dari class mahasiswa

Field/atribut dalam sebuah class memiliki Access Identifier. Access Identifier sendiri memiliki 2 jenis yaitu public dan private. Pada diagram class mahasiswa diatas terdapat property. Property digunakan untuk mengambil atau mengubah nilai dari sebuah field yang Acces Identifier-nya bersifat private.

Hal. 1

Disusun Oleh : Asep Ahmad Sukmadi Contoh source code : Class mahasiswa
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace mhs { class mahasiswa Nama class { public string nama; Field/Atribut public string jurusan; public void masuk() { Console.WriteLine("{0} Masuk pukul 07:00 ", nama); } public void jurus() { Console.WriteLine("Jurusan {0} ", jurusan); } } }

Method (Masuk dan jurus)

Program .cs
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace mhs { class Program { static void Main(string[] args) { Membuat pointer mahasiswa a; a = new mahasiswa();

Membuat Objek

Console.Write("Nama Mahasiswa : "); a.nama = (Console.ReadLine()); Console.Write("Jurusan : "); a.jurusan = (Console.ReadLine()); a.masuk(); a.jurus(); Console.ReadLine(); } } }
Memanggil method masuk dan jurus dari class mahasiswa

Hal. 2

Disusun Oleh : Asep Ahmad Sukmadi Penjelasan dari project di atas, tahap awal kita membuat sebuah class bernama mahasiswa. Kemudian kita beri beberapa field/atribut (nama,jurusan) dan method/fungsi (masuk() dan jurus()) didalamnya. Pada fungsi main() dalam program.cs diatas terdapat mahasiswa a; yang berarti kita
sedang membuat pointer, dalam hal ini a adalah nama pointer, pointer tersebut bukanlah objek

melainkan pointer untuk objek mahasiswa. Ketika anda mengetikan itulah kita sedang membuat objek mahasiswa.

a = new mahasiswa(); saat

Penjelasan diatas menjadi hal yang mendasar untuk mengakses sebuah class yang di didalamnya ada 2 tahap yaitu buat dahulu pointer (nama_class nama_pointer;) kemudian buat objeknya (nama_pointer = new nama_class();). Contoh penulisan ada 2 cara :
mahasiswa a; a = new mahasiswa();

atau

mahasiswa a = new mahasiswa();

Access Identifier (Modifier)


Access Identifier (modifier) berfungsi untuk menentukan hak akses (baik membaca atau mengubah) anggota dari sebuah class. Access Identifier terdapat 3 jenis yaitu public (+), private(-) dan protected (#). Public Private Protected : anggota class tersebut dapat di akses oleh method dari class yang lain. : anggota class tersebut hanya dapat diakses oleh method dalam class itu sendiri. : anggota class tersebut hanya dapat diakses oleh method dalam class itu sendiri beserta seluruh class turunannya.

Method Getter / Setter


Modifier private hanya dapat diakses oleh anggota classnya itu sendiri, namun private tersebut bisa saja di akses oleh class yang lain dengan menggunakan method getter / setter. Method getter / setter digunakan untuk mengakses sebuah anggota class lain dengan access identifier private. Penjelasan dari kedua method tersebut :

Hal. 3

Disusun Oleh : Asep Ahmad Sukmadi Method Getter Method Setter : method yang digunakan untuk mengubah nilai dari sebuah atribut yang memiliki modifier bersifat private : method yang digunakan untuk mengambil nilai dari sebuah atribut yang memilik modifier bersifat private.

Contoh : 1. Buatlah sebuah project baru dan buat class (segi empat.cs).
class segiempat { private int p; private int l; private int luas; public void panjang(int pbaru)//methode setter untuk field p { p = pbaru; } public int getpanjang()//methode getter untuk field p { return p; }

public void lebar(int lbaru)//methode setter untuk field l { l = lbaru; } public int getlebar()//methode getter untuk field l { return l; } public int luas_segi_empat() { luas = p * l; Console.WriteLine("Luas = {0}", luas); return luas; } }

Pada kotak merah yang pertama kita membuat 2 method untuk satu field (private int p;) dengan nama yang berbeda yaitu setter (public void panjang(int pbaru)) dan getter (public
int lihatpanjang()). Hal yang sama dilakukan pada field berikutnya (private int l;) terdapat

method setter dan getter. Dari field tersebut terdapat method setter yang berarti merubah nilai dari sebuah field yang bersifat private yang isinya (p = pbaru;) untuk field p dan (l = lbaru;) untuk field l, saat itulah kita Hal. 4

Disusun Oleh : Asep Ahmad Sukmadi sedang merubah nilai field private didalam method public public void panjang(int pbaru) dan
(public void lebar(int lbaru)) dimana method public bisa di akses dari class yang lain.

Method getter dari masing-masing field (public int getpanjang()) untuk field p dan (public
int getlebar()) untuk field l terdapat nilai balik (return p; dan return l;) hal ini adalah

pengambilan nilai dari field yang dimaksud. 2. Tambahkan coding kedalam program utama (program.cs) untuk memanggil class segiempat.
class Program { static void Main(string[] args) { segiempat a; a = new segiempat(); Console.Write("Masukan panjang : "); a.panjang(int.Parse(Console.ReadLine()));//method setter panjang Console.Write("Masukan lebar : "); a.lebar(int.Parse(Console.ReadLine()));//method setter lebar a.luas_segi_empat(); //proses dari method segiempat Console.ReadLine(); } }

Penjelasan dari program.cs. Pertama kita membuat pointer dan objek (segiempat a;) dan
(a = new segiempat();) setelah itu inputan untuk dua nilai yaitu panjang dan lebar dengan

mengakses method setternya dari class segiempat a.panjang(int.Parse(Console.ReadLine()));


dan a.lebar(int.Parse(Console.ReadLine()));

Property
Property memiliki fungsi yang sama dengan method getter / setter. Property berfungsi untuk membungkus sebuah field dimana method getter dan setter disatukan dalam sebuah property. Dengan demikian kita tidak perlu lagi membuat dua method yang berbeda untuk satu field private. Agar lebih jelas perhatikan contoh project yang menggunakan property : 1. Buat sebuah project baru dan buat class segitiga.cs

Hal. 5

Disusun Oleh : Asep Ahmad Sukmadi


using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace property { class segitiga { private float a; private float t; private float l; public float alas { Get {return a;} set { a = value; } } public float tinggi { get { return t; } set { t = value; } } public float luas() { l= (alas * tinggi) / 2; return l; } } }

Property alas

Property tinggi

Method luas

Pada class diatas terdapat dua buah property yaitu alas dan tinggi. Penjelasan dari salah satu property tersebut :
public float alas get{return a;} set value

float adalah tipe data dari field a yang dibungkus oleh property alas, nama property nya adalah alas. keyword get digunakan bahwa property alas dapat mengembalikan nilai. Keyword set digunakan bahwa property alas dapat mengganti nilai dari sebuah field Keyword value menyatakan nilai yang dimasukan ketika memanggil set dari property ini.

Perbedaan penulisan property dan method Property tidak di akhiri tanda () sedangkan method di akhiri tanda ().

Hal. 6

Disusun Oleh : Asep Ahmad Sukmadi Program.cs


class Program { static void Main(string[] args) { segitiga a = new segitiga(); Console.Write("Masukan alas :"); a.alas = int.Parse(Console.ReadLine()); Console.Write("Masukan tinggi : "); a.tinggi = int.Parse(Console.ReadLine()); Console.Write("Luas segitiga : {0}", a.luas()); Console.ReadLine(); } }

Enkapsulasi
Enkapsulasi adalah proses untuk melindungi field/atribut anggota class dari class lain. Pembungkusan tersebut dapat dilakukan dengan membatasi access identifier/modifier,

menggunakan method getter/setter, dan menggunakan property. Beberapa alasan digunakannya enkapsulasi, yaitu : 1. Menjaga data-data penting dari sebuah class agar tetap aman. 2. Memilah data mana yang boleh di rubah dari luar mana yang tidak. 3. Menjaga agar nilai data field sebuah class tetap valid (sesuai dengan batasan yang kita inginkan).

Hal. 7

Anda mungkin juga menyukai