BAB 1 PENGENALAN PEMROGRAMAN BERORIENTASI OBJEK

dokumen-dokumen yang mirip
Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

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

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Konsep Pemrograman Berbasis Obyek

Bahasa Pemrograman :: Polimorfism and Abstraction

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

Inheritance (Pewarisan) Pengertian dasar inheritance

UNIVERSITAS GUNADARMA

Object Oriented Programming 1

PEMROGRAMAN BERORIENTASI OBJEK. Nurochman

Pemrograman Berorientasi Obyek. Ramos Somya

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Bahasa Pemograman II. Object Oriented Programming

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

PERTEMUAN 5 OOP. Objektif : Praktikan mengetahui konsep OOP. Praktikan dapat membuat program sederhana dengan konsep OOP.

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

Mengenal Object Oriented Programming (OOP)

Object Oriented Programming LOGO

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

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

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

KONSEP OBJEK ORIENTASI PROGRAM

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

Gambar 1: Hirarki class

Class & Object 2. Imam Fahrur Rozi

MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK

KONSEP Pemrograman Berorientasi Objek KARMILASARI

Konsep Objek Oriented

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

Pemrograman Web. Pemrograman Berorientasi Objek. 8 Adam Hendra Brata

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

Dasar-Dasar OOP di Java

Pemrograman Lanjut Review Class dan Object PTIIK

SUMBER BELAJAR PENUNJANG PLPG

Polymorphism (Polimorfisme)

PEMROGRAMAN BERORIENTASI OBJEK

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

Pemrograman Berorientasi. Polimorfisme dan Binding

Pemrograman Web. Pemrograman Berorientasi Objek. Adam Hendra Brata

BAB 7 OVERLOADING DAN OVERRIDING

PEMROGRAMAN JAVA. Yoannita. Konsep Pemrograman Berorientasi Objek. Company LOGO

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

Pemrograman Berorientasi. Abstract & Interface

DASAR PEMROGRAMAN. Konsep Pemrograman Berorientasi Objek. Yoannita

Kita akan membuat class yang mengandung informasi dari Siswa dan operasi operasi yang dibutuhkan pada record siswa.

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

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

Inheritance dan Kata Kunci static

Pemrograman Berorientasi Obyek. Konsep OOP

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

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

Object OrientedProgramming

PERTEMUAN 13 PERANCANGAN BERORIENTASI OBJEK UNTUK MULTI KELAS

PRAKTIKUM I Class dan Obyek

Bahasa Pemrograman :: Inheritance

Bab 8. Dasar-Dasar OOP

PERTEMUAN 11 KONSEP PEMROGRAMAN BERORIENTASI OBJEK

VISUAL BASIC Pengenalan VB NET

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

Pewarisan, Polimorfisme, dan Interface

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

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

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

Konsep Pemrograman Berorientasi Obyek. Pertemuan 1

Dasar-Dasar OOP di Java

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

Pemrograman Berorientasi Objek

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

PRAKTIKUM III & IV PEMROGRAMAN BERORIENTASI OBJEK

Java - Belajar Object Oriented Programming (OOP) (Part 1 - Class, Method, Getter, Setter)

Konsep Pemrograman Berorientasi Obyek

Pendahuluan Rekayasa Perangkat Lunak II. Alif Finandhita. Teknik Informatika UNIKOM

MINGGU VII : RELASI ANTAR KELAS

Pemograman Berorientasi Objek

Bahasa Pemrograman 2.

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

Bahasa Pemrograman I VB.Net. Oleh: Erik Perdana Ibrahim, S.Kom 2011

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

REKAYASA PERANGKAT LUNAK II

Inheritance (Pewarisan Sifat) Imam Fahrur Rozi

KONSEP OOP: POLYMORPHISM

Konsep Pemrograman Berorientasi Obyek

Dengan menggunakan encapsulation kita dapat membatasi akses langsung suatu class atau program kecuali melalui suatu method yang sudah diberikan.

Modul II Object Oriented Programming

Membuat dan Menggunakan Class

BAHASA PEMROGRAMAN. Untuk SMK. Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto. : Ratu Amilia Avianti. Perancang Kulit

Pengenalan Obyek. Arna Fariza. Materi

Praktikum 3 Konsep Class, Attribute dan Method

Bahasa Pemrograman 2.

Dasar Pemrograman Java

KONSEP OOP: POLYMORPHISM

Bahasa Pemrograman 2.

Covered Topics. Course Map OOP Concept

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

Modul Bahasa Pemrograman 1

Konsep Dasar Pemrograman Berorientasi Objek

* - Menandakan bahwa terjadi lebih dari satu kejadian dimana elemen tersebut diimplementasikan

