Sharing Knowledge is Fun

Paradigma : Pemprograman Berorientasi Objek dengan Java (Object-Oriented)

08/01/2009 18:34

Tulisan sebelumnya yang berkaitan dengan Topik ini :

1. Mengenal Java

2. Instalasi Java

3. Contoh Program Sederhana

Pemprograman berorientasi objek sampai saat ini masih merupakan sebuah paradigma pemprograman yang sangat powerfull. Dalam tulisan ini saya akan memaparkan sedikit apa yang saya ketahui tentang Pemprograman berorientasi objek berdasarkan apa yang telah saya pelajari dari beberapa literatur maupun perkuliahan yang pernah saya ikuti. Sebelum membahas beberapa konsep pemprograman dan paradigmanya, ada baiknya kita tahu sedikit sejarahnya serta mengapa perlu mendalaminya..

Pada tulisan ini saya sertakan beberapa contoh source code sederhana untuk memudahkan pemahaman mengenai konsep-konsep yang ada pada pemprograman berorientasi objek. Untuk itu bagi yang mau mencobanya dan belum punya tools-nya silakan ikuti langkah instalasinya terlebih dulu..!!( BACA TULISAN INSTALASI JAVA)

Sejarah OOP

Pemprograman berorientasi objek dalam bahasa inggrisnya dinamakan Object Oriented Programming atau sering disingkat OOP. OOP ini mulai dikenalkan sekitar pertengahan tahun 60-an dengan bahasa SIMULA. SIMULA sendiri merupakan sebuah pemprograman yang biasanya dipakai untuk Simulasi, yakni untuk pemodelan suatu entitas/sistem. SIMULA mempunyai kemiripan sintak dengan PASCAL tetapi dalam perancangannya programmer berfikir sedikit lebih berbeda. Ide dasar yang diperkenalkan waktu itu adalah inheritance (pewarisan) dan juga sudah mengenal konsep objek pada sistem yang dimodelkan. Beberapa objek yang dikumpulkan dinamakan “Class” dan tugas programmer SIMULA tersebut adalah menentukan bagaimana behavior dari class tersebut.

Kemudian pada era 70-an, bahasa pemprograman yang mengadopsi konsep OOP yaitu SMALLTALK yang dikembangkan Xerok PARC. Meskipun pengembang perangkat lunak tidak secara intensif mengembangkan OOP, tetapi konsep OOP tetap digunakan dan dianggap powerful hingga sekarang.

Selanjutnya pertengahan 80-an, bahasa pemprograman OOP; seperti C++ menjadi populer dikalangan programmer komputer. Hingga era 90-an ternyata popularitas OOP berlanjut terus dan mulai banyak pengembang perangkat lunak yang menggunakan konsep OOP seperti pada Java yang menjadi popular hingga sekarang. Pada tahun 2000-an, microsoft-pun mulai memperkenalkan bahasa OOP baru yaitu C# (C-sharp) serta kemudian Visual Basic 6.0 yang tidak mendukung OOP dikembangkan menjadi VB.NET.

Kenapa Java?!

Java merupakan bahasa pemprograman berorientasi objek yang dikembangkan oleh Sun Microsystem sejak tahun 1991. Bahasa ini merupakan pengembangan dari C/C++ dan SmallTalk. Namun bahasa ini dirancang agar lebih mudah dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer . Bahasa ini sering juga bersifat Multiplatform, kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip write once, run every where. Selain itu ada beberapa kelebihan lain (BACA TULISAN PENGENALAN JAVA)

Pemprograman berorientasi objek ( Object-Oriented )

Pemprograman berorientasi objek (Object Oriented Programming atau OOP) merupakan suatu konsep yang menyelesaikan masalah pemprograman dengan menggunakan pendekatan objek. Konsep OOP ini merupakan pengembangan dari konsep pemprograman sebelumnya yang dianggap kurang mampu menyelesaiakan tingkat pemprograman yang lebih kompleks. yaitu pemprograman fungsional (berdasarkan urutan fungsi secara sekuensial, seperti : Scheme, Lisp) dan pemprograman prosedural (berdasarkan prosedural kerja yang terkumpul dalam unit pemprograman bernama fungsi, seperti: C, Pascal). Pada pemprograman prosedural program ditulis dalam mode barisan linier yang bekerja dari atas ke bawah atau program merupakan kumpulan dari tahapan yang dijalankan setelah yang lain berjalan. Programming jenis ini dapat bekerja dengan baik untuk program kecil yang berisi code relative sedikit, tetapi ketika program menjadi besar, maka cenderung sulit untuk di-manage dan di-debug. Nah, konsep OOP inilah yang bisa mengatasi permasalahan tersebut.

