Anda di halaman 1dari 9

Class dan Object

1. Pengertian Class dan Object


Berikut ini diberikan beberapa definisi yang berhubungan dengan penggunaan bahasa Java sebagai bahasa berorientasi object : 1. Objects adalah entities yang memiliki structure dan state. Setiap objects mendefinisikan operations yang dapat dihubungi atau dimanipulasi untuk state dari object tersebut tersebut. 2. Sebuah object adalah atomic unit : Bagian-bagiannya tidak bisa dipecah-pecah oleh pengguna dari object tersebut (kecuali programmer). 3. Information hiding membuat detil sebuah class, termasuk komponen dari object, tidak bisa dihubungi oleh penggunanya atau disembunyikan. 4. Encapsulation adalah pengelompokan data dan operations yang relevan untuk sebuah objects, dan menyembunyikan rincian detil implementasi dari pengelompokan tersebut. 5. Class didalam bahasa Java terdiri dari fields yang berisi data, dan methods yang dapat digunakan untuk melakukan operasi dari object sebuah class.

2. Contoh class
Hal yang penting dalam merancang sebuah class adalah menyembunyikan detail internal dari class tersebut kepada usernya (sudah pasti object class yang lain).Caranya : 1. Didalam sebuah class didefinisikan fungsi-fungsi yang disebut methods. Beberapa methods akan menentukan bagaimana contoh kejadian dari sebuah class dibuat, bagaimana melakukan equality test, dan bagaimana operasi output dilakukan. Ada juga methods yang yang hanya bekerja untuk suatu class tertentu. Ide dasarnya adalah internal data fields yang menjelaskan object's state tidak dapat dimanipulasi secara langsung oleh oleh class user tetapi hanya dapat dimanipulasi dengan menggunakan methods. 2. Data fields yang harus disembunyikan dinyatakan sebagai private, yang hanya bisa dihubungi oleh methods dari class yang bersangkutan. Public members bisa dilihat oleh class lain, sedangkan private members tidak. Selanjutnya perhatikanlah contoh berikut ini, yang merupakan sebuah classSegiEmpat: /*

Pusat Pengembangan Bahan Ajar - UMB

Ir. Joko Adianto M.Inf.Sys. PEMROGRAMAN APLIKASI JARINGAN

