MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK

dokumen-dokumen yang mirip
Bahasa Pemrograman II Modul 1 : Pemrograman Berbasis Objek

Bahasa Pemograman II. Object Oriented Programming

MINGGU VI : PBO (LANJUTAN)

MINGGU V : PBO (PEWARISAN)

Pertemuan 11 Object Oriented Program

Pemograman Berorientasi Objek. Week 3 Abstrak dan Interface dalam suatu kelas

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

Object Oriented Programming 1

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

MINGGU II : DASAR C# Tujuan Pembelajaran. Materi

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

Pemrograman Berbasis Objek (Polimorfisme)

Pemrograman Berorientasi. Class dan Obyek 2

MINGGU VII : RELASI ANTAR KELAS

PEMROGRAMAN BERORIENTASI OBJEK

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Class. Object. Object Oriented Programming (OOP) Object Oriented Programming (OOP)

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

Object OrientedProgramming

PERTEMUAN 2 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O

Pemrograman Lanjut. Class dan Object. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

OVERLOADING, CONSTRUCTOR DAN DESTRUCTOR. Dewi Sartika, M.Kom

Object Oriented Programming (Class, Inheritance, Encapsulation dan Interface)

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

BAB IV KONSEP PEMROGRAMAN BERORIENTASI OBJEK

PERTEMUAN 11 KONSEP PEMROGRAMAN BERORIENTASI OBJEK

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

INTERAKSI ANTAR OBJECT

KONSEP Pemrograman Berorientasi Objek KARMILASARI

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

STRUKTUR DENGAN ARRAY DAN FUNCTION

BAB 1 PENGENALAN PEMROGRAMAN BERORIENTASI OBJEK

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

PEMROGRAMAN JAVA. Yoannita, S.Kom. Class & Method sederhana Konsep Pemrograman Berorientasi Objek. Company LOGO

Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs

Tabel 1. Instruksi untuk menampilkan teks No. Bahasa Pemrograman Instruksi 1. Pascal WRITE ( Bahasa pemrograman itu mudah );

PRAKTIKUM OBJECT ORIENTED PROGRAMING

Pemrograman Berorientasi Objek Danu Wira Pangestu

PEMROGRAMAN BERORIENTASI OBJEK

Review Bahasa Pemrograman Java Konsep OOP N I K O I B R A H I M, M I T F A K U L T A S T E K N O L O G I I N F O R M A S I

SUMBER BELAJAR PENUNJANG PLPG

IKG2I4 / Software Project I

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

Kurikulum Qt. { Basic OOP } Chapter 6. Class dan Object

Pemrograman Lanjut. Constructor. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

MODUL 1. Class, Object, Constructor dan Method

Dasar Pemrograman Java

Praktikum Minggu VI 1 dan 2 Dasar-dasar Object Oriented Programming PHP

BEKERJA DENGAN JAVA CLASS LIBRARY

Pemrograman Berorientasi Obyek. Ramos Somya

Bahasa Pemrograman 2.

Pemrograman Berorientasi. Polimorfisme dan Binding

Jobsheet 09. Overloading and Overriding Method

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Pemograman Berorientasi Objek. Week 6 Relasi Antar Kelas

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

Paradigma Pemrograman Berorientasi Objek

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword

MODUL 1 PRAKTIKUM PEMROGRAMAN BERORIENTASI OBYEK(PBO) KELAS DAN OBJEK. TGL PRAKTIKUM : 24 September 2012 :ACHMAD FAJAR NORULLAH NRP :

ENKAPSULASI. 1. Kompetensi Setelah kegiatan perkuliahan selesai, mahasiswa diharapkan dapat:

Pengenalan Obyek. Arna Fariza. Materi

APLIKASI PERHITUNGAN GAJI PEGAWAI DENGAN JAVA Disusun untuk memenuhi tugas matakuliah Pemrograman JavaIII

Pemrograman Berorientasi Objek

MODUL 6. PEMROGRAMAN VISUAL BASIC.NET DENGAN OOP (II) dan STRING

Bab 8. Dasar-Dasar OOP

KONSEP OOP: PEWARISAN / INHERITANCE

Politeknik Elektronika Negeri Surabaya

BAB II TEORI DAN KONSEP PEMROGRAMAN BERBASIS OBJECT

Konsep Pemrograman Berbasis Obyek