Berikut ini adalah beberapa konsep dan istilah yang ditekankan pada OOP :

  • Objek (Object)

Pada dasarnya semua benda dalam dunia nyata dapat kita anggap sebagai objek. Dan apabila kita perhatikan lebih lanjut maka objek itu memiliki karakteristik, yaitu attribut (keadaan yang ada pada objek) dan behavior (kelakuan yang dimiliki oleh objek).

Contoh sederhana : objek Sepeda Motor

Sepeda motor memiliki attribut : roda, rantai, rem, gir, warna, tahun pembuatan, dll

Sepeda motor memiliki behavior : cara menghidupkan, cara menjalankan, cara membelokkan, cara mengerem , dll

Pemahaman objek disekitar kita inilah yang dapat mendasari pemahaman mengenai pemrograman berorientasi objek. Yang paling utama adalah bagaimana mentransformasikan apa yang kita ketahui tentang suatu objek menjadi suatu program.

Secara sederhana attribute bisa dikatakan sebagai kata benda karena sifatnya yang pasif, benda tersebut tidak melakukan operasi tetapi justru menjadi target operasi. Sedangkan behaviour bisa disebut sebagai kata kerja, karena ia untuk menujukkan operasi apa yang dilakukan.

Dalam penerapannya pada perangkat lunak berorientasi objek, objek menyimpan attribute dalam variabel dan menyimpan behavior dalam method. Atau bisa dikatakan bahwa attribute adalah berbagai variable yang mengitari class, dengan nilai datanya bisa ditentukan di objek. Method adalah implementasi dari bagaimana bekerjanya sebuah class.

 

  • Abstraksi (Abtraction)

Dalam OOP dikenal istilah Abstraksi. Yaitu suatu cara bagaimana kita melihat objek dalam bentuk yang lebih sederhana. Sebagai contoh apabila kita melihat sebuah Sepeda Motor, kita tidak perlu mengetahui susunan komponen mesin dan komponen elektris lainnya yang sangat kompleks. Namun kita hanya memahami sepeda motor sebagai suatu entitas/sistem yang memiliki karakteristik tersendiri, yang ketika dinyalakan bisa digunakan sebagai alat transportasi. Dengan pemahaman yang sederhana ini maka ketika kita memakai sepeda motor, kita tidak perlu tahu betapa rumit komponen dan rangkaian yang menyusun sebuah sepeda motor. Karena yang perlu kita ketahui adalah bagaimana cara sepeda motor tersebut dikendalikan.

Jadi konsep abstraksi ini adalah bagaimana kita melihat suatu entitas/sistem yang kompleks yang terdiri dari subsistem-subsistem yang rumit dapat dipandang menjadi sebuah paket sistem yang sederhana.

 

  • Kelas (Class)

Kelas bisa kita ibaratkan sebagai sebuah cetakan atau prototype untuk membuat objek. Misal, sebuah cetakan kue yang digunakan untuk membuat ribuan kue. Kue yang dibuat tersebut adalah objek dari kelas cetakan kue. Hal ini dapat dilakukan karena semua objek kue yang dibuat memiliki karakteristik yang sama sehingga dapat dibuatkan blueprintnya.

Kelas vs Objek

Kelas berbeda dengan objek. Kelas merupakan prototipe yang mendefinisikan variabel-variabel dan method-method sedangkan objek merupakan instansiasi dari suatu kelas.

Dalam dunia nyata, kita sering mempunyai objek yang berjenis sama. Misal; Sepeda motor yang kita punyai merupakan satu dari banyak sepeda motor di dunia. Dengan konsep orientasi objek, bisa dikatakan bahwa sepeda motor tersebut adalah instance dari sebuah class dari objek sepeda motor. Sepeda motor umumnya memiliki atribute (seperti: roda, rantai, rem, gir) dan behaviour (seperti: menghidupkan, mengerem, pindah gigi, dll). Namun setiap sepeda motor adalah independen atau bebas dan bisa beda dari sepeda motor lainnya. Ketika membuat sepeda motor, pabrik pembuatnya mengambil keuntungan dari kenyataan bahwa sepeda motor memiliki karakteristik yang sama, sehingga untuk membuat sepeda motor bisa mulai dari membuat prototype. Sangat tidak efisien jika membuat sepeda motor dengan prototype yang berbeda-beda untuk setiap sepeda motor.

