}
String getNIM()
{ //statements
return(..);
}
String getNAMA()
{ //statements
return(..);
}
String getALAMAT()
{ //statements
return(..);
}
int NILAI()
{ //statements
return(..);
}
}
Catatan :
Bentuk class diatas baru menggambarkan jika sebuah class diagram yang
diimplementasikan menjadi class pada java, tetapi bentuk class ini belum
dapat di compile dan di eksekusi. Class ini merupakan implementasi dari
class diagram.
Okkita Rizan - 50 - Genap -
IMPLEMENTASI OBJEK,
ATRIBUT DAN METHOD PADA JAVA
TUJUAN :
Dapat memahami pemakaian object pada java
Dapat memahami pemakaian atribut pada java
Dapat memahami pemakaian method pada java
1. INSTANSIASI OBJEK
Instansiasi objek yaitu proses membuat/menciptakan sebuah objek dari sebuah
class. Pembuatan objek yaitu dengan cara membuat sebuah variabel yang akan
menunjuk ke objek ini . Variabel seperti ini disebut dengan variabel objek.
Bentuk umum dari instansiasi object pada java yaitu sebagai berikut :
namaclass namavariabel = new namaclass();
Sebuah objek diciptakan di luar class objek itu sendiri. Pada java, biasanya objek dari
sebuah class diciptakan pada class yang mempunyai main() method (disebut saja
sebagai class main() ). Melalui class main() ini objek akan memakai seluruh
atribut dan method dari classnya.
Contoh : berikut yaitu contoh pembuatan sebuah objek pada class main() .
class testMahasiswa
{
public static void main (String args[])
{
mahasiswa mhs1 = new mahasiswa();
}
}
Proses instansiasi ini dapat diartikan membuat sebuah objek bernama mhs1
dari class mahasiswa, objek dibuat dari class main() bernama testMahasiswa.
MODUL
5
Okkita Rizan - 51 - Genap -
2. pemakaian METHOD MELALUI SEBUAH OBJEK
Method yang digunakan sebuah objek dipanggil dengan cara menyebutkan objeknya
diikuti dengan method yang akan digunakan.
Pada contoh berikut akan diperkenalkan method tanpa parameter dan method
dengan parameter. Pada contoh berikut, satu file java ada 2 buah class, yaitu
class yang akan dibuatkan objeknya dan class main(). jika ada kondisi seperti
ini, nama file java dinamai sama dengan nama class main()nya.
a. Method tanpa parameter
Pada contoh berikut, pada class mahasiswa akan dibuat sebuah method bernama
hello(). Method ini tidak mempunya return value, sehingga awalannya
memakai void. Method ini akan dipanggil oleh sebuah objek dari class
main(). Objek yang dibuat bernama mhs1.
Nama file : testMethodNon.Java
Sintaks program :
Output program :
Penjelasan :
mahasiswa mhs1 = new mahasiswa(), yaitu proses instansiasi objek dengan
nama mhs1.
mhs1.hello(), yaitu perintah yang menunjukkan objek mhs1 memanggil/
memakai method hello().
Okkita Rizan - 52 - Genap -
b. Method memakai parameter
Parameter pada method berfungsi untuk menampung data yang akan dikirimkan
ke dalam method ataupun mengirimkan data dari method ke bagian
pemanggilnya. Parameter sebenarnya yaitu variabel, sehingga perlu didefinisikan
juga tipe datanya. Tidak ada batasan sebuah method dapat memiliki beberapa
parameter. Berikut yaitu contoh sebuah class dengan method yang
memakai satu buah parameter.
Nama file : testMethodParameter.java
Sintaks program :
Output program :
Penjelasan :
void hello(String Nm), yaitu sebuah method yang memiliki sebuah parameter
bernama Nm dengan tipe data String.
mhs1.hello(“Okki”) yaitu objek mhs1 memakai method hello dengan
mengirimkan kata “Okki” ke parameter Nm.
Okkita Rizan - 53 - Genap -
3. STATIC METHOD
STATIC METHOD yaitu method yang dimiliki oleh class, bukan milik objeknya.
Berbeda dengan contoh pemakaian method diatas, pemakaian static method
dalam pemrograman, dapat dipanggil langsung tanpa memakai objek. Tanpa
harus membuat objek untuk memanggil method ini . Selain method, atribut juga
dapat diberlakukan menjadi miliki class, menjadi static variabel. Berikut yaitu
contoh penerapan static method dalam pemrograman.
Nama file : testStaticMethod.Java
Sintaks program :
Output Program ;
Penjelasan Program :
Pada class mahasiswa ada sebuah method berjenis static dengan nama
tampil(). Ciri method ini bertipe static yaitu ada keyword static pada
saat pendeklarasian methodnya.
Pada class testStaticMethod, tidak dibuat sebuah objek dari class mahasiswa.
method tampil() langsung dipanggil dengan menyebutkan nama classnya.
Okkita Rizan - 54 - Genap -
4. pemakaian ATRIBUT MELALUI SEBUAH OBJEK
Atribut yaitu ciri sebuah objek. Pada pemrograman atribut berfungsi untuk
menampung data dari objek. Pada pemrograman, atribut yaitu INSTANCE
VARIABLE (silahkan baca modul sebelumnya)
Sebuah atribut dapat digunakan sebuah objek dengan cara diakses melalui method.
Ada beberapa method yang berfungsi untuk memanipulasi data dari atributnya. Ciri
method ini biasanya diawali dengan set atau get kemudian diikuti dengan
nama atributnya. Method set dan get biasanya berpasangan untuk memanipulasi
sebuah atribut. Perbedaan Method set dan get yaitu :
Method yang memakai set digunakan untuk menerima data yang dikirimkan
oleh objek ke atribut.
Method yang memakai get digunakan untuk mengirimkan data dari atribut
ke objek.
Method set memakai parameter dan tidak mempunyai return value,
sehingga awalan method memakai void.
Method get tidak memakai parameter dan mempunyai return value,
sehingga awalan method memakai tipe data methodnya.
Berikut contoh program dengan sebuah class yang mempunyai sebuah atribut dan
method untuk digunakan objeknya.
a. Atribut dengan method set
Nama file : testMethodSet.Java
Sintak program :
Okkita Rizan - 55 - Genap -
Penjelasan program :
Parameter yang dikirim oleh objek mhs1 berupa kata “Okki”. Kata ini
ditampung ke parameter Nm pada methot setNama, dari parameter Nm kata
ini dimasukkan ke atribut Nama. Melalui atribut Nama kata yang telah
dikirim akan ditampilkan.
Method setNama memakai awalan void, seluruh statements langsung
dikerjakan pada method ini tanpa dikembalikan ke class main().
b. Mengenal keyword this
Salah satu kelebihan dari java yaitu dapat membuat variabel parameter sebuah
method dengan nama yang sama dengan atributnya (instance variable). Cara ini
bisa dilakukan dikarenakan java menyediakan sebuah keyword yang dapat
membedakan antara variabel parameter dengan atribut. Keyword ini
dinamai dengan “this”. Variabel yang memakai keyword this, menunjukkan
bahwa variabel ini yaitu atribut/instance variabel dari class nya.
Berikut contoh program memakai keyword this.
Nama file : testMethodThis.java
Sintak Program :
Penjelasan program :
Nama variabel parameter dibuat sama dengan nama atribut classnya yaitu
Nama. Keyword this menunjukkan perbedaan keduanya.
this.nama menunjukkan variabel ini yaitu atribut / instance variabel
dari class mahasiswa.
Okkita Rizan - 56 - Genap -
c. Atribut dengan Method get
Berikut yaitu contoh method get yang akan mengembalikan nilai (return value)
pada objek.
Nama File : testMethodGet.java
Sintaks program :
Penjelasan program :
Pada contoh program ini, kata “Okki” tidak dikirim melalui parameter, tetapi
langsung didefinisikan pada atributnya.
Tipe data yang digunakan pada method getHello yaitu String, dikarenakan
nilai/data yang dikembalikan (return) bertipe karakter, mengikuti tipe data dari
atributnya.
Return menunjukkan data yang dikembalikan pada objek yang meminta, pada
contoh ini, data diambil melalui method getHello().
Okkita Rizan - 57 - Genap -
d. Atribut dengan method set dan get.
Berikut yaitu contoh program dengan class yang mempunyai dua buah method
yaitu method set dan method get. Program pada umumnya memakai
method set dan get secara berpasangan jika class ini membutuhkan
method untuk memanipulasi atribut.
Nama File : testMethodSetGet.Java
Sintaks Program :
Penjelasan Program :
Kata “Okki” dimasukkan ke atribut Nama pada class mahasiswa melalui
method setNama().
sesudah dimasukkan ke atribut Nama, kata “Okki” dikirimkan kembali ke objek
memakai method getNama().
Okkita Rizan - 58 - Genap -
ASOSIASI PADA OOP
TUJUAN :
Dapat memahami bentuk asosiasi pada object oriented programming
Dapat memahami bentuk asosiasi pada java
Dapat memahami bentuk agregasi pada java
1. MEMAHAMI ASOSIASI
Membuat program memakai teknik object oriented pada intinya yaitu membuat
class yang akan digunakan oleh objek. Adakalanya pada saat membuat program tidak
cukup memakai satu class saja atau dengan maksud lain yaitu memisahkan
satu class menjadi beberapa class yang lain. Pemisahan class diperlukan karena antar
objek dari sebuah class tidaklah sama, baik dari segi atribut ataupun dari
methodenya.
Beberapa class pada satu program tidak berdiri sendiri. Melainkan saling berhubungan
antara satu class dengan class yang lain. Tentunya, penghubung antar class yaitu
memakai objek dari masing-masing class. Hubungan antar class ini lah yang
disebut dengan relasi/relationship. Relasi ini akan menunjukkan tingkatan relasi
antara satu class dengan class yang lain. Relasi pada pemrograman berorientasi objek
relasi antar class di sebut dengan ASOSIASI.
Antara pemrograman terstruktur dan pemrograman berorientasi objek mempunyai
istilah yang berbeda untuk menyatakan tingkatan relasi antar class/entitas .
Jika pada pemrograman terstruktur tingkatan relasi disebut dengan CARDINALITY.
Pada pemrograman berorientasi objek tingkatan relasi disebut dengan
MULTIPLICITY.
CARDINALITY pada pemrograman terstruktur digunakan untuk menyatakan
tingkatan relasi antar entitas pada ENTITY RELATIONSHIP DIAGRAM (ERD) /
DIAGRAM ER. Umumnya ERD mempunyai tiga tingkatan relasi yaitu :
a. 1 .. 1, Satu Entitas hanya memiliki satu relasi pada entitas lain.
b. 1 .. M, Satu Entitas memiliki satu atau banyak relasi pada entitas yang lain
dengan entitas yang sama.
c. M .. N, Satu Entitas memiliki satu atau banyak relasi pada entitas yang lain
dengan entitas yang sama dan begitu juga sebaliknya.
Gambaran Cardinality pada Entity Relationship Diagram diperlihatkan pada contoh
sebgai berikut :
MODUL
6
Okkita Rizan - 59 - Genap -
MULTIPLICITY pada pemrograman berorientasi objek digunakan untuk menyatakan
tingkatan asosiasi antar class. Biasanya tingkatan asosiasi ditunjukkan pada CLASS
DIAGRAM. Tingkatan asosiasi mempunyai beberapa macam dan ditunjukkan pada
tabel berikut :
Indicator Meaning Example
0..1 Zero or one
0..* Zero or more
0..n Zero to n (where n>1) 0..3
1 One only
1..* One or more
1..n One to n (where n>1) 1..5
* Many
n Only n (where n>1) 9
n..* n or more, where n >1 7..*
n..m Where n& m both >1 3..10
Adapun contoh MULTIPLICITY pada Class Diagram ditunjukkan sebagai berikut :
Okkita Rizan - 60 - Genap -
2. PENERAPAN ASOSIASI PADA JAVA
Berikut yaitu contoh penerapan asosiasi pada java dengan tingkatan MULTIPLICITY
yaitu 1 .. 1 berikut dengan contoh class diagramnya.
Nama File : TransportCompany.java
Sintaks program :
Penjelasan Program :
Pada class utama ada dua buah objek, masing-masing untuk class CarClass
dan Driver. Statement menyatakan bahwa seorang driver/sopir mempunyai satu
buah mobil berdasarkan car ID nya. Statement ini yang menyatakan asosiasi antar
class yaitu 1 .. 1 .
Okkita Rizan - 61 - Genap -
Berikut yaitu contoh penerapan asosiasi pada java dengan tingkatan
MULTIPLICITY yaitu 1 .. * berikut dengan contoh class diagramnya.
Nama File : JadwalSupir.java
Sintaks program :
Okkita Rizan - 62 - Genap -
Penjelasan Program :
Pada class utama ada tiga buah objek, masing-masing satu objek untuk class
Sopir dan dua objek untuk class Mobil. Statement menyatakan bahwa seorang
driver/sopir bertanggung jawab untuk dua buah kendaraan. Statement ini yang
menyatakan asosiasi antar class yaitu 1 .. * .
3. PENGENALAN AGREGASI
Agregasi yaitu salah satu bentuk asosiasi yang lain pada pemrograman berorientasi
objek. Agregasi menyatakan bahwa salah satu class merupakan bagian dari class
yang lain, tetapi walaupun class ini merupakan bagian dari class yang lain tetapi
class ini dapat berdiri sendiri.
Agregasi sering disebut juga dengan relasi “part of” atau relasi “whole-part”.
Pada class diagram, bentuk agregasi digambarkan sebagai berikut :
4. PENERAPAN AGREGASI PADA JAVA
Berikut contoh pemakaian agregasi pada java. Contoh menampilkan class Alamat
dan class Penduduk. Agregasi yang dimaksudkan pada contoh berikut yaitu
Seorang penduduk pasti memiliki alamat, sehingga penduduk merupakan bagian (part
of) alamat. Walaupun penduduk bagian dari alamat, tetapi data penduduk dapat
dipergunakan tanpa melibatkan data alamat. Contoh proses ini yang dimaksud
dengan sebuah class merupakan bagian dari class lain tetapi dapat berdiri sendiri.
Okkita Rizan - 63 - Genap -
Nama File : Agregasi.java
Sintaks program :
Okkita Rizan - 64 - Genap -
ENKAPSULASI
TUJUAN :
Dapat memahami mengenai konsep enkapsulasi
Dapat memahami pemakaian enkapsulasi pada java
1. MEMAHAMI ENKAPSULASI
Enkapsulasi mempunyai beberapa nama. Ada yang menyebutnya pembungkusan, ada
yang menyebutnya pengkapsulan dan ada pula yang menyebutnya access modifier.
Mempunyai berbagai nama tetapi fungsinya yaitu sama. Enkapsulasi yaitu cara
menyembunyikan implementasi detil sebuah class sehingga tidak bisa diakses
sembarangan oleh class lainnya. Ada dua hal yang mendasar dari enkapsulasi ini
yaitu INFORMATION HIDING dan INTERFACE TO ACCESS.
Information Hiding yaitu proses menyembunyikan data sebuah class sehingga
tidak bisa diakses oleh class lain. Biasanya, data yang disembunyikan yaitu atribut
dari class, sehingga class yang lain tidak dapat mengetahui atribut apa saja yang
dimiliki oleh sebuah class.
Interface to access yaitu cara yang dilakukan sehingga dapat mengakses data
yang telah disembunyikan. Maksudnya, yang dapat diakses yaitu isi atributnya tanpa
mengetahui apa saja atributnya, termasuk nama atributnya. Media yang digunakan
pada cara ini biasanya yaitu melalui sebuah method.
Ada 4 akses (modifier) yang tersedia untuk mengatur hak akses sebuah class. 4 akses
ini dapat dilihat pada tabel berikut :
NO MODIFIER
PADA CLASS DAN
INTERFACE
PADA METHOD & ATRIBUT
1 Default (tak
ada modifier)
Dapat diakses oleh yang
sepaket.
Diwarisi oleh sub class di paket
yang sama, dapat diakses oleh
method-method yang sepaket
2 Public Dapat diakses dimanapun Diwarisi oleh sub classnya,
dapat diakses dimanapun
3 Protected Tidak bisa diterapkan Diwarisi oleh sub classnya,
dapat diakses oleh method-
method yang sepaket.
4 Private Tidak bisa diterapkan Tidak dapat diakses dimanapun
kecuali oleh method-method
yang ada dalam kelas itu
sendiri.
MODUL
7
Okkita Rizan - 65 - Genap -
jika ditelusur dari kemampuan aksesnya, perbedaan 4 akses (modifier) ini
dapat dilihat pada tabel berikut :
AKSESABILITAS PUBLIC PRIVATE PROTECTED DEFAULT
Dari kelas yang sama Ya Ya Ya Ya
Dari sembarang kelas dalam paket
yang sama
Ya Tidak Ya Ya
Dari sembarang kelas di luar paket Ya Tidak Tidak Tidak
Dari sub kelas dalam paket yang
sama
Ya Tidak Ya Ya
Dari sub kelas di luar paket Ya Tidak Ya Tidak
Khusus untuk 3 akses yaitu public, private dan protected sifatnya dapat diuraikan
sebagai berikut :
Private berkarakteristik agar variabel atau method pada sebuah object/class tidak
dapat diakses oleh object/class yang lain.
Protected berkarakteristik agar variabel atau method pada sebuah object/class
dapat diakses oleh object/class turunannya, tetapi tidak dapat diakses oleh
object/class yang lain.
Public berkarakteristik agar variabel atau method pada sebuah object/class dapat
diakses oleh object/class yang lain
Untuk akses (modifier) Public biasanya digunakan pada method, karena method
berperan sebagai Interface to Access. Method sebagai jembatan untuk mengambil
data / isi data dari sebuah atribut.
Untuk akses (modifier) Private biasanya digunakan pada atribut, karena berfungsi
untuk menyembunyikan data atau Information Hiding.
Untuk akses (modifier) Protected biasanya digunakan pada atribut, sehingga atribut
sebuah class dapat diakses oleh beberapa class lain. Class lain yang dapat mengakses
atribut yaitu class yang menjadi turunan dari class ini .
Okkita Rizan - 66 - Genap -
2. PENERAPAN ENKAPSULASI PADA JAVA
Berikut contoh pemakaian enkapsulasi pada program. Pada contoh berikut akses
yang digunakan yaitu Public dan Private. Untuk akses protected akan dibahas
pada modul berikutnya, karena berkenaan dengan konsep turunan (inheritance).
Nama File : testEnkapsulasi.java
Sintaks program :
Penjelasan Program :
Perhatikan class mahasiswa. Pendeklarasian atribut Nama sudah ditambahkan
akses private. Method setNama() dan getNAMA() sudah ditambahkan akses
public. Artinya class mahasiswa ini sudah mengatur hak akses untuk atribut dan
methodnya.
Pada class testEnkapsulasi, object mhs1 hanya dapat mengakses method saja dan
tidak dapat mengakses atribut dari class mahasiswa. Method dapat diakses karena
diberi akses public dan atribut tidak dapat diakses karena diberi akses private.
Okkita Rizan - 67 - Genap -
KONSTRUKTOR & DESTRUKTOR
TUJUAN :
Dapat memahami mengenai konsep konstruktor dan destruktor
Dapat memahami beberapa bentuk konstruktor
Dapat memahami pemakaian konstruktor pada java
1. MEMAHAMI KONSTRUKTOR
Perhatikan contoh perintah instansiasi objek sebagai berikut :
mahasiswa mhs1 = new mahasiswa();
maksud perintah ini yaitu :
mahasiswa yaitu nama sebuah class.
mhs1 yaitu objek baru yang diciptakan untuk class mahasiswa.
new yaitu operator/keyword yang digunakan untuk membuat sebuah objek
baru.
mahasiswa() yaitu sebuah KONSTRUKTOR. Dalam contoh ini yaitu
KONSTRUKTOR dari class mahasiswa.
Konstruktor merupakan sebuah method khusus yang secara otomatis
dipanggil/dijalankan pada saat saat sebuah class diinstansi. Konstruktor dapat juga
diartikan sebagai method khusus yang berfungsi untuk menciptakan objek dari
sebuah class. Method konstruktor ini akan dipanggil secara otomatis oleh java ketika
new digunakan untuk membuat sebuah objek.
Konstruktor dapat dibuat sendiri, tetapi jika konstruktor tidak dibuat, maka
compiler java akan secara otomatis membuat konstruktor default pada saat dilakukan
kompilasi. Perlu untuk diketahui, bahwa konstruktor bukanlah anggota dari sebuah
class, seperti atribut dan method.
Beberapa fungsi konstruktor diantaranya :
Membuat sebuah objek pada saat program dieksekusi.
Memberikan nilai awal sebagai dari atribut yang perlu diinisialisasi.
Mengerjakan proses-proses yang diperlukan pada saat sebuah objek dibuat.
Beberapa hal yang diperlukan jika ingin membuat konstruktor sendiri yaitu :
nama konstruktor harus sama dengan nama classnya
konstruktor tidak memiliki nilai kembalian/return value
konstruktor tidak mempunyai / memakai void ataupun tipe data.
konstruktor dapat memiliki satu atau banyak parameter, bahkan tanpa parameter
sekalipun
java tidak membatasi jumlah konstruktor pada satu class. Artinya sebuah class
dapat memiliki lebih dari satu konstruktor.
MODUL
8
Okkita Rizan - 68 - Genap -
Berdasarkan beberapa literatur, konstruktor pada java ada beberapa tipe/bentuk.
Adapun bentuk/tipe dari konstruktor pada java yaitu :
a. Default Constructor / Konstruktor Tunggal
b. Parameterized Constructor / Konstruktor dengan parameter
c. Overloading Constructor / Multiple Constructor
d. Private Constructor
e. Constructor Chaining / Rangkaian Konstruktor
2. PENERAPAN KONSTRUKTOR PADA JAVA
Berikut akan ditunjukkan contoh pemakaian dan pembuatan konstruktor pada java.
Contoh program yang ditunjukkan mengikuti bentuk dari beberapa konstruktor.
a. Default Constructor / Konstruktor Tunggal
Default Constructor yaitu sebuah konstruktor yang tidak memiliki parameter dan
hanya ada sebuah konstruktor pada sebuah class. Berikut contoh penerapan
konstruktor tunggal pada pemrograman java.
Nama file : testKonsTunggal.java
Sintaks program :
Okkita Rizan - 69 - Genap -
Penjelasan program :
Konstruktor mahasiswa() tidak memakai awalan void ataupun tipe
data.
Pada konstruktor mahasiswa(), saat pembuatan objek dan dijalankan,
konstruktor ini mengerjakan method setNama(). Sehingga objek pada
class main() tidak perlu mengirimkan data ke class mahasiswa. Objek cukup
memanggil method getNama() untuk menampilkan isi atribut.
Pada contoh ini , konstruktor mahasiswa() berfungsi mendefinisikan data
awal untuk atribut Nama memakai method setNama().
b. Parameterized Constructor / Konstruktor dengan parameter
Parameterized Constructor yaitu sebuah konstruktor yang memiliki paramater.
Parameter yaitu sebuah variabel yang berfungsi untuk menampung data yang
dikirimkan melalui sebuah object. Berikut yaitu contoh konstruktor yang
memakai parameter pada pemrograman java.
Nama file : testKonsParameter.java
Sintaks program :
Okkita Rizan - 70 - Genap -
Penjelasan Program :
Konstruktor mahasiswa(), memakai sebuah parameter bernama Nm.
Pada konstruktor mahasiswa(), saat pembuatan objek dan dijalankan,
konstruktor ini mengirimkan data “Okki” ke parameter Nm. Lewat
parameter Nm, konstruktor mengerjakan method setNama(). Objek pada class
main() tidak perlu mengirimkan data ke class mahasiswa. Objek cukup
memanggil method getNama() untuk menampilkan isi atribut.
Pada contoh ini , konstruktor mahasiswa() berfungsi mendefinisikan data
awal untuk atribut Nama memakai method setNama() dengan
memakai parameter.
c. Overloading Constructor / Multiple Constructor
Overloading Constructor yaitu sebuah class yang memiliki lebih dari satu
konstruktor yang mempunyai tugas yang berbeda. Overloading constructor dapat
dipandang sebagai gabungan dari konstruktor tunggal (default constructor) dan
konstruktor dengan parameter (parameterized constructor).
Berikut yaitu contoh penerapan overloading constructor pada pemrograman
java.
Nama file : testKonsMultiple.java
Sintaks program :
Okkita Rizan - 71 - Genap -
Output program :
Penjelasan program :
Pada class main(), dibuat dua buah objek untuk class mahasiswa yaitu objek
mhs1 dan mhs2.
Pada saat instansiasi objek mhs1, memakai konstruktor tunggal.
Sedangkan saat instansiasi objek mhs2, memakai konstruktor parameter.
d. Private Constructor
e. Constructor Chaining / Rangkaian Konstruktor
Constructor Chaining yaitu proses memanggil sebuah konstruktor dari
konstruktor yang lain dalam satu buah class. Untuk memahami proses ini
berikut yaitu contoh pemakaian constructor chaining pada pemrograman java.
Nama file : chainingConstructor.java
Sintaks program :
Okkita Rizan - 72 - Genap -
3. MEMAHAMI DESTRUKTOR
Destruktor merupakan kebalikan dari konstruktor. Konstruktor merupakan method
khusus yang dijalankan secara otomatis pada saat objek diciptakan pada memory.
Berbeda dengan destruktor, method ini akan dijalankan pada saat objek akan dihapus
dari memory. Tujuannya yaitu untuk membebaskan memory dari objek-objek yang
tidak digunakan lagi.
Istilah destruktor sebenarnya dikenal dalam bahasa pemrograman C++. Pada bahasa
Java tidak mengenal istilah destruktor. Hal ini dikarenakan objek dibuat secara
dinamis pada saat run-time dan tidak secara eksplisit menulis perintah untuk
menghapus suatu objek dari memory. Ketentuan apakah suatu objek akan dihapus
dari memory atau tidak, ditentukan oleh Java sendiri. Proses ini dikenal dengan istilah
GARBAGE COLLECTION.
Secara sederhana untuk menentukan apakah suatu objek akan dihapus dari memory,
Java akan mengecek apakah masih ada yang memegang/memakai referensi ke
objek ini . Jika tidak, berarti objek ini dapat dihapus dari memory sehingga
memory yang terpakai dapat dipakai kembali untuk keperluan lainnya. Masalahnya
Okkita Rizan - 73 - Genap -
yaitu proses garbage collection terjadi secara sporadis sehingga sulit untuk
menentukan kapan proses ini akan berjalan. Akan tetapi, Java masih menyediakan
perintah yang dapat digunakan untuk memaksa Java melakukan proses garbage
collection ini, yaitu :
System.gc();
Kembali ke persoalan awal, Java tidak mengenal istilah destruktor, padahal ada
kemungkinan pada saat membuat program perlu agar suatu code dieksekusi sebelum
objek ini dihapus dari memory. Untuk mengatasi ini dapat memakai
methode finalize(). Sesaat sebelum objek ini dihapus dari memory, Java run-
time akan memanggil method finalize() dari objek ini . Bentuk
pendeklarasiannya secara umum sebagai berikut :
protected void finalize()
{
//implementasi
}
pemakaian akses protected untuk membatasi siapa saja yang boleh memanggil
method ini karena method ini memang tidak seharusnya dipanggil oleh program yang
dibuat, tetapi dipanggil oleh run-time Java sebelum objek dihapus dari memory.
Berikut contoh pemakaian desktruktor melalui proses garbage collection pada java.
Okkita Rizan - 74 - Genap -
Nama file : testDestruktor.Java
Sintaks program :
Okkita Rizan - 75 - Genap -
INHERITANCE
TUJUAN :
Dapat memahami mengenai konsep Inheritance
Dapat memahami pemakaian Inheritance pada java
1. MEMAHAMI INHERITANCE
Nama lain dari Inheritance yaitu Turunan atau Pewarisan. Inheritance yaitu proses
pewarisan data atau method dari suatu class yang sudah ada ke class yang baru.
Pembuatan class baru dengan mengembangkan class yang sudah pernah dibuat
sebelumnya.
Beberapa istilah dikenal pada proses inheritance diantaranya :
Class yang menurunkan data atau method ke class lain disebut dengan super
class, parent class, base class atau kelas induk.
Class yang merupakan turunan dari kelas induk disebut dengan sub class, child
class, derived class atau class turunan.
Class turunan yaitu class yang memakai data atau method dari class induk.
Konsepnya, secara otomatis class turunan memiliki sifat (variabel/atribut) dan
kelakuan (behavior/method) yang sama yang dimiliki oleh kelas induknya. Class
turunan dapat menambahkan fitur atau behavior dengan mendefinisikan suatu
method didalam class turunan ini . Salah satu keuntungan dari konsep
inheritance ini yaitu cukup mendefinisikan satu kali saja atribut atau method yang
sama pada class induknya dan dapat digunakan di seluruh class turunannya.
Pada Diagram UML (Unified Modelling Language), konsep Inheritance digambarkan
pada class diagram sebagai berikut :
MODUL
9
Class A
Class B
Contoh class diagram disamping
menunjukkan bahwa Class A yaitu
class induk dari Class B, sebaliknya
Class B yaitu class turunan dari
Class A. Panah terbuka menunjukkan
bahwa kedua class ini
memakai konsep Inheritance.
Okkita Rizan - 76 - Genap -
Manfaat dari konsep Inheritance dicontohkan sebagai berikut :
a. Buatlah sebuah class untuk menangani objek bujursangkar. Class ini diberi dengan
nama bujursangkar. Atribut yang dimiliki oleh class ini yaitu sisi. Untuk
memanipulasi atribut ini , buat dua buah method dengan nama setSisi() dan
getSisi(). Selain kedua method ini , buat juga method untuk menghitung luas
sebuah objek bujur sangkar. Method ini dinamai dengan hitungLuas().
b. Buatlah sebuah class untuk menangani objek kubus. Class ini diberi dengan nama
kubus. Atribut yang dimiliki oleh class ini yaitu sisi. Untuk memanipulasi atribut
ini , buat method dua buah method dengan nama setSisi() dan getSisi().
Selain kedua method ini , buat juga method untuk menghitung volume
sebuah objek kubus. Method ini dinamai dengan hitungVolume().
Dari kedua soal ini , jika dibuat dengan class diagram dapat digambarkan
sebagai berikut :
jika diperhatikan, maka kedua class ini memiliki kesamaan atribut dan dua
method yang sama. Sehingga kedua class ini dapat diterapkan konsep Inheritance
yang digambarkan sebagai berikut :
bujursangkar
sisi
setSisi()
getSisi()
hitungLuas()
kubus
sisi
setSisi()
getSisi( )
hitungVolume( )
bujursangkar
sisi
setSisi()
getSisi()
hitungLuas()
kubus
hitungVolume( )
Dengan konsep Inheritance ini, pada
class kubus tidak perlu lagi dibuatkan
atribut dan method yang sama dengan
class bujursangkar.
class kubus dapat memakai atribut
dan method yang sama pada class
bujursangkar.
Pada pemrograman, bentuk ini dapat
membantu programmer untuk
meminimalkan jumlah baris perintah
pada saat pembuatan program.
Okkita Rizan - 77 - Genap -
2. PENERAPAN INHERITANCE PADA JAVA
Pada pemrograman, jika sebuah class merupakan class turunan dari class
induknya ditunjukkan dengan keyword extends. Keyword extends digunakan
pada pendeklarasian classnya. Bentuk umumnya sebagai berikut :
namasubclass extends namasuperclass
{
//statements
}
Selain extends, ada keyword lain yang digunakan pada konsep Inheritance.
Keyword ini diantaranya :
super. Keyword super digunakan oleh subclass untuk memanggil/
memakai konstruktor, atribut atau method pada superclassnya.
protected. Keyword protected yaitu hak akses / access modifier. Fungsi
access modifier sudah dijelaskan pada modul sebelumnya. Atribut atau
method yang memakai akses protected, akan dapat digunakan pada class
turunan.
Berikut contoh penerapan konsep Inheritance dalam pemrograman. Contoh
berikut yaitu implementasi pada contoh class diagram pada point sebelumnya.
Nama file : testInheritance.java
Sintaks program :
Okkita Rizan - 78 - Genap -
Output Program :
Penjelasan Program :
class kubus merupakan class turunan dari class bujursangkar
atribut sisi pada class bujursangkar memakai akses protected, sehingga
atribut ini dapat digunakan di class kubus pada method hitungVolume().
Perhatikan pada method ini , selain memakai method getSisi(), juga
memakai atribut sisi untuk menghitung volume kubus.
Keyword super pada method hitungVolume(), menunjukkan bahwa method
pada class kubus memakai method dan atribut dari class supernya yaitu
class bujursangkar.
Okkita Rizan - 79 - Genap -
3. MACAM-MACAM TURUNAN (TYPE OF INHERITANCE)
Konsep Turunan memiliki beberapa bentuk. Bentuk dari turunan ini
berdasarkan hubungan antara super class dan sub class. Macam-macam turunan
ini yaitu sebagai berikut :
a. Single Inheritance
Sebuah turunan disebut dengan single inheritance jika sebuah superclass
hanya memiliki satu buah subclass. Ilustrasi single inheritance digambarkan
sebagai berikut :
Contoh penerapan inheritance pada java dapat dilihat pada contoh program
testInheritance.java di atas.
b. Multiple Inheritance
Konsep dari Multiple Inheritance yaitu jika ada sebuah sub class memiliki
lebih dari satu super class. Adapun Multiple Inheritance di ilustrasikan sebagai
berikut :
Class A
Class B
Class A
Class C
Class B
Okkita Rizan - 80 - Genap -
Berdasarkan berbagai literatur, tidak banyak bahasa pemrograman yang
mendukung konsep Multiple Inheritance ini, termasuk diantaranya yaitu
Bahasa Pemrograman Java.
c. Multilevel Inheritance
Multilevel Inheritance terjadi jika sebuah class menjadi sub class dari
sebuah super class, tetapi kelas ini juga menjadi super class dari class
yang lain. Ilustrasinya dapat dilihat pada gambar berikut :
Berikut yaitu contoh penerapan Multilevel Inheritance pada Bahasa
Pemrograman Java.
Nama Program :
Sintaks Program :
Class A
Class B
Class C
Okkita Rizan - 81 - Genap -
d. Hierarchical Inheritance
Bentuk turunan ini yaitu jika satu buah class yang menjadi super class
memiliki lebiih dari satu sub class. Ilustrasinya dapat dilihat pada contoh
berikut :
Class C Class B
Class A
Class D
Okkita Rizan - 82 - Genap -
Berikut yaitu contoh penerapan Hierarchical Inheritance pada Bahasa
Pemrograman Java.
Nama Program : hierarchical.java
Sintaks Program :
Okkita Rizan - 83 - Genap -
e. Hybrid Inheritance
Hybird Inheritance merupakan turunan yang merupakan kombinasi dari Single
dan Multiple Inheritance. Untuk memahami konsep turunan ini, berikut
ilustrasi dari Hybrid Inheritance.
Seperti yang telah dijelaskan di atas, Java tidak mendukung konsep Multiple
Inheritance. Walaupun tidak mendukung konsep turunan ini , Java
menyediakan cara lain untuk mengatasi bentuk pemrograman yang
menyerupai Multiple Inheritance, yaitu memakai konsep INTERFACE.
Untuk konsep interface akan dibahas pada modul berikutnya.
Class B
Class D
Class C
Class A
Okkita Rizan - 84 - Genap -
POLYMORPHISM
TUJUAN :
Dapat memahami mengenai konsep polymorphism
Dapat memahami mengenai konsep overloading
Dapat memahami mengenai konsep overriding
Dapat memahami pemakaian overloading pada java
Dapat memahami pemakaian overriding pada java
1. MEMAHAMI POLYMORPHISM
Polymorphism atau polimorfisme dimaknai sebagai banyak bentuk. Dalam
pemrograman berorientasi objek, konsep ini memungkinkan pemakaian interface
yang sama untuk keperluan atau hasil berbeda, ini yang dimaksud dengan banyak
bentuk. Interface sama tetapi mempunyai hasil yang berbeda.
Ada beberapa keuntungan konsep polymorphism diterapkan didalam program
diantaranya :
Dapat menghindari duplikasi objek, dengan cara menciptakan class baru dari class
yang sudah ada, sehingga tidak perlu menuliskan code dari nol ataupun
mengulangnya, namun tetap bisa menambahkan atribut dan atau method unik
dari class itu sendiri. Dalam konsep yang lebih umum sering kali polymorphism
disebut dalam isitlah satu interface dengan banyak aksi.
Dapat memakai class-class yang dibuat sebagai super class dan membuat
class-class baru berdasarkan super class ini dengan karakteristik yang lebih
khusus dari behaviour umum yang dimiliki oleh super class.
Dapat membuat super class yang hanya mendefinisikan behaviour namun tidak
memberikan implementasi dari method-method yang ada. Hal ini berguna jika
ingin membuat semacam template class, class semacam ini disebut dengan
abstrak class. Pembahasan ini akan dibahas secara khusus pada modul
berikutnya.
Pada pemrograman berorientasi objek, interface yang dapat diterapkan konsep
polymorphisme yaitu method. Atribut sendiri tidak bisa diterapkan konsep
polymorphisme. Sehingga, polymorphisme yaitu konsep yang memungkinkan
pemakaian method yang sama dengan hasil yang berbeda. Ada dua penyebutan
nama method yang diterapkan konsep polymorphisme sesuai dengan bentuk
pemakaian nya. Dua method ini disebut dengan :
METHOD OVERLOADING dan METHOD OVERRIDING
Lebih jauh mengenai perbedaan kedua method ini dan contoh pemakaian nya
pada java akan diuraikan dibawah ini.
MODUL
10
0
Okkita Rizan - 85 - Genap -
2. MEMAHAMI OVERLOADING
Perhatikan penggalan baris perintah pada class berikut ini :
Penggalan baris perintah ini menunjukkan ada dua buah konstruktor yaitu
konstruktor mahasiswa() pada sebuah class. jika diperhatikan, maka kedua
konstruktor ini memiliki nama yang sama, yaitu sama-sama dengan nama
mahasiswa. Hal inilah yang membedakan antara teknik pemrograman terstruktur
dengan teknik pemrograman berorientasi objek.
Pada pemrograman terstruktur, tidak diizinkan jika dalam satu program ada
lebih dari satu method dengan nama yang sama. Berbeda dengan pemrograman
berorientasi objek, diperbolehkan mempunyai lebih dari satu method dengan yang
sama, dengan syarat perlakuan berbeda. Cara ini disebut dengan OVERLOADING.
Selain pada konstruktor, konsep overloading dapat diterapkan pada beberapa method
pada sebuah class dengan syarat perlakuan berbeda. Perlakuan berbeda dari setiap
method ditunjukkan dengan jumlah parameter digunakan pada setiap methodnya.
Selain dengan jumlah parameternya, tipe data yang tidak sama yang digunakan pada
parameter juga bisa dilakukan konsep overloading walaupun jumlah parameternya
sama.
3. PENERAPAN OVERLOADING PADA JAVA
Berikut yaitu contoh pemakaian konsep overloading pada sebuah class.
Pada contoh berikut class mahasiswa memakai 4 buah method dengan nama
yang sama yaitu method tampil().
Nama file : testOverloading.java
Sintaks program :
Okkita Rizan - 86 - Genap -
Output Program :
Okkita Rizan - 87 - Genap -
4. MEMAHAMI OVERRIDING
Method Overriding biasanya diterapkan pada konsep Inheritance atau turunan. Sesuai
dengan fungsinya, yang dimaksud dengan overriding yaitu pemakaian method sub
class sama dengan method super class. Pengertian yang lain yaitu , pada sub class,
nama sebuah method maupun parameter method nya sama dengan nama dan
parameter sebuah method pada super class. Tetapi hasil akhirnya/perlakuannya
berbeda.
Inilah yang membedakan antara method Overloading dengan method Overriding.
Pada method overloading, sebuah class mempunyai lebih dari satu method dengan
nama yang sama tetapi parameternya yang berbeda, yang menyebabkan hasil
akhirnya/perlakuannya akan berbeda.
5. PENERAPAN OVERRIDING PADA JAVA
Berikut yaitu contoh penerapan method Overriding pada konsep Inheritance pada
java. Pada super class maupun sub classnya akan dibuatkan method dengan nama
yang sama. Method yang di Overriding yaitu method tampil().
Nama file : testOverriding.java
Sintaks Program :
Okkita Rizan - 88 - Genap -
Output Program :
Okkita Rizan - 89 - Genap -
INTERFACE
TUJUAN :
Dapat memahami mengenai konsep Interface
Dapat memahami pemakaian Interface pada java
1. MEMAHAMI INTERFACE
Interface yaitu sekumpulan deklarasi konstanta dan atau method tanpa memiliki
implementasi dan semua property yang dimilikinya bersifat final. Interface mirip
dengan class abstrak, tetapi interface tidak terikat dengan class hierarki. Interface
biasa digunakan untuk mendeklarasikan kumpulan method dan konstanta yang dapat
digunakan oleh satu atau lebih class.
Bentuk umum dari pendeklarasian interface yaitu sebagai berikut :
interface namainterface
{
//deklarasi method dan konstanta
}
Beberapa aturan yang harus diperhatikan mengenai pendeklarasian interface yaitu :
Modifier/access modifier yang digunakan hanya public atau tidak sama sekali.
jika tidak memakai modifier, maka interface ini hanya dapat diakses
dalam package yang sama.
Semua variabel yang dideklarasikan dalam interface, secara otomatis yaitu static
final. Sehingga, pada saat pendeklarasian harus diberikan nilai.
Semua method yaitu abstrak. Bedanya dengan class abstrak yaitu tidak perlu
menuliskan keyword abstract pada saat mendeklarasikan method dalam interface.
Dapat mengimplementasikan lebih dari satu interface (multiple inheritance)
dengan memisahkan nama dari setiap interface dengan tanda koma. jika saat
mengimplementasikan lebih dari satu interface ternyata interface-interface
ini memiliki method yang sama, maka method yang akan digunakan yaitu
method yang berada pada posisi pertama.
Semua method yang diimplementasikan harus public. jika tidak
mengimplementasikan semua method yang ada pada interface, maka interface
ini harus dideklarasikan sebagai abstract class. Abstract class akan dibahas
pada modul berikutnya.
MODUL
11
Okkita Rizan - 90 - Genap -
2. PENERAPAN INTERFACE PADA JAVA
Pada bahasa Java, diperlukan keyword yang menunjukkan bahwa sebuah class
mengimplementasikan sebuah atau beberapa interface. Keyword ini yaitu
implements dan disebutkan pada saat pendeklarasian sebuah class.
Berikut yaitu contoh penerapan interface pada program. Contoh berikut
menunjukkan sebuah class mengimplementasikan sebuah interface, yaitu interface
cetak.
Nama file : testInterface.java
Sintaks program :
Okkita Rizan - 91 - Genap -
RAGAM CLASS
TUJUAN :
Dapat memahami macam-macam class
Dapat memahami perbedaan dan kegunaan penerapan class pada java
Pada modul ini, secara khusus akan membahas berbagai bentuk dari class. Bentuk dari
berbagai macam class ini akan menunjukkan perbedaan fungsi atau kegunaan maupun
bentuk dari tiap tiap class. Untuk beberapa class yang sudah dibahas pada modul
sebelumnya, tidak dicantumkan contoh penerapannya dalam pemrograman, hanya
definisinya saja dalam modul ini. Berikut beberapa macam class dalam pemrograman
berorientasi objek.
1. SUPER CLASS
Class ini digunakan pada konsep Inheritance. Nama lain dari class ini yaitu parent
class atau base class atau kelas induk. Pada Inheritance class ini akan mewariskan
apa saja yang dimilikinya ke class turunannya. Pada pemrograman, yang diwarisi
yaitu atribut dan methodnya sehingga dapat digunakan di class turunannya. Contoh
penerapan class ini sudah diuraikan pada modul sebelumnya.
2. SUB CLASS
Class ini digunakan juga pada konsep Inheritance. Nama lain dari class ini yaitu
child class atau derived class atau kelas turunan . Pada Inheritance class ini dapat
memakai atribut dan method dari kelas induknya. Class ini dapat menambahkan
atribut dan method sendiri. Pada pemrograman, class ini tidak dapat berdiri sendiri
dan dipasangkan dengan class yang lain, yaitu class induknya (super class). Contoh
penerapan class ini sudah diuraikan pada modul sebelumnya.
3. ABSTRACT CLASS
Sama dengan dua class diatas, class ini juga digunakan pada konsep Inheritance.
Peran dari abstract class ini sama dengan super class, yaitu sebagai acuan bagi class-
class turunan. Bedanya dengan super class, abstract class biasanya hanya berisi
variabel-variabel umum (atribut umum) dan header-header method saja tanpa body
methodnya atau bisa juga sebagian method ada body methodnya dan sebagian
method yang lain tidak memiliki body method. Sehingga, class-class turunannyalah
yang akan mendefinisikan secara detail body method-method ini .
Bentuk umum dari pendeklarasian abstract class yaitu sebagai berikut :
akses_modifier abstract class namaclassabstract
{
// statements
}
MODUL
12
Okkita Rizan - 92 - Genap -
Java membuat beberapa aturan dalam pemakaian abstract method dan class
abstract yaitu sebagai berikut :
Class yang didalamnya ada abstract method harus dideklarasikan sebagai
abstract class.
Abstract class tidak dapat diinstansi, tetapi harus diturunkan.
Abstract class tidak dapat diinstansi (menjadi objek dari class abstract), tetapi
dapat mendeklarasikan suatu variabel yang bertipe abstract class dan membuat
instansi dari variabel ini yang bertipe class turunan dari abstract class
ini (teknik polymorphism).
Sebuah class dapat dideklarasikan sebagai abstract class meskipun class ini
tidak mempunyai abstract method.
Abstract method tidak mempunyai body method dan demikian juga sebaliknya
bahwa method yang tidak ditulis body methodnya maka harus dideklarasikan
sebagai abstract method
Berikut yaitu contoh penerapan abstract class pada pemrograman. Pada contoh
berikut juga diperkenalkan mengenai abstract method, method yang mempunyai body
method dan static method yang dibuat didalam abstract class.
Nama file : testAbstractClass.java
Sintaks Program :
Okkita Rizan - 93 - Genap -
Output Program :
Okkita Rizan - 94 - Genap -
4. NESTED CLASS
Istilah nested sudah tidak asing lagi didengar pada algoritma. Istilah ini digunakan
pada struktur pencabangan dan struktur perulangan. jika pada struktur
pencabangan disebut dengan NESTED IF, sedangkan di struktur perulangan disebut
dengan NESTED LOOP. Maksud dari nested yaitu bersarang, sehingga yang
dimaksud dengan NESTED IF yaitu pencabangan bersarang dan NESTED LOOP
yaitu perulangan bersarang.
Selain pada algoritma, pada konsep object oriented dikenal juga dengan istilah
nested. Pada objek oriented, nested digunakan untuk menunjukkan bentuk class yang
bersarang. Dengan maksud lain yaitu ada class didalam class yang lain.
Sehingga namanya yaitu NESTED CLASS.
Nested class yaitu class yang didefinisikan didalam class yang lain. Pada dasarnya,
Nested Class terbagi kedalam dua kategori yaitu Static Class dan Non Static Class.
Untuk Static Class, disebut dengan STATIC NESTED CLASS, sedangkan Non Static
Class, disebut juga dengan INNER CLASS. Class yang didalamnya ada Static
Nested Class dan atau Inner Class disebut dengan OUTER CLASS. Dengan maksud
lain, bahwa Static Nested Class dan Inner Class merupakan anggota dari Outer Class.
Outer Class dan Nested Class saling berhubungan. Artinya, sebuah class tidak dapat
dikatakan sebagai Outer Class jika didalamnya tidak ada class lain (Static
Nested Class dan atau Inner Class), begitu juga sebaliknya, sebuah class tidak dapat
dikatakan sebagai nested class (Static Nested Class dan atau Inner Class) apabla class
ini tidak berada didalam class yang lain (Outer Class).
Adapun bentuk umum dari nested class dicontohkan sebagai berikut :
class OuterClass
{
//statements
class NestedClass
{
//statements
}
}
Dalam diagram UML, nested class digambarkan sebagai berikut :
class nested class
Okkita Rizan - 95 - Genap -
a. Static Nested Class
Pada sebagian literatur menyebutkan bahwa Static Nested Class yaitu bagian
dari Inner Class. Pada dasarnya, Static Nested Class yaitu hanyalah top-level
class yang disarangkan didalam class lain. Static Nested Class yaitu “Inner Class”
yang memiliki modifier static.
Dikarenakan class ini memakai static, maka pada saat membuat
instance/objek dari static nested class ini tidak diperlukan instance/objek dari
outer classnya. Ini lah yang membedakan antara Static Nested Class dengan Inner
Class. Sebuah Static Nested Class tidak dapat mengakses member/atribut non
static dari Outer Classnya.
Adapun cara atau proses menginstansiasi Static Nested Class seperti ditunjukkan
sebagai berikut :
NamaOuterClass.NamaStaticNestedClass ObjectNestedClass = new
NamaOuterClass.NamaStaticNestedClass()
Berikut contoh penerapan Static Nested Class pada pemrograman.
Nama file : testStaticNested.Java
Sintaks program :
Okkita Rizan - 96 - Genap -
Output Program :
Penjelasan Program :
class baru yaitu sebuah class yang bertipe Static Nested Class. Outer class
dari class baru yaitu class mahasiswa.
Objek mhs yaitu objek dari class baru, bukan objek dari class mahasiswa.
Sehingga pada saat instansiasi objek perlu menyebutkan class mahasiswa
sebagai outer class dari class baru.
b. Inner Class
Inner class merupakan bagian/member dari class yang lain, Outer Classnya.
Sehingga Inner Class dapat mengakses seluruh atribut ataupun method dari outer
classnya.
Bentuk umum dari Inner Class ini yaitu :
class namaOuterClass
{
class namaInnerClass
{
// statement
}
}
Berdasarkan struktur dan sifat dari classnya, Inner Class terbagi kedalam :
“Regular” Inner Class
Method-Local Inner Class
Anonymous Inner Class
Pada beberapa literatur menambahkan satu lagi, jenis dari Inner Class yaitu :
Static Nested Class
Untuk Static Nested Class sudah dibahas sebelumnya.
1) “Regular” Inner Class
Inner Class jenis ini merupakan Inner Class pada umumnya, artinya bukan
method-local atau anonymous Inner Class, bukan juga Static Nested Class.
Okkita Rizan - 97 - Genap -
Beberapa hal dan aturan dari Inner Class ini yaitu :
Objek/instance dari Inner Class dapat mengakses semua member/atribut
dari Outer Classnya, termasuk juga atribut dengan modifier private pada
Outer Classnya.
Sebuah Inner Class tidak dapat memiliki member dengan modifier static.
Untuk membuat objek/instance dari Inner Class, maka harus ada
objek/instance dari Outer Class terlebih dahulu, tidak ada pengecualian
untuk aturan ini.
Mengenai aturan Inner Class dalam mereferensi dirinya sendiri atau
objek/instance dari Outer Class yaitu sebagai berikut :
Untuk merujuk pada dirinya sendiri (instance/objek atau member dari
Inner Class) dari dalam Inner Class, dapat memakai referensi this
atau OuterClass.InnerClass.this.
Untuk merujuk pada instance/member dari Outer Classnya dari dalam
Inner Class, dapat digunakan referensi OuterClass.this.
Mengenai pembuatan objek/instance dari Inner Class, ada dua cara
yaitu :
Dari dalam Outer Class
Dari luar Outer Class.
Untuk membuat objek/Instance dari dalam Outer Class, bentuk umumnya
yaitu sebagai berikut :
class NmOuterClass
{
void NmMethod()
{
NmInnerClass NmObjek = new NmInnerClass();
}
class NmInnerClass
{
// statements
}
}
Sedangkan untuk membuat Objek/Instance dari luar Outer Class, bentuk
umumnya yaitu sebagai berikut :
NamaOuterClass NmOuter = new NamaOuterClass();
NamaOuterClass.NamaInnerClass NmInner = NmOuter.new NamaInnerClass();
Okkita Rizan - 98 - Genap -
Berikut contoh penerapan “Regular” Inner Class dengan contoh pembuatan
objek/instance dari dalam dan luar Outer Classnya.
Nama File : testRegulerInner.Java
Sintaks Program :
Output Program :
Penjelasan Program :
Pada class mahasiswa dibuat sebuah method dengan nama kenalan().
Method ini dapat memakai method dari class baru karena
dibuatkan objek untuk class baru.
Objek dengan nama b dibuat didalam Outer Classnya, sedang objek
dengan nama br dibuat diluar Outer Classnya.
2) Method-Local Inner Class
Method-Local Inner Class yaitu sebuah Inner Class yang dideklarasikan
didalam sebuah method. Pada sebagian literatur Method-Local Inner Class
disebut juga dengan Local Class.
Beberapa hal yang perlu diketahui mengenai Method-Local Inner Class ini
diantaranya :
Objek dari Method-Local Inner Class ini hanya dapat diinstansiasi dari
dalam method yang mendefinisikan/mendeklarasikan Method-Local Inner
Class ini .
Objek/instance dari Method-Local Inner Class dapat mengakses seluruh
member dari Outer Classnya, termasuk member yang memiliki akses
private.
Objek/instance dari Method-Local Inner Class tidak dapat mengakses local
variabel, termasuk juga parameter dari method dimana method-local inner
class ini didefinisikan, kecuali bila variabel ini bermodifier final.
Mendeklarasikan Method-Local Inner Class tidak berarti membuat
objek/instance diluar dari method tempat mendeklarasikan class ini .
Sehingga, sebelum memakai Inner Class ini , harus membuat
objeknya dari suatu tempat didalam method dan sesudah definisi inner
class ini .
Method-Local Inner Class yang didefinisikan didalam static method tidak
dapat mengakses member non static dari Outer Classnya.
Berikut yaitu contoh penerapan Method-Local Inner Class pada
pemrograman :
Nama File : testMethodLocal.java
Sintaks Program :
Output Program :
Penjelasan Program :
Pada contoh ini class baru yaitu sebuah class berjenis Method-Local
Inner Class. Yang menjadi Outer Classnya yaitu class mahasiswa. Class
ini didefinisikan/dideklarasikan didalam method tampil().
Class baru mempunyai objek bernama b yang diinstansiasi didalam
didalam method tampil().
Objek dari class mahasiswa yang bernama mhs memakai method
tampil, secara tidak langsung menjalankan method kenalan() karena
sudah dibuat objek dari class baru didalam class mahasiswa.
3) Anonymous Inner Class
Anonymous Inner Class yaitu sebuah Inner Class yang dideklarasikan tanpa
nama class. Penerapan Anonymous Inner Class yaitu pasti dari dua hal
berikut ini :
Menjadi sub class dari suatu class yang telah dideklarasikan
Menjadi Class yang mengimplementasi sebuah interface.
Beberapa hal yang perlu diketahui dari Anonymous Inner Class ini yaitu :
Suatu Anonymous Inner Class tidak dapat secara bersamaan menjadi
subclass dari class yang telah dideklarasikan dan juga menjadi class yang
mengimplementasi suatu interface.
Tujuan utama dari Anonymous Inner Class yaitu mengoverride satu atau
lebih method dari super classnya atau mengimplementasi semua method
dari suatu interface.
Anonymous Inner Class tidak dapat mengimplementasi lebih dari sebuah
interface.
Anonymous Inner Class selalu dibuat sebagai bagian dari suatu statement.
Okkita Rizan - 101 - Genap -
Anonymous Inner Class yaitu salah satu bentuk dari polymorphisme, oleh
karena itu, method yang dapat dipanggil dari Anonymous Inner Class
yaitu method yang dideklarasikan di super class atau interfacenya,
meskipun di dalam Anonymous Inner Class dapat dideklarasikan method-
method yang tidak ada di super class atau interfacenya.
Anonymous Inner Class dapat diletakkan sebagai argument dari satu
method.
Berikut yaitu contoh penerapan Anonymous Inner Class pada
pemrograman :
Nama File : testAnonymous.java
Sintaks program :
Output Program :
Penjelasan Program :
Perhatikan pada class main(), ada sebuah objek dengan nama mhs.
mhs yaitu variabel referensi yang berfungsi sebagai objek Anonymous
Inner Class yang merupakan sub class dari class mahasiswa. Jadi objek
mhs bukan mereferensi objek dari class mahasiswa.
5. FINAL CLASS
Final class yaitu sebuah class yang mempunyai keyword final pada nama classnya.
Class dengan jenis ini tidak dapat menjadi super class bagi class lain. Artinya class ini
tidak dapat diturunkan/digunakan atribut atau methodnya untuk class lain. jika
sebuah class dirasa tidak perlu diturunkan ke class yang lain, misalnya class ini
dirasa sudah memiliki atribut dan method yang sempurna, maka gunakanlah keyword
final.
Berikut yaitu contoh penerapan Final Class pada pemr


