بسم الله الرحمن الرحيم
tentang penerapan OOP (Object Oriented Programming).
Dalam
mempelajari pemrograman Java, tentunya kita sering mendengar istilah
Object Oriented Programming atau yang beken disingkat OOP. Sebenarnya
apa sih OOP itu? Melalui tulisan ini saya akan berusaha memberikan
gambaran mengenai OOP melalui contoh. Pengertian OOP sendiri tentunya
banyak tersedia di buku-buku maupun artikel mengenai Java.
Sebelumnya, ada baiknya kita memahami beberapa istilah dalam OOP. Bagi penggemar game komputer pastinya sudah tidak asing lagi dengan game
GTA: San Andreas dimana terdapat puluhan kendaraan yang siap pakai di
jalan. Secara umum kendaraan itu bisa dibagi menjadi mobil, motor,
pesawat, helikopter, dan kapal.
CLASS
Bisa dikatakan class adalah 'cetakan' untuk berbagai macam objek. Pada GTA, class bisa dibagi menjadi class Mobil, class Motor, class Pesawat, class Helikopter, dan class Kapal. Pada artikel ini saya ambil class Mobil saja.
Mobil
memiliki atribut yang sama, antara lain nama, jenis, kapasitas
silinder, power, dan percepatan. Tentunya masih banyak lagi atribut yang
tidak saya gunakan di sini, setiap bagian dari mobil bisa dianggap
sebagai atribut, misalnya roda, pintu, mesin, rem, setir, dllsbgnya.
Walaupun sebuah file bisa berisi lebih dari satu class, ada baiknya satu file hanya berisi satu class untuk mempermudah pemahaman. Nama class utama harus sama dengan nama file.
Untuk membuat class Mobil dinyatakan dengan perintah: (ingatlah, java itu CaSe SeNSitiVe)
public class Mobil {
………..
}
OBJECT
Object adalah sebuah benda nyata yang merupakan hasil dari 'cetakan' class. Dari class Mobil bisa dihasilkan bermacam-macam mobil misalnya sabre, ZR3500, rancher, clover, greenwood, remington, dll.
Masing-masing
mobil itu memiliki atribut yang sama, namun dengan karakteristik yang
berbeda-beda. Cukup jelas kan bahwa kapasitas silinder, power, cara
akselerasi, cara berbelok, cara mengerem, setiap mobil bisa
berbeda-beda. Setiap mobil itu disebut object.
Untuk membuat object sabre, ZR, dan rancher dilakukan dengan perintah:
Mobil sabre = new Mobil();
Mobil ZR = new Mobil();
Mobil rancher = new Mobil();
Sehingga kita memiliki tiga objek yang semuanya memiliki atribut dari class Mobil.
INHERITANCE
Satu
lagi istilah yang nge-trend dalam OOP yaitu pewarisan sifat
(inheritance). Sebuah class bisa mewarisi sifat class yang lain. Dalam
contoh ini misalnya class Truk mewarisi sifat dari class
Mobil, dimana Truk memiliki semua atribut yang dimiliki mobil, tapi
Truk memiliki beberapa atribut yang tidak dimiliki mobil biasa. Misalnya
kapasitas muatan, dan jumlah roda. Jumlah roda? Ya, mobil biasa rodanya
hanya empat, truk rodanya lebih dari empat. Sedikit tips kalau mau naik
taksi, hitung dulu jumlah rodanya, karena kalau jumlahnya tidak sama
dengan empat, bisa dipastikan itu bukan taksi.
Class Truk yang mewarisi sifat class Mobil dinyatakan dengan perintah:
public class Truk extends Mobil {
}
METHOD
Di pelajaran pemrograman terstruktur, method bisa diibaratkan sebagai subprogram. Method letaknya di dalam class, Dalam contoh class Mobil, method “info” dinyatakan pada baris ini:
public void info(){
System.out.println(“Nama Mobil : “+nama);
System.out.println(“Jenis Mobil : “+jenis);
System.out.println(“Isi Silinder: “+cc+” cc”);
System.out.println(“Power : ” +power+” HP”);
}
Method info berisi perintah untuk menampilkan nama mobil, jenis, isi silinder, dan power mobil. Sedangkan untuk memanggil methodnya, misal untuk info mobil sabre dilakukan dengan perintah:
sabre.info();
OVERLOADING
Dalam class Mobil terdapat method info, dalam class Truk juga terdapat method dengan nama yang sama. Ini disebut overloading.
Jika sebuah mobil memanggil method info, maka yang dikerjakan adalah method info yang berada di class Mobil.
Namun jika sebuah truk memanggil method info, ada dua pilihan, method info di la clase Mobil atau method info di class Truk. Dalam hal ini yang dikerjakan adalah method info yang berada di class Truk.
Silakan diperhatikan source-code class Mobil dan class Truk.
Dari tadi bicarakan class, object, method, dll. Lalu program utamanya ada di mana? Program utama ada di blok perintah ini:
public static void main(String[]args){
………..
}
Dalam artikel ini program utama berisi set perintah sebagai berikut:
1. Buat objek baru untuk Mobil sabre, ZR, rancher, dan Truk freightliner. Kemudian isi karakteristiknya.
2. Tampilkan data karakteristik untuk masing-masing objek.
3. Panggil method akselerasi untuk Mobil ZR.
4. Panggil method deselerasi untuk Mobil sabre.
Cukup simpel bukan? (tolong dijawab dengan “iya”). Untuk lebih memahami, mari langsung dipraktekkan.
—-==== CLASS MOBIL (Mobil.java) ====—-
public class Mobil {
int kecepatan = 0;
int cc;
int power;
int perubahanKecepatan;
String nama;
String jenis;
public void akselerasi(){
System.out.println(“Akselerasi mobil “+nama);
System.out.println(“Kecepatan sebelumnya = “+kecepatan+” Kph”);
kecepatan = kecepatan + perubahanKecepatan;
System.out.println(“Kecepatan sekarang = “+kecepatan+” Kph”);
}
public void deselerasi(){
System.out.println(“Deselerasi mobil “+nama);
System.out.println(“Kecepatan sebelumnya = “+kecepatan+” Kph”);
kecepatan = kecepatan – perubahanKecepatan;
System.out.println(“Kecepatan sekarang = “+kecepatan+” Kph”);
}
public void info(){
System.out.println(“Nama Mobil : “+nama);
System.out.println(“Jenis Mobil : “+jenis);
System.out.println(“Isi Silinder: “+cc+” cc”);
System.out.println(“Power : ” +power+” HP”);
}
}
—-==== CLASS TRUK MEWARISI SIFAT CLASS MOBIL (Truk.java) ====—-
public class Truk extends Mobil{
int muatan;
int jumlahRoda;
public void info(){
System.out.println(“Nama Mobil : “+nama);
System.out.println(“Isi Silinder: “+cc+” cc”);
System.out.println(“Power : “+power+” HP”);
System.out.println(“Muatan : “+muatan+ ” ton”);
System.out.println(“Jumlah Roda : “+jumlahRoda);
}
}
—-==== PROGRAM UTAMA (Game.java) ====—-
public class Game {
public static void main(String[]args){
/*Bagian ini membuat objek baru berdasarkan class Mobil & Truk
sabre, ZR, rancher, freightliner, dan mengisi variabel karakteristiknya*/
Mobil sabre = new Mobil(); //membuat objek mobil sabre
sabre.nama=”Sabre”; //mengisi variabelnya
sabre.jenis=”Sedan Muscle Car”;
sabre.cc = 3000;
sabre.power = 175;
sabre.perubahanKecepatan=5;
Mobil ZR=new Mobil(); //membuat objek mobil ZR
ZR.nama=”ZR 3500″; //mengisi variabelnya
ZR.jenis=”Sportscar”;
ZR.cc=3500;
ZR.power=200;
ZR.perubahanKecepatan=7;
Mobil rancher = new Mobil(); //membuat objek mobil rancher
rancher.nama = “Rancher”; //mengisi variabelnya
rancher.jenis = “Jeep off road”;
rancher.cc = 2750;
rancher.power = 150;
rancher.perubahanKecepatan=3;
Truk freightliner = new Truk(); //membuat objek truk freightliner
freightliner.nama = “Freightliner”; //mengisi variabelnya
freightliner.cc = 12000;
freightliner.power = 250;
freightliner.muatan = 30; //truk ada tambahan variabel muatan-
freightliner.jumlahRoda = 10; //dan jumlah roda
freightliner.perubahanKecepatan=3;
/*Bagian ini memanggil method yang ada di class Mobil & Truk,
yaitu info, akselerasi, dan deselerasi*/
sabre.info(); //menampilkan data mobil sabre
System.out.println(); //memberi baris kosong saja
ZR.info(); //menampilkan data mobil ZR
System.out.println();
rancher.info(); //menampilkan data mobil rancher
System.out.println();
System.out.println();
ZR.kecepatan=40; //memberi kecepatan awal 40Kph
ZR.akselerasi(); //akselerasi mobil ZR
System.out.println(); //memberi baris kosong saja
sabre.kecepatan=40; //memberi kecepatan awal 40Kph
sabre.deselerasi(); //deselerasi mobil rancher
}
}
—-==== HASIL RUNNING PROGRAM (seharusnya seperti ini) ====—-
Nama Mobil : Sabre
Jenis Mobil : Sedan Muscle Car
Isi Silinder: 3000 cc
Power : 175 HP
Nama Mobil : ZR 3500
Jenis Mobil : Sportscar
Isi Silinder: 3500 cc
Power : 200 HP
Nama Mobil : Rancher
Jenis Mobil : Jeep off road
Isi Silinder: 2750 cc
Power : 150 HP
Nama Mobil : Freightliner
Isi Silinder: 12000 cc
Power : 250 HP
Muatan : 30 ton
Jumlah Roda : 10
Akselerasi mobil ZR 3500
Kecepatan sebelumnya = 40 Kph
Kecepatan sekarang = 47 Kph
Deselerasi mobil Sabre
Kecepatan sebelumnya = 40 Kph
Kecepatan sekarang = 35 Kph
No comments:
Post a Comment