1. Pengantar
2. Konsep Pemograman
Komputer tidak punya bahasa seperti manusia, dia hanya tahu bahasa 0 dan 1 atau seperti switch On dan Off saja. Sedangkan manusia yang menggunakan komputer tidak paham bahasa 0 dan 1, untuk itu perlu bahasa yang menjebatani antara manusia dan komputer. Bahasa tersebut adalah bahasa pemograman yang dapat dipahami komputer melalui interpreter atau kompiler. Kompiler: mengkompilasi source code menjadi bentuk file yang bisa dieksekusi. Dan interpreter: mengkompilasi dan mejalankan source code secara langsung.
Bahasa pemograman dapat dibagi menjadi 3 tingkat, yaitu:
- Bahasa Pemograman Tingkat Rendah (Assembler). Bahasa ini sangat mudah dimengerti oleh komputer, tapi sangat sulit bagi manusia.
- Bahasa Pemograman Tingkat Sedang (C, Pascal, Fortran). Bahasa ini dalam pemogramannya menggunakan prosedur tertentu sesuai dengan bahasanya masing-masing, sehingga agak menyulitkan bagi pemula.
- Bahasa Pemograman Tingkat Tinggi (Java, C++, C#). Bahasa ini sangat mudah dimengerti oleh manusia, tapi sangat sulit bagi komputer.
3. Install Program Java
Komputer yang akan kita gunakan, bila belum ada program Java-nya, maka perlu menginstalasinya terlebih dulu.
Langkah-langkahnya adalah:
- Download Java Standard Edition (jdk-6u6-windows-i586-p.exe) dari hhtp://java.sun.com/javase/downloads/
- Install program tersebut (jdk-6u6-windows-i586-p.exe) dan ikuti petunjuk yang ada dilayar monitor.
- Tambahkan Path program Javanya.
Klik Start -kemudian- Control Panel -cari dan open- System -klik tab- Advanced -klik- Environment Variables -caridanklik- Path -Edit- tambahkan ;C:\Program Files\Java\jdk1.6.0_06\bin -klik- Ok. - Untuk editing codenya, install text editor seperti textpad, notepad++, JCreator.
Pada pemograman Java, program harus punya method di public class:
Program Java dimulai dari sini
Halo.java
public class Halo{
public void main(String[]args){
System.out.println(“Selamat, anda telah berhasil”);
}}

Keterangan:
- Program ditulis menggunakan Notepad standard windows
- Pada Command Prompt, C:\
Untuk kompilasi, C:\javac Halo.java (perintah javac, ekstensi .java masih ada).
Untuk eksekusi, C:\java Halo (perintah java, ekstensi tidak ada).
4. Konsep Dasar OOP
Konsep dasar pemograman berorientasi objek adalah dimana pemogram memodelkan suatu permasalahan dengan pendekatan objek dalam kehidupan nyata. Setiap objek mempunyai attribute (state) dan behavior. Contoh Manusia. Attribute-nya; kepala, tangan, kaki, mata, baju, celana atau bagian-bagian yang ada pada manusia itu sendiri. Behavior-nya; cara jalan ke depan, cara jalan mundur, cara belok ke kiri, cara memanjat atau sifat tingkah laku dari manusianya. Contoh lainnya Mobil. Attribute-nya; ban, stir, pedal kopling, pedal gas, pedal rem, warna, tahun produksi. Behavior-nya; cara menghidupkan mesin, cara menjalankan mobil, cara memundurkan mobil. Attribute disebut Variable(Member), sedangkan Behavior disebut Method(Fungsi).
Ada beberapa karaketristik dari pemograman berorientasi objek, yaitu;
- Abstraction adalah cara kita melihat suatu sistem dalam bentuk yang lebih sederhana, yaitu sebagai suatu kumpulan subsistem (objek) yang saling berinteraksi. Contoh mobil adalah kumpulan dari sistem pengapian, sistem kemudi, sistem pengereman.
- Encapsulation adalah mekanisme menyembunyikan suatu proses dalam sistem untuk menghindari interferensi dan menyederhanakan penggunaan sistem itu sendiri. Contoh tongkat transmisi (gigi) pada mobil, tombol on/off/pengaturan suhu pada AC.
- Inheritance adalah suatu class dapat mewariskan atribut dan method kepada class lain (subclass), serta membentuk class hierarchy. Contoh Sepeda ada sepeda gunung, sepeda balap, sepeda tandom.
- Modularity. Sifat objek adalah modular. Objek dapat ditulis dan dimaintain terpisah (independen) dari objek lainnya.
- Polymorphism adalah suatu objek dapat memiliki berbagai bentuk, sebagai objek dari classnya sendiri atau objek dari superclassnya. Ada 2 cara, yaitu;
Overloading: Penggunaan suatu nama untuk beberapa method yang berbeda (beda parameter).
Overriding: Terjadi ketika deklarasi method subclass dengan nama dan parameter yang sama dengan method dari superclassnya.
Class dan Object. Class itu seperti cetakan kue, dimana kue yang dihasilkannya disebut Object. Warna kue bisa bermacam-macam meskipun berasal dari cetakan yang sama (object memiliki sifat independen).
Contoh, Class: motor, Object: motorku, motornya Ardi, motornya Budi.
Attribute adalah berbagai variable yang mengitari class, dengan nilai datanya bisa ditentukan di object. Contoh, Class: manusia, memiliki attribute nama, umur, dan berat. Object: Ardi, 50 tahun, 60 kg.
Method adalah implementasi dari bagaimana bekerjanya sebuah class, yang melakukan manipulasi data, perhitungan matematika, memonitor kejadian dari suatu event.
Contoh 1: Membuat Class dan Memanggil Object (ArdiBeraksi.java)
class Manusia{
//variable
String nama;
int umur;
int beratBadan;
}
public class ArdiBeraksi{
public static void main(String[]args){
// membuat object
Manusia aku = new Manusia();
/*memanggil attribut dan memberi nilai*/
aku.nama="Ardi";
aku.umur=50;
aku.beratBadan=60;
System.out.println("Nama : "+aku.nama);
System.out.println("Umur : "+aku.umur);
System.out.println("Berat: "+aku.beratBadan);
}}
Hasilnya;

Message dan Parameter. Motor akan berguna apabila ada objek lain (misalnya anda) yang berinteraksi dengan Motor tersebut. Anda berinteraksi dan berkomunikasi dengan motor dengan cara mengirimkan message. Message tersebut berupa menambah kecepatan, mengubah gigi, menyalakan lampu, dll. Informasi dalam Message tersebut dikenal dengan nama Parameter.
Contoh 2: Membuat Class dan Memanggil Object (MotorBeraksi.java)
class Motor{
//variable
int kecepatan=0;
int gir=0;
//method pertambahanGir(Parameter)
void ubahGir(int pertambahanGir){
gir = gir+ pertambahanGir;
System.out.println("PosisiGir: " +gir);
}
void tambahKecepatan(int pertambahanKecepatan){
kecepatan=kecepatan+ pertambahanKecepatan;
System.out.println("Kecepatan: "+kecepatan);
} }
public class MotorBeraksi{
public static void main(String[]args){
//membuat object
Motor motorku=new Motor();
//memanggil attribut dan memberi nilai
motorku.kecepatan=10;
motorku.gir=2;
//memanggil method dan menunjuk nilai parameter
motorku.tambahKecepatan(30);
motorku.ubahGir(3);
} }
Hasilnya:

Kata Kunci this. Digunakan pada pembuatan class dan digunakan untuk menyatakan object sekarang.
Konstruktor. Method yang digunakan untuk memberi nilai awal pada saat object diciptakan. Dipanggil secara otomatis ketika new digunakan untuk membuat instant class. Sifat konstruktor. Nama konstruktor sama dengan nama class. Tidak memiliki nilai balik dan tidak boleh ada kata kunci void.
Contoh 3: Konstruktor dan Overloading (MotorKonstruktor.java)
class Motor{
String warna;
int tahunProduksi;
public Motor(String warna, int tahunProduksi){
this.warna=warna;
this.tahunProduksi=tahunProduksi;
}
public Motor(){
}
void info(){
System.out.println("Warna: " +this.warna);
System.out.println("Tahun: " +this.tahunProduksi+"\n");
}}
public class MotorKonstruktor{
public static void main(String[]args){
System.out.println("Ini hasil MotorKonstruktor yang asli : ");
Motor motorku=new Motor("Merah",2003);
motorku.info();
//overloading
System.out.println("Ini hasil overloading : ");
Motor motormu=new Motor("Hijau",2007);
motormu.info();
}}
Hasilnya:

Packages. Package adalah koleksi dari beberapa class dan interface yang berhubungan, dan menyediakan proteksi akses dan pengelolaan namespace. 1package harus dalam 1subfolder, artinya class yang saling berhubungan tidak boleh beda folder. Nama package menggunakan lowercase.
Contoh 4:
Package dosen yang terdiri dari class Budi dan class Joko dalam satu folder, class DosenBeraksi beda folder.
Budi.java)
package dosen;
public class Budi{
public void info(){
System.out.println("Ini Kelas Budi");
System.out.println("Mata Kuliah yang diajarkan Budi");
}}
(Joko.java)
package dosen;
public class Joko{
public void info(){
System.out.println("Ini Kelas Joko");
System.out.println("Mata Kuliah yang diajarkan Joko");
}}
(DosenBeraksi.java)
import dosen.Budi;
import dosen.Joko;
public class DosenBeraksi{
public static void main(String[]args){
Budi objectBudi=new Budi();
objectBudi.info();
Joko objectJoko=new Joko();
objectJoko.info();
}}
Hasilnya:

Interface. Interface digunakan apabila kita ingin menentukan apa yang harus dilakukan oleh suatu class, tapi tidak menentukan bagaimana cara untuk melakukannya. Interface sebenarnya sama dengan class, tapi hanya memiliki deklarasi method tanpa implementasi.
Contoh 5: InterfaceACBeraksi.java
interface intAC{
public static final int KeadaanHidup=1;
public static final int KeadaanMati=0;
public static final int KeadaanDingin=1;
public static final int KeadaanPanas=0;
public abstract void hidupkan();
public abstract void matikan();
public abstract void dinginkan();
public abstract void panaskan();
}
class AC implements intAC{
int statusAC=1;
public void matikan(){
if(this.statusAC==KeadaanHidup){
this.statusAC=KeadaanMati;
System.out.println("Matikan AC -->AC sudah mati");
}else{
System.out.println("Matikan AC -->AC sudah Mati Kok");}
}
public void hidupkan(){
if(this.statusAC==KeadaanMati){
this.statusAC=KeadaanHidup;
System.out.println("Hidupkan AC -->AC sudah hidup");
}else{
System.out.println("Hidupkan AC -->AC sudah Hidup kok");}
}
public void dinginkan(){
if(this.statusAC==KeadaanPanas){
this.statusAC=KeadaanDingin;
System.out.println("Dinginkan AC -->AC sudah dingin");
}else{
System.out.println("Dinginkan AC -->AC sudah dingin kok");}
}
public void panaskan(){
if(this.statusAC==KeadaanDingin){
this.statusAC=KeadaanPanas;
System.out.println("Panaskan AC -->AC sudah panas");
}else{
System.out.println("Panaskan AC -->AC sudah panas kok");}
}}
public class InterfaceACBeraksi{
public static void main(String[]args){
AC ACKamar=new AC();
System.out.println("Status AC saat ini: Hidup");
ACKamar.matikan();//matikan AC
ACKamar.hidupkan();//hidupkan AC
ACKamar.hidupkan();//hidupkan AC
ACKamar.matikan();//matikan AC
ACKamar.matikan();//matikan AC
System.out.println("\n");
System.out.println("Status AC saat ini: Panas");
ACKamar.dinginkan();//panaskan AC
ACKamar.panaskan();//panaskan AC
ACKamar.panaskan();//panaskan AC
ACKamar.dinginkan();//dinginkan AC
ACKamar.dinginkan();//dinginkan AC
System.out.println("\n");
}}
Hasil:

