Monday, April 21, 2014

REVIEW STRUKTUR DASAR JAVA & OOP

REVIEW STRUKTUR DASAR JAVA & OOP

TUJUAN INSTRUKSIONAL
•    Mahasiswa mampu :
    Mengigatkan kembali pemahaman tentang class dan obyek
    Membedakan antara class dan obyek



TOPIK
    MENGENAL OBJEK & CLASS
    Fitur OOP
    Deklarasi class
    Deklarasi Atribut
    Deklarasi metode
    Pengaksesan anggota obyek
    Life Cycle dari Objek
    Tipe Reference
    Pass by value

MENGENAL OBJEK & CLASS
Paradigma Class dan Objek
Berbagai benda di sekitar kita adalah objek nyata yang dapat dilihat, seperti : kucing, meja, rumah, orang , dll.
Persoalannya, bagaimana memindahkan pemikiran objek di dunia nyata menjadi objek di dunia software atau pemrograman, khususnya Java?
Class dapat diumpamakan seperti spesifikasi atau blueprint. 
Ambil contoh objek nyata yang akan dipindahkan adalah objek orang.
Jadi dapat diumpamakan bahwa Tuhan memiliki class Orang yang kemudian membuat banyak objek dari class Orang tsb, dan contoh objek tersebut adalah Anda sendiri. 
Dari definisi class Orang di atas, kita bisa membuat objek-objek berdasar class tersebut.  
Objek-objek yang dibuat perlu disimpan dalam variabel yang akan menyimpan referensi/address dari objek yang dibuat.

Proses pembuatan objek sering disebut sebagai instansiasi class, sedangkan objeknya disebut sebagai instance dari class

Data Member 
Setiap objek „orang  pasti memiliki : nama, tinggi badan, berat badan, warna rambut,
warna kulit, jenis kelamin, menggunakan kacamata, dll

Ciri-ciri tersebut dapat dipindahkan menjadi variabel-variabel dari class yang sering
disebut sebagai : data member (data field/attribut). 

Contoh pemisalan objek orang nyata menjadi kode program dalam class Orang :

class Orang {
  String nama;     //nama orang
  int tinggiBadan;    //dalam cm
  int beratBadan;    //dlm kg
  String warnaRambut; //hitam, pirang, coklat
  String warnaKulit;  //sawoMatang, hitam, putih
  String jenisKelamin; //pria atau wanita
  boolean berkacamata; //bila berkacamata berarti true
}


 Method
Selain memiliki atribut(STATE) yang diimplementasikan sebagai data member di atas, manusia juga dapat melakukan suatu aksi atau pekerjaan tertentu (BEHAVIOR)
Contoh aksi/behavior yang umum adalah menangis dan tertawa
Kedua behavior tsb bisa dipindahkan ke dalam bahasa pemrograman menjadi method sbb : 

void menangsi() {
  System.out.println(“hik..hikk..hik…”);
}

void tertawa() {
  System.out.println(“ha..ha..ha..ha..”);
}

Method merupakan perwujudan aksi atau tindakan dari dunia nyata di dalam pemrograman komputer.
Method dalam dunia pemrograman juga “pasti melakukan sesuatu aksi”, misalnya menampilkan String di konsol


Memindahkan orang dari dunia nyata menjadi class Orang



 Ilustrasi perbedaan antara class dan objek
 Dari gambar di atas dapat dipahami bahwa suatu class dapat memiliki banyak objek, dan setiap objek akan mewarisi data member dan method yang sama dari class Untuk membuat objek Orang dari class Orang, gunakan keyword new sbb :
  Orang orang1 = new Orang(“Izzuddin A Afif”);
  Orang orang2 = new Orang(“Muhammad Fairuz”); 
setiap  objek  dapat  memiliki  state  atau  nilai data member yang berbeda (hanya nama dan
tipe variabel yang sama)


Ilustrasi pembuatan objek dari class 



FITUR OOP
    Encapsulation
    Inheritance
    Polymorphism FITUR OOP



Enkapsulasi=>suatu cara untuk menyembunyikan implementasi detail dari suatu class dalam rangka menghindari akses yang ilegal. Contoh : konsep class & modifier.
Inheritansi =>  dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan.
Dengan konsep inheritance, sebuah class dapat
mempunyai class turunan. Contoh : extends
Polymorphism=> kemampuan untuk merepresentasikan 2 bentuk yang berbeda. Contoh : overriding

