Category Archives: Advanced Object Oriented Programming

“Array, Vector, and ArrayList”


ARRAY

Array merupakan bagian dari struktur data dengan sekumpulan tipe data yang sama dan dinyatakan dengan nama yang sama juga. Array diakses melalui index dan dideklarasikan menggunakan [ ]. Deklarasi array tidak mengalokasikan memori. Array dapat digunakan setelah membuat array-nya terlebih dahulu. Index array dimulai dari 0 (arr[0]).

Contoh Deklarasi Array : 

double[] myList = new double[10];

atau

double[] myList;

myList = new double[10];

 

VECTOR

Vector adalah sebuah class yang diturunkan dari interface Collection, yaitu sebuah interface yang digunakan untuk pengolahan data yang bersifat seperti array dinamis. 

Arti dari array dinamis sendiri adalah array yang ukurannya dapat membesar secara dinamis ketika data yang dimasukkan melebihi daya tampung (overloaded). Setiap metode di dalam vector diberi keyword synchronized.

Contoh Deklarasi Vektor :

Vector<Kelas> variable = new Vector <Kelas>();

 

ARRAY LIST

ArrayList adalah sebuah class yang sama dengan Vector dan memiliki fungsi yang hampir sama dengan Vector, namun perbedaannya terletak pada metode yang dimiliki oleh ArrayList. Arraylist bersifat dinamis dan bisa digunakan jika kita membutuhkan array dengan batas maksimum yang tak terbatas dengan mengimplementasikannya menggunakan object.

Contoh Deklarasi ArrayList : 

ArrayList<Kelas> variable = new ArrayList<Kelas>();

 

Persamaan antara Array, ArrayList, dan Vector :

– ArrayList hampir mirip dengan Array biasa, tetapi ArrayList memiliki daya tampung yang bisa bertambah secara dinamis tanpa memiliki batas.

– Sedangkan Vector adalah implementasi dari Array dinamis yang hampir sama dengan ArrayList.

 

Perbedaan antara Array dan Arraylist :

– Daya tampung yang dimiliki Array hanya mampu menampung dari yang sudah di deklarasi

– Untuk ArrayList tidak mempunyai batas tampung seperti Array karena bentuknya yang dinamis sehingga daya tampungnya bisa membesar secara dinamis.

 

Perbedaan antara ArrayList dan Vector :

– Nama metode dari keduanya yang berbeda untuk melakukan tugas yang sama.

– ArrayList tidak thread safe sedangkan Vector sudah thread safe.

– Di dalam Vector semua metode diberi keyword synchronized sedangkan dalam ArrayList tidak ada seperti itu.

– Dalam ArrayList eksekusinya mengalami kemacetan, sedangkan untuk Vector eksekusi nya tidak mengalami kemacetan.

Advertisements

“Abstract Class & Interface”


Abstract Class : Merupakan class yang khusus dibuat untuk keperluan inheritance. Tujuan dari pembuatan abstract class adalah untuk membuat definisi umum bagi class-class yang akan menjadi turunan dari abstract class tersebut.

Abstract Class tidak bisa diinstansiasi dan Abstract method tidak mempunyai implementasi, sehingga penulisannya hanya dilakukan dengan menyertakan semikolon, bukan blok method {} seperti biasanya. Abstract method ini bisa digunakan oleh class turunannya dengan melakukan override.

Interface : Berfungsi sebagai antarmuka yang membentuk komunikasi dengan kode lain. Misalnya membentuk hubungan antara sebuah object dengan object yang lain atau hubungan antara object sebagai penyedia dengan kode penggunanya.

 Perbedaan Abstract Class & Interface 

Perbedaan
Abstract Class   Interface
Sebuah class hanya mampu menurunkan satu abstract class Sebuah class mampu menurunkan beberapa interface
Bisa berisi abstract dan non-abstract method Hanya boleh berisi abstract method
Method boleh bersifat static  Method tidak boleh bersifat static 
Method boleh bersifat final Method tidak boleh bersifat final
Hanya bisa meng-extend satu abstract class lainnya Bisa meng-extend satu interface atau lebih
Bisa mendeklarasikan constant dan instance variable. Hanya bisa mendeklarasikan constant.  Secara implisit, variabel yang dideklarasikan di interface bersifat public, static dan final. 
Modifier harus ditulis sendiri  Modifier tidak perlu ditulis karena secara implisit modifier untuk method di interface adalah public dan abstract.
Mempunyai contructor Tidak mempunyai constructor
Boleh mempunyai metode yang sudah diimplementasikan Tidak boleh mempunyai metode yang sudah diimplementasikan 
Sebuah abstract class dapat memiliki field dan constant yang telah didefinisikan Tidak ada field yang bisa didefinisikan dalam interface

Contoh Abstract Class 

 

public class Point extends Shape {

static int x, y;

public Point() {

x = 0;

y = 0;

}

public double area() {

return 0;

}

public double perimeter() {

return 0;

}

public static void print() {

System.out.println(“point: ” + x + “,” + y);

}

public static void main(String args[]) {

Point p = new Point();

p.print();

}

}

Contoh Interface 

 

public class Point implements Shape {

static int x, y;

public Point() {

x = 0;

y = 0;

}

public double area() {

return 0;

}

public double volume() {

return 0;

}

public static void print() {

System.out.println(“point: ” + x + “,” + y);

}

public static void main(String args[]) {

Point p = new Point();

p.print();

}

}

%d bloggers like this: