You are on page 1of 15

CLASS, OBYEK DAN METHOD Class Didefinisikan Class sebagai sebuah blue print, atau prototipe, yang mendefiniskan

variable-variabel dan metode-metode yang umum untuk semua objek dari jenis tertentu. Class mendefinisikan atribut dan perilaku obyek yang dibuatnya. Class merupakan definisi formal suatu abstraksi. Class berlaku sebagai template untuk pembuatan obyekobyek. Class berisi abstraksi yang terdiri dari nama class, atribut dan service.

1.

Bagian-bagian dari sebuah Class Secara umum penulisan class terdiri atas 2 bagian yakni: Class Declaration Bentuk Umum : [modifier] class <nama_kelas> { <class body> } Penamaan suatu class mempunyai aturan umum : a. Tidak menggunakan spasi atau menggunakan spasi dengan diganti “_” (misal class Sarjana_Mipa) b. Tidak menggunakan kata-kata yang telah dipakai oleh compiler (reserved Word, lihat bab sebelumnya)

PBO- Jamilah,SKom,MT

1

• Abstract Jika kelas tersebut memiliki abstract methode dan tidak dapat diinstantiasi menjadi sebuah objek. Class Body Class Body merupakan bagian dari kelas yang mendeklarasikan kode program java. Konstruktor b. private int berat = 70. Local variables dideklarasikan di dalam method. bentuk tubuh. Mis: burung dapat dibedakan berdasarkan suara kicauan. • Public Jika sebuah kelas tersebut dapat digunakan oleh kelas lain tanpa memperdulikan apakah kelas lain yang menggunkannya itu berasal dari package yang sama atau berbeda. yaitu public. Bentuk Umum : [modifier] <tipe_data> <nama> [ = nilai default]. Variable Instance (Atribut) c. Contoh : public double tinggi. Instance variables dideklarasikan di dalam kelas tetapi tidak di dalam method.2. anda harus membuat sebuah obyek dari kelas tersebut (instance class). dengan sintaks: NamaKelas namaObyek = new NamaKelas ( [parameter] ).SKom. • Final Kelas tidak akan dapat diturunkan lagi menjadi kelas turunan.MT 2 . Contoh: Anjing goofy = new Anjing().Jamilah.Modifier saat deklarasi kelas adalah : • Tidak ditentukan (default) Kelas tersebut dapat diakses oleh kelas lain dalam satu package. private Perbedaan local dan instance variable 1. String jenis. Atribut yang membedakan suatu instance obyek burung yang satu dengan yang lainnya disebut instance variabel. protected. Instance Variables (Atribute Class) Suatu obyek dapat dibedakan berdasarkan sifat (behavior) yang berbeda. dsb. Modifier untuk atribut. int tambah( ) { int total = tinggi*2. class Kuda { double tinggi = 15. warna bulu. } 2. obyek juga dapat dibedakan berdasarkan atributnya. Class Body tersusun atas: a. Method (Fungsi-fungsi atau prosedur) Untuk dapat menggunakan kelas yang telah didefinisikan. // total adalah variabel local PBO.

Hal ini menentukan apakah sebuah method bias diakses oleh objek lain.return total.SKom. Fungsi adalah bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan suatu masalah dengan mengembalikan hasil. Secara umum method dalam java adalah sebuah fungsi. dapat mengembalikan satu nilai atau tidak sama sekali 2.MT 3 . objek anak. Deklarasi sebuah method Method terdiri atas dua bagian yakni : 1. • Final PBO. • Abstract Fungsi tidak memiliki implementasi. dia akan kembali pada method yang Memanggilnya. Prosedur adalah bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan suatu masalah tanpa mengembalikan suatu nilai hasil.Jamilah. Parameter bisa juga disebut sebagai argumen dari fungsi 3. Untuk mendefinisikan method pada dalam class digunakan sintaks sintaks [modifier] <tipe_data_return> nama_method( [parameter] ) { methode body } Contoh : public int Perkalian (int y. • Tanpa modifier Atribut ini menunjukan bahwa method dapat diakses oleh kelas lain dalam paket yang sama. Method Body Method dapat digambarkan sebagai sifat (behavior) dari suatu class. Method dapat dibagi menjadi fungsi dan prosedur. setelah method telah selesai dieksekusi. • Private Atribut ini menunjukan bahwa fungsi atau method tidak dapat diakses oleh kelas lain • Protected Atribut ini menunjukan bahwa fungsi atau method bisa diakses oleh kelas lain dalam satu paket dan hanya kelas lain yang merupakan subclass nya pada paket yang berbeda. Berikut adalah karakteristik dari method : 1.int z) { methode body } Modifier pada method Modifier menentukan level pengaksesan sebuah method. Method declaration 2. objek dalam satu paket atau tidak dapat diakses oleh suatu object sama sekali berikut adalah beberapa jenis level access: • Public Atribut ini menunjukan bahwa fungsi/method dapat diakses oleh kelas lain. } Method Sebuah method adalah bagian-bagian kode yang dapat dipanggil oleh program utama atau dari method lainnya untuk menjalankan fungsi yang spesifik di dalam kelas. dapat diterima beberapa parameter yang dibutuhkan atau tidak ada parameter sama sekali.

int c = masuk.out.println(“tinggi = “+4utrid. int a = masuk.print(“\nVolume balok = “+ coba. } } out : tinggi = 170 berat = 50 Method dengan nilai balik Bagaimana jika bagian lain dari program ingin tahu juga nilai volume itu tetapi tidak ingin menampilkannya (mencetaknya). int c).• Method tersebut tidak dapat dioverride oleh kelas turunan.”) parameterparameter pada fungsi-fungsi di java akan di by pass value yang artinya pada tiap fungsi tidak akan dapat merubah isi dari variable parameter yang dimasukan. //memanggil method init dgn mngirim nilai 170&50 System.out. Sytem. berat. Sytem.50).out. Contoh : class manusia { int tinggi. l = b.b.MT 4 . int b. //pembuatan objek manusia putri. Sytem.nextInt().} int volume( ) { return (p*l*t).out. t = c. t. berat = y.in). l. void nilai (int a. coba.volume()).print(“\n Tinggi = “). Sytem.tinggi + “ berat = “+4utrid. Parameter apabila lebih dari satu akan dipisahkan dengan tanda koma (“.berat). { p = a. Apabila terdapat suatu fungsi yang tidak menghasilkan suatu nilai apapun maka bagian return type ini diganti dengan void .nama_method( [parameter] ).nilai(a. } public static void main(String args[]) { manusia 4putri = new manusia().c).print(“\n Lebar = “).SKom. Untuk memanggil method dapat digunakan sintaks sebagai berikut: namaObyek. int y) { tinggi = x.out.init(170.nextInt(). Static Method dapat diakses tanpa harus melakukan instantiasi terlebih dahulu. void init(int x. balok coba = new balok().print(“Panjang = “).Jamilah. }} PBO. int b = masuk. } public static void main(String args[]) { Scanner masuk = new Scanner(System.nextInt(). Parameter Bagian parameter diisi dengan parameter-parameter fungsi yang diperlukan. Contoh penggunaan return: class balok { int p.

Nilai this merujuk pada objek di mana method yang sedang berjalan dipanggil.menggonggong(). snoopy. Contoh : class Anjing { void menggonggong() // tanpa parameter { System. this. } } output: guk guk wuf wuf Kata Kunci This This merupakan besaran referensi yang digunakan dalam method yang dirujuk untuk objek yang sedang berlaku.out.Out : Panjang = 2 Lebar = 3 Tinggi = 2 Volume balok = 12 Method Overloading JAVA interpreter memiliki kemampuan untuk menggunakan beberapa cara pemanggilan method. bleki.println(“tinggi = “+5putri. } void menggonggong(String suaraGonggongan) { System.SKom. Contoh : class manusia { int tinggi.menggonggong(“wuf wuf”).Jamilah.berat = berat.init(170. berat. Anjing snoopy = new Anjing(). void init(int x.println(suaraGonggongan).println(“guk guk”). } public static void main(String args[] ) { Anjing bleki = new Anjing(). putri.berat). Method overloading merupakan method dengan nama sama tetapi argument atau daftar parameter berbeda.out. } } PBO.tinggi + “ berat = “+5putri. Overloading method merupakan cirri-ciri dari pemograman berbasis obyek yang bersifat polymorphisme. int y) { this.50).MT 5 .out. This digunakan jika 5utrid5e local menggunakan nama yang sama dengan instance 5utrid5e.tinggi = tinggi. //memanggil method init dgn mngirim nilai 170&60 System. } } class utama{ public static void main(String args[]) { manusia putri = new manusia().

int u) //konstruktor { nama = n. Nama_kelas diberikan bila method tersebut dipanggil dari kelas yang berbeda. //menjalankan konstruktor a. tertawa(). Pemanggilan method static dilakukan dengan format : Nama_kelas.out : tinggi = 170 berat = 50 Method Static Sebuah method static dapat diakses tanpa harus melakukan instantiasi terlebih dahulu. int umur. Overloading Construktor PBO. Contoh : class MyStatic { static void Luas() { int p = 10.”).out. Contoh : class Aktor{ String nama. Konstruktor tersebut memiliki nama yang sama dengan class tempatnya.println(“Luas = “+ p*l ).tampilAktor( ). // pemanggilan method luas } Konstruktor Konstruktor adalah method yang menginisialisasikan objek segera setelah pembuatan objek.SKom. umur = u.MT 6 .println(“Hahaha…. Aktor (String n. int l = 2 . Tugas konstruktor adalah menginisialisasikan semua keadaan dengan operator new yang akan segera memiliki objek yang baik dan berguna..nama_method(). } static void tertawa() { System. //memanggil method static } } out : namaku Dian Sastro umur 20 tahun Hahaha…. System.out.20).out. } public static void main (String [] args ) { Luas(). umurku “+umur+” tahun”).print(“namaku “+ nama+”. } void tampilAktor( ) { System. } public static void main(String args[]) { Aktor a = new Aktor(“Dian Sastro”.Jamilah.

