Monday, September 18, 2017

Konsep Dasar Pemrograman Java



Konsep Dasar Pemrograman JAVA

Konsep dasar dari pemrograman berbasis objek pada java adalah Inheritance, polimorfisme dan interface .berikut ini saya akan memberikan sedikit gambaran tentang konsep dasar tersebut.
Pewarisan
Dalam OOP, kita dapat menciptakan objek baru yang diturunkan dari objek lain. Objek baru ini sering disebut dengan objek turunan(derived class) sedang objek induknya sering disebut dengan ancestor(base class). Sifat yang terkandung pada objek turunan adalah sifat hasil pewarisan dari sifat-sifat yang terdapat pada objek induk. Maka dari itu proses seperti ini sering dikenal dengan istilah pewarisan(Inheritance)
Pada dasarnya, kita melakukan inheritance(pewarisan) untuk membuat suatu class baru(class turunan/subclass) yang masih memiliki sifat atau spesifikasi dari superclass. Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
Beberapa aturan tentang pewarisan(inheritance) yang perlu diperhatikan :
1. Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati dengan mudah.
2. Subclass juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass ini. Misal : class B merupakan subclass dari class A, kita dapat membuat class baru yang diturunkan dari class B sehingga class baru tersebut akan memiliki apa yang dimiliki oleh class A dan class B.
3. Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (kontrol pengaksesan).

Pengertian Attribute
Attribute adalah data yang membedakan antara objek satu dengan yang lain. Elemen data yang terdapat pada suatu object yang berasal dari class yang menyimpan informasi tentang objek. Attribute dapat diartikan sebagai data, variabel, properti atau sebuah fiels data, dan setiap variabel harus memiliki tipe data dan nama yang unik untuk membedakan antara variabel satu dengan yang lainnya.
Dalam class, atribut sering disebut sebagai variabel. Atribute terbagi menjadi dua jenis yaitu Instance Variable dan Class Variable.
Instance variable adalah atribut untuk setiap objek dari class yang sama. Setiap objek mempunyai dan menyimpan nilai atributnya sendiri. Jadi, setiap objek dari class yang sama boleh mempunyai nilai yang sama atau berbeda.
Class variable adalah atribute untuk semua objek yang dibuat dari class yang sama. Semua objek mempunyai nilai atribut yang sama. Jadi semua objek dari class yang sama mempunyai hanya satu nilai yang value nya sama.

Pengertian Methods
Dalam java method disebut juga sebagai behavior, methods digunakan untuk merubah nilai attribute suatu objek, juga untuk menerima atau mengirim informasi dari/ke objek lain untuk melakukan instruksi.

Pengertian Constructor
Constructor adalah sebuah method khusus yang digunakan dalam kelas untuk membuat dan menganalisa sebuuah objek baru. Construktor berfungsi untuk menginisialisasi nilai terhadap data yang terdapat pada kelas yang berhubungan. Ketentuan constructor untuk melakukan inisialisasi :
  • Construktor harus sama dengan nama kelas
  • Constructor tidak menverifikasi tipe data yang dikirim
  • Kelas dapat berisi banyak constructor overloading yang memungkinkan objek diinisialisasi
Dalam pemrograman java terdapat konsep pemrograman java diantara nya sebagai berikut :
  1. Class
  2. Object
  3. Abstraksi
  4. Enkapsulasi (Encapsulation)
  5. Pewarisan (Inheritance)
  6. Polimorfisme
  7. Interface

1. Class
Class adalah tempat atau wadah yang digunakan untuk menciptakan objek yang menjelaskan data ( sifat karateristik data ) dan fungsi yang dimiliki suatu objek.

2. Object
Objek merupakan hasil dari sebuah kelas, artinya sebuah kelas dapat membuat beberapa object. Contoh sebuah rungan dimana ruangan tersebut terdapat berbagai objek seperti kursi , meja dan lainnya, jadi kelas adalah ruangan dan kursi, meja adalah objecy nya.

3. Abstraksi
Abstraksi adalah pengabstrakan atau penyembunyian kerumitan suatu proses. Hal ini bertujuan untuk membuat kelas abstrak dimana kelas lain dapat memanfaatkannya (extends) dengan cara menjadi subclass dari kelas abstrak tersebut. Abstrak class digunakan untuk mendeklarasikan karakteristik umum dari subclass. Abstract class tidak bisa diinstansiasi sama halnya dengan kelas interface. Abstract class hanya bisa digunakan sebagai superclass, tapi juga bisa diturunkan dari class abstract lainnya.
Untuk mendeklarasikan sebuah abstract class digunakan keyword abstract,
[abstract] class [class_name]. Sebuah abstract class pada dasarnya tidak jauh beda dengan class lainnya, yakni juga berisi method yang menggambarkan karakteristik dari kelas abstract tersebut, bedanya yakni sebuah abstract class bisa berisi method tanpa diimplementasikan artinya sebuah method tanpa body, method seperti ini disebut method abstract. Untuk pendeklarasiannya digunakan keyword abstract: [abstract] modifier class [class_name] berikut contoh program yang menggunakan class abstract.
Contoh Abstrak class :
abstract class Shape{
public String color;
//constractor default, constraktor yang tidak memiliki argumen dan isi
public Shape(){
}
//sama halnya dengan kelas biasa abstract class juga bisa berisi method
//seperti yang ada pada kelas biasa
public void setColor(String c){
color = c;
}
public String getColor(){
return color;
}
//sebuah abstract method yang tidak memiliki body
//method ini akan diinisialisasi nantinya pada subclass yang mewarisi kelass abstract Shape ini
//semua abstract method yang ada pada class abstract harus diimplementasikan
//semua oleh subclass
abstract public double area();
}
//keyword extends adalah keyword yang digunakan oleh subclass
//ketika melakukan pewarisan terhada super 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();
}
}
Hasil output :
Description: clip_image002

