MINGGU VI : PBO (LANJUTAN)

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

MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK

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

PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS

PEMROGRAMAN BERORIENTASI OBJEK OBJECT

MINGGU V : PBO (PEWARISAN)

Inheritance dan Polimorfisme

INTERAKSI ANTAR OBJECT

PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO

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

OBJECT, CLASS DAN METHOD. 1. Mengetahui pengertian dari objek & class 2. Dapat membuat program sederhana dari java dengan menggunakna objek dan class

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

MINGGU VII : RELASI ANTAR KELAS

Inheritance dan Polimorfisme

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

PEWARISAN D E W I S A R T I K A, M. K O M

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

MINGGU II : DASAR C# Tujuan Pembelajaran. Materi

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

KELAS DAN OBJEK KELAS

Bab 8. Dasar-Dasar OOP

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

Bahasa Pemograman II. Object Oriented Programming

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Membuat dan Menggunakan Class

PEMROGRAMAN TERSTRUKTUR II

C#, Programming, Object-oriented. Pengenalan C# Erick Pranata. Edisi I

Pemrograman Berorientasi Obyek. Ramos Somya

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

PEMOGRAMAN JAVA. Yoannita. Class(iii) [Constructor] [keyword this] Passing parameter [by value] [by references]

Dasar Pemrograman Java

BAB II VARIABEL DAN TIPE DATA

MINGGU IX : ARRAY DAN GENERICS

PEMROGRAMAN BERORIENTASI OBJEK

Pengenalan pemrograman berorientasi obyek

Object Oriented Programming LOGO

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

Modul II Object Oriented Programming

Pemrograman Berorientasi Obyek (C++) Departemen Ilmu Komputer FMIPA IPB 2013

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

Algoritma Pemrograman [BS204]

Pemrograman Berorientasi. Class dan Obyek 2

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

IKG2I4 / Software Project I

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

Pemograman Berorientasi Objek. Week 6 Relasi Antar Kelas

2 TIPE DATA DAN VARIABEL

Konsep Dasar Pemrograman Berorientasi Objek

Praktikum 6 Class Design (Encapsulation)

Pemrograman Berorientasi. Abstract & Interface

BEKERJA DENGAN JAVA CLASS LIBRARY

Polymorphism (Polimorfisme)

PEMROGRAMAN BERORIENTASI OBJEK

Class & Object 2. Imam Fahrur Rozi

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

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

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

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

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

MODUL II. OBJECK, PROPERTY, METHOD dan EVENT

MODUL 1. Class, Object, Constructor dan Method

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

:: abstract class + interface. :: abstract class

BAB VI ARRAY Mendeklarasikan Variabel Array int[ ] bilangan; int bilangan[ ]; Mendefinisikan Array Bilangan = new int[5]; Latihan 21. ArrSatu.

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

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

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

ELEMEN DASAR C++ C++ mempunyai cara untuk menyatakan karakter-karakter yang tidak mempunyai kode tombol (seperti karakter tombol) misalnya \n.

Pemrograman Berbasis Objek (Polimorfisme)

ENKAPSULASI Data Hiding

Dasar-Dasar OOP di Java

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

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

Pemrograman Lanjut. Class : Deeper Look 2

Pemrograman Berorientasi Objek Danu Wira Pangestu

Writting Procedure and Function

MODUL 1 PENGENALAN OOP

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

Gambar 1: Hirarki class

Jobsheet 09. Overloading and Overriding Method

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK (PBO) MODUL 5 INTERFACE

Badiyanto, S.Kom., M.Kom. PBO java

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

KUM 3 IMPLEMENTASI LIST

Dasar-Dasar OOP di Java

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

Pemograman Berorientasi Objek. Week 4 Initialization dan Instance dalam Kelas

PEMOGRAMAN JAVA. Yoannita, S.Kom. Class(ii) [Constructor] [keyword this] Modifier Passing parameter [by value] [by references]

Pemrograman Web. Pemrograman Berorientasi Objek. 8 Adam Hendra Brata

1.Tujuan. 2. Latar Belakang. Mendefinisikan superclasses dan subclasses Override method dari superclasses Membuat method final dan class final

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