out.Overloading konstruktor merupakan dua buah konstruktor atau lebih dengan parameter yang berbeda..Jamilah. int umur.haha”). } void tampilAktor( ) { System.SKom. umur = u. Aktor b = new Aktor( ). } } Out : namaku Dian Sastro umurku 20 tahun Namaku Pratama umurku 19 tahun Hahaha…haha PBO.out.println(“Hahaha. Aktor (String n. } class testAktor { public static void main(String args[]) { Aktor a = new Aktor(“Dian Sastro”.MT 7 .} static void tertawa() { System. } Aktor() // konstruktor tanpa parameter { umur = 19.20). int u) // konstruktor { nama = n. //pemanggilan konstruktor tanpa parameter a. umurku “+umur+” tahun”). Aktor.tampilAktor().print(“namaku “+ nama+” .tertawa(). Contoh : class Aktor{ String nama.tampilAktor(). b. nama = Pratama.

} } PBO.y+” z = “+p. Point (int x . int y.SKom. } } x = 10 y = 20 z = 30 -----------------------Pada contoh diatas dibuat sebuah kelas turunan dari kelas Point (superclass). y = 1. Pada pewarisan semua yang dimiliki superclass secara otomatis dimiliki subclass meskipun tanpa dideklarasikan lagi. Contoh : class tampil1{ private int x = 3. ketika method dipanggil. } } class Point3D extends Point{ int z. this.grs( ) .println(“-------------------------“). p.y = y.println(“x = “+ p. } void grs( ) { System.Jamilah.nama_method([parameter])).x+” y= “+p.int y) //konstruktor superclass dengan parameter { this. methode dalam subclass ditemukan dan method inilah yang dieksekusi bukan method dalam superclassnya.y).println(“ x = “+x+” y = “+y). //pemanggilan konstruktor kelas super dengan parameter x dan y this. yaitu kelas Point3D(subclass) yang mewarisi semua yang dimiliki kelas super. out : Ket : Overriding Method (Penindihan) Overriding yaitu subclass dan superclass memiliki nama method yang sama.out.z = z. void tmp( ){ System.z). System.MT 8 . Kemudian. y. Point3D (int x. Untuk menjalankan method superclass harus menggunakan : super. Penindihan method meliputi pendefinisian methode dalam subclass yang memiliki ciri yang sama dengan superclass.out.20.INHERITANCE Inheritance Merupakan kelas yang diturunkan dari kelas lainya. } public static void main(String args[]) { Point3D p = new Point3D(10. int z) //konstruktor subclass { super(x.x = x. BU : nama_subclass extends nama_superclass { //class body } Contoh : class Point { int x.out.30).

