. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Class, Method, and
Access Specifier
Pemrograman 1
Rauhil Fahmi, [Link]., [Link].
1
Outline
◼ Object Oriented Programming
◼ Encapsulation
◼ Method and toString
◼ Access Type
◼ Static
2
Object Oriented Programming
◼ Memodelkan objek dunia nyata sebagai sebuah class
dalam java
◼ Representasi objek mewakili sifat objek asli di dunia
nyata
◼ Sebuah Objek (class) memiliki
◼ Constructor
◼ Variable / Attribute
◼ Method
3
Attribute
◼ Variable (-variable) yang menyimpan hal-hal yang dimiliki sebuah objek
◼ Object memiliki 0 sampai banyak attribute
◼ Merupakan variable global
◼ Biasanya memiliki tipe akses private
◼ Disebut juga instance variable
◼ Contoh: Attribute class Mahasiswa
public class Mahasiswa{
private int npm;
private String nama;
private String fakultas;
………………………….
}
4
Constructor
◼ Sebuah method “spesial” yang dibuat untuk meng-
instantiate objek
◼ Karena tidak perlu return value (tapi bukan void)
◼ Nama sama dengan nama Class
◼ Bersifat public
◼ Seperti blueprint dalam pembuatan objek
◼ Merupakan yang dipanggil dengan perintah new
String x = new String(“Hai"); //memanggil constructor
5
Constructor
◼ Constructor bisa di-overload
◼ Tapi siapkan default constructor
◼ Overload sesuai kebutuhan
◼ Constructor menyiapkan segala hal yang dibutuhkan saat
pembuatan objek
◼ Perintah this digunakan untuk menunjuk objek pemilik
constructor
◼ Digunakan saat parameter constructor memiliki identifier
yang sama dengan attribute
6
Contoh Constructor Mahasiswa
public class Mahasiswa{
……….
public Mahasiswa(){
npm = 0;
lulus = false;
}
public Mahasiswa(int npm){
// attribute npm diisi sesuai masukan constructor
[Link] = npm;
}
}
7
Method
◼ Objek dapat dilengkapi dengan method
◼ Terdapat 4 jenis method yang dapat ditembahkan pada
Objek
◼ Setter (Mutator)
◼ Getter (Accessor)
◼ toString (format keluaran saat di print)
◼ Method lain
8
Encapsulation
◼ Proses “membungkus” instance variable sehingga lebih aman
dalam proses pengaksesan
◼ Proses encapsulation
◼ Buat variable sebagai private
◼ Buat method public setter dan getternya
◼ Memungkinkan programmer untuk menggunakan sebuah
class tanpa perlu tahu implementasi sebenarnya
◼ Membuat implementasi lebih mudah dan pembuatan kode
yang lebih aman
9
Setter (Mutator)
◼ Method untuk mengubah nilai sebuah attribute (private
variable)
◼ Harus bertipe public method
◼ Memiliki return void
◼ Menerima sebuah masukan (sesuai variable yang ingin
diganti)
◼ Biasanya bernama setNamaVariable
10
Contoh Setter Mahasiswa
public class Mahasiswa{
int npm = 0;
int nama = “”;
……….
……….
public void setNpm(int npm){
[Link] = npm;
}
public void setNama(String nama){
[Link] = nama;
}
}
11
Getter
◼ Method untuk mengambil nilai sebuah attribute (private
variable)
◼ Harus bertipe public method
◼ Memiliki tipe return sesuai variable yang diminta (dan
mengembalikan nilai variable tersebut)
◼ Tidak menerima masukan apapun
◼ Biasanya bernama getNamaVariable
12
Contoh Getter Mahasiswa
public class Mahasiswa{
int npm = 0;
int nama = “”;
……….
……….
public int getNpm(){
return npm;
}
public String getNama(){
return [Link];
}
}
13
Declaring, Instantiating, dan
Initializing
◼ Declaring
◼ Mahasiswa m;
◼ Instantiating
◼ m = new Mahasiswa();
◼ Initializing
◼ [Link](“Anto");
◼ Gabungan
◼ Mahasiswa m = new Mahasiswa(“Anto");
14
Method toString
◼ Method “spesial” milik class
objek public String
toString()
◼ Mengembalikan sebuah String yang berisi alamat objek
di dalam memory
◼ Dapat di-override oleh class yang didefinisikan oleh
tiap programmer
◼ String tersebut digunakan pada saat objek dicetak
dalam [Link]
◼ [Link](m); //m adalah objek Mahasiswa
15
Contoh Method toString
◼ Class Mahasiswa
public class Mahasiswa{
……….
public String toString(){
return npm + " " + nama + “" + fakultas;
}
}
◼ Dalam main
Mahasiswa m = new Mahasiswa ();
…………
[Link](m); // Mencetak informasi mahasiswa
16
Method
◼ Bagian program yang berisi sebuah fungsi tertentu
◼ Informasi definisi method
◼ Tipe akses
◼ Static atau tidak
◼ Return value
◼ Nama identifier
◼ Parameter/s
◼ Method dapat memiliki overload
◼ Bagi method yang memiliki return harus diberikan return
public int jumlah(int a, int
b){ if (true)
return a + b // menyebabkan compile error, kenapa?
}
17
Access Type
◼ Tiap class, variable, method, constructor di Java dapat ditentukan
tipe aksesnya
◼ Terdapat 4 tipe akses
◼ public
◼ protected
◼ default
◼ private
18
Protected Access
◼ Dapat diakses oleh subclass
◼ Dan class dalam satu package
◼ Oleh subclass seperti public
◼ Bisa diakses dan diubah oleh subclass selayaknya
public
◼ Selain itu dianggap seperti private
◼ Tidak standar OOP Java
◼ Best Practice: Tetap pakai private dan setter/getter
19
Default Access
◼ Diberikan saat tidak ada petunjuk akses
◼ class Mahasiswa
◼ int npm;
◼ Bisa diakses semua class yang ada dalam satu package
◼ Dalam sebuah file java hanya boleh ada 1 public class,
sisanya default
◼ Method main berada dalam class public
20
Private Access
◼ Hanya dapat diakses oleh class pemiliknya
◼ Selain class yang memiliki tidak berhak untuk mengaksesnya
◼ Variable yang private tidak boleh langsung diakses oleh class lain
◼ private npm milik class Mahasiswa
◼ Dalam main tidak boleh langsung diakses
Mahasiswa m = new
mahasiswa();
[Link] = 1234 // error
◼ Solusi: Tetap private untuk attribute, kemudian buat method setter
dan getter untuk mengaksesnya
◼ Kenapa harus dibuat “ribet”?
21
Static
◼ Selama ini, tiap objek yang dibuat memiliki instance variable
masing masing (berbeda satu sama lain)
◼ Static adalah label yang diberikan pada sesuatu yang menjadi milik class
◼ Variable static dapat diakses oleh seluruh instance dari class
tersebut dengan nilai yang sama
◼ Non-static variable
Mahasiswa m1 = new Mahasiswa("Budi");
Mahasiswa m2 = new Mahasiswa("Anto");
[Link]([Link]());
[Link]([Link]());
◼ Hasil yang dicetak akan berbeda tergantung instance veriable tiap objek
22
Static
◼ Misal di kelas Mahasiswa kita punya static variable
public class Mahasiswa{
……..
public static int jumlahMahasiswa; /* Bukan desain OOP
yang baik */
……..
}
◼ Maka variable tersebut dapat diakses dan diubah oleh seluruh
instance dari mahasiswa dan pada setiap instance memiliki nilai yang
sama
23
Static
◼ Karena sifatnya sama di setiap instance objek, maka static variable dapat
dipanggil langsung dari nama classnya
[Link];
◼ Juga berlaku pada method static
[Link]();
[Link]();
◼ Setiap method pada main class biasanya dibuat static
24
Contoh Kegunaan Static
◼ Menghitung jumlah instance yang ada
◼ Misal: berapa jumlah pelanggan yang terdaftar?
◼ Memberikan sebuah standar terhadap sebuah fungsi
◼ Mengakses sebuah informasi secara bersamaan dalam satu
waktu
◼ Dan sebagainya
25
Review
◼ Global variable / attribute (biasanya private)
◼ Constructor/s (nama sama dengan class)
◼ Getter / Accessor (method untuk mengambil)
◼ Setter / Mutator (method untuk mengubah)
◼ Method/s: toString(), dsb
26
Have fun and enjoy
in this class
27