REKAYASA PERANGKAT LUNAK (RPL) Implementasi PL

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

Transkripsi:

BAB 1 PENGENALAN PEMROGRAMAN BERORIENTASI OBJEK Tujuan Pada akhir perkuliahan ini, mahasiswa mempunyai kemampuan sebagai berikut - Menyebutkan konsep dasar Pemrograman B erorientasi Objek - Menjlaskan masing-masing konsep dasar Pemrograman B erorientasi Objek disertai dengan ilustrasi contoh

OOP adalah paradigma pemrograman yang cukup dominan saat ini, karena mampu memberikan solusi kaidah pemrograman modern. Meskipun demikian, bukan berarti bahwa pemrograman prosedural sudah tidak layak lagi. OOP diciptakan karena dirasakan masih adanya keterbatasan pada bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah, semua pemecahan masalah dibagi ke dalam objek. Dalam OOP data dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi satu kesatuan yang dapat disebut sebagai objek. Proses perancangan atau desain dalam suatu pemrograman merupakan proses yang tidak terpisah dari proses yang mendahului, yaitu analisis dan proses yang mengikutinya. Pembahasan mengenai orientasi objek tidak akan terlepas dari konsep objek seperti inheritance atau penurunan, encapsulation atau pembungkusan, dan polymorphism atau kebanyakrupaan. Konsep-konsep ini merupakan fundamental dalam orientasi objek yang perlu sekali dipahami serta digunakan dengan baik, dan menghindari penggunaannya yang tidak tepat. 1.1 Objek Objek merupakan konsep dasar dari pemrograman berorientasi objek. Pemrograman menjadi lebih mudah ditinjau dari konsep karena mendekati pemodelan di dunia nyata. Coba perhatikan hal-hal yang ada di sekitar, maka kita akkan menemukan bahwa di sekitar terdapat banyak objek. Terdapat komputer, televise, kucing, sepeda dsb. Karakteristik dasar dari objek adalah memiliki atribut atau data atau karakter atau status. Selain itu objek juga mempunyai tingkah laku atau fungsi atau behavior atau method. Seperti computer, ia memiliki monitor, CPU, memory dsb (merupakan atribut atau data dari komputer) demikian juga computer bisa menghitung, menyimpan, menampilan data dsb (fungsi dari komputer).

Objek dalam kaitannya dengan perangkat lunak / software berorientasi objek, secarakonsep sama dengan objek di dunia nyata yang memiliki atribut/data dan behavior/ethod/fungsi. Fungsi yang dimiliki oleh suatu objek digunakan untuk melakukan perhitungan atau manipulasi data atribut dari objek. Selain itu juga digunakan untuk berkomunikasi dengan objek lain. Beberapa keuntungan yang didapat dengan mengembangkan perangkat lunak berbasis objek diantaranya adalah Modularitas objek bisa di pelihara atau dikembangkan secara independen tanpa harus tergantung dengan kode lain. Information Hiding atribut yang dimiliki oleh objek bisa disembunyikan dari dunia luar atau interaksi langsung dengan objek lain, dan hanya menyediakan fungsi untuk bisa mengakses atribut objek. Code reusability Sekali suatu objek sudah dibuat, maka ia dapat digunakan kembali tanpa harus membuat ulang kode yang sama Memudahkan debug ketika diteemukan suatu objek tidak berfungsi sebagaimana mestinya, kita bisa dengan mudah unntuk menggantinya dengan objek baru yang telah diperbaiki. 1.2 Class Di dunia nyata akan ditemukan banyak objek yang sebenarnya berbeda akantetapi memiliki jenis yang sama. Seperti berbagai televisi dengan berbagai merek merupaakn beberapa objek yang berbeda, akantetapi memiliki jenis yang sama yaitu jenis televise. Setiap televisi dibuat dengan mengacu pada model atau gambaran atau rancangan / blueprint yang sama meskipun nantinya ketika dibuat diberikan merek atau jenis yang berbeda. Akantetapi sekalilagi mereka dibuat dari satu model televise yang sama. Model atau cetakan atau deain konsep atau blueprints tersebut yang dalam dunia perangkat lunak berorientasi objek disebut sebagai Class.

