Rabu, 14 September 2011

PBO Pertemuan 2

Creating class adalah suatu proses pembentukan class. Secara umum sebuah class Java didefinisikan dengan format sebagai berikut:


class NamaClass
{
   definisi_data_member;

   definisi_member_function;
}

Blok program ini merupakan bentuk dasar pembentukan class di Java. Pada bagian selanjutnya kita akan mengimplementasikan bentuk tersebut dengan kasus yang lebih real.

Sebuah class (atau objek nantinya) memiliki dua komponen:
1.     Data member (anggota data), yaitu variabel-variabel yang menyatakan karakteristik suatu objek. Sebuah objek lingkaran memiliki karakteristik yang dinyatakan dengan nilai jari-jari.
2.     Member function (fungsi anggota), yaitu fungsi-fungsi yang bertugas memanipulasi nilai pada data-member. Fungsi yang paling sering ada pada sebuah objek adalah fungsi untuk mengubah dan menginformasikan nilai dari data-member objek.

Constructor

      metode OOP hadir dengan adanya sebuah method khusus yang disebut constructor yang akan dipanggil secara otomatis pada saat sebuah objek diciptakan. Kita tidak usah melakukan pemanggilan terhadap constructor ini; Java-lah yang akan melakukannya. Keunikan ini bisa kita manfaatkan untuk melakukan proses inisialisasi seluruh data objek. Dengan kata lain proses pemberian nilai awal seluruh data objek dilakukan melalui constructor. Isi constructor itu sendiri bisa berupa pemanggilan method internal atau instruksi lain.

Sebagaimana fungsi atau method pada umumnya, constructor juga bisa memiliki variasi parameter. Kita bisa menerapkan konsep function-overloading pada constructor. Secara umum ada tiga variasi constructor:
1.     Single constructor, yaitu hanya ada satu constructor pada class.
2.     Constructor dengan parameter, yaitu constructor dengan data yang bisa kita kirim pada saat penciptaan objek.
3.     Multiple constructor, yaitu terdapat beberapa constructor yang bisa kita pilih pada saat penciptaan objek.



 Relasi antar kelas

Pewarisan (genspec)

Pewarisan merupakan hubungan antar class dimana ciri-ciri dan sifat dari class induknya diturunkan ke 
class anaknya.

contoh:



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");
System.out.flush();
}
public void lihatNama()   {
System.out.println("\t\tnama: " + this.nama + "\n\n");
}

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();
}


Agregasi

Suatu class dikatakan memiliki hubungan agregasi (aggregation) apabila kelas tersebut berisi sebuah obyek 
dari kelas lain. Agregasi secara umum menunjukkan suatu hubungan one-to-many atau dikenal dengan istilah 
Whole-Part

contoh:

import java.util.*;
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; 


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





Tidak ada komentar:

Posting Komentar