4. Enkapsulasi (Encapsulation)
Enkapsulasi atau pembungkusan adalah membungkus atribut (field atau variabel) dan tingkah laku (method) didalam sebuah class. Dalam pemrograman java terdapat 3 tingkatan akses data untuk melakukan pembungkusan kode dan data yaitu :
a. Tingkat akses Private.
Dalam encapsulation-private ini dapat diartikan bahwa method yang digunakan hanya dapat diakses oleh kelas yang memilikinya, dan tidak mengijinkan kelas lain yang berada dalam program untuk mengakses dang menggunakan method tersebut. Untuk mendeklarasikannya menggunakan kata kunci private.
b. Tingkat akses Protected.
Dalam encapsulation-protected ini dapat diartikan bahwa method yang digunakan dapat diakses oleh kelas yang memilikinya dan kelas yang masih memiliki hubungan turunan. Kelas yang dapat mengakses adalah kelas yang berada dalam package yang sama dan subclass yang berada dalam package yang berbeda. Untuk mendeklarasikannya menggunakan kata kunci protected.
c. Tingkat akses Public.
Encapsulation-public ini merupakan kebalikan dari encapsulation-private, dapat diartikan bahwa method yang digunakan dapat diakses oleh semua bagian dalam kelas atau program, meskipun kelas tersebut tidak memiliki hubungan sama sekali ( meliputi semua kelas, kelas turunan dan kelas lain ).

5. Pewarisan (Inheritance)
Pewarisan adalah penurunan ( pewarisan ) suatu atribut maupun method dari sebuah kelas ke kelas lainnya. Pewarisan di java terdiri dari 2 macam yaitu superclass dan subclass.
a. Superclass
Superclass adalah class yang letaknya di atas class tertentu didalam hierarki, atau dapat diartikan class yang mewarisi ke class yang lain.
b. Subclass
Subclass adalah class yang letaknya di bawah class tertentu didalam hierarki, atau dapat diartikan class yang diwarisi dari class yang lain. Untuk pewarisan dalam java terdapat istilah yang namanya Multiple Inheritance, Multiple Inheritance adalah subclass yang menjadi sebagai superclass bagi class yang lain. Untuk mengambil sebuah class, dapat menggunakan kata kunci extends.
Keuntungan penggunaan Inheritance dalam OOP adalah :
1. Ketika behavior ( method ) dideklarasikan dalam superclass, behavior tersebut otomatis diwariskan ke seluruh subclass.
2. Jadi, kita dapat meng-enkode method hanya sekali dan method tersebut dapat digunakan oleh seluruh subclass.
3. Sebuah subclass hanya perlu mengimplementasikan perbedaan antara dirinya sendiri dan parent-nya.
6.Polimorfisme
Polimorfisme adalah proses kebanyakrupaan, artinya kita dapat mengimplementasikan sesuatu hal yang berbeda melalui satu cara yang sama. untuk mengerti hal ini saya akan berikan ilustrasi nya : misalnya terdapat 5 orang penyanyi(didalam program dianggap sebagai 5 buah objek), kemudian kelimanya kita perintahkan untuk bernyanyi, maka hasil atau implementasinya tentu akan berbeda sesuai dengan karakteristik suara dari masing-masing penyanyi tersebut. Dalam OOP, hal ini disebut dengan istilah polimorfisme.
Polimorfisme bisa diartikan satu bentuk banyak aksi. Dalam pewarisan polimorfisme dapat kita lakukan. Kita data memerintah sebuah objek untuk melakukan tindakan yang secara prinsip sama tapi secara proses berbeda.



7.Interface
Interface adalah jenis khusus dari blok yang hanya berisi method signature(atau constant). Interface mendefinisikan sebuah (signature) dari sebuah kumpulan method tanpa tubuh.
Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki class. Untuk mengimplementasikan sifat-sifat yang umum. Dengan catatan bahwa interface-interface juga menunjukan polimorfisme, dikarenakan program dapat memanggil method interface dan versi yang tepat dari method yang akan dieksekusi tergantung dari tipe object yang melewati pemanggil method interface. Interface kita gunakan jika kita ingin class yang tidak berhubungan mengimplementasikan method yang sama. Melalui interface-interface, kita dapat menangkap kemiripan diantara class yang tidak berhubungan tanpa membuatnya seolah-olah class yang berhubungan.