Kelas (Class) akan mendefinisikan variabel-variabel instan yang diperlukan untuk memuat karakteristik-karakteristik dari objek yang bersangkutan. Class akan dideklarasikan dan menyediakan beberapa method-method instan yang memungkinkan pengendara sepeda motor tersebut mengubah gigi, rem, dan sebagainya.

Setelah kita membuat kelas sepeda motor, kita dapat membuat sejumlah objek sepeda motor dari kelas tersebut. Ketika kita membuat sebuah kelas instan, maka sistem akan mengalokasikan sejumlah memori yang cukup untuk objek-objek dan semua variable instan.

Untuk lebih memahami konsep-konsep diatas berikut contoh source code sederhana pemprograman dengan Java:

Membuat Class, Objek, dan Memanggil Atrribute

/* Simpan dengan nama file : SepedaMotor.java

Membuat class Sepeda Motor */

class SepedaMotor {

String warna;

int tahunProduksi;

int kecepatan=10;

 

// Membuat method tambahKecepatan

void tambahKecepatan(int pertambahanKecepatan) {

kecepatan = kecepatan+ pertambahanKecepatan;

System.out.println("Kecepatan:" + kecepatan);

}

}

 

/*Simpan dengan nama file : SepedaMotorBeraksi.java

Membuat Class yang bernama SepedaMotorBeraksi */

public class SepedaMotorBeraksi {

public static void main (String[] args) {

 

//Membuat objek yang bernama sepedaMotorku

SepedaMotor sepedaMotorku = new SepedaMotor();

 

// Memanggil attribut dan memberi nilai

sepedaMotorku .warna = “Hitam”;

sepedaMotorku .tahunProduksi=2008;

System.out.println( “Sepeda Motorku berwarna : ”+ sepedaMotorku .warna);

System.out.println( “Sepeda Motorku tahun : ”+ sepedaMotorku.tahunProduksi);

sepedaMotorku.tambahKecepatan(10);

}

}

Hal yang perlu diperhatikan:

Java bersifat case sensitive. Huruf besar dan kecil sangat berpengaruh dalam Java, karena itu pastikan anda mengetik kode diatas sama persis, tanpa mengubah besar kecil hurufnya. Ketik program diatas dengan menggunakan text editor (misalnya notepad, textpad, atau lainnya) dan simpan dengan nama SepedaMotor.java dan SepedaMotorBeraksi.java. Nama file ini harus sama dengan nama class. Kemudian lakukan kompilasi dengan mengetikkan perintah di c-prompt:

C:\java> javac SepedaMotor.java

C:\java> javac SepedaMotorBeraksi.java

 

Jika berhasil, hasil kompilasi ini akan membangkitkan sebuah bytecode dengan nama file SepedaMotor.class dan SepedaMotorBeraksi.class untuk mengeksekusi file ini maka bisa menggunakan perintah:

C:\java> java SepedaMotorBeraksi

 

Hasil dari eksekusi tersebut maka akan menghasilkan tampilan :

Sepeda Motorku berwarna : Hitam

Sepeda Motorku tahun : 2008

Kecepatan : 20

 

Penjelasan Program

Program diatas merupakan program contoh sederhana, namun memiliki beberapa bagian penting.

/* Simpan dengan nama file : SepedaMotor.java

Membuat class Sepeda Motor */

bagian ini merupakan bagian yang dikenal sebagai komentar. Komentar dalam Java seperti halnya dalam pemrograman yang lain yaitu bukan merupakan bagain dari program. Oleh karena itu komentar ini tidak akan dikompilasi oleh compiler Java dan tidak akan mempengaruhi alur program. Komentar ini lebih diperuntukkan untuk memperjelas source code yang ditulis sehingga kode program dapat lebih mudah untuk diteliti ulang atau dibaca. Komentar harus selalu ditulis diantara tanda /* dan */. Artinya komentar tersebut berlaku mulai dari tanda /* dan diakhiri dengan tanda */

//Membuat objek yang bernama sepedaMotorku

Kode diatas juga merupakan komentar dalam java. Perbedaan dengan /* */ adalah bahwa ia hanya berlaku untuk satu baris ini saja dan semua kata-kata setelah tanda // adalah komentar.