MODUL PRAKTIKUM I PEMOGRAMAN BERORIENTASI OBJEK DENGAN PHP

Pengenalan pemrograman berorientasi obyek

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Inheritance dan Polimorfisme

Dasar-Dasar OOP di Java

Overriding. Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass. Tujuan: subclass memiliki tingkah laku yang lebih

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

Gambar 1: Hirarki class

9/26/2011. Tujuan. Bekerja dengan Java Class Library. Pengenalan OOP. Pengenalan OOP. Class dan Object. Enkapsulasi

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

MODUL 6 PERULANGAN. A. String. 1. Instansiasi dan Inisialisasi. M0601xxyyy.jar

KONSEP OOP: PEWARISAN / INHERITANCE

VISUAL BASIC Pengenalan VB NET

Pemrograman Berbasis Objek Inheritance

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

PENGHITUNGAN JARI-JARI PADA OBJEK LINGKARAN DALAM BAHASA JAVA

OBJECT ORIENTED PROGRAMMING DENGAN PHP. Janitra Panji

Bahasa Pemrograman 2.

Class & Object 2. Imam Fahrur Rozi

Modul II Object Oriented Programming

Praktikum 6 Class Design (Encapsulation)

PEMROGRAMAN BERORIENTASI OBJEK

Transkripsi:

MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK Pertemuan ini bertujuan untuk memperkenalkan konsep dasar pemrograman berorientasi objek. Bahasan pada pertemuan ini meliputi konsep dasar Pemrograman Berorientasi Objek (PBO) dan implementasinya dengan menggunakan C# Kompetensi Khusus Setelah mengikuti pertemuan ini diharapkan mahasiswa mampu mengimplementasikan konsep dasar PBO pada C# Materi Konsep Dasar Pemrograman Berorientasi Objek Pada pertemuan ke 2 telah disinggung sebelumnya bahwa C# merupakan bahasa pemrograman yang menganut paradigma pemrograman berorientasi objek.pemrograman Berorientasi Objek (PBO) merupakan salah satu paradigma pemrograman yang ada. Apa yang dimaksud dengan paradigma pemrograman.? Paradigma merupakan cara pandang dalam terhadap suatu persoalan. Paradigma pemrograman merupakan cara pandang kita sebagai programmer untuk menyelesaikan suatu masalah. Berdasarkan penjelasan diatas, maka dapat diartikan bhwa paradigma pemrograman berorientasi Objek berarti cara menyelesaikan masalah dengan menggunakan pendekatan objek. Dapat dinyatakan juga pemrograman berorientasi objek merupakan usaha untuk merepresentasikan perangkat lunak lebih dekat dengan cara pandang manusia terhadap kenyataan yaitu dengan mengasumsikan bahwa segala sesuatunya dapat direpresentasikan dengan objek. Selain PBO, masih ada paradigma-paradigma pemrograman lain yang dapat digunakan dalam pemrograman. Contohnya adalah paradigma deklaratif, prosedural, fungsional dsb. Paradigma yang dapat digunakan oleh sebuah bahasa pemrograman tergantung dari dukungan dari bahasa tersebut. Masing-masing bahasa memiliki paradigma yang spesifik. C# menggunakan paradigma pemrograman PBO. Dalam paradigma PBO, solusi dibangun dari 1 objek atau lebih yang saling bekerja sama untuk menyelesaikan masalah. Objek merupakan benda (nyata dan tidak nyata). Setiap objek memiliki nilai yang melekat pada setiap objek tersebut. Nilai yang melekat pada objek tersebut disebut dengan properti. Setiap objek memiliki kemampuan untuk melakukan sesuatu. Setiap objek bisa memiliki kemampuan untuk melakukan suatu aksi. Aksi yang dapat dilakukan oleh sebuah objek disebut dengan method. Contohnya sebuah objek bernama sepeda. Sepeda 1