06/03/2018. Tidak memiliki parameter. Melakukan inisialisasi semua variabel private dengan nilai awal.

TAMBAHAN MATERI BAB 15 BUKU DIKLAT PEMROGRAMAN KOMPUTER 2

Pemrograman Berbasis Objek Inheritance

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

PENGENALAN JAVA (2)

UNIVERSITAS GUNADARMA

Transkripsi:

MINGGU VI : PBO (LANJUTAN) Pertemuan minggi ini membahas topik tambahan dalam konsep PBO di C#. Topik tambahan tersebut meliputi kelas method dan properti statis, kelas Object, Automatic Property, Struct dan Enumeration. Kompetensi Khusus Setelah mengikuti pertemuan ini, mahasiswa diharapkan memahami tentang topik tambahan PBO meliputi static, automatic property, struct dan enumerations. Materi Static Method Pada pertemuan-pertemuan yang sebelumnya, operasi dilakukan terhadap objek, bukan kelas. Sebuah kelas hanya digunakan untuk membuat objek. Kelas-kelas yang telah didefinisikan tidak bisa digunakan langsung, akan tetapi harus melalui objek yang diciptakan dari kelas tersebut. Selain menggunakan objek, method atau properti yang dimiliki oleh sebuah kelas dapat juga diakses melalui kelas itu sendiri tanpa harus membuat objek terlebih dahulu. Contohnya adalah method WriteLine(). Method WriteLine() dimiliki oleh kelas Console. Namun kita sering menggunakan method WriteLine tanpa harus membuat objek dari kelas Console tersebut. Hal ini dikarenakan method WriteLine tersebut merupakan method static. Selain digunakan untuk method, kata kunci static juga dapat digunakan untuk properti sebuah kelas. Static merupakan keyword yang menyebabkan method atau properti tersebut dapat diakses melalui kelasnya secara langsung. Definisi method static harus dilakukan pada saat method tersebut dideklarasikan. Berikut contoh method static pada kelas Segitiga. class Segitiga public static double HitungLuas(double alas, double tinggi) return alas * tinggi / 2; Pada contoh diatas dapat dilihat bahwa kelas Segitiga memiliki sebuah method static bernama HitungLuas(). Dengan demikian method tersebut dapat digunakan tanpa harus menciptakan 1

objek dari kelas Segitiga terlebih dahulu. Contoh penggunaan method static adalah sebagai berikut. Double luassegitiga; luassegitiga = Segitiga.HitungLuas(3, 4); Pada contoh diatas, luas segitiga dihitung melalui method HitungLuas() yang ada dalam kelas Segitiga. Method HitungLuas() tidak dirujuk melalui objek, tapi dirujuk melalui kelas Segitiga. Selain untuk method, kata kunci static bisa juga digunakan untuk properti dalam kelas. Sama halnya seperti static method, properti yang memiliki kata kunci static ini juga bisa diakses melalui kelas Segitiga. Contoh penggunaan static pada properti kelas dapat dilihat pada contoh berikut ini class Segitiga public static double luas; public static double HitungLuas(double alas, double tinggi) return alas * tinggi / 2; Pada contoh diatas kelas Segitiga memiliki sebuah properti yang bernama luas. Penggunaan properti luas ini sama seperti menggunakan static method pada kelas segitiga tersebut. Segitiga.luas = 10; Namun penggunaan static method atau properti static dalam sebuah kelas perlu mempertimbangkan karakteristik dari static properti tersebut. Properti atau method yang memiliki sifat static tidak bisa diakses melalui objek dari kelas tersebut. Automatic Property Salah satu konsep dalam Pemrograman Berorientasi Objek (PBO) adalah encapsulation. Encapsulation adalah mekanisme untuk menyembunyikan proses atau informasi yang tedapat dalam sebuah kelas. Salah satu informasi yang disembunyikan dalam kelas adalah properti dalam kelas. Informasi properti yang terdapat dalam kelas harus dijaga sedemikian rupa 2