class SepedaMotor {

baris ini mendeklarasikan sebuah class dengan nama SepedaMotor. Jika diperhatikan keseluruhan deklarasi class ini diawali dengan { dan diakhir dengan }. Hal ini berarti bahwa semua yang berada didalam tanda tersebut merupakan bagain dari class ini.

public static void main(String[] args) {

baris ini mendeklarasikan suatu method dengan nama main. Nama main disini merupakan suatu keharusan dalam Java karena Java akan mencari method yang bernama main ini sebagai awal eksekusi program. Keyword public merupakan access specifier yang menentukan visibility level dari method ini. Public berarti method ini dapat diakses darimanapun dari luar class. Method main() akan dipanggil dari luar oleh runtime Java pada saat program akan dieksekusi sehingga access specifier-nya harus menggunakan public. Keyword static memungkinkan method main() dipanggil tanpa harus terlebih dahulu membuat instance dari class SepedaMotor. Ini diperlukan karena method main() akan dieksekusi sebelum objek apapun dibuat dalam memori. Keyword void berarti bahwa method main() tidak mengembalikan nilai apapun setelah dipanggil/dieksekusi.

String warna;

int tahunProduksi;

int kecepatan=10;

baris di atas merupakan pemberian attribut atau pendeklarasian variabel yaitu ada 3 attribut/variable; attribute/variabel yang bernama warna dengan tipe data string, attribut/variabel tahunProduksi yang tipe datanya integer, variabel kecepatan yang tipe datanya integer.

void tambahKecepatan(int pertambahanKecepatan) {

Baris ini artinya membuat suau method yang bernama tambahKecepatan yang memiliki parameter dengan nama pertambahanKecepatan.

SepedaMotor sepedaMotorku = new SepedaMotor();

Baris ini maknanya membuat suatu objek yang bernama sepedaMotorku dari kelas SepedaMotor. Jadi objek sepedaMotorku ini nantinya bisa memiliki attribute yang ada pada kelas SepedaMotor.

sepedaMotorku.warna = “Hitam”;

sepedaMotorku.tahunProduksi=2008;

Baris tersebut merupakan perintah untuk pemangilan attribut dan sekaligus pemberian nilai. Jadi untuk objek sepedaMotorku attribute warna nilainya Hitam dan tahunProduksi adalah 2008.

sepedaMotorku.tambahKecepatan(10);

Baris diatas merupakan perintah untuk pemanggilan method tambahKecepatan dengan nilai parameter 10.

System.out.println( “Sepeda Motorku berwarna : ”+ sepedaMotorku .warna);

Baris ini memiliki beberapa bagian penting:

System adalah nama dari salah satu class standar yang dimiliki oleh Java.

Out merupakan anggota dari class system dan juga merupakan objek tersendiri. Out mewakili standard output stream yang dalam hal ini digunakan layar komputer. Seperti halnya method main() diatas, objek out juga dideklarasikan dengan menggunakan keyword static didalam classnya sehingga ia dapat langsung dipanggil tanpa perlu terlebih dahulu membuat instance dari class system.

Prinltn merupakan method yang terdapat dalam objek out. Berfungsi untuk mencetak keluaran ke standard output. Method ini juga mencetak karakter pindah baris. Untuk mencetak tanpa pindah baris bisa menggunakan print().

“Sepeda Motorku berwarna : ” merupakan parameter dari method println yang diterima oleh internal method ini dan dicetak ke standard output yang dalam hal ini adalah layer computer anda. Tanda ; diperlukan untuk menandai akhir dari suatu statement / pernyataan / perintah.

 

  • Enkapsulasi

Dalam sebuah objek yang mengandung variabel dan method, dapat ditentukan hak akses pada sebuah variabel atau method dari objek. Pembungkusan variabel dan method pada objek yang terlindungi inilah yang disebut dengan enkapsulasi. Jadi, enkapsulasi dapat diartikan sebagai suatu mekanisme untuk menyembunyikan atau memproteksi suatu proses dari kemungkinan interferensi dari luar sistem sekaligus menyederhanakan penggunaan sistem itu sendiri. Akses pada internal sistem sendiri diatur sedemikian rupa melalui seperangkat interface. Pada contoh sepeda motor, mengenai sistem transmisi gigi, maka pengendara tidak perlu tahu detail dari bagaimana proses pemindahan gigi itu dilakukan oleh mesin, tapi cukup tahu bagaimana menekan gigi transmisi, supaya dapat berpindah.

Dalam bahasa Java segala sesuatu adalah objek (everything is object). Setiap baris program yang ditulis programmer adalah merupakan bagian dari sebuah objek. Programmer juga dapat membangun sebuah objek yang disusun oleh objek-objek kecil, dimana masing-masing objek yang menyusunnya memiliki fungsi sendiri-sendiri.

 

  • Pewarisan (Inheritance)

Dalam dunia nyata, manusia sebenarnya sudah biasa untuk melihat objek disekitar kita tersusun secara hirarki berdasarkan class-nya masing-masing. Maka muncul suatu konsep tentang pewarisan yang merupakan proses penurunan suatu class dari class lainnya sehingga memiliki ciri atau sifat dari class yang diwarisi.

Dalam suatu hirarki semakin kebawah, maka class akan semakin bersifat spesifik. Sebagai contoh Class Sepeda Motor Balap (untuk para crosser) memiliki sifat yang dimiliki oleh Sepeda Motor. Dengan konsep ini, Class Sepeda motor balap tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh class sepeda motor, ia akan mendapatkan karakteristik dari class sepeda motor secara otomatis. Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu mendefinisikan karakteristik yang lebih umum akan didapatkan dari class darimana ia diturunkan.

Inheritance mewarisan atribut dan method pada sebuah class yang diperoleh dari class yang telah terdefinisi tersebut. Setiap subclass akan mewarisi attribute ( variabel ) dan behaviour (method) dari superclass-nya. Subclass kemudian dapat menambahkan attribute dan behaviour baru yang spesifik dan dapat pula memodifikasi apa yang diturunkan oleh superclass-nya. Inheritance memungkinkan programmer untuk menggunakan ulang source code dari superclass yang telah ada. Berikut ini beberapa istilah yang ada dalam inheritance:

Extends : Keyword ini ditambahkan pada definisi class yang menjadi subclass.

Superclass : Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass/class anak.

Subclass : Subclass adalah class anak atau turunan secara hirarki dari superclass.

Super : Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass.

 

Contoh Inheritance

/* Simpan dengan nama file : SepedaMotorBalap.java

Membuat class SepedaMotorBalap yang merupakan turunan dari Class SepedaMotor */

class SepedaMotorBalap extends SepedaMotor {

int gigi;

 

// Membuat method gir dengan parameter nilaiGir yang bertipe integer

void gir(int nilaiGigi) {

gigi = 2*nilaiGigi;

System.out.println("Nilai gigi:"+gigi);

}

}

 

/*Simpan dengan nama file : SepedaMotorBalapBeraksi.java

Membuat Class yang bernama SepedaMotorBalapBeraksi */

class SepedaMotorBalapBeraksi {

public static void main(String[] args) {

 

// Membuat object

SepedaMotorBalap sepedaMotorBalapku = new SepedaMotorBalap();

 

// Memanggil method

sepedaMotorBalapku.tambahKecepatan(10);

sepedaMotorBalapku.gigi(2);

}

}

Kemudian lakukan kompilasi dengan mengetikkan perintah di c-prompt:

C:\java> javac SepedaMotorBalap.java

C:\java> javac SepedaMotorBalapBeraksi.java

 

Jika berhasil, hasil kompilasi ini akan membangkitkan sebuah bytecode dengan nama file SepedaMotorBalap.class dan SepedaMotorBalapBeraksi.class untuk mengeksekusi file ini maka bisa menggunakan perintah:

C:\java> java SepedaMotorBalapBeraksi

 

Hasil dari eksekusi tersebut maka akan menghasilkan tampilan :

Kecepatan : 20

Nilai Gigi : 4

 

  • Polimorfisme

Polimorfisme berarti suatu objek dapat memiliki berbagai bentuk, sebagai objek dari classnya sendiri atau objek dari superclassnya. Konsep sederhana dalam bahasa pemrograman berorientasi objek yang berarti kemampuan suatu variabel referensi objek untuk memiliki aksi berbeda bila method yang sama dipanggil, dimana aksi method tergantung dari tipe objeknya. Dalam konsep yang lebih umum sering kali polymorfisme disebut dalam istilah satu interface banyak aksi. Dalam konsep ini jika suatu interface yang sama digunakan untuk memerintahkan objek melakukan aksi yang mungkin secara prinsip sama namun secara proses berbeda.

Sebagai contoh: sepeda motor.

Sepeda motor yang ada dipasaran terdiri berbagai tipe dan merk, namun semuanya memiliki interface kemudi yang sama. Jika seseorang bisa mengemudikan satu jenis sepeda motor dari satu merk tertentu, maka orang itu kemungkinan bisa mengemudikan hampir semua jenis sepeda motor yang ada, karena semua sepeda motor menggunakan interface yang sama. Harus diperhatikan disini bahwa interface yang sama tidak berarti cara kerjanya juga sama.

Pada konsep polimorfisme ini ada 2 bentuk yaitu overloading dan overriding :

1. Overloading: Penggunaan satu nama untuk beberapa method yang berbeda parameter.

2. Overriding: Terjadi ketika deklarasi method subclass sama dengan method dari superclassnya

 

1. Overloading

Contoh Penerapan Overloading (Penggunaan satu nama untuk beberapa Method)

/* Simpan dengan nama file : SepedaMotorOverloading.java

Membuat class SepedaMotorOverloading */

class SepedaMotorOverloading {

String warna;

int tahunProduksi;

 

//Membuat Method SepedaMotorOverloading yang memiliki parameter warna dan tahunProduksi

public SepedaMotorOverloading(String warna, int tahunProduksi){

this.warna = warna;

this.tahunProduksi = tahunProduksi;

}

 

//Membuat Method SepedaMotorOverloading yang tidak memiliki parameter

public SepedaMotorOverloading (){

}

 

//Method info tanpa parameter

void info(){

System.out.println("Warna: " + this.warna);

System.out.println("Tahun: " + this.tahunProduksi);

}

}

 

/*Simpan dengan nama file : SepedaMotorOverloadingBeraksi.java

Membuat Class yang bernama SepedaMotorOverloadingBeraksi */

public class SepedaMotorBeraksiOverloading{

public static void main(String[] args){

 

//Membuat objek yang bernama motorku

SepedaMotorOverloading motorku = new SepedaMotorOverloading ("Biru",2009);

 

//Memanggil method info

motorku.info();

 

//Membuat objek yang bernama motormu

SepedaMotorOverloading motormu = new SepedaMotorOverloading ();

 

//Memanggil method info motormu.info();

}

}

 

Kemudian lakukan kompilasi dengan mengetikkan perintah di c-prompt:

C:\java> javac SepedaMotorOverloading.java

C:\java> javac SepedaMotorOverloadingBeraksi.java

 

Jika berhasil, hasil kompilasi ini akan membangkitkan sebuah bytecode dengan nama file SepedaMotorOverloading.class dan SepedaMotorOverloadingBeraksi.class untuk mengeksekusi file ini maka bisa menggunakan perintah:

C:\java> java SepedaMotorOverloadingBeraksi

 

Hasil dari eksekusi tersebut maka akan menghasilkan tampilan :

Warna: Biru

Tahun: 2009

Warna: null

Tahun: 0

Dengan hasil eksekusi program diatas maka jelas terlihat bahwa hasil dari pemanggilan nama method yang sama menghasilkan hasil yang berbeda.

 

2. Overriding

Contoh Penerapan Overriding (Deklarasi Method Subclass sama dengan Method Superclass)

/* Simpan dengan nama file : SepedaMotorOverriding.java

Membuat class SepedaMotorOverriding */

class SepedaMotorOverriding {

String warna;

int tahunProduksi;

int kecepatan=10;

int gigi=2;

 

//Membuat method tambahKecepatan dengan parameter pertambahanKecepatan

void tambahKecepatan(int pertambahanKecepatan) {

kecepatan = kecepatan+ pertambahanKecepatan;

System.out.println("Kecepatan:" + kecepatan);

}

 

//Membuat method gigi dengan parameter nilaiGigi yang bertipe integer

void gigi(int nilaiGigi) {

gigi = 2+nilaiGigi;

System.out.println("Nilai gigi:"+gigi);

}

}

 

/* Simpan dengan nama file : SepedaMotorBalapOverriding.java

Membuat class SepedaMotorBalapOverriding yang merupakan turunan class SepedaMotorOverriding*/

class SepedaMotorBalapOverriding extends SepedaMotorOverriding {

int gigi;

 

//Membuat method gigi dengan parameter nilaiGigi yang bertipe integer

void gigi(int nilaiGigi) {

gigi = 2*nilaiGigi;

System.out.println("Nilai gigi:"+gigi);

}

}

 

/* Simpan dengan nama file : SepedaMotorBalapBeraksiOverriding.java

Membuat class SepedaMotorBalapBeraksiOverriding */

class SepedaMotorBalapBeraksiOverriding {

public static void main(String[] args) {

 

// Membuat object

SepedaMotorBalapOverriding sepedaMotorBalapku = new SepedaMotorBalapOverriding ();

 

// Memanggil method di object

sepedaMotorBalapku.tambahKecepatan(10);

sepedaMotorBalapku.gigi (3);

}

}

Kemudian lakukan kompilasi dengan mengetikkan perintah di c-prompt:

C:\java> javac SepedaMotorOverriding.java

C:\java> javac SepedaMotorBalapOverriding.java

C:\java> javac SepedaMotorBalapBeraksiOverriding.java

 

Jika berhasil, hasil kompilasi ini akan membangkitkan sebuah bytecode dengan nama file SepedaMotorOverriding.class, SepedaMotorBalapOverriding.class dan SepedaMotorBalapBeraksiOverriding.class untuk mengeksekusi file ini maka bisa menggunakan perintah:

C:\java> java SepedaMotorBalapBeraksiOverriding

 

Hasil dari eksekusi tersebut maka akan menghasilkan tampilan :

Kecepatan : 20

Nilai gigi : 6

Dengan hasil eksekusi program diatas maka jelas terlihat bahwa hasil dari pemanggilan nama method gigi pada class SepedaMotorOverriding dioverride oleh class SepedaMotorBalapOverriding.

 

  • Package

Package merupakan sebuahkoleksi dari beberapa kelas (Class) dan interface yang berhubungan dan biasanya menyediakan proteksi akses dan pengelolaan namaspace. Package ini sangat berguna untuk mengelola file dalam suatu library atau project. Dalam satu package merupakan satu subfolder di file system. Dalam penggunaannya package ditulis lowercase.

Untuk penulisannya dengan : package nama;

Untuk pemanggilan package : import nama_package;

Contoh Penerapan Package (Simpan class MotorA.java dan MotorB.java dalam subfolder motor)

/* Simpan dengan nama file : MotorA.java

Membuat class MotorA */

 

//membuat package

package motor;

 

public class MotorA{

public void info(){

System.out.println("Motor A");

}

}

 

/* Simpan dengan nama file : MotorB.java

Membuat class MotorB */

 

//membuat package

package motor;

 

public class MotorB{

public void info(){

System.out.println("Motor B");

}

}

 

/* Simpan dengan nama file : MotorBeraksi.java

Membuat class MotorBeraksi */

 

//memanggil package

import motor.*;

 

public class MotorBeraksi{

public static void main(String[] args){

 

//membuat objek motorku

MotorA motorku = new MotorA();

 

//memanggil method info

motorku.info();

 

//membuat objek motorku

MotorB motormu = new MotorB();

 

//memanggil method info

motormu.info();

}

}

 

Untuk class MotorA.java dan MotorB.java disimpan dalam folder motor yang merupakan satu subfolder dari file class MotorBeraksi.java.

Kemudian lakukan kompilasi dengan mengetikkan perintah di c-prompt:

C:\java\motor> javac MotorA.java

C:\java\motor> javac MotorB.java

C:\java> javac MotorBeraksi.java

 

Jika berhasil, hasil kompilasi ini akan membangkitkan sebuah bytecode dengan nama file MotorA.class, MotorB.class dan MotorBeraksi.class untuk mengeksekusi file ini maka bisa menggunakan perintah:

C:\java> java MotorBeraksi

 

Hasil dari eksekusi tersebut maka akan menghasilkan tampilan :

Motor A

Motor B

Hasil diatas menunjukkan bahwa program berhasil memanggil package.

Demikian hasil bahasan yang dapat kita pelajari mengenai konsep dan contoh pemprograman berbasiskan objek dengan java (OOP). Semoga bisa menambah wawasan dan bisa bermanfaat bagi kita semua..!!Karena ILMU untuk diPELAJARI, diMENGERTI, dan diAMALKAN!!

 

Referensi :

  • https://university.romisatriowahono.net
  • Java How to Program
  • https://www.scribd.com

 

Back

Search site

© 2009 Teknik Informatika UNKRIS