memiliki nilai yang melekat dengan sepeda tersebut misalnya merek, harga, jenis sepeda, warna, ukuran roda, jumlah rem. Sedangkan aksi yang bisa dilakukan oleh sepeda contohnya berhenti, jalan, ganti gigi, mengerem, dsb. Aksi lebih cenderung menggunakan kata kerja sedangkan properti lebih ke kata benda dan kata sifat. PBO dalam C# Solusi dalam paradigma PBO merupakan sebuah objek atau gabungan dari beberapa objek. Masing-masing objek saling berinteraksi dengan objek lainnya untuk melakukan suatu tugas tertentu. Objek merupakan bentuk nyata dari sebuah benda. Sebuah di dunia nyata diklasifikasikan dalam kelas/kelompok masing-masing. Konsep objek inilah yang diadopsi oleh PBO. Konsep tersebut menjadi konsep dasar dalam PBO. Beberapa konsep dasar dalam PBO adalah: 1. Objek dan Kelas 2. Messages 3. Polymophisme 4. Encapulation 5. Behaviour, Responsibilities 6. Inheritance Objek dan Kelas Semua objek-objek yang digunakan dalam C# merupakan bentuk nyata dari sebuah kelas (kelompok). Hal ini disebut dengan Classification (klasifikasi), yaitu mengatur informasi dan tingkah laku yang sama ke dalam entitas yang berarti. Contohnya, semua mobil akan memiliki tingkah laku dan properti yang sama sehingga mobil tersebut diklasifikasikan ke dalam kelas (kelompok) Mobil. Objek dalam C# merupakan bentuk nyata (instance) dari kelas. Kelas merupakan cetakan dari objek. Dari kelas tersebut dapat dibuat objek. Dalam kelas sudah terdapat informasi berupa properti dan tingkah laku objek yang nanti dibuat berdasarkan kelas tersebut. Properti berupa variabel kelas yang digunakan untuk menyimpan data dan tingkah laku berupa fungsi yang dapat dijalankan. Banyak objek dapat dibuat dari sebuah kelas. Dalam C# untuk kelas dibuat dengan menggunakan keyword class. Format penulisan kelas dalam C# adalah sebagai berikut class <Nama Kelas> <Tipe> <Nama Properti> 2

<Tipe> <Nama Fungsi> ( [Daftar Argumen]) statement01; statement02; Berikut ini adalah contoh sebuah kelas yaitu kelas Segitiga class Segitiga decimal alas; decimal tinggi; public void hitungluas() Console.WriteLine("Disini seharusnya terjadi hitung luas"); public void tampilkaninfo() Console.WriteLine("Alas segitiga " + alas); Console.WriteLine("Tinggi segitiga " + tinggi); Sebuah objek dibuat dari kelas yang telah ada. Gunakan keyword new untuk membuat objek dari kelas. Contoh untuk membuat objek dari kelas Segitiga adalah sebagai berikut Segitiga s1 = new Segitiga(); Atau dapat juga ditulis sebagai berikut; Segitiga s1; s1 = new Segitiga(); Statement diatas bisa dijelaskan sebagai berikut. Deklarasikan sebuah variabel bernama s1 bertipe Segitiga, kemudian buat sebuah objek dari kelas Segitiga dan simpan objek tersebut ke dalam variabel s1. Untuk selanjutnya objek yang dihasilkan disebut dengan objek s1. Catatan : 3

Kelas bisa diperlakukan layaknya sebuah tipe data, sehingga sebuah variabel bisa memiliki tipe data berupa nama kelas. Format deklarasi variabel <Tipe Data> <nama Variabel>, juga bisa digunakan digunakan dengan menggunakan kelas menjadi <Class> <nama variabel/nama objek> Dari sebuah kelas dapat dibuat banyak objek. Contoh membuat objek baru dari kelas yang sama dapat dilihat pada contoh dibawah ini. Segitiga s1 = new Segitiga(); Segitiga s2 = new Segitiga(); Segitiga segitiga = new Segitiga(); Properti Properti adalah variabel dalam kelas/objek. Properti digunakan untuk menyimpan data atau nilai yang ada dalam objek tersebut. Properti dideklarasikan dalam kelas dan dapat digunakan di semua method dalam kelas tersebut. Deklarasi properti dalam kelas mengikuti format berikut ini. [Level akses] <Tipe data> <nama properti>; Level akses adalah hak akses objek lain terhadap properti tersebut. Level akses juga digunakan terhadap method. Dalam C# ada 4 hak akses yang dapat digunakan yaitu : 1. Public Level akses public memungkinkan sebuah properti atau method sebuah kelas dapat diakses oleh objek lain baik dari assembly yang sama maupun assembly yang berbeda. 2. Private Sebuah properti atau method yang memiliki akses level private hanya bisa diakses oleh kode (objek atau kelas) yang berasal dari kelas yang sama (atau struct yang sama). 3. Protected Properti atau method yang memiliki akses level protected hanya bisa diakses oleh kode (objek atau kelas) yang sama dan kode turunannya. Kita akan membahas turunan kelas pada pembahasan selanjutnya. 4. Internal Hak akses internal membatasi akses terhadap properti atau method hanya bisa diakses oleh kode yang berasal dari assembly yang sama, dan tidak dari assembly yang berbeda. 4

