Anda di halaman 1dari 7

Konsep OOP

Pada bab ini, kita akan mengantarkan beberapa konsep dasar dari Pemrograman berorientasi obyek (Object Oriented Porgramming). Selanjutnya, kita akan membahas konsep dari class dan obyek, serta penggunaan class dan anggota-anggotanya termasuk perbandingan, konversi dan pengubahan obyek. 1

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. Coba perhatikan tabel dibawah ini sebagai contoh perbandingan :

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.

Class dan Object

2.1 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 disebut dengan 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. 1

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";

2.3 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.

3. Method
3.1 Apakah Method itu dan mengapa menggunakan Method?
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.

Membuat Class Sendiri


Pada bagian ini, kita akan mempelajari bagaimana menuliskan sebuah class sendiri. untuk mempermudah pemahaman pembuatan class, kita akan membuat contoh class dimana akan ditambahkan beberapa data dan fungsifungsi lain.

Mendefinisikan Class

Sebelum menulis class, pertama pertimbangkan dimana Anda akan menggunakan class dan bagaimana class tersebut akan digunakan. Pertimbangkan pula nama yang tepat dan tuliskan seluruh informasi atau properti yang ingin Anda isi pada class. Jangan sampai terlupa untuk menuliskan secara urut method yang akan Anda gunakan dalam class. Dalam pendefinisian class, dituliskan :

<modifier> class <name> { <attributeDeclaration> <constructorDeclaration> <methodDeclaration> }


dimana :
<modifier> adalah sebuah access modifier, yang dapat dikombinasikan dengan tipe modifier

