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

dokumen-dokumen yang mirip
Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

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

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

Object Oriented Programming

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

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

Dalam penulisan sebuah kelas di java, ada beberapa aturan yang biasanya dilakukan. Nama kelas tidak menggunakan tanda spasi, dash (-) dan tanda lain.

Modul II Object Oriented Programming

MODUL 1 PENGENALAN OOP

Inheritance dan Kata Kunci static

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

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

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

subclass class manapun private default protected public package yang sama

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

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

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman Berorientasi Obyek. Ramos Somya

BAB II TEORI DAN KONSEP PEMROGRAMAN BERBASIS OBJECT

Dasar-Dasar OOP di Java

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Praktikum 3 Konsep Class, Attribute dan Method

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

PRAKTIKUM I Class dan Obyek

BAB 3 CLASS DAN OBJECT. Tujuan:

Pemrograman Berorientasi. Class dan Obyek 2

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

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

Pemrograman Berorientasi. Methods

Dasar-Dasar OOP di Java

INTERAKSI ANTAR OBJECT

KONSEP OBJEK ORIENTASI PROGRAM

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

Pemrograman Lanjut Review Class dan Object PTIIK

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

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

Inheritance (Pewarisan) Pengertian dasar inheritance

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

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

MODUL 3 Inheritance. Tujuan: Mahasiswa dapat mengenal dan memahami konsep inheritance dan cara menerapkan inheritance dengan constructor

[Lanjutan] Nurochman

Pemrograman Berbasis Objek Inheritance

Pemrograman Berorientasi Objek INHERITANCE

Bahasa Pemrograman 2.

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

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

MODUL 1. Class, Object, Constructor dan Method

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

Modul Bahasa Pemrograman 1

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

Inheritance. Topik 5/17/2013

Bahasa Pemrograman :: Polimorfism and Abstraction

Membuat dan Menggunakan Class

IKG2I4 / Software Project I

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

Pemrograman Berorientasi Objek Danu Wira Pangestu

Java Application. Aplikasi: Menampilkan Tulisan

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

SUMBER BELAJAR PENUNJANG PLPG

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

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

Java Application. Menampilkan Tulisan

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

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

Bahasa Pemrograman 2.

Praktikum 6 Class Design (Encapsulation)

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

LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Modul 4: Lebih Dalam lagi tentang Class, Objek dan Method

IKG2I4 / Software Project I

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Pemrograman Lanjut. Class : Deeper Look 2

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

LAPORAN RESMI INHERITANCE

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

Pemrograman Lanjut Tipe Data dan Constructor PTIIK

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

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

Diciptakan oleh James Gosling. Resmi diperkenalkan tahun Merupakan bahasa pemrograman berorientasi obyek murni. Pada awalnya hanya mampu

Object Oriented Programming 1

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

PRAKTIKUM III & IV PEMROGRAMAN BERORIENTASI OBJEK

Keyword this untuk memanggil private String pengarang; private String judul;

Pemrograman Berorientasi. Inheritance

Pemrograman Berorientasi. Abstract & Interface

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PENGENALAN OBJECT ORIENTED PROGRAMMING

Konsep Dasar Pemrograman Berorientasi Objek

MODUL 2 Constructor. Tujuan: Mahasiswa dapat mengenal dan memahami konsep constructor dan overloading constructor

Daftar Isi. Daftar Isi... ii MODUL 1 PENGENALAN OOP Pengantar Class Atribut Method This Access Modifier...

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

Praktikum 7. Dasar-dasar OOP di Java

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

Konsep Lanjut Pemrograman Objek

Praktikum KPLBO Class dan Object I

Bab 8. Dasar-Dasar OOP

Pemrograman Berorientasi. Package & Hubungan Antar Kelas

Transkripsi:

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