Keempat akses level itulah yang digunakan untuk menentukan akses level sebuah properti dan method dalam sebuah kelas. Deklarasi akses level bersifat opsional. Jika deklarasi akses level tidak dinyatakan maka akses level properti atau method tersebut menjadi private. Contoh deklarasi sebuah properti pada contoh kelas diatas adalah: String nama; Public Int jumlahkaki; Pada contoh diatas properti jumlahkaki merupakan properti bertipe integer dan memiliki akses level public. Sedangkan properti nama, karena tidak dideklarasikan akses levelnya, memiliki akses level private. Disarankan deklarasi properti memiliki nilai awal. Nilai awal sebuah properti dapat dideklarasikan saat deklarasi properti (sama seperti deklarasi variabel). Contoh deklarasi properti yang memiliki nilai awal dapat dilihat pada contoh berikut ini. String nama = Yu ; Public int jumlahsisi = 3; Method Method dalam kelas menunjukkan aksi yang dapat dilakukan oleh kelas (objek) tersebut. Jika properti digunakan untuk menyimpan nilai, maka method digunakan untuk menyimpan isntruksi (statement) yang akan dieksekusi saat method tersebut dijalankan. Sebuah kelas dapat memiliki 1 atau lebih method, atau tidak memiliki method sama sekali. Deklarasi method dalam kelas mengikuti format berikut ini [akses level] <tipe data> <nama method> ([daftar agumen]) Statement01; Statement02; Akses level yang berlaku terhadap sebuah method sama seperti akses level yang berlaku terhadap sebuah properti. Tipe data yang bisa digunakan untuk sebuah method merupakan tipe data yang sama yang dapat digunakan terhadap properti. Hanya saja pada method ada tipe data tambahan yang dapat digunakan yaitu tipe data void. Tipe data void ini merupakan tipe data yang tidak menyimpan nilai apapun (hampa). 5

Tipe data pada method digunakan untuk mengindikasikan nilai yang akan dikembalikan atau diberikan oleh method tersebut. Jika tipe datanya void, maka method tersebut tidak mengembalikan nilai apapun. Jika tipe datanya bukan void maka method tersebut akan mengembalikan sebuah nilai. Oleh karena method tersebut akan mengembalikan sebuah nilai maka di dalam implementasi method tersebut harus ada statement return yang untuk mengembalikan nilai sesuai tipe data method tersebut. Daftar argumen merupakan input yang akan digunakan method tersebut. Input tersebut didelarasikan dalam bentuk variabel yang bisa digunakan dalam method tersebut. Daftar argumen ini bersifat opsional (boleh ada, boleh tidak ada). Contoh method dalam sebuah kelas, dapat dilihat pada potongan kode sumber berikut ini. class Segitiga public double hitungluas(double alas, double tinggi) double luas = alas * tinggi; return luas; Pada contoh diatas dideklarasikan sebuah method bernama hitungluas. Method ini memiliki akses level public yang berarti bisa diakses oleh objek atau kelas lain. Method ini juga memiliki tipe data double yang berarti method ini akan menghasilkan dan mengembalikan sebuah nilai bertipe double. Oleh karena tipe method ini bukan void, maka dalam method tersebut harus ada statement return yang digunakan untuk mengembalikan nilai bertipe double. Method hitungluas ini juga memiliki 2 buah argumen yaitu alas dan tinggi. Kedua argumen ini bertipe double dan digunakan sebagai input data dalam method tersebut. Kedua argumen ini digunakan untuk menghitung luas segitiga. Polymorphisme (Overloading) Sebuah method dalam sebuah kelas bisa saja memiliki nama yang sama dengan method lain yang ada dalam kelas yang sama. Hal ini memungkinkan selama argumen method-method yang namanya sama tersebut berbeda. Konsep ini disebut dengan polymorphisme. Polymorphisme secara harfiah berarti banyak bentuk. Polymorphisme memungkinkan sebuah method dijalankan dengan cara yang berbeda-beda. Secara umum polymorphisme terbagi menjadi 2 jenis yaitu: 6

