Konsep Lanjut Pemrograman Objek

dokumen-dokumen yang mirip
PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Oleh : Rahmady Liyantanto

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

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

Penjebakan Eksepsi. Nur hasanah, M.Cs

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Dasar Pemrograman Java

MODUL III ARRAYLIST TUGAS PENDAHULUAN

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Pemrograman Berorientasi Objek INHERITANCE

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

Konsep Pemrograman Berbasis Obyek

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

INTERAKSI ANTAR OBJECT

PRAKTIKUM 6 EXCEPTION

Pemrograman Berorientasi. Package & Hubungan Antar Kelas

TUGAS KELOMPOK 4 PEMROGRAMAN BERBASIS OBJEK

Modul Bahasa Pemrograman 1

Abstract Class dan Interface. Viska Mutiawani, M.Sc

[Lanjutan] Nurochman

Pemrograman Berorientasi. Class dan Obyek 2

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

PRAKTIKUM I Class dan Obyek

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

Pemrograman Berorientasi. Polimorfisme dan Binding

Membuat dan Menggunakan Class

Inheritance dan Kata Kunci static

SUMBER BELAJAR PENUNJANG PLPG

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

Modul 4 Exception, I/O, dan Operasi File

Tutorial FDM Nurul Huda 2008, bundled by samsonasik. Modul Java 1

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

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

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

Pemrograman Berorientasi Object

KONSEP DASAR PEMROGRAMAN BERORIENTASI OBYEK

PERTEMUAN 3 OBJEK DAN CLASS

LAPORAN RESMI INHERITANCE

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

PEMAHAMAN DASAR DASAR JAVA

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

MINGGU VII : RELASI ANTAR KELAS

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

Pemrograman Berorientasi. Inheritance

Inheritance (Pewarisan) Pengertian dasar inheritance

Pemrograman Berorientasi. Abstract & Interface

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

PRAKTIKUM III & IV PEMROGRAMAN BERORIENTASI OBJEK

Praktikum 3 Konsep Class, Attribute dan Method

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

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

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

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

PEMROGRAMAN BERORIENTASI OBJEK

BAB 3 CLASS DAN OBJECT. Tujuan:

PERTEMUAN 13 PERANCANGAN BERORIENTASI OBJEK UNTUK MULTI KELAS

//PROGRAM 9-8. int[] A = new int[5]; // SALAH, karena tidak terdapat. class BanyakEksepsi { indeks ke-5. public static void test(int a, int b) { try {

2 TIPE DATA DAN VARIABEL

JAVA FUNDAMENTAL ATURAN PERKULIAHAN SILABUS

Overriding, Overloading, Polymorphism. Pertemuan 10 Pemrograman Berbasis Obyek Dr. Rodiah

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

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

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

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

Praktikum 6 Class Design (Encapsulation)

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

Percobaan 6 Exception

PERCOBAAN 6 EXCEPTION

MODUL 9 EXCEPTION HANDLING

BAB VII. CLASS DAN OBJECT

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

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1)

Konsep Pemrograman Berorientasi Pada Objek Dengan. Java Netbeans

Modul II Object Oriented Programming

Bahasa Pemrograman :: Inheritance

Konsep Dasar Pemrograman Berorientasi Objek

BAB II VARIABEL DAN TIPE DATA

Polymorphism (Polimorfisme)

Overriding Method Overloading Method Class(iii) [Superclass and subclass] [constructor overloading] Keyword Super

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

IMPLEMENTASI STRUKTUR DATA LIST, QUEUE DAN STACK DALAM JAVA

Pemrograman Lanjut Review Class dan Object PTIIK

MODUL 1 PENGENALAN OOP

Pemrograman Berorientasi Objek Danu Wira Pangestu

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception. 2. Mengetahui cara membuat sendiri class exception.

CLASS & OBJECT DALAM JAVA (IS1313)

Array Multidimensi. Pemrograman Dasar. Java

BEKERJA DENGAN JAVA CLASS LIBRARY

Pemrograman Berorientasi Obyek. Operator & Assignment

MODUL 2. UML, Generalization, and Specialization UML. 2.1 Pengertian UML. 2.2 Diagram-Diagram yang Ada Dalam UML TUJUAN PRAKTIKUM LANDASAN TEORI