sehingga nilai dari properti dapat terjaga nilainya agar tidak muncul nilai yang diinginkan. Misalnya properti umur dalam kelas manusia dijaga sedemikan rupa sehingga nilai umur tersebut tidak menjadi minus seperti -9 tahun. Jika akses level properti diset publik, maka sebuah properti dalam kelas terbuka untuk umum. Kelas lain bisa mengakses properti tersebut secara bebas (baca & tulis). Sebuah kelas bahkan bisa menulis nilai properti tersebut dengan nilai yang tidak terbatas. Salah satu cara untuk melindungi properti adalah dengan mengatur akses level properti tersebut menjadi private atau protected. Hal ini menyebabkan properti tersebut tidak bisa dibaca atau ditulis properti tersebut. Akses terhadap properti tersebut disediakan melalui method dalam kelas tersebut. Satu method untuk akses baca dan satu method untuk akses tulis. Method ini biasanya disebut dengan method get/set. Contoh penggunaan method get/set dapat dilihat pada contoh dibawah ini. class Poin protected int x; public int getx() return x; public void setx(int xbaru) if (xbaru > 0) x = xbaru; Pada contoh diatas, method getx() digunakan untuk mendapatkan nilai properti x dan method setx() digunakan untuk mengatur nilai properti x. Kontrol terhadap pengaturan nilai x dilakukan oleh method setx(). Pada contoh diatas nilai x hanya bisa diset jika nilai x yang baru lebih besar dari 0 (positif). Kelebihan lain dari metode ini adalah akses terhadap sebuah properti dapat diset baca saja atau baca tulis. Jika sebuah properti hanya diset bisa baca saja, maka method yang disediakan hanyalah method get saja, dalam contoh ini method getx. Namun jika properti tersebut bisa dibaca dan ditulis, maka disediakan method get dan set untuk properti tersebut. Method get/set dapat digunakan untuk mengontrol akses terhadap properti dalam kelas, namun kelas ini memiliki kekurangan yaitu : 3

1. Penggunaan method get/set ini membuat akses terhadap properti tidak seperti akses properti. Oleh karena akses terhadap properti diatur oleh method get/set, maka akses terhadap properti tersebut terasa mengakses method, bukan akses properti. Poin p = new Poin(); p.setx(3); int x = p.getx(); 2. Munculnya banyak method baru untuk mengatur akses terhadap properti. Pada contoh diatas, 1 properti membutuhkan 2 buah method. Jika poin tersebut 3 dimensi maka terdapat 3 properti yang akan diatur yaitu x, y dan z sehingga method yang dibutuhkan 6 buah method untuk mengatur akses terhadap properti-properti tersebut. C# menyediakan solusi untuk pengaturan akses properti tersebut yaitu dengan menyediakan automatic property. Automatic property mengatur akses baca tulis terhadap properti yang ada dalam kelas. Contoh deklarasi automatic property dalam kelas poin diatas adalah sebagai berikut. class Poin protected int x; public int X get return x; set x = value; Pada contoh diatas, dalam kelas Poin terdapat sebuah automatic property bernama X (huruf kapital). Automatic property X tersebut digunakan untuk mengatur akses terhadap properti x melalui method get dan set yang dimiliki oleh automatic property X. Method get dalam automatic property digunakan untuk mengatur akses baca teradap property x. Sedangkan method set digunakan untuk mengatur akses tulis terhadap properti x. Keyword value merupakan keyword yang digunakan untuk merepresentasikan nilai yang diberikan ke automatic property X. Nama automatic property harus berbeda dengan nama properti yang ada dalam kelas. 4