5. Penutup
Materi OOP Concepts yang dibahas diatas adalah pembahasan mengenai konsep-konsep dan karakteristik dari pemograman berorientasi objek (OOP), yang diawali dengan konsep pemograman, paradigma, dan tool pemograman.
Java merupakan salah satu bahasa pemograman tingkat tinggi yang mempunyai sifat case sensitif, artinya karakter-karakter yang digunakan harus sama dengan karakter yang digunakan sebelumnya.
Untuk mempelajari pemograman dengan Java, anda bisa download disini (tentunya minta ijin dulu sama yang punya, Pak Romi Satria Wahono). Materinya dibagi menjadi 3 bagian, yaitu:
- JAVA FUNDAMENTALS, tentang dasar-dasar pemograman Java. Pembahasan meliputi: pernyataan, ekspresi, variabel, tipe data, literal, array, operator, pernyataan penentu keputusan dan pernyataan pengulangan proses.
- JAVA ADVANDCED, tentang pemograman Java untuk tingkat lanjut. Pembahasan meliputi: penangan eksepsi, multitheading, I/O sream, operasi berhubungan dengan file dan direktori, dan yang terakhir tentang berbagai class penting yang ada di Java API.
- JAVA GUI, tentang pemograman Java berbasis GUI, khususnya menggunakan Swing. Pembahasan meliputi: konsep Graphical User Interface (GUI) di Java, komponen dasar Swing, penanganan kejadian (event handling) untuk GUI dan bagaimana membuat program GUI dengan Netbeans.
Sumber:
- OOP Concepts, http://romisatriawahono.net
- Java Tutorial, file:///D:/JavaSoftware/tutorial-2008_03_14/tutorial/java/TOC.html


