Pengenalan Pemrograman Berorientasi Obyek
OOP berputar pada konsep dari obyek yang merupakan elemen
dasar dari program Anda. Ketika kita membandingkan dengan dunia nyata, kita
dapat menemukan beberapa obyek disekitar kita seperti mobil, singa, manusia dan
seterusnya. Obyek ini dikarakterisasi oleh atribut dan tingkah lakunya.
Contohnya, objek sebuah mobil mempunyai atribut tipe
transmisi, warna dan manufaktur. Mempunyai tingkah laku berbelok, mengerem dan
berakselerasi. Dengan cara yang sama pula kita dapat mendefinisikan perbedaan
sifat dan tingkah laku dari singa.
Dengan deskripsi ini, obyek pada dunia nyata dapat secara
mudah asumsikan sebagai obyek perangkat lunak menggunakan atribut sebagai data
dan tingkah laku sebagai method. Data dan method dapat digunakan dalam
pemrograman game atau perangkat lunak interaktif untuk membuat simulasi obyek
pada dunia nyata. Contohnya adalah perangkat lunak obyek mobil dalam permainan
balap mobil atau perangkat lunak obyek singa dalam sebuah perangkat lunak
pendidikan interaktif pada kebun binatang untuk anak anak.
Perbedaan Class dan Object
Pada dunia perangkat lunak, sebuah obyek adalah sebuah
komponen perangkat lunak yang stukturnya
mirip dengan obyek pada dunia nyata. Setiap obyek dibangun dari sekumpulan data
(atribut) yang disebut variabel untuk menjabarkan karakteristik khusus dari
obyek, dan juga terdiri dari sekumpulan method yang menjabarkan tingkah laku
dari obyek. Bisa dikatakan bahwa obyek adalah sebuah perangkat lunak yang
berisi sekumpulan variabel dan
method yg berhubungan. Variabel dan method dalam obyek Java
secara formal diketahui sebagai variabel instance dan method instance. Hal ini
dilakukan untuk membedakan dari variabel class dan method class, dimana akan
dibahas kemudian. Class adalah sturktur dasar dari OOP. Class terdiri dari dua
tipe dari anggota dimana disebutdengan field (attribut/properti) dan method.
Field merupakan tipe data yang didefinisikan oleh class, sementara method
merupakan operasi. Sebuah obyek adalah sebuah instance (keturunan) dari class.
Untuk dapat membedakanantara class dan obyek, mari kita
mendiskusikan beberapa contoh berikut ini. Kita memiliki sebuah class mobil
dimana dapat digunakan untuk medefinisikan beberapa obyek mobil. Pada tabel
dibawah, mobil A dan mobil B adalah obyek dari class mobil. Class memiliki
field nomor, plat, warna, manufaktur dan kecepatan yang diisi dengan
nilai pada obyek mobil A dan mobil B. Mobil juga dapat
berakselerasi, berbelok dan melakukan rem.
Ketika diinisialisi, setiap obyek mendapat satu set variabel
yang baru. Bagaimanapun, implementasi dari method dibagi diantara objek pada
class yang sama. Class menyediakan keuntungan dari reusability.
Programmer perangkat lunak dapat menggunakan sebuah kelas beberapa kali untuk
membuat banyak objek.
Instansiasi Class
Untuk membuat sebuah objek atau sebuah instance pada sebuah
class. Kita menggunakan operator new. Sebagai contoh, jika anda ingin
membuat instance dari class string, kita menggunakan kode berikut :
String str2 = new String(“Hello world!”);
Ini juga sama dengan,
String str2 = "Hello";
Variabel Class dan Variabel Method
Selain dari variabel instance, kita juga memungkinkan untuk
mendefinisikan variabel dari class, yang nantinya variabel ini dimiliki oleh
class. Ini berarti variabel ini dapat memiliki nilai yang sama untuk semua
objek pada class yang sama. Mereka juga disebut static member variables.
Method
Apakah Method itu dan mengapa menggunakan Method?
Pada contoh yang telah kita diskusikan sebelumnya, kita
hanya memiliki satu method, dan itu adalah method main(). Di dalam Java, kita
dapat mendefinisikan banyak method yang akan kita panggil dari method yang
berbeda. Sebuah method adalah bagian-bagian kode yang dapat dipanggil oleh
program utama atau dari method lainnya untuk menjalankan fungsi yang spesifik.
Berikut adalah karakteristik dari method :
1. dapat mengembalikan satu nilai atau tidak sama sekali
2. dapat diterima beberapa parameter yang dibutuhkan atau
tidak ada
parameter sama
sekali. Parameter bisa juga disebut sebagai argumen dari
fungsi
3. setelah method telah selesai dieksekusi, dia akan kembali
pada method
yang memanggilnya.
Sekarang mengapa kita butuh untuk membuat banyak method?
Mengapa kita tidak menuliskan semua kode pada sebuah method? Hal ini karena
penyelesaian masalah yang sangat efektif adalah memecah masalah-masalah tersebut
menjadi beberapa bagian. Kita juga dapat melakukan hal ini di
Java dengan membuat method untuk mengatasi bagian tertentu
dari masalah. Sebuah permasalahan dapat dipecah-pecah menjadi beberapa bagian
kecil. Hal ini sangat baik sekali untuk membuat program yang sangat besar.
Memanggil Instance dan memberikan Variabel dari Method
Sekarang, untuk mengilustrasikan bagaimana memanggil method,
mari kita menggunakan class string sebagai contoh. Anda dapat menggunakan the
dokumentasi dari Java API untuk melihat semua method yang tersedia dalam class
string. Selanjutnya, kita akan membuat method, kita sendiri. Tapi untuk saat
ini, mari terlebih dahulu kita gunakan method yang sudah disediakan oleh
Java. Untuk memanggil sebuah instance method, kita dapat
menuliskan :
nameOfObject.nameOfMethod( parameters );
mari kita mengambil dua contoh method yang ditemukan dalam
class String.
Menggunakan method :
String str1 = "Hello";
char x = str2.charAt(0); //will return the
character H
//simpan pada variabel x
String str2 = "hello";
//return boolean
boolean result = str1.equalsIgnoreCase( str1 );
Pemberian Variabel Dalam Method
Pada contoh kita sebelumnya , kita sudah pernah mecoba
melewati variabel pada method. Walaupun kita belumdapat membedakan antara
perbedaan tipe variabel yang diberikan (passing) ke method dalam Java.
Ada dua tipe data variabel passing pada method, yang pertama adalah
pass-by-value dan yang kedua adalah pass-by-reference.
Pass-by-Value
Ketika pass-by-values terjadi, method membuat sebuah salinan
dari nilai variable yang dikirimkan ke method. Walaupun demikian, method tidak
dapat secara langsung memodifikasi nilai variabel pengirimnya meskipun
parameter salinannya sudah dimodifikasi nilainya di dalam method.
Pass-by-reference
Ketika sebuah pass-by-reference terjadi, alamat memori dari
nilai pada sebuah variabel dilewatkan pada saat pemanggilan method. Hal ini
berarti bahwa method menyalin alamat memori dari variabel yang dilewatkan pada
method. Ini tidak seperti pada pass-by-value, method dapat memodifikasi
variabel asli dengan menggunakan alamat memori tersebut, meskipun berbeda nama
variabel yang digunakan dalam method dengan variabel aslinya, kedua variabel
ini menunjukkan lokasi dari data yang sama.