DEKLARASI CLASS
<modifier> class
<classname> {
    [deklarasi_atribut]
    [deklarasi_konstruktor]
    [deklarasi_metode]
}


CONTOH

public class Mahasiswa
{

}

Ket : modifier, nama class


DEKLARASI ATRIBUT / MEMBUAT VARIABEL
<modifier><tipe><nama_atribut>;

CONTOH
public class Mahasiswa {
  public int nrp;
  public String nama;
}
Ket : atribut



DEKLARASI METODE
<modifier><return_type><nama_metode>
  ([daftar_argumen])
{
    [<statement>]
}

CONTOH

public class Mahasiswa {
  public int nim;
  public String nama;
  public void info() {
    System.out.println(nim + " " + nama + " " + "adalah Mahasiswa UMJ“);
  }

}
Ket : Metode


 PENGAKSESAN ANGGOTA OBYEK

Output
1  Ahmad adalah Mahasiswa UMJ



 LIFE CYCLE DARI OBJEK
    Creation (Membuat objek)
    Use (Menggunakan objek)
    Destruction (Menghapus objek)


CONTOH
 public class MyDate {
  private int day=1;
  private int month=1;
  private int year=2000;

  //konstruktor
  public MyDate(int day, int month, int
year)   {…}
}



public class TestMyDate {
    public static void main(String args[]) {
     MyDate today = new MyDate(10,11,2006);
    }
}


DECLARING OBJEK (MEMBUAT OBJEK)
    MyDate today = new MyDate(10, 11, 2006);
    Pernyataan diatas terdiri dari 3 langkah :
    Deklarasi objek  MyDate today ;
    Alokasi Memori  menggunakan kata kunci new MyDate(10, 11, 2006);
    Inisialisasi Objek  tergantung dari konstruktornya


MEMBUAT OBJEK
MyDate today = new MyDate(10, 11, 2006);
Today????

MyDate today = new MyDate(10, 11, 2006);



MEN-ASSIGN REFERENCE VARIABLE


MENGGUNAKAN OBJEK
Ada 2 cara :
    Memanipulasi variabelnya 
    Menggunakan metode dari objek tersebut

MENGHAPUS OBJEK
The Garbage Collector
The Java platform has a garbage collector that periodically frees the memory used by objects that are no longer needed


PASS BY VALUE
    Java tidak membolehkan adanya pass by reference, jadi hanya mengijinkan pass by value.
    Ketika argumen yang di-passing adalah bertipe reference type, maka anggotaanggota (data member) dari argumen tersebut diperlakukan sebagai pass by reference, sedangkan argumennya tetap (dianggap) sebagai pass by value

TIPE ARGUMENT
    Nilai yang dikirim melalui argument dapat berupa variabel reference maupun variabel biasa.
    Jika yang dikirim ke method adalah value atau variabel biasa =>Pass by value
    Jika yang dikirim ke method adalah alamat memori atau variabel reference   =>  Pass by reference 

PASS BY VALUE
Mengirimkan value/nilai ke parameter method
Contoh :
String nama = “Shanti”;
 Mahasiswa.getNama(nama);

 Ket : Variabel biasa

PASS BY REFERENCE
Mengirimkan alamat memori/referensi ke parameter method
Contoh :
Student maba = new Student();
 Mahasiswa.getNama(maba);
Ket : Variabel reference

CONTOH
public class MyDate {
    private int day=1;
    private int month=1;
    private int year=2000;
    public MyDate(int day, int month, int
year) {
      …
    }
    public void setDay(int day) {
      // change the day
    }
    public void print() {
      // print the day, month and year
    }
}


public class TestMyDate {
    public static void changeInt(int value) {
      value = 10;
    }
    public static void changeObjectRef(MyDate
ref) {
      ref = new myDate(3, 5, 2003);
    }
    public static void changeObjectAttr(Mydate
ref) {
      ref.setDay(5);
    }
    public static void main(String args[]) {
      int x=5;
      changeInt(x);
      System.out.println(x);
      MyDate today=new
MyDate(10,10,2005);
      changeObjectRef(today);
      today.print();
      changeObjectAttr(today);
      today.print();
    }
}

HASIL EKSEKUSI
> java TestMyDate
5
10-10-2005
5-10-2005


CLASS FUNDAMENTALS: MAIN METHOD
The main() Method
public static void main(String[] args)
    public : method main() dapat diakses oleh apa saja, termasuk java technology interpreter.
    static : keyword ini berfungsi untuk memberi tahu kompiler bahwa  method main bisa langsung digunakan dalam context class yang  bersangkutan. Untuk mengeksekusi/menjalankan method yang  bertipe static, tidak diperlukan instance nya.
    void : menunjukkan bahwa method main() tidak mengembalikan nilai
    main : merupakan nama method utama dari program java
    String [] args : Menyatakan bahwa method main() menerima single  parameter yaitu args yang bertipe array. Digunakan pada saat memasukkan   parameter pada saat menjalankan program.