int spasi = 0; hurufhidup = 0;

TUGAS DASAR PEMROGRAMAN KELAS C DOSEN PENGAMPU : IKA ATSARI DEWI, STP, MP

BAHASA PEMROGRAMAN JAVA

Bahasa Pemrograman 2.

Review PBO. Ramos Somya

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

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

IKG2I4 / Software Project I

Transkripsi:

Constructor Konsep Lanjut Pemrograman Objek Restyandito e-mail : dito@ukdw.ac.id website : http://lecturer.ukdw.ac.id/~dito Constructor merupakan metode khusus yang memiliki nama sama dengan kelasnya. Jika kita tidak mengkodekan sebuah constructor, JAVA akan membuat sebuah constructor default untuk kita. Constructor default tidak melakukan apaapa, namun memungkinkan semua variabel yang tidak diinisialisasi dalam deklarasi diberi suatu nilai default. TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 2 Constructor class Mahasiswa { private String nama = ""; private int nim = 0; private static int NIM = 0; private double ipk = 0.0; public Mahasiswa() { this.nim = ++NIM; public Mahasiswa(String na, double i) { this.nama = na; this.ipk = i; this.nim = ++NIM; public void LihatData() { System.out.println("Nama : " + nama + "\tnim : " + nim + "\tipk : " + ipk ); public class MahasiswaInfo { public static void main(string args[]) { Mahasiswa mhs1 = new Mahasiswa( "Dinda, 3.4 ); Mahasiswa mhs2 = new Mahasiswa( "Ninda, 3.25 ); Mahasiswa mhs3 = new Mahasiswa(); mhs1.lihatdata(); mhs2.lihatdata(); mhs3.lihatdata(); Constructor TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 3 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 4 Class Activity 1. Buatlah suatu class Mobil dengan atribut berupa pabrik, tipe, mesin dan kapasitas penumpang. 2. Buatlah suatu constructor dengan 4 parameter untuk menset nilai dari pabrik, tipe, mesin dan kapasitas penumpang. 3. Buatlah suatu method untuk menampilkan atribut Mobil. 4. Buatlah 2 buah instance object, sedan dengan atribut Honda, JAZZ, 2000CC, 5 penumpang dan MPV dengan atribut VW,Caravelle,3000CC, 7 penumpang. 5. Tampilkan atribut kedua buah instance tersebut (sedan dan MPV) Hubungan Antar Class Pemrograman berorientasi obyek adalah sekumpulan class-clas yang saling berintarksi. Ada banyak cara suatu class dapat berinteraksi dengan class lainnya, seperti pewarisan (GenSpec), agregasi (WholePart) dan asosiasi (instance/ message connection) TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 5 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 6 Restyandito Konsep Lanjut Pemrograman Objek - 1

merupakan hubungan antar class dimana ciri-ciri dan sifat dari class induknya diturunkan ke class anaknya. - nama : String = - alamat : String = - jumanak : int = 0 - noinduk : int = 0 Pegawai + Pegawai(nama:String, alamat:string, jumanak:int) + lihatnama() - gajiharian : int = 0 - harikerja : int = 0 Pegawai Harian + PegawaiHarian(nama:String, alamat:string, jumanak:int, gajiharian:int, harikerja:int) - nama : String = - alamat : String = - jumanak : int = 0 - noinduk : int = 0 Pegawai + Pegawai(nama:String, alamat:string, jumanak:int) + lihatnama() Catatan: + (plus) = public, (dash) = private, # (compound) = protected TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 7 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 8 class Pegawai { private String nama; private String alamat; private int jumanak; private int noinduk; private static int no = 0; public Pegawai(String n, String a, int x) { this.nama = n; this.alamat = a; this.jumanak = x; this.noinduk = ++no; public void lihatdata() { System.out.print("nomor: " + this.noinduk); System.out.print("\tnama: " + this.nama); System.out.print("\t\talamat: " + this.alamat); System.out.print("\t\tanak: " + this.jumanak + "\n\n"); public void lihatnama() { System.out.println("\t\tnama: " + this.nama + "\n\n"); TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 9 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 10 class PegawaiHarian extends Pegawai { int gajiharian; int harikerja; public PegawaiHarian(String n, String a, int x, int gaji, int hari) { super(n, a, x); this.gajiharian = gaji; this.harikerja = hari; public void lihatdata() { super.lihatdata(); System.out.print("gaji: " + this.gajiharian); System.out.print("\thari: " + this.harikerja + "\n\n"); public class DataPegawai { public static void main(string[] args) { Pegawai emp1 = new Pegawai("Dini", "Jl.Markisa 26", 2); Pegawai emp2 = new Pegawai("Dono", "Jl.Solo 345",6); PegawaiHarian emp3 = new PegawaiHarian ("Dana", "Jl.Bulan 44", 8, 50000, 40); emp1.lihatdata(); emp2.lihatdata(); emp3.lihatdata(); emp3.lihatnama(); TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 11 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 12 Restyandito Konsep Lanjut Pemrograman Objek - 2