1. Overloading Penggunaan satu nama untuk beberapa method. Overloading mensyaratkan setiap method dengan nama yang sama memiliki daftar argumen yang berbeda. Method yang akan dieksekusi tergantung cara memanggil method tersebut. 2. Overriding Penggunaan satu nama method yang sama dengan nama method yang ada pada kelas induknya. Overriding ini akan dibahas lebih lanjut pada pembahasan selanjutnya. Contoh overloading dapat dilihat pada kode kelas dibawah ini. class Segitiga //Menghitung luas dengan menggunakan alas dan tinggi segitiga public double hitungluas(double alas, double tinggi) double luas = alas * tinggi; return luas; //Menghitung luas dengan menggunakan ketiga sisi segitiga public double hitungluas(double a, double b, double c) double S = (a + b + c)/2; double luas = Math.Sqrt(S * (S - a) * (S - b) * (S - c)); return luas; Kelas segitiga diatas memiliki dua buah method dengan nama hitungluas. Fungsi kedua method ini sama-sama untuk menghitung luas segitiga. Ada beberapa cara untuk menghitung segitiga yaitu dengan menggunakan persamaan L = a * t / 2 atau dengan cara menghitung luas dengan menggunakan panjang ketiga sisi-sisi segitiga tersebut dengan menggunakan rumus S. Luas dihitung dengan menggunakan persamaan berikut L = S(S a)(s b)(s c) dimana (a + b + c) S = 2 7

Dengan demikian terdapat 2 buah method yang namanya sama, tapi memiliki implementasi yang berbeda. Bagaimana menentukan method yang akan dijalankan nantinya? Tergantung dari parameter yang digunakan. Perhatikan kode berikut ini Segitiga = new Segitiga(); luas = segitiga.hitungluas(4.0, 2.0); luas = segitiga.hitungluas(3.0, 2., 3.0); luas = segitiga.hitungluas(3, 8, 4, 0); Pada contoh diatas, terdapat 3 kali pemanggilan method hitungluas dengan argumen yang berbeda. Pada pemanggilan pertama (baris 2), method hitungluas dipanggil dengan menggunakan 2 buah argumen bertipe double. Secara otomatis method hitungluas yang pertama dijalankan yaitu method yang menghitung luas dengan menggunakan alas dan tinggi. Pada pemanggilan method hitungluas yang kedua (baris ke 3), method hitungluas dipanggil dengan menggunakan 3 argumen. Maka method yang dipanggil adalah method kedua yaitu menghitung luas dengan menggunakan rumus S. Pemanggilan method hitungluas yang ketiga dilakukan dengan memberikan 4 argumen yang akan menyebabkan error. Hal ini terjadi karena dalam kelas Segitiga yang sudah dideklarasikan sebelumnya tidak ada method hitungluas yang menggunakan 4 buah argumen. Jadi pemanggilan method overloading tergantung pada argumen yang diberikan terhadap method tersebut. Tidak hanya memperhatikan jumlah argumen yang diberikan, tapi juga tipe data argumen. Constructor Dalam sebuah kelas, terdapat sebuah method yang spesial. Method ini akan dijalankan saat sebuah objek diinstantiate/diciptakan dari kelas tersebut. Method ini disebut dengan method constructor Constructor atau constructor method adalah sebuah method yang dijalankan saat objek diciptakan dari kelas tersebut. Biasanya constructor ini dibuat untuk melakukan inisialisasi kelas (untuk memberikan data awal terhadap properti-properti dalam kelas tersebut). 8

Pada dasarnya constructor method itu sama dengan method lainnya. Bedanya terletak pada namanya. Constructor method harus memiliki nama yang sama dengan nama kelasnya. Contoh constructor method dapat dilihat pada contoh dibawah ini. class Segitiga //Constructor public Segitiga() Console.WriteLine("Sebuah objek segitiga diciptakan..!!"); Jika sebuah objek dibuat dari kelas Segitiga tersebut, maka secara otomatis method Segitiga akan dijalankan. Segitiga segitiga = new Segitiga(); Pada console nanti akan muncul Sama seperti method pada umumnya, constructor-pun bisa memiliki overloading method. Sebuah kelas yang memiliki constructor lebih dari satu memungkinkan sebuah objek dari kelas tersebut dapat dibuat dengan berbagai cara. Perhatikan contoh berikut ini class Segitiga double height, weight; double x, y, z; //Constructor 9