lain. Contoh : public class Mahasiswa { //area penulisan kode selanjutnya } Public - Class ini dapat diakses dari luar package Class - Keyword yang digunakan untuk pembuatan class dalam Java

Deklarasi Atribut

Dalam pendeklarasian atribut, kita tuliskan : <modifier> <type> <name> [= <default_value>]; Langkah selanjutnya adalah mengurutkan atribut yang akan diisikan pada class. Untuk setiap informasi, urutkan juga tipe data yang yang tepat untuk digunakan. Contohnya, Anda tidak mungkin menginginkan untuk menggunakan tipe data integer untuk nama mahasiswa, atau tipe data string pada umur mahasiswa. Berikut ini adalah contoh informasi yang akan diisikan pada classMahasiswa : Name address age - String - String - Int

Instance Variable

Jika kita telah menuliskan seluruh atribut yang akan diisikan pada class, selanjutnya kita akan menuliskannya pada kode. Jika kita menginginkan bahwa atribut atribut tersebut adalah unik untuk setiap object (dalam hal ini untuk setiap mahasiswa), maka kita harus mendeklarasikannya sebagai instance variable : Sebagai contoh : public class Mahasiswa { private String name; private String address; private int age; //area penulisan kode selanjutnya } private disini menjelaskan bahwa variabel tersebut hanya dapat diakses oleh class itu sendiri. Object lain tidak dapat menggunakan variabel tersebut secara langsung. Kita akan membahas tentang kemampuan akses pada pembahasan selanjutnya.

Deklarasi Methods

Sebelum kita membahas method apa yang akan dipakai pada class, mari kita perhatikan penulisan method secara umum. Dalam pendeklarasian method, kita tuliskan : <modifier> <returnType> <name>(<parameter>) { <statement> } <modifier> dapat menggunakan beberapa modifier yang berbeda <returnType> dapat berupa seluruh tipe data, termasuk void <name> identifier atas class <parameter> ::= <tipe_parameter> <nama_parameter>[,] Contoh : public class Mahasiswa { private String name;

public String getName(){ return name; } } public String getName - Menjelaskan bahwa method tersebut dapat diakses dari object luar class - Tipe data return value dari method tersebut bertipe String - Nama dari method

() Pernyataan, return name;

- Menjelaskan bahwa method tidak memiliki parameter apapun

dalam program kita menandakan akan ada pengembalian nilai dari nama instance variable ke pemanggilan method. Perhatikan bahwa return type dari method harus sama dengan tipe data seperti data pada pernyataan return.

5. Overloading Methods
Dalam class yang kita buat, kadangkala kita menginginkan untuk membuat method dengan nama yang sama namun mempunyai fungsi yang berbeda menurut parameter yang digunakan. Kemampuan ini dimungkinkan dalam pemrograman Java, dan dikenal sebagai overloading method. Overloading method mengijinkan sebuah method dengan nama yang sama namun memiliki parameter yang berbeda sehingga mempunyai implementasi dan return value yang berbeda pula. Parameter dalam suatu method dikatakan berbeda dari method lainnya apabila : Jumlahnya berbeda, meskipun tipe datanya sama Tipe datanya berbeda, meskipun jumlahnya sama Jumlah dan tipe datanya berbeda Contoh Overloading method : int bagi(int a, int b) { return a/b; } double bagi(double a, double b) { return a/b; } Berikut ini contoh program yang akan menunjukkan pendefinisian proses overload method di dalam sebuah kelas : public class Pembagian { // Mendefinisikan method dengan dua parameter bertipe int public int bagi(int a, int b) { return a/b; } // Mendefinisikan method dengan dua parameter // bertipe double public double bagi(double a, double b) { return a/b; } } class DemoOverload1 { public static void main(String[] args) { Pembagian b = new Pembagian(); int x = b.bagi(10, 4);

double y = b.bagi(10.0, 4.0); System.out.println("Hasil bagi tipe int = " + x); System.out.println("Hasil bagi tipe double = " + y); } } 1

Deklarasi Constructor

Constructor adalah method khusus yang didefinisikan di dalam kelas dan akan dipanggil secara otomatis setiap kali terjadi instansiasi obyek. Berikut ini adalah property dari Constructor : 1 Constructor memiliki nama yang sama dengan class 2 Sebuah Constructor mirip dengan method pada umumnya, namun hanya informasi informasi berikut yang dapat ditempatkan pada header sebuah constructor, scopeatau identifikasi pengaksesan (misal: public), nama dari konstuktor dan parameter. 3 Constructor tidak memiliki return value 4 Constructor tidak dapat dipanggil secara langsung, namun harus dipanggil dengan menggunakan operator new pada pembentukan sebuah class. Untuk mendeklarasikan constructor, kita tulis, <modifier> <className> (<parameter>*) { <statement> } 2

Default Constructor

Setiap class memiliki default constructor. Sebuah default constructor adalah constructor yang tidak memiliki parameter apapun. Jika sebuah class tidak memiliki constructor apapun, maka sebuah default constructor akan dibentuk secara implisit : Sebagai contoh, pada class Kotak, bentuk default constructor akan terlihat seperti dibawah ini : public Kotak() { //area penulisan kode } 3

Overloading Constructor

Seperti telah kita bahas sebelumnya, sebuah constructor juga dapat dibentuk menjadi overloaded. Perhatikan contoh berikut : public class Kotak { double panjang; double lebar; double tinggi;

// Mendefinisikan constructor tanpa parameter public Kotak() { panjang = 0; lebar = 0; tinggi = 0; } // Mendefinisikan constructor dengan satu parameter public Kotak(double sisi) { panjang = lebar = tinggi = sisi; } // Mendefinisikan constructor dengan tiga parameter public Kotak(double p, double l, double t) { panjang = p; lebar = l; tinggi = t; } double hitungVolume() { return (panjang * lebar * tinggi); } } class DemoOverloadConstructor { public static void main(String[] args) { Kotak k1, k2, k3; k1 = new Kotak(); k2 = new Kotak(10); k3 = new Kotak(4, 3, 2); //Menampilkan volume dari masing-masing objek Kotak System.out.println("Volume k1 = " + k1.hitungVolume()); System.out.println("Volume k2 = " + k2.hitungVolume()); System.out.println("Volume k3 = " + k3.hitungVolume()); } }

Anda mungkin juga menyukai