void tmp() { System.…).println(“Ini kelas Anak”). } } class Anak extends Bapak { super.tik. Bila kelas anak juga memiliki konstruktor maka sebelum menjalankan konstruktor kelas anak maka terlebih dahulu menjalankan konstruktor kelas induk. } static berjalan() {System.arg2.println(“Tak. public static void main (String args[ ]) { tampil2 a = new tampil2 ( ). a.out. class tampil2 extends tampil1{ int z = 3.umur = 100..class tampil2 extends tampil1{ int z = 3. Untuk pemnggilan konstruktor pada kelas induk yang memiliki parameter.println(“zzz…zzzz…zzzz”).println(“ x = “+p. Contoh : class Bapak{ int umur. } void menangis (){System.out. Bapak(int a) { System.y). } void tidur() { System. } public static void main (String args[ ]) { tampil2 a = new tampil2( ).out.out.”).SKom. } PBO. berat = 60. Bapak () { System.tuk. Anak() { super(1).. // System. salah.println(“Ini kelas Bapak”).out.out. } } Output : x=3y=1z=3 ket : method tmp pada tampil1 tertindih oleh method tmp pada kelas anak tampil2 sehingga methode anak yang akan dijalankan. maka pemanggilanya menggunakan : super(arg1. a.”).Jamilah.println(“aduh. System.println(“Ini kelas Bapak dengan nilai a”). y private dan beda kelas..MT 9 . } } Output : x=3y=1 ket : dalam subclass tidak ditemukan method tmp.println(“ x = ‘+x+” y = “+y+ “ z = “+z).aduh…. Pada overriding hak akses pada method subclass harus lebih tinggi atau minimal sama dengan method superclass.out.println(“Huahaha…haha.tmp(). Konstruktor Pada Inheritance Konstrukor pada kelas induk otomatis akan dijalankan saat pembuatan obyek pada kelas turunan.tmp().”).out. x. } void tertawa( ) { System..out. maka JVM akan mencari method pada kelas atasnya (superclass).x+” y = “+ p..

aduh… Tak. System.lilili”). Contoh : abstract class manusia { int tinggi. } } PBO.hihi….println(“errr…rrrr”)..protected void tidur() { System.tertawa()...println(“umur Tama = “+ Tama.SKom.println(“Hihihi.println(“errr…errr…err…”). budi.tertawa(). // diperbolehkan membuat referensi objek manusia putri. void bernyanyi(){ System.println(“Tralala.. tidak diijinkan membuat objek kls manusia. Tama.umur +” berat = “ + (Tama.tik.umur = 19.out. Andi.out. } //implementasi method } class utama{ public static void main(String args[]) { //manusia putri = new manusia(). abstract void marah( ) .menangis().. } } class utama extends Bapak { public static void main(String [ ] args) { Bapak Andi = new Bapak(). Class Abstract Merupakan suatu class yang memiliki minimal satu abstract methode (method yang belum terdapat implementasinya) dan tidak dapat diinstantiasi. }} Out : Ini kelas Bapak Ini kelas Bapak dengan nilai 1 Ini kelas Anak Huahaha…haha. Tama..out. Tama. Anak Tama = new Anak(). } } class bapak extends manusia { void marah() { System. putri = budi.out.berat + 50) ). Umur Tama = 19 berat = 50.MT 10 . budi bernyanyi(). berat..hihi… aduh. Huahaha…haha.Jamilah. System.tuk.”).marah(). } protected void tertawa ( ) { super. Kelas turunan harus mengimplementasikan semua method abstract... berjalan().tertawa(). bapak budi = new bapak(). Kata kunci abstract tidak dapat digunakan untuk konstruktor dan method static. Hihihi.out.

Contoh : final class manusia { int tinggi.class. pembuatan objek inner class bila dilakukan di dalam method static.println(“Tralala.println(“Trilili.out : errr…rrr Tralala. Kelas Inner boleh tidak diberi nama disebut Anonymous Inner. Contoh : Luar a = new Luar()... Kelas inner dapat mengakses data dan method dari kelas luar. }// salah } ket : Pada kelas bapak tidak boleh mengimplementasikan ulang method bernyanyi karena pada kelas manusia method tersebut final.out. b.new Dalam(). Contoh : class manusia { final void bernyanyi(){ System. // membuat objek kelas luar Dalam.println(“Tralala. } } class bapak extends manusia { <class body > }// salah Ket : pernyataan class bapak extends manusia tidak lagi diperbolehkan karena class manusia memiliki modifier final.Jamilah. c. Method Final Method final pada superclass merupakan method yang tidak dapat lagi dimiliki pada subclass. berat. artinya method tersebut tidak dapat dioverride (diperbaharui) pada kelas turunan. // membuat objek kelas Dalam Bila instantiasi dilakukan pada method non-static dari kelas luar. Kelas Luar yang mnegandung kelas inner bila dikompilasi akan menghasilkan dua file yaitu Luas. maka harus membuat objek kelas luar terlebih dahulu.. Contoh : Dalam b = new Dalam().SKom. Sebaliknya kelas luar tidak dapat mengakses data atau method dari kelas dalam yang bersifat private.out. maka dapat dilakukan secara langsung seperti biasa.out.lilili”). Inner Class Merupakan kelas yang didefinisikan di dalam kelas. meskipun data dan method tersebut bersifat private.Luar b = a.class dan Luas$Inner. } } class bapak extends manusia { void bernyanyi() { System. Ketentuan kelas inner : a.MT 11 . PBO.Lalala”).lilili”).lilili Class Final Merupakan kelas yang tidak dapat diturunkan lagi menjadi kelas baru. Pada non-static.. void bernyanyi(){ System.

println(“Nilai c = “+c +”d = “+d).d. //Dalam b = new Dalam(). b. } } void tampil(){ Dalam b = new Dalam().show().out. } class test{ public static void main(String[]args) { Luar a = new Luar(). b. //System.tampil(). Contoh : class Luar { private int c = 10. a.Dalam b = a. void show() { System. void show() { System.MT 12 .show(). class Dalam { private int d = 100. maka objek milik kelas Inner dapat dibuat sendiri tanpa melalui kelas luarnya tetapi kelas inner tidak dapat mengakses atribut ataupun method non-static milik kelas luar. } } out : Nilai c = 10 d = 100 Kelas luar c = 10 Bila pembuatan objek kelas dalam dilakukan dalam method non-static milik kelas luar maka menjadi : class Luar { private int c = 10.SKom.Jamilah.out. tidak diijinkan krn d private } } class test{ public static void main(String[]args) { Luar a = new Luar(). Jika kelas Inner bersifat static.new Dalam(). } } void tampil(){ System.println(“dari kelas luar d = “+d). a.println(“ Kelas luar c = “+c).println(“Nilai c = “+c +”d = “+d).tampil().out.out. tidak diperbolehkan karena inner non-static Luar. class Dalam { private int d = 100. }} Out : nilai c = 10 d = 100 Static Inner class PBO.

} Out: 42 Contoh2 : PBO.out.out. Jika array tidak diberi nilai. Penulisannya menjadi : int nilaiMahasiswa [] = {100. Int [] nilai Mahasiswa = new int[15]. salah karena c non-static System. Mendapatkan besar array dapat dilakukan dengan nama_array.show(). b.out. maka elemen array diberi nilai 0.MT 13 .length). static int e = 5. 2 .print(A. Contoh : class Larik { public static void main(String[ ] args) { int A[ ] = {1 . nilaiMahasiswa = new int [14]. static class Dalam { private int d = 100.45. System.100}.Jamilah. Atau bisa juga : int nilaiMahasiswa [] = new int[15]. Bila nilai array langsung diberikan. } } class test{ public static void main(String[]args) { Dalam b = new Dalam(). Contoh : class Luar { int c = 10. }} out: Nilai d = 100 dan e = 5 ARRAY Array Dimensi satu Pendeklarasian Array : int[ ] nilaiMahasiswa.20.println(“Nilai c = “+c ).length.SKom.Pada static inner class pembuatan objek dapat dilakukan langsung tanpa harus melalui kelas luar. 3 . maka penulisanyya tidak perlu menggunakan kata new. System. void show() { // System. 4}.40.out. T etapi kelas inner tidak dapat menggunakan data atau method non-static pada kelas luar.println(“Nilai d = “+d +” dan e = “+e).println(A[1]).

String input=masuk.read()).6}}.print("Masukan elemen mariks ke "+ i +" "+ j +" :").parseInt(input).io.print ("masukkan nama ke : "+ i + “ “).2. untuk merubah input menjadi integer. for (int i =1. BufferedReader masuk= new BufferedReader (new InputStreamReader(System. } } } Out : masukkan banyak data : 2 masukkan nama ke : 1 Lusiana masukkan nama ke : 2 Gracia Array Dua Dimensi Array 2 dimensi merupakan array yang berisi array. System. Pendeklarasiannya : int matriks [ ] [ ] = new int [2][3] .* class input Array { public static void main(String[] args) throws IOException { String[] nama = new String[100].print("masukkan banyak data:").3}.parseInt(new BufferedReader (new InputStreamReader(System.{4.* class inputArray { public static void main(String[] args) throws IOException { int [][]mat = new int[2][3]. i< 2 . j< 2 . i<= pil .in)). nama[i]=masuk.out.out. atau int matriks [][] = { {5. } } } } Out : Masukan elemen matriks ke 0 0 : 2 Masukan elemen matriks ke 0 1 : 4 Masukan elemen matriks ke 1 0 : 2 Masukan elemen matriks ke 1 1 : 6 Input dalam Java berbentuk String sehingga untuk menghasilkan integer dilakukan int pil = Integer.MT 14 .SKom.5. mat[i][j] = integer. j++ ) { System. import java. int pil = Integer. Perintah PBO.Jamilah.readLine().parseInt(input).import java.readLine(). i++ ) { System.io.in)).out. for (int i =0. i++ ) { for (int j =0.

PBO.BufferedReader masuk= new BufferedReader(new InputStreamReader(System.Jamilah. Merupakan perintah untuk membaca input dari konsol.MT 15 .in)).SKom.