Belajar Java Part 16
Belajar Java Part 16
OOP
Memahami Batasan
Hak Akses (access
modifier)
2
Memahami Batasan Hak Akses (access modifier)
▰ Access Modifier adalah sebuah “hak akses” yang diberikan kepada sebuah
variabel/method/class dengan tujuan untuk menjaga integritas dari data tersebut ketika ingin
diakses object lain. Hak akses sendiri diberikan oleh pembuat program sebagai salah satu
bentuk implementasi dari OOP itu sendiri. Dengan adanya Access Modifier, kita dapat
membatasi resource-resource mana saja yang dapat diakses oleh object tertentu, turunannya,
ataupun oleh method tertentu.
3
PUBLIC
▰ Dapat dilihat pada table diatas bahwa keyword Public dapat diakses didalam class itu sendiri,
dapat diakses dengan menggunakan metode extend dan instan pada paket yang sama, serta
dapat diakses dengan metode extend maupun instan dalam paket yang berbeda.
▰ Artinya hak akses public dapat diakses oleh sembarang object manapun dan dimanapun
posisinya serta dengan apapun caranya. Data maupun method yang bersifat public dapat
diakses oleh semua bagian didalam program. Dengan kata lain, data–data maupun method-
method yang dideklarasikan dengan tingkat akses public akan dikenali atau dapat diakses oleh
semua kelas yang ada didalam, baik yang merupakan kelas turunan maupun kelas yang tidak
memiliki hubungan sama sekali. Untuk mendeklarasikan suatu data atau method dengan
tingkat akses public, gunakan kata kunci public
4
5
PUBLIC
▰ Program diatas akan menghasilkan tampilan berikut: nilai a: 2 nilai b: 3 program diatas terdiri
dari dua kelas yaitu kelas sekunder yang berisi variabel a, b dan c dengan tingkat akses yang
berbeda, dan kelas primer yang berisi objek untuk melakukan instance pada kelas turunan,
objek pada kelas primer hanya dapat mengisi nilai pada variabel a dan b karena kedua variabel
tersebut memiliki tingkat akses public dan protected, karena variabel c memiliki tingkat akses
private maka obyek pada kelas primer tidak bisa mengisi variabel tersebu
6
PROTECTED
▰ Suatu data maupun method yang dideklarasikan dengan tingkat akses protected dapat diakses
oleh kelas yang memilkinya dan juga oleh kelas– kelas yang masih memiliki oleh hubungan
turunan. Sebagai contoh, apabila data x dalam kelas A dideklarasikan sebagai protected, maka
kelas B (yang merupakan turunan dari kelas A) diizinkan untuk mengakses data x. Namun
apabila terdapat kelas lain, misalnya C (yang bukan merupakan turunan dari kelas A maupun
B), tetap tidak dapat mengakses data – data yang dideklarasikan dengan tingkat akses
protected. Untuk mendeklarasikan suatu data atau method dengan tingkat akses protected,
gunakan kata kunci ptotected.
7
Dari contoh program protected yang dapat mengakses hanya kelas motor dan
kelas turunannya, yaitu Honda
8
PRIVATE
▰ Dengan mendeklarasikan data dan method menggunakan tingkat akses private, maka data
dan method tersebut hanya dapat diakses oleh kelas yang memilikinya saja. Ini berarti data
dan method tersebut tidak boleh diakses atau digunakan oleh kelas-kelas lain yang terdapat
didalam program. Untuk mendeklarasikan suatu data atau method dengan tingkat akses
private, gunakan kata kunci private
9
Pada contoh diatas, variabel nama dan method getNama() hanya dapat diakses oleh method internal class
tersebut.
10
DEFAULT
▰ Untuk hak akses default ini, sebenarnya hanya ditujukan untuk class yang ada dalam satu
paket, atau istilahnya hak akses yang berlaku untuk satu folder saja (tidak berlaku untuk class
yang tidak satu folder/package).
11
Pada contoh diatas, variabel nama dan method getNama() hanya dapat diakses oleh method
internal class tersebut.
12
Setter dan Getter pada
Java
13
Setter dan Getter pada Java
▰ Setter adalah sebuah aksi saat kita memasukan sebuah nilai/values kedalam suatu
variable/object, sedangkan Getter adalah sebuah aksi saat kita mengambil sebuah nilai/values
dari suatu variable/object.
14
Setter dan Getter pada Java
▰ Method setter dan getter inilah yang akan membantu kita mengakses data tersebut.
▰ Mengapa harus dibuat seperti ini?
15
Cara Membuat Method Setter dan Getter
16
Cara Membuat Method Setter dan Getter
▰ Method setter dan getter harus diberikan modifier public, karena method ini akan diakses dari
luar class.
▰ Perbedaan method setter dengan getter terletak pada nilai kembalian, parameter, dan isi
method-nya.
▰ Method setter tidak memiliki nilai kembalian void (kosong). Karena tugasnya hanya untuk
mengisi data ke dalam atribut.
17
Cara Membuat Method Setter dan Getter
▰ Sedangkan method getter memiliki nilai kembalian sesuai dengan tipe data yang akan diambil.
18
Menggunakan Method Setter dan Getter
▰ Setelah kita membuat method setter dan getter, kita bisa mengakses atau menggunakannya
seperti method biasa.
19
Menggunakan Method Setter dan Getter
20
Tips Cepat Membuat Method Setter dan Getter di Netbeans
▰ Kita sudah membuat contoh setter dan getter untuk dua atribut data.
▰ Bagaiman akalau ada banyak data? misal ada 10 atribut yang membutuhkan method
setter dan getter.
▰ Kita bisa memanfaatkan fitur generator di Netbeans.
▰ Caranya:
▰ Pertama buat dulu atribut data yang akan dibuatkan method setter dan getter
seperti ini:
21
Setelah itu klik kanan, lalu pilih Insert Code… atau tekan tombol Alt+Insert
sehingga akan muncul menu seperti ini:
22
Pilih Setter and Getter untuk masuk ke menu generator Setter
dan Getter. Lalu tentukan atribut yang akan dibuatkan method
setter dan getter-nya.
23
24
Cara Membuat Package
dan Proses Import
25
Pengertian Package dalam Bahasa Java
▰ Package adalah sebuah cara untuk mengelompokkan class. Tujuannya menghindari bentrok
nama class (jika ada yang bernama sama) serta memudahkan pengelolaan kode program,
terutama untuk aplikasi besar.
▰ Dalam prakteknya nanti, ini mirip seperti membuat folder ketika menyimpan file. Di setiap
folder bisa saja terdapat file yang bernama sama, tapi karena disimpan dalam folder yang
berbeda, itu tidak masalah.
▰ Begitu juga di package Java, kita bisa membuat nama class yang sama selama berada di dalam
package yang berbeda.
▰ Package bahasa Java terbagi dalam 2 jenis:
• Built-in Package (package bawaan bahasa Java)
• User-defined Package (package yang kita definisikan sendiri)
26
Pengertian Package dalam Bahasa Java
▰ Kode diatas akan mengimport Scanner class yang ada di package java.util. Lebih jauh tentang cara
penggunaan perintah import akan kita bahas sesaat lagi.
27
Pengertian Package dalam Bahasa Java
▰ User-defined Package
▰ User-defined package adalah sebutan untuk package yang kita buat sendiri. Inilah yang akan dipraktekkan
dalam tutorial OOP Java kali ini.
28
Cara Membuat Package Bahasa Java
29
Cara Membuat Package Bahasa Java
▰ Untuk membuat package, tambah perintah package <nama_package> di baris paling atas sebuah
file Java. Dalam satu file, hanya bisa terdapat 1 perintah package.
▰ Sebagai contoh, dalam kode program berikut saya membuat class Komputer yang disimpan ke
dalam package duniailkom:
30
Cara Membuat Package Bahasa Java
▰ Untuk membuat package, tambah perintah package <nama_package> di baris paling atas sebuah
file Java. Dalam satu file, hanya bisa terdapat 1 perintah package.
▰ Sebagai contoh, dalam kode program berikut saya membuat class Komputer yang disimpan ke
dalam package duniailkom:
31
Cara Mengakses Package Java (Import)
▰ Kita sudah memiliki class Komputer yang berada di dalam package duniailkom. Sekarang kita akan
coba akses class tersebut.
▰ Untuk mengakses slass yang ada di sebuah package, kita harus import class tersebut menggunakan
perintah… import. Format penulisannya adalah sebagai berikut:
▰ Misalnya jika ingin mengimport class Komputer yang ada di package duniailkom, bisa
menggunakan perintah:
32
Cara Mengakses Package Java (Import)
▰ Perintah import bisa ditulis beberapa kali tergantung jumlah class, misalnya jika ingin mengimport
class Komputer, class Laptop dan class Netbook dari package duniailkom, bisa ditulis 3 kali:
▰ Atau jika kita ingin mengimport semua class yang ada di package duniailkom, bisa tulis dengan
tanda bintang (*):
33
Cara Mengakses Package Java (Import)
▰ Masuk ke contoh praktek, silahkan buat file BelajarJava.java di dalam folder D:\belajar_java, dan
isi dengan kode berikut:
34
Cara Mengakses Package Java (Import)
▰ Di baris 1, itu adalah perintah proses import class Komputer yang ada di dalam
package duniailkom. Class ini sudah kita buat sebelumnya.
▰ Dengan perintah ini, sepanjang class BelajarJava kita bisa mengakses class Komputer. Di
baris 6, class Komputer di instansiasi ke dalam object KomputerAndi, untuk selanjutnya
mengakses method cekInfo().
35
Cara Mengakses Class
Pada Package Yang Sama
36
Cara Mengakses Class Pada Package Yang Sama
▰ Jika kita ingin mengakses class pada package yang sama, itu tidak perlu perintah import, tapi
cukup tambahkan perintah package di baris paling atas sebagai tanda class tersebut ada di
package yang sama.
▰ Khusus bagi yang men-compile file Java secara manual dari cmd menggunakan
perintah javac dan java, ada cara khusus untuk menjalankan proses ini (akan kita bahas sesaat
lagi). Tapi bagi yang menggunakan IDE Java seperti NetBeans, Eclipse atau Intellij Idea, proses
compile sudah berjalan secara otomatis.
▰ Sebagai bahan praktek, saya kembali memakai struktur folder D:\belajar_java dan D:\
belajar_java\duniailkom. Kosongkan isi kedua folder agar tidak bentrok dengan praktek dari
tutorial sebelumnya.
37
Cara Mengakses Class Pada Package Yang Sama
▰ Ini kode yang sama seperti tutorial kita sebelumnya. Class Komputer berada di dalam
package duniailkom dan memiliki 1 method cekInfo() yang mengembalikan sebuah string.
▰ File diatas bisa dicompile seperti biasa, yakni dengan cara masuk ke directory tersebut, lalu compile
dengan perintah javac Komputer.java. Hasilnya, file Komputer.class akan dibuat di dalam folder duniailkom.
38
Cara Mengakses Class Pada Package Yang Sama
▰ Selanjutnya buat file kedua bernama BelajarJava.java di folder duniailkom juga, dan isi dengan kode
program berikut:
39
Cara Mengakses Class Pada Package Yang Sama
▰ Kembali, kode ini juga sama seperti yang kita pakai di tutorial package sebelumnya. Hanya saja sekarang
posisi file ini ada di dalam folder duniailkom dan menjadi bagian dari package duniailkom. Ini ditandai dengan
perintah package duniailkom di awal kode program.
▰ Di dalam method main(), kita bisa langsung akses class Komputer tanpa proses import lagi, karena baik
class Komputer dan class BelajarJava ada di package yang sama, yakni duniailkom.
▰ Akan tetapi ketika di compile, akan muncul error berikut:
40
41
Cara Mengakses Class Pada Package Yang Sama
▰ Error cannot find symbol tampil karena cmd salah mengeksekusi class path Java. Penjelasannya sedikit
rumit, namun ini hanya terjadi jika kita men-compile file Java yang didalamnya ada perintah untuk
mengakses class lain di package yang sama. Error ini tidak muncul di file Komputer.java karena tidak ada
pengaksesan class lain.
▰ Salah satu solusi dari masalah ini adalah, mundurkan satu directory di cmd dari D:\belajar_java\
duniailkom> ke D:\belajar_java>, lalu baru jalankan perintah compile sebagai berikut (1):
▰ javac duniailkom\BelajarJava.java
▰ Untuk menjalankan (run), ketik perintah berikut (2):
▰ java duniailkom.BelajarJava
42
43
Pewarisan Class Pada Package Yang Sama
▰ Kita juga bisa mewariskan class pada package yang sama, dan cara compilenya persis seperti yang sudah
kita praktekkan.
44
Pewarisan Class Pada Package Yang Sama
45