  Contoh: java TestGreeting args[0] args[1] …


 CONTOH PROGRAM
Implementasikan UML class diagram dalam program untuk class Tabungan 

Tabungan
- saldo : int
+ Tabungan(initsaldo : int)
+ getSaldo() : int
+ simpanUang(jumlah : int)
+ ambilUang(jumlah : int) : boolean

Output
Jumlah uang yang disimpan : 8000
Jumlah uang yang diambil : 6000 true
Jumlah uang yang disimpan : 5500
Jumlah uang yang diambil : 4000 true
Jumlah uang yang diambil : 1600 false
Jumlah uang yang disimpan : 3500
Saldo : 3500




CLASS CUSTOMER






 Output
Yuliana, Setiowati   Age:29
Stanley, Clark   Age:8
Jane, Graff   Age:16
Nancy, Goodyear   Age:69 Output


CLASS CUSTOMERS
Yuliana  Setiowati   Age:29
Stanley  Clark   Age:8
Jane  Graff   Age:16
Nancy  Goodyear   Age:69
12000

 CLASS TESTCUSTOMER2


DATA MEMBER

    Disebut juga variabel atau atribut
    Variabel dibagi menjadi dua :
o    Variabel instance : variabel yang dimiliki oleh setiap objek. Masing-masing objek mempunyai nilai variabel instance yang berbeda
    Variabel class : variabel yang dimiliki oleh class. Semua objek dari class tersebut akan mempunyai nilai yang sama. Ciri dari variabel class dengan menambahkan kata kunci static
contoh private static double bunga

CONTOH PROGRAM
    Class Tabungan2 terdiri dari dua variabel:
o    Variabel instance : saldo
o    Variabel class : bunga (kata kunci static)


    Method public String toString() =>mengubah objek menjadi String


METHOD OVERLOAD
    Sebuah class dapat memiliki beberapa method dengan nama yang sama.
    Pembeda antara method-method tersebut adalah parameter. 

CONTOH
public void print (String temp){
  System.out.println(“Name:”+name);
  System.out.println(“Address:”+address);
  System.out.println(“Age”+age);
}

public void print(double eGrade, double mGrade, double
sGrade){
  System.out.println(“Name”+name);
  System.out.println(“Math Grade”+mGrade);
  System.out.println(“English Grade”+eGrade);
  System.out.println(“Science Grade”+sGrade);
}


RINGKASAN
    Tipe data dalam Java: primitive dan reference
    Dalam meng-evaluasi sebuah expression, perhatikan precedence dan associativity dari operator, dan tipe operand
    Flow Control: branch, loop
    Class & Object










o    Object adalah instance dari class
o    Behaviour sebuah object dinyatakan dalam method
o    State sebuah object is dinyatakan dalam field


DAFTAR PUSTAKA
    L.N. Harnaningrum, Struktur Data menggunakan Java, Graha ilmu, 2010
    Siswanto, Algoritma & Struktur Data Linier, Graha Ilmu, 2010

    Ruli Manurung, Ade Azurat, Struktur Data dan Algoritma, Fasilkom UI, 2008
    Nana Ramadiyanti, “Pengenalan Pemrograman berbasis Obyek”, 2009, Laboratorium Komputer Vision, Pens-ITS

No comments:
Write komentar

Terimakasih Atas Kunjungan Anda..
Kritik dan Saran Anda membantu blog ini lebih baik..