Kelebihan penggunaan automatic property dalam C# adalah : 1. Akses terhadap properti dapat dikontrol dan feeling penggunaan properti tersebut sama seperti mengakses properti. Dengan menggunakan contoh kelas Poin diatas, maka akses terhadap properti X dilakukan dengan cara sebagai berikut. Poin p = new Poin(); p.x = 3; int x = p.x; Struct 2. Kompatibel dengan interface. Pada pembahasan sebelumnya, properti tidak boleh dideklarasikan dalam sebuah interface. Namun automatic property dapat digunakan dalam interface sebagai ganti deklarasi properti. Contoh deklarasi automatic property dalam interface adalah sebagai berikut. interface IPoin int X get; set; Pada contoh diatas, interface Poin memiliki sebuah automatic property yang bernama X. Kelas yang mengimplementasikan interface IPoin harus memiliki automatic property bernama X. Struct dalam C# digunakan untuk mengengkapsulasi sekelompok variabel yang saling terkait. Biasanya struct ini digunakan untuk mendefinisikan sebuah struktur data yang baru. Misalnya, struktur data kordinat titik dalam segitiga yang terdiri dari kordinat x dan kordinat y. Pada dasarnya struct memiliki struktur yang hampir sama dengan kelas. Perbedaannya adalah sebagai berikut. 1. Definisi struct dapat langsung digunakan. 2. Struct tidak membutuhkan instance, namun instance bisa dibuat menggunakan struct tersebut. 3. Objek dari kelas berada di memori pada bagian head, sedangkan struct berada pada leap. Contoh deklarasi sebuah struct dapat dilihat pada kode dibawah ini. struct Poin2D public int x; public int y; 5

Pada contoh diatas, didefinisikan sebuah struct dengan nama Poin2D. Struct Poin2D memiliki 2 buah property yaitu x dan y. Struct tersebut digunakan dengan cara sebagai berikut Poin2D poin; poin.x = 1; poin.y = 2; Pada contoh diatas struct tersebut digunakan langsung tanpa menggunakan instansiasi objek (tanpa menggunakan keyword new). Namun demikian sebuah variabel dari struct dapat dibuat dengan menggunakan keyword new. Jika menggunakan keyword new maka Struct tersebut sebaiknya memiliki constructor. Tujuan keberadaan constructor tersebut adalah untuk menginisialiasi nilai property yang ada dalam struct tersebut. Jika sebuah struct memiliki constructor maka constructor struct tidak boleh parameterless. Contoh struct yang memiliki constructor dapat dilihat pada kode dibawah ini. struct Poin2D public int x; public int y; public Poin2D(int x, int y) this.x = x; this.y = y; Ketentuan untuk membuat constructor pada Struct sama persis dengan ketentuan untuk membuat constructor pada kelass. Hanya saja constructor dalam struct tidak boleh tanpa argumen. Penggunaan struct yang memiliki constructor sama seperti struct biasa, hanya inisialiasinya saja yang berbeda. Poin2D poin2 = new Poin2D(2, 3); poin2.x = 1; poin2.y = 2; Enumerations Enumerations merupakan sekumpulan nama yang dipetakan terhadap sekumpulan nilai. Enumerations merupakan salah satu tipe data turunan. Biasanya enumeration digunakan untuk memberikan nilai-nilai terhadap suatu kode-kode tertentu. Misalnya kode untuk jenis kelamin, 1 untuk pria dan 2 untuk wanita. Sebuah variabel dengan tipe data enumerations hanya bisa memiliki nilai sesuai nilai yang terdapat dalam enumeratornya. Enumerator dibuat melalui proses inisialiasi. Beberapa hal yang perlu diperhatikan dalam enumerator adalah: 1. Enumerator tidak boleh mengandung white space dalam namanya. 6

2. Nilai default enumerator adalah 0. Contoh deklarasi enumerator dapat dilihat pada contoh dibawah ini. Pada contoh diatas didefinisikan 2 buah enumerator yaitu Days dan Month. Enumerator Days digunakan untuk memetakan nama Hari ke nilai integer. Nilai awal dari enumerator adalah 0, sehingga nilai dari Sat sama dengan 0. Enumerator kedua bernama Month yang digunakan untuk memetakan nama bulan ke nilai tertentu. Nilai awal enumerator Month adalah 1 sehingga nilai Jan adalah 1, Feb adalah 2 dst. Akses terhadap nilai enumerator membutuhkan casting terlebih dahulu. Casting dilakukan agar nilai yang diambil dapat disimpan ke dalam variabel dengan tipe yang sesuai. Contoh penggunaan enum dapat dilihat pada contoh dibawah ini. Kode diatas mengambil nilai Friday untuk disimpan dalam variabel bertipe integer oleh karena itu nilai dari enumerator perlu dicasting ke integer dengan menggunakan operator (int) terlebih dahulu. 7