Sebagai contoh yang lain, berbagai macam jenis sepeda dibuat dari satu klas yang sama yaitu klas sepeda. class Sepeda { int kecepatan ; int gigi ; void ubahkecepatan(int newvalue) { kecepatan = newvalue; void ubahgigi(int newvalue) { gigi = newvalue; void tambahkecepatan(int increment) { kecepatan = kecepatan + increment; void rem(int decrement) { kecepatan = kecepatan - decrement; void tampil() { System.out.println("kecepatan"+kecepatan+ " gigi"+gigi); Di atas adalah klas Sepeda. Kalau kita coba teliti klas tersebut mempunyai dua buah atribut yaitu gigi dan kecepatan dan beberapa fungsi seperti fungsi rem(), tampil(), ubahgigi(), ubahkecepatan(). Akantetapi berapa nilai kecepatan dan ada pada gigi keberapa belum ada nilainya. Hal ini karena Speda di atas masih sebatas klas, masih sebatas rancangan dan belum ada riilnya. class SepedaDemo { public static void main(string[] args) { // Create two different Bicycle objects Sepeda spd1 = new Sepeda (); Sepeda spd2 = new Sepeda (); // Invoke methods on those objects spd1.ubahkecepatan (50); spd1.tambahkecepatan (10); spd1.ubahgigi(2); spd1.tampil();

spd2.ubahkecepatan (50); spd2.tambahkecepatan(10); spd2.ubahgigi(2); spd2.rem(3); spd2.tampil(); Ketika dijalankan akan muncul keluaran kecepatan 60 gigi2 kecepatan 57 gigi2 Pada klas SepedaDemo, baru kemudian dibuat objek dari klas Sepeda. Setelah dibbuat objek, baru bisa diset nilai kecepatan dan gigi. Karena setelah dibuat objek, maka sudah ada objek riil yang bisa diakses. Kalau masih klas maka masih sebatas rancangan atau blueprints. 1.3 Enkapsulasi Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class. Dua hal yang mendasar dalam enkapsulasi yakni Information hiding. Interface to access data. 1.3.1 Information hiding Sebelumnya kita dapat mengakses anggota class baik berupa atribut maupun method secara langsung dengan menggunakan objek yang telah kita buat. Hal ini dikarenakan akses kontrol yang diberikan kepada atribut maupun method yang ada di dalam class tersebut adalah 'public'. Kita dapat menyembunyikan informasi dari suatu class sehingga anggota class tersebut tidak dapat diakses dari luar, caranya adalah hanya dengan memberikan akses kontrol 'private' ketika mendeklarasikan atribut atau method. Proses ini disebut dengan information hiding. 1.3.2 Interface to access data

Jika kita telah melakukan information hiding terhadap suatu atribut pada suatu class, lalu bagaimana cara melakukan perubahan terhadap atribut yang kita sembunyikan tersebut, caranya adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut. Enkapsulasi menunjuk pada prinsip dari menyembunyikan desain atau mengimplementasikan informasi yang tidak sesuai pada object yang ada. Menyembunyikan elemen dari penggunaan sebuah class dapat dilakukan dengan pembuatan anggota yang ingin Anda sembunyikan secara private. Contoh berikut menyembunyikan field secret. Catatan bahwa field ini tidak langsung diakses oleh program lain menggunakan method getter dan setter. class Encapsulation { private int secret; //field tersembunyi public boolean setsecret(int secret) { if (secret < 1 secret > 100) { return false; this.secret = secret; return true; public getsecret() { return secret; 1. Accessor Methods Untuk mengimplementasikan enkapsulasi, kita tidak menginginkan sembarang object dapat mengakses data kapan saja. Untuk itu, kita deklarasikan atribut dari class sebagai private.

Namun, ada kalanya dimana kita menginginkan object lain untuk dapat mengakses data private. Dalam hal ini kita gunakan accessor methods. Accessor Methods digunakan untuk membaca nilai variabel pada class, baik berupa instance maupun static. Sebuah accessor method umumnya dimulai dengan penulisan get<namainstancevariable>. Method ini juga mempunyai sebuah return value. Sebagai contoh, kita ingin menggunakan accessor method untuk dapat membaca nama, alamat, nilai bahasa Inggris, Matematika, dan ilmu pasti dari siswa. Mari kita perhatikan salah satu contoh implementasi accessor method. public class StudentRecord { private String name; public String getname(){ return name; Contoh lain dari penggunaan accessor method adalah getaverage, public class StudentRecord { private String name; public double getaverage(){ double result = 0; result = ( mathgrade+englishgrade+sciencegrade )/3; return result; Method getaverage() menghitung rata rata dari 3 nilai siswa dan menghasilkan nilai return value dengan nama result. 2. Mutator Methods

Bagaimana jika kita menghendaki object lain untuk mengubah data? Yang dapat kita lakukan adalah membuat method yang dapat memberi atau mengubah nilai variable dalam class, baik itu berupa instance maupun static. Method semacam ini disebut dengan mutator methods. Sebuah mutator method umumnya tertulis set<namainstancevariabel>. Mari kita perhatikan salah satu dari implementasi mutator method public class StudentRecord { private String name; public void setname( String temp ){ name = temp; Perlu diingat bahwa mutator methods tidak menghasilkan return value. Namun berisi beberapa argumen dari program yang akan digunakan oleh method. 1.4 Pewarisan Sifat Beberapa objek yang berbeda bisa jadi memiliki beberapa sifat yang sama yang bersifat umum. Sebagai contoh sepeda gunung, sepeda balap, sepeda double merupakan tiga objek yang berbeda. Akantetapi diantara ketiga objek sepeda tersebut memiliki kesamaan sifat yaitu etiganya sama-sama sepeda. Sama-sama memiliki kecepatan, gigi, rem juga bisa berpindah gigi, mengerem, menambah atau mengurangi kecepatan. Akantetapi juga diantara ketiga sepeda tersebut juga memiliki perbedaan, misalnya untuk sepeda double memiliki dua tempat duduk, untuk sepeda gunung dan balap memiliki gir atau gigi tambahan yang bisa dipindah-pindah. Pemrograman berorientasi objek memungkinkan susatu klas untuk bisa menurun sifatnya dari klas lain. Sifat yang diturunkan bisa jadi adalah berupa atribut atau juga method. Klas yang mewarisi atribt dan method dari klas lain disebut subklas. Sedang klas yang atribut dan method nya diturunkan ke subklas, disebut sebagai superklas. Dari contoh di atas Sepeda

merupakan superklas dan seeda gunung dan sepeda balap serta sepeda double adalah subklas nya. Relasi inheritance juga seringkali disebut sebagai IS-A relasi. Dalam konteks contoh diatas, bisa disebutkan juga bahwa sepeda gunung IS A sepeda, sepeda balap IS A sepeda. Sepeda SepedaGunung SepedaDouble SepedaBalap Dengan menggunakan relasi inheritance, kita tidak perlu mendeklarasikan ulang atribut dan method dari superklas di subklas. Kita tinggal menurunkan saja superklas ke subklas. Sehingga hal ini meningkatkan reusability. Sebagai ilustrasi dalam program class Sepeda { class SepedaGunung extends Sepeda{ class SepedaBalap extends Sepeda{ class SepedaDouble extends Sepeda{ 1.5 Polimorfisme Secara bahasa, polimorfisme diambil dari bidang biologi yang artinya adalah suatu organism atau spesies yang dapat memiliki berbagai bentuk yang berbeda. Prinsip ini yang kemudian diadopsi oleh konsep pemrograman berorientasi objek. Polimorfisme hanya bisa berlaku pada klas-klas yang berada dalam hirarki inheritance. Dengan menggunakan prinsip polimorfisme, pemrograman berorientasi objek menjadi lebih efektif.

Polimorfisme bisa diartikan dengan singkat sebagai banyak bentuk. Dalam bidang programming, banyak bentuk berarti bahwa sebuah nama dapat merepresentasikan impementasi kode program yang berbeda. Jadi dengan polimorfisme memiliki banyak perilaku/behaviour yang berbeda-beda. sebuah nama bisa Hewan Anjing Kucing Kambing Sebagai contoh terdapat klas Hewan dan klas Kucing, Anjing dan Kambing. Dari beberapa klas tersebut terlihat jelas bahwa klas Kucing, Anjing dan Kambing merupakan subklas dari klas Hewan sebagai superklas. Setiap Hewan bisa bersuara, demikian juga dengan Kucing, Anjing dan Kambing. Akantetapi cara bersuara Kucing, Anjing dan Kambing berbeda-beda. Dari ilustrasi tersebut, kalau kita bawa ke terminology pemrograman, klas Hewan memiliki method bersuara ( ), karena klas Anjing, Kucing dan Kambing merupakan subklas dari klas Hewan (bisa disebut juga bahwa Kucing, Anjing dan Kambing IS A hewan atau adalah hewan), maka mereka juga mewarisi method bersuara ( ) dari klas Hewan. Akantetapi karena cara bersuara dari ketiga hewan tersebut berbeda, maka di dalam klas Anjing, Kucing dan Kambing, masing-masing ditulis atau dideklarasikan kembali method bersuara () tentu denan isi yang berbeda. Konsep pendeklarasian ulang method yang dimiliki superklas di dalam subklas in yang disebut overriding method. Sebagai ilustrasi program diberikan di bawah ini class Hewan { public String bersuara(){ return suara hewan macam-macam ;

class Anjing extends Hewan { public String bersuara(){ return guk guk ; class Kambing extends Hewan { public String bersuara(){ return mbek..mbek.. ; class Kucing extends Hewan { public String bersuara(){ return meong..meong.. ;