Object Oriented Programming Object Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen perangkat lunak yang stukturnya mirip dengan obyek pada dunia nyata. Disekeliling kita ada banyak contoh dari objek, seperti meja, pena, kursi, televisi dan masih banyak lagi. Yang dimiliki oleh objek antar lain state Pada implementasinya berupa field dari kelas behaviour Implementasinya menjadi method dari kelas Class Kelas adalah keluarga dari Objek. Apabila beberapa objek memiliki struktur yang sama, perilaku dan arti secara umum, maka bisa dikelompokkan menjadi sebuah kelas. Yang kemudian dapat digunakan untuk menciptakan sebuah objek yang memiliki keseragaman. Setiap kelas memberikan skema yang umum untuk satu atau lebih objek, dimana kelas dapat menjadi template dari satu atau banyak objek. package entity; import java.util.date; public class Anggota { private int id; private String nama; private String tmplahir; private Date tgllahir; public Anggota(){ public int getid() { return id; public void setid(int id) { this.id = id; public String getnama() { return nama; public void setnama(string nama) { this.nama = nama; public String gettmplahir() { return tmplahir; public void settmplahir(string tmplahir) { this.tmplahir = tmplahir; public Date gettgllahir() { return tgllahir; public void settgllahir(date tgllahir) { this.tgllahir = tgllahir; Deklarasi paket Import kelas Date Nama kelas Attribut atau Field Constructor Salah satu setter dan getter Variabel Ada beberapa jenis variabel, yaitu Variable yang terletak di dalam kelas, disebut field, attribute Variabel yang terletak didalam method atau blok kode, disebut local variable Variabel dalam deklarasi method, disebut sebagai parameter Secara umum field terdiri dari 3 komponen, yaitu Tanpa atau dengan modifier Tipe data dari field Nama dari field 1

Contructor Adalah sebuah method atau fungsi yang diekseskusi ketika sebuah kelas diinisialisasi, secara default sebuah Java Class memiliki 1 buah konstruktor tanpa parameter, konstruktor ini bisa ditulis, bisa tidak ditulis. Setiap kelas dalam java bisa memiliki lebih dari 1 konstruktor dengan parameter yang berbeda beda. Nama dari sebuah konstruktor harus sama dengan nama dari kelas dan tidak memiliki nilai kembalian. Apabila sebuah kelas memiliki 1 buah konstruktor dengan 1 buah parameter atau lebih, maka kelas tersebut menjadi tidak memiliki lagi konstruktor default. Method Method / operasi adalah apa yang bisa dilakukan oleh suatu objek, method bisa berupa setter getter atau method yang berfungsi selain sebagai setter dan getter. Secara umum method terdiri dari 7 komponen Modifier Return type Method name Parameter Exception Method body Access Modifier Access Modifier atau akses modifier menjelaskan bagaimana kelas lain menggunakan field atau memanggil method. Sebuah kelas mungkin dideklarasikan dengan modifier public, sehingga kelas ini dapat dipanggil dari kelas yang lain. Jika kelas tidak memiliki modifier (default), maka hanya dapat dipanggil oleh kelas yang berada dalam satu paket. Di level dibawah kelas ada constructor, attribute dan method. Dapat diberikan juga modifier public atau default. Dibagian ini (constructor, attribute dan method member) ada dua tambahan modifier yaitu private dan protected. Private modifier menunjukkan bahwa member hanya dapat diakses dari dalam kelasnya sendiri. Protected modifier menunjukkan bahwa member dapat di akses dari kelasnya sendiri, kelas dalam satu paket dan oleh subclassnya. Access Levels Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N private Y N N N Enkapsulasi Ini adalah salah satu fitur penting di OOP. Enkapsulation atau enkapsulasi adalah suatu cara untuk menyembunyikan detail dari suatu proses atau cara untuk memberikan akses tidak langsung ke data. Dengan enkapsulasi, data yang ada dalam sistem lebih aman dan konsisten. Enkapsulasi juga akan membuat detail proses yang rumit tersembunyi sehingga para pengguna suatu Class atau obyek akan menemukan suatu kemudahan dimana. Kemudahan itu didapat karena mereka tidak perlu menyetahui detail suatu proses untuk dapat melakukan suatu proses, cukup dengan nama Method yang dibutuhkan. Latihan 1 Latihan Kelas 1. Buatlah sebuah kelas dengan nama Sepeda 2. Simpan dengan nama file Sepeda.java 3. Buatlah sebuah kelas lagi dengan nama Utama, simpan dengan nama Utama.java 2

4. Tambahkan method main pada kelas Utama, method main adalah method yang dijadikan starting point pada aplikasi yang berbasiskan java 5. Buatlah objek sepedaku dari kelas sepeda di method main yang terletak di kelas Utama, kemudian inisialisasi dengan memanggil konstruktor sepeda 6. Buka command prompt kemudian arahkan ke direktory dimana project anda ada 7. Jalankan perintah javac Sepeda.java untuk mengkompile kelas Sepeda, jika berhasil maka akan tertambah 1 buah file Sepeda.class 8. Lakukan perintah yang sama untuk kelas Utama.java, pastikan menghasilkan 2 file baru yaitu Sepeda.class dan Utama.class 3

9. Jalankan kelas Utama dengan perintah java Utama Latihan field 1. Tambahkan 1 buah variabel bernama warna dengan tipe data String dan modifier private Field diatas digunakan untuk menampung warna sepeda, tipenya string dan modifiernya private sehingga hanya dapat diakses dari kelas Sepeda. 2. Tambahkan 1 buah setter dan getter di kelas Sepeda untuk field warna 3. Panggil method setwarna di kelas Utama method main, beri warna Ijo 4. Sebutkan warna sepeda dengan method println dari objek out paket system, dengan cara memanggil method getwarna dari objek sepedaku 5. Kompile kelas Sepeda.java dan Utama.java kemudian jalankan kelas Utama, maka hasilnya seperti berikut 4

Latihan Constructor 1. Tambahkan 1 buah konstruktor di kelas sepeda, konstruktor ini memiliki 1 buah parameter, yaitu warna 2. Silahkan anda compile kelas sepeda kemudian jalankan lagi kelas Utama, pasti error!!!! 3. Errornya muncul adalah java.lang.nosuchmethoderror, coba anda cek di kelas Utama, pada saat pemanggilan construktor Sepeda, kode programnya seperti berikut 4. Yang dilingkari diatas tampak bahwa new Sepeda adalah pemanggilan konstruktor kelas Sepeda, dan tadi kita sudah menambahkan konstruktor di kelas sepeda 5. Maka kita harus merubah pemanggilan konstruktor dikelas Utama agar seperti berikut 5

Coba anda kompile lagi kelas Utama dan jalankan kelas utama maka tidak menghasilkan error dan hasilnya adalah seperti berikut Inheritance Inheritance atau pewarisan, di dalam OOP digunakan untuk mengklasifikasikan suatu obyek ke dalam suatu karakteristik dan fungsi yang umum. Maka ini akan membuat bekerja dengan obyek lebih mudah dan menguntungkan, karena hal ini memungkinkan kombinasi karakteristik umum pada obyek induk dengan obyek anak dengan cara mewariskan karakteristik pada obyek induk pada obyek anak. Misalnya suatu kelas Mahasiswa dan Karyawan adalah dua buah obyek yang memiliki karakteristik berbeda, namun kedua obyek tersebut dapat mewarisi obyek induk misalnya Anggota. Karena Mahasiswa dan Karyawan adalah dua obyek yang berbeda tapi keduanya adalah Anggota dari suatu perpustakaan. Dapat dilihat di kode program untuk kelas Mahasiswa Berikut : package entity; public class Mahasiswa extends Anggota { private String nim; private int tahunmasuk; public String getnim() { return nim; public void setnim(string nim) { this.nim = nim; public int gettahunmasuk() { return tahunmasuk; public void settahunmasuk(int tahunmasuk) { this.tahunmasuk = tahunmasuk; Dan untuk kelas Karyawan package entity; public class Karyawan extends Anggota { private String nik; public String getnik() { return nik; public void setnik(string nik) { this.nik = nik; Pada dua kelas diatas, yaitu kelas Mahasiswa dan Karyawan terdapat kode program yang dilingkari yaitu 1. Mahasiswa extends Anggota 2. Karyawan extends Anggota Dapat dibaca bahwa kelas Mahasiswa adalah turunan dari kelas Anggota dan kelas Karyawan adalah turunan dari kelas Anggota. Apabila anda perhatikan lebih teliti misalnya pada kelas Karyawan maka tampak disana hanya terdapat 1 buah attribut atau field (dilingkari warna merah). Untuk attribut id, nama, tempat lahir dan tanggal lahir cukup dideklarasikan saja di kelas Anggota, sehingga tidak terjadi proses deklarasi variabel yang sama berulang ulang, berikut ini kode program kelas Anggota 6

package entity; import java.util.date; public class Anggota { private int id; private String nama; private String tmplahir; private Date tgllahir; public int getid() { return id; public void setid(int id) { this.id = id; /*-----setter dan getter attribut yang lain---*/ Kode program yang dilingkari warna ungu menunjukkan attribut yang dimiliki kelas Anggota seperti id, nama, tmplahir dan tgllahir. Attribut itu juga yang nantinya akan digunakan oleh kelas Mahasiswa, Karyawan dan PetugasPerpus. Berikut ini contoh sederhana untuk keuntungan yang bisa kita ambil dari menerapkan konsep inheritance package example; import entity.anggota; import entity.mahasiswa; import entity.petugasperpus; public class TestingInheritance { /** * @param args */ public static void main(string[] args) { /* TODO deklarasi objek anggota dengan Type Anggota * menggunakan Contructor Anggota() */ Anggota anggota=new Anggota(); anggota.setnama("ratno Kustiawan"); anggota.settmplahir("purworejo"); /* TODO decklarasi objek anggota2 dengan Type Anggota dengan * menggunakan Contructor Mahasiswa() */ Anggota anggota2=new Mahasiswa(); anggota2.setnama("afif Syaifullah"); anggota2.settmplahir("indonesia"); /* TODO deklarasi objek anggota3 dengan Type Anggota dengan * menggunakan Contructor PetugasPerpus() */ Anggota anggota3=new PetugasPerpus(); anggota3.setnama("afif"); anggota3.settmplahir("indonesia"); /* TODO deklarasi objek karyawan dengan Type Karyawan dengan * menggunakan Contructor PetugasPerpus() */ Anggota karyawan=new PetugasPerpus(); karyawan.setnama("kustiawan"); karyawan.settmplahir("indonesia"); /* TODO munculkan data dari objek yang sudah dibuat */ System.out.println("anggota =>" + anggota.getnama() + " =>" + anggota.gettmplahir()); System.out.println("anggota2 =>" + anggota2.getnama() + " =>" + anggota2.gettmplahir()); System.out.println("anggota3 =>" + anggota3.getnama() + " =>" + anggota3.gettmplahir()); System.out.println("karyawan =>" + karyawan.getnama() + " =>" + karyawan.gettmplahir()); Keluaran dari program diatas adalah anggota =>Ratno Kustiawan =>Purworejo anggota2 =>Afif Syaifullah =>Indonesia anggota3 =>Afif =>Indonesia karyawan =>Kustiawan =>Indonesia Prinsip diatas sesuai dengan aturan Substitusi Liskov yang berbunyi seperti berikut Since a subclass inherits the behaviour of its superclass, you can substitue objects whenever a superclass object is 7

expected (dikutip dari Object Oriented Design and Pattern second edition, Bab The Concept of Inheritace, bagian The Substitution Principle halaman 219 karangan Cay Horstmann). Latihan 2 1. Buatlah sebuah kelas bernama SepedaMini, kelas ini adalah turunan dari kelas Sepeda 2. Tambahkan 1 buah field bernama jumlah roda, bertipe integer dengan modifier private 3. Buat setter dan getter untuk field jumlahroda 4. Buka command prompt dan comple kelas SepedaMini.java, maka akan didapatkan pesan error dari sebagai berikut Perhatikan bahwa ada kalimat cannot find symbol, dimana symbol yang dimaksud adalah konstruktor Sepeda yang tanpa parameter, symbol yang dicari (konstruktor sepeda tanpa parameter) berada pada kelas Sepeda. 5. Error diatas terjadi karena tidak ditemukan konstruktor tanpa parameter di kelas sepeda, oleh karena itu dikonstruktor dari kelas SepedaMini perlu kita tambahkan konstruktor dengan parameter warna bertipe String 6. Compile lagi kelas SepedaMini.java maka tidak terjadi error dan anda sudah mendapatkan file SepedaMini.class 8

7. Buat kelas Utama2 yang didalamnya terdapat method main 8. Buat objek sepeda dari kelas sepeda menggunakan konstruktor Sepeda dengan mengisi parameternya dengan nilai Biru 9. Tuliskan warna sepeda dengan mamanggil method println dari objek out kemudian mengambil warna dari sepeda dengan memanggil method getwarna dari objek sepeda 10. Tambahkan objek sepedamini dari kelas SepedaMini dan inisialisasi dengan konstruktor SepedaMini, beri warna Hijau dan beri roda 4 11. Tambahkan objek dengan nama sepedaku, dari kelas Sepeda tapi diinisialisasi dengan konstruktor SepedaMini, kemudian munculkan warnanya 12. Pelajari dengan seksama dan tanyakan bila ada yang perlu ditanyakan ke dosen/asisten. 9