public Segitiga(double alas, double tinggi) weight = alas; height = tinggi; public Segitiga(double a, double b, double c) x = a; y = b; z = c; Pada contoh diatas, sebuah kelas Segitiga memiliki 2 buah constructor. Oleh karena itu, objek dari kelas Segitiga tersebut dapat diciptakan dengan 2 cara seperti contoh berikut. Segitiga s1 = new Segitiga(3, 1, 2); Segitiga s2 = new Segitiga(3.2, 4.3); Namun sekarang kelas tersebut tidak bisa lagi diciptakan dengan menggunakan constructor tanpa argumen. Hal ini dikarenakan tidak ada deklarasi constructor yang tidak memiliki argumen. Segitiga s3 = new Segitiga(); //error Encapsulation Encapsulation merupakan mekanisme untuk menyembunyikan suatu proses dalam sistem untuk menghindari interferensi dan menyederhanakan penggunaan sistem itu sendiri. Mengengkapsulasi berarti membungkus variabel-variabel lain dalam objek agar terlindungi dan menyembunyikan data dan implementasi sebuah objek. Pada objek data dan implementasi dapat disembunyikan dari objek lain yang berinteraksi dengan objek tersebut. Objek lain hanya melihat data dan tingkah laku yang memang diizinkan untuk dilihat oleh objek tersebut. Contohnya pada objek segitiga diatas, Messages Sebuah program dibangun dengan menggabungkan objek-objek. Objek-objek tersebut saling berinteraksi untuk mencapai tujuan yang diinginkan. Interaksi antar objek ini dilakukan melalui message (pesan) atau perintah. Kadangkala perintah memerlukan informasi tambahan agar 10

dapat dijalankan dengan baik. Dalam C#, message yang dimaksud disini tidak lain adalah pemanggilan method dari objek lain dan informasi tambahan yang dimaksudkan adalah daftar argumen yang diberikan pada fungsi tersebut. Analogi kasus ini adalah sebagai berikut. Misalkan permasalahannya adalah transportasi (memindahkan suatu benda dari satu tempat ke tempat lainnya). Maka solusinya bisa berupa objek mobil. Namun objek mobil sendiri tidak bisa menjadi solusi, dibutuhkan objek lain yaitu supir. Dalam contoh ini terdapat 2 buah objek yang akan saling berinteraksi agar bisa memindahkan orang (sebagai alat transportasi) yaitu mobil dan supir. Supir perlu berinteraksi dengan mobil dengan memberikan perintah kepada mobil berjalan, berhenti, belok (kanan atau kiri). Dalam kehidupan nyata, perintah diberikan oleh supir terhadap mobil melalui instrumentinstrument yang terdapat dalam mobil tersebut seperti stir, pedal gas, rem, kopling dsb. Dalam hal interaksi 2 objek ini setidaknya terdapat 3 komponen yaitu: 1. Objek objek-objek yang saling berinteraksi yaitu pengirim pesan dan penerima pesan. 2. Message yaitu method yang dijalankan oleh objek penerima message. 3. Parameter Argumen method yang diberikan oleh objek pengirim ke objek penerima pesan. Misalkan pada objek segitiga yang telah dibahas sebelumnya. Method hitungluas tidak akan pernah dijalankan dengan sendirinya tanpa ada objek lain (atau objek itu sendiri) yang meminta method tersebut dijalankan. Asumsikan ada sebuah objek lain yang bernama AreaCalculation yang digunakan untuk menghitung luas Segitiga. class AreaCalculation public double calculate() Segitiga s1 = new Segitiga(); Double luas = s1.hitungluas(3.0, 4.0); return luas; Jika dilihat dari kode diatas terlihat bahwa ada 2 buah kelas yang terlibat yaitu AreaCalculation dan Segitiga. Objek dari kelas AreaCalculation akan memerintahkan objek segitiga s1 untuk menjalankan method hitungluas 11