Dasar-Dasar OOP di Java

dokumen-dokumen yang mirip
Dasar-Dasar OOP di Java

Bab 8. Dasar-Dasar OOP

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Praktikum 7. Dasar-dasar OOP di Java

Enkapsulasi. Politeknik Elektronika Negeri Surabaya. Enkapsulasi. public void Info() { System.out.println( Saya siswa PENS );

INTERAKSI ANTAR OBJECT

Praktikum 6 Class Design (Encapsulation)

Pemrograman Berbasis Objek. Enkapsulasi. Yuliana Setiowati. Politeknik Elektronika Negeri Surabaya

A. TUJUAN PEMBELAJARAN. 1. Menerapkan konsep enkapsulasi pada class 2. Mendeklarasikan suatu constructor

PRAKTIKUM 2 PEMROGRAMAN BERORIENTASI OBJEK

Pengenalan pemrograman berorientasi obyek

A. TUJUAN PEMBELAJARAN 1. Memahami konsep package dan import 2. Menggunakan kata kunci this

Inheritance (Pewarisan) Pengertian dasar inheritance

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

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

Pemrograman Berbasis Objek Inheritance

PRAKTIKUM 2 PEMROGRAMAN BERORIENTASI OBJEK

Inheritance. Topik 5/17/2013

Politeknik Elektronika Negeri Surabaya

Inheritance (Pewarisan Sifat) Imam Fahrur Rozi

Polymorphism. Oleh : Agus Priyanto, M.Kom

subclass class manapun private default protected public package yang sama

Pemrograman Berorientasi. Class dan Obyek 2

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

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

BAB 6 INHERITANCE Tujuan:

Inheritance dan Kata Kunci static

Deklarasi atribut dapat dilakukan dengan sintaks sebagai berikut:

(INHERITANCE) Nurochman

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Percobaan 5 Paket dan Import, Interface

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Class & Object 2. Imam Fahrur Rozi

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

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

public class B extends A {... }

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

Bahasa Pemrograman 2.

Dasar Pemrograman Java

B. DASAR TEORI MENGENAL OBJEK & CLASS

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

B. DASAR TEORI MENGENAL OBJEK & CLASS

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

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

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

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

Modul Praktikum Bahasa Pemrograman 1

PRAKTIKUM 5 PAKET, IMPORT DAN INTERFACE

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

Membuat dan Menggunakan Class

ENKAPSULASI Data Hiding

Pemrograman Berorientasi Objek INHERITANCE

UML (Unified Modelling Language)

UNIVERSITAS GUNADARMA

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Bahasa Pemrograman 2.

MODUL PRAKTIKUM BERORIENTASI OBJEK NINF615 SEMESTER GASAL 2016/2017 PROGRAM STUDI S1 TEKNIK INFORMATIKA

Praktikum 3 Konsep Class, Attribute dan Method

Modul Bahasa Pemrograman 1

SUMBER BELAJAR PENUNJANG PLPG

MODUL 1. Class, Object, Constructor dan Method

Pemograman Berorientasi Objek. Week 4 Initialization dan Instance dalam Kelas

Pemrograman Berorientasi Objek (PBO) By : Jeffry Montolalu, ST PERTEMUAN XII KELAS DAN OBYEK

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

I. Tujuan Instruksional Umum Komunikasi antar objek pada kelas yang berbeda Memahami berbagai macam modifier dan karakteristiknya II.

Employee employee=new Manager();

BAB 12 ENKAPSULASI, INHERITANCE DAN POLIMORPISME

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK (PBO) MODUL 4 PENGKAPSULAN

OBJECT ORIENTED PROGRAMMING (OOP)

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

MODUL 1 PENGENALAN OOP

Pertemuan 11 Object Oriented Program

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

[Lanjutan] Nurochman

Pemrograman Berorientasi Obyek. Ramos Somya

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

Java Fundamentals. Herman Tolle. Program Teknologi Informasi & Ilmu Komputer UNIVERSITAS BRAWIJAYA

Java Application. Aplikasi: Menampilkan Tulisan

Pemrograman Lanjut Review Class dan Object PTIIK

Pemrograman Lanjut. Class : Deeper Look 2

Other OOP Basic. Viska Mutiawani, M.Sc

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Modul Praktikum Pemrograman

BAB 5 Mendapatkan Input dari Keyboard

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Modul II Object Oriented Programming

BAB 5 Mendapatkan Input dari Keyboard

Other OOP Basic. Viska Mutiawani, M.Sc. 1 Viska Mutiawani - Informatika FMIPA Unsyiah

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

OOP Java. 05 Encapsulation & Inheritance

IKG2I4 / Software Project I

Pengenalan pemrograman berorientasi obyek. Politeknik Elektronika Negeri Surabaya. Topik

Java Application. Menampilkan Tulisan

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

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

IKG2I4 / Software Project I

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

Transkripsi:

Pertemuan 7 - Pemrograman Berbasis Obyek Oleh: Ali Ridho Barakbah Information hiding Dasar-Dasar OOP di Java Pada bab sebelumnya telah dibahas bagaimana mengakses anggota class, baik yang berupa atribut ataupun method. Misalnya saja kita mempunyai sebuah class seperti dibawah ini : public int nrp; public String nama; public void Info() { System.out.println( Saya siswa PENS ); Jika kita ingin mengakses anggota-anggota class Siswa diatas dari luar class, maka kita dapat langsung mengaksesnya dengan menyebutkan nama anggota class yang ingin kita akses. Hal ini dapat kita lihat pada program dibawah ini : 1 2 3 4 5 6 7 8 public class IsiData { public static void main(string args[]) { Siswa IT2=new Siswa(); IT2.nrp=5; IT2.nama= Andi ; IT2.Info(); Pada baris ke-3, kita membuat sebuah obyek dari class Siswa yang bernama IT2. Dari obyek IT2 tersebut pada baris ke-4, 5 dan 6 kita langsung dapat mengakses anggotaanggota dari obyek IT2. Kita juga dapat menyembunyikan information dari suatu class sehingga anggota-anggota class tersebut tidak dapat diakses dari luar. Adapun caranya adalah cukup dengan memberikan akses control private ketika mendeklarasikan suatu atribut atau method. Sebagai contoh adalah class Siswa diatas. Jika kita ingin membuat nrp dari class Siswa tidak dapat diakses dari luar class Siswa, maka kita dapat merubahnya menjadi :

Pada saat kita mendeklarasikan seperti diatas, ketika kita mencoba mengakses nrp dari class IsiData pada baris ke-4, maka yang terjadi akan muncul pesan kesalahan kompilasi seperti di bawah ini : Hallo.java:4: nrp has private access in Siswa IT2.nrp=5; Encapsulation (Enkapsulasi) Encapsulation (Enkapsulasi) adalah suatu cara untuk menyembunyikan implementasi detail dari suatu class. Enkapsulasi mempunyai dua hal mendasar, yaitu : - information hiding - interface to access data Misalnya saja kita ambil contoh kasus program yang sebelumnya. NRP dari siswa-siswa IT2 adalah berada dalam range 1-10. Jika kita tidak melakukan enkapsulasi pada class Siswa, maka data nrp yang kita masukkan tentunya akan diperbolehkan nilai riil dalam range tipe data int. Oleh karena itu, information hiding terhadap atribut nrp sangat diperlukan, sehingga nrp tidak bisa diakses secara langsung. Lalu, kalau atribut nrp tersebut disembunyikan, bagaimana cara mengakses atribut nrp itu untuk memberikan atau mengubah nilai?. Nah, di saat ini kita memerlukan suatu interface to access data, yang berupa method dimana di dalamnya terdapat implementasi untuk mengakses data nrp. Berkaitan dengan kasus diatas, class Siswa dapat kita modifikasi agar memakai konsep enkapsulasi seperti terlihat dibawah ini : public String nama; public void isinrp(int n) { if(n>=1 && n<=10) nrp=n; else System.out.println("Error...!!"); public void Info() { System.out.println( Saya siswa PENS ); Dengan memenuhi konsep enkapsulasi, seorang user yang mengakses data nrp tidak perlu dipusingkan dengan implementasi pengisian data nrp. User tersebut cukup dengan

memanggil method isinrp() dengan memasukkan nilai nrp-nya sebagai nilai parameter, maka class Siswa akan mengakses data nrp selama diperkenankan. Deklarasi contructor (konstruktor) Contructor (konstruktor) adalah suatu method yang pertama kali dijalankan pada saat pembuatan suatu obyek. Konstruktor mempunyai ciri yaitu : - mempunyai nama yang sama dengan nama class - tidak mempunyai return type (seperti void, int, double dll) Setiap class pasti mempunyai konstruktor. Jika kita membuat suatu class tanpa menuliskan konstruktornya, maka kompiler dari Java akan menambahkan sebuah konstruktor kosong. Misalnya saja kita mempunyai suatu class Siswa seperti dibawah ini: Disana kita tidak mendeklarasikan konstruktornya secara eksplisit. Ketika proses kompilasi, Kompiler Java akan menambahkan konstruktor kosong sehingga class Siswa tersebut akan tampak sebagai berikut : public Siswa() { Karena konstruktor adalah method yang pertama kali dijalankan pada saat suatu obyek dibuat, maka konstruktor sangat berguna untuk menginisialisasi data member. Misalnya saja class Siswa diatas mempunyai data member. Kita dapat menginisialisasi nrp di dalam kontruktor yang kita deklarasikan secara ekslipit, seperti yang tampak dibawah ini: public Siswa() { nrp=0; Kita juga dapat menginisialisasi suatu data member dengan nilai yang diinginkan oleh user dengan cara memasukkannya pada parameter konstruktor. Misalnya class Siswa diatas dapat kita modifikasi sebagai berikut :

Dengan mendeklarasikan konstruktor seperti itu, user dapat membuat obyek dengan menginisialisasi nrp sesuai yang ia kehendaki, misalnya saja seperti berikut : Overloading constructor Siswa TA2 = new Siswa(5); public Siswa(int n) { nrp=n; Suatu class dapat mempunyai lebih dari 1 konstruktor dengan syarat daftar parameternya tidak boleh ada yang sama. Misalnya saja kita ingin menginisialisasi data member nrp dengan 2 cara. Pertama, jika user tidak memberikan nilai inisialisasi nrp, maka nrp akan diset dengan nilai 0. Kedua, jika user ingin menginisialisasi nrp sesuai dengan nilai yang diinginkan, maka nrp akan diisi sesuai nilai yang diinginkan oleh user. Sehingga class Siswa diatas dapat kita deklarasikan 2 buah konstruktor seperti yang tampak sebagai berikut : public Siswa() { nrp=0; public Siswa(int n) { nrp=n; Package Package adalah suatu cara untuk memenej class-class yang kita buat. Package akan sangat bermanfaat jika class-class yang kita buat sangat banyak sehingga perlu dikelompokkan berdasarkan kategori tertentu. Misalnya saja kita mempunyai 2 buah class Siswa, dimana yang pertama adalah class Siswa untuk mahasiswa jurusan IT dan yang kedua adalah class Siswa untuk mahasiswa Telkom. Kita tetap dapat mendeklarasikan 2 class tersebut dengan nama Siswa, dengan cara mendeklarasikannya package masing-masing class seperti yang tampak di bawah ini:

package it; package telkom; Yang perlu kita perhatikan pada saat deklarasikan package, bahwa class tersebut harus disimpan pada suatu direktori yang sama dengan nama package-nya. Berkenaan dengan class Siswa diatas, class Siswa pada package it harus disimpan pada direktori it, dan class Siswa pada package telkom harus disimpan pada direktori telkom. it telkom Siswa.java Siswa.java Import class Suatu class dapat meng-import class lainnya sesuai dengan nama package yang dipunyainya. Misalnya saja kita dapat meng-import class Siswa.java dalam package it dengan mendeklarasikan kata kunci import. Jika kita ingin meng-import semua class yang ada pada package it, maka kita dapat mendeklarasikannya dengan menuliskan tanda *. import it.*; import it.siswa; public class IsiData { Satu hal yang perlu kita ketahui, pada saat kita ingin meng-import suatu class dalam suatu package, pastikan letak package tersebut satu direktori dengan class yang ingin meng-import. Dalam contoh diatas, representasi direktori akan tampak seperti berikut :

it Siswa.java telkom IsiData.java Siswa.java Jika letak package tersebut tidak satu direktori dengan class yang ingin meng-import, maka letak direktori package itu haruslah terdaftar dalam CLASSPATH. Kata kunci this Kata kunci this sangat berguna untuk menunjukkan suatu member dalam class-nya sendiri. This dapat digunakan baik untuk data member maupun untuk function member, serta dapat juga digunakan untuk konstruktor. Adapun format penulisannya adalah : this.data_member this.function_member() this() merujuk pada data member merujuk pada function member merujuk pada konstruktor Sebagai contohnya adalah sebagai berikut. Misalnya kita mempunyai suatu class diagram dibawah ini : Siswa - nrp : int - umur : int + Siswa(n : int) Pada saat kita membaca class diagram diatas, maka kita merasa kesulitan untuk memahami sesungguhnya nilai variabel n pada parameter konstruktor itu akan dipakai untuk menginisialisasi nrp atau umur. Untuk lebih memudahkan, kita dapat menuliskan class diagram yang lebih mudah dimengerti seperti yang tampak dibawah ini : Siswa - nrp : int - umur : int + Siswa(nrp : int)

Dengan class diagram diatas, kita lebih mudah memahami bahwa nilai variabel nrp pada parameter konstruktor tersebut akan dipakai untuk menginisialisasi data member nrp pada class Siswa. Sehingga programnya akan tampak sebagai berikut : 1 2 3 4 5 6 7 8 private int umur; public Siswa(int nrp) { nrp = nrp; Pada saat kita menulis baris ke-6, maka yang kita inginkan adalah : nrp = nrp; merujuk pada parameter konstruktor merujuk pada data member nrp pada class Siswa Namun dengan cara menulisan seperti itu, maka semua nrp yang ada disana akan merujuk pada nrp yang terdekat, yaitu nrp pada parameter konstuktor, sehingga data member nrp tidak akan diinisialisasi. Nah, untuk memberitahu kompiler Java bahwa yang kita maksud adalah nrp pada member class Siswa, kita dapat memakai kata kunci this, sehingga penulisannya baris-6 tersebut yang benar adalah seperti ini : this.nrp = nrp akan merujuk pada suatu member yang bernama nrp pada class yang bersangkutan (class Siswa) This dapat juga dipakai untuk memanggil konstruktor yang lain pada class yang bersangkutan. Misalnya saja contoh class Siswa pada overloading constructor dapat kita modifikasi sebagai berikut : public Siswa() { this(0); public Siswa(int n) { nrp=n;

Pada saat kita menuliskan this(0); kompiler Java akan merujuk pada suatu konstruktor di class tersebut yang mempunyai daftar parameter yang sesuai, yaitu : public Siswa(int n) Adapun nilai parameter yang dikirm adalah nilai 0.