Hewan Anjing Polymorphism ( revisited ) Hewan lumping = new Kuda() ; Anjing coki = new Anjing() ; Hewan coki = new Anjing() ; Polymorphism ( revisited ) Dengan polymorphism, reference type dapat merupakan superclass dari object type yang digunakan Hewan[] binatang = new Hewan[5]; binatang[0] = new Serigala(); binatang[1] = new Anjing(); binatang[2] = new Kucing(); binatang[3] = new KudaNil(); binatang[4] = new Singa(); for ( int i = 0; i < binatang.length; i++ ) { binatang[i].makan(); binatang[i].bersuara(); TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 13 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 14 Polymorphism ( revisited ) Polymorphism memungkinkan pembuatan subclass baru, tanpa harus merubah program utama. class DokterHewan { public void menyuntik ( Hewan a) { // mengobati hewan a.bersuara() ; class PemilikHewan { public void memeriksakanhewan() { DokterHewan d = new DokterHewan(); Anjing a = new Anjing(); d.menyuntik(a); Kucing k = new Kucing(); d.menyuntik(k); TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 15 Suatu class dikatakan memiliki hubungan agregasi (aggregation) apabila kelas tersebut berisi sebuah obyek dari kelas lain. secara umum menunjukkan suatu hubungan one-to-many atau dikenal dengan istilah Whole- Part. TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 16 Mobil Roda Suatu bentuk khusus dari agregasi adalah komposisi (composition), dimana suatu bagian dari class tidak dapat berdiri sendiri. Kursus Modul Buku Halaman 1..* 1..* TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 17 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 18 Restyandito Konsep Lanjut Pemrograman Objek - 3

- namaorganisasi : String = - alamatsekretariat : String = - noaktapendirian : String = -nama : String = -alamat : String = -noinduk : int = 0 SerikatPegawai Pegawai + Pegawai(nama:String, alamat:string, jumanak:int) + lihatnama() import java.util.date; public class SerikatPegawai { private String NamaOrganisasi; private String AlamatSkretariat; public Pegawai pegawai; public class Pegawai { private String nama; private String alamat; private int noinduk; TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 19 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 20 Ketergantungan Hubungan ketergantungan (dependency) menunjukkan bahwa suatu class membutuhkan class yang lain dalam melaksanakan operasinya. Jika dipahami secara logika hubungan ketergantungan memang sedikit berbeda dengan hubungan agregasi. Untuk menerapkan multiplicity n atau 1..* atau 0..* atau 1..n atau 0..n pada JAVA dapat digunakan beberapa pilihan, antara lain: array, class Vector dan class Collection. ARRAY Salah satu kelemahan dari array adalah pendefinisian jumlah elemen yang dapat ditampung pada suatu array bersifat terbatas pada saat runtime. TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 21 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 22 VECTOR Vector adalah obyek seperti array dengan jumlah elemen yang dinamis. Perbedaan antara vector dengan array: Array pada JAVA dapat menyimpan tipe apapun, termasuk numerik atau class Vector pada JAVA harus menyimpan obyek. Misalnya untuk menyimpan nilai int, maka harus dilakukan casting ke obyek Integer. Untuk mendefinisikan sebuah vector digunakan perintah: Vector namaobyek = new Vector(jumlahElemenAwal); Setelah itu berikut beberapa method yang dapat digunakan untuk operasinya: size mengetahui jumlah elemen dalam vector addelement menambah elemen baru clear menghapus semua elemen vector elementat(posisi) mengambil nilai elemen vector ke posisi setelementat(posisi) menempatkan sebuah elemen obyek pada posisi tertentu removeelementat(posisi) menghapus elemen dan menggeser ke bawah semua elemen di atasnya insertelementat(obyek,posisi) menyisipkan satu elemen pada posisi TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 23 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 24 Restyandito Konsep Lanjut Pemrograman Objek - 4

Untuk menampilkan semua elemen dalam vektor dapat digunakan perulangan: for (int i= 0; i < ovector.size(); i++) { System.out.println(ovector.elementAt(i)); Pesanan + gettotal(): int 1 1..* Produk -kode: String -harga: int=100 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 25 Produk.java class Produk { private String kode; private int harga = 100; public Pesanan pesanan; public String getkode() { return kode; public void setkode(string _kode) { kode = _kode; public int getharga() { return harga; public void setharga(int _harga) { harga = _harga; public Pesanan getpesanan() { return pesanan; public void setpesanan(pesanan pesanan) { if (this.pesanan!= pesanan) { if (this.pesanan!= null) this.pesanan.removeproduk(this); this.pesanan = pesanan; if (pesanan!= null) pesanan.addproduk(this); TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 26 Pesanan.java class Pesanan { private Vector produk = new Vector(); public Vector getproduk() { return produk; public void addproduk(produk produk) { boolean ada = false; for(int i=0; i<this.produk.size(); i++) { if(((produk)this.produk.elementat(i)) == produk) ada=true; if (!ada) { this.produk.addelement(produk); produk.setpesanan(this); Pesanan.java public void removeproduk(produk produk) { for(int i=0; i<this.produk.size(); i++) { if(((produk)this.produk.elementat(i)) == produk) { this.produk.removeelementat(i); produk.setpesanan((pesanan)null); public int gettotal() { int n = 0; for(int i=0; i<this.produk.size(); i++) { n += ((Produk)this.produk.elementAt(i)).getHarga(); return n; TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 27 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 28 PesananProduk.java public class PesananProduk { public static void main(string[] args) { Pesanan order = new Pesanan(); Produk p1 = new Produk(); p1.setkode("aa1234"); p1.setharga(1200); Produk p2 = new Produk(); p2.setkode("ab5678"); p2.setharga(5000); order.addproduk(p1); order.addproduk(p2); System.out.println(order.getTotal()); TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 29 Pertama kali suatu class dibuat, tidak mungkin sempurna tanpa kesalahan. Jika terjadi kesalahan pemrogram dapat melakukan hal-hal berikut: 1. Tidak mengindahkan permasalahan 2. Cek hal-hal yang berpotensi menjadi masalah, dan membatalkan program saat menemukan masalah. 3. Cek hal-hal yang berpotensi menjadi masalah, ambil (catch) kesalahan dan mencoba memperbaiki persoalan 4. Membuat suatu pengecualian (throw exception) TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 30 Restyandito Konsep Lanjut Pemrograman Objek - 5

Exception adalah adalah hal-hal tak terduga yang terjadi pada sistem. try { // kemungkinan kode program yang salah catch (Exception e) { Exception adalah adalah hal-hal tak terduga yang terjadi pada sistem. try { // kemungkinan kode program yang salah catch (Exception e) { // program untuk menangani kesalahan // program untuk menangani kesalahan TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 31 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 32 Referensi try { count = 0; count = 5 / count; catch (Exception e) { System.out.println(e.getMessage()); count = 1; System.out.println( Exception telah dapat diatasi ); Garrido, Jose M., Object Oriented Programming: From Problem Solvint to Java, Charles iver Mdia, Inc., 2003. hal 25-90 Weisfeld, Matt, The Object-Oriented Thought Process, Developer s Library, 2004. hal 5-28, 43-53 Deitel H.M., Java How To Program, Prentice Hall, 2003. hal 341-500 Hortsmann, Cay S., Core Java : Volume 1- Fundamentals, Sun Microsystems Press, 1999. hal 105-224 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 33 TI1163 Konsep Lanjut Pemrograman Objek Restyandito - 34 The End terima kasih Restyandito Konsep Lanjut Pemrograman Objek - 6