*Tochangethistemplate,chooseTools|Templates *andopenthetemplateintheeditor. */ packagejavaapplicationluassegiempatclass; /** * *@authorjoko */ publicclassSegiEmpat{ privatedoublelebar; privatedoublepanjang; publicvoidisilebar(doublel){lebar=l;} publicvoidisipanjang(doublep){panjang=p;}; publicdoublenilailebar(){returnlebar;} publicdoublenilaipanjang(){returnpanjang;} publicdoublenilailuas(){returnlebar*panjang;} publicdoublenilaikeliling(){returnlebar+lebar+panjang+panjang;} } Selanjutnya class SegiEmpat tersebut digunakan didalam class lain : /* *Tochangethistemplate,chooseTools|Templates *andopenthetemplateintheeditor. */ packagejavaapplicationluassegiempatclass; /** * *@authorjoko

Pusat Pengembangan Bahan Ajar - UMB

Ir. Joko Adianto M.Inf.Sys. PEMROGRAMAN APLIKASI JARINGAN

*/ publicclassMain{ /** *@paramargsthecommandlinearguments */ publicstaticvoidmain(String[]args){ //TODOcodeapplicationlogichere System.out.print("Hello"); SegiEmpatsg=newSegiEmpat(); sg.isilebar(15); sg.isipanjang(20); System.out.println("Lebaradalah:"+sg.nilailebar()); System.out.println("Panjangadalah:"+sg.nilaipanjang()); System.out.println("Luasnyaadalah:"+sg.nilailuas()); System.out.println("Kelilingnyaadalah:"+sg.nilaikeliling()); } Perhatikanlah bahwa untuk membaca fields yang bersifat private digunakan access method, misalnya adalah nilailebar yang digunakan untuk menampilkan private variable lebar. Selanjutnya perhatikanlah : 1. Anggota public bisa dihubungi/digunakan oleh class lain. 2. Anggota private tidak bisa dihubungi/digunakan oleh class lain 3. Fields adalah variable yang berisi nilai data. 4. Methods adalah anggota class yang melakukan action.

3. javadoc
Spesifikasi class merupakan representasi rancangan class dan memberitahu kepada pengguna apa yang bisa dilakukan dengan class tersebut. Implementasi memberitahukan bagaimana secara algoritma operasi yang dilakukan oleh sebuah class dilakukan. Yang jelas spesifikasi tersebut harus dapat dibaca dan dipahami oleh pengguna lain. Kalau didalam C++ spesifikasi dapat dilihat pada header file *.h, sedangkan source code dilihat pada *.cpp. Sedangkan bahasa java menggunakan pendekatan yang berbeda. Didalam bahasa java dokumentasi dapat dilaukan secara otomatis dengan menggunakan javadoc. javadoc secara otomatis akan menerbitkan dokumantasi untuk class dalam bentuk sehimpunan pernyataan HTML yang dapat dilihat atau dicetak oleh browser.

Pusat Pengembangan Bahan Ajar - UMB

Ir. Joko Adianto M.Inf.Sys. PEMROGRAMAN APLIKASI JARINGAN

Source code dapat berisi dokumentasi javadoc. Dokumentasinya dimulai dengan /**. Disamping itu ada penanda khusus yang digunakan didalam javadoc : 1. @author 2. @param 3. @return 4. @throws

4. methods dasar
Ada beberapa methods dasar yang tidak boleh tidak diketahui oleh programmer bahasa java yaitu : 1. Mutators & accessors 2. Constructor 3. toString 4. equals 5. main

4.1. Constructor
Didalam bahasa java method yang mengendalikan bagaimana sebuah object di inisiasi disebut constructor. Karena adanya overloading maka sebuah class memiliki beberapa constructor. Jika tidak ada construktor yang secara eksplisit dibuat maka default contructor akan dibuat. default constructor tersebut akan menginisiasi data member menjadi 0 dan reference bernilai null. Untuk menuliskan constructor, akan ada method yang namanya persis sama dengan nama class dan return typenya tidak ada. Yang harus diperhatikan adalah jika sebuah constructor sudah dituliskan secara eksplisit maka constructor untuk melakukan inisiasi data member menjadi 0 dan reference bernilai null harus ditulis ulang.

4.2. Mutators & accessors


Fields biasanya dideklarasikan sebagai private. Tidak bisa diakses langsung oleh nonclass routines. : 1. Untuk dapat membacanya digunakan methods yang disebut accessor (methods yang hanya membaca tidak merubah state dari object). 2. Untuk dapat merubah nilai atau merubah state dari object digunakan methods yang disebut

Pusat Pengembangan Bahan Ajar - UMB

Ir. Joko Adianto M.Inf.Sys. PEMROGRAMAN APLIKASI JARINGAN

mutator(methods yang merubah nilai variable/fields). Keuntungan penggunaan mutator adalah memastikan bahwa perubahan dari state didalam objects bersifat consistent.

4.3. output dengan toString


Sebelum melakukan output dengan print maka digunakan toString untuk merubah nilai variable menjadi string.

4.4. equals
equals digunakan untuk menguji apakah dua buah object merepresentasikan nilai yang sama. Deklarasinya adalah : public boolean equals(Object rhs)

4.5. main
Interpreter java selalu mencari main. main adalah titik awal dari terseksekunyinya program. static method adalah object yang tidak memerlukan controlling object artinya memanggil methods dengan menuliskan nama class bukan object dari class.

4.6. static methods


static method adalah method yang tidak memerlukan controlling object, oleh karena itu dipanggil dengan menggunakan nama class bukan objectnya contohnya adalah Integer.parseInt. Method ini menyerupai fungsi global yang ada pada pemrograman bukan OO. static final ditambah dengan nama fields akan membentuk sebuah fields yang menjadi constant.

5. Lainnya 5.1. this


Penggunaan this yang pertama adalah referensi terhadap sebuah object yang sedang aktif yaitu referensi terhadap dirinya sendiri. Salah satu kegunaannya adalah self-assignment Contohnya adalah program yang membuat copy satu file ke lainnya. this reference digunakan untuk aliasing, yaitu sebuah object muncul lebih dari sekali dalam pranan yang berbeda.

5.2. this yang digunakan didalam constructor


this dapat digunakan untuk memanggil constructor yang lain yang ada didalam class yang sama

Pusat Pengembangan Bahan Ajar - UMB

Ir. Joko Adianto M.Inf.Sys. PEMROGRAMAN APLIKASI JARINGAN

sebagai contoh adalah class tanggal. public Tanggal() { this(1,1,2002); } Penggunaan yang lebih komples bisa saja dilakukan, tetapi yang harus diperhatikan adalah this harus diletakkan pada pernyataan program pertama dari constructor.

5.3 instanceof
instanceof digunakan untuk menguji apakah sebuah object merupakan instance dari(contoh kejadian) sebuah class

5.4 instance members vs static members


Fields dan methods yang dideklarasikan dengan static adalah static member. Jika dideklarasikan tanpa static merupakan instance member.

5.5 static fields dan methods


Static fields digunakan jika kita memiliki sebuah variable yag akan digunakan bersama-sama oleh anggota beberapa class. Ketika sebuah class variable dideklarasikan sebagai static maka hanya sebuah instance dari variable yang akan dibuat. Variable tersebut bukanlah bagian dari instance class tersebut. Sebagai contoh :

public class Contoh { private double varContoh1 private static double varContoh2; } varContoh2 merupakan sebuah variable yang digunakan bersama sama oleh beberapa instance dari class Contoh, sedangkan pada varContoh 1 setiap instance dari class Contoh akan memiliki sebuah variable tersebut. static field jiga digunakan untuk menyatakan sebuah constant :

Pusat Pengembangan Bahan Ajar - UMB

Ir. Joko Adianto M.Inf.Sys. PEMROGRAMAN APLIKASI JARINGAN

public static final doube PI = 3.3.142857143; Static field dapat digunakan tanpa final sehingga merupakan variable global relative terhadap instance(s) dari class yang mendeklarasikan variable tersebut. Sebuah static field digunakan bersama sama oleh seluruh instance (bisa jadi nol) dari sebuah class. Sedangkan static method adalah method yang tidak memiliki this secara implicit : 1. Tidak bisa memanggil instance data tanpa object reference. 2. Tidak bisa memanggil instance methods tanpa object reference. Sehingga non static fields yang merupakan bagian instance dari class dapat diakses oleh static class method hanya jika controlling object diberikan.

5.6. static initializers


Static fields diinisialisasi ketika sebuah class dijalankan. Jika terdapat sebuah array yang harus diinisiasi maka dapat digunakan : 1. Static method yang dipanggil sebelum penggunaan array. 2. Membuat static initializer yang secara otomatis akan dieksekusi sebelum array digunakan contoh : static {for int i = 0; i<sebuaharray.length; i++) {sebuaharray[i] = i+1;}

6. package
package digunakan untuk mengelompokan class-class yang saling berhubungan atau yang serupa. Setiap package terdiri dari beberapa class. class-class yang terdapat didalam sebuah package memiliki visibility yang lebih dibandingkan dengan class-class yang diletakkan pada package yang berbeda. Java memiliki package-package yang dudah didefinisikan terlebih dahulu : 1. java.io 2. java.lang 3. java.util java.lang berisi package yang meliputi Integer, Math, String, System, dsb. java.util meliputi Data, Random, dan StringTokenizer. java.io digunakan untuk I/O dan meliputi bermacam-macam stream classes. Perhatikanlah bahawa didalam package yang disediakan oleh bahasa java, nama package adalah huruf kecil sedangkan nama class adalah huruf besar. Perhatikanlah contoh

Pusat Pengembangan Bahan Ajar - UMB

Ir. Joko Adianto M.Inf.Sys. PEMROGRAMAN APLIKASI JARINGAN

dibawah ini : java.util.Date Tanggal = new java.util.Date( ); 1. java.util merupakan nama package 2. Date merupakan nama class 3. Tanggal merupakan Object yang berjenis Date 4. Date( ) merupakan sebuah constructor.

6.2 import directive


Agar tidak perlu menuliskan seluruh nama package maka digunakan perintah import. Sebagai contoh jika kita menggunakan import directives : import java.util.Date; import java.io.*; maka kita akan dapat mengunakan perintah sbb : Date Tanggal = new Date( ); Tetapi yang harus diperhatikan adalah : 1. Jika menggunakan import directive agak sulit untuk menentukan sebuah class berasal dari package yang mana. 2. Kemungkinan akan ada dua class yang bernama sama tetapi dari package yang berbeda hal ini akan menyebabkan konflik nama yang mengharuskan juga penulisan nama package secara lengkap. Import directive harus diletakkan sebelum deklarasi sebuah class. Sedangkan keseluruhan class dari package java.lang secara automatis diimport didalam setiap program bahasa java. Import directive juga mengenal static. Jika static digunakan, maka static method dan static field dapat digunakan secata langsung tanpa menyebut nama class secara eksplisit. Contoh : import static java.lang.Math.*; import static java.lang.Integer.MAX_VALUE; Memungkinkan programmer menulis max bukan Math.max, PI bukan Math.PI, dan menuliskan MAX_VALUE bukan Integer.MAX_VALUE;

Pusat Pengembangan Bahan Ajar - UMB

Ir. Joko Adianto M.Inf.Sys. PEMROGRAMAN APLIKASI JARINGAN

6.2 package
Untuk menyatakan bahwa sebuah class merupakan bagian dari sebuah package harus dinyatakan secara eksplisit : 1. Pernyataan package harus dinyatakan pada baris pertama 2. Kode program dari class harus diletakkan pada directory yang benar.

6.3 CLASSPATH
package akan dicari didalam directory yang disertakan didalam variable CLASSPATH. Aturan yang harus diikuti adalah : Sebuah class dialam sebuah package harus terletak didalam directory package yang dicari melalui CLASSPATH. &&&&&&

Pusat Pengembangan Bahan Ajar - UMB

Ir. Joko Adianto M.Inf.Sys. PEMROGRAMAN APLIKASI JARINGAN

Anda mungkin juga menyukai