Dibagian kali ini kita akan lebih mengenal secara detail tentang konsep OOP (Object Oriented Programming) yang dipakai khususnya pada Java. Kenapa ya dalam OOP itu dikenal istilah lain seperti :
- Polymorphism
- Inheritance
- Encapsulation
- Abstraction
- Classess
- Objects
- Instance
- Method
- Message Passing
Yuk kita kenali dulu bagian pokoknya yaitu : Object & Class. Apa sih mereka itu ya?
Object : dikenal sebagai suatu entity yang memiliki karakteristik dan fungsi / aksi tertentu. Contohnya anggap saja ada seorang manusia yang memiliki beberapa karakteristik seperti nama, usia, tanggal lahir, dan lainnya. Kemudian seorang manusia ini karena dikenal sebagai Object maka tentu saja memiliki fungsi / aksi tertentu. Misalnya yaitu, berlari, berjalan, mengangkat barang, dst.
Class : konsep suatu object bisa dituliskan kedalam sebuah blueprint atau template yaitu Class. Definisi lain seperti proses tertentu, pengecekan, dan logika lainnya ada di dalam sebuah Class.
Contoh Class
Sekarang perhatikan dulu bagian yang satu ini agar kita menjadi lebih faham penerapannya dalam Java :
public class Manusia{
String nama;
int usia;
String alamat;
int beratBadan;
public void berlari(){
}
public void mengangkat(String nama){
}
public void berjalan() {
}
}
Sekarang sudah mulai faham ya? Bagaimana setiap variable itu digunakan sebagai karakteristik (disebut juga sebagai states dalam Java), kemudian aksi / fungsi tertentu (disebut juga sebagai method dalam java).
Constructor
Karena tadi sudah melihat bagian penulisan Class maka sekarang kenalilah bagian selanjutnya yaitu bagian pokok pertama kali dalam Class yaitu Constructor. Meski saat menuliskan sebuah Class programmer bisa saja tidak menuliskan suatu constructor maka java code akan menganggap adanya 1 default constructor secara otomatis!
Dan disetiap penggunaan Object baru yang tercipta dalam sebuah variable dari class tersebut, maka pemanggilan Constructor akan di-execute secara langsung! Oya, ingat bahwa penamaan Constructor akan sama dengan nama Class nya masing-masing! Begini contohnya :
public class Manusia{
public Manusia(){
// ini constructor pertama
}
public Manusia(String nama){
// ini constructor kedua menerima parameter nama
}
}
Nanti kita akan bahas lagi lebih detail tentang penggunaan Constructor ya!
Penggunaan Object
Karena suatu Class tadi akan digunakan dalam sebuah variable maka kita harus menciptakan suatu Object nya! Dari sini kita kenal beberapa istilah yaitu :
- Declaration : deklarasi pertama saat nama diberikan untuk suatu object.
- Instantiation : penggunaan keywords new dipakai disini untuk menciptakan Objectnya.
- Initialization : constructor akan terpanggil saat penciptaan object tersebut.
Bagaimana penggunaannya? Coba simak bagian source code berikut ini :
public class Manusia{
public Manusia(String nama){
// disini constructornya dibuat
// agar dapat menerima sebuah nama
System.out.println("Orang baru terciptakan..." + nama);
}
public static void main(String [] args){
// ini variable orangAwal ialah Object dari Class Manusia
Manusia orangAwal = new Manusia("Udin");
}
}
Bisa dibayangkan seperti apa outputnya ? Ini dia hasilnya :
Orang baru terciptakan...Udin
Mengakses Variable & Method
Karena setiap class dipergunakan dalam dekralasi suatu object variable, maka method ataupun function juga bisa diakses lho!
/* ini deklarasi object pertama */
Manusia orang1 = new Manusia("Michael Jackson");
/* kemudian kita mulai akses methodnya */
orang1.sebutkanProfil();
/* atau kita juga bisa akses variable nya secara lokal */
orang1.namaDepan;
orang1.noHP;
// dan seterusnya...
Tentu saja coding diatas hanya bisa dijalankan apabila kita memiliki class terbaru yang isinya yaitu :
public class Manusia{
String namaDepan;
String noHP;
public Manusia(String namana){
namaDepan = namana;
}
public Manusia(String namana, String hpna){
namaDepan = namana;
noHP = hpna;
}
public void sebutProfil(){
System.out.println("---------- Profil ----------");
System.out.println("Nama Saya ialah : " + namaDepan);
System.out.println("No HP : " + noHP);
}
public static void main(String [] args){
Manusia orang1 = new Manusia("Michael", "0812-1212-1212");
orang1.sebutProfil();
}
}
Kira-kira kalau dijalankan outputnya seperti apa ya? Ini dia…
---------- Profil ----------
Nama Saya ialah : Michael
No HP : 0812-1212-1212
Ketentuan Deklarasi
Khusus pada bagian penamaan deklarasi, kamu harus tau dan menerapkan sesuai kaidah yang benar. Diantaranya :
- Tiap 1 buah java di dalamnya cuma boleh 1 public class
- Tiap 1 buah java boleh memiliki deklarasi class lain (selain public)
- Penamaan class yang benar senantiasa berawalan huruf kapital, dan berakhiran .java
- Apabila 1 file java tersebut terletak di dalam package, maka deklarasi pertama yaitu penyebutan package name terlebih dahulu.
- Apabila ada import statement, maka deklarasinya hanya boleh sebelum penamaan class sehingga terdata import statement perbaris dengan benar.
Nanti kita bakalan explore lagi seputar inner class dan anonymous class so, sabar yah!
Java Package
Kalau dilihat dari maksud namanya sebenarnya Package itu berarti pengelompokkan. Sehingga jika kita lihat di lokasi file java nya ada di dalam package, maka itu sama saja berada di suatu folder tertentu. Penamaan package sebenarnya dibuat untuk mempermudah pengelompokkan untuk pemanggilan setiap object nya nanti saat akan di calling.
Misalnya bisa kita lihat ini :
Nah dari sini kita bisa lihat bahwa package “com.toy.anagrams.ui” sebenarnya ialah suatu folder yang terangkum (terkelompokkan) dengan rincian :
- Folder ui didalam anagrams
- Folder anagram di dalam toy
- dan toy di dalam com
Import Statement
Dalam penggunaan Import statement pemanggilan suatu class memudahkan compiler agar dapat menggunakan method ataupun variable tertentu yang dibutuhkan. Untuk penulisaannya juga cukup mudah.
/* bagian ini akan menyertakan seluruh class yg terdapat pada package java.io */
import java.io.*;
/* jika ingin specific maka panggil saja */
import java.io.namaSesuatu;
Okay, selesai! Itu dia pembahasan khusus kali ini. Next kita lanjut kembali ke pembahasan yang lebih dalam lagi, seputar Data Type dan penggunannya di salah satu project Java.